ftown-bridge 0.20.9 → 0.21.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 (118) hide show
  1. package/dist/centrifugo-client.d.ts +15 -11
  2. package/dist/centrifugo-client.js +63 -70
  3. package/dist/centrifugo-client.js.map +1 -1
  4. package/dist/cli-client.d.ts +11 -1
  5. package/dist/cli-client.js +23 -3
  6. package/dist/cli-client.js.map +1 -1
  7. package/dist/command-rpc.js +4 -8
  8. package/dist/command-rpc.js.map +1 -1
  9. package/dist/identity-reset.d.ts +1 -0
  10. package/dist/identity-reset.js +31 -5
  11. package/dist/identity-reset.js.map +1 -1
  12. package/dist/index.js +184 -288
  13. package/dist/index.js.map +1 -1
  14. package/dist/ledger-pairing-client.d.ts +28 -0
  15. package/dist/ledger-pairing-client.js +152 -0
  16. package/dist/ledger-pairing-client.js.map +1 -0
  17. package/dist/ledger-relay.d.ts +124 -0
  18. package/dist/ledger-relay.js +453 -0
  19. package/dist/ledger-relay.js.map +1 -0
  20. package/dist/ledger-startup.d.ts +151 -0
  21. package/dist/ledger-startup.js +203 -0
  22. package/dist/ledger-startup.js.map +1 -0
  23. package/dist/relay-token.d.ts +39 -0
  24. package/dist/relay-token.js +130 -0
  25. package/dist/relay-token.js.map +1 -0
  26. package/dist/revocation-gating.d.ts +0 -13
  27. package/dist/revocation-gating.js +0 -16
  28. package/dist/revocation-gating.js.map +1 -1
  29. package/dist/security/bridge/identity.d.ts +2 -47
  30. package/dist/security/bridge/identity.js +3 -3
  31. package/dist/security/bridge/identity.js.map +1 -1
  32. package/dist/security/bridge/ledger-identity.d.ts +48 -0
  33. package/dist/security/bridge/ledger-identity.js +342 -0
  34. package/dist/security/bridge/ledger-identity.js.map +1 -0
  35. package/dist/security/bridge/ledger-store.d.ts +84 -0
  36. package/dist/security/bridge/ledger-store.js +485 -0
  37. package/dist/security/bridge/ledger-store.js.map +1 -0
  38. package/dist/security/bridge/metadata.d.ts +2 -2
  39. package/dist/security/bridge/permissions.js +2 -2
  40. package/dist/security/bridge/permissions.js.map +1 -1
  41. package/dist/security/bridge/policy.d.ts +42 -23
  42. package/dist/security/bridge/policy.js +214 -146
  43. package/dist/security/bridge/policy.js.map +1 -1
  44. package/dist/security/bridge/security.d.ts +84 -33
  45. package/dist/security/bridge/security.js +240 -166
  46. package/dist/security/bridge/security.js.map +1 -1
  47. package/dist/security/crypto.js +1 -1
  48. package/dist/security/crypto.js.map +1 -1
  49. package/dist/security/ledger/channels.d.ts +5 -0
  50. package/dist/security/ledger/channels.js +21 -0
  51. package/dist/security/ledger/channels.js.map +1 -0
  52. package/dist/security/ledger/ledger.d.ts +61 -0
  53. package/dist/security/ledger/ledger.js +597 -0
  54. package/dist/security/ledger/ledger.js.map +1 -0
  55. package/dist/security/ledger/pairing.d.ts +81 -0
  56. package/dist/security/ledger/pairing.js +414 -0
  57. package/dist/security/ledger/pairing.js.map +1 -0
  58. package/dist/security/ledger/proof.d.ts +24 -0
  59. package/dist/security/ledger/proof.js +161 -0
  60. package/dist/security/ledger/proof.js.map +1 -0
  61. package/dist/security/ledger/protocol.d.ts +100 -0
  62. package/dist/security/ledger/protocol.js +16 -0
  63. package/dist/security/ledger/protocol.js.map +1 -0
  64. package/dist/security/ledger/testing.d.ts +27 -0
  65. package/dist/security/ledger/testing.js +70 -0
  66. package/dist/security/ledger/testing.js.map +1 -0
  67. package/dist/security/ledger/webauthn.d.ts +12 -0
  68. package/dist/security/ledger/webauthn.js +147 -0
  69. package/dist/security/ledger/webauthn.js.map +1 -0
  70. package/dist/security/protocol.d.ts +5 -10
  71. package/dist/security-cli.d.ts +5 -0
  72. package/dist/security-cli.js +28 -16
  73. package/dist/security-cli.js.map +1 -1
  74. package/dist/token-provider.d.ts +39 -0
  75. package/dist/token-provider.js +101 -0
  76. package/dist/token-provider.js.map +1 -0
  77. package/dist/types.d.ts +1 -1
  78. package/package.json +2 -2
  79. package/skills/ftown/references/sessions.md +3 -2
  80. package/dist/bridge-auth.d.ts +0 -31
  81. package/dist/bridge-auth.js +0 -70
  82. package/dist/bridge-auth.js.map +0 -1
  83. package/dist/pairing-client.d.ts +0 -62
  84. package/dist/pairing-client.js +0 -469
  85. package/dist/pairing-client.js.map +0 -1
  86. package/dist/rotating-token-refresher.d.ts +0 -42
  87. package/dist/rotating-token-refresher.js +0 -91
  88. package/dist/rotating-token-refresher.js.map +0 -1
  89. package/dist/security/account-crypto.d.ts +0 -33
  90. package/dist/security/account-crypto.js +0 -649
  91. package/dist/security/account-crypto.js.map +0 -1
  92. package/dist/security/account-protocol.d.ts +0 -228
  93. package/dist/security/account-protocol.js +0 -2
  94. package/dist/security/account-protocol.js.map +0 -1
  95. package/dist/security/bridge/account-client.d.ts +0 -7
  96. package/dist/security/bridge/account-client.js +0 -101
  97. package/dist/security/bridge/account-client.js.map +0 -1
  98. package/dist/security/bridge/account-state.d.ts +0 -105
  99. package/dist/security/bridge/account-state.js +0 -79
  100. package/dist/security/bridge/account-state.js.map +0 -1
  101. package/dist/security/bridge/pending-approval.d.ts +0 -21
  102. package/dist/security/bridge/pending-approval.js +0 -80
  103. package/dist/security/bridge/pending-approval.js.map +0 -1
  104. package/dist/security/bridge/pending-enrollment.d.ts +0 -33
  105. package/dist/security/bridge/pending-enrollment.js +0 -177
  106. package/dist/security/bridge/pending-enrollment.js.map +0 -1
  107. package/dist/security/bridge/revocation.d.ts +0 -14
  108. package/dist/security/bridge/revocation.js +0 -40
  109. package/dist/security/bridge/revocation.js.map +0 -1
  110. package/dist/security/pending-approval-crypto.d.ts +0 -29
  111. package/dist/security/pending-approval-crypto.js +0 -716
  112. package/dist/security/pending-approval-crypto.js.map +0 -1
  113. package/dist/security/pending-approval-protocol.d.ts +0 -329
  114. package/dist/security/pending-approval-protocol.js +0 -2
  115. package/dist/security/pending-approval-protocol.js.map +0 -1
  116. package/dist/security/security-nudge.d.ts +0 -31
  117. package/dist/security/security-nudge.js +0 -98
  118. package/dist/security/security-nudge.js.map +0 -1
@@ -1,5 +1,4 @@
1
1
  import { BridgeSecurityService } from './security/bridge/security.js';
2
- import { type SecurityNudgeScope } from './security/security-nudge.js';
3
2
  import type { SecureExecutionObserver } from './security/bridge/execution-observer.js';
4
3
  import type { ApplicationJson, VerifiedApplication } from './security/protocol.js';
5
4
  import type { Command, CommandResponse, Session } from './types.js';
@@ -9,6 +8,16 @@ type TerminalResizeHandler = (sessionId: string, cols: number, rows: number) =>
9
8
  type TerminalInitHandler = (sessionId: string) => void;
10
9
  type CommandHandler = (command: Command) => void;
11
10
  type DirectCommandHandler = (msg: DirectCommandMessage) => void;
11
+ export type LedgerMessage = {
12
+ type: 'ledger';
13
+ ledger: unknown;
14
+ } | {
15
+ type: 'ledger_head';
16
+ head: string;
17
+ revision: number;
18
+ };
19
+ /** Strict shape check for `bridges:ledger` publications; anything else is ignored. */
20
+ export declare function parseLedgerMessage(data: unknown): LedgerMessage | null;
12
21
  export declare class CentrifugoClient {
13
22
  private readonly client;
14
23
  private readonly subscriptions;
@@ -23,13 +32,13 @@ export declare class CentrifugoClient {
23
32
  setSecurity(security: BridgeSecurityService): void;
24
33
  private readonly disabled;
25
34
  private readonly localListeners;
26
- private readonly nudgeListeners;
27
- private readonly nudgeHealthListeners;
28
- private nudgeHealthy;
29
- private nudgeClientDown;
35
+ private readonly onLedgerMessage?;
36
+ private readonly onLedgerSubscribed?;
30
37
  constructor(url: string, token: string, getToken: () => Promise<string>, opts?: {
31
38
  onReconnect?: () => void | Promise<void>;
32
39
  disabled?: boolean;
40
+ onLedgerMessage?: (message: LedgerMessage) => void;
41
+ onLedgerSubscribed?: () => void;
33
42
  });
34
43
  /** Observe bridge publications without depending on the cloud transport. */
35
44
  onLocalPublication(listener: (channel: string, data: unknown) => void): () => void;
@@ -47,12 +56,7 @@ export declare class CentrifugoClient {
47
56
  /** Wait for the current secure commands subscription on the current connection. */
48
57
  waitUntilSecureCommandsReady(timeoutMs: number): Promise<void>;
49
58
  joinBridgesChannel(userId: string, bridgeId: string): void;
50
- onSecurityNudge(listener: (scope: SecurityNudgeScope) => void): () => void;
51
- get securityNudgeHealthy(): boolean;
52
- onSecurityNudgeHealth(listener: (healthy: boolean) => void): () => void;
53
- private setNudgeHealth;
54
- private emitSecurityNudge;
55
- private joinSecurityNudgeChannel;
59
+ private joinLedgerChannel;
56
60
  publishTerminalScreen(userId: string, sessionId: string, raw: string): Promise<void>;
57
61
  publishHookEvent(userId: string, sessionId: string, event: Record<string, unknown>): Promise<void>;
58
62
  /** Publishes a bridge-originated WebRTC signaling message on the commands channel. */
@@ -1,6 +1,6 @@
1
1
  import { Centrifuge } from 'centrifuge';
2
2
  import { applicationJson } from './security/bridge/security.js';
3
- import { parseSecurityNudge, securityNudgeChannel } from './security/security-nudge.js';
3
+ import { accountChannel, sessionChannel } from './security/ledger/channels.js';
4
4
  import { executeSecurePacket } from './security/bridge/execute.js';
5
5
  import { scopedUpdateObserver } from './update-effects.js';
6
6
  import WebSocket from 'ws';
@@ -9,6 +9,29 @@ import { COMMAND_REJECTED_WARNING, describeError } from './outbound-pipeline-typ
9
9
  import { hostname } from 'node:os';
10
10
  import { toWireSession } from './session-wire.js';
11
11
  const MAX_PUBLISH_BYTES = 300_000;
12
+ /** Strict shape check for `bridges:ledger` publications; anything else is ignored. */
13
+ export function parseLedgerMessage(data) {
14
+ if (typeof data !== 'object' || data === null || Array.isArray(data))
15
+ return null;
16
+ const record = data;
17
+ const keys = Object.keys(record);
18
+ if (record.type === 'ledger') {
19
+ if (keys.length !== 2 || !keys.includes('ledger') || record.ledger === undefined || record.ledger === null)
20
+ return null;
21
+ return { type: 'ledger', ledger: record.ledger };
22
+ }
23
+ if (record.type === 'ledger_head') {
24
+ if (keys.length !== 3 || !keys.includes('head') || !keys.includes('revision'))
25
+ return null;
26
+ const { head, revision } = record;
27
+ if (typeof head !== 'string' || head.length === 0)
28
+ return null;
29
+ if (typeof revision !== 'number' || !Number.isSafeInteger(revision) || revision < 0)
30
+ return null;
31
+ return { type: 'ledger_head', head, revision };
32
+ }
33
+ return null;
34
+ }
12
35
  /**
13
36
  * Fail-closed publisher-identity check for inbound client publications on a
14
37
  * user-limited channel `ch#{owner}`.
@@ -25,7 +48,7 @@ const MAX_PUBLISH_BYTES = 300_000;
25
48
  * publishes carry `info.user == owner`. We accept ONLY those and drop everything
26
49
  * else — a mismatched publisher, and (fail-closed) any publication whose info is
27
50
  * missing/empty (e.g. a server-API publish with no client context, or an empty
28
- * anonymous user). `owner` is always a non-empty email, so the empty-string
51
+ * anonymous user). `owner` is always a non-empty account id, so the empty-string
29
52
  * anonymous user can never match.
30
53
  */
31
54
  function isOwnerPublication(ctx, owner) {
@@ -69,13 +92,13 @@ export class CentrifugoClient {
69
92
  setSecurity(security) { this.security = security; }
70
93
  disabled;
71
94
  localListeners = new Set();
72
- nudgeListeners = new Set();
73
- nudgeHealthListeners = new Set();
74
- nudgeHealthy = false;
75
- nudgeClientDown = null;
95
+ onLedgerMessage;
96
+ onLedgerSubscribed;
76
97
  constructor(url, token, getToken, opts) {
77
98
  this.onReconnect = opts?.onReconnect;
78
99
  this.disabled = opts?.disabled ?? false;
100
+ this.onLedgerMessage = opts?.onLedgerMessage;
101
+ this.onLedgerSubscribed = opts?.onLedgerSubscribed;
79
102
  this.client = new Centrifuge(url, {
80
103
  token,
81
104
  getToken,
@@ -195,7 +218,7 @@ export class CentrifugoClient {
195
218
  // intentionally empty — publish-only channel, no subscription needed.
196
219
  }
197
220
  async publishSessionUpdate(userId, session) {
198
- const channel = `sessions:updates#${userId}`;
221
+ const channel = accountChannel('sessions:updates', userId);
199
222
  try {
200
223
  await this.publish(channel, {
201
224
  type: 'session_update',
@@ -209,7 +232,7 @@ export class CentrifugoClient {
209
232
  }
210
233
  }
211
234
  async publishTerminalData(userId, sessionId, data) {
212
- const channel = `terminal:${sessionId}#${userId}`;
235
+ const channel = sessionChannel('terminal', sessionId, userId);
213
236
  // The bridge only PUBLISHES terminal output; the UI is the sole subscriber.
214
237
  // The `terminal` namespace has `allow_publish_for_client: true`
215
238
  // (centrifugo/config.json), so client publishing needs no subscription. The
@@ -231,7 +254,7 @@ export class CentrifugoClient {
231
254
  subscribeToTerminalInput(userId, sessionId, onInput, onResize, onInit) {
232
255
  if (this.disabled)
233
256
  return;
234
- const channel = `terminal-input:${sessionId}#${userId}`;
257
+ const channel = sessionChannel('terminal-input', sessionId, userId);
235
258
  if (this.subscriptions.has(channel)) {
236
259
  return;
237
260
  }
@@ -272,7 +295,7 @@ export class CentrifugoClient {
272
295
  subscribeSecureCommands(userId, dispatch, observer) {
273
296
  if (this.disabled)
274
297
  return;
275
- const channel = `commands:rpc#${userId}`;
298
+ const channel = accountChannel('commands:rpc', userId);
276
299
  const existing = this.subscriptions.get(channel);
277
300
  this.secureCommandSubscription = null;
278
301
  this.secureCommandReady = false;
@@ -359,7 +382,7 @@ export class CentrifugoClient {
359
382
  joinBridgesChannel(userId, bridgeId) {
360
383
  if (this.disabled)
361
384
  return;
362
- const channel = `bridges:presence#${userId}`;
385
+ const channel = accountChannel('bridges:presence', userId);
363
386
  const presenceInfo = {
364
387
  bridgeId,
365
388
  hostname: hostname(),
@@ -376,80 +399,50 @@ export class CentrifugoClient {
376
399
  });
377
400
  sub.subscribe();
378
401
  this.subscriptions.set(channel, sub);
379
- this.joinSecurityNudgeChannel(userId);
380
- }
381
- onSecurityNudge(listener) {
382
- this.nudgeListeners.add(listener);
383
- return () => { this.nudgeListeners.delete(listener); };
384
- }
385
- get securityNudgeHealthy() { return this.nudgeHealthy; }
386
- onSecurityNudgeHealth(listener) {
387
- this.nudgeHealthListeners.add(listener);
388
- return () => { this.nudgeHealthListeners.delete(listener); };
389
- }
390
- setNudgeHealth(healthy) {
391
- this.nudgeHealthy = healthy;
392
- for (const listener of [...this.nudgeHealthListeners]) {
393
- try {
394
- listener(healthy);
395
- }
396
- catch (err) {
397
- console.error('[Centrifugo] Security nudge health listener failed:', err);
398
- }
399
- }
400
- }
401
- emitSecurityNudge(scope) {
402
- for (const listener of [...this.nudgeListeners]) {
403
- try {
404
- listener(scope);
405
- }
406
- catch (err) {
407
- console.error('[Centrifugo] Security nudge listener failed:', err);
408
- }
409
- }
402
+ if (this.onLedgerMessage)
403
+ this.joinLedgerChannel(userId, this.onLedgerMessage);
410
404
  }
411
- // Raw subscription: the nudge is unsealed and content-free, so it bypasses the
412
- // secure-envelope path. Only the owner's own clients may trigger a refresh.
413
- joinSecurityNudgeChannel(userId) {
414
- const channel = securityNudgeChannel(userId);
405
+ // Raw subscription: ledger messages are self-authenticating (the receiver
406
+ // verifies the ledger from genesis), so this bypasses the secure-envelope
407
+ // path. Only the owner's own clients may publish; anything malformed is dropped.
408
+ joinLedgerChannel(userId, onMessage) {
409
+ const channel = accountChannel('bridges:ledger', userId);
415
410
  const existing = this.subscriptions.get(channel);
416
411
  if (existing) {
417
412
  existing.unsubscribe();
418
413
  this.client.removeSubscription(existing);
419
414
  }
420
- if (this.nudgeClientDown) {
421
- this.client.off('disconnected', this.nudgeClientDown);
422
- this.client.off('connecting', this.nudgeClientDown);
423
- }
424
415
  const sub = this.client.newSubscription(channel);
425
- this.setNudgeHealth(false);
426
- // Terminal subscribe errors and server unsubscribes surface only as
427
- // 'unsubscribed' in centrifuge-js, with no retry, so push is trusted only while subscribed.
428
- const down = () => this.setNudgeHealth(false);
429
- this.nudgeClientDown = down;
430
- this.client.on('disconnected', down);
431
- this.client.on('connecting', down);
432
- sub.on('unsubscribed', (ctx) => {
433
- console.warn(`[Centrifugo] Security nudge channel unsubscribed (code ${ctx.code}): ${ctx.reason ?? ''}`);
434
- down();
416
+ // Every (re)subscribe may follow missed ledger messages (e.g. a revocation), so re-read.
417
+ sub.on('subscribed', () => {
418
+ try {
419
+ this.onLedgerSubscribed?.();
420
+ }
421
+ catch (err) {
422
+ console.error('[Centrifugo] Ledger subscribed handler failed:', err);
423
+ }
435
424
  });
436
- sub.on('subscribing', down);
437
- // Every (re)subscribe may follow missed nudges, so resync unconditionally.
438
- sub.on('subscribed', () => { this.setNudgeHealth(true); this.emitSecurityNudge('account'); });
439
425
  sub.on('publication', (ctx) => {
440
426
  if (!isOwnerPublication(ctx, userId))
441
427
  return;
442
- if (parseSecurityNudge(ctx.data) === 'account')
443
- this.emitSecurityNudge('account');
428
+ const message = parseLedgerMessage(ctx.data);
429
+ if (!message)
430
+ return;
431
+ try {
432
+ onMessage(message);
433
+ }
434
+ catch (err) {
435
+ console.error('[Centrifugo] Ledger message handler failed:', err);
436
+ }
444
437
  });
445
438
  sub.on('error', (ctx) => {
446
- console.error(`[Centrifugo] Security nudge channel error:`, ctx.error);
439
+ console.error(`[Centrifugo] Ledger channel error:`, ctx.error);
447
440
  });
448
441
  sub.subscribe();
449
442
  this.subscriptions.set(channel, sub);
450
443
  }
451
444
  async publishTerminalScreen(userId, sessionId, raw) {
452
- const channel = `terminal:${sessionId}#${userId}`;
445
+ const channel = sessionChannel('terminal', sessionId, userId);
453
446
  try {
454
447
  await this.publish(channel, { type: 'screen_dump', raw: raw.slice(0, 60000), timestamp: new Date().toISOString() });
455
448
  for (let offset = 60000; offset < raw.length; offset += 60000)
@@ -460,7 +453,7 @@ export class CentrifugoClient {
460
453
  }
461
454
  }
462
455
  async publishHookEvent(userId, sessionId, event) {
463
- const channel = `events:${sessionId}#${userId}`;
456
+ const channel = sessionChannel('events', sessionId, userId);
464
457
  // The events namespace permits client publishing without subscribing.
465
458
  // Waiting for a subscription here deadlocks local hooks during cloud loss.
466
459
  try {
@@ -472,7 +465,7 @@ export class CentrifugoClient {
472
465
  }
473
466
  /** Publishes a bridge-originated WebRTC signaling message on the commands channel. */
474
467
  async publishSignal(userId, msg) {
475
- const channel = `commands:rpc#${userId}`;
468
+ const channel = accountChannel('commands:rpc', userId);
476
469
  try {
477
470
  await this.publish(channel, msg);
478
471
  }
@@ -481,7 +474,7 @@ export class CentrifugoClient {
481
474
  }
482
475
  }
483
476
  async publishCommandResponse(userId, response) {
484
- const channel = `commands:rpc#${userId}`;
477
+ const channel = accountChannel('commands:rpc', userId);
485
478
  try {
486
479
  await this.publish(channel, truncateData({
487
480
  type: 'command_response',
@@ -1 +1 @@
1
- {"version":3,"file":"centrifugo-client.js","sourceRoot":"","sources":["../src/centrifugo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAyB,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAA2B,MAAM,8BAA8B,CAAC;AACjH,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAIvF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAelD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,kBAAkB,CAAC,GAAuB,EAAE,KAAa;IAChE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,IAA6B;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEpD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,iBAAiB,GAAG,QAAQ,GAAG,GAAG,CAAC;QACxD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;YACzC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,eAAe,EAAE,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,iBAAiB,EAAE,CAAC;YAC3C,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAa;IACnB,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IACrD,WAAW,CAA8B;IAClD,YAAY,GAAG,KAAK,CAAC;IACrB,QAAQ,GAAiC,IAAI,CAAC;IACrC,QAAQ,GAAG,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAChE,OAAO,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IAClC,eAAe,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5D,yBAAyB,GAAwB,IAAI,CAAC;IACtD,kBAAkB,GAAG,KAAK,CAAC;IAEnC,WAAW,CAAC,QAA+B,IAAU,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAU;IAClB,cAAc,GAAG,IAAI,GAAG,EAA4C,CAAC;IACrE,cAAc,GAAG,IAAI,GAAG,EAAuC,CAAC;IAChE,oBAAoB,GAAG,IAAI,GAAG,EAA8B,CAAC;IACtE,YAAY,GAAG,KAAK,CAAC;IACrB,eAAe,GAAwB,IAAI,CAAC;IAEpD,YACE,GAAW,EACX,KAAa,EACb,QAA+B,EAC/B,IAAuE;QAEvE,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE;YAChC,KAAK;YACL,QAAQ;YACR,SAAS,EAAE,SAAS;YACpB,6DAA6D;YAC7D,0EAA0E;YAC1E,wEAAwE;YACxE,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,yEAAyE;YACzE,kBAAkB,EAAE,MAAM;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1D,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,kDAAkD;YAClD,IAAI,IAAI,CAAC,YAAY;gBAAE,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;YACrC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;gBAChF,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,kBAAkB,CAAC,QAAkD;QACnE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAEO,OAAO,CAAC,OAAe,EAAE,IAA6B;QAC5D,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QACD,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpB,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;gBAC1F,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE;wBAC3G,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5C,MAAM,GAAG,GAAqB,EAAE,CAAC;oBACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,iBAAiB;4BAAE,SAAS;wBAChD,MAAM,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;wBACpD,GAAG,CAAC,IAAI,CAAC;4BACP,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;4BAChD,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;yBACvE,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,GAAG,CAAC;gBACb,CAAC;aACF,CAAC,CAAC;YACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,UAAU;QACR,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,GAAG,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,uEAAuE;IACvE,gDAAgD;IAChD,mBAAmB,CAAC,OAAe;QACjC,sEAAsE;IACxE,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,OAAgB;QACzD,MAAM,OAAO,GAAG,oBAAoB,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC1B,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY;QACvE,MAAM,OAAO,GAAG,YAAY,SAAS,IAAI,MAAM,EAAE,CAAC;QAClD,4EAA4E;QAC5E,gEAAgE;QAChE,4EAA4E;QAC5E,6EAA6E;QAC7E,0EAA0E;QAC1E,8EAA8E;QAC9E,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,6DAA6D;QAC7D,IAAI,CAAC;YACH,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACxJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,wBAAwB,CACtB,MAAc,EACd,SAAiB,EACjB,OAA6B,EAC7B,QAA+B,EAC/B,MAA4B;QAE5B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,kBAAkB,SAAS,IAAI,MAAM,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjD,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAuB,EAAE,EAAE;YAChD,2EAA2E;YAC3E,sEAAsE;YACtE,wDAAwD;YACxD,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,IAAI,CACV,+CAA+C,OAAO,eAAe,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,GAAG,CAC7F,CAAC;gBACF,OAAO;YACT,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO;YACzH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC3F,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxI,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;oBAAE,OAAO;gBACjH,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAqE,CAAC;gBACvG,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvF,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,IAAK,EAAE,GAAG,CAAC,IAAK,CAAC,CAAC;gBACjI,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;oBAAE,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,yDAAyD;IACzD,mBAAmB,CAAC,OAAe,EAAE,QAAwB,EAAE,gBAAuC;QACpG,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC5E,CAAC;IAED,uBAAuB,CAAC,MAAc,EAAE,QAAoE,EAAE,QAAkC;QAC9I,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,gBAAgB,MAAM,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,QAAQ,EAAE,CAAC;YAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QACnF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;QACrC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,yBAAyB,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW;YAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjJ,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,yBAAyB,KAAK,GAAG;YAAE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAuB,EAAE,EAAE;YAChD,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,IAAsB,CAAC;YAC1C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,OAAO;YACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,IAAsC,CAAC,QAAQ,CAAC;YACnH,IAAI,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAC9C,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,CAAC;oBACL,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;wBAC5J,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC3C,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;wBAC/D,OAAO,QAAQ,CAAC;oBAClB,CAAC,EAAE,MAAM,CAAC,CAAC;oBACX,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC7C,IAAI,QAAQ;wBAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,IAAI,QAAQ;wBAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAAC,MAAM,KAAK,CAAC;gBAAC,CAAC;YACpF,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,wBAAwB,KAAK,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,EAAE,CAAC;QAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,mFAAmF;IACnF,4BAA4B,CAAC,SAAiB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,yBAAyB,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW;YAAE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACvE,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAC5I,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC/B,IAAI,IAAI;oBAAE,OAAO;gBAAC,IAAI,GAAG,IAAI,CAAC;gBAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBACnF,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBACpE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACpC,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,GAAG,EAAE;gBACjB,IAAI,IAAI,CAAC,yBAAyB,KAAK,GAAG;oBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAC7G,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC,KAAK,KAAK,YAAY;oBAAE,MAAM,EAAE,CAAC;YAC3G,CAAC,CAAC;YACF,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YACjF,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAAC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAClE,KAAK,EAAE,CAAC;QACV,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,0EAA0E;IAC1E,8DAA8D;IAC9D,kBAAkB,CAAC,MAAc,EAAE,QAAgB;QACjD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,MAAM,OAAO,GAAG,oBAAoB,MAAM,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAuB;YACvC,QAAQ;YACR,QAAQ,EAAE,QAAQ,EAAE;YACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;YAC/C,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,0CAA0C,QAAQ,KAAK,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,eAAe,CAAC,QAA6C;QAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,oBAAoB,KAAc,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEjE,qBAAqB,CAAC,QAAoC;QACxD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC;gBAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;QACvH,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAyB;QACjD,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC;YAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,4EAA4E;IACpE,wBAAwB,CAAC,MAAc;QAC7C,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QACnF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAAC,CAAC;QACzI,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,oEAAoE;QACpE,4FAA4F;QAC5F,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACnC,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,CAAC,IAAI,CAAC,0DAA0D,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;YACzG,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC5B,2EAA2E;QAC3E,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;gBAAE,OAAO;YAC7C,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,SAAiB,EAAE,GAAW;QACxE,MAAM,OAAO,GAAG,YAAY,SAAS,IAAI,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACpH,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1J,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,SAAiB,EAAE,KAA8B;QACtF,MAAM,OAAO,GAAG,UAAU,SAAS,IAAI,MAAM,EAAE,CAAC;QAChD,sEAAsE;QACtE,2EAA2E;QAC3E,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,GAAkB;QACpD,MAAM,OAAO,GAAG,gBAAgB,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAyC,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,QAAyB;QACpE,MAAM,OAAO,GAAG,gBAAgB,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;gBACvC,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,QAA8C;gBACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACrF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"centrifugo-client.js","sourceRoot":"","sources":["../src/centrifugo-client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { localApplication } from './security/bridge/local-client.js';
1
2
  import type { ApplicationJson } from './security/protocol.js';
2
3
  import type { BridgePointer, Session, MailMessage } from './wire-types.js';
3
4
  export declare function bridgePointerPath(): string;
@@ -7,7 +8,16 @@ export declare function apiResponse(pointer: BridgePointer, method: string, path
7
8
  status: number;
8
9
  body: ApplicationJson;
9
10
  }>;
10
- export declare function securityCommand(pointer: BridgePointer, type: 'security_devices' | 'security_invite' | 'security_revoke', payload?: Record<string, ApplicationJson>): Promise<ApplicationJson>;
11
+ /** A security command the bridge refused, with its typed code (e.g. `account_managed`) and its fixed message. */
12
+ export declare class SecurityCommandError extends Error {
13
+ readonly code: string | null;
14
+ constructor(code: string | null, message: string);
15
+ }
16
+ /** The bridge's refusal as a SecurityCommandError: a `[a-z_]` code and a printable message, both bounded. */
17
+ export declare function securityCommandError(response: {
18
+ [key: string]: ApplicationJson;
19
+ }): SecurityCommandError;
20
+ export declare function securityCommand(pointer: BridgePointer, type: 'security_devices' | 'security_invite' | 'security_revoke', payload?: Record<string, ApplicationJson>, send?: typeof localApplication): Promise<ApplicationJson>;
11
21
  export declare function listSessions(pointer: BridgePointer): Promise<Session[]>;
12
22
  export interface InboxOptions {
13
23
  wait?: number;
@@ -48,17 +48,37 @@ export async function apiResponse(pointer, method, path, body, extraHeaders, sig
48
48
  throw new Error('Invalid encrypted API response');
49
49
  return { status: response.status, body: response.body };
50
50
  }
51
- export async function securityCommand(pointer, type, payload = {}) {
51
+ /** A security command the bridge refused, with its typed code (e.g. `account_managed`) and its fixed message. */
52
+ export class SecurityCommandError extends Error {
53
+ code;
54
+ constructor(code, message) {
55
+ super(message);
56
+ this.code = code;
57
+ this.name = 'SecurityCommandError';
58
+ }
59
+ }
60
+ /** The bridge's refusal as a SecurityCommandError: a `[a-z_]` code and a printable message, both bounded. */
61
+ export function securityCommandError(response) {
62
+ const data = response.data;
63
+ const rawCode = data && typeof data === 'object' && !Array.isArray(data) ? data.code : undefined;
64
+ const code = typeof rawCode === 'string' && /^[a-z][a-z0-9_]{0,63}$/.test(rawCode) ? rawCode : null;
65
+ const rawMessage = typeof response.error === 'string' ? response.error.replace(/[\u0000-\u001f\u007f-\u009f]/g, ' ').trim().slice(0, 300) : '';
66
+ const message = rawMessage || 'Encrypted security command failed';
67
+ return new SecurityCommandError(code, code !== null && !message.includes(code) ? `${message} (${code})` : message);
68
+ }
69
+ export async function securityCommand(pointer, type, payload = {}, send = localApplication) {
52
70
  if (!pointer.bridgeId)
53
71
  throw new Error('Bridge upgrade required');
54
72
  const requestId = randomUUID();
55
- const data = await localApplication(pointer, { type: 'application', route: { kind: 'command', command: type, requestId, sessionId: null },
73
+ const data = await send(pointer, { type: 'application', route: { kind: 'command', command: type, requestId, sessionId: null },
56
74
  data: { type, requestId, payload: { bridgeId: pointer.bridgeId, ...payload } }, mcp: null });
57
75
  if (!data || typeof data !== 'object' || Array.isArray(data))
58
76
  throw new Error('Invalid encrypted command response');
59
77
  const response = data.response;
60
- if (!response || typeof response !== 'object' || Array.isArray(response) || response.success !== true)
78
+ if (!response || typeof response !== 'object' || Array.isArray(response))
61
79
  throw new Error('Encrypted security command failed');
80
+ if (response.success !== true)
81
+ throw securityCommandError(response);
62
82
  return response.data ?? null;
63
83
  }
64
84
  export async function listSessions(pointer) {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-client.js","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-client.js","sourceRoot":"","sources":["../src/cli-client.ts"],"names":[],"mappings":"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"}
@@ -203,8 +203,9 @@ export function createCommandHandler(deps) {
203
203
  }
204
204
  case 'security_devices':
205
205
  case 'security_invite':
206
- case 'security_revoke':
207
- case 'security_account_adopt': {
206
+ case 'security_revoke': {
207
+ // Account membership changes only through the passkey ledger: in account mode the policy refuses invitations and the
208
+ // removal of ledger devices with account_managed.
208
209
  if (!deps.security || !verified || payloadBridgeId !== bridgeId)
209
210
  throw new Error('approval_required');
210
211
  const payload = command.payload;
@@ -213,17 +214,12 @@ export function createCommandHandler(deps) {
213
214
  result = { devices: await deps.security.listDevices(verified.principal) };
214
215
  else if (command.type === 'security_invite')
215
216
  result = await deps.security.createInvitation(verified.principal, { label: typeof payload.label === 'string' ? payload.label : '' });
216
- else if (command.type === 'security_revoke') {
217
+ else {
217
218
  if (typeof payload.endpointId !== 'string')
218
219
  throw new Error('invalid_envelope');
219
220
  await deps.security.revokeEndpoint(verified.principal, payload.endpointId);
220
221
  result = { endpointId: payload.endpointId, revoked: true };
221
222
  }
222
- else {
223
- if (Object.keys(payload).some(key => key !== 'bridgeId' && key !== 'head'))
224
- throw new Error('invalid_envelope');
225
- result = { head: await deps.security.adoptAccount(verified.principal, payload.head) };
226
- }
227
223
  response = { requestId: command.requestId, success: true, data: result };
228
224
  break;
229
225
  }