@party-stack/ontology 0.18.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 +49 -53
- 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 +22 -25
- 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 -281
- 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 -182
- 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 -181
- 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 -1007
- package/lib/live/outbox/createOntologyOutbox.test.js.map +0 -1
- package/lib/live/outbox/outboxValues.d.ts +0 -7
- package/lib/live/outbox/outboxValues.d.ts.map +0 -1
- package/lib/live/outbox/outboxValues.js +0 -76
- package/lib/live/outbox/outboxValues.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/ir/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/ir/validate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate.js","names":[],"sources":["../../src/ir/validate.ts"],"sourcesContent":["import { isLinkHopFromForeignKeySource, resolveLinkHop } from \"../utils/links.js\";\nimport { unwrapType } from \"../utils/types.js\";\nimport { ImageMediaTypeOptions } from \"./generated/constants.js\";\nimport type { ValidationIssue } from \"../utils/validation.js\";\nimport type { Result } from \"../utils/values.js\";\nimport type {\n ActionParameterDef,\n ActionTypeDef,\n Expression,\n LinkTypeDef,\n ObjectTypeDef,\n OntologyIR,\n PropertyAssignment,\n PropertyDef,\n QueryFunctionTypeDef,\n TypeDef,\n InputReferenceExpression,\n} from \"./generated/types.js\";\n\nexport type ValidationResult = Result<void, ValidationIssue[]>;\n\n// TODO: Replace this attachment-specific range validation with real numeric constraints in the meta ontology.\nfunction validateNonNegativeRange(\n range: { min?: number; max?: number } | undefined,\n path: (string | number)[]\n): ValidationIssue[] {\n if (!range) return [];\n const errors: ValidationIssue[] = [];\n for (const bound of [\"min\", \"max\"] as const) {\n const value = range[bound];\n if (value !== undefined && (!Number.isFinite(value) || value < 0)) {\n errors.push({\n message: `Range ${bound} must be a finite, non-negative number.`,\n path: [...path, bound],\n });\n }\n }\n if (range.min !== undefined && range.max !== undefined && range.min > range.max) {\n errors.push({\n message: \"Range min must be less than or equal to max.\",\n path,\n });\n }\n return errors;\n}\n\nfunction validateAttachmentConstraints(type: Extract<TypeDef, { kind: \"attachment\" }>): ValidationIssue[] {\n const constraint = type.value.constraint;\n if (!constraint) return [];\n\n const errors = validateNonNegativeRange(constraint.size, [\"constraint\", \"size\"]);\n const content = constraint.content;\n if (content?.kind !== \"image\") return errors;\n\n for (const [index, mediaType] of (content.value.mediaTypes ?? []).entries()) {\n if (!ImageMediaTypeOptions.some((option) => option.value === mediaType)) {\n errors.push({\n message: `Unsupported image media type: \"${mediaType}\".`,\n path: [\"constraint\", \"content\", \"value\", \"mediaTypes\", index],\n });\n }\n }\n errors.push(\n ...validateNonNegativeRange(content.value.dimensions?.width, [\n \"constraint\",\n \"content\",\n \"value\",\n \"dimensions\",\n \"width\",\n ]),\n ...validateNonNegativeRange(content.value.dimensions?.height, [\n \"constraint\",\n \"content\",\n \"value\",\n \"dimensions\",\n \"height\",\n ])\n );\n return errors;\n}\n\nfunction validateTypeDef(\n type: TypeDef,\n path: (string | number)[],\n valueTypeNames: Set<string>,\n objectTypeNames: Set<string>\n): ValidationIssue[] {\n switch (type.kind) {\n case \"string\":\n case \"boolean\":\n case \"integer\":\n case \"float\":\n case \"double\":\n case \"date\":\n case \"timestamp\":\n case \"geopoint\":\n case \"unknown\":\n return [];\n\n case \"attachment\":\n return validateAttachmentConstraints(type).map((error) => ({\n ...error,\n path: [...path, ...(error.path ?? [])],\n }));\n\n case \"objectReference\":\n return objectTypeNames.has(type.value.objectType)\n ? []\n : [\n {\n message: `Unknown object type reference: \"${type.value.objectType}\".`,\n path: [...path, \"objectType\"],\n },\n ];\n\n case \"list\":\n return validateTypeDef(\n type.value.elementType,\n [...path, \"elementType\"],\n valueTypeNames,\n objectTypeNames\n );\n\n case \"map\": {\n const errors: ValidationIssue[] = [];\n if (type.value.keyType.kind !== \"string\") {\n errors.push({\n message: \"Map key types must be string.\",\n path: [...path, \"keyType\"],\n });\n }\n return [\n ...errors,\n ...validateTypeDef(type.value.keyType, [...path, \"keyType\"], valueTypeNames, objectTypeNames),\n ...validateTypeDef(\n type.value.valueType,\n [...path, \"valueType\"],\n valueTypeNames,\n objectTypeNames\n ),\n ];\n }\n\n case \"struct\":\n return validateStructFields(\n type.value.fields,\n [...path, \"fields\"],\n valueTypeNames,\n objectTypeNames\n );\n\n case \"union\":\n return validateUnionVariants(\n type.value.variants,\n [...path, \"variants\"],\n valueTypeNames,\n objectTypeNames\n );\n\n case \"optional\":\n return validateTypeDef(type.value.type, [...path, \"type\"], valueTypeNames, objectTypeNames);\n\n case \"result\":\n return [\n ...validateTypeDef(type.value.okType, [...path, \"okType\"], valueTypeNames, objectTypeNames),\n ...validateTypeDef(type.value.errType, [...path, \"errType\"], valueTypeNames, objectTypeNames),\n ];\n\n case \"ref\":\n return valueTypeNames.has(type.value.name)\n ? []\n : [\n {\n message: `Unknown value type reference: \"${type.value.name}\".`,\n path: [...path, \"name\"],\n },\n ];\n }\n}\n\nfunction validateStructFields(\n fields: Array<{ name: string; displayName: string; type: TypeDef }>,\n path: (string | number)[],\n valueTypeNames: Set<string>,\n objectTypeNames: Set<string>\n): ValidationIssue[] {\n const fieldNames = new Set<string>();\n const errors: ValidationIssue[] = [];\n\n for (let i = 0; i < fields.length; i++) {\n const field = fields[i]!;\n const fieldPath = [...path, i];\n\n if (fieldNames.has(field.name)) {\n errors.push({ message: `Duplicate field name: \"${field.name}\".`, path: [...fieldPath, \"name\"] });\n }\n fieldNames.add(field.name);\n\n errors.push(...validateTypeDef(field.type, [...fieldPath, \"type\"], valueTypeNames, objectTypeNames));\n }\n\n return errors;\n}\n\nfunction validateUnionVariants(\n variants: Array<{ name: string; type: TypeDef }>,\n path: (string | number)[],\n valueTypeNames: Set<string>,\n objectTypeNames: Set<string>\n): ValidationIssue[] {\n const seen = new Set<string>();\n const errors: ValidationIssue[] = [];\n\n for (let i = 0; i < variants.length; i++) {\n const variant = variants[i]!;\n const variantPath = [...path, i];\n\n if (seen.has(variant.name)) {\n errors.push({\n message: `Duplicate variant name: \"${variant.name}\".`,\n path: [...variantPath, \"name\"],\n });\n }\n seen.add(variant.name);\n\n errors.push(\n ...validateTypeDef(variant.type, [...variantPath, \"type\"], valueTypeNames, objectTypeNames)\n );\n }\n\n return errors;\n}\n\nfunction validateProperties(\n properties: PropertyDef[],\n path: (string | number)[],\n valueTypeNames: Set<string>,\n objectTypeNames: Set<string>\n): ValidationIssue[] {\n const names = new Set<string>();\n const errors: ValidationIssue[] = [];\n\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i]!;\n const propPath = [...path, i];\n\n if (names.has(prop.name)) {\n errors.push({\n message: `Duplicate property name: \"${prop.name}\".`,\n path: [...propPath, \"name\"],\n });\n }\n names.add(prop.name);\n\n errors.push(...validateTypeDef(prop.type, [...propPath, \"type\"], valueTypeNames, objectTypeNames));\n }\n\n return errors;\n}\n\nfunction resolveType(\n type: TypeDef,\n valueTypes: ReadonlyMap<string, TypeDef>,\n seen = new Set<string>()\n): TypeDef | undefined {\n if (type.kind !== \"ref\") {\n return type;\n }\n\n const name = type.value.name;\n if (seen.has(name)) {\n return undefined;\n }\n\n const resolved = valueTypes.get(name);\n if (!resolved) {\n return undefined;\n }\n\n return resolveType(resolved, valueTypes, new Set([...seen, name]));\n}\n\nfunction resolveFieldType(\n type: TypeDef,\n path: string[],\n valueTypes: ReadonlyMap<string, TypeDef>\n): TypeDef | undefined {\n const resolvedType = resolveType(type, valueTypes);\n if (!resolvedType) {\n return undefined;\n }\n\n if (path.length === 0) {\n return resolvedType;\n }\n\n const [segment, ...rest] = path;\n\n switch (resolvedType.kind) {\n case \"optional\":\n return resolveFieldType(resolvedType.value.type, path, valueTypes);\n case \"struct\": {\n const field = resolvedType.value.fields.find((candidate) => candidate.name === segment);\n return field ? resolveFieldType(field.type, rest, valueTypes) : undefined;\n }\n default:\n return undefined;\n }\n}\n\ntype ExpressionValueType =\n | TypeDef\n | {\n kind: \"ontologyObject\";\n objectType: string;\n };\n\nfunction resolveExpressionType(\n expression: Expression,\n parameters: ReadonlyMap<string, ActionParameterDef>,\n valueTypes: ReadonlyMap<string, TypeDef>,\n objectTypes: ReadonlyMap<string, ObjectTypeDef>,\n linkTypes: readonly LinkTypeDef[],\n contextType: TypeDef | undefined,\n locals: ReadonlyMap<string, TypeDef>\n): ExpressionValueType | undefined {\n switch (expression.kind) {\n case \"inputReference\":\n return parameters.get(expression.value.name)?.type;\n case \"contextReference\":\n return contextType\n ? resolveFieldType(contextType, [expression.value.name], valueTypes)\n : undefined;\n case \"localReference\":\n return locals.get(expression.value.name);\n case \"getAt\": {\n const sourceType = resolveExpressionType(\n expression.value.source,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n if (!sourceType || expression.value.path.length === 0) {\n return undefined;\n }\n if (sourceType.kind === \"ontologyObject\") {\n const [propertyName, ...rest] = expression.value.path;\n const property = objectTypes\n .get(sourceType.objectType)\n ?.properties.find((candidate) => candidate.name === propertyName);\n return property ? resolveFieldType(property.type, rest, valueTypes) : undefined;\n }\n return resolveFieldType(sourceType, expression.value.path, valueTypes);\n }\n case \"objectLookup\": {\n const referenceType = resolveExpressionType(\n expression.value.reference,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n const resolved =\n referenceType?.kind === \"ontologyObject\"\n ? undefined\n : referenceType\n ? unwrapOptionalType(referenceType, valueTypes)\n : undefined;\n return resolved?.kind === \"objectReference\"\n ? {\n kind: \"ontologyObject\",\n objectType: resolved.value.objectType,\n }\n : undefined;\n }\n case \"linkHop\": {\n const sourceType = resolveExpressionType(\n expression.value.source,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n if (sourceType?.kind !== \"ontologyObject\") {\n return undefined;\n }\n const link = resolveLinkHop(\n {\n objectTypes: [...objectTypes.values()],\n linkTypes: [...linkTypes],\n },\n sourceType.objectType,\n expression.value.link\n );\n if (!link) return undefined;\n const foreignKeyOnSource = isLinkHopFromForeignKeySource(\n link,\n sourceType.objectType,\n expression.value.link\n );\n if (!foreignKeyOnSource && link.cardinality === \"many\") {\n return undefined;\n }\n return {\n kind: \"ontologyObject\",\n objectType: foreignKeyOnSource ? link.target.objectType : link.source.objectType,\n };\n }\n case \"struct\":\n return {\n kind: \"struct\",\n value: {\n fields: expression.value.fields.map((field) => ({\n name: field.name,\n displayName: field.name,\n type: (() => {\n const resolved = resolveExpressionType(\n field.value,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n return resolved && resolved.kind !== \"ontologyObject\"\n ? resolved\n : {\n kind: \"unknown\" as const,\n value: {},\n };\n })(),\n })),\n },\n };\n case \"map\": {\n const sourceType = resolveExpressionType(\n expression.value.source,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n const listType =\n sourceType && sourceType.kind !== \"ontologyObject\"\n ? unwrapOptionalType(sourceType, valueTypes)\n : undefined;\n if (listType?.kind !== \"list\") {\n return undefined;\n }\n const bodyLocals = new Map(locals);\n bodyLocals.set(expression.value.binding, listType.value.elementType);\n const bodyType = resolveExpressionType(\n expression.value.body,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n bodyLocals\n );\n return bodyType && bodyType.kind !== \"ontologyObject\"\n ? {\n kind: \"list\",\n value: { elementType: bodyType },\n }\n : undefined;\n }\n case \"literal\":\n return { kind: \"unknown\", value: {} };\n case \"uuid\":\n return { kind: \"string\", value: {} };\n case \"now\":\n return { kind: \"timestamp\", value: {} };\n }\n}\n\nfunction validateExpression(\n expression: Expression,\n parameters: ReadonlyMap<string, ActionParameterDef>,\n path: (string | number)[],\n valueTypes: ReadonlyMap<string, TypeDef>,\n objectTypes: ReadonlyMap<string, ObjectTypeDef>,\n linkTypes: readonly LinkTypeDef[],\n contextType: TypeDef | undefined,\n locals: ReadonlyMap<string, TypeDef> = new Map()\n): ValidationIssue[] {\n switch (expression.kind) {\n case \"inputReference\": {\n const parameter = parameters.get(expression.value.name);\n if (!parameter) {\n return [\n {\n message: `Unknown action parameter: \"${expression.value.name}\".`,\n path: [...path, \"name\"],\n },\n ];\n }\n return [];\n }\n case \"contextReference\":\n if (!contextType) {\n return [];\n }\n return resolveFieldType(contextType, [expression.value.name], valueTypes)\n ? []\n : [\n {\n message: `Unknown context value: \"${expression.value.name}\".`,\n path: [...path, \"name\"],\n },\n ];\n case \"localReference\": {\n const local = locals.get(expression.value.name);\n if (!local) {\n return [\n {\n message: `Unknown expression binding: \"${expression.value.name}\".`,\n path: [...path, \"name\"],\n },\n ];\n }\n return [];\n }\n case \"getAt\":\n case \"objectLookup\":\n case \"linkHop\": {\n const childKey = expression.kind === \"objectLookup\" ? \"reference\" : \"source\";\n const child =\n expression.kind === \"objectLookup\" ? expression.value.reference : expression.value.source;\n const errors = validateExpression(\n child,\n parameters,\n [...path, childKey],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n if (expression.kind === \"getAt\" && expression.value.path.length === 0) {\n errors.push({\n message: \"Get-at expression paths must not be empty.\",\n path: [...path, \"path\"],\n });\n }\n const resolved = resolveExpressionType(\n expression,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n if (!resolved) {\n errors.push({\n message:\n expression.kind === \"getAt\"\n ? \"Get-at expression source and path must resolve structurally.\"\n : expression.kind === \"objectLookup\"\n ? \"Object lookup references must resolve to an object reference.\"\n : \"Link hop must resolve to a named to-one link.\",\n path,\n });\n }\n return errors;\n }\n case \"struct\": {\n const errors: ValidationIssue[] = [];\n const names = new Set<string>();\n for (let index = 0; index < expression.value.fields.length; index++) {\n const field = expression.value.fields[index]!;\n if (names.has(field.name)) {\n errors.push({\n message: `Duplicate struct expression field: \"${field.name}\".`,\n path: [...path, \"fields\", index, \"name\"],\n });\n }\n names.add(field.name);\n errors.push(\n ...validateExpression(\n field.value,\n parameters,\n [...path, \"fields\", index, \"value\"],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n )\n );\n }\n return errors;\n }\n case \"map\": {\n const errors = validateExpression(\n expression.value.source,\n parameters,\n [...path, \"source\"],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n const sourceType = resolveExpressionType(\n expression.value.source,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n locals\n );\n const listType =\n sourceType && sourceType.kind !== \"ontologyObject\"\n ? unwrapOptionalType(sourceType, valueTypes)\n : undefined;\n if (sourceType && listType?.kind !== \"list\") {\n errors.push({\n message: \"Map expression source must resolve to a list.\",\n path: [...path, \"source\"],\n });\n }\n if (!expression.value.binding) {\n errors.push({\n message: \"Map expression binding must not be empty.\",\n path: [...path, \"binding\"],\n });\n }\n const bodyLocals = new Map(locals);\n bodyLocals.set(\n expression.value.binding,\n listType?.kind === \"list\" ? listType.value.elementType : { kind: \"unknown\", value: {} }\n );\n errors.push(\n ...validateExpression(\n expression.value.body,\n parameters,\n [...path, \"body\"],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n bodyLocals\n )\n );\n return errors;\n }\n case \"uuid\":\n case \"now\":\n case \"literal\":\n return [];\n }\n}\n\nfunction unwrapOptionalType(type: TypeDef, valueTypes: ReadonlyMap<string, TypeDef>): TypeDef | undefined {\n const resolved = resolveType(type, valueTypes);\n return resolved?.kind === \"optional\" ? unwrapOptionalType(resolved.value.type, valueTypes) : resolved;\n}\n\nfunction areDefaultTypesCompatible(\n target: TypeDef,\n source: TypeDef,\n valueTypes: ReadonlyMap<string, TypeDef>\n): boolean {\n const targetType = unwrapOptionalType(target, valueTypes);\n const sourceType = unwrapOptionalType(source, valueTypes);\n if (!targetType || !sourceType) return false;\n if (targetType.kind === \"unknown\" || sourceType.kind === \"unknown\") return true;\n if (targetType.kind !== sourceType.kind) return false;\n if (targetType.kind === \"objectReference\" && sourceType.kind === \"objectReference\") {\n return targetType.value.objectType === sourceType.value.objectType;\n }\n if (targetType.kind === \"list\" && sourceType.kind === \"list\") {\n return areDefaultTypesCompatible(\n targetType.value.elementType,\n sourceType.value.elementType,\n valueTypes\n );\n }\n return true;\n}\n\nfunction validateActionObjectReference(\n reference: InputReferenceExpression,\n parameters: ReadonlyMap<string, ActionParameterDef>,\n path: (string | number)[],\n valueTypes: ReadonlyMap<string, TypeDef>,\n objectTypes: ReadonlyMap<string, ObjectTypeDef>\n): { errors: ValidationIssue[]; objectType?: ObjectTypeDef } {\n const parameterName = reference.name;\n const parameter = parameters.get(parameterName);\n if (!parameter) {\n return {\n errors: [\n {\n message: `Unknown action parameter: \"${parameterName}\".`,\n path: [...path, \"name\"],\n },\n ],\n };\n }\n\n const resolved = resolveType(parameter.type, valueTypes);\n if (!resolved || resolved.kind !== \"objectReference\") {\n return {\n errors: [\n {\n message: `Action target parameter \"${parameterName}\" must be an object reference.`,\n path: [...path, \"name\"],\n },\n ],\n };\n }\n\n const targetObjectType = objectTypes.get(resolved.value.objectType);\n return targetObjectType\n ? { errors: [], objectType: targetObjectType }\n : {\n errors: [\n {\n message: `Unknown object type reference: \"${resolved.value.objectType}\".`,\n path: [...path, \"name\"],\n },\n ],\n };\n}\n\nfunction validateActionPropertyAssignment(\n assignment: PropertyAssignment,\n target: ObjectTypeDef,\n parameters: ReadonlyMap<string, ActionParameterDef>,\n path: (string | number)[],\n valueTypes: ReadonlyMap<string, TypeDef>,\n objectTypes: ReadonlyMap<string, ObjectTypeDef>,\n linkTypes: readonly LinkTypeDef[],\n contextType: TypeDef | undefined\n): ValidationIssue[] {\n if (assignment.property.length === 0) {\n return [\n { message: \"Action property assignments must specify a property.\", path: [...path, \"property\"] },\n ];\n }\n\n const [propertyName, ...rest] = assignment.property;\n const property = target.properties.find((candidate) => candidate.name === propertyName);\n if (!property) {\n return [\n {\n message: `Unknown property \"${propertyName}\" on object type \"${target.name}\".`,\n path: [...path, \"property\"],\n },\n ];\n }\n\n const resolved = resolveFieldType(property.type, rest, valueTypes);\n const errors = validateExpression(\n assignment.value,\n parameters,\n [...path, \"value\"],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType\n );\n\n return resolved\n ? errors\n : [\n ...errors,\n {\n message: `Invalid property \"${assignment.property.join(\".\")}\" on object type \"${target.name}\".`,\n path: [...path, \"property\"],\n },\n ];\n}\n\nfunction validateAction(\n action: ActionTypeDef,\n path: (string | number)[],\n valueTypes: ReadonlyMap<string, TypeDef>,\n objectTypes: ReadonlyMap<string, ObjectTypeDef>,\n linkTypes: readonly LinkTypeDef[],\n contextType: TypeDef | undefined\n): ValidationIssue[] {\n const errors: ValidationIssue[] = [];\n const parameters = new Map(action.parameters.map((parameter) => [parameter.name, parameter]));\n const seenParameters = new Set<string>();\n\n for (let index = 0; index < action.parameters.length; index++) {\n const parameter = action.parameters[index]!;\n const parameterPath = [...path, \"parameters\", index];\n\n if (seenParameters.has(parameter.name)) {\n errors.push({\n message: `Duplicate action parameter name: \"${parameter.name}\".`,\n path: [...parameterPath, \"name\"],\n });\n }\n seenParameters.add(parameter.name);\n\n errors.push(\n ...validateTypeDef(\n parameter.type,\n [...parameterPath, \"type\"],\n new Set(valueTypes.keys()),\n new Set(objectTypes.keys())\n )\n );\n\n if (parameter.defaultValue) {\n errors.push(\n ...validateExpression(\n parameter.defaultValue,\n parameters,\n [...parameterPath, \"defaultValue\"],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType\n )\n );\n const sourceType = resolveExpressionType(\n parameter.defaultValue,\n parameters,\n valueTypes,\n objectTypes,\n linkTypes,\n contextType,\n new Map()\n );\n if (\n sourceType &&\n sourceType.kind !== \"ontologyObject\" &&\n !areDefaultTypesCompatible(parameter.type, sourceType, valueTypes)\n ) {\n errors.push({\n message: `Default value for \"${parameter.name}\" has an incompatible type.`,\n path: [...parameterPath, \"defaultValue\"],\n });\n }\n }\n }\n\n for (let index = 0; index < action.logic.length; index++) {\n const step = action.logic[index]!;\n const stepPath = [...path, \"logic\", index];\n\n switch (step.kind) {\n case \"createObject\": {\n const objectType = objectTypes.get(step.value.objectType);\n if (!objectType) {\n errors.push({\n message: `Unknown object type \"${step.value.objectType}\" in action \"${action.name}\".`,\n path: [...stepPath, \"value\", \"objectType\"],\n });\n continue;\n }\n for (let valueIndex = 0; valueIndex < step.value.values.length; valueIndex++) {\n errors.push(\n ...validateActionPropertyAssignment(\n step.value.values[valueIndex]!,\n objectType,\n parameters,\n [...stepPath, \"value\", \"values\", valueIndex],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType\n )\n );\n }\n break;\n }\n case \"updateObject\": {\n const target = validateActionObjectReference(\n step.value.object,\n parameters,\n [...stepPath, \"value\", \"object\"],\n valueTypes,\n objectTypes\n );\n errors.push(...target.errors);\n if (!target.objectType) {\n continue;\n }\n for (let valueIndex = 0; valueIndex < step.value.values.length; valueIndex++) {\n errors.push(\n ...validateActionPropertyAssignment(\n step.value.values[valueIndex]!,\n target.objectType,\n parameters,\n [...stepPath, \"value\", \"values\", valueIndex],\n valueTypes,\n objectTypes,\n linkTypes,\n contextType\n )\n );\n }\n break;\n }\n case \"deleteObject\":\n errors.push(\n ...validateActionObjectReference(\n step.value.object,\n parameters,\n [...stepPath, \"value\", \"object\"],\n valueTypes,\n objectTypes\n ).errors\n );\n break;\n }\n }\n\n return errors;\n}\n\nfunction validateQueryFunctionType(\n queryFunctionType: QueryFunctionTypeDef,\n path: (string | number)[],\n valueTypeNames: Set<string>,\n objectTypeNames: Set<string>\n): ValidationIssue[] {\n const errors: ValidationIssue[] = [];\n const seenParameters = new Set<string>();\n\n for (let index = 0; index < queryFunctionType.parameters.length; index++) {\n const parameter = queryFunctionType.parameters[index]!;\n const parameterPath = [...path, \"parameters\", index];\n\n if (seenParameters.has(parameter.name)) {\n errors.push({\n message: `Duplicate query function parameter name: \"${parameter.name}\".`,\n path: [...parameterPath, \"name\"],\n });\n }\n seenParameters.add(parameter.name);\n\n errors.push(\n ...validateTypeDef(parameter.type, [...parameterPath, \"type\"], valueTypeNames, objectTypeNames)\n );\n }\n\n errors.push(\n ...validateTypeDef(\n queryFunctionType.returnType,\n [...path, \"returnType\"],\n valueTypeNames,\n objectTypeNames\n )\n );\n\n return errors;\n}\n\nexport function validate(ontology: OntologyIR): ValidationResult {\n const errors: ValidationIssue[] = [];\n\n // Collect value type names for ref resolution\n const valueTypeNames = new Set<string>();\n for (let i = 0; i < ontology.types.length; i++) {\n const vt = ontology.types[i]!;\n if (valueTypeNames.has(vt.name)) {\n errors.push({\n message: `Duplicate value type name: \"${vt.name}\".`,\n path: [\"types\", i, \"name\"],\n });\n }\n valueTypeNames.add(vt.name);\n }\n\n const objectTypeNames = new Set<string>();\n for (let i = 0; i < ontology.objectTypes.length; i++) {\n const ot = ontology.objectTypes[i]!;\n if (objectTypeNames.has(ot.name)) {\n errors.push({\n message: `Duplicate object type name: \"${ot.name}\".`,\n path: [\"objectTypes\", i, \"name\"],\n });\n }\n objectTypeNames.add(ot.name);\n }\n\n const valueTypes = new Map(ontology.types.map((type) => [type.name, type.type]));\n const objectTypes = new Map(ontology.objectTypes.map((objectType) => [objectType.name, objectType]));\n\n if (ontology.contextType) {\n errors.push(\n ...validateTypeDef(ontology.contextType, [\"contextType\"], valueTypeNames, objectTypeNames)\n );\n const resolvedContextType = resolveType(ontology.contextType, valueTypes);\n if (resolvedContextType?.kind === \"struct\") {\n const userField = resolvedContextType.value.fields.find((field) => field.name === \"user\");\n const unwrappedUserType = userField ? unwrapType(userField.type).type : undefined;\n const resolvedUserType = unwrappedUserType\n ? resolveType(unwrappedUserType, valueTypes)\n : undefined;\n if (userField && resolvedUserType?.kind !== \"objectReference\") {\n errors.push({\n message: 'Reserved context field \"user\" must be an object reference.',\n path: [\n \"contextType\",\n \"fields\",\n resolvedContextType.value.fields.indexOf(userField),\n \"type\",\n ],\n });\n }\n }\n }\n\n // Validate value type definitions once both namespaces are known.\n for (let i = 0; i < ontology.types.length; i++) {\n const vt = ontology.types[i]!;\n errors.push(...validateTypeDef(vt.type, [\"types\", i, \"type\"], valueTypeNames, objectTypeNames));\n }\n\n // Validate object types\n for (let i = 0; i < ontology.objectTypes.length; i++) {\n const ot = ontology.objectTypes[i]!;\n const otPath = [\"objectTypes\", i] as (string | number)[];\n\n // Validate properties\n errors.push(\n ...validateProperties(ot.properties, [...otPath, \"properties\"], valueTypeNames, objectTypeNames)\n );\n\n // Validate primary key references a valid property\n const propertyNames = new Set(ot.properties.map((p) => p.name));\n if (!propertyNames.has(ot.primaryKey)) {\n errors.push({\n message: `Primary key \"${ot.primaryKey}\" does not reference a valid property.`,\n path: [...otPath, \"primaryKey\"],\n });\n }\n if (ot.title && !propertyNames.has(ot.title)) {\n errors.push({\n message: `Title \"${ot.title}\" does not reference a valid property.`,\n path: [...otPath, \"title\"],\n });\n }\n }\n\n // Validate link types\n const linkIds = new Set<string>();\n const linkNames = new Set<string>();\n for (let i = 0; i < ontology.linkTypes.length; i++) {\n const lt = ontology.linkTypes[i]!;\n const ltPath = [\"linkTypes\", i] as (string | number)[];\n\n if (linkIds.has(lt.id)) {\n errors.push({\n message: `Duplicate link type id: \"${lt.id}\".`,\n path: [...ltPath, \"id\"],\n });\n }\n linkIds.add(lt.id);\n\n // Relationship names from a source object are keyed by target.name.\n const linkName = `${lt.source.objectType}:${lt.target.name}`;\n if (linkNames.has(linkName)) {\n errors.push({\n message: `Duplicate link type target name: \"${lt.target.name}\" on \"${lt.source.objectType}\".`,\n path: [...ltPath, \"target\", \"name\"],\n });\n }\n linkNames.add(linkName);\n\n if (!objectTypeNames.has(lt.source.objectType)) {\n errors.push({\n message: `Source object type \"${lt.source.objectType}\" does not exist.`,\n path: [...ltPath, \"source\", \"objectType\"],\n });\n }\n\n if (!objectTypeNames.has(lt.target.objectType)) {\n errors.push({\n message: `Target object type \"${lt.target.objectType}\" does not exist.`,\n path: [...ltPath, \"target\", \"objectType\"],\n });\n }\n\n const foreignKeyRoot = lt.foreignKey.split(\".\")[0]!;\n const sourceType = ontology.objectTypes.find((candidate) => candidate.name === lt.source.objectType);\n const sourceHasFk =\n sourceType?.properties.some((property) => property.name === foreignKeyRoot) ?? false;\n if (sourceType && !sourceHasFk) {\n errors.push({\n message: `Foreign key \"${lt.foreignKey}\" does not exist on source object type \"${lt.source.objectType}\" for link \"${lt.id}\".`,\n path: [...ltPath, \"foreignKey\"],\n });\n }\n }\n\n const actionNames = new Set<string>();\n for (let i = 0; i < ontology.actionTypes.length; i++) {\n const action = ontology.actionTypes[i]!;\n const actionPath = [\"actionTypes\", i] as (string | number)[];\n\n if (actionNames.has(action.name)) {\n errors.push({\n message: `Duplicate action type name: \"${action.name}\".`,\n path: [...actionPath, \"name\"],\n });\n }\n actionNames.add(action.name);\n\n errors.push(\n ...validateAction(\n action,\n actionPath,\n valueTypes,\n objectTypes,\n ontology.linkTypes,\n ontology.contextType\n )\n );\n }\n\n const queryFunctionTypeNames = new Set<string>();\n for (let i = 0; i < ontology.queryFunctionTypes.length; i++) {\n const queryFunctionType = ontology.queryFunctionTypes[i]!;\n const queryFunctionTypePath = [\"queryFunctionTypes\", i] as (string | number)[];\n\n if (queryFunctionTypeNames.has(queryFunctionType.name)) {\n errors.push({\n message: `Duplicate query function type name: \"${queryFunctionType.name}\".`,\n path: [...queryFunctionTypePath, \"name\"],\n });\n }\n queryFunctionTypeNames.add(queryFunctionType.name);\n\n errors.push(\n ...validateQueryFunctionType(\n queryFunctionType,\n queryFunctionTypePath,\n valueTypeNames,\n objectTypeNames\n )\n );\n }\n\n return errors.length === 0 ? { kind: \"ok\", value: undefined } : { kind: \"err\", value: errors };\n}\n"],"mappings":"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"}
|
package/lib/json/index.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { OntologyIR } from "../ir/generated/types.js";
|
|
2
|
+
import { OntologyActionParametersTarget, OntologyObjectTarget, OntologyQueryFunctionParametersTarget, OntologyQueryFunctionReturnTarget, OntologyTypeTarget } from "../utils/targets.js";
|
|
3
|
+
//#region src/json/index.d.ts
|
|
3
4
|
export type JsonTarget<IR extends OntologyIR> = OntologyTypeTarget<IR> | OntologyObjectTarget<IR> | OntologyActionParametersTarget<IR> | OntologyQueryFunctionParametersTarget<IR> | OntologyQueryFunctionReturnTarget<IR>;
|
|
4
5
|
export declare function decode<IR extends OntologyIR>(opts: {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
ir: IR;
|
|
7
|
+
target: JsonTarget<IR>;
|
|
8
|
+
value: unknown;
|
|
8
9
|
}): unknown;
|
|
9
10
|
export declare function encode<IR extends OntologyIR>(opts: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
ir: IR;
|
|
12
|
+
target: JsonTarget<IR>;
|
|
13
|
+
value: unknown;
|
|
13
14
|
}): unknown;
|
|
15
|
+
//#endregion
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/json/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/json/index.ts"],"mappings":";;;YAaY,WAAW,WAAW,cAC5B,mBAAmB,MACnB,qBAAqB,MACrB,+BAA+B,MAC/B,sCAAsC,MACtC,kCAAkC;wBAiLxB,OAAO,WAAW,YAAY;EAC1C,IAAI;EACJ,QAAQ,WAAW;EACnB;;wBA2BY,OAAO,WAAW,YAAY;EAC1C,IAAI;EACJ,QAAQ,WAAW;EACnB"}
|
package/lib/json/index.js
CHANGED
|
@@ -1,166 +1,132 @@
|
|
|
1
|
+
import { resolveType } from "../utils/types.js";
|
|
1
2
|
import { invariant } from "@bobbyfidz/panic";
|
|
2
3
|
import { Temporal } from "temporal-polyfill";
|
|
3
|
-
|
|
4
|
+
//#region src/json/index.ts
|
|
4
5
|
function assertRecord(value) {
|
|
5
|
-
|
|
6
|
+
invariant(typeof value === "object" && value !== null && !Array.isArray(value), "Expected JSON object.");
|
|
6
7
|
}
|
|
7
8
|
function assertArray(value) {
|
|
8
|
-
|
|
9
|
+
invariant(Array.isArray(value), "Expected JSON array.");
|
|
9
10
|
}
|
|
10
11
|
function getNamedType(ir, name) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const namedType = ir.types.find((candidate) => candidate.name === name);
|
|
13
|
+
invariant(namedType, `Unknown ontology type "${name}".`);
|
|
14
|
+
return namedType.type;
|
|
14
15
|
}
|
|
15
16
|
function getObjectType(ir, name) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const objectType = ir.objectTypes.find((candidate) => candidate.name === name);
|
|
18
|
+
invariant(objectType, `Unknown object type "${name}".`);
|
|
19
|
+
return objectType;
|
|
19
20
|
}
|
|
20
21
|
function getActionType(ir, name) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const actionType = ir.actionTypes.find((candidate) => candidate.name === name);
|
|
23
|
+
invariant(actionType, `Unknown action type "${name}".`);
|
|
24
|
+
return actionType;
|
|
24
25
|
}
|
|
25
26
|
function getQueryFunctionType(ir, name) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const queryFunctionType = ir.queryFunctionTypes.find((candidate) => candidate.name === name);
|
|
28
|
+
invariant(queryFunctionType, `Unknown query function type "${name}".`);
|
|
29
|
+
return queryFunctionType;
|
|
29
30
|
}
|
|
30
31
|
function resolveTargetType(ir, target) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
case "queryFunctionReturn":
|
|
39
|
-
return getQueryFunctionType(ir, target.queryFunctionType).returnType;
|
|
40
|
-
}
|
|
32
|
+
switch (target.kind) {
|
|
33
|
+
case "type": return getNamedType(ir, target.name);
|
|
34
|
+
case "object":
|
|
35
|
+
case "actionParameters":
|
|
36
|
+
case "queryFunctionParameters": return;
|
|
37
|
+
case "queryFunctionReturn": return getQueryFunctionType(ir, target.queryFunctionType).returnType;
|
|
38
|
+
}
|
|
41
39
|
}
|
|
42
40
|
function decodeValue(ir, type, value, normalizeOptionalNull = false) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
]));
|
|
65
|
-
case "struct":
|
|
66
|
-
assertRecord(value);
|
|
67
|
-
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
68
|
-
const field = resolvedType.value.fields.find((candidate) => candidate.name === key);
|
|
69
|
-
return [
|
|
70
|
-
key,
|
|
71
|
-
field
|
|
72
|
-
? decodeValue(ir, field.type, entry, normalizeOptionalNull)
|
|
73
|
-
: entry,
|
|
74
|
-
];
|
|
75
|
-
}));
|
|
76
|
-
default:
|
|
77
|
-
return value;
|
|
78
|
-
}
|
|
41
|
+
const resolvedType = resolveType(ir, type);
|
|
42
|
+
if (value === void 0) return void 0;
|
|
43
|
+
if (value === null) return normalizeOptionalNull && resolvedType.kind === "optional" ? void 0 : null;
|
|
44
|
+
switch (resolvedType.kind) {
|
|
45
|
+
case "timestamp": return typeof value === "string" ? Temporal.Instant.from(value) : value;
|
|
46
|
+
case "date": return typeof value === "string" ? Temporal.PlainDate.from(value) : value;
|
|
47
|
+
case "optional": return decodeValue(ir, resolvedType.value.type, value, normalizeOptionalNull);
|
|
48
|
+
case "list":
|
|
49
|
+
assertArray(value);
|
|
50
|
+
return value.map((item) => decodeValue(ir, resolvedType.value.elementType, item, normalizeOptionalNull));
|
|
51
|
+
case "map":
|
|
52
|
+
assertRecord(value);
|
|
53
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, decodeValue(ir, resolvedType.value.valueType, entry, normalizeOptionalNull)]));
|
|
54
|
+
case "struct":
|
|
55
|
+
assertRecord(value);
|
|
56
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
57
|
+
const field = resolvedType.value.fields.find((candidate) => candidate.name === key);
|
|
58
|
+
return [key, field ? decodeValue(ir, field.type, entry, normalizeOptionalNull) : entry];
|
|
59
|
+
}));
|
|
60
|
+
default: return value;
|
|
61
|
+
}
|
|
79
62
|
}
|
|
80
63
|
function encodeValue(ir, type, value) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
assertRecord(value);
|
|
104
|
-
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
105
|
-
const field = resolvedType.value.fields.find((candidate) => candidate.name === key);
|
|
106
|
-
return [key, field ? encodeValue(ir, field.type, entry) : entry];
|
|
107
|
-
}));
|
|
108
|
-
default:
|
|
109
|
-
return value;
|
|
110
|
-
}
|
|
64
|
+
if (value === void 0 || value === null) return value;
|
|
65
|
+
const resolvedType = resolveType(ir, type);
|
|
66
|
+
switch (resolvedType.kind) {
|
|
67
|
+
case "timestamp":
|
|
68
|
+
case "date":
|
|
69
|
+
invariant(typeof value === "object" && value !== null && typeof value.toString === "function", `Expected ${resolvedType.kind} value.`);
|
|
70
|
+
return value.toString();
|
|
71
|
+
case "optional": return encodeValue(ir, resolvedType.value.type, value);
|
|
72
|
+
case "list":
|
|
73
|
+
assertArray(value);
|
|
74
|
+
return value.map((item) => encodeValue(ir, resolvedType.value.elementType, item));
|
|
75
|
+
case "map":
|
|
76
|
+
assertRecord(value);
|
|
77
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, encodeValue(ir, resolvedType.value.valueType, entry)]));
|
|
78
|
+
case "struct":
|
|
79
|
+
assertRecord(value);
|
|
80
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
81
|
+
const field = resolvedType.value.fields.find((candidate) => candidate.name === key);
|
|
82
|
+
return [key, field ? encodeValue(ir, field.type, entry) : entry];
|
|
83
|
+
}));
|
|
84
|
+
default: return value;
|
|
85
|
+
}
|
|
111
86
|
}
|
|
112
87
|
function decodeObject(ir, objectTypeName, value) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
88
|
+
assertRecord(value);
|
|
89
|
+
const objectType = getObjectType(ir, objectTypeName);
|
|
90
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
91
|
+
const property = objectType.properties.find((candidate) => candidate.name === key);
|
|
92
|
+
return [key, property ? decodeValue(ir, property.type, entry, true) : entry];
|
|
93
|
+
}));
|
|
119
94
|
}
|
|
120
95
|
function encodeObject(ir, objectTypeName, value) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
96
|
+
assertRecord(value);
|
|
97
|
+
const objectType = getObjectType(ir, objectTypeName);
|
|
98
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
99
|
+
const property = objectType.properties.find((candidate) => candidate.name === key);
|
|
100
|
+
return [key, property ? encodeValue(ir, property.type, entry) : entry];
|
|
101
|
+
}));
|
|
127
102
|
}
|
|
128
103
|
function decodeParameters(ir, parameters, value) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
104
|
+
assertRecord(value);
|
|
105
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
106
|
+
const parameter = parameters.find((candidate) => candidate.name === key);
|
|
107
|
+
return [key, parameter ? decodeValue(ir, parameter.type, entry) : entry];
|
|
108
|
+
}));
|
|
134
109
|
}
|
|
135
110
|
function encodeParameters(ir, parameters, value) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
111
|
+
assertRecord(value);
|
|
112
|
+
return Object.fromEntries(Object.entries(value).map(([key, entry]) => {
|
|
113
|
+
const parameter = parameters.find((candidate) => candidate.name === key);
|
|
114
|
+
return [key, parameter ? encodeValue(ir, parameter.type, entry) : entry];
|
|
115
|
+
}));
|
|
141
116
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return decodeParameters(opts.ir, getActionType(opts.ir, opts.target.actionType).parameters, opts.value);
|
|
148
|
-
}
|
|
149
|
-
if (opts.target.kind === "queryFunctionParameters") {
|
|
150
|
-
return decodeParameters(opts.ir, getQueryFunctionType(opts.ir, opts.target.queryFunctionType).parameters, opts.value);
|
|
151
|
-
}
|
|
152
|
-
return decodeValue(opts.ir, resolveTargetType(opts.ir, opts.target), opts.value, opts.target.kind === "queryFunctionReturn");
|
|
117
|
+
function decode(opts) {
|
|
118
|
+
if (opts.target.kind === "object") return decodeObject(opts.ir, opts.target.name, opts.value);
|
|
119
|
+
if (opts.target.kind === "actionParameters") return decodeParameters(opts.ir, getActionType(opts.ir, opts.target.actionType).parameters, opts.value);
|
|
120
|
+
if (opts.target.kind === "queryFunctionParameters") return decodeParameters(opts.ir, getQueryFunctionType(opts.ir, opts.target.queryFunctionType).parameters, opts.value);
|
|
121
|
+
return decodeValue(opts.ir, resolveTargetType(opts.ir, opts.target), opts.value, opts.target.kind === "queryFunctionReturn");
|
|
153
122
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
return encodeParameters(opts.ir, getActionType(opts.ir, opts.target.actionType).parameters, opts.value);
|
|
160
|
-
}
|
|
161
|
-
if (opts.target.kind === "queryFunctionParameters") {
|
|
162
|
-
return encodeParameters(opts.ir, getQueryFunctionType(opts.ir, opts.target.queryFunctionType).parameters, opts.value);
|
|
163
|
-
}
|
|
164
|
-
return encodeValue(opts.ir, resolveTargetType(opts.ir, opts.target), opts.value);
|
|
123
|
+
function encode(opts) {
|
|
124
|
+
if (opts.target.kind === "object") return encodeObject(opts.ir, opts.target.name, opts.value);
|
|
125
|
+
if (opts.target.kind === "actionParameters") return encodeParameters(opts.ir, getActionType(opts.ir, opts.target.actionType).parameters, opts.value);
|
|
126
|
+
if (opts.target.kind === "queryFunctionParameters") return encodeParameters(opts.ir, getQueryFunctionType(opts.ir, opts.target.queryFunctionType).parameters, opts.value);
|
|
127
|
+
return encodeValue(opts.ir, resolveTargetType(opts.ir, opts.target), opts.value);
|
|
165
128
|
}
|
|
129
|
+
//#endregion
|
|
130
|
+
export { decode, encode };
|
|
131
|
+
|
|
166
132
|
//# sourceMappingURL=index.js.map
|
package/lib/json/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/json/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/json/index.ts"],"sourcesContent":["import { invariant } from \"@bobbyfidz/panic\";\nimport { Temporal } from \"temporal-polyfill\";\nimport { resolveType } from \"../utils/types.js\";\nimport type { OntologyIR, TypeDef } from \"../ir/generated/types.js\";\nimport type { OntologyObject } from \"../live/objects/OntologyObject.js\";\nimport type {\n OntologyActionParametersTarget,\n OntologyObjectTarget,\n OntologyQueryFunctionParametersTarget,\n OntologyQueryFunctionReturnTarget,\n OntologyTypeTarget,\n} from \"../utils/targets.js\";\n\nexport type JsonTarget<IR extends OntologyIR> =\n | OntologyTypeTarget<IR>\n | OntologyObjectTarget<IR>\n | OntologyActionParametersTarget<IR>\n | OntologyQueryFunctionParametersTarget<IR>\n | OntologyQueryFunctionReturnTarget<IR>;\n\nfunction assertRecord(value: unknown): asserts value is OntologyObject {\n invariant(typeof value === \"object\" && value !== null && !Array.isArray(value), \"Expected JSON object.\");\n}\n\nfunction assertArray(value: unknown): asserts value is unknown[] {\n invariant(Array.isArray(value), \"Expected JSON array.\");\n}\n\nfunction getNamedType(ir: OntologyIR, name: string): TypeDef {\n const namedType = ir.types.find((candidate) => candidate.name === name);\n invariant(namedType, `Unknown ontology type \"${name}\".`);\n return namedType.type;\n}\n\nfunction getObjectType(ir: OntologyIR, name: string): OntologyIR[\"objectTypes\"][number] {\n const objectType = ir.objectTypes.find((candidate) => candidate.name === name);\n invariant(objectType, `Unknown object type \"${name}\".`);\n return objectType;\n}\n\nfunction getActionType(ir: OntologyIR, name: string): OntologyIR[\"actionTypes\"][number] {\n const actionType = ir.actionTypes.find((candidate) => candidate.name === name);\n invariant(actionType, `Unknown action type \"${name}\".`);\n return actionType;\n}\n\nfunction getQueryFunctionType(ir: OntologyIR, name: string): OntologyIR[\"queryFunctionTypes\"][number] {\n const queryFunctionType = ir.queryFunctionTypes.find((candidate) => candidate.name === name);\n invariant(queryFunctionType, `Unknown query function type \"${name}\".`);\n return queryFunctionType;\n}\n\nfunction resolveTargetType<IR extends OntologyIR>(ir: IR, target: JsonTarget<IR>): TypeDef | undefined {\n switch (target.kind) {\n case \"type\":\n return getNamedType(ir, target.name);\n case \"object\":\n case \"actionParameters\":\n case \"queryFunctionParameters\":\n return undefined;\n case \"queryFunctionReturn\":\n return getQueryFunctionType(ir, target.queryFunctionType).returnType;\n }\n}\n\nfunction decodeValue(ir: OntologyIR, type: TypeDef, value: unknown, normalizeOptionalNull = false): unknown {\n const resolvedType = resolveType(ir, type);\n if (value === undefined) return undefined;\n if (value === null) {\n return normalizeOptionalNull && resolvedType.kind === \"optional\" ? undefined : null;\n }\n\n switch (resolvedType.kind) {\n case \"timestamp\":\n return typeof value === \"string\" ? Temporal.Instant.from(value) : value;\n case \"date\":\n return typeof value === \"string\" ? Temporal.PlainDate.from(value) : value;\n case \"optional\":\n return decodeValue(ir, resolvedType.value.type, value, normalizeOptionalNull);\n case \"list\":\n assertArray(value);\n return value.map((item) =>\n decodeValue(ir, resolvedType.value.elementType, item, normalizeOptionalNull)\n );\n case \"map\":\n assertRecord(value);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => [\n key,\n decodeValue(ir, resolvedType.value.valueType, entry, normalizeOptionalNull),\n ])\n );\n case \"struct\":\n assertRecord(value);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => {\n const field = resolvedType.value.fields.find((candidate) => candidate.name === key);\n return [key, field ? decodeValue(ir, field.type, entry, normalizeOptionalNull) : entry];\n })\n );\n default:\n return value;\n }\n}\n\nfunction encodeValue(ir: OntologyIR, type: TypeDef, value: unknown): unknown {\n if (value === undefined || value === null) return value;\n const resolvedType = resolveType(ir, type);\n\n switch (resolvedType.kind) {\n case \"timestamp\":\n case \"date\":\n invariant(\n typeof value === \"object\" &&\n value !== null &&\n typeof (value as { toString?: unknown }).toString === \"function\",\n `Expected ${resolvedType.kind} value.`\n );\n return (value as { toString: () => string }).toString();\n case \"optional\":\n return encodeValue(ir, resolvedType.value.type, value);\n case \"list\":\n assertArray(value);\n return value.map((item) => encodeValue(ir, resolvedType.value.elementType, item));\n case \"map\":\n assertRecord(value);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => [\n key,\n encodeValue(ir, resolvedType.value.valueType, entry),\n ])\n );\n case \"struct\":\n assertRecord(value);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => {\n const field = resolvedType.value.fields.find((candidate) => candidate.name === key);\n return [key, field ? encodeValue(ir, field.type, entry) : entry];\n })\n );\n default:\n return value;\n }\n}\n\nfunction decodeObject(ir: OntologyIR, objectTypeName: string, value: unknown): OntologyObject {\n assertRecord(value);\n const objectType = getObjectType(ir, objectTypeName);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => {\n const property = objectType.properties.find((candidate) => candidate.name === key);\n return [key, property ? decodeValue(ir, property.type, entry, true) : entry];\n })\n );\n}\n\nfunction encodeObject(ir: OntologyIR, objectTypeName: string, value: unknown): OntologyObject {\n assertRecord(value);\n const objectType = getObjectType(ir, objectTypeName);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => {\n const property = objectType.properties.find((candidate) => candidate.name === key);\n return [key, property ? encodeValue(ir, property.type, entry) : entry];\n })\n );\n}\n\nfunction decodeParameters(\n ir: OntologyIR,\n parameters: { name: string; type: TypeDef }[],\n value: unknown\n): OntologyObject {\n assertRecord(value);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => {\n const parameter = parameters.find((candidate) => candidate.name === key);\n return [key, parameter ? decodeValue(ir, parameter.type, entry) : entry];\n })\n );\n}\n\nfunction encodeParameters(\n ir: OntologyIR,\n parameters: { name: string; type: TypeDef }[],\n value: unknown\n): OntologyObject {\n assertRecord(value);\n return Object.fromEntries(\n Object.entries(value).map(([key, entry]) => {\n const parameter = parameters.find((candidate) => candidate.name === key);\n return [key, parameter ? encodeValue(ir, parameter.type, entry) : entry];\n })\n );\n}\n\nexport function decode<IR extends OntologyIR>(opts: {\n ir: IR;\n target: JsonTarget<IR>;\n value: unknown;\n}): unknown {\n if (opts.target.kind === \"object\") {\n return decodeObject(opts.ir, opts.target.name, opts.value);\n }\n if (opts.target.kind === \"actionParameters\") {\n return decodeParameters(\n opts.ir,\n getActionType(opts.ir, opts.target.actionType).parameters,\n opts.value\n );\n }\n if (opts.target.kind === \"queryFunctionParameters\") {\n return decodeParameters(\n opts.ir,\n getQueryFunctionType(opts.ir, opts.target.queryFunctionType).parameters,\n opts.value\n );\n }\n return decodeValue(\n opts.ir,\n resolveTargetType(opts.ir, opts.target)!,\n opts.value,\n opts.target.kind === \"queryFunctionReturn\"\n );\n}\n\nexport function encode<IR extends OntologyIR>(opts: {\n ir: IR;\n target: JsonTarget<IR>;\n value: unknown;\n}): unknown {\n if (opts.target.kind === \"object\") {\n return encodeObject(opts.ir, opts.target.name, opts.value);\n }\n if (opts.target.kind === \"actionParameters\") {\n return encodeParameters(\n opts.ir,\n getActionType(opts.ir, opts.target.actionType).parameters,\n opts.value\n );\n }\n if (opts.target.kind === \"queryFunctionParameters\") {\n return encodeParameters(\n opts.ir,\n getQueryFunctionType(opts.ir, opts.target.queryFunctionType).parameters,\n opts.value\n );\n }\n return encodeValue(opts.ir, resolveTargetType(opts.ir, opts.target)!, opts.value);\n}\n"],"mappings":"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"}
|
package/lib/lenses.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Lens, ObjectTypeDef } from "./ir/generated/types.js";
|
|
2
|
+
import "./ir/index.js";
|
|
3
|
+
//#region src/lenses.d.ts
|
|
2
4
|
export interface ApplyObjectTypeLensOptions {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
name: string;
|
|
6
|
+
displayName?: string;
|
|
7
|
+
pluralDisplayName?: string;
|
|
6
8
|
}
|
|
7
9
|
export declare function applyLensToObjectType(source: ObjectTypeDef, lens: Lens, options: ApplyObjectTypeLensOptions): ObjectTypeDef;
|
|
8
10
|
export declare function applyLensToObject<Source extends Record<string, unknown>, Target extends Record<string, unknown>>(source: Source, lens: Lens): Target;
|
|
@@ -15,4 +17,5 @@ export declare function applyLensToObject<Source extends Record<string, unknown>
|
|
|
15
17
|
* unsupported query rewrites at the expression or query-plan level.
|
|
16
18
|
*/
|
|
17
19
|
export declare function mapTargetPathToSourceWithLens(path: readonly string[], lens: Lens): string[];
|
|
20
|
+
//#endregion
|
|
18
21
|
//# sourceMappingURL=lenses.d.ts.map
|
package/lib/lenses.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lenses.d.ts","
|
|
1
|
+
{"version":3,"file":"lenses.d.ts","names":[],"sources":["../src/lenses.ts"],"mappings":";;;iBAIiB;EACb;EACA;EACA;;wBAiDY,sBACZ,QAAQ,eACR,MAAM,MACN,SAAS,6BACV;wBAoDa,kBACZ,eAAe,yBACf,eAAe,yBACjB,QAAQ,QAAQ,MAAM,OAAO;;;;;;;;;wBA8Bf,8BAA8B,yBAAyB,MAAM"}
|