@vertesia/workflow 1.3.0 → 1.4.0-dev.20260615.042549Z
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -2
- package/lib/{types/activities → activities}/advanced/createDocumentTypeFromInteractionRun.d.ts +2 -2
- package/lib/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/advanced/createDocumentTypeFromInteractionRun.js +9 -9
- package/lib/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
- package/lib/{types/activities → activities}/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +2 -2
- package/lib/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/advanced/createOrUpdateDocumentFromInteractionRun.js +29 -22
- package/lib/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
- package/lib/{types/activities → activities}/advanced/updateDocumentFromInteractionRun.d.ts +1 -1
- package/lib/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
- package/lib/activities/advanced/updateDocumentFromInteractionRun.js +16 -0
- package/lib/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
- package/lib/{types/activities → activities}/chunkDocument.d.ts +3 -3
- package/lib/activities/chunkDocument.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/chunkDocument.js +38 -33
- package/lib/activities/chunkDocument.js.map +1 -0
- package/lib/{types/activities → activities}/createDocumentFromOther.d.ts +1 -1
- package/lib/activities/createDocumentFromOther.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/createDocumentFromOther.js +15 -13
- package/lib/activities/createDocumentFromOther.js.map +1 -0
- package/lib/{types/activities → activities}/executeInteraction.d.ts +19 -10
- package/lib/activities/executeInteraction.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/executeInteraction.js +97 -78
- package/lib/activities/executeInteraction.js.map +1 -0
- package/lib/{types/activities → activities}/executeRemoteActivity.d.ts +4 -4
- package/lib/activities/executeRemoteActivity.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/executeRemoteActivity.js +48 -23
- package/lib/activities/executeRemoteActivity.js.map +1 -0
- package/lib/{types/activities → activities}/extractDocumentText.d.ts +3 -3
- package/lib/activities/extractDocumentText.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/extractDocumentText.js +65 -52
- package/lib/activities/extractDocumentText.js.map +1 -0
- package/lib/{types/activities → activities}/generateDocumentProperties.d.ts +4 -4
- package/lib/activities/generateDocumentProperties.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/generateDocumentProperties.js +37 -33
- package/lib/activities/generateDocumentProperties.js.map +1 -0
- package/lib/{types/activities → activities}/generateEmbeddings.d.ts +3 -3
- package/lib/activities/generateEmbeddings.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/generateEmbeddings.js +80 -80
- package/lib/activities/generateEmbeddings.js.map +1 -0
- package/lib/{types/activities → activities}/generateOrAssignContentType.d.ts +4 -4
- package/lib/activities/generateOrAssignContentType.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/generateOrAssignContentType.js +51 -49
- package/lib/activities/generateOrAssignContentType.js.map +1 -0
- package/lib/{types/activities → activities}/getObjectFromStore.d.ts +1 -1
- package/lib/activities/getObjectFromStore.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/getObjectFromStore.js +4 -3
- package/lib/activities/getObjectFromStore.js.map +1 -0
- package/lib/{types/activities → activities}/handleError.d.ts +1 -1
- package/lib/activities/handleError.d.ts.map +1 -0
- package/lib/activities/handleError.js +37 -0
- package/lib/activities/handleError.js.map +1 -0
- package/lib/activities/index-dsl.d.ts +31 -0
- package/lib/activities/index-dsl.d.ts.map +1 -0
- package/lib/activities/index-dsl.js +29 -0
- package/lib/activities/index-dsl.js.map +1 -0
- package/lib/{types/activities → activities}/index.d.ts +1 -1
- package/lib/activities/index.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/index.js +1 -1
- package/lib/activities/index.js.map +1 -0
- package/lib/{types/activities → activities}/loadChildWorkflowSpec.d.ts +1 -1
- package/lib/activities/loadChildWorkflowSpec.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/loadChildWorkflowSpec.js +4 -2
- package/lib/activities/loadChildWorkflowSpec.js.map +1 -0
- package/lib/{types/activities → activities}/media/prepareAudio.d.ts +1 -1
- package/lib/activities/media/prepareAudio.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/prepareAudio.js +27 -23
- package/lib/activities/media/prepareAudio.js.map +1 -0
- package/lib/{types/activities → activities}/media/prepareVideo.d.ts +2 -2
- package/lib/activities/media/prepareVideo.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/prepareVideo.js +72 -54
- package/lib/activities/media/prepareVideo.js.map +1 -0
- package/lib/{types/activities → activities}/media/probeMediaStreams.d.ts +2 -3
- package/lib/activities/media/probeMediaStreams.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/probeMediaStreams.js +7 -5
- package/lib/activities/media/probeMediaStreams.js.map +1 -0
- package/lib/{types/activities → activities}/media/processPdfWithTextract.d.ts +3 -3
- package/lib/activities/media/processPdfWithTextract.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/processPdfWithTextract.js +43 -26
- package/lib/activities/media/processPdfWithTextract.js.map +1 -0
- package/lib/{types/activities → activities}/media/saveGladiaTranscription.d.ts +2 -2
- package/lib/activities/media/saveGladiaTranscription.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/saveGladiaTranscription.js +35 -25
- package/lib/activities/media/saveGladiaTranscription.js.map +1 -0
- package/lib/{types/activities → activities}/media/transcribeMediaWithGladia.d.ts +2 -2
- package/lib/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/transcribeMediaWithGladia.js +26 -21
- package/lib/activities/media/transcribeMediaWithGladia.js.map +1 -0
- package/lib/{types/activities → activities}/mergeChildArtifacts.d.ts +1 -1
- package/lib/activities/mergeChildArtifacts.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/mergeChildArtifacts.js +27 -26
- package/lib/activities/mergeChildArtifacts.js.map +1 -0
- package/lib/{types/activities → activities}/notifyWebhook.d.ts +6 -5
- package/lib/activities/notifyWebhook.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/notifyWebhook.js +20 -17
- package/lib/activities/notifyWebhook.js.map +1 -0
- package/lib/{types/activities → activities}/rateLimiter.d.ts +1 -1
- package/lib/activities/rateLimiter.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/rateLimiter.js +4 -3
- package/lib/activities/rateLimiter.js.map +1 -0
- package/lib/{types/activities → activities}/renditions/generateImageRendition.d.ts +3 -3
- package/lib/activities/renditions/generateImageRendition.d.ts.map +1 -0
- package/lib/activities/renditions/generateImageRendition.js +75 -0
- package/lib/activities/renditions/generateImageRendition.js.map +1 -0
- package/lib/{types/activities → activities}/renditions/generateVideoRendition.d.ts +3 -3
- package/lib/activities/renditions/generateVideoRendition.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/renditions/generateVideoRendition.js +51 -54
- package/lib/activities/renditions/generateVideoRendition.js.map +1 -0
- package/lib/{types/activities → activities}/resolveRemoteActivities.d.ts +3 -4
- package/lib/activities/resolveRemoteActivities.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/resolveRemoteActivities.js +16 -15
- package/lib/activities/resolveRemoteActivities.js.map +1 -0
- package/lib/{types/activities → activities}/setDocumentStatus.d.ts +1 -1
- package/lib/activities/setDocumentStatus.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/setDocumentStatus.js +5 -3
- package/lib/activities/setDocumentStatus.js.map +1 -0
- package/lib/{types/bulk-import.d.ts → bulk-import.d.ts} +10 -1
- package/lib/bulk-import.d.ts.map +1 -0
- package/lib/bulk-import.js.map +1 -0
- package/lib/{types/conversion → conversion}/TextractProcessor.d.ts +7 -4
- package/lib/conversion/TextractProcessor.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/TextractProcessor.js +38 -38
- package/lib/conversion/TextractProcessor.js.map +1 -0
- package/lib/conversion/image.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/image.js +35 -35
- package/lib/conversion/image.js.map +1 -0
- package/lib/conversion/markitdown.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/markitdown.js +11 -11
- package/lib/conversion/markitdown.js.map +1 -0
- package/lib/conversion/mutool.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/mutool.js +19 -24
- package/lib/conversion/mutool.js.map +1 -0
- package/lib/conversion/pandoc.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/pandoc.js +11 -11
- package/lib/conversion/pandoc.js.map +1 -0
- package/lib/dsl/conditions.d.ts +2 -0
- package/lib/dsl/conditions.d.ts.map +1 -0
- package/lib/dsl/conditions.js +90 -0
- package/lib/dsl/conditions.js.map +1 -0
- package/lib/{types/dsl → dsl}/dsl-workflow.d.ts +2 -2
- package/lib/dsl/dsl-workflow.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/dsl-workflow.js +93 -65
- package/lib/dsl/dsl-workflow.js.map +1 -0
- package/lib/dsl/dslProxyActivities.d.ts +7 -0
- package/lib/dsl/dslProxyActivities.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/dslProxyActivities.js +10 -1
- package/lib/dsl/dslProxyActivities.js.map +1 -0
- package/lib/dsl/projections.d.ts +4 -0
- package/lib/dsl/projections.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/projections.js +22 -8
- package/lib/dsl/projections.js.map +1 -0
- package/lib/{types/dsl → dsl}/setup/ActivityContext.d.ts +4 -4
- package/lib/dsl/setup/ActivityContext.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/ActivityContext.js +22 -25
- package/lib/dsl/setup/ActivityContext.js.map +1 -0
- package/lib/{types/dsl → dsl}/setup/fetch/DataProvider.d.ts +3 -3
- package/lib/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/fetch/DataProvider.js +2 -1
- package/lib/dsl/setup/fetch/DataProvider.js.map +1 -0
- package/lib/dsl/setup/fetch/index.d.ts +6 -0
- package/lib/dsl/setup/fetch/index.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/fetch/index.js +1 -1
- package/lib/dsl/setup/fetch/index.js.map +1 -0
- package/lib/{types/dsl → dsl}/setup/fetch/providers.d.ts +6 -6
- package/lib/dsl/setup/fetch/providers.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/fetch/providers.js +30 -16
- package/lib/dsl/setup/fetch/providers.js.map +1 -0
- package/lib/dsl/test/test-child-workflow.d.ts +4 -0
- package/lib/dsl/test/test-child-workflow.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/test/test-child-workflow.js +1 -1
- package/lib/dsl/test/test-child-workflow.js.map +1 -0
- package/lib/{types/dsl → dsl}/validation.d.ts +1 -1
- package/lib/dsl/validation.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/validation.js +8 -8
- package/lib/dsl/validation.js.map +1 -0
- package/lib/{types/dsl → dsl}/vars.d.ts +16 -16
- package/lib/dsl/vars.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/vars.js +20 -15
- package/lib/dsl/vars.js.map +1 -0
- package/lib/dsl/walk.d.ts +18 -0
- package/lib/dsl/walk.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/walk.js +37 -16
- package/lib/dsl/walk.js.map +1 -0
- package/lib/dsl.d.ts +4 -0
- package/lib/dsl.d.ts.map +1 -0
- package/lib/dsl.js +4 -0
- package/lib/dsl.js.map +1 -0
- package/lib/{types/errors.d.ts → errors.d.ts} +2 -2
- package/lib/errors.d.ts.map +1 -0
- package/lib/{esm/errors.js → errors.js} +22 -17
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +36 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +37 -0
- package/lib/index.js.map +1 -0
- package/lib/result-types.d.ts.map +1 -0
- package/lib/result-types.js.map +1 -0
- package/lib/security/ssrf.d.ts.map +1 -0
- package/lib/security/ssrf.js.map +1 -0
- package/lib/system/notifyWebhookWorkflow.d.ts +8 -0
- package/lib/system/notifyWebhookWorkflow.d.ts.map +1 -0
- package/lib/{esm/system → system}/notifyWebhookWorkflow.js +13 -12
- package/lib/system/notifyWebhookWorkflow.js.map +1 -0
- package/lib/{types/system → system}/recalculateEmbeddingsWorkflow.d.ts +1 -1
- package/lib/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
- package/lib/{esm/system → system}/recalculateEmbeddingsWorkflow.js +7 -7
- package/lib/system/recalculateEmbeddingsWorkflow.js.map +1 -0
- package/lib/utils/activity-info.d.ts +12 -0
- package/lib/utils/activity-info.d.ts.map +1 -0
- package/lib/utils/activity-info.js +15 -0
- package/lib/utils/activity-info.js.map +1 -0
- package/lib/{types/utils → utils}/auth.d.ts +1 -1
- package/lib/utils/auth.d.ts.map +1 -0
- package/lib/utils/auth.js.map +1 -0
- package/lib/{types/utils → utils}/blobs.d.ts +1 -1
- package/lib/utils/blobs.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/blobs.js +17 -16
- package/lib/utils/blobs.js.map +1 -0
- package/lib/utils/chunks.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/chunks.js +1 -1
- package/lib/utils/chunks.js.map +1 -0
- package/lib/utils/client.d.ts +8 -0
- package/lib/utils/client.d.ts.map +1 -0
- package/lib/utils/client.js +64 -0
- package/lib/utils/client.js.map +1 -0
- package/lib/{types/utils → utils}/expand-vars.d.ts +1 -1
- package/lib/utils/expand-vars.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/expand-vars.js +4 -1
- package/lib/utils/expand-vars.js.map +1 -0
- package/lib/{types/utils → utils}/renditions.d.ts +2 -2
- package/lib/utils/renditions.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/renditions.js +29 -18
- package/lib/utils/renditions.js.map +1 -0
- package/lib/{types/utils → utils}/storage.d.ts +2 -2
- package/lib/utils/storage.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/storage.js +13 -12
- package/lib/utils/storage.js.map +1 -0
- package/lib/{types/utils → utils}/text-preview-utils.d.ts +2 -2
- package/lib/utils/text-preview-utils.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/text-preview-utils.js +4 -4
- package/lib/utils/text-preview-utils.js.map +1 -0
- package/lib/{types/utils → utils}/tokens.d.ts +1 -1
- package/lib/utils/tokens.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/tokens.js +3 -3
- package/lib/utils/tokens.js.map +1 -0
- package/lib/vars.d.ts +3 -0
- package/lib/vars.d.ts.map +1 -0
- package/lib/vars.js +4 -0
- package/lib/vars.js.map +1 -0
- package/lib/workflows-bundle.js +5561 -2815
- package/lib/workflows.d.ts +7 -0
- package/lib/workflows.d.ts.map +1 -0
- package/lib/workflows.js +7 -0
- package/lib/workflows.js.map +1 -0
- package/package.json +47 -88
- package/src/activities/advanced/createDocumentTypeFromInteractionRun.ts +30 -17
- package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +51 -37
- package/src/activities/advanced/updateDocumentFromInteractionRun.ts +12 -11
- package/src/activities/chunkDocument.ts +87 -77
- package/src/activities/createDocumentFromOther.ts +19 -25
- package/src/activities/executeInteraction.test.ts +81 -8
- package/src/activities/executeInteraction.ts +147 -102
- package/src/activities/executeRemoteActivity.test.ts +61 -67
- package/src/activities/executeRemoteActivity.ts +56 -29
- package/src/activities/extractDocumentText.ts +75 -64
- package/src/activities/generateDocumentProperties.ts +69 -50
- package/src/activities/generateEmbeddings.test.ts +114 -0
- package/src/activities/generateEmbeddings.ts +113 -141
- package/src/activities/generateOrAssignContentType.ts +219 -231
- package/src/activities/getObjectFromStore.ts +11 -10
- package/src/activities/handleError.ts +23 -11
- package/src/activities/index-dsl.ts +30 -30
- package/src/activities/index.ts +1 -1
- package/src/activities/loadChildWorkflowSpec.ts +8 -3
- package/src/activities/media/prepareAudio.ts +47 -56
- package/src/activities/media/prepareVideo.ts +107 -122
- package/src/activities/media/probeMediaStreams.test.ts +11 -13
- package/src/activities/media/probeMediaStreams.ts +13 -15
- package/src/activities/media/processPdfWithTextract.ts +65 -46
- package/src/activities/media/saveGladiaTranscription.test.ts +122 -121
- package/src/activities/media/saveGladiaTranscription.ts +52 -26
- package/src/activities/media/transcribeMediaWithGladia.test.ts +173 -165
- package/src/activities/media/transcribeMediaWithGladia.ts +44 -28
- package/src/activities/mergeChildArtifacts.ts +36 -38
- package/src/activities/notifyWebhook.test.ts +223 -217
- package/src/activities/notifyWebhook.ts +67 -40
- package/src/activities/rateLimiter.ts +31 -30
- package/src/activities/renditions/generateImageRendition.ts +54 -64
- package/src/activities/renditions/generateVideoRendition.ts +87 -141
- package/src/activities/resolveRemoteActivities.test.ts +96 -88
- package/src/activities/resolveRemoteActivities.ts +32 -23
- package/src/activities/setDocumentStatus.ts +11 -7
- package/src/bulk-import.ts +11 -5
- package/src/conversion/TextractProcessor.ts +69 -71
- package/src/conversion/image.test.ts +31 -31
- package/src/conversion/image.ts +41 -38
- package/src/conversion/markitdown.ts +11 -11
- package/src/conversion/mutool.test.ts +77 -62
- package/src/conversion/mutool.ts +27 -49
- package/src/conversion/pandoc.test.ts +5 -6
- package/src/conversion/pandoc.ts +11 -11
- package/src/dsl/conditions.ts +35 -17
- package/src/dsl/dsl-workflow.test.ts +49 -39
- package/src/dsl/dsl-workflow.ts +200 -112
- package/src/dsl/dslProxyActivities.test.ts +23 -0
- package/src/dsl/dslProxyActivities.ts +46 -26
- package/src/dsl/ms.d.ts +34 -3
- package/src/dsl/projections.test.ts +108 -100
- package/src/dsl/projections.ts +46 -26
- package/src/dsl/setup/ActivityContext.test.ts +22 -23
- package/src/dsl/setup/ActivityContext.ts +39 -82
- package/src/dsl/setup/fetch/DataProvider.ts +11 -8
- package/src/dsl/setup/fetch/index.ts +6 -8
- package/src/dsl/setup/fetch/providers.ts +38 -24
- package/src/dsl/test/test-child-workflow.ts +3 -2
- package/src/dsl/validation.test.ts +232 -213
- package/src/dsl/validation.ts +17 -12
- package/src/dsl/vars.test.ts +143 -140
- package/src/dsl/vars.ts +61 -54
- package/src/dsl/walk.test.ts +61 -56
- package/src/dsl/walk.ts +61 -35
- package/src/dsl/workflow-exec-child.test.ts +77 -61
- package/src/dsl/workflow-fetch.test.ts +40 -38
- package/src/dsl/workflow-import.test.ts +27 -27
- package/src/dsl/workflow.test.ts +34 -33
- package/src/dsl.ts +3 -4
- package/src/errors.ts +31 -23
- package/src/index.ts +28 -33
- package/src/result-types.ts +6 -9
- package/src/system/notifyWebhookWorkflow.ts +23 -23
- package/src/system/recalculateEmbeddingsWorkflow.ts +14 -17
- package/src/utils/activity-info.ts +15 -0
- package/src/utils/auth.ts +1 -1
- package/src/utils/blobs.ts +19 -18
- package/src/utils/chunks.ts +7 -8
- package/src/utils/client.ts +57 -17
- package/src/utils/expand-vars.ts +9 -6
- package/src/utils/renditions.ts +68 -72
- package/src/utils/storage.ts +18 -22
- package/src/utils/text-preview-utils.ts +9 -19
- package/src/utils/tokens.ts +9 -11
- package/src/vars.ts +2 -2
- package/src/workflows.ts +3 -4
- package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +0 -33
- package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +0 -1
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +0 -73
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +0 -1
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +0 -19
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +0 -1
- package/lib/cjs/activities/chunkDocument.js +0 -111
- package/lib/cjs/activities/chunkDocument.js.map +0 -1
- package/lib/cjs/activities/createDocumentFromOther.js +0 -64
- package/lib/cjs/activities/createDocumentFromOther.js.map +0 -1
- package/lib/cjs/activities/executeInteraction.js +0 -241
- package/lib/cjs/activities/executeInteraction.js.map +0 -1
- package/lib/cjs/activities/executeRemoteActivity.js +0 -126
- package/lib/cjs/activities/executeRemoteActivity.js.map +0 -1
- package/lib/cjs/activities/extractDocumentText.js +0 -196
- package/lib/cjs/activities/extractDocumentText.js.map +0 -1
- package/lib/cjs/activities/generateDocumentProperties.js +0 -109
- package/lib/cjs/activities/generateDocumentProperties.js.map +0 -1
- package/lib/cjs/activities/generateEmbeddings.js +0 -269
- package/lib/cjs/activities/generateEmbeddings.js.map +0 -1
- package/lib/cjs/activities/generateOrAssignContentType.js +0 -173
- package/lib/cjs/activities/generateOrAssignContentType.js.map +0 -1
- package/lib/cjs/activities/getObjectFromStore.js +0 -31
- package/lib/cjs/activities/getObjectFromStore.js.map +0 -1
- package/lib/cjs/activities/handleError.js +0 -29
- package/lib/cjs/activities/handleError.js.map +0 -1
- package/lib/cjs/activities/index-dsl.js +0 -59
- package/lib/cjs/activities/index-dsl.js.map +0 -1
- package/lib/cjs/activities/index.js +0 -21
- package/lib/cjs/activities/index.js.map +0 -1
- package/lib/cjs/activities/loadChildWorkflowSpec.js +0 -15
- package/lib/cjs/activities/loadChildWorkflowSpec.js.map +0 -1
- package/lib/cjs/activities/media/prepareAudio.js +0 -240
- package/lib/cjs/activities/media/prepareAudio.js.map +0 -1
- package/lib/cjs/activities/media/prepareVideo.js +0 -432
- package/lib/cjs/activities/media/prepareVideo.js.map +0 -1
- package/lib/cjs/activities/media/probeMediaStreams.js +0 -49
- package/lib/cjs/activities/media/probeMediaStreams.js.map +0 -1
- package/lib/cjs/activities/media/processPdfWithTextract.js +0 -103
- package/lib/cjs/activities/media/processPdfWithTextract.js.map +0 -1
- package/lib/cjs/activities/media/saveGladiaTranscription.js +0 -103
- package/lib/cjs/activities/media/saveGladiaTranscription.js.map +0 -1
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js +0 -107
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +0 -1
- package/lib/cjs/activities/mergeChildArtifacts.js +0 -150
- package/lib/cjs/activities/mergeChildArtifacts.js.map +0 -1
- package/lib/cjs/activities/notifyWebhook.js +0 -167
- package/lib/cjs/activities/notifyWebhook.js.map +0 -1
- package/lib/cjs/activities/rateLimiter.js +0 -30
- package/lib/cjs/activities/rateLimiter.js.map +0 -1
- package/lib/cjs/activities/renditions/generateImageRendition.js +0 -66
- package/lib/cjs/activities/renditions/generateImageRendition.js.map +0 -1
- package/lib/cjs/activities/renditions/generateVideoRendition.js +0 -200
- package/lib/cjs/activities/renditions/generateVideoRendition.js.map +0 -1
- package/lib/cjs/activities/resolveRemoteActivities.js +0 -133
- package/lib/cjs/activities/resolveRemoteActivities.js.map +0 -1
- package/lib/cjs/activities/setDocumentStatus.js +0 -26
- package/lib/cjs/activities/setDocumentStatus.js.map +0 -1
- package/lib/cjs/bulk-import.js +0 -12
- package/lib/cjs/bulk-import.js.map +0 -1
- package/lib/cjs/conversion/TextractProcessor.js +0 -417
- package/lib/cjs/conversion/TextractProcessor.js.map +0 -1
- package/lib/cjs/conversion/image.js +0 -149
- package/lib/cjs/conversion/image.js.map +0 -1
- package/lib/cjs/conversion/markitdown.js +0 -42
- package/lib/cjs/conversion/markitdown.js.map +0 -1
- package/lib/cjs/conversion/mutool.js +0 -147
- package/lib/cjs/conversion/mutool.js.map +0 -1
- package/lib/cjs/conversion/pandoc.js +0 -39
- package/lib/cjs/conversion/pandoc.js.map +0 -1
- package/lib/cjs/dsl/conditions.js +0 -81
- package/lib/cjs/dsl/conditions.js.map +0 -1
- package/lib/cjs/dsl/dsl-workflow.js +0 -458
- package/lib/cjs/dsl/dsl-workflow.js.map +0 -1
- package/lib/cjs/dsl/dslProxyActivities.js +0 -23
- package/lib/cjs/dsl/dslProxyActivities.js.map +0 -1
- package/lib/cjs/dsl/projections.js +0 -59
- package/lib/cjs/dsl/projections.js.map +0 -1
- package/lib/cjs/dsl/setup/ActivityContext.js +0 -188
- package/lib/cjs/dsl/setup/ActivityContext.js.map +0 -1
- package/lib/cjs/dsl/setup/fetch/DataProvider.js +0 -51
- package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +0 -1
- package/lib/cjs/dsl/setup/fetch/index.js +0 -16
- package/lib/cjs/dsl/setup/fetch/index.js.map +0 -1
- package/lib/cjs/dsl/setup/fetch/providers.js +0 -67
- package/lib/cjs/dsl/setup/fetch/providers.js.map +0 -1
- package/lib/cjs/dsl/test/test-child-workflow.js +0 -10
- package/lib/cjs/dsl/test/test-child-workflow.js.map +0 -1
- package/lib/cjs/dsl/validation.js +0 -122
- package/lib/cjs/dsl/validation.js.map +0 -1
- package/lib/cjs/dsl/vars.js +0 -341
- package/lib/cjs/dsl/vars.js.map +0 -1
- package/lib/cjs/dsl/walk.js +0 -100
- package/lib/cjs/dsl/walk.js.map +0 -1
- package/lib/cjs/dsl.js +0 -20
- package/lib/cjs/dsl.js.map +0 -1
- package/lib/cjs/errors.js +0 -89
- package/lib/cjs/errors.js.map +0 -1
- package/lib/cjs/index.js +0 -57
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/extractToc.js +0 -47
- package/lib/cjs/iterative-generation/activities/extractToc.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/finalizeOutput.js +0 -72
- package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/generatePart.js +0 -78
- package/lib/cjs/iterative-generation/activities/generatePart.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/generateToc.js +0 -86
- package/lib/cjs/iterative-generation/activities/generateToc.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/index.js +0 -12
- package/lib/cjs/iterative-generation/activities/index.js.map +0 -1
- package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +0 -56
- package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +0 -1
- package/lib/cjs/iterative-generation/types.js +0 -5
- package/lib/cjs/iterative-generation/types.js.map +0 -1
- package/lib/cjs/iterative-generation/utils.js +0 -121
- package/lib/cjs/iterative-generation/utils.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/result-types.js +0 -10
- package/lib/cjs/result-types.js.map +0 -1
- package/lib/cjs/security/ssrf.js +0 -34
- package/lib/cjs/security/ssrf.js.map +0 -1
- package/lib/cjs/system/notifyWebhookWorkflow.js +0 -53
- package/lib/cjs/system/notifyWebhookWorkflow.js.map +0 -1
- package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +0 -33
- package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +0 -1
- package/lib/cjs/utils/auth.js +0 -15
- package/lib/cjs/utils/auth.js.map +0 -1
- package/lib/cjs/utils/blobs.js +0 -64
- package/lib/cjs/utils/blobs.js.map +0 -1
- package/lib/cjs/utils/chunks.js +0 -14
- package/lib/cjs/utils/chunks.js.map +0 -1
- package/lib/cjs/utils/client.js +0 -31
- package/lib/cjs/utils/client.js.map +0 -1
- package/lib/cjs/utils/expand-vars.js +0 -33
- package/lib/cjs/utils/expand-vars.js.map +0 -1
- package/lib/cjs/utils/memory.js +0 -65
- package/lib/cjs/utils/memory.js.map +0 -1
- package/lib/cjs/utils/renditions.js +0 -92
- package/lib/cjs/utils/renditions.js.map +0 -1
- package/lib/cjs/utils/storage.js +0 -54
- package/lib/cjs/utils/storage.js.map +0 -1
- package/lib/cjs/utils/text-preview-utils.js +0 -43
- package/lib/cjs/utils/text-preview-utils.js.map +0 -1
- package/lib/cjs/utils/tokens.js +0 -38
- package/lib/cjs/utils/tokens.js.map +0 -1
- package/lib/cjs/vars.js +0 -20
- package/lib/cjs/vars.js.map +0 -1
- package/lib/cjs/workflows.js +0 -15
- package/lib/cjs/workflows.js.map +0 -1
- package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +0 -1
- package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +0 -1
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +0 -16
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +0 -1
- package/lib/esm/activities/chunkDocument.js.map +0 -1
- package/lib/esm/activities/createDocumentFromOther.js.map +0 -1
- package/lib/esm/activities/executeInteraction.js.map +0 -1
- package/lib/esm/activities/executeRemoteActivity.js.map +0 -1
- package/lib/esm/activities/extractDocumentText.js.map +0 -1
- package/lib/esm/activities/generateDocumentProperties.js.map +0 -1
- package/lib/esm/activities/generateEmbeddings.js.map +0 -1
- package/lib/esm/activities/generateOrAssignContentType.js.map +0 -1
- package/lib/esm/activities/getObjectFromStore.js.map +0 -1
- package/lib/esm/activities/handleError.js +0 -26
- package/lib/esm/activities/handleError.js.map +0 -1
- package/lib/esm/activities/index-dsl.js +0 -29
- package/lib/esm/activities/index-dsl.js.map +0 -1
- package/lib/esm/activities/index.js.map +0 -1
- package/lib/esm/activities/loadChildWorkflowSpec.js.map +0 -1
- package/lib/esm/activities/media/prepareAudio.js.map +0 -1
- package/lib/esm/activities/media/prepareVideo.js.map +0 -1
- package/lib/esm/activities/media/probeMediaStreams.js.map +0 -1
- package/lib/esm/activities/media/processPdfWithTextract.js.map +0 -1
- package/lib/esm/activities/media/saveGladiaTranscription.js.map +0 -1
- package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +0 -1
- package/lib/esm/activities/mergeChildArtifacts.js.map +0 -1
- package/lib/esm/activities/notifyWebhook.js.map +0 -1
- package/lib/esm/activities/rateLimiter.js.map +0 -1
- package/lib/esm/activities/renditions/generateImageRendition.js +0 -63
- package/lib/esm/activities/renditions/generateImageRendition.js.map +0 -1
- package/lib/esm/activities/renditions/generateVideoRendition.js.map +0 -1
- package/lib/esm/activities/resolveRemoteActivities.js.map +0 -1
- package/lib/esm/activities/setDocumentStatus.js.map +0 -1
- package/lib/esm/bulk-import.js.map +0 -1
- package/lib/esm/conversion/TextractProcessor.js.map +0 -1
- package/lib/esm/conversion/image.js.map +0 -1
- package/lib/esm/conversion/markitdown.js.map +0 -1
- package/lib/esm/conversion/mutool.js.map +0 -1
- package/lib/esm/conversion/pandoc.js.map +0 -1
- package/lib/esm/dsl/conditions.js +0 -75
- package/lib/esm/dsl/conditions.js.map +0 -1
- package/lib/esm/dsl/dsl-workflow.js.map +0 -1
- package/lib/esm/dsl/dslProxyActivities.js.map +0 -1
- package/lib/esm/dsl/projections.js.map +0 -1
- package/lib/esm/dsl/setup/ActivityContext.js.map +0 -1
- package/lib/esm/dsl/setup/fetch/DataProvider.js.map +0 -1
- package/lib/esm/dsl/setup/fetch/index.js.map +0 -1
- package/lib/esm/dsl/setup/fetch/providers.js.map +0 -1
- package/lib/esm/dsl/test/test-child-workflow.js.map +0 -1
- package/lib/esm/dsl/validation.js.map +0 -1
- package/lib/esm/dsl/vars.js.map +0 -1
- package/lib/esm/dsl/walk.js.map +0 -1
- package/lib/esm/dsl.js +0 -4
- package/lib/esm/dsl.js.map +0 -1
- package/lib/esm/errors.js.map +0 -1
- package/lib/esm/index.js +0 -39
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/iterative-generation/activities/extractToc.js +0 -44
- package/lib/esm/iterative-generation/activities/extractToc.js.map +0 -1
- package/lib/esm/iterative-generation/activities/finalizeOutput.js +0 -69
- package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +0 -1
- package/lib/esm/iterative-generation/activities/generatePart.js +0 -75
- package/lib/esm/iterative-generation/activities/generatePart.js.map +0 -1
- package/lib/esm/iterative-generation/activities/generateToc.js +0 -83
- package/lib/esm/iterative-generation/activities/generateToc.js.map +0 -1
- package/lib/esm/iterative-generation/activities/index.js +0 -5
- package/lib/esm/iterative-generation/activities/index.js.map +0 -1
- package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +0 -53
- package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +0 -1
- package/lib/esm/iterative-generation/types.js +0 -2
- package/lib/esm/iterative-generation/types.js.map +0 -1
- package/lib/esm/iterative-generation/utils.js +0 -112
- package/lib/esm/iterative-generation/utils.js.map +0 -1
- package/lib/esm/result-types.js.map +0 -1
- package/lib/esm/security/ssrf.js.map +0 -1
- package/lib/esm/system/notifyWebhookWorkflow.js.map +0 -1
- package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +0 -1
- package/lib/esm/utils/auth.js.map +0 -1
- package/lib/esm/utils/blobs.js.map +0 -1
- package/lib/esm/utils/chunks.js.map +0 -1
- package/lib/esm/utils/client.js +0 -27
- package/lib/esm/utils/client.js.map +0 -1
- package/lib/esm/utils/expand-vars.js.map +0 -1
- package/lib/esm/utils/memory.js +0 -55
- package/lib/esm/utils/memory.js.map +0 -1
- package/lib/esm/utils/renditions.js.map +0 -1
- package/lib/esm/utils/storage.js.map +0 -1
- package/lib/esm/utils/text-preview-utils.js.map +0 -1
- package/lib/esm/utils/tokens.js.map +0 -1
- package/lib/esm/vars.js +0 -4
- package/lib/esm/vars.js.map +0 -1
- package/lib/esm/workflows.js +0 -8
- package/lib/esm/workflows.js.map +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +0 -1
- package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +0 -1
- package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +0 -1
- package/lib/types/activities/chunkDocument.d.ts.map +0 -1
- package/lib/types/activities/createDocumentFromOther.d.ts.map +0 -1
- package/lib/types/activities/executeInteraction.d.ts.map +0 -1
- package/lib/types/activities/executeRemoteActivity.d.ts.map +0 -1
- package/lib/types/activities/extractDocumentText.d.ts.map +0 -1
- package/lib/types/activities/generateDocumentProperties.d.ts.map +0 -1
- package/lib/types/activities/generateEmbeddings.d.ts.map +0 -1
- package/lib/types/activities/generateOrAssignContentType.d.ts.map +0 -1
- package/lib/types/activities/getObjectFromStore.d.ts.map +0 -1
- package/lib/types/activities/handleError.d.ts.map +0 -1
- package/lib/types/activities/index-dsl.d.ts +0 -31
- package/lib/types/activities/index-dsl.d.ts.map +0 -1
- package/lib/types/activities/index.d.ts.map +0 -1
- package/lib/types/activities/loadChildWorkflowSpec.d.ts.map +0 -1
- package/lib/types/activities/media/prepareAudio.d.ts.map +0 -1
- package/lib/types/activities/media/prepareVideo.d.ts.map +0 -1
- package/lib/types/activities/media/probeMediaStreams.d.ts.map +0 -1
- package/lib/types/activities/media/processPdfWithTextract.d.ts.map +0 -1
- package/lib/types/activities/media/saveGladiaTranscription.d.ts.map +0 -1
- package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +0 -1
- package/lib/types/activities/mergeChildArtifacts.d.ts.map +0 -1
- package/lib/types/activities/notifyWebhook.d.ts.map +0 -1
- package/lib/types/activities/rateLimiter.d.ts.map +0 -1
- package/lib/types/activities/renditions/generateImageRendition.d.ts.map +0 -1
- package/lib/types/activities/renditions/generateVideoRendition.d.ts.map +0 -1
- package/lib/types/activities/resolveRemoteActivities.d.ts.map +0 -1
- package/lib/types/activities/setDocumentStatus.d.ts.map +0 -1
- package/lib/types/bulk-import.d.ts.map +0 -1
- package/lib/types/conversion/TextractProcessor.d.ts.map +0 -1
- package/lib/types/conversion/image.d.ts.map +0 -1
- package/lib/types/conversion/markitdown.d.ts.map +0 -1
- package/lib/types/conversion/mutool.d.ts.map +0 -1
- package/lib/types/conversion/pandoc.d.ts.map +0 -1
- package/lib/types/dsl/conditions.d.ts +0 -2
- package/lib/types/dsl/conditions.d.ts.map +0 -1
- package/lib/types/dsl/dsl-workflow.d.ts.map +0 -1
- package/lib/types/dsl/dslProxyActivities.d.ts +0 -10
- package/lib/types/dsl/dslProxyActivities.d.ts.map +0 -1
- package/lib/types/dsl/projections.d.ts +0 -4
- package/lib/types/dsl/projections.d.ts.map +0 -1
- package/lib/types/dsl/setup/ActivityContext.d.ts.map +0 -1
- package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +0 -1
- package/lib/types/dsl/setup/fetch/index.d.ts +0 -6
- package/lib/types/dsl/setup/fetch/index.d.ts.map +0 -1
- package/lib/types/dsl/setup/fetch/providers.d.ts.map +0 -1
- package/lib/types/dsl/test/test-child-workflow.d.ts +0 -4
- package/lib/types/dsl/test/test-child-workflow.d.ts.map +0 -1
- package/lib/types/dsl/validation.d.ts.map +0 -1
- package/lib/types/dsl/vars.d.ts.map +0 -1
- package/lib/types/dsl/walk.d.ts +0 -18
- package/lib/types/dsl/walk.d.ts.map +0 -1
- package/lib/types/dsl.d.ts +0 -4
- package/lib/types/dsl.d.ts.map +0 -1
- package/lib/types/errors.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -38
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/extractToc.d.ts +0 -10
- package/lib/types/iterative-generation/activities/extractToc.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +0 -3
- package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/generatePart.d.ts +0 -3
- package/lib/types/iterative-generation/activities/generatePart.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/generateToc.d.ts +0 -4
- package/lib/types/iterative-generation/activities/generateToc.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/index.d.ts +0 -5
- package/lib/types/iterative-generation/activities/index.d.ts.map +0 -1
- package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +0 -3
- package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +0 -1
- package/lib/types/iterative-generation/types.d.ts +0 -79
- package/lib/types/iterative-generation/types.d.ts.map +0 -1
- package/lib/types/iterative-generation/utils.d.ts +0 -26
- package/lib/types/iterative-generation/utils.d.ts.map +0 -1
- package/lib/types/result-types.d.ts.map +0 -1
- package/lib/types/security/ssrf.d.ts.map +0 -1
- package/lib/types/system/notifyWebhookWorkflow.d.ts +0 -8
- package/lib/types/system/notifyWebhookWorkflow.d.ts.map +0 -1
- package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +0 -1
- package/lib/types/utils/auth.d.ts.map +0 -1
- package/lib/types/utils/blobs.d.ts.map +0 -1
- package/lib/types/utils/chunks.d.ts.map +0 -1
- package/lib/types/utils/client.d.ts +0 -8
- package/lib/types/utils/client.d.ts.map +0 -1
- package/lib/types/utils/expand-vars.d.ts.map +0 -1
- package/lib/types/utils/memory.d.ts +0 -8
- package/lib/types/utils/memory.d.ts.map +0 -1
- package/lib/types/utils/renditions.d.ts.map +0 -1
- package/lib/types/utils/storage.d.ts.map +0 -1
- package/lib/types/utils/text-preview-utils.d.ts.map +0 -1
- package/lib/types/utils/tokens.d.ts.map +0 -1
- package/lib/types/vars.d.ts +0 -3
- package/lib/types/vars.d.ts.map +0 -1
- package/lib/types/workflows.d.ts +0 -8
- package/lib/types/workflows.d.ts.map +0 -1
- package/src/iterative-generation/activities/extractToc.ts +0 -63
- package/src/iterative-generation/activities/finalizeOutput.ts +0 -100
- package/src/iterative-generation/activities/generatePart.ts +0 -123
- package/src/iterative-generation/activities/generateToc.ts +0 -116
- package/src/iterative-generation/activities/index.ts +0 -4
- package/src/iterative-generation/iterativeGenerationWorkflow.ts +0 -68
- package/src/iterative-generation/types.ts +0 -99
- package/src/iterative-generation/utils.ts +0 -126
- package/src/utils/memory.ts +0 -61
- /package/lib/{esm/bulk-import.js → bulk-import.js} +0 -0
- /package/lib/{types/conversion → conversion}/image.d.ts +0 -0
- /package/lib/{types/conversion → conversion}/markitdown.d.ts +0 -0
- /package/lib/{types/conversion → conversion}/mutool.d.ts +0 -0
- /package/lib/{types/conversion → conversion}/pandoc.d.ts +0 -0
- /package/lib/{types/result-types.d.ts → result-types.d.ts} +0 -0
- /package/lib/{esm/result-types.js → result-types.js} +0 -0
- /package/lib/{types/security → security}/ssrf.d.ts +0 -0
- /package/lib/{esm/security → security}/ssrf.js +0 -0
- /package/lib/{esm/utils → utils}/auth.js +0 -0
- /package/lib/{types/utils → utils}/chunks.d.ts +0 -0
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import { setupActivity } from
|
|
9
|
-
import { DocumentNotFoundError, WorkflowParamNotFoundError } from
|
|
10
|
-
import { saveBlobToTempFile } from
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { execFile as execFileCallback } from 'node:child_process';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { promisify } from 'node:util';
|
|
6
|
+
import { log } from '@temporalio/activity';
|
|
7
|
+
import type { DSLActivityExecutionPayload, DSLActivitySpec } from '@vertesia/common';
|
|
8
|
+
import { setupActivity } from '../../dsl/setup/ActivityContext.js';
|
|
9
|
+
import { DocumentNotFoundError, WorkflowParamNotFoundError } from '../../errors.js';
|
|
10
|
+
import { saveBlobToTempFile } from '../../utils/blobs.js';
|
|
11
|
+
import { type ImageRenditionParams, uploadRenditionPages } from '../../utils/renditions.js';
|
|
12
|
+
|
|
13
|
+
const execFileAsync = promisify(execFileCallback);
|
|
14
|
+
|
|
15
|
+
interface GenerateVideoRenditionParams extends ImageRenditionParams {}
|
|
16
|
+
|
|
17
|
+
interface LegacyVideoRenditionParams {
|
|
18
|
+
maxHeightWidth?: number;
|
|
19
|
+
format_output?: ImageRenditionParams['format'];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface GenerateVideoRendition extends DSLActivitySpec<GenerateVideoRenditionParams> {
|
|
23
|
+
name: 'generateImageRendition';
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
interface VideoMetadata {
|
|
@@ -30,25 +31,22 @@ interface VideoMetadata {
|
|
|
30
31
|
|
|
31
32
|
async function getVideoMetadata(videoPath: string): Promise<VideoMetadata> {
|
|
32
33
|
try {
|
|
33
|
-
const
|
|
34
|
-
const { stdout } = await
|
|
35
|
-
const metadata = JSON.parse(stdout)
|
|
34
|
+
const args = ['-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', videoPath];
|
|
35
|
+
const { stdout } = await execFileAsync('ffprobe', args);
|
|
36
|
+
const metadata = JSON.parse(stdout.toString()) as {
|
|
37
|
+
streams?: Array<{ codec_type?: string; width?: number; height?: number }>;
|
|
38
|
+
format?: { duration?: string };
|
|
39
|
+
};
|
|
36
40
|
|
|
37
|
-
const videoStream = metadata.streams
|
|
38
|
-
|
|
39
|
-
);
|
|
40
|
-
const duration = parseFloat(metadata.format.duration) || 0;
|
|
41
|
+
const videoStream = metadata.streams?.find((stream) => stream.codec_type === 'video');
|
|
42
|
+
const duration = parseFloat(metadata.format?.duration ?? '') || 0;
|
|
41
43
|
const width = videoStream?.width || 0;
|
|
42
44
|
const height = videoStream?.height || 0;
|
|
43
45
|
|
|
44
46
|
return { duration, width, height };
|
|
45
47
|
} catch (error) {
|
|
46
|
-
log.error(
|
|
47
|
-
|
|
48
|
-
);
|
|
49
|
-
throw new Error(
|
|
50
|
-
`Failed to probe video metadata: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
51
|
-
);
|
|
48
|
+
log.error(`Failed to get video metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
49
|
+
throw new Error(`Failed to probe video metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
|
|
@@ -59,39 +57,34 @@ async function generateThumbnail(
|
|
|
59
57
|
maxSize: number,
|
|
60
58
|
): Promise<string | undefined> {
|
|
61
59
|
//pad timestamp to 5 digits as filename
|
|
62
|
-
const outputFile = path.join(
|
|
63
|
-
outputDir,
|
|
64
|
-
`thumb-${timestamp.toString().padStart(5, "0")}.jpg`,
|
|
65
|
-
);
|
|
60
|
+
const outputFile = path.join(outputDir, `thumb-${timestamp.toString().padStart(5, '0')}.jpg`);
|
|
66
61
|
|
|
67
62
|
// FFmpeg command to extract thumbnail at specific timestamp
|
|
68
63
|
// Use proper scale filter syntax: scale=w:h:force_original_aspect_ratio=decrease
|
|
69
64
|
const scaleFilter = `scale=${maxSize}:${maxSize}:force_original_aspect_ratio=decrease`;
|
|
70
65
|
|
|
71
66
|
const command = [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
"-ss",
|
|
67
|
+
'-y', // Overwrite output files
|
|
68
|
+
'-ss',
|
|
75
69
|
timestamp.toString(), // Seek to timestamp
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
]
|
|
86
|
-
log.info(`Generating thumbnail at ${timestamp}s
|
|
70
|
+
'-i',
|
|
71
|
+
videoPath, // Input file
|
|
72
|
+
'-vframes',
|
|
73
|
+
'1', // Extract only 1 frame
|
|
74
|
+
'-vf',
|
|
75
|
+
scaleFilter, // Scale maintaining aspect ratio
|
|
76
|
+
'-q:v',
|
|
77
|
+
'2', // High quality
|
|
78
|
+
outputFile,
|
|
79
|
+
];
|
|
80
|
+
log.info(`Generating thumbnail at ${timestamp}s`, { command: 'ffmpeg', args: command });
|
|
87
81
|
try {
|
|
88
|
-
const { stderr } = await
|
|
82
|
+
const { stderr } = await execFileAsync('ffmpeg', command);
|
|
83
|
+
const stderrText = stderr.toString();
|
|
89
84
|
|
|
90
85
|
// Log any warnings from ffmpeg
|
|
91
|
-
if (
|
|
92
|
-
log.debug(
|
|
93
|
-
`FFmpeg stderr for thumbnail at ${timestamp}s: ${stderr}`,
|
|
94
|
-
);
|
|
86
|
+
if (stderrText && !stderrText.includes('frame=')) {
|
|
87
|
+
log.debug(`FFmpeg stderr for thumbnail at ${timestamp}s: ${stderrText}`);
|
|
95
88
|
}
|
|
96
89
|
|
|
97
90
|
// Verify the file was created
|
|
@@ -104,28 +97,21 @@ async function generateThumbnail(
|
|
|
104
97
|
}
|
|
105
98
|
} catch (error) {
|
|
106
99
|
log.error(
|
|
107
|
-
`Failed to generate thumbnail at ${timestamp}s: ${error instanceof Error ? error.message :
|
|
100
|
+
`Failed to generate thumbnail at ${timestamp}s: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
108
101
|
);
|
|
109
102
|
return undefined;
|
|
110
103
|
}
|
|
111
104
|
}
|
|
112
105
|
|
|
113
|
-
export async function generateVideoRendition(
|
|
114
|
-
|
|
115
|
-
) {
|
|
116
|
-
const {
|
|
117
|
-
client,
|
|
118
|
-
objectId,
|
|
119
|
-
params: originParams,
|
|
120
|
-
} = await setupActivity<GenerateVideoRenditionParams>(payload);
|
|
106
|
+
export async function generateVideoRendition(payload: DSLActivityExecutionPayload<GenerateVideoRenditionParams>) {
|
|
107
|
+
const { client, objectId, params: originParams } = await setupActivity<GenerateVideoRenditionParams>(payload);
|
|
121
108
|
|
|
122
109
|
// Fix: Use maxHeightWidth if max_hw is not provided
|
|
110
|
+
const legacyParams = originParams as LegacyVideoRenditionParams;
|
|
123
111
|
const params = {
|
|
124
112
|
...originParams,
|
|
125
|
-
max_hw:
|
|
126
|
-
|
|
127
|
-
format:
|
|
128
|
-
originParams.format || (originParams as any).format_output || "png", // Default to png if format is missing
|
|
113
|
+
max_hw: originParams.max_hw || legacyParams.maxHeightWidth || 1024, // Default to 1024 if both are missing
|
|
114
|
+
format: originParams.format || legacyParams.format_output || 'png', // Default to png if format is missing
|
|
129
115
|
};
|
|
130
116
|
|
|
131
117
|
log.info(`Generating video rendition for ${objectId}`, {
|
|
@@ -133,12 +119,11 @@ export async function generateVideoRendition(
|
|
|
133
119
|
params,
|
|
134
120
|
});
|
|
135
121
|
|
|
136
|
-
const inputObject = await client.objects.retrieve(objectId).catch((err) => {
|
|
122
|
+
const inputObject = await client.objects.retrieve(objectId).catch((err: unknown) => {
|
|
123
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
137
124
|
log.error(`Failed to retrieve document ${objectId}`, { err });
|
|
138
|
-
if (
|
|
139
|
-
throw new DocumentNotFoundError(`Document ${objectId} not found`, [
|
|
140
|
-
objectId,
|
|
141
|
-
]);
|
|
125
|
+
if (message.includes('not found')) {
|
|
126
|
+
throw new DocumentNotFoundError(`Document ${objectId} not found`, [objectId]);
|
|
142
127
|
}
|
|
143
128
|
throw err;
|
|
144
129
|
});
|
|
@@ -150,34 +135,19 @@ export async function generateVideoRendition(
|
|
|
150
135
|
|
|
151
136
|
if (!inputObject.content?.source) {
|
|
152
137
|
log.error(`Document ${objectId} has no source`);
|
|
153
|
-
throw new DocumentNotFoundError(`Document ${objectId} has no source`, [
|
|
154
|
-
objectId,
|
|
155
|
-
]);
|
|
138
|
+
throw new DocumentNotFoundError(`Document ${objectId} has no source`, [objectId]);
|
|
156
139
|
}
|
|
157
140
|
|
|
158
|
-
if (
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
) {
|
|
162
|
-
log.error(
|
|
163
|
-
`Document ${objectId} is not a video: ${inputObject.content.type}`,
|
|
164
|
-
);
|
|
165
|
-
throw new DocumentNotFoundError(
|
|
166
|
-
`Document ${objectId} is not a video: ${inputObject.content.type}`,
|
|
167
|
-
[objectId],
|
|
168
|
-
);
|
|
141
|
+
if (!inputObject.content.type?.startsWith('video/')) {
|
|
142
|
+
log.error(`Document ${objectId} is not a video: ${inputObject.content.type}`);
|
|
143
|
+
throw new DocumentNotFoundError(`Document ${objectId} is not a video: ${inputObject.content.type}`, [objectId]);
|
|
169
144
|
}
|
|
170
145
|
|
|
171
146
|
//array of rendition files to upload
|
|
172
|
-
|
|
147
|
+
const renditionPages: string[] = [];
|
|
173
148
|
|
|
174
|
-
const videoFile = await saveBlobToTempFile(
|
|
175
|
-
|
|
176
|
-
inputObject.content.source,
|
|
177
|
-
);
|
|
178
|
-
const tempOutputDir = fs.mkdtempSync(
|
|
179
|
-
path.join(os.tmpdir(), "video-rendition-"),
|
|
180
|
-
);
|
|
149
|
+
const videoFile = await saveBlobToTempFile(client, inputObject.content.source);
|
|
150
|
+
const tempOutputDir = fs.mkdtempSync(path.join(os.tmpdir(), 'video-rendition-'));
|
|
181
151
|
|
|
182
152
|
try {
|
|
183
153
|
// Get video metadata using command line ffprobe
|
|
@@ -208,26 +178,18 @@ export async function generateVideoRendition(
|
|
|
208
178
|
timestamps.push(Math.max(timestamp, 1));
|
|
209
179
|
}
|
|
210
180
|
|
|
211
|
-
log.info(
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
tempOutputDir,
|
|
219
|
-
},
|
|
220
|
-
);
|
|
181
|
+
log.info(`Generating ${thumbnailCount} thumbnails for ${duration}s video`, {
|
|
182
|
+
objectId,
|
|
183
|
+
duration,
|
|
184
|
+
thumbnailCount,
|
|
185
|
+
timestamps: timestamps.map((t) => Math.round(t)),
|
|
186
|
+
tempOutputDir,
|
|
187
|
+
});
|
|
221
188
|
|
|
222
189
|
// Generate thumbnails using command line ffmpeg
|
|
223
190
|
const generatedThumbnails = await Promise.all(
|
|
224
191
|
timestamps.map(async (timestamp) => {
|
|
225
|
-
return await generateThumbnail(
|
|
226
|
-
videoFile,
|
|
227
|
-
tempOutputDir,
|
|
228
|
-
timestamp,
|
|
229
|
-
params.max_hw,
|
|
230
|
-
);
|
|
192
|
+
return await generateThumbnail(videoFile, tempOutputDir, timestamp, params.max_hw);
|
|
231
193
|
}),
|
|
232
194
|
);
|
|
233
195
|
|
|
@@ -237,28 +199,17 @@ export async function generateVideoRendition(
|
|
|
237
199
|
thumbnailCount,
|
|
238
200
|
tempOutputDir,
|
|
239
201
|
});
|
|
240
|
-
throw new Error(
|
|
241
|
-
`No thumbnails were generated for video ${objectId}`,
|
|
242
|
-
);
|
|
202
|
+
throw new Error(`No thumbnails were generated for video ${objectId}`);
|
|
243
203
|
}
|
|
244
204
|
|
|
245
|
-
renditionPages.push(
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
`Successfully generated ${generatedThumbnails.length} thumbnails for ${objectId}`,
|
|
252
|
-
{
|
|
253
|
-
objectId,
|
|
254
|
-
generatedCount: generatedThumbnails.length,
|
|
255
|
-
requestedCount: thumbnailCount,
|
|
256
|
-
},
|
|
257
|
-
);
|
|
205
|
+
renditionPages.push(...generatedThumbnails.filter((thumbnail) => thumbnail !== undefined));
|
|
206
|
+
log.info(`Successfully generated ${generatedThumbnails.length} thumbnails for ${objectId}`, {
|
|
207
|
+
objectId,
|
|
208
|
+
generatedCount: generatedThumbnails.length,
|
|
209
|
+
requestedCount: thumbnailCount,
|
|
210
|
+
});
|
|
258
211
|
} catch (error) {
|
|
259
|
-
log.error(
|
|
260
|
-
`Error generating thumbnails for video: ${error instanceof Error ? error.message : "Unknown error"}`,
|
|
261
|
-
);
|
|
212
|
+
log.error(`Error generating thumbnails for video: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
262
213
|
throw new Error(`Failed to generate thumbnails for video: ${objectId}`);
|
|
263
214
|
} finally {
|
|
264
215
|
// Clean up temporary video file
|
|
@@ -266,7 +217,7 @@ export async function generateVideoRendition(
|
|
|
266
217
|
if (fs.existsSync(videoFile)) {
|
|
267
218
|
fs.unlinkSync(videoFile);
|
|
268
219
|
}
|
|
269
|
-
} catch
|
|
220
|
+
} catch {
|
|
270
221
|
log.warn(`Failed to cleanup temporary video file: ${videoFile}`);
|
|
271
222
|
}
|
|
272
223
|
}
|
|
@@ -277,17 +228,12 @@ export async function generateVideoRendition(
|
|
|
277
228
|
const etag = inputObject.content.etag ?? inputObject.id;
|
|
278
229
|
|
|
279
230
|
// Update the final upload call to handle multiple thumbnails
|
|
280
|
-
const uploaded = await uploadRenditionPages(
|
|
281
|
-
client,
|
|
282
|
-
etag,
|
|
283
|
-
renditionPages,
|
|
284
|
-
params,
|
|
285
|
-
);
|
|
231
|
+
const uploaded = await uploadRenditionPages(client, etag, renditionPages, params);
|
|
286
232
|
|
|
287
233
|
return {
|
|
288
234
|
uploads: uploaded.map((u) => u),
|
|
289
235
|
format: params.format,
|
|
290
236
|
thumbnailCount: renditionPages.length,
|
|
291
|
-
status:
|
|
237
|
+
status: 'success',
|
|
292
238
|
};
|
|
293
239
|
}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
import { MockActivityEnvironment } from
|
|
2
|
-
import { ContentEventName, DSLActivityExecutionPayload } from
|
|
3
|
-
import { beforeAll, beforeEach, describe, expect, it, vi } from
|
|
4
|
-
import {
|
|
1
|
+
import { MockActivityEnvironment } from '@temporalio/testing';
|
|
2
|
+
import { ContentEventName, type DSLActivityExecutionPayload } from '@vertesia/common';
|
|
3
|
+
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import {
|
|
5
|
+
type RemoteActivityMap,
|
|
6
|
+
type ResolveRemoteActivitiesParams,
|
|
7
|
+
resolveRemoteActivities,
|
|
8
|
+
} from './resolveRemoteActivities.js';
|
|
5
9
|
|
|
6
|
-
vi.stubGlobal(
|
|
10
|
+
vi.stubGlobal('fetch', vi.fn());
|
|
7
11
|
|
|
8
12
|
// Mock getVertesiaClient
|
|
9
13
|
const mockGetInstalledApps = vi.fn();
|
|
10
|
-
vi.mock(
|
|
14
|
+
vi.mock('../utils/client.js', () => ({
|
|
11
15
|
getVertesiaClient: vi.fn().mockReturnValue({
|
|
12
16
|
apps: {
|
|
13
|
-
getInstalledApps: (...args:
|
|
17
|
+
getInstalledApps: (...args: unknown[]) => mockGetInstalledApps(...args),
|
|
14
18
|
validateUrl: vi.fn().mockResolvedValue({ valid: true }),
|
|
15
19
|
},
|
|
16
20
|
}),
|
|
@@ -28,187 +32,191 @@ beforeEach(() => {
|
|
|
28
32
|
});
|
|
29
33
|
|
|
30
34
|
const createPayload = (): DSLActivityExecutionPayload<ResolveRemoteActivitiesParams> => ({
|
|
31
|
-
auth_token:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
auth_token:
|
|
36
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwOi8vbW9jay10b2tlbi1zZXJ2ZXIiLCJzdWIiOiJ0ZXN0In0.sig',
|
|
37
|
+
account_id: 'acc-123',
|
|
38
|
+
project_id: 'proj-456',
|
|
39
|
+
params: {} satisfies ResolveRemoteActivitiesParams,
|
|
35
40
|
config: {
|
|
36
|
-
studio_url:
|
|
37
|
-
store_url:
|
|
41
|
+
studio_url: 'http://mock-studio',
|
|
42
|
+
store_url: 'http://mock-store',
|
|
38
43
|
},
|
|
39
|
-
workflow_name:
|
|
44
|
+
workflow_name: 'TestWorkflow',
|
|
40
45
|
event: ContentEventName.create,
|
|
41
46
|
objectIds: [],
|
|
42
47
|
vars: {},
|
|
43
|
-
activity: { name:
|
|
48
|
+
activity: { name: 'resolveRemoteActivities', params: {} satisfies ResolveRemoteActivitiesParams },
|
|
44
49
|
});
|
|
45
50
|
|
|
46
|
-
describe(
|
|
47
|
-
it(
|
|
51
|
+
describe('resolveRemoteActivities', () => {
|
|
52
|
+
it('should return empty map when no apps installed', async () => {
|
|
48
53
|
mockGetInstalledApps.mockResolvedValueOnce([]);
|
|
49
54
|
|
|
50
55
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
51
56
|
expect(result).toEqual({});
|
|
52
|
-
expect(mockGetInstalledApps).toHaveBeenCalledWith(
|
|
57
|
+
expect(mockGetInstalledApps).toHaveBeenCalledWith('tools');
|
|
53
58
|
});
|
|
54
59
|
|
|
55
|
-
it(
|
|
56
|
-
mockGetInstalledApps.mockResolvedValueOnce([
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
it('should return qualified activity map from single app', async () => {
|
|
61
|
+
mockGetInstalledApps.mockResolvedValueOnce([
|
|
62
|
+
{
|
|
63
|
+
id: 'install-1',
|
|
64
|
+
manifest: {
|
|
65
|
+
name: 'my-nlp-app',
|
|
66
|
+
endpoint: 'https://nlp-server.test/api/package',
|
|
67
|
+
},
|
|
68
|
+
settings: { api_key: 'test' },
|
|
61
69
|
},
|
|
62
|
-
|
|
63
|
-
}]);
|
|
70
|
+
]);
|
|
64
71
|
|
|
65
72
|
mockFetch.mockResolvedValueOnce(
|
|
66
73
|
new Response(
|
|
67
74
|
JSON.stringify({
|
|
68
75
|
activities: [
|
|
69
|
-
{ name:
|
|
70
|
-
{ name:
|
|
76
|
+
{ name: 'analyze_sentiment', description: 'Analyze sentiment', collection: 'nlp' },
|
|
77
|
+
{ name: 'extract_entities', description: 'Extract entities', collection: 'nlp' },
|
|
71
78
|
],
|
|
72
79
|
}),
|
|
73
|
-
{ status: 200, headers: {
|
|
80
|
+
{ status: 200, headers: { 'Content-Type': 'application/json' } },
|
|
74
81
|
),
|
|
75
82
|
);
|
|
76
83
|
|
|
77
84
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
78
85
|
|
|
79
86
|
expect(Object.keys(result)).toHaveLength(2);
|
|
80
|
-
expect(result[
|
|
81
|
-
expect(result[
|
|
82
|
-
|
|
83
|
-
const entry = result[
|
|
84
|
-
expect(entry.activity_name).toBe(
|
|
85
|
-
expect(entry.app_name).toBe(
|
|
86
|
-
expect(entry.app_install_id).toBe(
|
|
87
|
-
expect(entry.app_settings).toEqual({ api_key:
|
|
87
|
+
expect(result['app:my-nlp-app:nlp:analyze_sentiment']).toBeDefined();
|
|
88
|
+
expect(result['app:my-nlp-app:nlp:extract_entities']).toBeDefined();
|
|
89
|
+
|
|
90
|
+
const entry = result['app:my-nlp-app:nlp:analyze_sentiment'];
|
|
91
|
+
expect(entry.activity_name).toBe('analyze_sentiment');
|
|
92
|
+
expect(entry.app_name).toBe('my-nlp-app');
|
|
93
|
+
expect(entry.app_install_id).toBe('install-1');
|
|
94
|
+
expect(entry.app_settings).toEqual({ api_key: 'test' });
|
|
88
95
|
// URL should target the collection-specific endpoint
|
|
89
|
-
expect(entry.url).toBe(
|
|
96
|
+
expect(entry.url).toBe('https://nlp-server.test/api/activities/nlp');
|
|
90
97
|
});
|
|
91
98
|
|
|
92
|
-
it(
|
|
99
|
+
it('should merge activities from multiple apps', async () => {
|
|
93
100
|
mockGetInstalledApps.mockResolvedValueOnce([
|
|
94
101
|
{
|
|
95
|
-
id:
|
|
96
|
-
manifest: { name:
|
|
102
|
+
id: 'install-1',
|
|
103
|
+
manifest: { name: 'app-one', endpoint: 'https://one.test/api/package' },
|
|
97
104
|
},
|
|
98
105
|
{
|
|
99
|
-
id:
|
|
100
|
-
manifest: { name:
|
|
106
|
+
id: 'install-2',
|
|
107
|
+
manifest: { name: 'app-two', endpoint: 'https://two.test/api/package' },
|
|
101
108
|
},
|
|
102
109
|
]);
|
|
103
110
|
|
|
104
111
|
mockFetch
|
|
105
112
|
.mockResolvedValueOnce(
|
|
106
|
-
new Response(JSON.stringify({ activities: [{ name:
|
|
113
|
+
new Response(JSON.stringify({ activities: [{ name: 'task_a', collection: 'main' }] }), { status: 200 }),
|
|
107
114
|
)
|
|
108
115
|
.mockResolvedValueOnce(
|
|
109
|
-
new Response(JSON.stringify({ activities: [{ name:
|
|
116
|
+
new Response(JSON.stringify({ activities: [{ name: 'task_b', collection: 'main' }] }), { status: 200 }),
|
|
110
117
|
);
|
|
111
118
|
|
|
112
119
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
113
120
|
|
|
114
121
|
expect(Object.keys(result)).toHaveLength(2);
|
|
115
|
-
expect(result[
|
|
116
|
-
expect(result[
|
|
122
|
+
expect(result['app:app-one:main:task_a']).toBeDefined();
|
|
123
|
+
expect(result['app:app-two:main:task_b']).toBeDefined();
|
|
117
124
|
});
|
|
118
125
|
|
|
119
|
-
it(
|
|
120
|
-
mockGetInstalledApps.mockResolvedValueOnce([
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
126
|
+
it('should skip app with no activities', async () => {
|
|
127
|
+
mockGetInstalledApps.mockResolvedValueOnce([
|
|
128
|
+
{
|
|
129
|
+
id: 'install-1',
|
|
130
|
+
manifest: { name: 'empty-app', endpoint: 'https://empty.test/api/package' },
|
|
131
|
+
},
|
|
132
|
+
]);
|
|
124
133
|
|
|
125
|
-
mockFetch.mockResolvedValueOnce(
|
|
126
|
-
new Response(JSON.stringify({ activities: [] }), { status: 200 }),
|
|
127
|
-
);
|
|
134
|
+
mockFetch.mockResolvedValueOnce(new Response(JSON.stringify({ activities: [] }), { status: 200 }));
|
|
128
135
|
|
|
129
136
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
130
137
|
expect(result).toEqual({});
|
|
131
138
|
});
|
|
132
139
|
|
|
133
|
-
it(
|
|
134
|
-
mockGetInstalledApps.mockResolvedValueOnce([
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
140
|
+
it('should skip app with no endpoint', async () => {
|
|
141
|
+
mockGetInstalledApps.mockResolvedValueOnce([
|
|
142
|
+
{
|
|
143
|
+
id: 'install-1',
|
|
144
|
+
manifest: { name: 'no-endpoint' },
|
|
145
|
+
},
|
|
146
|
+
]);
|
|
138
147
|
|
|
139
148
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
140
149
|
expect(result).toEqual({});
|
|
141
150
|
expect(mockFetch).not.toHaveBeenCalled();
|
|
142
151
|
});
|
|
143
152
|
|
|
144
|
-
it(
|
|
153
|
+
it('should handle duplicate qualified names across apps (first wins)', async () => {
|
|
145
154
|
mockGetInstalledApps.mockResolvedValueOnce([
|
|
146
155
|
{
|
|
147
|
-
id:
|
|
148
|
-
manifest: { name:
|
|
156
|
+
id: 'install-1',
|
|
157
|
+
manifest: { name: 'same-app', endpoint: 'https://one.test/api/package' },
|
|
149
158
|
},
|
|
150
159
|
{
|
|
151
|
-
id:
|
|
152
|
-
manifest: { name:
|
|
160
|
+
id: 'install-2',
|
|
161
|
+
manifest: { name: 'same-app', endpoint: 'https://two.test/api/package' },
|
|
153
162
|
},
|
|
154
163
|
]);
|
|
155
164
|
|
|
156
165
|
mockFetch
|
|
157
166
|
.mockResolvedValueOnce(
|
|
158
|
-
new Response(JSON.stringify({ activities: [{ name:
|
|
167
|
+
new Response(JSON.stringify({ activities: [{ name: 'task', collection: 'main' }] }), { status: 200 }),
|
|
159
168
|
)
|
|
160
169
|
.mockResolvedValueOnce(
|
|
161
|
-
new Response(JSON.stringify({ activities: [{ name:
|
|
170
|
+
new Response(JSON.stringify({ activities: [{ name: 'task', collection: 'main' }] }), { status: 200 }),
|
|
162
171
|
);
|
|
163
172
|
|
|
164
173
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
165
174
|
expect(Object.keys(result)).toHaveLength(1);
|
|
166
|
-
expect(result[
|
|
175
|
+
expect(result['app:same-app:main:task'].app_install_id).toBe('install-1');
|
|
167
176
|
});
|
|
168
177
|
|
|
169
|
-
it(
|
|
178
|
+
it('should continue with other apps when one fetch fails', async () => {
|
|
170
179
|
mockGetInstalledApps.mockResolvedValueOnce([
|
|
171
180
|
{
|
|
172
|
-
id:
|
|
173
|
-
manifest: { name:
|
|
181
|
+
id: 'install-1',
|
|
182
|
+
manifest: { name: 'failing-app', endpoint: 'https://fail.test/api/package' },
|
|
174
183
|
},
|
|
175
184
|
{
|
|
176
|
-
id:
|
|
177
|
-
manifest: { name:
|
|
185
|
+
id: 'install-2',
|
|
186
|
+
manifest: { name: 'working-app', endpoint: 'https://work.test/api/package' },
|
|
178
187
|
},
|
|
179
188
|
]);
|
|
180
189
|
|
|
181
190
|
mockFetch
|
|
182
|
-
.mockRejectedValueOnce(new Error(
|
|
191
|
+
.mockRejectedValueOnce(new Error('Connection refused'))
|
|
183
192
|
.mockResolvedValueOnce(
|
|
184
|
-
new Response(JSON.stringify({ activities: [{ name:
|
|
193
|
+
new Response(JSON.stringify({ activities: [{ name: 'task', collection: 'main' }] }), { status: 200 }),
|
|
185
194
|
);
|
|
186
195
|
|
|
187
196
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
188
197
|
expect(Object.keys(result)).toHaveLength(1);
|
|
189
|
-
expect(result[
|
|
198
|
+
expect(result['app:working-app:main:task']).toBeDefined();
|
|
190
199
|
});
|
|
191
200
|
|
|
192
|
-
it(
|
|
193
|
-
mockGetInstalledApps.mockRejectedValueOnce(new Error(
|
|
201
|
+
it('should return empty map when getInstalledApps fails', async () => {
|
|
202
|
+
mockGetInstalledApps.mockRejectedValueOnce(new Error('API error'));
|
|
194
203
|
|
|
195
204
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
196
205
|
expect(result).toEqual({});
|
|
197
206
|
});
|
|
198
207
|
|
|
199
|
-
it(
|
|
200
|
-
mockGetInstalledApps.mockResolvedValueOnce([
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
208
|
+
it('should skip activities without collection', async () => {
|
|
209
|
+
mockGetInstalledApps.mockResolvedValueOnce([
|
|
210
|
+
{
|
|
211
|
+
id: 'install-1',
|
|
212
|
+
manifest: { name: 'bad-app', endpoint: 'https://bad.test/api/package' },
|
|
213
|
+
},
|
|
214
|
+
]);
|
|
204
215
|
|
|
205
216
|
mockFetch.mockResolvedValueOnce(
|
|
206
217
|
new Response(
|
|
207
218
|
JSON.stringify({
|
|
208
|
-
activities: [
|
|
209
|
-
{ name: "no_collection" },
|
|
210
|
-
{ name: "has_collection", collection: "main" },
|
|
211
|
-
],
|
|
219
|
+
activities: [{ name: 'no_collection' }, { name: 'has_collection', collection: 'main' }],
|
|
212
220
|
}),
|
|
213
221
|
{ status: 200 },
|
|
214
222
|
),
|
|
@@ -216,6 +224,6 @@ describe("resolveRemoteActivities", () => {
|
|
|
216
224
|
|
|
217
225
|
const result: RemoteActivityMap = await testEnv.run(resolveRemoteActivities, createPayload());
|
|
218
226
|
expect(Object.keys(result)).toHaveLength(1);
|
|
219
|
-
expect(result[
|
|
227
|
+
expect(result['app:bad-app:main:has_collection']).toBeDefined();
|
|
220
228
|
});
|
|
221
229
|
});
|