@party-stack/ontology 0.19.0 → 0.19.1
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/lib/OntologyPullConfig.d.ts +15 -13
- package/lib/OntologyPullConfig.d.ts.map +1 -1
- package/lib/OntologyPullConfig.js +0 -1
- package/lib/_virtual/_rolldown/runtime.js +13 -0
- package/lib/cli/format.d.ts +4 -0
- package/lib/cli/format.d.ts.map +1 -0
- package/lib/cli/format.js +19 -0
- package/lib/cli/format.js.map +1 -0
- package/lib/cli/generate.d.ts +6 -5
- package/lib/cli/generate.d.ts.map +1 -1
- package/lib/cli/generate.js +86 -110
- package/lib/cli/generate.js.map +1 -1
- package/lib/cli/index.d.ts +1 -3
- package/lib/cli/index.js +42 -59
- package/lib/cli/index.js.map +1 -1
- package/lib/cli/pull.d.ts +3 -1
- package/lib/cli/pull.d.ts.map +1 -1
- package/lib/cli/pull.js +42 -60
- package/lib/cli/pull.js.map +1 -1
- package/lib/examples/blog.d.ts +347 -345
- package/lib/examples/blog.d.ts.map +1 -1
- package/lib/examples/blog.js +350 -337
- package/lib/examples/blog.js.map +1 -1
- package/lib/examples/blog.live-queries.d.ts +8 -3
- package/lib/examples/blog.live-queries.d.ts.map +1 -1
- package/lib/examples/blog.live-queries.js +28 -44
- package/lib/examples/blog.live-queries.js.map +1 -1
- package/lib/examples/generated/constants.d.ts +1 -2
- package/lib/examples/generated/constants.js +0 -2
- package/lib/examples/generated/live.d.ts +5 -3
- package/lib/examples/generated/live.d.ts.map +1 -1
- package/lib/examples/generated/live.js +12 -8
- package/lib/examples/generated/live.js.map +1 -1
- package/lib/examples/generated/types.d.ts +52 -50
- package/lib/examples/generated/types.d.ts.map +1 -1
- package/lib/examples/generated/types.js +0 -2
- package/lib/generate/builders.d.ts +8 -5
- package/lib/generate/builders.d.ts.map +1 -1
- package/lib/generate/builders.js +53 -55
- package/lib/generate/builders.js.map +1 -1
- package/lib/generate/constants.d.ts +3 -1
- package/lib/generate/constants.d.ts.map +1 -1
- package/lib/generate/constants.js +23 -26
- package/lib/generate/constants.js.map +1 -1
- package/lib/generate/index.d.ts +6 -6
- package/lib/generate/index.js +6 -6
- package/lib/generate/live.d.ts +8 -6
- package/lib/generate/live.d.ts.map +1 -1
- package/lib/generate/live.js +43 -42
- package/lib/generate/live.js.map +1 -1
- package/lib/generate/ontology.d.ts +4 -2
- package/lib/generate/ontology.d.ts.map +1 -1
- package/lib/generate/ontology.js +453 -354
- package/lib/generate/ontology.js.map +1 -1
- package/lib/generate/types.d.ts +7 -6
- package/lib/generate/types.d.ts.map +1 -1
- package/lib/generate/types.js +190 -262
- package/lib/generate/types.js.map +1 -1
- package/lib/generate/utils/buildJsDocs.d.ts +7 -4
- package/lib/generate/utils/buildJsDocs.d.ts.map +1 -1
- package/lib/generate/utils/buildJsDocs.js +14 -10
- package/lib/generate/utils/buildJsDocs.js.map +1 -1
- package/lib/index.d.ts +30 -13
- package/lib/index.js +18 -10
- package/lib/infer.d.ts +129 -152
- package/lib/infer.d.ts.map +1 -1
- package/lib/infer.js +10 -6
- package/lib/infer.js.map +1 -1
- package/lib/installation/createMetaOntologyConfiguration.d.ts +6 -3
- package/lib/installation/createMetaOntologyConfiguration.d.ts.map +1 -1
- package/lib/installation/createMetaOntologyConfiguration.js +13 -11
- package/lib/installation/createMetaOntologyConfiguration.js.map +1 -1
- package/lib/installation/createOntologyBackendInstallation.d.ts +3 -1
- package/lib/installation/createOntologyBackendInstallation.d.ts.map +1 -1
- package/lib/installation/createOntologyBackendInstallation.js +205 -268
- package/lib/installation/createOntologyBackendInstallation.js.map +1 -1
- package/lib/installation/index.d.ts +4 -4
- package/lib/installation/index.js +3 -3
- package/lib/installation/types.d.ts +83 -80
- package/lib/installation/types.d.ts.map +1 -1
- package/lib/installation/types.js +0 -1
- package/lib/ir/generated/builders.d.ts +294 -382
- package/lib/ir/generated/builders.d.ts.map +1 -1
- package/lib/ir/generated/builders.js +180 -119
- package/lib/ir/generated/builders.js.map +1 -1
- package/lib/ir/generated/constants.d.ts +137 -135
- package/lib/ir/generated/constants.d.ts.map +1 -1
- package/lib/ir/generated/constants.js +162 -129
- package/lib/ir/generated/constants.js.map +1 -1
- package/lib/ir/generated/types.d.ts +239 -234
- package/lib/ir/generated/types.d.ts.map +1 -1
- package/lib/ir/generated/types.js +0 -2
- package/lib/ir/index.d.ts +4 -4
- package/lib/ir/index.js +3 -4
- package/lib/ir/schema.d.ts +2174 -2172
- package/lib/ir/schema.d.ts.map +1 -1
- package/lib/ir/schema.js +1184 -1343
- package/lib/ir/schema.js.map +1 -1
- package/lib/ir/validate.d.ts +5 -3
- package/lib/ir/validate.d.ts.map +1 -1
- package/lib/ir/validate.js +589 -707
- package/lib/ir/validate.js.map +1 -1
- package/lib/json/index.d.ts +10 -8
- package/lib/json/index.d.ts.map +1 -1
- package/lib/json/index.js +101 -135
- package/lib/json/index.js.map +1 -1
- package/lib/lenses.d.ts +7 -4
- package/lib/lenses.d.ts.map +1 -1
- package/lib/lenses.js +96 -132
- package/lib/lenses.js.map +1 -1
- package/lib/live/LiveOntology.d.ts +55 -60
- package/lib/live/LiveOntology.d.ts.map +1 -1
- package/lib/live/LiveOntology.js +98 -124
- package/lib/live/LiveOntology.js.map +1 -1
- package/lib/live/OntologyBackendAdapter.d.ts +79 -76
- package/lib/live/OntologyBackendAdapter.d.ts.map +1 -1
- package/lib/live/OntologyBackendAdapter.js +0 -1
- package/lib/live/actions/createLiveOntologyAction.d.ts +27 -24
- package/lib/live/actions/createLiveOntologyAction.d.ts.map +1 -1
- package/lib/live/actions/createLiveOntologyAction.js +24 -21
- package/lib/live/actions/createLiveOntologyAction.js.map +1 -1
- package/lib/live/actions/createLiveOntologyActions.d.ts +23 -20
- package/lib/live/actions/createLiveOntologyActions.d.ts.map +1 -1
- package/lib/live/actions/createLiveOntologyActions.js +131 -161
- package/lib/live/actions/createLiveOntologyActions.js.map +1 -1
- package/lib/live/actions/prepareActionParameters.d.ts +14 -11
- package/lib/live/actions/prepareActionParameters.d.ts.map +1 -1
- package/lib/live/actions/prepareActionParameters.js +190 -228
- package/lib/live/actions/prepareActionParameters.js.map +1 -1
- package/lib/live/attachments/attachmentSources.d.ts +7 -4
- package/lib/live/attachments/attachmentSources.d.ts.map +1 -1
- package/lib/live/attachments/attachmentSources.js +55 -71
- package/lib/live/attachments/attachmentSources.js.map +1 -1
- package/lib/live/attachments/createLiveOntologyAttachments.d.ts +47 -45
- package/lib/live/attachments/createLiveOntologyAttachments.d.ts.map +1 -1
- package/lib/live/attachments/createLiveOntologyAttachments.js +65 -83
- package/lib/live/attachments/createLiveOntologyAttachments.js.map +1 -1
- package/lib/live/attachments/types.d.ts +10 -9
- package/lib/live/attachments/types.d.ts.map +1 -1
- package/lib/live/attachments/types.js +0 -1
- package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts +3 -1
- package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.d.ts.map +1 -1
- package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js +5 -3
- package/lib/live/attachments/unsupportedOntologyAttachmentsAdapter.js.map +1 -1
- package/lib/live/expression.d.ts +16 -14
- package/lib/live/expression.d.ts.map +1 -1
- package/lib/live/expression.js +142 -223
- package/lib/live/expression.js.map +1 -1
- package/lib/live/index.d.ts +12 -9
- package/lib/live/index.js +6 -8
- package/lib/live/mutators/OntologyEdits.d.ts +12 -9
- package/lib/live/mutators/OntologyEdits.d.ts.map +1 -1
- package/lib/live/mutators/OntologyEdits.js +57 -74
- package/lib/live/mutators/OntologyEdits.js.map +1 -1
- package/lib/live/mutators/createMutatorTx.d.ts +7 -5
- package/lib/live/mutators/createMutatorTx.d.ts.map +1 -1
- package/lib/live/mutators/createMutatorTx.js +53 -69
- package/lib/live/mutators/createMutatorTx.js.map +1 -1
- package/lib/live/mutators/runOptimisticAction.d.ts +16 -13
- package/lib/live/mutators/runOptimisticAction.d.ts.map +1 -1
- package/lib/live/mutators/runOptimisticAction.js +26 -26
- package/lib/live/mutators/runOptimisticAction.js.map +1 -1
- package/lib/live/mutators/types.d.ts +18 -16
- package/lib/live/mutators/types.d.ts.map +1 -1
- package/lib/live/mutators/types.js +0 -1
- package/lib/live/objects/OntologyObject.d.ts +2 -0
- package/lib/live/objects/OntologyObject.d.ts.map +1 -1
- package/lib/live/objects/OntologyObject.js +0 -1
- package/lib/live/objects/createLiveOntologyObjectCollection.d.ts +13 -10
- package/lib/live/objects/createLiveOntologyObjectCollection.d.ts.map +1 -1
- package/lib/live/objects/createLiveOntologyObjectCollection.js +48 -49
- package/lib/live/objects/createLiveOntologyObjectCollection.js.map +1 -1
- package/lib/live/objects/ontologyObjectCollectionId.d.ts +2 -0
- package/lib/live/objects/ontologyObjectCollectionId.d.ts.map +1 -1
- package/lib/live/objects/ontologyObjectCollectionId.js +6 -2
- package/lib/live/objects/ontologyObjectCollectionId.js.map +1 -1
- package/lib/live/outbox/createOntologyOutbox.d.ts +16 -14
- package/lib/live/outbox/createOntologyOutbox.d.ts.map +1 -1
- package/lib/live/outbox/createOntologyOutbox.js +275 -326
- package/lib/live/outbox/createOntologyOutbox.js.map +1 -1
- package/lib/live/outbox/leaderExecutor.d.ts +15 -13
- package/lib/live/outbox/leaderExecutor.d.ts.map +1 -1
- package/lib/live/outbox/leaderExecutor.js +114 -153
- package/lib/live/outbox/leaderExecutor.js.map +1 -1
- package/lib/live/outbox/outboxService.d.ts +4 -2
- package/lib/live/outbox/outboxService.d.ts.map +1 -1
- package/lib/live/outbox/outboxService.js +66 -71
- package/lib/live/outbox/outboxService.js.map +1 -1
- package/lib/live/outbox/projectionManager.d.ts +26 -24
- package/lib/live/outbox/projectionManager.d.ts.map +1 -1
- package/lib/live/outbox/projectionManager.js +121 -147
- package/lib/live/outbox/projectionManager.js.map +1 -1
- package/lib/live/outbox/repository.d.ts +27 -25
- package/lib/live/outbox/repository.d.ts.map +1 -1
- package/lib/live/outbox/repository.js +192 -241
- package/lib/live/outbox/repository.js.map +1 -1
- package/lib/live/outbox/service.d.ts +52 -50
- package/lib/live/outbox/service.d.ts.map +1 -1
- package/lib/live/outbox/service.js +5 -1
- package/lib/live/outbox/service.js.map +1 -1
- package/lib/live/outbox/types.d.ts +35 -33
- package/lib/live/outbox/types.d.ts.map +1 -1
- package/lib/live/outbox/types.js +10 -6
- package/lib/live/outbox/types.js.map +1 -1
- package/lib/live/waitForCollectionReady.d.ts +3 -1
- package/lib/live/waitForCollectionReady.d.ts.map +1 -1
- package/lib/live/waitForCollectionReady.js +44 -65
- package/lib/live/waitForCollectionReady.js.map +1 -1
- package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts +5 -2
- package/lib/meta/createLocalMetaOntologyBackendAdapter.d.ts.map +1 -1
- package/lib/meta/createLocalMetaOntologyBackendAdapter.js +37 -39
- package/lib/meta/createLocalMetaOntologyBackendAdapter.js.map +1 -1
- package/lib/meta/generated/constants.d.ts +137 -135
- package/lib/meta/generated/constants.d.ts.map +1 -1
- package/lib/meta/generated/constants.js +162 -129
- package/lib/meta/generated/constants.js.map +1 -1
- package/lib/meta/generated/live.d.ts +5 -2
- package/lib/meta/generated/live.d.ts.map +1 -1
- package/lib/meta/generated/live.js +12 -8
- package/lib/meta/generated/live.js.map +1 -1
- package/lib/meta/generated/types.d.ts +233 -231
- package/lib/meta/generated/types.d.ts.map +1 -1
- package/lib/meta/generated/types.js +0 -2
- package/lib/meta/ontology.d.ts +23 -21
- package/lib/meta/ontology.d.ts.map +1 -1
- package/lib/meta/ontology.js +100 -104
- package/lib/meta/ontology.js.map +1 -1
- package/lib/meta/pull.d.ts +8 -6
- package/lib/meta/pull.d.ts.map +1 -1
- package/lib/meta/pull.js +39 -52
- package/lib/meta/pull.js.map +1 -1
- package/lib/utils/index.d.ts +8 -8
- package/lib/utils/index.js +5 -6
- package/lib/utils/links.d.ts +34 -32
- package/lib/utils/links.d.ts.map +1 -1
- package/lib/utils/links.js +10 -17
- package/lib/utils/links.js.map +1 -1
- package/lib/utils/paths.d.ts +2 -0
- package/lib/utils/paths.d.ts.map +1 -1
- package/lib/utils/paths.js +32 -44
- package/lib/utils/paths.js.map +1 -1
- package/lib/utils/provide.d.ts +2 -0
- package/lib/utils/provide.d.ts.map +1 -1
- package/lib/utils/provide.js +7 -9
- package/lib/utils/provide.js.map +1 -1
- package/lib/utils/targets.d.ts +20 -18
- package/lib/utils/targets.d.ts.map +1 -1
- package/lib/utils/targets.js +0 -1
- package/lib/utils/typeNames.d.ts +10 -8
- package/lib/utils/typeNames.d.ts.map +1 -1
- package/lib/utils/typeNames.js +0 -1
- package/lib/utils/types.d.ts +6 -4
- package/lib/utils/types.d.ts.map +1 -1
- package/lib/utils/types.js +38 -38
- package/lib/utils/types.js.map +1 -1
- package/lib/utils/uncertain.d.ts +5 -3
- package/lib/utils/uncertain.d.ts.map +1 -1
- package/lib/utils/uncertain.js +11 -9
- package/lib/utils/uncertain.js.map +1 -1
- package/lib/utils/validation.d.ts +4 -2
- package/lib/utils/validation.d.ts.map +1 -1
- package/lib/utils/validation.js +0 -1
- package/lib/utils/values.d.ts +21 -18
- package/lib/utils/values.d.ts.map +1 -1
- package/lib/utils/values.js +0 -1
- package/package.json +19 -23
- package/lib/OntologyPullConfig.js.map +0 -1
- package/lib/cli/index.d.ts.map +0 -1
- package/lib/cli/index.test.d.ts +0 -2
- package/lib/cli/index.test.d.ts.map +0 -1
- package/lib/cli/index.test.js +0 -34
- package/lib/cli/index.test.js.map +0 -1
- package/lib/cli/pull.test.d.ts +0 -2
- package/lib/cli/pull.test.d.ts.map +0 -1
- package/lib/cli/pull.test.js +0 -125
- package/lib/cli/pull.test.js.map +0 -1
- package/lib/examples/generated/constants.d.ts.map +0 -1
- package/lib/examples/generated/constants.js.map +0 -1
- package/lib/examples/generated/types.js.map +0 -1
- package/lib/generate/builders.test.d.ts +0 -2
- package/lib/generate/builders.test.d.ts.map +0 -1
- package/lib/generate/builders.test.js +0 -49
- package/lib/generate/builders.test.js.map +0 -1
- package/lib/generate/index.d.ts.map +0 -1
- package/lib/generate/index.js.map +0 -1
- package/lib/generate/live.test.d.ts +0 -2
- package/lib/generate/live.test.d.ts.map +0 -1
- package/lib/generate/live.test.js +0 -22
- package/lib/generate/live.test.js.map +0 -1
- package/lib/generate/ontology.test.d.ts +0 -2
- package/lib/generate/ontology.test.d.ts.map +0 -1
- package/lib/generate/ontology.test.js +0 -157
- package/lib/generate/ontology.test.js.map +0 -1
- package/lib/generate/types.test.d.ts +0 -2
- package/lib/generate/types.test.d.ts.map +0 -1
- package/lib/generate/types.test.js +0 -304
- package/lib/generate/types.test.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/infer.test.d.ts +0 -2
- package/lib/infer.test.d.ts.map +0 -1
- package/lib/infer.test.js +0 -125
- package/lib/infer.test.js.map +0 -1
- package/lib/installation/createMetaOntologyConfiguration.test.d.ts +0 -2
- package/lib/installation/createMetaOntologyConfiguration.test.d.ts.map +0 -1
- package/lib/installation/createMetaOntologyConfiguration.test.js +0 -20
- package/lib/installation/createMetaOntologyConfiguration.test.js.map +0 -1
- package/lib/installation/createOntologyBackendInstallation.test.d.ts +0 -2
- package/lib/installation/createOntologyBackendInstallation.test.d.ts.map +0 -1
- package/lib/installation/createOntologyBackendInstallation.test.js +0 -320
- package/lib/installation/createOntologyBackendInstallation.test.js.map +0 -1
- package/lib/installation/index.d.ts.map +0 -1
- package/lib/installation/index.js.map +0 -1
- package/lib/installation/types.js.map +0 -1
- package/lib/ir/generated/types.js.map +0 -1
- package/lib/ir/index.d.ts.map +0 -1
- package/lib/ir/index.js.map +0 -1
- package/lib/ir/validate.test.d.ts +0 -2
- package/lib/ir/validate.test.d.ts.map +0 -1
- package/lib/ir/validate.test.js +0 -1061
- package/lib/ir/validate.test.js.map +0 -1
- package/lib/json/index.test.d.ts +0 -2
- package/lib/json/index.test.d.ts.map +0 -1
- package/lib/json/index.test.js +0 -142
- package/lib/json/index.test.js.map +0 -1
- package/lib/lenses.test.d.ts +0 -2
- package/lib/lenses.test.d.ts.map +0 -1
- package/lib/lenses.test.js +0 -80
- package/lib/lenses.test.js.map +0 -1
- package/lib/live/LiveOntology.test.d.ts +0 -2
- package/lib/live/LiveOntology.test.d.ts.map +0 -1
- package/lib/live/LiveOntology.test.js +0 -507
- package/lib/live/LiveOntology.test.js.map +0 -1
- package/lib/live/OntologyBackendAdapter.js.map +0 -1
- package/lib/live/actions/createLiveOntologyAction.test.d.ts +0 -2
- package/lib/live/actions/createLiveOntologyAction.test.d.ts.map +0 -1
- package/lib/live/actions/createLiveOntologyAction.test.js +0 -232
- package/lib/live/actions/createLiveOntologyAction.test.js.map +0 -1
- package/lib/live/actions/prepareActionParameters.test.d.ts +0 -2
- package/lib/live/actions/prepareActionParameters.test.d.ts.map +0 -1
- package/lib/live/actions/prepareActionParameters.test.js +0 -165
- package/lib/live/actions/prepareActionParameters.test.js.map +0 -1
- package/lib/live/attachments/attachmentMetadata.test.d.ts +0 -2
- package/lib/live/attachments/attachmentMetadata.test.d.ts.map +0 -1
- package/lib/live/attachments/attachmentMetadata.test.js +0 -73
- package/lib/live/attachments/attachmentMetadata.test.js.map +0 -1
- package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts +0 -2
- package/lib/live/attachments/createLiveOntologyAttachments.test.d.ts.map +0 -1
- package/lib/live/attachments/createLiveOntologyAttachments.test.js +0 -363
- package/lib/live/attachments/createLiveOntologyAttachments.test.js.map +0 -1
- package/lib/live/attachments/types.js.map +0 -1
- package/lib/live/expression.test.d.ts +0 -2
- package/lib/live/expression.test.d.ts.map +0 -1
- package/lib/live/expression.test.js +0 -311
- package/lib/live/expression.test.js.map +0 -1
- package/lib/live/index.d.ts.map +0 -1
- package/lib/live/index.js.map +0 -1
- package/lib/live/mutators/OntologyEdits.test.d.ts +0 -2
- package/lib/live/mutators/OntologyEdits.test.d.ts.map +0 -1
- package/lib/live/mutators/OntologyEdits.test.js +0 -85
- package/lib/live/mutators/OntologyEdits.test.js.map +0 -1
- package/lib/live/mutators/createMutatorTx.test.d.ts +0 -2
- package/lib/live/mutators/createMutatorTx.test.d.ts.map +0 -1
- package/lib/live/mutators/createMutatorTx.test.js +0 -180
- package/lib/live/mutators/createMutatorTx.test.js.map +0 -1
- package/lib/live/mutators/types.js.map +0 -1
- package/lib/live/objects/OntologyObject.js.map +0 -1
- package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts +0 -2
- package/lib/live/objects/createLiveOntologyObjectCollection.test.d.ts.map +0 -1
- package/lib/live/objects/createLiveOntologyObjectCollection.test.js +0 -310
- package/lib/live/objects/createLiveOntologyObjectCollection.test.js.map +0 -1
- package/lib/live/outbox/createOntologyOutbox.test.d.ts +0 -2
- package/lib/live/outbox/createOntologyOutbox.test.d.ts.map +0 -1
- package/lib/live/outbox/createOntologyOutbox.test.js +0 -1030
- package/lib/live/outbox/createOntologyOutbox.test.js.map +0 -1
- package/lib/meta/generated/types.js.map +0 -1
- package/lib/meta/ontology.test.d.ts +0 -2
- package/lib/meta/ontology.test.d.ts.map +0 -1
- package/lib/meta/ontology.test.js +0 -84
- package/lib/meta/ontology.test.js.map +0 -1
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/links.test.d.ts +0 -2
- package/lib/utils/links.test.d.ts.map +0 -1
- package/lib/utils/links.test.js +0 -109
- package/lib/utils/links.test.js.map +0 -1
- package/lib/utils/paths.test.d.ts +0 -2
- package/lib/utils/paths.test.d.ts.map +0 -1
- package/lib/utils/paths.test.js +0 -33
- package/lib/utils/paths.test.js.map +0 -1
- package/lib/utils/targets.js.map +0 -1
- package/lib/utils/typeNames.js.map +0 -1
- package/lib/utils/types.test.d.ts +0 -2
- package/lib/utils/types.test.d.ts.map +0 -1
- package/lib/utils/types.test.js +0 -157
- package/lib/utils/types.test.js.map +0 -1
- package/lib/utils/uncertain.test.d.ts +0 -2
- package/lib/utils/uncertain.test.d.ts.map +0 -1
- package/lib/utils/uncertain.test.js +0 -14
- package/lib/utils/uncertain.test.js.map +0 -1
- package/lib/utils/validation.js.map +0 -1
- package/lib/utils/values.js.map +0 -1
package/lib/live/LiveOntology.js
CHANGED
|
@@ -1,135 +1,109 @@
|
|
|
1
|
-
import { createBlobManager } from "@party-stack/blobs";
|
|
2
|
-
import { createDefaultRuntime } from "@party-stack/runtime";
|
|
3
1
|
import { provide } from "../utils/provide.js";
|
|
4
2
|
import { createLiveOntologyActions } from "./actions/createLiveOntologyActions.js";
|
|
5
|
-
import { createLiveOntologyAttachments
|
|
3
|
+
import { createLiveOntologyAttachments } from "./attachments/createLiveOntologyAttachments.js";
|
|
6
4
|
import { unsupportedOntologyAttachmentsAdapter } from "./attachments/unsupportedOntologyAttachmentsAdapter.js";
|
|
7
5
|
import { createLiveOntologyObjectCollection } from "./objects/createLiveOntologyObjectCollection.js";
|
|
8
6
|
import { waitForCollectionsReady } from "./waitForCollectionReady.js";
|
|
7
|
+
import { createBlobManager } from "@party-stack/blobs";
|
|
8
|
+
import { createDefaultRuntime } from "@party-stack/runtime";
|
|
9
|
+
//#region src/live/LiveOntology.ts
|
|
9
10
|
function getContextUserId(context) {
|
|
10
|
-
|
|
11
|
+
return typeof context.user === "string" ? context.user : void 0;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
* Waits for LiveOntology subsystems required before safe use.
|
|
15
|
+
* Starts on-demand object collection sync without loading subsets.
|
|
16
|
+
*/
|
|
17
|
+
async function waitForLiveOntologyReady(ontology) {
|
|
18
|
+
await ontology.ready;
|
|
19
|
+
await waitForCollectionsReady(Object.values(ontology.objects));
|
|
19
20
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
// Idempotent: already cleaned up during preload race.
|
|
105
|
-
}
|
|
106
|
-
}));
|
|
107
|
-
await Promise.all([
|
|
108
|
-
blobManager.cleanup(),
|
|
109
|
-
backendAdapter.cleanup?.(),
|
|
110
|
-
]);
|
|
111
|
-
await runtime.cleanup?.();
|
|
112
|
-
})();
|
|
113
|
-
return cleanupPromise;
|
|
114
|
-
};
|
|
115
|
-
let destroyPromise;
|
|
116
|
-
const destroy = () => {
|
|
117
|
-
destroyPromise ??= cleanup()
|
|
118
|
-
.then(() => runtime.destroy?.())
|
|
119
|
-
.then(() => undefined);
|
|
120
|
-
return destroyPromise;
|
|
121
|
-
};
|
|
122
|
-
return {
|
|
123
|
-
ir: opts.ir,
|
|
124
|
-
context: context,
|
|
125
|
-
ready,
|
|
126
|
-
objects: objects,
|
|
127
|
-
actions: actionsSubsystem.actions,
|
|
128
|
-
queryFunctions: queryFunctions,
|
|
129
|
-
attachments,
|
|
130
|
-
outbox: actionsSubsystem.outbox,
|
|
131
|
-
destroy,
|
|
132
|
-
cleanup,
|
|
133
|
-
};
|
|
21
|
+
async function createLiveOntology(opts) {
|
|
22
|
+
const ontologyId = opts.id ?? "default";
|
|
23
|
+
const context = opts.context ?? {};
|
|
24
|
+
const owner = getContextUserId(context) ?? "anonymous";
|
|
25
|
+
const backendAdapter = await provide(opts.backend, opts.ir, context);
|
|
26
|
+
const runtime = await provide(opts.runtime ?? createDefaultRuntime, owner, ontologyId);
|
|
27
|
+
const attachmentsAdapter = backendAdapter.attachments ?? unsupportedOntologyAttachmentsAdapter;
|
|
28
|
+
const blobManager = createBlobManager({
|
|
29
|
+
runtime,
|
|
30
|
+
remote: {
|
|
31
|
+
read: (id, readOptions) => {
|
|
32
|
+
const attachmentValue = readOptions?.meta?.attachment;
|
|
33
|
+
return attachmentsAdapter.getAttachmentContent(attachmentValue ?? { id });
|
|
34
|
+
},
|
|
35
|
+
metadata: attachmentsAdapter.getAttachmentMetadata ? (id, readOptions) => attachmentsAdapter.getAttachmentMetadata(readOptions?.meta?.attachment ?? { id }, readOptions?.select ?? [
|
|
36
|
+
"size",
|
|
37
|
+
"type",
|
|
38
|
+
"name"
|
|
39
|
+
]) : void 0
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
const attachments = createLiveOntologyAttachments({
|
|
43
|
+
ir: opts.ir,
|
|
44
|
+
attachmentsAdapter,
|
|
45
|
+
blobManager
|
|
46
|
+
});
|
|
47
|
+
const objects = Object.fromEntries(opts.ir.objectTypes.map((objectType) => [objectType.name, createLiveOntologyObjectCollection({
|
|
48
|
+
ir: opts.ir,
|
|
49
|
+
objectType,
|
|
50
|
+
backendAdapter,
|
|
51
|
+
runtime,
|
|
52
|
+
persistObjects: opts.persistObjects ?? false
|
|
53
|
+
})]));
|
|
54
|
+
const actionsSubsystem = createLiveOntologyActions({
|
|
55
|
+
ir: opts.ir,
|
|
56
|
+
backendAdapter,
|
|
57
|
+
runtime,
|
|
58
|
+
context,
|
|
59
|
+
objects,
|
|
60
|
+
blobManager,
|
|
61
|
+
writes: opts.writes,
|
|
62
|
+
connection: opts.connection
|
|
63
|
+
});
|
|
64
|
+
const queryFunctions = Object.fromEntries(opts.ir.queryFunctionTypes.map((queryFunctionType) => [queryFunctionType.name, (parameters) => backendAdapter.runQueryFunction(queryFunctionType.name, parameters, {
|
|
65
|
+
objects,
|
|
66
|
+
context
|
|
67
|
+
})]));
|
|
68
|
+
const ready = Promise.all([actionsSubsystem.outbox.ready, blobManager.ready]).then(() => void 0);
|
|
69
|
+
ready.catch(() => void 0);
|
|
70
|
+
let cleanupPromise;
|
|
71
|
+
const cleanup = () => {
|
|
72
|
+
cleanupPromise ??= (async () => {
|
|
73
|
+
await Promise.allSettled([ready]);
|
|
74
|
+
await actionsSubsystem.outbox.cleanup();
|
|
75
|
+
await Promise.all(Object.values(objects).map(async (collection) => {
|
|
76
|
+
const status = collection.status;
|
|
77
|
+
if (status === "cleaned-up") return;
|
|
78
|
+
if (status === "loading") await Promise.allSettled([collection.preload()]);
|
|
79
|
+
try {
|
|
80
|
+
await collection.cleanup();
|
|
81
|
+
} catch {}
|
|
82
|
+
}));
|
|
83
|
+
await Promise.all([blobManager.cleanup(), backendAdapter.cleanup?.()]);
|
|
84
|
+
await runtime.cleanup?.();
|
|
85
|
+
})();
|
|
86
|
+
return cleanupPromise;
|
|
87
|
+
};
|
|
88
|
+
let destroyPromise;
|
|
89
|
+
const destroy = () => {
|
|
90
|
+
destroyPromise ??= cleanup().then(() => runtime.destroy?.()).then(() => void 0);
|
|
91
|
+
return destroyPromise;
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
ir: opts.ir,
|
|
95
|
+
context,
|
|
96
|
+
ready,
|
|
97
|
+
objects,
|
|
98
|
+
actions: actionsSubsystem.actions,
|
|
99
|
+
queryFunctions,
|
|
100
|
+
attachments,
|
|
101
|
+
outbox: actionsSubsystem.outbox,
|
|
102
|
+
destroy,
|
|
103
|
+
cleanup
|
|
104
|
+
};
|
|
134
105
|
}
|
|
106
|
+
//#endregion
|
|
107
|
+
export { createLiveOntology, waitForLiveOntologyReady };
|
|
108
|
+
|
|
135
109
|
//# sourceMappingURL=LiveOntology.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveOntology.js","sourceRoot":"","sources":["../../src/live/LiveOntology.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LiveOntology.js","names":[],"sources":["../../src/live/LiveOntology.ts"],"sourcesContent":["import { createBlobManager, type BlobManager } from \"@party-stack/blobs\";\nimport { createDefaultRuntime, type RuntimeAdapterProvider } from \"@party-stack/runtime\";\nimport { type Collection } from \"@tanstack/db\";\nimport { provide } from \"../utils/provide.js\";\nimport { createLiveOntologyActions } from \"./actions/createLiveOntologyActions.js\";\nimport {\n createLiveOntologyAttachments,\n type LiveOntologyAttachments,\n} from \"./attachments/createLiveOntologyAttachments.js\";\nimport { unsupportedOntologyAttachmentsAdapter } from \"./attachments/unsupportedOntologyAttachmentsAdapter.js\";\nimport { createLiveOntologyObjectCollection } from \"./objects/createLiveOntologyObjectCollection.js\";\nimport { waitForCollectionsReady } from \"./waitForCollectionReady.js\";\nimport type { OntologyIR } from \"../ir/index.js\";\nimport type { attachment } from \"../utils/values.js\";\nimport type { LiveOntologyAction } from \"./actions/createLiveOntologyAction.js\";\nimport type { OntologyMutatorRegistry } from \"./mutators/types.js\";\nimport type { OntologyCollection } from \"./objects/createLiveOntologyObjectCollection.js\";\nimport type { OntologyObject } from \"./objects/OntologyObject.js\";\nimport type { OntologyBackendAdapter, OntologyBackendAdapterProvider } from \"./OntologyBackendAdapter.js\";\nimport type { OntologyOutbox } from \"./outbox/types.js\";\nimport type { ConnectionMonitor } from \"@party-stack/connections\";\n\nexport type { LiveOntologyAction, LiveOntologyActionOptions } from \"./actions/createLiveOntologyAction.js\";\nexport type { LiveOntologyAttachments } from \"./attachments/createLiveOntologyAttachments.js\";\nexport type { OntologyCollection } from \"./objects/createLiveOntologyObjectCollection.js\";\n\nexport type LiveOntologyWriteMode = \"direct\" | \"outbox\";\n\nexport type LiveOntologyWriteVisibility = \"confirmed\" | \"optimistic\";\n\nexport type LiveOntologyOutboxFailureStrategy = \"pause\" | \"discard-all\";\n\nexport interface LiveOntologyOutboxOptions {\n failureStrategy?: LiveOntologyOutboxFailureStrategy;\n maxRetries?: number;\n}\n\nexport interface LiveOntologyWrites {\n defaultMode?: LiveOntologyWriteMode;\n defaultVisibility?: LiveOntologyWriteVisibility;\n mutators?: OntologyMutatorRegistry;\n outbox?: LiveOntologyOutboxOptions;\n}\n\nexport interface OntologyDefinition {\n context?: Record<string, unknown>;\n objectTypes: Record<string, OntologyObject>;\n actionTypes: Record<\n string,\n {\n parameters: Record<string, unknown>;\n }\n >;\n queryFunctionTypes: Record<\n string,\n {\n parameters: Record<string, unknown>;\n returnType: unknown;\n }\n >;\n}\n\ntype OntologyContext<Ontology extends OntologyDefinition> = Ontology extends {\n context: infer Context extends Record<string, unknown>;\n}\n ? Context\n : Record<string, unknown>;\n\nexport type LiveOntologyQueryFunction<\n Parameters extends Record<string, unknown> = Record<string, unknown>,\n Return = unknown,\n> = (parameters: Parameters) => Promise<Return>;\n\nexport type LiveOntologyObjects<\n ObjectTypes extends OntologyDefinition[\"objectTypes\"] = OntologyDefinition[\"objectTypes\"],\n> = {\n [ObjectTypeName in keyof ObjectTypes]: OntologyCollection<ObjectTypes[ObjectTypeName]>;\n};\n\nexport type LiveOntologyActions<ActionTypes extends OntologyDefinition[\"actionTypes\"]> = {\n [ActionTypeName in keyof ActionTypes]: LiveOntologyAction<ActionTypes[ActionTypeName][\"parameters\"]>;\n};\n\nexport type LiveOntologyQueryFunctions<QueryFunctionTypes extends OntologyDefinition[\"queryFunctionTypes\"]> =\n {\n [QueryFunctionTypeName in keyof QueryFunctionTypes]: LiveOntologyQueryFunction<\n QueryFunctionTypes[QueryFunctionTypeName][\"parameters\"],\n QueryFunctionTypes[QueryFunctionTypeName][\"returnType\"]\n >;\n };\n\nexport interface LiveOntology<Ontology extends OntologyDefinition = OntologyDefinition> {\n readonly ir: OntologyIR;\n readonly context: OntologyContext<Ontology>;\n /**\n * Resolves once outbox and blob metadata subsystems have finished starting.\n * Object collections remain on-demand unless explicitly preloaded.\n */\n readonly ready: Promise<void>;\n objects: LiveOntologyObjects<Ontology[\"objectTypes\"]>;\n actions: LiveOntologyActions<Ontology[\"actionTypes\"]>;\n queryFunctions: LiveOntologyQueryFunctions<Ontology[\"queryFunctionTypes\"]>;\n attachments: LiveOntologyAttachments<Ontology>;\n outbox: OntologyOutbox;\n cleanup: () => Promise<void>;\n destroy: () => Promise<void>;\n}\n\nexport interface CreateLiveOntologyOpts<Context extends Record<string, unknown> = Record<string, unknown>> {\n id?: string;\n ir: OntologyIR;\n backend: OntologyBackendAdapterProvider<NoInfer<Context>>;\n runtime?: RuntimeAdapterProvider;\n persistObjects?: boolean;\n writes?: LiveOntologyWrites;\n context?: Context;\n connection?: ConnectionMonitor;\n}\n\nfunction getContextUserId(context: Record<string, unknown>): string | undefined {\n return typeof context.user === \"string\" ? context.user : undefined;\n}\n\n/**\n * Waits for LiveOntology subsystems required before safe use.\n * Starts on-demand object collection sync without loading subsets.\n */\nexport async function waitForLiveOntologyReady(ontology: LiveOntology): Promise<void> {\n await ontology.ready;\n await waitForCollectionsReady(\n Object.values(ontology.objects) as Collection<Record<string, unknown>, string | number>[]\n );\n}\n\nexport async function createLiveOntology<\n Ontology extends OntologyDefinition = OntologyDefinition,\n Context extends Record<string, unknown> = Record<string, unknown>,\n>(opts: CreateLiveOntologyOpts<Context>): Promise<LiveOntology<Ontology>> {\n const ontologyId = opts.id ?? \"default\";\n const context = (opts.context ?? {}) as Context;\n const owner = getContextUserId(context) ?? \"anonymous\";\n // TODO(errors): Decorate backend operations and collection options so\n // normalized errors (especially UnauthenticatedError) are reported through\n // the ConnectionMonitor. Promise-based calls can be wrapped directly;\n // long-running sync handlers need a lifecycle-aware supervisor that pauses\n // on needs-auth and restarts from a checkpoint after reconnection.\n const backendAdapter: OntologyBackendAdapter = await provide(opts.backend, opts.ir, context);\n const runtime = await provide(opts.runtime ?? createDefaultRuntime, owner, ontologyId);\n const attachmentsAdapter = backendAdapter.attachments ?? unsupportedOntologyAttachmentsAdapter;\n const blobManager: BlobManager = createBlobManager({\n runtime,\n remote: {\n read: (id, readOptions) => {\n const attachmentValue = readOptions?.meta?.attachment as attachment | undefined;\n return attachmentsAdapter.getAttachmentContent(attachmentValue ?? { id });\n },\n metadata: attachmentsAdapter.getAttachmentMetadata\n ? (id, readOptions) =>\n attachmentsAdapter.getAttachmentMetadata!(\n (readOptions?.meta?.attachment as attachment | undefined) ?? { id },\n readOptions?.select ?? [\"size\", \"type\", \"name\"]\n )\n : undefined,\n },\n });\n const attachments = createLiveOntologyAttachments<Ontology>({\n ir: opts.ir,\n attachmentsAdapter,\n blobManager,\n });\n const objects = Object.fromEntries(\n opts.ir.objectTypes.map((objectType) => [\n objectType.name,\n createLiveOntologyObjectCollection({\n ir: opts.ir,\n objectType,\n backendAdapter,\n runtime,\n persistObjects: opts.persistObjects ?? false,\n }),\n ])\n ) as Record<string, OntologyCollection<OntologyObject>>;\n const actionsSubsystem = createLiveOntologyActions({\n ir: opts.ir,\n backendAdapter,\n runtime,\n context,\n objects,\n blobManager,\n writes: opts.writes,\n connection: opts.connection,\n });\n const queryFunctions = Object.fromEntries(\n opts.ir.queryFunctionTypes.map((queryFunctionType) => [\n queryFunctionType.name,\n (parameters: Record<string, unknown>) =>\n backendAdapter.runQueryFunction(queryFunctionType.name, parameters, {\n objects: objects,\n context,\n }),\n ])\n );\n const ready = Promise.all([actionsSubsystem.outbox.ready, blobManager.ready]).then(() => undefined);\n void ready.catch(() => undefined);\n\n let cleanupPromise: Promise<void> | undefined;\n const cleanup = (): Promise<void> => {\n cleanupPromise ??= (async () => {\n // Settle subsystem startups before tearing down persistence.\n await Promise.allSettled([ready]);\n await actionsSubsystem.outbox.cleanup();\n await Promise.all(\n Object.values(objects).map(async (collection) => {\n const status = collection.status;\n if (status === \"cleaned-up\") {\n return;\n }\n // Settle in-flight startup only; ready/idle need no preload.\n if (status === \"loading\") {\n await Promise.allSettled([collection.preload()]);\n }\n try {\n await collection.cleanup();\n } catch {\n // Idempotent: already cleaned up during preload race.\n }\n })\n );\n await Promise.all([blobManager.cleanup(), backendAdapter.cleanup?.()]);\n await runtime.cleanup?.();\n })();\n return cleanupPromise;\n };\n let destroyPromise: Promise<void> | undefined;\n const destroy = (): Promise<void> => {\n destroyPromise ??= cleanup()\n .then(() => runtime.destroy?.())\n .then(() => undefined);\n return destroyPromise;\n };\n\n return {\n ir: opts.ir,\n context: context as unknown as OntologyContext<Ontology>,\n ready,\n objects: objects as unknown as LiveOntologyObjects<Ontology[\"objectTypes\"]>,\n actions: actionsSubsystem.actions as unknown as LiveOntologyActions<Ontology[\"actionTypes\"]>,\n queryFunctions: queryFunctions as unknown as LiveOntologyQueryFunctions<\n Ontology[\"queryFunctionTypes\"]\n >,\n attachments,\n outbox: actionsSubsystem.outbox,\n destroy,\n cleanup,\n };\n}\n"],"mappings":";;;;;;;;;AAuHA,SAAS,iBAAiB,SAAsD;CAC5E,OAAO,OAAO,QAAQ,SAAS,WAAW,QAAQ,OAAO,KAAA;AAC7D;;;;;AAMA,eAAsB,yBAAyB,UAAuC;CAClF,MAAM,SAAS;CACf,MAAM,wBACF,OAAO,OAAO,SAAS,OAAO,CAClC;AACJ;AAEA,eAAsB,mBAGpB,MAAwE;CACtE,MAAM,aAAa,KAAK,MAAM;CAC9B,MAAM,UAAW,KAAK,WAAW,CAAC;CAClC,MAAM,QAAQ,iBAAiB,OAAO,KAAK;CAM3C,MAAM,iBAAyC,MAAM,QAAQ,KAAK,SAAS,KAAK,IAAI,OAAO;CAC3F,MAAM,UAAU,MAAM,QAAQ,KAAK,WAAW,sBAAsB,OAAO,UAAU;CACrF,MAAM,qBAAqB,eAAe,eAAe;CACzD,MAAM,cAA2B,kBAAkB;EAC/C;EACA,QAAQ;GACJ,OAAO,IAAI,gBAAgB;IACvB,MAAM,kBAAkB,aAAa,MAAM;IAC3C,OAAO,mBAAmB,qBAAqB,mBAAmB,EAAE,GAAG,CAAC;GAC5E;GACA,UAAU,mBAAmB,yBACtB,IAAI,gBACD,mBAAmB,sBACd,aAAa,MAAM,cAAyC,EAAE,GAAG,GAClE,aAAa,UAAU;IAAC;IAAQ;IAAQ;GAAM,CAClD,IACJ,KAAA;EACV;CACJ,CAAC;CACD,MAAM,cAAc,8BAAwC;EACxD,IAAI,KAAK;EACT;EACA;CACJ,CAAC;CACD,MAAM,UAAU,OAAO,YACnB,KAAK,GAAG,YAAY,KAAK,eAAe,CACpC,WAAW,MACX,mCAAmC;EAC/B,IAAI,KAAK;EACT;EACA;EACA;EACA,gBAAgB,KAAK,kBAAkB;CAC3C,CAAC,CACL,CAAC,CACL;CACA,MAAM,mBAAmB,0BAA0B;EAC/C,IAAI,KAAK;EACT;EACA;EACA;EACA;EACA;EACA,QAAQ,KAAK;EACb,YAAY,KAAK;CACrB,CAAC;CACD,MAAM,iBAAiB,OAAO,YAC1B,KAAK,GAAG,mBAAmB,KAAK,sBAAsB,CAClD,kBAAkB,OACjB,eACG,eAAe,iBAAiB,kBAAkB,MAAM,YAAY;EACvD;EACT;CACJ,CAAC,CACT,CAAC,CACL;CACA,MAAM,QAAQ,QAAQ,IAAI,CAAC,iBAAiB,OAAO,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,KAAA,CAAS;CAClG,MAAW,YAAY,KAAA,CAAS;CAEhC,IAAI;CACJ,MAAM,gBAA+B;EACjC,oBAAoB,YAAY;GAE5B,MAAM,QAAQ,WAAW,CAAC,KAAK,CAAC;GAChC,MAAM,iBAAiB,OAAO,QAAQ;GACtC,MAAM,QAAQ,IACV,OAAO,OAAO,OAAO,CAAC,CAAC,IAAI,OAAO,eAAe;IAC7C,MAAM,SAAS,WAAW;IAC1B,IAAI,WAAW,cACX;IAGJ,IAAI,WAAW,WACX,MAAM,QAAQ,WAAW,CAAC,WAAW,QAAQ,CAAC,CAAC;IAEnD,IAAI;KACA,MAAM,WAAW,QAAQ;IAC7B,QAAQ,CAER;GACJ,CAAC,CACL;GACA,MAAM,QAAQ,IAAI,CAAC,YAAY,QAAQ,GAAG,eAAe,UAAU,CAAC,CAAC;GACrE,MAAM,QAAQ,UAAU;EAC5B,EAAA,CAAG;EACH,OAAO;CACX;CACA,IAAI;CACJ,MAAM,gBAA+B;EACjC,mBAAmB,QAAQ,CAAC,CACvB,WAAW,QAAQ,UAAU,CAAC,CAAC,CAC/B,WAAW,KAAA,CAAS;EACzB,OAAO;CACX;CAEA,OAAO;EACH,IAAI,KAAK;EACA;EACT;EACS;EACT,SAAS,iBAAiB;EACV;EAGhB;EACA,QAAQ,iBAAiB;EACzB;EACA;CACJ;AACJ"}
|
|
@@ -1,97 +1,100 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
1
|
+
import { Result, attachment, values_d_exports } from "../utils/values.js";
|
|
2
|
+
import { AttachmentTypeDef, OntologyIR } from "../ir/generated/types.js";
|
|
3
|
+
import { ValidationIssue } from "../utils/validation.js";
|
|
4
|
+
import "../ir/index.js";
|
|
5
|
+
import { Uncertain } from "../utils/uncertain.js";
|
|
6
|
+
import { PartialAttachmentMetadata } from "./attachments/types.js";
|
|
7
|
+
import { Collection, CollectionConfig } from "@tanstack/db";
|
|
8
|
+
//#region src/live/OntologyBackendAdapter.d.ts
|
|
7
9
|
export type OntologyCollectionOptions = Omit<CollectionConfig<Record<string, unknown>, string | number>, "getKey">;
|
|
8
10
|
export interface OntologyAttachmentUpload {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The attachment referenced by the prepared action parameters. Its ID is an
|
|
13
|
+
* opaque local handle and is not guaranteed to be valid for the backend.
|
|
14
|
+
*/
|
|
15
|
+
attachment: attachment;
|
|
16
|
+
blob: Blob;
|
|
17
|
+
target?: AttachmentTypeDef;
|
|
16
18
|
}
|
|
17
19
|
export interface OntologyAttachmentIdMapping {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
/** The opaque attachment ID used before the backend canonicalized it. */
|
|
21
|
+
localId: string;
|
|
22
|
+
/** The canonical attachment ID returned by the backend. */
|
|
23
|
+
remoteId: string;
|
|
22
24
|
}
|
|
23
25
|
export interface OntologyApplyActionResult {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Mappings for uploaded attachments whose canonical backend IDs differ from
|
|
28
|
+
* the local IDs supplied in `ApplyActionLiveOpts.attachmentUploads`.
|
|
29
|
+
*/
|
|
30
|
+
attachmentIdMappings?: OntologyAttachmentIdMapping[];
|
|
29
31
|
}
|
|
30
32
|
export interface ApplyActionLiveOpts {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
objects: Record<string, Collection<Record<string, unknown>>>;
|
|
34
|
+
context?: Record<string, unknown>;
|
|
35
|
+
/**
|
|
36
|
+
* Attachments that must be uploaded as part of action execution. Adapters
|
|
37
|
+
* must treat their IDs as opaque local handles, substitute any backend IDs or
|
|
38
|
+
* references required by the action invocation, and return an ID mapping for
|
|
39
|
+
* every upload whose canonical backend ID differs.
|
|
40
|
+
*/
|
|
41
|
+
attachmentUploads?: OntologyAttachmentUpload[];
|
|
42
|
+
idempotencyKey?: string;
|
|
41
43
|
}
|
|
42
44
|
export interface ValidateActionLiveOpts {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
objects: Record<string, Collection<Record<string, unknown>>>;
|
|
46
|
+
context?: Record<string, unknown>;
|
|
45
47
|
}
|
|
46
48
|
export interface ValidateActionDraftLiveOpts extends ValidateActionLiveOpts {
|
|
47
|
-
|
|
49
|
+
knownParameters: readonly string[];
|
|
48
50
|
}
|
|
49
51
|
export interface RunQueryLiveOpts {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
objects: Record<string, Collection<Record<string, unknown>>>;
|
|
53
|
+
context?: Record<string, unknown>;
|
|
52
54
|
}
|
|
53
55
|
export interface OntologyAttachmentsAdapter {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Generates a preferred ID for an attachment created directly against this adapter.
|
|
58
|
+
*
|
|
59
|
+
* This is a hint, not an invariant. Attachments can arrive with IDs generated elsewhere,
|
|
60
|
+
* so adapters must accept IDs downstream that were not produced by this function.
|
|
61
|
+
*/
|
|
62
|
+
generateAttachmentId?: (blob: Blob, opts: {
|
|
63
|
+
target?: AttachmentTypeDef;
|
|
64
|
+
}) => Promise<string> | string;
|
|
65
|
+
canMaterializeAttachment?: (attachment: attachment, opts: {
|
|
66
|
+
target?: AttachmentTypeDef;
|
|
67
|
+
}) => boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Materializes an attachment in the backend.
|
|
70
|
+
*
|
|
71
|
+
* The incoming attachment ID is opaque and may not be valid for this backend. When
|
|
72
|
+
* the backend assigns or requires another ID, return an attachment containing that
|
|
73
|
+
* canonical ID so the caller can rewrite parameters and bind the resulting mapping.
|
|
74
|
+
*/
|
|
75
|
+
materializeAttachment?: (attachment: attachment, blob: Blob, opts: {
|
|
76
|
+
target?: AttachmentTypeDef;
|
|
77
|
+
}) => Promise<attachment | void>;
|
|
78
|
+
getAttachmentContent: (attachment: attachment) => Promise<Blob>;
|
|
79
|
+
getAttachmentMetadata?: (attachment: attachment, selection: readonly (keyof PartialAttachmentMetadata)[]) => Promise<PartialAttachmentMetadata>;
|
|
78
80
|
}
|
|
79
81
|
export interface OntologyBackendAdapter {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
82
|
+
name: string;
|
|
83
|
+
/**
|
|
84
|
+
* Whether this adapter participates in long-lived synchronization.
|
|
85
|
+
*
|
|
86
|
+
* Defaults to true. Non-live adapters support confirmed request/response
|
|
87
|
+
* operations but cannot safely back optimistic actions.
|
|
88
|
+
*/
|
|
89
|
+
live?: boolean;
|
|
90
|
+
getCollectionOptions: (objectType: string) => OntologyCollectionOptions;
|
|
91
|
+
applyAction: (name: string, parameters: Record<string, unknown>, live: ApplyActionLiveOpts) => Promise<OntologyApplyActionResult | void>;
|
|
92
|
+
validateAction?: (name: string, parameters: Record<string, unknown>, live: ValidateActionLiveOpts) => Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
|
|
93
|
+
validateActionDraft?: (name: string, parameters: Record<string, unknown>, live: ValidateActionDraftLiveOpts) => Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
|
|
94
|
+
runQueryFunction: (name: string, parameters: Record<string, unknown>, live: RunQueryLiveOpts) => Promise<unknown>;
|
|
95
|
+
attachments?: OntologyAttachmentsAdapter;
|
|
96
|
+
cleanup?: () => void | Promise<void>;
|
|
95
97
|
}
|
|
96
98
|
export type OntologyBackendAdapterProvider<Context extends Record<string, unknown> = Record<string, unknown>> = (ir: OntologyIR, context: Context) => OntologyBackendAdapter | Promise<OntologyBackendAdapter>;
|
|
99
|
+
//#endregion
|
|
97
100
|
//# sourceMappingURL=OntologyBackendAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OntologyBackendAdapter.d.ts","
|
|
1
|
+
{"version":3,"file":"OntologyBackendAdapter.d.ts","names":["v","v.attachment","v.Result"],"sources":["../../src/live/OntologyBackendAdapter.ts"],"mappings":";;;;;;;;YAOY,4BAA4B,KACpC,iBAAiB;iBAIJ;;;;;EAKb,YAAYC;EACZ,MAAM;EACN,SAAS;;iBAGI;;EAEb;;EAEA;;iBAGa;;;;;EAKb,uBAAuB;;iBAGV;EACb,SAAS,eAAe,WAAW;EACnC,UAAU;;;;;;;EAOV,oBAAoB;EACpB;;iBAGa;EACb,SAAS,eAAe,WAAW;EACnC,UAAU;;iBAGG,oCAAoC;EACjD;;iBAGa;EACb,SAAS,eAAe,WAAW;EACnC,UAAU;;iBAGG;;;;;;;EAOb,wBACI,MAAM,MACN;IACI,SAAS;QAEZ;EACL,4BACI,YAAYA,YACZ;IACI,SAAS;;;;;;;;;EAUjB,yBACI,YAAYA,YACZ,MAAM,MACN;IACI,SAAS;QAEZ,QAAQA;EACb,uBAAuB,YAAYA,eAAiB,QAAQ;EAC5D,yBACI,YAAYA,YACZ,2BAA2B,iCAC1B,QAAQ;;iBAGA;EACb;;;;;;;EAOA;EACA,uBAAuB,uBAAuB;EAC9C,cACI,cACA,YAAY,yBACZ,MAAM,wBACL,QAAQ;EACb,kBACI,cACA,YAAY,yBACZ,MAAM,2BACL,QAAQ,UAAUC,sBAAwB;EAC/C,uBACI,cACA,YAAY,yBACZ,MAAM,gCACL,QAAQ,UAAUA,sBAAwB;EAC/C,mBACI,cACA,YAAY,yBACZ,MAAM,qBACL;EACL,cAAc;EACd,uBAAuB;;YAIf,+BACR,gBAAgB,0BAA0B,4BACzC,IAAI,YAAY,SAAS,YAAY,yBAAyB,QAAQ"}
|
|
@@ -1,33 +1,36 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
1
|
+
import { Result } from "../../utils/values.js";
|
|
2
|
+
import { OntologyIR } from "../../ir/generated/types.js";
|
|
3
|
+
import { ValidationIssue } from "../../utils/validation.js";
|
|
4
|
+
import "../../ir/index.js";
|
|
5
|
+
import { Uncertain } from "../../utils/uncertain.js";
|
|
6
|
+
import { OntologyApplyActionResult } from "../OntologyBackendAdapter.js";
|
|
7
|
+
import { OntologyObject } from "../objects/OntologyObject.js";
|
|
8
|
+
import { OntologyCollection } from "../objects/createLiveOntologyObjectCollection.js";
|
|
9
|
+
import { OntologyActionRequest } from "../outbox/types.js";
|
|
10
|
+
import { LiveOntologyWriteMode, LiveOntologyWriteVisibility } from "../LiveOntology.js";
|
|
11
|
+
//#region src/live/actions/createLiveOntologyAction.d.ts
|
|
10
12
|
export interface LiveOntologyActionOptions {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
idempotencyKey?: string;
|
|
14
|
+
mode?: LiveOntologyWriteMode;
|
|
15
|
+
visibility?: LiveOntologyWriteVisibility;
|
|
14
16
|
}
|
|
15
17
|
export interface LiveOntologyActionDraftValidationOptions<Parameters extends Record<string, unknown>> {
|
|
16
|
-
|
|
18
|
+
knownParameters?: readonly (keyof Parameters)[];
|
|
17
19
|
}
|
|
18
20
|
export type LiveOntologyAction<Parameters extends Record<string, unknown> = Record<string, unknown>> = {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
(parameters: Parameters, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
|
|
22
|
+
resolveParameters(parameters: Partial<Parameters>): Promise<Partial<Parameters>>;
|
|
23
|
+
validate(parameters: Parameters): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
|
|
24
|
+
validateDraft(parameters: Partial<Parameters>, options?: LiveOntologyActionDraftValidationOptions<Parameters>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
|
|
23
25
|
};
|
|
24
26
|
export declare function createLiveOntologyAction(options: {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
ir: OntologyIR;
|
|
28
|
+
action: OntologyIR["actionTypes"][number];
|
|
29
|
+
context?: Record<string, unknown>;
|
|
30
|
+
objects: Record<string, OntologyCollection<OntologyObject>>;
|
|
31
|
+
submit(request: OntologyActionRequest, options?: LiveOntologyActionOptions): Promise<OntologyApplyActionResult | void>;
|
|
32
|
+
validate(actionTypeName: string, parameters: Record<string, unknown>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
|
|
33
|
+
validateDraft(actionTypeName: string, parameters: Record<string, unknown>, validationOptions?: LiveOntologyActionDraftValidationOptions<Record<string, unknown>>): Promise<Uncertain<Result<void, readonly ValidationIssue[]>>>;
|
|
32
34
|
}): LiveOntologyAction;
|
|
35
|
+
//#endregion
|
|
33
36
|
//# sourceMappingURL=createLiveOntologyAction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createLiveOntologyAction.d.ts","
|
|
1
|
+
{"version":3,"file":"createLiveOntologyAction.d.ts","names":[],"sources":["../../../src/live/actions/createLiveOntologyAction.ts"],"mappings":";;;;;;;;;;;iBAYiB;EACb;EACA,OAAO;EACP,aAAa;;iBAGA,yCAAyC,mBAAmB;EACzE,kCAAkC;;YAG1B,mBAAmB,mBAAmB,0BAA0B;GACvE,YAAY,YAAY,UAAU,4BAA4B,QAAQ;EACvE,kBAAkB,YAAY,QAAQ,cAAc,QAAQ,QAAQ;EACpE,SAAS,YAAY,aAAa,QAAQ,UAAU,sBAAsB;EAC1E,cACI,YAAY,QAAQ,aACpB,UAAU,yCAAyC,cACpD,QAAQ,UAAU,sBAAsB;;wBAG/B,yBAAyB;EACrC,IAAI;EACJ,QAAQ;EACR,UAAU;EACV,SAAS,eAAe,mBAAmB;EAC3C,OACI,SAAS,uBACT,UAAU,4BACX,QAAQ;EACX,SACI,wBACA,YAAY,0BACb,QAAQ,UAAU,sBAAsB;EAC3C,cACI,wBACA,YAAY,yBACZ,oBAAoB,yCAAyC,2BAC9D,QAAQ,UAAU,sBAAsB;IAC3C"}
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { resolveActionParameters } from "../expression.js";
|
|
2
2
|
import { createReadTx } from "../mutators/createMutatorTx.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
3
|
+
//#region src/live/actions/createLiveOntologyAction.ts
|
|
4
|
+
function createLiveOntologyAction(options) {
|
|
5
|
+
const resolveParameters = (providedParameters) => resolveActionParameters({
|
|
6
|
+
ir: options.ir,
|
|
7
|
+
actionTypeName: options.action.name,
|
|
8
|
+
initialParameters: providedParameters,
|
|
9
|
+
context: options.context ?? {},
|
|
10
|
+
tx: createReadTx(options.objects)
|
|
11
|
+
});
|
|
12
|
+
const apply = async (providedParameters, executionOptions) => {
|
|
13
|
+
const idempotencyKey = executionOptions?.idempotencyKey ?? crypto.randomUUID();
|
|
14
|
+
return options.submit({
|
|
15
|
+
actionTypeName: options.action.name,
|
|
16
|
+
parameters: providedParameters,
|
|
17
|
+
idempotencyKey
|
|
18
|
+
}, executionOptions);
|
|
19
|
+
};
|
|
20
|
+
apply.validate = async (providedParameters) => options.validate(options.action.name, providedParameters);
|
|
21
|
+
apply.resolveParameters = resolveParameters;
|
|
22
|
+
apply.validateDraft = async (parameters, validationOptions) => options.validateDraft(options.action.name, parameters, validationOptions);
|
|
23
|
+
return apply;
|
|
24
24
|
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { createLiveOntologyAction };
|
|
27
|
+
|
|
25
28
|
//# sourceMappingURL=createLiveOntologyAction.js.map
|