@superbee/core 0.2.0-pre.6 → 0.2.0-pre.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +89 -0
  2. package/dist/bundle-ops.d.ts +1 -1
  3. package/dist/bundle-ops.d.ts.map +1 -1
  4. package/dist/bundle-ops.js +2 -2
  5. package/dist/bundle-ops.js.map +1 -1
  6. package/dist/engine.d.ts +1 -1
  7. package/dist/engine.d.ts.map +1 -1
  8. package/dist/engine.js +4 -3
  9. package/dist/engine.js.map +1 -1
  10. package/dist/file-journaled-backend-internal.d.ts +19 -0
  11. package/dist/file-journaled-backend-internal.d.ts.map +1 -0
  12. package/dist/file-journaled-backend-internal.js +10 -0
  13. package/dist/file-journaled-backend-internal.js.map +1 -0
  14. package/dist/file-journaled-backend.d.ts +162 -0
  15. package/dist/file-journaled-backend.d.ts.map +1 -0
  16. package/dist/file-journaled-backend.js +1113 -0
  17. package/dist/file-journaled-backend.js.map +1 -0
  18. package/dist/filesystem-lock.d.ts +10 -0
  19. package/dist/filesystem-lock.d.ts.map +1 -1
  20. package/dist/filesystem-lock.js +133 -8
  21. package/dist/filesystem-lock.js.map +1 -1
  22. package/dist/filesystem-push-role.d.ts +77 -0
  23. package/dist/filesystem-push-role.d.ts.map +1 -0
  24. package/dist/filesystem-push-role.js +165 -0
  25. package/dist/filesystem-push-role.js.map +1 -0
  26. package/dist/governed-body-write.d.ts +8 -1
  27. package/dist/governed-body-write.d.ts.map +1 -1
  28. package/dist/governed-body-write.js +9 -2
  29. package/dist/governed-body-write.js.map +1 -1
  30. package/dist/host-text.d.ts +31 -0
  31. package/dist/host-text.d.ts.map +1 -0
  32. package/dist/host-text.js +77 -0
  33. package/dist/host-text.js.map +1 -0
  34. package/dist/hosted-transport/answer-rows.d.ts +216 -0
  35. package/dist/hosted-transport/answer-rows.d.ts.map +1 -0
  36. package/dist/hosted-transport/answer-rows.js +396 -0
  37. package/dist/hosted-transport/answer-rows.js.map +1 -0
  38. package/dist/hosted-transport/carrier.d.ts +142 -0
  39. package/dist/hosted-transport/carrier.d.ts.map +1 -0
  40. package/dist/hosted-transport/carrier.js +241 -0
  41. package/dist/hosted-transport/carrier.js.map +1 -0
  42. package/dist/hosted-transport/history-pages.d.ts +55 -0
  43. package/dist/hosted-transport/history-pages.d.ts.map +1 -0
  44. package/dist/hosted-transport/history-pages.js +69 -0
  45. package/dist/hosted-transport/history-pages.js.map +1 -0
  46. package/dist/hosted-transport/index.d.ts +18 -0
  47. package/dist/hosted-transport/index.d.ts.map +1 -0
  48. package/dist/hosted-transport/index.js +18 -0
  49. package/dist/hosted-transport/index.js.map +1 -0
  50. package/dist/hosted-transport/operations.d.ts +85 -0
  51. package/dist/hosted-transport/operations.d.ts.map +1 -0
  52. package/dist/hosted-transport/operations.js +128 -0
  53. package/dist/hosted-transport/operations.js.map +1 -0
  54. package/dist/hosted-transport/paged-reads.d.ts +87 -0
  55. package/dist/hosted-transport/paged-reads.d.ts.map +1 -0
  56. package/dist/hosted-transport/paged-reads.js +238 -0
  57. package/dist/hosted-transport/paged-reads.js.map +1 -0
  58. package/dist/hosted-transport/read-adapter.d.ts +250 -0
  59. package/dist/hosted-transport/read-adapter.d.ts.map +1 -0
  60. package/dist/hosted-transport/read-adapter.js +557 -0
  61. package/dist/hosted-transport/read-adapter.js.map +1 -0
  62. package/dist/hosted-transport/root-write.d.ts +114 -0
  63. package/dist/hosted-transport/root-write.d.ts.map +1 -0
  64. package/dist/hosted-transport/root-write.js +171 -0
  65. package/dist/hosted-transport/root-write.js.map +1 -0
  66. package/dist/hosted-transport/whole-document-transport.d.ts +174 -0
  67. package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -0
  68. package/dist/hosted-transport/whole-document-transport.js +411 -0
  69. package/dist/hosted-transport/whole-document-transport.js.map +1 -0
  70. package/dist/index.d.ts +5 -3
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +5 -2
  73. package/dist/index.js.map +1 -1
  74. package/dist/indexeddb-backend.d.ts +6 -1
  75. package/dist/indexeddb-backend.d.ts.map +1 -1
  76. package/dist/indexeddb-backend.js +77 -6
  77. package/dist/indexeddb-backend.js.map +1 -1
  78. package/dist/journaled-backend.d.ts +73 -5
  79. package/dist/journaled-backend.d.ts.map +1 -1
  80. package/dist/journaled-backend.js +55 -1
  81. package/dist/journaled-backend.js.map +1 -1
  82. package/dist/kinds.d.ts +25 -1
  83. package/dist/kinds.d.ts.map +1 -1
  84. package/dist/kinds.js +52 -4
  85. package/dist/kinds.js.map +1 -1
  86. package/dist/links.d.ts +1 -1
  87. package/dist/links.d.ts.map +1 -1
  88. package/dist/links.js +5 -10
  89. package/dist/links.js.map +1 -1
  90. package/dist/platform.d.ts +9 -2
  91. package/dist/platform.d.ts.map +1 -1
  92. package/dist/platform.js.map +1 -1
  93. package/dist/query-order.d.ts +22 -0
  94. package/dist/query-order.d.ts.map +1 -0
  95. package/dist/query-order.js +42 -0
  96. package/dist/query-order.js.map +1 -0
  97. package/dist/remote-backend.d.ts +56 -11
  98. package/dist/remote-backend.d.ts.map +1 -1
  99. package/dist/remote-backend.js +154 -27
  100. package/dist/remote-backend.js.map +1 -1
  101. package/dist/remote-error.d.ts +17 -1
  102. package/dist/remote-error.d.ts.map +1 -1
  103. package/dist/remote-error.js +32 -2
  104. package/dist/remote-error.js.map +1 -1
  105. package/dist/remote-operations.d.ts +5 -4
  106. package/dist/remote-operations.d.ts.map +1 -1
  107. package/dist/remote-operations.js +16 -6
  108. package/dist/remote-operations.js.map +1 -1
  109. package/dist/remote-parsers.d.ts +1 -1
  110. package/dist/remote-parsers.js +1 -1
  111. package/dist/types.d.ts +9 -4
  112. package/dist/types.d.ts.map +1 -1
  113. package/dist/uncertain-write.d.ts +45 -11
  114. package/dist/uncertain-write.d.ts.map +1 -1
  115. package/dist/uncertain-write.js +30 -9
  116. package/dist/uncertain-write.js.map +1 -1
  117. package/package.json +17 -1
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Experimental (`0.2.0-pre`): the API may change before a stable release.
3
+ *
4
+ * The Node push role: a lock manager shaped like the Web Locks `LockManager` subset that
5
+ * `withPushRole` (`@superbee/browser-local`) takes, over the same-user cross-process filesystem
6
+ * lock. The browser's role is a Web Lock, which a user agent shares across the tabs of one
7
+ * origin. Node 22 also exposes `navigator.locks`, but only within one process, so two CLI
8
+ * processes over one working copy would both hold it. A Node caller therefore always passes this
9
+ * manager explicitly (`withPushRole(name, fn, { locks: filesystemPushRoleLocks() })`) and never
10
+ * relies on the host default.
11
+ *
12
+ * `ifAvailable` (the only mode `withPushRole` uses) does not queue: a role held by a live process
13
+ * answers `null` after at most `contentionWaitMs`, which only rides out the moment between another
14
+ * claimer's `mkdir` and its owner record. A lock whose owner record stays missing or malformed is
15
+ * not "held elsewhere" but an unknown holder, and rejects with the lock's own error so it is
16
+ * diagnosed rather than skipped forever. A dead same-host holder's lock is reclaimed, as every
17
+ * filesystem lock is. A holder recorded on another host cannot be checked from here, and one that
18
+ * crashed before this host was renamed never clears, so `ifAvailable` rejects with the lock's own
19
+ * error, which says a person must check it, rather than answering `null` forever.
20
+ *
21
+ * A dead holder whose process id now belongs to another process would otherwise read as live
22
+ * forever. So before answering "held elsewhere" for a same-host holder, or rejecting a waiting
23
+ * request as held, the role asks the host when the process now carrying that id started: a
24
+ * process that started after the lock was claimed cannot be the claimer, and the request rejects
25
+ * with {@link PushRoleStaleOwnerError} naming the lock, instead of skipping every sync in silence
26
+ * or asking for a retry that cannot succeed. The role is released when the callback settles.
27
+ */
28
+ import { execFile } from "node:child_process";
29
+ import { createHash } from "node:crypto";
30
+ import path from "node:path";
31
+ import { hostname } from "node:os";
32
+ import { acquireFilesystemIdentityLock, filesystemLockAgeMs as lockAgeMs, filesystemLockHeldBy as lockHeldBy, FilesystemMutationLockError } from "./filesystem-lock.js";
33
+ /**
34
+ * The role's lock names a same-host holder whose process id now belongs to a process that
35
+ * started after the lock was claimed: the claimer is gone and its id was reused. Nothing was
36
+ * run. Remove the lock (`lockPath`) once no sync is running.
37
+ */
38
+ export class PushRoleStaleOwnerError extends Error {
39
+ name = "PushRoleStaleOwnerError";
40
+ lockPath;
41
+ owner;
42
+ processStartedAt;
43
+ constructor(lockPath, owner, processStartedAt) {
44
+ super(`push role lock '${lockPath}' was claimed by PID ${owner.pid} at ${new Date(owner.created_at_ms).toISOString()}, ` +
45
+ `but PID ${owner.pid} now belongs to a process started at ${new Date(processStartedAt).toISOString()}; ` +
46
+ `the holder is gone. Remove the lock after confirming no sync is running, then retry.`);
47
+ this.lockPath = lockPath;
48
+ this.owner = owner;
49
+ this.processStartedAt = processStartedAt;
50
+ }
51
+ }
52
+ /** The lock key for a role name: its SHA-256, so any name is one fixed-length path component. */
53
+ export function pushRoleLockKey(name) {
54
+ return createHash("sha256").update(`superbee:push-role\0${name}`, "utf8").digest("hex");
55
+ }
56
+ /**
57
+ * How long an owner-less lock may be a claim or release in progress rather than an orphan. A live
58
+ * claimer writes its owner record right after its `mkdir`; a releaser removes the directory right
59
+ * after the record. Either takes milliseconds, so an owner-less lock older than this was orphaned.
60
+ */
61
+ const CLAIM_GRACE_MS = 5_000;
62
+ /** `ps` reports a start time to the second, so a genuine claimer can look up to this much later than its claim. */
63
+ const START_TIME_RESOLUTION_MS = 1_000;
64
+ /**
65
+ * The environment `ps` runs in: this process's own, with the C locale. `TZ` must pass through:
66
+ * `ps` formats `lstart` in its time zone and `Date.parse` reads it in this process's, so both
67
+ * must be the same zone, or a live holder can look younger than its claim.
68
+ */
69
+ export function psEnvironment(env = process.env) {
70
+ return { ...env, LC_ALL: "C" };
71
+ }
72
+ /** When `pid` started, from `ps -o lstart=` under the C locale; `null` when no `ps` answers. */
73
+ export function processStartedAtFromPs(pid) {
74
+ const attempt = (binary) => new Promise((resolve) => {
75
+ execFile(binary, ["-o", "lstart=", "-p", String(pid)], { env: psEnvironment(), timeout: 2_000 }, (error, stdout) => {
76
+ if (error)
77
+ return resolve(null);
78
+ const parsed = Date.parse(stdout.trim().replace(/\s+/g, " "));
79
+ resolve(Number.isFinite(parsed) ? parsed : null);
80
+ });
81
+ });
82
+ return attempt("/bin/ps").then((found) => found ?? attempt("/usr/bin/ps"));
83
+ }
84
+ /** A {@link PushRoleLockManager} whose roles are exclusive across every process of this user on this host. */
85
+ export function filesystemPushRoleLocks(options = {}) {
86
+ const contentionWaitMs = options.contentionWaitMs ?? 250;
87
+ const waitMs = options.waitMs ?? 5_000;
88
+ const startedAt = options.processStartedAt ?? processStartedAtFromPs;
89
+ const claimGraceMs = options.claimGraceMs ?? CLAIM_GRACE_MS;
90
+ const acquire = (name, wait) => acquireFilesystemIdentityLock(pushRoleLockKey(name), name, { lockRoot: options.lockRoot, pollMs: options.pollMs, hostPolicy: options.hostPolicy, waitMs: wait });
91
+ /**
92
+ * Acquire, telling a lock caught between states from an orphan. A timeout whose last look found
93
+ * no owner record may have caught a live holder between its claim and its record, or between
94
+ * removing its record and its directory on release. The lock is looked at again: gone means a
95
+ * release just finished, so the claim is retried once; a directory younger than the grace is a
96
+ * claim or release in progress, reported as held by an unknown live holder (not malformed). Only
97
+ * an owner-less lock older than the grace is left as the malformed, orphaned lock it is.
98
+ */
99
+ const acquireSettled = async (name, wait) => {
100
+ for (let attempt = 0;; attempt += 1) {
101
+ try {
102
+ return await acquire(name, wait);
103
+ }
104
+ catch (error) {
105
+ if (!(error instanceof FilesystemMutationLockError) || !error.malformed || path.basename(error.lockPath) !== `${pushRoleLockKey(name)}.lock`)
106
+ throw error;
107
+ const age = await lockAgeMs(error.lockPath);
108
+ if (age === null && attempt === 0)
109
+ continue;
110
+ if (age === null || age < claimGraceMs) {
111
+ throw new FilesystemMutationLockError(`filesystem mutation lock '${error.lockPath}' is being claimed or released by another process; retry the mutation.`, { lockPath: error.lockPath, owner: null, stale: false, malformed: false });
112
+ }
113
+ throw error;
114
+ }
115
+ }
116
+ };
117
+ return {
118
+ async request(name, request, callback) {
119
+ if (typeof name !== "string" || name === "")
120
+ throw new TypeError("a push role needs a name");
121
+ let release;
122
+ try {
123
+ release = await acquireSettled(name, request.ifAvailable ? contentionWaitMs : waitMs);
124
+ }
125
+ catch (error) {
126
+ if (!(error instanceof FilesystemMutationLockError) || !heldByLiveClaim(error))
127
+ throw error;
128
+ const owner = error.owner;
129
+ // This process's own id is never asked: the lock already reports as stale a record under it
130
+ // that an earlier process left, so a younger start here could only be a forward clock step
131
+ // past a claim this process still holds.
132
+ if (owner !== null && owner.hostname === hostname() && owner.pid !== process.pid) {
133
+ const started = await startedAt(owner.pid);
134
+ // The named owner is a snapshot. Its PID answering for a younger process proves it gone
135
+ // only while the lock still carries its record after that answer; a holder that released
136
+ // since, whose PID was then reused, would otherwise be blamed for its live replacement.
137
+ if (started !== null && started > owner.created_at_ms + START_TIME_RESOLUTION_MS && (await lockHeldBy(error.lockPath, owner.token)) === true) {
138
+ throw new PushRoleStaleOwnerError(error.lockPath, owner, started);
139
+ }
140
+ }
141
+ if (!request.ifAvailable || (owner !== null && owner.hostname !== hostname()))
142
+ throw error;
143
+ return callback(null);
144
+ }
145
+ let result;
146
+ try {
147
+ result = await callback({ name });
148
+ }
149
+ catch (error) {
150
+ await release().catch(() => { });
151
+ throw error;
152
+ }
153
+ await release();
154
+ return result;
155
+ },
156
+ };
157
+ }
158
+ /**
159
+ * A live holder: one with a well-formed owner record, or a claim or release caught in progress
160
+ * (no record, not malformed). A malformed or stale lock is one the caller must see.
161
+ */
162
+ function heldByLiveClaim(error) {
163
+ return !error.malformed && !error.stale;
164
+ }
165
+ //# sourceMappingURL=filesystem-push-role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-push-role.js","sourceRoot":"","sources":["../src/filesystem-push-role.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
1
  import { type Outcome, type OperationState, type UncertainWriteOptions } from "./uncertain-write.js";
2
2
  import type { IntentRecord } from "./journaled-backend.js";
3
3
  import type { Version } from "./types.js";
4
+ /**
5
+ * One body update's bounds. `bodyBytes` is a library ceiling in UTF-8 bytes, equal to the hosted
6
+ * kernel's document write bound (983,040) in raw bytes; a host that measures differently (the
7
+ * kernel measures canonical JSON and keeps definition documents at 64 KiB) preflights its own
8
+ * measure. The envelope carries the body twice (the operation and the prepared content),
9
+ * JSON-escaped, so it is 4 MiB.
10
+ */
4
11
  export declare const BODY_DELIVERY_LIMITS: Readonly<{
5
12
  labelBytes: 2048;
6
- bodyBytes: number;
13
+ bodyBytes: 983040;
7
14
  envelopeBytes: number;
8
15
  }>;
9
16
  /** Complete journal reconciliation has a separate bound from each delivery envelope. */
@@ -1 +1 @@
1
- {"version":3,"file":"governed-body-write.d.ts","sourceRoot":"","sources":["../src/governed-body-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governed-body-write.d.ts","sourceRoot":"","sources":["../src/governed-body-write.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,16 @@ import { assertSafeConceptId, isReservedFile, pathFromConceptId } from "./paths.
4
4
  import { parseIsoInstant } from "./verification.js";
5
5
  import { isContentVersion, versionOfBytes } from "./versioning.js";
6
6
  import { isRequestIdentity, performUncertainWrite } from "./uncertain-write.js";
7
- export const BODY_DELIVERY_LIMITS = Object.freeze({ labelBytes: 2048, bodyBytes: 64 * 1024, envelopeBytes: 2 * 1024 * 1024 });
7
+ /**
8
+ * One body update's bounds. `bodyBytes` is a library ceiling in UTF-8 bytes, equal to the hosted
9
+ * kernel's document write bound (983,040) in raw bytes; a host that measures differently (the
10
+ * kernel measures canonical JSON and keeps definition documents at 64 KiB) preflights its own
11
+ * measure. The envelope carries the body twice (the operation and the prepared content),
12
+ * JSON-escaped, so it is 4 MiB.
13
+ */
14
+ export const BODY_DELIVERY_LIMITS = Object.freeze({ labelBytes: 2048, bodyBytes: 983_040, envelopeBytes: 4 * 1024 * 1024 });
8
15
  /** Complete journal reconciliation has a separate bound from each delivery envelope. */
9
- export const BODY_RECONCILIATION_BYTES = 16 * 1024 * 1024;
16
+ export const BODY_RECONCILIATION_BYTES = 32 * 1024 * 1024;
10
17
  function fail(message) { throw new Error(`Invalid body delivery: ${message}`); }
11
18
  function record(value, keys, optional = []) {
12
19
  if (!value || typeof value !== "object" || Array.isArray(value) ||
@@ -1 +1 @@
1
- {"version":3,"file":"governed-body-write.js","sourceRoot":"","sources":["../src/governed-body-write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governed-body-write.js","sourceRoot":"","sources":["../src/governed-body-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Text that came from a host (a bundle's name, a person's name, a label) made safe to show a person
3
+ * or an agent: control and format characters removed (escape sequences, bidi overrides such as
4
+ * U+202E, zero-width characters), surrounding space trimmed, and at most `max` UTF-16 units kept,
5
+ * cut only between whole characters (never half a surrogate pair). The one rule every surface that
6
+ * shows host text uses.
7
+ */
8
+ export declare function stripHostText(value: string, max: number): string;
9
+ /**
10
+ * Host data (a result's keys and strings) with control and format characters and the line and
11
+ * paragraph separators (U+2028, U+2029) removed, except tab, newline and carriage return, with no
12
+ * length cap: the rule of {@link stripHostText} for text that is shown whole.
13
+ */
14
+ export declare function stripHostControls(value: string): string;
15
+ /**
16
+ * A copy of parsed JSON data with every key and string through {@link stripHostControls}, and
17
+ * whether anything was removed (a key that collides with an earlier one once stripped is dropped,
18
+ * and counts as removed). Iterative, so a deeply nested answer cannot exhaust the stack.
19
+ */
20
+ export declare function stripHostData(input: unknown): {
21
+ value: unknown;
22
+ removed: boolean;
23
+ };
24
+ /**
25
+ * JSON text with every C1 control, U+2028, U+2029 and format character (bidi controls, zero-width
26
+ * characters, tag characters) escaped as `\uXXXX`, one escape per UTF-16 unit. `JSON.stringify`
27
+ * already escapes the C0 controls; these can occur only inside strings, so the text stays valid
28
+ * JSON and parses back to the same data.
29
+ */
30
+ export declare function escapeHostJson(json: string): string;
31
+ //# sourceMappingURL=host-text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-text.d.ts","sourceRoot":"","sources":["../src/host-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAiClF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Text that came from a host (a bundle's name, a person's name, a label) made safe to show a person
3
+ * or an agent: control and format characters removed (escape sequences, bidi overrides such as
4
+ * U+202E, zero-width characters), surrounding space trimmed, and at most `max` UTF-16 units kept,
5
+ * cut only between whole characters (never half a surrogate pair). The one rule every surface that
6
+ * shows host text uses.
7
+ */
8
+ export function stripHostText(value, max) {
9
+ let out = "";
10
+ for (const char of value.replace(/[\p{Cc}\p{Cf}]/gu, "").trim()) {
11
+ if (out.length + char.length > max)
12
+ break;
13
+ out += char;
14
+ }
15
+ return out.trim();
16
+ }
17
+ /**
18
+ * Host data (a result's keys and strings) with control and format characters and the line and
19
+ * paragraph separators (U+2028, U+2029) removed, except tab, newline and carriage return, with no
20
+ * length cap: the rule of {@link stripHostText} for text that is shown whole.
21
+ */
22
+ export function stripHostControls(value) {
23
+ return value.replace(/[\p{Cc}\p{Cf}\u2028\u2029]/gu, (char) => (char === "\t" || char === "\n" || char === "\r" ? char : ""));
24
+ }
25
+ /**
26
+ * A copy of parsed JSON data with every key and string through {@link stripHostControls}, and
27
+ * whether anything was removed (a key that collides with an earlier one once stripped is dropped,
28
+ * and counts as removed). Iterative, so a deeply nested answer cannot exhaust the stack.
29
+ */
30
+ export function stripHostData(input) {
31
+ let removed = false;
32
+ const clean = (text) => {
33
+ const stripped = stripHostControls(text);
34
+ if (stripped !== text)
35
+ removed = true;
36
+ return stripped;
37
+ };
38
+ const stack = [];
39
+ const place = (item) => {
40
+ if (typeof item === "string")
41
+ return clean(item);
42
+ if (typeof item !== "object" || item === null)
43
+ return item;
44
+ const copy = Array.isArray(item) ? [] : {};
45
+ stack.push([item, copy]);
46
+ return copy;
47
+ };
48
+ const value = place(input);
49
+ while (stack.length > 0) {
50
+ const [source, copy] = stack.pop();
51
+ if (Array.isArray(source)) {
52
+ for (const item of source)
53
+ copy.push(place(item));
54
+ continue;
55
+ }
56
+ for (const [rawKey, item] of Object.entries(source)) {
57
+ const key = clean(rawKey);
58
+ if (Object.prototype.hasOwnProperty.call(copy, key)) {
59
+ removed = true;
60
+ continue;
61
+ }
62
+ // defineProperty: a `__proto__` key stays an own key, as JSON.parse made it.
63
+ Object.defineProperty(copy, key, { value: place(item), enumerable: true, writable: true, configurable: true });
64
+ }
65
+ }
66
+ return { value, removed };
67
+ }
68
+ /**
69
+ * JSON text with every C1 control, U+2028, U+2029 and format character (bidi controls, zero-width
70
+ * characters, tag characters) escaped as `\uXXXX`, one escape per UTF-16 unit. `JSON.stringify`
71
+ * already escapes the C0 controls; these can occur only inside strings, so the text stays valid
72
+ * JSON and parses back to the same data.
73
+ */
74
+ export function escapeHostJson(json) {
75
+ return json.replace(/[\u007f-\u009f\u2028\u2029]|\p{Cf}/gu, (char) => Array.from({ length: char.length }, (_, index) => `\\u${char.charCodeAt(index).toString(16).padStart(4, "0")}`).join(""));
76
+ }
77
+ //# sourceMappingURL=host-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-text.js","sourceRoot":"","sources":["../src/host-text.ts"],"names":[],"mappings":"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"}