@chipmobilesdk/rn-local-db 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +160 -1
- package/README.md +99 -19
- package/lib/commonjs/adapter/budgets.js +79 -0
- package/lib/commonjs/adapter/budgets.js.map +1 -0
- package/lib/commonjs/adapter/collection.js +236 -0
- package/lib/commonjs/adapter/collection.js.map +1 -0
- package/lib/commonjs/adapter/deletion.js +291 -0
- package/lib/commonjs/adapter/deletion.js.map +1 -0
- package/lib/commonjs/adapter/handle.js +259 -0
- package/lib/commonjs/adapter/handle.js.map +1 -0
- package/lib/commonjs/adapter/index.js +67 -0
- package/lib/commonjs/adapter/index.js.map +1 -0
- package/lib/commonjs/adapter/lifecycle.js +176 -0
- package/lib/commonjs/adapter/lifecycle.js.map +1 -0
- package/lib/commonjs/adapter/schema-sync.js +124 -0
- package/lib/commonjs/adapter/schema-sync.js.map +1 -0
- package/lib/commonjs/adapter/transaction.js +58 -0
- package/lib/commonjs/adapter/transaction.js.map +1 -0
- package/lib/commonjs/artifacts/availability.js +90 -0
- package/lib/commonjs/artifacts/availability.js.map +1 -0
- package/lib/commonjs/artifacts/cascade.js +80 -0
- package/lib/commonjs/artifacts/cascade.js.map +1 -0
- package/lib/commonjs/artifacts/paths.js +31 -0
- package/lib/commonjs/artifacts/paths.js.map +1 -0
- package/lib/commonjs/artifacts/reconcile.js +55 -0
- package/lib/commonjs/artifacts/reconcile.js.map +1 -0
- package/lib/commonjs/artifacts/store.js +300 -0
- package/lib/commonjs/artifacts/store.js.map +1 -0
- package/lib/commonjs/contract/adapter.js +6 -0
- package/lib/commonjs/contract/adapter.js.map +1 -0
- package/lib/commonjs/contract/attachment.js +2 -0
- package/lib/commonjs/contract/attachment.js.map +1 -0
- package/lib/commonjs/contract/backup.js +2 -0
- package/lib/commonjs/contract/backup.js.map +1 -0
- package/lib/commonjs/contract/config.js +31 -0
- package/lib/commonjs/contract/config.js.map +1 -0
- package/lib/commonjs/contract/encryption.js +6 -0
- package/lib/commonjs/contract/encryption.js.map +1 -0
- package/lib/commonjs/contract/errors.js +64 -0
- package/lib/commonjs/contract/errors.js.map +1 -0
- package/lib/commonjs/contract/migration.js +6 -0
- package/lib/commonjs/contract/migration.js.map +1 -0
- package/lib/commonjs/contract/query.js +6 -0
- package/lib/commonjs/contract/query.js.map +1 -0
- package/lib/commonjs/contract/record.js +6 -0
- package/lib/commonjs/contract/record.js.map +1 -0
- package/lib/commonjs/contract/schema.js +2 -0
- package/lib/commonjs/contract/schema.js.map +1 -0
- package/lib/commonjs/contract/scope.js +2 -0
- package/lib/commonjs/contract/scope.js.map +1 -0
- package/lib/commonjs/contract/transaction.js +6 -0
- package/lib/commonjs/contract/transaction.js.map +1 -0
- package/lib/commonjs/crypto/chunked-cipher.js +147 -0
- package/lib/commonjs/crypto/chunked-cipher.js.map +1 -0
- package/lib/commonjs/crypto/derive.js +61 -0
- package/lib/commonjs/crypto/derive.js.map +1 -0
- package/lib/commonjs/crypto/key-provider.js +70 -0
- package/lib/commonjs/crypto/key-provider.js.map +1 -0
- package/lib/commonjs/crypto/provider.js +54 -0
- package/lib/commonjs/crypto/provider.js.map +1 -0
- package/lib/commonjs/diagnostics/dev-log.js +127 -0
- package/lib/commonjs/diagnostics/dev-log.js.map +1 -0
- package/lib/commonjs/diagnostics/errors.js +57 -0
- package/lib/commonjs/diagnostics/errors.js.map +1 -0
- package/lib/commonjs/diagnostics/faults.js +54 -0
- package/lib/commonjs/diagnostics/faults.js.map +1 -0
- package/lib/commonjs/diagnostics/map-native.js +98 -0
- package/lib/commonjs/diagnostics/map-native.js.map +1 -0
- package/lib/commonjs/diagnostics/redact.js +110 -0
- package/lib/commonjs/diagnostics/redact.js.map +1 -0
- package/lib/commonjs/index.js +70 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/migration/executor.js +136 -0
- package/lib/commonjs/migration/executor.js.map +1 -0
- package/lib/commonjs/migration/ledger.js +64 -0
- package/lib/commonjs/migration/ledger.js.map +1 -0
- package/lib/commonjs/migration/validate-chain.js +76 -0
- package/lib/commonjs/migration/validate-chain.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/platform/backup-android-verify.js +76 -0
- package/lib/commonjs/platform/backup-android-verify.js.map +1 -0
- package/lib/commonjs/platform/backup-ios.js +50 -0
- package/lib/commonjs/platform/backup-ios.js.map +1 -0
- package/lib/commonjs/platform/bytes.js +158 -0
- package/lib/commonjs/platform/bytes.js.map +1 -0
- package/lib/commonjs/platform/fs.js +59 -0
- package/lib/commonjs/platform/fs.js.map +1 -0
- package/lib/commonjs/platform/location.js +129 -0
- package/lib/commonjs/platform/location.js.map +1 -0
- package/lib/commonjs/query/budgets.js +95 -0
- package/lib/commonjs/query/budgets.js.map +1 -0
- package/lib/commonjs/query/compare.js +97 -0
- package/lib/commonjs/query/compare.js.map +1 -0
- package/lib/commonjs/query/cursor.js +97 -0
- package/lib/commonjs/query/cursor.js.map +1 -0
- package/lib/commonjs/query/filter.js +82 -0
- package/lib/commonjs/query/filter.js.map +1 -0
- package/lib/commonjs/query/paginate.js +48 -0
- package/lib/commonjs/query/paginate.js.map +1 -0
- package/lib/commonjs/query/sort.js +61 -0
- package/lib/commonjs/query/sort.js.map +1 -0
- package/lib/commonjs/query/validate.js +180 -0
- package/lib/commonjs/query/validate.js.map +1 -0
- package/lib/commonjs/schema/declare.js +47 -0
- package/lib/commonjs/schema/declare.js.map +1 -0
- package/lib/commonjs/schema/validate-config.js +115 -0
- package/lib/commonjs/schema/validate-config.js.map +1 -0
- package/lib/commonjs/scope/hash.js +107 -0
- package/lib/commonjs/scope/hash.js.map +1 -0
- package/lib/commonjs/scope/normalize.js +73 -0
- package/lib/commonjs/scope/normalize.js.map +1 -0
- package/lib/commonjs/scope/validate.js +81 -0
- package/lib/commonjs/scope/validate.js.map +1 -0
- package/lib/commonjs/sqlite/adapter.js +31 -0
- package/lib/commonjs/sqlite/adapter.js.map +1 -0
- package/lib/commonjs/sqlite/batch.js +218 -0
- package/lib/commonjs/sqlite/batch.js.map +1 -0
- package/lib/commonjs/sqlite/catalog.js +81 -0
- package/lib/commonjs/sqlite/catalog.js.map +1 -0
- package/lib/commonjs/sqlite/connection.js +210 -0
- package/lib/commonjs/sqlite/connection.js.map +1 -0
- package/lib/commonjs/sqlite/index-coverage.js +42 -0
- package/lib/commonjs/sqlite/index-coverage.js.map +1 -0
- package/lib/commonjs/sqlite/native.js +54 -0
- package/lib/commonjs/sqlite/native.js.map +1 -0
- package/lib/commonjs/sqlite/row-codec.js +192 -0
- package/lib/commonjs/sqlite/row-codec.js.map +1 -0
- package/lib/commonjs/sqlite/sql-builder.js +253 -0
- package/lib/commonjs/sqlite/sql-builder.js.map +1 -0
- package/lib/commonjs/sqlite/statements.js +54 -0
- package/lib/commonjs/sqlite/statements.js.map +1 -0
- package/lib/commonjs/sqlite/transaction-queue.js +79 -0
- package/lib/commonjs/sqlite/transaction-queue.js.map +1 -0
- package/lib/commonjs/sqlite/transactions.js +33 -0
- package/lib/commonjs/sqlite/transactions.js.map +1 -0
- package/lib/commonjs/sqlite/values.js +31 -0
- package/lib/commonjs/sqlite/values.js.map +1 -0
- package/lib/commonjs/testing/conformance/attachments.js +180 -0
- package/lib/commonjs/testing/conformance/attachments.js.map +1 -0
- package/lib/commonjs/testing/conformance/encryption.js +187 -0
- package/lib/commonjs/testing/conformance/encryption.js.map +1 -0
- package/lib/commonjs/testing/conformance/index.js +103 -0
- package/lib/commonjs/testing/conformance/index.js.map +1 -0
- package/lib/commonjs/testing/conformance/lifecycle.js +134 -0
- package/lib/commonjs/testing/conformance/lifecycle.js.map +1 -0
- package/lib/commonjs/testing/conformance/migrations.js +167 -0
- package/lib/commonjs/testing/conformance/migrations.js.map +1 -0
- package/lib/commonjs/testing/conformance/queries.js +278 -0
- package/lib/commonjs/testing/conformance/queries.js.map +1 -0
- package/lib/commonjs/testing/conformance/records.js +224 -0
- package/lib/commonjs/testing/conformance/records.js.map +1 -0
- package/lib/commonjs/testing/conformance/scopes.js +107 -0
- package/lib/commonjs/testing/conformance/scopes.js.map +1 -0
- package/lib/commonjs/testing/conformance/transactions.js +228 -0
- package/lib/commonjs/testing/conformance/transactions.js.map +1 -0
- package/lib/commonjs/testing/faults.js +38 -0
- package/lib/commonjs/testing/faults.js.map +1 -0
- package/lib/commonjs/testing/index.js +59 -0
- package/lib/commonjs/testing/index.js.map +1 -0
- package/lib/commonjs/testing/memory-adapter/attachments.js +145 -0
- package/lib/commonjs/testing/memory-adapter/attachments.js.map +1 -0
- package/lib/commonjs/testing/memory-adapter/collection.js +224 -0
- package/lib/commonjs/testing/memory-adapter/collection.js.map +1 -0
- package/lib/commonjs/testing/memory-adapter/index.js +366 -0
- package/lib/commonjs/testing/memory-adapter/index.js.map +1 -0
- package/lib/commonjs/testing/memory-adapter/migrations.js +126 -0
- package/lib/commonjs/testing/memory-adapter/migrations.js.map +1 -0
- package/lib/commonjs/testing/memory-adapter/reset.js +49 -0
- package/lib/commonjs/testing/memory-adapter/reset.js.map +1 -0
- package/lib/commonjs/testing/memory-adapter/store.js +107 -0
- package/lib/commonjs/testing/memory-adapter/store.js.map +1 -0
- package/lib/module/adapter/budgets.js +51 -0
- package/lib/module/adapter/budgets.js.map +1 -0
- package/lib/module/adapter/collection.js +232 -0
- package/lib/module/adapter/collection.js.map +1 -0
- package/lib/module/adapter/deletion.js +280 -0
- package/lib/module/adapter/deletion.js.map +1 -0
- package/lib/module/adapter/handle.js +254 -0
- package/lib/module/adapter/handle.js.map +1 -0
- package/lib/module/adapter/index.js +59 -0
- package/lib/module/adapter/index.js.map +1 -0
- package/lib/module/adapter/lifecycle.js +172 -0
- package/lib/module/adapter/lifecycle.js.map +1 -0
- package/lib/module/adapter/schema-sync.js +121 -0
- package/lib/module/adapter/schema-sync.js.map +1 -0
- package/lib/module/adapter/transaction.js +54 -0
- package/lib/module/adapter/transaction.js.map +1 -0
- package/lib/module/artifacts/availability.js +86 -0
- package/lib/module/artifacts/availability.js.map +1 -0
- package/lib/module/artifacts/cascade.js +75 -0
- package/lib/module/artifacts/cascade.js.map +1 -0
- package/lib/module/artifacts/paths.js +26 -0
- package/lib/module/artifacts/paths.js.map +1 -0
- package/lib/module/artifacts/reconcile.js +51 -0
- package/lib/module/artifacts/reconcile.js.map +1 -0
- package/lib/module/artifacts/store.js +289 -0
- package/lib/module/artifacts/store.js.map +1 -0
- package/lib/module/contract/adapter.js +4 -0
- package/lib/module/contract/adapter.js.map +1 -0
- package/lib/module/contract/attachment.js +2 -0
- package/lib/module/contract/attachment.js.map +1 -0
- package/lib/module/contract/backup.js +2 -0
- package/lib/module/contract/backup.js.map +1 -0
- package/lib/module/contract/config.js +27 -0
- package/lib/module/contract/config.js.map +1 -0
- package/lib/module/contract/encryption.js +4 -0
- package/lib/module/contract/encryption.js.map +1 -0
- package/lib/module/contract/errors.js +60 -0
- package/lib/module/contract/errors.js.map +1 -0
- package/lib/module/contract/migration.js +4 -0
- package/lib/module/contract/migration.js.map +1 -0
- package/lib/module/contract/query.js +4 -0
- package/lib/module/contract/query.js.map +1 -0
- package/lib/module/contract/record.js +4 -0
- package/lib/module/contract/record.js.map +1 -0
- package/lib/module/contract/schema.js +2 -0
- package/lib/module/contract/schema.js.map +1 -0
- package/lib/module/contract/scope.js +2 -0
- package/lib/module/contract/scope.js.map +1 -0
- package/lib/module/contract/transaction.js +4 -0
- package/lib/module/contract/transaction.js.map +1 -0
- package/lib/module/crypto/chunked-cipher.js +134 -0
- package/lib/module/crypto/chunked-cipher.js.map +1 -0
- package/lib/module/crypto/derive.js +56 -0
- package/lib/module/crypto/derive.js.map +1 -0
- package/lib/module/crypto/key-provider.js +67 -0
- package/lib/module/crypto/key-provider.js.map +1 -0
- package/lib/module/crypto/provider.js +49 -0
- package/lib/module/crypto/provider.js.map +1 -0
- package/lib/module/diagnostics/dev-log.js +120 -0
- package/lib/module/diagnostics/dev-log.js.map +1 -0
- package/lib/module/diagnostics/errors.js +44 -0
- package/lib/module/diagnostics/errors.js.map +1 -0
- package/lib/module/diagnostics/faults.js +47 -0
- package/lib/module/diagnostics/faults.js.map +1 -0
- package/lib/module/diagnostics/map-native.js +93 -0
- package/lib/module/diagnostics/map-native.js.map +1 -0
- package/lib/module/diagnostics/redact.js +102 -0
- package/lib/module/diagnostics/redact.js.map +1 -0
- package/lib/module/index.js +28 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/migration/executor.js +132 -0
- package/lib/module/migration/executor.js.map +1 -0
- package/lib/module/migration/ledger.js +57 -0
- package/lib/module/migration/ledger.js.map +1 -0
- package/lib/module/migration/validate-chain.js +70 -0
- package/lib/module/migration/validate-chain.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/platform/backup-android-verify.js +69 -0
- package/lib/module/platform/backup-android-verify.js.map +1 -0
- package/lib/module/platform/backup-ios.js +44 -0
- package/lib/module/platform/backup-ios.js.map +1 -0
- package/lib/module/platform/bytes.js +148 -0
- package/lib/module/platform/bytes.js.map +1 -0
- package/lib/module/platform/fs.js +54 -0
- package/lib/module/platform/fs.js.map +1 -0
- package/lib/module/platform/location.js +120 -0
- package/lib/module/platform/location.js.map +1 -0
- package/lib/module/query/budgets.js +88 -0
- package/lib/module/query/budgets.js.map +1 -0
- package/lib/module/query/compare.js +90 -0
- package/lib/module/query/compare.js.map +1 -0
- package/lib/module/query/cursor.js +91 -0
- package/lib/module/query/cursor.js.map +1 -0
- package/lib/module/query/filter.js +78 -0
- package/lib/module/query/filter.js.map +1 -0
- package/lib/module/query/paginate.js +40 -0
- package/lib/module/query/paginate.js.map +1 -0
- package/lib/module/query/sort.js +53 -0
- package/lib/module/query/sort.js.map +1 -0
- package/lib/module/query/validate.js +173 -0
- package/lib/module/query/validate.js.map +1 -0
- package/lib/module/schema/declare.js +37 -0
- package/lib/module/schema/declare.js.map +1 -0
- package/lib/module/schema/validate-config.js +111 -0
- package/lib/module/schema/validate-config.js.map +1 -0
- package/lib/module/scope/hash.js +102 -0
- package/lib/module/scope/hash.js.map +1 -0
- package/lib/module/scope/normalize.js +67 -0
- package/lib/module/scope/normalize.js.map +1 -0
- package/lib/module/scope/validate.js +76 -0
- package/lib/module/scope/validate.js.map +1 -0
- package/lib/module/sqlite/adapter.js +27 -0
- package/lib/module/sqlite/adapter.js.map +1 -0
- package/lib/module/sqlite/batch.js +214 -0
- package/lib/module/sqlite/batch.js.map +1 -0
- package/lib/module/sqlite/catalog.js +72 -0
- package/lib/module/sqlite/catalog.js.map +1 -0
- package/lib/module/sqlite/connection.js +206 -0
- package/lib/module/sqlite/connection.js.map +1 -0
- package/lib/module/sqlite/index-coverage.js +38 -0
- package/lib/module/sqlite/index-coverage.js.map +1 -0
- package/lib/module/sqlite/native.js +48 -0
- package/lib/module/sqlite/native.js.map +1 -0
- package/lib/module/sqlite/row-codec.js +176 -0
- package/lib/module/sqlite/row-codec.js.map +1 -0
- package/lib/module/sqlite/sql-builder.js +247 -0
- package/lib/module/sqlite/sql-builder.js.map +1 -0
- package/lib/module/sqlite/statements.js +49 -0
- package/lib/module/sqlite/statements.js.map +1 -0
- package/lib/module/sqlite/transaction-queue.js +75 -0
- package/lib/module/sqlite/transaction-queue.js.map +1 -0
- package/lib/module/sqlite/transactions.js +29 -0
- package/lib/module/sqlite/transactions.js.map +1 -0
- package/lib/module/sqlite/values.js +24 -0
- package/lib/module/sqlite/values.js.map +1 -0
- package/lib/module/testing/conformance/attachments.js +176 -0
- package/lib/module/testing/conformance/attachments.js.map +1 -0
- package/lib/module/testing/conformance/encryption.js +183 -0
- package/lib/module/testing/conformance/encryption.js.map +1 -0
- package/lib/module/testing/conformance/index.js +97 -0
- package/lib/module/testing/conformance/index.js.map +1 -0
- package/lib/module/testing/conformance/lifecycle.js +130 -0
- package/lib/module/testing/conformance/lifecycle.js.map +1 -0
- package/lib/module/testing/conformance/migrations.js +163 -0
- package/lib/module/testing/conformance/migrations.js.map +1 -0
- package/lib/module/testing/conformance/queries.js +274 -0
- package/lib/module/testing/conformance/queries.js.map +1 -0
- package/lib/module/testing/conformance/records.js +220 -0
- package/lib/module/testing/conformance/records.js.map +1 -0
- package/lib/module/testing/conformance/scopes.js +103 -0
- package/lib/module/testing/conformance/scopes.js.map +1 -0
- package/lib/module/testing/conformance/transactions.js +224 -0
- package/lib/module/testing/conformance/transactions.js.map +1 -0
- package/lib/module/testing/faults.js +16 -0
- package/lib/module/testing/faults.js.map +1 -0
- package/lib/module/testing/index.js +16 -0
- package/lib/module/testing/index.js.map +1 -0
- package/lib/module/testing/memory-adapter/attachments.js +142 -0
- package/lib/module/testing/memory-adapter/attachments.js.map +1 -0
- package/lib/module/testing/memory-adapter/collection.js +220 -0
- package/lib/module/testing/memory-adapter/collection.js.map +1 -0
- package/lib/module/testing/memory-adapter/index.js +351 -0
- package/lib/module/testing/memory-adapter/index.js.map +1 -0
- package/lib/module/testing/memory-adapter/migrations.js +122 -0
- package/lib/module/testing/memory-adapter/migrations.js.map +1 -0
- package/lib/module/testing/memory-adapter/reset.js +44 -0
- package/lib/module/testing/memory-adapter/reset.js.map +1 -0
- package/lib/module/testing/memory-adapter/store.js +94 -0
- package/lib/module/testing/memory-adapter/store.js.map +1 -0
- package/lib/typescript/commonjs/adapter/budgets.d.ts +19 -0
- package/lib/typescript/commonjs/adapter/budgets.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/collection.d.ts +25 -0
- package/lib/typescript/commonjs/adapter/collection.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/deletion.d.ts +48 -0
- package/lib/typescript/commonjs/adapter/deletion.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/handle.d.ts +30 -0
- package/lib/typescript/commonjs/adapter/handle.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/index.d.ts +30 -0
- package/lib/typescript/commonjs/adapter/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/lifecycle.d.ts +25 -0
- package/lib/typescript/commonjs/adapter/lifecycle.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/schema-sync.d.ts +19 -0
- package/lib/typescript/commonjs/adapter/schema-sync.d.ts.map +1 -0
- package/lib/typescript/commonjs/adapter/transaction.d.ts +32 -0
- package/lib/typescript/commonjs/adapter/transaction.d.ts.map +1 -0
- package/lib/typescript/commonjs/artifacts/availability.d.ts +19 -0
- package/lib/typescript/commonjs/artifacts/availability.d.ts.map +1 -0
- package/lib/typescript/commonjs/artifacts/cascade.d.ts +26 -0
- package/lib/typescript/commonjs/artifacts/cascade.d.ts.map +1 -0
- package/lib/typescript/commonjs/artifacts/paths.d.ts +16 -0
- package/lib/typescript/commonjs/artifacts/paths.d.ts.map +1 -0
- package/lib/typescript/commonjs/artifacts/reconcile.d.ts +23 -0
- package/lib/typescript/commonjs/artifacts/reconcile.d.ts.map +1 -0
- package/lib/typescript/commonjs/artifacts/store.d.ts +45 -0
- package/lib/typescript/commonjs/artifacts/store.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/adapter.d.ts +55 -0
- package/lib/typescript/commonjs/contract/adapter.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/attachment.d.ts +84 -0
- package/lib/typescript/commonjs/contract/attachment.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/backup.d.ts +26 -0
- package/lib/typescript/commonjs/contract/backup.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/config.d.ts +50 -0
- package/lib/typescript/commonjs/contract/config.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/encryption.d.ts +31 -0
- package/lib/typescript/commonjs/contract/encryption.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/errors.d.ts +50 -0
- package/lib/typescript/commonjs/contract/errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/migration.d.ts +37 -0
- package/lib/typescript/commonjs/contract/migration.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/query.d.ts +79 -0
- package/lib/typescript/commonjs/contract/query.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/record.d.ts +43 -0
- package/lib/typescript/commonjs/contract/record.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/schema.d.ts +33 -0
- package/lib/typescript/commonjs/contract/schema.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/scope.d.ts +33 -0
- package/lib/typescript/commonjs/contract/scope.d.ts.map +1 -0
- package/lib/typescript/commonjs/contract/transaction.d.ts +66 -0
- package/lib/typescript/commonjs/contract/transaction.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/chunked-cipher.d.ts +57 -0
- package/lib/typescript/commonjs/crypto/chunked-cipher.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/derive.d.ts +28 -0
- package/lib/typescript/commonjs/crypto/derive.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/key-provider.d.ts +30 -0
- package/lib/typescript/commonjs/crypto/key-provider.d.ts.map +1 -0
- package/lib/typescript/commonjs/crypto/provider.d.ts +35 -0
- package/lib/typescript/commonjs/crypto/provider.d.ts.map +1 -0
- package/lib/typescript/commonjs/diagnostics/dev-log.d.ts +35 -0
- package/lib/typescript/commonjs/diagnostics/dev-log.d.ts.map +1 -0
- package/lib/typescript/commonjs/diagnostics/errors.d.ts +34 -0
- package/lib/typescript/commonjs/diagnostics/errors.d.ts.map +1 -0
- package/lib/typescript/commonjs/diagnostics/faults.d.ts +26 -0
- package/lib/typescript/commonjs/diagnostics/faults.d.ts.map +1 -0
- package/lib/typescript/commonjs/diagnostics/map-native.d.ts +31 -0
- package/lib/typescript/commonjs/diagnostics/map-native.d.ts.map +1 -0
- package/lib/typescript/commonjs/diagnostics/redact.d.ts +70 -0
- package/lib/typescript/commonjs/diagnostics/redact.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +30 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/migration/executor.d.ts +40 -0
- package/lib/typescript/commonjs/migration/executor.d.ts.map +1 -0
- package/lib/typescript/commonjs/migration/ledger.d.ts +34 -0
- package/lib/typescript/commonjs/migration/ledger.d.ts.map +1 -0
- package/lib/typescript/commonjs/migration/validate-chain.d.ts +20 -0
- package/lib/typescript/commonjs/migration/validate-chain.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/platform/backup-android-verify.d.ts +30 -0
- package/lib/typescript/commonjs/platform/backup-android-verify.d.ts.map +1 -0
- package/lib/typescript/commonjs/platform/backup-ios.d.ts +26 -0
- package/lib/typescript/commonjs/platform/backup-ios.d.ts.map +1 -0
- package/lib/typescript/commonjs/platform/bytes.d.ts +36 -0
- package/lib/typescript/commonjs/platform/bytes.d.ts.map +1 -0
- package/lib/typescript/commonjs/platform/fs.d.ts +47 -0
- package/lib/typescript/commonjs/platform/fs.d.ts.map +1 -0
- package/lib/typescript/commonjs/platform/location.d.ts +53 -0
- package/lib/typescript/commonjs/platform/location.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/budgets.d.ts +23 -0
- package/lib/typescript/commonjs/query/budgets.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/compare.d.ts +42 -0
- package/lib/typescript/commonjs/query/compare.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/cursor.d.ts +27 -0
- package/lib/typescript/commonjs/query/cursor.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/filter.d.ts +11 -0
- package/lib/typescript/commonjs/query/filter.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/paginate.d.ts +15 -0
- package/lib/typescript/commonjs/query/paginate.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/sort.d.ts +19 -0
- package/lib/typescript/commonjs/query/sort.d.ts.map +1 -0
- package/lib/typescript/commonjs/query/validate.d.ts +15 -0
- package/lib/typescript/commonjs/query/validate.d.ts.map +1 -0
- package/lib/typescript/commonjs/schema/declare.d.ts +20 -0
- package/lib/typescript/commonjs/schema/declare.d.ts.map +1 -0
- package/lib/typescript/commonjs/schema/validate-config.d.ts +11 -0
- package/lib/typescript/commonjs/schema/validate-config.d.ts.map +1 -0
- package/lib/typescript/commonjs/scope/hash.d.ts +24 -0
- package/lib/typescript/commonjs/scope/hash.d.ts.map +1 -0
- package/lib/typescript/commonjs/scope/normalize.d.ts +46 -0
- package/lib/typescript/commonjs/scope/normalize.d.ts.map +1 -0
- package/lib/typescript/commonjs/scope/validate.d.ts +15 -0
- package/lib/typescript/commonjs/scope/validate.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/adapter.d.ts +16 -0
- package/lib/typescript/commonjs/sqlite/adapter.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/batch.d.ts +25 -0
- package/lib/typescript/commonjs/sqlite/batch.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/catalog.d.ts +34 -0
- package/lib/typescript/commonjs/sqlite/catalog.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/connection.d.ts +58 -0
- package/lib/typescript/commonjs/sqlite/connection.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/index-coverage.d.ts +18 -0
- package/lib/typescript/commonjs/sqlite/index-coverage.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/native.d.ts +48 -0
- package/lib/typescript/commonjs/sqlite/native.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/row-codec.d.ts +69 -0
- package/lib/typescript/commonjs/sqlite/row-codec.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/sql-builder.d.ts +34 -0
- package/lib/typescript/commonjs/sqlite/sql-builder.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/statements.d.ts +26 -0
- package/lib/typescript/commonjs/sqlite/statements.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/transaction-queue.d.ts +31 -0
- package/lib/typescript/commonjs/sqlite/transaction-queue.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/transactions.d.ts +26 -0
- package/lib/typescript/commonjs/sqlite/transactions.d.ts.map +1 -0
- package/lib/typescript/commonjs/sqlite/values.d.ts +13 -0
- package/lib/typescript/commonjs/sqlite/values.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/attachments.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/attachments.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/encryption.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/encryption.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/index.d.ts +58 -0
- package/lib/typescript/commonjs/testing/conformance/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/lifecycle.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/lifecycle.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/migrations.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/migrations.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/queries.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/queries.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/records.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/records.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/scopes.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/scopes.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/conformance/transactions.d.ts +4 -0
- package/lib/typescript/commonjs/testing/conformance/transactions.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/faults.d.ts +13 -0
- package/lib/typescript/commonjs/testing/faults.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/index.d.ts +13 -0
- package/lib/typescript/commonjs/testing/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/memory-adapter/attachments.d.ts +23 -0
- package/lib/typescript/commonjs/testing/memory-adapter/attachments.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/memory-adapter/collection.d.ts +19 -0
- package/lib/typescript/commonjs/testing/memory-adapter/collection.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/memory-adapter/index.d.ts +22 -0
- package/lib/typescript/commonjs/testing/memory-adapter/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/memory-adapter/migrations.d.ts +11 -0
- package/lib/typescript/commonjs/testing/memory-adapter/migrations.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/memory-adapter/reset.d.ts +23 -0
- package/lib/typescript/commonjs/testing/memory-adapter/reset.d.ts.map +1 -0
- package/lib/typescript/commonjs/testing/memory-adapter/store.d.ts +54 -0
- package/lib/typescript/commonjs/testing/memory-adapter/store.d.ts.map +1 -0
- package/lib/typescript/module/adapter/budgets.d.ts +19 -0
- package/lib/typescript/module/adapter/budgets.d.ts.map +1 -0
- package/lib/typescript/module/adapter/collection.d.ts +25 -0
- package/lib/typescript/module/adapter/collection.d.ts.map +1 -0
- package/lib/typescript/module/adapter/deletion.d.ts +48 -0
- package/lib/typescript/module/adapter/deletion.d.ts.map +1 -0
- package/lib/typescript/module/adapter/handle.d.ts +30 -0
- package/lib/typescript/module/adapter/handle.d.ts.map +1 -0
- package/lib/typescript/module/adapter/index.d.ts +30 -0
- package/lib/typescript/module/adapter/index.d.ts.map +1 -0
- package/lib/typescript/module/adapter/lifecycle.d.ts +25 -0
- package/lib/typescript/module/adapter/lifecycle.d.ts.map +1 -0
- package/lib/typescript/module/adapter/schema-sync.d.ts +19 -0
- package/lib/typescript/module/adapter/schema-sync.d.ts.map +1 -0
- package/lib/typescript/module/adapter/transaction.d.ts +32 -0
- package/lib/typescript/module/adapter/transaction.d.ts.map +1 -0
- package/lib/typescript/module/artifacts/availability.d.ts +19 -0
- package/lib/typescript/module/artifacts/availability.d.ts.map +1 -0
- package/lib/typescript/module/artifacts/cascade.d.ts +26 -0
- package/lib/typescript/module/artifacts/cascade.d.ts.map +1 -0
- package/lib/typescript/module/artifacts/paths.d.ts +16 -0
- package/lib/typescript/module/artifacts/paths.d.ts.map +1 -0
- package/lib/typescript/module/artifacts/reconcile.d.ts +23 -0
- package/lib/typescript/module/artifacts/reconcile.d.ts.map +1 -0
- package/lib/typescript/module/artifacts/store.d.ts +45 -0
- package/lib/typescript/module/artifacts/store.d.ts.map +1 -0
- package/lib/typescript/module/contract/adapter.d.ts +55 -0
- package/lib/typescript/module/contract/adapter.d.ts.map +1 -0
- package/lib/typescript/module/contract/attachment.d.ts +84 -0
- package/lib/typescript/module/contract/attachment.d.ts.map +1 -0
- package/lib/typescript/module/contract/backup.d.ts +26 -0
- package/lib/typescript/module/contract/backup.d.ts.map +1 -0
- package/lib/typescript/module/contract/config.d.ts +50 -0
- package/lib/typescript/module/contract/config.d.ts.map +1 -0
- package/lib/typescript/module/contract/encryption.d.ts +31 -0
- package/lib/typescript/module/contract/encryption.d.ts.map +1 -0
- package/lib/typescript/module/contract/errors.d.ts +50 -0
- package/lib/typescript/module/contract/errors.d.ts.map +1 -0
- package/lib/typescript/module/contract/migration.d.ts +37 -0
- package/lib/typescript/module/contract/migration.d.ts.map +1 -0
- package/lib/typescript/module/contract/query.d.ts +79 -0
- package/lib/typescript/module/contract/query.d.ts.map +1 -0
- package/lib/typescript/module/contract/record.d.ts +43 -0
- package/lib/typescript/module/contract/record.d.ts.map +1 -0
- package/lib/typescript/module/contract/schema.d.ts +33 -0
- package/lib/typescript/module/contract/schema.d.ts.map +1 -0
- package/lib/typescript/module/contract/scope.d.ts +33 -0
- package/lib/typescript/module/contract/scope.d.ts.map +1 -0
- package/lib/typescript/module/contract/transaction.d.ts +66 -0
- package/lib/typescript/module/contract/transaction.d.ts.map +1 -0
- package/lib/typescript/module/crypto/chunked-cipher.d.ts +57 -0
- package/lib/typescript/module/crypto/chunked-cipher.d.ts.map +1 -0
- package/lib/typescript/module/crypto/derive.d.ts +28 -0
- package/lib/typescript/module/crypto/derive.d.ts.map +1 -0
- package/lib/typescript/module/crypto/key-provider.d.ts +30 -0
- package/lib/typescript/module/crypto/key-provider.d.ts.map +1 -0
- package/lib/typescript/module/crypto/provider.d.ts +35 -0
- package/lib/typescript/module/crypto/provider.d.ts.map +1 -0
- package/lib/typescript/module/diagnostics/dev-log.d.ts +35 -0
- package/lib/typescript/module/diagnostics/dev-log.d.ts.map +1 -0
- package/lib/typescript/module/diagnostics/errors.d.ts +34 -0
- package/lib/typescript/module/diagnostics/errors.d.ts.map +1 -0
- package/lib/typescript/module/diagnostics/faults.d.ts +26 -0
- package/lib/typescript/module/diagnostics/faults.d.ts.map +1 -0
- package/lib/typescript/module/diagnostics/map-native.d.ts +31 -0
- package/lib/typescript/module/diagnostics/map-native.d.ts.map +1 -0
- package/lib/typescript/module/diagnostics/redact.d.ts +70 -0
- package/lib/typescript/module/diagnostics/redact.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +30 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/migration/executor.d.ts +40 -0
- package/lib/typescript/module/migration/executor.d.ts.map +1 -0
- package/lib/typescript/module/migration/ledger.d.ts +34 -0
- package/lib/typescript/module/migration/ledger.d.ts.map +1 -0
- package/lib/typescript/module/migration/validate-chain.d.ts +20 -0
- package/lib/typescript/module/migration/validate-chain.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/platform/backup-android-verify.d.ts +30 -0
- package/lib/typescript/module/platform/backup-android-verify.d.ts.map +1 -0
- package/lib/typescript/module/platform/backup-ios.d.ts +26 -0
- package/lib/typescript/module/platform/backup-ios.d.ts.map +1 -0
- package/lib/typescript/module/platform/bytes.d.ts +36 -0
- package/lib/typescript/module/platform/bytes.d.ts.map +1 -0
- package/lib/typescript/module/platform/fs.d.ts +47 -0
- package/lib/typescript/module/platform/fs.d.ts.map +1 -0
- package/lib/typescript/module/platform/location.d.ts +53 -0
- package/lib/typescript/module/platform/location.d.ts.map +1 -0
- package/lib/typescript/module/query/budgets.d.ts +23 -0
- package/lib/typescript/module/query/budgets.d.ts.map +1 -0
- package/lib/typescript/module/query/compare.d.ts +42 -0
- package/lib/typescript/module/query/compare.d.ts.map +1 -0
- package/lib/typescript/module/query/cursor.d.ts +27 -0
- package/lib/typescript/module/query/cursor.d.ts.map +1 -0
- package/lib/typescript/module/query/filter.d.ts +11 -0
- package/lib/typescript/module/query/filter.d.ts.map +1 -0
- package/lib/typescript/module/query/paginate.d.ts +15 -0
- package/lib/typescript/module/query/paginate.d.ts.map +1 -0
- package/lib/typescript/module/query/sort.d.ts +19 -0
- package/lib/typescript/module/query/sort.d.ts.map +1 -0
- package/lib/typescript/module/query/validate.d.ts +15 -0
- package/lib/typescript/module/query/validate.d.ts.map +1 -0
- package/lib/typescript/module/schema/declare.d.ts +20 -0
- package/lib/typescript/module/schema/declare.d.ts.map +1 -0
- package/lib/typescript/module/schema/validate-config.d.ts +11 -0
- package/lib/typescript/module/schema/validate-config.d.ts.map +1 -0
- package/lib/typescript/module/scope/hash.d.ts +24 -0
- package/lib/typescript/module/scope/hash.d.ts.map +1 -0
- package/lib/typescript/module/scope/normalize.d.ts +46 -0
- package/lib/typescript/module/scope/normalize.d.ts.map +1 -0
- package/lib/typescript/module/scope/validate.d.ts +15 -0
- package/lib/typescript/module/scope/validate.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/adapter.d.ts +16 -0
- package/lib/typescript/module/sqlite/adapter.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/batch.d.ts +25 -0
- package/lib/typescript/module/sqlite/batch.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/catalog.d.ts +34 -0
- package/lib/typescript/module/sqlite/catalog.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/connection.d.ts +58 -0
- package/lib/typescript/module/sqlite/connection.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/index-coverage.d.ts +18 -0
- package/lib/typescript/module/sqlite/index-coverage.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/native.d.ts +48 -0
- package/lib/typescript/module/sqlite/native.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/row-codec.d.ts +69 -0
- package/lib/typescript/module/sqlite/row-codec.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/sql-builder.d.ts +34 -0
- package/lib/typescript/module/sqlite/sql-builder.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/statements.d.ts +26 -0
- package/lib/typescript/module/sqlite/statements.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/transaction-queue.d.ts +31 -0
- package/lib/typescript/module/sqlite/transaction-queue.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/transactions.d.ts +26 -0
- package/lib/typescript/module/sqlite/transactions.d.ts.map +1 -0
- package/lib/typescript/module/sqlite/values.d.ts +13 -0
- package/lib/typescript/module/sqlite/values.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/attachments.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/attachments.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/encryption.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/encryption.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/index.d.ts +58 -0
- package/lib/typescript/module/testing/conformance/index.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/lifecycle.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/lifecycle.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/migrations.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/migrations.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/queries.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/queries.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/records.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/records.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/scopes.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/scopes.d.ts.map +1 -0
- package/lib/typescript/module/testing/conformance/transactions.d.ts +4 -0
- package/lib/typescript/module/testing/conformance/transactions.d.ts.map +1 -0
- package/lib/typescript/module/testing/faults.d.ts +13 -0
- package/lib/typescript/module/testing/faults.d.ts.map +1 -0
- package/lib/typescript/module/testing/index.d.ts +13 -0
- package/lib/typescript/module/testing/index.d.ts.map +1 -0
- package/lib/typescript/module/testing/memory-adapter/attachments.d.ts +23 -0
- package/lib/typescript/module/testing/memory-adapter/attachments.d.ts.map +1 -0
- package/lib/typescript/module/testing/memory-adapter/collection.d.ts +19 -0
- package/lib/typescript/module/testing/memory-adapter/collection.d.ts.map +1 -0
- package/lib/typescript/module/testing/memory-adapter/index.d.ts +22 -0
- package/lib/typescript/module/testing/memory-adapter/index.d.ts.map +1 -0
- package/lib/typescript/module/testing/memory-adapter/migrations.d.ts +11 -0
- package/lib/typescript/module/testing/memory-adapter/migrations.d.ts.map +1 -0
- package/lib/typescript/module/testing/memory-adapter/reset.d.ts +23 -0
- package/lib/typescript/module/testing/memory-adapter/reset.d.ts.map +1 -0
- package/lib/typescript/module/testing/memory-adapter/store.d.ts +54 -0
- package/lib/typescript/module/testing/memory-adapter/store.d.ts.map +1 -0
- package/package.json +51 -16
- package/skills/sdk-rn-local-db/SKILL.md +1 -1
- package/src/adapter/budgets.ts +1 -10
- package/src/adapter/collection.ts +38 -66
- package/src/adapter/deletion.ts +48 -0
- package/src/adapter/handle.ts +311 -0
- package/src/adapter/lifecycle.ts +10 -338
- package/src/adapter/schema-sync.ts +155 -0
- package/src/artifacts/cascade.ts +0 -14
- package/src/artifacts/store.ts +60 -10
- package/src/contract/attachment.ts +24 -3
- package/src/contract/migration.ts +4 -1
- package/src/crypto/provider.ts +7 -3
- package/src/diagnostics/dev-log.ts +5 -1
- package/src/migration/executor.ts +27 -6
- package/src/migration/ledger.ts +18 -27
- package/src/platform/fs.ts +2 -8
- package/src/platform/location.ts +0 -3
- package/src/query/budgets.ts +32 -5
- package/src/schema/validate-config.ts +3 -53
- package/src/sqlite/batch.ts +40 -51
- package/src/sqlite/connection.ts +0 -9
- package/src/sqlite/row-codec.ts +5 -2
- package/src/sqlite/statements.ts +74 -0
- package/src/testing/index.ts +2 -0
- package/src/testing/memory-adapter/attachments.ts +146 -0
- package/src/testing/memory-adapter/index.ts +13 -111
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_config","require","_errors","_errors2","_faults","_mapNative","_fs","_bytes","_budgets","_chunkedCipher","_values","_paths","CREATE_ATTACHMENTS","CREATE_OWNER_INDEX","ensureAttachmentTable","executor","execute","toReference","row","reference","id","text","contentType","content_type","size","num","createdAt","created_at","owner_collection","owner_id","owner","collection","chunkSize","maybeNum","chunk_size","chunkCount","chunk_count","readReference","result","rows","listReferences","map","listReferencesFor","insertReference","deleteReference","rowsAffected","writePlaintext","path","content","fileSystem","writeFile","writeEncrypted","key","source","header","headerFor","Budgets","ARTIFACT_CHUNK_BYTES","bytesToBase64","encodeHeader","index","chunk","chunkPlaintextLength","appendFile","encryptChunk","sourceFileOf","input","sourcePath","startsWith","slice","length","byteSourceFor","file","raise","DiagnosticCodes","CONFIG_INVALID","message","detail","attachmentId","plaintext","base64ToBytes","offset","subarray","stat","error","raiseNative","operation","read","writeArtifact","context","throwIfFaulted","assertArtifactWithinBudget","artifactPath","layout","scopeKey","artifactKey","chunking","mkdir","artifactsDirectory","copyFile","removeIfPresent","now","readPlaintext","range","readFile","readEncrypted","headerBytes","HEADER_BYTES","decodeHeader","from","to","Math","min","plaintextSize","first","floor","last","pieces","stored","TAG_BYTES","chunkOffset","decrypted","decryptChunk","chunkStart","push","max","concatBytes","readArtifact","isStorageError","ATTACHMENT_MISSING","cause","removeArtifact","deferred","hadReference","add","removedRecords","removedArtifacts","orphanedReferences","failedRemovals","removed"],"sourceRoot":"../../../src","sources":["artifacts/store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/adapter.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/attachment.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/backup.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Budgets = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Database configuration: everything an app supplies at open time.
|
|
9
|
+
*
|
|
10
|
+
* Immutable for the handle's lifetime. Scope in particular is bound here and
|
|
11
|
+
* never changes (FR-008a) — there is no switchScope, and no operation takes a
|
|
12
|
+
* scope argument, which is what makes cross-scope leakage inexpressible
|
|
13
|
+
* rather than merely prevented.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/** Phase-one budgets (FR-088). Confirmed against the harness during validation. */
|
|
17
|
+
const Budgets = exports.Budgets = {
|
|
18
|
+
MAX_RECORDS_PER_COLLECTION: 100_000,
|
|
19
|
+
MAX_RECORD_BYTES: 256 * 1024,
|
|
20
|
+
MAX_BATCH_OPERATIONS: 1_000,
|
|
21
|
+
MAX_PAGE_SIZE: 500,
|
|
22
|
+
MAX_COLLECTIONS_PER_DATABASE: 50,
|
|
23
|
+
MAX_ATTACHMENT_REFERENCES_PER_SCOPE: 50_000,
|
|
24
|
+
MAX_ARTIFACT_BYTES: 100 * 1024 * 1024,
|
|
25
|
+
MAX_OPEN_HANDLES: 8,
|
|
26
|
+
/** Plaintext chunk size for encrypted artifacts (research.md R4). */
|
|
27
|
+
ARTIFACT_CHUNK_BYTES: 256 * 1024
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/** Names a scope for the operations that legitimately need to (FR-059). */
|
|
31
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Budgets","exports","MAX_RECORDS_PER_COLLECTION","MAX_RECORD_BYTES","MAX_BATCH_OPERATIONS","MAX_PAGE_SIZE","MAX_COLLECTIONS_PER_DATABASE","MAX_ATTACHMENT_REFERENCES_PER_SCOPE","MAX_ARTIFACT_BYTES","MAX_OPEN_HANDLES","ARTIFACT_CHUNK_BYTES"],"sourceRoot":"../../../src","sources":["contract/config.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACtBE,0BAA0B,EAAE,OAAO;EACnCC,gBAAgB,EAAE,GAAG,GAAG,IAAI;EAC5BC,oBAAoB,EAAE,KAAK;EAC3BC,aAAa,EAAE,GAAG;EAClBC,4BAA4B,EAAE,EAAE;EAChCC,mCAAmC,EAAE,MAAM;EAC3CC,kBAAkB,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;EACrCC,gBAAgB,EAAE,CAAC;EACnB;EACAC,oBAAoB,EAAE,GAAG,GAAG;AAC7B,CAAU;;AAiBV","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/encryption.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RETRYABLE_CODES = exports.DiagnosticCodes = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Diagnostic codes.
|
|
9
|
+
*
|
|
10
|
+
* Stable identifiers so an app can choose a response without parsing a
|
|
11
|
+
* message (FR-074, FR-082). Disk-full, filesystem-access, and corruption stay
|
|
12
|
+
* distinct rather than collapsing into a generic write failure (FR-076) —
|
|
13
|
+
* an app frees space for one, retries after unlock for another, and offers a
|
|
14
|
+
* reset for the third.
|
|
15
|
+
*
|
|
16
|
+
* Full table with recommended recovery per code:
|
|
17
|
+
* specs/008-rn-local-db-package/contracts/errors.md
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
const DiagnosticCodes = exports.DiagnosticCodes = {
|
|
21
|
+
// Configuration and scope
|
|
22
|
+
CONFIG_INVALID: 'CONFIG_INVALID',
|
|
23
|
+
INVALID_SCOPE: 'INVALID_SCOPE',
|
|
24
|
+
MIGRATION_CONFIG_INVALID: 'MIGRATION_CONFIG_INVALID',
|
|
25
|
+
// Open and lifecycle
|
|
26
|
+
OPEN_FAILED: 'OPEN_FAILED',
|
|
27
|
+
CLOSED_HANDLE: 'CLOSED_HANDLE',
|
|
28
|
+
SCOPE_DELETED: 'SCOPE_DELETED',
|
|
29
|
+
CORRUPTION: 'CORRUPTION',
|
|
30
|
+
STORAGE_ACCESS: 'STORAGE_ACCESS',
|
|
31
|
+
// Migration
|
|
32
|
+
MIGRATION_FAILED: 'MIGRATION_FAILED',
|
|
33
|
+
SCHEMA_DOWNGRADE: 'SCHEMA_DOWNGRADE',
|
|
34
|
+
// Records and writes
|
|
35
|
+
RECORD_NOT_FOUND: 'RECORD_NOT_FOUND',
|
|
36
|
+
RECORD_CONFLICT: 'RECORD_CONFLICT',
|
|
37
|
+
RECORD_TOO_LARGE: 'RECORD_TOO_LARGE',
|
|
38
|
+
BATCH_TOO_LARGE: 'BATCH_TOO_LARGE',
|
|
39
|
+
DISK_FULL: 'DISK_FULL',
|
|
40
|
+
WRITE_FAILED: 'WRITE_FAILED',
|
|
41
|
+
// Query
|
|
42
|
+
QUERY_INVALID: 'QUERY_INVALID',
|
|
43
|
+
PAGE_SIZE_INVALID: 'PAGE_SIZE_INVALID',
|
|
44
|
+
CURSOR_INVALID: 'CURSOR_INVALID',
|
|
45
|
+
// Transaction
|
|
46
|
+
TRANSACTION_FAILED: 'TRANSACTION_FAILED',
|
|
47
|
+
TRANSACTION_STATE: 'TRANSACTION_STATE',
|
|
48
|
+
// Attachments
|
|
49
|
+
ATTACHMENT_MISSING: 'ATTACHMENT_MISSING',
|
|
50
|
+
ATTACHMENT_OUT_OF_BOUNDS: 'ATTACHMENT_OUT_OF_BOUNDS',
|
|
51
|
+
ATTACHMENT_WRITE_FAILED: 'ATTACHMENT_WRITE_FAILED',
|
|
52
|
+
ATTACHMENT_UNDECRYPTABLE: 'ATTACHMENT_UNDECRYPTABLE',
|
|
53
|
+
// Encryption
|
|
54
|
+
KEY_INVALID: 'KEY_INVALID',
|
|
55
|
+
KEY_PROVIDER_FAILED: 'KEY_PROVIDER_FAILED',
|
|
56
|
+
ENCRYPTION_MISMATCH: 'ENCRYPTION_MISMATCH',
|
|
57
|
+
ENCRYPTION_UNAVAILABLE: 'ENCRYPTION_UNAVAILABLE'
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Codes worth retrying. `KEY_PROVIDER_FAILED` is here because a locked device
|
|
61
|
+
* is an expected condition, not a bug (FR-102).
|
|
62
|
+
*/
|
|
63
|
+
const RETRYABLE_CODES = exports.RETRYABLE_CODES = new Set([DiagnosticCodes.OPEN_FAILED, DiagnosticCodes.DISK_FULL, DiagnosticCodes.WRITE_FAILED, DiagnosticCodes.STORAGE_ACCESS, DiagnosticCodes.TRANSACTION_FAILED, DiagnosticCodes.MIGRATION_FAILED, DiagnosticCodes.ATTACHMENT_WRITE_FAILED, DiagnosticCodes.KEY_PROVIDER_FAILED]);
|
|
64
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DiagnosticCodes","exports","CONFIG_INVALID","INVALID_SCOPE","MIGRATION_CONFIG_INVALID","OPEN_FAILED","CLOSED_HANDLE","SCOPE_DELETED","CORRUPTION","STORAGE_ACCESS","MIGRATION_FAILED","SCHEMA_DOWNGRADE","RECORD_NOT_FOUND","RECORD_CONFLICT","RECORD_TOO_LARGE","BATCH_TOO_LARGE","DISK_FULL","WRITE_FAILED","QUERY_INVALID","PAGE_SIZE_INVALID","CURSOR_INVALID","TRANSACTION_FAILED","TRANSACTION_STATE","ATTACHMENT_MISSING","ATTACHMENT_OUT_OF_BOUNDS","ATTACHMENT_WRITE_FAILED","ATTACHMENT_UNDECRYPTABLE","KEY_INVALID","KEY_PROVIDER_FAILED","ENCRYPTION_MISMATCH","ENCRYPTION_UNAVAILABLE","RETRYABLE_CODES","Set"],"sourceRoot":"../../../src","sources":["contract/errors.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC9B;EACAE,cAAc,EAAE,gBAAgB;EAChCC,aAAa,EAAE,eAAe;EAC9BC,wBAAwB,EAAE,0BAA0B;EAEpD;EACAC,WAAW,EAAE,aAAa;EAC1BC,aAAa,EAAE,eAAe;EAC9BC,aAAa,EAAE,eAAe;EAC9BC,UAAU,EAAE,YAAY;EACxBC,cAAc,EAAE,gBAAgB;EAEhC;EACAC,gBAAgB,EAAE,kBAAkB;EACpCC,gBAAgB,EAAE,kBAAkB;EAEpC;EACAC,gBAAgB,EAAE,kBAAkB;EACpCC,eAAe,EAAE,iBAAiB;EAClCC,gBAAgB,EAAE,kBAAkB;EACpCC,eAAe,EAAE,iBAAiB;EAClCC,SAAS,EAAE,WAAW;EACtBC,YAAY,EAAE,cAAc;EAE5B;EACAC,aAAa,EAAE,eAAe;EAC9BC,iBAAiB,EAAE,mBAAmB;EACtCC,cAAc,EAAE,gBAAgB;EAEhC;EACAC,kBAAkB,EAAE,oBAAoB;EACxCC,iBAAiB,EAAE,mBAAmB;EAEtC;EACAC,kBAAkB,EAAE,oBAAoB;EACxCC,wBAAwB,EAAE,0BAA0B;EACpDC,uBAAuB,EAAE,yBAAyB;EAClDC,wBAAwB,EAAE,0BAA0B;EAEpD;EACAC,WAAW,EAAE,aAAa;EAC1BC,mBAAmB,EAAE,qBAAqB;EAC1CC,mBAAmB,EAAE,qBAAqB;EAC1CC,sBAAsB,EAAE;AACzB,CAAU;AAIV;AACA;AACA;AACA;AACO,MAAMC,eAA4C,GAAA9B,OAAA,CAAA8B,eAAA,GAAG,IAAIC,GAAG,CAAiB,CACnFhC,eAAe,CAACK,WAAW,EAC3BL,eAAe,CAACgB,SAAS,EACzBhB,eAAe,CAACiB,YAAY,EAC5BjB,eAAe,CAACS,cAAc,EAC9BT,eAAe,CAACqB,kBAAkB,EAClCrB,eAAe,CAACU,gBAAgB,EAChCV,eAAe,CAACyB,uBAAuB,EACvCzB,eAAe,CAAC4B,mBAAmB,CACnC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/migration.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/query.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/record.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/schema.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/scope.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contract/transaction.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TAG_BYTES = exports.MAGIC = exports.HEADER_BYTES = exports.FORMAT_VERSION = exports.ALGORITHM = void 0;
|
|
7
|
+
exports.chunkCountFor = chunkCountFor;
|
|
8
|
+
exports.chunkOffset = chunkOffset;
|
|
9
|
+
exports.chunkPlaintextLength = chunkPlaintextLength;
|
|
10
|
+
exports.decodeHeader = decodeHeader;
|
|
11
|
+
exports.decryptChunk = decryptChunk;
|
|
12
|
+
exports.encodeHeader = encodeHeader;
|
|
13
|
+
exports.encryptChunk = encryptChunk;
|
|
14
|
+
exports.encryptedLength = encryptedLength;
|
|
15
|
+
exports.headerFor = headerFor;
|
|
16
|
+
var _config = require("../contract/config.js");
|
|
17
|
+
var _errors = require("../contract/errors.js");
|
|
18
|
+
var _errors2 = require("../diagnostics/errors.js");
|
|
19
|
+
var _derive = require("./derive.js");
|
|
20
|
+
var _provider = require("./provider.js");
|
|
21
|
+
var _bytes = require("../platform/bytes.js");
|
|
22
|
+
/**
|
|
23
|
+
* The chunked AES-256-GCM artifact format.
|
|
24
|
+
*
|
|
25
|
+
* Whole-file encryption was rejected because a 100 MB artifact would have to
|
|
26
|
+
* be held in memory twice — plaintext and ciphertext — which breaks FR-107a's
|
|
27
|
+
* flat memory bound and every PERF-001 budget along with it (research.md R4).
|
|
28
|
+
* Chunking keeps exactly one 256 KB chunk in flight regardless of artifact
|
|
29
|
+
* size.
|
|
30
|
+
*
|
|
31
|
+
* ```text
|
|
32
|
+
* [ header 22 bytes ] magic | format version | chunk size | chunk count | plaintext size
|
|
33
|
+
* [ chunk 0 ] ciphertext(≤ chunkSize) | auth tag (16)
|
|
34
|
+
* [ chunk 1 ] …
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* The auth tag follows each chunk rather than sitting in the header, which is
|
|
38
|
+
* a deliberate departure from the sketch in storage-layout.md. A tag is only
|
|
39
|
+
* known after its chunk has been encrypted, and the filesystem peer appends —
|
|
40
|
+
* it cannot seek back to patch a header. Collecting every tag before writing
|
|
41
|
+
* anything would mean buffering the whole ciphertext, which is the thing this
|
|
42
|
+
* format exists to avoid. Inline tags keep the write append-only and leave
|
|
43
|
+
* every chunk at a computable offset.
|
|
44
|
+
*
|
|
45
|
+
* A failing tag on read is `ATTACHMENT_UNDECRYPTABLE`, deliberately distinct
|
|
46
|
+
* from `ATTACHMENT_MISSING` (FR-107c): one is a wrong key or a tampered file
|
|
47
|
+
* and may be recoverable, the other is data that is simply gone.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
const MAGIC = exports.MAGIC = 'LDB1';
|
|
51
|
+
const FORMAT_VERSION = exports.FORMAT_VERSION = 1;
|
|
52
|
+
const HEADER_BYTES = exports.HEADER_BYTES = 22;
|
|
53
|
+
const TAG_BYTES = exports.TAG_BYTES = 16;
|
|
54
|
+
const ALGORITHM = exports.ALGORITHM = 'aes-256-gcm';
|
|
55
|
+
function chunkCountFor(plaintextSize, chunkSize) {
|
|
56
|
+
return plaintextSize === 0 ? 0 : Math.ceil(plaintextSize / chunkSize);
|
|
57
|
+
}
|
|
58
|
+
function encodeHeader(header) {
|
|
59
|
+
const bytes = new Uint8Array(HEADER_BYTES);
|
|
60
|
+
for (let index = 0; index < 4; index += 1) {
|
|
61
|
+
bytes[index] = MAGIC.charCodeAt(index);
|
|
62
|
+
}
|
|
63
|
+
// Big-endian, as DataView writes by default; the on-disk format is unchanged.
|
|
64
|
+
const view = new DataView(bytes.buffer);
|
|
65
|
+
view.setUint16(4, header.formatVersion);
|
|
66
|
+
view.setUint32(6, header.chunkSize);
|
|
67
|
+
view.setUint32(10, header.chunkCount);
|
|
68
|
+
// Split across two 32-bit writes: artifact sizes stay well inside the safe
|
|
69
|
+
// integer range, and this avoids depending on BigInt in Hermes.
|
|
70
|
+
view.setUint32(14, Math.floor(header.plaintextSize / 0x100000000));
|
|
71
|
+
view.setUint32(18, header.plaintextSize % 0x100000000);
|
|
72
|
+
return bytes;
|
|
73
|
+
}
|
|
74
|
+
function decodeHeader(bytes) {
|
|
75
|
+
if (bytes.length < HEADER_BYTES || (0, _bytes.asciiAt)(bytes, 0, 4) !== MAGIC) {
|
|
76
|
+
(0, _errors2.raise)(_errors.DiagnosticCodes.ATTACHMENT_UNDECRYPTABLE, {
|
|
77
|
+
message: 'artifact header is not a recognised encrypted artifact'
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, HEADER_BYTES);
|
|
81
|
+
return {
|
|
82
|
+
formatVersion: view.getUint16(4),
|
|
83
|
+
chunkSize: view.getUint32(6),
|
|
84
|
+
chunkCount: view.getUint32(10),
|
|
85
|
+
plaintextSize: view.getUint32(14) * 0x100000000 + view.getUint32(18)
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Plaintext length of chunk `index`; the last one is usually short. */
|
|
90
|
+
function chunkPlaintextLength(header, index) {
|
|
91
|
+
const start = index * header.chunkSize;
|
|
92
|
+
return Math.max(0, Math.min(header.chunkSize, header.plaintextSize - start));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Byte offset of chunk `index` in the file.
|
|
97
|
+
*
|
|
98
|
+
* Every chunk but the last is full, so the offset is arithmetic rather than a
|
|
99
|
+
* table lookup — which is what lets a range read seek straight to the chunk
|
|
100
|
+
* it needs instead of walking the file.
|
|
101
|
+
*/
|
|
102
|
+
function chunkOffset(header, index) {
|
|
103
|
+
return HEADER_BYTES + index * (header.chunkSize + TAG_BYTES);
|
|
104
|
+
}
|
|
105
|
+
function encryptedLength(header) {
|
|
106
|
+
if (header.chunkCount === 0) {
|
|
107
|
+
return HEADER_BYTES;
|
|
108
|
+
}
|
|
109
|
+
const lastIndex = header.chunkCount - 1;
|
|
110
|
+
return chunkOffset(header, lastIndex) + chunkPlaintextLength(header, lastIndex) + TAG_BYTES;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** One chunk in, ciphertext with its tag appended out. */
|
|
114
|
+
function encryptChunk(key, index, plaintext) {
|
|
115
|
+
const cipher = (0, _provider.cipherModule)().createCipheriv(ALGORITHM, key, (0, _derive.nonceForChunk)(index));
|
|
116
|
+
return (0, _bytes.concatBytes)([new Uint8Array(cipher.update(plaintext)), new Uint8Array(cipher.final()), new Uint8Array(cipher.getAuthTag())]);
|
|
117
|
+
}
|
|
118
|
+
function decryptChunk(key, index, stored) {
|
|
119
|
+
if (stored.length < TAG_BYTES) {
|
|
120
|
+
(0, _errors2.raise)(_errors.DiagnosticCodes.ATTACHMENT_UNDECRYPTABLE, {
|
|
121
|
+
message: 'artifact chunk is truncated'
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const body = stored.subarray(0, stored.length - TAG_BYTES);
|
|
125
|
+
const tag = stored.subarray(stored.length - TAG_BYTES);
|
|
126
|
+
const decipher = (0, _provider.cipherModule)().createDecipheriv(ALGORITHM, key, (0, _derive.nonceForChunk)(index));
|
|
127
|
+
decipher.setAuthTag(tag);
|
|
128
|
+
try {
|
|
129
|
+
return (0, _bytes.concatBytes)([new Uint8Array(decipher.update(body)), new Uint8Array(decipher.final())]);
|
|
130
|
+
} catch (error) {
|
|
131
|
+
// A failing tag is the only signal that separates "exists but will not
|
|
132
|
+
// decrypt" from "missing", and an app responds to them differently.
|
|
133
|
+
(0, _errors2.raise)(_errors.DiagnosticCodes.ATTACHMENT_UNDECRYPTABLE, {
|
|
134
|
+
message: 'artifact chunk failed authentication',
|
|
135
|
+
cause: error
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function headerFor(plaintextSize, chunkSize = _config.Budgets.ARTIFACT_CHUNK_BYTES) {
|
|
140
|
+
return {
|
|
141
|
+
formatVersion: FORMAT_VERSION,
|
|
142
|
+
chunkSize,
|
|
143
|
+
chunkCount: chunkCountFor(plaintextSize, chunkSize),
|
|
144
|
+
plaintextSize
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=chunked-cipher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_config","require","_errors","_errors2","_derive","_provider","_bytes","MAGIC","exports","FORMAT_VERSION","HEADER_BYTES","TAG_BYTES","ALGORITHM","chunkCountFor","plaintextSize","chunkSize","Math","ceil","encodeHeader","header","bytes","Uint8Array","index","charCodeAt","view","DataView","buffer","setUint16","formatVersion","setUint32","chunkCount","floor","decodeHeader","length","asciiAt","raise","DiagnosticCodes","ATTACHMENT_UNDECRYPTABLE","message","byteOffset","getUint16","getUint32","chunkPlaintextLength","start","max","min","chunkOffset","encryptedLength","lastIndex","encryptChunk","key","plaintext","cipher","cipherModule","createCipheriv","nonceForChunk","concatBytes","update","final","getAuthTag","decryptChunk","stored","body","subarray","tag","decipher","createDecipheriv","setAuthTag","error","cause","headerFor","Budgets","ARTIFACT_CHUNK_BYTES"],"sourceRoot":"../../../src","sources":["crypto/chunked-cipher.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.deriveArtifactKey = deriveArtifactKey;
|
|
7
|
+
exports.nonceForChunk = nonceForChunk;
|
|
8
|
+
var _provider = require("./provider.js");
|
|
9
|
+
var _bytes = require("../platform/bytes.js");
|
|
10
|
+
/**
|
|
11
|
+
* Per-artifact key derivation.
|
|
12
|
+
*
|
|
13
|
+
* The database key is handed straight to SQLCipher. Using that same material
|
|
14
|
+
* as the AES-GCM key for artifacts would mean the two keystreams share a
|
|
15
|
+
* secret, so a weakness in either one — a nonce collision in the artifact
|
|
16
|
+
* format, a padding oracle in the database format — becomes a weakness in
|
|
17
|
+
* both. HKDF costs one hash and removes the coupling entirely (research.md
|
|
18
|
+
* R4).
|
|
19
|
+
*
|
|
20
|
+
* The artifact id is the HKDF `info`, so two artifacts under the same
|
|
21
|
+
* database key derive different subkeys. That is what makes the deterministic
|
|
22
|
+
* nonce scheme safe: a nonce is only ever reused with a different key.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const HKDF_DIGEST = 'sha256';
|
|
26
|
+
const KEY_BYTES = 32;
|
|
27
|
+
const NONCE_BYTES = 12;
|
|
28
|
+
function bytesOf(value) {
|
|
29
|
+
return (0, _bytes.utf8Bytes)(value);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** 32 bytes, one artifact, one database key. */
|
|
33
|
+
function deriveArtifactKey(databaseKey, scopeKey, attachmentId) {
|
|
34
|
+
const derived = (0, _provider.cipherModule)().hkdfSync(HKDF_DIGEST, bytesOf(databaseKey),
|
|
35
|
+
// The scope digest as salt keeps two scopes holding an artifact under
|
|
36
|
+
// the same id from deriving the same subkey.
|
|
37
|
+
bytesOf(scopeKey), bytesOf(`chipmobilesdk-localdb/artifact/${attachmentId}`), KEY_BYTES);
|
|
38
|
+
return new Uint8Array(derived);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Deterministic 12-byte nonce from the chunk index.
|
|
43
|
+
*
|
|
44
|
+
* Deterministic rather than random because a random nonce would have to be
|
|
45
|
+
* stored per chunk, and because uniqueness is already guaranteed one level
|
|
46
|
+
* up: the key is unique per artifact, so an index that is unique within the
|
|
47
|
+
* artifact is unique under that key. The remaining four bytes are a fixed
|
|
48
|
+
* domain tag rather than padding, so a nonce from this scheme can never
|
|
49
|
+
* collide with one from a future scheme that uses the same counter space.
|
|
50
|
+
*/
|
|
51
|
+
function nonceForChunk(index) {
|
|
52
|
+
const nonce = new Uint8Array(NONCE_BYTES);
|
|
53
|
+
const view = new DataView(nonce.buffer);
|
|
54
|
+
view.setUint32(0, 0x4c444231, false); // "LDB1"
|
|
55
|
+
// Split across two 32-bit writes rather than a BigInt: chunk indexes stay
|
|
56
|
+
// far inside the safe integer range, and Hermes is happier without one.
|
|
57
|
+
view.setUint32(4, Math.floor(index / 0x100000000), false);
|
|
58
|
+
view.setUint32(8, index % 0x100000000, false);
|
|
59
|
+
return nonce;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=derive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_provider","require","_bytes","HKDF_DIGEST","KEY_BYTES","NONCE_BYTES","bytesOf","value","utf8Bytes","deriveArtifactKey","databaseKey","scopeKey","attachmentId","derived","cipherModule","hkdfSync","Uint8Array","nonceForChunk","index","nonce","view","DataView","buffer","setUint32","Math","floor"],"sourceRoot":"../../../src","sources":["crypto/derive.ts"],"mappings":";;;;;;;AAeA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,MAAME,WAAW,GAAG,QAAQ;AAC5B,MAAMC,SAAS,GAAG,EAAE;AACpB,MAAMC,WAAW,GAAG,EAAE;AAEtB,SAASC,OAAOA,CAACC,KAAa,EAAc;EAC3C,OAAO,IAAAC,gBAAS,EAACD,KAAK,CAAC;AACxB;;AAEA;AACO,SAASE,iBAAiBA,CAChCC,WAAmB,EACnBC,QAAgB,EAChBC,YAAoB,EACP;EACb,MAAMC,OAAO,GAAG,IAAAC,sBAAY,EAAC,CAAC,CAACC,QAAQ,CACtCZ,WAAW,EACXG,OAAO,CAACI,WAAW,CAAC;EACpB;EACA;EACAJ,OAAO,CAACK,QAAQ,CAAC,EACjBL,OAAO,CAAC,kCAAkCM,YAAY,EAAE,CAAC,EACzDR,SACD,CAAC;EACD,OAAO,IAAIY,UAAU,CAACH,OAAO,CAAC;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,aAAaA,CAACC,KAAa,EAAc;EACxD,MAAMC,KAAK,GAAG,IAAIH,UAAU,CAACX,WAAW,CAAC;EACzC,MAAMe,IAAI,GAAG,IAAIC,QAAQ,CAACF,KAAK,CAACG,MAAM,CAAC;EACvCF,IAAI,CAACG,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;EACtC;EACA;EACAH,IAAI,CAACG,SAAS,CAAC,CAAC,EAAEC,IAAI,CAACC,KAAK,CAACP,KAAK,GAAG,WAAW,CAAC,EAAE,KAAK,CAAC;EACzDE,IAAI,CAACG,SAAS,CAAC,CAAC,EAAEL,KAAK,GAAG,WAAW,EAAE,KAAK,CAAC;EAC7C,OAAOC,KAAK;AACb","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.acquireKey = acquireKey;
|
|
7
|
+
var _errors = require("../contract/errors.js");
|
|
8
|
+
var _errors2 = require("../diagnostics/errors.js");
|
|
9
|
+
var _faults = require("../diagnostics/faults.js");
|
|
10
|
+
/**
|
|
11
|
+
* Key acquisition, scoped to one handle's lifetime.
|
|
12
|
+
*
|
|
13
|
+
* The package never generates, derives from its own material, persists,
|
|
14
|
+
* caches beyond the handle, transmits, or returns a key (FR-098). What it
|
|
15
|
+
* does is ask the app for one at open and hold it exactly as long as the
|
|
16
|
+
* connection that needs it — which is also why no keychain library appears in
|
|
17
|
+
* this package's dependencies (LIB-004).
|
|
18
|
+
*
|
|
19
|
+
* The provider receives the resolved scope, so an app can key per identity.
|
|
20
|
+
* That is not a convenience: it is what makes destroying one identity's key a
|
|
21
|
+
* meaningful answer to a deletion request, rather than a gesture that leaves
|
|
22
|
+
* the data readable under a shared key (FR-104).
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A key with an explicit end of life.
|
|
27
|
+
*
|
|
28
|
+
* Handing the string around directly would leave copies wherever it was
|
|
29
|
+
* passed. A handle that can be released gives the connection one place to
|
|
30
|
+
* drop it, and gives `key-hygiene.test.ts` something to assert against.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
async function acquireKey(encryption, scope) {
|
|
34
|
+
let key;
|
|
35
|
+
(0, _faults.throwIfFaulted)('keyProvider');
|
|
36
|
+
try {
|
|
37
|
+
key = await encryption.keyProvider.getKey(scope);
|
|
38
|
+
} catch (error) {
|
|
39
|
+
// A locked device is an expected condition, not a bug (FR-102), which
|
|
40
|
+
// is why this code is retryable and distinct from an invalid key.
|
|
41
|
+
(0, _errors2.raise)(_errors.DiagnosticCodes.KEY_PROVIDER_FAILED, {
|
|
42
|
+
message: 'key provider failed',
|
|
43
|
+
cause: error
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (typeof key !== 'string' || key.length === 0) {
|
|
47
|
+
(0, _errors2.raise)(_errors.DiagnosticCodes.KEY_INVALID, {
|
|
48
|
+
message: 'key provider returned no usable key'
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
let released = false;
|
|
52
|
+
return {
|
|
53
|
+
value() {
|
|
54
|
+
if (released || key === null) {
|
|
55
|
+
(0, _errors2.raise)(_errors.DiagnosticCodes.KEY_INVALID, {
|
|
56
|
+
message: 'key material has already been released'
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return key;
|
|
60
|
+
},
|
|
61
|
+
release() {
|
|
62
|
+
released = true;
|
|
63
|
+
key = null;
|
|
64
|
+
},
|
|
65
|
+
get released() {
|
|
66
|
+
return released;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=key-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_errors","require","_errors2","_faults","acquireKey","encryption","scope","key","throwIfFaulted","keyProvider","getKey","error","raise","DiagnosticCodes","KEY_PROVIDER_FAILED","message","cause","length","KEY_INVALID","released","value","release"],"sourceRoot":"../../../src","sources":["crypto/key-provider.ts"],"mappings":";;;;;;AAgBA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOO,eAAeG,UAAUA,CAC/BC,UAA4B,EAC5BC,KAAoB,EACC;EACrB,IAAIC,GAAkB;EAEtB,IAAAC,sBAAc,EAAC,aAAa,CAAC;EAE7B,IAAI;IACHD,GAAG,GAAG,MAAMF,UAAU,CAACI,WAAW,CAACC,MAAM,CAACJ,KAAK,CAAC;EACjD,CAAC,CAAC,OAAOK,KAAK,EAAE;IACf;IACA;IACA,IAAAC,cAAK,EAACC,uBAAe,CAACC,mBAAmB,EAAE;MAC1CC,OAAO,EAAE,qBAAqB;MAC9BC,KAAK,EAAEL;IACR,CAAC,CAAC;EACH;EAEA,IAAI,OAAOJ,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACU,MAAM,KAAK,CAAC,EAAE;IAChD,IAAAL,cAAK,EAACC,uBAAe,CAACK,WAAW,EAAE;MAClCH,OAAO,EAAE;IACV,CAAC,CAAC;EACH;EAEA,IAAII,QAAQ,GAAG,KAAK;EACpB,OAAO;IACNC,KAAKA,CAAA,EAAW;MACf,IAAID,QAAQ,IAAIZ,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAAK,cAAK,EAACC,uBAAe,CAACK,WAAW,EAAE;UAClCH,OAAO,EAAE;QACV,CAAC,CAAC;MACH;MACA,OAAOR,GAAG;IACX,CAAC;IACDc,OAAOA,CAAA,EAAS;MACfF,QAAQ,GAAG,IAAI;MACfZ,GAAG,GAAG,IAAI;IACX,CAAC;IACD,IAAIY,QAAQA,CAAA,EAAY;MACvB,OAAOA,QAAQ;IAChB;EACD,CAAC;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.cipherModule = cipherModule;
|
|
7
|
+
exports.isCipherAvailable = isCipherAvailable;
|
|
8
|
+
exports.setCipherModule = setCipherModule;
|
|
9
|
+
var _rnCore = require("@chipmobilesdk/rn-core");
|
|
10
|
+
var _errors = require("../contract/errors.js");
|
|
11
|
+
var _errors2 = require("../diagnostics/errors.js");
|
|
12
|
+
/**
|
|
13
|
+
* The cipher peer, behind one lazy accessor.
|
|
14
|
+
*
|
|
15
|
+
* Marked optional in `peerDependenciesMeta`: an app that never enables
|
|
16
|
+
* encryption should not have to install a native crypto module. That makes
|
|
17
|
+
* "the peer is absent" a supported state rather than a broken install, so it
|
|
18
|
+
* reports `ENCRYPTION_UNAVAILABLE` — the same code as a missing SQLCipher
|
|
19
|
+
* build flag, because from the app's side it is the same problem: encryption
|
|
20
|
+
* was asked for and cannot be delivered (research.md R1a).
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The two things this package asks of a cipher: AES-256-GCM for artifacts, and
|
|
25
|
+
* HKDF to derive each artifact's subkey. Hashing is not among them — the scope
|
|
26
|
+
* digest is SHA-256 in plain TypeScript (`scope/hash.ts`), because it runs on
|
|
27
|
+
* every scope resolution including the ones that never open an encrypted
|
|
28
|
+
* database, where a native module may not be installed at all (WS4-08).
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
/** Loaded on first use (rn-core's lazy peer); optional, so absence is a normal answer. */
|
|
32
|
+
const cipher = (0, _rnCore.lazyPeer)('react-native-quick-crypto', () => {
|
|
33
|
+
// Inside `try`, so Metro bundles an app that leaves this optional peer out.
|
|
34
|
+
try {
|
|
35
|
+
return require('react-native-quick-crypto');
|
|
36
|
+
} catch (cause) {
|
|
37
|
+
throw cause;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
/** Swap the module. Tests only; `null` goes back to the real one. */
|
|
42
|
+
function setCipherModule(module) {
|
|
43
|
+
cipher.override(module ?? undefined);
|
|
44
|
+
}
|
|
45
|
+
function isCipherAvailable() {
|
|
46
|
+
return cipher.isAvailable();
|
|
47
|
+
}
|
|
48
|
+
function cipherModule() {
|
|
49
|
+
return cipher.require((_peer, cause) => new _errors2.StorageError(_errors.DiagnosticCodes.ENCRYPTION_UNAVAILABLE, {
|
|
50
|
+
message: 'cipher peer is not installed',
|
|
51
|
+
cause
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_rnCore","require","_errors","_errors2","cipher","lazyPeer","cause","setCipherModule","module","override","undefined","isCipherAvailable","isAvailable","cipherModule","_peer","StorageError","DiagnosticCodes","ENCRYPTION_UNAVAILABLE","message"],"sourceRoot":"../../../src","sources":["crypto/provider.ts"],"mappings":";;;;;;;;AAWA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AA6BA;AACA,MAAMG,MAAM,GAAG,IAAAC,gBAAQ,EAAC,2BAA2B,EAAE,MAAM;EAC1D;EACA,IAAI;IACH,OAAOJ,OAAO,CAAC,2BAA2B,CAAC;EAC5C,CAAC,CAAC,OAAOK,KAAK,EAAE;IACf,MAAMA,KAAK;EACZ;AACD,CAAC,CAAC;;AAEF;AACO,SAASC,eAAeA,CAACC,MAA2B,EAAQ;EAClEJ,MAAM,CAACK,QAAQ,CAACD,MAAM,IAAIE,SAAS,CAAC;AACrC;AAEO,SAASC,iBAAiBA,CAAA,EAAY;EAC5C,OAAOP,MAAM,CAACQ,WAAW,CAAC,CAAC;AAC5B;AAEO,SAASC,YAAYA,CAAA,EAAiB;EAC5C,OAAOT,MAAM,CAACH,OAAO,CACpB,CAACa,KAAK,EAAER,KAAK,KACZ,IAAIS,qBAAY,CAACC,uBAAe,CAACC,sBAAsB,EAAE;IACxDC,OAAO,EAAE,8BAA8B;IACvCZ;EACD,CAAC,CACH,CAAC;AACF","ignoreList":[]}
|