@centient/secrets 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +355 -7
  2. package/dist/audit/hmac-chain.d.ts +117 -0
  3. package/dist/audit/hmac-chain.d.ts.map +1 -0
  4. package/dist/audit/hmac-chain.js +811 -0
  5. package/dist/audit/hmac-chain.js.map +1 -0
  6. package/dist/audit/ocsf.d.ts +108 -0
  7. package/dist/audit/ocsf.d.ts.map +1 -0
  8. package/dist/audit/ocsf.js +204 -0
  9. package/dist/audit/ocsf.js.map +1 -0
  10. package/dist/cli/hidden-prompt.d.ts.map +1 -1
  11. package/dist/cli/hidden-prompt.js +55 -10
  12. package/dist/cli/hidden-prompt.js.map +1 -1
  13. package/dist/cli/messages.d.ts +40 -8
  14. package/dist/cli/messages.d.ts.map +1 -1
  15. package/dist/cli/messages.js +34 -8
  16. package/dist/cli/messages.js.map +1 -1
  17. package/dist/client.d.ts +26 -0
  18. package/dist/client.d.ts.map +1 -0
  19. package/dist/client.js +129 -0
  20. package/dist/client.js.map +1 -0
  21. package/dist/compatibility.d.ts +199 -0
  22. package/dist/compatibility.d.ts.map +1 -0
  23. package/dist/compatibility.js +419 -0
  24. package/dist/compatibility.js.map +1 -0
  25. package/dist/index.d.ts +19 -5
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +16 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/policies/audit-trail.d.ts +25 -0
  30. package/dist/policies/audit-trail.d.ts.map +1 -0
  31. package/dist/policies/audit-trail.js +31 -0
  32. package/dist/policies/audit-trail.js.map +1 -0
  33. package/dist/sinks/index.d.ts +9 -0
  34. package/dist/sinks/index.d.ts.map +1 -0
  35. package/dist/sinks/index.js +5 -0
  36. package/dist/sinks/index.js.map +1 -0
  37. package/dist/sinks/jsonl.d.ts +16 -0
  38. package/dist/sinks/jsonl.d.ts.map +1 -0
  39. package/dist/sinks/jsonl.js +51 -0
  40. package/dist/sinks/jsonl.js.map +1 -0
  41. package/dist/sinks/otel.d.ts +22 -0
  42. package/dist/sinks/otel.d.ts.map +1 -0
  43. package/dist/sinks/otel.js +155 -0
  44. package/dist/sinks/otel.js.map +1 -0
  45. package/dist/sinks/queue.d.ts +12 -0
  46. package/dist/sinks/queue.d.ts.map +1 -0
  47. package/dist/sinks/queue.js +89 -0
  48. package/dist/sinks/queue.js.map +1 -0
  49. package/dist/sinks/syslog.d.ts +17 -0
  50. package/dist/sinks/syslog.d.ts.map +1 -0
  51. package/dist/sinks/syslog.js +103 -0
  52. package/dist/sinks/syslog.js.map +1 -0
  53. package/dist/sinks/types.d.ts +27 -0
  54. package/dist/sinks/types.d.ts.map +1 -0
  55. package/dist/sinks/types.js +18 -0
  56. package/dist/sinks/types.js.map +1 -0
  57. package/dist/vault/policy.d.ts +64 -34
  58. package/dist/vault/policy.d.ts.map +1 -1
  59. package/dist/vault/policy.js +109 -67
  60. package/dist/vault/policy.js.map +1 -1
  61. package/dist/vault/session-vault.d.ts +43 -0
  62. package/dist/vault/session-vault.d.ts.map +1 -1
  63. package/dist/vault/session-vault.js +323 -36
  64. package/dist/vault/session-vault.js.map +1 -1
  65. package/dist/vault/sidecar.d.ts +9 -0
  66. package/dist/vault/sidecar.d.ts.map +1 -1
  67. package/dist/vault/sidecar.js +72 -3
  68. package/dist/vault/sidecar.js.map +1 -1
  69. package/dist/vault/types.d.ts +16 -9
  70. package/dist/vault/types.d.ts.map +1 -1
  71. package/dist/vault/vault-env.d.ts +41 -62
  72. package/dist/vault/vault-env.d.ts.map +1 -1
  73. package/dist/vault/vault-env.js +139 -75
  74. package/dist/vault/vault-env.js.map +1 -1
  75. package/dist/vault/vault-gpg.d.ts +1 -0
  76. package/dist/vault/vault-gpg.d.ts.map +1 -1
  77. package/dist/vault/vault-gpg.js +1 -0
  78. package/dist/vault/vault-gpg.js.map +1 -1
  79. package/dist/vault/vault-libsecret.d.ts +1 -0
  80. package/dist/vault/vault-libsecret.d.ts.map +1 -1
  81. package/dist/vault/vault-libsecret.js +7 -6
  82. package/dist/vault/vault-libsecret.js.map +1 -1
  83. package/dist/vault/vault-onepassword.d.ts +1 -0
  84. package/dist/vault/vault-onepassword.d.ts.map +1 -1
  85. package/dist/vault/vault-onepassword.js +1 -0
  86. package/dist/vault/vault-onepassword.js.map +1 -1
  87. package/dist/vault/vault-utils.d.ts +7 -6
  88. package/dist/vault/vault-utils.d.ts.map +1 -1
  89. package/dist/vault/vault-utils.js +8 -7
  90. package/dist/vault/vault-utils.js.map +1 -1
  91. package/dist/vault/vault-windows.d.ts +2 -1
  92. package/dist/vault/vault-windows.d.ts.map +1 -1
  93. package/dist/vault/vault-windows.js +12 -8
  94. package/dist/vault/vault-windows.js.map +1 -1
  95. package/dist/vault/vault.d.ts +6 -7
  96. package/dist/vault/vault.d.ts.map +1 -1
  97. package/dist/vault/vault.js +37 -193
  98. package/dist/vault/vault.js.map +1 -1
  99. package/package.json +8 -2
@@ -37,15 +37,15 @@
37
37
  * Keychain access even if another process holds the vault open.
38
38
  * Keychain ACLs are per-process, not per-vault-file.
39
39
  */
40
- import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync, } from "node:fs";
41
- import { dirname, join, resolve as pathResolve } from "node:path";
40
+ import { closeSync, existsSync, linkSync, mkdirSync, openSync, readFileSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync, } from "node:fs";
41
+ import { basename, dirname, isAbsolute, join, relative, resolve as pathResolve, sep, } from "node:path";
42
42
  import { homedir } from "node:os";
43
43
  import { createHash, randomBytes } from "node:crypto";
44
- import { encryptObject, decryptObject } from "../crypto/vault-common.js";
44
+ import { decryptObject, encryptObject, KEY_LENGTH, } from "../crypto/vault-common.js";
45
45
  import { resolveKeyProvider } from "../key-providers/resolve.js";
46
46
  import { runBeforeHooks, runAfterHooks, rejectedEventType, } from "./policy.js";
47
47
  import { acquireWriteLock } from "./file-lock.js";
48
- import { readSidecar, writeSidecar, checkSidecarPerms, VAULT_FILE_MODE, VAULT_DIR_MODE, } from "./sidecar.js";
48
+ import { createSidecar, readSidecar, writeSidecar, checkSidecarPerms, VAULT_FILE_MODE, VAULT_DIR_MODE, } from "./sidecar.js";
49
49
  import { VaultError, VaultUnlockError, VaultDecryptError, VaultRollbackError, VaultClosedError, VaultLockError, VaultRestoreError, InvalidCredentialKeyError, } from "./session-vault-errors.js";
50
50
  // Re-export errors so the public surface (index.ts) stays stable.
51
51
  export { VaultError, VaultUnlockError, VaultDecryptError, VaultRollbackError, VaultClosedError, VaultLockError, VaultRestoreError,
@@ -99,6 +99,90 @@ function resolveVaultPath(rawPath) {
99
99
  throw err;
100
100
  }
101
101
  }
102
+ /**
103
+ * Resolve a path that may not exist yet through its nearest existing parent.
104
+ *
105
+ * `realpathSync(file)` cannot canonicalize a first-use path. Walking upward
106
+ * first preserves symlink-aware AAD binding without making callers duplicate
107
+ * the package's private path recipe.
108
+ */
109
+ function resolveProspectiveVaultPath(rawPath) {
110
+ const resolved = pathResolve(rawPath);
111
+ let cursor = resolved;
112
+ const missing = [];
113
+ while (true) {
114
+ try {
115
+ return join(realpathSync(cursor), ...missing);
116
+ }
117
+ catch (err) {
118
+ if (err.code !== "ENOENT")
119
+ throw err;
120
+ const parent = dirname(cursor);
121
+ if (parent === cursor)
122
+ return resolved;
123
+ missing.unshift(basename(cursor));
124
+ cursor = parent;
125
+ }
126
+ }
127
+ }
128
+ function inspectFileIdentity(path) {
129
+ try {
130
+ const { dev, ino } = statSync(path);
131
+ return { state: "found", identity: { dev, ino } };
132
+ }
133
+ catch (err) {
134
+ if (err.code === "ENOENT") {
135
+ return { state: "absent" };
136
+ }
137
+ return { state: "unknown", cause: err };
138
+ }
139
+ }
140
+ /** True only when both pathnames can be proven to identify the same object. */
141
+ function sameFileIdentity(left, right) {
142
+ const leftResult = inspectFileIdentity(left);
143
+ const rightResult = inspectFileIdentity(right);
144
+ return leftResult.state === "found" &&
145
+ rightResult.state === "found" &&
146
+ leftResult.identity.dev === rightResult.identity.dev &&
147
+ leftResult.identity.ino === rightResult.identity.ino;
148
+ }
149
+ function isDescendantPath(parent, candidate) {
150
+ const rel = relative(parent, candidate);
151
+ return rel !== "" && rel !== ".." &&
152
+ !rel.startsWith(`..${sep}`) && !isAbsolute(rel);
153
+ }
154
+ /**
155
+ * Lock both transaction members in one stable order.
156
+ *
157
+ * Different vault names may intentionally or accidentally resolve to the same
158
+ * sidecar. Locking only the vault lets those creators race and couple their
159
+ * rollback high-water marks. The identity check deduplicates lock pathnames
160
+ * that alias on a case-insensitive filesystem.
161
+ */
162
+ async function acquireCreateLocks(vaultPath, sidecarPath) {
163
+ const releases = [];
164
+ const heldLockPaths = [];
165
+ const targets = [...new Set([vaultPath, sidecarPath])].sort();
166
+ try {
167
+ for (const target of targets) {
168
+ const lockPath = `${target}.lock`;
169
+ if (heldLockPaths.some((held) => sameFileIdentity(held, lockPath))) {
170
+ continue;
171
+ }
172
+ releases.push(await acquireWriteLock(target));
173
+ heldLockPaths.push(lockPath);
174
+ }
175
+ }
176
+ catch (err) {
177
+ for (const release of releases.reverse())
178
+ release();
179
+ throw err;
180
+ }
181
+ return () => {
182
+ for (const release of releases.reverse())
183
+ release();
184
+ };
185
+ }
102
186
  // =============================================================================
103
187
  // AAD derivation
104
188
  // =============================================================================
@@ -137,6 +221,178 @@ function checkVaultPerms(path) {
137
221
  }
138
222
  }
139
223
  // =============================================================================
224
+ // createVault — first-use factory
225
+ // =============================================================================
226
+ /**
227
+ * Create an empty, AAD-bound session vault and its rollback sidecar.
228
+ *
229
+ * Creation is idempotent only for a complete pair: if both files already
230
+ * exist they are left byte-for-byte untouched and `created` is false. A
231
+ * vault-only or sidecar-only state is refused rather than "repaired" because
232
+ * replacing either half could erase rollback evidence or make existing
233
+ * ciphertext permanently unreadable.
234
+ *
235
+ * Both destinations use no-clobber publication: the completed vault temp is
236
+ * linked into place first, then the sidecar is the logical commit point. A
237
+ * successful return therefore means both public paths exist, and a competing
238
+ * destination is never replaced. This is temp-file/link crash safety, not an
239
+ * fsync or power-loss durability guarantee.
240
+ *
241
+ * The caller retains ownership of `opts.key`; this function snapshots it for
242
+ * the duration of the call, zeroes that private copy, and never mutates,
243
+ * zeroes, or stores the caller's buffer.
244
+ */
245
+ export async function createVault(opts) {
246
+ if (!Buffer.isBuffer(opts.key) || opts.key.length !== KEY_LENGTH) {
247
+ throw new VaultError("VAULT_INVALID_KEY", `Vault creation requires a ${KEY_LENGTH}-byte AES-256 key.`);
248
+ }
249
+ // Snapshot before the first await. A caller may zero or reuse its Buffer as
250
+ // soon as this function yields while waiting for another creator's lock.
251
+ const creationKey = Buffer.from(opts.key);
252
+ const requestedVaultPath = opts.path ?? DEFAULT_VAULT_PATH;
253
+ // Retain a useful target even when canonicalization itself fails. Once
254
+ // resolution succeeds this becomes the canonical path used everywhere else.
255
+ let vaultPath = requestedVaultPath;
256
+ let release = null;
257
+ let tmpVault = null;
258
+ let vaultPublished = false;
259
+ try {
260
+ vaultPath = resolveProspectiveVaultPath(requestedVaultPath);
261
+ const sidecarPath = resolveProspectiveVaultPath(opts.sidecarPath ?? join(dirname(vaultPath), "vault.seen-version"));
262
+ if (sidecarPath === vaultPath) {
263
+ throw new VaultError("VAULT_CREATE_CONFLICT", "Vault and sidecar paths must be different files.");
264
+ }
265
+ if (isDescendantPath(vaultPath, sidecarPath) ||
266
+ isDescendantPath(sidecarPath, vaultPath)) {
267
+ throw new VaultError("VAULT_CREATE_CONFLICT", "Vault and sidecar paths must not contain one another.");
268
+ }
269
+ mkdirSync(dirname(vaultPath), { recursive: true, mode: VAULT_DIR_MODE });
270
+ mkdirSync(dirname(sidecarPath), { recursive: true, mode: VAULT_DIR_MODE });
271
+ release = await acquireCreateLocks(vaultPath, sidecarPath);
272
+ const vaultExists = existsSync(vaultPath);
273
+ const sidecarExists = existsSync(sidecarPath);
274
+ if (vaultExists && sidecarExists) {
275
+ if (sameFileIdentity(vaultPath, sidecarPath)) {
276
+ throw new VaultError("VAULT_CREATE_CONFLICT", "Vault and sidecar paths identify the same filesystem object.");
277
+ }
278
+ return { created: false, path: vaultPath };
279
+ }
280
+ if (vaultExists || sidecarExists) {
281
+ const present = vaultExists ? "vault" : "sidecar";
282
+ const missing = vaultExists ? "sidecar" : "vault";
283
+ throw new VaultError("VAULT_CREATE_CONFLICT", `Refusing to create vault: ${present} exists but ${missing} is missing. ` +
284
+ "Investigate the incomplete pair; first-use creation never repairs or overwrites it.");
285
+ }
286
+ const payload = {
287
+ schema: VAULT_SCHEMA_VERSION,
288
+ vaultVersion: 1,
289
+ secrets: {},
290
+ };
291
+ const encrypted = encryptObject(payload, creationKey, deriveAad(vaultPath, VAULT_SCHEMA_VERSION));
292
+ if (encrypted === null) {
293
+ throw new VaultError("VAULT_ENCRYPT_FAILED", "Encryption returned null; vault was not created.");
294
+ }
295
+ const tmpVaultCandidate = `${vaultPath}.${randomBytes(8).toString("hex")}.tmp`;
296
+ const tmpFd = openSync(tmpVaultCandidate, "wx", VAULT_FILE_MODE);
297
+ tmpVault = tmpVaultCandidate;
298
+ let tmpClosed = false;
299
+ try {
300
+ writeFileSync(tmpFd, encrypted);
301
+ closeSync(tmpFd);
302
+ tmpClosed = true;
303
+ }
304
+ finally {
305
+ if (!tmpClosed) {
306
+ try {
307
+ closeSync(tmpFd);
308
+ }
309
+ catch {
310
+ // Preserve the write/first-close failure; cleanup follows below.
311
+ }
312
+ }
313
+ }
314
+ linkSync(tmpVault, vaultPath);
315
+ vaultPublished = true;
316
+ createSidecar(sidecarPath, { highestSeenVersion: 1 });
317
+ // Both public paths are committed. link(2) keeps the source temp, so
318
+ // remove it without converting an otherwise successful creation into a
319
+ // false failure if cleanup itself is unavailable.
320
+ try {
321
+ unlinkSync(tmpVault);
322
+ tmpVault = null;
323
+ }
324
+ catch (cleanupErr) {
325
+ const detail = cleanupErr instanceof Error
326
+ ? cleanupErr.message
327
+ : String(cleanupErr);
328
+ process.stderr.write(`[secrets] WARNING: vault created but temp file ${tmpVault} could not be removed: ${detail}.\n`);
329
+ }
330
+ return { created: true, path: vaultPath };
331
+ }
332
+ catch (err) {
333
+ let cleanupFailure = null;
334
+ // If the sidecar did not commit, remove only the vault inode published by
335
+ // this call. A non-cooperating writer may have replaced the pathname after
336
+ // publication; filesystem identity prevents us from deleting its file.
337
+ if (vaultPublished && tmpVault !== null) {
338
+ const tmpIdentity = inspectFileIdentity(tmpVault);
339
+ const vaultIdentity = inspectFileIdentity(vaultPath);
340
+ if (vaultIdentity.state === "found") {
341
+ if (tmpIdentity.state !== "found") {
342
+ cleanupFailure = tmpIdentity.state === "unknown"
343
+ ? tmpIdentity.cause
344
+ : new Error(`Cannot verify ownership of published vault ${vaultPath}: its source temp is missing.`);
345
+ }
346
+ else if (tmpIdentity.identity.dev === vaultIdentity.identity.dev &&
347
+ tmpIdentity.identity.ino === vaultIdentity.identity.ino) {
348
+ try {
349
+ unlinkSync(vaultPath);
350
+ }
351
+ catch (cleanupErr) {
352
+ if (cleanupErr.code !== "ENOENT") {
353
+ cleanupFailure = cleanupErr;
354
+ }
355
+ }
356
+ }
357
+ // A different identity means a non-cooperating writer replaced the
358
+ // pathname; it is not ours to remove.
359
+ }
360
+ else if (vaultIdentity.state === "unknown") {
361
+ cleanupFailure = vaultIdentity.cause;
362
+ }
363
+ }
364
+ if (tmpVault !== null) {
365
+ try {
366
+ unlinkSync(tmpVault);
367
+ }
368
+ catch (cleanupErr) {
369
+ if (cleanupErr.code !== "ENOENT" &&
370
+ cleanupFailure === null) {
371
+ cleanupFailure = cleanupErr;
372
+ }
373
+ }
374
+ }
375
+ if (cleanupFailure !== null) {
376
+ const createDetail = err instanceof Error ? err.message : String(err);
377
+ const cleanupDetail = cleanupFailure instanceof Error
378
+ ? cleanupFailure.message
379
+ : String(cleanupFailure);
380
+ throw new VaultError("VAULT_CREATE_ROLLBACK_FAILED", `Vault creation failed (${createDetail}) and its temporary artifacts could not be removed: ${cleanupDetail}`);
381
+ }
382
+ if (err instanceof VaultError)
383
+ throw err;
384
+ if (err.code === "EEXIST") {
385
+ throw new VaultError("VAULT_CREATE_CONFLICT", "Refusing to create vault: a vault or sidecar destination appeared during creation and was not replaced.");
386
+ }
387
+ const detail = err instanceof Error ? err.message : String(err);
388
+ throw new VaultError("VAULT_CREATE_FAILED", `Failed to create vault at ${vaultPath}: ${detail}`);
389
+ }
390
+ finally {
391
+ creationKey.fill(0);
392
+ release?.();
393
+ }
394
+ }
395
+ // =============================================================================
140
396
  // openVault — factory
141
397
  // =============================================================================
142
398
  /**
@@ -464,13 +720,22 @@ function buildVault(args) {
464
720
  if (closed || key === null)
465
721
  throw new VaultClosedError();
466
722
  };
723
+ const assertVersionNotRolledBack = (candidateVersion) => {
724
+ const sidecar = readSidecar(args.sidecarPath);
725
+ const highestTrustedVersion = Math.max(vaultVersion, sidecar?.highestSeenVersion ?? vaultVersion);
726
+ if (candidateVersion < highestTrustedVersion) {
727
+ throw new VaultRollbackError(highestTrustedVersion, candidateVersion);
728
+ }
729
+ return sidecar;
730
+ };
467
731
  /**
468
732
  * Refresh in-memory state from disk if the coherence strategy says to and
469
- * mtime has advanced. Throws VaultError on a missing vault file (M4) and
470
- * VaultDecryptError on decrypt failure.
733
+ * mtime changed. Writers force a refresh after taking the lock because mtime
734
+ * equality is not a safe write-side freshness check. Throws VaultError on a
735
+ * missing vault file (M4) and VaultDecryptError on decrypt failure.
471
736
  */
472
- const maybeReload = () => {
473
- if (args.coherence === "best-effort")
737
+ const maybeReload = (forceFromDisk = false) => {
738
+ if (!forceFromDisk && args.coherence === "best-effort")
474
739
  return;
475
740
  // Drop existsSync — statSync already throws ENOENT. Translating the error
476
741
  // gives us one clean code path and one fewer syscall (M4).
@@ -484,7 +749,7 @@ function buildVault(args) {
484
749
  }
485
750
  throw err;
486
751
  }
487
- if (st.mtimeMs === mtimeMs)
752
+ if (!forceFromDisk && st.mtimeMs === mtimeMs)
488
753
  return;
489
754
  if (args.coherence === "strict" && st.mtimeMs > mtimeMs) {
490
755
  // `strict` means the caller wants an explicit reload(); block reads.
@@ -523,10 +788,19 @@ function buildVault(args) {
523
788
  throw new VaultDecryptError("Decrypted payload has invalid shape after external change — possible corruption.");
524
789
  }
525
790
  }
791
+ const sidecar = assertVersionNotRolledBack(payload.vaultVersion);
792
+ // A same-mtime replacement is possible on fast or coarse filesystems.
793
+ // Writes force a disk read while holding the file lock, so strict mode
794
+ // must still reject a snapshot whose encrypted version advanced even when
795
+ // the timestamp could not distinguish the replacement.
796
+ if (forceFromDisk &&
797
+ args.coherence === "strict" &&
798
+ payload.vaultVersion !== vaultVersion) {
799
+ throw new VaultError("VAULT_STALE_SNAPSHOT", `Vault file version advanced externally (${payload.vaultVersion} vs session ${vaultVersion}); call reload() to continue.`);
800
+ }
526
801
  secrets = { ...payload.secrets };
527
802
  vaultVersion = payload.vaultVersion;
528
803
  mtimeMs = st.mtimeMs;
529
- const sidecar = readSidecar(args.sidecarPath);
530
804
  if (sidecar === null || payload.vaultVersion > sidecar.highestSeenVersion) {
531
805
  writeSidecar(args.sidecarPath, { highestSeenVersion: payload.vaultVersion });
532
806
  }
@@ -544,9 +818,14 @@ function buildVault(args) {
544
818
  // Re-check open after awaiting the lock — TTL or a sibling close()
545
819
  // could have fired while we were queued (H2).
546
820
  assertOpen();
547
- maybeReload();
821
+ // The lock serializes writers, but mtime alone cannot prove that the
822
+ // ciphertext is unchanged: two atomic replacements can share an mtime
823
+ // on fast or coarse filesystems. Re-read under the lock before applying
824
+ // the mutation so a later writer always merges the prior commit.
825
+ maybeReload(true);
548
826
  const next = { ...secrets };
549
- mutator(next);
827
+ if (!mutator(next))
828
+ return false;
550
829
  const nextVersion = vaultVersion + 1;
551
830
  const payload = {
552
831
  schema: VAULT_SCHEMA_VERSION,
@@ -577,6 +856,7 @@ function buildVault(args) {
577
856
  secrets = next;
578
857
  vaultVersion = nextVersion;
579
858
  mtimeMs = statSync(args.vaultPath).mtimeMs;
859
+ return true;
580
860
  }
581
861
  finally {
582
862
  release();
@@ -623,44 +903,48 @@ function buildVault(args) {
623
903
  */
624
904
  const withAudit = async (op, successType, missingType, failType, fn, extras) => {
625
905
  assertOpen();
626
- const beforeStart = Date.now();
627
- await runBeforeHooks(op, (error) => ({
906
+ const wallStartedAt = Date.now();
907
+ const monotonicStartedAt = performance.now();
908
+ const policyFrame = await runBeforeHooks(op, (error) => ({
628
909
  type: rejectedEventType(op),
629
- timestamp: new Date(beforeStart).toISOString(),
910
+ timestamp: new Date(wallStartedAt).toISOString(),
630
911
  backend: "session-vault",
912
+ operation: op,
631
913
  key: op.key,
632
914
  prefix: op.prefix,
633
915
  error,
634
- durationMs: Date.now() - beforeStart,
916
+ durationMs: performance.now() - monotonicStartedAt,
635
917
  }));
636
- // Re-check after the await — TTL or sibling close() could have fired
637
- // while before-hooks awaited (H2).
638
- assertOpen();
639
- const start = Date.now();
640
918
  try {
919
+ // Re-check after the await — TTL or sibling close() could have fired
920
+ // while before-hooks awaited (H2). Keep this inside the audited region
921
+ // so the captured policy frame observes the resulting failure.
922
+ assertOpen();
641
923
  const value = await fn();
642
924
  const isMissing = missingType !== null && (value === null || value === false);
643
925
  runAfterHooks({
644
926
  type: isMissing ? missingType : successType,
645
- timestamp: new Date(start).toISOString(),
927
+ timestamp: new Date(wallStartedAt).toISOString(),
646
928
  backend: "session-vault",
929
+ operation: op,
647
930
  key: op.key,
648
931
  prefix: op.prefix,
649
932
  ...(extras !== undefined ? extras(value) : {}),
650
- durationMs: Date.now() - start,
651
- });
933
+ durationMs: performance.now() - monotonicStartedAt,
934
+ }, policyFrame);
652
935
  return value;
653
936
  }
654
937
  catch (err) {
655
938
  runAfterHooks({
656
939
  type: failType,
657
- timestamp: new Date(start).toISOString(),
940
+ timestamp: new Date(wallStartedAt).toISOString(),
658
941
  backend: "session-vault",
942
+ operation: op,
659
943
  key: op.key,
660
944
  prefix: op.prefix,
661
945
  error: err instanceof Error ? err.message : String(err),
662
- durationMs: Date.now() - start,
663
- });
946
+ durationMs: performance.now() - monotonicStartedAt,
947
+ }, policyFrame);
664
948
  throw err;
665
949
  }
666
950
  };
@@ -684,20 +968,22 @@ function buildVault(args) {
684
968
  // `async` keyword ensures a sync throw from validateName surfaces as a
685
969
  // promise rejection, matching the declared `Promise<void>` contract.
686
970
  validateName(name);
687
- return withAudit({ type: "write", key: name }, "credential_written", null, "credential_write_failed", () => writeOp((current) => {
688
- current[name] = value;
689
- }));
690
- },
691
- delete(name) {
692
- return withAudit({ type: "delete", key: name }, "credential_deleted", "credential_delete_failed", "credential_delete_failed", async () => {
693
- if (!(name in secrets))
694
- return false;
971
+ return withAudit({ type: "write", key: name }, "credential_written", null, "credential_write_failed", async () => {
695
972
  await writeOp((current) => {
696
- delete current[name];
973
+ current[name] = value;
974
+ return true;
697
975
  });
698
- return true;
699
976
  });
700
977
  },
978
+ delete(name) {
979
+ return withAudit({ type: "delete", key: name }, "credential_deleted", "credential_delete_failed", "credential_delete_failed", () => writeOp((current) => {
980
+ if (name in current) {
981
+ delete current[name];
982
+ return true;
983
+ }
984
+ return false;
985
+ }));
986
+ },
701
987
  async reload() {
702
988
  assertOpen();
703
989
  let st;
@@ -742,6 +1028,7 @@ function buildVault(args) {
742
1028
  throw new VaultDecryptError("Decrypted payload has invalid shape during reload — possible corruption.");
743
1029
  }
744
1030
  }
1031
+ assertVersionNotRolledBack(payload.vaultVersion);
745
1032
  secrets = { ...payload.secrets };
746
1033
  vaultVersion = payload.vaultVersion;
747
1034
  mtimeMs = st.mtimeMs;
@@ -1 +1 @@
1
- {"version":3,"file":"session-vault.js","sourceRoot":"","sources":["../../src/vault/session-vault.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAIjE,OAAO,EACL,cAAc,EACd,aAAa,EACb,iBAAiB,GAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,kEAAkE;AAClE,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,iBAAiB;AACjB,2EAA2E;AAC3E,4EAA4E;AAC5E,yBAAyB,GAC1B,CAAC;AAEF,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,yEAAyE;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAEvF,yEAAyE;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CACtC,OAAO,EAAE,EACT,WAAW,EACX,SAAS,EACT,oBAAoB,CACrB,CAAC;AAEF,0CAA0C;AAC1C,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AA2HzD,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,uEAAuE;QACvE,yEAAyE;QACzE,8BAA8B;QAC9B,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACtE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,SAAS,SAAS,CAAC,qBAA6B,EAAE,MAAc;IAC9D,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,GAAG,gBAAgB,KAAK,MAAM,IAAI,qBAAqB,EAAE,CAAC;SACjE,MAAM,EAAE,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC;QACrC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iCAAiC,IAAI,uBAAuB;gBAC1D,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,kBAAkB;gBACnE,uBAAuB,IAAI,IAAI,CAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAyB,EAAE;IACzD,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,WAAW,CAC7B,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC,CACnE,CAAC;IACF,MAAM,SAAS,GAAsB,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC;IACrE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,iBAAiB,EACjB,2BAA2B,SAAS,8CAA8C,CACnF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,wDAAwD;IACxD,EAAE;IACF,uEAAuE;IACvE,sEAAsE;IACtE,qEAAqE;IACrE,2EAA2E;IAC3E,8EAA8E;IAC9E,IAAI,QAAqB,CAAC;IAC1B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAA8B,EAAE,SAAS,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtE,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QACD,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;IACrC,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;QAChD,MAAM,IAAI,gBAAgB,CACxB,aAAa,EAAE,OAAO;YACpB,eAAe,QAAQ,CAAC,IAAI,gEAAgE,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEvD,gCAAgC;IAChC,EAAE;IACF,yDAAyD;IACzD,qEAAqE;IACrE,wEAAwE;IACxE,2EAA2E;IAC3E,2EAA2E;IAC3E,kEAAkE;IAClE,4EAA4E;IAC5E,EAAE;IACF,0EAA0E;IAC1E,0EAA0E;IAC1E,0EAA0E;IAC1E,kEAAkE;IAClE,2BAA2B;IAC3B,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7C,IAAI,YAA0B,CAAC;IAC/B,IAAI,CAAC;QACH,YAAY,GAAG,gBAAgB,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACrC,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;IACnD,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2DAA2D,SAAS,IAAI;YACtE,+BAA+B,oBAAoB,oCAAoC,CAC1F,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,iEAAiE;QACjE,oEAAoE;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,EAAE;QACF,uEAAuE;QACvE,oEAAoE;QACpE,yEAAyE;QACzE,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,UAAU,CAClB,uBAAuB,EACvB,gBAAgB,WAAW,4CAA4C;gBACrE,kEAAkE;gBAClE,uEAAuE;gBACvE,iEAAiE;gBACjE,sEAAsE,CACzE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,4BAA4B,CAAC;QACxF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,WAAW,eAAe;YAC3D,iCAAiC,OAAO,CAAC,YAAY,QAAQ,MAAM,KAAK,CAC3E,CAAC;QACF,YAAY,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iEAAiE;YAC/D,GAAG,OAAO,CAAC,kBAAkB,YAAY,OAAO,CAAC,YAAY,IAAI;YACjE,8DAA8D;YAC9D,qBAAqB,CACxB,CAAC;QACF,YAAY,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC7D,YAAY,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,UAAU,CAAC;QAChB,SAAS;QACT,WAAW;QACX,QAAQ,EAAE,QAAQ,CAAC,IAAuB;QAC1C,SAAS;QACT,GAAG;QACH,GAAG;QACH,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE;QACtC,cAAc,EAAE,OAAO,CAAC,YAAY;QACpC,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AA8DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAuB;IAEvB,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,WAAW,CAC7B,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC,CACnE,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,UAAU,CAClB,iBAAiB,EACjB,2BAA2B,SAAS,8CAA8C,CACnF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,SAAS,CAAC,CAAC;IAC3B,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/B,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAClD,aAAa,EACb,IAAI,CAAC,UAAU,EACf,GAAG,EACH,SAAS,CACV,CAAC;QAEF,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,mCAAmC;QACnC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1D,MAAM,IAAI,UAAU,CAClB,uBAAuB,EACvB,gBAAgB,WAAW,4CAA4C;oBACrE,mEAAmE;oBACnE,sEAAsE;oBACtE,6DAA6D,CAChE,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,WAAW,eAAe;gBAC3D,2BAA2B;gBAC3B,GAAG,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,4BAA4B,KAAK,CACnF,CAAC;QACJ,CAAC;aAAM,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBACjC,MAAM,IAAI,kBAAkB,CAC1B,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,YAAY,CACrB,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sDAAsD;gBACpD,GAAG,OAAO,CAAC,YAAY,kCAAkC;gBACzD,GAAG,OAAO,CAAC,kBAAkB,8BAA8B,CAC9D,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,yEAAyE;QACzE,gCAAgC;QAChC,MAAM,WAAW,GACf,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,kBAAkB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAiB;YAChC,MAAM,EAAE,oBAAoB;YAC5B,YAAY,EAAE,WAAW;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC;QACF,MAAM,SAAS,GAAG,aAAa,CAC7B,WAAiD,EACjD,IAAI,CAAC,OAAO,EACZ,GAAG,CACJ,CAAC;QACF,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAClB,sBAAsB,EACtB,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,4DAA4D;QAC5D,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,CAAC,KAAa,EAAQ,EAAE;YAC9C,MAAM,GAAG,GAAG,GAAG,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACjE,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YACrD,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,eAAe,CAAC,SAAS,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,sEAAsE;gBACtE,qEAAqE;gBACrE,IAAI,CAAC;oBACH,eAAe,CAAC,aAAa,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,4DAA4D;oBAC5D,kEAAkE;oBAClE,kEAAkE;oBAClE,oEAAoE;oBACpE,mEAAmE;oBACnE,8CAA8C;oBAC9C,MAAM,IAAI,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACvE,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,EAAE;QACF,wEAAwE;QACxE,0EAA0E;QAC1E,2EAA2E;QAC3E,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,+DAA+D;QAC/D,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC;YACH,YAAY,CAAC,WAAW,EAAE;gBACxB,kBAAkB,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,IAAI,CAAC,EAAE,WAAW,CAAC;aAC5E,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gBAAgB,GAAG,KAAK,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gEAAgE;gBAC9D,GAAG,WAAW,qBAAqB,WAAW,gBAAgB;gBAC9D,YAAY,OAAO,4CAA4C;gBAC/D,+DAA+D;gBAC/D,kDAAkD,CACrD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM;YAChD,YAAY,EAAE,WAAW;YACzB,kBAAkB,EAAE,cAAc;YAClC,gBAAgB;SACjB,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAkBD,SAAS,UAAU,CAAC,IAAoB;IACtC,IAAI,GAAG,GAAkB,IAAI,CAAC,GAAG,CAAC;IAClC,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;IAClC,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;IACvC,4EAA4E;IAC5E,4EAA4E;IAC5E,+DAA+D;IAC/D,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;IAC/C,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,IAAI,QAAQ,GAA0B,IAAI,CAAC;IAC3C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,IAAI,MAAM,IAAI,GAAG,KAAK,IAAI;YAAE,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAC3D,CAAC,CAAC;IAEF;;;;OAIG;IACH,MAAM,WAAW,GAAG,GAAS,EAAE;QAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,aAAa;YAAE,OAAO;QAC7C,0EAA0E;QAC1E,2DAA2D;QAC3D,IAAI,EAA+B,CAAC;QACpC,IAAI,CAAC;YACH,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrD,MAAM,IAAI,UAAU,CAClB,oBAAoB,EACpB,cAAc,IAAI,CAAC,SAAS,0BAA0B,CACvD,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QACnC,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;YACxD,qEAAqE;YACrE,MAAM,IAAI,UAAU,CAClB,sBAAsB,EACtB,yCAAyC,EAAE,CAAC,OAAO,eAAe,OAAO,+BAA+B,CACzG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,uEAAuE;QACvE,uEAAuE;QACvE,gEAAgE;QAChE,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAI,CAAC,CAAC;YACrC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,iBAAiB,CACzB,gGAAgG,CACjG,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,qEAAqE;YACrE,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;gBAC3B,MAAM,aAAa,GAA2B,EAAE,CAAC;gBACjD,IAAI,EAAE,GAAG,IAAI,CAAC;gBACd,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBAAC,EAAE,GAAG,KAAK,CAAC;wBAAC,MAAM;oBAAC,CAAC;oBACjD,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,MAAM,IAAI,iBAAiB,CACzB,kFAAkF,CACnF,CAAC;gBACJ,CAAC;gBACD,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;YACnE,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,iBAAiB,CACzB,kFAAkF,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACjC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QACrB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC1E,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC;IAEF;;;;;OAKG;IACH,MAAM,OAAO,GAAG,KAAK,EACnB,OAAkD,EACnC,EAAE;QACjB,UAAU,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,mEAAmE;YACnE,8CAA8C;YAC9C,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC;YACrC,MAAM,OAAO,GAAiB;gBAC5B,MAAM,EAAE,oBAAoB;gBAC5B,YAAY,EAAE,WAAW;gBACzB,OAAO,EAAE,IAAI;aACd,CAAC;YACF,MAAM,SAAS,GAAG,aAAa,CAC7B,OAA6C,EAC7C,GAAI,EACJ,IAAI,CAAC,GAAG,CACT,CAAC;YACF,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,UAAU,CAAC,sBAAsB,EAAE,6CAA6C,CAAC,CAAC;YAC9F,CAAC;YACD,qEAAqE;YACrE,uEAAuE;YACvE,qEAAqE;YACrE,sEAAsE;YACtE,kEAAkE;YAClE,QAAQ;YACR,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3E,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;YAC9D,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,uEAAuE;YACvE,uEAAuE;YACvE,mDAAmD;YACnD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;YAC3E,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,CAAC;YAEnE,kEAAkE;YAClE,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,GAAG,WAAW,CAAC;YAC3B,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,yEAAyE;YACzE,4EAA4E;YAC5E,wEAAwE;YACxE,wEAAwE;YACxE,gEAAgE;YAChE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;QACD,gEAAgE;QAChE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;IACf,CAAC,CAAC;IAEF;;;;;;;;;;;;;;;OAeG;IACH,MAAM,SAAS,GAAG,KAAK,EACrB,EAAoB,EACpB,WAA6B,EAC7B,WAAoC,EACpC,QAA0B,EAC1B,EAAwB,EACxB,MAAoD,EACxC,EAAE;QACd,UAAU,EAAE,CAAC;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,cAAc,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;YAC3B,SAAS,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;YAC9C,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,EAAE,CAAC,GAAG;YACX,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW;SACrC,CAAC,CAAC,CAAC;QACJ,qEAAqE;QACrE,mCAAmC;QACnC,UAAU,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;YACzB,MAAM,SAAS,GACb,WAAW,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC;YAC9D,aAAa,CAAC;gBACZ,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;gBAC3C,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;gBACxC,OAAO,EAAE,eAAe;gBACxB,GAAG,EAAE,EAAE,CAAC,GAAG;gBACX,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9C,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,CAAC;gBACZ,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;gBACxC,OAAO,EAAE,eAAe;gBACxB,GAAG,EAAE,EAAE,CAAC,GAAG;gBACX,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;gBACvD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC/B,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,CAAC,IAAY;YACd,OAAO,SAAS,CACd,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAC3B,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,GAAG,EAAE;gBACH,WAAW,EAAE,CAAC;gBACd,OAAO,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjD,CAAC,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAe;YAClB,OAAO,SAAS,CACd,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAC7B,uBAAuB,EACvB,IAAI,EACJ,6BAA6B,EAC7B,GAAG,EAAE;gBACH,WAAW,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1C,OAAO,MAAM,KAAK,SAAS;oBACzB,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAChD,CAAC,EACD,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CACxC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,KAAa;YACnC,uEAAuE;YACvE,qEAAqE;YACrE,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,SAAS,CACd,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAC5B,oBAAoB,EACpB,IAAI,EACJ,yBAAyB,EACzB,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACxB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,CACH,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAY;YACjB,OAAO,SAAS,CACd,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,EAC7B,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,IAAI,EAAE;gBACT,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACrC,MAAM,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACxB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC,CACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,MAAM;YACV,UAAU,EAAE,CAAC;YACb,IAAI,EAA+B,CAAC;YACpC,IAAI,CAAC;gBACH,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACrD,MAAM,IAAI,UAAU,CAClB,oBAAoB,EACpB,cAAc,IAAI,CAAC,SAAS,0BAA0B,CACvD,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3C,6CAA6C;YAC7C,UAAU,EAAE,CAAC;YACb,qEAAqE;YACrE,uEAAuE;YACvE,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,OAAO,KAAK,IAAI;gBAAE,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAI,CAAC,CAAC;YAC3D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,iBAAiB,CACzB,wFAAwF,CACzF,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,EAAE,CAAC;oBAC3B,MAAM,aAAa,GAA2B,EAAE,CAAC;oBACjD,IAAI,EAAE,GAAG,IAAI,CAAC;oBACd,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;4BAAC,EAAE,GAAG,KAAK,CAAC;4BAAC,MAAM;wBAAC,CAAC;wBACjD,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACvB,CAAC;oBACD,IAAI,CAAC,EAAE,EAAE,CAAC;wBACR,MAAM,IAAI,iBAAiB,CACzB,0EAA0E,CAC3E,CAAC;oBACJ,CAAC;oBACD,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,iBAAiB,CACzB,0EAA0E,CAC3E,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACjC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QACvB,CAAC;QAED,KAAK,EAAE,OAAO;QAEd,IAAI,QAAQ;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;QACD,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QACD,IAAI,YAAY;YACd,OAAO,YAAY,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;;;;;;GAOG;AACH,SAAS,eAAe,CAAC,OAAgC;IACvD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtC,IACE,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QAC5B,SAAS,GAAG,CAAC;QACb,SAAS,GAAG,MAAM,CAAC,gBAAgB,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,yEAAyE;IACzE,kCAAkC;IAClC,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IACE,OAAO,UAAU,KAAK,QAAQ;QAC9B,UAAU,KAAK,IAAI;QACnB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,UAAqC,CAAC;IACzD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,KAAK;QACnB,OAAO;KACR,CAAC;AACJ,CAAC;AAUD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,gBAAgB,CACvB,KAAa,EACb,GAAW,EACX,GAAW,EACX,SAAiB;IAEjB,IAAI,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,iBAAiB,CACzB,8BAA8B,SAAS,iEAAiE,oBAAoB,qCAAqC,CAClK,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;QACjB,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;IAEzD,mEAAmE;IACnE,0EAA0E;IAC1E,4DAA4D;IAC5D,IAAI,CAAC,cAAc,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC3C,MAAM,IAAI,iBAAiB,CACzB,+EAA+E,CAChF,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CACzB,wEAAwE,CAAC,kDAAkD,CAC5H,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,uBAAuB,eAAe,uBAAuB,CAC9D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACzB,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,6DAA6D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,4EAA4E;IAC5E,uEAAuE;IACvE,wCAAwC;IACxC,4CAA4C;IAC5C,IAAI,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAClB,cAAc,EACd,wGAAwG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAC/H,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"session-vault.js","sourceRoot":"","sources":["../../src/vault/session-vault.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,15 @@ export declare function readSidecar(path: string): SidecarContent | null;
27
27
  * fail JSON parse on the next open.
28
28
  */
29
29
  export declare function writeSidecar(path: string, content: SidecarContent): void;
30
+ /**
31
+ * Publish an initial sidecar without ever replacing an existing destination.
32
+ *
33
+ * A hard link is the portable Node filesystem primitive that combines an
34
+ * already-complete temp file with EEXIST-preserving publication. The temp and
35
+ * destination are in the same directory, so they necessarily share a
36
+ * filesystem. Existing sidecar updates continue to use {@link writeSidecar}.
37
+ */
38
+ export declare function createSidecar(path: string, content: SidecarContent): void;
30
39
  /**
31
40
  * Check sidecar file mode; warn on stderr if not 0600.
32
41
  * Symmetric to the vault-file permission check — a world-readable sidecar
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/vault/sidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,qDAAqD;AACrD,eAAO,MAAM,eAAe,MAAQ,CAAC;AAErC,qEAAqE;AACrE,eAAO,MAAM,cAAc,MAAQ,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAiC/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAKxE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAepD"}
1
+ {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/vault/sidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,qDAAqD;AACrD,eAAO,MAAM,eAAe,MAAQ,CAAC;AAErC,qEAAqE;AACrE,eAAO,MAAM,cAAc,MAAQ,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAkCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAiC/D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAgBxE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,IAAI,CAaN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAepD"}