@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,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
type DSLActivityExecutionPayload,
|
|
3
|
+
type DSLWorkflowSpec,
|
|
4
|
+
withDSLWorkflowSpecDiscriminator,
|
|
5
|
+
} from '@vertesia/common';
|
|
2
6
|
import { setupActivity } from '../dsl/setup/ActivityContext.js';
|
|
3
7
|
|
|
4
8
|
export interface LoadChildWorkflowSpecParams {
|
|
@@ -12,10 +16,11 @@ export async function loadChildWorkflowSpec(
|
|
|
12
16
|
const { workflowName } = params;
|
|
13
17
|
|
|
14
18
|
const refs = await client.store.workflows.definitions.list();
|
|
15
|
-
const ref = refs.find(r => r.name === workflowName);
|
|
19
|
+
const ref = refs.find((r) => r.name === workflowName);
|
|
16
20
|
if (!ref) {
|
|
17
21
|
throw new Error(`Workflow definition not found: ${workflowName}`);
|
|
18
22
|
}
|
|
19
23
|
|
|
20
|
-
|
|
24
|
+
const definition = await client.store.workflows.definitions.retrieve(ref.id);
|
|
25
|
+
return withDSLWorkflowSpecDiscriminator(definition);
|
|
21
26
|
}
|
|
@@ -1,17 +1,24 @@
|
|
|
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';
|
|
1
6
|
import { log } from '@temporalio/activity';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
import { RequestError } from '@vertesia/api-fetch-client';
|
|
8
|
+
import type { VertesiaClient } from '@vertesia/client';
|
|
9
|
+
import {
|
|
10
|
+
AUDIO_RENDITION_NAME,
|
|
11
|
+
type AudioMetadata,
|
|
12
|
+
ContentNature,
|
|
13
|
+
type DSLActivityExecutionPayload,
|
|
14
|
+
type DSLActivitySpec,
|
|
15
|
+
type Rendition,
|
|
16
|
+
} from '@vertesia/common';
|
|
8
17
|
import { setupActivity } from '../../dsl/setup/ActivityContext.js';
|
|
9
18
|
import { DocumentNotFoundError, InvalidContentTypeError } from '../../errors.js';
|
|
10
19
|
import { saveBlobToTempFile } from '../../utils/blobs.js';
|
|
11
|
-
import { VertesiaClient } from '@vertesia/client';
|
|
12
|
-
import { RequestError } from '@vertesia/api-fetch-client';
|
|
13
20
|
|
|
14
|
-
const
|
|
21
|
+
const execFileAsync = promisify(execFileCallback);
|
|
15
22
|
|
|
16
23
|
// Default configuration constants
|
|
17
24
|
const DEFAULT_AUDIO_BITRATE = '128k'; // Default audio bitrate for AAC encoding
|
|
@@ -71,13 +78,11 @@ export interface PrepareAudioResult {
|
|
|
71
78
|
*/
|
|
72
79
|
async function getAudioMetadata(audioPath: string): Promise<AudioMetadataExtended> {
|
|
73
80
|
try {
|
|
74
|
-
const
|
|
75
|
-
const { stdout } = await
|
|
76
|
-
const metadata = JSON.parse(stdout) as FFProbeOutput;
|
|
81
|
+
const args = ['-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', audioPath];
|
|
82
|
+
const { stdout } = await execFileAsync('ffprobe', args);
|
|
83
|
+
const metadata = JSON.parse(stdout.toString()) as FFProbeOutput;
|
|
77
84
|
|
|
78
|
-
const audioStream = metadata.streams.find(
|
|
79
|
-
(stream) => stream.codec_type === 'audio',
|
|
80
|
-
);
|
|
85
|
+
const audioStream = metadata.streams.find((stream) => stream.codec_type === 'audio');
|
|
81
86
|
|
|
82
87
|
if (!audioStream) {
|
|
83
88
|
throw new Error('No audio stream found in file');
|
|
@@ -91,12 +96,8 @@ async function getAudioMetadata(audioPath: string): Promise<AudioMetadataExtende
|
|
|
91
96
|
|
|
92
97
|
return { duration, codec, bitrate, sampleRate, channels };
|
|
93
98
|
} catch (error) {
|
|
94
|
-
log.error(
|
|
95
|
-
|
|
96
|
-
);
|
|
97
|
-
throw new Error(
|
|
98
|
-
`Failed to probe audio metadata: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
99
|
-
);
|
|
99
|
+
log.error(`Failed to get audio metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
100
|
+
throw new Error(`Failed to probe audio metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
100
101
|
}
|
|
101
102
|
}
|
|
102
103
|
|
|
@@ -112,22 +113,26 @@ async function generateAudioRendition(
|
|
|
112
113
|
const outputFile = path.join(outputDir, 'audio.m4a');
|
|
113
114
|
|
|
114
115
|
const command = [
|
|
115
|
-
'ffmpeg',
|
|
116
116
|
'-y', // Overwrite output
|
|
117
|
-
'-i',
|
|
118
|
-
|
|
119
|
-
'-
|
|
120
|
-
'
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
117
|
+
'-i',
|
|
118
|
+
audioPath,
|
|
119
|
+
'-c:a',
|
|
120
|
+
'aac', // AAC codec
|
|
121
|
+
'-b:a',
|
|
122
|
+
audioBitrate, // Audio bitrate
|
|
123
|
+
'-movflags',
|
|
124
|
+
'+faststart', // Enable streaming
|
|
125
|
+
outputFile,
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
log.info('Generating web audio rendition (AAC M4A)', { command: 'ffmpeg', args: command, audioBitrate });
|
|
125
129
|
|
|
126
130
|
try {
|
|
127
|
-
const { stderr } = await
|
|
131
|
+
const { stderr } = await execFileAsync('ffmpeg', command, { maxBuffer: FFMPEG_MAX_BUFFER });
|
|
132
|
+
const stderrText = stderr.toString();
|
|
128
133
|
|
|
129
|
-
if (
|
|
130
|
-
log.debug(`FFmpeg stderr for audio rendition: ${
|
|
134
|
+
if (stderrText && !stderrText.includes('frame=')) {
|
|
135
|
+
log.debug(`FFmpeg stderr for audio rendition: ${stderrText}`);
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
// Verify output file was created
|
|
@@ -140,9 +145,7 @@ async function generateAudioRendition(
|
|
|
140
145
|
return null;
|
|
141
146
|
}
|
|
142
147
|
} catch (error) {
|
|
143
|
-
log.error(
|
|
144
|
-
`Failed to generate audio rendition: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
145
|
-
);
|
|
148
|
+
log.error(`Failed to generate audio rendition: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
146
149
|
return null;
|
|
147
150
|
}
|
|
148
151
|
}
|
|
@@ -197,11 +200,7 @@ async function uploadAudioAsRendition(
|
|
|
197
200
|
export async function prepareAudio(
|
|
198
201
|
payload: DSLActivityExecutionPayload<PrepareAudioParams>,
|
|
199
202
|
): Promise<PrepareAudioResult> {
|
|
200
|
-
const {
|
|
201
|
-
client,
|
|
202
|
-
objectId,
|
|
203
|
-
params,
|
|
204
|
-
} = await setupActivity<PrepareAudioParams>(payload);
|
|
203
|
+
const { client, objectId, params } = await setupActivity<PrepareAudioParams>(payload);
|
|
205
204
|
|
|
206
205
|
const audioBitrate = params.audioBitrate ?? DEFAULT_AUDIO_BITRATE;
|
|
207
206
|
|
|
@@ -221,14 +220,12 @@ export async function prepareAudio(
|
|
|
221
220
|
throw new DocumentNotFoundError(`Document ${objectId} has no source`, [objectId]);
|
|
222
221
|
}
|
|
223
222
|
|
|
224
|
-
if (
|
|
225
|
-
|
|
223
|
+
if (
|
|
224
|
+
!inputObject.content.type ||
|
|
225
|
+
(!inputObject.content.type.startsWith('audio/') && !inputObject.content.type.startsWith('video/'))
|
|
226
|
+
) {
|
|
226
227
|
log.error(`Document ${objectId} is not an audio file: ${inputObject.content.type}`);
|
|
227
|
-
throw new InvalidContentTypeError(
|
|
228
|
-
objectId,
|
|
229
|
-
'audio/* or video/*',
|
|
230
|
-
inputObject.content.type || 'unknown',
|
|
231
|
-
);
|
|
228
|
+
throw new InvalidContentTypeError(objectId, 'audio/* or video/*', inputObject.content.type || 'unknown');
|
|
232
229
|
}
|
|
233
230
|
|
|
234
231
|
// Download audio to temp file
|
|
@@ -242,11 +239,7 @@ export async function prepareAudio(
|
|
|
242
239
|
|
|
243
240
|
// Step 2: Generate web audio rendition (AAC M4A)
|
|
244
241
|
log.info('Generating web audio rendition');
|
|
245
|
-
const renditionFile = await generateAudioRendition(
|
|
246
|
-
audioFile,
|
|
247
|
-
tempOutputDir,
|
|
248
|
-
audioBitrate,
|
|
249
|
-
);
|
|
242
|
+
const renditionFile = await generateAudioRendition(audioFile, tempOutputDir, audioBitrate);
|
|
250
243
|
|
|
251
244
|
// Step 3: Upload generated rendition
|
|
252
245
|
const renditions: Rendition[] = [];
|
|
@@ -307,9 +300,7 @@ export async function prepareAudio(
|
|
|
307
300
|
}
|
|
308
301
|
|
|
309
302
|
// Wrap unknown errors in Error
|
|
310
|
-
throw new Error(
|
|
311
|
-
`Failed to prepare audio ${objectId}: ${errorMessage}`,
|
|
312
|
-
);
|
|
303
|
+
throw new Error(`Failed to prepare audio ${objectId}: ${errorMessage}`);
|
|
313
304
|
} finally {
|
|
314
305
|
// Clean up temporary files
|
|
315
306
|
const cleanupPromises: Promise<void>[] = [];
|
|
@@ -1,17 +1,26 @@
|
|
|
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';
|
|
1
6
|
import { ApplicationFailure, log } from '@temporalio/activity';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
import { RequestError } from '@vertesia/api-fetch-client';
|
|
8
|
+
import type { VertesiaClient } from '@vertesia/client';
|
|
9
|
+
import {
|
|
10
|
+
AUDIO_RENDITION_NAME,
|
|
11
|
+
ContentNature,
|
|
12
|
+
type DSLActivityExecutionPayload,
|
|
13
|
+
type DSLActivitySpec,
|
|
14
|
+
POSTER_RENDITION_NAME,
|
|
15
|
+
type RenditionWithDimensions,
|
|
16
|
+
type VideoMetadata,
|
|
17
|
+
WEB_VIDEO_RENDITION_NAME,
|
|
18
|
+
} from '@vertesia/common';
|
|
8
19
|
import { setupActivity } from '../../dsl/setup/ActivityContext.js';
|
|
9
20
|
import { DocumentNotFoundError, InvalidContentTypeError } from '../../errors.js';
|
|
10
21
|
import { saveBlobToTempFile } from '../../utils/blobs.js';
|
|
11
|
-
import { VertesiaClient } from '@vertesia/client';
|
|
12
|
-
import { RequestError } from '@vertesia/api-fetch-client';
|
|
13
22
|
|
|
14
|
-
const
|
|
23
|
+
const execFileAsync = promisify(execFileCallback);
|
|
15
24
|
|
|
16
25
|
// Default configuration constants
|
|
17
26
|
const DEFAULT_MAX_RESOLUTION = 1920; // Max resolution for video rendition (produces 1080p)
|
|
@@ -75,13 +84,11 @@ interface FFProbeOutput {
|
|
|
75
84
|
*/
|
|
76
85
|
async function getVideoMetadata(videoPath: string): Promise<VideoMetadataExtended> {
|
|
77
86
|
try {
|
|
78
|
-
const
|
|
79
|
-
const { stdout } = await
|
|
80
|
-
const metadata = JSON.parse(stdout) as FFProbeOutput;
|
|
87
|
+
const args = ['-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', videoPath];
|
|
88
|
+
const { stdout } = await execFileAsync('ffprobe', args);
|
|
89
|
+
const metadata = JSON.parse(stdout.toString()) as FFProbeOutput;
|
|
81
90
|
|
|
82
|
-
const videoStream = metadata.streams.find(
|
|
83
|
-
(stream) => stream.codec_type === 'video',
|
|
84
|
-
);
|
|
91
|
+
const videoStream = metadata.streams.find((stream) => stream.codec_type === 'video');
|
|
85
92
|
|
|
86
93
|
if (!videoStream) {
|
|
87
94
|
throw ApplicationFailure.nonRetryable('No video stream found in file');
|
|
@@ -101,22 +108,16 @@ async function getVideoMetadata(videoPath: string): Promise<VideoMetadataExtende
|
|
|
101
108
|
}
|
|
102
109
|
|
|
103
110
|
// Check if video has an audio stream
|
|
104
|
-
const audioStream = metadata.streams.find(
|
|
105
|
-
(stream) => stream.codec_type === 'audio',
|
|
106
|
-
);
|
|
111
|
+
const audioStream = metadata.streams.find((stream) => stream.codec_type === 'audio');
|
|
107
112
|
const hasAudio = !!audioStream;
|
|
108
113
|
|
|
109
114
|
return { duration, width, height, codec, bitrate, fps, hasAudio };
|
|
110
115
|
} catch (error) {
|
|
111
|
-
log.error(
|
|
112
|
-
`Failed to get video metadata: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
113
|
-
);
|
|
116
|
+
log.error(`Failed to get video metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
114
117
|
if (error instanceof ApplicationFailure) {
|
|
115
118
|
throw error;
|
|
116
119
|
}
|
|
117
|
-
throw new Error(
|
|
118
|
-
`Failed to probe video metadata: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
119
|
-
);
|
|
120
|
+
throw new Error(`Failed to probe video metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
120
121
|
}
|
|
121
122
|
}
|
|
122
123
|
|
|
@@ -170,7 +171,7 @@ export interface PrepareVideoMetadata {
|
|
|
170
171
|
export interface PrepareVideoResult {
|
|
171
172
|
objectId: string;
|
|
172
173
|
metadata: PrepareVideoMetadata;
|
|
173
|
-
renditions:
|
|
174
|
+
renditions: RenditionWithDimensions[];
|
|
174
175
|
status: 'success';
|
|
175
176
|
}
|
|
176
177
|
|
|
@@ -178,7 +179,7 @@ export interface PrepareVideoResult {
|
|
|
178
179
|
* Generate a video rendition with resolution limited to maxResolution (e.g., 1080p)
|
|
179
180
|
* Uses H.264 codec for broad compatibility
|
|
180
181
|
*/
|
|
181
|
-
async function
|
|
182
|
+
async function generateRenditionWithDimensions(
|
|
182
183
|
videoPath: string,
|
|
183
184
|
outputDir: string,
|
|
184
185
|
metadata: VideoMetadataExtended,
|
|
@@ -189,35 +190,47 @@ async function generateVideoRendition(
|
|
|
189
190
|
// Calculate scaled dimensions
|
|
190
191
|
const dimensions = calculateScaledDimensions(metadata.width, metadata.height, maxResolution);
|
|
191
192
|
|
|
192
|
-
log.info(
|
|
193
|
+
log.info(
|
|
194
|
+
`Video rendition dimensions: ${metadata.width}x${metadata.height} -> ${dimensions.width}x${dimensions.height}`,
|
|
195
|
+
);
|
|
193
196
|
|
|
194
197
|
// Combine scale with color space conversion for maximum web compatibility
|
|
195
198
|
// format=yuv420p converts to 4:2:0 chroma subsampling (from ProRes 4:2:2 or higher)
|
|
196
199
|
const videoFilters = `scale=${dimensions.width}:${dimensions.height},format=yuv420p`;
|
|
197
200
|
|
|
198
201
|
const command = [
|
|
199
|
-
'ffmpeg',
|
|
200
202
|
'-y', // Overwrite output
|
|
201
|
-
'-i',
|
|
202
|
-
|
|
203
|
-
'-
|
|
204
|
-
|
|
205
|
-
'-
|
|
206
|
-
'
|
|
207
|
-
'-
|
|
208
|
-
'
|
|
209
|
-
'-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
203
|
+
'-i',
|
|
204
|
+
videoPath,
|
|
205
|
+
'-vf',
|
|
206
|
+
videoFilters,
|
|
207
|
+
'-c:v',
|
|
208
|
+
'libx264', // H.264 codec
|
|
209
|
+
'-preset',
|
|
210
|
+
'medium', // Balance between speed and compression
|
|
211
|
+
'-crf',
|
|
212
|
+
VIDEO_CRF, // Constant Rate Factor (18-28, lower = better quality)
|
|
213
|
+
'-pix_fmt',
|
|
214
|
+
'yuv420p', // Explicitly set pixel format for compatibility
|
|
215
|
+
'-c:a',
|
|
216
|
+
'aac', // Audio codec
|
|
217
|
+
'-b:a',
|
|
218
|
+
AUDIO_BITRATE, // Audio bitrate
|
|
219
|
+
'-movflags',
|
|
220
|
+
'+faststart', // Enable streaming
|
|
221
|
+
'-max_muxing_queue_size',
|
|
222
|
+
'1024', // Prevent muxing issues
|
|
223
|
+
outputFile,
|
|
224
|
+
];
|
|
225
|
+
|
|
226
|
+
log.info(`Generating ${maxResolution}p video rendition`, { command: 'ffmpeg', args: command });
|
|
215
227
|
|
|
216
228
|
try {
|
|
217
|
-
const { stderr } = await
|
|
229
|
+
const { stderr } = await execFileAsync('ffmpeg', command, { maxBuffer: FFMPEG_MAX_BUFFER });
|
|
230
|
+
const stderrText = stderr.toString();
|
|
218
231
|
|
|
219
|
-
if (
|
|
220
|
-
log.debug(`FFmpeg stderr for video rendition: ${
|
|
232
|
+
if (stderrText && !stderrText.includes('frame=')) {
|
|
233
|
+
log.debug(`FFmpeg stderr for video rendition: ${stderrText}`);
|
|
221
234
|
}
|
|
222
235
|
|
|
223
236
|
// Verify output file was created
|
|
@@ -234,9 +247,7 @@ async function generateVideoRendition(
|
|
|
234
247
|
return null;
|
|
235
248
|
}
|
|
236
249
|
} catch (error) {
|
|
237
|
-
log.error(
|
|
238
|
-
`Failed to generate video rendition: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
239
|
-
);
|
|
250
|
+
log.error(`Failed to generate video rendition: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
240
251
|
return null;
|
|
241
252
|
}
|
|
242
253
|
}
|
|
@@ -244,29 +255,29 @@ async function generateVideoRendition(
|
|
|
244
255
|
/**
|
|
245
256
|
* Extract audio track from video as AAC audio file
|
|
246
257
|
*/
|
|
247
|
-
async function generateAudioRendition(
|
|
248
|
-
videoPath: string,
|
|
249
|
-
outputDir: string,
|
|
250
|
-
): Promise<string | null> {
|
|
258
|
+
async function generateAudioRendition(videoPath: string, outputDir: string): Promise<string | null> {
|
|
251
259
|
const outputFile = path.join(outputDir, 'audio.m4a');
|
|
252
260
|
|
|
253
261
|
const command = [
|
|
254
|
-
'ffmpeg',
|
|
255
262
|
'-y', // Overwrite output
|
|
256
|
-
'-i',
|
|
263
|
+
'-i',
|
|
264
|
+
videoPath,
|
|
257
265
|
'-vn', // No video
|
|
258
|
-
'-c:a',
|
|
259
|
-
'
|
|
260
|
-
|
|
261
|
-
|
|
266
|
+
'-c:a',
|
|
267
|
+
'aac', // Audio codec
|
|
268
|
+
'-b:a',
|
|
269
|
+
AUDIO_BITRATE, // Audio bitrate
|
|
270
|
+
outputFile,
|
|
271
|
+
];
|
|
262
272
|
|
|
263
|
-
log.info('Generating audio-only rendition', { command });
|
|
273
|
+
log.info('Generating audio-only rendition', { command: 'ffmpeg', args: command });
|
|
264
274
|
|
|
265
275
|
try {
|
|
266
|
-
const { stderr } = await
|
|
276
|
+
const { stderr } = await execFileAsync('ffmpeg', command, { maxBuffer: FFMPEG_MAX_BUFFER });
|
|
277
|
+
const stderrText = stderr.toString();
|
|
267
278
|
|
|
268
|
-
if (
|
|
269
|
-
log.debug(`FFmpeg stderr for audio rendition: ${
|
|
279
|
+
if (stderrText && !stderrText.includes('frame=')) {
|
|
280
|
+
log.debug(`FFmpeg stderr for audio rendition: ${stderrText}`);
|
|
270
281
|
}
|
|
271
282
|
|
|
272
283
|
// Verify output file was created
|
|
@@ -279,9 +290,7 @@ async function generateAudioRendition(
|
|
|
279
290
|
return null;
|
|
280
291
|
}
|
|
281
292
|
} catch (error) {
|
|
282
|
-
log.error(
|
|
283
|
-
`Failed to generate audio rendition: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
284
|
-
);
|
|
293
|
+
log.error(`Failed to generate audio rendition: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
285
294
|
return null;
|
|
286
295
|
}
|
|
287
296
|
}
|
|
@@ -305,23 +314,28 @@ async function generateScreenshot(
|
|
|
305
314
|
const scaleFilter = `scale=${dimensions.width}:${dimensions.height}`;
|
|
306
315
|
|
|
307
316
|
const command = [
|
|
308
|
-
'ffmpeg',
|
|
309
317
|
'-y',
|
|
310
|
-
'-ss',
|
|
311
|
-
|
|
312
|
-
'-
|
|
313
|
-
|
|
314
|
-
'-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
318
|
+
'-ss',
|
|
319
|
+
timestamp.toString(),
|
|
320
|
+
'-i',
|
|
321
|
+
videoPath,
|
|
322
|
+
'-vframes',
|
|
323
|
+
'1',
|
|
324
|
+
'-vf',
|
|
325
|
+
scaleFilter,
|
|
326
|
+
'-q:v',
|
|
327
|
+
JPEG_QUALITY, // High quality JPEG
|
|
328
|
+
outputFile,
|
|
329
|
+
];
|
|
330
|
+
|
|
331
|
+
log.info(`Generating ${name} at ${timestamp}s`, { command: 'ffmpeg', args: command });
|
|
319
332
|
|
|
320
333
|
try {
|
|
321
|
-
const { stderr } = await
|
|
334
|
+
const { stderr } = await execFileAsync('ffmpeg', command);
|
|
335
|
+
const stderrText = stderr.toString();
|
|
322
336
|
|
|
323
|
-
if (
|
|
324
|
-
log.debug(`FFmpeg stderr for ${name}: ${
|
|
337
|
+
if (stderrText && !stderrText.includes('frame=')) {
|
|
338
|
+
log.debug(`FFmpeg stderr for ${name}: ${stderrText}`);
|
|
325
339
|
}
|
|
326
340
|
|
|
327
341
|
// Verify output file was created
|
|
@@ -338,9 +352,7 @@ async function generateScreenshot(
|
|
|
338
352
|
return null;
|
|
339
353
|
}
|
|
340
354
|
} catch (error) {
|
|
341
|
-
log.error(
|
|
342
|
-
`Failed to generate ${name}: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
343
|
-
);
|
|
355
|
+
log.error(`Failed to generate ${name}: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
344
356
|
return null;
|
|
345
357
|
}
|
|
346
358
|
}
|
|
@@ -376,7 +388,7 @@ async function uploadMediaAsRendition(
|
|
|
376
388
|
mimeType: string,
|
|
377
389
|
etag: string,
|
|
378
390
|
pathSegment: string,
|
|
379
|
-
): Promise<
|
|
391
|
+
): Promise<RenditionWithDimensions> {
|
|
380
392
|
const storagePath = `renditions/${etag}/${pathSegment}/${fileName}`;
|
|
381
393
|
const uri = await uploadFile(client, result.file, mimeType, fileName, storagePath);
|
|
382
394
|
|
|
@@ -400,11 +412,7 @@ async function uploadMediaAsRendition(
|
|
|
400
412
|
export async function prepareVideo(
|
|
401
413
|
payload: DSLActivityExecutionPayload<PrepareVideoParams>,
|
|
402
414
|
): Promise<PrepareVideoResult> {
|
|
403
|
-
const {
|
|
404
|
-
client,
|
|
405
|
-
objectId,
|
|
406
|
-
params,
|
|
407
|
-
} = await setupActivity<PrepareVideoParams>(payload);
|
|
415
|
+
const { client, objectId, params } = await setupActivity<PrepareVideoParams>(payload);
|
|
408
416
|
|
|
409
417
|
const maxResolution = params.maxResolution ?? DEFAULT_MAX_RESOLUTION;
|
|
410
418
|
const thumbnailSize = params.thumbnailSize ?? DEFAULT_THUMBNAIL_SIZE;
|
|
@@ -431,13 +439,9 @@ export async function prepareVideo(
|
|
|
431
439
|
throw new DocumentNotFoundError(`Document ${objectId} has no source`, [objectId]);
|
|
432
440
|
}
|
|
433
441
|
|
|
434
|
-
if (!inputObject.content.type
|
|
442
|
+
if (!inputObject.content.type?.startsWith('video/')) {
|
|
435
443
|
log.error(`Document ${objectId} is not a video: ${inputObject.content.type}`);
|
|
436
|
-
throw new InvalidContentTypeError(
|
|
437
|
-
objectId,
|
|
438
|
-
'video/*',
|
|
439
|
-
inputObject.content.type || 'unknown',
|
|
440
|
-
);
|
|
444
|
+
throw new InvalidContentTypeError(objectId, 'video/*', inputObject.content.type || 'unknown');
|
|
441
445
|
}
|
|
442
446
|
|
|
443
447
|
// Download video to temp file
|
|
@@ -451,7 +455,7 @@ export async function prepareVideo(
|
|
|
451
455
|
|
|
452
456
|
// Step 2: Generate video rendition
|
|
453
457
|
log.info('Generating video rendition');
|
|
454
|
-
const renditionResult = await
|
|
458
|
+
const renditionResult = await generateRenditionWithDimensions(
|
|
455
459
|
videoFile,
|
|
456
460
|
tempOutputDir,
|
|
457
461
|
metadata,
|
|
@@ -461,25 +465,14 @@ export async function prepareVideo(
|
|
|
461
465
|
// Step 3 & 4: Generate thumbnail and poster in parallel
|
|
462
466
|
log.info('Generating thumbnail and poster');
|
|
463
467
|
const thumbnailTimestamp = Math.max(metadata.duration * THUMBNAIL_TIMESTAMP_RATIO, MIN_SCREENSHOT_TIMESTAMP);
|
|
464
|
-
const posterTimestamp = Math.max(
|
|
468
|
+
const posterTimestamp = Math.max(
|
|
469
|
+
Math.min(metadata.duration * POSTER_TIMESTAMP_RATIO, POSTER_TIMESTAMP_MAX),
|
|
470
|
+
MIN_SCREENSHOT_TIMESTAMP,
|
|
471
|
+
);
|
|
465
472
|
|
|
466
473
|
const [thumbnailResult, posterResult] = await Promise.all([
|
|
467
|
-
generateScreenshot(
|
|
468
|
-
|
|
469
|
-
tempOutputDir,
|
|
470
|
-
thumbnailTimestamp,
|
|
471
|
-
thumbnailSize,
|
|
472
|
-
'thumbnail',
|
|
473
|
-
metadata,
|
|
474
|
-
),
|
|
475
|
-
generateScreenshot(
|
|
476
|
-
videoFile,
|
|
477
|
-
tempOutputDir,
|
|
478
|
-
posterTimestamp,
|
|
479
|
-
posterSize,
|
|
480
|
-
'poster',
|
|
481
|
-
metadata,
|
|
482
|
-
),
|
|
474
|
+
generateScreenshot(videoFile, tempOutputDir, thumbnailTimestamp, thumbnailSize, 'thumbnail', metadata),
|
|
475
|
+
generateScreenshot(videoFile, tempOutputDir, posterTimestamp, posterSize, 'poster', metadata),
|
|
483
476
|
]);
|
|
484
477
|
|
|
485
478
|
// Step 5: Generate audio rendition (if video has audio and requested)
|
|
@@ -492,7 +485,7 @@ export async function prepareVideo(
|
|
|
492
485
|
}
|
|
493
486
|
|
|
494
487
|
// Step 6: Upload generated files
|
|
495
|
-
const renditions:
|
|
488
|
+
const renditions: RenditionWithDimensions[] = [];
|
|
496
489
|
const etag = inputObject.content.etag ?? inputObject.id;
|
|
497
490
|
|
|
498
491
|
if (renditionResult) {
|
|
@@ -511,13 +504,7 @@ export async function prepareVideo(
|
|
|
511
504
|
if (thumbnailResult) {
|
|
512
505
|
const fileName = 'thumbnail.jpg';
|
|
513
506
|
const storagePath = `renditions/${etag}/${thumbnailSize}/${fileName}`;
|
|
514
|
-
await uploadFile(
|
|
515
|
-
client,
|
|
516
|
-
thumbnailResult.file,
|
|
517
|
-
'image/jpeg',
|
|
518
|
-
fileName,
|
|
519
|
-
storagePath,
|
|
520
|
-
);
|
|
507
|
+
await uploadFile(client, thumbnailResult.file, 'image/jpeg', fileName, storagePath);
|
|
521
508
|
}
|
|
522
509
|
|
|
523
510
|
if (posterResult) {
|
|
@@ -597,9 +584,7 @@ export async function prepareVideo(
|
|
|
597
584
|
}
|
|
598
585
|
|
|
599
586
|
// Wrap unknown errors in Error
|
|
600
|
-
throw new Error(
|
|
601
|
-
`Failed to prepare video ${objectId}: ${errorMessage}`,
|
|
602
|
-
);
|
|
587
|
+
throw new Error(`Failed to prepare video ${objectId}: ${errorMessage}`);
|
|
603
588
|
} finally {
|
|
604
589
|
// Clean up temporary files
|
|
605
590
|
const cleanupPromises: Promise<void>[] = [];
|