@ricsam/quickjs-core 0.2.0 → 0.2.1

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 (59) hide show
  1. package/dist/cjs/blob.cjs +197 -0
  2. package/dist/cjs/blob.cjs.map +10 -0
  3. package/dist/cjs/class-builder.cjs +244 -0
  4. package/dist/cjs/class-builder.cjs.map +10 -0
  5. package/dist/cjs/dom-exception.cjs +95 -0
  6. package/dist/cjs/dom-exception.cjs.map +10 -0
  7. package/dist/cjs/file.cjs +234 -0
  8. package/dist/cjs/file.cjs.map +10 -0
  9. package/dist/cjs/function-builder.cjs +70 -0
  10. package/dist/cjs/function-builder.cjs.map +10 -0
  11. package/dist/cjs/marshal.cjs +191 -0
  12. package/dist/cjs/marshal.cjs.map +10 -0
  13. package/dist/cjs/package.json +1 -1
  14. package/dist/cjs/readable-stream.cjs +588 -0
  15. package/dist/cjs/readable-stream.cjs.map +10 -0
  16. package/dist/cjs/scope.cjs +76 -0
  17. package/dist/cjs/scope.cjs.map +10 -0
  18. package/dist/cjs/transform-stream.cjs +152 -0
  19. package/dist/cjs/transform-stream.cjs.map +10 -0
  20. package/dist/cjs/types.cjs +39 -0
  21. package/dist/cjs/types.cjs.map +10 -0
  22. package/dist/cjs/unmarshal.cjs +254 -0
  23. package/dist/cjs/unmarshal.cjs.map +10 -0
  24. package/dist/cjs/url-search-params.cjs +165 -0
  25. package/dist/cjs/url-search-params.cjs.map +10 -0
  26. package/dist/cjs/url.cjs +183 -0
  27. package/dist/cjs/url.cjs.map +10 -0
  28. package/dist/cjs/writable-stream.cjs +513 -0
  29. package/dist/cjs/writable-stream.cjs.map +10 -0
  30. package/dist/mjs/blob.mjs +166 -0
  31. package/dist/mjs/blob.mjs.map +10 -0
  32. package/dist/mjs/class-builder.mjs +213 -0
  33. package/dist/mjs/class-builder.mjs.map +10 -0
  34. package/dist/mjs/dom-exception.mjs +64 -0
  35. package/dist/mjs/dom-exception.mjs.map +10 -0
  36. package/dist/mjs/file.mjs +203 -0
  37. package/dist/mjs/file.mjs.map +10 -0
  38. package/dist/mjs/function-builder.mjs +39 -0
  39. package/dist/mjs/function-builder.mjs.map +10 -0
  40. package/dist/mjs/marshal.mjs +160 -0
  41. package/dist/mjs/marshal.mjs.map +10 -0
  42. package/dist/mjs/package.json +1 -1
  43. package/dist/mjs/readable-stream.mjs +557 -0
  44. package/dist/mjs/readable-stream.mjs.map +10 -0
  45. package/dist/mjs/scope.mjs +45 -0
  46. package/dist/mjs/scope.mjs.map +10 -0
  47. package/dist/mjs/transform-stream.mjs +121 -0
  48. package/dist/mjs/transform-stream.mjs.map +10 -0
  49. package/dist/mjs/types.mjs +8 -0
  50. package/dist/mjs/types.mjs.map +10 -0
  51. package/dist/mjs/unmarshal.mjs +223 -0
  52. package/dist/mjs/unmarshal.mjs.map +10 -0
  53. package/dist/mjs/url-search-params.mjs +134 -0
  54. package/dist/mjs/url-search-params.mjs.map +10 -0
  55. package/dist/mjs/url.mjs +152 -0
  56. package/dist/mjs/url.mjs.map +10 -0
  57. package/dist/mjs/writable-stream.mjs +482 -0
  58. package/dist/mjs/writable-stream.mjs.map +10 -0
  59. package/package.json +1 -1
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/streams/writable-stream.ts"],
4
+ "sourcesContent": [
5
+ "import type { QuickJSContext, QuickJSHandle } from \"quickjs-emscripten\";\nimport type { StateMap } from \"../types.ts\";\nimport { defineClass, getInstanceStateById } from \"../class-builder.ts\";\nimport { marshal } from \"../marshal.ts\";\nimport { unmarshal } from \"../unmarshal.ts\";\n\ninterface WritableStreamController {\n error(e: unknown): void;\n}\n\ninterface WritableStreamInternalState {\n locked: boolean;\n writer: WritableStreamWriterState | null;\n controller: WritableStreamController;\n closed: boolean;\n errored: boolean;\n errorValue: unknown;\n closeRequested: boolean;\n inFlightWriteRequest: {\n resolve: () => void;\n reject: (e: unknown) => void;\n } | null;\n writeRequests: Array<{\n chunk: unknown;\n resolve: () => void;\n reject: (e: unknown) => void;\n }>;\n sink?: {\n start?: (controller: WritableStreamController) => void | Promise<void>;\n write?: (chunk: unknown, controller: WritableStreamController) => void | Promise<void>;\n close?: () => void | Promise<void>;\n abort?: (reason?: unknown) => void | Promise<void>;\n };\n started: boolean;\n}\n\ninterface WritableStreamWriterState {\n stream: WritableStreamInternalState;\n closedPromiseResolvers: {\n resolve: () => void;\n reject: (e: unknown) => void;\n };\n readyPromiseResolvers: {\n resolve: () => void;\n reject: (e: unknown) => void;\n };\n _closedPromise?: Promise<void>; // Lazy-created\n _readyPromise?: Promise<void>; // Lazy-created\n}\n\n/**\n * Create the WritableStreamDefaultWriter class\n */\nexport function createWritableStreamDefaultWriterClass(\n context: QuickJSContext,\n stateMap: StateMap\n): QuickJSHandle {\n return defineClass<WritableStreamWriterState>(context, stateMap, {\n name: \"WritableStreamDefaultWriter\",\n construct: () => {\n // Use lazy promise creation to avoid marshalling issues with handle cleanup\n let resolveClosedPromise: (() => void) | undefined;\n let rejectClosedPromise: ((e: unknown) => void) | undefined;\n let resolveReadyPromise: (() => void) | undefined;\n let rejectReadyPromise: ((e: unknown) => void) | undefined;\n\n const state: WritableStreamWriterState = {\n stream: null as unknown as WritableStreamInternalState,\n closedPromiseResolvers: {\n resolve: () => resolveClosedPromise?.(),\n reject: (e) => rejectClosedPromise?.(e),\n },\n readyPromiseResolvers: {\n resolve: () => resolveReadyPromise?.(),\n reject: (e) => rejectReadyPromise?.(e),\n },\n };\n\n // Define lazy promise properties (non-enumerable to avoid marshalling)\n Object.defineProperty(state, \"_closedPromise\", {\n value: undefined,\n writable: true,\n enumerable: false,\n });\n Object.defineProperty(state, \"_readyPromise\", {\n value: undefined,\n writable: true,\n enumerable: false,\n });\n\n // Create promise accessors (non-enumerable)\n Object.defineProperty(state, \"getClosedPromise\", {\n value: function (this: WritableStreamWriterState): Promise<void> {\n if (!this._closedPromise) {\n this._closedPromise = new Promise<void>((resolve, reject) => {\n resolveClosedPromise = resolve;\n rejectClosedPromise = reject;\n });\n }\n return this._closedPromise;\n },\n enumerable: false,\n });\n\n Object.defineProperty(state, \"getReadyPromise\", {\n value: function (this: WritableStreamWriterState): Promise<void> {\n if (!this._readyPromise) {\n this._readyPromise = new Promise<void>((resolve, reject) => {\n resolveReadyPromise = resolve;\n rejectReadyPromise = reject;\n });\n }\n return this._readyPromise;\n },\n enumerable: false,\n });\n\n return state;\n },\n properties: {\n closed: {\n get(this: WritableStreamWriterState) {\n return (this as unknown as { getClosedPromise: () => Promise<void> }).getClosedPromise();\n },\n },\n ready: {\n get(this: WritableStreamWriterState) {\n return (this as unknown as { getReadyPromise: () => Promise<void> }).getReadyPromise();\n },\n },\n desiredSize: {\n get(this: WritableStreamWriterState) {\n if (!this.stream) return null;\n if (this.stream.errored) return null;\n if (this.stream.closeRequested) return 0;\n return 1 - this.stream.writeRequests.length;\n },\n },\n },\n methods: {\n write(this: WritableStreamWriterState, chunk: unknown): Promise<void> {\n if (!this.stream) {\n return Promise.reject(new TypeError(\"Writer has no stream\"));\n }\n if (this.stream.errored) {\n return Promise.reject(this.stream.errorValue);\n }\n if (this.stream.closeRequested || this.stream.closed) {\n return Promise.reject(new TypeError(\"Cannot write to a closed stream\"));\n }\n\n const self = this;\n return new Promise((resolve, reject) => {\n self.stream.writeRequests.push({ chunk, resolve, reject });\n processWriteRequests.call(self);\n });\n },\n close(this: WritableStreamWriterState): Promise<void> {\n if (!this.stream) {\n return Promise.reject(new TypeError(\"Writer has no stream\"));\n }\n if (this.stream.closeRequested || this.stream.closed) {\n return Promise.reject(new TypeError(\"Stream is already closing or closed\"));\n }\n\n this.stream.closeRequested = true;\n\n return new Promise((resolve, reject) => {\n // Wait for all writes to complete\n const checkWritesComplete = () => {\n if (this.stream.writeRequests.length === 0 && !this.stream.inFlightWriteRequest) {\n // Call close on sink\n if (this.stream.sink?.close) {\n try {\n const result = this.stream.sink.close();\n if (result instanceof Promise) {\n result\n .then(() => {\n this.stream.closed = true;\n this.closedPromiseResolvers.resolve();\n resolve();\n })\n .catch((e) => {\n this.stream.errored = true;\n this.stream.errorValue = e;\n this.closedPromiseResolvers.reject(e);\n reject(e);\n });\n return;\n }\n } catch (e) {\n this.stream.errored = true;\n this.stream.errorValue = e;\n this.closedPromiseResolvers.reject(e);\n reject(e);\n return;\n }\n }\n this.stream.closed = true;\n this.closedPromiseResolvers.resolve();\n resolve();\n } else {\n setTimeout(checkWritesComplete, 0);\n }\n };\n checkWritesComplete();\n });\n },\n abort(this: WritableStreamWriterState, reason?: unknown): Promise<void> {\n if (!this.stream) {\n return Promise.reject(new TypeError(\"Writer has no stream\"));\n }\n\n return new Promise((resolve, reject) => {\n try {\n // Reject all pending writes\n this.stream.writeRequests.forEach((req) => req.reject(reason));\n this.stream.writeRequests = [];\n\n if (this.stream.sink?.abort) {\n const result = this.stream.sink.abort(reason);\n if (result instanceof Promise) {\n result.then(resolve).catch(reject);\n return;\n }\n }\n this.stream.errored = true;\n this.stream.errorValue = reason;\n this.closedPromiseResolvers.reject(reason);\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n },\n releaseLock(this: WritableStreamWriterState): void {\n if (!this.stream) return;\n this.stream.locked = false;\n this.stream.writer = null;\n },\n },\n });\n}\n\n// Add helper method to WritableStreamWriterState\nfunction processWriteRequests(this: WritableStreamWriterState) {\n if (\n this.stream.inFlightWriteRequest ||\n this.stream.writeRequests.length === 0 ||\n !this.stream.started\n ) {\n return;\n }\n\n const request = this.stream.writeRequests.shift()!;\n this.stream.inFlightWriteRequest = request;\n\n if (this.stream.sink?.write) {\n try {\n const result = this.stream.sink.write(request.chunk, this.stream.controller);\n if (result instanceof Promise) {\n result\n .then(() => {\n this.stream.inFlightWriteRequest = null;\n request.resolve();\n processWriteRequests.call(this);\n })\n .catch((e) => {\n this.stream.inFlightWriteRequest = null;\n this.stream.errored = true;\n this.stream.errorValue = e;\n request.reject(e);\n // Reject remaining writes\n this.stream.writeRequests.forEach((req) => req.reject(e));\n this.stream.writeRequests = [];\n });\n return;\n }\n } catch (e) {\n this.stream.inFlightWriteRequest = null;\n this.stream.errored = true;\n this.stream.errorValue = e;\n request.reject(e);\n return;\n }\n }\n\n this.stream.inFlightWriteRequest = null;\n request.resolve();\n processWriteRequests.call(this);\n}\n\n\n/**\n * Create the WritableStream class\n */\nexport function createWritableStreamClass(\n context: QuickJSContext,\n stateMap: StateMap,\n writerClass: QuickJSHandle\n): QuickJSHandle {\n const classHandle = defineClass<WritableStreamInternalState>(context, stateMap, {\n name: \"WritableStream\",\n construct: (args) => {\n const underlyingSink = args[0] as {\n start?: (controller: WritableStreamController) => void | Promise<void>;\n write?: (chunk: unknown, controller: WritableStreamController) => void | Promise<void>;\n close?: () => void | Promise<void>;\n abort?: (reason?: unknown) => void | Promise<void>;\n } | undefined;\n\n const state: WritableStreamInternalState = {\n locked: false,\n writer: null,\n controller: null as unknown as WritableStreamController,\n closed: false,\n errored: false,\n errorValue: undefined,\n closeRequested: false,\n inFlightWriteRequest: null,\n writeRequests: [],\n sink: underlyingSink,\n started: false,\n };\n\n // Create controller\n state.controller = {\n error(e: unknown) {\n if (state.errored || state.closed) return;\n state.errored = true;\n state.errorValue = e;\n\n // Reject all pending writes\n state.writeRequests.forEach((req) => req.reject(e));\n state.writeRequests = [];\n\n if (state.writer) {\n state.writer.closedPromiseResolvers.reject(e);\n state.writer.readyPromiseResolvers.reject(e);\n }\n },\n };\n\n // Call start if provided\n if (underlyingSink?.start) {\n try {\n const startResult = underlyingSink.start(state.controller);\n if (startResult instanceof Promise) {\n startResult\n .then(() => {\n state.started = true;\n if (state.writer) {\n state.writer.readyPromiseResolvers.resolve();\n }\n })\n .catch((e) => {\n state.errored = true;\n state.errorValue = e;\n });\n } else {\n state.started = true;\n }\n } catch (e) {\n state.errored = true;\n state.errorValue = e;\n }\n } else {\n state.started = true;\n }\n\n return state;\n },\n properties: {\n locked: {\n get(this: WritableStreamInternalState) {\n return this.locked;\n },\n },\n },\n methods: {\n // __linkWriter__ is called from JavaScript getWriter() to link stream and writer states\n __linkWriter__(this: WritableStreamInternalState, writerObj: unknown): void {\n if (this.locked) {\n throw new TypeError(\"WritableStream is locked\");\n }\n this.locked = true;\n\n // Get the writer's internal state from instanceStateMap\n const writerId = (writerObj as { __instanceId__: number }).__instanceId__;\n const writerState = getInstanceStateById<WritableStreamWriterState>(writerId);\n if (!writerState) {\n throw new Error(\"Writer instance state not found\");\n }\n\n // Link bidirectionally\n writerState.stream = this;\n this.writer = writerState;\n\n // Resolve ready promise if stream already started\n if (this.started) {\n writerState.readyPromiseResolvers.resolve();\n }\n },\n abort(this: WritableStreamInternalState, reason?: unknown): Promise<void> {\n if (this.locked) {\n return Promise.reject(new TypeError(\"Cannot abort a locked stream\"));\n }\n\n return new Promise((resolve, reject) => {\n try {\n // Reject all pending writes\n this.writeRequests.forEach((req) => req.reject(reason));\n this.writeRequests = [];\n\n if (this.sink?.abort) {\n const result = this.sink.abort(reason);\n if (result instanceof Promise) {\n result.then(resolve).catch(reject);\n return;\n }\n }\n this.errored = true;\n this.errorValue = reason;\n resolve();\n } catch (e) {\n reject(e);\n }\n });\n },\n close(this: WritableStreamInternalState): Promise<void> {\n if (this.locked) {\n return Promise.reject(new TypeError(\"Cannot close a locked stream\"));\n }\n if (this.closeRequested || this.closed) {\n return Promise.reject(new TypeError(\"Stream is already closing or closed\"));\n }\n\n this.closeRequested = true;\n\n return new Promise((resolve, reject) => {\n if (this.sink?.close) {\n try {\n const result = this.sink.close();\n if (result instanceof Promise) {\n result\n .then(() => {\n this.closed = true;\n resolve();\n })\n .catch(reject);\n return;\n }\n } catch (e) {\n reject(e);\n return;\n }\n }\n this.closed = true;\n resolve();\n });\n },\n },\n });\n\n // Add getWriter to prototype as JavaScript code\n // This ensures getWriter() returns a proper WritableStreamDefaultWriter instance\n const prototypeHandle = context.getProp(classHandle, \"prototype\");\n\n const getWriterCode = `(function() {\n const writer = new WritableStreamDefaultWriter();\n this.__linkWriter__(writer);\n return writer;\n })`;\n const getWriterResult = context.evalCode(getWriterCode);\n if (!getWriterResult.error) {\n context.setProp(prototypeHandle, \"getWriter\", getWriterResult.value);\n getWriterResult.value.dispose();\n } else {\n getWriterResult.error.dispose();\n }\n\n prototypeHandle.dispose();\n return classHandle;\n}\n\n/**\n * Create a WritableStream in QuickJS from a host-side sink\n */\nexport function createWritableStream(\n context: QuickJSContext,\n stateMap: StateMap,\n sink: UnderlyingSink\n): QuickJSHandle {\n const sinkObj = context.newObject();\n\n if (sink.start) {\n const startFn = context.newFunction(\"start\", (controllerHandle) => {\n const controller = {\n signal: new AbortController().signal,\n error: (e: unknown) => {\n const errorFn = context.getProp(controllerHandle, \"error\");\n const errorHandle = marshal(context, e);\n context.callFunction(errorFn, controllerHandle, errorHandle);\n errorHandle.dispose();\n errorFn.dispose();\n },\n } as WritableStreamDefaultController;\n\n const result = sink.start!(controller);\n if (result instanceof Promise) {\n const deferred = context.newPromise();\n result\n .then(() => {\n deferred.resolve(context.undefined);\n context.runtime.executePendingJobs();\n })\n .catch((e) => {\n deferred.reject(marshal(context, e));\n context.runtime.executePendingJobs();\n });\n return deferred.handle;\n }\n return context.undefined;\n });\n context.setProp(sinkObj, \"start\", startFn);\n startFn.dispose();\n }\n\n if (sink.write) {\n const writeFn = context.newFunction(\"write\", (chunkHandle, controllerHandle) => {\n const chunk = unmarshal(context, chunkHandle);\n const controller = {\n signal: new AbortController().signal,\n error: (e: unknown) => {\n const errorFn = context.getProp(controllerHandle, \"error\");\n const errorHandle = marshal(context, e);\n context.callFunction(errorFn, controllerHandle, errorHandle);\n errorHandle.dispose();\n errorFn.dispose();\n },\n } as WritableStreamDefaultController;\n\n const result = sink.write!(chunk, controller);\n if (result instanceof Promise) {\n const deferred = context.newPromise();\n result\n .then(() => {\n deferred.resolve(context.undefined);\n context.runtime.executePendingJobs();\n })\n .catch((e) => {\n deferred.reject(marshal(context, e));\n context.runtime.executePendingJobs();\n });\n return deferred.handle;\n }\n return context.undefined;\n });\n context.setProp(sinkObj, \"write\", writeFn);\n writeFn.dispose();\n }\n\n if (sink.close) {\n const closeFn = context.newFunction(\"close\", () => {\n const result = sink.close!();\n if (result instanceof Promise) {\n const deferred = context.newPromise();\n result\n .then(() => {\n deferred.resolve(context.undefined);\n context.runtime.executePendingJobs();\n })\n .catch((e) => {\n deferred.reject(marshal(context, e));\n context.runtime.executePendingJobs();\n });\n return deferred.handle;\n }\n return context.undefined;\n });\n context.setProp(sinkObj, \"close\", closeFn);\n closeFn.dispose();\n }\n\n if (sink.abort) {\n const abortFn = context.newFunction(\"abort\", (reasonHandle) => {\n const reason = unmarshal(context, reasonHandle);\n const result = sink.abort!(reason);\n if (result instanceof Promise) {\n const deferred = context.newPromise();\n result\n .then(() => {\n deferred.resolve(context.undefined);\n context.runtime.executePendingJobs();\n })\n .catch((e) => {\n deferred.reject(marshal(context, e));\n context.runtime.executePendingJobs();\n });\n return deferred.handle;\n }\n return context.undefined;\n });\n context.setProp(sinkObj, \"abort\", abortFn);\n abortFn.dispose();\n }\n\n const WritableStreamConstructor = context.getProp(context.global, \"WritableStream\");\n const result = context.callFunction(WritableStreamConstructor, context.undefined, sinkObj);\n WritableStreamConstructor.dispose();\n sinkObj.dispose();\n\n if (result.error) {\n const error = context.dump(result.error);\n result.error.dispose();\n throw new Error(`Failed to create WritableStream: ${error}`);\n }\n\n return result.value;\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "A0FD01B9FABF048C64756E2164756E21",
9
+ "names": []
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ricsam/quickjs-core",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "main": "./dist/cjs/index.cjs",
5
5
  "types": "./dist/types/index.d.ts",
6
6
  "exports": {