@party-stack/ontology 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/OntologyPullConfig.d.ts +15 -13
- package/lib/OntologyPullConfig.d.ts.map +1 -1
- package/lib/OntologyPullConfig.js +0 -1
- 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 -5
- 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 -151
- 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 +236 -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 +84 -77
- 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 -44
- 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 -8
- 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 -13
- 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 +14 -11
- package/lib/live/objects/createLiveOntologyObjectCollection.d.ts.map +1 -1
- package/lib/live/objects/createLiveOntologyObjectCollection.js +62 -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 -31
- 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 +18 -18
- package/lib/utils/values.d.ts.map +1 -1
- package/lib/utils/values.js +0 -1
- package/package.json +22 -26
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createOntologyOutbox.js","sourceRoot":"","sources":["../../../src/live/outbox/createOntologyOutbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createOntologyOutbox.js","names":[],"sources":["../../../src/live/outbox/createOntologyOutbox.ts"],"sourcesContent":["import { cloneValue } from \"@party-stack/coordination\";\nimport {\n createLocalCollection,\n isCoordinationHost,\n CoordinationError,\n type CoordinationServiceServer,\n type RuntimeAdapter,\n} from \"@party-stack/runtime\";\nimport { useConnectivityChanges } from \"@party-stack/runtime/effection\";\nimport {\n createSignal,\n each,\n resource,\n run,\n spawn,\n suspend,\n until,\n useAbortSignal,\n type Operation,\n type Task,\n} from \"effection\";\nimport { runOutboxLeader, type OutboxLeaderOptions } from \"./leaderExecutor.js\";\nimport { serveOntologyOutbox } from \"./outboxService.js\";\nimport { OutboxProjectionManager, type OutboxProjection } from \"./projectionManager.js\";\nimport { OntologyOutboxRepository } from \"./repository.js\";\nimport {\n OUTBOX_COORDINATION_SERVICE,\n type OutboxCoordinationService,\n type OutboxResultEvent,\n} from \"./service.js\";\nimport type {\n EnqueuedOntologyAction,\n OntologyActionRequest,\n OntologyOutbox,\n OntologyOutboxEntry,\n} from \"./types.js\";\nimport type { ConnectionMonitor } from \"@party-stack/connections\";\nimport type { Collection } from \"@tanstack/db\";\n\nexport type { OutboxProjection } from \"./projectionManager.js\";\n\nconst DEFAULT_MAX_RETRIES = 3;\nconst DEFAULT_RETRY_DELAY_MS = 1_000;\n\nexport interface CreateOntologyOutboxOptions {\n runtime: RuntimeAdapter;\n execute(entry: OntologyOutboxEntry): Promise<unknown>;\n project?(entry: OntologyOutboxEntry): Promise<OutboxProjection | undefined>;\n failureStrategy?: \"pause\" | \"discard-all\";\n maxRetries?: number;\n connection?: ConnectionMonitor;\n}\n\nfunction nonNegativeInteger(value: number | undefined, fallback: number, name: string): number {\n const resolved = value ?? fallback;\n if (!Number.isSafeInteger(resolved) || resolved < 0) {\n throw new RangeError(`${name} must be a non-negative safe integer.`);\n }\n return resolved;\n}\n\ninterface Deferred<T> {\n promise: Promise<T>;\n settled: boolean;\n resolve(value: T): void;\n reject(error: Error): void;\n}\n\nfunction deferred<T>(): Deferred<T> {\n let resolvePromise!: (value: T) => void;\n let rejectPromise!: (error: Error) => void;\n const value: Deferred<T> = {\n promise: undefined as unknown as Promise<T>,\n settled: false,\n resolve(result) {\n if (value.settled) return;\n value.settled = true;\n resolvePromise(result);\n },\n reject(error) {\n if (value.settled) return;\n value.settled = true;\n rejectPromise(error);\n },\n };\n value.promise = new Promise<T>((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n });\n return value;\n}\n\nfunction normalizeError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction eventError(event: Extract<OutboxResultEvent, { type: \"rejected\" }>): Error {\n const error = new Error(event.error.message);\n error.name = event.error.name;\n return error;\n}\n\nfunction createOutboxCollection(\n options: CreateOntologyOutboxOptions\n): Collection<OntologyOutboxEntry, string> {\n return createLocalCollection<OntologyOutboxEntry, string>({\n name: \"ontology-outbox\",\n getKey: (entry) => entry.id,\n runtime: options.runtime,\n schemaVersion: 1,\n });\n}\n\nexport function useOntologyOutbox(\n options: CreateOntologyOutboxOptions,\n collection: Collection<OntologyOutboxEntry, string> = createOutboxCollection(options)\n): Operation<OntologyOutbox> {\n return resource(function* (provide) {\n const repository = new OntologyOutboxRepository(collection);\n const failureStrategy = options.failureStrategy ?? \"discard-all\";\n const service =\n options.runtime.coordination.service<OutboxCoordinationService>(OUTBOX_COORDINATION_SERVICE);\n const wake = createSignal<void>();\n const projections = new OutboxProjectionManager(\n options.project ? async (entry) => options.project?.(entry) : undefined\n );\n const completions = new Map<string, Deferred<unknown>>();\n const lifetime: {\n server?: CoordinationServiceServer<OutboxCoordinationService>;\n unsubscribeResults?: () => void;\n unsubscribeCollection?: {\n unsubscribe(): void;\n };\n connectivityTask?: Task<void>;\n unsubscribeConnection?: {\n unsubscribe(): void;\n };\n leaderTask?: Task<void>;\n leaderRun?: Promise<unknown>;\n } = {};\n let disposing = false;\n let reconciliationVersion = 0;\n\n const deliverResult = async (event: OutboxResultEvent) => {\n const completion = completions.get(event.id);\n if (event.type === \"completed\") {\n await projections.discard(event.id);\n if (completion) {\n completions.delete(event.id);\n completion.resolve(event.result);\n }\n return;\n }\n\n const error = eventError(event);\n await projections.discard(event.id, error);\n if (completion) {\n completions.delete(event.id);\n completion.reject(error);\n }\n };\n try {\n lifetime.unsubscribeResults = service.events.subscribe(\"result\", (event) => {\n void deliverResult(event);\n });\n\n yield* until(repository.preload());\n if (isCoordinationHost(options.runtime.coordination)) {\n lifetime.server = serveOntologyOutbox(options.runtime.coordination, repository);\n }\n\n const reconcileProjections = async (): Promise<void> => {\n const version = ++reconciliationVersion;\n const entries = await repository.entries();\n if (disposing || version !== reconciliationVersion) {\n return;\n }\n await projections.reconcile(entries);\n };\n lifetime.unsubscribeCollection = collection.subscribeChanges(() => {\n wake.send();\n void reconcileProjections();\n });\n lifetime.unsubscribeConnection = options.connection\n ? {\n unsubscribe: options.connection.subscribe(() => {\n wake.send();\n }),\n }\n : undefined;\n\n const existing = yield* until(repository.entries());\n yield* until(projections.restore(existing));\n\n const connectivityChanges = yield* useConnectivityChanges(options.runtime);\n lifetime.connectivityTask = yield* spawn(function* () {\n for (const isConnected of yield* each(connectivityChanges)) {\n void isConnected;\n wake.send();\n yield* each.next();\n }\n });\n\n if (isCoordinationHost(options.runtime.coordination)) {\n const host = options.runtime.coordination;\n const leaderOptions: OutboxLeaderOptions = {\n runtime: options.runtime,\n service,\n wake,\n failureStrategy: failureStrategy,\n maxRetries: nonNegativeInteger(\n options.maxRetries,\n DEFAULT_MAX_RETRIES,\n \"Outbox maxRetries\"\n ),\n retryDelayMs: DEFAULT_RETRY_DELAY_MS,\n execute: (entry) => options.execute(entry),\n connection: options.connection,\n };\n lifetime.leaderTask = yield* spawn(function* () {\n const lifetimeSignal = yield* useAbortSignal();\n while (!lifetimeSignal.aborted) {\n try {\n const leaderRun = host.runAsLeader(\n ({ signal }) => runOutboxLeader(signal, leaderOptions),\n {\n signal: lifetimeSignal,\n }\n );\n lifetime.leaderRun = leaderRun;\n yield* until(leaderRun);\n return;\n } catch (error) {\n if (lifetimeSignal.aborted) {\n return;\n }\n if (!host.isLeader && !(error instanceof CoordinationError)) {\n continue;\n }\n throw error;\n }\n }\n });\n }\n\n const outbox: OntologyOutbox = {\n collection,\n ready: Promise.resolve(),\n async enqueue<Result>(\n request: Omit<OntologyActionRequest, \"idempotencyKey\"> & {\n idempotencyKey?: string;\n },\n enqueueOptions?: {\n visibility?: \"confirmed\" | \"optimistic\";\n }\n ) {\n const timestamp = Date.now();\n const proposed: OntologyOutboxEntry = {\n id: crypto.randomUUID(),\n sequence: 0,\n request: {\n ...request,\n idempotencyKey: request.idempotencyKey ?? crypto.randomUUID(),\n },\n visibility: enqueueOptions?.visibility ?? \"confirmed\",\n status: \"queued\",\n createdAt: timestamp,\n updatedAt: timestamp,\n attempts: 0,\n retryable: true,\n nextAttemptAt: timestamp,\n };\n const completion = deferred<Result>();\n void completion.promise.catch(() => undefined);\n completions.set(proposed.id, completion);\n\n let entry: OntologyOutboxEntry;\n try {\n entry = await service.methods.enqueue({\n entry: proposed,\n });\n } catch (error) {\n completions.delete(proposed.id);\n completion.reject(normalizeError(error));\n throw error;\n }\n\n await projections.ensure(entry);\n\n return {\n entry,\n completed: completion.promise,\n } as EnqueuedOntologyAction<Result>;\n },\n async edit(id, update) {\n const current = repository.get(id);\n if (!current) {\n throw new Error(`Outbox entry \"${id}\" was not found in this context.`);\n }\n const request = cloneValue(current.request);\n update(request);\n const entry = await service.methods.edit({\n id,\n request,\n });\n await projections.ensure(entry);\n return entry;\n },\n async remove(id) {\n await service.methods.remove({ id });\n },\n async retry(id) {\n await service.methods.retry({ id });\n wake.send();\n },\n cleanup() {\n return Promise.resolve();\n },\n };\n\n yield* provide(outbox);\n } finally {\n disposing = true;\n reconciliationVersion += 1;\n const cleanupErrors: Error[] = [];\n const capture = (error: unknown) => {\n cleanupErrors.push(normalizeError(error));\n };\n\n lifetime.unsubscribeResults?.();\n lifetime.unsubscribeCollection?.unsubscribe();\n lifetime.unsubscribeConnection?.unsubscribe();\n if (lifetime.server) {\n try {\n yield* until(lifetime.server.close());\n } catch (error) {\n capture(error);\n }\n }\n if (lifetime.leaderTask !== undefined) {\n try {\n yield* lifetime.leaderTask.halt();\n } catch (error) {\n capture(error);\n }\n }\n if (lifetime.leaderRun) {\n yield* until(Promise.allSettled([lifetime.leaderRun]));\n }\n if (lifetime.connectivityTask !== undefined) {\n try {\n yield* lifetime.connectivityTask.halt();\n } catch (error) {\n capture(error);\n }\n }\n try {\n yield* until(projections.close());\n } catch (error) {\n capture(error);\n }\n const disposed = new Error(\"Outbox disposed.\");\n for (const completion of completions.values()) {\n completion.reject(disposed);\n }\n completions.clear();\n try {\n yield* until(collection.cleanup());\n } catch (error) {\n capture(error);\n }\n\n if (cleanupErrors[0]) {\n yield* until(Promise.reject(cleanupErrors[0]));\n }\n }\n });\n}\n\nexport interface StartedOntologyOutbox extends OntologyOutbox {\n readonly task: Task<void>;\n}\n\nexport function createOntologyOutbox(options: CreateOntologyOutboxOptions): StartedOntologyOutbox {\n const collection = createOutboxCollection(options);\n let outbox: OntologyOutbox | undefined;\n const ready = deferred<void>();\n // Prevent unhandled rejection when cleanup races startup.\n void ready.promise.catch(() => undefined);\n let cleanupPromise: Promise<void> | undefined;\n const task = run(function* () {\n try {\n const value = yield* useOntologyOutbox(options, collection);\n outbox = value;\n ready.resolve();\n yield* suspend();\n } catch (error) {\n ready.reject(normalizeError(error));\n throw error;\n }\n });\n void task.catch(() => undefined);\n\n return {\n collection,\n ready: ready.promise,\n task,\n async enqueue(request, enqueueOptions) {\n await ready.promise;\n return outbox!.enqueue(request, enqueueOptions);\n },\n async edit(id, update) {\n await ready.promise;\n return outbox!.edit(id, update);\n },\n async remove(id) {\n await ready.promise;\n return outbox!.remove(id);\n },\n async retry(id) {\n await ready.promise;\n return outbox!.retry(id);\n },\n async cleanup() {\n cleanupPromise ??= (async () => {\n // Let persistence startup settle before tearing down so\n // loopback markReady cannot race cleaned-up status.\n await Promise.allSettled([ready.promise, collection.preload()]);\n await task.halt().catch(() => undefined);\n if (collection.status !== \"cleaned-up\") {\n await collection.cleanup().catch(() => undefined);\n }\n })();\n return cleanupPromise;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
1
|
+
import { OntologyOutboxEntry } from "./types.js";
|
|
2
|
+
import { OutboxCoordinationService } from "./service.js";
|
|
3
|
+
import { CoordinationServiceClient, RuntimeAdapter } from "@party-stack/runtime";
|
|
4
|
+
import { Operation, Stream } from "effection";
|
|
5
|
+
import { ConnectionMonitor } from "@party-stack/connections";
|
|
6
|
+
//#region src/live/outbox/leaderExecutor.d.ts
|
|
6
7
|
export interface OutboxLeaderOptions {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
runtime: RuntimeAdapter;
|
|
9
|
+
service: CoordinationServiceClient<OutboxCoordinationService>;
|
|
10
|
+
wake: Stream<void, never>;
|
|
11
|
+
failureStrategy: "pause" | "discard-all";
|
|
12
|
+
maxRetries: number;
|
|
13
|
+
retryDelayMs: number;
|
|
14
|
+
execute(entry: OntologyOutboxEntry): Promise<unknown>;
|
|
15
|
+
connection?: ConnectionMonitor;
|
|
15
16
|
}
|
|
16
17
|
export declare function useOutboxLeader(options: OutboxLeaderOptions): Operation<void>;
|
|
17
18
|
export declare function runOutboxLeader(signal: AbortSignal, options: OutboxLeaderOptions): Promise<void>;
|
|
19
|
+
//#endregion
|
|
18
20
|
//# sourceMappingURL=leaderExecutor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderExecutor.d.ts","
|
|
1
|
+
{"version":3,"file":"leaderExecutor.d.ts","names":[],"sources":["../../../src/live/outbox/leaderExecutor.ts"],"mappings":";;;;;;iBAWiB;EACb,SAAS;EACT,SAAS,0BAA0B;EACnC,MAAM;EACN;EACA;EACA;EACA,QAAQ,OAAO,sBAAsB;EACrC,aAAa;;wBA2BD,gBAAgB,SAAS,sBAAsB;wBA8HzC,gBAAgB,QAAQ,aAAa,SAAS,sBAAsB"}
|
|
@@ -1,169 +1,130 @@
|
|
|
1
|
-
import { isUnauthenticatedError } from "@party-stack/errors";
|
|
2
|
-
import { CoordinationTaskRejectedError, } from "@party-stack/runtime";
|
|
3
|
-
import { race, run, sleep, until, useAbortSignal, } from "effection";
|
|
4
1
|
import { NonRetryableError } from "./types.js";
|
|
2
|
+
import { CoordinationTaskRejectedError } from "@party-stack/runtime";
|
|
3
|
+
import { race, run, sleep, until, useAbortSignal } from "effection";
|
|
4
|
+
import { isUnauthenticatedError } from "@party-stack/errors";
|
|
5
|
+
//#region src/live/outbox/leaderExecutor.ts
|
|
5
6
|
function normalizeError(error) {
|
|
6
|
-
|
|
7
|
+
return error instanceof Error ? error : new Error(String(error));
|
|
7
8
|
}
|
|
8
9
|
function isStaleExecution(error) {
|
|
9
|
-
|
|
10
|
+
return error instanceof CoordinationTaskRejectedError && error.code === "STALE_EXECUTION";
|
|
10
11
|
}
|
|
11
12
|
function retryDelay(baseDelayMs, retryIndex) {
|
|
12
|
-
|
|
13
|
-
2 ** Math.min(retryIndex, 16));
|
|
13
|
+
return Math.min(Number.MAX_SAFE_INTEGER, baseDelayMs * 2 ** Math.min(retryIndex, 16));
|
|
14
14
|
}
|
|
15
15
|
function isConnected(runtime) {
|
|
16
|
-
|
|
16
|
+
return runtime.connectivity?.isConnected !== false;
|
|
17
17
|
}
|
|
18
18
|
function isConnectionReady(connection) {
|
|
19
|
-
|
|
20
|
-
connection.state.status === "active");
|
|
19
|
+
return !connection || connection.state.status === "active";
|
|
21
20
|
}
|
|
22
21
|
function canExecute(options) {
|
|
23
|
-
|
|
24
|
-
isConnectionReady(options.connection);
|
|
22
|
+
return isConnected(options.runtime) && isConnectionReady(options.connection);
|
|
25
23
|
}
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
retryable,
|
|
113
|
-
error: errorDetails,
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
catch (claimError) {
|
|
118
|
-
if (isStaleExecution(claimError)) {
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
throw claimError;
|
|
122
|
-
}
|
|
123
|
-
if (retryScheduled) {
|
|
124
|
-
continue;
|
|
125
|
-
}
|
|
126
|
-
break;
|
|
127
|
-
}
|
|
128
|
-
if (signal.aborted) {
|
|
129
|
-
throw signal.reason;
|
|
130
|
-
}
|
|
131
|
-
try {
|
|
132
|
-
yield* until(options.service.methods.complete({
|
|
133
|
-
id: entry.id,
|
|
134
|
-
executionId,
|
|
135
|
-
result,
|
|
136
|
-
}));
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
if (isStaleExecution(error))
|
|
140
|
-
break;
|
|
141
|
-
throw error;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
yield* wakes.next();
|
|
146
|
-
}
|
|
147
|
-
})();
|
|
24
|
+
function useOutboxLeader(options) {
|
|
25
|
+
return (function* () {
|
|
26
|
+
const signal = yield* useAbortSignal();
|
|
27
|
+
yield* until(options.service.methods.recover({
|
|
28
|
+
failureStrategy: options.failureStrategy,
|
|
29
|
+
maxRetries: options.maxRetries
|
|
30
|
+
}));
|
|
31
|
+
const wakes = yield* options.wake;
|
|
32
|
+
while (true) {
|
|
33
|
+
if (canExecute(options)) while (true) {
|
|
34
|
+
if (!canExecute(options)) break;
|
|
35
|
+
const entry = yield* until(options.service.methods.claim({}));
|
|
36
|
+
if (!entry) {
|
|
37
|
+
const retryAt = yield* until(options.service.methods.nextRetryAt({}));
|
|
38
|
+
if (retryAt === void 0) break;
|
|
39
|
+
const delay = Math.max(0, retryAt - Date.now());
|
|
40
|
+
if (delay > 0) yield* race([sleep(delay), wakes.next()]);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const executionId = entry.executionId;
|
|
44
|
+
let result;
|
|
45
|
+
try {
|
|
46
|
+
result = yield* until(options.execute(entry));
|
|
47
|
+
} catch (error) {
|
|
48
|
+
if (signal.aborted) throw error;
|
|
49
|
+
const normalized = normalizeError(error);
|
|
50
|
+
if (isUnauthenticatedError(error) && options.connection) {
|
|
51
|
+
yield* until(options.service.methods.fail({
|
|
52
|
+
id: entry.id,
|
|
53
|
+
executionId,
|
|
54
|
+
retryable: true,
|
|
55
|
+
retryAt: Date.now(),
|
|
56
|
+
error: {
|
|
57
|
+
name: normalized.name,
|
|
58
|
+
message: normalized.message
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
const retryable = !(normalized instanceof NonRetryableError);
|
|
64
|
+
const retryScheduled = retryable && entry.attempts < options.maxRetries;
|
|
65
|
+
try {
|
|
66
|
+
const errorDetails = {
|
|
67
|
+
name: normalized.name,
|
|
68
|
+
message: normalized.message
|
|
69
|
+
};
|
|
70
|
+
if (retryScheduled) yield* until(options.service.methods.fail({
|
|
71
|
+
id: entry.id,
|
|
72
|
+
executionId,
|
|
73
|
+
retryable: true,
|
|
74
|
+
retryAt: Date.now() + retryDelay(options.retryDelayMs, entry.attempts),
|
|
75
|
+
error: errorDetails
|
|
76
|
+
}));
|
|
77
|
+
else if (options.failureStrategy === "discard-all") yield* until(options.service.methods.discardAll({
|
|
78
|
+
id: entry.id,
|
|
79
|
+
executionId,
|
|
80
|
+
error: errorDetails
|
|
81
|
+
}));
|
|
82
|
+
else yield* until(options.service.methods.fail({
|
|
83
|
+
id: entry.id,
|
|
84
|
+
executionId,
|
|
85
|
+
retryable,
|
|
86
|
+
error: errorDetails
|
|
87
|
+
}));
|
|
88
|
+
} catch (claimError) {
|
|
89
|
+
if (isStaleExecution(claimError)) break;
|
|
90
|
+
throw claimError;
|
|
91
|
+
}
|
|
92
|
+
if (retryScheduled) continue;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
if (signal.aborted) throw signal.reason;
|
|
96
|
+
try {
|
|
97
|
+
yield* until(options.service.methods.complete({
|
|
98
|
+
id: entry.id,
|
|
99
|
+
executionId,
|
|
100
|
+
result
|
|
101
|
+
}));
|
|
102
|
+
} catch (error) {
|
|
103
|
+
if (isStaleExecution(error)) break;
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
yield* wakes.next();
|
|
108
|
+
}
|
|
109
|
+
})();
|
|
148
110
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
signal.removeEventListener("abort", haltTask);
|
|
165
|
-
haltTask();
|
|
166
|
-
await halt;
|
|
167
|
-
}
|
|
111
|
+
async function runOutboxLeader(signal, options) {
|
|
112
|
+
const task = run(() => useOutboxLeader(options));
|
|
113
|
+
let halt;
|
|
114
|
+
const haltTask = () => {
|
|
115
|
+
halt ??= Promise.resolve(task.halt()).then(() => void 0);
|
|
116
|
+
};
|
|
117
|
+
signal.addEventListener("abort", haltTask, { once: true });
|
|
118
|
+
if (signal.aborted) haltTask();
|
|
119
|
+
try {
|
|
120
|
+
await task;
|
|
121
|
+
} finally {
|
|
122
|
+
signal.removeEventListener("abort", haltTask);
|
|
123
|
+
haltTask();
|
|
124
|
+
await halt;
|
|
125
|
+
}
|
|
168
126
|
}
|
|
127
|
+
//#endregion
|
|
128
|
+
export { runOutboxLeader, useOutboxLeader };
|
|
129
|
+
|
|
169
130
|
//# sourceMappingURL=leaderExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leaderExecutor.js","sourceRoot":"","sources":["../../../src/live/outbox/leaderExecutor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"leaderExecutor.js","names":[],"sources":["../../../src/live/outbox/leaderExecutor.ts"],"sourcesContent":["import { type ConnectionMonitor } from \"@party-stack/connections\";\nimport { isUnauthenticatedError } from \"@party-stack/errors\";\nimport {\n CoordinationTaskRejectedError,\n type CoordinationServiceClient,\n type RuntimeAdapter,\n} from \"@party-stack/runtime\";\nimport { race, run, sleep, until, useAbortSignal, type Operation, type Stream, type Task } from \"effection\";\nimport { NonRetryableError, type OntologyOutboxEntry } from \"./types.js\";\nimport type { OutboxCoordinationService } from \"./service.js\";\n\nexport interface OutboxLeaderOptions {\n runtime: RuntimeAdapter;\n service: CoordinationServiceClient<OutboxCoordinationService>;\n wake: Stream<void, never>;\n failureStrategy: \"pause\" | \"discard-all\";\n maxRetries: number;\n retryDelayMs: number;\n execute(entry: OntologyOutboxEntry): Promise<unknown>;\n connection?: ConnectionMonitor;\n}\n\nfunction normalizeError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\n\nfunction isStaleExecution(error: unknown): boolean {\n return error instanceof CoordinationTaskRejectedError && error.code === \"STALE_EXECUTION\";\n}\n\nfunction retryDelay(baseDelayMs: number, retryIndex: number): number {\n return Math.min(Number.MAX_SAFE_INTEGER, baseDelayMs * 2 ** Math.min(retryIndex, 16));\n}\n\nfunction isConnected(runtime: RuntimeAdapter): boolean {\n return runtime.connectivity?.isConnected !== false;\n}\n\nfunction isConnectionReady(connection: OutboxLeaderOptions[\"connection\"]): boolean {\n return !connection || connection.state.status === \"active\";\n}\n\nfunction canExecute(options: OutboxLeaderOptions): boolean {\n return isConnected(options.runtime) && isConnectionReady(options.connection);\n}\n\nexport function useOutboxLeader(options: OutboxLeaderOptions): Operation<void> {\n return (function* () {\n const signal = yield* useAbortSignal();\n yield* until(\n options.service.methods.recover({\n failureStrategy: options.failureStrategy,\n maxRetries: options.maxRetries,\n })\n );\n const wakes = yield* options.wake;\n\n while (true) {\n if (canExecute(options)) {\n while (true) {\n if (!canExecute(options)) {\n break;\n }\n const entry = yield* until(options.service.methods.claim({}));\n if (!entry) {\n const retryAt = yield* until(options.service.methods.nextRetryAt({}));\n if (retryAt === undefined) {\n break;\n }\n const delay = Math.max(0, retryAt - Date.now());\n if (delay > 0) {\n yield* race([sleep(delay), wakes.next()]);\n }\n continue;\n }\n const executionId = entry.executionId!;\n\n let result: unknown;\n try {\n result = yield* until(options.execute(entry));\n } catch (error) {\n if (signal.aborted) throw error;\n const normalized = normalizeError(error);\n if (isUnauthenticatedError(error) && options.connection) {\n // Connection egress currently reports authentication\n // failures. A future LiveOntology backend supervisor\n // should own reporting for every adapter operation.\n yield* until(\n options.service.methods.fail({\n id: entry.id,\n executionId,\n retryable: true,\n retryAt: Date.now(),\n error: {\n name: normalized.name,\n message: normalized.message,\n },\n })\n );\n break;\n }\n const retryable = !(normalized instanceof NonRetryableError);\n const retryScheduled = retryable && entry.attempts < options.maxRetries;\n try {\n const errorDetails = {\n name: normalized.name,\n message: normalized.message,\n };\n if (retryScheduled) {\n yield* until(\n options.service.methods.fail({\n id: entry.id,\n executionId,\n retryable: true,\n retryAt:\n Date.now() + retryDelay(options.retryDelayMs, entry.attempts),\n error: errorDetails,\n })\n );\n } else if (options.failureStrategy === \"discard-all\") {\n yield* until(\n options.service.methods.discardAll({\n id: entry.id,\n executionId,\n error: errorDetails,\n })\n );\n } else {\n yield* until(\n options.service.methods.fail({\n id: entry.id,\n executionId,\n retryable,\n error: errorDetails,\n })\n );\n }\n } catch (claimError) {\n if (isStaleExecution(claimError)) {\n break;\n }\n throw claimError;\n }\n if (retryScheduled) {\n continue;\n }\n break;\n }\n\n if (signal.aborted) {\n throw signal.reason;\n }\n try {\n yield* until(\n options.service.methods.complete({\n id: entry.id,\n executionId,\n result,\n })\n );\n } catch (error) {\n if (isStaleExecution(error)) break;\n throw error;\n }\n }\n }\n\n yield* wakes.next();\n }\n })();\n}\n\nexport async function runOutboxLeader(signal: AbortSignal, options: OutboxLeaderOptions): Promise<void> {\n const task: Task<void> = run(() => useOutboxLeader(options));\n let halt: Promise<void> | undefined;\n const haltTask = () => {\n halt ??= Promise.resolve(task.halt()).then(() => undefined);\n };\n signal.addEventListener(\"abort\", haltTask, {\n once: true,\n });\n if (signal.aborted) haltTask();\n\n try {\n await task;\n } finally {\n signal.removeEventListener(\"abort\", haltTask);\n haltTask();\n await halt;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { OutboxCoordinationService } from "./service.js";
|
|
2
2
|
import { OntologyOutboxRepository } from "./repository.js";
|
|
3
|
-
import {
|
|
3
|
+
import { CoordinationHost, CoordinationServiceServer } from "@party-stack/runtime";
|
|
4
|
+
//#region src/live/outbox/outboxService.d.ts
|
|
4
5
|
export declare function serveOntologyOutbox(host: CoordinationHost, repository: OntologyOutboxRepository): CoordinationServiceServer<OutboxCoordinationService>;
|
|
6
|
+
//#endregion
|
|
5
7
|
//# sourceMappingURL=outboxService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outboxService.d.ts","
|
|
1
|
+
{"version":3,"file":"outboxService.d.ts","names":[],"sources":["../../../src/live/outbox/outboxService.ts"],"mappings":";;;;wBAYgB,oBACZ,MAAM,kBACN,YAAY,2BACb,0BAA0B"}
|
|
@@ -1,73 +1,68 @@
|
|
|
1
|
-
import { OUTBOX_COORDINATION_SERVICE
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
const server = host.serve(OUTBOX_COORDINATION_SERVICE, handlers);
|
|
70
|
-
publishResult = (event) => server.events.publish("result", event);
|
|
71
|
-
return server;
|
|
1
|
+
import { OUTBOX_COORDINATION_SERVICE } from "./service.js";
|
|
2
|
+
//#region src/live/outbox/outboxService.ts
|
|
3
|
+
function serveOntologyOutbox(host, repository) {
|
|
4
|
+
let publishResult = () => void 0;
|
|
5
|
+
const server = host.serve(OUTBOX_COORDINATION_SERVICE, {
|
|
6
|
+
enqueue: ({ entry }) => repository.enqueue(entry),
|
|
7
|
+
edit: ({ id, request }) => repository.edit(id, request),
|
|
8
|
+
remove: async ({ id }) => {
|
|
9
|
+
await repository.remove(id);
|
|
10
|
+
publishResult({
|
|
11
|
+
type: "rejected",
|
|
12
|
+
id,
|
|
13
|
+
error: {
|
|
14
|
+
name: "OutboxEntryRemoved",
|
|
15
|
+
message: "Outbox entry removed."
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
retry: ({ id }) => repository.retry(id),
|
|
20
|
+
recover: async ({ failureStrategy, maxRetries }) => {
|
|
21
|
+
const discarded = await repository.recover(failureStrategy, maxRetries);
|
|
22
|
+
for (const entry of discarded) publishResult({
|
|
23
|
+
type: "rejected",
|
|
24
|
+
id: entry.id,
|
|
25
|
+
error: {
|
|
26
|
+
name: "InterruptedExecutionDiscarded",
|
|
27
|
+
message: "Discarded because execution was interrupted before its result was recorded."
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
claim: () => repository.claim(),
|
|
32
|
+
nextRetryAt: () => repository.nextRetryAt(),
|
|
33
|
+
complete: async ({ id, executionId, result }) => {
|
|
34
|
+
await repository.complete(id, executionId);
|
|
35
|
+
publishResult({
|
|
36
|
+
type: "completed",
|
|
37
|
+
id,
|
|
38
|
+
result
|
|
39
|
+
});
|
|
40
|
+
},
|
|
41
|
+
fail: async ({ id, executionId, retryable, retryAt, error }) => {
|
|
42
|
+
const entry = await repository.fail(id, executionId, retryable, error, retryAt);
|
|
43
|
+
if (!retryable) publishResult({
|
|
44
|
+
type: "rejected",
|
|
45
|
+
id,
|
|
46
|
+
error
|
|
47
|
+
});
|
|
48
|
+
return entry;
|
|
49
|
+
},
|
|
50
|
+
discardAll: async ({ id, executionId, error }) => {
|
|
51
|
+
const discarded = await repository.discardAll(id, executionId);
|
|
52
|
+
for (const entry of discarded) publishResult({
|
|
53
|
+
type: "rejected",
|
|
54
|
+
id: entry.id,
|
|
55
|
+
error: entry.id === id ? error : {
|
|
56
|
+
name: "OutboxDiscardedAfterNonRetryableError",
|
|
57
|
+
message: `Discarded because outbox entry "${id}" failed permanently: ${error.message}`
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
publishResult = (event) => server.events.publish("result", event);
|
|
63
|
+
return server;
|
|
72
64
|
}
|
|
65
|
+
//#endregion
|
|
66
|
+
export { serveOntologyOutbox };
|
|
67
|
+
|
|
73
68
|
//# sourceMappingURL=outboxService.js.map
|