@uploadista/core 0.0.18-beta.16 → 0.0.18-beta.2

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.
Files changed (118) hide show
  1. package/README.md +0 -102
  2. package/dist/{checksum-p3NmuAky.cjs → checksum-B1XGxTsI.cjs} +1 -1
  3. package/dist/{checksum-COoD-F1l.mjs → checksum-DsSiXsPO.mjs} +2 -2
  4. package/dist/{checksum-COoD-F1l.mjs.map → checksum-DsSiXsPO.mjs.map} +1 -1
  5. package/dist/errors/index.cjs +1 -1
  6. package/dist/errors/index.d.cts +1 -1
  7. package/dist/errors/index.d.mts +1 -1
  8. package/dist/errors/index.mjs +1 -1
  9. package/dist/flow/index.cjs +1 -1
  10. package/dist/flow/index.d.cts +5 -5
  11. package/dist/flow/index.d.mts +5 -5
  12. package/dist/flow/index.mjs +1 -1
  13. package/dist/flow-CAywogte.mjs +2 -0
  14. package/dist/flow-CAywogte.mjs.map +1 -0
  15. package/dist/flow-D7QeEZVs.cjs +1 -0
  16. package/dist/{index-BFSHumky.d.mts → index-C4zZWqtz.d.cts} +2 -2
  17. package/dist/{index-BFSHumky.d.mts.map → index-C4zZWqtz.d.cts.map} +1 -1
  18. package/dist/{index-9gyMMEIB.d.cts → index-CHQtirAp.d.mts} +2 -2
  19. package/dist/{index-B9V5SSxl.d.mts.map → index-CHQtirAp.d.mts.map} +1 -1
  20. package/dist/{index-B9V5SSxl.d.mts → index-CoAMCnm6.d.cts} +2 -2
  21. package/dist/index-CoAMCnm6.d.cts.map +1 -0
  22. package/dist/{index-BOic6-Cg.d.cts → index-D5ALjvAb.d.cts} +730 -2682
  23. package/dist/index-D5ALjvAb.d.cts.map +1 -0
  24. package/dist/{index-TokXRAZ5.d.mts → index-DiHUjE9t.d.mts} +730 -2682
  25. package/dist/index-DiHUjE9t.d.mts.map +1 -0
  26. package/dist/{index-DFbu_-zn.d.cts → index-zQ707AXp.d.mts} +2 -2
  27. package/dist/{index-DFbu_-zn.d.cts.map → index-zQ707AXp.d.mts.map} +1 -1
  28. package/dist/index.cjs +1 -1
  29. package/dist/index.d.cts +5 -5
  30. package/dist/index.d.mts +5 -5
  31. package/dist/index.mjs +1 -1
  32. package/dist/{stream-limiter-Cem7Zvaw.cjs → stream-limiter-B6CRA3Zd.cjs} +1 -1
  33. package/dist/{stream-limiter-B9nsn2gb.mjs → stream-limiter-ByVdSC5T.mjs} +2 -2
  34. package/dist/{stream-limiter-B9nsn2gb.mjs.map → stream-limiter-ByVdSC5T.mjs.map} +1 -1
  35. package/dist/streams/index.cjs +1 -1
  36. package/dist/streams/index.d.cts +2 -2
  37. package/dist/streams/index.d.mts +2 -2
  38. package/dist/streams/index.mjs +1 -1
  39. package/dist/testing/index.cjs +1 -1
  40. package/dist/testing/index.d.cts +4 -4
  41. package/dist/testing/index.d.mts +4 -4
  42. package/dist/testing/index.mjs +1 -1
  43. package/dist/types/index.cjs +1 -1
  44. package/dist/types/index.d.cts +5 -5
  45. package/dist/types/index.d.mts +5 -5
  46. package/dist/types/index.mjs +1 -1
  47. package/dist/types-Ce7ILjFt.cjs +1 -0
  48. package/dist/types-CnhCQFkg.mjs +2 -0
  49. package/dist/types-CnhCQFkg.mjs.map +1 -0
  50. package/dist/upload/index.cjs +1 -1
  51. package/dist/upload/index.d.cts +4 -4
  52. package/dist/upload/index.d.mts +4 -4
  53. package/dist/upload/index.mjs +1 -1
  54. package/dist/upload-DPX3jSQH.mjs +2 -0
  55. package/dist/upload-DPX3jSQH.mjs.map +1 -0
  56. package/dist/upload-uQfkhcMj.cjs +1 -0
  57. package/dist/{uploadista-error-CkSxSyNo.mjs → uploadista-error-B-kFH_SE.mjs} +1 -2
  58. package/dist/uploadista-error-B-kFH_SE.mjs.map +1 -0
  59. package/dist/{uploadista-error-CYCmAtkZ.d.cts → uploadista-error-DMMrZF03.d.mts} +3 -3
  60. package/dist/uploadista-error-DMMrZF03.d.mts.map +1 -0
  61. package/dist/{uploadista-error-BfpQ4mOO.cjs → uploadista-error-Di9fniB1.cjs} +1 -2
  62. package/dist/{uploadista-error-DR0XimpE.d.mts → uploadista-error-DigegPz2.d.cts} +3 -3
  63. package/dist/uploadista-error-DigegPz2.d.cts.map +1 -0
  64. package/dist/utils/index.cjs +1 -1
  65. package/dist/utils/index.d.cts +2 -2
  66. package/dist/utils/index.d.mts +2 -2
  67. package/dist/utils/index.mjs +1 -1
  68. package/dist/{utils-QJOPnlmt.cjs → utils-B_unvkI4.cjs} +1 -1
  69. package/dist/{utils-B-ZhQ6b0.mjs → utils-C9dntrSe.mjs} +2 -2
  70. package/dist/{utils-B-ZhQ6b0.mjs.map → utils-C9dntrSe.mjs.map} +1 -1
  71. package/package.json +5 -9
  72. package/src/errors/uploadista-error.ts +1 -6
  73. package/src/flow/README.md +0 -102
  74. package/src/flow/event.ts +1 -105
  75. package/src/flow/flow-server.ts +4 -129
  76. package/src/flow/flow.ts +1 -154
  77. package/src/flow/index.ts +0 -11
  78. package/src/flow/node.ts +0 -16
  79. package/src/flow/nodes/input-node.ts +0 -1
  80. package/src/flow/nodes/transform-node.ts +2 -60
  81. package/src/flow/typed-flow.ts +0 -26
  82. package/src/flow/types/flow-job.ts +0 -20
  83. package/src/flow/types/flow-types.ts +0 -313
  84. package/src/types/index.ts +0 -2
  85. package/src/types/kv-store.ts +2 -82
  86. package/src/types/upload-file.ts +0 -29
  87. package/src/upload/create-upload.ts +0 -24
  88. package/src/upload/upload-chunk.ts +47 -74
  89. package/dist/flow-BmchsFjm.mjs +0 -2
  90. package/dist/flow-BmchsFjm.mjs.map +0 -1
  91. package/dist/flow-CL2AoQS7.cjs +0 -1
  92. package/dist/index-9gyMMEIB.d.cts.map +0 -1
  93. package/dist/index-BOic6-Cg.d.cts.map +0 -1
  94. package/dist/index-TokXRAZ5.d.mts.map +0 -1
  95. package/dist/types-CHbyV8e6.mjs +0 -2
  96. package/dist/types-CHbyV8e6.mjs.map +0 -1
  97. package/dist/types-D3_rWxD0.cjs +0 -1
  98. package/dist/upload-Damo68a7.mjs +0 -2
  99. package/dist/upload-Damo68a7.mjs.map +0 -1
  100. package/dist/upload-cCPtyGXl.cjs +0 -1
  101. package/dist/uploadista-error-CYCmAtkZ.d.cts.map +0 -1
  102. package/dist/uploadista-error-CkSxSyNo.mjs.map +0 -1
  103. package/dist/uploadista-error-DR0XimpE.d.mts.map +0 -1
  104. package/docs/CIRCUIT_BREAKER.md +0 -381
  105. package/docs/DEAD-LETTER-QUEUE.md +0 -374
  106. package/src/flow/circuit-breaker-store.ts +0 -382
  107. package/src/flow/circuit-breaker.ts +0 -99
  108. package/src/flow/dead-letter-queue.ts +0 -573
  109. package/src/flow/distributed-circuit-breaker.ts +0 -437
  110. package/src/flow/types/dead-letter-item.ts +0 -258
  111. package/src/flow/types/retry-policy.ts +0 -260
  112. package/src/flow/utils/file-naming.ts +0 -308
  113. package/src/types/circuit-breaker-store.ts +0 -222
  114. package/src/types/health-check.ts +0 -204
  115. package/tests/flow/dead-letter-item.test.ts +0 -283
  116. package/tests/flow/dead-letter-queue.test.ts +0 -613
  117. package/tests/flow/file-naming.test.ts +0 -390
  118. package/tests/flow/retry-policy.test.ts +0 -284
package/README.md CHANGED
@@ -1075,108 +1075,6 @@ const program = Effect.acquireUseRelease(
1075
1075
  - `@uploadista/client` - Browser upload client
1076
1076
  - `@uploadista/server` - Server-side utilities
1077
1077
 
1078
- ## Dead Letter Queue (DLQ)
1079
-
1080
- The Dead Letter Queue provides automatic capture and retry capabilities for failed flow jobs. When a flow execution fails, the DLQ preserves the complete failure context for debugging, automatic retry, or manual intervention.
1081
-
1082
- ### Enabling DLQ
1083
-
1084
- ```typescript
1085
- import {
1086
- DeadLetterQueueService,
1087
- deadLetterQueueService,
1088
- deadLetterQueueKvStore,
1089
- } from "@uploadista/core/flow";
1090
-
1091
- // Provide the DLQ service in your Effect layer stack
1092
- const program = myFlowProgram.pipe(
1093
- Effect.provide(deadLetterQueueService),
1094
- Effect.provide(deadLetterQueueKvStore),
1095
- Effect.provide(baseKvStoreLayer)
1096
- );
1097
- ```
1098
-
1099
- ### Flow-Level Configuration
1100
-
1101
- ```typescript
1102
- const flowConfig = {
1103
- flowId: "image-pipeline",
1104
- deadLetterQueue: {
1105
- enabled: true,
1106
- retryPolicy: {
1107
- enabled: true,
1108
- maxRetries: 5,
1109
- backoff: {
1110
- type: "exponential",
1111
- initialDelayMs: 1000,
1112
- maxDelayMs: 300000,
1113
- multiplier: 2,
1114
- jitter: true
1115
- },
1116
- nonRetryableErrors: ["VALIDATION_ERROR", "AUTH_ERROR"],
1117
- ttlMs: 604800000 // 7 days
1118
- }
1119
- }
1120
- };
1121
- ```
1122
-
1123
- ### Retry Policies
1124
-
1125
- Three backoff strategies are supported:
1126
-
1127
- ```typescript
1128
- // Immediate retry
1129
- { type: "immediate" }
1130
-
1131
- // Fixed delay
1132
- { type: "fixed", delayMs: 5000 }
1133
-
1134
- // Exponential backoff with jitter
1135
- {
1136
- type: "exponential",
1137
- initialDelayMs: 1000,
1138
- maxDelayMs: 300000,
1139
- multiplier: 2,
1140
- jitter: true
1141
- }
1142
- ```
1143
-
1144
- ### Admin Operations
1145
-
1146
- ```typescript
1147
- const adminHandler = Effect.gen(function* () {
1148
- const dlq = yield* DeadLetterQueueService;
1149
-
1150
- // Get statistics
1151
- const stats = yield* dlq.getStats();
1152
-
1153
- // List pending items
1154
- const { items, total } = yield* dlq.list({ status: "pending" });
1155
-
1156
- // Retry a specific item
1157
- yield* dlq.markRetrying(itemId);
1158
- // ... re-execute flow ...
1159
- yield* dlq.markResolved(itemId);
1160
-
1161
- // Cleanup old items
1162
- const weekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
1163
- yield* dlq.cleanup({ olderThan: weekAgo });
1164
- });
1165
- ```
1166
-
1167
- ### DLQ Events
1168
-
1169
- Monitor DLQ lifecycle with events:
1170
-
1171
- - `DlqItemAdded` - Job added to DLQ
1172
- - `DlqRetryStart` - Retry attempt started
1173
- - `DlqRetrySuccess` - Retry succeeded
1174
- - `DlqRetryFailed` - Retry failed
1175
- - `DlqItemExhausted` - Max retries reached
1176
- - `DlqItemResolved` - Item resolved
1177
-
1178
- For complete documentation, see [docs/DEAD-LETTER-QUEUE.md](./docs/DEAD-LETTER-QUEUE.md).
1179
-
1180
1078
  ## Development
1181
1079
 
1182
1080
  ### Build
@@ -1 +1 @@
1
- const e=require(`./types-D3_rWxD0.cjs`),t=require(`./uploadista-error-BfpQ4mOO.cjs`);let n=require(`effect`);var r=class extends n.Context.Tag(`UploadistaGenerateIdService`)(){};const i=r.Service,a=r.of({generateId:()=>n.Effect.succeed(crypto.randomUUID())}),o=n.Layer.succeed(r,a),s=r.of({generateId:()=>n.Effect.succeed(`${Date.now()}-${Math.random().toString(36).slice(2,11)}`)}),c=[`sha256`];function l(e){return c.includes(e)}function u(e,r){return n.Effect.gen(function*(){if(!l(r))return yield*t.n.fromCode(`UNSUPPORTED_CHECKSUM_ALGORITHM`,{body:`Checksum algorithm '${r}' is not supported. Supported algorithms: ${c.join(`, `)}`,details:{algorithm:r,supportedAlgorithms:c}}).toEffect();let i=r.toUpperCase().replace(/\d+/,`-$&`),a=yield*n.Effect.tryPromise({try:()=>crypto.subtle.digest(i,e),catch:e=>t.n.fromCode(`UNKNOWN_ERROR`,{body:`Failed to compute checksum: ${e instanceof Error?e.message:`Unknown error`}`,cause:e,details:{algorithm:r}})});return Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,`0`)).join(``)})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
1
+ const e=require(`./types-Ce7ILjFt.cjs`),t=require(`./uploadista-error-Di9fniB1.cjs`);let n=require(`effect`);var r=class extends n.Context.Tag(`UploadistaGenerateIdService`)(){};const i=r.Service,a=r.of({generateId:()=>n.Effect.succeed(crypto.randomUUID())}),o=n.Layer.succeed(r,a),s=r.of({generateId:()=>n.Effect.succeed(`${Date.now()}-${Math.random().toString(36).slice(2,11)}`)}),c=[`sha256`];function l(e){return c.includes(e)}function u(e,r){return n.Effect.gen(function*(){if(!l(r))return yield*t.n.fromCode(`UNSUPPORTED_CHECKSUM_ALGORITHM`,{body:`Checksum algorithm '${r}' is not supported. Supported algorithms: ${c.join(`, `)}`,details:{algorithm:r,supportedAlgorithms:c}}).toEffect();let i=r.toUpperCase().replace(/\d+/,`-$&`),a=yield*n.Effect.tryPromise({try:()=>crypto.subtle.digest(i,e),catch:e=>t.n.fromCode(`UNKNOWN_ERROR`,{body:`Failed to compute checksum: ${e instanceof Error?e.message:`Unknown error`}`,cause:e,details:{algorithm:r}})});return Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,`0`)).join(``)})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
@@ -1,2 +1,2 @@
1
- import{n as e}from"./uploadista-error-CkSxSyNo.mjs";import{Context as t,Effect as n,Layer as r}from"effect";var i=class extends t.Tag(`UploadistaGenerateIdService`)(){};const a=i.Service,o=i.of({generateId:()=>n.succeed(crypto.randomUUID())}),s=r.succeed(i,o),c=i.of({generateId:()=>n.succeed(`${Date.now()}-${Math.random().toString(36).slice(2,11)}`)}),l=[`sha256`];function u(e){return l.includes(e)}function d(t,r){return n.gen(function*(){if(!u(r))return yield*e.fromCode(`UNSUPPORTED_CHECKSUM_ALGORITHM`,{body:`Checksum algorithm '${r}' is not supported. Supported algorithms: ${l.join(`, `)}`,details:{algorithm:r,supportedAlgorithms:l}}).toEffect();let i=r.toUpperCase().replace(/\d+/,`-$&`),a=yield*n.tryPromise({try:()=>crypto.subtle.digest(i,t),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{body:`Failed to compute checksum: ${t instanceof Error?t.message:`Unknown error`}`,cause:t,details:{algorithm:r}})});return Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,`0`)).join(``)})}export{o as a,s as i,u as n,a as o,i as r,c as s,d as t};
2
- //# sourceMappingURL=checksum-COoD-F1l.mjs.map
1
+ import{n as e}from"./uploadista-error-B-kFH_SE.mjs";import{Context as t,Effect as n,Layer as r}from"effect";var i=class extends t.Tag(`UploadistaGenerateIdService`)(){};const a=i.Service,o=i.of({generateId:()=>n.succeed(crypto.randomUUID())}),s=r.succeed(i,o),c=i.of({generateId:()=>n.succeed(`${Date.now()}-${Math.random().toString(36).slice(2,11)}`)}),l=[`sha256`];function u(e){return l.includes(e)}function d(t,r){return n.gen(function*(){if(!u(r))return yield*e.fromCode(`UNSUPPORTED_CHECKSUM_ALGORITHM`,{body:`Checksum algorithm '${r}' is not supported. Supported algorithms: ${l.join(`, `)}`,details:{algorithm:r,supportedAlgorithms:l}}).toEffect();let i=r.toUpperCase().replace(/\d+/,`-$&`),a=yield*n.tryPromise({try:()=>crypto.subtle.digest(i,t),catch:t=>e.fromCode(`UNKNOWN_ERROR`,{body:`Failed to compute checksum: ${t instanceof Error?t.message:`Unknown error`}`,cause:t,details:{algorithm:r}})});return Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,`0`)).join(``)})}export{o as a,s as i,u as n,a as o,i as r,c as s,d as t};
2
+ //# sourceMappingURL=checksum-DsSiXsPO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checksum-COoD-F1l.mjs","names":[],"sources":["../src/utils/generate-id.ts","../src/utils/checksum.ts"],"sourcesContent":["import { Context, Effect, Layer } from \"effect\";\n\nexport type GenerateIdShape = {\n generateId: () => Effect.Effect<string>;\n};\n\n// Declaring a tag for a service that generates random id\nexport class GenerateId extends Context.Tag(\"UploadistaGenerateIdService\")<\n GenerateId,\n { readonly generateId: () => Effect.Effect<string> }\n>() {}\n\n/**\n * Effect-based ID generation services\n */\nexport const GenerateIdService = GenerateId.Service;\n\n/**\n * Generates a random UUID using Effect\n * @returns Effect that produces a random UUID string\n */\nexport const GenerateIdRandom = GenerateId.of({\n generateId: () => Effect.succeed(crypto.randomUUID()),\n});\n\nexport const GenerateIdLive = Layer.succeed(GenerateId, GenerateIdRandom);\n\n/**\n * Generates a timestamp-based ID using Effect\n * @returns Effect that produces a timestamp-based ID\n */\nexport const GenerateIdTimestamp = GenerateId.of({\n generateId: () =>\n Effect.succeed(`${Date.now()}-${Math.random().toString(36).slice(2, 11)}`),\n});\n","import { Effect } from \"effect\";\nimport { UploadistaError } from \"../errors/uploadista-error\";\n\n/**\n * Supported checksum algorithms\n */\nconst SUPPORTED_ALGORITHMS = [\"sha256\"] as const;\nexport type ChecksumAlgorithm = (typeof SUPPORTED_ALGORITHMS)[number];\n\n/**\n * Check if a checksum algorithm is supported\n */\nexport function isSupportedAlgorithm(\n algorithm: string,\n): algorithm is ChecksumAlgorithm {\n return SUPPORTED_ALGORITHMS.includes(algorithm as ChecksumAlgorithm);\n}\n\n/**\n * Compute checksum of file bytes using the Web Crypto API.\n * This works across all modern platforms: browsers, Node.js 15+, Deno, Bun, and Cloudflare Workers.\n *\n * @param bytes - File content as Uint8Array\n * @param algorithm - Hashing algorithm to use (currently only 'sha256' is supported)\n * @returns Effect that resolves to hex-encoded checksum string\n */\nexport function computeChecksum(\n bytes: Uint8Array,\n algorithm: string,\n): Effect.Effect<string, UploadistaError> {\n return Effect.gen(function* () {\n // Validate algorithm is supported\n if (!isSupportedAlgorithm(algorithm)) {\n return yield* UploadistaError.fromCode(\"UNSUPPORTED_CHECKSUM_ALGORITHM\", {\n body: `Checksum algorithm '${algorithm}' is not supported. Supported algorithms: ${SUPPORTED_ALGORITHMS.join(\", \")}`,\n details: { algorithm, supportedAlgorithms: SUPPORTED_ALGORITHMS },\n }).toEffect();\n }\n\n // Map algorithm name to Web Crypto API algorithm name\n const webCryptoAlgorithm = algorithm.toUpperCase().replace(/\\d+/, \"-$&\"); // \"sha256\" -> \"SHA-256\"\n\n // Compute hash using Web Crypto API (available in browsers, Node.js 15+, Deno, Bun, Cloudflare Workers)\n // Pass Uint8Array directly - it's a valid BufferSource\n const hashBuffer = yield* Effect.tryPromise({\n try: () =>\n crypto.subtle.digest(webCryptoAlgorithm, bytes as BufferSource),\n catch: (error) =>\n UploadistaError.fromCode(\"UNKNOWN_ERROR\", {\n body: `Failed to compute checksum: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n cause: error,\n details: { algorithm },\n }),\n });\n\n // Convert ArrayBuffer to hex string\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n\n return hashHex;\n });\n}\n"],"mappings":"4GAOA,IAAa,EAAb,cAAgC,EAAQ,IAAI,8BAA8B,EAGvE,AAAC,GAKJ,MAAa,EAAoB,EAAW,QAM/B,EAAmB,EAAW,GAAG,CAC5C,eAAkB,EAAO,QAAQ,OAAO,YAAY,CAAC,CACtD,CAAC,CAEW,EAAiB,EAAM,QAAQ,EAAY,EAAiB,CAM5D,EAAsB,EAAW,GAAG,CAC/C,eACE,EAAO,QAAQ,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAG,GAAG,GAAG,CAC7E,CAAC,CC5BI,EAAuB,CAAC,SAAS,CAMvC,SAAgB,EACd,EACgC,CAChC,OAAO,EAAqB,SAAS,EAA+B,CAWtE,SAAgB,EACd,EACA,EACwC,CACxC,OAAO,EAAO,IAAI,WAAa,CAE7B,GAAI,CAAC,EAAqB,EAAU,CAClC,OAAO,MAAO,EAAgB,SAAS,iCAAkC,CACvE,KAAM,uBAAuB,EAAU,4CAA4C,EAAqB,KAAK,KAAK,GAClH,QAAS,CAAE,YAAW,oBAAqB,EAAsB,CAClE,CAAC,CAAC,UAAU,CAIf,IAAM,EAAqB,EAAU,aAAa,CAAC,QAAQ,MAAO,MAAM,CAIlE,EAAa,MAAO,EAAO,WAAW,CAC1C,QACE,OAAO,OAAO,OAAO,EAAoB,EAAsB,CACjE,MAAQ,GACN,EAAgB,SAAS,gBAAiB,CACxC,KAAM,+BAA+B,aAAiB,MAAQ,EAAM,QAAU,kBAC9E,MAAO,EACP,QAAS,CAAE,YAAW,CACvB,CAAC,CACL,CAAC,CAQF,OALkB,MAAM,KAAK,IAAI,WAAW,EAAW,CAAC,CAErD,IAAK,GAAS,EAAK,SAAS,GAAG,CAAC,SAAS,EAAG,IAAI,CAAC,CACjD,KAAK,GAAG,EAGX"}
1
+ {"version":3,"file":"checksum-DsSiXsPO.mjs","names":[],"sources":["../src/utils/generate-id.ts","../src/utils/checksum.ts"],"sourcesContent":["import { Context, Effect, Layer } from \"effect\";\n\nexport type GenerateIdShape = {\n generateId: () => Effect.Effect<string>;\n};\n\n// Declaring a tag for a service that generates random id\nexport class GenerateId extends Context.Tag(\"UploadistaGenerateIdService\")<\n GenerateId,\n { readonly generateId: () => Effect.Effect<string> }\n>() {}\n\n/**\n * Effect-based ID generation services\n */\nexport const GenerateIdService = GenerateId.Service;\n\n/**\n * Generates a random UUID using Effect\n * @returns Effect that produces a random UUID string\n */\nexport const GenerateIdRandom = GenerateId.of({\n generateId: () => Effect.succeed(crypto.randomUUID()),\n});\n\nexport const GenerateIdLive = Layer.succeed(GenerateId, GenerateIdRandom);\n\n/**\n * Generates a timestamp-based ID using Effect\n * @returns Effect that produces a timestamp-based ID\n */\nexport const GenerateIdTimestamp = GenerateId.of({\n generateId: () =>\n Effect.succeed(`${Date.now()}-${Math.random().toString(36).slice(2, 11)}`),\n});\n","import { Effect } from \"effect\";\nimport { UploadistaError } from \"../errors/uploadista-error\";\n\n/**\n * Supported checksum algorithms\n */\nconst SUPPORTED_ALGORITHMS = [\"sha256\"] as const;\nexport type ChecksumAlgorithm = (typeof SUPPORTED_ALGORITHMS)[number];\n\n/**\n * Check if a checksum algorithm is supported\n */\nexport function isSupportedAlgorithm(\n algorithm: string,\n): algorithm is ChecksumAlgorithm {\n return SUPPORTED_ALGORITHMS.includes(algorithm as ChecksumAlgorithm);\n}\n\n/**\n * Compute checksum of file bytes using the Web Crypto API.\n * This works across all modern platforms: browsers, Node.js 15+, Deno, Bun, and Cloudflare Workers.\n *\n * @param bytes - File content as Uint8Array\n * @param algorithm - Hashing algorithm to use (currently only 'sha256' is supported)\n * @returns Effect that resolves to hex-encoded checksum string\n */\nexport function computeChecksum(\n bytes: Uint8Array,\n algorithm: string,\n): Effect.Effect<string, UploadistaError> {\n return Effect.gen(function* () {\n // Validate algorithm is supported\n if (!isSupportedAlgorithm(algorithm)) {\n return yield* UploadistaError.fromCode(\"UNSUPPORTED_CHECKSUM_ALGORITHM\", {\n body: `Checksum algorithm '${algorithm}' is not supported. Supported algorithms: ${SUPPORTED_ALGORITHMS.join(\", \")}`,\n details: { algorithm, supportedAlgorithms: SUPPORTED_ALGORITHMS },\n }).toEffect();\n }\n\n // Map algorithm name to Web Crypto API algorithm name\n const webCryptoAlgorithm = algorithm.toUpperCase().replace(/\\d+/, \"-$&\"); // \"sha256\" -> \"SHA-256\"\n\n // Compute hash using Web Crypto API (available in browsers, Node.js 15+, Deno, Bun, Cloudflare Workers)\n // Pass Uint8Array directly - it's a valid BufferSource\n const hashBuffer = yield* Effect.tryPromise({\n try: () =>\n crypto.subtle.digest(webCryptoAlgorithm, bytes as BufferSource),\n catch: (error) =>\n UploadistaError.fromCode(\"UNKNOWN_ERROR\", {\n body: `Failed to compute checksum: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n cause: error,\n details: { algorithm },\n }),\n });\n\n // Convert ArrayBuffer to hex string\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n\n return hashHex;\n });\n}\n"],"mappings":"4GAOA,IAAa,EAAb,cAAgC,EAAQ,IAAI,8BAA8B,EAGvE,AAAC,GAKJ,MAAa,EAAoB,EAAW,QAM/B,EAAmB,EAAW,GAAG,CAC5C,eAAkB,EAAO,QAAQ,OAAO,YAAY,CAAC,CACtD,CAAC,CAEW,EAAiB,EAAM,QAAQ,EAAY,EAAiB,CAM5D,EAAsB,EAAW,GAAG,CAC/C,eACE,EAAO,QAAQ,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,EAAG,GAAG,GAAG,CAC7E,CAAC,CC5BI,EAAuB,CAAC,SAAS,CAMvC,SAAgB,EACd,EACgC,CAChC,OAAO,EAAqB,SAAS,EAA+B,CAWtE,SAAgB,EACd,EACA,EACwC,CACxC,OAAO,EAAO,IAAI,WAAa,CAE7B,GAAI,CAAC,EAAqB,EAAU,CAClC,OAAO,MAAO,EAAgB,SAAS,iCAAkC,CACvE,KAAM,uBAAuB,EAAU,4CAA4C,EAAqB,KAAK,KAAK,GAClH,QAAS,CAAE,YAAW,oBAAqB,EAAsB,CAClE,CAAC,CAAC,UAAU,CAIf,IAAM,EAAqB,EAAU,aAAa,CAAC,QAAQ,MAAO,MAAM,CAIlE,EAAa,MAAO,EAAO,WAAW,CAC1C,QACE,OAAO,OAAO,OAAO,EAAoB,EAAsB,CACjE,MAAQ,GACN,EAAgB,SAAS,gBAAiB,CACxC,KAAM,+BAA+B,aAAiB,MAAQ,EAAM,QAAU,kBAC9E,MAAO,EACP,QAAS,CAAE,YAAW,CACvB,CAAC,CACL,CAAC,CAQF,OALkB,MAAM,KAAK,IAAI,WAAW,EAAW,CAAC,CAErD,IAAK,GAAS,EAAK,SAAS,GAAG,CAAC,SAAS,EAAG,IAAI,CAAC,CACjD,KAAK,GAAG,EAGX"}
@@ -1 +1 @@
1
- const e=require(`../uploadista-error-BfpQ4mOO.cjs`);require(`../errors-CRm1FHHT.cjs`),exports.ERRORS=e.t,exports.ERROR_CATALOG=e.t,exports.UploadistaError=e.n,exports.httpFailure=e.r,exports.isUploadistaError=e.i;
1
+ const e=require(`../uploadista-error-Di9fniB1.cjs`);require(`../errors-CRm1FHHT.cjs`),exports.ERRORS=e.t,exports.ERROR_CATALOG=e.t,exports.UploadistaError=e.n,exports.httpFailure=e.r,exports.isUploadistaError=e.i;
@@ -1,3 +1,3 @@
1
- import { a as isUploadistaError, i as httpFailure, n as UploadistaError, r as UploadistaErrorCode, t as ERROR_CATALOG } from "../uploadista-error-CYCmAtkZ.cjs";
1
+ import { a as isUploadistaError, i as httpFailure, n as UploadistaError, r as UploadistaErrorCode, t as ERROR_CATALOG } from "../uploadista-error-DigegPz2.cjs";
2
2
  import "../index-_wQ5ClJU.cjs";
3
3
  export { ERROR_CATALOG as ERRORS, ERROR_CATALOG, UploadistaError, UploadistaErrorCode, httpFailure, isUploadistaError };
@@ -1,3 +1,3 @@
1
- import { a as isUploadistaError, i as httpFailure, n as UploadistaError, r as UploadistaErrorCode, t as ERROR_CATALOG } from "../uploadista-error-DR0XimpE.mjs";
1
+ import { a as isUploadistaError, i as httpFailure, n as UploadistaError, r as UploadistaErrorCode, t as ERROR_CATALOG } from "../uploadista-error-DMMrZF03.mjs";
2
2
  import "../index-C-svZlpj.mjs";
3
3
  export { ERROR_CATALOG as ERRORS, ERROR_CATALOG, UploadistaError, UploadistaErrorCode, httpFailure, isUploadistaError };
@@ -1 +1 @@
1
- import{i as e,n as t,r as n,t as r}from"../uploadista-error-CkSxSyNo.mjs";import"../errors-CtPUOWNd.mjs";export{r as ERRORS,r as ERROR_CATALOG,t as UploadistaError,n as httpFailure,e as isUploadistaError};
1
+ import{i as e,n as t,r as n,t as r}from"../uploadista-error-B-kFH_SE.mjs";import"../errors-CtPUOWNd.mjs";export{r as ERRORS,r as ERROR_CATALOG,t as UploadistaError,n as httpFailure,e as isUploadistaError};
@@ -1 +1 @@
1
- require(`../types-D3_rWxD0.cjs`),require(`../uploadista-error-BfpQ4mOO.cjs`),require(`../errors-CRm1FHHT.cjs`);const e=require(`../flow-CL2AoQS7.cjs`);require(`../upload-cCPtyGXl.cjs`),require(`../checksum-p3NmuAky.cjs`),require(`../stream-limiter-Cem7Zvaw.cjs`),exports.AVAILABLE_TEMPLATE_VARIABLES=e.F,exports.CredentialProvider=e.N,exports.DEFAULT_CIRCUIT_BREAKER_CONFIG=e.Kt,exports.DEFAULT_RETRY_POLICY=e.X,exports.DeadLetterQueueService=e.q,exports.DistributedCircuitBreaker=e.Bt,exports.DistributedCircuitBreakerRegistry=e.Vt,exports.DocumentAiPlugin=e.M,exports.DocumentPlugin=e.j,exports.EventType=e.Rt,exports.FlowProvider=e.H,exports.FlowServer=e.U,exports.FlowWaitUntil=e.W,exports.IMAGE_DESCRIPTION_OUTPUT_TYPE_ID=e._t,exports.ImageAiPlugin=e.A,exports.ImagePlugin=e.k,exports.InputTypeRegistry=e.Ft,exports.NodeType=e.kt,exports.OCR_OUTPUT_TYPE_ID=e.vt,exports.OutputTypeRegistry=e.Mt,exports.ParallelScheduler=e.gt,exports.STORAGE_OUTPUT_TYPE_ID=e.yt,exports.STREAMING_INPUT_TYPE_ID=e.bt,exports.VideoPlugin=e.a,exports.VirusScanPlugin=e.i,exports.ZipPlugin=e.r,exports.applyFileNaming=e.I,exports.blurTransformSchema=e.s,exports.brightnessTransformSchema=e.c,exports.buildNamingContext=e.L,exports.calculateBackoffDelay=e.Z,exports.calculateExpirationDate=e.Q,exports.completeNodeExecution=e.Dt,exports.contrastTransformSchema=e.l,exports.createDeadLetterQueueService=e.J,exports.createFlow=e.n,exports.createFlowEdge=e.zt,exports.createFlowNode=e.At,exports.createFlowServer=e.G,exports.createFlowWithSchema=e.et,exports.createInputNode=e.Ct,exports.createTransformNode=e.P,exports.createTypeGuard=e.nt,exports.deadLetterQueueService=e.Y,exports.describeImageParamsSchema=e.O,exports.describeVideoMetadataSchema=e.D,exports.extractFrameVideoParamsSchema=e.E,exports.filterOutputsByType=e.rt,exports.flipTransformSchema=e.u,exports.flowServer=e.K,exports.getBaseName=e.R,exports.getExtension=e.z,exports.getFirstOutputByType=e.it,exports.getFlowData=e.tt,exports.getNodeData=e.jt,exports.getOutputByNodeId=e.at,exports.getSingleOutputByType=e.ot,exports.grayscaleTransformSchema=e.d,exports.hasOutputOfType=e.st,exports.imageDescriptionOutputSchema=e.xt,exports.inputDataSchema=e.wt,exports.inputNodeParamsSchema=e.Tt,exports.inputTypeRegistry=e.It,exports.interpolateFileName=e.B,exports.isErrorRetryable=e.$,exports.isFinalizeOperation=e.ct,exports.isImageDescriptionOutput=e.lt,exports.isInitOperation=e.ut,exports.isOcrOutput=e.dt,exports.isStorageOutput=e.ft,exports.isUploadFile=e.pt,exports.isUploadOperation=e.mt,exports.isUrlOperation=e.ht,exports.kvCircuitBreakerStoreLayer=e.Ht,exports.logoTransformSchema=e.f,exports.makeKvCircuitBreakerStore=e.Ut,exports.makeMemoryCircuitBreakerStore=e.Wt,exports.memoryCircuitBreakerStoreLayer=e.Gt,exports.ocrOutputSchema=e.St,exports.optimizeParamsSchema=e.T,exports.outputTypeRegistry=e.Nt,exports.removeBackgroundParamsSchema=e.w,exports.resizeParamsSchema=e.C,exports.resizeTransformSchema=e.p,exports.resizeVideoParamsSchema=e.S,exports.resolveUploadMetadata=e.Et,exports.rotateTransformSchema=e.m,exports.runArgsSchema=e.t,exports.sepiaTransformSchema=e.h,exports.sharpenTransformSchema=e.g,exports.textTransformSchema=e._,exports.transcodeVideoParamsSchema=e.x,exports.transformImageParamsSchema=e.v,exports.transformationSchema=e.y,exports.trimVideoParamsSchema=e.o,exports.validateFlowInput=e.Lt,exports.validateFlowOutput=e.Pt,exports.validatePattern=e.V,exports.waitingNodeExecution=e.Ot,exports.watermarkTransformSchema=e.b;
1
+ require(`../types-Ce7ILjFt.cjs`),require(`../uploadista-error-Di9fniB1.cjs`),require(`../errors-CRm1FHHT.cjs`);const e=require(`../flow-D7QeEZVs.cjs`);require(`../upload-uQfkhcMj.cjs`),require(`../checksum-B1XGxTsI.cjs`),require(`../stream-limiter-B6CRA3Zd.cjs`),exports.CredentialProvider=e.N,exports.DocumentAiPlugin=e.M,exports.DocumentPlugin=e.j,exports.EventType=e.wt,exports.FlowProvider=e.F,exports.FlowServer=e.I,exports.FlowWaitUntil=e.L,exports.IMAGE_DESCRIPTION_OUTPUT_TYPE_ID=e.rt,exports.ImageAiPlugin=e.A,exports.ImagePlugin=e.k,exports.InputTypeRegistry=e.xt,exports.NodeType=e.ht,exports.OCR_OUTPUT_TYPE_ID=e.it,exports.OutputTypeRegistry=e.vt,exports.ParallelScheduler=e.nt,exports.STORAGE_OUTPUT_TYPE_ID=e.at,exports.STREAMING_INPUT_TYPE_ID=e.ot,exports.VideoPlugin=e.a,exports.VirusScanPlugin=e.i,exports.ZipPlugin=e.r,exports.blurTransformSchema=e.s,exports.brightnessTransformSchema=e.c,exports.completeNodeExecution=e.pt,exports.contrastTransformSchema=e.l,exports.createFlow=e.n,exports.createFlowEdge=e.Tt,exports.createFlowNode=e.gt,exports.createFlowServer=e.R,exports.createFlowWithSchema=e.B,exports.createInputNode=e.lt,exports.createTransformNode=e.P,exports.createTypeGuard=e.H,exports.describeImageParamsSchema=e.O,exports.describeVideoMetadataSchema=e.D,exports.extractFrameVideoParamsSchema=e.E,exports.filterOutputsByType=e.U,exports.flipTransformSchema=e.u,exports.flowServer=e.z,exports.getFirstOutputByType=e.W,exports.getFlowData=e.V,exports.getNodeData=e._t,exports.getOutputByNodeId=e.G,exports.getSingleOutputByType=e.K,exports.grayscaleTransformSchema=e.d,exports.hasOutputOfType=e.q,exports.imageDescriptionOutputSchema=e.st,exports.inputDataSchema=e.ut,exports.inputNodeParamsSchema=e.dt,exports.inputTypeRegistry=e.St,exports.isFinalizeOperation=e.J,exports.isImageDescriptionOutput=e.Y,exports.isInitOperation=e.X,exports.isOcrOutput=e.Z,exports.isStorageOutput=e.Q,exports.isUploadFile=e.$,exports.isUploadOperation=e.et,exports.isUrlOperation=e.tt,exports.logoTransformSchema=e.f,exports.ocrOutputSchema=e.ct,exports.optimizeParamsSchema=e.T,exports.outputTypeRegistry=e.yt,exports.removeBackgroundParamsSchema=e.w,exports.resizeParamsSchema=e.C,exports.resizeTransformSchema=e.p,exports.resizeVideoParamsSchema=e.S,exports.resolveUploadMetadata=e.ft,exports.rotateTransformSchema=e.m,exports.runArgsSchema=e.t,exports.sepiaTransformSchema=e.h,exports.sharpenTransformSchema=e.g,exports.textTransformSchema=e._,exports.transcodeVideoParamsSchema=e.x,exports.transformImageParamsSchema=e.v,exports.transformationSchema=e.y,exports.trimVideoParamsSchema=e.o,exports.validateFlowInput=e.Ct,exports.validateFlowOutput=e.bt,exports.waitingNodeExecution=e.mt,exports.watermarkTransformSchema=e.b;
@@ -1,6 +1,6 @@
1
- import "../uploadista-error-CYCmAtkZ.cjs";
1
+ import "../uploadista-error-DigegPz2.cjs";
2
2
  import "../index-_wQ5ClJU.cjs";
3
- import { $ as DescribeImageParams, $i as waitingNodeExecution, $n as FlowWaitUntil, $r as IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, $t as sepiaTransformSchema, A as NodeDefinition, Aa as FlowEventNodeStart, An as CredentialProviderShape, At as BrightnessTransform, B as getOutputByNodeId, Ba as kvCircuitBreakerStoreLayer, Bi as FlowCircuitBreakerConfig, Bn as ResolveEffect, Bt as TextTransform, C as DeadLetterRetryAttempt, Ca as FlowEventJobEnd, Cn as DocumentAiPluginShape, Ct as extractFrameVideoParamsSchema, D as FlowOutputMap, Da as FlowEventNodePause, Dn as OcrTaskType, Dt as ImagePluginLayer, E as FlowInputMap, Ea as FlowEventNodeError, En as OcrResult, Et as ImagePlugin, F as createFlow, Fa as createFlowNode, Fi as AutoNamingSuffixGenerator, Fn as createTransformNode, Ft as OverlayPosition, G as isInitOperation, Gi as FlowNodeData, Gn as inputDataSchema, Gt as blurTransformSchema, H as hasOutputOfType, Ha as makeMemoryCircuitBreakerStore, Hi as FlowConfig, Hn as InputData, Ht as Transformation, I as NarrowedTypedOutput, Ia as getNodeData, Ii as BuiltInTypedOutput, In as ExtractEffectError, It as ResizeTransform, J as isUploadFile, Ji as NodeExecutionResult, Jn as FlowProviderShape, Jt as flipTransformSchema, K as isOcrOutput, Ki as NamingContext, Kn as inputNodeParamsSchema, Kt as brightnessTransformSchema, L as createTypeGuard, La as AllowRequestResult, Li as CustomTypedOutput, Ln as ExtractEffectRequirements, Lt as RotateTransform, M as TypedFlow, Ma as ConditionOperator, Mn as ParallelScheduler, Mt as FlipTransform, N as TypedFlowConfig, Na as ConditionValue, Ni as FlowEdge, Nn as ParallelSchedulerConfig, Nt as GrayscaleTransform, O as FlowPluginRequirements, Oa as FlowEventNodeResponse, On as CredentialProvider, Ot as ImagePluginShape, P as TypedFlowEdge, Pa as NodeType, Pi as createFlowEdge, Pn as TransformNodeConfig, Pt as LogoTransform, Q as removeBackgroundParamsSchema, Qi as completeNodeExecution, Qn as FlowServerShape, Qt as rotateTransformSchema, R as filterOutputsByType, Ra as DistributedCircuitBreaker, Ri as FileNamingConfig, Rn as ExtractLayerService, Rt as SepiaTransform, S as DeadLetterRetryAllResult, Sa as FlowEventFlowStart, Sn as DocumentAiPluginLayer, St as ExtractFrameVideoParams, T as runArgsSchema, Ta as FlowEventNodeEnd, Tn as OcrResolution, Tt as describeVideoMetadataSchema, U as isFinalizeOperation, Ua as memoryCircuitBreakerStoreLayer, Ui as FlowDeadLetterQueueConfig, Un as InputNodeParams, Ut as TransformationType, V as getSingleOutputByType, Va as makeKvCircuitBreakerStore, Vi as FlowCircuitBreakerFallback, Vn as FlowCondition, Vt as TransformImageParams, W as isImageDescriptionOutput, Wi as FlowNode, Wn as createInputNode, Wt as WatermarkTransform, X as isUrlOperation, Xi as TypeCompatibilityChecker, Xn as FlowServerLayer, Xt as logoTransformSchema, Y as isUploadOperation, Yi as NodeTypeMap, Yn as FlowServer, Yt as grayscaleTransformSchema, Z as RemoveBackgroundParams, Zi as TypedOutput, Zn as FlowServerOptions, Zt as resizeTransformSchema, _ as DeadLetterItem, _a as FlowEventDlqRetrySuccess, _i as Flow, _n as MergePdfParams, _t as trimVideoParamsSchema, a as getExtension, aa as RetryPolicy, ai as imageDescriptionOutputSchema, an as ResizeParams, ar as FlowJobTask, at as ZipPlugin, b as DeadLetterProcessResult, ba as FlowEventFlowError, bi as createFlowWithSchema, bn as DocumentAiContext, bt as ResizeVideoParams, c as ResolvedUploadMetadata, ca as isErrorRetryable, ci as OutputTypeRegistry, cn as optimizeParamsSchema, ct as ScanMetadata, d as DeadLetterQueueServiceShape, da as FlowEvent, di as validateFlowOutput, dn as ImageAiPluginLayer, do as CircuitBreakerConfig, dt as VirusScanPluginLayer, ea as BackoffStrategy, ei as ImageDescriptionOutput, en as sharpenTransformSchema, er as WaitUntilCallback, et as describeImageParamsSchema, f as createDeadLetterQueueService, fa as FlowEventDlqItemAdded, fi as InputTypeDefinition, fn as ImageAiPluginShape, fo as CircuitBreakerEvent, ft as VirusScanPluginShape, g as DeadLetterError, ga as FlowEventDlqRetryStart, gi as validateFlowInput, gn as DocumentPluginShape, go as DEFAULT_CIRCUIT_BREAKER_CONFIG, gt as TrimVideoParams, h as DeadLetterCleanupResult, ha as FlowEventDlqRetryFailed, hi as inputTypeRegistry, hn as DocumentPluginLayer, ho as CircuitBreakerState, ht as VideoPluginShape, i as getBaseName, ia as ImmediateBackoff, ii as STREAMING_INPUT_TYPE_ID, in as watermarkTransformSchema, ir as FlowJobStatus, it as ZipParams, j as NodeDefinitionsRecord, ja as ConditionField, jn as ExecutionLevel, jt as ContrastTransform, k as FlowRequirements, ka as FlowEventNodeResume, kn as CredentialProviderLayer, kt as BlurTransform, l as resolveUploadMetadata, la as DlqEvent, li as OutputValidationResult, ln as ImageAiContext, lt as ScanResult, m as DeadLetterCleanupOptions, ma as FlowEventDlqItemResolved, mi as InputValidationResult, mn as DocumentPlugin, mo as CircuitBreakerFallback, mt as VideoPluginLayer, n as applyFileNaming, na as ExponentialBackoff, ni as OcrOutput, nn as transformImageParamsSchema, nr as flowServer, nt as PluginLayer, o as interpolateFileName, oa as calculateBackoffDelay, oi as ocrOutputSchema, on as resizeParamsSchema, or as FlowJobTaskStatus, ot as ZipPluginLayer, p as deadLetterQueueService, pa as FlowEventDlqItemExhausted, pi as InputTypeRegistry, pn as DocumentMetadata, po as CircuitBreakerEventHandler, pt as VideoPlugin, q as isStorageOutput, qi as NodeConnectionValidator, qn as FlowProvider, qt as contrastTransformSchema, r as buildNamingContext, ra as FixedBackoff, ri as STORAGE_OUTPUT_TYPE_ID, rn as transformationSchema, rr as FlowJob, rt as ZipInput, s as validatePattern, sa as calculateExpirationDate, si as OutputTypeDefinition, sn as OptimizeParams, sr as FlowJobTraceContext, st as ZipPluginShape, t as AVAILABLE_TEMPLATE_VARIABLES, ta as DEFAULT_RETRY_POLICY, ti as OCR_OUTPUT_TYPE_ID, tn as textTransformSchema, tr as createFlowServer, tt as Plugin, u as DeadLetterQueueService, ua as EventType, ui as outputTypeRegistry, un as ImageAiPlugin, ut as VirusScanPlugin, v as DeadLetterItemStatus, va as FlowEventFlowCancel, vi as FlowData, vn as SplitPdfParams, vt as TranscodeVideoParams, w as RunArgs, wa as FlowEventJobStart, wn as OcrParams, wt as DescribeVideoMetadata, x as DeadLetterQueueStats, xa as FlowEventFlowPause, xi as getFlowData, xn as DocumentAiPlugin, xt as resizeVideoParamsSchema, y as DeadLetterListOptions, ya as FlowEventFlowEnd, yi as FlowExecutionResult, yn as SplitPdfResult, yt as transcodeVideoParamsSchema, z as getFirstOutputByType, za as DistributedCircuitBreakerRegistry, zi as FileNamingFunction, zn as ExtractLayerServices, zt as SharpenTransform } from "../index-BOic6-Cg.cjs";
4
- import "../index-9gyMMEIB.cjs";
5
- import "../index-DFbu_-zn.cjs";
6
- export { AVAILABLE_TEMPLATE_VARIABLES, AllowRequestResult, AutoNamingSuffixGenerator, BackoffStrategy, BlurTransform, BrightnessTransform, BuiltInTypedOutput, CircuitBreakerConfig, CircuitBreakerEvent, CircuitBreakerEventHandler, CircuitBreakerFallback, CircuitBreakerState, ConditionField, ConditionOperator, ConditionValue, ContrastTransform, CredentialProvider, CredentialProviderLayer, CredentialProviderShape, CustomTypedOutput, DEFAULT_CIRCUIT_BREAKER_CONFIG, DEFAULT_RETRY_POLICY, DeadLetterCleanupOptions, DeadLetterCleanupResult, DeadLetterError, DeadLetterItem, DeadLetterItemStatus, DeadLetterListOptions, DeadLetterProcessResult, DeadLetterQueueService, DeadLetterQueueServiceShape, DeadLetterQueueStats, DeadLetterRetryAllResult, DeadLetterRetryAttempt, DescribeImageParams, DescribeVideoMetadata, DistributedCircuitBreaker, DistributedCircuitBreakerRegistry, DlqEvent, DocumentAiContext, DocumentAiPlugin, DocumentAiPluginLayer, DocumentAiPluginShape, DocumentMetadata, DocumentPlugin, DocumentPluginLayer, DocumentPluginShape, EventType, ExecutionLevel, ExponentialBackoff, ExtractEffectError, ExtractEffectRequirements, ExtractFrameVideoParams, ExtractLayerService, ExtractLayerServices, FileNamingConfig, FileNamingFunction, FixedBackoff, FlipTransform, Flow, FlowCircuitBreakerConfig, FlowCircuitBreakerFallback, FlowCondition, FlowConfig, FlowData, FlowDeadLetterQueueConfig, FlowEdge, FlowEvent, FlowEventDlqItemAdded, FlowEventDlqItemExhausted, FlowEventDlqItemResolved, FlowEventDlqRetryFailed, FlowEventDlqRetryStart, FlowEventDlqRetrySuccess, FlowEventFlowCancel, FlowEventFlowEnd, FlowEventFlowError, FlowEventFlowPause, FlowEventFlowStart, FlowEventJobEnd, FlowEventJobStart, FlowEventNodeEnd, FlowEventNodeError, FlowEventNodePause, FlowEventNodeResponse, FlowEventNodeResume, FlowEventNodeStart, FlowExecutionResult, FlowInputMap, FlowJob, FlowJobStatus, FlowJobTask, FlowJobTaskStatus, FlowJobTraceContext, FlowNode, FlowNodeData, FlowOutputMap, FlowPluginRequirements, FlowProvider, FlowProviderShape, FlowRequirements, FlowServer, FlowServerLayer, FlowServerOptions, FlowServerShape, FlowWaitUntil, GrayscaleTransform, IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, ImageAiContext, ImageAiPlugin, ImageAiPluginLayer, ImageAiPluginShape, ImageDescriptionOutput, ImagePlugin, ImagePluginLayer, ImagePluginShape, ImmediateBackoff, InputData, InputNodeParams, InputTypeDefinition, InputTypeRegistry, InputValidationResult, LogoTransform, MergePdfParams, NamingContext, NarrowedTypedOutput, NodeConnectionValidator, NodeDefinition, NodeDefinitionsRecord, NodeExecutionResult, NodeType, NodeTypeMap, OCR_OUTPUT_TYPE_ID, OcrOutput, OcrParams, OcrResolution, OcrResult, OcrTaskType, OptimizeParams, OutputTypeDefinition, OutputTypeRegistry, OutputValidationResult, OverlayPosition, ParallelScheduler, ParallelSchedulerConfig, Plugin, PluginLayer, RemoveBackgroundParams, ResizeParams, ResizeTransform, ResizeVideoParams, ResolveEffect, ResolvedUploadMetadata, RetryPolicy, RotateTransform, RunArgs, STORAGE_OUTPUT_TYPE_ID, STREAMING_INPUT_TYPE_ID, ScanMetadata, ScanResult, SepiaTransform, SharpenTransform, SplitPdfParams, SplitPdfResult, TextTransform, TranscodeVideoParams, TransformImageParams, TransformNodeConfig, Transformation, TransformationType, TrimVideoParams, TypeCompatibilityChecker, TypedFlow, TypedFlowConfig, TypedFlowEdge, TypedOutput, VideoPlugin, VideoPluginLayer, VideoPluginShape, VirusScanPlugin, VirusScanPluginLayer, VirusScanPluginShape, WaitUntilCallback, WatermarkTransform, ZipInput, ZipParams, ZipPlugin, ZipPluginLayer, ZipPluginShape, applyFileNaming, blurTransformSchema, brightnessTransformSchema, buildNamingContext, calculateBackoffDelay, calculateExpirationDate, completeNodeExecution, contrastTransformSchema, createDeadLetterQueueService, createFlow, createFlowEdge, createFlowNode, createFlowServer, createFlowWithSchema, createInputNode, createTransformNode, createTypeGuard, deadLetterQueueService, describeImageParamsSchema, describeVideoMetadataSchema, extractFrameVideoParamsSchema, filterOutputsByType, flipTransformSchema, flowServer, getBaseName, getExtension, getFirstOutputByType, getFlowData, getNodeData, getOutputByNodeId, getSingleOutputByType, grayscaleTransformSchema, hasOutputOfType, imageDescriptionOutputSchema, inputDataSchema, inputNodeParamsSchema, inputTypeRegistry, interpolateFileName, isErrorRetryable, isFinalizeOperation, isImageDescriptionOutput, isInitOperation, isOcrOutput, isStorageOutput, isUploadFile, isUploadOperation, isUrlOperation, kvCircuitBreakerStoreLayer, logoTransformSchema, makeKvCircuitBreakerStore, makeMemoryCircuitBreakerStore, memoryCircuitBreakerStoreLayer, ocrOutputSchema, optimizeParamsSchema, outputTypeRegistry, removeBackgroundParamsSchema, resizeParamsSchema, resizeTransformSchema, resizeVideoParamsSchema, resolveUploadMetadata, rotateTransformSchema, runArgsSchema, sepiaTransformSchema, sharpenTransformSchema, textTransformSchema, transcodeVideoParamsSchema, transformImageParamsSchema, transformationSchema, trimVideoParamsSchema, validateFlowInput, validateFlowOutput, validatePattern, waitingNodeExecution, watermarkTransformSchema };
3
+ import { $ as VideoPluginLayer, $t as DocumentPlugin, A as isInitOperation, Ai as FlowEventJobEnd, An as FlowServerOptions, Ar as OutputValidationResult, At as blurTransformSchema, B as Plugin, Bi as ConditionValue, Br as FlowExecutionResult, Bt as textTransformSchema, C as filterOutputsByType, Ci as EventType, Cn as createInputNode, Cr as OcrOutput, Ct as SepiaTransform, D as hasOutputOfType, Di as FlowEventFlowError, Dn as FlowProviderShape, Dr as ocrOutputSchema, Dt as Transformation, E as getSingleOutputByType, Ei as FlowEventFlowEnd, En as FlowProvider, Er as imageDescriptionOutputSchema, Et as TransformImageParams, F as isUrlOperation, Fi as FlowEventNodeResponse, Fn as flowServer, Fr as InputValidationResult, Ft as logoTransformSchema, G as ZipPluginLayer, Gt as resizeParamsSchema, H as ZipInput, Hi as createFlowNode, Hr as getFlowData, Ht as transformationSchema, I as RemoveBackgroundParams, Ii as FlowEventNodeResume, In as FlowJob, Ir as inputTypeRegistry, It as resizeTransformSchema, J as ScanResult, Jt as ImageAiContext, K as ZipPluginShape, Kt as OptimizeParams, L as removeBackgroundParamsSchema, Li as FlowEventNodeStart, Ln as FlowJobStatus, Lr as validateFlowInput, Lt as rotateTransformSchema, M as isStorageOutput, Mi as FlowEventNodeEnd, Mn as FlowWaitUntil, Mr as validateFlowOutput, Mt as contrastTransformSchema, N as isUploadFile, Ni as FlowEventNodeError, Nn as WaitUntilCallback, Nr as InputTypeDefinition, Nt as flipTransformSchema, O as isFinalizeOperation, Oi as FlowEventFlowPause, On as FlowServer, Or as OutputTypeDefinition, Ot as TransformationType, P as isUploadOperation, Pi as FlowEventNodePause, Pn as createFlowServer, Pr as InputTypeRegistry, Pt as grayscaleTransformSchema, Q as VideoPlugin, Qt as DocumentMetadata, R as DescribeImageParams, Ri as ConditionField, Rn as FlowJobTask, Rr as Flow, Rt as sepiaTransformSchema, S as createTypeGuard, Si as waitingNodeExecution, Sn as InputNodeParams, Sr as OCR_OUTPUT_TYPE_ID, St as RotateTransform, T as getOutputByNodeId, Ti as FlowEventFlowCancel, Tn as inputNodeParamsSchema, Tr as STREAMING_INPUT_TYPE_ID, Tt as TextTransform, U as ZipParams, Ui as getNodeData, Ut as watermarkTransformSchema, V as PluginLayer, Vi as NodeType, Vr as createFlowWithSchema, Vt as transformImageParamsSchema, W as ZipPlugin, Wt as ResizeParams, X as VirusScanPluginLayer, Xt as ImageAiPluginLayer, Y as VirusScanPlugin, Yt as ImageAiPlugin, Z as VirusScanPluginShape, Zt as ImageAiPluginShape, _ as ExtractLayerService, _i as NodeExecutionResult, _n as ParallelScheduler, _t as FlipTransform, a as FlowInputMap, an as DocumentAiContext, at as ResizeVideoParams, b as FlowCondition, bi as TypedOutput, bn as createTransformNode, br as IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, bt as OverlayPosition, c as FlowRequirements, cn as DocumentAiPluginShape, ct as extractFrameVideoParamsSchema, d as TypedFlow, di as BuiltInTypedOutput, dn as OcrResult, dt as ImagePlugin, en as DocumentPluginLayer, et as VideoPluginShape, f as TypedFlowConfig, fi as CustomTypedOutput, fn as OcrTaskType, ft as ImagePluginLayer, g as ExtractEffectRequirements, gi as NodeConnectionValidator, gn as ExecutionLevel, gt as ContrastTransform, h as ExtractEffectError, hi as FlowNodeData, hn as CredentialProviderShape, ht as BrightnessTransform, i as runArgsSchema, in as SplitPdfResult, it as transcodeVideoParamsSchema, j as isOcrOutput, ji as FlowEventJobStart, jn as FlowServerShape, jr as outputTypeRegistry, jt as brightnessTransformSchema, k as isImageDescriptionOutput, ki as FlowEventFlowStart, kn as FlowServerLayer, kr as OutputTypeRegistry, kt as WatermarkTransform, l as NodeDefinition, li as FlowEdge, ln as OcrParams, lt as DescribeVideoMetadata, m as createFlow, mi as FlowNode, mn as CredentialProviderLayer, mt as BlurTransform, n as resolveUploadMetadata, nn as MergePdfParams, nt as trimVideoParamsSchema, o as FlowOutputMap, on as DocumentAiPlugin, ot as resizeVideoParamsSchema, p as TypedFlowEdge, pi as FlowConfig, pn as CredentialProvider, pt as ImagePluginShape, q as ScanMetadata, qt as optimizeParamsSchema, r as RunArgs, rn as SplitPdfParams, rt as TranscodeVideoParams, s as FlowPluginRequirements, sn as DocumentAiPluginLayer, st as ExtractFrameVideoParams, t as ResolvedUploadMetadata, tn as DocumentPluginShape, tt as TrimVideoParams, u as NodeDefinitionsRecord, ui as createFlowEdge, un as OcrResolution, ut as describeVideoMetadataSchema, v as ExtractLayerServices, vi as NodeTypeMap, vn as ParallelSchedulerConfig, vt as GrayscaleTransform, w as getFirstOutputByType, wi as FlowEvent, wn as inputDataSchema, wr as STORAGE_OUTPUT_TYPE_ID, wt as SharpenTransform, x as NarrowedTypedOutput, xi as completeNodeExecution, xn as InputData, xr as ImageDescriptionOutput, xt as ResizeTransform, y as ResolveEffect, yi as TypeCompatibilityChecker, yn as TransformNodeConfig, yt as LogoTransform, z as describeImageParamsSchema, zi as ConditionOperator, zn as FlowJobTaskStatus, zr as FlowData, zt as sharpenTransformSchema } from "../index-D5ALjvAb.cjs";
4
+ import "../index-CoAMCnm6.cjs";
5
+ import "../index-C4zZWqtz.cjs";
6
+ export { BlurTransform, BrightnessTransform, BuiltInTypedOutput, ConditionField, ConditionOperator, ConditionValue, ContrastTransform, CredentialProvider, CredentialProviderLayer, CredentialProviderShape, CustomTypedOutput, DescribeImageParams, DescribeVideoMetadata, DocumentAiContext, DocumentAiPlugin, DocumentAiPluginLayer, DocumentAiPluginShape, DocumentMetadata, DocumentPlugin, DocumentPluginLayer, DocumentPluginShape, EventType, ExecutionLevel, ExtractEffectError, ExtractEffectRequirements, ExtractFrameVideoParams, ExtractLayerService, ExtractLayerServices, FlipTransform, Flow, FlowCondition, FlowConfig, FlowData, FlowEdge, FlowEvent, FlowEventFlowCancel, FlowEventFlowEnd, FlowEventFlowError, FlowEventFlowPause, FlowEventFlowStart, FlowEventJobEnd, FlowEventJobStart, FlowEventNodeEnd, FlowEventNodeError, FlowEventNodePause, FlowEventNodeResponse, FlowEventNodeResume, FlowEventNodeStart, FlowExecutionResult, FlowInputMap, FlowJob, FlowJobStatus, FlowJobTask, FlowJobTaskStatus, FlowNode, FlowNodeData, FlowOutputMap, FlowPluginRequirements, FlowProvider, FlowProviderShape, FlowRequirements, FlowServer, FlowServerLayer, FlowServerOptions, FlowServerShape, FlowWaitUntil, GrayscaleTransform, IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, ImageAiContext, ImageAiPlugin, ImageAiPluginLayer, ImageAiPluginShape, ImageDescriptionOutput, ImagePlugin, ImagePluginLayer, ImagePluginShape, InputData, InputNodeParams, InputTypeDefinition, InputTypeRegistry, InputValidationResult, LogoTransform, MergePdfParams, NarrowedTypedOutput, NodeConnectionValidator, NodeDefinition, NodeDefinitionsRecord, NodeExecutionResult, NodeType, NodeTypeMap, OCR_OUTPUT_TYPE_ID, OcrOutput, OcrParams, OcrResolution, OcrResult, OcrTaskType, OptimizeParams, OutputTypeDefinition, OutputTypeRegistry, OutputValidationResult, OverlayPosition, ParallelScheduler, ParallelSchedulerConfig, Plugin, PluginLayer, RemoveBackgroundParams, ResizeParams, ResizeTransform, ResizeVideoParams, ResolveEffect, ResolvedUploadMetadata, RotateTransform, RunArgs, STORAGE_OUTPUT_TYPE_ID, STREAMING_INPUT_TYPE_ID, ScanMetadata, ScanResult, SepiaTransform, SharpenTransform, SplitPdfParams, SplitPdfResult, TextTransform, TranscodeVideoParams, TransformImageParams, TransformNodeConfig, Transformation, TransformationType, TrimVideoParams, TypeCompatibilityChecker, TypedFlow, TypedFlowConfig, TypedFlowEdge, TypedOutput, VideoPlugin, VideoPluginLayer, VideoPluginShape, VirusScanPlugin, VirusScanPluginLayer, VirusScanPluginShape, WaitUntilCallback, WatermarkTransform, ZipInput, ZipParams, ZipPlugin, ZipPluginLayer, ZipPluginShape, blurTransformSchema, brightnessTransformSchema, completeNodeExecution, contrastTransformSchema, createFlow, createFlowEdge, createFlowNode, createFlowServer, createFlowWithSchema, createInputNode, createTransformNode, createTypeGuard, describeImageParamsSchema, describeVideoMetadataSchema, extractFrameVideoParamsSchema, filterOutputsByType, flipTransformSchema, flowServer, getFirstOutputByType, getFlowData, getNodeData, getOutputByNodeId, getSingleOutputByType, grayscaleTransformSchema, hasOutputOfType, imageDescriptionOutputSchema, inputDataSchema, inputNodeParamsSchema, inputTypeRegistry, isFinalizeOperation, isImageDescriptionOutput, isInitOperation, isOcrOutput, isStorageOutput, isUploadFile, isUploadOperation, isUrlOperation, logoTransformSchema, ocrOutputSchema, optimizeParamsSchema, outputTypeRegistry, removeBackgroundParamsSchema, resizeParamsSchema, resizeTransformSchema, resizeVideoParamsSchema, resolveUploadMetadata, rotateTransformSchema, runArgsSchema, sepiaTransformSchema, sharpenTransformSchema, textTransformSchema, transcodeVideoParamsSchema, transformImageParamsSchema, transformationSchema, trimVideoParamsSchema, validateFlowInput, validateFlowOutput, waitingNodeExecution, watermarkTransformSchema };
@@ -1,6 +1,6 @@
1
- import "../uploadista-error-DR0XimpE.mjs";
1
+ import "../uploadista-error-DMMrZF03.mjs";
2
2
  import "../index-C-svZlpj.mjs";
3
- import { $ as DescribeImageParams, $i as waitingNodeExecution, $n as FlowWaitUntil, $r as IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, $t as sepiaTransformSchema, A as NodeDefinition, Aa as FlowEventNodeStart, An as CredentialProviderShape, At as BrightnessTransform, B as getOutputByNodeId, Ba as kvCircuitBreakerStoreLayer, Bi as FlowCircuitBreakerConfig, Bn as ResolveEffect, Bt as TextTransform, C as DeadLetterRetryAttempt, Ca as FlowEventJobEnd, Cn as DocumentAiPluginShape, Ct as extractFrameVideoParamsSchema, D as FlowOutputMap, Da as FlowEventNodePause, Dn as OcrTaskType, Dt as ImagePluginLayer, E as FlowInputMap, Ea as FlowEventNodeError, En as OcrResult, Et as ImagePlugin, F as createFlow, Fa as createFlowNode, Fi as AutoNamingSuffixGenerator, Fn as createTransformNode, Ft as OverlayPosition, G as isInitOperation, Gi as FlowNodeData, Gn as inputDataSchema, Gt as blurTransformSchema, H as hasOutputOfType, Ha as makeMemoryCircuitBreakerStore, Hi as FlowConfig, Hn as InputData, Ht as Transformation, I as NarrowedTypedOutput, Ia as getNodeData, Ii as BuiltInTypedOutput, In as ExtractEffectError, It as ResizeTransform, J as isUploadFile, Ji as NodeExecutionResult, Jn as FlowProviderShape, Jt as flipTransformSchema, K as isOcrOutput, Ki as NamingContext, Kn as inputNodeParamsSchema, Kt as brightnessTransformSchema, L as createTypeGuard, La as AllowRequestResult, Li as CustomTypedOutput, Ln as ExtractEffectRequirements, Lt as RotateTransform, M as TypedFlow, Ma as ConditionOperator, Mn as ParallelScheduler, Mt as FlipTransform, N as TypedFlowConfig, Na as ConditionValue, Ni as FlowEdge, Nn as ParallelSchedulerConfig, Nt as GrayscaleTransform, O as FlowPluginRequirements, Oa as FlowEventNodeResponse, On as CredentialProvider, Ot as ImagePluginShape, P as TypedFlowEdge, Pa as NodeType, Pi as createFlowEdge, Pn as TransformNodeConfig, Pt as LogoTransform, Q as removeBackgroundParamsSchema, Qi as completeNodeExecution, Qn as FlowServerShape, Qt as rotateTransformSchema, R as filterOutputsByType, Ra as DistributedCircuitBreaker, Ri as FileNamingConfig, Rn as ExtractLayerService, Rt as SepiaTransform, S as DeadLetterRetryAllResult, Sa as FlowEventFlowStart, Sn as DocumentAiPluginLayer, St as ExtractFrameVideoParams, T as runArgsSchema, Ta as FlowEventNodeEnd, Tn as OcrResolution, Tt as describeVideoMetadataSchema, U as isFinalizeOperation, Ua as memoryCircuitBreakerStoreLayer, Ui as FlowDeadLetterQueueConfig, Un as InputNodeParams, Ut as TransformationType, V as getSingleOutputByType, Va as makeKvCircuitBreakerStore, Vi as FlowCircuitBreakerFallback, Vn as FlowCondition, Vt as TransformImageParams, W as isImageDescriptionOutput, Wi as FlowNode, Wn as createInputNode, Wt as WatermarkTransform, X as isUrlOperation, Xi as TypeCompatibilityChecker, Xn as FlowServerLayer, Xt as logoTransformSchema, Y as isUploadOperation, Yi as NodeTypeMap, Yn as FlowServer, Yt as grayscaleTransformSchema, Z as RemoveBackgroundParams, Zi as TypedOutput, Zn as FlowServerOptions, Zt as resizeTransformSchema, _ as DeadLetterItem, _a as FlowEventDlqRetrySuccess, _i as Flow, _n as MergePdfParams, _t as trimVideoParamsSchema, a as getExtension, aa as RetryPolicy, ai as imageDescriptionOutputSchema, an as ResizeParams, ar as FlowJobTask, at as ZipPlugin, b as DeadLetterProcessResult, ba as FlowEventFlowError, bi as createFlowWithSchema, bn as DocumentAiContext, bt as ResizeVideoParams, c as ResolvedUploadMetadata, ca as isErrorRetryable, ci as OutputTypeRegistry, cn as optimizeParamsSchema, ct as ScanMetadata, d as DeadLetterQueueServiceShape, da as FlowEvent, di as validateFlowOutput, dn as ImageAiPluginLayer, do as CircuitBreakerConfig, dt as VirusScanPluginLayer, ea as BackoffStrategy, ei as ImageDescriptionOutput, en as sharpenTransformSchema, er as WaitUntilCallback, et as describeImageParamsSchema, f as createDeadLetterQueueService, fa as FlowEventDlqItemAdded, fi as InputTypeDefinition, fn as ImageAiPluginShape, fo as CircuitBreakerEvent, ft as VirusScanPluginShape, g as DeadLetterError, ga as FlowEventDlqRetryStart, gi as validateFlowInput, gn as DocumentPluginShape, go as DEFAULT_CIRCUIT_BREAKER_CONFIG, gt as TrimVideoParams, h as DeadLetterCleanupResult, ha as FlowEventDlqRetryFailed, hi as inputTypeRegistry, hn as DocumentPluginLayer, ho as CircuitBreakerState, ht as VideoPluginShape, i as getBaseName, ia as ImmediateBackoff, ii as STREAMING_INPUT_TYPE_ID, in as watermarkTransformSchema, ir as FlowJobStatus, it as ZipParams, j as NodeDefinitionsRecord, ja as ConditionField, jn as ExecutionLevel, jt as ContrastTransform, k as FlowRequirements, ka as FlowEventNodeResume, kn as CredentialProviderLayer, kt as BlurTransform, l as resolveUploadMetadata, la as DlqEvent, li as OutputValidationResult, ln as ImageAiContext, lt as ScanResult, m as DeadLetterCleanupOptions, ma as FlowEventDlqItemResolved, mi as InputValidationResult, mn as DocumentPlugin, mo as CircuitBreakerFallback, mt as VideoPluginLayer, n as applyFileNaming, na as ExponentialBackoff, ni as OcrOutput, nn as transformImageParamsSchema, nr as flowServer, nt as PluginLayer, o as interpolateFileName, oa as calculateBackoffDelay, oi as ocrOutputSchema, on as resizeParamsSchema, or as FlowJobTaskStatus, ot as ZipPluginLayer, p as deadLetterQueueService, pa as FlowEventDlqItemExhausted, pi as InputTypeRegistry, pn as DocumentMetadata, po as CircuitBreakerEventHandler, pt as VideoPlugin, q as isStorageOutput, qi as NodeConnectionValidator, qn as FlowProvider, qt as contrastTransformSchema, r as buildNamingContext, ra as FixedBackoff, ri as STORAGE_OUTPUT_TYPE_ID, rn as transformationSchema, rr as FlowJob, rt as ZipInput, s as validatePattern, sa as calculateExpirationDate, si as OutputTypeDefinition, sn as OptimizeParams, sr as FlowJobTraceContext, st as ZipPluginShape, t as AVAILABLE_TEMPLATE_VARIABLES, ta as DEFAULT_RETRY_POLICY, ti as OCR_OUTPUT_TYPE_ID, tn as textTransformSchema, tr as createFlowServer, tt as Plugin, u as DeadLetterQueueService, ua as EventType, ui as outputTypeRegistry, un as ImageAiPlugin, ut as VirusScanPlugin, v as DeadLetterItemStatus, va as FlowEventFlowCancel, vi as FlowData, vn as SplitPdfParams, vt as TranscodeVideoParams, w as RunArgs, wa as FlowEventJobStart, wn as OcrParams, wt as DescribeVideoMetadata, x as DeadLetterQueueStats, xa as FlowEventFlowPause, xi as getFlowData, xn as DocumentAiPlugin, xt as resizeVideoParamsSchema, y as DeadLetterListOptions, ya as FlowEventFlowEnd, yi as FlowExecutionResult, yn as SplitPdfResult, yt as transcodeVideoParamsSchema, z as getFirstOutputByType, za as DistributedCircuitBreakerRegistry, zi as FileNamingFunction, zn as ExtractLayerServices, zt as SharpenTransform } from "../index-TokXRAZ5.mjs";
4
- import "../index-B9V5SSxl.mjs";
5
- import "../index-BFSHumky.mjs";
6
- export { AVAILABLE_TEMPLATE_VARIABLES, AllowRequestResult, AutoNamingSuffixGenerator, BackoffStrategy, BlurTransform, BrightnessTransform, BuiltInTypedOutput, CircuitBreakerConfig, CircuitBreakerEvent, CircuitBreakerEventHandler, CircuitBreakerFallback, CircuitBreakerState, ConditionField, ConditionOperator, ConditionValue, ContrastTransform, CredentialProvider, CredentialProviderLayer, CredentialProviderShape, CustomTypedOutput, DEFAULT_CIRCUIT_BREAKER_CONFIG, DEFAULT_RETRY_POLICY, DeadLetterCleanupOptions, DeadLetterCleanupResult, DeadLetterError, DeadLetterItem, DeadLetterItemStatus, DeadLetterListOptions, DeadLetterProcessResult, DeadLetterQueueService, DeadLetterQueueServiceShape, DeadLetterQueueStats, DeadLetterRetryAllResult, DeadLetterRetryAttempt, DescribeImageParams, DescribeVideoMetadata, DistributedCircuitBreaker, DistributedCircuitBreakerRegistry, DlqEvent, DocumentAiContext, DocumentAiPlugin, DocumentAiPluginLayer, DocumentAiPluginShape, DocumentMetadata, DocumentPlugin, DocumentPluginLayer, DocumentPluginShape, EventType, ExecutionLevel, ExponentialBackoff, ExtractEffectError, ExtractEffectRequirements, ExtractFrameVideoParams, ExtractLayerService, ExtractLayerServices, FileNamingConfig, FileNamingFunction, FixedBackoff, FlipTransform, Flow, FlowCircuitBreakerConfig, FlowCircuitBreakerFallback, FlowCondition, FlowConfig, FlowData, FlowDeadLetterQueueConfig, FlowEdge, FlowEvent, FlowEventDlqItemAdded, FlowEventDlqItemExhausted, FlowEventDlqItemResolved, FlowEventDlqRetryFailed, FlowEventDlqRetryStart, FlowEventDlqRetrySuccess, FlowEventFlowCancel, FlowEventFlowEnd, FlowEventFlowError, FlowEventFlowPause, FlowEventFlowStart, FlowEventJobEnd, FlowEventJobStart, FlowEventNodeEnd, FlowEventNodeError, FlowEventNodePause, FlowEventNodeResponse, FlowEventNodeResume, FlowEventNodeStart, FlowExecutionResult, FlowInputMap, FlowJob, FlowJobStatus, FlowJobTask, FlowJobTaskStatus, FlowJobTraceContext, FlowNode, FlowNodeData, FlowOutputMap, FlowPluginRequirements, FlowProvider, FlowProviderShape, FlowRequirements, FlowServer, FlowServerLayer, FlowServerOptions, FlowServerShape, FlowWaitUntil, GrayscaleTransform, IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, ImageAiContext, ImageAiPlugin, ImageAiPluginLayer, ImageAiPluginShape, ImageDescriptionOutput, ImagePlugin, ImagePluginLayer, ImagePluginShape, ImmediateBackoff, InputData, InputNodeParams, InputTypeDefinition, InputTypeRegistry, InputValidationResult, LogoTransform, MergePdfParams, NamingContext, NarrowedTypedOutput, NodeConnectionValidator, NodeDefinition, NodeDefinitionsRecord, NodeExecutionResult, NodeType, NodeTypeMap, OCR_OUTPUT_TYPE_ID, OcrOutput, OcrParams, OcrResolution, OcrResult, OcrTaskType, OptimizeParams, OutputTypeDefinition, OutputTypeRegistry, OutputValidationResult, OverlayPosition, ParallelScheduler, ParallelSchedulerConfig, Plugin, PluginLayer, RemoveBackgroundParams, ResizeParams, ResizeTransform, ResizeVideoParams, ResolveEffect, ResolvedUploadMetadata, RetryPolicy, RotateTransform, RunArgs, STORAGE_OUTPUT_TYPE_ID, STREAMING_INPUT_TYPE_ID, ScanMetadata, ScanResult, SepiaTransform, SharpenTransform, SplitPdfParams, SplitPdfResult, TextTransform, TranscodeVideoParams, TransformImageParams, TransformNodeConfig, Transformation, TransformationType, TrimVideoParams, TypeCompatibilityChecker, TypedFlow, TypedFlowConfig, TypedFlowEdge, TypedOutput, VideoPlugin, VideoPluginLayer, VideoPluginShape, VirusScanPlugin, VirusScanPluginLayer, VirusScanPluginShape, WaitUntilCallback, WatermarkTransform, ZipInput, ZipParams, ZipPlugin, ZipPluginLayer, ZipPluginShape, applyFileNaming, blurTransformSchema, brightnessTransformSchema, buildNamingContext, calculateBackoffDelay, calculateExpirationDate, completeNodeExecution, contrastTransformSchema, createDeadLetterQueueService, createFlow, createFlowEdge, createFlowNode, createFlowServer, createFlowWithSchema, createInputNode, createTransformNode, createTypeGuard, deadLetterQueueService, describeImageParamsSchema, describeVideoMetadataSchema, extractFrameVideoParamsSchema, filterOutputsByType, flipTransformSchema, flowServer, getBaseName, getExtension, getFirstOutputByType, getFlowData, getNodeData, getOutputByNodeId, getSingleOutputByType, grayscaleTransformSchema, hasOutputOfType, imageDescriptionOutputSchema, inputDataSchema, inputNodeParamsSchema, inputTypeRegistry, interpolateFileName, isErrorRetryable, isFinalizeOperation, isImageDescriptionOutput, isInitOperation, isOcrOutput, isStorageOutput, isUploadFile, isUploadOperation, isUrlOperation, kvCircuitBreakerStoreLayer, logoTransformSchema, makeKvCircuitBreakerStore, makeMemoryCircuitBreakerStore, memoryCircuitBreakerStoreLayer, ocrOutputSchema, optimizeParamsSchema, outputTypeRegistry, removeBackgroundParamsSchema, resizeParamsSchema, resizeTransformSchema, resizeVideoParamsSchema, resolveUploadMetadata, rotateTransformSchema, runArgsSchema, sepiaTransformSchema, sharpenTransformSchema, textTransformSchema, transcodeVideoParamsSchema, transformImageParamsSchema, transformationSchema, trimVideoParamsSchema, validateFlowInput, validateFlowOutput, validatePattern, waitingNodeExecution, watermarkTransformSchema };
3
+ import { $ as VideoPluginLayer, $t as DocumentPlugin, A as isInitOperation, Ai as FlowEventJobEnd, An as FlowServerOptions, Ar as OutputValidationResult, At as blurTransformSchema, B as Plugin, Bi as ConditionValue, Br as FlowExecutionResult, Bt as textTransformSchema, C as filterOutputsByType, Ci as EventType, Cn as createInputNode, Cr as OcrOutput, Ct as SepiaTransform, D as hasOutputOfType, Di as FlowEventFlowError, Dn as FlowProviderShape, Dr as ocrOutputSchema, Dt as Transformation, E as getSingleOutputByType, Ei as FlowEventFlowEnd, En as FlowProvider, Er as imageDescriptionOutputSchema, Et as TransformImageParams, F as isUrlOperation, Fi as FlowEventNodeResponse, Fn as flowServer, Fr as InputValidationResult, Ft as logoTransformSchema, G as ZipPluginLayer, Gt as resizeParamsSchema, H as ZipInput, Hi as createFlowNode, Hr as getFlowData, Ht as transformationSchema, I as RemoveBackgroundParams, Ii as FlowEventNodeResume, In as FlowJob, Ir as inputTypeRegistry, It as resizeTransformSchema, J as ScanResult, Jt as ImageAiContext, K as ZipPluginShape, Kt as OptimizeParams, L as removeBackgroundParamsSchema, Li as FlowEventNodeStart, Ln as FlowJobStatus, Lr as validateFlowInput, Lt as rotateTransformSchema, M as isStorageOutput, Mi as FlowEventNodeEnd, Mn as FlowWaitUntil, Mr as validateFlowOutput, Mt as contrastTransformSchema, N as isUploadFile, Ni as FlowEventNodeError, Nn as WaitUntilCallback, Nr as InputTypeDefinition, Nt as flipTransformSchema, O as isFinalizeOperation, Oi as FlowEventFlowPause, On as FlowServer, Or as OutputTypeDefinition, Ot as TransformationType, P as isUploadOperation, Pi as FlowEventNodePause, Pn as createFlowServer, Pr as InputTypeRegistry, Pt as grayscaleTransformSchema, Q as VideoPlugin, Qt as DocumentMetadata, R as DescribeImageParams, Ri as ConditionField, Rn as FlowJobTask, Rr as Flow, Rt as sepiaTransformSchema, S as createTypeGuard, Si as waitingNodeExecution, Sn as InputNodeParams, Sr as OCR_OUTPUT_TYPE_ID, St as RotateTransform, T as getOutputByNodeId, Ti as FlowEventFlowCancel, Tn as inputNodeParamsSchema, Tr as STREAMING_INPUT_TYPE_ID, Tt as TextTransform, U as ZipParams, Ui as getNodeData, Ut as watermarkTransformSchema, V as PluginLayer, Vi as NodeType, Vr as createFlowWithSchema, Vt as transformImageParamsSchema, W as ZipPlugin, Wt as ResizeParams, X as VirusScanPluginLayer, Xt as ImageAiPluginLayer, Y as VirusScanPlugin, Yt as ImageAiPlugin, Z as VirusScanPluginShape, Zt as ImageAiPluginShape, _ as ExtractLayerService, _i as NodeExecutionResult, _n as ParallelScheduler, _t as FlipTransform, a as FlowInputMap, an as DocumentAiContext, at as ResizeVideoParams, b as FlowCondition, bi as TypedOutput, bn as createTransformNode, br as IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, bt as OverlayPosition, c as FlowRequirements, cn as DocumentAiPluginShape, ct as extractFrameVideoParamsSchema, d as TypedFlow, di as BuiltInTypedOutput, dn as OcrResult, dt as ImagePlugin, en as DocumentPluginLayer, et as VideoPluginShape, f as TypedFlowConfig, fi as CustomTypedOutput, fn as OcrTaskType, ft as ImagePluginLayer, g as ExtractEffectRequirements, gi as NodeConnectionValidator, gn as ExecutionLevel, gt as ContrastTransform, h as ExtractEffectError, hi as FlowNodeData, hn as CredentialProviderShape, ht as BrightnessTransform, i as runArgsSchema, in as SplitPdfResult, it as transcodeVideoParamsSchema, j as isOcrOutput, ji as FlowEventJobStart, jn as FlowServerShape, jr as outputTypeRegistry, jt as brightnessTransformSchema, k as isImageDescriptionOutput, ki as FlowEventFlowStart, kn as FlowServerLayer, kr as OutputTypeRegistry, kt as WatermarkTransform, l as NodeDefinition, li as FlowEdge, ln as OcrParams, lt as DescribeVideoMetadata, m as createFlow, mi as FlowNode, mn as CredentialProviderLayer, mt as BlurTransform, n as resolveUploadMetadata, nn as MergePdfParams, nt as trimVideoParamsSchema, o as FlowOutputMap, on as DocumentAiPlugin, ot as resizeVideoParamsSchema, p as TypedFlowEdge, pi as FlowConfig, pn as CredentialProvider, pt as ImagePluginShape, q as ScanMetadata, qt as optimizeParamsSchema, r as RunArgs, rn as SplitPdfParams, rt as TranscodeVideoParams, s as FlowPluginRequirements, sn as DocumentAiPluginLayer, st as ExtractFrameVideoParams, t as ResolvedUploadMetadata, tn as DocumentPluginShape, tt as TrimVideoParams, u as NodeDefinitionsRecord, ui as createFlowEdge, un as OcrResolution, ut as describeVideoMetadataSchema, v as ExtractLayerServices, vi as NodeTypeMap, vn as ParallelSchedulerConfig, vt as GrayscaleTransform, w as getFirstOutputByType, wi as FlowEvent, wn as inputDataSchema, wr as STORAGE_OUTPUT_TYPE_ID, wt as SharpenTransform, x as NarrowedTypedOutput, xi as completeNodeExecution, xn as InputData, xr as ImageDescriptionOutput, xt as ResizeTransform, y as ResolveEffect, yi as TypeCompatibilityChecker, yn as TransformNodeConfig, yt as LogoTransform, z as describeImageParamsSchema, zi as ConditionOperator, zn as FlowJobTaskStatus, zr as FlowData, zt as sharpenTransformSchema } from "../index-DiHUjE9t.mjs";
4
+ import "../index-CHQtirAp.mjs";
5
+ import "../index-zQ707AXp.mjs";
6
+ export { BlurTransform, BrightnessTransform, BuiltInTypedOutput, ConditionField, ConditionOperator, ConditionValue, ContrastTransform, CredentialProvider, CredentialProviderLayer, CredentialProviderShape, CustomTypedOutput, DescribeImageParams, DescribeVideoMetadata, DocumentAiContext, DocumentAiPlugin, DocumentAiPluginLayer, DocumentAiPluginShape, DocumentMetadata, DocumentPlugin, DocumentPluginLayer, DocumentPluginShape, EventType, ExecutionLevel, ExtractEffectError, ExtractEffectRequirements, ExtractFrameVideoParams, ExtractLayerService, ExtractLayerServices, FlipTransform, Flow, FlowCondition, FlowConfig, FlowData, FlowEdge, FlowEvent, FlowEventFlowCancel, FlowEventFlowEnd, FlowEventFlowError, FlowEventFlowPause, FlowEventFlowStart, FlowEventJobEnd, FlowEventJobStart, FlowEventNodeEnd, FlowEventNodeError, FlowEventNodePause, FlowEventNodeResponse, FlowEventNodeResume, FlowEventNodeStart, FlowExecutionResult, FlowInputMap, FlowJob, FlowJobStatus, FlowJobTask, FlowJobTaskStatus, FlowNode, FlowNodeData, FlowOutputMap, FlowPluginRequirements, FlowProvider, FlowProviderShape, FlowRequirements, FlowServer, FlowServerLayer, FlowServerOptions, FlowServerShape, FlowWaitUntil, GrayscaleTransform, IMAGE_DESCRIPTION_OUTPUT_TYPE_ID, ImageAiContext, ImageAiPlugin, ImageAiPluginLayer, ImageAiPluginShape, ImageDescriptionOutput, ImagePlugin, ImagePluginLayer, ImagePluginShape, InputData, InputNodeParams, InputTypeDefinition, InputTypeRegistry, InputValidationResult, LogoTransform, MergePdfParams, NarrowedTypedOutput, NodeConnectionValidator, NodeDefinition, NodeDefinitionsRecord, NodeExecutionResult, NodeType, NodeTypeMap, OCR_OUTPUT_TYPE_ID, OcrOutput, OcrParams, OcrResolution, OcrResult, OcrTaskType, OptimizeParams, OutputTypeDefinition, OutputTypeRegistry, OutputValidationResult, OverlayPosition, ParallelScheduler, ParallelSchedulerConfig, Plugin, PluginLayer, RemoveBackgroundParams, ResizeParams, ResizeTransform, ResizeVideoParams, ResolveEffect, ResolvedUploadMetadata, RotateTransform, RunArgs, STORAGE_OUTPUT_TYPE_ID, STREAMING_INPUT_TYPE_ID, ScanMetadata, ScanResult, SepiaTransform, SharpenTransform, SplitPdfParams, SplitPdfResult, TextTransform, TranscodeVideoParams, TransformImageParams, TransformNodeConfig, Transformation, TransformationType, TrimVideoParams, TypeCompatibilityChecker, TypedFlow, TypedFlowConfig, TypedFlowEdge, TypedOutput, VideoPlugin, VideoPluginLayer, VideoPluginShape, VirusScanPlugin, VirusScanPluginLayer, VirusScanPluginShape, WaitUntilCallback, WatermarkTransform, ZipInput, ZipParams, ZipPlugin, ZipPluginLayer, ZipPluginShape, blurTransformSchema, brightnessTransformSchema, completeNodeExecution, contrastTransformSchema, createFlow, createFlowEdge, createFlowNode, createFlowServer, createFlowWithSchema, createInputNode, createTransformNode, createTypeGuard, describeImageParamsSchema, describeVideoMetadataSchema, extractFrameVideoParamsSchema, filterOutputsByType, flipTransformSchema, flowServer, getFirstOutputByType, getFlowData, getNodeData, getOutputByNodeId, getSingleOutputByType, grayscaleTransformSchema, hasOutputOfType, imageDescriptionOutputSchema, inputDataSchema, inputNodeParamsSchema, inputTypeRegistry, isFinalizeOperation, isImageDescriptionOutput, isInitOperation, isOcrOutput, isStorageOutput, isUploadFile, isUploadOperation, isUrlOperation, logoTransformSchema, ocrOutputSchema, optimizeParamsSchema, outputTypeRegistry, removeBackgroundParamsSchema, resizeParamsSchema, resizeTransformSchema, resizeVideoParamsSchema, resolveUploadMetadata, rotateTransformSchema, runArgsSchema, sepiaTransformSchema, sharpenTransformSchema, textTransformSchema, transcodeVideoParamsSchema, transformImageParamsSchema, transformationSchema, trimVideoParamsSchema, validateFlowInput, validateFlowOutput, waitingNodeExecution, watermarkTransformSchema };
@@ -1 +1 @@
1
- import"../uploadista-error-CkSxSyNo.mjs";import"../errors-CtPUOWNd.mjs";import{$ as e,A as t,At as n,B as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as l,Et as u,F as d,Ft as f,G as p,Gt as m,H as h,Ht as g,I as _,It as v,J as y,K as b,Kt as x,L as S,Lt as C,M as w,Mt as T,N as E,Nt as D,O,Ot as k,P as A,Pt as j,Q as M,R as N,Rt as P,S as F,St as I,T as L,Tt as R,U as z,Ut as B,V,Vt as H,W as U,Wt as W,X as G,Y as K,Z as q,_ as J,_t as Y,a as X,at as Z,b as Q,bt as $,c as ee,ct as te,d as ne,dt as re,et as ie,f as ae,ft as oe,g as se,gt as ce,h as le,ht as ue,i as de,it as fe,j as pe,jt as me,k as he,kt as ge,l as _e,lt as ve,m as ye,mt as be,n as xe,nt as Se,o as Ce,ot as we,p as Te,pt as Ee,q as De,r as Oe,rt as ke,s as Ae,st as je,t as Me,tt as Ne,u as Pe,ut as Fe,v as Ie,vt as Le,w as Re,wt as ze,x as Be,xt as Ve,y as He,yt as Ue,z as We,zt as Ge}from"../flow-BmchsFjm.mjs";import"../types-CHbyV8e6.mjs";import"../upload-Damo68a7.mjs";import"../checksum-COoD-F1l.mjs";import"../stream-limiter-B9nsn2gb.mjs";export{d as AVAILABLE_TEMPLATE_VARIABLES,E as CredentialProvider,x as DEFAULT_CIRCUIT_BREAKER_CONFIG,G as DEFAULT_RETRY_POLICY,De as DeadLetterQueueService,i as DistributedCircuitBreaker,H as DistributedCircuitBreakerRegistry,w as DocumentAiPlugin,pe as DocumentPlugin,P as EventType,h as FlowProvider,z as FlowServer,U as FlowWaitUntil,Y as IMAGE_DESCRIPTION_OUTPUT_TYPE_ID,t as ImageAiPlugin,he as ImagePlugin,f as InputTypeRegistry,ge as NodeType,Le as OCR_OUTPUT_TYPE_ID,T as OutputTypeRegistry,ce as ParallelScheduler,Ue as STORAGE_OUTPUT_TYPE_ID,$ as STREAMING_INPUT_TYPE_ID,X as VideoPlugin,de as VirusScanPlugin,Oe as ZipPlugin,_ as applyFileNaming,Ae as blurTransformSchema,ee as brightnessTransformSchema,S as buildNamingContext,q as calculateBackoffDelay,M as calculateExpirationDate,c as completeNodeExecution,_e as contrastTransformSchema,y as createDeadLetterQueueService,xe as createFlow,Ge as createFlowEdge,n as createFlowNode,p as createFlowServer,ie as createFlowWithSchema,o as createInputNode,A as createTransformNode,Se as createTypeGuard,K as deadLetterQueueService,O as describeImageParamsSchema,s as describeVideoMetadataSchema,l as extractFrameVideoParamsSchema,ke as filterOutputsByType,Pe as flipTransformSchema,b as flowServer,N as getBaseName,We as getExtension,fe as getFirstOutputByType,Ne as getFlowData,me as getNodeData,Z as getOutputByNodeId,we as getSingleOutputByType,ne as grayscaleTransformSchema,je as hasOutputOfType,Ve as imageDescriptionOutputSchema,ze as inputDataSchema,R as inputNodeParamsSchema,v as inputTypeRegistry,r as interpolateFileName,e as isErrorRetryable,te as isFinalizeOperation,ve as isImageDescriptionOutput,Fe as isInitOperation,re as isOcrOutput,oe as isStorageOutput,Ee as isUploadFile,be as isUploadOperation,ue as isUrlOperation,g as kvCircuitBreakerStoreLayer,ae as logoTransformSchema,B as makeKvCircuitBreakerStore,W as makeMemoryCircuitBreakerStore,m as memoryCircuitBreakerStoreLayer,I as ocrOutputSchema,L as optimizeParamsSchema,D as outputTypeRegistry,Re as removeBackgroundParamsSchema,a as resizeParamsSchema,Te as resizeTransformSchema,F as resizeVideoParamsSchema,u as resolveUploadMetadata,ye as rotateTransformSchema,Me as runArgsSchema,le as sepiaTransformSchema,se as sharpenTransformSchema,J as textTransformSchema,Be as transcodeVideoParamsSchema,Ie as transformImageParamsSchema,He as transformationSchema,Ce as trimVideoParamsSchema,C as validateFlowInput,j as validateFlowOutput,V as validatePattern,k as waitingNodeExecution,Q as watermarkTransformSchema};
1
+ import"../uploadista-error-B-kFH_SE.mjs";import"../errors-CtPUOWNd.mjs";import{$ as e,A as t,B as n,C as r,Ct as i,D as a,E as o,F as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,N as h,O as g,P as _,Q as v,R as y,S as b,St as x,T as S,Tt as C,U as w,V as T,W as E,X as D,Y as O,Z as k,_ as A,_t as j,a as M,at as N,b as P,bt as F,c as I,ct as L,d as R,dt as z,et as B,f as V,ft as H,g as U,gt as W,h as G,ht as K,i as q,it as J,j as Y,k as X,l as Z,lt as Q,m as $,mt as ee,n as te,nt as ne,o as re,ot as ie,p as ae,pt as oe,q as se,r as ce,rt as le,s as ue,st as de,t as fe,tt as pe,u as me,ut as he,v as ge,vt as _e,w as ve,wt as ye,x as be,xt as xe,y as Se,yt as Ce,z as we}from"../flow-CAywogte.mjs";import"../types-CnhCQFkg.mjs";import"../upload-DPX3jSQH.mjs";import"../checksum-DsSiXsPO.mjs";import"../stream-limiter-ByVdSC5T.mjs";export{h as CredentialProvider,m as DocumentAiPlugin,Y as DocumentPlugin,ye as EventType,s as FlowProvider,u as FlowServer,p as FlowWaitUntil,le as IMAGE_DESCRIPTION_OUTPUT_TYPE_ID,t as ImageAiPlugin,X as ImagePlugin,xe as InputTypeRegistry,K as NodeType,J as OCR_OUTPUT_TYPE_ID,_e as OutputTypeRegistry,ne as ParallelScheduler,N as STORAGE_OUTPUT_TYPE_ID,ie as STREAMING_INPUT_TYPE_ID,M as VideoPlugin,q as VirusScanPlugin,ce as ZipPlugin,ue as blurTransformSchema,I as brightnessTransformSchema,oe as completeNodeExecution,Z as contrastTransformSchema,te as createFlow,C as createFlowEdge,W as createFlowNode,y as createFlowServer,n as createFlowWithSchema,Q as createInputNode,_ as createTransformNode,l as createTypeGuard,g as describeImageParamsSchema,a as describeVideoMetadataSchema,o as extractFrameVideoParamsSchema,w as filterOutputsByType,me as flipTransformSchema,we as flowServer,E as getFirstOutputByType,T as getFlowData,j as getNodeData,c as getOutputByNodeId,f as getSingleOutputByType,R as grayscaleTransformSchema,se as hasOutputOfType,de as imageDescriptionOutputSchema,he as inputDataSchema,z as inputNodeParamsSchema,x as inputTypeRegistry,d as isFinalizeOperation,O as isImageDescriptionOutput,D as isInitOperation,k as isOcrOutput,v as isStorageOutput,e as isUploadFile,B as isUploadOperation,pe as isUrlOperation,V as logoTransformSchema,L as ocrOutputSchema,S as optimizeParamsSchema,Ce as outputTypeRegistry,ve as removeBackgroundParamsSchema,r as resizeParamsSchema,ae as resizeTransformSchema,b as resizeVideoParamsSchema,H as resolveUploadMetadata,$ as rotateTransformSchema,fe as runArgsSchema,G as sepiaTransformSchema,U as sharpenTransformSchema,A as textTransformSchema,be as transcodeVideoParamsSchema,ge as transformImageParamsSchema,Se as transformationSchema,re as trimVideoParamsSchema,i as validateFlowInput,F as validateFlowOutput,ee as waitingNodeExecution,P as watermarkTransformSchema};
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./uploadista-error-B-kFH_SE.mjs";import{D as t,h as n,s as r,w as i}from"./types-CnhCQFkg.mjs";import{a,n as o,o as s}from"./upload-DPX3jSQH.mjs";import{Context as c,Effect as l,Layer as u,Option as d,Runtime as f,Stream as p}from"effect";import{z as m}from"zod";function h({source:e,target:t,sourcePort:n,targetPort:r}){return{source:e,target:t,sourcePort:n,targetPort:r}}let g=function(e){return e.JobStart=`job-start`,e.JobEnd=`job-end`,e.FlowStart=`flow-start`,e.FlowEnd=`flow-end`,e.FlowError=`flow-error`,e.FlowPause=`flow-pause`,e.FlowCancel=`flow-cancel`,e.NodeStart=`node-start`,e.NodeEnd=`node-end`,e.NodePause=`node-pause`,e.NodeResume=`node-resume`,e.NodeError=`node-error`,e.NodeStream=`node-stream`,e.NodeResponse=`node-response`,e}({});var _=class{types;constructor(){this.types=new Map}register(t){if(this.types.has(t.id))throw e.fromCode(`VALIDATION_ERROR`,{body:`Input type "${t.id}" is already registered. Types cannot be modified or re-registered.`,details:{typeId:t.id}});this.types.set(t.id,t)}get(e){return this.types.get(e)}list(){return Array.from(this.types.values())}validate(t,n){let r=this.types.get(t);if(!r)return{success:!1,error:e.fromCode(`VALIDATION_ERROR`,{body:`Input type "${t}" is not registered`,details:{typeId:t}})};try{return{success:!0,data:r.schema.parse(n)}}catch(n){return{success:!1,error:e.fromCode(`VALIDATION_ERROR`,{body:`Data validation failed for input type "${t}"`,cause:n,details:{typeId:t,validationErrors:n}})}}}has(e){return this.types.has(e)}size(){return this.types.size}};const v=new _;function y(e,t){return v.validate(e,t)}var b=class{types;constructor(){this.types=new Map}register(t){if(this.types.has(t.id))throw e.fromCode(`VALIDATION_ERROR`,{body:`Output type "${t.id}" is already registered. Types cannot be modified or re-registered.`,details:{typeId:t.id}});this.types.set(t.id,t)}get(e){return this.types.get(e)}list(){return Array.from(this.types.values())}validate(t,n){let r=this.types.get(t);if(!r)return{success:!1,error:e.fromCode(`VALIDATION_ERROR`,{body:`Output type "${t}" is not registered`,details:{typeId:t}})};try{return{success:!0,data:r.schema.parse(n)}}catch(n){return{success:!1,error:e.fromCode(`VALIDATION_ERROR`,{body:`Data validation failed for output type "${t}"`,cause:n,details:{typeId:t,validationErrors:n}})}}}has(e){return this.types.has(e)}size(){return this.types.size}};const x=new b;function S(e,t){return x.validate(e,t)}let C=function(e){return e.input=`input`,e.process=`process`,e.conditional=`conditional`,e.multiplex=`multiplex`,e.merge=`merge`,e}({});function w({id:t,name:n,description:r,type:i,inputSchema:a,outputSchema:o,run:s,condition:c,multiInput:u=!1,multiOutput:d=!1,pausable:f=!1,retry:p,inputTypeId:m,outputTypeId:h,keepOutput:g=!1}){return l.gen(function*(){return m&&!v.get(m)?yield*e.fromCode(`INVALID_INPUT_TYPE`,{body:`Input type "${m}" is not registered in inputTypeRegistry`,details:{inputTypeId:m,nodeId:t}}).toEffect():h&&!x.get(h)?yield*e.fromCode(`INVALID_OUTPUT_TYPE`,{body:`Output type "${h}" is not registered in outputTypeRegistry`,details:{outputTypeId:h,nodeId:t}}).toEffect():{id:t,name:n,description:r,type:i,inputTypeId:m,outputTypeId:h,keepOutput:g,inputSchema:a,outputSchema:o,pausable:f,run:({data:r,jobId:i,flowId:c,storageId:u,clientId:d})=>l.gen(function*(){let f=yield*s({data:yield*l.try({try:()=>a.parse(r),catch:r=>{let i=r instanceof Error?r.message:String(r);return e.fromCode(`FLOW_INPUT_VALIDATION_ERROR`,{body:`Node '${n}' (${t}) input validation failed: ${i}`,cause:r})}}),jobId:i,storageId:u,flowId:c,clientId:d});return f.type===`waiting`?{type:`waiting`,partialData:f.partialData,nodeType:h,nodeId:t}:{type:`complete`,data:yield*l.try({try:()=>o.parse(f.data),catch:r=>{let i=r instanceof Error?r.message:String(r);return e.fromCode(`FLOW_OUTPUT_VALIDATION_ERROR`,{body:`Node '${n}' (${t}) output validation failed: ${i}`,cause:r})}}),nodeType:h,nodeId:t}}),condition:c,multiInput:u,multiOutput:d,retry:p}})}const T=e=>({id:e.id,name:e.name,description:e.description,type:e.type,inputTypeId:e.inputTypeId,outputTypeId:e.outputTypeId}),E=e=>({type:`complete`,data:e}),D=e=>({type:`waiting`,partialData:e}),O=(e,t)=>{if(e===t)return!0;try{return!!(e&&t&&typeof e==`object`&&typeof t==`object`)}catch{return!0}};var k=class{typeChecker;constructor(e=O){this.typeChecker=e}validateConnection(e,t,n){return this.getCompatibleTypes(e.outputSchema,t.inputSchema)}getCompatibleTypes(e,t){return this.typeChecker(e,t)}validateFlow(e,t){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let e of t){let t=r.get(e.source),i=r.get(e.target);if(!t){n.push(`Source node ${e.source} not found`);continue}if(!i){n.push(`Target node ${e.target} not found`);continue}this.validateConnection(t,i,e)||n.push(`Schema mismatch: ${t.id} output schema incompatible with ${i.id} input schema`)}return{isValid:n.length===0,errors:n}}getExpectedInputSchemas(e,t,n){let r=new Map(t.map(e=>[e.id,e])),i={};for(let t of n)if(t.target===e){let e=r.get(t.source);if(e){let n=t.sourcePort||t.source;i[n]=e.outputSchema}}return i}getActualOutputSchemas(e,t,n){let r=new Map(t.map(e=>[e.id,e])),i={};for(let t of n)if(t.source===e){let e=r.get(t.target);if(e){let n=t.targetPort||t.target;i[n]=e.inputSchema}}return i}validateData(e,t){try{return t.parse(e),{isValid:!0,errors:[]}}catch(e){return e instanceof Error&&`errors`in e?{isValid:!1,errors:e.errors.map(e=>`${e.path.join(`.`)}: ${e.message}`)}:{isValid:!1,errors:[e instanceof Error?e.message:`Validation failed`]}}}};function A(e){if(!e)return{type:``,fileName:``,metadata:void 0,metadataJson:void 0};let t={...e},n=String(t.type||t.mimeType||t[`content-type`]||``);n&&(t.type||=n,t.mimeType||=n);let r=String(t.fileName||t.originalName||t.name||``);return r&&(t.fileName||=r,t.originalName||=r,t.name||=r),{type:n,fileName:r,metadata:t,metadataJson:JSON.stringify(t)}}const ee=m.object({operation:m.literal(`init`),storageId:m.string(),metadata:m.record(m.string(),m.any()).optional()}),te=m.object({operation:m.literal(`finalize`),uploadId:m.string()}),ne=m.object({operation:m.literal(`url`),url:m.string(),storageId:m.string().optional(),metadata:m.record(m.string(),m.any()).optional()}),j=m.union([ee,te,ne]),re=m.object({allowedMimeTypes:m.array(m.string()).optional(),minSize:m.number().positive().optional(),maxSize:m.number().positive().optional()});function M(t,n){return l.gen(function*(){if(n){if(n.allowedMimeTypes&&n.allowedMimeTypes.length>0&&!n.allowedMimeTypes.some(e=>{if(e.endsWith(`/*`)){let n=e.slice(0,-2);return t.type.startsWith(n)}return t.type===e}))throw yield*e.fromCode(`VALIDATION_ERROR`,{cause:Error(`File type "${t.type}" is not allowed. Allowed types: ${n.allowedMimeTypes.join(`, `)}`)}).toEffect();if(n.minSize!==void 0&&t.size<n.minSize)throw yield*e.fromCode(`VALIDATION_ERROR`,{cause:Error(`File size (${t.size} bytes) is below minimum (${n.minSize} bytes)`)}).toEffect();if(n.maxSize!==void 0&&t.size>n.maxSize)throw yield*e.fromCode(`VALIDATION_ERROR`,{cause:Error(`File size (${t.size} bytes) exceeds maximum (${n.maxSize} bytes)`)}).toEffect()}})}function ie(n,r,i){let c=i?.keepOutput??!1;return l.gen(function*(){let i=yield*o;return yield*w({id:n,name:`Input`,description:`Handles file input through multiple methods - streaming upload (init/finalize) or direct URL fetch`,type:C.input,inputSchema:j,outputSchema:t,keepOutput:c,inputTypeId:I,outputTypeId:N,run:({data:t,flowId:o,jobId:c,clientId:u})=>l.gen(function*(){switch(t.operation){case`init`:{let e={storageId:t.storageId,size:t.metadata?.size||0,type:t.metadata?.mimeType||`application/octet-stream`,fileName:t.metadata?.originalName,lastModified:t.metadata?.size?Date.now():void 0,metadata:t.metadata?JSON.stringify(t.metadata):void 0,flow:{flowId:o,nodeId:n,jobId:c}};return D(yield*i.createUpload(e,u))}case`finalize`:{let e=yield*i.getUpload(t.uploadId),{type:n}=A(e.metadata);return yield*M({type:n,size:e.size||0},r),E(e)}case`url`:{let e=yield*s(t.url),l=yield*a(e),d=t.metadata?.mimeType||e.headers.get(`content-type`)||`application/octet-stream`,f=t.metadata?.size||Number(e.headers.get(`content-length`)||0),p=t.metadata?.originalName||t.url.split(`/`).pop()||`file`;yield*M({type:d,size:f},r);let m=new ReadableStream({start(e){e.enqueue(new Uint8Array(l)),e.close()}}),h={storageId:t.storageId||`buffer`,size:f,type:d,fileName:p,lastModified:Date.now(),metadata:t.metadata?JSON.stringify(t.metadata):void 0};return E({...yield*i.upload(h,u,m),flow:{flowId:o,nodeId:n,jobId:c}})}default:throw yield*e.fromCode(`VALIDATION_ERROR`,{cause:Error(`Invalid operation`)}).toEffect()}})})})}const N=`storage-output-v1`,P=`ocr-output-v1`,F=`image-description-output-v1`,I=`streaming-input-v1`,L=m.object({extractedText:m.string(),format:m.enum([`markdown`,`plain`,`structured`]),taskType:m.enum([`convertToMarkdown`,`freeOcr`,`parseFigure`,`locateObject`]),confidence:m.number().min(0).max(1).optional()}),R=m.object({description:m.string(),confidence:m.number().min(0).max(1).optional(),metadata:m.record(m.string(),m.unknown()).optional()});v.register({id:I,schema:j,version:`1.0.0`,description:`Streaming file input with init/finalize/url operations for flexible file ingestion`}),x.register({id:N,schema:t,version:`1.0.0`,description:`Storage output node that saves files to configured storage backend`}),x.register({id:P,schema:L,version:`1.0.0`,description:`OCR output node that extracts structured text from documents using AI`}),x.register({id:F,schema:R,version:`1.0.0`,description:`Image description output node that generates AI-powered descriptions of images`});var z=class{maxConcurrency;constructor(e={}){this.maxConcurrency=e.maxConcurrency??4}groupNodesByExecutionLevel(e,t){let n={},r={};e.forEach(e=>{n[e.id]=[],r[e.id]=0}),t.forEach(e=>{n[e.source]?.push(e.target),r[e.target]=(r[e.target]||0)+1});let i=[],a=new Set,o=0;for(;a.size<e.length;){let e=Object.keys(r).filter(e=>r[e]===0&&!a.has(e));if(e.length===0)throw Error(`Cycle detected in flow graph - cannot execute in parallel`);i.push({level:o++,nodes:e}),e.forEach(e=>{a.add(e),delete r[e],n[e]?.forEach(e=>{r[e]!==void 0&&r[e]--})})}return i}executeNodesInParallel(e){return l.all(e.map(e=>e()),{concurrency:this.maxConcurrency})}canExecuteInParallel(e,t,n){return e.every(e=>(n[e]||[]).every(e=>t.has(e)))}getStats(){return{maxConcurrency:this.maxConcurrency}}};function B(e){return t=>{if(t.nodeType!==e)return!1;let n=x.get(e);return n?n.schema.safeParse(t.data).success:!1}}function V(e){return!e||typeof e!=`object`?!1:t.safeParse(e).success}const ae=B(`storage-output-v1`),oe=B(P),se=B(F);function H(e,t){return e.filter(t)}function ce(t,n){return l.gen(function*(){let r=H(t,n);return r.length===0?yield*e.fromCode(`OUTPUT_NOT_FOUND`,{body:`No output of the specified type was found in the flow results`}).toEffect():r.length>1?yield*e.fromCode(`MULTIPLE_OUTPUTS_FOUND`,{body:`Found ${r.length} outputs of the specified type, expected exactly one`,details:{foundCount:r.length,nodeIds:r.map(e=>e.nodeId)}}).toEffect():r[0]})}function le(e,t){return H(e,t)[0]}function ue(e,t){return e.find(e=>e.nodeId===t)}function de(e,t){return e.some(t)}function fe(e){return e.operation===`init`}function pe(e){return e.operation===`finalize`}function me(e){return e.operation===`url`}function he(e){return e.operation===`init`||e.operation===`url`}const U=e=>({id:e.id,name:e.name,nodes:e.nodes.map(T),edges:e.edges});function W(t){return l.gen(function*(){let n=yield*l.all(t.nodes.map(e=>l.isEffect(e)?e:l.succeed(e))),{flowId:r,name:a,onEvent:o,checkJobStatus:s,edges:c,inputSchema:u,outputSchema:d,typeChecker:f}=t,h=n,_=new k(f),v=()=>{let e={},t={},n={};return h.forEach(r=>{e[r.id]=[],n[r.id]=[],t[r.id]=0}),c.forEach(r=>{e[r.source]?.push(r.target),n[r.target]?.push(r.source),t[r.target]=(t[r.target]||0)+1}),{graph:e,reverseGraph:n,inDegree:t}},y=()=>{let{graph:e,inDegree:t}=v(),n=[],r=[];for(Object.keys(t).forEach(e=>{t[e]===0&&n.push(e)});n.length>0;){let i=n.shift();if(!i)throw Error(`No current node found`);r.push(i),e[i]?.forEach(e=>{t[e]=(t[e]||0)-1,t[e]===0&&n.push(e)})}return r},b=(e,t)=>{if(!e.condition)return l.succeed(!0);let{field:n,operator:r,value:i}=e.condition,a=t,o=a?.metadata?.[n]||a?.[n],s=(()=>{switch(r){case`equals`:return o===i;case`notEquals`:return o!==i;case`greaterThan`:return Number(o)>Number(i);case`lessThan`:return Number(o)<Number(i);case`contains`:return String(o).includes(String(i));case`startsWith`:return String(o).startsWith(String(i));default:return!0}})();return l.succeed(s)},x=(e,t)=>{let{reverseGraph:n}=v(),r=n[e]||[],i={};return r.forEach(e=>{let n=t.get(e);n!==void 0&&(i[e]=n)}),i},S=e=>{let t=h.filter(e=>e.type===`input`),n={};return t.forEach(t=>{e&&typeof e==`object`&&t.id in e&&(n[t.id]=u.parse(e[t.id]))}),n},C=e=>!c.some(t=>t.source===e),w=e=>{let t=h.find(t=>t.id===e);return C(e)||t?.keepOutput===!0},T=e=>{let t=h.filter(e=>w(e.id)),n={};return t.forEach(t=>{let r=e.get(t.id);r!==void 0&&(n[t.id]=r)}),n},E=(e,t)=>{let n=h.filter(e=>w(e.id)),r=[];return n.forEach(n=>{let i=e.get(n.id);if(i!==void 0){let e=t.get(n.id);r.push({nodeId:n.id,nodeType:e,data:i,timestamp:new Date().toISOString()})}}),r},D=(e,t,n)=>l.gen(function*(){if(e.storage.id===t)return e;let r=yield*i,a=yield*r.getDataStore(e.storage.id,n),o=yield*r.getDataStore(t,n),s=yield*a.read(e.id),c=p.make(s),l={...e,storage:{id:t,type:e.storage.type}},u=yield*o.create(l);return yield*o.write({file_id:u.id,stream:c,offset:0},{}),u}),O=(n,i,a,c,u,d,f)=>l.gen(function*(){let p=u.get(n);if(!p)return yield*e.fromCode(`FLOW_NODE_NOT_FOUND`).toEffect();if(s){let t=yield*s(d);if(t===`paused`)return yield*e.fromCode(`FLOW_PAUSED`,{cause:`Flow ${r} was paused by user at job ${d}`}).toEffect();if(t===`cancelled`)return yield*e.fromCode(`FLOW_CANCELLED`,{cause:`Flow ${r} was cancelled by user at job ${d}`}).toEffect()}o&&(yield*o({jobId:d,flowId:r,nodeId:n,eventType:g.NodeStart,nodeName:p.name,nodeType:p.type}));let m=p.retry?.maxRetries??0,h=p.retry?.retryDelay??1e3,_=p.retry?.exponentialBackoff??!0,v=0,y=null;for(;v<=m;)try{let s,u={};if(p.type===`input`){if(s=a[n],s===void 0)return yield*l.logError(`Input node ${n} has no input data`),yield*e.fromCode(`FLOW_NODE_ERROR`,{cause:Error(`Input node ${n} has no input data`)}).toEffect()}else{if(u=x(n,c),Object.keys(u).length===0)return yield*l.logError(`Node ${n} has no input data`),yield*e.fromCode(`FLOW_NODE_ERROR`,{cause:Error(`Node ${n} has no input data`)}).toEffect();if(p.multiInput)s=u;else{let t=Object.keys(u)[0];if(!t)return yield*e.fromCode(`FLOW_NODE_ERROR`,{cause:Error(`Node ${n} has no input data`)}).toEffect();s=u[t]}}if(p.type===`conditional`&&!(yield*b(p,s)))return o&&(yield*o({jobId:d,flowId:r,nodeId:n,eventType:g.NodeEnd,nodeName:p.name})),{nodeId:n,result:s,success:!0,waiting:!1};let m=yield*p.run({data:s,inputs:u,jobId:d,flowId:r,storageId:i,clientId:f});if(m.type===`waiting`){let e=m.partialData;return o&&(yield*o({jobId:d,flowId:r,nodeId:n,eventType:g.NodePause,nodeName:p.name,partialData:e})),{nodeId:n,result:e,success:!0,waiting:!0,nodeType:m.nodeType}}let h=m.data;if(w(n)&&(V(h)&&h.storage.id!==i&&(yield*l.logDebug(`Auto-persisting output node ${n} output from ${h.storage.id} to ${i}`),h=yield*D(h,i,f)),t.hooks?.onNodeOutput)){yield*l.logDebug(`Calling onNodeOutput hook for sink node ${n}`);let e=t.hooks.onNodeOutput({output:h,nodeId:n,flowId:r,jobId:d,storageId:i,clientId:f});h=yield*l.isEffect(e)?e:l.promise(()=>e)}return o&&(yield*o({jobId:d,flowId:r,nodeId:n,eventType:g.NodeEnd,nodeName:p.name,result:h})),{nodeId:n,result:h,success:!0,waiting:!1,nodeType:m.nodeType}}catch(t){if(y=t instanceof e?t:e.fromCode(`FLOW_NODE_ERROR`,{cause:t}),v<m){v++;let e=_?h*2**(v-1):h;yield*l.logWarning(`Node ${n} (${p.name}) failed, retrying (${v}/${m}) after ${e}ms`),yield*l.sleep(e);continue}return o&&(yield*o({jobId:d,flowId:r,nodeId:n,eventType:g.NodeError,nodeName:p.name,error:y.body,retryCount:v})),yield*y.toEffect()}return y?yield*y.toEffect():yield*e.fromCode(`FLOW_NODE_ERROR`,{cause:Error(`Unexpected error in retry loop`)}).toEffect()}),A=({inputs:n,storageId:i,jobId:a,resumeFrom:s,clientId:u})=>l.gen(function*(){!s&&o&&(yield*o({jobId:a,eventType:g.FlowStart,flowId:r}));let f=S(n||{}),p,_,v;s?(p=s.executionOrder,_=s.nodeResults,v=s.currentIndex):(p=y(),_=new Map,v=0);let b=new Map;if(p.length!==h.length)return yield*e.fromCode(`FLOW_CYCLE_ERROR`).toEffect();let x=new Map(h.map(e=>[e.id,e]));if(t.parallelExecution?.enabled??!1){yield*l.logDebug(`Flow ${r}: Executing in parallel mode (maxConcurrency: ${t.parallelExecution?.maxConcurrency??4})`);let e=new z({maxConcurrency:t.parallelExecution?.maxConcurrency??4}),n=e.groupNodesByExecutionLevel(h,c);yield*l.logDebug(`Flow ${r}: Grouped nodes into ${n.length} execution levels`);let d={};h.forEach(e=>{d[e.id]=[]}),c.forEach(e=>{d[e.target]?.push(e.source)});for(let t of n){yield*l.logDebug(`Flow ${r}: Executing level ${t.level} with nodes: ${t.nodes.join(`, `)}`);let n=t.nodes.map(e=>()=>l.gen(function*(){if(s&&e===s.executionOrder[v]&&o){let t=x.get(e);t&&(yield*o({jobId:a,flowId:r,nodeId:e,eventType:g.NodeResume,nodeName:t.name,nodeType:t.type}))}return{nodeId:e,nodeResult:yield*O(e,i,f,_,x,a,u)}})),c=yield*e.executeNodesInParallel(n);for(let{nodeId:e,nodeResult:t}of c){if(t.waiting)return t.result!==void 0&&(_.set(e,t.result),t.nodeType&&b.set(e,t.nodeType)),{type:`paused`,nodeId:e,executionState:{executionOrder:p,currentIndex:p.indexOf(e),inputs:f}};t.success&&(_.set(e,t.result),t.nodeType&&b.set(e,t.nodeType))}}}else{yield*l.logDebug(`Flow ${r}: Executing in sequential mode`);for(let t=v;t<p.length;t++){let n=p[t];if(!n)return yield*e.fromCode(`FLOW_NODE_NOT_FOUND`).toEffect();if(s&&t===v&&o){let e=x.get(n);e&&(yield*o({jobId:a,flowId:r,nodeId:n,eventType:g.NodeResume,nodeName:e.name,nodeType:e.type}))}let c=yield*O(n,i,f,_,x,a,u);if(c.waiting)return c.result!==void 0&&(_.set(c.nodeId,c.result),c.nodeType&&b.set(c.nodeId,c.nodeType)),{type:`paused`,nodeId:c.nodeId,executionState:{executionOrder:p,currentIndex:t,inputs:f}};c.success&&(_.set(c.nodeId,c.result),c.nodeType&&b.set(c.nodeId,c.nodeType))}}let C=T(_),D=E(_,b),k=m.record(m.string(),d).safeParse(C);if(!k.success){let t=`Flow output validation failed: ${k.error.message}. Expected outputs: ${JSON.stringify(Object.keys(T(_)))}. Output nodes (sinks + keepOutput): ${h.filter(e=>w(e.id)).map(e=>e.id).join(`, `)}`;return o&&(yield*o({jobId:a,eventType:g.FlowError,flowId:r,error:t})),yield*e.fromCode(`FLOW_OUTPUT_VALIDATION_ERROR`,{body:t,cause:k.error}).toEffect()}let A=k.data;return o&&(yield*o({jobId:a,eventType:g.FlowEnd,flowId:r,outputs:D,result:A})),{type:`completed`,result:A,outputs:D}});return{id:r,name:a,nodes:h,edges:c,inputSchema:u,outputSchema:d,onEvent:o,checkJobStatus:s,hooks:t.hooks,run:({inputs:e,storageId:t,jobId:n,clientId:r})=>A({inputs:e,storageId:t,jobId:n,clientId:r}),resume:({jobId:e,storageId:t,nodeResults:n,executionState:r,clientId:i})=>A({inputs:r.inputs,storageId:t,jobId:e,resumeFrom:{executionOrder:r.executionOrder,nodeResults:new Map(Object.entries(n)),currentIndex:r.currentIndex},clientId:i}),validateTypes:()=>{let e=h;return _.validateFlow(e,c)},validateInputs:e=>_.validateData(e,u),validateOutputs:e=>_.validateData(e,d)}})}var G=class e extends c.Tag(`FlowWaitUntil`)(){static optional=l.serviceOption(e)},K=class extends c.Tag(`FlowProvider`)(){},q=class extends c.Tag(`FlowServer`)(){};const J=e=>typeof e==`object`&&!!e&&`id`in e,ge=e=>typeof e==`object`&&e&&`nodeId`in e&&`data`in e&&`timestamp`in e?e.data:e;function Y(t,n,r){let i=e=>{let i=t=>l.gen(function*(){let n=yield*r.get(e);n&&(yield*r.set(e,{...n,...t,updatedAt:new Date}))});return a=>l.gen(function*(){switch(t.onEvent&&(yield*l.catchAll(t.onEvent(a),e=>(l.logError(`Original onEvent failed`,e),l.succeed({eventId:null})))),yield*n.emit(e,a),l.logInfo(`Updating job ${e} with event ${a.eventType}`),a.eventType){case g.FlowStart:yield*i({status:`running`});break;case g.FlowEnd:yield*l.gen(function*(){let t=yield*r.get(e);t&&a.outputs&&(yield*r.set(e,{...t,result:a.outputs,updatedAt:new Date}))});break;case g.FlowError:yield*i({status:`failed`,error:a.error});break;case g.NodeStart:yield*l.gen(function*(){let t=yield*r.get(e);if(t){let n=t.tasks.find(e=>e.nodeId===a.nodeId)?t.tasks.map(e=>e.nodeId===a.nodeId?{...e,status:`running`,updatedAt:new Date}:e):[...t.tasks,{nodeId:a.nodeId,status:`running`,createdAt:new Date,updatedAt:new Date}];yield*r.set(e,{...t,tasks:n,updatedAt:new Date})}});break;case g.NodePause:yield*l.gen(function*(){let t=yield*r.get(e);if(t){let n=t.tasks.find(e=>e.nodeId===a.nodeId)?t.tasks.map(e=>e.nodeId===a.nodeId?{...e,status:`paused`,result:a.partialData,updatedAt:new Date}:e):[...t.tasks,{nodeId:a.nodeId,status:`paused`,result:a.partialData,createdAt:new Date,updatedAt:new Date}];yield*r.set(e,{...t,tasks:n,updatedAt:new Date})}});break;case g.NodeResume:yield*l.gen(function*(){let t=yield*r.get(e);if(t){let n=t.tasks.map(e=>e.nodeId===a.nodeId?{...e,status:`running`,updatedAt:new Date}:e);yield*r.set(e,{...t,tasks:n,updatedAt:new Date})}});break;case g.NodeEnd:yield*l.gen(function*(){let n=yield*r.get(e);if(n){let i=n.tasks.map(e=>e.nodeId===a.nodeId?{...e,status:`completed`,result:a.result,updatedAt:new Date}:e),o=!t.edges.some(e=>e.source===a.nodeId),s=t.nodes.find(e=>e.id===a.nodeId)?.keepOutput===!0,c=a.result,u=ge(c),d=n.intermediateFiles||[],f=o||s;f&&J(u)&&u.id?(d=d.filter(e=>e!==u.id),s&&!o&&l.logInfo(`Preserving output from node ${a.nodeId} due to keepOutput flag`)):!f&&J(u)&&u.id&&(d.includes(u.id)||d.push(u.id)),yield*r.set(e,{...n,tasks:i,intermediateFiles:d,updatedAt:new Date})}});break;case g.NodeError:yield*l.gen(function*(){let t=yield*r.get(e);if(t){let n=t.tasks.map(e=>e.nodeId===a.nodeId?{...e,status:`failed`,error:a.error,retryCount:a.retryCount,updatedAt:new Date}:e);yield*r.set(e,{...t,tasks:n,error:a.error,updatedAt:new Date})}});break}return{eventId:e}})},a=t=>t=>l.gen(function*(){let n=yield*r.get(t);return n?n.status===`paused`?`paused`:n.status===`cancelled`?`cancelled`:`running`:yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found`}))});return{...t,run:e=>l.gen(function*(){let n=e.jobId||crypto.randomUUID(),r=i(n),o=a(n);return yield*(yield*W({flowId:t.id,name:t.name,nodes:t.nodes,edges:t.edges,inputSchema:t.inputSchema,outputSchema:t.outputSchema,onEvent:r,checkJobStatus:o})).run({...e,jobId:n,clientId:e.clientId})}),resume:e=>l.gen(function*(){let n=e.jobId,r=i(n),o=a(n);return yield*(yield*W({flowId:t.id,name:t.name,nodes:t.nodes,edges:t.edges,inputSchema:t.inputSchema,outputSchema:t.outputSchema,onEvent:r,checkJobStatus:o})).resume(e)})}}function X(){return l.gen(function*(){let t=yield*K,i=yield*n,a=yield*r,s=yield*o,c=(t,n)=>l.gen(function*(){let r=yield*a.get(t);return r?yield*a.set(t,{...r,...n}):yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found`}))}),u=(e,t)=>l.gen(function*(){let n=yield*a.get(e);!n||!n.intermediateFiles||n.intermediateFiles.length===0||(yield*l.logInfo(`Cleaning up ${n.intermediateFiles.length} intermediate files for job ${e}`),yield*l.all(n.intermediateFiles.map(e=>l.gen(function*(){yield*s.delete(e,t),yield*l.logDebug(`Deleted intermediate file ${e}`)}).pipe(l.catchAll(t=>l.gen(function*(){return yield*l.logWarning(`Failed to delete intermediate file ${e}: ${t}`),l.succeed(void 0)})))),{concurrency:5}),yield*c(e,{intermediateFiles:[]}))}),p=({jobId:t,flow:n,storageId:r,clientId:o,inputs:s})=>l.gen(function*(){console.log(`[FlowServer] executeFlowInBackground started for job: ${t}`),yield*c(t,{status:`running`}),console.log(`[FlowServer] Creating flowWithEvents for job: ${t}`);let e=Y(n,i,a);console.log(`[FlowServer] Running flow for job: ${t}`);let l=yield*e.run({inputs:s,storageId:r,jobId:t,clientId:o});return console.log(`[FlowServer] Flow completed for job: ${t}, result type: ${l.type}`),l.type===`paused`?yield*c(t,{status:`paused`,pausedAt:l.nodeId,executionState:l.executionState,updatedAt:new Date}):(yield*c(t,{status:`completed`,updatedAt:new Date,endedAt:new Date}),yield*u(t,o)),l}).pipe(l.catchAll(n=>l.gen(function*(){yield*l.logError(`Flow execution failed`,n);let r=n instanceof e?n.body:String(n);yield*l.logInfo(`Updating job ${t} to failed status with error: ${r}`),yield*c(t,{status:`failed`,error:r,updatedAt:new Date}).pipe(l.catchAll(e=>l.gen(function*(){return yield*l.logError(`Failed to update job ${t}`,e),l.succeed(void 0)})));let s=yield*a.get(t);throw s&&(yield*i.emit(t,{jobId:t,eventType:g.FlowError,flowId:s.flowId,error:r}).pipe(l.catchAll(e=>l.gen(function*(){return yield*l.logError(`Failed to emit FlowError event for job ${t}`,e),l.succeed(void 0)})))),yield*u(t,o).pipe(l.catchAll(e=>l.gen(function*(){return yield*l.logWarning(`Failed to cleanup intermediate files for job ${t}`,e),l.succeed(void 0)}))),n})));return{getFlow:(e,n)=>l.gen(function*(){return yield*t.getFlow(e,n)}),getFlowData:(e,n)=>l.gen(function*(){return U(yield*t.getFlow(e,n))}),runFlow:({flowId:n,storageId:r,clientId:i,inputs:o})=>l.gen(function*(){let s=yield*G.optional,c=yield*l.try({try:()=>Ye.parse({inputs:o}),catch:t=>e.fromCode(`FLOW_INPUT_VALIDATION_ERROR`,{cause:t})}),u=crypto.randomUUID(),m=new Date,h={id:u,flowId:n,storageId:r,clientId:i,status:`started`,createdAt:m,updatedAt:m,tasks:[]};yield*a.set(u,h);let g=yield*t.getFlow(n,i);console.log(`[FlowServer] About to fork flow execution for job: ${u}`);let _=p({jobId:u,flow:g,storageId:r,clientId:i,inputs:c.inputs}).pipe(l.tapErrorCause(e=>l.logError(`Flow execution failed`,e)));if(d.isSome(s)){console.log(`[FlowServer] Using waitUntil for job: ${u}`);let e=yield*l.runtime(),t=f.runPromise(e)(_);s.value(t)}else console.log(`[FlowServer] Using Effect.forkDaemon for job: ${u}`),yield*l.forkDaemon(_);return console.log(`[FlowServer] Flow execution started for job: ${u}`),h}),getJobStatus:t=>l.gen(function*(){return(yield*a.get(t))||(yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found`})))}),resumeFlow:({jobId:n,nodeId:r,newData:o,clientId:s})=>l.gen(function*(){let p=yield*G.optional,m=yield*a.get(n);if(!m)return console.error(`Job not found`),yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${n} not found`}));if(m.status!==`paused`)return console.error(`Job is not paused`),yield*l.fail(e.fromCode(`FLOW_JOB_ERROR`,{cause:`Job ${n} is not paused (status: ${m.status})`}));if(m.pausedAt!==r)return console.error(`Job is not paused at the expected node`),yield*l.fail(e.fromCode(`FLOW_JOB_ERROR`,{cause:`Job ${n} is paused at node ${m.pausedAt}, not ${r}`}));if(!m.executionState)return console.error(`Job has no execution state`),yield*l.fail(e.fromCode(`FLOW_JOB_ERROR`,{cause:`Job ${n} has no execution state`}));let h={...m.tasks.reduce((e,t)=>(t.result!==void 0&&(e[t.nodeId]=t.result),e),{}),[r]:o},_={...m.executionState.inputs,[r]:o};yield*c(n,{status:`running`});let v=yield*t.getFlow(m.flowId,m.clientId),y=l.gen(function*(){let t=Y(v,i,a);if(!m.executionState)return yield*l.fail(e.fromCode(`FLOW_JOB_ERROR`,{cause:`Job ${n} has no execution state`}));let r=yield*t.resume({jobId:n,storageId:m.storageId,nodeResults:h,executionState:{...m.executionState,inputs:_},clientId:m.clientId});return r.type===`paused`?yield*c(n,{status:`paused`,pausedAt:r.nodeId,executionState:r.executionState,updatedAt:new Date}):(yield*c(n,{status:`completed`,pausedAt:void 0,executionState:void 0,updatedAt:new Date,endedAt:new Date}),yield*u(n,s)),r}).pipe(l.catchAll(t=>l.gen(function*(){yield*l.logError(`Flow resume failed`,t);let r=t instanceof e?t.body:String(t);yield*l.logInfo(`Updating job ${n} to failed status with error: ${r}`),yield*c(n,{status:`failed`,error:r,updatedAt:new Date}).pipe(l.catchAll(e=>l.gen(function*(){return yield*l.logError(`Failed to update job ${n}`,e),l.succeed(void 0)})));let o=yield*a.get(n);throw o&&(yield*i.emit(n,{jobId:n,eventType:g.FlowError,flowId:o.flowId,error:r}).pipe(l.catchAll(e=>l.gen(function*(){return yield*l.logError(`Failed to emit FlowError event for job ${n}`,e),l.succeed(void 0)})))),yield*u(n,s).pipe(l.catchAll(e=>l.gen(function*(){return yield*l.logWarning(`Failed to cleanup intermediate files for job ${n}`,e),l.succeed(void 0)}))),t}))).pipe(l.tapErrorCause(e=>l.logError(`Flow resume failed`,e)));if(d.isSome(p)){console.log(`[FlowServer] Using waitUntil for resume job: ${n}`);let e=yield*l.runtime(),t=f.runPromise(e)(y);p.value(t)}else console.log(`[FlowServer] Using Effect.forkDaemon for resume job: ${n}`),yield*l.forkDaemon(y);return(yield*a.get(n))||(yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${n} not found after update`})))}),pauseFlow:(t,n)=>l.gen(function*(){let r=yield*a.get(t);if(!r)return yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found`}));if(n!==null&&r.clientId!==n)return yield*l.fail(e.fromCode(`FLOW_NOT_AUTHORIZED`,{cause:`Client ${n} is not authorized to pause job ${t}`}));if(r.status!==`running`)return yield*l.fail(e.fromCode(`FLOW_JOB_ERROR`,{cause:`Job ${t} cannot be paused (current status: ${r.status})`}));let o=r.tasks.find(e=>e.status===`running`)?.nodeId;return yield*c(t,{status:`paused`,pausedAt:o,updatedAt:new Date}),yield*i.emit(t,{jobId:t,flowId:r.flowId,eventType:g.FlowPause,pausedAt:o}),(yield*a.get(t))||(yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found after pause`})))}),cancelFlow:(t,n)=>l.gen(function*(){let r=yield*a.get(t);return r?n!==null&&r.clientId!==n?yield*l.fail(e.fromCode(`FLOW_NOT_AUTHORIZED`,{cause:`Client ${n} is not authorized to cancel job ${t}`})):r.status!==`running`&&r.status!==`paused`&&r.status!==`started`?yield*l.fail(e.fromCode(`FLOW_JOB_ERROR`,{cause:`Job ${t} cannot be cancelled (current status: ${r.status})`})):(yield*c(t,{status:`cancelled`,updatedAt:new Date,endedAt:new Date}),yield*i.emit(t,{jobId:t,flowId:r.flowId,eventType:g.FlowCancel}),yield*u(t,n),(yield*a.get(t))||(yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found after cancellation`})))):yield*l.fail(e.fromCode(`FLOW_JOB_NOT_FOUND`,{cause:`Job ${t} not found`}))}),subscribeToFlowEvents:(e,t)=>l.gen(function*(){yield*i.subscribe(e,t)}),unsubscribeFromFlowEvents:e=>l.gen(function*(){yield*i.unsubscribe(e)})}})}const _e=u.effect(q,X());function ve({id:e,name:n,description:r,outputTypeId:i,keepOutput:a,transform:s}){return l.gen(function*(){let c=yield*o;return yield*w({id:e,name:n,description:r,type:C.process,outputTypeId:i,keepOutput:a,inputSchema:t,outputSchema:t,run:({data:t,storageId:n,flowId:r,jobId:i,clientId:a})=>l.gen(function*(){let o={flowId:r,nodeId:e,jobId:i},l=yield*s(yield*c.read(t.id,a),t),u=l instanceof Uint8Array?l:l.bytes,d=l instanceof Uint8Array?void 0:l.type,f=l instanceof Uint8Array?void 0:l.fileName,p=new ReadableStream({start(e){e.enqueue(u),e.close()}}),{type:m,fileName:h,metadata:g,metadataJson:_}=A(t.metadata),v=yield*c.upload({storageId:n,size:u.byteLength,type:d??m,fileName:f??h,lastModified:0,metadata:_,flow:o},a,p),y=g?{...g,...d&&{mimeType:d,type:d,"content-type":d},...f&&{fileName:f,originalName:f,name:f,extension:f.split(`.`).pop()||g.extension}}:v.metadata;return E(y?{...v,metadata:y}:v)})})})}var ye=class extends c.Tag(`CredentialProvider`)(){},be=class extends c.Tag(`DocumentAiPlugin`)(){},xe=class extends c.Tag(`DocumentPlugin`)(){},Se=class extends c.Tag(`ImageAiPlugin`)(){},Ce=class extends c.Tag(`ImagePlugin`)(){};const we=m.object({serviceType:m.enum([`replicate`]).optional()}),Te=m.object({duration:m.number().nonnegative(),width:m.number().positive(),height:m.number().positive(),codec:m.string(),format:m.string(),bitrate:m.number().nonnegative(),frameRate:m.number().positive(),aspectRatio:m.string(),hasAudio:m.boolean(),audioCodec:m.string().optional(),audioBitrate:m.number().nonnegative().optional(),size:m.number().nonnegative()}),Ee=m.object({timestamp:m.number().nonnegative(),format:m.enum([`png`,`jpeg`]).optional(),quality:m.number().min(1).max(100).optional()}),De=m.object({quality:m.number().min(0).max(100),format:m.enum([`jpeg`,`webp`,`png`,`avif`])}),Oe=m.object({serviceType:m.enum([`replicate`]).optional()}),ke=m.object({width:m.number().positive().optional(),height:m.number().positive().optional(),fit:m.enum([`contain`,`cover`,`fill`])}).refine(e=>e.width||e.height,`Either width or height must be specified for resize`),Ae=m.object({width:m.number().positive().optional(),height:m.number().positive().optional(),aspectRatio:m.enum([`keep`,`ignore`]).optional(),scaling:m.enum([`bicubic`,`bilinear`,`lanczos`]).optional()}).refine(e=>e.width||e.height,`Either width or height must be specified for video resize`),je=m.object({format:m.enum([`mp4`,`webm`,`mov`,`avi`]),codec:m.enum([`h264`,`h265`,`vp9`,`av1`]).optional(),videoBitrate:m.string().optional(),audioBitrate:m.string().optional(),audioCodec:m.enum([`aac`,`mp3`,`opus`,`vorbis`]).optional()}),Z=m.object({type:m.literal(`resize`),width:m.number().positive().optional(),height:m.number().positive().optional(),fit:m.enum([`contain`,`cover`,`fill`])}),Q=m.object({type:m.literal(`blur`),sigma:m.number().min(.3).max(1e3)}),Me=m.object({type:m.literal(`rotate`),angle:m.number(),background:m.string().optional()}),Ne=m.object({type:m.literal(`flip`),direction:m.enum([`horizontal`,`vertical`])}),Pe=m.object({type:m.literal(`grayscale`)}),Fe=m.object({type:m.literal(`sepia`)}),Ie=m.object({type:m.literal(`brightness`),value:m.number().min(-100).max(100)}),Le=m.object({type:m.literal(`contrast`),value:m.number().min(-100).max(100)}),$=m.object({type:m.literal(`sharpen`),sigma:m.number().positive().optional()}),Re=m.object({type:m.literal(`watermark`),imagePath:m.string().min(1).url(),position:m.enum([`top-left`,`top-right`,`bottom-left`,`bottom-right`,`center`]),opacity:m.number().min(0).max(1),offsetX:m.number().optional(),offsetY:m.number().optional()}),ze=m.object({type:m.literal(`logo`),imagePath:m.string().min(1).url(),position:m.enum([`top-left`,`top-right`,`bottom-left`,`bottom-right`,`center`]),scale:m.number().min(.1).max(2),offsetX:m.number().optional(),offsetY:m.number().optional()}),Be=m.object({type:m.literal(`text`),text:m.string().min(1),position:m.enum([`top-left`,`top-right`,`bottom-left`,`bottom-right`,`center`]),fontSize:m.number().positive(),color:m.string().min(1),fontFamily:m.string().optional(),offsetX:m.number().optional(),offsetY:m.number().optional()}),Ve=m.discriminatedUnion(`type`,[Z,Q,Me,Ne,Pe,Fe,Ie,Le,$,Re,ze,Be]),He=m.object({transformations:m.array(Ve).min(1)}),Ue=m.object({startTime:m.number().nonnegative(),endTime:m.number().positive().optional(),duration:m.number().positive().optional()}).refine(e=>!e.endTime||!e.duration,`Cannot specify both endTime and duration`).refine(e=>!e.endTime||e.endTime>e.startTime,`endTime must be greater than startTime`);var We=class extends c.Tag(`VideoPlugin`)(){},Ge=class extends c.Tag(`VirusScanPlugin`)(){},Ke=class extends c.Tag(`ZipPlugin`)(){};const qe=(e,t)=>{if(e.length===0)return t;let[n,...r]=e;return r.reduce((e,t)=>m.union([e,t]),n)};function Je(t){return l.gen(function*(){let n=Object.entries(t.nodes),r=e=>l.isEffect(e)?e:l.succeed(e),i=yield*l.forEach(n,([t,n])=>l.flatMap(r(n),n=>n.id===t?l.succeed([t,n]):l.fail(e.fromCode(`FLOW_NODE_ERROR`,{cause:Error(`Node key ${t} does not match node id ${n.id}`)})))),a=Object.fromEntries(i),o=i.map(([,e])=>e),s=i.filter(([,e])=>e.type===C.input).map(([,e])=>e.inputSchema),c=t.edges.map(e=>({source:a[e.source]?.id??e.source,target:a[e.target]?.id??e.target,sourcePort:e.sourcePort,targetPort:e.targetPort})),u=new Set(i.map(([e])=>a[e]?.id).filter(e=>e&&!c.some(t=>t.source===e))),d=i.filter(([,e])=>u.has(e.id)).map(([,e])=>e.outputSchema),f=t.inputSchema??qe(s,m.unknown()),p=t.outputSchema??qe(d,m.unknown());return yield*W({flowId:t.flowId,name:t.name,nodes:o,edges:c,inputSchema:f,outputSchema:p,typeChecker:t.typeChecker,onEvent:t.onEvent,parallelExecution:t.parallelExecution,hooks:t.hooks})})}const Ye=m.object({inputs:m.record(m.string(),m.any())});export{V as $,Se as A,W as B,ke as C,y as Ct,Te as D,Ee as E,K as F,ue as G,B as H,q as I,pe as J,ce as K,G as L,be as M,ye as N,we as O,ve as P,ae as Q,X as R,Ae as S,v as St,De as T,h as Tt,H as U,U as V,le as W,fe as X,se as Y,oe as Z,Be as _,T as _t,We as a,N as at,Re as b,S as bt,Ie as c,L as ct,Pe as d,re as dt,he as et,ze as f,A as ft,$ as g,w as gt,Fe as h,C as ht,Ge as i,P as it,xe as j,Ce as k,Le as l,ie as lt,Me as m,D as mt,Je as n,z as nt,Ue as o,I as ot,Z as p,E as pt,de as q,Ke as r,F as rt,Q as s,R as st,Ye as t,me as tt,Ne as u,j as ut,He as v,b as vt,Oe as w,g as wt,je as x,_ as xt,Ve as y,x as yt,_e as z};
2
+ //# sourceMappingURL=flow-CAywogte.mjs.map