@schoolai/shipyard 3.12.0 → 3.13.0-rc.20260615.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/dist/capability-detector-worker.js +4 -4
- package/dist/{chunk-3NML6IJM.js → chunk-7MVFHLYV.js} +2 -2
- package/dist/{chunk-GMMRLPGI.js → chunk-BUAEJNUG.js} +78 -13
- package/dist/{chunk-GMMRLPGI.js.map → chunk-BUAEJNUG.js.map} +1 -1
- package/dist/{chunk-HUTIDJIT.js → chunk-IWBDVGD2.js} +634 -29
- package/dist/chunk-IWBDVGD2.js.map +1 -0
- package/dist/{chunk-OCCM6UXW.js → chunk-KUPHN3ZN.js} +2 -2
- package/dist/{chunk-LUKN75OT.js → chunk-M3WBYTB3.js} +4 -2
- package/dist/chunk-M3WBYTB3.js.map +1 -0
- package/dist/{chunk-KJAEED3H.js → chunk-MR6HRO7R.js} +3 -3
- package/dist/{chunk-Q6JQK2DR.js → chunk-OX3UY44R.js} +4 -4
- package/dist/{chunk-LXFMCDAZ.js → chunk-RCEAMZVG.js} +2 -2
- package/dist/cursor-runner.js +3 -3
- package/dist/electron-utility.js +2 -2
- package/dist/index.js +5 -5
- package/dist/{login-2DJVKACB.js → login-HRR3T4SZ.js} +3 -3
- package/dist/{plan-backfill-S7FKJVOP.js → plan-backfill-QNJUWOYP.js} +4 -4
- package/dist/{roi-PTTYX6XY.js → roi-HNJRISLW.js} +11 -12
- package/dist/roi-HNJRISLW.js.map +1 -0
- package/dist/{serve-2N7BIGRO.js → serve-3N7IHREI.js} +718 -268
- package/dist/{serve-2N7BIGRO.js.map → serve-3N7IHREI.js.map} +1 -1
- package/dist/{start-GKHRXDGA.js → start-UPNI6OOF.js} +6 -6
- package/package.json +1 -1
- package/dist/chunk-HUTIDJIT.js.map +0 -1
- package/dist/chunk-LUKN75OT.js.map +0 -1
- package/dist/roi-PTTYX6XY.js.map +0 -1
- /package/dist/{chunk-3NML6IJM.js.map → chunk-7MVFHLYV.js.map} +0 -0
- /package/dist/{chunk-OCCM6UXW.js.map → chunk-KUPHN3ZN.js.map} +0 -0
- /package/dist/{chunk-KJAEED3H.js.map → chunk-MR6HRO7R.js.map} +0 -0
- /package/dist/{chunk-Q6JQK2DR.js.map → chunk-OX3UY44R.js.map} +0 -0
- /package/dist/{chunk-LXFMCDAZ.js.map → chunk-RCEAMZVG.js.map} +0 -0
- /package/dist/{login-2DJVKACB.js.map → login-HRR3T4SZ.js.map} +0 -0
- /package/dist/{plan-backfill-S7FKJVOP.js.map → plan-backfill-QNJUWOYP.js.map} +0 -0
- /package/dist/{start-GKHRXDGA.js.map → start-UPNI6OOF.js.map} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
PUBLISHED_PREVIEW_KINDS,
|
|
4
4
|
PUBLISH_TTL_CHOICES
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-M3WBYTB3.js";
|
|
6
6
|
import {
|
|
7
7
|
external_exports
|
|
8
8
|
} from "./chunk-JCEWPG3R.js";
|
|
@@ -11538,11 +11538,11 @@ var fromCodePoint = (
|
|
|
11538
11538
|
}
|
|
11539
11539
|
);
|
|
11540
11540
|
function replaceCodePoint(codePoint) {
|
|
11541
|
-
var
|
|
11541
|
+
var _a3;
|
|
11542
11542
|
if (codePoint >= 55296 && codePoint <= 57343 || codePoint > 1114111) {
|
|
11543
11543
|
return 65533;
|
|
11544
11544
|
}
|
|
11545
|
-
return (
|
|
11545
|
+
return (_a3 = decodeMap.get(codePoint)) !== null && _a3 !== void 0 ? _a3 : codePoint;
|
|
11546
11546
|
}
|
|
11547
11547
|
|
|
11548
11548
|
// ../../node_modules/.pnpm/entities@4.5.0/node_modules/entities/lib/esm/decode.js
|
|
@@ -11739,9 +11739,9 @@ var EntityDecoder = class {
|
|
|
11739
11739
|
* @returns The number of characters that were consumed.
|
|
11740
11740
|
*/
|
|
11741
11741
|
emitNumericEntity(lastCp, expectedLength) {
|
|
11742
|
-
var
|
|
11742
|
+
var _a3;
|
|
11743
11743
|
if (this.consumed <= expectedLength) {
|
|
11744
|
-
(
|
|
11744
|
+
(_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
|
|
11745
11745
|
return 0;
|
|
11746
11746
|
}
|
|
11747
11747
|
if (lastCp === CharCodes.SEMI) {
|
|
@@ -11801,11 +11801,11 @@ var EntityDecoder = class {
|
|
|
11801
11801
|
* @returns The number of characters consumed.
|
|
11802
11802
|
*/
|
|
11803
11803
|
emitNotTerminatedNamedEntity() {
|
|
11804
|
-
var
|
|
11804
|
+
var _a3;
|
|
11805
11805
|
const { result, decodeTree } = this;
|
|
11806
11806
|
const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;
|
|
11807
11807
|
this.emitNamedEntityData(result, valueLength, this.consumed);
|
|
11808
|
-
(
|
|
11808
|
+
(_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.missingSemicolonAfterCharacterReference();
|
|
11809
11809
|
return this.consumed;
|
|
11810
11810
|
}
|
|
11811
11811
|
/**
|
|
@@ -11833,7 +11833,7 @@ var EntityDecoder = class {
|
|
|
11833
11833
|
* @returns The number of characters consumed.
|
|
11834
11834
|
*/
|
|
11835
11835
|
end() {
|
|
11836
|
-
var
|
|
11836
|
+
var _a3;
|
|
11837
11837
|
switch (this.state) {
|
|
11838
11838
|
case EntityDecoderState.NamedEntity: {
|
|
11839
11839
|
return this.result !== 0 && (this.decodeMode !== DecodingMode.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
|
|
@@ -11846,7 +11846,7 @@ var EntityDecoder = class {
|
|
|
11846
11846
|
return this.emitNumericEntity(0, 3);
|
|
11847
11847
|
}
|
|
11848
11848
|
case EntityDecoderState.NumericStart: {
|
|
11849
|
-
(
|
|
11849
|
+
(_a3 = this.errors) === null || _a3 === void 0 ? void 0 : _a3.absenceOfDigitsInNumericCharacterReference(this.consumed);
|
|
11850
11850
|
return 0;
|
|
11851
11851
|
}
|
|
11852
11852
|
case EntityDecoderState.EntityStart: {
|
|
@@ -12842,21 +12842,21 @@ function linkify(state) {
|
|
|
12842
12842
|
if (links.length > 0 && links[0].index === 0 && i > 0 && tokens[i - 1].type === "text_special") {
|
|
12843
12843
|
links = links.slice(1);
|
|
12844
12844
|
}
|
|
12845
|
-
for (let
|
|
12846
|
-
const url = links[
|
|
12845
|
+
for (let ln2 = 0; ln2 < links.length; ln2++) {
|
|
12846
|
+
const url = links[ln2].url;
|
|
12847
12847
|
const fullUrl = state.md.normalizeLink(url);
|
|
12848
12848
|
if (!state.md.validateLink(fullUrl)) {
|
|
12849
12849
|
continue;
|
|
12850
12850
|
}
|
|
12851
|
-
let urlText = links[
|
|
12852
|
-
if (!links[
|
|
12851
|
+
let urlText = links[ln2].text;
|
|
12852
|
+
if (!links[ln2].schema) {
|
|
12853
12853
|
urlText = state.md.normalizeLinkText("http://" + urlText).replace(/^http:\/\//, "");
|
|
12854
|
-
} else if (links[
|
|
12854
|
+
} else if (links[ln2].schema === "mailto:" && !/^mailto:/i.test(urlText)) {
|
|
12855
12855
|
urlText = state.md.normalizeLinkText("mailto:" + urlText).replace(/^mailto:/, "");
|
|
12856
12856
|
} else {
|
|
12857
12857
|
urlText = state.md.normalizeLinkText(urlText);
|
|
12858
12858
|
}
|
|
12859
|
-
const pos = links[
|
|
12859
|
+
const pos = links[ln2].index;
|
|
12860
12860
|
if (pos > lastPos) {
|
|
12861
12861
|
const token = new state.Token("text", "", 0);
|
|
12862
12862
|
token.content = text2.slice(lastPos, pos);
|
|
@@ -12878,7 +12878,7 @@ function linkify(state) {
|
|
|
12878
12878
|
token_c.markup = "linkify";
|
|
12879
12879
|
token_c.info = "auto";
|
|
12880
12880
|
nodes.push(token_c);
|
|
12881
|
-
lastPos = links[
|
|
12881
|
+
lastPos = links[ln2].lastIndex;
|
|
12882
12882
|
}
|
|
12883
12883
|
if (lastPos < text2.length) {
|
|
12884
12884
|
const token = new state.Token("text", "", 0);
|
|
@@ -15308,8 +15308,8 @@ function isLinkClose2(str) {
|
|
|
15308
15308
|
return /^<\/a\s*>/i.test(str);
|
|
15309
15309
|
}
|
|
15310
15310
|
function isLetter(ch) {
|
|
15311
|
-
const
|
|
15312
|
-
return
|
|
15311
|
+
const lc2 = ch | 32;
|
|
15312
|
+
return lc2 >= 97 && lc2 <= 122;
|
|
15313
15313
|
}
|
|
15314
15314
|
function html_inline(state, silent) {
|
|
15315
15315
|
if (!state.md.options.html) {
|
|
@@ -17904,6 +17904,18 @@ var PlanRepository = class {
|
|
|
17904
17904
|
docIdFor(taskId) {
|
|
17905
17905
|
return buildPlanDocId(taskId, this.#epoch);
|
|
17906
17906
|
}
|
|
17907
|
+
/**
|
|
17908
|
+
* FM-2: whether this task's plan doc has on-disk chunks. Returns `null` when no
|
|
17909
|
+
* storage boundary is injected (browser repos, in-memory tests) — the caller
|
|
17910
|
+
* then can't distinguish transient-error from absent and falls back to its
|
|
17911
|
+
* prior behavior. A non-null boolean lets the lazy rebuild treat
|
|
17912
|
+
* "empty-read-but-dir-present" as a transient storage error rather than a
|
|
17913
|
+
* confirmed-absent doc, so it never clobbers a real on-disk plan.
|
|
17914
|
+
*/
|
|
17915
|
+
async hasOnDiskDoc(taskId) {
|
|
17916
|
+
if (!this.#storageBoundary) return null;
|
|
17917
|
+
return this.#storageBoundary.hasDoc(buildPlanDocId(taskId, this.#epoch));
|
|
17918
|
+
}
|
|
17907
17919
|
dispose() {
|
|
17908
17920
|
this.#planDocs.clear();
|
|
17909
17921
|
this.#subscriberCounts.clear();
|
|
@@ -19151,6 +19163,7 @@ var TokenCategoryItemSchema = external_exports.object({
|
|
|
19151
19163
|
var PersistedTurnStatsSchema = external_exports.object({
|
|
19152
19164
|
type: external_exports.literal("turn_stats"),
|
|
19153
19165
|
taskId: external_exports.string(),
|
|
19166
|
+
threadId: external_exports.string().optional(),
|
|
19154
19167
|
totalCostUsd: external_exports.number(),
|
|
19155
19168
|
durationMs: external_exports.number(),
|
|
19156
19169
|
durationApiMs: external_exports.number(),
|
|
@@ -19594,6 +19607,7 @@ var TaskRecordSchema = external_exports.object({
|
|
|
19594
19607
|
* `claude --resume <sessionId>`.
|
|
19595
19608
|
*/
|
|
19596
19609
|
currentSessionId: external_exports.string().nullable().default(null),
|
|
19610
|
+
clearedAtSeqNo: external_exports.number().int().nullable().default(null),
|
|
19597
19611
|
/**
|
|
19598
19612
|
* Drives the browser overlay shown during task bring-up. `starting_from_linear`
|
|
19599
19613
|
* means the daemon is provisioning a worktree + first message before unmasking
|
|
@@ -21721,7 +21735,19 @@ var BrowserToDaemonControlMessageSchema = external_exports.discriminatedUnion("t
|
|
|
21721
21735
|
* Optional/nullable: pre-PROTOCOL_VERSION 60 browsers omit this and the
|
|
21722
21736
|
* daemon falls back to the cached snapshot (existing behavior).
|
|
21723
21737
|
*/
|
|
21724
|
-
force: external_exports.boolean().optional()
|
|
21738
|
+
force: external_exports.boolean().optional(),
|
|
21739
|
+
/**
|
|
21740
|
+
* The browser's PROTOCOL_VERSION, advertised on the first
|
|
21741
|
+
* `request_capabilities` frame sent after the data channel opens
|
|
21742
|
+
* (PROTOCOL_VERSION 139). The daemon uses this to gate per-peer
|
|
21743
|
+
* deflate compression on the outbound daemon-control channel:
|
|
21744
|
+
* frames ≥ 1 KB are compressed only when this value is ≥
|
|
21745
|
+
* CONTROL_COMPRESSION_MIN_VERSION (= 139).
|
|
21746
|
+
*
|
|
21747
|
+
* Additive / optional: pre-v139 browsers omit this field; the daemon
|
|
21748
|
+
* treats its absence as "compression not supported" and sends plain JSON.
|
|
21749
|
+
*/
|
|
21750
|
+
protocolVersion: external_exports.number().int().optional()
|
|
21725
21751
|
}),
|
|
21726
21752
|
/**
|
|
21727
21753
|
* Browser asks the daemon to send the current skills list (PROTOCOL_VERSION
|
|
@@ -21997,6 +22023,16 @@ var BrowserToDaemonControlMessageSchema = external_exports.discriminatedUnion("t
|
|
|
21997
22023
|
ids: external_exports.array(external_exports.string())
|
|
21998
22024
|
}),
|
|
21999
22025
|
external_exports.object({ type: external_exports.literal("request_annotation_snapshot"), taskId: external_exports.string() }),
|
|
22026
|
+
/**
|
|
22027
|
+
* Browser asks the daemon to re-push the visualization HTML for a task's
|
|
22028
|
+
* canvas `html` elements (PROTOCOL_VERSION 137). Mirrors
|
|
22029
|
+
* `request_annotation_snapshot`: fired on control-channel open + task-switch
|
|
22030
|
+
* so a reloaded browser (whose sessionStorage viz cache was cleared) re-pulls
|
|
22031
|
+
* content the CRDT element references by slug. The daemon responds with the
|
|
22032
|
+
* existing `viz_content_batch`. Pre-137 daemons `safeParse`-drop this and the
|
|
22033
|
+
* browser falls back to the inline CRDT `data.content` (no regression).
|
|
22034
|
+
*/
|
|
22035
|
+
external_exports.object({ type: external_exports.literal("request_viz_content_batch"), taskId: external_exports.string() }),
|
|
22000
22036
|
/**
|
|
22001
22037
|
* Browser asks for the heavy DOM-detail fields stripped from
|
|
22002
22038
|
* `annotation_snapshot` / `annotation_added` (elementHtml, cssClasses,
|
|
@@ -23409,7 +23445,11 @@ var DaemonToBrowserControlMessageSchema = external_exports.discriminatedUnion("t
|
|
|
23409
23445
|
/** Codex BASELINE_TOKENS (~12k) for display calculation. Absent for non-Codex runtimes. */
|
|
23410
23446
|
nativeBaseline: external_exports.number().optional()
|
|
23411
23447
|
}),
|
|
23412
|
-
external_exports.object({
|
|
23448
|
+
external_exports.object({
|
|
23449
|
+
type: external_exports.literal("session_cleared"),
|
|
23450
|
+
taskId: external_exports.string(),
|
|
23451
|
+
clearedAtSeqNo: external_exports.number().int().default(-1)
|
|
23452
|
+
}),
|
|
23413
23453
|
/**
|
|
23414
23454
|
* Cross-runtime handoff result (PROTOCOL_VERSION 114). Emitted by the
|
|
23415
23455
|
* daemon on each per-runtime import path (Claude sessionStore prep,
|
|
@@ -24234,9 +24274,22 @@ function parseFileUri(uri) {
|
|
|
24234
24274
|
function classifyCriticality(msg) {
|
|
24235
24275
|
switch (msg.type) {
|
|
24236
24276
|
/**
|
|
24237
|
-
* Best-effort: idempotent
|
|
24238
|
-
*
|
|
24239
|
-
*
|
|
24277
|
+
* Best-effort: idempotent fanout messages that self-correct on the next
|
|
24278
|
+
* emission and do not block any awaited browser action.
|
|
24279
|
+
*
|
|
24280
|
+
* - presence_state / presence_delta: A dropped delta is corrected by the
|
|
24281
|
+
* next snapshot. Presence staleness for <1s is imperceptible; these are
|
|
24282
|
+
* high-frequency during agent runs.
|
|
24283
|
+
*
|
|
24284
|
+
* - resource_batch_state: Drives the "Send now" countdown UI
|
|
24285
|
+
* (useResourceBatchStore ← batch-countdown.tsx). The snapshot is
|
|
24286
|
+
* replace-not-merge — the store self-corrects on the next live emit or
|
|
24287
|
+
* on a turn-end `flushAt: null`. A mid-turn reconnect is also covered:
|
|
24288
|
+
* the browser control-channel manager's dc close handler calls
|
|
24289
|
+
* `useResourceBatchStore.getState().clearAll()` so no stale countdown
|
|
24290
|
+
* lingers after the channel tears down. Moving out of the ALO outbox
|
|
24291
|
+
* eliminates 154 K persisted sends / 44 MB per 48 h while the browser
|
|
24292
|
+
* still receives every emission over the live channel.
|
|
24240
24293
|
*
|
|
24241
24294
|
* ALL other messages stay critical regardless of topic, because they are
|
|
24242
24295
|
* `requestId`-correlated replies (browser awaits with a 30s timeout and
|
|
@@ -24245,6 +24298,7 @@ function classifyCriticality(msg) {
|
|
|
24245
24298
|
*/
|
|
24246
24299
|
case "presence_state":
|
|
24247
24300
|
case "presence_delta":
|
|
24301
|
+
case "resource_batch_state":
|
|
24248
24302
|
return "best-effort";
|
|
24249
24303
|
/**
|
|
24250
24304
|
* Critical: everything else. Includes (but is not limited to):
|
|
@@ -24312,7 +24366,6 @@ function classifyCriticality(msg) {
|
|
|
24312
24366
|
case "plugin_cc_install_status":
|
|
24313
24367
|
case "plugin_cc_uninstall_status":
|
|
24314
24368
|
case "plugin_data_response":
|
|
24315
|
-
case "resource_batch_state":
|
|
24316
24369
|
case "resource_changed":
|
|
24317
24370
|
case "resource_read_response":
|
|
24318
24371
|
case "agent_install_status":
|
|
@@ -27287,11 +27340,30 @@ var ChunkReassembler = class {
|
|
|
27287
27340
|
);
|
|
27288
27341
|
return assembled;
|
|
27289
27342
|
}
|
|
27290
|
-
/**
|
|
27291
|
-
|
|
27343
|
+
/**
|
|
27344
|
+
* Try to parse raw data, handling chunked messages and optional inflation
|
|
27345
|
+
* transparently.
|
|
27346
|
+
*
|
|
27347
|
+
* @param data - The raw string received from the data channel.
|
|
27348
|
+
* @param inflate - Optional transform applied to the fully-assembled string
|
|
27349
|
+
* BEFORE JSON.parse. Used by the control channel to inflate compressed
|
|
27350
|
+
* frames (PROTOCOL_VERSION 139). The inflater is a no-op for plain frames
|
|
27351
|
+
* (it returns the input unchanged when no marker is present), so passing
|
|
27352
|
+
* `maybeInflateControlFrame` is safe even when compression is not in use.
|
|
27353
|
+
* Applied to both single-message and reassembled-chunk paths so that
|
|
27354
|
+
* compressed chunked messages are handled correctly.
|
|
27355
|
+
*/
|
|
27356
|
+
parseOrReassemble(data, inflate) {
|
|
27292
27357
|
let parsed;
|
|
27358
|
+
let inflated;
|
|
27359
|
+
try {
|
|
27360
|
+
inflated = inflate ? inflate(data) : data;
|
|
27361
|
+
} catch {
|
|
27362
|
+
this.#log(`[ControlChannelManager] control frame inflate failed`);
|
|
27363
|
+
return null;
|
|
27364
|
+
}
|
|
27293
27365
|
try {
|
|
27294
|
-
parsed = JSON.parse(
|
|
27366
|
+
parsed = JSON.parse(inflated);
|
|
27295
27367
|
} catch {
|
|
27296
27368
|
this.#log(`[ControlChannelManager] Invalid JSON from daemon`);
|
|
27297
27369
|
return null;
|
|
@@ -27305,8 +27377,15 @@ var ChunkReassembler = class {
|
|
|
27305
27377
|
};
|
|
27306
27378
|
const reassembled = this.reassemble(chunk);
|
|
27307
27379
|
if (!reassembled) return null;
|
|
27380
|
+
let inflatedReassembled;
|
|
27308
27381
|
try {
|
|
27309
|
-
|
|
27382
|
+
inflatedReassembled = inflate ? inflate(reassembled) : reassembled;
|
|
27383
|
+
} catch {
|
|
27384
|
+
this.#log(`[ControlChannelManager] control frame inflate failed`);
|
|
27385
|
+
return null;
|
|
27386
|
+
}
|
|
27387
|
+
try {
|
|
27388
|
+
return JSON.parse(inflatedReassembled);
|
|
27310
27389
|
} catch {
|
|
27311
27390
|
this.#log(`[ControlChannelManager] Invalid JSON after chunk reassembly`);
|
|
27312
27391
|
return null;
|
|
@@ -27344,6 +27423,531 @@ function chunkSerializedMessage(data, opts) {
|
|
|
27344
27423
|
return chunks;
|
|
27345
27424
|
}
|
|
27346
27425
|
|
|
27426
|
+
// ../../node_modules/.pnpm/fflate@0.8.3/node_modules/fflate/esm/index.mjs
|
|
27427
|
+
import { createRequire } from "module";
|
|
27428
|
+
var require2 = createRequire("/");
|
|
27429
|
+
var _a2;
|
|
27430
|
+
var Worker;
|
|
27431
|
+
var isMarkedAsUntransferable;
|
|
27432
|
+
try {
|
|
27433
|
+
_a2 = require2("worker_threads"), Worker = _a2.Worker, isMarkedAsUntransferable = _a2.isMarkedAsUntransferable;
|
|
27434
|
+
} catch (e) {
|
|
27435
|
+
}
|
|
27436
|
+
var u8 = Uint8Array;
|
|
27437
|
+
var u16 = Uint16Array;
|
|
27438
|
+
var i32 = Int32Array;
|
|
27439
|
+
var fleb = new u8([
|
|
27440
|
+
0,
|
|
27441
|
+
0,
|
|
27442
|
+
0,
|
|
27443
|
+
0,
|
|
27444
|
+
0,
|
|
27445
|
+
0,
|
|
27446
|
+
0,
|
|
27447
|
+
0,
|
|
27448
|
+
1,
|
|
27449
|
+
1,
|
|
27450
|
+
1,
|
|
27451
|
+
1,
|
|
27452
|
+
2,
|
|
27453
|
+
2,
|
|
27454
|
+
2,
|
|
27455
|
+
2,
|
|
27456
|
+
3,
|
|
27457
|
+
3,
|
|
27458
|
+
3,
|
|
27459
|
+
3,
|
|
27460
|
+
4,
|
|
27461
|
+
4,
|
|
27462
|
+
4,
|
|
27463
|
+
4,
|
|
27464
|
+
5,
|
|
27465
|
+
5,
|
|
27466
|
+
5,
|
|
27467
|
+
5,
|
|
27468
|
+
0,
|
|
27469
|
+
/* unused */
|
|
27470
|
+
0,
|
|
27471
|
+
0,
|
|
27472
|
+
/* impossible */
|
|
27473
|
+
0
|
|
27474
|
+
]);
|
|
27475
|
+
var fdeb = new u8([
|
|
27476
|
+
0,
|
|
27477
|
+
0,
|
|
27478
|
+
0,
|
|
27479
|
+
0,
|
|
27480
|
+
1,
|
|
27481
|
+
1,
|
|
27482
|
+
2,
|
|
27483
|
+
2,
|
|
27484
|
+
3,
|
|
27485
|
+
3,
|
|
27486
|
+
4,
|
|
27487
|
+
4,
|
|
27488
|
+
5,
|
|
27489
|
+
5,
|
|
27490
|
+
6,
|
|
27491
|
+
6,
|
|
27492
|
+
7,
|
|
27493
|
+
7,
|
|
27494
|
+
8,
|
|
27495
|
+
8,
|
|
27496
|
+
9,
|
|
27497
|
+
9,
|
|
27498
|
+
10,
|
|
27499
|
+
10,
|
|
27500
|
+
11,
|
|
27501
|
+
11,
|
|
27502
|
+
12,
|
|
27503
|
+
12,
|
|
27504
|
+
13,
|
|
27505
|
+
13,
|
|
27506
|
+
/* unused */
|
|
27507
|
+
0,
|
|
27508
|
+
0
|
|
27509
|
+
]);
|
|
27510
|
+
var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
|
|
27511
|
+
var freb = function(eb, start) {
|
|
27512
|
+
var b = new u16(31);
|
|
27513
|
+
for (var i = 0; i < 31; ++i) {
|
|
27514
|
+
b[i] = start += 1 << eb[i - 1];
|
|
27515
|
+
}
|
|
27516
|
+
var r = new i32(b[30]);
|
|
27517
|
+
for (var i = 1; i < 30; ++i) {
|
|
27518
|
+
for (var j = b[i]; j < b[i + 1]; ++j) {
|
|
27519
|
+
r[j] = j - b[i] << 5 | i;
|
|
27520
|
+
}
|
|
27521
|
+
}
|
|
27522
|
+
return { b, r };
|
|
27523
|
+
};
|
|
27524
|
+
var _a2 = freb(fleb, 2);
|
|
27525
|
+
var fl = _a2.b;
|
|
27526
|
+
var revfl = _a2.r;
|
|
27527
|
+
fl[28] = 258, revfl[258] = 28;
|
|
27528
|
+
var _b = freb(fdeb, 0);
|
|
27529
|
+
var fd = _b.b;
|
|
27530
|
+
var revfd = _b.r;
|
|
27531
|
+
var rev = new u16(32768);
|
|
27532
|
+
for (i = 0; i < 32768; ++i) {
|
|
27533
|
+
x = (i & 43690) >> 1 | (i & 21845) << 1;
|
|
27534
|
+
x = (x & 52428) >> 2 | (x & 13107) << 2;
|
|
27535
|
+
x = (x & 61680) >> 4 | (x & 3855) << 4;
|
|
27536
|
+
rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;
|
|
27537
|
+
}
|
|
27538
|
+
var x;
|
|
27539
|
+
var i;
|
|
27540
|
+
var hMap = (function(cd, mb, r) {
|
|
27541
|
+
var s = cd.length;
|
|
27542
|
+
var i = 0;
|
|
27543
|
+
var l = new u16(mb);
|
|
27544
|
+
for (; i < s; ++i) {
|
|
27545
|
+
if (cd[i])
|
|
27546
|
+
++l[cd[i] - 1];
|
|
27547
|
+
}
|
|
27548
|
+
var le = new u16(mb);
|
|
27549
|
+
for (i = 1; i < mb; ++i) {
|
|
27550
|
+
le[i] = le[i - 1] + l[i - 1] << 1;
|
|
27551
|
+
}
|
|
27552
|
+
var co;
|
|
27553
|
+
if (r) {
|
|
27554
|
+
co = new u16(1 << mb);
|
|
27555
|
+
var rvb = 15 - mb;
|
|
27556
|
+
for (i = 0; i < s; ++i) {
|
|
27557
|
+
if (cd[i]) {
|
|
27558
|
+
var sv = i << 4 | cd[i];
|
|
27559
|
+
var r_1 = mb - cd[i];
|
|
27560
|
+
var v = le[cd[i] - 1]++ << r_1;
|
|
27561
|
+
for (var m = v | (1 << r_1) - 1; v <= m; ++v) {
|
|
27562
|
+
co[rev[v] >> rvb] = sv;
|
|
27563
|
+
}
|
|
27564
|
+
}
|
|
27565
|
+
}
|
|
27566
|
+
} else {
|
|
27567
|
+
co = new u16(s);
|
|
27568
|
+
for (i = 0; i < s; ++i) {
|
|
27569
|
+
if (cd[i]) {
|
|
27570
|
+
co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i];
|
|
27571
|
+
}
|
|
27572
|
+
}
|
|
27573
|
+
}
|
|
27574
|
+
return co;
|
|
27575
|
+
});
|
|
27576
|
+
var flt = new u8(288);
|
|
27577
|
+
for (i = 0; i < 144; ++i)
|
|
27578
|
+
flt[i] = 8;
|
|
27579
|
+
var i;
|
|
27580
|
+
for (i = 144; i < 256; ++i)
|
|
27581
|
+
flt[i] = 9;
|
|
27582
|
+
var i;
|
|
27583
|
+
for (i = 256; i < 280; ++i)
|
|
27584
|
+
flt[i] = 7;
|
|
27585
|
+
var i;
|
|
27586
|
+
for (i = 280; i < 288; ++i)
|
|
27587
|
+
flt[i] = 8;
|
|
27588
|
+
var i;
|
|
27589
|
+
var fdt = new u8(32);
|
|
27590
|
+
for (i = 0; i < 32; ++i)
|
|
27591
|
+
fdt[i] = 5;
|
|
27592
|
+
var i;
|
|
27593
|
+
var flm = /* @__PURE__ */ hMap(flt, 9, 0);
|
|
27594
|
+
var fdm = /* @__PURE__ */ hMap(fdt, 5, 0);
|
|
27595
|
+
var shft = function(p) {
|
|
27596
|
+
return (p + 7) / 8 | 0;
|
|
27597
|
+
};
|
|
27598
|
+
var slc = function(v, s, e) {
|
|
27599
|
+
if (s == null || s < 0)
|
|
27600
|
+
s = 0;
|
|
27601
|
+
if (e == null || e > v.length)
|
|
27602
|
+
e = v.length;
|
|
27603
|
+
return new u8(v.subarray(s, e));
|
|
27604
|
+
};
|
|
27605
|
+
var wbits = function(d, p, v) {
|
|
27606
|
+
v <<= p & 7;
|
|
27607
|
+
var o = p / 8 | 0;
|
|
27608
|
+
d[o] |= v;
|
|
27609
|
+
d[o + 1] |= v >> 8;
|
|
27610
|
+
};
|
|
27611
|
+
var wbits16 = function(d, p, v) {
|
|
27612
|
+
v <<= p & 7;
|
|
27613
|
+
var o = p / 8 | 0;
|
|
27614
|
+
d[o] |= v;
|
|
27615
|
+
d[o + 1] |= v >> 8;
|
|
27616
|
+
d[o + 2] |= v >> 16;
|
|
27617
|
+
};
|
|
27618
|
+
var hTree = function(d, mb) {
|
|
27619
|
+
var t = [];
|
|
27620
|
+
for (var i = 0; i < d.length; ++i) {
|
|
27621
|
+
if (d[i])
|
|
27622
|
+
t.push({ s: i, f: d[i] });
|
|
27623
|
+
}
|
|
27624
|
+
var s = t.length;
|
|
27625
|
+
var t2 = t.slice();
|
|
27626
|
+
if (!s)
|
|
27627
|
+
return { t: et, l: 0 };
|
|
27628
|
+
if (s == 1) {
|
|
27629
|
+
var v = new u8(t[0].s + 1);
|
|
27630
|
+
v[t[0].s] = 1;
|
|
27631
|
+
return { t: v, l: 1 };
|
|
27632
|
+
}
|
|
27633
|
+
t.sort(function(a, b) {
|
|
27634
|
+
return a.f - b.f;
|
|
27635
|
+
});
|
|
27636
|
+
t.push({ s: -1, f: 25001 });
|
|
27637
|
+
var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;
|
|
27638
|
+
t[0] = { s: -1, f: l.f + r.f, l, r };
|
|
27639
|
+
while (i1 != s - 1) {
|
|
27640
|
+
l = t[t[i0].f < t[i2].f ? i0++ : i2++];
|
|
27641
|
+
r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];
|
|
27642
|
+
t[i1++] = { s: -1, f: l.f + r.f, l, r };
|
|
27643
|
+
}
|
|
27644
|
+
var maxSym = t2[0].s;
|
|
27645
|
+
for (var i = 1; i < s; ++i) {
|
|
27646
|
+
if (t2[i].s > maxSym)
|
|
27647
|
+
maxSym = t2[i].s;
|
|
27648
|
+
}
|
|
27649
|
+
var tr = new u16(maxSym + 1);
|
|
27650
|
+
var mbt = ln(t[i1 - 1], tr, 0);
|
|
27651
|
+
if (mbt > mb) {
|
|
27652
|
+
var i = 0, dt = 0;
|
|
27653
|
+
var lft = mbt - mb, cst = 1 << lft;
|
|
27654
|
+
t2.sort(function(a, b) {
|
|
27655
|
+
return tr[b.s] - tr[a.s] || a.f - b.f;
|
|
27656
|
+
});
|
|
27657
|
+
for (; i < s; ++i) {
|
|
27658
|
+
var i2_1 = t2[i].s;
|
|
27659
|
+
if (tr[i2_1] > mb) {
|
|
27660
|
+
dt += cst - (1 << mbt - tr[i2_1]);
|
|
27661
|
+
tr[i2_1] = mb;
|
|
27662
|
+
} else
|
|
27663
|
+
break;
|
|
27664
|
+
}
|
|
27665
|
+
dt >>= lft;
|
|
27666
|
+
while (dt > 0) {
|
|
27667
|
+
var i2_2 = t2[i].s;
|
|
27668
|
+
if (tr[i2_2] < mb)
|
|
27669
|
+
dt -= 1 << mb - tr[i2_2]++ - 1;
|
|
27670
|
+
else
|
|
27671
|
+
++i;
|
|
27672
|
+
}
|
|
27673
|
+
for (; i >= 0 && dt; --i) {
|
|
27674
|
+
var i2_3 = t2[i].s;
|
|
27675
|
+
if (tr[i2_3] == mb) {
|
|
27676
|
+
--tr[i2_3];
|
|
27677
|
+
++dt;
|
|
27678
|
+
}
|
|
27679
|
+
}
|
|
27680
|
+
mbt = mb;
|
|
27681
|
+
}
|
|
27682
|
+
return { t: new u8(tr), l: mbt };
|
|
27683
|
+
};
|
|
27684
|
+
var ln = function(n, l, d) {
|
|
27685
|
+
return n.s == -1 ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1)) : l[n.s] = d;
|
|
27686
|
+
};
|
|
27687
|
+
var lc = function(c) {
|
|
27688
|
+
var s = c.length;
|
|
27689
|
+
while (s && !c[--s])
|
|
27690
|
+
;
|
|
27691
|
+
var cl = new u16(++s);
|
|
27692
|
+
var cli = 0, cln = c[0], cls = 1;
|
|
27693
|
+
var w = function(v) {
|
|
27694
|
+
cl[cli++] = v;
|
|
27695
|
+
};
|
|
27696
|
+
for (var i = 1; i <= s; ++i) {
|
|
27697
|
+
if (c[i] == cln && i != s)
|
|
27698
|
+
++cls;
|
|
27699
|
+
else {
|
|
27700
|
+
if (!cln && cls > 2) {
|
|
27701
|
+
for (; cls > 138; cls -= 138)
|
|
27702
|
+
w(32754);
|
|
27703
|
+
if (cls > 2) {
|
|
27704
|
+
w(cls > 10 ? cls - 11 << 5 | 28690 : cls - 3 << 5 | 12305);
|
|
27705
|
+
cls = 0;
|
|
27706
|
+
}
|
|
27707
|
+
} else if (cls > 3) {
|
|
27708
|
+
w(cln), --cls;
|
|
27709
|
+
for (; cls > 6; cls -= 6)
|
|
27710
|
+
w(8304);
|
|
27711
|
+
if (cls > 2)
|
|
27712
|
+
w(cls - 3 << 5 | 8208), cls = 0;
|
|
27713
|
+
}
|
|
27714
|
+
while (cls--)
|
|
27715
|
+
w(cln);
|
|
27716
|
+
cls = 1;
|
|
27717
|
+
cln = c[i];
|
|
27718
|
+
}
|
|
27719
|
+
}
|
|
27720
|
+
return { c: cl.subarray(0, cli), n: s };
|
|
27721
|
+
};
|
|
27722
|
+
var clen = function(cf, cl) {
|
|
27723
|
+
var l = 0;
|
|
27724
|
+
for (var i = 0; i < cl.length; ++i)
|
|
27725
|
+
l += cf[i] * cl[i];
|
|
27726
|
+
return l;
|
|
27727
|
+
};
|
|
27728
|
+
var wfblk = function(out, pos, dat) {
|
|
27729
|
+
var s = dat.length;
|
|
27730
|
+
var o = shft(pos + 2);
|
|
27731
|
+
out[o] = s & 255;
|
|
27732
|
+
out[o + 1] = s >> 8;
|
|
27733
|
+
out[o + 2] = out[o] ^ 255;
|
|
27734
|
+
out[o + 3] = out[o + 1] ^ 255;
|
|
27735
|
+
for (var i = 0; i < s; ++i)
|
|
27736
|
+
out[o + i + 4] = dat[i];
|
|
27737
|
+
return (o + 4 + s) * 8;
|
|
27738
|
+
};
|
|
27739
|
+
var wblk = function(dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
|
|
27740
|
+
wbits(out, p++, final);
|
|
27741
|
+
++lf[256];
|
|
27742
|
+
var _a3 = hTree(lf, 15), dlt = _a3.t, mlb = _a3.l;
|
|
27743
|
+
var _b2 = hTree(df, 15), ddt = _b2.t, mdb = _b2.l;
|
|
27744
|
+
var _c = lc(dlt), lclt = _c.c, nlc = _c.n;
|
|
27745
|
+
var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;
|
|
27746
|
+
var lcfreq = new u16(19);
|
|
27747
|
+
for (var i = 0; i < lclt.length; ++i)
|
|
27748
|
+
++lcfreq[lclt[i] & 31];
|
|
27749
|
+
for (var i = 0; i < lcdt.length; ++i)
|
|
27750
|
+
++lcfreq[lcdt[i] & 31];
|
|
27751
|
+
var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;
|
|
27752
|
+
var nlcc = 19;
|
|
27753
|
+
for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)
|
|
27754
|
+
;
|
|
27755
|
+
var flen = bl + 5 << 3;
|
|
27756
|
+
var ftlen = clen(lf, flt) + clen(df, fdt) + eb;
|
|
27757
|
+
var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];
|
|
27758
|
+
if (bs >= 0 && flen <= ftlen && flen <= dtlen)
|
|
27759
|
+
return wfblk(out, p, dat.subarray(bs, bs + bl));
|
|
27760
|
+
var lm, ll, dm, dl;
|
|
27761
|
+
wbits(out, p, 1 + (dtlen < ftlen)), p += 2;
|
|
27762
|
+
if (dtlen < ftlen) {
|
|
27763
|
+
lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;
|
|
27764
|
+
var llm = hMap(lct, mlcb, 0);
|
|
27765
|
+
wbits(out, p, nlc - 257);
|
|
27766
|
+
wbits(out, p + 5, ndc - 1);
|
|
27767
|
+
wbits(out, p + 10, nlcc - 4);
|
|
27768
|
+
p += 14;
|
|
27769
|
+
for (var i = 0; i < nlcc; ++i)
|
|
27770
|
+
wbits(out, p + 3 * i, lct[clim[i]]);
|
|
27771
|
+
p += 3 * nlcc;
|
|
27772
|
+
var lcts = [lclt, lcdt];
|
|
27773
|
+
for (var it = 0; it < 2; ++it) {
|
|
27774
|
+
var clct = lcts[it];
|
|
27775
|
+
for (var i = 0; i < clct.length; ++i) {
|
|
27776
|
+
var len = clct[i] & 31;
|
|
27777
|
+
wbits(out, p, llm[len]), p += lct[len];
|
|
27778
|
+
if (len > 15)
|
|
27779
|
+
wbits(out, p, clct[i] >> 5 & 127), p += clct[i] >> 12;
|
|
27780
|
+
}
|
|
27781
|
+
}
|
|
27782
|
+
} else {
|
|
27783
|
+
lm = flm, ll = flt, dm = fdm, dl = fdt;
|
|
27784
|
+
}
|
|
27785
|
+
for (var i = 0; i < li; ++i) {
|
|
27786
|
+
var sym = syms[i];
|
|
27787
|
+
if (sym > 255) {
|
|
27788
|
+
var len = sym >> 18 & 31;
|
|
27789
|
+
wbits16(out, p, lm[len + 257]), p += ll[len + 257];
|
|
27790
|
+
if (len > 7)
|
|
27791
|
+
wbits(out, p, sym >> 23 & 31), p += fleb[len];
|
|
27792
|
+
var dst = sym & 31;
|
|
27793
|
+
wbits16(out, p, dm[dst]), p += dl[dst];
|
|
27794
|
+
if (dst > 3)
|
|
27795
|
+
wbits16(out, p, sym >> 5 & 8191), p += fdeb[dst];
|
|
27796
|
+
} else {
|
|
27797
|
+
wbits16(out, p, lm[sym]), p += ll[sym];
|
|
27798
|
+
}
|
|
27799
|
+
}
|
|
27800
|
+
wbits16(out, p, lm[256]);
|
|
27801
|
+
return p + ll[256];
|
|
27802
|
+
};
|
|
27803
|
+
var deo = /* @__PURE__ */ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);
|
|
27804
|
+
var et = /* @__PURE__ */ new u8(0);
|
|
27805
|
+
var dflt = function(dat, lvl, plvl, pre, post, st) {
|
|
27806
|
+
var s = st.z || dat.length;
|
|
27807
|
+
var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7e3)) + post);
|
|
27808
|
+
var w = o.subarray(pre, o.length - post);
|
|
27809
|
+
var lst = st.l;
|
|
27810
|
+
var pos = (st.r || 0) & 7;
|
|
27811
|
+
if (lvl) {
|
|
27812
|
+
if (pos)
|
|
27813
|
+
w[0] = st.r >> 3;
|
|
27814
|
+
var opt = deo[lvl - 1];
|
|
27815
|
+
var n = opt >> 13, c = opt & 8191;
|
|
27816
|
+
var msk_1 = (1 << plvl) - 1;
|
|
27817
|
+
var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);
|
|
27818
|
+
var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;
|
|
27819
|
+
var hsh = function(i2) {
|
|
27820
|
+
return (dat[i2] ^ dat[i2 + 1] << bs1_1 ^ dat[i2 + 2] << bs2_1) & msk_1;
|
|
27821
|
+
};
|
|
27822
|
+
var syms = new i32(25e3);
|
|
27823
|
+
var lf = new u16(288), df = new u16(32);
|
|
27824
|
+
var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;
|
|
27825
|
+
for (; i + 2 < s; ++i) {
|
|
27826
|
+
var hv = hsh(i);
|
|
27827
|
+
var imod = i & 32767, pimod = head[hv];
|
|
27828
|
+
prev[imod] = pimod;
|
|
27829
|
+
head[hv] = imod;
|
|
27830
|
+
if (wi <= i) {
|
|
27831
|
+
var rem = s - i;
|
|
27832
|
+
if ((lc_1 > 7e3 || li > 24576) && (rem > 423 || !lst)) {
|
|
27833
|
+
pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);
|
|
27834
|
+
li = lc_1 = eb = 0, bs = i;
|
|
27835
|
+
for (var j = 0; j < 286; ++j)
|
|
27836
|
+
lf[j] = 0;
|
|
27837
|
+
for (var j = 0; j < 30; ++j)
|
|
27838
|
+
df[j] = 0;
|
|
27839
|
+
}
|
|
27840
|
+
var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;
|
|
27841
|
+
if (rem > 2 && hv == hsh(i - dif)) {
|
|
27842
|
+
var maxn = Math.min(n, rem) - 1;
|
|
27843
|
+
var maxd = Math.min(32767, i);
|
|
27844
|
+
var ml = Math.min(258, rem);
|
|
27845
|
+
while (dif <= maxd && --ch_1 && imod != pimod) {
|
|
27846
|
+
if (dat[i + l] == dat[i + l - dif]) {
|
|
27847
|
+
var nl = 0;
|
|
27848
|
+
for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)
|
|
27849
|
+
;
|
|
27850
|
+
if (nl > l) {
|
|
27851
|
+
l = nl, d = dif;
|
|
27852
|
+
if (nl > maxn)
|
|
27853
|
+
break;
|
|
27854
|
+
var mmd = Math.min(dif, nl - 2);
|
|
27855
|
+
var md = 0;
|
|
27856
|
+
for (var j = 0; j < mmd; ++j) {
|
|
27857
|
+
var ti = i - dif + j & 32767;
|
|
27858
|
+
var pti = prev[ti];
|
|
27859
|
+
var cd = ti - pti & 32767;
|
|
27860
|
+
if (cd > md)
|
|
27861
|
+
md = cd, pimod = ti;
|
|
27862
|
+
}
|
|
27863
|
+
}
|
|
27864
|
+
}
|
|
27865
|
+
imod = pimod, pimod = prev[imod];
|
|
27866
|
+
dif += imod - pimod & 32767;
|
|
27867
|
+
}
|
|
27868
|
+
}
|
|
27869
|
+
if (d) {
|
|
27870
|
+
syms[li++] = 268435456 | revfl[l] << 18 | revfd[d];
|
|
27871
|
+
var lin = revfl[l] & 31, din = revfd[d] & 31;
|
|
27872
|
+
eb += fleb[lin] + fdeb[din];
|
|
27873
|
+
++lf[257 + lin];
|
|
27874
|
+
++df[din];
|
|
27875
|
+
wi = i + l;
|
|
27876
|
+
++lc_1;
|
|
27877
|
+
} else {
|
|
27878
|
+
syms[li++] = dat[i];
|
|
27879
|
+
++lf[dat[i]];
|
|
27880
|
+
}
|
|
27881
|
+
}
|
|
27882
|
+
}
|
|
27883
|
+
for (i = Math.max(i, wi); i < s; ++i) {
|
|
27884
|
+
syms[li++] = dat[i];
|
|
27885
|
+
++lf[dat[i]];
|
|
27886
|
+
}
|
|
27887
|
+
pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);
|
|
27888
|
+
if (!lst) {
|
|
27889
|
+
st.r = pos & 7 | w[pos / 8 | 0] << 3;
|
|
27890
|
+
pos -= 7;
|
|
27891
|
+
st.h = head, st.p = prev, st.i = i, st.w = wi;
|
|
27892
|
+
}
|
|
27893
|
+
} else {
|
|
27894
|
+
for (var i = st.w || 0; i < s + lst; i += 65535) {
|
|
27895
|
+
var e = i + 65535;
|
|
27896
|
+
if (e >= s) {
|
|
27897
|
+
w[pos / 8 | 0] = lst;
|
|
27898
|
+
e = s;
|
|
27899
|
+
}
|
|
27900
|
+
pos = wfblk(w, pos + 1, dat.subarray(i, e));
|
|
27901
|
+
}
|
|
27902
|
+
st.i = s;
|
|
27903
|
+
}
|
|
27904
|
+
return slc(o, 0, pre + shft(pos) + post);
|
|
27905
|
+
};
|
|
27906
|
+
var dopt = function(dat, opt, pre, post, st) {
|
|
27907
|
+
if (!st) {
|
|
27908
|
+
st = { l: 1 };
|
|
27909
|
+
if (opt.dictionary) {
|
|
27910
|
+
var dict = opt.dictionary.subarray(-32768);
|
|
27911
|
+
var newDat = new u8(dict.length + dat.length);
|
|
27912
|
+
newDat.set(dict);
|
|
27913
|
+
newDat.set(dat, dict.length);
|
|
27914
|
+
dat = newDat;
|
|
27915
|
+
st.w = dict.length;
|
|
27916
|
+
}
|
|
27917
|
+
}
|
|
27918
|
+
return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20 : 12 + opt.mem, pre, post, st);
|
|
27919
|
+
};
|
|
27920
|
+
function deflateSync(data, opts) {
|
|
27921
|
+
return dopt(data, opts || {}, 0, 0);
|
|
27922
|
+
}
|
|
27923
|
+
var td = typeof TextDecoder != "undefined" && /* @__PURE__ */ new TextDecoder();
|
|
27924
|
+
var tds = 0;
|
|
27925
|
+
try {
|
|
27926
|
+
td.decode(et, { stream: true });
|
|
27927
|
+
tds = 1;
|
|
27928
|
+
} catch (e) {
|
|
27929
|
+
}
|
|
27930
|
+
|
|
27931
|
+
// ../../packages/loro-schema/src/transport/control-compression.ts
|
|
27932
|
+
var COMPRESSION_MARKER = "";
|
|
27933
|
+
var DEFAULT_THRESHOLD2 = 1024;
|
|
27934
|
+
function compressControlFrame(json) {
|
|
27935
|
+
const utf8 = new TextEncoder().encode(json);
|
|
27936
|
+
const compressed = deflateSync(utf8);
|
|
27937
|
+
let binary = "";
|
|
27938
|
+
for (const byte of compressed) {
|
|
27939
|
+
binary += String.fromCharCode(byte);
|
|
27940
|
+
}
|
|
27941
|
+
const base64 = btoa(binary);
|
|
27942
|
+
return COMPRESSION_MARKER + base64;
|
|
27943
|
+
}
|
|
27944
|
+
function shouldCompress(json, peerSupportsCompression, threshold = DEFAULT_THRESHOLD2) {
|
|
27945
|
+
return peerSupportsCompression && json.length > threshold;
|
|
27946
|
+
}
|
|
27947
|
+
function maybeCompressFrame(json, peerSupportsCompression) {
|
|
27948
|
+
return shouldCompress(json, peerSupportsCompression) ? compressControlFrame(json) : json;
|
|
27949
|
+
}
|
|
27950
|
+
|
|
27347
27951
|
// ../../packages/loro-schema/src/transport/guarded-channel.ts
|
|
27348
27952
|
var DEFAULT_MAX_QUEUED_BYTES = 5e5;
|
|
27349
27953
|
var DEFAULT_HIGH_WATER_BYTES = 1048576;
|
|
@@ -28209,6 +28813,7 @@ export {
|
|
|
28209
28813
|
AtLeastOnceHighWaterMarkSchema,
|
|
28210
28814
|
AtLeastOnceShell,
|
|
28211
28815
|
ChunkReassembler,
|
|
28816
|
+
maybeCompressFrame,
|
|
28212
28817
|
GuardedChannel,
|
|
28213
28818
|
LOCAL_DIRECT_SUBPROTOCOL_PREFIX,
|
|
28214
28819
|
FRAME_HELLO,
|
|
@@ -28230,4 +28835,4 @@ export {
|
|
|
28230
28835
|
encodeDrain,
|
|
28231
28836
|
decodeFrame
|
|
28232
28837
|
};
|
|
28233
|
-
//# sourceMappingURL=chunk-
|
|
28838
|
+
//# sourceMappingURL=chunk-IWBDVGD2.js.map
|