From d3c2ceab0c3eb7c32f1e6e9132047f5872857280 Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Mon, 29 Jan 2024 13:48:56 +0800 Subject: [PATCH 1/6] Revert "Merge branch 'feat-sort-assets-in-VERIFIED-tab-by-uploaded_at' into v240104-capture-cam-ionic-launch" This reverts commit d09dc29f1ecd74c6be6ab4839b670a821ec4740e, reversing changes made to d9b5652e113dbb6b78b5bf8a4469f5fb5eb950e2. --- .../home/capture-tab/capture-tab.component.ts | 4 +- .../dia-backend-asset-repository.service.ts | 1 - .../dia-backend-downloading.service.ts | 1 - .../dia-backend-asset-uploading.service.ts | 1 - .../shared/repositories/proof/proof.spec.ts | 37 ------------------- src/app/shared/repositories/proof/proof.ts | 36 ------------------ 6 files changed, 1 insertion(+), 79 deletions(-) diff --git a/src/app/features/home/capture-tab/capture-tab.component.ts b/src/app/features/home/capture-tab/capture-tab.component.ts index e8fa58eff..d0507eb6e 100644 --- a/src/app/features/home/capture-tab/capture-tab.component.ts +++ b/src/app/features/home/capture-tab/capture-tab.component.ts @@ -95,9 +95,7 @@ export class CaptureTabComponent implements OnInit { ); readonly captures$ = this.proofs$.pipe( - map(proofs => - proofs.sort((a, b) => b.uploadedAtOrTimestamp - a.uploadedAtOrTimestamp) - ) + map(proofs => proofs.sort((a, b) => b.timestamp - a.timestamp)) ); readonly networkConnected$ = this.networkService.connected$; diff --git a/src/app/shared/dia-backend/asset/dia-backend-asset-repository.service.ts b/src/app/shared/dia-backend/asset/dia-backend-asset-repository.service.ts index 766f69af0..d51afa0b0 100644 --- a/src/app/shared/dia-backend/asset/dia-backend-asset-repository.service.ts +++ b/src/app/shared/dia-backend/asset/dia-backend-asset-repository.service.ts @@ -357,7 +357,6 @@ export interface DiaBackendAsset extends Tuple { readonly caption: string; readonly post_creation_workflow_id: string; readonly mint_workflow_id: string; - readonly uploaded_at: string; } export interface OwnerAddresses extends Tuple { diff --git a/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts b/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts index b5d9f2829..b91c94357 100644 --- a/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts +++ b/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts @@ -81,7 +81,6 @@ export class DiaBackendAssetDownloadingService { }); proof.diaBackendAssetId = diaBackendAsset.id; proof.caption = diaBackendAsset.caption; - proof.uploadedAt = diaBackendAsset.uploaded_at; if (diaBackendAsset.signed_metadata) proof.setSignatureVersion(); return this.proofRepository.add(proof, OnConflictStrategy.REPLACE); } diff --git a/src/app/shared/dia-backend/asset/uploading/dia-backend-asset-uploading.service.ts b/src/app/shared/dia-backend/asset/uploading/dia-backend-asset-uploading.service.ts index d4a75a06c..2cb55da5d 100644 --- a/src/app/shared/dia-backend/asset/uploading/dia-backend-asset-uploading.service.ts +++ b/src/app/shared/dia-backend/asset/uploading/dia-backend-asset-uploading.service.ts @@ -145,7 +145,6 @@ export class DiaBackendAssetUploadingService { }), map(diaBackendAsset => { proof.diaBackendAssetId = diaBackendAsset.id; - proof.uploadedAt = diaBackendAsset.uploaded_at; return proof; }), retryWhen(err$ => diff --git a/src/app/shared/repositories/proof/proof.spec.ts b/src/app/shared/repositories/proof/proof.spec.ts index 301cab6a4..fcd6ead1e 100644 --- a/src/app/shared/repositories/proof/proof.spec.ts +++ b/src/app/shared/repositories/proof/proof.spec.ts @@ -287,43 +287,6 @@ describe('Proof utils', () => { const expected = `{\n "asset_mime_type": "${ASSET1_MIMETYPE}",\n "caption": "",\n "created_at": ${TIMESTAMP},\n "device_name": "${DEVICE_NAME_VALUE1}",\n "information": {\n "device.device_name": "${DEVICE_NAME_VALUE2}",\n "device.humidity": 0.8,\n "geolocation.geolocation_latitude": ${GEOLOCATION_LATITUDE2},\n "geolocation.geolocation_longitude": ${GEOLOCATION_LONGITUDE2}\n },\n "location_latitude": ${GEOLOCATION_LATITUDE1},\n "location_longitude": ${GEOLOCATION_LONGITUDE1},\n "proof_hash": "${ASSET1_SHA256SUM}",\n "recorder": "Capture",\n "spec_version": "2.0.0"\n}`; expect(getSerializedSortedProofMetadata(ProofMetadata)).toEqual(expected); }); - - describe('uploadedAtOrTimestamp', () => { - it('should return timestamp in milliseconds when uploadedAt is undefined', async () => { - proof = await Proof.from(mediaStore, ASSETS, TRUTH, SIGNATURES_VALID); - expect(proof.uploadedAtOrTimestamp).toEqual(TRUTH.timestamp); - }); - - it('should return uploadedAt in milliseconds when uploadedAt is defined', async () => { - const date = '2023-12-21T01:15:17Z'; // sample returned by API - const dateInMilliseconds = Date.parse(date); - - proof = await Proof.from(mediaStore, ASSETS, TRUTH, SIGNATURES_VALID); - proof.uploadedAt = date; - - expect(proof.uploadedAtOrTimestamp).toEqual(dateInMilliseconds); - }); - - it('should return timestamp in milliseconds when uploadedAt is not a valid date', async () => { - proof = await Proof.from(mediaStore, ASSETS, TRUTH, SIGNATURES_VALID); - proof.uploadedAt = 'invalid date'; - expect(proof.uploadedAtOrTimestamp).toEqual(TRUTH.timestamp); - }); - - it('should return timestamp in milliseconds when its in seconds', async () => { - const timestamp = 1627545600; // 29th July 2021 12:00:00 GMT - const timestampInMilliseconds = timestamp * 1000; - - proof = await Proof.from( - mediaStore, - ASSETS, - { ...TRUTH, timestamp }, - SIGNATURES_VALID - ); - - expect(proof.uploadedAtOrTimestamp).toEqual(timestampInMilliseconds); - }); - }); }); const ASSET1_MIMETYPE: MimeType = 'image/png'; diff --git a/src/app/shared/repositories/proof/proof.ts b/src/app/shared/repositories/proof/proof.ts index b3e35dbd8..94bfa4861 100644 --- a/src/app/shared/repositories/proof/proof.ts +++ b/src/app/shared/repositories/proof/proof.ts @@ -32,13 +32,6 @@ export class Proof { */ caption = ''; - /** - * The timestamp when the asset is uploaded to the backend, in the format "2023-12-21T01:15:17Z". - * By default, it is undefined. Once the asset is successfully uploaded, the uploadedAt property - * will be set to the timestamp provided by the backend. - */ - uploadedAt?: string = undefined; - isCollected = false; signatures: Signatures = {}; @@ -54,32 +47,6 @@ export class Proof { */ cameraSource: CameraSource = CameraSource.Camera; - /** - * Used to sort the assets in the VERIFIED tab either by timestamp or uploadedAt (if available). - */ - get uploadedAtOrTimestamp() { - const MILLISECONDS_PER_SECOND = 1000; - const LENGTH_IN_MILLISECONDS = 13; - - // convert timestamp to milliseconds if needed - const proofTimestampInMilliseconds = - this.timestamp.toString().length === LENGTH_IN_MILLISECONDS - ? this.timestamp - : this.timestamp * MILLISECONDS_PER_SECOND; - - const serverTimestampInMilliseconds = Date.parse(this.uploadedAt ?? ''); - return serverTimestampInMilliseconds || proofTimestampInMilliseconds; - } - - /** - * The timestamp when the proof was first created or captured. Different from uploadedAt - * The timestamp is generated using Date.now() and is represented in milliseconds. - * - * Note: After restoring or syncing with the backend assets, the timestamp will be in seconds. - * For more details, refer to https://github.com/numbersprotocol/storage-backend/issues/976 - * - * Note: Milliseconds are 13 digits long, while seconds are 10 digits long. - */ get timestamp() { return this.truth.timestamp; } @@ -160,7 +127,6 @@ export class Proof { proof.setIndexedAssets(indexedProofView.indexedAssets); proof.diaBackendAssetId = indexedProofView.diaBackendAssetId; proof.caption = indexedProofView.caption ?? ''; - proof.uploadedAt = indexedProofView.uploadedAt; proof.isCollected = indexedProofView.isCollected ?? false; proof.signatureVersion = indexedProofView.signatureVersion; proof.integritySha = indexedProofView.integritySha; @@ -332,7 +298,6 @@ export class Proof { signatureVersion: this.signatureVersion, diaBackendAssetId: this.diaBackendAssetId, caption: this.caption, - uploadedAt: this.uploadedAt, isCollected: this.isCollected, integritySha: this.integritySha, cameraSource: this.cameraSource, @@ -468,7 +433,6 @@ export interface IndexedProofView extends Tuple { readonly signatureVersion?: string; readonly diaBackendAssetId?: string; readonly caption?: string; - readonly uploadedAt?: string; readonly isCollected?: boolean; readonly integritySha?: string; readonly cameraSource: CameraSource; From 0224c265117f8106a42ac9446fceda6501c8ccad Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Mon, 29 Jan 2024 13:49:03 +0800 Subject: [PATCH 2/6] Revert "Merge pull request #3157 from numbersprotocol/fix-excessive-api-call" This reverts commit d9b5652e113dbb6b78b5bf8a4469f5fb5eb950e2, reversing changes made to 064e7cf82e36583a110916c64d5a5c1888f58a37. --- .../capture-item/capture-item.component.ts | 5 ++- .../details/edit-caption/edit-caption.page.ts | 45 +++---------------- .../dia-backend-downloading.service.ts | 1 - src/app/shared/repositories/proof/proof.ts | 9 ---- 4 files changed, 9 insertions(+), 51 deletions(-) diff --git a/src/app/features/home/capture-tab/capture-item/capture-item.component.ts b/src/app/features/home/capture-tab/capture-item/capture-item.component.ts index 9ce20305c..cc1b6473c 100644 --- a/src/app/features/home/capture-tab/capture-item/capture-item.component.ts +++ b/src/app/features/home/capture-tab/capture-item/capture-item.component.ts @@ -71,7 +71,10 @@ export class CaptureItemComponent { ) ); - readonly hasCaption$ = this.proof$.pipe(map(proof => proof.caption !== '')); + readonly hasCaption$ = this.proof$.pipe( + switchMap(proof => this.diaBackendAssetRepository.fetchByProof$(proof)), + map(asset => asset.caption !== '') + ); readonly isVideo$ = this.proof$.pipe( concatMap(proof => proof.getFirstAssetMeta()), diff --git a/src/app/features/home/details/edit-caption/edit-caption.page.ts b/src/app/features/home/details/edit-caption/edit-caption.page.ts index f3eb4e47b..f5208a6e5 100644 --- a/src/app/features/home/details/edit-caption/edit-caption.page.ts +++ b/src/app/features/home/details/edit-caption/edit-caption.page.ts @@ -3,22 +3,13 @@ import { DomSanitizer } from '@angular/platform-browser'; import { ActivatedRoute } from '@angular/router'; import { NavController } from '@ionic/angular'; import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy'; -import { combineLatest, fromEvent, of } from 'rxjs'; -import { - concatMap, - finalize, - first, - map, - tap as switchTap, -} from 'rxjs/operators'; +import { combineLatest, fromEvent } from 'rxjs'; +import { map, tap } from 'rxjs/operators'; import { DiaBackendAuthService } from '../../../../shared/dia-backend/auth/dia-backend-auth.service'; import { BUBBLE_IFRAME_URL } from '../../../../shared/dia-backend/secret'; import { BubbleToIonicPostMessage } from '../../../../shared/iframe/iframe'; import { IframeService } from '../../../../shared/iframe/iframe.service'; -import { getOldProof } from '../../../../shared/repositories/proof/old-proof-adapter'; -import { ProofRepository } from '../../../../shared/repositories/proof/proof-repository.service'; import { isNonNullable } from '../../../../utils/rx-operators/rx-operators'; -import { InformationSessionService } from '../information/session/information-session.service'; @UntilDestroy() @Component({ @@ -52,9 +43,7 @@ export class EditCaptionPage { private readonly sanitizer: DomSanitizer, private readonly navController: NavController, private readonly iframeService: IframeService, - private readonly diaBackendAuthService: DiaBackendAuthService, - private readonly informationSessionService: InformationSessionService, - private readonly proofRepository: ProofRepository + private readonly diaBackendAuthService: DiaBackendAuthService ) { this.processIframeEvents(); } @@ -62,7 +51,7 @@ export class EditCaptionPage { processIframeEvents() { fromEvent(window, 'message') .pipe( - switchTap(event => { + tap(event => { const postMessageEvent = event as MessageEvent; const data = postMessageEvent.data as BubbleToIonicPostMessage; switch (data) { @@ -71,7 +60,7 @@ export class EditCaptionPage { break; case BubbleToIonicPostMessage.EDIT_CAPTION_SAVE: this.iframeService.refreshDetailsPageIframe(); - this.syncCaptionAndNavigateBack(); + this.navController.back(); break; } }), @@ -79,28 +68,4 @@ export class EditCaptionPage { ) .subscribe(); } - - syncCaptionAndNavigateBack() { - if (this.informationSessionService.activatedDetailedCapture) { - combineLatest([ - this.informationSessionService.activatedDetailedCapture.proof$, - this.informationSessionService.activatedDetailedCapture.caption$, - ]) - .pipe( - first(), - concatMap(([proof, latestCaptionFromBackend]) => { - if (proof) { - proof.caption = latestCaptionFromBackend; - return this.proofRepository.update( - [proof], - (x, y) => getOldProof(x).hash === getOldProof(y).hash - ); - } - return of(null); - }), - finalize(() => this.navController.back()) - ) - .subscribe(); - } - } } diff --git a/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts b/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts index b91c94357..30ea7f3d7 100644 --- a/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts +++ b/src/app/shared/dia-backend/asset/downloading/dia-backend-downloading.service.ts @@ -80,7 +80,6 @@ export class DiaBackendAssetDownloadingService { }, }); proof.diaBackendAssetId = diaBackendAsset.id; - proof.caption = diaBackendAsset.caption; if (diaBackendAsset.signed_metadata) proof.setSignatureVersion(); return this.proofRepository.add(proof, OnConflictStrategy.REPLACE); } diff --git a/src/app/shared/repositories/proof/proof.ts b/src/app/shared/repositories/proof/proof.ts index 94bfa4861..0bc9cb69e 100644 --- a/src/app/shared/repositories/proof/proof.ts +++ b/src/app/shared/repositories/proof/proof.ts @@ -26,12 +26,6 @@ export class Proof { diaBackendAssetId?: string = undefined; - /** - * When user uploades a capture we do not have option to set caption. Therefore caption is empty - * by default. Everytime caption is updated we need to update the caption in the proof as well. - */ - caption = ''; - isCollected = false; signatures: Signatures = {}; @@ -126,7 +120,6 @@ export class Proof { ); proof.setIndexedAssets(indexedProofView.indexedAssets); proof.diaBackendAssetId = indexedProofView.diaBackendAssetId; - proof.caption = indexedProofView.caption ?? ''; proof.isCollected = indexedProofView.isCollected ?? false; proof.signatureVersion = indexedProofView.signatureVersion; proof.integritySha = indexedProofView.integritySha; @@ -297,7 +290,6 @@ export class Proof { signatures: this.signatures, signatureVersion: this.signatureVersion, diaBackendAssetId: this.diaBackendAssetId, - caption: this.caption, isCollected: this.isCollected, integritySha: this.integritySha, cameraSource: this.cameraSource, @@ -432,7 +424,6 @@ export interface IndexedProofView extends Tuple { readonly signatures: Signatures; readonly signatureVersion?: string; readonly diaBackendAssetId?: string; - readonly caption?: string; readonly isCollected?: boolean; readonly integritySha?: string; readonly cameraSource: CameraSource; From 8bbaf0c0678be7b3ce3fd628a686d85be7031da9 Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Mon, 29 Jan 2024 13:49:11 +0800 Subject: [PATCH 3/6] Revert "Merge pull request #3171 from numbersprotocol/feat-confirm-dialog-on-pull-to-refresh" This reverts commit 064e7cf82e36583a110916c64d5a5c1888f58a37, reversing changes made to c892830a50e66b097831b98eedd1813b72cbb399. --- .../home/capture-tab/capture-tab.component.ts | 41 ++++++------------- src/assets/i18n/en-us.json | 4 -- src/assets/i18n/zh-tw.json | 4 -- 3 files changed, 13 insertions(+), 36 deletions(-) diff --git a/src/app/features/home/capture-tab/capture-tab.component.ts b/src/app/features/home/capture-tab/capture-tab.component.ts index d0507eb6e..128ab9bd0 100644 --- a/src/app/features/home/capture-tab/capture-tab.component.ts +++ b/src/app/features/home/capture-tab/capture-tab.component.ts @@ -1,7 +1,6 @@ import { formatDate, KeyValue } from '@angular/common'; import { HttpErrorResponse } from '@angular/common/http'; import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; import { Router } from '@angular/router'; import { ActionSheetButton, @@ -16,6 +15,7 @@ import { catchError, concatMap, concatMapTo, + finalize, map, pluck, shareReplay, @@ -45,7 +45,6 @@ import { getOldProof } from '../../../shared/repositories/proof/old-proof-adapte import { Proof } from '../../../shared/repositories/proof/proof'; import { ProofRepository } from '../../../shared/repositories/proof/proof-repository.service'; import { reloadApp } from '../../../utils/miscellaneous'; -import { PrefetchingDialogComponent } from '../onboarding/prefetching-dialog/prefetching-dialog.component'; @UntilDestroy({ checkProperties: true }) @Component({ @@ -159,8 +158,6 @@ export class CaptureTabComponent implements OnInit { private readonly mediaStore: MediaStore, private readonly database: Database, private readonly confirmAlert: ConfirmAlert, - private readonly dialog: MatDialog, - private readonly preferenceManager: PreferenceManager, private readonly changeDetectorRef: ChangeDetectorRef, private readonly proofRepository: ProofRepository, @@ -337,29 +334,17 @@ export class CaptureTabComponent implements OnInit { return item.id; } - async refreshCaptures(event: Event) { - (event).detail.complete(); - - const confirmRefresh = await this.showRefreshAlert(); - if (confirmRefresh) { - this.capturedTabPageIndex$.next(0); - this.collectedTabPageIndex$.next(0); - this.draftTabPageIndex$.next(0); - - return this.dialog.open(PrefetchingDialogComponent, { - disableClose: true, - }); - } - } - - private async showRefreshAlert() { - return this.confirmAlert.present({ - header: this.translocoService.translate('syncAndRestore'), - message: this.translocoService.translate('message.confirmSyncAndRestore'), - confirmButtonText: this.translocoService.translate( - 'confirmSyncAndRestore' - ), - cancelButtonText: this.translocoService.translate('cancelSyncAndRestore'), - }); + refreshCaptures(event: Event) { + this.diaBackendAssetRefreshingService + .refresh() + .pipe( + finalize(() => { + this.capturedTabPageIndex$.next(0); + this.collectedTabPageIndex$.next(0); + this.draftTabPageIndex$.next(0); + return (event).detail.complete(); + }) + ) + .subscribe(); } } diff --git a/src/assets/i18n/en-us.json b/src/assets/i18n/en-us.json index c1a437662..bc36a6b2b 100644 --- a/src/assets/i18n/en-us.json +++ b/src/assets/i18n/en-us.json @@ -86,9 +86,6 @@ "restorePhotos": "Restore Captures", "restore": "Restore", "skip": "Skip", - "syncAndRestore": "Sync and restore all assets?", - "confirmSyncAndRestore": "Confirm", - "cancelSyncAndRestore": "Do it later", "contactUs": "Contact us", "editUsername": "Edit Username", "forgotPassword": "Forgot Password", @@ -172,7 +169,6 @@ "networkNotConnected": "No internet connections.", "allPhotosRegistered": "All Captures registered on blockchain successfully", "confirmPrefetch": "Do you want to restore the registered Captures? It may take minutes to complete.", - "confirmSyncAndRestore": "This will download all assets and making sure your local data is up to date", "loadingPreviousData": "Restoring Captures...", "doNotTurnOffApp": "Please keep the screen on and DO NOT leave the app.", "upgrading": "Upgrading...", diff --git a/src/assets/i18n/zh-tw.json b/src/assets/i18n/zh-tw.json index 6a673b905..532117fd2 100644 --- a/src/assets/i18n/zh-tw.json +++ b/src/assets/i18n/zh-tw.json @@ -86,9 +86,6 @@ "restorePhotos": "恢復已註冊的瞬時影像", "restore": "恢復", "skip": "跳過", - "syncAndRestore": "遠端同步並還原所有資產?", - "confirmSyncAndRestore": "確認", - "cancelSyncAndRestore": "稍後再說", "contactUs": "聯絡我們", "editUsername": "修改使用者名稱", "forgotPassword": "忘記密碼", @@ -172,7 +169,6 @@ "networkNotConnected": "沒有網路連線", "allPhotosRegistered": "所有瞬時影像都已成功註冊", "confirmPrefetch": "是否要恢復已註冊的瞬時影像?這個流程需要數分鐘的時間。", - "confirmSyncAndRestore": "這將重新下載所有資產,並確保您的本地數據是最新的。", "loadingPreviousData": "正在恢復已註冊的瞬時影像...", "doNotTurnOffApp": "載入中,期間請勿關閉螢幕與離開 APP。", "upgrading": "升級中...", From ce1319fb96c51f32fdc2bca41d009cfbb966446f Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Mon, 29 Jan 2024 15:09:38 +0800 Subject: [PATCH 4/6] chore: bump app version to 0.88.7 --- android/app/build.gradle | 4 +- ios/App/App.xcodeproj/project.pbxproj | 8 +- package-lock.json | 153 +++++++++----------------- package.json | 2 +- 4 files changed, 60 insertions(+), 107 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 3b4b003ed..e280f95f5 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "io.numbersprotocol.capturelite" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 886 - versionName "0.88.6" + versionCode 887 + versionName "0.88.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildFeatures { diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index d91779a43..cdd0c69c8 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -368,13 +368,13 @@ CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 886; + CURRENT_PROJECT_VERSION = 887; DEVELOPMENT_TEAM = G7NB5YCKAP; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = G7NB5YCKAP; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.88.6; + MARKETING_VERSION = 0.88.7; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = io.numbersprotocol.capturelite; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -395,13 +395,13 @@ CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 886; + CURRENT_PROJECT_VERSION = 887; DEVELOPMENT_TEAM = G7NB5YCKAP; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = G7NB5YCKAP; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.88.6; + MARKETING_VERSION = 0.88.7; PRODUCT_BUNDLE_IDENTIFIER = io.numbersprotocol.capturelite; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NumbersAppDistributionV4; diff --git a/package-lock.json b/package-lock.json index 699f08a39..56b0d151c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "capture-lite", - "version": "0.88.6", + "version": "0.88.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "capture-lite", - "version": "0.88.6", + "version": "0.88.7", "dependencies": { "packages": "^0.0.8", "@angular/animations": "^14.2.0", @@ -1243,6 +1243,7 @@ "version": "14.2.0", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.0.tgz", "integrity": "sha512-csnvopy5a6ctdT7sHgwgn3wRni+UIk2zvs7WYsx+gtLTdH7SPg78CN0XZR/KQ142qLtuMnmkVON3D3ejmqC9xg==", + "dev": true, "dependencies": { "tslib": "^2.3.0" }, @@ -24951,6 +24952,7 @@ "version": "14.2.0", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.2.0.tgz", "integrity": "sha512-csnvopy5a6ctdT7sHgwgn3wRni+UIk2zvs7WYsx+gtLTdH7SPg78CN0XZR/KQ142qLtuMnmkVON3D3ejmqC9xg==", + "dev": true, "requires": { "tslib": "^2.3.0" } @@ -26252,8 +26254,7 @@ "@capacitor-community/advertising-id": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/@capacitor-community/advertising-id/-/advertising-id-5.0.0.tgz", - "integrity": "sha512-gCY0Ycxym/hbdOUfJyORaGMtDbLZsLX+u8LHq4vF8iVNqDMjlZSkbFIBXHw5IBTigBOipmHK/pDT6J1U5HR4yQ==", - "requires": {} + "integrity": "sha512-gCY0Ycxym/hbdOUfJyORaGMtDbLZsLX+u8LHq4vF8iVNqDMjlZSkbFIBXHw5IBTigBOipmHK/pDT6J1U5HR4yQ==" }, "@capacitor-community/bluetooth-le": { "version": "2.2.3", @@ -26276,8 +26277,7 @@ "@capacitor/android": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.9.0.tgz", - "integrity": "sha512-YTPyrh1NozEuYXWGtfqN27TLXUrLbZX9fggyd4JQ1yMaUZTmLPm5dCuznONhQ49aPkJnUJB02JfpHy/qGwa2Lw==", - "requires": {} + "integrity": "sha512-YTPyrh1NozEuYXWGtfqN27TLXUrLbZX9fggyd4JQ1yMaUZTmLPm5dCuznONhQ49aPkJnUJB02JfpHy/qGwa2Lw==" }, "@capacitor/core": { "version": "3.9.0", @@ -26290,14 +26290,12 @@ "@capacitor/filesystem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.1.0.tgz", - "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==", - "requires": {} + "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==" }, "@capacitor/ios": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.9.0.tgz", - "integrity": "sha512-GezPCJIujRHnF4wbrKJx6Q/mgFz0f9rmh/steTTXQZI+nEl6mHk6NWh8235p7YbhonYi5WD0rFNirrjGg1EaGw==", - "requires": {} + "integrity": "sha512-GezPCJIujRHnF4wbrKJx6Q/mgFz0f9rmh/steTTXQZI+nEl6mHk6NWh8235p7YbhonYi5WD0rFNirrjGg1EaGw==" } } }, @@ -26311,26 +26309,22 @@ "@capacitor/android": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-5.0.5.tgz", - "integrity": "sha512-vH5Qoy+p2Egsu1GtPtOsihHcEI2fCGCIHwlUGPaXXGysudzpzWtJZ5JZNlycJyfRdjECrjkutgbNaHLog+YlXQ==", - "requires": {} + "integrity": "sha512-vH5Qoy+p2Egsu1GtPtOsihHcEI2fCGCIHwlUGPaXXGysudzpzWtJZ5JZNlycJyfRdjECrjkutgbNaHLog+YlXQ==" }, "@capacitor/app": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-5.0.3.tgz", - "integrity": "sha512-YqGWnD+O8wjNVyIctZCMkVqOr3RhxunLUBbmLpdRc66RzPN7xEk8GAwxY2YV/ehTL054mo3uqovpWvei7rYsEA==", - "requires": {} + "integrity": "sha512-YqGWnD+O8wjNVyIctZCMkVqOr3RhxunLUBbmLpdRc66RzPN7xEk8GAwxY2YV/ehTL054mo3uqovpWvei7rYsEA==" }, "@capacitor/browser": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-5.0.3.tgz", - "integrity": "sha512-dFvuQRCt6HtkI/ZtOaocCu3aqsvw3r/Z7mvTXhhX9hlj3oUmGDYXFXhZD8AGLXwR2xjcNmGgLhRsHVAzdZpS4A==", - "requires": {} + "integrity": "sha512-dFvuQRCt6HtkI/ZtOaocCu3aqsvw3r/Z7mvTXhhX9hlj3oUmGDYXFXhZD8AGLXwR2xjcNmGgLhRsHVAzdZpS4A==" }, "@capacitor/camera": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/camera/-/camera-5.0.4.tgz", - "integrity": "sha512-Sl4PpoRv/FahCTugjyCZQ8MMH9Tgh5ySr8ZqY59mFKReoCu7xKnp9Ue8D8mzR9nE08gRiUBMqtl5FJbJR2f+Yg==", - "requires": {} + "integrity": "sha512-Sl4PpoRv/FahCTugjyCZQ8MMH9Tgh5ySr8ZqY59mFKReoCu7xKnp9Ue8D8mzR9nE08gRiUBMqtl5FJbJR2f+Yg==" }, "@capacitor/cli": { "version": "5.0.5", @@ -26429,8 +26423,7 @@ "@capacitor/clipboard": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/clipboard/-/clipboard-5.0.4.tgz", - "integrity": "sha512-x15Vdq8h5eh6iSYzrdwQXjtlbRe8kNWDOG9HtGGa8xlKoqDECYS7VqFhrZUXJpJpjWDUDqIwF9JpcSoLRHiHbg==", - "requires": {} + "integrity": "sha512-x15Vdq8h5eh6iSYzrdwQXjtlbRe8kNWDOG9HtGGa8xlKoqDECYS7VqFhrZUXJpJpjWDUDqIwF9JpcSoLRHiHbg==" }, "@capacitor/core": { "version": "5.0.5", @@ -26443,68 +26436,57 @@ "@capacitor/device": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-5.0.4.tgz", - "integrity": "sha512-Zt2eCPfT4oh/VYWURhixj/cRjgpEFD+HgPoldzL9N88ugraqq13p/RKEhUGJ6/tCFVwflVRC5984NsAotm25Jw==", - "requires": {} + "integrity": "sha512-Zt2eCPfT4oh/VYWURhixj/cRjgpEFD+HgPoldzL9N88ugraqq13p/RKEhUGJ6/tCFVwflVRC5984NsAotm25Jw==" }, "@capacitor/filesystem": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-5.0.4.tgz", - "integrity": "sha512-dsmy8Hz19+SMI5hwTzHto3TXT3ckbgCJ5kfI4oel73yyn3G7zjdKZuHoZRINoX1BbFNSZryzpbMQ69lSOLCpnQ==", - "requires": {} + "integrity": "sha512-dsmy8Hz19+SMI5hwTzHto3TXT3ckbgCJ5kfI4oel73yyn3G7zjdKZuHoZRINoX1BbFNSZryzpbMQ69lSOLCpnQ==" }, "@capacitor/geolocation": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/geolocation/-/geolocation-5.0.4.tgz", - "integrity": "sha512-/WXiLBY4hxigWMQp/i/BcFLwGSGVNcnPX4M0tNI11bfUsO6DJ0/dMsSw2xn8a7QxEsKmVUYE5UeOOZNLeUiLHg==", - "requires": {} + "integrity": "sha512-/WXiLBY4hxigWMQp/i/BcFLwGSGVNcnPX4M0tNI11bfUsO6DJ0/dMsSw2xn8a7QxEsKmVUYE5UeOOZNLeUiLHg==" }, "@capacitor/ios": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-5.0.5.tgz", - "integrity": "sha512-U72TPbKN1HlUqEGCOPsCBp6j93Qu1TazWUuA8Q1yfcGDfSOE0zMDNl3eU7XO5OyzpV7z9lf8NJdehimezVl7sA==", - "requires": {} + "integrity": "sha512-U72TPbKN1HlUqEGCOPsCBp6j93Qu1TazWUuA8Q1yfcGDfSOE0zMDNl3eU7XO5OyzpV7z9lf8NJdehimezVl7sA==" }, "@capacitor/local-notifications": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/@capacitor/local-notifications/-/local-notifications-5.0.6.tgz", - "integrity": "sha512-DB+ZBjv3Ri/0mtSzjMxLMHNGfg5m615ewDfQxp++mu7pYUM1RkxfSiigw73+PlZXDow1YNQJRlzTkwEKs6Pf+g==", - "requires": {} + "integrity": "sha512-DB+ZBjv3Ri/0mtSzjMxLMHNGfg5m615ewDfQxp++mu7pYUM1RkxfSiigw73+PlZXDow1YNQJRlzTkwEKs6Pf+g==" }, "@capacitor/network": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-5.0.4.tgz", - "integrity": "sha512-ELYVp5s4KzhFomjh/m/vxtH6h2xrrxZKHfkKxEPPH+IhW3Xn4L4bLjyKwipdsugyhJp31h2DjxcfYXY3aq/UzQ==", - "requires": {} + "integrity": "sha512-ELYVp5s4KzhFomjh/m/vxtH6h2xrrxZKHfkKxEPPH+IhW3Xn4L4bLjyKwipdsugyhJp31h2DjxcfYXY3aq/UzQ==" }, "@capacitor/push-notifications": { "version": "5.0.6", "resolved": "https://registry.npmjs.org/@capacitor/push-notifications/-/push-notifications-5.0.6.tgz", - "integrity": "sha512-o4/EcP13XduazhJkoVWEVrRD07YcqT9Uz0pQ48SItRNjtgDhcQW1vAEo6tSL6FVA5NkxNhJikk8TUeXobgOhEg==", - "requires": {} + "integrity": "sha512-o4/EcP13XduazhJkoVWEVrRD07YcqT9Uz0pQ48SItRNjtgDhcQW1vAEo6tSL6FVA5NkxNhJikk8TUeXobgOhEg==" }, "@capacitor/share": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/share/-/share-5.0.4.tgz", - "integrity": "sha512-Owkg6xmpWAoUZxu+joc+L5PxrWdGR/nAhKYGb2mVenf0Fljm1kwjKKJRySLmaO4uHiDD2JVwV2azV2w6ZC6DTg==", - "requires": {} + "integrity": "sha512-Owkg6xmpWAoUZxu+joc+L5PxrWdGR/nAhKYGb2mVenf0Fljm1kwjKKJRySLmaO4uHiDD2JVwV2azV2w6ZC6DTg==" }, "@capacitor/splash-screen": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-5.0.4.tgz", - "integrity": "sha512-gWV6mSIDyT+4oSC7NKvCSHdBhDIZi8JK7xS/iknkL8bLTZp6/My/vvA+67fRNvmELzGrk3MmbGhLdLoLnsd5dA==", - "requires": {} + "integrity": "sha512-gWV6mSIDyT+4oSC7NKvCSHdBhDIZi8JK7xS/iknkL8bLTZp6/My/vvA+67fRNvmELzGrk3MmbGhLdLoLnsd5dA==" }, "@capacitor/storage": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@capacitor/storage/-/storage-1.2.4.tgz", - "integrity": "sha512-AqA4KnCQNOmFJ1HuSfmyPf5jz80JY2cX04Uy4j1hpo5ex9bY6W8mUKLsePakTzt4ScDnYuOaXsmusUrpglgPfQ==", - "requires": {} + "integrity": "sha512-AqA4KnCQNOmFJ1HuSfmyPf5jz80JY2cX04Uy4j1hpo5ex9bY6W8mUKLsePakTzt4ScDnYuOaXsmusUrpglgPfQ==" }, "@capawesome/capacitor-file-picker": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@capawesome/capacitor-file-picker/-/capacitor-file-picker-0.6.3.tgz", - "integrity": "sha512-ioJ7ZorgFXuC/OzJkChi2t0GwvtP0uRvR9qXQKCKIgTN4TqpLFT906J1VPdLzZMIixy3rKzELluFbdMVi8bkcQ==", - "requires": {} + "integrity": "sha512-ioJ7ZorgFXuC/OzJkChi2t0GwvtP0uRvR9qXQKCKIgTN4TqpLFT906J1VPdLzZMIixy3rKzELluFbdMVi8bkcQ==" }, "@cspotcode/source-map-consumer": { "version": "0.8.0", @@ -26647,15 +26629,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", - "dev": true, - "requires": {} + "dev": true }, "@csstools/selector-specificity": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", - "dev": true, - "requires": {} + "dev": true }, "@discoveryjs/json-ext": { "version": "0.5.7", @@ -27466,8 +27446,7 @@ "version": "14.2.1", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.2.1.tgz", "integrity": "sha512-9tsfx2ZQscnpszVkdoJIIxZZDwitgmbPNrsQmyfHhwqPeJ8UUnAk6RNTfHjtX31VCmIM+qdGJsX7vDR9ye3/uA==", - "dev": true, - "requires": {} + "dev": true }, "@ngx-formly/core": { "version": "5.10.22", @@ -27695,18 +27674,15 @@ }, "@numbersprotocol/preview-camera": { "version": "git+ssh://git@github.com/numbersprotocol/preview-camera.git#ea6f2ab867f0523b05629442fa0f60f2ddb465a4", - "from": "@numbersprotocol/preview-camera@github:numbersprotocol/preview-camera#0.0.17", - "requires": {} + "from": "@numbersprotocol/preview-camera@github:numbersprotocol/preview-camera#0.0.17" }, "@numbersprotocol/preview-memory": { "version": "git+ssh://git@github.com/numbersprotocol/preview-memory.git#79f96ca804edaa06b74a84a2bc17c6a3a5f7a21a", - "from": "@numbersprotocol/preview-memory@github:numbersprotocol/preview-memory#0.0.2", - "requires": {} + "from": "@numbersprotocol/preview-memory@github:numbersprotocol/preview-memory#0.0.2" }, "@numbersprotocol/preview-video": { "version": "git+ssh://git@github.com/numbersprotocol/preview-video.git#136b40be16f9a3db2f674af27786dfd548b91677", - "from": "@numbersprotocol/preview-video@github:numbersprotocol/preview-video#0.0.4", - "requires": {} + "from": "@numbersprotocol/preview-video@github:numbersprotocol/preview-video#0.0.4" }, "@parcel/watcher": { "version": "2.0.4", @@ -28631,15 +28607,13 @@ "version": "1.7.6", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==", - "dev": true, - "requires": {} + "dev": true }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "acorn-walk": { "version": "8.1.1", @@ -28739,8 +28713,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "ansi-colors": { "version": "4.1.3", @@ -28789,8 +28762,7 @@ "appsflyer-capacitor-plugin": { "version": "6.12.1", "resolved": "https://registry.npmjs.org/appsflyer-capacitor-plugin/-/appsflyer-capacitor-plugin-6.12.1.tgz", - "integrity": "sha512-TfAm5xgevexer+5pXZ+3iErybA0dog4c5YQcjXFTrC19QNYxU1/uOx5UyQ4E4OS2GKex+5u/m950M7G4Dyc9Gw==", - "requires": {} + "integrity": "sha512-TfAm5xgevexer+5pXZ+3iErybA0dog4c5YQcjXFTrC19QNYxU1/uOx5UyQ4E4OS2GKex+5u/m950M7G4Dyc9Gw==" }, "aproba": { "version": "2.0.0", @@ -29642,14 +29614,12 @@ "capacitor-blob-writer": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/capacitor-blob-writer/-/capacitor-blob-writer-1.0.4.tgz", - "integrity": "sha512-HLN9qHGXprnMacjFV50KSHFuk2e+Q6QHxSIsNNbVwxh3/8cEzA6bAwFdJthLocYSYjPENMC6o54hwxFWN3CiSQ==", - "requires": {} + "integrity": "sha512-HLN9qHGXprnMacjFV50KSHFuk2e+Q6QHxSIsNNbVwxh3/8cEzA6bAwFdJthLocYSYjPENMC6o54hwxFWN3CiSQ==" }, "capacitor-native-settings": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/capacitor-native-settings/-/capacitor-native-settings-4.0.3.tgz", - "integrity": "sha512-wxWFwdSySJ1dX8eLFogTYluLYu8fc8biMTL9x0ioI559mHiPDDoCBc//W0nhByUG7a1UxrY4vM4MGDTc/Mf7Bw==", - "requires": {} + "integrity": "sha512-wxWFwdSySJ1dX8eLFogTYluLYu8fc8biMTL9x0ioI559mHiPDDoCBc//W0nhByUG7a1UxrY4vM4MGDTc/Mf7Bw==" }, "caseless": { "version": "0.12.0", @@ -30475,8 +30445,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true, - "requires": {} + "dev": true }, "css-select": { "version": "1.2.0", @@ -31641,8 +31610,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", - "dev": true, - "requires": {} + "dev": true }, "eslint-plugin-rxjs": { "version": "5.0.2", @@ -31891,8 +31859,7 @@ "ws": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==" } } }, @@ -33142,8 +33109,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "idna-uts46-hx": { "version": "2.3.1", @@ -34201,8 +34167,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.6.0.tgz", "integrity": "sha512-ELO9yf0cNqpzaNLsfFgXd/wxZVYkE2+ECUwhMHUD4PZ17kcsPsYsVyjquiRqyMn2jkd2sHt0IeMyAyq1MC23Fw==", - "dev": true, - "requires": {} + "dev": true }, "karma-source-map-support": { "version": "1.4.0", @@ -36914,15 +36879,13 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "requires": {} + "dev": true }, "postcss-gap-properties": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", - "dev": true, - "requires": {} + "dev": true }, "postcss-html": { "version": "0.36.0", @@ -36957,8 +36920,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-lab-function": { "version": "4.2.1", @@ -37022,15 +36984,13 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true, - "requires": {} + "dev": true }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-media-query-parser": { "version": "0.2.3", @@ -37042,8 +37002,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -37103,8 +37062,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-place": { "version": "7.0.5", @@ -37201,8 +37159,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-resolve-nested-selector": { "version": "0.1.1", @@ -37345,8 +37302,7 @@ "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", - "dev": true, - "requires": {} + "dev": true }, "postcss-value-parser": { "version": "4.2.0", @@ -39657,8 +39613,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-5.0.0.tgz", "integrity": "sha512-c8aubuARSu5A3vEHLBeOSJt1udOdS+1iue7BmJDTSXoCBmfEQmmWX+59vYIj3NQdJBY6a/QRv1ozVFpaB9jaqA==", - "dev": true, - "requires": {} + "dev": true }, "stylelint-config-standard": { "version": "22.0.0", @@ -41347,8 +41302,7 @@ "version": "8.8.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "dev": true, - "requires": {} + "dev": true } } }, @@ -41569,8 +41523,7 @@ "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true, - "requires": {} + "dev": true }, "xhr": { "version": "2.6.0", diff --git a/package.json b/package.json index 98fe9c22d..b7656dfe3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "capture-lite", - "version": "0.88.6", + "version": "0.88.7", "author": "numbersprotocol", "homepage": "https://numbersprotocol.io/", "scripts": { From dafe6ef735823446547a0bd045d86e3a731a7d24 Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Wed, 31 Jan 2024 09:40:32 +0800 Subject: [PATCH 5/6] chore: bump app version to 0.88.8 --- android/app/build.gradle | 4 ++-- ios/App/App.xcodeproj/project.pbxproj | 8 ++++---- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index e280f95f5..b758ec995 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "io.numbersprotocol.capturelite" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 887 - versionName "0.88.7" + versionCode 888 + versionName "0.88.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildFeatures { diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index cdd0c69c8..7d7e526a7 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -368,13 +368,13 @@ CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 887; + CURRENT_PROJECT_VERSION = 888; DEVELOPMENT_TEAM = G7NB5YCKAP; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = G7NB5YCKAP; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.88.7; + MARKETING_VERSION = 0.88.8; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = io.numbersprotocol.capturelite; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -395,13 +395,13 @@ CODE_SIGN_ENTITLEMENTS = App/App.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 887; + CURRENT_PROJECT_VERSION = 888; DEVELOPMENT_TEAM = G7NB5YCKAP; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = G7NB5YCKAP; INFOPLIST_FILE = App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 0.88.7; + MARKETING_VERSION = 0.88.8; PRODUCT_BUNDLE_IDENTIFIER = io.numbersprotocol.capturelite; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = NumbersAppDistributionV4; diff --git a/package-lock.json b/package-lock.json index 56b0d151c..de83b5f14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "capture-lite", - "version": "0.88.7", + "version": "0.88.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "capture-lite", - "version": "0.88.7", + "version": "0.88.8", "dependencies": { "packages": "^0.0.8", "@angular/animations": "^14.2.0", diff --git a/package.json b/package.json index b7656dfe3..2bf241664 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "capture-lite", - "version": "0.88.7", + "version": "0.88.8", "author": "numbersprotocol", "homepage": "https://numbersprotocol.io/", "scripts": { From beb22e5a20726df6a0de5c1033badb61dbbeb945 Mon Sep 17 00:00:00 2001 From: sultanmyrza Date: Wed, 31 Jan 2024 17:48:15 +0800 Subject: [PATCH 6/6] chore: update CHANGELOG.md for 0.88.8 --- CHANGELOG.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08cb07e28..bc7227424 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,17 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.88.8] - 2024-01-31 + +### Changed + +1. Revert Feat confirm dialog on pull to refresh (#3171) +1. Revert Fix excessive api call (#3157) +1. Revert Feat sort assets in VERIFIED tab by uploaded_at (#3158) + ## [0.88.6] - 2024-01-11 ### Added -Feature update the NSE domain (#3161) -Feat confirm dialog on pull to refresh (#3171) -Feat sort assets in VERIFIED tab by uploaded_at (#3158) +1. Feature update the NSE domain (#3161) +1. Feat confirm dialog on pull to refresh (#3171) +1. Feat sort assets in VERIFIED tab by uploaded_at (#3158) ### Fixed -Fix excessive api call (#3157) +1. Fix excessive api call (#3157) ## [0.87.1] - 2023-12-04 @@ -2238,7 +2246,8 @@ This is the first release! _Capture Lite_ is a cross-platform app adapted from [ - Web - see the demo [here](https://github.com/numbersprotocol/capture-lite#demo-app) - Android - the APK file `app-debug.apk` is attached to this release -[unreleased]: https://github.com/numbersprotocol/capture-lite/compare/0.88.6...HEAD +[unreleased]: https://github.com/numbersprotocol/capture-lite/compare/0.88.8...HEAD +[0.88.8]: https://github.com/numbersprotocol/capture-lite/compare/0.88.6...0.88.8 [0.88.6]: https://github.com/numbersprotocol/capture-lite/compare/0.87.1...0.88.6 [0.87.1]: https://github.com/numbersprotocol/capture-lite/compare/0.87.0...0.87.1 [0.87.0]: https://github.com/numbersprotocol/capture-lite/compare/0.86.4...0.87.0