knitting 0.1.53 → 0.1.55

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 (135) hide show
  1. package/README.md +38 -27
  2. package/knitting.d.ts +797 -5
  3. package/knitting.js +9780 -5
  4. package/map.md +9 -12
  5. package/package.json +14 -13
  6. package/shared-memory.d.ts +155 -0
  7. package/shared-memory.js +1342 -0
  8. package/unsafe.d.ts +71 -1
  9. package/unsafe.js +878 -1
  10. package/utils.d.ts +31 -1
  11. package/utils.js +116 -1
  12. package/process-shared-buffer.d.ts +0 -1
  13. package/process-shared-buffer.js +0 -1
  14. package/src/api.d.ts +0 -69
  15. package/src/api.js +0 -555
  16. package/src/common/envelope.d.ts +0 -17
  17. package/src/common/envelope.js +0 -22
  18. package/src/common/module-url.d.ts +0 -1
  19. package/src/common/module-url.js +0 -24
  20. package/src/common/node-compat.d.ts +0 -20
  21. package/src/common/node-compat.js +0 -24
  22. package/src/common/path-canonical.d.ts +0 -6
  23. package/src/common/path-canonical.js +0 -41
  24. package/src/common/runtime.d.ts +0 -15
  25. package/src/common/runtime.js +0 -91
  26. package/src/common/shared-buffer-region.d.ts +0 -11
  27. package/src/common/shared-buffer-region.js +0 -21
  28. package/src/common/shared-buffer-text.d.ts +0 -16
  29. package/src/common/shared-buffer-text.js +0 -65
  30. package/src/common/task-source.d.ts +0 -3
  31. package/src/common/task-source.js +0 -84
  32. package/src/common/task-symbol.d.ts +0 -1
  33. package/src/common/task-symbol.js +0 -1
  34. package/src/common/with-resolvers.d.ts +0 -9
  35. package/src/common/with-resolvers.js +0 -23
  36. package/src/common/worker-runtime.d.ts +0 -42
  37. package/src/common/worker-runtime.js +0 -61
  38. package/src/connections/buffer-reference-native.d.ts +0 -56
  39. package/src/connections/buffer-reference-native.js +0 -217
  40. package/src/connections/buffer-reference.d.ts +0 -78
  41. package/src/connections/buffer-reference.js +0 -461
  42. package/src/connections/bun.d.ts +0 -22
  43. package/src/connections/bun.js +0 -214
  44. package/src/connections/deno.d.ts +0 -22
  45. package/src/connections/deno.js +0 -205
  46. package/src/connections/file-descriptor.d.ts +0 -39
  47. package/src/connections/file-descriptor.js +0 -161
  48. package/src/connections/index.d.ts +0 -4
  49. package/src/connections/index.js +0 -4
  50. package/src/connections/node-addons.d.ts +0 -5
  51. package/src/connections/node-addons.js +0 -43
  52. package/src/connections/node-buffer-pointer.d.ts +0 -20
  53. package/src/connections/node-buffer-pointer.js +0 -16
  54. package/src/connections/node.d.ts +0 -30
  55. package/src/connections/node.js +0 -62
  56. package/src/connections/posix.d.ts +0 -32
  57. package/src/connections/posix.js +0 -77
  58. package/src/connections/process-shared-buffer.d.ts +0 -75
  59. package/src/connections/process-shared-buffer.js +0 -279
  60. package/src/connections/shared-array-buffer-payload.d.ts +0 -36
  61. package/src/connections/shared-array-buffer-payload.js +0 -235
  62. package/src/connections/types.d.ts +0 -50
  63. package/src/connections/types.js +0 -37
  64. package/src/connections/windows.d.ts +0 -28
  65. package/src/connections/windows.js +0 -224
  66. package/src/debug/env-diff.d.ts +0 -26
  67. package/src/debug/env-diff.js +0 -49
  68. package/src/debug/gate.d.ts +0 -18
  69. package/src/debug/gate.js +0 -69
  70. package/src/debug/handle.d.ts +0 -23
  71. package/src/debug/handle.js +0 -48
  72. package/src/error.d.ts +0 -13
  73. package/src/error.js +0 -49
  74. package/src/ipc/tools/ring-queue.d.ts +0 -33
  75. package/src/ipc/tools/ring-queue.js +0 -159
  76. package/src/ipc/transport/shared-memory.d.ts +0 -23
  77. package/src/ipc/transport/shared-memory.js +0 -35
  78. package/src/memory/byte-carpet.d.ts +0 -73
  79. package/src/memory/byte-carpet.js +0 -157
  80. package/src/memory/lock.d.ts +0 -201
  81. package/src/memory/lock.js +0 -739
  82. package/src/memory/payload-config.d.ts +0 -31
  83. package/src/memory/payload-config.js +0 -67
  84. package/src/memory/payloadCodec.d.ts +0 -46
  85. package/src/memory/payloadCodec.js +0 -1334
  86. package/src/memory/regionRegistry.d.ts +0 -17
  87. package/src/memory/regionRegistry.js +0 -285
  88. package/src/memory/shared-buffer-io.d.ts +0 -55
  89. package/src/memory/shared-buffer-io.js +0 -403
  90. package/src/permission/index.d.ts +0 -2
  91. package/src/permission/index.js +0 -2
  92. package/src/permission/protocol.d.ts +0 -166
  93. package/src/permission/protocol.js +0 -650
  94. package/src/runtime/balancer.d.ts +0 -19
  95. package/src/runtime/balancer.js +0 -149
  96. package/src/runtime/dispatcher.d.ts +0 -34
  97. package/src/runtime/dispatcher.js +0 -142
  98. package/src/runtime/inline-executor.d.ts +0 -10
  99. package/src/runtime/inline-executor.js +0 -282
  100. package/src/runtime/pool.d.ts +0 -30
  101. package/src/runtime/pool.js +0 -391
  102. package/src/runtime/process-worker.d.ts +0 -92
  103. package/src/runtime/process-worker.js +0 -673
  104. package/src/runtime/tx-queue.d.ts +0 -26
  105. package/src/runtime/tx-queue.js +0 -151
  106. package/src/shared/abortSignal.d.ts +0 -23
  107. package/src/shared/abortSignal.js +0 -134
  108. package/src/types.d.ts +0 -346
  109. package/src/types.js +0 -2
  110. package/src/utils/http.d.ts +0 -29
  111. package/src/utils/http.js +0 -100
  112. package/src/worker/bootstrap.d.ts +0 -5
  113. package/src/worker/bootstrap.js +0 -78
  114. package/src/worker/composable-runners.d.ts +0 -12
  115. package/src/worker/composable-runners.js +0 -97
  116. package/src/worker/loop.d.ts +0 -2
  117. package/src/worker/loop.js +0 -382
  118. package/src/worker/process-worker-bootstrap.d.ts +0 -8
  119. package/src/worker/process-worker-bootstrap.js +0 -160
  120. package/src/worker/rx-queue.d.ts +0 -25
  121. package/src/worker/rx-queue.js +0 -173
  122. package/src/worker/safety/index.d.ts +0 -4
  123. package/src/worker/safety/index.js +0 -4
  124. package/src/worker/safety/performance.d.ts +0 -1
  125. package/src/worker/safety/performance.js +0 -17
  126. package/src/worker/safety/process.d.ts +0 -2
  127. package/src/worker/safety/process.js +0 -79
  128. package/src/worker/safety/startup.d.ts +0 -16
  129. package/src/worker/safety/startup.js +0 -30
  130. package/src/worker/safety/worker-data.d.ts +0 -2
  131. package/src/worker/safety/worker-data.js +0 -36
  132. package/src/worker/task-loader.d.ts +0 -27
  133. package/src/worker/task-loader.js +0 -78
  134. package/src/worker/timers.d.ts +0 -18
  135. package/src/worker/timers.js +0 -116
@@ -1,31 +0,0 @@
1
- import { type SharedBufferSource } from "../common/shared-buffer-region.js";
2
- export declare const PAYLOAD_DEFAULT_MAX_BYTE_LENGTH: number;
3
- export declare const PAYLOAD_DEFAULT_INITIAL_BYTES: number;
4
- /** Payload backing mode. Growable uses SAB growth when the runtime supports it. */
5
- export type PayloadBufferMode = "growable" | "fixed";
6
- export type PayloadBufferOptions = {
7
- /** Shared payload buffer mode. Defaults to growable when available. */
8
- mode?: PayloadBufferMode;
9
- /** Initial shared payload bytes per direction. Defaults to 4 MiB when growable. */
10
- payloadInitialBytes?: number;
11
- /** Shared payload growth cap. Defaults to 64 MiB. */
12
- payloadMaxByteLength?: number;
13
- /**
14
- * Max dynamic payload bytes for one call. Defaults to `payloadMaxByteLength >> 3`
15
- * (about 8 MiB by default) and must stay `<= payloadMaxByteLength >> 3`.
16
- * Over-cap payloads reject with `KNT_ERROR_3`.
17
- */
18
- maxPayloadBytes?: number;
19
- };
20
- export type ResolvedPayloadBufferOptions = {
21
- mode: PayloadBufferMode;
22
- payloadInitialBytes: number;
23
- payloadMaxByteLength: number;
24
- maxPayloadBytes: number;
25
- };
26
- type PayloadBackingBuffer = SharedArrayBuffer | ArrayBuffer;
27
- export declare const resolvePayloadBufferOptions: ({ options, sab, }: {
28
- options?: PayloadBufferOptions;
29
- sab?: PayloadBackingBuffer | SharedBufferSource;
30
- }) => ResolvedPayloadBufferOptions;
31
- export {};
@@ -1,67 +0,0 @@
1
- import { HAS_SAB_GROW, isGrowableSharedArrayBuffer, sharedArrayBufferMaxByteLength, } from "../common/runtime.js";
2
- import { toSharedBufferRegion, } from "../common/shared-buffer-region.js";
3
- export const PAYLOAD_DEFAULT_MAX_BYTE_LENGTH = 64 * 1024 * 1024;
4
- export const PAYLOAD_DEFAULT_INITIAL_BYTES = 4 * 1024 * 1024;
5
- const toPositiveInteger = (value) => {
6
- if (!Number.isFinite(value))
7
- return undefined;
8
- const int = Math.floor(value);
9
- return int > 0 ? int : undefined;
10
- };
11
- const canGrowSharedBuffer = (sab) => {
12
- if (sab == null)
13
- return false;
14
- return sab instanceof SharedArrayBuffer &&
15
- HAS_SAB_GROW &&
16
- isGrowableSharedArrayBuffer(sab);
17
- };
18
- const sharedBufferMaxByteLength = (sab) => {
19
- if (sab == null)
20
- return undefined;
21
- if (sab instanceof SharedArrayBuffer) {
22
- return toPositiveInteger(sharedArrayBufferMaxByteLength(sab));
23
- }
24
- return toPositiveInteger(sab.byteLength);
25
- };
26
- export const resolvePayloadBufferOptions = ({ options, sab, }) => {
27
- const sabRegion = sab === undefined ? undefined : toSharedBufferRegion(sab);
28
- const backing = sabRegion?.sab;
29
- const requestedMode = options?.mode;
30
- const modeDefault = HAS_SAB_GROW ? "growable" : "fixed";
31
- let mode = requestedMode ?? modeDefault;
32
- if (mode === "growable" && backing != null && !canGrowSharedBuffer(backing)) {
33
- mode = "fixed";
34
- }
35
- if (mode === "growable" && !HAS_SAB_GROW) {
36
- mode = "fixed";
37
- }
38
- const payloadMaxByteLength = toPositiveInteger(options?.payloadMaxByteLength) ??
39
- toPositiveInteger(sabRegion?.byteLength) ??
40
- sharedBufferMaxByteLength(backing) ??
41
- PAYLOAD_DEFAULT_MAX_BYTE_LENGTH;
42
- const requestedInitialBytes = toPositiveInteger(options?.payloadInitialBytes);
43
- const payloadInitialBytes = mode === "fixed"
44
- ? payloadMaxByteLength
45
- : Math.min(requestedInitialBytes ?? PAYLOAD_DEFAULT_INITIAL_BYTES, payloadMaxByteLength);
46
- const maxPayloadCeiling = payloadMaxByteLength >> 3;
47
- if (maxPayloadCeiling <= 0) {
48
- throw new RangeError("payloadMaxByteLength is too small; must be at least 8 bytes.");
49
- }
50
- const rawMaxPayloadBytes = options?.maxPayloadBytes;
51
- if (rawMaxPayloadBytes !== undefined) {
52
- const normalized = Math.floor(rawMaxPayloadBytes);
53
- if (!Number.isFinite(normalized) || normalized <= 0) {
54
- throw new RangeError(`maxPayloadBytes must be > 0 and <= ${maxPayloadCeiling}.`);
55
- }
56
- }
57
- const maxPayloadBytes = toPositiveInteger(rawMaxPayloadBytes) ?? maxPayloadCeiling;
58
- if (maxPayloadBytes <= 0 || maxPayloadBytes > maxPayloadCeiling) {
59
- throw new RangeError(`maxPayloadBytes must be > 0 and <= ${maxPayloadCeiling}.`);
60
- }
61
- return {
62
- mode,
63
- payloadInitialBytes,
64
- payloadMaxByteLength,
65
- maxPayloadBytes,
66
- };
67
- };
@@ -1,46 +0,0 @@
1
- import { type PromisePayloadHandler, type Task } from "./lock.js";
2
- import type { LockBufferTextCompat } from "../common/shared-buffer-text.js";
3
- import { type PayloadBufferOptions } from "./payload-config.js";
4
- import type { SharedBufferSource } from "../common/shared-buffer-region.js";
5
- /**
6
- * Returns `true` when the payload is encoded successfully.
7
- * Returns `false` when dynamic payload space could not be reserved.
8
- */
9
- export declare const encodePayload: ({ lockSector, payload, sab, payloadConfig, headersBuffer, headerSlotStrideU32, textCompat, onPromise, }: {
10
- lockSector?: SharedBufferSource;
11
- payload?: {
12
- sab?: SharedBufferSource;
13
- config?: PayloadBufferOptions;
14
- };
15
- /**
16
- * @deprecated Use `payload.sab`.
17
- */
18
- sab?: SharedBufferSource;
19
- /**
20
- * @deprecated Use `payload.config`.
21
- */
22
- payloadConfig?: PayloadBufferOptions;
23
- headersBuffer: Uint32Array;
24
- headerSlotStrideU32?: number;
25
- textCompat?: LockBufferTextCompat;
26
- onPromise?: PromisePayloadHandler;
27
- }) => (task: Task, slotIndex: number) => boolean;
28
- export declare const decodePayload: ({ lockSector, payload, sab, payloadConfig, headersBuffer, headerSlotStrideU32, textCompat, host, }: {
29
- lockSector?: SharedBufferSource;
30
- payload?: {
31
- sab?: SharedBufferSource;
32
- config?: PayloadBufferOptions;
33
- };
34
- /**
35
- * @deprecated Use `payload.sab`.
36
- */
37
- sab?: SharedBufferSource;
38
- /**
39
- * @deprecated Use `payload.config`.
40
- */
41
- payloadConfig?: PayloadBufferOptions;
42
- headersBuffer: Uint32Array;
43
- headerSlotStrideU32?: number;
44
- textCompat?: LockBufferTextCompat;
45
- host?: true;
46
- }) => (task: Task, slotIndex: number, specialFlags?: number) => void;