toiljs 0.0.16 → 0.0.20

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 (100) hide show
  1. package/CHANGELOG.md +128 -0
  2. package/README.md +313 -128
  3. package/as-pect.config.js +1 -1
  4. package/build/backend/.tsbuildinfo +1 -1
  5. package/build/backend/index.d.ts +1 -0
  6. package/build/backend/index.js +20 -1
  7. package/build/cli/.tsbuildinfo +1 -1
  8. package/build/cli/index.js +1320 -697
  9. package/build/client/.tsbuildinfo +1 -1
  10. package/build/client/dev/devtools.js +42 -5
  11. package/build/client/errors.d.ts +1 -0
  12. package/build/client/errors.js +3 -0
  13. package/build/client/index.d.ts +2 -0
  14. package/build/client/index.js +2 -0
  15. package/build/client/rpc.d.ts +1 -0
  16. package/build/client/rpc.js +37 -0
  17. package/build/compiler/.tsbuildinfo +1 -1
  18. package/build/compiler/config.js +3 -1
  19. package/build/compiler/docs.js +69 -7
  20. package/build/compiler/generate.js +5 -4
  21. package/build/compiler/index.d.ts +1 -0
  22. package/build/compiler/index.js +30 -1
  23. package/build/compiler/plugin.js +80 -8
  24. package/build/compiler/seo.js +15 -1
  25. package/build/compiler/ssg.js +7 -1
  26. package/build/compiler/vite.js +25 -0
  27. package/build/io/.tsbuildinfo +1 -1
  28. package/build/io/codec.d.ts +54 -0
  29. package/build/io/codec.js +143 -0
  30. package/build/io/index.d.ts +1 -2
  31. package/build/io/index.js +1 -2
  32. package/eslint.config.js +1 -1
  33. package/examples/basic/client/routes/features/index.tsx +1 -1
  34. package/examples/basic/client/routes/io.tsx +6 -7
  35. package/examples/basic/client/routes/rest.tsx +84 -0
  36. package/examples/basic/client/routes/rpc.tsx +43 -0
  37. package/package.json +19 -7
  38. package/presets/prettier-plugin.js +51 -0
  39. package/presets/prettier.json +1 -0
  40. package/server/runtime/README.md +97 -0
  41. package/server/runtime/abort/abort.ts +27 -0
  42. package/server/runtime/env/Server.ts +61 -0
  43. package/server/runtime/envelope.ts +191 -0
  44. package/server/runtime/exports/index.ts +52 -0
  45. package/server/runtime/handlers/ToilHandler.ts +34 -0
  46. package/server/runtime/index.ts +26 -0
  47. package/server/runtime/lang/Potential.ts +5 -0
  48. package/server/runtime/memory.ts +81 -0
  49. package/server/runtime/request.ts +55 -0
  50. package/server/runtime/response.ts +86 -0
  51. package/server/runtime/rest/Rest.ts +39 -0
  52. package/server/runtime/rest/RestHandler.ts +20 -0
  53. package/server/runtime/rest/RouteContext.ts +82 -0
  54. package/server/runtime/rest/match.ts +48 -0
  55. package/server/runtime/tsconfig.json +7 -0
  56. package/src/backend/index.ts +45 -3
  57. package/src/cli/create.ts +16 -6
  58. package/src/cli/diagnostics.ts +81 -0
  59. package/src/cli/doctor.ts +384 -7
  60. package/src/cli/index.ts +11 -2
  61. package/src/client/dev/devtools.tsx +49 -4
  62. package/src/client/errors.ts +11 -0
  63. package/src/client/index.ts +2 -0
  64. package/src/client/rpc.ts +64 -0
  65. package/src/compiler/config.ts +3 -1
  66. package/src/compiler/docs.ts +69 -7
  67. package/src/compiler/generate.ts +6 -5
  68. package/src/compiler/index.ts +50 -1
  69. package/src/compiler/plugin.ts +99 -11
  70. package/src/compiler/seo.ts +23 -3
  71. package/src/compiler/ssg.ts +10 -1
  72. package/src/compiler/vite.ts +34 -0
  73. package/src/io/FastMap.ts +24 -0
  74. package/src/io/FastSet.ts +15 -1
  75. package/src/io/codec.ts +217 -0
  76. package/src/io/index.ts +1 -2
  77. package/src/io/types.ts +2 -1
  78. package/test/assembly/example.spec.ts +14 -4
  79. package/test/doctor.test.ts +65 -0
  80. package/test/errors.test.ts +21 -0
  81. package/test/io.test.ts +65 -41
  82. package/test/prettier-plugin.test.ts +46 -0
  83. package/test/rpc.test.ts +50 -0
  84. package/tests/data-parity/generated-parity.ts +99 -0
  85. package/tests/data-parity/parity.ts +80 -0
  86. package/tests/data-parity/spec.ts +46 -0
  87. package/tsconfig.json +1 -1
  88. package/tsconfig.server.json +1 -1
  89. package/build/io/BinaryReader.d.ts +0 -44
  90. package/build/io/BinaryReader.js +0 -244
  91. package/build/io/BinaryWriter.d.ts +0 -44
  92. package/build/io/BinaryWriter.js +0 -297
  93. package/build/server/release.wasm +0 -0
  94. package/build/server/release.wat +0 -9
  95. package/src/io/BinaryReader.ts +0 -340
  96. package/src/io/BinaryWriter.ts +0 -385
  97. package/src/server/index.ts +0 -10
  98. package/src/server/main.ts +0 -13
  99. package/src/server/tsconfig.json +0 -4
  100. package/toilconfig.json +0 -30
@@ -1,4 +1,6 @@
1
+ import { spawn } from 'node:child_process';
1
2
  import fs from 'node:fs';
3
+ import { createRequire } from 'node:module';
2
4
  import path from 'node:path';
3
5
  import { build as viteBuild, createServer } from 'vite';
4
6
  import { startBackend } from 'toiljs/backend';
@@ -6,8 +8,34 @@ import { loadConfig } from './config.js';
6
8
  import { generate } from './generate.js';
7
9
  import { prerenderStaticParams } from './ssg.js';
8
10
  import { createViteConfig } from './vite.js';
11
+ async function buildServer(root) {
12
+ if (!fs.existsSync(path.join(root, 'toilconfig.json')))
13
+ return;
14
+ const require = createRequire(path.join(root, 'package.json'));
15
+ let binJs;
16
+ try {
17
+ const pkgPath = require.resolve('toilscript/package.json');
18
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
19
+ const binRel = typeof pkg.bin === 'string' ? pkg.bin : pkg.bin?.toilscript;
20
+ if (!binRel)
21
+ throw new Error('toilscript declares no bin');
22
+ binJs = path.join(path.dirname(pkgPath), binRel);
23
+ }
24
+ catch {
25
+ throw new Error("toiljs: this project has a server target (toilconfig.json) but 'toilscript' is not " +
26
+ 'installed. Run `npm i -D toilscript`, or remove toilconfig.json for a client-only build.');
27
+ }
28
+ await new Promise((resolve, reject) => {
29
+ const child = spawn(process.execPath, [binJs, '--target', 'release', '--rpcModule', 'shared/server.ts'], { cwd: root, stdio: 'inherit' });
30
+ child.on('error', reject);
31
+ child.on('close', (code) => code === 0
32
+ ? resolve()
33
+ : reject(new Error(`toilscript server build failed (exit ${String(code)})`)));
34
+ });
35
+ }
9
36
  export async function dev(opts = {}) {
10
37
  const cfg = await loadConfig(opts);
38
+ await buildServer(cfg.root);
11
39
  generate(cfg);
12
40
  const server = await createServer(await createViteConfig(cfg));
13
41
  await server.listen();
@@ -16,6 +44,7 @@ export async function dev(opts = {}) {
16
44
  }
17
45
  export async function build(opts = {}) {
18
46
  const cfg = await loadConfig(opts);
47
+ await buildServer(cfg.root);
19
48
  generate(cfg);
20
49
  await viteBuild(await createViteConfig(cfg));
21
50
  await prerenderStaticParams(cfg);
@@ -26,7 +55,7 @@ export async function start(opts = {}) {
26
55
  if (!fs.existsSync(path.join(outDir, 'index.html'))) {
27
56
  throw new Error(`No build found in ${outDir}. Run \`toiljs build\` first.`);
28
57
  }
29
- return startBackend({ root: outDir, port: cfg.port });
58
+ return startBackend({ root: outDir, port: cfg.port, host: opts.host });
30
59
  }
31
60
  export { defineConfig, loadConfig, AiProvider } from './config.js';
32
61
  export { scanRoutes } from './routes.js';
@@ -93,6 +93,26 @@ function devInfo(cfg, port) {
93
93
  ai: cfg.devtoolsAi !== null,
94
94
  };
95
95
  }
96
+ function safeProjectPath(cfg, file) {
97
+ if (!file)
98
+ return null;
99
+ const root = cfg.root;
100
+ const inside = (p) => p === root || p.startsWith(root + path.sep);
101
+ const abs = path.resolve(file);
102
+ if (!inside(abs) || !fs.existsSync(abs))
103
+ return null;
104
+ try {
105
+ const real = fs.realpathSync(abs);
106
+ return inside(real) ? real : null;
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ }
112
+ function isCrossSiteRequest(headers) {
113
+ const site = headers['sec-fetch-site'];
114
+ return site !== undefined && site !== 'same-origin' && site !== 'none';
115
+ }
96
116
  function openInEditor(file) {
97
117
  try {
98
118
  const editor = process.env.EDITOR ?? process.env.VISUAL;
@@ -125,12 +145,22 @@ export function toilPlugin(cfg) {
125
145
  return null;
126
146
  },
127
147
  configureServer(server) {
128
- server.middlewares.use('/__toil/devinfo', (_req, res) => {
148
+ server.middlewares.use('/__toil/devinfo', (req, res) => {
149
+ if (isCrossSiteRequest(req.headers)) {
150
+ res.statusCode = 403;
151
+ res.end();
152
+ return;
153
+ }
129
154
  const port = server.config.server.port ?? cfg.port;
130
155
  res.setHeader('content-type', 'application/json');
131
156
  res.end(JSON.stringify(devInfo(cfg, port)));
132
157
  });
133
158
  server.middlewares.use('/__toil/ai', (req, res) => {
159
+ if (isCrossSiteRequest(req.headers)) {
160
+ res.statusCode = 403;
161
+ res.end();
162
+ return;
163
+ }
134
164
  if (req.method !== 'POST') {
135
165
  res.statusCode = 405;
136
166
  res.end();
@@ -143,29 +173,48 @@ export function toilPlugin(cfg) {
143
173
  return;
144
174
  }
145
175
  let body = '';
146
- req.on('data', (chunk) => (body += String(chunk)));
176
+ let aborted = false;
177
+ req.on('data', (chunk) => {
178
+ if (aborted)
179
+ return;
180
+ body += String(chunk);
181
+ if (body.length > 100_000) {
182
+ aborted = true;
183
+ res.statusCode = 413;
184
+ res.end();
185
+ req.destroy();
186
+ }
187
+ });
147
188
  req.on('end', () => {
189
+ if (aborted)
190
+ return;
148
191
  void (async () => {
149
192
  try {
150
- const { prompt } = JSON.parse(body || '{}');
151
- const text = await aiComplete(ai, prompt ?? '');
193
+ const parsed = JSON.parse(body || '{}');
194
+ const prompt = typeof parsed.prompt === 'string' ? parsed.prompt.slice(0, 16000) : '';
195
+ const text = await aiComplete(ai, prompt);
152
196
  res.setHeader('content-type', 'application/json');
153
197
  res.end(JSON.stringify({ text }));
154
198
  }
155
199
  catch (e) {
200
+ process.stderr.write(`toil: /__toil/ai failed: ${e instanceof Error ? e.message : String(e)}\n`);
156
201
  res.statusCode = 500;
157
202
  res.setHeader('content-type', 'application/json');
158
- res.end(JSON.stringify({ error: e instanceof Error ? e.message : String(e) }));
203
+ res.end(JSON.stringify({ error: 'AI request failed (see dev server logs).' }));
159
204
  }
160
205
  })();
161
206
  });
162
207
  });
163
208
  server.middlewares.use('/__toil/open', (req, res) => {
164
209
  try {
210
+ if (isCrossSiteRequest(req.headers)) {
211
+ res.statusCode = 403;
212
+ res.end();
213
+ return;
214
+ }
165
215
  const url = new URL(req.url ?? '', 'http://localhost');
166
- const file = url.searchParams.get('file');
167
- const abs = file ? path.resolve(file) : '';
168
- if (abs && abs.startsWith(cfg.root) && fs.existsSync(abs))
216
+ const abs = safeProjectPath(cfg, url.searchParams.get('file'));
217
+ if (abs)
169
218
  openInEditor(abs);
170
219
  res.statusCode = 204;
171
220
  res.end();
@@ -175,6 +224,29 @@ export function toilPlugin(cfg) {
175
224
  res.end();
176
225
  }
177
226
  });
227
+ server.middlewares.use('/__toil/source', (req, res) => {
228
+ try {
229
+ if (isCrossSiteRequest(req.headers)) {
230
+ res.statusCode = 403;
231
+ res.end();
232
+ return;
233
+ }
234
+ const url = new URL(req.url ?? '', 'http://localhost');
235
+ const abs = safeProjectPath(cfg, url.searchParams.get('file'));
236
+ if (!abs) {
237
+ res.statusCode = 404;
238
+ res.end();
239
+ return;
240
+ }
241
+ const text = fs.readFileSync(abs, 'utf8').slice(0, 20000);
242
+ res.setHeader('content-type', 'text/plain; charset=utf-8');
243
+ res.end(text);
244
+ }
245
+ catch {
246
+ res.statusCode = 400;
247
+ res.end();
248
+ }
249
+ });
178
250
  const routesPrefix = cfg.routesAbsDir.replace(/\\/g, '/').replace(/\/?$/, '/');
179
251
  const onChange = (file) => {
180
252
  if (file.replace(/\\/g, '/').startsWith(routesPrefix)) {
@@ -24,6 +24,15 @@ function escapeAttr(value) {
24
24
  export function escapeHtml(value) {
25
25
  return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
26
26
  }
27
+ function escapeMarkdownInline(value) {
28
+ return value
29
+ .replace(/[\r\n\t\f\v]+/g, ' ')
30
+ .replace(/[\\[\]()<>`]/g, (c) => `\\${c}`)
31
+ .trim();
32
+ }
33
+ function escapeMarkdownUrl(value) {
34
+ return value.replace(/\s+/g, '').replace(/[()<>]/g, encodeURIComponent);
35
+ }
27
36
  function escapeJsonForScript(value) {
28
37
  return JSON.stringify(value)
29
38
  .replace(/</g, '\\u003c')
@@ -223,7 +232,12 @@ export function llmsTxt(seo, routes, pages) {
223
232
  if (resolvedPages.length) {
224
233
  out.push('\n## Pages\n');
225
234
  for (const page of resolvedPages) {
226
- out.push(`- [${page.title}](${page.url})${page.description !== undefined ? `: ${page.description}` : ''}`);
235
+ const title = escapeMarkdownInline(page.title);
236
+ const url = escapeMarkdownUrl(page.url);
237
+ const desc = page.description !== undefined
238
+ ? `: ${escapeMarkdownInline(page.description)}`
239
+ : '';
240
+ out.push(`- [${title}](${url})${desc}`);
227
241
  }
228
242
  }
229
243
  return out.join('\n') + '\n';
@@ -60,6 +60,13 @@ export async function prerenderStaticParams(cfg) {
60
60
  const paramSets = await mod.generateStaticParams();
61
61
  for (const params of paramSets) {
62
62
  const url = fillPattern(route.pattern, params);
63
+ const target = path.join(outDir, url.replace(/^\//, ''), 'index.html');
64
+ const outRoot = path.resolve(outDir);
65
+ const absTarget = path.resolve(target);
66
+ if (absTarget !== outRoot && !absTarget.startsWith(outRoot + path.sep)) {
67
+ warn(`skipped ${route.pattern}: params escape outDir (${url})`);
68
+ continue;
69
+ }
63
70
  let metadata = null;
64
71
  try {
65
72
  if (typeof mod.generateMetadata === 'function') {
@@ -77,7 +84,6 @@ export async function prerenderStaticParams(cfg) {
77
84
  warn(`metadata failed for ${url} (${err instanceof Error ? err.message : String(err)})`);
78
85
  }
79
86
  const html = injectSeoHtml(shell, routeSeo(cfg.seo, metadata, url));
80
- const target = path.join(outDir, url.replace(/^\//, ''), 'index.html');
81
87
  fs.mkdirSync(path.dirname(target), { recursive: true });
82
88
  fs.writeFileSync(target, html);
83
89
  generated.push(url);
@@ -1,3 +1,4 @@
1
+ import fs from 'node:fs';
1
2
  import { createRequire } from 'node:module';
2
3
  import path from 'node:path';
3
4
  import { pathToFileURL } from 'node:url';
@@ -17,6 +18,29 @@ const polyfillShimAliases = {
17
18
  };
18
19
  const IMAGE_EXT = /^(png|jpe?g|svg|gif|tiff|bmp|ico|webp|avif)$/i;
19
20
  const FONT_EXT = /^(woff|woff2|eot|ttf|otf)$/i;
21
+ function sharedResolverPlugin(cfg) {
22
+ const sharedDir = path.join(cfg.root, 'shared');
23
+ return {
24
+ name: 'toiljs:shared-resolver',
25
+ enforce: 'pre',
26
+ resolveId(source) {
27
+ if (source !== 'shared' && !source.startsWith('shared/'))
28
+ return null;
29
+ const rel = source === 'shared' ? 'index' : source.slice('shared/'.length);
30
+ for (const ext of ['', '.ts', '.tsx', '.js', '.jsx', '.mjs']) {
31
+ const candidate = path.join(sharedDir, rel + ext);
32
+ if (fs.existsSync(candidate))
33
+ return candidate;
34
+ }
35
+ if (source === 'shared/server') {
36
+ throw new Error('toiljs: "shared/server" is generated by the server build but is missing. ' +
37
+ 'Run the server build first (it emits shared/server.ts from your @data/@remote code): ' +
38
+ '`npm run build:server` (toilscript --target release --rpcModule shared/server.ts).');
39
+ }
40
+ return null;
41
+ },
42
+ };
43
+ }
20
44
  function assetFileName(name) {
21
45
  const ext = name.split('.').pop() ?? '';
22
46
  if (IMAGE_EXT.test(ext))
@@ -67,6 +91,7 @@ export async function createViteConfig(cfg) {
67
91
  cfg.fonts ? fontPreloadPlugin(cfg) : undefined,
68
92
  nodePolyfills({ globals: { Buffer: true, global: true, process: true } }),
69
93
  react(),
94
+ sharedResolverPlugin(cfg),
70
95
  toilPlugin(cfg),
71
96
  ],
72
97
  resolve: {
@@ -1 +1 @@
1
- {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../node_modules/typescript/lib/lib.webworker.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.webworker.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/io/lengths.ts","../../src/io/types.ts","../../src/io/BinaryReader.ts","../../src/io/BinaryWriter.ts","../../src/io/FastMap.ts","../../src/io/FastSet.ts","../../src/io/index.ts"],"fileIdsList":[[94,95],[94,95,96],[98],[95,96,97,98,99]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"d52ed68e7eb5881768a55713c9b5c7c443e6b46de15c04e348928b8efd20b110","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"0c4bac17cf8fa8f3d7a210ced552058c2aa9cd3304c89fefea4aa8807ee841f4","signature":"c1631eafa81ab01bbddca5005243f1d9b5110681fa30a78564ad51637a9f310e"},{"version":"406d821c8a4199d1b006838b505ef0c670da312e4660fb89816a8c09ebe0e0f5","signature":"3952955b5e83c1164fc78d7d54377fd4d09d2c11b79763cba53a7ff4b27a0601"},{"version":"aff17b847a3916bcba851f2e53d29b329f4d0f2658b5c03fa4f09b62de4c7554","signature":"529676293331eca1546bbc3d9cbf150d0abd654bb9f4296fc8c2b0f60ec51cef"},{"version":"b2bcbd21580ac4095487ea3d320e3fae9e499e25172db9b445a8c53e38471d10","signature":"e3fdcbd5d7deb1a9db8047c3217eb4c6e345eb34f0f10d81d66915c85c411626"},{"version":"d4ba42f35930d0d5861968eebdba2adb4d060a64f7147b6ce6ee83f35eea7ed1","signature":"6a4c287c863003342a42d8bf876c7df4c2e82e95f556af5ade71f05255845200"},{"version":"1e25318dfeade551d62b761979c7b81f1c426140ff69bcd59db0b89ffe796824","signature":"272e7bc3a3734cc9e7419625f04cff7095131e315e51a83fa992a5134763df49"},{"version":"26458e4e4f78d37a69265801751f29270504588957691799ab50dd5c45a85a9d","signature":"f4df992d7dc51db25da97e854a066261495813fa9b7ce0c1a77136302093f1a7"}],"root":[[94,100]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/io","skipLibCheck":true,"sourceMap":false,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"suppressImplicitAnyIndexErrors":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[96,1],[97,2],[99,3],[100,4]],"version":"6.0.3"}
1
+ {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.es2024.d.ts","../../node_modules/typescript/lib/lib.es2025.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../node_modules/typescript/lib/lib.webworker.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.webworker.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../node_modules/typescript/lib/lib.es2025.collection.d.ts","../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../node_modules/typescript/lib/lib.es2025.intl.d.ts","../../node_modules/typescript/lib/lib.es2025.iterator.d.ts","../../node_modules/typescript/lib/lib.es2025.promise.d.ts","../../node_modules/typescript/lib/lib.es2025.regexp.d.ts","../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../node_modules/typescript/lib/lib.esnext.date.d.ts","../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../node_modules/typescript/lib/lib.esnext.error.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.esnext.temporal.d.ts","../../node_modules/typescript/lib/lib.esnext.typedarrays.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../src/io/FastMap.ts","../../src/io/FastSet.ts","../../src/io/codec.ts","../../src/io/types.ts","../../src/io/index.ts","../../src/io/lengths.ts"],"fileIdsList":[[94],[94,95,96,97]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"1e9332c23e9a907175e0ffc6a49e236f97b48838cc8aec9ce7e4cec21e544b65","impliedFormat":1},{"version":"3753fbc1113dc511214802a2342280a8b284ab9094f6420e7aa171e868679f91","impliedFormat":1},{"version":"999ca32883495a866aa5737fe1babc764a469e4cde6ee6b136a4b9ae68853e4b","impliedFormat":1},{"version":"17f13ecb98cbc39243f2eee1f16d45cd8ec4706b03ee314f1915f1a8b42f6984","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"d52ed68e7eb5881768a55713c9b5c7c443e6b46de15c04e348928b8efd20b110","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a2de5b9459b3fc44decd9ce6100b72f1b002ef523126c1d3d8b2a4a63d74d78","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"0bd714129fca875f7d4c477a1a392200b0bcd13fb2e80928cd334b63830ea047","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2c9037ae6cd2c52d80ceef0b3c5ffdb488627d71529cf4f63776daf11161c9a","affectsGlobalScope":true,"impliedFormat":1},{"version":"135d5cf4d345f59f1a9caadfafcd858d3d9cc68290db616cc85797224448cccc","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc238c3f81c2984751932b6aab223cd5b830e0ac6cad76389e5e9d2ffc03287d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a07f9b76d361f572620927e5735b77d6d2101c23cdd94383eb5b706e7b36357","affectsGlobalScope":true,"impliedFormat":1},{"version":"7c4e8dc6ab834cc6baa0227e030606d29e3e8449a9f67cdf5605ea5493c4db29","affectsGlobalScope":true,"impliedFormat":1},{"version":"de7ba0fd02e06cd9a5bd4ab441ed0e122735786e67dde1e849cced1cd8b46b78","affectsGlobalScope":true,"impliedFormat":1},{"version":"6148e4e88d720a06855071c3db02069434142a8332cf9c182cda551adedf3156","affectsGlobalScope":true,"impliedFormat":1},{"version":"d63dba625b108316a40c95a4425f8d4294e0deeccfd6c7e59d819efa19e23409","affectsGlobalScope":true,"impliedFormat":1},{"version":"0568d6befee03dd435bed4fc25c4e46865b24bdcb8c563fdc21f580a2c301904","affectsGlobalScope":true,"impliedFormat":1},{"version":"30d62269b05b584741f19a5369852d5d34895aa2ac4fd948956f886d15f9cc0d","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"ffbe6d7b295306b2ba88030f65b74c107d8d99bdcf596ea99c62a02f606108b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"996fb27b15277369c68a4ba46ed138b4e9e839a02fb4ec756f7997629242fd9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"79b712591b270d4778c89706ca2cfc56ddb8c3f895840e477388f1710dc5eda9","affectsGlobalScope":true,"impliedFormat":1},{"version":"20884846cef428b992b9bd032e70a4ef88e349263f63aeddf04dda837a7dba26","affectsGlobalScope":true,"impliedFormat":1},{"version":"5fcab789c73a97cd43828ee3cc94a61264cf24d4c44472ce64ced0e0f148bdb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"db59a81f070c1880ad645b2c0275022baa6a0c4f0acdc58d29d349c6efcf0903","affectsGlobalScope":true,"impliedFormat":1},{"version":"673294292640f5722b700e7d814e17aaf7d93f83a48a2c9b38f33cbc940ad8b0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d786b48f934cbca483b3c6d0a798cb43bbb4ada283e76fb22c28e53ae05b9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"142efd4ce210576f777dc34df121777be89eda476942d6d6663b03dcb53be3ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"379bc41580c2d774f82e828c70308f24a005b490c25ba34d679d84bcf05c3d9d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ed484fb2aa8a1a23d0277056ec3336e0a0b52f9b8d6a961f338a642faf43235d","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ffedae1d1c2d53fdbca1c96d3c7dda544281f7d262f99b6880634f8fd8d9820","affectsGlobalScope":true,"impliedFormat":1},{"version":"83a730b125d477dd264df8ba479afab27a3dae7152b005c214ab94dc7ee44fd3","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"5b2a4e30698cf563707a5180e8385abe9b66bc47527b1c367550156c461a9a50","signature":"6a4c287c863003342a42d8bf876c7df4c2e82e95f556af5ade71f05255845200"},{"version":"e343f9744a8f2af61013fe28d816e9a87e22021f229f8f38b7c536bf744f9d41","signature":"272e7bc3a3734cc9e7419625f04cff7095131e315e51a83fa992a5134763df49"},{"version":"539953abda175f867ded1966e1de51013baf1a770c9d30a890900e897253e5b2","signature":"3d3b6bfa91e694cd37db4984fc7c693856da116604cc92f56a5573d0028a3968"},{"version":"ae4c9fffb9d6bff06cc5bd31285ad95ba0c5665436338a016e8e232d1a1b994a","signature":"3952955b5e83c1164fc78d7d54377fd4d09d2c11b79763cba53a7ff4b27a0601"},{"version":"8837ae5eb915aa1eb59dc7f608e02b8bae62e0f465ad689bffdf78d68f143d4c","signature":"48d0d0bebe2ccfd875953713d746fe4adae81b1e3a91ffafae29ead23fd5c39b"},{"version":"0c4bac17cf8fa8f3d7a210ced552058c2aa9cd3304c89fefea4aa8807ee841f4","signature":"c1631eafa81ab01bbddca5005243f1d9b5110681fa30a78564ad51637a9f310e"}],"root":[[94,99]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"alwaysStrict":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"module":99,"noImplicitAny":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"../../src/io","skipLibCheck":true,"sourceMap":false,"strict":true,"strictBindCallApply":true,"strictFunctionTypes":true,"strictNullChecks":true,"strictPropertyInitialization":true,"suppressImplicitAnyIndexErrors":false,"target":99,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[95,1],[98,2]],"version":"6.0.3"}
@@ -0,0 +1,54 @@
1
+ export declare class DataWriter {
2
+ private buf;
3
+ private view;
4
+ private off;
5
+ constructor(capacity?: number);
6
+ private reserve;
7
+ writeU8(v: number): this;
8
+ writeU16(v: number, be?: boolean): this;
9
+ writeU32(v: number, be?: boolean): this;
10
+ writeU64(v: bigint, be?: boolean): this;
11
+ writeI8(v: number): this;
12
+ writeI16(v: number, be?: boolean): this;
13
+ writeI32(v: number, be?: boolean): this;
14
+ writeI64(v: bigint, be?: boolean): this;
15
+ writeF32(v: number, be?: boolean): this;
16
+ writeF64(v: number, be?: boolean): this;
17
+ writeBool(v: boolean): this;
18
+ private writeLimbs;
19
+ writeBytes(bytes: Uint8Array, be?: boolean): this;
20
+ writeString(value: string, be?: boolean): this;
21
+ writeU128(v: bigint, be?: boolean): this;
22
+ writeI128(v: bigint, be?: boolean): this;
23
+ writeU256(v: bigint, be?: boolean): this;
24
+ writeI256(v: bigint, be?: boolean): this;
25
+ length(): number;
26
+ toBytes(): Uint8Array;
27
+ }
28
+ export declare class DataReader {
29
+ private buf;
30
+ private view;
31
+ private off;
32
+ ok: boolean;
33
+ constructor(bytes: Uint8Array);
34
+ private has;
35
+ readU8(): number;
36
+ readU16(be?: boolean): number;
37
+ readU32(be?: boolean): number;
38
+ readU64(be?: boolean): bigint;
39
+ readI8(): number;
40
+ readI16(be?: boolean): number;
41
+ readI32(be?: boolean): number;
42
+ readI64(be?: boolean): bigint;
43
+ readF32(be?: boolean): number;
44
+ readF64(be?: boolean): number;
45
+ readBool(): boolean;
46
+ private readLimbs;
47
+ readBytes(be?: boolean): Uint8Array;
48
+ readString(be?: boolean): string;
49
+ readU128(be?: boolean): bigint;
50
+ readI128(be?: boolean): bigint;
51
+ readU256(be?: boolean): bigint;
52
+ readI256(be?: boolean): bigint;
53
+ remaining(): number;
54
+ }
@@ -0,0 +1,143 @@
1
+ const MASK64 = 0xffffffffffffffffn;
2
+ const utf8Encoder = new TextEncoder();
3
+ const utf8Decoder = new TextDecoder();
4
+ export class DataWriter {
5
+ buf;
6
+ view;
7
+ off = 0;
8
+ constructor(capacity = 64) {
9
+ this.buf = new Uint8Array(capacity > 0 ? capacity : 1);
10
+ this.view = new DataView(this.buf.buffer);
11
+ }
12
+ reserve(extra) {
13
+ const need = this.off + extra;
14
+ if (need > this.buf.length) {
15
+ let n = this.buf.length;
16
+ while (n < need)
17
+ n <<= 1;
18
+ const bigger = new Uint8Array(n);
19
+ bigger.set(this.buf.subarray(0, this.off));
20
+ this.buf = bigger;
21
+ this.view = new DataView(this.buf.buffer);
22
+ }
23
+ const at = this.off;
24
+ this.off += extra;
25
+ return at;
26
+ }
27
+ writeU8(v) { const at = this.reserve(1); this.view.setUint8(at, v & 0xff); return this; }
28
+ writeU16(v, be) { const at = this.reserve(2); this.view.setUint16(at, v & 0xffff, !be); return this; }
29
+ writeU32(v, be) { const at = this.reserve(4); this.view.setUint32(at, v >>> 0, !be); return this; }
30
+ writeU64(v, be) { const at = this.reserve(8); this.view.setBigUint64(at, v & MASK64, !be); return this; }
31
+ writeI8(v) { const at = this.reserve(1); this.view.setInt8(at, v); return this; }
32
+ writeI16(v, be) { const at = this.reserve(2); this.view.setInt16(at, v, !be); return this; }
33
+ writeI32(v, be) { const at = this.reserve(4); this.view.setInt32(at, v | 0, !be); return this; }
34
+ writeI64(v, be) { const at = this.reserve(8); this.view.setBigInt64(at, BigInt.asIntN(64, v), !be); return this; }
35
+ writeF32(v, be) { const at = this.reserve(4); this.view.setFloat32(at, v, !be); return this; }
36
+ writeF64(v, be) { const at = this.reserve(8); this.view.setFloat64(at, v, !be); return this; }
37
+ writeBool(v) { return this.writeU8(v ? 1 : 0); }
38
+ writeLimbs(u, count, be) {
39
+ if (be) {
40
+ for (let i = count - 1; i >= 0; i--)
41
+ this.writeU64((u >> BigInt(i * 64)) & MASK64, true);
42
+ }
43
+ else {
44
+ for (let i = 0; i < count; i++)
45
+ this.writeU64((u >> BigInt(i * 64)) & MASK64, false);
46
+ }
47
+ return this;
48
+ }
49
+ writeBytes(bytes, be) {
50
+ this.writeU32(bytes.length, be);
51
+ if (bytes.length) {
52
+ const at = this.reserve(bytes.length);
53
+ this.buf.set(bytes, at);
54
+ }
55
+ return this;
56
+ }
57
+ writeString(value, be) {
58
+ const utf8 = utf8Encoder.encode(value);
59
+ this.writeU32(utf8.length, be);
60
+ if (utf8.length) {
61
+ const at = this.reserve(utf8.length);
62
+ this.buf.set(utf8, at);
63
+ }
64
+ return this;
65
+ }
66
+ writeU128(v, be) { return this.writeLimbs(BigInt.asUintN(128, v), 2, !!be); }
67
+ writeI128(v, be) { return this.writeLimbs(BigInt.asUintN(128, v), 2, !!be); }
68
+ writeU256(v, be) { return this.writeLimbs(BigInt.asUintN(256, v), 4, !!be); }
69
+ writeI256(v, be) { return this.writeLimbs(BigInt.asUintN(256, v), 4, !!be); }
70
+ length() { return this.off; }
71
+ toBytes() { return this.buf.slice(0, this.off); }
72
+ }
73
+ export class DataReader {
74
+ buf;
75
+ view;
76
+ off = 0;
77
+ ok = true;
78
+ constructor(bytes) {
79
+ this.buf = bytes;
80
+ this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
81
+ }
82
+ has(n) {
83
+ if (n < 0 || this.off + n > this.buf.length) {
84
+ this.ok = false;
85
+ return false;
86
+ }
87
+ return true;
88
+ }
89
+ readU8() { if (!this.has(1))
90
+ return 0; const v = this.view.getUint8(this.off); this.off += 1; return v; }
91
+ readU16(be) { if (!this.has(2))
92
+ return 0; const v = this.view.getUint16(this.off, !be); this.off += 2; return v; }
93
+ readU32(be) { if (!this.has(4))
94
+ return 0; const v = this.view.getUint32(this.off, !be); this.off += 4; return v >>> 0; }
95
+ readU64(be) { if (!this.has(8))
96
+ return 0n; const v = this.view.getBigUint64(this.off, !be); this.off += 8; return v; }
97
+ readI8() { if (!this.has(1))
98
+ return 0; const v = this.view.getInt8(this.off); this.off += 1; return v; }
99
+ readI16(be) { if (!this.has(2))
100
+ return 0; const v = this.view.getInt16(this.off, !be); this.off += 2; return v; }
101
+ readI32(be) { if (!this.has(4))
102
+ return 0; const v = this.view.getInt32(this.off, !be); this.off += 4; return v; }
103
+ readI64(be) { if (!this.has(8))
104
+ return 0n; const v = this.view.getBigInt64(this.off, !be); this.off += 8; return v; }
105
+ readF32(be) { if (!this.has(4))
106
+ return 0; const v = this.view.getFloat32(this.off, !be); this.off += 4; return v; }
107
+ readF64(be) { if (!this.has(8))
108
+ return 0; const v = this.view.getFloat64(this.off, !be); this.off += 8; return v; }
109
+ readBool() { return this.readU8() !== 0; }
110
+ readLimbs(count, be) {
111
+ let result = 0n;
112
+ if (be) {
113
+ for (let i = count - 1; i >= 0; i--)
114
+ result |= this.readU64(true) << BigInt(i * 64);
115
+ }
116
+ else {
117
+ for (let i = 0; i < count; i++)
118
+ result |= this.readU64(false) << BigInt(i * 64);
119
+ }
120
+ return result;
121
+ }
122
+ readBytes(be) {
123
+ const len = this.readU32(be);
124
+ if (!this.has(len))
125
+ return new Uint8Array(0);
126
+ const out = this.buf.slice(this.off, this.off + len);
127
+ this.off += len;
128
+ return out;
129
+ }
130
+ readString(be) {
131
+ const len = this.readU32(be);
132
+ if (!this.has(len))
133
+ return "";
134
+ const s = utf8Decoder.decode(this.buf.subarray(this.off, this.off + len));
135
+ this.off += len;
136
+ return s;
137
+ }
138
+ readU128(be) { return this.readLimbs(2, !!be); }
139
+ readI128(be) { return BigInt.asIntN(128, this.readLimbs(2, !!be)); }
140
+ readU256(be) { return this.readLimbs(4, !!be); }
141
+ readI256(be) { return BigInt.asIntN(256, this.readLimbs(4, !!be)); }
142
+ remaining() { return this.buf.length - this.off; }
143
+ }
@@ -1,6 +1,5 @@
1
- export { BinaryWriter } from './BinaryWriter.js';
2
- export { BinaryReader } from './BinaryReader.js';
3
1
  export { FastMap } from './FastMap.js';
4
2
  export { FastSet } from './FastSet.js';
3
+ export { DataWriter, DataReader } from './codec.js';
5
4
  export type { PropertyExtendedKey, FastRecord, IndexKey } from './FastMap.js';
6
5
  export type { i8, i16, i32, i64, u8, u16, u32, u64, Selector, BufferLike } from './types.js';
package/build/io/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export { BinaryWriter } from './BinaryWriter.js';
2
- export { BinaryReader } from './BinaryReader.js';
3
1
  export { FastMap } from './FastMap.js';
4
2
  export { FastSet } from './FastSet.js';
3
+ export { DataWriter, DataReader } from './codec.js';
package/eslint.config.js CHANGED
@@ -5,7 +5,7 @@ import tseslint from 'typescript-eslint';
5
5
 
6
6
  export default tseslint.config(
7
7
  // toilscript server (WASM) + its ambient std + build output are not part of the TS project.
8
- { ignores: ['build/**', 'src/server/**', 'std/server/**', 'toil-env.d.ts'] },
8
+ { ignores: ['build/**', 'server/**', 'std/server/**', 'toil-env.d.ts'] },
9
9
  eslint.configs.recommended,
10
10
  ...tseslint.configs.strictTypeChecked,
11
11
  {
@@ -47,7 +47,7 @@ const groups: { heading: string; items: { href: Toil.Href; label: string; note:
47
47
  items: [
48
48
  { href: '/features/script', label: 'Script', note: 'Toil.Script with a load strategy' },
49
49
  { href: '/features/realtime', label: 'WebSocket channel', note: 'Toil.useChannel against /_toil' },
50
- { href: '/io', label: 'Binary IO', note: 'BinaryWriter / BinaryReader / FastSet, no import' }
50
+ { href: '/io', label: 'Binary IO', note: 'DataWriter / DataReader / FastSet, no import' }
51
51
  ]
52
52
  }
53
53
  ];