@warmhub/sdk-ts 0.139.0 → 0.141.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.
- package/CHANGELOG.md +463 -0
- package/README.md +72 -26
- package/changelog.json +31 -0
- package/dist/checkpoint.js +1 -1
- package/dist/checkpoint.js.map +1 -1
- package/dist/chunk-6QNGVCSD.js +10 -0
- package/dist/chunk-6QNGVCSD.js.map +1 -0
- package/dist/{chunk-F2BL6MQQ.js → chunk-AO5UO4EW.js} +19 -19
- package/dist/chunk-AO5UO4EW.js.map +1 -0
- package/dist/index.d.ts +1954 -1713
- package/dist/index.js +1 -1
- package/dist/react.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-F2BL6MQQ.js.map +0 -1
- package/dist/chunk-V336X6J2.js +0 -10
- package/dist/chunk-V336X6J2.js.map +0 -1
package/changelog.json
CHANGED
|
@@ -150,6 +150,37 @@
|
|
|
150
150
|
"version": "0.139.0",
|
|
151
151
|
"sourceSha": "01575d928d1214ed8556301179ef2a4509c28383",
|
|
152
152
|
"notes": []
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"version": "0.140.0",
|
|
156
|
+
"sourceSha": "6d99197d6e84edc1e7842634e0f5e4b810c80824",
|
|
157
|
+
"notes": [
|
|
158
|
+
{
|
|
159
|
+
"id": "export-resume-format-guard",
|
|
160
|
+
"body": "### Changed\n\nA resumed repository export now sends the `formatVersion` of the header the download opened with, and the server refuses a resume whose format is not the one it writes: HTTP 412 `client-incompatible` with the message \"Restart the export; a resume must use the format it started with.\" A download started before a server upgrade that changes the export format can no longer be silently finished under its old header; the resume fails and the export must be restarted.\n\nA resume of a file that holds only the header (interrupted before the first row) sends no cursor, so the server cannot check it; the session now compares the new header's format to the saved one and raises `RepositoryExportError` (`header_invalid`) with the same restart message rather than appending new-format rows under the old header.\n\n**Upgrade with the server.** An older SDK sends no `formatVersion` on a resume, so a server with this change refuses every resume from it, not only cross-format ones. Upgrade the SDK in the same release as the server."
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "is-all-stream-operations-failed-error",
|
|
164
|
+
"body": "### Added\n\n`isAllStreamOperationsFailedError(error)` reports whether a thrown value is an all-failed stream error. Unlike `error instanceof AllStreamOperationsFailedError`, it also recognizes the error after `toWarmHubError` normalization and when a different copy of the SDK threw it."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "name-taken-durable-id-only",
|
|
168
|
+
"body": "### Breaking\n\n#### `NAME_TAKEN` names the holder by durable id only and offers no replacement name\n\n**What it was.** A `name_taken` error's `details.takenBy` was `{ shape, durableId }`, `details.suggestedName` could carry a replacement name, and the message said `by a <Shape> Thing` and `for example \"<name>\"`.\n\n**What it is now.** `details.takenBy` is `{ durableId }`; `shape` is removed. `details.suggestedName` is removed and no example name appears in the message or hint. The message names no Shape: `Name \"acme\" is already taken in this repository by another Thing; choose another name`. A caller who cannot read the holder still gets no `takenBy` and no `by another Thing`. The `name_taken` decoder in the streaming submission protocol requires only `takenBy.durableId`.\n\n**Why it breaks.** This is a client-visible breaking change, accepted. Released sdk-ts 0.135.0 to 0.139.0 decode `takenBy` with `shape` required, so they refuse a `name_taken` result from a server that carries this change. It lands before the v2 floor release (0.140.0), so no v2 client sees `shape`.\n\n**Migration.** Read the holder's Shapes with `get` on `details.takenBy.durableId`; a Thing can have several Shapes or none. Choose the replacement name yourself.\n\n```ts\n// Before\nconst { takenBy, suggestedName } = details\nconsole.log(takenBy?.shape, suggestedName)\n\n// After\nconst holder = details.takenBy && (await client.thing.get(org, repo, details.takenBy.durableId))\n```"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"id": "restore-operation",
|
|
172
|
+
"body": "### Added\n\nThe `restore` operation and `OperationBuilder.restore()` make a retracted Thing active again, by its durable ID. Pass `newName` to restore it under another name."
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "v2-write-form",
|
|
176
|
+
"body": "In these notes, \"old grammar\" means the reference form used before this release (`Deal/acme`, operations with `kind`), and \"new grammar\" the form this release introduces (`acme`, operations with `shapes`).\n\n### Breaking\n\n#### Write operations take `name` and `shapes`\n\n**What it was.** Operations carried `kind`, an add name spelled\n`Shape/name`, a top-level `about`, or collection `type`/`members`, and the\nSDK converted them.\n\n**What it is now.** `Operation`, `AddOperation`, `ReviseOperation`,\n`RetractOperation`, `ReaffirmOperation` and `RenameOperation` keep their\nnames but have the new shape. An add or revise requires `name`, `shapes`\nand `data`. `kind` and `shape` are typed `never`. The new `WriteOperation`\ntype is one operation of that form.\n\n- A Shape is the Thing `hub/shapes/X` (`shapeName('X')`), written with\n `shapes: []`.\n- An assertion is a Thing one of whose declared Shapes composes `Assertion`,\n with its target in `data.about`.\n- A collection is a Thing of its collection Shape:\n `{ shapes: ['Set'], data: { members } }`.\n\n**Migration.**\n\n```ts\n// Before\nawait client.commit.apply('acme', 'world', 'seed', [\n { operation: 'add', kind: 'thing', name: 'Deal/acme', data: { company: 'Acme' } },\n])\n\n// After\nawait client.commit.apply('acme', 'world', 'seed', [\n { operation: 'add', name: 'acme', shapes: ['Deal'], data: { company: 'Acme' } },\n])\n```\n\n#### Old-grammar operations are refused before any request\n\n**What it was.** The SDK converted old-grammar operations.\n\n**What it is now.** An operation with `kind`, `shape`, `wref`,\n`declaredShapes`, `about`, collection `type` or `members`, or with no\n`operation`, is refused with a `WriteOperationError` before anything is\nsent. The message shows a suggested new form, with data values replaced by\n`\"...\"`. Names and `about` targets are copied as written, so check them: a\nsuggested `name: 'Deal/acme'` would address a Thing literally named\n`Deal/acme`. An add or revise with no `shapes` is refused with a message\nthat it states no Shapes.\n\nOld-grammar input no longer type-checks, so it reaches this refusal only\nthrough a cast.\n\n**Migration.**\n\n```ts\n// Before: converted and sent\nawait client.commit.apply('acme', 'world', 'rate', [\n { operation: 'add', kind: 'assertion', name: 'Rating/r1', about: 'Deal/acme', data: { score: 5 } },\n])\n\n// After\nawait client.commit.apply('acme', 'world', 'rate', [\n { operation: 'add', name: 'r1', shapes: ['Rating'], data: { about: 'acme', score: 5 } },\n])\n```\n\nOther operations refused locally:\n\n- a pinned Shape in `shapes` (`Deal@v2`), or an entry that is not a bare\n Shape name (`hub/shapes/Deal`, anything with `/`);\n- `shapeless` on a raw operation (spell it `shapes: []`);\n- non-empty `shapes` on a `hub/shapes/X` name;\n- an add or revise without `data`, and `keepShapes` on an add;\n- `affirmedTargets` on a shapeless write;\n- `expectedVersion` on an add, and `active` on a revise;\n- renaming a Shape to a non-Shape name, or the reverse;\n- `+` in an added or renamed-to name;\n- an added or renamed-to name under the reserved `hub` root\n (`RESERVED_NAME`);\n- the same name added twice in one submission (`ILLEGAL_OP_SEQUENCE`);\n- errors found by the local Shape-definition checks.\n\n#### `OperationBuilder` methods take the name first\n\n**What it was.** `add({ name, data })`, `revise({ name, data })`,\n`retract(target)`, `reaffirm({ name, kind, ... })`; no `rename`.\n\n**What it is now.**\n\n| Method | After |\n|---|---|\n| `add` | `add(name, { shapes \\| shapeless, data, ... })` |\n| `revise` | `revise(name, { shapes \\| shapeless \\| keepShapes, data, ... })` |\n| `retract` | `retract(name, { reason? })` |\n| `reaffirm` | `reaffirm(name, { add?, remove? })` |\n| `rename` | `rename(name, newName)` (new) |\n\nEach add and revise states its Shapes in exactly one way: `shapes: [...]`,\n`shapeless: true`, or (revise only) `keepShapes: true`. The builder refuses\nzero ways or more than one, `keepShapes` on an add, `shapeless` on a\n`hub/shapes/X` name, and `shapes: []` on a non-Shape name (spell that\n`shapeless: true`).\n\n**Migration.**\n\n```ts\n// Before\nimport { OperationBuilder } from '@warmhub/sdk-ts'\nconst ob = new OperationBuilder()\nob.add({ name: 'Deal/acme', data: { company: 'Acme' } })\nob.retract('Deal/old')\nawait ob.commit({ client, orgName: 'acme', repoName: 'world', message: 'seed' })\n\n// After\nimport { createOperationEventRequestId } from '@warmhub/sdk-ts'\n\nawait client.shape.create('acme', 'world', 'Deal', { company: 'string' }, {\n eventRequestId: createOperationEventRequestId(),\n})\n\nawait client.commit.apply(\n 'acme',\n 'world',\n 'seed',\n client\n .ops()\n .add('acme', { shapes: ['Deal'], data: { company: 'Acme' } })\n .add('scratch', { shapeless: true, data: { note: 'free' } })\n .rename('scratch', 'scratch-2')\n .retract('old'),\n)\n\n// A later submission: keepShapes revises a Thing that already exists\nawait client.commit.apply(\n 'acme',\n 'world',\n 'update',\n client.ops().revise('acme', { keepShapes: true, data: { company: 'Acme 2' } }),\n)\n```\n\nA `keepShapes` revise of a Thing added or renamed earlier in the same\nsubmission is refused; state `shapes` instead.\n\n#### Builder errors are `WriteOperationError`, raised when an operation is queued\n\n**What it was.** Some refusals surfaced only at commit.\n\n**What it is now.** A per-operation refusal throws at the `.add(...)` or\n`.revise(...)` call. Whole-batch refusals (\"already submitted\", \"in flight\")\nhave `operationIndex: undefined`. The code is usually `VALIDATION_ERROR`;\nit can also be `RESERVED_NAME`, `ILLEGAL_OP_SEQUENCE`, a Shape-name check\ncode, or (for `keepShapes`, at submit) `NOT_FOUND`.\n\n**Migration.**\n\n```ts\nimport { WriteOperationError, type AddInput } from '@warmhub/sdk-ts'\n\ntry {\n client.ops().add('acme', { data: {} } as AddInput) // no Shapes stated\n} catch (e) {\n if (e instanceof WriteOperationError) console.log(e.code, e.operationIndex) // VALIDATION_ERROR 0\n}\n```\n\n#### Every reference argument uses the new grammar\n\n**What it was.** Read and write calls took `Deal/acme`, and a Shape was\n`Deal`.\n\n**What it is now.** Pass the Thing name (`acme`) and `hub/shapes/Deal` for a\nShape where any Thing can appear. An old spelling is looked up literally: a\nsingle read gets `NOT_FOUND`, and `thing.getMany` lists it in `missing`.\nGlobs (`match`) match Thing names, and `*` does not cross `/`.\n\n**Migration.**\n\n```ts\n// Before\nawait client.thing.get('acme', 'world', 'Deal/acme')\n// After\nawait client.thing.get('acme', 'world', 'acme')\n```\n\n#### `thing.rename` takes full names\n\n**What it was.** `rename(org, repo, shapeName, oldName, newName, opts)`.\n\n**What it is now.** `rename(org, repo, name, newName, opts)`. A call in the\nold argument order is refused locally with `VALIDATION_ERROR`.\n\n**Migration.**\n\n```ts\n// Before\nawait client.thing.rename('acme', 'world', 'Deal', 'acme', 'acme-corp', { eventRequestId })\n// After\nawait client.thing.rename('acme', 'world', 'acme', 'acme-corp', { eventRequestId })\n```\n\n#### Read results drop `shape`, `shapeName` and `validatedShape`\n\n**What it was.** Results carried a single Shape.\n\n**What it is now.** Use `declaredShapes` (the Shapes the version states)\nand `validatedShapes` (the Shapes it satisfies, including composed ones).\nBoth hold version-pinned names such as `Deal@v3`. The removal covers\n`ThingDetail`, `ThingItem`, `thing.getMany` items, `thing.getWithLease`,\nhistory versions and history's `thing`, refs items, component owned Things\nand `view.evaluate` items. `SynthesizedRepoContent.shape` becomes\n`declaredShapes` / `validatedShapes`.\n\n`ThingDetail` allows extra keys, so `detail.shapeName` still compiles; it is\n`undefined` at run time. Search your code for these field names.\n\n`shape` as an input filter (`thing.head(org, repo, { shape: 'Deal' })`) is\nunchanged.\n\n**Migration.**\n\n```ts\n// Before\nconst shape = detail.shapeName\n// After\nconst shapes = (detail.declaredShapes ?? []).map((w) => w.replace(/@v\\d+$/, ''))\n```\n\n#### Token scopes use `grants`, on input and output\n\n**What it was.** A scope entry carried `allowedMatches` and `allowedShapes`.\n\n**What it is now.** Restrictions are a list of (paths, Shapes) pairs in\n`grants`.\n\n- Input (`token.create`): the entry-level fields are still typed `unknown`,\n so old code compiles, but the server refuses them with \"allowedMatches and\n allowedShapes are no longer scope-entry fields: give each (paths, Shapes)\n pair in grants…\".\n- Output (`TokenCreateResult`, token metadata, whoami scopes): the\n entry-level fields are removed, and reading them is a compile error. Read\n `grants`.\n- `org.setMemberScopes` takes entries with `resource` and `permissions`\n only; restrictions on member scopes are refused.\n- A pair must carry a non-empty `allowedMatches`, or an `allowedShapes`\n with at least one key. `grants: []`, `{}` and `{ allowedShapes: {} }` are\n refused.\n- `shapeless: true` in a clause is not a restriction of its own: it lets\n Things with no Shape through. Alone it admits every Thing the pair's paths\n match, shaped or shapeless; beside `shapes` it adds shapeless Things to\n the Things the clause covers. No clause restricts a pair to shapeless\n Things only.\n\n**Migration.**\n\n```ts\n// Before\nawait client.token.create({ name: 'ci', scopes: [\n { resource: 'acme/world', permissions: ['read'], allowedMatches: ['Deal/**'] },\n] })\n// After\nawait client.token.create({ name: 'ci', scopes: [\n { resource: 'acme/world', permissions: ['read'],\n grants: [{ allowedMatches: ['**'], allowedShapes: { shapes: ['Deal'] } }] },\n] })\n```\n\n#### Repository exports are format 6, and the delta fold needs formats\n\n**What it was.** Exports were format 5, and\n`applyRepositoryExportDelta(base, delta)` returned rows keyed by durable id.\n\n**What it is now.**\n\n- The server writes format 6. This SDK reads 5 and 6; older SDKs read only\n 5, so they cannot read exports made after this release reaches\n production.\n- Format 6 uses new-grammar references, has one row per Shape version, and\n may carry `retracted: true` on Shape rows. A Shape tombstone in format 6\n is rejected as `row_invalid`.\n- `applyRepositoryExportDelta` takes a third argument, the formats. Mixing\n format 5 and format 6 throws `RepositoryExportError` with reason\n `format_mismatch`.\n- In the returned map, format 6 Shape rows are keyed `durableId@vN`, not\n `durableId`. Code that looks a Shape up by durable id, or keys its own map\n by durable id, must account for versions.\n\n**Migration.**\n\n```ts\n// Before\nconst current = applyRepositoryExportDelta(base, delta)\n// After\nconst current = applyRepositoryExportDelta(base, delta, {\n base: baseSession.header!.formatVersion,\n delta: deltaSession.header!.formatVersion,\n})\n```\n\n#### `stream.append` takes new-grammar operations only\n\n**What it was.** `stream.append` took the old operation form.\n\n**What it is now.** It takes new-grammar operations and does not accept\n`keepShapes` (use `createKeepShapesResolver`). Its only local check is a\npinned Shape; everything else is checked by the server.\n\n**Migration.** Send `{ operation, name, shapes, data }` operations.\n\n#### Writes need a server running this release\n\n**What it was.** The SDK wrote to any current server.\n\n**What it is now.** Against an older server, writes fail the compatibility\ncheck with \"@warmhub/sdk-ts requires write contract 3, but the backend\nprovides 2.\"\n\n**Migration.** Upgrade the SDK after the server.\n\n### Added\n\n- **`client.ops(options?)`** — returns a new `OperationBuilder`.\n- **`shapeName(bare)`** — `'Deal'` to `'hub/shapes/Deal'`; idempotent.\n- **`isShapeReference(value)`** — true for a bare, unpinned Shape name.\n- **`WriteOperationError`** (extends `WarmHubError`) — with\n `operationIndex`; its message starts `Invalid operation at index N:`.\n- **Types** — `WriteOperation`, `KeepShapesRevise`, `AddInput`,\n `ReviseInput`, `RetractInput`, `ReaffirmInput`, `ShapesChoice`,\n `CommitValidateOperations`, `RepositoryExportDeltaFormats`,\n `ThingShapesReader`.\n- **`keepShapes: true` on a revise** — at submit the SDK reads the Thing's\n current Shapes and version and sends both, the version as\n `expectedVersion` (a supplied `expectedVersion` wins). Shapes are sent\n bare, so the revise is checked against each Shape's current version. A\n missing Thing is refused with `NOT_FOUND`. A Thing added, or renamed to or\n from, earlier in the same submission is refused. A Thing revised earlier in\n the same submission reuses that revise's Shapes and sends no version.\n Because the version is pinned, resubmitting the same `submissionId` from\n another process can conflict; explicit `shapes` is the retry-safe form.\n ```ts\n await client.commit.apply('acme', 'world', 'm',\n client.ops().revise('acme', { keepShapes: true, data: { company: 'Acme 2' } }))\n ```\n- **`createKeepShapesResolver(read)`** — resolves `keepShapes` revises for\n `stream.append`. It keeps state across calls, so use one resolver per\n submission.\n ```ts\n const resolve = createKeepShapesResolver((names) => client.thing.getMany('acme', 'world', names))\n await client.stream.append({ /* ... */ operations: await resolve([\n { operation: 'revise', name: 'acme', keepShapes: true, data: {} },\n ]) })\n ```\n- **Builders everywhere** — `commit.validate`, `commit.apply` and\n `commit.applyStreaming` accept an `OperationBuilder` as well as an array.\n- **`shapeless: true` read filter** — on `thing.head`, `thing.query`,\n `thing.count` and `live.thingHead`: only Things with no Shape. It\n cannot be combined with `shape`, `declaredShape`, `match`, a token\n restricted by paths, or `sinceRepoSeq`, and is not available on search or\n the changes feeds.\n ```ts\n await client.thing.head('acme', 'world', { shapeless: true })\n ```\n- **`warnings.shapeless?: true`** — on per-operation write results.\n- **`ThingGetManyResult.missingHints`** — for a missing reference that is an\n old `Shape/name` spelling of a Thing you can read, the text naming its new\n form.\n- **`declaredShapes` on refs items and history's `thing`** (history also\n gains `validatedShapes`).\n- **`redactedResource: true`** — may appear on `TokenCreateResult` scopes.\n- **`details.reason` values** — `'legacy-wrefs-window-ended'` (from the\n server) and `'legacy-wrefs-sdk'` (local).\n- **`DEPENDENCY_FAILED`** — exported as a constant.\n- **`LEGACY_WREFS_REFUSAL` and `WarmHubClient.clientFlags`**.\n- **Export** — `RepositoryExportErrorReason` gains `'format_mismatch'`;\n `RepositoryExportSession.lastShapeVersion`; an `onRow` option on\n `restoreRepositoryExportSession`. A resume that breaks between two versions\n of one Shape continues from the right version.\n\n### Behavior worth knowing\n\n- **`clientFlags: ['legacy-wrefs']` refuses every call.** The SDK does not\n send old-grammar requests. With the flag set, reads, writes, streaming,\n export and the compatibility check all throw `WarmHubError` with code\n `CLIENT_INCOMPATIBLE`, `details.reason: 'legacy-wrefs-sdk'`, and the\n message \"`legacy-wrefs` is set; the SDKs are v2-only. Unset it, or use the\n `wh` CLI for v1.\" Use the CLI to submit old-grammar files during the\n compatibility window.\n\n### Changed\n\n- **Local checks before sending.** `commit.apply`, `commit.validate` and\n the builder check every operation before sending when given an array or a\n builder. An iterable, an async iterable, or `commit.applyStreaming` is\n checked chunk by chunk, so a bad operation late in the source is refused\n after earlier chunks were committed (`PartialStreamSubmissionError`).\n `stream.append` checks only pinned Shapes.\n- **Content-limit error labels.**\n ```text\n Before: Field \"Content/Readme.content\" is N bytes; WarmHub content fields are limited to 65536 bytes. ...\n After: Field \"Readme.content\" is N bytes; WarmHub content fields are limited to 65536 bytes. ...\n ```\n `Agents.content` changes the same way.\n\n### Removed\n\n- **`AddOp`, `ReviseOp`, `RetractOp`, `CollectionAddOp`,\n `CollectionAddType`, `OperationBuilderAddInput`** — use `WriteOperation`\n and the builder input types.\n ```ts\n // Before\n const op: AddOp = { name: 'Deal/acme', data: {} }\n // After\n const op: WriteOperation = { operation: 'add', name: 'acme', shapes: ['Deal'], data: {} }\n ```\n- **Automatic old-grammar conversion** (`kind`, `about`, `type`/`members`,\n `Shape/name` splitting).\n- **The local \"Selector-backed revise requires a Set/<name> target wref\"\n check in `collection.revise`.** The server decides.\n"
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"version": "0.141.0",
|
|
182
|
+
"sourceSha": "798ff51d9a128c7196c419b6322115384c44d4f3",
|
|
183
|
+
"notes": []
|
|
153
184
|
}
|
|
154
185
|
]
|
|
155
186
|
}
|
package/dist/checkpoint.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {O,N as N$1,P as P$1,T,L as L$1,Q as Q$1,R as R$1,S as S$1,M}from'./chunk-F2BL6MQQ.js';import {mkdtemp,chmod,rm,open}from'fs/promises';import {tmpdir}from'os';import {join}from'path';import {createHash}from'crypto';import {Writable}from'stream';import {pipeline}from'stream/promises';import {callbackify}from'util';import {createInflateRaw,crc32}from'zlib';import {once}from'events';import {createWriteStream,createReadStream}from'fs';var d=class extends Error{constructor(e){super(rt(e));this.reason=e;}reason;name="RepositoryCheckpointVerificationError"};function rt(r){switch(r){case "source_failed":return "Repository checkpoint source could not be read";case "archive_invalid":return "Repository checkpoint archive is invalid";case "archive_integrity_mismatch":return "Repository checkpoint archive integrity does not match";case "manifest_invalid":return "Repository checkpoint manifest is invalid";case "chunk_invalid":return "Repository checkpoint chunk is invalid";case "duplicate_durable_id":return "Repository checkpoint contains a duplicate durable identity";case "scratch_cleanup_failed":return "Repository checkpoint verifier scratch cleanup failed"}}var H=67324752,ht=33639248,dt=134695760,ut=101075792,ft=117853008,lt=101010256,Y=2056,Z=8,R=45,q=813,z=65535,m=4294967295,W=33,yt=33188,S=64*1024,pt=new RegExp(`^records/[0-9a-f]{64}/part-\\d{${M}}\\.jsonl$`),mt=new TextDecoder("utf-8",{fatal:true}),E=class extends Error{};async function G(r,t){let e=new C(r);try{let i=[],n=new Set,s=!1;for(;await e.peekU32()===H;){if(s)throw new Error("manifest must be the final entry");let c=BigInt(e.position),h=await e.readExact(30);It(h);let f=h.readUInt16LE(26),p=h.readUInt16LE(28);if(f===0||p!==20)throw new Error("local entry metadata is invalid");let a=K(await e.readExact(f));if(St(a),n.has(a))throw new Error("archive entry is duplicated");n.add(a),s=a===N$1,bt(await e.readExact(p));let y=t(a),l=await wt(e,y),et=await e.readExact(24);kt(et,l),await y.finish(),i.push({name:a,localOffset:c,...l});}if(!s||i.length===0)throw new Error("archive manifest entry is missing");return await vt(e,i),{...await e.finish(),entryNames:i.map(c=>c.name)}}finally{await e.close();}}async function wt(r,t){let e=createInflateRaw({chunkSize:S}),i=0n,n=0n,s=0,o=callbackify(async a=>{try{await t.write(a);}catch(y){throw y instanceof Error?y:new Error("checkpoint sink failed")}s=crc32(a,s),n+=BigInt(a.byteLength);}),c=new Writable({highWaterMark:S,write(a,y,l){o(a,l);}}),h=pipeline(e,c),f=new A,p=Et(h,f);try{for(;!e.readableEnded;){let a=await r.readSome(S);if(!a)throw new Error("archive entry is truncated");let y=e.bytesWritten;await gt(e,a,f);let l=e.bytesWritten-y;if(!Number.isSafeInteger(l)||l<0||l>a.byteLength)throw new Error("archive inflater consumed invalid input");if(i+=BigInt(l),l<a.byteLength&&r.unread(a.subarray(l)),e.readableEnded)break;if(l===0)throw new Error("archive inflater made no progress")}return await h,{crc:s>>>0,compressedSize:i,uncompressedSize:n}}finally{e.destroyed||e.destroy(),await p;}}var A=class{#i;#t;fail(t){let e=t instanceof Error?t:new Error("archive inflater failed");this.#i=e,this.#t?.(e),this.#t=void 0;}async race(t){if(this.#i)throw this.#i;let e,i=new Promise((n,s)=>{e=o=>s(o),this.#t=e;});try{return await Promise.race([t,i])}finally{e&&this.#t===e&&(this.#t=void 0);}}};async function Et(r,t){try{await r;}catch(e){t.fail(e);}}async function gt(r,t,e){let i=new Promise((n,s)=>{r.write(t,o=>{o?s(o):n();});});await e.race(i);}async function vt(r,t){let e=BigInt(r.position);for(let h of t){let f=await r.readExact(46);Ut(f,h);let p=f.readUInt16LE(28),a=f.readUInt16LE(30);if(a!==28||f.readUInt16LE(32)!==0)throw new Error("central entry metadata is invalid");if(K(await r.readExact(p))!==h.name)throw new Error("central entry order differs");Lt(await r.readExact(a),h);}let i=BigInt(r.position)-e,n=BigInt(r.position),s=await r.readExact(56);if(w(s,0,ut),s.readBigUInt64LE(4)!==44n||s.readUInt16LE(12)!==q||s.readUInt16LE(14)!==R||s.readUInt32LE(16)!==0||s.readUInt32LE(20)!==0||s.readBigUInt64LE(24)!==BigInt(t.length)||s.readBigUInt64LE(32)!==BigInt(t.length)||s.readBigUInt64LE(40)!==i||s.readBigUInt64LE(48)!==e)throw new Error("ZIP64 end record is invalid");let o=await r.readExact(20);if(w(o,0,ft),o.readUInt32LE(4)!==0||o.readBigUInt64LE(8)!==n||o.readUInt32LE(16)!==1)throw new Error("ZIP64 locator is invalid");let c=await r.readExact(22);if(w(c,0,lt),c.readUInt16LE(4)!==0||c.readUInt16LE(6)!==0||c.readUInt16LE(8)!==z||c.readUInt16LE(10)!==z||c.readUInt32LE(12)!==m||c.readUInt32LE(16)!==m||c.readUInt16LE(20)!==0)throw new Error("classic ZIP end record is invalid")}function It(r){if(w(r,0,H),r.readUInt16LE(4)!==R||r.readUInt16LE(6)!==Y||r.readUInt16LE(8)!==Z||r.readUInt16LE(10)!==0||r.readUInt16LE(12)!==W||r.readUInt32LE(14)!==0||r.readUInt32LE(18)!==m||r.readUInt32LE(22)!==m)throw new Error("local entry header is invalid")}function bt(r){if(r.readUInt16LE(0)!==1||r.readUInt16LE(2)!==16||r.readBigUInt64LE(4)!==0n||r.readBigUInt64LE(12)!==0n)throw new Error("local ZIP64 extra is invalid")}function kt(r,t){if(w(r,0,dt),r.readUInt32LE(4)!==t.crc||r.readBigUInt64LE(8)!==t.compressedSize||r.readBigUInt64LE(16)!==t.uncompressedSize)throw new Error("archive data descriptor is invalid")}function Ut(r,t){if(w(r,0,ht),r.readUInt16LE(4)!==q||r.readUInt16LE(6)!==R||r.readUInt16LE(8)!==Y||r.readUInt16LE(10)!==Z||r.readUInt16LE(12)!==0||r.readUInt16LE(14)!==W||r.readUInt32LE(16)!==t.crc||r.readUInt32LE(20)!==m||r.readUInt32LE(24)!==m||r.readUInt16LE(34)!==0||r.readUInt16LE(36)!==0||(r.readUInt32LE(38)>>>16&65535)!==yt||r.readUInt32LE(42)!==m)throw new Error("central entry header is invalid")}function Lt(r,t){if(r.readUInt16LE(0)!==1||r.readUInt16LE(2)!==24||r.readBigUInt64LE(4)!==t.uncompressedSize||r.readBigUInt64LE(12)!==t.compressedSize||r.readBigUInt64LE(20)!==t.localOffset)throw new Error("central ZIP64 extra is invalid")}function St(r){if(r!==N$1&&!pt.test(r))throw new Error("archive entry name is invalid")}function K(r){let t=mt.decode(r);if(Buffer.byteLength(t,"utf8")!==r.byteLength)throw new Error("archive entry name is not canonical UTF-8");return t}function w(r,t,e){if(r.readUInt32LE(t)!==e)throw new Error("archive signature is invalid")}var C=class{#i;#t=createHash("sha256");#e=[];#r=0;#n=false;#o=0;position=0;constructor(t){this.#i=At(t)[Symbol.asyncIterator]();}async peekU32(){let t=await this.readExact(4);return this.unread(t),t.readUInt32LE(0)}async readExact(t){let e=Buffer.allocUnsafe(t),i=0;for(;i<t;){let n=await this.readSome(t-i);if(!n)throw new Error("archive is truncated");e.set(n,i),i+=n.byteLength;}return e}async readSome(t){for(;this.#e.length===0;)if(!await this.#s())return;let e=this.#e[0];if(!e)return;let i=e.byteLength-this.#r,n=Math.min(t,i),s=e.subarray(this.#r,this.#r+n);return this.#r+=n,this.position+=n,this.#r===e.byteLength&&(this.#e.shift(),this.#r=0),s}unread(t){if(t.byteLength!==0){if(this.#r>0){let e=this.#e[0];if(!e)throw new Error("archive reader queue is inconsistent");let i=e.subarray(this.#r);this.#e[0]=i,this.#r=0;}this.#e.unshift(t),this.position-=t.byteLength;}}async finish(){if(this.#e.length>0||await this.#s())throw new Error("archive contains trailing bytes");return {byteLength:this.#o,sha256:this.#t.digest("hex")}}async close(){try{await this.#i.return?.();}catch{}}async#s(){if(this.#n)return false;for(;;){let t;try{t=await this.#i.next();}catch{throw new E}if(t.done)return this.#n=true,false;if(!(t.value instanceof Uint8Array))throw new E;if(t.value.byteLength!==0){if(this.#t.update(t.value),this.#o+=t.value.byteLength,!Number.isSafeInteger(this.#o))throw new Error("archive byte length is unsafe");return this.#e.push(t.value),true}}}};function At(r){return Symbol.asyncIterator in r?r:{async*[Symbol.asyncIterator](){let t=r.getReader(),e=false;try{for(;;){let{value:i,done:n}=await t.read();if(n){e=!0;return}yield i;}}finally{if(!e)try{await t.cancel();}catch{}t.releaseLock();}}}}var xt=4*1024*1024,j=8,J=64*1024,Tt=16*1024,u=4,$=4,Ot=1,Vt=u+Ot,X=Vt+$,g=class extends Error{},k=class{#i;#t;#e=[];#r=0;#n;constructor(t,e={}){this.#i=t;let i=e.sortBudgetBytes??xt;if(this.#n=e.mergeFanIn??j,!Number.isSafeInteger(i)||i<X||!Number.isSafeInteger(this.#n)||this.#n<2||this.#n>j)throw new Error("checkpoint identity sort limits are invalid");this.#t=new _(i);}add(t){let e=Buffer.byteLength(t,"utf8");if(!this.#t.canFit(e))throw new Error("checkpoint durable identity exceeds the sort budget");if(this.#t.canAdd(e)){this.#t.add(t,e);return}return this.#o(t,e)}async finish(){if(this.#e.length===0){this.#t.sortAndAssertUnique(),this.#t.clear();return}for(this.#t.isEmpty||await this.#o();this.#e.length>this.#n;){let e=[];for(let i=0;i<this.#e.length;i+=this.#n){let n=this.#e.slice(i,i+this.#n),s=this.#s();await Ft(n,s),await Promise.all(n.map(o=>rm(o,{force:true}))),e.push(s);}this.#e=e;}let t;await tt(this.#e,e=>{if(t&&P(t,e)===0)throw new g;t=e;});}async#o(t,e){let i=this.#s();this.#t.sortAndAssertUnique(),await Mt(i,this.#t),this.#e.push(i),this.#t.clear(),t!==void 0&&e!==void 0&&this.#t.add(t,e);}#s(){let t=join(this.#i,`identity-run-${String(this.#r).padStart(8,"0")}.bin`);return this.#r+=1,t}},_=class{byteBudget;#i;#t;#e=0;#r=0;constructor(t){this.byteBudget=t;let e=Math.floor(t/X);this.#t=new Uint32Array(e),this.#i=Buffer.allocUnsafe(t-e*$);}get isEmpty(){return this.#r===0}canAdd(t){return this.canFit(t)&&this.#r<this.#t.length&&this.#e+u+t<=this.#i.length}canFit(t){return t<=4294967295&&this.#t.length>0&&u+t<=this.#i.length}add(t,e){if(!this.canAdd(e))throw new Error("checkpoint durable identity exceeds the sort budget");let i=this.#e;this.#t[this.#r]=i,this.#i.writeUInt32BE(e,i),this.#i.write(t,i+u,e,"utf8"),this.#e+=u+e,this.#r+=1;}sortAndAssertUnique(){let t=this.#t.subarray(0,this.#r);t.sort((e,i)=>this.#n(e,i));for(let e=1;e<t.length;e+=1){let i=t[e-1],n=t[e];if(i===void 0||n===void 0)throw new Error("checkpoint identity offset is missing");if(this.#n(i,n)===0)throw new g}}clear(){this.#e=0,this.#r=0;}forEachSorted(t){return Dt(this.#t.subarray(0,this.#r),e=>t(this.#s(e)))}#n(t,e){return P(this.#o(t),this.#o(e))}#o(t){let e=this.#i.readUInt32BE(t);return this.#i.subarray(t+u,t+u+e)}#s(t){let e=this.#i.readUInt32BE(t);return this.#i.subarray(t,t+u+e)}};async function Mt(r,t){await Q(r,async e=>{let i=new U(e);await t.forEachSorted(n=>i.write(n)),await i.finish();});}async function Ft(r,t){await Q(t,async e=>{let i=new U(e);await tt(r,n=>i.writeValue(n)),await i.finish();});}async function Q(r,t){await(await open(r,"wx",384)).close();let i=createWriteStream(r,{flags:"a",mode:384,highWaterMark:J});try{await t(i),i.end(),await once(i,"close");}catch(n){throw i.destroy(),n}}var U=class{#i;#t=Buffer.allocUnsafe(J);#e=0;constructor(t){this.#i=t;}write(t){if(t.byteLength>this.#t.length)return this.#r(t);if(this.#e+t.byteLength>this.#t.length)return this.#n(t);this.#t.set(t,this.#e),this.#e+=t.byteLength;}writeValue(t){let e=u+t.byteLength;if(e>this.#t.length)return this.#o(t);if(this.#e+e>this.#t.length)return this.#s(t);this.#c(t);}async finish(){await this.#a();}async#r(t){await this.#a(),await b(this.#i,t);}async#n(t){await this.#a(),this.#t.set(t,this.#e),this.#e+=t.byteLength;}async#o(t){await this.#a();let e=Buffer.allocUnsafe(u);e.writeUInt32BE(t.byteLength,0),await b(this.#i,e),await b(this.#i,t);}async#s(t){await this.#a(),this.#c(t);}async#a(){if(this.#e===0)return;let t=this.#t.subarray(0,this.#e);await b(this.#i,t),this.#e=0;}#c(t){this.#t.writeUInt32BE(t.byteLength,this.#e),this.#t.set(t,this.#e+u),this.#e+=u+t.byteLength;}};async function tt(r,t){let e=r.map(i=>new B(i));try{for(await Promise.all(e.map(i=>i.advance()));;){let i;for(let s of e)s.current&&(!i||P(s.current,i.current)<0)&&(i=s);if(!i?.current)return;let n=t(i.current);n&&await n,await i.advance();}}finally{for(let i of e)i.close();}}var B=class{#i;#t;#e=Buffer.alloc(0);#r=0;current;constructor(t){this.#i=createReadStream(t,{highWaterMark:Tt}),this.#t=this.#i[Symbol.asyncIterator]();}async advance(){let t=await this.#n(u);if(!t){this.current=void 0;return}let e=t.readUInt32BE(0);if(e===0)throw new Error("checkpoint identity run is invalid");let i=await this.#n(e);if(!i)throw new Error("checkpoint identity run is truncated");this.current=i;}close(){this.#i.destroy();}async#n(t){if(t===0)return Buffer.alloc(0);if(this.#e.length-this.#r>=t){let n=this.#e.subarray(this.#r,this.#r+t);return this.#r+=t,n}let e=Buffer.allocUnsafe(t),i=0;for(;i<t;){if(this.#r<this.#e.length){let s=Math.min(t-i,this.#e.length-this.#r);this.#e.copy(e,i,this.#r,this.#r+s),this.#r+=s,i+=s;continue}let n=await this.#t.next();if(n.done){if(i===0)return;throw new Error("checkpoint identity run is truncated")}this.#e=n.value,this.#r=0;}return e}};async function Dt(r,t){for(let e of r){let i=t(e);i&&await i;}}async function b(r,t){await new Promise((e,i)=>{r.write(t,n=>{n?i(n):e();});});}function P(r,t){let e=Math.min(r.length,t.length);for(let i=0;i<e;i+=1){let n=r[i],s=t[i];if(n===void 0||s===void 0)throw new Error("checkpoint identity byte is missing");let o=n-s;if(o!==0)return o}return r.length-t.length}var L=class{#i;#t=new Map;#e=new Map;#r=[];#n;constructor(t,e={}){this.#i=new k(t,{sortBudgetBytes:e.identitySortBudgetBytes,mergeFanIn:e.identityMergeFanIn});}openEntry(t){if(t===N$1){let e=[];return {write:async i=>{e.push(i.slice());},finish:async()=>{this.#n=Buffer.concat(e);}}}return new N(t,this.#t,this.#e,this.#i,e=>this.#r.push(e))}async finish(){if(!this.#n)throw new Error("checkpoint manifest is missing");let t=await P$1(this.#n),e=t.streams.flatMap(i=>i.chunks.map(n=>({...n,shapeName:i.shapeName})));if(e.length!==this.#r.length)throw new Error("checkpoint chunk inventory does not match");for(let[i,n]of e.entries()){let s=this.#r[i];if(s.path!==n.path||s.shapeName!==n.shapeName||s.recordCount!==n.recordCount||s.byteLength!==n.byteLength||s.sha256!==n.sha256)throw new Error("checkpoint chunk integrity does not match")}for(let i of t.streams){let n=this.#t.get(i.shapeName);if(!n||T(n)!==i.recordCount)throw new Error("checkpoint stream does not match its manifest")}if(this.#t.size!==t.streams.length)throw new Error("checkpoint contains an undeclared stream");return await this.#i.finish(),{manifest:t,chunkCount:e.length}}},N=class{#i;#t;#e;#r;#n;#o=createHash("sha256");#s=[];#a=0;#c;#h=0;#d=0;constructor(t,e,i,n,s){this.#i=t,this.#t=e,this.#e=i,this.#r=n,this.#n=s;}async write(t){if(this.#o.update(t),this.#d+=t.byteLength,!Number.isSafeInteger(this.#d))throw new Error("checkpoint chunk byte length is unsafe");let e=0;for(;e<t.byteLength;){let i=t.indexOf(10,e);if(i<0)break;let n=this.#u(this.#l(t.subarray(e,i+1)));n&&await n,e=i+1;}e<t.byteLength&&this.#f(t.subarray(e));}async finish(){if(this.#s.length!==0||this.#h===0||!this.#c)throw new Error("checkpoint chunk framing is invalid");if(this.#d>L$1&&this.#h!==1)throw new Error("oversized checkpoint chunk has multiple rows");this.#n({path:this.#i,shapeName:this.#c,recordCount:this.#h,byteLength:this.#d,sha256:this.#o.digest("hex")});let t=this.#e.get(this.#c);if(!t)throw new Error("checkpoint stream chunk state is missing");t.previous={byteLength:this.#d};}#u(t){let e=Q$1(t),i=e.kind==="shape"?e.wref:e.shapeName;if(this.#c!==void 0&&this.#c!==i)throw new Error("checkpoint chunk mixes Shape streams");this.#c=i,this.#h===0&&this.#y(i,t.byteLength);let n=this.#t.get(i)??R$1(i);this.#t.set(i,n),S$1(n,e);let s=this.#r.add(e.durableId);if(this.#h+=1,!Number.isSafeInteger(this.#h))throw new Error("checkpoint chunk row count is unsafe");return s}#f(t){if(t.byteLength!==0&&(this.#s.push(t.slice()),this.#a+=t.byteLength,!Number.isSafeInteger(this.#a)))throw new Error("checkpoint row byte length is unsafe")}#l(t){if(this.#s.length===0)return t;let e=Buffer.concat([...this.#s,t],this.#a+t.byteLength);return this.#s=[],this.#a=0,e}#y(t,e){let i=Number(this.#i.match(/part-(\d{10})\.jsonl$/)?.[1]??-1),n=this.#e.get(t)??{nextPart:0};if(i!==n.nextPart)throw new Error("checkpoint stream chunk parts are not contiguous");if(n.previous&&n.previous.byteLength<=L$1&&n.previous.byteLength+e<=L$1)throw new Error("checkpoint stream chunk closed before the byte limit");n.nextPart+=1,this.#e.set(t,n);}};async function Gt(r,t){return Kt(r,t)}async function Kt(r,t,e={}){let i=await mkdtemp(join(e.scratchParent??tmpdir(),"warmhub-checkpoint-verify-"));await chmod(i,448);let n,s;try{let o=new L(i,e),c=await G(r,p=>o.openEntry(p)),{manifest:h,chunkCount:f}=await o.finish();jt(t,c,h),n={valid:!0,checkpointId:h.checkpointId,repoSeq:h.repoSeq,recordCount:h.recordCount,chunkCount:f,totalBytes:c.byteLength,rootDigest:h.contentSha256,archiveDigest:c.sha256};}catch(o){s=Jt(o);}try{await rm(i,{recursive:!0,force:!0});}catch{s??=new d("scratch_cleanup_failed");}if(s)throw s;if(!n)throw new d("archive_invalid");return n}function jt(r,t,e){if(r&&(O.parse(r.sha256),r.checkpointId!==e.checkpointId||r.repoSeq!==e.repoSeq||r.byteLength!==t.byteLength||r.sha256!==t.sha256))throw new d("archive_integrity_mismatch")}function Jt(r){if(r instanceof d)return r;if(r instanceof E)return new d("source_failed");if(r instanceof g)return new d("duplicate_durable_id");let t=r instanceof Error?r.message:"";return t.includes("manifest")?new d("manifest_invalid"):t.includes("chunk")||t.includes("row")||t.includes("Shape stream")?new d("chunk_invalid"):new d("archive_invalid")}export{d as RepositoryCheckpointVerificationError,Gt as verifyRepositoryCheckpointArchive};//# sourceMappingURL=checkpoint.js.map
|
|
1
|
+
import {R as R$1,Q as Q$1,S as S$1,W as W$1,O,T,U as U$1,V,P as P$1}from'./chunk-AO5UO4EW.js';import {mkdtemp,chmod,rm,open}from'fs/promises';import {tmpdir}from'os';import {join}from'path';import {createHash}from'crypto';import {Writable}from'stream';import {pipeline}from'stream/promises';import {callbackify}from'util';import {createInflateRaw,crc32}from'zlib';import {once}from'events';import {createWriteStream,createReadStream}from'fs';var d=class extends Error{constructor(e){super(rt(e));this.reason=e;}reason;name="RepositoryCheckpointVerificationError"};function rt(r){switch(r){case "source_failed":return "Repository checkpoint source could not be read";case "archive_invalid":return "Repository checkpoint archive is invalid";case "archive_integrity_mismatch":return "Repository checkpoint archive integrity does not match";case "manifest_invalid":return "Repository checkpoint manifest is invalid";case "chunk_invalid":return "Repository checkpoint chunk is invalid";case "duplicate_durable_id":return "Repository checkpoint contains a duplicate durable identity";case "scratch_cleanup_failed":return "Repository checkpoint verifier scratch cleanup failed"}}var H=67324752,ht=33639248,dt=134695760,ut=101075792,ft=117853008,lt=101010256,Y=2056,Z=8,R=45,q=813,z=65535,m=4294967295,W=33,yt=33188,S=64*1024,pt=new RegExp(`^records/[0-9a-f]{64}/part-\\d{${P$1}}\\.jsonl$`),mt=new TextDecoder("utf-8",{fatal:true}),E=class extends Error{};async function G(r,t){let e=new C(r);try{let i=[],n=new Set,s=!1;for(;await e.peekU32()===H;){if(s)throw new Error("manifest must be the final entry");let c=BigInt(e.position),h=await e.readExact(30);It(h);let f=h.readUInt16LE(26),p=h.readUInt16LE(28);if(f===0||p!==20)throw new Error("local entry metadata is invalid");let a=K(await e.readExact(f));if(St(a),n.has(a))throw new Error("archive entry is duplicated");n.add(a),s=a===Q$1,bt(await e.readExact(p));let y=t(a),l=await wt(e,y),et=await e.readExact(24);kt(et,l),await y.finish(),i.push({name:a,localOffset:c,...l});}if(!s||i.length===0)throw new Error("archive manifest entry is missing");return await vt(e,i),{...await e.finish(),entryNames:i.map(c=>c.name)}}finally{await e.close();}}async function wt(r,t){let e=createInflateRaw({chunkSize:S}),i=0n,n=0n,s=0,o=callbackify(async a=>{try{await t.write(a);}catch(y){throw y instanceof Error?y:new Error("checkpoint sink failed")}s=crc32(a,s),n+=BigInt(a.byteLength);}),c=new Writable({highWaterMark:S,write(a,y,l){o(a,l);}}),h=pipeline(e,c),f=new A,p=Et(h,f);try{for(;!e.readableEnded;){let a=await r.readSome(S);if(!a)throw new Error("archive entry is truncated");let y=e.bytesWritten;await gt(e,a,f);let l=e.bytesWritten-y;if(!Number.isSafeInteger(l)||l<0||l>a.byteLength)throw new Error("archive inflater consumed invalid input");if(i+=BigInt(l),l<a.byteLength&&r.unread(a.subarray(l)),e.readableEnded)break;if(l===0)throw new Error("archive inflater made no progress")}return await h,{crc:s>>>0,compressedSize:i,uncompressedSize:n}}finally{e.destroyed||e.destroy(),await p;}}var A=class{#i;#t;fail(t){let e=t instanceof Error?t:new Error("archive inflater failed");this.#i=e,this.#t?.(e),this.#t=void 0;}async race(t){if(this.#i)throw this.#i;let e,i=new Promise((n,s)=>{e=o=>s(o),this.#t=e;});try{return await Promise.race([t,i])}finally{e&&this.#t===e&&(this.#t=void 0);}}};async function Et(r,t){try{await r;}catch(e){t.fail(e);}}async function gt(r,t,e){let i=new Promise((n,s)=>{r.write(t,o=>{o?s(o):n();});});await e.race(i);}async function vt(r,t){let e=BigInt(r.position);for(let h of t){let f=await r.readExact(46);Ut(f,h);let p=f.readUInt16LE(28),a=f.readUInt16LE(30);if(a!==28||f.readUInt16LE(32)!==0)throw new Error("central entry metadata is invalid");if(K(await r.readExact(p))!==h.name)throw new Error("central entry order differs");Lt(await r.readExact(a),h);}let i=BigInt(r.position)-e,n=BigInt(r.position),s=await r.readExact(56);if(w(s,0,ut),s.readBigUInt64LE(4)!==44n||s.readUInt16LE(12)!==q||s.readUInt16LE(14)!==R||s.readUInt32LE(16)!==0||s.readUInt32LE(20)!==0||s.readBigUInt64LE(24)!==BigInt(t.length)||s.readBigUInt64LE(32)!==BigInt(t.length)||s.readBigUInt64LE(40)!==i||s.readBigUInt64LE(48)!==e)throw new Error("ZIP64 end record is invalid");let o=await r.readExact(20);if(w(o,0,ft),o.readUInt32LE(4)!==0||o.readBigUInt64LE(8)!==n||o.readUInt32LE(16)!==1)throw new Error("ZIP64 locator is invalid");let c=await r.readExact(22);if(w(c,0,lt),c.readUInt16LE(4)!==0||c.readUInt16LE(6)!==0||c.readUInt16LE(8)!==z||c.readUInt16LE(10)!==z||c.readUInt32LE(12)!==m||c.readUInt32LE(16)!==m||c.readUInt16LE(20)!==0)throw new Error("classic ZIP end record is invalid")}function It(r){if(w(r,0,H),r.readUInt16LE(4)!==R||r.readUInt16LE(6)!==Y||r.readUInt16LE(8)!==Z||r.readUInt16LE(10)!==0||r.readUInt16LE(12)!==W||r.readUInt32LE(14)!==0||r.readUInt32LE(18)!==m||r.readUInt32LE(22)!==m)throw new Error("local entry header is invalid")}function bt(r){if(r.readUInt16LE(0)!==1||r.readUInt16LE(2)!==16||r.readBigUInt64LE(4)!==0n||r.readBigUInt64LE(12)!==0n)throw new Error("local ZIP64 extra is invalid")}function kt(r,t){if(w(r,0,dt),r.readUInt32LE(4)!==t.crc||r.readBigUInt64LE(8)!==t.compressedSize||r.readBigUInt64LE(16)!==t.uncompressedSize)throw new Error("archive data descriptor is invalid")}function Ut(r,t){if(w(r,0,ht),r.readUInt16LE(4)!==q||r.readUInt16LE(6)!==R||r.readUInt16LE(8)!==Y||r.readUInt16LE(10)!==Z||r.readUInt16LE(12)!==0||r.readUInt16LE(14)!==W||r.readUInt32LE(16)!==t.crc||r.readUInt32LE(20)!==m||r.readUInt32LE(24)!==m||r.readUInt16LE(34)!==0||r.readUInt16LE(36)!==0||(r.readUInt32LE(38)>>>16&65535)!==yt||r.readUInt32LE(42)!==m)throw new Error("central entry header is invalid")}function Lt(r,t){if(r.readUInt16LE(0)!==1||r.readUInt16LE(2)!==24||r.readBigUInt64LE(4)!==t.uncompressedSize||r.readBigUInt64LE(12)!==t.compressedSize||r.readBigUInt64LE(20)!==t.localOffset)throw new Error("central ZIP64 extra is invalid")}function St(r){if(r!==Q$1&&!pt.test(r))throw new Error("archive entry name is invalid")}function K(r){let t=mt.decode(r);if(Buffer.byteLength(t,"utf8")!==r.byteLength)throw new Error("archive entry name is not canonical UTF-8");return t}function w(r,t,e){if(r.readUInt32LE(t)!==e)throw new Error("archive signature is invalid")}var C=class{#i;#t=createHash("sha256");#e=[];#r=0;#n=false;#o=0;position=0;constructor(t){this.#i=At(t)[Symbol.asyncIterator]();}async peekU32(){let t=await this.readExact(4);return this.unread(t),t.readUInt32LE(0)}async readExact(t){let e=Buffer.allocUnsafe(t),i=0;for(;i<t;){let n=await this.readSome(t-i);if(!n)throw new Error("archive is truncated");e.set(n,i),i+=n.byteLength;}return e}async readSome(t){for(;this.#e.length===0;)if(!await this.#s())return;let e=this.#e[0];if(!e)return;let i=e.byteLength-this.#r,n=Math.min(t,i),s=e.subarray(this.#r,this.#r+n);return this.#r+=n,this.position+=n,this.#r===e.byteLength&&(this.#e.shift(),this.#r=0),s}unread(t){if(t.byteLength!==0){if(this.#r>0){let e=this.#e[0];if(!e)throw new Error("archive reader queue is inconsistent");let i=e.subarray(this.#r);this.#e[0]=i,this.#r=0;}this.#e.unshift(t),this.position-=t.byteLength;}}async finish(){if(this.#e.length>0||await this.#s())throw new Error("archive contains trailing bytes");return {byteLength:this.#o,sha256:this.#t.digest("hex")}}async close(){try{await this.#i.return?.();}catch{}}async#s(){if(this.#n)return false;for(;;){let t;try{t=await this.#i.next();}catch{throw new E}if(t.done)return this.#n=true,false;if(!(t.value instanceof Uint8Array))throw new E;if(t.value.byteLength!==0){if(this.#t.update(t.value),this.#o+=t.value.byteLength,!Number.isSafeInteger(this.#o))throw new Error("archive byte length is unsafe");return this.#e.push(t.value),true}}}};function At(r){return Symbol.asyncIterator in r?r:{async*[Symbol.asyncIterator](){let t=r.getReader(),e=false;try{for(;;){let{value:i,done:n}=await t.read();if(n){e=!0;return}yield i;}}finally{if(!e)try{await t.cancel();}catch{}t.releaseLock();}}}}var xt=4*1024*1024,j=8,J=64*1024,Tt=16*1024,u=4,$=4,Ot=1,Vt=u+Ot,X=Vt+$,g=class extends Error{},k=class{#i;#t;#e=[];#r=0;#n;constructor(t,e={}){this.#i=t;let i=e.sortBudgetBytes??xt;if(this.#n=e.mergeFanIn??j,!Number.isSafeInteger(i)||i<X||!Number.isSafeInteger(this.#n)||this.#n<2||this.#n>j)throw new Error("checkpoint identity sort limits are invalid");this.#t=new _(i);}add(t){let e=Buffer.byteLength(t,"utf8");if(!this.#t.canFit(e))throw new Error("checkpoint durable identity exceeds the sort budget");if(this.#t.canAdd(e)){this.#t.add(t,e);return}return this.#o(t,e)}async finish(){if(this.#e.length===0){this.#t.sortAndAssertUnique(),this.#t.clear();return}for(this.#t.isEmpty||await this.#o();this.#e.length>this.#n;){let e=[];for(let i=0;i<this.#e.length;i+=this.#n){let n=this.#e.slice(i,i+this.#n),s=this.#s();await Ft(n,s),await Promise.all(n.map(o=>rm(o,{force:true}))),e.push(s);}this.#e=e;}let t;await tt(this.#e,e=>{if(t&&P(t,e)===0)throw new g;t=e;});}async#o(t,e){let i=this.#s();this.#t.sortAndAssertUnique(),await Mt(i,this.#t),this.#e.push(i),this.#t.clear(),t!==void 0&&e!==void 0&&this.#t.add(t,e);}#s(){let t=join(this.#i,`identity-run-${String(this.#r).padStart(8,"0")}.bin`);return this.#r+=1,t}},_=class{byteBudget;#i;#t;#e=0;#r=0;constructor(t){this.byteBudget=t;let e=Math.floor(t/X);this.#t=new Uint32Array(e),this.#i=Buffer.allocUnsafe(t-e*$);}get isEmpty(){return this.#r===0}canAdd(t){return this.canFit(t)&&this.#r<this.#t.length&&this.#e+u+t<=this.#i.length}canFit(t){return t<=4294967295&&this.#t.length>0&&u+t<=this.#i.length}add(t,e){if(!this.canAdd(e))throw new Error("checkpoint durable identity exceeds the sort budget");let i=this.#e;this.#t[this.#r]=i,this.#i.writeUInt32BE(e,i),this.#i.write(t,i+u,e,"utf8"),this.#e+=u+e,this.#r+=1;}sortAndAssertUnique(){let t=this.#t.subarray(0,this.#r);t.sort((e,i)=>this.#n(e,i));for(let e=1;e<t.length;e+=1){let i=t[e-1],n=t[e];if(i===void 0||n===void 0)throw new Error("checkpoint identity offset is missing");if(this.#n(i,n)===0)throw new g}}clear(){this.#e=0,this.#r=0;}forEachSorted(t){return Dt(this.#t.subarray(0,this.#r),e=>t(this.#s(e)))}#n(t,e){return P(this.#o(t),this.#o(e))}#o(t){let e=this.#i.readUInt32BE(t);return this.#i.subarray(t+u,t+u+e)}#s(t){let e=this.#i.readUInt32BE(t);return this.#i.subarray(t,t+u+e)}};async function Mt(r,t){await Q(r,async e=>{let i=new U(e);await t.forEachSorted(n=>i.write(n)),await i.finish();});}async function Ft(r,t){await Q(t,async e=>{let i=new U(e);await tt(r,n=>i.writeValue(n)),await i.finish();});}async function Q(r,t){await(await open(r,"wx",384)).close();let i=createWriteStream(r,{flags:"a",mode:384,highWaterMark:J});try{await t(i),i.end(),await once(i,"close");}catch(n){throw i.destroy(),n}}var U=class{#i;#t=Buffer.allocUnsafe(J);#e=0;constructor(t){this.#i=t;}write(t){if(t.byteLength>this.#t.length)return this.#r(t);if(this.#e+t.byteLength>this.#t.length)return this.#n(t);this.#t.set(t,this.#e),this.#e+=t.byteLength;}writeValue(t){let e=u+t.byteLength;if(e>this.#t.length)return this.#o(t);if(this.#e+e>this.#t.length)return this.#s(t);this.#c(t);}async finish(){await this.#a();}async#r(t){await this.#a(),await b(this.#i,t);}async#n(t){await this.#a(),this.#t.set(t,this.#e),this.#e+=t.byteLength;}async#o(t){await this.#a();let e=Buffer.allocUnsafe(u);e.writeUInt32BE(t.byteLength,0),await b(this.#i,e),await b(this.#i,t);}async#s(t){await this.#a(),this.#c(t);}async#a(){if(this.#e===0)return;let t=this.#t.subarray(0,this.#e);await b(this.#i,t),this.#e=0;}#c(t){this.#t.writeUInt32BE(t.byteLength,this.#e),this.#t.set(t,this.#e+u),this.#e+=u+t.byteLength;}};async function tt(r,t){let e=r.map(i=>new B(i));try{for(await Promise.all(e.map(i=>i.advance()));;){let i;for(let s of e)s.current&&(!i||P(s.current,i.current)<0)&&(i=s);if(!i?.current)return;let n=t(i.current);n&&await n,await i.advance();}}finally{for(let i of e)i.close();}}var B=class{#i;#t;#e=Buffer.alloc(0);#r=0;current;constructor(t){this.#i=createReadStream(t,{highWaterMark:Tt}),this.#t=this.#i[Symbol.asyncIterator]();}async advance(){let t=await this.#n(u);if(!t){this.current=void 0;return}let e=t.readUInt32BE(0);if(e===0)throw new Error("checkpoint identity run is invalid");let i=await this.#n(e);if(!i)throw new Error("checkpoint identity run is truncated");this.current=i;}close(){this.#i.destroy();}async#n(t){if(t===0)return Buffer.alloc(0);if(this.#e.length-this.#r>=t){let n=this.#e.subarray(this.#r,this.#r+t);return this.#r+=t,n}let e=Buffer.allocUnsafe(t),i=0;for(;i<t;){if(this.#r<this.#e.length){let s=Math.min(t-i,this.#e.length-this.#r);this.#e.copy(e,i,this.#r,this.#r+s),this.#r+=s,i+=s;continue}let n=await this.#t.next();if(n.done){if(i===0)return;throw new Error("checkpoint identity run is truncated")}this.#e=n.value,this.#r=0;}return e}};async function Dt(r,t){for(let e of r){let i=t(e);i&&await i;}}async function b(r,t){await new Promise((e,i)=>{r.write(t,n=>{n?i(n):e();});});}function P(r,t){let e=Math.min(r.length,t.length);for(let i=0;i<e;i+=1){let n=r[i],s=t[i];if(n===void 0||s===void 0)throw new Error("checkpoint identity byte is missing");let o=n-s;if(o!==0)return o}return r.length-t.length}var L=class{#i;#t=new Map;#e=new Map;#r=[];#n;constructor(t,e={}){this.#i=new k(t,{sortBudgetBytes:e.identitySortBudgetBytes,mergeFanIn:e.identityMergeFanIn});}openEntry(t){if(t===Q$1){let e=[];return {write:async i=>{e.push(i.slice());},finish:async()=>{this.#n=Buffer.concat(e);}}}return new N(t,this.#t,this.#e,this.#i,e=>this.#r.push(e))}async finish(){if(!this.#n)throw new Error("checkpoint manifest is missing");let t=await S$1(this.#n),e=t.streams.flatMap(i=>i.chunks.map(n=>({...n,shapeName:i.shapeName})));if(e.length!==this.#r.length)throw new Error("checkpoint chunk inventory does not match");for(let[i,n]of e.entries()){let s=this.#r[i];if(s.path!==n.path||s.shapeName!==n.shapeName||s.recordCount!==n.recordCount||s.byteLength!==n.byteLength||s.sha256!==n.sha256)throw new Error("checkpoint chunk integrity does not match")}for(let i of t.streams){let n=this.#t.get(i.shapeName);if(!n||W$1(n)!==i.recordCount)throw new Error("checkpoint stream does not match its manifest")}if(this.#t.size!==t.streams.length)throw new Error("checkpoint contains an undeclared stream");return await this.#i.finish(),{manifest:t,chunkCount:e.length}}},N=class{#i;#t;#e;#r;#n;#o=createHash("sha256");#s=[];#a=0;#c;#h=0;#d=0;constructor(t,e,i,n,s){this.#i=t,this.#t=e,this.#e=i,this.#r=n,this.#n=s;}async write(t){if(this.#o.update(t),this.#d+=t.byteLength,!Number.isSafeInteger(this.#d))throw new Error("checkpoint chunk byte length is unsafe");let e=0;for(;e<t.byteLength;){let i=t.indexOf(10,e);if(i<0)break;let n=this.#u(this.#l(t.subarray(e,i+1)));n&&await n,e=i+1;}e<t.byteLength&&this.#f(t.subarray(e));}async finish(){if(this.#s.length!==0||this.#h===0||!this.#c)throw new Error("checkpoint chunk framing is invalid");if(this.#d>O&&this.#h!==1)throw new Error("oversized checkpoint chunk has multiple rows");this.#n({path:this.#i,shapeName:this.#c,recordCount:this.#h,byteLength:this.#d,sha256:this.#o.digest("hex")});let t=this.#e.get(this.#c);if(!t)throw new Error("checkpoint stream chunk state is missing");t.previous={byteLength:this.#d};}#u(t){let e=T(t),i=e.kind==="shape"?e.wref:e.shapeName;if(this.#c!==void 0&&this.#c!==i)throw new Error("checkpoint chunk mixes Shape streams");this.#c=i,this.#h===0&&this.#y(i,t.byteLength);let n=this.#t.get(i)??U$1(i);this.#t.set(i,n),V(n,e);let s=this.#r.add(e.durableId);if(this.#h+=1,!Number.isSafeInteger(this.#h))throw new Error("checkpoint chunk row count is unsafe");return s}#f(t){if(t.byteLength!==0&&(this.#s.push(t.slice()),this.#a+=t.byteLength,!Number.isSafeInteger(this.#a)))throw new Error("checkpoint row byte length is unsafe")}#l(t){if(this.#s.length===0)return t;let e=Buffer.concat([...this.#s,t],this.#a+t.byteLength);return this.#s=[],this.#a=0,e}#y(t,e){let i=Number(this.#i.match(/part-(\d{10})\.jsonl$/)?.[1]??-1),n=this.#e.get(t)??{nextPart:0};if(i!==n.nextPart)throw new Error("checkpoint stream chunk parts are not contiguous");if(n.previous&&n.previous.byteLength<=O&&n.previous.byteLength+e<=O)throw new Error("checkpoint stream chunk closed before the byte limit");n.nextPart+=1,this.#e.set(t,n);}};async function Gt(r,t){return Kt(r,t)}async function Kt(r,t,e={}){let i=await mkdtemp(join(e.scratchParent??tmpdir(),"warmhub-checkpoint-verify-"));await chmod(i,448);let n,s;try{let o=new L(i,e),c=await G(r,p=>o.openEntry(p)),{manifest:h,chunkCount:f}=await o.finish();jt(t,c,h),n={valid:!0,checkpointId:h.checkpointId,repoSeq:h.repoSeq,recordCount:h.recordCount,chunkCount:f,totalBytes:c.byteLength,rootDigest:h.contentSha256,archiveDigest:c.sha256};}catch(o){s=Jt(o);}try{await rm(i,{recursive:!0,force:!0});}catch{s??=new d("scratch_cleanup_failed");}if(s)throw s;if(!n)throw new d("archive_invalid");return n}function jt(r,t,e){if(r&&(R$1.parse(r.sha256),r.checkpointId!==e.checkpointId||r.repoSeq!==e.repoSeq||r.byteLength!==t.byteLength||r.sha256!==t.sha256))throw new d("archive_integrity_mismatch")}function Jt(r){if(r instanceof d)return r;if(r instanceof E)return new d("source_failed");if(r instanceof g)return new d("duplicate_durable_id");let t=r instanceof Error?r.message:"";return t.includes("manifest")?new d("manifest_invalid"):t.includes("chunk")||t.includes("row")||t.includes("Shape stream")?new d("chunk_invalid"):new d("archive_invalid")}export{d as RepositoryCheckpointVerificationError,Gt as verifyRepositoryCheckpointArchive};//# sourceMappingURL=checkpoint.js.map
|
|
2
2
|
//# sourceMappingURL=checkpoint.js.map
|
package/dist/checkpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/repository-checkpoint/types.ts","../src/repository-checkpoint/archive-reader.ts","../src/repository-checkpoint/identity-sort.ts","../src/repository-checkpoint/content-verifier.ts","../src/repository-checkpoint/verify.ts"],"names":["RepositoryCheckpointVerificationError","reason","messageForReason","LOCAL_SIGNATURE","CENTRAL_SIGNATURE","DESCRIPTOR_SIGNATURE","ZIP64_END_SIGNATURE","ZIP64_LOCATOR_SIGNATURE","CLASSIC_END_SIGNATURE","ZIP_FLAGS","ZIP_METHOD_DEFLATE","ZIP_VERSION_45","ZIP_VERSION_MADE_BY_UNIX","ZIP64_SENTINEL_16","ZIP64_SENTINEL_32","DOS_EPOCH_DATE","REGULAR_FILE_0644","INFLATE_INPUT_BYTES","CHUNK_PATH","CHECKPOINT_PART_DIGITS","utf8Decoder","CheckpointSourceReadError","readCheckpointZip64Archive","source","openEntry","reader","StreamingByteReader","entries","names","manifestSeen","localOffset","header","assertLocalHeader","nameLength","extraLength","name","decodeEntryName","assertEntryName","CHECKPOINT_MANIFEST_NAME","assertLocalExtra","sink","inflated","inflateEntry","descriptor","assertDescriptor","readCentralDirectory","entry","inflater","createInflateRaw","compressedSize","uncompressedSize","crc","writeChunk","callbackify","bytes","error","crc32","output","Writable","_encoding","done","completed","pipeline","pipelineFailure","PipelineFailureSignal","failureObservation","observePipelineFailure","input","before","writeInflateInput","consumed","#failure","#rejectCurrent","failure","work","rejectCurrent","currentFailure","_resolve","reject","signal","written","resolve","centralOffset","expected","assertCentralHeader","assertCentralExtra","centralSize","zip64Offset","end","requireU32","locator","classic","extra","offset","value","#iterator","#hash","createHash","#queue","#queueOffset","#sourceDone","#loadedBytes","toAsyncIterable","length","result","chunk","limit","#load","head","available","current","CHECKPOINT_IDENTITY_SORT_BUDGET_BYTES","CHECKPOINT_IDENTITY_MERGE_FAN_IN","RUN_BUFFER_BYTES","RUN_READ_BUFFER_BYTES","IDENTITY_LENGTH_BYTES","OFFSET_BYTES","MINIMUM_IDENTITY_BYTES","MINIMUM_RECORD_BYTES","MINIMUM_RESIDENT_BYTES","DuplicateCheckpointDurableIdError","CheckpointIdentitySorter","#scratchPath","#resident","#runs","#nextRun","#mergeFanIn","scratchPath","options","sortBudgetBytes","ResidentDurableIds","durableId","byteLength","#flushRun","nextRuns","group","#runPath","writeMergedRun","path","rm","previous","mergeRuns","compareUtf8Bytes","nextDurableId","nextByteLength","writeResidentRun","join","#records","#offsets","#recordBytes","#count","byteBudget","offsetCapacity","offsets","left","right","#compareAt","index","previousOffset","consume","each","#recordAt","leftOffset","rightOffset","#valueAt","resident","writeRun","writer","BufferedRunWriter","record","inputs","outputPath","produce","open","createWriteStream","once","#output","#buffer","#length","#flushThenWrite","#flushThenBuffer","recordLength","#flushThenWriteValue","#flushThenBufferValue","#writeValue","#flush","batch","paths","cursors","RunCursor","cursor","selected","#stream","#chunk","#offset","createReadStream","#readExactly","copied","next","values","sharedLength","leftByte","rightByte","difference","CheckpointContentVerifier","#identitySorter","#streamStates","#streamChunks","#observedChunks","#manifestBytes","chunks","CheckpointChunkSink","manifest","parseCheckpointManifest","declared","stream","observed","state","finishCheckpointStreamValidation","#path","#completed","#lineFragments","#lineFragmentBytes","#shapeName","#recordCount","#byteLength","streamStates","streamChunks","identitySorter","lf","#consumeRow","#takeLine","#appendLineFragment","CHECKPOINT_CHUNK_BYTE_LIMIT","row","parseCheckpointRowLine","shapeName","#startChunk","createCheckpointStreamValidationState","validateCheckpointStreamRow","flushed","tail","line","firstRowBytes","part","verifyRepositoryCheckpointArchive","verifyRepositoryCheckpointArchiveWithOptions","mkdtemp","tmpdir","chmod","content","archive","chunkCount","assertExpected","mapVerificationError","checkpointSha256Schema","message"],"mappings":"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","file":"checkpoint.js"}
|
|
1
|
+
{"version":3,"sources":["../src/repository-checkpoint/types.ts","../src/repository-checkpoint/archive-reader.ts","../src/repository-checkpoint/identity-sort.ts","../src/repository-checkpoint/content-verifier.ts","../src/repository-checkpoint/verify.ts"],"names":["RepositoryCheckpointVerificationError","reason","messageForReason","LOCAL_SIGNATURE","CENTRAL_SIGNATURE","DESCRIPTOR_SIGNATURE","ZIP64_END_SIGNATURE","ZIP64_LOCATOR_SIGNATURE","CLASSIC_END_SIGNATURE","ZIP_FLAGS","ZIP_METHOD_DEFLATE","ZIP_VERSION_45","ZIP_VERSION_MADE_BY_UNIX","ZIP64_SENTINEL_16","ZIP64_SENTINEL_32","DOS_EPOCH_DATE","REGULAR_FILE_0644","INFLATE_INPUT_BYTES","CHUNK_PATH","CHECKPOINT_PART_DIGITS","utf8Decoder","CheckpointSourceReadError","readCheckpointZip64Archive","source","openEntry","reader","StreamingByteReader","entries","names","manifestSeen","localOffset","header","assertLocalHeader","nameLength","extraLength","name","decodeEntryName","assertEntryName","CHECKPOINT_MANIFEST_NAME","assertLocalExtra","sink","inflated","inflateEntry","descriptor","assertDescriptor","readCentralDirectory","entry","inflater","createInflateRaw","compressedSize","uncompressedSize","crc","writeChunk","callbackify","bytes","error","crc32","output","Writable","_encoding","done","completed","pipeline","pipelineFailure","PipelineFailureSignal","failureObservation","observePipelineFailure","input","before","writeInflateInput","consumed","#failure","#rejectCurrent","failure","work","rejectCurrent","currentFailure","_resolve","reject","signal","written","resolve","centralOffset","expected","assertCentralHeader","assertCentralExtra","centralSize","zip64Offset","end","requireU32","locator","classic","extra","offset","value","#iterator","#hash","createHash","#queue","#queueOffset","#sourceDone","#loadedBytes","toAsyncIterable","length","result","chunk","limit","#load","head","available","current","CHECKPOINT_IDENTITY_SORT_BUDGET_BYTES","CHECKPOINT_IDENTITY_MERGE_FAN_IN","RUN_BUFFER_BYTES","RUN_READ_BUFFER_BYTES","IDENTITY_LENGTH_BYTES","OFFSET_BYTES","MINIMUM_IDENTITY_BYTES","MINIMUM_RECORD_BYTES","MINIMUM_RESIDENT_BYTES","DuplicateCheckpointDurableIdError","CheckpointIdentitySorter","#scratchPath","#resident","#runs","#nextRun","#mergeFanIn","scratchPath","options","sortBudgetBytes","ResidentDurableIds","durableId","byteLength","#flushRun","nextRuns","group","#runPath","writeMergedRun","path","rm","previous","mergeRuns","compareUtf8Bytes","nextDurableId","nextByteLength","writeResidentRun","join","#records","#offsets","#recordBytes","#count","byteBudget","offsetCapacity","offsets","left","right","#compareAt","index","previousOffset","consume","each","#recordAt","leftOffset","rightOffset","#valueAt","resident","writeRun","writer","BufferedRunWriter","record","inputs","outputPath","produce","open","createWriteStream","once","#output","#buffer","#length","#flushThenWrite","#flushThenBuffer","recordLength","#flushThenWriteValue","#flushThenBufferValue","#writeValue","#flush","batch","paths","cursors","RunCursor","cursor","selected","#stream","#chunk","#offset","createReadStream","#readExactly","copied","next","values","sharedLength","leftByte","rightByte","difference","CheckpointContentVerifier","#identitySorter","#streamStates","#streamChunks","#observedChunks","#manifestBytes","chunks","CheckpointChunkSink","manifest","parseCheckpointManifest","declared","stream","observed","state","finishCheckpointStreamValidation","#path","#completed","#lineFragments","#lineFragmentBytes","#shapeName","#recordCount","#byteLength","streamStates","streamChunks","identitySorter","lf","#consumeRow","#takeLine","#appendLineFragment","CHECKPOINT_CHUNK_BYTE_LIMIT","row","parseCheckpointRowLine","shapeName","#startChunk","createCheckpointStreamValidationState","validateCheckpointStreamRow","flushed","tail","line","firstRowBytes","part","verifyRepositoryCheckpointArchive","verifyRepositoryCheckpointArchiveWithOptions","mkdtemp","tmpdir","chmod","content","archive","chunkCount","assertExpected","mapVerificationError","checkpointSha256Schema","message"],"mappings":"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","file":"checkpoint.js"}
|