@uploadista/flow-utility-nodes 0.0.18-beta.17 → 0.0.18-beta.3

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.
@@ -1 +1 @@
1
- let e=require(`@uploadista/core/flow`),t=require(`@uploadista/core/types`),n=require(`effect`),r=require(`@uploadista/core/errors`),i=require(`@uploadista/core/upload`),a=require(`zod`);function o(r,{field:i,operator:a,value:o}){return(0,e.createFlowNode)({id:r,name:`Conditional Router`,description:`Routes flow based on ${i} ${a} ${o}`,type:e.NodeType.conditional,nodeTypeId:`conditional`,inputSchema:t.uploadFileSchema,outputSchema:t.uploadFileSchema,condition:{field:i,operator:a,value:o},run:({data:t})=>n.Effect.succeed((0,e.completeNodeExecution)(t))})}const s=a.z.record(a.z.string(),t.uploadFileSchema),c=t.uploadFileSchema;function l(t,{strategy:a,separator:o}){return n.Effect.gen(function*(){let o=yield*i.UploadServer;return yield*(0,e.createFlowNode)({id:t,name:`Merge Files`,description:`Merges multiple files using ${a} strategy`,type:e.NodeType.merge,nodeTypeId:`merge`,outputTypeId:e.STORAGE_OUTPUT_TYPE_ID,inputSchema:s,outputSchema:c,multiInput:!0,run:({data:t,storageId:i,clientId:s})=>n.Effect.gen(function*(){if(!t||Object.keys(t).length===0)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to merge node`}));let c=Object.values(t);if(c.length===0)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`No files to merge`}));switch(a){case`concat`:{let t=[],n=0;for(let e of c){let r=yield*o.read(e.id,s);t.push(r),n+=r.byteLength}let r=new Uint8Array(n),a=0;for(let e of t)r.set(e,a),a+=e.byteLength;let l=new ReadableStream({start(e){e.enqueue(r),e.close()}});return(0,e.completeNodeExecution)(yield*o.upload({storageId:i,size:r.byteLength,type:`application/octet-stream`,fileName:`merged_${c.length}_files.bin`,lastModified:0,metadata:JSON.stringify({mimeType:`application/octet-stream`,originalName:`merged_${c.length}_files`,extension:`bin`})},s,l))}default:return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`Unknown merge strategy: ${a}`}))}})})})}function u(a,{outputCount:o,strategy:s}){return n.Effect.gen(function*(){let o=yield*i.UploadServer;return yield*(0,e.createFlowNode)({id:a,name:`Multiplex`,description:`Multiplexes input using ${s} strategy`,type:e.NodeType.multiplex,nodeTypeId:`multiplex`,outputTypeId:e.STORAGE_OUTPUT_TYPE_ID,inputSchema:t.uploadFileSchema,outputSchema:t.uploadFileSchema,multiOutput:!0,run:({data:t,storageId:i,clientId:a})=>n.Effect.gen(function*(){let{type:c,fileName:l,metadata:u,metadataJson:d}=(0,e.resolveUploadMetadata)(t.metadata),f=u?{...t,metadata:u}:t;if(s===`copy`){let t=yield*o.read(f.id,a),n=new ReadableStream({start(e){e.enqueue(t),e.close()}}),r=yield*o.upload({storageId:i,size:t.byteLength,type:c,fileName:l,lastModified:0,metadata:d},a,n),s=(0,e.resolveUploadMetadata)(r.metadata);return(0,e.completeNodeExecution)(s.metadata?{...r,metadata:s.metadata}:r)}else if(s===`split`)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`Split strategy is not supported with UploadFile pattern`}));return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`Unknown multiplex strategy: ${s}`}))})})})}const d=a.z.record(a.z.string(),t.uploadFileSchema),f=t.uploadFileSchema;function p(t,{zipName:a,includeMetadata:o}){return n.Effect.gen(function*(){let s=yield*i.UploadServer,c=yield*e.ZipPlugin;return yield*(0,e.createFlowNode)({id:t,name:`Zip Files`,description:`Combines multiple files into a zip archive`,type:e.NodeType.process,nodeTypeId:`zip`,outputTypeId:e.STORAGE_OUTPUT_TYPE_ID,inputSchema:d,outputSchema:f,multiInput:!0,run:({data:t,storageId:i,clientId:l})=>n.Effect.gen(function*(){if(!t||Object.keys(t).length===0)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to zip node`}));let u=yield*n.Effect.forEach(Object.values(t),e=>n.Effect.gen(function*(){let t=yield*s.read(e.id,l);return{id:e.id,data:t,metadata:e.metadata}}),{concurrency:`unbounded`}),d=yield*c.zip(u,{zipName:a,includeMetadata:o}),f=new ReadableStream({start(e){e.enqueue(d),e.close()}});return(0,e.completeNodeExecution)(yield*s.upload({storageId:i,size:d.byteLength,type:`application/zip`,fileName:a,lastModified:0,metadata:JSON.stringify({mimeType:`application/zip`,type:`application/zip`,originalName:a,fileName:a,extension:`zip`})},l,f))})})})}exports.createConditionalNode=o,exports.createMergeNode=l,exports.createMultiplexNode=u,exports.createZipNode=p;
1
+ let e=require(`@uploadista/core/flow`),t=require(`@uploadista/core/types`),n=require(`effect`),r=require(`@uploadista/core/errors`),i=require(`@uploadista/core/upload`),a=require(`zod`);function o(r,{field:i,operator:a,value:o}){return(0,e.createFlowNode)({id:r,name:`Conditional Router`,description:`Routes flow based on ${i} ${a} ${o}`,type:e.NodeType.conditional,inputSchema:t.uploadFileSchema,outputSchema:t.uploadFileSchema,condition:{field:i,operator:a,value:o},run:({data:t})=>n.Effect.succeed((0,e.completeNodeExecution)(t))})}const s=a.z.record(a.z.string(),t.uploadFileSchema),c=t.uploadFileSchema;function l(t,{strategy:a,separator:o}){return n.Effect.gen(function*(){let o=yield*i.UploadServer;return yield*(0,e.createFlowNode)({id:t,name:`Merge Files`,description:`Merges multiple files using ${a} strategy`,type:e.NodeType.merge,outputTypeId:e.STORAGE_OUTPUT_TYPE_ID,inputSchema:s,outputSchema:c,multiInput:!0,run:({data:t,storageId:i,clientId:s})=>n.Effect.gen(function*(){if(!t||Object.keys(t).length===0)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to merge node`}));let c=Object.values(t);if(c.length===0)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`No files to merge`}));switch(a){case`concat`:{let t=[],n=0;for(let e of c){let r=yield*o.read(e.id,s);t.push(r),n+=r.byteLength}let r=new Uint8Array(n),a=0;for(let e of t)r.set(e,a),a+=e.byteLength;let l=new ReadableStream({start(e){e.enqueue(r),e.close()}});return(0,e.completeNodeExecution)(yield*o.upload({storageId:i,size:r.byteLength,type:`application/octet-stream`,fileName:`merged_${c.length}_files.bin`,lastModified:0,metadata:JSON.stringify({mimeType:`application/octet-stream`,originalName:`merged_${c.length}_files`,extension:`bin`})},s,l))}default:return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`Unknown merge strategy: ${a}`}))}})})})}function u(a,{outputCount:o,strategy:s}){return n.Effect.gen(function*(){let o=yield*i.UploadServer;return yield*(0,e.createFlowNode)({id:a,name:`Multiplex`,description:`Multiplexes input using ${s} strategy`,type:e.NodeType.multiplex,outputTypeId:e.STORAGE_OUTPUT_TYPE_ID,inputSchema:t.uploadFileSchema,outputSchema:t.uploadFileSchema,multiOutput:!0,run:({data:t,storageId:i,clientId:a})=>n.Effect.gen(function*(){let{type:c,fileName:l,metadata:u,metadataJson:d}=(0,e.resolveUploadMetadata)(t.metadata),f=u?{...t,metadata:u}:t;if(s===`copy`){let t=yield*o.read(f.id,a),n=new ReadableStream({start(e){e.enqueue(t),e.close()}}),r=yield*o.upload({storageId:i,size:t.byteLength,type:c,fileName:l,lastModified:0,metadata:d},a,n),s=(0,e.resolveUploadMetadata)(r.metadata);return(0,e.completeNodeExecution)(s.metadata?{...r,metadata:s.metadata}:r)}else if(s===`split`)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`Split strategy is not supported with UploadFile pattern`}));return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`Unknown multiplex strategy: ${s}`}))})})})}const d=a.z.record(a.z.string(),t.uploadFileSchema),f=t.uploadFileSchema;function p(t,{zipName:a,includeMetadata:o}){return n.Effect.gen(function*(){let s=yield*i.UploadServer,c=yield*e.ZipPlugin;return yield*(0,e.createFlowNode)({id:t,name:`Zip Files`,description:`Combines multiple files into a zip archive`,type:e.NodeType.process,outputTypeId:e.STORAGE_OUTPUT_TYPE_ID,inputSchema:d,outputSchema:f,multiInput:!0,run:({data:t,storageId:i,clientId:l})=>n.Effect.gen(function*(){if(!t||Object.keys(t).length===0)return yield*n.Effect.fail(r.UploadistaError.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to zip node`}));let u=yield*n.Effect.forEach(Object.values(t),e=>n.Effect.gen(function*(){let t=yield*s.read(e.id,l);return{id:e.id,data:t,metadata:e.metadata}}),{concurrency:`unbounded`}),d=yield*c.zip(u,{zipName:a,includeMetadata:o}),f=new ReadableStream({start(e){e.enqueue(d),e.close()}});return(0,e.completeNodeExecution)(yield*s.upload({storageId:i,size:d.byteLength,type:`application/zip`,fileName:a,lastModified:0,metadata:JSON.stringify({mimeType:`application/zip`,type:`application/zip`,originalName:a,fileName:a,extension:`zip`})},l,f))})})})}exports.createConditionalNode=o,exports.createMergeNode=l,exports.createMultiplexNode=u,exports.createZipNode=p;
@@ -1,5 +1,5 @@
1
1
  import { a as MergeParams, r as MultiplexParams, s as ConditionalParams, t as ZipParams } from "../zip-node-c3Z0LkjZ.cjs";
2
- import * as _uploadista_core_flow2 from "@uploadista/core/flow";
2
+ import * as _uploadista_core_flow1 from "@uploadista/core/flow";
3
3
  import { NodeType, ZipPlugin } from "@uploadista/core/flow";
4
4
  import * as zod_v4_core0 from "zod/v4/core";
5
5
  import * as zod0 from "zod";
@@ -15,7 +15,7 @@ declare function createConditionalNode(id: string, {
15
15
  field,
16
16
  operator,
17
17
  value
18
- }: ConditionalParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
18
+ }: ConditionalParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
19
19
  inputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
20
20
  outputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
21
21
  run: (args: {
@@ -25,7 +25,7 @@ declare function createConditionalNode(id: string, {
25
25
  flowId: string;
26
26
  inputs?: Record<string, unknown>;
27
27
  clientId: string | null;
28
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, _uploadista_core_errors0.UploadistaError, never>;
28
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, _uploadista_core_errors0.UploadistaError, never>;
29
29
  condition?: {
30
30
  field: string;
31
31
  operator: string;
@@ -39,7 +39,6 @@ declare function createConditionalNode(id: string, {
39
39
  retryDelay?: number;
40
40
  exponentialBackoff?: boolean;
41
41
  };
42
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
43
42
  } & {
44
43
  type: NodeType;
45
44
  }, _uploadista_core_errors0.UploadistaError, never>;
@@ -48,7 +47,7 @@ declare function createConditionalNode(id: string, {
48
47
  declare function createMergeNode(id: string, {
49
48
  strategy,
50
49
  separator: _separator
51
- }: MergeParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
50
+ }: MergeParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
52
51
  inputSchema: z.ZodType<Record<string, UploadFile>, unknown, z.core.$ZodTypeInternals<Record<string, UploadFile>, unknown>>;
53
52
  outputSchema: z.ZodType<UploadFile, unknown, z.core.$ZodTypeInternals<UploadFile, unknown>>;
54
53
  run: (args: {
@@ -58,7 +57,7 @@ declare function createMergeNode(id: string, {
58
57
  flowId: string;
59
58
  inputs?: Record<string, unknown>;
60
59
  clientId: string | null;
61
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, UploadistaError, never>;
60
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, UploadistaError, never>;
62
61
  condition?: {
63
62
  field: string;
64
63
  operator: string;
@@ -72,7 +71,6 @@ declare function createMergeNode(id: string, {
72
71
  retryDelay?: number;
73
72
  exponentialBackoff?: boolean;
74
73
  };
75
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
76
74
  } & {
77
75
  type: NodeType;
78
76
  }, UploadistaError, UploadServer>;
@@ -81,7 +79,7 @@ declare function createMergeNode(id: string, {
81
79
  declare function createMultiplexNode(id: string, {
82
80
  outputCount: _outputCount,
83
81
  strategy
84
- }: MultiplexParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
82
+ }: MultiplexParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
85
83
  inputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
86
84
  outputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
87
85
  run: (args: {
@@ -91,7 +89,7 @@ declare function createMultiplexNode(id: string, {
91
89
  flowId: string;
92
90
  inputs?: Record<string, unknown>;
93
91
  clientId: string | null;
94
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, UploadistaError, never>;
92
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, UploadistaError, never>;
95
93
  condition?: {
96
94
  field: string;
97
95
  operator: string;
@@ -105,7 +103,6 @@ declare function createMultiplexNode(id: string, {
105
103
  retryDelay?: number;
106
104
  exponentialBackoff?: boolean;
107
105
  };
108
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
109
106
  } & {
110
107
  type: NodeType;
111
108
  }, UploadistaError, UploadServer>;
@@ -114,7 +111,7 @@ declare function createMultiplexNode(id: string, {
114
111
  declare function createZipNode(id: string, {
115
112
  zipName,
116
113
  includeMetadata
117
- }: ZipParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
114
+ }: ZipParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
118
115
  inputSchema: z.ZodType<Record<string, UploadFile>, unknown, z.core.$ZodTypeInternals<Record<string, UploadFile>, unknown>>;
119
116
  outputSchema: z.ZodType<UploadFile, unknown, z.core.$ZodTypeInternals<UploadFile, unknown>>;
120
117
  run: (args: {
@@ -124,7 +121,7 @@ declare function createZipNode(id: string, {
124
121
  flowId: string;
125
122
  inputs?: Record<string, unknown>;
126
123
  clientId: string | null;
127
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, UploadistaError, never>;
124
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, UploadistaError, never>;
128
125
  condition?: {
129
126
  field: string;
130
127
  operator: string;
@@ -138,7 +135,6 @@ declare function createZipNode(id: string, {
138
135
  retryDelay?: number;
139
136
  exponentialBackoff?: boolean;
140
137
  };
141
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
142
138
  } & {
143
139
  type: NodeType;
144
140
  }, UploadistaError, UploadServer | ZipPlugin>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/nodes/conditional-node.ts","../../src/nodes/merge-node.ts","../../src/nodes/multiplex-node.ts","../../src/nodes/zip-node.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBASgB,qBAAA;;;;GAEc,oBAAiB,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;;;IAF/B,QAAA,EAAA,MAAA,GAAA,IAAqB;EAEjC,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,4CAAA,KAAA,CAAA;EAAO,SAAA,CAAA,EAAA;IAAU,KAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAAiB,KAAA,EAAA,OAAA;;;;;;;;;;;;;;;;iBCK/B,eAAA;;aAES;GAAc,cAAW,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IDTlC,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;iBEE/B,mBAAA;eAEC;;GAA0B,kBAAe,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;IFN1C,MAAA,EAAA,MAAA;IAEZ,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAO,QAAA,EAAA,MAAA,GAAA,IAAA;EAAU,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAS,SAAA,CAAA,EAAA;IAAiB,KAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;iBGM/B,aAAA;;;GAEgB,YAAS,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IHVzB,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/nodes/conditional-node.ts","../../src/nodes/merge-node.ts","../../src/nodes/multiplex-node.ts","../../src/nodes/zip-node.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBASgB,qBAAA;;;;GAEc,oBAAiB,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;;;IAF/B,QAAA,EAAA,MAAA,GAAA,IAAqB;EAEjC,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,4CAAA,KAAA,CAAA;EAAO,SAAA,CAAA,EAAA;IAAU,KAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAAiB,KAAA,EAAA,OAAA;;;;;;;;;;;;;;;iBCK/B,eAAA;;aAES;GAAc,cAAW,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IDTlC,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;iBEE/B,mBAAA;eAEC;;GAA0B,kBAAe,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;IFN1C,MAAA,EAAA,MAAA;IAEZ,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAO,QAAA,EAAA,MAAA,GAAA,IAAA;EAAU,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAS,SAAA,CAAA,EAAA;IAAiB,KAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;iBGM/B,aAAA;;;GAEgB,YAAS,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IHVzB,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA"}
@@ -1,5 +1,5 @@
1
1
  import { a as MergeParams, r as MultiplexParams, s as ConditionalParams, t as ZipParams } from "../zip-node-DxxNTUf9.mjs";
2
- import * as _uploadista_core_flow2 from "@uploadista/core/flow";
2
+ import * as _uploadista_core_flow1 from "@uploadista/core/flow";
3
3
  import { NodeType, ZipPlugin } from "@uploadista/core/flow";
4
4
  import { UploadFile } from "@uploadista/core/types";
5
5
  import { Effect } from "effect";
@@ -15,7 +15,7 @@ declare function createConditionalNode(id: string, {
15
15
  field,
16
16
  operator,
17
17
  value
18
- }: ConditionalParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
18
+ }: ConditionalParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
19
19
  inputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
20
20
  outputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
21
21
  run: (args: {
@@ -25,7 +25,7 @@ declare function createConditionalNode(id: string, {
25
25
  flowId: string;
26
26
  inputs?: Record<string, unknown>;
27
27
  clientId: string | null;
28
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, _uploadista_core_errors0.UploadistaError, never>;
28
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, _uploadista_core_errors0.UploadistaError, never>;
29
29
  condition?: {
30
30
  field: string;
31
31
  operator: string;
@@ -39,7 +39,6 @@ declare function createConditionalNode(id: string, {
39
39
  retryDelay?: number;
40
40
  exponentialBackoff?: boolean;
41
41
  };
42
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
43
42
  } & {
44
43
  type: NodeType;
45
44
  }, _uploadista_core_errors0.UploadistaError, never>;
@@ -48,7 +47,7 @@ declare function createConditionalNode(id: string, {
48
47
  declare function createMergeNode(id: string, {
49
48
  strategy,
50
49
  separator: _separator
51
- }: MergeParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
50
+ }: MergeParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
52
51
  inputSchema: z.ZodType<Record<string, UploadFile>, unknown, z.core.$ZodTypeInternals<Record<string, UploadFile>, unknown>>;
53
52
  outputSchema: z.ZodType<UploadFile, unknown, z.core.$ZodTypeInternals<UploadFile, unknown>>;
54
53
  run: (args: {
@@ -58,7 +57,7 @@ declare function createMergeNode(id: string, {
58
57
  flowId: string;
59
58
  inputs?: Record<string, unknown>;
60
59
  clientId: string | null;
61
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, UploadistaError, never>;
60
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, UploadistaError, never>;
62
61
  condition?: {
63
62
  field: string;
64
63
  operator: string;
@@ -72,7 +71,6 @@ declare function createMergeNode(id: string, {
72
71
  retryDelay?: number;
73
72
  exponentialBackoff?: boolean;
74
73
  };
75
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
76
74
  } & {
77
75
  type: NodeType;
78
76
  }, UploadistaError, UploadServer>;
@@ -81,7 +79,7 @@ declare function createMergeNode(id: string, {
81
79
  declare function createMultiplexNode(id: string, {
82
80
  outputCount: _outputCount,
83
81
  strategy
84
- }: MultiplexParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
82
+ }: MultiplexParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
85
83
  inputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
86
84
  outputSchema: zod0.ZodType<UploadFile, unknown, zod_v4_core0.$ZodTypeInternals<UploadFile, unknown>>;
87
85
  run: (args: {
@@ -91,7 +89,7 @@ declare function createMultiplexNode(id: string, {
91
89
  flowId: string;
92
90
  inputs?: Record<string, unknown>;
93
91
  clientId: string | null;
94
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, UploadistaError, never>;
92
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, UploadistaError, never>;
95
93
  condition?: {
96
94
  field: string;
97
95
  operator: string;
@@ -105,7 +103,6 @@ declare function createMultiplexNode(id: string, {
105
103
  retryDelay?: number;
106
104
  exponentialBackoff?: boolean;
107
105
  };
108
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
109
106
  } & {
110
107
  type: NodeType;
111
108
  }, UploadistaError, UploadServer>;
@@ -114,7 +111,7 @@ declare function createMultiplexNode(id: string, {
114
111
  declare function createZipNode(id: string, {
115
112
  zipName,
116
113
  includeMetadata
117
- }: ZipParams): Effect.Effect<_uploadista_core_flow2.FlowNodeData & {
114
+ }: ZipParams): Effect.Effect<_uploadista_core_flow1.FlowNodeData & {
118
115
  inputSchema: z.ZodType<Record<string, UploadFile>, unknown, z.core.$ZodTypeInternals<Record<string, UploadFile>, unknown>>;
119
116
  outputSchema: z.ZodType<UploadFile, unknown, z.core.$ZodTypeInternals<UploadFile, unknown>>;
120
117
  run: (args: {
@@ -124,7 +121,7 @@ declare function createZipNode(id: string, {
124
121
  flowId: string;
125
122
  inputs?: Record<string, unknown>;
126
123
  clientId: string | null;
127
- }) => Effect.Effect<_uploadista_core_flow2.NodeExecutionResult<UploadFile>, UploadistaError, never>;
124
+ }) => Effect.Effect<_uploadista_core_flow1.NodeExecutionResult<UploadFile>, UploadistaError, never>;
128
125
  condition?: {
129
126
  field: string;
130
127
  operator: string;
@@ -138,7 +135,6 @@ declare function createZipNode(id: string, {
138
135
  retryDelay?: number;
139
136
  exponentialBackoff?: boolean;
140
137
  };
141
- circuitBreaker?: _uploadista_core_flow2.FlowCircuitBreakerConfig;
142
138
  } & {
143
139
  type: NodeType;
144
140
  }, UploadistaError, UploadServer | ZipPlugin>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/nodes/conditional-node.ts","../../src/nodes/merge-node.ts","../../src/nodes/multiplex-node.ts","../../src/nodes/zip-node.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBASgB,qBAAA;;;;GAEc,oBAAiB,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;;;IAF/B,QAAA,EAAA,MAAA,GAAA,IAAqB;EAEjC,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,4CAAA,KAAA,CAAA;EAAO,SAAA,CAAA,EAAA;IAAU,KAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAAiB,KAAA,EAAA,OAAA;;;;;;;;;;;;;;;;iBCK/B,eAAA;;aAES;GAAc,cAAW,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IDTlC,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;iBEE/B,mBAAA;eAEC;;GAA0B,kBAAe,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;IFN1C,MAAA,EAAA,MAAA;IAEZ,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAO,QAAA,EAAA,MAAA,GAAA,IAAA;EAAU,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAS,SAAA,CAAA,EAAA;IAAiB,KAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;;iBGM/B,aAAA;;;GAEgB,YAAS,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IHVzB,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/nodes/conditional-node.ts","../../src/nodes/merge-node.ts","../../src/nodes/multiplex-node.ts","../../src/nodes/zip-node.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBASgB,qBAAA;;;;GAEc,oBAAiB,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;;;IAF/B,QAAA,EAAA,MAAA,GAAA,IAAqB;EAEjC,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,4CAAA,KAAA,CAAA;EAAO,SAAA,CAAA,EAAA;IAAU,KAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAAiB,KAAA,EAAA,OAAA;;;;;;;;;;;;;;;iBCK/B,eAAA;;aAES;GAAc,cAAW,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IDTlC,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;iBEE/B,mBAAA;eAEC;;GAA0B,kBAAe,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;;IFN1C,MAAA,EAAA,MAAA;IAEZ,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAO,QAAA,EAAA,MAAA,GAAA,IAAA;EAAU,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAS,SAAA,CAAA,EAAA;IAAiB,KAAA,EAAA,MAAA;;;;;;;;;;;;;;;;;iBGM/B,aAAA;;;GAEgB,YAAS,MAAA,CAAA,OAAA,sBAAA,CAAA,YAAA;;;;;;IHVzB,SAAA,EAAA,MAAA;IAEZ,MAAA,EAAA,MAAA;IAAO,MAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA;IAAU,QAAA,EAAA,MAAA,GAAA,IAAA;EAAS,CAAA,EAAA,gBAAA,2CAAA,WAAA,CAAA,iBAAA,EAAA,KAAA,CAAA;EAAiB,SAAA,CAAA,EAAA"}
@@ -1,2 +1,2 @@
1
- import{NodeType as e,STORAGE_OUTPUT_TYPE_ID as t,ZipPlugin as n,completeNodeExecution as r,createFlowNode as i,resolveUploadMetadata as a}from"@uploadista/core/flow";import{uploadFileSchema as o}from"@uploadista/core/types";import{Effect as s}from"effect";import{UploadistaError as c}from"@uploadista/core/errors";import{UploadServer as l}from"@uploadista/core/upload";import{z as u}from"zod";function d(t,{field:n,operator:a,value:c}){return i({id:t,name:`Conditional Router`,description:`Routes flow based on ${n} ${a} ${c}`,type:e.conditional,nodeTypeId:`conditional`,inputSchema:o,outputSchema:o,condition:{field:n,operator:a,value:c},run:({data:e})=>s.succeed(r(e))})}const f=u.record(u.string(),o),p=o;function m(n,{strategy:a,separator:o}){return s.gen(function*(){let o=yield*l;return yield*i({id:n,name:`Merge Files`,description:`Merges multiple files using ${a} strategy`,type:e.merge,nodeTypeId:`merge`,outputTypeId:t,inputSchema:f,outputSchema:p,multiInput:!0,run:({data:e,storageId:t,clientId:n})=>s.gen(function*(){if(!e||Object.keys(e).length===0)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to merge node`}));let i=Object.values(e);if(i.length===0)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`No files to merge`}));switch(a){case`concat`:{let e=[],a=0;for(let t of i){let r=yield*o.read(t.id,n);e.push(r),a+=r.byteLength}let s=new Uint8Array(a),c=0;for(let t of e)s.set(t,c),c+=t.byteLength;let l=new ReadableStream({start(e){e.enqueue(s),e.close()}});return r(yield*o.upload({storageId:t,size:s.byteLength,type:`application/octet-stream`,fileName:`merged_${i.length}_files.bin`,lastModified:0,metadata:JSON.stringify({mimeType:`application/octet-stream`,originalName:`merged_${i.length}_files`,extension:`bin`})},n,l))}default:return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`Unknown merge strategy: ${a}`}))}})})})}function h(n,{outputCount:u,strategy:d}){return s.gen(function*(){let u=yield*l;return yield*i({id:n,name:`Multiplex`,description:`Multiplexes input using ${d} strategy`,type:e.multiplex,nodeTypeId:`multiplex`,outputTypeId:t,inputSchema:o,outputSchema:o,multiOutput:!0,run:({data:e,storageId:t,clientId:n})=>s.gen(function*(){let{type:i,fileName:o,metadata:l,metadataJson:f}=a(e.metadata),p=l?{...e,metadata:l}:e;if(d===`copy`){let e=yield*u.read(p.id,n),s=new ReadableStream({start(t){t.enqueue(e),t.close()}}),c=yield*u.upload({storageId:t,size:e.byteLength,type:i,fileName:o,lastModified:0,metadata:f},n,s),l=a(c.metadata);return r(l.metadata?{...c,metadata:l.metadata}:c)}else if(d===`split`)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`Split strategy is not supported with UploadFile pattern`}));return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`Unknown multiplex strategy: ${d}`}))})})})}const g=u.record(u.string(),o),_=o;function v(a,{zipName:o,includeMetadata:u}){return s.gen(function*(){let d=yield*l,f=yield*n;return yield*i({id:a,name:`Zip Files`,description:`Combines multiple files into a zip archive`,type:e.process,nodeTypeId:`zip`,outputTypeId:t,inputSchema:g,outputSchema:_,multiInput:!0,run:({data:e,storageId:t,clientId:n})=>s.gen(function*(){if(!e||Object.keys(e).length===0)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to zip node`}));let i=yield*s.forEach(Object.values(e),e=>s.gen(function*(){let t=yield*d.read(e.id,n);return{id:e.id,data:t,metadata:e.metadata}}),{concurrency:`unbounded`}),a=yield*f.zip(i,{zipName:o,includeMetadata:u}),l=new ReadableStream({start(e){e.enqueue(a),e.close()}});return r(yield*d.upload({storageId:t,size:a.byteLength,type:`application/zip`,fileName:o,lastModified:0,metadata:JSON.stringify({mimeType:`application/zip`,type:`application/zip`,originalName:o,fileName:o,extension:`zip`})},n,l))})})})}export{d as createConditionalNode,m as createMergeNode,h as createMultiplexNode,v as createZipNode};
1
+ import{NodeType as e,STORAGE_OUTPUT_TYPE_ID as t,ZipPlugin as n,completeNodeExecution as r,createFlowNode as i,resolveUploadMetadata as a}from"@uploadista/core/flow";import{uploadFileSchema as o}from"@uploadista/core/types";import{Effect as s}from"effect";import{UploadistaError as c}from"@uploadista/core/errors";import{UploadServer as l}from"@uploadista/core/upload";import{z as u}from"zod";function d(t,{field:n,operator:a,value:c}){return i({id:t,name:`Conditional Router`,description:`Routes flow based on ${n} ${a} ${c}`,type:e.conditional,inputSchema:o,outputSchema:o,condition:{field:n,operator:a,value:c},run:({data:e})=>s.succeed(r(e))})}const f=u.record(u.string(),o),p=o;function m(n,{strategy:a,separator:o}){return s.gen(function*(){let o=yield*l;return yield*i({id:n,name:`Merge Files`,description:`Merges multiple files using ${a} strategy`,type:e.merge,outputTypeId:t,inputSchema:f,outputSchema:p,multiInput:!0,run:({data:e,storageId:t,clientId:n})=>s.gen(function*(){if(!e||Object.keys(e).length===0)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to merge node`}));let i=Object.values(e);if(i.length===0)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`No files to merge`}));switch(a){case`concat`:{let e=[],a=0;for(let t of i){let r=yield*o.read(t.id,n);e.push(r),a+=r.byteLength}let s=new Uint8Array(a),c=0;for(let t of e)s.set(t,c),c+=t.byteLength;let l=new ReadableStream({start(e){e.enqueue(s),e.close()}});return r(yield*o.upload({storageId:t,size:s.byteLength,type:`application/octet-stream`,fileName:`merged_${i.length}_files.bin`,lastModified:0,metadata:JSON.stringify({mimeType:`application/octet-stream`,originalName:`merged_${i.length}_files`,extension:`bin`})},n,l))}default:return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`Unknown merge strategy: ${a}`}))}})})})}function h(n,{outputCount:u,strategy:d}){return s.gen(function*(){let u=yield*l;return yield*i({id:n,name:`Multiplex`,description:`Multiplexes input using ${d} strategy`,type:e.multiplex,outputTypeId:t,inputSchema:o,outputSchema:o,multiOutput:!0,run:({data:e,storageId:t,clientId:n})=>s.gen(function*(){let{type:i,fileName:o,metadata:l,metadataJson:f}=a(e.metadata),p=l?{...e,metadata:l}:e;if(d===`copy`){let e=yield*u.read(p.id,n),s=new ReadableStream({start(t){t.enqueue(e),t.close()}}),c=yield*u.upload({storageId:t,size:e.byteLength,type:i,fileName:o,lastModified:0,metadata:f},n,s),l=a(c.metadata);return r(l.metadata?{...c,metadata:l.metadata}:c)}else if(d===`split`)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`Split strategy is not supported with UploadFile pattern`}));return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`Unknown multiplex strategy: ${d}`}))})})})}const g=u.record(u.string(),o),_=o;function v(a,{zipName:o,includeMetadata:u}){return s.gen(function*(){let d=yield*l,f=yield*n;return yield*i({id:a,name:`Zip Files`,description:`Combines multiple files into a zip archive`,type:e.process,outputTypeId:t,inputSchema:g,outputSchema:_,multiInput:!0,run:({data:e,storageId:t,clientId:n})=>s.gen(function*(){if(!e||Object.keys(e).length===0)return yield*s.fail(c.fromCode(`VALIDATION_ERROR`,{body:`No inputs provided to zip node`}));let i=yield*s.forEach(Object.values(e),e=>s.gen(function*(){let t=yield*d.read(e.id,n);return{id:e.id,data:t,metadata:e.metadata}}),{concurrency:`unbounded`}),a=yield*f.zip(i,{zipName:o,includeMetadata:u}),l=new ReadableStream({start(e){e.enqueue(a),e.close()}});return r(yield*d.upload({storageId:t,size:a.byteLength,type:`application/zip`,fileName:o,lastModified:0,metadata:JSON.stringify({mimeType:`application/zip`,type:`application/zip`,originalName:o,fileName:o,extension:`zip`})},n,l))})})})}export{d as createConditionalNode,m as createMergeNode,h as createMultiplexNode,v as createZipNode};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["inputSchema","outputSchema","inputBytesArray: Uint8Array[]"],"sources":["../../src/nodes/conditional-node.ts","../../src/nodes/merge-node.ts","../../src/nodes/multiplex-node.ts","../../src/nodes/zip-node.ts"],"sourcesContent":["import {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { Effect } from \"effect\";\nimport type { ConditionalParams } from \"@/types/conditional-node\";\n\nexport function createConditionalNode(\n id: string,\n { field, operator, value }: ConditionalParams,\n) {\n return createFlowNode<UploadFile, UploadFile>({\n id,\n name: \"Conditional Router\",\n description: `Routes flow based on ${field} ${operator} ${value}`,\n type: NodeType.conditional,\n nodeTypeId: \"conditional\",\n inputSchema: uploadFileSchema,\n outputSchema: uploadFileSchema,\n condition: { field, operator, value },\n run: ({ data }) => {\n // The actual routing logic is handled by the flow engine\n // This node just passes through the data\n return Effect.succeed(completeNodeExecution(data));\n },\n });\n}\n","import { UploadistaError } from \"@uploadista/core/errors\";\nimport {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n STORAGE_OUTPUT_TYPE_ID,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { UploadServer } from \"@uploadista/core/upload\";\nimport { Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { MergeParams } from \"@/types/merge-node\";\n\nconst inputSchema = z.record(z.string(), uploadFileSchema);\nconst outputSchema = uploadFileSchema;\n\nexport function createMergeNode(\n id: string,\n { strategy, separator: _separator }: MergeParams,\n) {\n return Effect.gen(function* () {\n const uploadServer = yield* UploadServer;\n\n return yield* createFlowNode<Record<string, UploadFile>, UploadFile>({\n id,\n name: \"Merge Files\",\n description: `Merges multiple files using ${strategy} strategy`,\n type: NodeType.merge,\n nodeTypeId: \"merge\",\n outputTypeId: STORAGE_OUTPUT_TYPE_ID,\n inputSchema,\n outputSchema,\n multiInput: true,\n run: ({ data: inputs, storageId, clientId }) => {\n return Effect.gen(function* () {\n if (!inputs || Object.keys(inputs).length === 0) {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"No inputs provided to merge node\",\n }),\n );\n }\n\n const inputFiles = Object.values(inputs);\n\n if (inputFiles.length === 0) {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"No files to merge\",\n }),\n );\n }\n\n switch (strategy) {\n case \"concat\": {\n // Read bytes from all input files\n const inputBytesArray: Uint8Array[] = [];\n let totalSize = 0;\n\n for (const file of inputFiles) {\n const bytes = yield* uploadServer.read(file.id, clientId);\n inputBytesArray.push(bytes);\n totalSize += bytes.byteLength;\n }\n\n // Concatenate all files into one\n const mergedBytes = new Uint8Array(totalSize);\n let offset = 0;\n for (const bytes of inputBytesArray) {\n mergedBytes.set(bytes, offset);\n offset += bytes.byteLength;\n }\n\n // Create a stream from the merged bytes\n const stream = new ReadableStream({\n start(controller) {\n controller.enqueue(mergedBytes);\n controller.close();\n },\n });\n\n // Upload the merged file\n const result = yield* uploadServer.upload(\n {\n storageId,\n size: mergedBytes.byteLength,\n type: \"application/octet-stream\",\n fileName: `merged_${inputFiles.length}_files.bin`,\n lastModified: 0,\n metadata: JSON.stringify({\n mimeType: \"application/octet-stream\",\n originalName: `merged_${inputFiles.length}_files`,\n extension: \"bin\",\n }),\n },\n clientId,\n stream,\n );\n\n return completeNodeExecution(result);\n }\n default: {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: `Unknown merge strategy: ${strategy}`,\n }),\n );\n }\n }\n });\n },\n });\n });\n}\n","import { UploadistaError } from \"@uploadista/core/errors\";\nimport {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n resolveUploadMetadata,\n STORAGE_OUTPUT_TYPE_ID,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { UploadServer } from \"@uploadista/core/upload\";\nimport { Effect } from \"effect\";\nimport type { MultiplexParams } from \"@/types/multiplex-node\";\n\nexport function createMultiplexNode(\n id: string,\n { outputCount: _outputCount, strategy }: MultiplexParams,\n) {\n return Effect.gen(function* () {\n const uploadServer = yield* UploadServer;\n\n return yield* createFlowNode<UploadFile, UploadFile>({\n id,\n name: \"Multiplex\",\n description: `Multiplexes input using ${strategy} strategy`,\n type: NodeType.multiplex,\n nodeTypeId: \"multiplex\",\n outputTypeId: STORAGE_OUTPUT_TYPE_ID,\n inputSchema: uploadFileSchema,\n outputSchema: uploadFileSchema,\n multiOutput: true,\n run: ({ data: file, storageId, clientId }) => {\n return Effect.gen(function* () {\n const { type, fileName, metadata, metadataJson } =\n resolveUploadMetadata(file.metadata);\n const normalizedFile = metadata ? { ...file, metadata } : file;\n\n if (strategy === \"copy\") {\n // For copy strategy, read and re-upload the file\n const inputBytes = yield* uploadServer.read(\n normalizedFile.id,\n clientId,\n );\n\n const stream = new ReadableStream({\n start(controller) {\n controller.enqueue(inputBytes);\n controller.close();\n },\n });\n\n const result = yield* uploadServer.upload(\n {\n storageId,\n size: inputBytes.byteLength,\n type,\n fileName,\n lastModified: 0,\n metadata: metadataJson,\n },\n clientId,\n stream,\n );\n\n const resolvedResult = resolveUploadMetadata(result.metadata);\n\n return completeNodeExecution(\n resolvedResult.metadata\n ? { ...result, metadata: resolvedResult.metadata }\n : result,\n );\n } else if (strategy === \"split\") {\n // Split strategy is not supported in the new pattern\n // as it would require returning multiple UploadFiles\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"Split strategy is not supported with UploadFile pattern\",\n }),\n );\n }\n\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: `Unknown multiplex strategy: ${strategy}`,\n }),\n );\n });\n },\n });\n });\n}\n","import { UploadistaError } from \"@uploadista/core/errors\";\nimport {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n STORAGE_OUTPUT_TYPE_ID,\n ZipPlugin,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { UploadServer } from \"@uploadista/core/upload\";\nimport { Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { ZipParams } from \"@/types/zip-node\";\n\nconst inputSchema = z.record(z.string(), uploadFileSchema);\nconst outputSchema = uploadFileSchema;\n\nexport function createZipNode(\n id: string,\n { zipName, includeMetadata }: ZipParams,\n) {\n return Effect.gen(function* () {\n const uploadServer = yield* UploadServer;\n const zipPlugin = yield* ZipPlugin;\n return yield* createFlowNode<Record<string, UploadFile>, UploadFile>({\n id,\n name: \"Zip Files\",\n description: \"Combines multiple files into a zip archive\",\n type: NodeType.process,\n nodeTypeId: \"zip\",\n outputTypeId: STORAGE_OUTPUT_TYPE_ID,\n inputSchema,\n outputSchema,\n multiInput: true,\n run: ({ data: inputs, storageId, clientId }) => {\n return Effect.gen(function* () {\n if (!inputs || Object.keys(inputs).length === 0) {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"No inputs provided to zip node\",\n }),\n );\n }\n\n const zipInputs = yield* Effect.forEach(\n Object.values(inputs),\n (input) =>\n Effect.gen(function* () {\n const data = yield* uploadServer.read(input.id, clientId);\n return {\n id: input.id,\n data,\n metadata: input.metadata,\n };\n }),\n { concurrency: \"unbounded\" },\n );\n\n const zipBytes = yield* zipPlugin.zip(zipInputs, {\n zipName,\n includeMetadata,\n });\n\n // Create a stream from the zip bytes\n const stream = new ReadableStream({\n start(controller) {\n controller.enqueue(zipBytes);\n controller.close();\n },\n });\n\n // Upload the zip file\n const result = yield* uploadServer.upload(\n {\n storageId,\n size: zipBytes.byteLength,\n type: \"application/zip\",\n fileName: zipName,\n lastModified: 0,\n metadata: JSON.stringify({\n mimeType: \"application/zip\",\n type: \"application/zip\",\n originalName: zipName,\n fileName: zipName,\n extension: \"zip\",\n }),\n },\n clientId,\n stream,\n );\n\n return completeNodeExecution(result);\n });\n },\n });\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["inputSchema","outputSchema","inputBytesArray: Uint8Array[]"],"sources":["../../src/nodes/conditional-node.ts","../../src/nodes/merge-node.ts","../../src/nodes/multiplex-node.ts","../../src/nodes/zip-node.ts"],"sourcesContent":["import {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { Effect } from \"effect\";\nimport type { ConditionalParams } from \"@/types/conditional-node\";\n\nexport function createConditionalNode(\n id: string,\n { field, operator, value }: ConditionalParams,\n) {\n return createFlowNode<UploadFile, UploadFile>({\n id,\n name: \"Conditional Router\",\n description: `Routes flow based on ${field} ${operator} ${value}`,\n type: NodeType.conditional,\n inputSchema: uploadFileSchema,\n outputSchema: uploadFileSchema,\n condition: { field, operator, value },\n run: ({ data }) => {\n // The actual routing logic is handled by the flow engine\n // This node just passes through the data\n return Effect.succeed(completeNodeExecution(data));\n },\n });\n}\n","import { UploadistaError } from \"@uploadista/core/errors\";\nimport {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n STORAGE_OUTPUT_TYPE_ID,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { UploadServer } from \"@uploadista/core/upload\";\nimport { Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { MergeParams } from \"@/types/merge-node\";\n\nconst inputSchema = z.record(z.string(), uploadFileSchema);\nconst outputSchema = uploadFileSchema;\n\nexport function createMergeNode(\n id: string,\n { strategy, separator: _separator }: MergeParams,\n) {\n return Effect.gen(function* () {\n const uploadServer = yield* UploadServer;\n\n return yield* createFlowNode<Record<string, UploadFile>, UploadFile>({\n id,\n name: \"Merge Files\",\n description: `Merges multiple files using ${strategy} strategy`,\n type: NodeType.merge,\n outputTypeId: STORAGE_OUTPUT_TYPE_ID,\n inputSchema,\n outputSchema,\n multiInput: true,\n run: ({ data: inputs, storageId, clientId }) => {\n return Effect.gen(function* () {\n if (!inputs || Object.keys(inputs).length === 0) {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"No inputs provided to merge node\",\n }),\n );\n }\n\n const inputFiles = Object.values(inputs);\n\n if (inputFiles.length === 0) {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"No files to merge\",\n }),\n );\n }\n\n switch (strategy) {\n case \"concat\": {\n // Read bytes from all input files\n const inputBytesArray: Uint8Array[] = [];\n let totalSize = 0;\n\n for (const file of inputFiles) {\n const bytes = yield* uploadServer.read(file.id, clientId);\n inputBytesArray.push(bytes);\n totalSize += bytes.byteLength;\n }\n\n // Concatenate all files into one\n const mergedBytes = new Uint8Array(totalSize);\n let offset = 0;\n for (const bytes of inputBytesArray) {\n mergedBytes.set(bytes, offset);\n offset += bytes.byteLength;\n }\n\n // Create a stream from the merged bytes\n const stream = new ReadableStream({\n start(controller) {\n controller.enqueue(mergedBytes);\n controller.close();\n },\n });\n\n // Upload the merged file\n const result = yield* uploadServer.upload(\n {\n storageId,\n size: mergedBytes.byteLength,\n type: \"application/octet-stream\",\n fileName: `merged_${inputFiles.length}_files.bin`,\n lastModified: 0,\n metadata: JSON.stringify({\n mimeType: \"application/octet-stream\",\n originalName: `merged_${inputFiles.length}_files`,\n extension: \"bin\",\n }),\n },\n clientId,\n stream,\n );\n\n return completeNodeExecution(result);\n }\n default: {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: `Unknown merge strategy: ${strategy}`,\n }),\n );\n }\n }\n });\n },\n });\n });\n}\n","import { UploadistaError } from \"@uploadista/core/errors\";\nimport {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n resolveUploadMetadata,\n STORAGE_OUTPUT_TYPE_ID,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { UploadServer } from \"@uploadista/core/upload\";\nimport { Effect } from \"effect\";\nimport type { MultiplexParams } from \"@/types/multiplex-node\";\n\nexport function createMultiplexNode(\n id: string,\n { outputCount: _outputCount, strategy }: MultiplexParams,\n) {\n return Effect.gen(function* () {\n const uploadServer = yield* UploadServer;\n\n return yield* createFlowNode<UploadFile, UploadFile>({\n id,\n name: \"Multiplex\",\n description: `Multiplexes input using ${strategy} strategy`,\n type: NodeType.multiplex,\n outputTypeId: STORAGE_OUTPUT_TYPE_ID,\n inputSchema: uploadFileSchema,\n outputSchema: uploadFileSchema,\n multiOutput: true,\n run: ({ data: file, storageId, clientId }) => {\n return Effect.gen(function* () {\n const { type, fileName, metadata, metadataJson } =\n resolveUploadMetadata(file.metadata);\n const normalizedFile = metadata ? { ...file, metadata } : file;\n\n if (strategy === \"copy\") {\n // For copy strategy, read and re-upload the file\n const inputBytes = yield* uploadServer.read(\n normalizedFile.id,\n clientId,\n );\n\n const stream = new ReadableStream({\n start(controller) {\n controller.enqueue(inputBytes);\n controller.close();\n },\n });\n\n const result = yield* uploadServer.upload(\n {\n storageId,\n size: inputBytes.byteLength,\n type,\n fileName,\n lastModified: 0,\n metadata: metadataJson,\n },\n clientId,\n stream,\n );\n\n const resolvedResult = resolveUploadMetadata(result.metadata);\n\n return completeNodeExecution(\n resolvedResult.metadata\n ? { ...result, metadata: resolvedResult.metadata }\n : result,\n );\n } else if (strategy === \"split\") {\n // Split strategy is not supported in the new pattern\n // as it would require returning multiple UploadFiles\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"Split strategy is not supported with UploadFile pattern\",\n }),\n );\n }\n\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: `Unknown multiplex strategy: ${strategy}`,\n }),\n );\n });\n },\n });\n });\n}\n","import { UploadistaError } from \"@uploadista/core/errors\";\nimport {\n completeNodeExecution,\n createFlowNode,\n NodeType,\n STORAGE_OUTPUT_TYPE_ID,\n ZipPlugin,\n} from \"@uploadista/core/flow\";\nimport { type UploadFile, uploadFileSchema } from \"@uploadista/core/types\";\nimport { UploadServer } from \"@uploadista/core/upload\";\nimport { Effect } from \"effect\";\nimport { z } from \"zod\";\nimport type { ZipParams } from \"@/types/zip-node\";\n\nconst inputSchema = z.record(z.string(), uploadFileSchema);\nconst outputSchema = uploadFileSchema;\n\nexport function createZipNode(\n id: string,\n { zipName, includeMetadata }: ZipParams,\n) {\n return Effect.gen(function* () {\n const uploadServer = yield* UploadServer;\n const zipPlugin = yield* ZipPlugin;\n return yield* createFlowNode<Record<string, UploadFile>, UploadFile>({\n id,\n name: \"Zip Files\",\n description: \"Combines multiple files into a zip archive\",\n type: NodeType.process,\n outputTypeId: STORAGE_OUTPUT_TYPE_ID,\n inputSchema,\n outputSchema,\n multiInput: true,\n run: ({ data: inputs, storageId, clientId }) => {\n return Effect.gen(function* () {\n if (!inputs || Object.keys(inputs).length === 0) {\n return yield* Effect.fail(\n UploadistaError.fromCode(\"VALIDATION_ERROR\", {\n body: \"No inputs provided to zip node\",\n }),\n );\n }\n\n const zipInputs = yield* Effect.forEach(\n Object.values(inputs),\n (input) =>\n Effect.gen(function* () {\n const data = yield* uploadServer.read(input.id, clientId);\n return {\n id: input.id,\n data,\n metadata: input.metadata,\n };\n }),\n { concurrency: \"unbounded\" },\n );\n\n const zipBytes = yield* zipPlugin.zip(zipInputs, {\n zipName,\n includeMetadata,\n });\n\n // Create a stream from the zip bytes\n const stream = new ReadableStream({\n start(controller) {\n controller.enqueue(zipBytes);\n controller.close();\n },\n });\n\n // Upload the zip file\n const result = yield* uploadServer.upload(\n {\n storageId,\n size: zipBytes.byteLength,\n type: \"application/zip\",\n fileName: zipName,\n lastModified: 0,\n metadata: JSON.stringify({\n mimeType: \"application/zip\",\n type: \"application/zip\",\n originalName: zipName,\n fileName: zipName,\n extension: \"zip\",\n }),\n },\n clientId,\n stream,\n );\n\n return completeNodeExecution(result);\n });\n },\n });\n });\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@uploadista/flow-utility-nodes",
3
3
  "type": "module",
4
- "version": "0.0.18-beta.17",
4
+ "version": "0.0.18-beta.3",
5
5
  "description": "Utility nodes for Uploadista Flow",
6
6
  "license": "MIT",
7
7
  "author": "Uploadista",
@@ -20,7 +20,7 @@
20
20
  }
21
21
  },
22
22
  "dependencies": {
23
- "@uploadista/core": "0.0.18-beta.17"
23
+ "@uploadista/core": "0.0.18-beta.3"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "effect": "^3.0.0",
@@ -29,11 +29,11 @@
29
29
  "devDependencies": {
30
30
  "@effect/vitest": "0.27.0",
31
31
  "@types/node": "24.10.1",
32
- "effect": "3.19.8",
33
- "tsdown": "0.16.8",
34
- "vitest": "4.0.15",
32
+ "effect": "3.19.6",
33
+ "tsdown": "0.16.6",
34
+ "vitest": "4.0.13",
35
35
  "zod": "4.1.13",
36
- "@uploadista/typescript-config": "0.0.18-beta.17"
36
+ "@uploadista/typescript-config": "0.0.18-beta.3"
37
37
  },
38
38
  "scripts": {
39
39
  "build": "tsdown",
@@ -16,7 +16,6 @@ export function createConditionalNode(
16
16
  name: "Conditional Router",
17
17
  description: `Routes flow based on ${field} ${operator} ${value}`,
18
18
  type: NodeType.conditional,
19
- nodeTypeId: "conditional",
20
19
  inputSchema: uploadFileSchema,
21
20
  outputSchema: uploadFileSchema,
22
21
  condition: { field, operator, value },
@@ -26,7 +26,6 @@ export function createMergeNode(
26
26
  name: "Merge Files",
27
27
  description: `Merges multiple files using ${strategy} strategy`,
28
28
  type: NodeType.merge,
29
- nodeTypeId: "merge",
30
29
  outputTypeId: STORAGE_OUTPUT_TYPE_ID,
31
30
  inputSchema,
32
31
  outputSchema,
@@ -23,7 +23,6 @@ export function createMultiplexNode(
23
23
  name: "Multiplex",
24
24
  description: `Multiplexes input using ${strategy} strategy`,
25
25
  type: NodeType.multiplex,
26
- nodeTypeId: "multiplex",
27
26
  outputTypeId: STORAGE_OUTPUT_TYPE_ID,
28
27
  inputSchema: uploadFileSchema,
29
28
  outputSchema: uploadFileSchema,
@@ -27,7 +27,6 @@ export function createZipNode(
27
27
  name: "Zip Files",
28
28
  description: "Combines multiple files into a zip archive",
29
29
  type: NodeType.process,
30
- nodeTypeId: "zip",
31
30
  outputTypeId: STORAGE_OUTPUT_TYPE_ID,
32
31
  inputSchema,
33
32
  outputSchema,