mindoodb 0.0.23 → 0.0.32
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/README-server.md +9 -1
- package/README.md +5 -3
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +24 -5
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.d.ts +14 -2
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
- package/dist/appendonlystores/network/HttpTransport.js +124 -27
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +159 -4
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +334 -25
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +9 -0
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -1
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +77 -5
- package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -1
- package/dist/browser/index.mjs +103 -0
- package/dist/core/BaseMindooDB.d.ts +697 -4
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +3273 -180
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +192 -1
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +633 -88
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +770 -10
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +2715 -292
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/BaseMindooTenantFactory.d.ts +2 -0
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantFactory.js +20 -0
- package/dist/core/BaseMindooTenantFactory.js.map +1 -1
- package/dist/core/accesscontrol/AccessDeniedError.d.ts +22 -0
- package/dist/core/accesscontrol/AccessDeniedError.d.ts.map +1 -0
- package/dist/core/accesscontrol/AccessDeniedError.js +28 -0
- package/dist/core/accesscontrol/AccessDeniedError.js.map +1 -0
- package/dist/core/accesscontrol/DirectoryStateNode.d.ts +220 -0
- package/dist/core/accesscontrol/DirectoryStateNode.d.ts.map +1 -0
- package/dist/core/accesscontrol/DirectoryStateNode.js +297 -0
- package/dist/core/accesscontrol/DirectoryStateNode.js.map +1 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.d.ts +118 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.d.ts.map +1 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.js +173 -0
- package/dist/core/accesscontrol/DirectoryTimeTravelIndex.js.map +1 -0
- package/dist/core/accesscontrol/directoryProjection.d.ts +26 -0
- package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -0
- package/dist/core/accesscontrol/directoryProjection.js +174 -0
- package/dist/core/accesscontrol/directoryProjection.js.map +1 -0
- package/dist/core/accesscontrol/evaluate.d.ts +77 -0
- package/dist/core/accesscontrol/evaluate.d.ts.map +1 -0
- package/dist/core/accesscontrol/evaluate.js +206 -0
- package/dist/core/accesscontrol/evaluate.js.map +1 -0
- package/dist/core/accesscontrol/grantKeys.d.ts +113 -0
- package/dist/core/accesscontrol/grantKeys.d.ts.map +1 -0
- package/dist/core/accesscontrol/grantKeys.js +302 -0
- package/dist/core/accesscontrol/grantKeys.js.map +1 -0
- package/dist/core/accesscontrol/keyBagReconciler.d.ts +22 -0
- package/dist/core/accesscontrol/keyBagReconciler.d.ts.map +1 -0
- package/dist/core/accesscontrol/keyBagReconciler.js +3 -0
- package/dist/core/accesscontrol/keyBagReconciler.js.map +1 -0
- package/dist/core/accesscontrol/materializationGuard.d.ts +89 -0
- package/dist/core/accesscontrol/materializationGuard.d.ts.map +1 -0
- package/dist/core/accesscontrol/materializationGuard.js +69 -0
- package/dist/core/accesscontrol/materializationGuard.js.map +1 -0
- package/dist/core/accesscontrol/quarantine.d.ts +65 -0
- package/dist/core/accesscontrol/quarantine.d.ts.map +1 -0
- package/dist/core/accesscontrol/quarantine.js +79 -0
- package/dist/core/accesscontrol/quarantine.js.map +1 -0
- package/dist/core/accesscontrol/receiptValidation.d.ts +113 -0
- package/dist/core/accesscontrol/receiptValidation.d.ts.map +1 -0
- package/dist/core/accesscontrol/receiptValidation.js +142 -0
- package/dist/core/accesscontrol/receiptValidation.js.map +1 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.d.ts +31 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.d.ts.map +1 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.js +66 -0
- package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.js.map +1 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.d.ts +79 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.d.ts.map +1 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.js +22 -0
- package/dist/core/accesscontrol/timestamp/TimestampProvider.js.map +1 -0
- package/dist/core/accesscontrol/types.d.ts +825 -0
- package/dist/core/accesscontrol/types.d.ts.map +1 -0
- package/dist/core/accesscontrol/types.js +534 -0
- package/dist/core/accesscontrol/types.js.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +9 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +54 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts +38 -2
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/AuthenticationService.js +199 -26
- package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -1
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +17 -3
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.d.ts +58 -4
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
- package/dist/core/appendonlystores/network/types.js +4 -0
- package/dist/core/appendonlystores/network/types.js.map +1 -1
- package/dist/core/appendonlystores/scanUtils.d.ts +27 -0
- package/dist/core/appendonlystores/scanUtils.d.ts.map +1 -0
- package/dist/core/appendonlystores/scanUtils.js +87 -0
- package/dist/core/appendonlystores/scanUtils.js.map +1 -0
- package/dist/core/appendonlystores/types.d.ts +23 -2
- package/dist/core/appendonlystores/types.d.ts.map +1 -1
- package/dist/core/cache/CacheManager.d.ts +13 -3
- package/dist/core/cache/CacheManager.d.ts.map +1 -1
- package/dist/core/cache/CacheManager.js +7 -4
- package/dist/core/cache/CacheManager.js.map +1 -1
- package/dist/core/crypto/EntrySignature.d.ts +137 -0
- package/dist/core/crypto/EntrySignature.d.ts.map +1 -0
- package/dist/core/crypto/EntrySignature.js +210 -0
- package/dist/core/crypto/EntrySignature.js.map +1 -0
- package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -1
- package/dist/core/crypto/MindooDocSigner.js +6 -2
- package/dist/core/crypto/MindooDocSigner.js.map +1 -1
- package/dist/core/crypto/WitnessReceipt.d.ts +137 -0
- package/dist/core/crypto/WitnessReceipt.d.ts.map +1 -0
- package/dist/core/crypto/WitnessReceipt.js +182 -0
- package/dist/core/crypto/WitnessReceipt.js.map +1 -0
- package/dist/core/crypto/encryptedFields.d.ts +27 -0
- package/dist/core/crypto/encryptedFields.d.ts.map +1 -0
- package/dist/core/crypto/encryptedFields.js +58 -0
- package/dist/core/crypto/encryptedFields.js.map +1 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts +12 -0
- package/dist/core/crypto/pbkdf2Iterations.d.ts.map +1 -1
- package/dist/core/crypto/pbkdf2Iterations.js +23 -0
- package/dist/core/crypto/pbkdf2Iterations.js.map +1 -1
- package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -1
- package/dist/core/crypto/privateKeyEncryption.js +3 -1
- package/dist/core/crypto/privateKeyEncryption.js.map +1 -1
- package/dist/core/databaseIdValidation.d.ts +1 -1
- package/dist/core/databaseIdValidation.d.ts.map +1 -1
- package/dist/core/databaseIdValidation.js +4 -4
- package/dist/core/databaseIdValidation.js.map +1 -1
- package/dist/core/errors.d.ts +26 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +42 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/expressions/builder.d.ts +102 -0
- package/dist/core/expressions/builder.d.ts.map +1 -0
- package/dist/core/expressions/builder.js +249 -0
- package/dist/core/expressions/builder.js.map +1 -0
- package/dist/core/expressions/evaluateExpression.d.ts +78 -0
- package/dist/core/expressions/evaluateExpression.d.ts.map +1 -0
- package/dist/core/expressions/evaluateExpression.js +386 -0
- package/dist/core/expressions/evaluateExpression.js.map +1 -0
- package/dist/core/expressions/formulaSource.d.ts +24 -0
- package/dist/core/expressions/formulaSource.d.ts.map +1 -0
- package/dist/core/expressions/formulaSource.js +765 -0
- package/dist/core/expressions/formulaSource.js.map +1 -0
- package/dist/core/expressions/index.d.ts +8 -0
- package/dist/core/expressions/index.d.ts.map +1 -0
- package/dist/core/expressions/index.js +46 -0
- package/dist/core/expressions/index.js.map +1 -0
- package/dist/core/expressions/metadata.d.ts +23 -0
- package/dist/core/expressions/metadata.d.ts.map +1 -0
- package/dist/core/expressions/metadata.js +191 -0
- package/dist/core/expressions/metadata.js.map +1 -0
- package/dist/core/expressions/types.d.ts +164 -0
- package/dist/core/expressions/types.d.ts.map +1 -0
- package/dist/core/expressions/types.js +3 -0
- package/dist/core/expressions/types.js.map +1 -0
- package/dist/core/extraction/types.d.ts +47 -0
- package/dist/core/extraction/types.d.ts.map +1 -0
- package/dist/core/extraction/types.js +42 -0
- package/dist/core/extraction/types.js.map +1 -0
- package/dist/core/index.d.ts +13 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +113 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/createViewDataProvider.d.ts +84 -0
- package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/createViewDataProvider.js +139 -0
- package/dist/core/indexing/createViewDataProvider.js.map +1 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.d.ts +180 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.js +548 -0
- package/dist/core/indexing/fulltext/DocumentFullTextIndex.js.map +1 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.d.ts +69 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.js +183 -0
- package/dist/core/indexing/fulltext/SearchEngineAdapter.js.map +1 -0
- package/dist/core/indexing/fulltext/extractFulltextText.d.ts +34 -0
- package/dist/core/indexing/fulltext/extractFulltextText.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/extractFulltextText.js +129 -0
- package/dist/core/indexing/fulltext/extractFulltextText.js.map +1 -0
- package/dist/core/indexing/fulltext/index.d.ts +5 -0
- package/dist/core/indexing/fulltext/index.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/index.js +20 -0
- package/dist/core/indexing/fulltext/index.js.map +1 -0
- package/dist/core/indexing/fulltext/types.d.ts +168 -0
- package/dist/core/indexing/fulltext/types.d.ts.map +1 -0
- package/dist/core/indexing/fulltext/types.js +89 -0
- package/dist/core/indexing/fulltext/types.js.map +1 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts +137 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts.map +1 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.js +438 -0
- package/dist/core/indexing/summary/DocumentSummaryStore.js.map +1 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts +72 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +221 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -0
- package/dist/core/indexing/summary/extractSummaryFields.d.ts +75 -0
- package/dist/core/indexing/summary/extractSummaryFields.d.ts.map +1 -0
- package/dist/core/indexing/summary/extractSummaryFields.js +266 -0
- package/dist/core/indexing/summary/extractSummaryFields.js.map +1 -0
- package/dist/core/indexing/summary/index.d.ts +5 -0
- package/dist/core/indexing/summary/index.d.ts.map +1 -0
- package/dist/core/indexing/summary/index.js +23 -0
- package/dist/core/indexing/summary/index.js.map +1 -0
- package/dist/core/indexing/summary/types.d.ts +119 -0
- package/dist/core/indexing/summary/types.d.ts.map +1 -0
- package/dist/core/indexing/summary/types.js +81 -0
- package/dist/core/indexing/summary/types.js.map +1 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +47 -1
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +24 -8
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +96 -41
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +2 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +8 -3
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +111 -5
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.js +266 -75
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +12 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +12 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +66 -5
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +50 -6
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js +54 -12
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -1
- package/dist/core/indexing/virtualviews/index.d.ts +3 -3
- package/dist/core/indexing/virtualviews/index.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/index.js.map +1 -1
- package/dist/core/indexing/virtualviews/types.d.ts +6 -0
- package/dist/core/indexing/virtualviews/types.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/types.js +11 -3
- package/dist/core/indexing/virtualviews/types.js.map +1 -1
- package/dist/core/keys/KeyBag.d.ts +25 -0
- package/dist/core/keys/KeyBag.d.ts.map +1 -1
- package/dist/core/keys/KeyBag.js +37 -1
- package/dist/core/keys/KeyBag.js.map +1 -1
- package/dist/core/query/executeQuery.d.ts +18 -0
- package/dist/core/query/executeQuery.d.ts.map +1 -0
- package/dist/core/query/executeQuery.js +313 -0
- package/dist/core/query/executeQuery.js.map +1 -0
- package/dist/core/query/index.d.ts +5 -0
- package/dist/core/query/index.d.ts.map +1 -0
- package/dist/core/query/index.js +14 -0
- package/dist/core/query/index.js.map +1 -0
- package/dist/core/query/queryLive.d.ts +27 -0
- package/dist/core/query/queryLive.d.ts.map +1 -0
- package/dist/core/query/queryLive.js +104 -0
- package/dist/core/query/queryLive.js.map +1 -0
- package/dist/core/query/queryView.d.ts +156 -0
- package/dist/core/query/queryView.d.ts.map +1 -0
- package/dist/core/query/queryView.js +266 -0
- package/dist/core/query/queryView.js.map +1 -0
- package/dist/core/query/types.d.ts +121 -0
- package/dist/core/query/types.d.ts.map +1 -0
- package/dist/core/query/types.js +18 -0
- package/dist/core/query/types.js.map +1 -0
- package/dist/core/storeEntryTime.d.ts +57 -0
- package/dist/core/storeEntryTime.d.ts.map +1 -0
- package/dist/core/storeEntryTime.js +72 -0
- package/dist/core/storeEntryTime.js.map +1 -0
- package/dist/core/types.d.ts +1509 -39
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +13 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/uri/MindooURI.d.ts +53 -1
- package/dist/core/uri/MindooURI.d.ts.map +1 -1
- package/dist/core/uri/MindooURI.js +135 -0
- package/dist/core/uri/MindooURI.js.map +1 -1
- package/dist/core/utils/urlSafety.d.ts +46 -0
- package/dist/core/utils/urlSafety.d.ts.map +1 -0
- package/dist/core/utils/urlSafety.js +144 -0
- package/dist/core/utils/urlSafety.js.map +1 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +14 -0
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +95 -4
- package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
- package/dist/node/server/CapabilityMatcher.d.ts +10 -0
- package/dist/node/server/CapabilityMatcher.d.ts.map +1 -1
- package/dist/node/server/CapabilityMatcher.js +14 -2
- package/dist/node/server/CapabilityMatcher.js.map +1 -1
- package/dist/node/server/MindooDBServer.d.ts.map +1 -1
- package/dist/node/server/MindooDBServer.js +117 -8
- package/dist/node/server/MindooDBServer.js.map +1 -1
- package/dist/node/server/PurgedDocRegistry.d.ts +32 -0
- package/dist/node/server/PurgedDocRegistry.d.ts.map +1 -0
- package/dist/node/server/PurgedDocRegistry.js +94 -0
- package/dist/node/server/PurgedDocRegistry.js.map +1 -0
- package/dist/node/server/ServerSync.d.ts.map +1 -1
- package/dist/node/server/ServerSync.js +5 -2
- package/dist/node/server/ServerSync.js.map +1 -1
- package/dist/node/server/SystemAdminAuth.d.ts +10 -0
- package/dist/node/server/SystemAdminAuth.d.ts.map +1 -1
- package/dist/node/server/SystemAdminAuth.js +25 -0
- package/dist/node/server/SystemAdminAuth.js.map +1 -1
- package/dist/node/server/TenantManager.d.ts +95 -1
- package/dist/node/server/TenantManager.d.ts.map +1 -1
- package/dist/node/server/TenantManager.js +382 -15
- package/dist/node/server/TenantManager.js.map +1 -1
- package/dist/node/server/config.d.ts.map +1 -1
- package/dist/node/server/config.js +5 -1
- package/dist/node/server/config.js.map +1 -1
- package/dist/node/server/types.d.ts +29 -3
- package/dist/node/server/types.d.ts.map +1 -1
- package/dist/node/server/types.js +12 -0
- package/dist/node/server/types.js.map +1 -1
- package/dist/node/server/validation.d.ts +6 -0
- package/dist/node/server/validation.d.ts.map +1 -1
- package/dist/node/server/validation.js +7 -1
- package/dist/node/server/validation.js.map +1 -1
- package/package.json +4 -3
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts +0 -8
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts.map +0 -1
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js +0 -16
- package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js.map +0 -1
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +0 -68
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +0 -1
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js +0 -659
- package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js.map +0 -1
- package/dist/node/attachments/writeAttachmentToFile.d.ts +0 -15
- package/dist/node/attachments/writeAttachmentToFile.d.ts.map +0 -1
- package/dist/node/attachments/writeAttachmentToFile.js +0 -73
- package/dist/node/attachments/writeAttachmentToFile.js.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEncryptedFieldKeyId = getEncryptedFieldKeyId;
|
|
4
|
+
exports.decryptEncryptedField = decryptEncryptedField;
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
/** Suffix of the companion field naming the key id of an `_encrypted` field. */
|
|
7
|
+
const KEY_FIELD_SUFFIX = "_key";
|
|
8
|
+
/**
|
|
9
|
+
* Resolves the symmetric key id for an `_encrypted` field following the
|
|
10
|
+
* `<field>_encrypted` / `<field>_encrypted_key` naming convention.
|
|
11
|
+
*
|
|
12
|
+
* Resolution order: explicit `override` -> the field's `<field>_key` companion
|
|
13
|
+
* field on the document -> the tenant default key (`"default"`).
|
|
14
|
+
*/
|
|
15
|
+
function getEncryptedFieldKeyId(data, encryptedFieldName, override) {
|
|
16
|
+
if (typeof override === "string" && override.trim()) {
|
|
17
|
+
return override;
|
|
18
|
+
}
|
|
19
|
+
const companion = data[`${encryptedFieldName}${KEY_FIELD_SUFFIX}`];
|
|
20
|
+
if (typeof companion === "string" && companion.trim()) {
|
|
21
|
+
return companion;
|
|
22
|
+
}
|
|
23
|
+
return types_1.DEFAULT_TENANT_KEY_ID;
|
|
24
|
+
}
|
|
25
|
+
/** Decodes a base64 string into bytes. */
|
|
26
|
+
function base64ToUint8Array(base64) {
|
|
27
|
+
const binary = atob(base64);
|
|
28
|
+
const bytes = new Uint8Array(binary.length);
|
|
29
|
+
for (let i = 0; i < binary.length; i++) {
|
|
30
|
+
bytes[i] = binary.charCodeAt(i);
|
|
31
|
+
}
|
|
32
|
+
return bytes;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Decrypts a base64 `_encrypted` field to its UTF-8 plaintext.
|
|
36
|
+
*
|
|
37
|
+
* The key id is resolved with {@link getEncryptedFieldKeyId} unless
|
|
38
|
+
* `keyIdOverride` is provided. Returns `null` when the field is missing/blank
|
|
39
|
+
* or decryption fails (for example the named key is not present in the
|
|
40
|
+
* decryptor's key bag), so callers can treat unreadable fields as absent rather
|
|
41
|
+
* than throwing.
|
|
42
|
+
*/
|
|
43
|
+
async function decryptEncryptedField(decryptor, data, encryptedFieldName, keyIdOverride) {
|
|
44
|
+
const ciphertext = data[encryptedFieldName];
|
|
45
|
+
if (typeof ciphertext !== "string" || !ciphertext) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const keyId = getEncryptedFieldKeyId(data, encryptedFieldName, keyIdOverride);
|
|
49
|
+
try {
|
|
50
|
+
const encrypted = base64ToUint8Array(ciphertext);
|
|
51
|
+
const decrypted = await decryptor.decryptPayload(encrypted, keyId);
|
|
52
|
+
return new TextDecoder().decode(decrypted);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=encryptedFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encryptedFields.js","sourceRoot":"","sources":["../../../src/core/crypto/encryptedFields.ts"],"names":[],"mappings":";;AAqBA,wDAaC;AAqBD,sDAkBC;AAzED,oCAAiD;AAWjD,gFAAgF;AAChF,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,IAA6B,EAC7B,kBAA0B,EAC1B,QAAwB;IAExB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,CAAC,CAAC;IACnE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,6BAAqB,CAAC;AAC/B,CAAC;AAED,0CAA0C;AAC1C,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,qBAAqB,CACzC,SAAkC,EAClC,IAA6B,EAC7B,kBAA0B,EAC1B,aAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC5C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -9,4 +9,16 @@ export declare const MIN_PBKDF2_ITERATIONS = 60000;
|
|
|
9
9
|
* 3) defaultIterations
|
|
10
10
|
*/
|
|
11
11
|
export declare function resolvePbkdf2Iterations(defaultIterations?: number): number;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the PBKDF2 iteration count to use when DECRYPTING a stored key blob.
|
|
14
|
+
*
|
|
15
|
+
* Security hardening: a stored blob's `iterations` value is
|
|
16
|
+
* attacker-influenceable (a stolen identity file with `"iterations": 1` would
|
|
17
|
+
* otherwise make offline password cracking trivially cheap). We therefore floor
|
|
18
|
+
* any stored value at {@link MIN_PBKDF2_ITERATIONS}. This is backward compatible
|
|
19
|
+
* because every legitimately-written blob already used at least the floor on the
|
|
20
|
+
* encrypt path; flooring a tampered/too-low value simply derives a different key
|
|
21
|
+
* and the AES-GCM tag check then fails (a safe denial, not a downgrade).
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveStoredIterations(stored: number | undefined | null): number;
|
|
12
24
|
//# sourceMappingURL=pbkdf2Iterations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2Iterations.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/pbkdf2Iterations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,iBAAiB,GAAE,MAAkC,GAAG,MAAM,CAgBrG"}
|
|
1
|
+
{"version":3,"file":"pbkdf2Iterations.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/pbkdf2Iterations.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,iBAAiB,GAAE,MAAkC,GAAG,MAAM,CAgBrG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAUjF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MIN_PBKDF2_ITERATIONS = exports.DEFAULT_PBKDF2_ITERATIONS = void 0;
|
|
4
4
|
exports.resolvePbkdf2Iterations = resolvePbkdf2Iterations;
|
|
5
|
+
exports.resolveStoredIterations = resolveStoredIterations;
|
|
5
6
|
exports.DEFAULT_PBKDF2_ITERATIONS = 310000;
|
|
6
7
|
exports.MIN_PBKDF2_ITERATIONS = 60000;
|
|
7
8
|
/**
|
|
@@ -27,6 +28,28 @@ function resolvePbkdf2Iterations(defaultIterations = exports.DEFAULT_PBKDF2_ITER
|
|
|
27
28
|
}
|
|
28
29
|
return intValue;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the PBKDF2 iteration count to use when DECRYPTING a stored key blob.
|
|
33
|
+
*
|
|
34
|
+
* Security hardening: a stored blob's `iterations` value is
|
|
35
|
+
* attacker-influenceable (a stolen identity file with `"iterations": 1` would
|
|
36
|
+
* otherwise make offline password cracking trivially cheap). We therefore floor
|
|
37
|
+
* any stored value at {@link MIN_PBKDF2_ITERATIONS}. This is backward compatible
|
|
38
|
+
* because every legitimately-written blob already used at least the floor on the
|
|
39
|
+
* encrypt path; flooring a tampered/too-low value simply derives a different key
|
|
40
|
+
* and the AES-GCM tag check then fails (a safe denial, not a downgrade).
|
|
41
|
+
*/
|
|
42
|
+
function resolveStoredIterations(stored) {
|
|
43
|
+
const fallback = resolvePbkdf2Iterations(exports.DEFAULT_PBKDF2_ITERATIONS);
|
|
44
|
+
if (stored === undefined || stored === null) {
|
|
45
|
+
return fallback;
|
|
46
|
+
}
|
|
47
|
+
const parsed = Number(stored);
|
|
48
|
+
if (!Number.isFinite(parsed)) {
|
|
49
|
+
return fallback;
|
|
50
|
+
}
|
|
51
|
+
return Math.max(exports.MIN_PBKDF2_ITERATIONS, Math.floor(parsed));
|
|
52
|
+
}
|
|
30
53
|
function readOverride() {
|
|
31
54
|
try {
|
|
32
55
|
if (typeof globalThis !== "undefined") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2Iterations.js","sourceRoot":"","sources":["../../../src/core/crypto/pbkdf2Iterations.ts"],"names":[],"mappings":";;;AAWA,0DAgBC;
|
|
1
|
+
{"version":3,"file":"pbkdf2Iterations.js","sourceRoot":"","sources":["../../../src/core/crypto/pbkdf2Iterations.ts"],"names":[],"mappings":";;;AAWA,0DAgBC;AAaD,0DAUC;AAlDY,QAAA,yBAAyB,GAAG,MAAM,CAAC;AACnC,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAC,oBAA4B,iCAAyB;IAC3F,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAG,6BAAqB,EAAE,CAAC;QACrC,OAAO,6BAAqB,CAAC;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB,CAAC,MAAiC;IACvE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,iCAAyB,CAAC,CAAC;IACpE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,6BAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,UAA4E,CAAC;YACvF,IAAI,CAAC,CAAC,4BAA4B,KAAK,SAAS,EAAE,CAAC;gBACjD,OAAO,CAAC,CAAC,4BAA4B,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;IAED,IAAI,CAAC;QACH,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;YACvD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ;IACV,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privateKeyEncryption.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/privateKeyEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgCrD,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,UAAU,EAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CA0D9B;AAED,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"privateKeyEncryption.d.ts","sourceRoot":"","sources":["../../../src/core/crypto/privateKeyEncryption.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgCrD,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,UAAU,EAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,mBAAmB,CAAC,CA0D9B;AAED,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
|
|
@@ -70,7 +70,9 @@ async function decryptPrivateKey(cryptoAdapter, encryptedKey, password, saltStri
|
|
|
70
70
|
const iv = base64ToUint8Array(encryptedKey.iv);
|
|
71
71
|
const tag = base64ToUint8Array(encryptedKey.tag);
|
|
72
72
|
const saltBytes = base64ToUint8Array(encryptedKey.salt);
|
|
73
|
-
|
|
73
|
+
// Floor the stored iteration count (audit finding #3): a tampered identity
|
|
74
|
+
// blob with a too-low value must not weaken the KDF on decrypt.
|
|
75
|
+
const iterations = (0, pbkdf2Iterations_1.resolveStoredIterations)(encryptedKey.iterations);
|
|
74
76
|
const combinedSalt = buildCombinedSalt(saltBytes, saltString);
|
|
75
77
|
const passwordKey = await subtle.importKey("raw", new TextEncoder().encode(password), { name: "PBKDF2" }, false, ["deriveBits", "deriveKey"]);
|
|
76
78
|
const derivedKey = await subtle.deriveKey({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privateKeyEncryption.js","sourceRoot":"","sources":["../../../src/core/crypto/privateKeyEncryption.ts"],"names":[],"mappings":";;AAiCA,8CA+DC;AAED,
|
|
1
|
+
{"version":3,"file":"privateKeyEncryption.js","sourceRoot":"","sources":["../../../src/core/crypto/privateKeyEncryption.ts"],"names":[],"mappings":";;AAiCA,8CA+DC;AAED,8CA+CC;AA/ID,yDAAiH;AAEjH,SAAS,kBAAkB,CAAC,KAAiB;IAC3C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAqB,EAAE,UAAkB;IAClE,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/E,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5B,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACpD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,KAAiB;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAgB,CAAC;AAClG,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,aAA4B,EAC5B,eAA2B,EAC3B,QAAgB,EAChB,UAAkB;IAElB,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEvE,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAChC,YAAY,CAAC,IAAI,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,CAAC;IAEjB,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CACxC,KAAK,EACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAClC,QAAQ,EACR,KAAK,EACL,CAAC,YAAY,EAAE,WAAW,CAAC,CAC5B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,0CAAuB,EAAC,4CAAyB,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CACvC;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC;QACjC,UAAU;QACV,IAAI,EAAE,SAAS;KAChB,EACD,WAAW,EACX;QACE,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,GAAG;KACZ,EACD,KAAK,EACL,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CACpC;QACE,IAAI,EAAE,SAAS;QACf,EAAE;QACF,SAAS,EAAE,GAAG;KACf,EACD,UAAU,EACV,eAAe,CAAC,MAAqB,CACtC,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9E,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEpE,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC;QAC1C,EAAE,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC1B,GAAG,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC5B,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAC9B,UAAU;KACX,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,aAA4B,EAC5B,YAAiC,EACjC,QAAgB,EAChB,UAAkB;IAElB,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;IAEzC,MAAM,UAAU,GAAG,kBAAkB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxD,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,UAAU,GAAG,IAAA,0CAAuB,EAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CACxC,KAAK,EACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,KAAK,EACL,CAAC,YAAY,EAAE,WAAW,CAAC,CAC5B,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,SAAS,CACvC;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC;QACjC,UAAU;QACV,IAAI,EAAE,SAAS;KAChB,EACD,WAAW,EACX,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,EAChC,KAAK,EACL,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzE,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC,OAAO,CACnB,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAC3D,UAAU,EACV,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAClC,CAAC;AACJ,CAAC"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const DATABASE_ID_REGEX: RegExp;
|
|
8
8
|
export declare const MAX_DATABASE_ID_LENGTH = 64;
|
|
9
|
-
export declare const DATABASE_ID_REQUIREMENTS = "Database IDs must be 1-64 characters, start with a letter or digit, and contain only letters, digits, dots, and
|
|
9
|
+
export declare const DATABASE_ID_REQUIREMENTS = "Database IDs must be 1-64 characters, start with a letter or digit, and contain only letters, digits, dots, hyphens, and underscores.";
|
|
10
10
|
export declare function getDatabaseIdValidationError(value: unknown, fieldName?: string): string | null;
|
|
11
11
|
export declare function isValidDatabaseId(value: unknown): value is string;
|
|
12
12
|
export declare function validateDatabaseId(value: unknown, fieldName?: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseIdValidation.d.ts","sourceRoot":"","sources":["../../src/core/databaseIdValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"databaseIdValidation.d.ts","sourceRoot":"","sources":["../../src/core/databaseIdValidation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAiC,CAAC;AAChE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,wBAAwB,0IACoG,CAAC;AAE1I,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,MAAM,GAAG,IAAI,CAc9F;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,SAAS,GAAG,MAAM,CAM7E"}
|
|
@@ -10,18 +10,18 @@ exports.validateDatabaseId = validateDatabaseId;
|
|
|
10
10
|
* Database IDs are embedded in server routes and storage names, so keep the
|
|
11
11
|
* accepted character set intentionally narrow and consistent everywhere.
|
|
12
12
|
*/
|
|
13
|
-
exports.DATABASE_ID_REGEX = /^[A-Za-z0-9][A-Za-z0-9
|
|
13
|
+
exports.DATABASE_ID_REGEX = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
14
14
|
exports.MAX_DATABASE_ID_LENGTH = 64;
|
|
15
|
-
exports.DATABASE_ID_REQUIREMENTS = "Database IDs must be 1-64 characters, start with a letter or digit, and contain only letters, digits, dots, and
|
|
15
|
+
exports.DATABASE_ID_REQUIREMENTS = "Database IDs must be 1-64 characters, start with a letter or digit, and contain only letters, digits, dots, hyphens, and underscores.";
|
|
16
16
|
function getDatabaseIdValidationError(value, fieldName = "dbId") {
|
|
17
17
|
if (typeof value !== "string" || value.length === 0) {
|
|
18
18
|
return `${fieldName} is required and must be a non-empty string`;
|
|
19
19
|
}
|
|
20
20
|
if (value.length > exports.MAX_DATABASE_ID_LENGTH) {
|
|
21
|
-
return `${fieldName} must be at most ${exports.MAX_DATABASE_ID_LENGTH} characters`;
|
|
21
|
+
return `${fieldName} ${JSON.stringify(value.slice(0, exports.MAX_DATABASE_ID_LENGTH))}… must be at most ${exports.MAX_DATABASE_ID_LENGTH} characters`;
|
|
22
22
|
}
|
|
23
23
|
if (!exports.DATABASE_ID_REGEX.test(value)) {
|
|
24
|
-
return `${fieldName} must start with a letter or digit and contain only letters, digits, dots, and
|
|
24
|
+
return `${fieldName} ${JSON.stringify(value)} must start with a letter or digit and contain only letters, digits, dots, hyphens, and underscores`;
|
|
25
25
|
}
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"databaseIdValidation.js","sourceRoot":"","sources":["../../src/core/databaseIdValidation.ts"],"names":[],"mappings":";;;AAWA,oEAcC;AAED,8CAEC;AAED,gDAMC;AArCD;;;;;GAKG;AACU,QAAA,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"databaseIdValidation.js","sourceRoot":"","sources":["../../src/core/databaseIdValidation.ts"],"names":[],"mappings":";;;AAWA,oEAcC;AAED,8CAEC;AAED,gDAMC;AArCD;;;;;GAKG;AACU,QAAA,iBAAiB,GAAG,8BAA8B,CAAC;AACnD,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAC5B,QAAA,wBAAwB,GACnC,uIAAuI,CAAC;AAE1I,SAAgB,4BAA4B,CAAC,KAAc,EAAE,SAAS,GAAG,MAAM;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,GAAG,SAAS,6CAA6C,CAAC;IACnE,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,8BAAsB,EAAE,CAAC;QAC1C,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,8BAAsB,CAAC,CAAC,qBAAqB,8BAAsB,aAAa,CAAC;IACxI,CAAC;IAED,IAAI,CAAC,yBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,qGAAqG,CAAC;IACpJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,OAAO,4BAA4B,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AACtD,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAc,EAAE,SAAS,GAAG,MAAM;IACnE,MAAM,KAAK,GAAG,4BAA4B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC"}
|
package/dist/core/errors.d.ts
CHANGED
|
@@ -7,4 +7,30 @@ export declare class SymmetricKeyNotFoundError extends Error {
|
|
|
7
7
|
readonly keyId: string;
|
|
8
8
|
constructor(keyId: string);
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when a document id cannot be resolved in the database (no
|
|
12
|
+
* `doc_create` entry exists). Callers that treat "missing" as a regular
|
|
13
|
+
* outcome (e.g. probing several databases for an id) should catch this via
|
|
14
|
+
* {@link isDocumentMissingError} instead of matching message strings.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DocumentNotFoundError extends Error {
|
|
17
|
+
readonly docId: string;
|
|
18
|
+
constructor(docId: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Error thrown when a document exists but its latest lifecycle entry is a
|
|
22
|
+
* deletion, so it cannot be materialized through the regular read/write APIs.
|
|
23
|
+
*/
|
|
24
|
+
export declare class DocumentDeletedError extends Error {
|
|
25
|
+
readonly docId: string;
|
|
26
|
+
constructor(docId: string);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* True when `error` signals that a document id cannot be materialized —
|
|
30
|
+
* either unknown ({@link DocumentNotFoundError}) or deleted
|
|
31
|
+
* ({@link DocumentDeletedError}). Checks the error `name` in addition to
|
|
32
|
+
* `instanceof` so it stays reliable when two module copies of mindoodb are
|
|
33
|
+
* loaded (e.g. a bundled app next to a linked workspace build).
|
|
34
|
+
*/
|
|
35
|
+
export declare function isDocumentMissingError(error: unknown): boolean;
|
|
10
36
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,MAAM;CAK1B"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,MAAM;CAK1B;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,MAAM;CAK1B;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,MAAM;CAK1B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQ9D"}
|
package/dist/core/errors.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SymmetricKeyNotFoundError = void 0;
|
|
3
|
+
exports.DocumentDeletedError = exports.DocumentNotFoundError = exports.SymmetricKeyNotFoundError = void 0;
|
|
4
|
+
exports.isDocumentMissingError = isDocumentMissingError;
|
|
4
5
|
/**
|
|
5
6
|
* Error thrown when a symmetric encryption key is not found in the KeyBag.
|
|
6
7
|
* This error is used to identify documents that cannot be decrypted because
|
|
@@ -14,4 +15,44 @@ class SymmetricKeyNotFoundError extends Error {
|
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
exports.SymmetricKeyNotFoundError = SymmetricKeyNotFoundError;
|
|
18
|
+
/**
|
|
19
|
+
* Error thrown when a document id cannot be resolved in the database (no
|
|
20
|
+
* `doc_create` entry exists). Callers that treat "missing" as a regular
|
|
21
|
+
* outcome (e.g. probing several databases for an id) should catch this via
|
|
22
|
+
* {@link isDocumentMissingError} instead of matching message strings.
|
|
23
|
+
*/
|
|
24
|
+
class DocumentNotFoundError extends Error {
|
|
25
|
+
constructor(docId) {
|
|
26
|
+
super(`Document ${docId} not found`);
|
|
27
|
+
this.name = "DocumentNotFoundError";
|
|
28
|
+
this.docId = docId;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.DocumentNotFoundError = DocumentNotFoundError;
|
|
32
|
+
/**
|
|
33
|
+
* Error thrown when a document exists but its latest lifecycle entry is a
|
|
34
|
+
* deletion, so it cannot be materialized through the regular read/write APIs.
|
|
35
|
+
*/
|
|
36
|
+
class DocumentDeletedError extends Error {
|
|
37
|
+
constructor(docId) {
|
|
38
|
+
super(`Document ${docId} has been deleted`);
|
|
39
|
+
this.name = "DocumentDeletedError";
|
|
40
|
+
this.docId = docId;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.DocumentDeletedError = DocumentDeletedError;
|
|
44
|
+
/**
|
|
45
|
+
* True when `error` signals that a document id cannot be materialized —
|
|
46
|
+
* either unknown ({@link DocumentNotFoundError}) or deleted
|
|
47
|
+
* ({@link DocumentDeletedError}). Checks the error `name` in addition to
|
|
48
|
+
* `instanceof` so it stays reliable when two module copies of mindoodb are
|
|
49
|
+
* loaded (e.g. a bundled app next to a linked workspace build).
|
|
50
|
+
*/
|
|
51
|
+
function isDocumentMissingError(error) {
|
|
52
|
+
if (error instanceof DocumentNotFoundError || error instanceof DocumentDeletedError) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return (error instanceof Error &&
|
|
56
|
+
(error.name === "DocumentNotFoundError" || error.name === "DocumentDeletedError"));
|
|
57
|
+
}
|
|
17
58
|
//# sourceMappingURL=errors.js.map
|
package/dist/core/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":";;;AAoDA,wDAQC;AA5DD;;;;GAIG;AACH,MAAa,yBAA0B,SAAQ,KAAK;IAGlD,YAAY,KAAa;QACvB,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AARD,8DAQC;AAED;;;;;GAKG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAG9C,YAAY,KAAa;QACvB,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AARD,sDAQC;AAED;;;GAGG;AACH,MAAa,oBAAqB,SAAQ,KAAK;IAG7C,YAAY,KAAa;QACvB,KAAK,CAAC,YAAY,KAAK,mBAAmB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AARD,oDAQC;AAED;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,YAAY,qBAAqB,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QACpF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,KAAK,YAAY,KAAK;QACtB,CAAC,KAAK,CAAC,IAAI,KAAK,uBAAuB,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAClF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { MindooDBAppBooleanExpression, MindooDBAppExpression, MindooDBAppViewExpressionDatePart } from "./types";
|
|
2
|
+
type Primitive = string | number | boolean | bigint | symbol | null | undefined | Date;
|
|
3
|
+
type NonTraversable = Primitive | Array<unknown>;
|
|
4
|
+
type StringKey<T> = Extract<keyof T, string>;
|
|
5
|
+
/** Dot-separated field paths available on a source document type. */
|
|
6
|
+
export type MindooDBAppFieldPath<T> = T extends NonTraversable ? never : {
|
|
7
|
+
[K in StringKey<T>]: T[K] extends NonTraversable ? `${K}` : `${K}` | `${K}.${MindooDBAppFieldPath<T[K]>}`;
|
|
8
|
+
}[StringKey<T>];
|
|
9
|
+
/** Resolves the value type located at a dot-separated path. */
|
|
10
|
+
export type MindooDBAppPathValue<T, TPath extends string> = TPath extends `${infer Head}.${infer Tail}` ? Head extends keyof T ? MindooDBAppPathValue<T[Head], Tail> : unknown : TPath extends keyof T ? T[TPath] : unknown;
|
|
11
|
+
/**
|
|
12
|
+
* Helper arguments accepted by the TypeScript builder.
|
|
13
|
+
*
|
|
14
|
+
* Callers can pass a prebuilt expression node or any raw literal value. Raw
|
|
15
|
+
* values are wrapped into `{ kind: "literal" }` nodes automatically.
|
|
16
|
+
*/
|
|
17
|
+
export type MindooDBAppExpressionInput<T = unknown> = MindooDBAppExpression<T> | T;
|
|
18
|
+
type ExpressionResult<TExpression> = TExpression extends MindooDBAppExpression<infer TResult> ? TResult : TExpression;
|
|
19
|
+
type LetBindings = Record<string, MindooDBAppExpressionInput<unknown>>;
|
|
20
|
+
type LetBindingRefs<TBindings extends LetBindings> = {
|
|
21
|
+
[K in keyof TBindings]: MindooDBAppExpression<ExpressionResult<TBindings[K]>>;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Creates the typed builder API used by applications to author Formula
|
|
25
|
+
* expressions in TypeScript.
|
|
26
|
+
*
|
|
27
|
+
* The first generic parameter describes the source document shape used by
|
|
28
|
+
* `field()`. The optional second generic parameter describes previously
|
|
29
|
+
* computed column values referenced via `value()`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function createViewLanguage<TDocument extends Record<string, unknown>, TValueContext extends Record<string, unknown> = Record<string, unknown>>(): {
|
|
32
|
+
literal<T>(value: T): MindooDBAppExpression<T>;
|
|
33
|
+
string(value: string): MindooDBAppExpression<string>;
|
|
34
|
+
number(value: number): MindooDBAppExpression<number>;
|
|
35
|
+
boolean(value: boolean): MindooDBAppBooleanExpression;
|
|
36
|
+
field<TPath extends MindooDBAppFieldPath<TDocument>>(path: TPath): MindooDBAppExpression<MindooDBAppPathValue<TDocument, TPath>>;
|
|
37
|
+
value<TPath extends MindooDBAppFieldPath<TValueContext>>(path: TPath): MindooDBAppExpression<MindooDBAppPathValue<TValueContext, TPath>>;
|
|
38
|
+
origin(): MindooDBAppExpression<string>;
|
|
39
|
+
createdAt(): MindooDBAppExpression<string | null>;
|
|
40
|
+
decryptionKeyId(): MindooDBAppExpression<string | null>;
|
|
41
|
+
isWitnessed(): MindooDBAppBooleanExpression;
|
|
42
|
+
isAwaitingWitness(): MindooDBAppBooleanExpression;
|
|
43
|
+
attachmentNames(): MindooDBAppExpression<string[]>;
|
|
44
|
+
attachmentLengths(): MindooDBAppExpression<number[]>;
|
|
45
|
+
attachmentCount(): MindooDBAppExpression<number>;
|
|
46
|
+
childCount(): MindooDBAppExpression<number>;
|
|
47
|
+
childCategoryCount(): MindooDBAppExpression<number>;
|
|
48
|
+
childDocumentCount(): MindooDBAppExpression<number>;
|
|
49
|
+
descendantCount(): MindooDBAppExpression<number>;
|
|
50
|
+
descendantCategoryCount(): MindooDBAppExpression<number>;
|
|
51
|
+
descendantDocumentCount(): MindooDBAppExpression<number>;
|
|
52
|
+
siblingCount(): MindooDBAppExpression<number>;
|
|
53
|
+
add(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppExpression<number>;
|
|
54
|
+
sub(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppExpression<number>;
|
|
55
|
+
mul(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppExpression<number>;
|
|
56
|
+
div(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppExpression<number>;
|
|
57
|
+
mod(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppExpression<number>;
|
|
58
|
+
eq(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
59
|
+
neq(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
60
|
+
gt(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
61
|
+
gte(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
62
|
+
lt(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
63
|
+
lte(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
64
|
+
and(...args: MindooDBAppExpressionInput<boolean>[]): MindooDBAppBooleanExpression;
|
|
65
|
+
or(...args: MindooDBAppExpressionInput<boolean>[]): MindooDBAppBooleanExpression;
|
|
66
|
+
not(value: MindooDBAppExpressionInput<boolean>): MindooDBAppBooleanExpression;
|
|
67
|
+
concat(...args: MindooDBAppExpressionInput[]): MindooDBAppExpression<string>;
|
|
68
|
+
lower(value: MindooDBAppExpressionInput): MindooDBAppExpression<string>;
|
|
69
|
+
upper(value: MindooDBAppExpressionInput): MindooDBAppExpression<string>;
|
|
70
|
+
trim(value: MindooDBAppExpressionInput): MindooDBAppExpression<string>;
|
|
71
|
+
left(value: MindooDBAppExpressionInput, by: MindooDBAppExpressionInput): MindooDBAppExpression<string>;
|
|
72
|
+
right(value: MindooDBAppExpressionInput, by: MindooDBAppExpressionInput): MindooDBAppExpression<string>;
|
|
73
|
+
toNumber(value: MindooDBAppExpressionInput): MindooDBAppExpression<number | null>;
|
|
74
|
+
toString(value: MindooDBAppExpressionInput): MindooDBAppExpression<string>;
|
|
75
|
+
toBoolean(value: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
76
|
+
contains(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
77
|
+
startsWith(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
78
|
+
endsWith(left: MindooDBAppExpressionInput, right: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
79
|
+
coalesce<T>(...args: MindooDBAppExpressionInput<T>[]): MindooDBAppExpression<T>;
|
|
80
|
+
exists(value: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
81
|
+
notExists(value: MindooDBAppExpressionInput): MindooDBAppBooleanExpression;
|
|
82
|
+
pathJoin(...args: MindooDBAppExpressionInput[]): MindooDBAppExpression<string>;
|
|
83
|
+
datePart(value: MindooDBAppExpressionInput, part: MindooDBAppViewExpressionDatePart): MindooDBAppExpression<string | number | null>;
|
|
84
|
+
decryptField(field: string, key?: MindooDBAppExpressionInput<string>): MindooDBAppExpression<string | null>;
|
|
85
|
+
decryptJson(field: string, path?: string, key?: MindooDBAppExpressionInput<string>): MindooDBAppExpression<unknown>;
|
|
86
|
+
json(field: string, path?: string): MindooDBAppExpression<unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Branching in the style of Domino's `@If`: any number of
|
|
89
|
+
* condition/value pairs followed by one final default value —
|
|
90
|
+
* `ifElse(cond1, val1, cond2, val2, ..., default)`. Conditions are
|
|
91
|
+
* checked in order; the value of the first matching condition wins,
|
|
92
|
+
* otherwise the default. The classic three-argument form
|
|
93
|
+
* `ifElse(condition, whenTrue, whenFalse)` is the smallest case.
|
|
94
|
+
*
|
|
95
|
+
* Multi-branch calls desugar into nested `if` AST nodes, so the
|
|
96
|
+
* serialized expression format is unchanged.
|
|
97
|
+
*/
|
|
98
|
+
ifElse<T>(condition: MindooDBAppExpressionInput<boolean>, whenTrue: MindooDBAppExpressionInput<T>, ...moreBranchesAndDefault: MindooDBAppExpressionInput[]): MindooDBAppExpression<T>;
|
|
99
|
+
let<TBindings extends LetBindings, TResult>(bindings: TBindings, build: (refs: LetBindingRefs<TBindings>) => MindooDBAppExpressionInput<TResult>): MindooDBAppExpression<TResult>;
|
|
100
|
+
};
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/builder.ts"],"names":[],"mappings":"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"}
|