swarm-deploy 0.0.0 → 0.1.0

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 (115) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/LICENSE.md +201 -0
  3. package/NOTICE.md +13 -0
  4. package/README.md +652 -0
  5. package/RELEASING.md +71 -0
  6. package/SECURITY.md +41 -0
  7. package/dist/abort.d.ts +16 -0
  8. package/dist/abort.js +52 -0
  9. package/dist/abort.js.map +1 -0
  10. package/dist/allowlist.d.ts +2 -0
  11. package/dist/allowlist.js +21 -0
  12. package/dist/allowlist.js.map +1 -0
  13. package/dist/bin/swarm-deploy.d.ts +2 -0
  14. package/dist/bin/swarm-deploy.js +41 -0
  15. package/dist/bin/swarm-deploy.js.map +1 -0
  16. package/dist/cli.d.ts +25 -0
  17. package/dist/cli.js +694 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/client.d.ts +121 -0
  20. package/dist/client.js +285 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/direct-dht.d.ts +81 -0
  23. package/dist/direct-dht.js +254 -0
  24. package/dist/direct-dht.js.map +1 -0
  25. package/dist/error-code.d.ts +15 -0
  26. package/dist/error-code.js +30 -0
  27. package/dist/error-code.js.map +1 -0
  28. package/dist/errors.d.ts +27 -0
  29. package/dist/errors.js +33 -0
  30. package/dist/errors.js.map +1 -0
  31. package/dist/events-node.d.ts +2 -0
  32. package/dist/events-node.js +7 -0
  33. package/dist/events-node.js.map +1 -0
  34. package/dist/files.d.ts +47 -0
  35. package/dist/files.js +150 -0
  36. package/dist/files.js.map +1 -0
  37. package/dist/fs-node.d.ts +2 -0
  38. package/dist/fs-node.js +7 -0
  39. package/dist/fs-node.js.map +1 -0
  40. package/dist/identity.d.ts +7 -0
  41. package/dist/identity.js +50 -0
  42. package/dist/identity.js.map +1 -0
  43. package/dist/index.d.ts +8 -0
  44. package/dist/index.js +19 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/os-node.d.ts +2 -0
  47. package/dist/os-node.js +7 -0
  48. package/dist/os-node.js.map +1 -0
  49. package/dist/path-node.d.ts +2 -0
  50. package/dist/path-node.js +7 -0
  51. package/dist/path-node.js.map +1 -0
  52. package/dist/process-node.d.ts +2 -0
  53. package/dist/process-node.js +7 -0
  54. package/dist/process-node.js.map +1 -0
  55. package/dist/server.d.ts +153 -0
  56. package/dist/server.js +576 -0
  57. package/dist/server.js.map +1 -0
  58. package/dist/storage/atomic-file.d.ts +15 -0
  59. package/dist/storage/atomic-file.js +172 -0
  60. package/dist/storage/atomic-file.js.map +1 -0
  61. package/dist/storage/commit-journal.d.ts +83 -0
  62. package/dist/storage/commit-journal.js +279 -0
  63. package/dist/storage/commit-journal.js.map +1 -0
  64. package/dist/storage/commit-store.d.ts +246 -0
  65. package/dist/storage/commit-store.js +1339 -0
  66. package/dist/storage/commit-store.js.map +1 -0
  67. package/dist/storage/layout.d.ts +16 -0
  68. package/dist/storage/layout.js +403 -0
  69. package/dist/storage/layout.js.map +1 -0
  70. package/dist/storage/recovery.d.ts +99 -0
  71. package/dist/storage/recovery.js +253 -0
  72. package/dist/storage/recovery.js.map +1 -0
  73. package/dist/storage/retention.d.ts +163 -0
  74. package/dist/storage/retention.js +465 -0
  75. package/dist/storage/retention.js.map +1 -0
  76. package/dist/storage/root-coordinator.d.ts +7 -0
  77. package/dist/storage/root-coordinator.js +27 -0
  78. package/dist/storage/root-coordinator.js.map +1 -0
  79. package/dist/storage/session-store.d.ts +2 -0
  80. package/dist/storage/session-store.js +7 -0
  81. package/dist/storage/session-store.js.map +1 -0
  82. package/dist/storage/tar-session-store.d.ts +116 -0
  83. package/dist/storage/tar-session-store.js +816 -0
  84. package/dist/storage/tar-session-store.js.map +1 -0
  85. package/dist/storage/types.d.ts +62 -0
  86. package/dist/storage/types.js +3 -0
  87. package/dist/storage/types.js.map +1 -0
  88. package/dist/tar-protocol/controls.d.ts +48 -0
  89. package/dist/tar-protocol/controls.js +185 -0
  90. package/dist/tar-protocol/controls.js.map +1 -0
  91. package/dist/tar-protocol/direct-wire.d.ts +43 -0
  92. package/dist/tar-protocol/direct-wire.js +194 -0
  93. package/dist/tar-protocol/direct-wire.js.map +1 -0
  94. package/dist/tar-protocol/extract.d.ts +18 -0
  95. package/dist/tar-protocol/extract.js +124 -0
  96. package/dist/tar-protocol/extract.js.map +1 -0
  97. package/dist/tar-protocol/hash.d.ts +10 -0
  98. package/dist/tar-protocol/hash.js +44 -0
  99. package/dist/tar-protocol/hash.js.map +1 -0
  100. package/dist/tar-protocol/lifecycle.d.ts +13 -0
  101. package/dist/tar-protocol/lifecycle.js +90 -0
  102. package/dist/tar-protocol/lifecycle.js.map +1 -0
  103. package/dist/tar-protocol/manifest.d.ts +46 -0
  104. package/dist/tar-protocol/manifest.js +287 -0
  105. package/dist/tar-protocol/manifest.js.map +1 -0
  106. package/dist/tar-protocol/ustar.d.ts +22 -0
  107. package/dist/tar-protocol/ustar.js +87 -0
  108. package/dist/tar-protocol/ustar.js.map +1 -0
  109. package/dist/types.d.ts +58 -0
  110. package/dist/types.js +3 -0
  111. package/dist/types.js.map +1 -0
  112. package/dist/validation.d.ts +4 -0
  113. package/dist/validation.js +26 -0
  114. package/dist/validation.js.map +1 -0
  115. package/package.json +101 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/tar-protocol/manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export declare const TAR_BLOCK_BYTES = 512;
2
+ export declare const MAX_USTAR_FILE_BYTES = 8589934591;
3
+ /**
4
+ * Every USTAR metadata field is pinned to a constant so that the same content
5
+ * always frames to the same bytes. The transfer ID commits to these values, so
6
+ * changing one changes every transfer ID.
7
+ */
8
+ export declare const TAR_MODE = 420;
9
+ export declare const TAR_UID = 0;
10
+ export declare const TAR_GID = 0;
11
+ export declare const TAR_MTIME_MS = 0;
12
+ export declare const TAR_UNAME = "";
13
+ export declare const TAR_GNAME = "";
14
+ export declare function assertUstarFileSize(size: unknown): asserts size is number;
15
+ export declare function deterministicTarSize(fileSize: number): number;
16
+ /**
17
+ * Builds the single canonical USTAR header block for `name`/`fileSize`.
18
+ *
19
+ * Both the send path and receive validator use this exact block. A test also
20
+ * pins it byte-for-byte against tar-stream's portable USTAR representation.
21
+ */
22
+ export declare function canonicalUstarHeader(name: string, fileSize: number): Buffer;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TAR_GNAME = exports.TAR_UNAME = exports.TAR_MTIME_MS = exports.TAR_GID = exports.TAR_UID = exports.TAR_MODE = exports.MAX_USTAR_FILE_BYTES = exports.TAR_BLOCK_BYTES = void 0;
7
+ exports.assertUstarFileSize = assertUstarFileSize;
8
+ exports.deterministicTarSize = deterministicTarSize;
9
+ exports.canonicalUstarHeader = canonicalUstarHeader;
10
+ const b4a_1 = __importDefault(require("b4a"));
11
+ const errors_js_1 = require("../errors.js");
12
+ exports.TAR_BLOCK_BYTES = 512;
13
+ exports.MAX_USTAR_FILE_BYTES = 0o77777777777;
14
+ const TAR_END_BYTES = 2 * exports.TAR_BLOCK_BYTES;
15
+ /**
16
+ * Every USTAR metadata field is pinned to a constant so that the same content
17
+ * always frames to the same bytes. The transfer ID commits to these values, so
18
+ * changing one changes every transfer ID.
19
+ */
20
+ exports.TAR_MODE = 0o644;
21
+ exports.TAR_UID = 0;
22
+ exports.TAR_GID = 0;
23
+ exports.TAR_MTIME_MS = 0;
24
+ exports.TAR_UNAME = '';
25
+ exports.TAR_GNAME = '';
26
+ function invalidSize() {
27
+ return new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Invalid deterministic TAR file size');
28
+ }
29
+ function assertUstarFileSize(size) {
30
+ if (typeof size !== 'number' ||
31
+ !Number.isSafeInteger(size) ||
32
+ size < 0 ||
33
+ size > exports.MAX_USTAR_FILE_BYTES) {
34
+ throw invalidSize();
35
+ }
36
+ }
37
+ function deterministicTarSize(fileSize) {
38
+ assertUstarFileSize(fileSize);
39
+ const padding = (exports.TAR_BLOCK_BYTES - (fileSize % exports.TAR_BLOCK_BYTES)) % exports.TAR_BLOCK_BYTES;
40
+ const total = exports.TAR_BLOCK_BYTES + fileSize + padding + TAR_END_BYTES;
41
+ if (!Number.isSafeInteger(total))
42
+ throw invalidSize();
43
+ return total;
44
+ }
45
+ function octal(value, digits) {
46
+ const encoded = value.toString(8);
47
+ if (encoded.length > digits) {
48
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Canonical TAR field overflow');
49
+ }
50
+ return b4a_1.default.from(`${'0'.repeat(digits - encoded.length)}${encoded} `);
51
+ }
52
+ /**
53
+ * Builds the single canonical USTAR header block for `name`/`fileSize`.
54
+ *
55
+ * Both the send path and receive validator use this exact block. A test also
56
+ * pins it byte-for-byte against tar-stream's portable USTAR representation.
57
+ */
58
+ function canonicalUstarHeader(name, fileSize) {
59
+ assertUstarFileSize(fileSize);
60
+ const header = b4a_1.default.alloc(exports.TAR_BLOCK_BYTES);
61
+ const set = (offset, value) => {
62
+ header.set(value, offset);
63
+ };
64
+ set(0, b4a_1.default.from(name));
65
+ set(100, octal(exports.TAR_MODE, 6));
66
+ set(108, octal(exports.TAR_UID, 6));
67
+ set(116, octal(exports.TAR_GID, 6));
68
+ set(124, octal(fileSize, 11));
69
+ set(136, octal(exports.TAR_MTIME_MS / 1000, 11));
70
+ header[156] = 48;
71
+ set(257, b4a_1.default.from([0x75, 0x73, 0x74, 0x61, 0x72, 0]));
72
+ set(263, b4a_1.default.from('00'));
73
+ if (exports.TAR_UNAME)
74
+ set(265, b4a_1.default.from(exports.TAR_UNAME));
75
+ if (exports.TAR_GNAME)
76
+ set(297, b4a_1.default.from(exports.TAR_GNAME));
77
+ set(329, octal(0, 6));
78
+ set(337, octal(0, 6));
79
+ let checksum = 8 * 32;
80
+ for (let index = 0; index < 148; index++)
81
+ checksum += header[index];
82
+ for (let index = 156; index < exports.TAR_BLOCK_BYTES; index++)
83
+ checksum += header[index];
84
+ set(148, octal(checksum, 6));
85
+ return header;
86
+ }
87
+ //# sourceMappingURL=ustar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ustar.js","sourceRoot":"","sources":["../../src/tar-protocol/ustar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { ErrorCode } from './errors.js';
2
+ /**
3
+ * A byte buffer accepted by identity, transport, and file APIs. Values that
4
+ * represent keys, digests, or transfer IDs must be exactly 32 bytes.
5
+ */
6
+ export type Binary = Buffer;
7
+ /** Byte input accepted by APIs that normalize values to a b4a/Node Buffer. */
8
+ export type BinaryInput = Uint8Array;
9
+ /** A 32-byte seed used to derive a HyperDHT identity. */
10
+ export type Seed = Binary;
11
+ /** A 32-byte buffer or canonical lowercase 64-character hex seed string. */
12
+ export type SeedInput = BinaryInput | string;
13
+ /** A 32-byte HyperDHT public key. */
14
+ export type PublicKey = Binary;
15
+ /** A 32-byte public key accepted by identity, constructor, and allowlist APIs. */
16
+ export type PublicKeyInput = BinaryInput;
17
+ /** A SHA-256 digest. */
18
+ export type Digest = Binary;
19
+ /** A SHA-256-derived transfer identifier. */
20
+ export type TransferId = Binary;
21
+ export interface KeyPair {
22
+ publicKey: PublicKey;
23
+ secretKey: Binary;
24
+ }
25
+ export interface Logger {
26
+ info?(message: string, details?: Record<string, unknown>): void;
27
+ warn?(message: string, details?: Record<string, unknown>): void;
28
+ error?(message: string, details?: Record<string, unknown>): void;
29
+ }
30
+ export interface Scheduler {
31
+ setTimeout(callback: () => void, delay: number): unknown;
32
+ clearTimeout(handle: unknown): void;
33
+ }
34
+ export interface ServerScheduler extends Scheduler {
35
+ setInterval(callback: () => void, delay: number): unknown;
36
+ clearInterval(handle: unknown): void;
37
+ }
38
+ export interface Clock {
39
+ now(): number;
40
+ }
41
+ export interface FingerprintEvent {
42
+ /** First 12 lowercase hexadecimal characters of SHA-256(public key). */
43
+ fingerprint: string;
44
+ }
45
+ export interface AuthenticationEvent extends FingerprintEvent {
46
+ status: 'accepted' | 'rejected';
47
+ reason?: ErrorCode;
48
+ }
49
+ export interface TransferEvent {
50
+ /** A 12-character SHA-256 fingerprint of the transfer ID. */
51
+ transfer: string;
52
+ name: string;
53
+ size: number;
54
+ }
55
+ export interface TransferLifecycleEvent extends TransferEvent {
56
+ status: 'started' | 'succeeded' | 'failed';
57
+ reason?: string;
58
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare function isFixed32(value: unknown): value is Uint8Array;
2
+ export declare function assertFixed32(value: unknown, name: string): asserts value is Uint8Array;
3
+ export declare function assertSafeUint(value: unknown, name: string): asserts value is number;
4
+ export declare function assertPositiveSafeUint(value: unknown, name: string): asserts value is number;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFixed32 = isFixed32;
4
+ exports.assertFixed32 = assertFixed32;
5
+ exports.assertSafeUint = assertSafeUint;
6
+ exports.assertPositiveSafeUint = assertPositiveSafeUint;
7
+ const errors_js_1 = require("./errors.js");
8
+ function isFixed32(value) {
9
+ return value instanceof Uint8Array && value.byteLength === 32;
10
+ }
11
+ function assertFixed32(value, name) {
12
+ if (!isFixed32(value)) {
13
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, `Invalid ${name}`);
14
+ }
15
+ }
16
+ function assertSafeUint(value, name) {
17
+ if (typeof value !== 'number' || !Number.isSafeInteger(value) || value < 0) {
18
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, `Invalid ${name}`);
19
+ }
20
+ }
21
+ function assertPositiveSafeUint(value, name) {
22
+ if (typeof value !== 'number' || !Number.isSafeInteger(value) || value <= 0) {
23
+ throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, `Invalid ${name}`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAsD;AAEtD,mBAA0B,KAAc;IACtC,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,CAAA;AAC/D,CAAC;AAED,uBAA8B,KAAc,EAAE,IAAY;IACxD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,4BAAgB,CAAC,kBAAM,CAAC,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED,wBAA+B,KAAc,EAAE,IAAY;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,4BAAgB,CAAC,kBAAM,CAAC,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;AACH,CAAC;AAED,gCAAuC,KAAc,EAAE,IAAY;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5E,MAAM,IAAI,4BAAgB,CAAC,kBAAM,CAAC,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1 +1,101 @@
1
- {"name":"swarm-deploy","version":"0.0.0"}
1
+ {
2
+ "name": "swarm-deploy",
3
+ "version": "0.1.0",
4
+ "description": "Secure resumable artifact uploads over direct HyperDHT",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/tetherto/swarm-deploy.git"
8
+ },
9
+ "bugs": {
10
+ "url": "https://github.com/tetherto/swarm-deploy/issues"
11
+ },
12
+ "homepage": "https://github.com/tetherto/swarm-deploy#readme",
13
+ "engines": {
14
+ "node": ">=22 <25"
15
+ },
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "bin": {
19
+ "swarm-deploy": "dist/bin/swarm-deploy.js"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js",
25
+ "require": "./dist/index.js",
26
+ "default": "./dist/index.js"
27
+ }
28
+ },
29
+ "scripts": {
30
+ "format": "prettier . --write",
31
+ "format:check": "prettier . --check",
32
+ "lint": "prettier . --check && lunte src test && npm run test:types",
33
+ "build": "rm -rf dist && tsc -p tsconfig.json && chmod 755 dist/bin/swarm-deploy.js",
34
+ "build:test": "rm -rf .test-dist && tsc -p tsconfig.test.json",
35
+ "test:types": "tsc --ignoreConfig --noEmit --strict --module node16 --moduleResolution node16 --types node test/types/public-api.ts",
36
+ "test:node": "npm run build && npm run build:test && brittle-node .test-dist/run.js",
37
+ "test:bare": "npm run build && npm run build:test && brittle-bare .test-dist/run.js",
38
+ "test:property": "npm run build && npm run build:test && brittle-node .test-dist/unit/tar-property.test.js",
39
+ "test": "npm run build && npm run build:test && brittle-node .test-dist/run.js && brittle-bare .test-dist/run.js",
40
+ "test:package": "node scripts/package-smoke.mjs",
41
+ "test:release-tag": "node scripts/test-release-tag.mjs",
42
+ "validate:package": "node -e \"const a = require('node:assert/strict'); const f = require('node:fs'); const p = require('./package.json'); a.equal(p.name, 'swarm-deploy'); a.match(p.version, /^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)$/); a.equal(p.private, undefined); a.deepEqual(p.publishConfig, { access: 'public', provenance: true }); a.deepEqual(p.engines, { node: '>=22 <25' }); a.equal(p.repository.url, 'git+https://github.com/tetherto/swarm-deploy.git'); a.equal(p.scripts.prepare, undefined); for (const value of [p.main, p.types, ...Object.values(p.exports['.'])]) a.match(value, /^\\.\\/dist\\//); a.equal(p.bin['swarm-deploy'], 'dist/bin/swarm-deploy.js'); for (const file of [p.main, p.types, p.bin['swarm-deploy']]) a.ok(f.existsSync(file), file); f.accessSync(p.bin['swarm-deploy'], f.constants.X_OK)\"",
43
+ "prepack": "npm run build && npm run test:types && npm run validate:package"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public",
47
+ "provenance": true
48
+ },
49
+ "imports": {
50
+ "#events": {
51
+ "bare": "bare-events",
52
+ "default": "./dist/events-node.js"
53
+ },
54
+ "#fs": {
55
+ "bare": "bare-fs",
56
+ "default": "./dist/fs-node.js"
57
+ },
58
+ "#os": {
59
+ "bare": "bare-os",
60
+ "default": "./dist/os-node.js"
61
+ },
62
+ "#path": {
63
+ "bare": "bare-path",
64
+ "default": "./dist/path-node.js"
65
+ },
66
+ "#process": {
67
+ "bare": "bare-process",
68
+ "default": "./dist/process-node.js"
69
+ }
70
+ },
71
+ "files": [
72
+ "dist",
73
+ "CHANGELOG.md",
74
+ "README.md",
75
+ "RELEASING.md",
76
+ "LICENSE.md",
77
+ "NOTICE.md",
78
+ "SECURITY.md"
79
+ ],
80
+ "license": "Apache-2.0",
81
+ "dependencies": {
82
+ "b4a": "^1.8.1",
83
+ "bare-events": "^2.9.2",
84
+ "bare-fs": "^4.8.1",
85
+ "bare-os": "^3.9.3",
86
+ "bare-path": "^3.1.1",
87
+ "bare-process": "^4.5.1",
88
+ "hyperdht": "^6.33.2",
89
+ "sodium-native": "^5.1.0",
90
+ "tar-stream": "3.2.1"
91
+ },
92
+ "devDependencies": {
93
+ "@types/node": "^26.4.0",
94
+ "bare-runtime": "^1.31.0",
95
+ "brittle": "^4.1.0",
96
+ "lunte": "^1.8.4",
97
+ "prettier": "^3.9.6",
98
+ "prettier-config-holepunch": "^2.0.0",
99
+ "typescript": "^7.0.2"
100
+ }
101
+ }