@uploadista/core 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -20
- package/dist/checksum-C5qE-5eg.js +2 -0
- package/dist/checksum-C5qE-5eg.js.map +1 -0
- package/dist/checksum-wSBuXX84.cjs +1 -0
- package/dist/errors/index.cjs +1 -1
- package/dist/errors/index.d.cts +2 -2
- package/dist/errors/index.d.ts +3 -3
- package/dist/errors/index.js +1 -2
- package/dist/flow/index.cjs +1 -1
- package/dist/flow/index.d.cts +5 -5
- package/dist/flow/index.d.ts +6 -24
- package/dist/flow/index.js +1 -24
- package/dist/flow-B0mMJM5Y.js +2 -0
- package/dist/flow-B0mMJM5Y.js.map +1 -0
- package/dist/flow-s5bgJsdb.cjs +1 -0
- package/dist/index-B46hb7yB.d.cts +36 -0
- package/dist/index-B46hb7yB.d.cts.map +1 -0
- package/dist/index-BnGZO47X.d.ts +3952 -0
- package/dist/index-BnGZO47X.d.ts.map +1 -0
- package/dist/{streams/stream-limiter.d.cts → index-C1mxuUxK.d.ts} +3 -3
- package/dist/index-C1mxuUxK.d.ts.map +1 -0
- package/dist/index-DM69UMgG.d.cts +4132 -0
- package/dist/index-DM69UMgG.d.cts.map +1 -0
- package/dist/index-DMJv8Tvo.d.ts +168 -0
- package/dist/index-DMJv8Tvo.d.ts.map +1 -0
- package/dist/index-GLPiXqj4.d.cts +168 -0
- package/dist/index-GLPiXqj4.d.cts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -5
- package/dist/stream-limiter-CTuiXkcq.js +2 -0
- package/dist/{stream-limiter-CoWKv39w.js.map → stream-limiter-CTuiXkcq.js.map} +1 -1
- package/dist/stream-limiter-DYGG4t9f.cjs +1 -0
- package/dist/streams/index.cjs +1 -0
- package/dist/streams/index.d.cts +3 -0
- package/dist/streams/index.d.ts +3 -0
- package/dist/streams/index.js +1 -0
- package/dist/streams-BiD_pOPH.cjs +0 -0
- package/dist/streams-Bs3GDNKJ.js +1 -0
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.d.cts +5 -5
- package/dist/types/index.d.ts +6 -10
- package/dist/types/index.js +1 -9
- package/dist/types-Dj9g8ocl.cjs +1 -0
- package/dist/types-m26wrG-Z.js +2 -0
- package/dist/types-m26wrG-Z.js.map +1 -0
- package/dist/upload/index.cjs +1 -1
- package/dist/upload/index.d.cts +5 -5
- package/dist/upload/index.d.ts +6 -4
- package/dist/upload/index.js +1 -3
- package/dist/upload-BzU7ifyH.js +2 -0
- package/dist/upload-BzU7ifyH.js.map +1 -0
- package/dist/upload-DvLp6TXO.cjs +1 -0
- package/dist/uploadista-error-CAtkQiAv.d.cts +221 -0
- package/dist/uploadista-error-CAtkQiAv.d.cts.map +1 -0
- package/dist/{uploadista-error-BVsVxqvz.js → uploadista-error-CjfcFnVa.js} +9 -2
- package/dist/uploadista-error-CjfcFnVa.js.map +1 -0
- package/dist/uploadista-error-D9SONF9K.d.ts +221 -0
- package/dist/uploadista-error-D9SONF9K.d.ts.map +1 -0
- package/dist/{uploadista-error-BB-Wdiz9.cjs → uploadista-error-DdTP-Rjx.cjs} +9 -2
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +3 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils-BILytQlb.js +2 -0
- package/dist/utils-BILytQlb.js.map +1 -0
- package/dist/utils-BLsIUd8c.cjs +1 -0
- package/package.json +13 -17
- package/src/index.ts +2 -0
- package/src/streams/index.ts +1 -0
- package/src/utils/index.ts +5 -0
- package/tsdown.config.ts +2 -10
- package/.turbo/turbo-build.log +0 -5
- package/.turbo/turbo-check.log +0 -231
- package/.turbo/turbo-format.log +0 -5
- package/dist/chunk-CUT6urMc.cjs +0 -1
- package/dist/debounce-C2SeqcxD.js +0 -2
- package/dist/debounce-C2SeqcxD.js.map +0 -1
- package/dist/debounce-LZK7yS7Z.cjs +0 -1
- package/dist/errors/index.d.ts.map +0 -1
- package/dist/errors/uploadista-error.d.ts +0 -209
- package/dist/errors/uploadista-error.d.ts.map +0 -1
- package/dist/errors/uploadista-error.js +0 -322
- package/dist/flow/edge.d.ts +0 -47
- package/dist/flow/edge.d.ts.map +0 -1
- package/dist/flow/edge.js +0 -40
- package/dist/flow/event.d.ts +0 -206
- package/dist/flow/event.d.ts.map +0 -1
- package/dist/flow/event.js +0 -53
- package/dist/flow/flow-server.d.ts +0 -223
- package/dist/flow/flow-server.d.ts.map +0 -1
- package/dist/flow/flow-server.js +0 -614
- package/dist/flow/flow.d.ts +0 -238
- package/dist/flow/flow.d.ts.map +0 -1
- package/dist/flow/flow.js +0 -629
- package/dist/flow/index.d.ts.map +0 -1
- package/dist/flow/node.d.ts +0 -136
- package/dist/flow/node.d.ts.map +0 -1
- package/dist/flow/node.js +0 -153
- package/dist/flow/nodes/index.d.ts +0 -8
- package/dist/flow/nodes/index.d.ts.map +0 -1
- package/dist/flow/nodes/index.js +0 -7
- package/dist/flow/nodes/input-node.d.ts +0 -78
- package/dist/flow/nodes/input-node.d.ts.map +0 -1
- package/dist/flow/nodes/input-node.js +0 -233
- package/dist/flow/nodes/storage-node.d.ts +0 -67
- package/dist/flow/nodes/storage-node.d.ts.map +0 -1
- package/dist/flow/nodes/storage-node.js +0 -94
- package/dist/flow/nodes/streaming-input-node.d.ts +0 -69
- package/dist/flow/nodes/streaming-input-node.d.ts.map +0 -1
- package/dist/flow/nodes/streaming-input-node.js +0 -156
- package/dist/flow/nodes/transform-node.d.ts +0 -85
- package/dist/flow/nodes/transform-node.d.ts.map +0 -1
- package/dist/flow/nodes/transform-node.js +0 -107
- package/dist/flow/parallel-scheduler.d.ts +0 -175
- package/dist/flow/parallel-scheduler.d.ts.map +0 -1
- package/dist/flow/parallel-scheduler.js +0 -193
- package/dist/flow/plugins/credential-provider.d.ts +0 -47
- package/dist/flow/plugins/credential-provider.d.ts.map +0 -1
- package/dist/flow/plugins/credential-provider.js +0 -24
- package/dist/flow/plugins/image-ai-plugin.d.ts +0 -61
- package/dist/flow/plugins/image-ai-plugin.d.ts.map +0 -1
- package/dist/flow/plugins/image-ai-plugin.js +0 -21
- package/dist/flow/plugins/image-plugin.d.ts +0 -52
- package/dist/flow/plugins/image-plugin.d.ts.map +0 -1
- package/dist/flow/plugins/image-plugin.js +0 -22
- package/dist/flow/plugins/types/describe-image-node.d.ts +0 -16
- package/dist/flow/plugins/types/describe-image-node.d.ts.map +0 -1
- package/dist/flow/plugins/types/describe-image-node.js +0 -9
- package/dist/flow/plugins/types/index.d.ts +0 -9
- package/dist/flow/plugins/types/index.d.ts.map +0 -1
- package/dist/flow/plugins/types/index.js +0 -8
- package/dist/flow/plugins/types/optimize-node.d.ts +0 -20
- package/dist/flow/plugins/types/optimize-node.d.ts.map +0 -1
- package/dist/flow/plugins/types/optimize-node.js +0 -11
- package/dist/flow/plugins/types/remove-background-node.d.ts +0 -16
- package/dist/flow/plugins/types/remove-background-node.d.ts.map +0 -1
- package/dist/flow/plugins/types/remove-background-node.js +0 -9
- package/dist/flow/plugins/types/resize-node.d.ts +0 -21
- package/dist/flow/plugins/types/resize-node.d.ts.map +0 -1
- package/dist/flow/plugins/types/resize-node.js +0 -16
- package/dist/flow/plugins/zip-plugin.d.ts +0 -62
- package/dist/flow/plugins/zip-plugin.d.ts.map +0 -1
- package/dist/flow/plugins/zip-plugin.js +0 -21
- package/dist/flow/typed-flow.d.ts +0 -90
- package/dist/flow/typed-flow.d.ts.map +0 -1
- package/dist/flow/typed-flow.js +0 -59
- package/dist/flow/types/flow-file.d.ts +0 -45
- package/dist/flow/types/flow-file.d.ts.map +0 -1
- package/dist/flow/types/flow-file.js +0 -27
- package/dist/flow/types/flow-job.d.ts +0 -118
- package/dist/flow/types/flow-job.d.ts.map +0 -1
- package/dist/flow/types/flow-job.js +0 -11
- package/dist/flow/types/flow-types.d.ts +0 -321
- package/dist/flow/types/flow-types.d.ts.map +0 -1
- package/dist/flow/types/flow-types.js +0 -52
- package/dist/flow/types/index.d.ts +0 -4
- package/dist/flow/types/index.d.ts.map +0 -1
- package/dist/flow/types/index.js +0 -3
- package/dist/flow/types/run-args.d.ts +0 -38
- package/dist/flow/types/run-args.d.ts.map +0 -1
- package/dist/flow/types/run-args.js +0 -30
- package/dist/flow/types/type-validator.d.ts +0 -26
- package/dist/flow/types/type-validator.d.ts.map +0 -1
- package/dist/flow/types/type-validator.js +0 -134
- package/dist/flow/utils/resolve-upload-metadata.d.ts +0 -11
- package/dist/flow/utils/resolve-upload-metadata.d.ts.map +0 -1
- package/dist/flow/utils/resolve-upload-metadata.js +0 -28
- package/dist/flow-2zXnEiWL.cjs +0 -1
- package/dist/flow-CRaKy7Vj.js +0 -2
- package/dist/flow-CRaKy7Vj.js.map +0 -1
- package/dist/generate-id-Dm-Vboxq.d.ts +0 -34
- package/dist/generate-id-Dm-Vboxq.d.ts.map +0 -1
- package/dist/generate-id-LjJRLD6N.d.cts +0 -34
- package/dist/generate-id-LjJRLD6N.d.cts.map +0 -1
- package/dist/generate-id-xHp_Z7Cl.cjs +0 -1
- package/dist/generate-id-yohS1ZDk.js +0 -2
- package/dist/generate-id-yohS1ZDk.js.map +0 -1
- package/dist/index-BO8GZlbD.d.cts +0 -1040
- package/dist/index-BO8GZlbD.d.cts.map +0 -1
- package/dist/index-D-CoVpkZ.d.ts +0 -1004
- package/dist/index-D-CoVpkZ.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/logger/logger.cjs +0 -1
- package/dist/logger/logger.d.cts +0 -8
- package/dist/logger/logger.d.cts.map +0 -1
- package/dist/logger/logger.d.ts +0 -5
- package/dist/logger/logger.d.ts.map +0 -1
- package/dist/logger/logger.js +0 -10
- package/dist/logger/logger.js.map +0 -1
- package/dist/semaphore-0ZwjVpyF.js +0 -2
- package/dist/semaphore-0ZwjVpyF.js.map +0 -1
- package/dist/semaphore-BHprIjFI.d.cts +0 -37
- package/dist/semaphore-BHprIjFI.d.cts.map +0 -1
- package/dist/semaphore-DThupBkc.d.ts +0 -37
- package/dist/semaphore-DThupBkc.d.ts.map +0 -1
- package/dist/semaphore-DVrONiAV.cjs +0 -1
- package/dist/stream-limiter-CoWKv39w.js +0 -2
- package/dist/stream-limiter-JgOwmkMa.cjs +0 -1
- package/dist/streams/multi-stream.cjs +0 -1
- package/dist/streams/multi-stream.d.cts +0 -91
- package/dist/streams/multi-stream.d.cts.map +0 -1
- package/dist/streams/multi-stream.d.ts +0 -86
- package/dist/streams/multi-stream.d.ts.map +0 -1
- package/dist/streams/multi-stream.js +0 -149
- package/dist/streams/multi-stream.js.map +0 -1
- package/dist/streams/stream-limiter.cjs +0 -1
- package/dist/streams/stream-limiter.d.cts.map +0 -1
- package/dist/streams/stream-limiter.d.ts +0 -27
- package/dist/streams/stream-limiter.d.ts.map +0 -1
- package/dist/streams/stream-limiter.js +0 -49
- package/dist/streams/stream-splitter.cjs +0 -1
- package/dist/streams/stream-splitter.d.cts +0 -68
- package/dist/streams/stream-splitter.d.cts.map +0 -1
- package/dist/streams/stream-splitter.d.ts +0 -51
- package/dist/streams/stream-splitter.d.ts.map +0 -1
- package/dist/streams/stream-splitter.js +0 -175
- package/dist/streams/stream-splitter.js.map +0 -1
- package/dist/types/data-store-registry.d.ts +0 -13
- package/dist/types/data-store-registry.d.ts.map +0 -1
- package/dist/types/data-store-registry.js +0 -4
- package/dist/types/data-store.d.ts +0 -316
- package/dist/types/data-store.d.ts.map +0 -1
- package/dist/types/data-store.js +0 -157
- package/dist/types/event-broadcaster.d.ts +0 -28
- package/dist/types/event-broadcaster.d.ts.map +0 -1
- package/dist/types/event-broadcaster.js +0 -6
- package/dist/types/event-emitter.d.ts +0 -378
- package/dist/types/event-emitter.d.ts.map +0 -1
- package/dist/types/event-emitter.js +0 -223
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/input-file.d.ts +0 -104
- package/dist/types/input-file.d.ts.map +0 -1
- package/dist/types/input-file.js +0 -27
- package/dist/types/kv-store.d.ts +0 -281
- package/dist/types/kv-store.d.ts.map +0 -1
- package/dist/types/kv-store.js +0 -234
- package/dist/types/middleware.d.ts +0 -17
- package/dist/types/middleware.d.ts.map +0 -1
- package/dist/types/middleware.js +0 -21
- package/dist/types/upload-event.d.ts +0 -105
- package/dist/types/upload-event.d.ts.map +0 -1
- package/dist/types/upload-event.js +0 -71
- package/dist/types/upload-file.d.ts +0 -136
- package/dist/types/upload-file.d.ts.map +0 -1
- package/dist/types/upload-file.js +0 -34
- package/dist/types/websocket.d.ts +0 -144
- package/dist/types/websocket.d.ts.map +0 -1
- package/dist/types/websocket.js +0 -40
- package/dist/types-BT-cvi7T.cjs +0 -1
- package/dist/types-DhU2j-XF.js +0 -2
- package/dist/types-DhU2j-XF.js.map +0 -1
- package/dist/upload/convert-to-stream.d.ts +0 -38
- package/dist/upload/convert-to-stream.d.ts.map +0 -1
- package/dist/upload/convert-to-stream.js +0 -43
- package/dist/upload/convert-upload-to-flow-file.d.ts +0 -14
- package/dist/upload/convert-upload-to-flow-file.d.ts.map +0 -1
- package/dist/upload/convert-upload-to-flow-file.js +0 -21
- package/dist/upload/create-upload.d.ts +0 -68
- package/dist/upload/create-upload.d.ts.map +0 -1
- package/dist/upload/create-upload.js +0 -157
- package/dist/upload/index.d.ts.map +0 -1
- package/dist/upload/mime.d.ts +0 -24
- package/dist/upload/mime.d.ts.map +0 -1
- package/dist/upload/mime.js +0 -351
- package/dist/upload/upload-chunk.d.ts +0 -58
- package/dist/upload/upload-chunk.d.ts.map +0 -1
- package/dist/upload/upload-chunk.js +0 -277
- package/dist/upload/upload-server.d.ts +0 -221
- package/dist/upload/upload-server.d.ts.map +0 -1
- package/dist/upload/upload-server.js +0 -181
- package/dist/upload/upload-strategy-negotiator.d.ts +0 -148
- package/dist/upload/upload-strategy-negotiator.d.ts.map +0 -1
- package/dist/upload/upload-strategy-negotiator.js +0 -217
- package/dist/upload/upload-url.d.ts +0 -68
- package/dist/upload/upload-url.d.ts.map +0 -1
- package/dist/upload/upload-url.js +0 -142
- package/dist/upload/write-to-store.d.ts +0 -77
- package/dist/upload/write-to-store.d.ts.map +0 -1
- package/dist/upload/write-to-store.js +0 -147
- package/dist/upload-DLuICjpP.cjs +0 -1
- package/dist/upload-DaXO34dE.js +0 -2
- package/dist/upload-DaXO34dE.js.map +0 -1
- package/dist/uploadista-error-BVsVxqvz.js.map +0 -1
- package/dist/uploadista-error-CwxYs4EB.d.ts +0 -52
- package/dist/uploadista-error-CwxYs4EB.d.ts.map +0 -1
- package/dist/uploadista-error-kKlhLRhY.d.cts +0 -52
- package/dist/uploadista-error-kKlhLRhY.d.cts.map +0 -1
- package/dist/utils/checksum.d.ts +0 -22
- package/dist/utils/checksum.d.ts.map +0 -1
- package/dist/utils/checksum.js +0 -49
- package/dist/utils/debounce.cjs +0 -1
- package/dist/utils/debounce.d.cts +0 -38
- package/dist/utils/debounce.d.cts.map +0 -1
- package/dist/utils/debounce.d.ts +0 -36
- package/dist/utils/debounce.d.ts.map +0 -1
- package/dist/utils/debounce.js +0 -73
- package/dist/utils/generate-id.cjs +0 -1
- package/dist/utils/generate-id.d.cts +0 -2
- package/dist/utils/generate-id.d.ts +0 -32
- package/dist/utils/generate-id.d.ts.map +0 -1
- package/dist/utils/generate-id.js +0 -23
- package/dist/utils/md5.cjs +0 -1
- package/dist/utils/md5.d.cts +0 -73
- package/dist/utils/md5.d.cts.map +0 -1
- package/dist/utils/md5.d.ts +0 -71
- package/dist/utils/md5.d.ts.map +0 -1
- package/dist/utils/md5.js +0 -417
- package/dist/utils/md5.js.map +0 -1
- package/dist/utils/once.cjs +0 -1
- package/dist/utils/once.d.cts +0 -25
- package/dist/utils/once.d.cts.map +0 -1
- package/dist/utils/once.d.ts +0 -21
- package/dist/utils/once.d.ts.map +0 -1
- package/dist/utils/once.js +0 -54
- package/dist/utils/once.js.map +0 -1
- package/dist/utils/semaphore.cjs +0 -1
- package/dist/utils/semaphore.d.cts +0 -3
- package/dist/utils/semaphore.d.ts +0 -78
- package/dist/utils/semaphore.d.ts.map +0 -1
- package/dist/utils/semaphore.js +0 -134
- package/dist/utils/throttle.cjs +0 -1
- package/dist/utils/throttle.d.cts +0 -24
- package/dist/utils/throttle.d.cts.map +0 -1
- package/dist/utils/throttle.d.ts +0 -18
- package/dist/utils/throttle.d.ts.map +0 -1
- package/dist/utils/throttle.js +0 -20
- package/dist/utils/throttle.js.map +0 -1
- package/src/logger/logger.ts +0 -14
- /package/dist/{errors-CRm1FHHT.cjs → errors-D-K-vxsP.cjs} +0 -0
package/dist/utils/once.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"once.js","names":["value: Return | undefined","cached: A | undefined"],"sources":["../../src/utils/once.ts"],"sourcesContent":["import { Effect } from \"effect\";\nimport { UploadistaError } from \"../errors/uploadista-error\";\n\n// only call a function once\nexport function once<T, A extends unknown[], Return>(\n fn: (this: T, ...args: A) => Return,\n) {\n let called = false;\n let value: Return | undefined;\n const f = function (this: T, ...args: A): Return {\n if (called) {\n if (value) {\n return value;\n }\n throw new Error(\"Function called more than once\");\n }\n called = true;\n value = fn.apply(this, args);\n return value;\n };\n return f;\n}\n\n/**\n * Effect-based once utilities\n */\nexport const OnceEffect = {\n /**\n * Creates an Effect-based once function that only executes once\n * @param effect - The effect to execute only once\n * @returns Effect that caches the result after first execution\n */\n make: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n ): Effect.Effect<A, E | UploadistaError, R> => {\n let cached: A | undefined;\n let called = false;\n\n return Effect.gen(function* () {\n if (called) {\n if (cached !== undefined) {\n return cached;\n }\n yield* new UploadistaError({\n code: \"UNKNOWN_ERROR\",\n status: 500,\n body: \"Effect called more than once with undefined result\",\n }).toEffect();\n }\n\n called = true;\n cached = yield* effect;\n return cached;\n });\n },\n\n /**\n * Creates a legacy once function wrapper\n * @param fn - Function to wrap\n * @returns Once-wrapped function\n */\n legacy: once,\n};\n"],"mappings":"kGAIA,SAAgB,EACd,EACA,CACA,IAAI,EAAS,GACTA,EAYJ,OAXU,SAAmB,GAAG,EAAiB,CAC/C,GAAI,EAAQ,CACV,GAAI,EACF,OAAO,EAET,MAAU,MAAM,iCAAiC,CAInD,MAFA,GAAS,GACT,EAAQ,EAAG,MAAM,KAAM,EAAK,CACrB,GAQX,MAAa,EAAa,CAMxB,KACE,GAC6C,CAC7C,IAAIC,EACA,EAAS,GAEb,OAAO,EAAO,IAAI,WAAa,CAC7B,GAAI,EAAQ,CACV,GAAI,IAAW,IAAA,GACb,OAAO,EAET,MAAO,IAAI,EAAgB,CACzB,KAAM,gBACN,OAAQ,IACR,KAAM,qDACP,CAAC,CAAC,UAAU,CAKf,MAFA,GAAS,GACT,EAAS,MAAO,EACT,GACP,EAQJ,OAAQ,EACT"}
|
package/dist/utils/semaphore.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`../semaphore-DVrONiAV.cjs`);exports.SemaphoreEffect=e.SemaphoreEffect,exports.permit=e.permit,exports.semaphore=e.semaphore;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { Effect, type Scope } from "effect";
|
|
2
|
-
import type { UploadistaError } from "../errors/uploadista-error";
|
|
3
|
-
type ReleaseCallback = () => Promise<void>;
|
|
4
|
-
/**
|
|
5
|
-
* Creates a permit that must be explicitly released to free up a semaphore slot.
|
|
6
|
-
*
|
|
7
|
-
* Permits are used internally by semaphores to track resource acquisition and release.
|
|
8
|
-
* Each permit represents one available slot in the semaphore's concurrency limit.
|
|
9
|
-
*
|
|
10
|
-
* @param onRelease - Callback function to execute when the permit is released
|
|
11
|
-
* @returns A permit object with a release method
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export declare function permit(onRelease: ReleaseCallback): {
|
|
15
|
-
release: () => Promise<void>;
|
|
16
|
-
};
|
|
17
|
-
export type Permit = ReturnType<typeof permit>;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a semaphore for controlling concurrent access to resources.
|
|
20
|
-
*
|
|
21
|
-
* A semaphore limits the number of concurrent operations that can access a shared
|
|
22
|
-
* resource. This is useful for:
|
|
23
|
-
* - Limiting parallel file uploads
|
|
24
|
-
* - Controlling database connection pool size
|
|
25
|
-
* - Throttling API requests
|
|
26
|
-
* - Managing concurrent flow node execution
|
|
27
|
-
*
|
|
28
|
-
* When all permits are in use, new acquire() calls will wait until a permit
|
|
29
|
-
* becomes available.
|
|
30
|
-
*
|
|
31
|
-
* @param count - Maximum number of concurrent operations allowed
|
|
32
|
-
* @returns A semaphore object with an acquire method
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```typescript
|
|
36
|
-
* const uploadSemaphore = semaphore(3); // Max 3 concurrent uploads
|
|
37
|
-
*
|
|
38
|
-
* async function uploadFile(file: File) {
|
|
39
|
-
* const permit = await uploadSemaphore.acquire();
|
|
40
|
-
* try {
|
|
41
|
-
* // Upload file (max 3 concurrent)
|
|
42
|
-
* await uploadToServer(file);
|
|
43
|
-
* } finally {
|
|
44
|
-
* await permit.release();
|
|
45
|
-
* }
|
|
46
|
-
* }
|
|
47
|
-
*
|
|
48
|
-
* // Process files with concurrency limit
|
|
49
|
-
* await Promise.all(files.map(uploadFile));
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export declare function semaphore(count: number): {
|
|
53
|
-
acquire: () => Promise<Permit>;
|
|
54
|
-
};
|
|
55
|
-
export type Semaphore = ReturnType<typeof semaphore>;
|
|
56
|
-
/**
|
|
57
|
-
* Effect-based semaphore utilities
|
|
58
|
-
*/
|
|
59
|
-
export declare const SemaphoreEffect: {
|
|
60
|
-
/**
|
|
61
|
-
* Creates an Effect-based semaphore with resource management
|
|
62
|
-
* @param count - Number of permits available
|
|
63
|
-
* @returns Effect semaphore with automatic resource cleanup
|
|
64
|
-
*/
|
|
65
|
-
make: (count: number) => Effect.Effect<{
|
|
66
|
-
acquire: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E | UploadistaError, R>;
|
|
67
|
-
}, never, Scope.Scope>;
|
|
68
|
-
/**
|
|
69
|
-
* Creates a legacy semaphore wrapper
|
|
70
|
-
* @param count - Number of permits
|
|
71
|
-
* @returns Legacy semaphore instance
|
|
72
|
-
*/
|
|
73
|
-
legacy: (count: number) => {
|
|
74
|
-
acquire: () => Promise<Permit>;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
export {};
|
|
78
|
-
//# sourceMappingURL=semaphore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"semaphore.d.ts","sourceRoot":"","sources":["../../src/utils/semaphore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3C;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE,eAAe;;EAahD;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM;mBAIjB,OAAO,CAAC,MAAM,CAAC;EAgCpC;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;;;OAIG;kBAEM,MAAM,KACZ,MAAM,CAAC,MAAM,CACd;QACE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;KAC/C,EACD,KAAK,EACL,KAAK,CAAC,KAAK,CACZ;IAyCD;;;;OAIG;oBACa,MAAM;uBArGF,OAAO,CAAC,MAAM,CAAC;;CAsGpC,CAAC"}
|
package/dist/utils/semaphore.js
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Effect } from "effect";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a permit that must be explicitly released to free up a semaphore slot.
|
|
4
|
-
*
|
|
5
|
-
* Permits are used internally by semaphores to track resource acquisition and release.
|
|
6
|
-
* Each permit represents one available slot in the semaphore's concurrency limit.
|
|
7
|
-
*
|
|
8
|
-
* @param onRelease - Callback function to execute when the permit is released
|
|
9
|
-
* @returns A permit object with a release method
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export function permit(onRelease) {
|
|
13
|
-
let isReleased = false;
|
|
14
|
-
async function release() {
|
|
15
|
-
if (!isReleased) {
|
|
16
|
-
isReleased = true;
|
|
17
|
-
await onRelease();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return {
|
|
21
|
-
release,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Creates a semaphore for controlling concurrent access to resources.
|
|
26
|
-
*
|
|
27
|
-
* A semaphore limits the number of concurrent operations that can access a shared
|
|
28
|
-
* resource. This is useful for:
|
|
29
|
-
* - Limiting parallel file uploads
|
|
30
|
-
* - Controlling database connection pool size
|
|
31
|
-
* - Throttling API requests
|
|
32
|
-
* - Managing concurrent flow node execution
|
|
33
|
-
*
|
|
34
|
-
* When all permits are in use, new acquire() calls will wait until a permit
|
|
35
|
-
* becomes available.
|
|
36
|
-
*
|
|
37
|
-
* @param count - Maximum number of concurrent operations allowed
|
|
38
|
-
* @returns A semaphore object with an acquire method
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```typescript
|
|
42
|
-
* const uploadSemaphore = semaphore(3); // Max 3 concurrent uploads
|
|
43
|
-
*
|
|
44
|
-
* async function uploadFile(file: File) {
|
|
45
|
-
* const permit = await uploadSemaphore.acquire();
|
|
46
|
-
* try {
|
|
47
|
-
* // Upload file (max 3 concurrent)
|
|
48
|
-
* await uploadToServer(file);
|
|
49
|
-
* } finally {
|
|
50
|
-
* await permit.release();
|
|
51
|
-
* }
|
|
52
|
-
* }
|
|
53
|
-
*
|
|
54
|
-
* // Process files with concurrency limit
|
|
55
|
-
* await Promise.all(files.map(uploadFile));
|
|
56
|
-
* ```
|
|
57
|
-
*/
|
|
58
|
-
export function semaphore(count) {
|
|
59
|
-
let availablePermits = count;
|
|
60
|
-
const deferreds = [];
|
|
61
|
-
function acquire() {
|
|
62
|
-
if (availablePermits > 0) {
|
|
63
|
-
return Promise.resolve(createPermit());
|
|
64
|
-
}
|
|
65
|
-
const deferred = {};
|
|
66
|
-
deferred.promise = new Promise((resolve) => {
|
|
67
|
-
deferred.resolve = resolve;
|
|
68
|
-
});
|
|
69
|
-
deferreds.push(deferred);
|
|
70
|
-
return deferred.promise;
|
|
71
|
-
}
|
|
72
|
-
function createPermit() {
|
|
73
|
-
availablePermits--;
|
|
74
|
-
return permit(async () => {
|
|
75
|
-
availablePermits++;
|
|
76
|
-
if (deferreds.length > 0) {
|
|
77
|
-
const deferred = deferreds.shift();
|
|
78
|
-
if (deferred) {
|
|
79
|
-
deferred.resolve?.(createPermit());
|
|
80
|
-
await deferred.promise;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
acquire,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Effect-based semaphore utilities
|
|
91
|
-
*/
|
|
92
|
-
export const SemaphoreEffect = {
|
|
93
|
-
/**
|
|
94
|
-
* Creates an Effect-based semaphore with resource management
|
|
95
|
-
* @param count - Number of permits available
|
|
96
|
-
* @returns Effect semaphore with automatic resource cleanup
|
|
97
|
-
*/
|
|
98
|
-
make: (count) => Effect.acquireRelease(Effect.sync(() => {
|
|
99
|
-
let availablePermits = count;
|
|
100
|
-
const queue = [];
|
|
101
|
-
const acquire = (effect) => Effect.gen(function* () {
|
|
102
|
-
// Wait for a permit
|
|
103
|
-
yield* Effect.async((resume) => {
|
|
104
|
-
if (availablePermits > 0) {
|
|
105
|
-
availablePermits--;
|
|
106
|
-
resume(Effect.void);
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
queue.push((releasePermit) => {
|
|
110
|
-
availablePermits--;
|
|
111
|
-
resume(Effect.void);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
// Execute the effect with cleanup
|
|
116
|
-
return yield* Effect.ensuring(effect, Effect.sync(() => {
|
|
117
|
-
availablePermits++;
|
|
118
|
-
if (queue.length > 0) {
|
|
119
|
-
const nextWaiting = queue.shift();
|
|
120
|
-
if (nextWaiting) {
|
|
121
|
-
nextWaiting(() => { });
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}));
|
|
125
|
-
});
|
|
126
|
-
return { acquire };
|
|
127
|
-
}), () => Effect.void),
|
|
128
|
-
/**
|
|
129
|
-
* Creates a legacy semaphore wrapper
|
|
130
|
-
* @param count - Number of permits
|
|
131
|
-
* @returns Legacy semaphore instance
|
|
132
|
-
*/
|
|
133
|
-
legacy: (count) => semaphore(count),
|
|
134
|
-
};
|
package/dist/utils/throttle.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`../debounce-LZK7yS7Z.cjs`);function t(t,n,{leading:r=!0,trailing:i=!0}={}){return e.debounce(t,n,{leading:r,trailing:i})}const n={legacy:t};exports.ThrottleEffect=n,exports.throttle=t;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
//#region src/utils/throttle.d.ts
|
|
2
|
-
declare function throttle<T, A extends unknown[], Return>(fn: (this: T, ...args: A) => Return, wait: number, {
|
|
3
|
-
leading,
|
|
4
|
-
trailing
|
|
5
|
-
}?: {
|
|
6
|
-
leading?: boolean;
|
|
7
|
-
trailing?: boolean;
|
|
8
|
-
}): (this: T, ...args: A) => void;
|
|
9
|
-
/**
|
|
10
|
-
* Effect-based throttle utilities
|
|
11
|
-
*/
|
|
12
|
-
declare const ThrottleEffect: {
|
|
13
|
-
/**
|
|
14
|
-
* Creates a legacy throttle function wrapper
|
|
15
|
-
* @param fn - Function to throttle
|
|
16
|
-
* @param wait - Wait time in milliseconds
|
|
17
|
-
* @param options - Throttle options
|
|
18
|
-
* @returns Throttled function
|
|
19
|
-
*/
|
|
20
|
-
legacy: typeof throttle;
|
|
21
|
-
};
|
|
22
|
-
//#endregion
|
|
23
|
-
export { ThrottleEffect, throttle };
|
|
24
|
-
//# sourceMappingURL=throttle.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.cts","names":[],"sources":["../../src/utils/throttle.ts"],"sourcesContent":[],"mappings":";iBAEgB,oDACH,YAAY,MAAM;;;;EADf,OAAA,CAAA,EAAA,OAAQ;EAAA,QAAA,CAAA,EAAA,OAAA;SACX,EAKsC,CALtC,EAAA,GAAA,IAAA,EAKsC,CALtC,EAAA,GAAA,IAAA;;;;AAIT,cAYS,cAZT,EAAA;;;;AAYJ;;;;iBASC"}
|
package/dist/utils/throttle.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare function throttle<T, A extends unknown[], Return>(fn: (this: T, ...args: A) => Return, wait: number, { leading, trailing, }?: {
|
|
2
|
-
leading?: boolean;
|
|
3
|
-
trailing?: boolean;
|
|
4
|
-
}): (this: T, ...args: A) => void;
|
|
5
|
-
/**
|
|
6
|
-
* Effect-based throttle utilities
|
|
7
|
-
*/
|
|
8
|
-
export declare const ThrottleEffect: {
|
|
9
|
-
/**
|
|
10
|
-
* Creates a legacy throttle function wrapper
|
|
11
|
-
* @param fn - Function to throttle
|
|
12
|
-
* @param wait - Wait time in milliseconds
|
|
13
|
-
* @param options - Throttle options
|
|
14
|
-
* @returns Throttled function
|
|
15
|
-
*/
|
|
16
|
-
legacy: typeof throttle;
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=throttle.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../src/utils/throttle.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,EAAE,MAAM,EACrD,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,MAAM,EACnC,IAAI,EAAE,MAAM,EACZ,EACE,OAAc,EACd,QAAe,GAChB,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,iCAMlD;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;;;;;OAMG;;CAEJ,CAAC"}
|
package/dist/utils/throttle.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { debounce } from "./debounce.js";
|
|
2
|
-
export function throttle(fn, wait, { leading = true, trailing = true, } = {}) {
|
|
3
|
-
return debounce(fn, wait, {
|
|
4
|
-
leading,
|
|
5
|
-
trailing,
|
|
6
|
-
});
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Effect-based throttle utilities
|
|
10
|
-
*/
|
|
11
|
-
export const ThrottleEffect = {
|
|
12
|
-
/**
|
|
13
|
-
* Creates a legacy throttle function wrapper
|
|
14
|
-
* @param fn - Function to throttle
|
|
15
|
-
* @param wait - Wait time in milliseconds
|
|
16
|
-
* @param options - Throttle options
|
|
17
|
-
* @returns Throttled function
|
|
18
|
-
*/
|
|
19
|
-
legacy: throttle,
|
|
20
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.js","names":[],"sources":["../../src/utils/throttle.ts"],"sourcesContent":["import { debounce } from \"./debounce.js\";\n\nexport function throttle<T, A extends unknown[], Return>(\n fn: (this: T, ...args: A) => Return,\n wait: number,\n {\n leading = true,\n trailing = true,\n }: { leading?: boolean; trailing?: boolean } = {},\n) {\n return debounce(fn, wait, {\n leading,\n trailing,\n });\n}\n\n/**\n * Effect-based throttle utilities\n */\nexport const ThrottleEffect = {\n /**\n * Creates a legacy throttle function wrapper\n * @param fn - Function to throttle\n * @param wait - Wait time in milliseconds\n * @param options - Throttle options\n * @returns Throttled function\n */\n legacy: throttle,\n};\n"],"mappings":"mDAEA,SAAgB,EACd,EACA,EACA,CACE,UAAU,GACV,WAAW,IACkC,EAAE,CACjD,CACA,OAAO,EAAS,EAAI,EAAM,CACxB,UACA,WACD,CAAC,CAMJ,MAAa,EAAiB,CAQ5B,OAAQ,EACT"}
|
package/src/logger/logger.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export type Logger = {
|
|
2
|
-
log: (message: string) => void;
|
|
3
|
-
};
|
|
4
|
-
|
|
5
|
-
export function createLogger(enabled: boolean): Logger {
|
|
6
|
-
return {
|
|
7
|
-
log: (message: string) => {
|
|
8
|
-
if (enabled) {
|
|
9
|
-
// eslint-disable-next-line no-console
|
|
10
|
-
console.log(message);
|
|
11
|
-
}
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
}
|
|
File without changes
|