@push.rocks/smartrust 2.4.0 → 2.5.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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartrust',
6
- version: '2.4.0',
6
+ version: '2.5.0',
7
7
  description: 'A type-safe bridge between JavaScript engines and Rust binaries.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLGtFQUFrRTtDQUNoRixDQUFBIn0=
@@ -1,6 +1,6 @@
1
1
  import * as plugins from './plugins.js';
2
2
  import { StreamingResponse } from './classes.streamingresponse.js';
3
- import type { IRustBridgeOptions, IRustBridgeRequestOptions, IRustBridgeTerminateOptions, ISocketConnectOptions, TCommandMap, TStreamingCommandKeys, TExtractChunk } from './interfaces/index.js';
3
+ import type { IRustBridgeOptions, IRustBridgeRequestOptions, IRustBridgeStreamingRequestOptions, IRustBridgeTerminateOptions, ISocketConnectOptions, TCommandMap, TStreamingCommandKeys, TExtractChunk } from './interfaces/index.js';
4
4
  /**
5
5
  * Generic bridge between TypeScript and a Rust binary.
6
6
  * Communicates via JSON-over-stdin/stdout IPC protocol (stdio mode)
@@ -25,6 +25,9 @@ export declare class RustBridge<TCommands extends TCommandMap = TCommandMap> ext
25
25
  private sensitiveRequestId;
26
26
  private sensitiveUsedGeneration;
27
27
  private regularRequestPreparations;
28
+ /** Whether the current transport generation's ready event advertised `cancel`. */
29
+ private remoteCancelSupported;
30
+ private remoteCancellations;
28
31
  constructor(options: IRustBridgeOptions);
29
32
  /**
30
33
  * Spawn the Rust binary and wait for it to signal readiness.
@@ -65,7 +68,7 @@ export declare class RustBridge<TCommands extends TCommandMap = TCommandMap> ext
65
68
  * Returns a StreamingResponse that yields chunks via `for await...of`
66
69
  * and exposes `.result` for the final response.
67
70
  */
68
- sendCommandStreaming<K extends string & TStreamingCommandKeys<TCommands>>(method: K, params: TCommands[K]['params']): StreamingResponse<TExtractChunk<TCommands[K]>, TCommands[K]['result']>;
71
+ sendCommandStreaming<K extends string & TStreamingCommandKeys<TCommands>>(method: K, params: TCommands[K]['params'], options?: IRustBridgeStreamingRequestOptions): StreamingResponse<TExtractChunk<TCommands[K]>, TCommands[K]['result']>;
69
72
  /**
70
73
  * Terminate the active transport and wait for confirmed closure.
71
74
  * For stdio this confirms child exit after SIGTERM/SIGKILL escalation.
@@ -83,6 +86,21 @@ export declare class RustBridge<TCommands extends TCommandMap = TCommandMap> ext
83
86
  private isStartingGeneration;
84
87
  private isCurrentTransport;
85
88
  private handleLine;
89
+ /** Start or restart the inactivity deadline of one streaming request. */
90
+ private armStreamingTimeout;
91
+ /**
92
+ * Reject a pending request on timeout or abort. When the request was
93
+ * already written to a transport that accepts cancel frames, send one and
94
+ * attach the remote settlement to the rejection.
95
+ */
96
+ private abandonPendingRequest;
97
+ /** Write one cancel frame and track the original id until Rust answers it. */
98
+ private sendRemoteCancel;
99
+ private settleRemoteCancellation;
100
+ /** Settle every tracked cancellation as disconnected after transport closure. */
101
+ private settleAllRemoteCancellations;
102
+ /** Read the `cancel` opt-in from a ready event's `capabilities`. */
103
+ private readCancelCapability;
86
104
  private acceptSensitiveResponse;
87
105
  private markSensitiveWriteComplete;
88
106
  private settleManagementResponse;
@@ -1,7 +1,7 @@
1
1
  import * as plugins from './plugins.js';
2
2
  import { RustBinaryLocator } from './classes.rustbinarylocator.js';
3
3
  import { RustBinaryLocatorError } from './classes.rustbinarylocatorerror.js';
4
- import { RustBridgeRequestError } from './classes.rustbridgerequesterror.js';
4
+ import { RustBridgeRequestError, } from './classes.rustbridgerequesterror.js';
5
5
  import { StreamingResponse } from './classes.streamingresponse.js';
6
6
  import { StdioTransport } from './classes.stdiotransport.js';
7
7
  import { SocketTransport } from './classes.sockettransport.js';
@@ -32,6 +32,9 @@ export class RustBridge extends plugins.events.EventEmitter {
32
32
  sensitiveRequestId = null;
33
33
  sensitiveUsedGeneration = null;
34
34
  regularRequestPreparations = 0;
35
+ /** Whether the current transport generation's ready event advertised `cancel`. */
36
+ remoteCancelSupported = false;
37
+ remoteCancellations = new Map();
35
38
  constructor(options) {
36
39
  super();
37
40
  if (options.terminationGracePeriodMs !== undefined
@@ -143,6 +146,7 @@ export class RustBridge extends plugins.events.EventEmitter {
143
146
  const generation = ++this.lifecycleGeneration;
144
147
  this.sensitiveRequestId = null;
145
148
  this.sensitiveUsedGeneration = null;
149
+ this.remoteCancelSupported = false;
146
150
  this.lifecycleState = 'starting';
147
151
  const activationPromise = (async () => {
148
152
  try {
@@ -186,6 +190,7 @@ export class RustBridge extends plugins.events.EventEmitter {
186
190
  throw new Error(`RustBridge cannot activate while lifecycle state is '${this.lifecycleState}'`);
187
191
  }
188
192
  this.lifecycleState = 'starting';
193
+ this.remoteCancelSupported = false;
189
194
  this.transport = transportArg;
190
195
  }
191
196
  return new Promise((resolve) => {
@@ -227,7 +232,7 @@ export class RustBridge extends plugins.events.EventEmitter {
227
232
  if (!isCurrent()) {
228
233
  return;
229
234
  }
230
- this.handleLine(line, () => {
235
+ this.handleLine(line, (readyEvent) => {
231
236
  if (!isCurrent() || this.lifecycleState !== 'starting') {
232
237
  return;
233
238
  }
@@ -235,6 +240,7 @@ export class RustBridge extends plugins.events.EventEmitter {
235
240
  clearTimeout(reconnectReadyTimeout);
236
241
  reconnectReadyTimeout = null;
237
242
  }
243
+ this.remoteCancelSupported = this.readCancelCapability(readyEvent);
238
244
  this.lifecycleState = 'ready';
239
245
  this.isRunning = true;
240
246
  this.logger.log('info', `Bridge connected to ${this.options.binaryName}`);
@@ -262,7 +268,9 @@ export class RustBridge extends plugins.events.EventEmitter {
262
268
  };
263
269
  this.logger.log('info', 'Transport closed');
264
270
  this.isRunning = false;
271
+ this.remoteCancelSupported = false;
265
272
  this.rejectAllPendingRequests(`${this.options.binaryName} process exited`);
273
+ this.settleAllRemoteCancellations();
266
274
  if (!intentional && transportArg.reconnecting === true) {
267
275
  if (reconnectReadyTimeout) {
268
276
  clearTimeout(reconnectReadyTimeout);
@@ -298,6 +306,7 @@ export class RustBridge extends plugins.events.EventEmitter {
298
306
  }
299
307
  this.logger.log('info', 'Transport reconnected, waiting for ready event');
300
308
  this.lifecycleState = 'starting';
309
+ this.remoteCancelSupported = false;
301
310
  if (reconnectReadyTimeout) {
302
311
  clearTimeout(reconnectReadyTimeout);
303
312
  }
@@ -403,32 +412,18 @@ export class RustBridge extends plugins.events.EventEmitter {
403
412
  reservationTransferred = true;
404
413
  try {
405
414
  if (options?.signal) {
415
+ const signal = options.signal;
406
416
  pending.abortHandler = () => {
407
- this.settlePendingRequest(id, {
408
- outcome: 'reject',
409
- error: new RustBridgeRequestError(`Command '${method}' was aborted`, {
410
- code: 'ERR_RUST_BRIDGE_REQUEST_ABORTED',
411
- requestId: id,
412
- method,
413
- cause: options.signal?.reason,
414
- }),
415
- });
417
+ this.abandonPendingRequest(id, 'ERR_RUST_BRIDGE_REQUEST_ABORTED', `Command '${method}' was aborted`, signal.reason);
416
418
  };
417
- options.signal.addEventListener('abort', pending.abortHandler, { once: true });
418
- if (options.signal.aborted) {
419
+ signal.addEventListener('abort', pending.abortHandler, { once: true });
420
+ if (signal.aborted) {
419
421
  pending.abortHandler();
420
422
  return;
421
423
  }
422
424
  }
423
425
  pending.timer = setTimeout(() => {
424
- this.settlePendingRequest(id, {
425
- outcome: 'reject',
426
- error: new RustBridgeRequestError(`Command '${method}' timed out after ${timeoutMs}ms`, {
427
- code: 'ERR_RUST_BRIDGE_REQUEST_TIMEOUT',
428
- requestId: id,
429
- method,
430
- }),
431
- });
426
+ this.abandonPendingRequest(id, 'ERR_RUST_BRIDGE_REQUEST_TIMEOUT', `Command '${method}' timed out after ${timeoutMs}ms`);
432
427
  }, timeoutMs);
433
428
  const currentAvailabilityError = this.getRequestAvailabilityError(method, options?.signal, transport, lifecycleGeneration, id);
434
429
  if (currentAvailabilityError) {
@@ -438,6 +433,9 @@ export class RustBridge extends plugins.events.EventEmitter {
438
433
  });
439
434
  return;
440
435
  }
436
+ if (this.remoteCancelSupported) {
437
+ pending.cancelTransport = transport;
438
+ }
441
439
  void transport.write(json + '\n').catch((err) => {
442
440
  this.settlePendingRequest(id, {
443
441
  outcome: 'reject',
@@ -640,8 +638,13 @@ export class RustBridge extends plugins.events.EventEmitter {
640
638
  * Returns a StreamingResponse that yields chunks via `for await...of`
641
639
  * and exposes `.result` for the final response.
642
640
  */
643
- sendCommandStreaming(method, params) {
641
+ sendCommandStreaming(method, params, options) {
644
642
  const streaming = new StreamingResponse();
643
+ const signal = options?.signal;
644
+ if (signal?.aborted) {
645
+ streaming.fail(new RustBridgeRequestError(`Command '${method}' was aborted before it was sent`, { code: 'ERR_RUST_BRIDGE_REQUEST_ABORTED', method, cause: signal.reason }));
646
+ return streaming;
647
+ }
645
648
  if (this.sensitiveRequestId !== null) {
646
649
  streaming.fail(new RustBridgeRequestError(`Command '${method}' cannot overlap the sensitive byte request`, { code: 'ERR_RUST_BRIDGE_REQUEST_SENSITIVE_STATE', method }));
647
650
  return streaming;
@@ -666,29 +669,30 @@ export class RustBridge extends plugins.events.EventEmitter {
666
669
  if (byteLength > this.options.maxPayloadSize) {
667
670
  throw new Error(`Outbound message exceeds maxPayloadSize (${byteLength} > ${this.options.maxPayloadSize})`);
668
671
  }
669
- const availabilityError = this.getRequestAvailabilityError(method, undefined, transport, lifecycleGeneration);
672
+ const availabilityError = this.getRequestAvailabilityError(method, signal, transport, lifecycleGeneration);
670
673
  if (availabilityError) {
671
674
  throw availabilityError;
672
675
  }
673
- this.pendingRequests.set(id, {
676
+ const pending = {
674
677
  resolve: (result) => streaming.finish(result),
675
678
  reject: (error) => streaming.fail(error),
676
679
  timer: null,
677
680
  method,
681
+ abortSignal: signal,
678
682
  streaming,
679
683
  admissionReservation,
680
- });
684
+ };
685
+ this.pendingRequests.set(id, pending);
681
686
  reservationTransferred = true;
682
687
  try {
683
- const timeoutMs = this.options.streamTimeoutMs ?? this.options.requestTimeoutMs;
684
- const pending = this.pendingRequests.get(id);
685
- pending.timer = setTimeout(() => {
686
- this.settlePendingRequest(id, {
687
- outcome: 'reject',
688
- error: new Error(`Streaming command '${method}' timed out after ${timeoutMs}ms`),
689
- });
690
- }, timeoutMs);
691
- const currentAvailabilityError = this.getRequestAvailabilityError(method, undefined, transport, lifecycleGeneration, id);
688
+ if (signal) {
689
+ pending.abortHandler = () => {
690
+ this.abandonPendingRequest(id, 'ERR_RUST_BRIDGE_REQUEST_ABORTED', `Streaming command '${method}' was aborted`, signal.reason);
691
+ };
692
+ signal.addEventListener('abort', pending.abortHandler, { once: true });
693
+ }
694
+ this.armStreamingTimeout(id, pending, false);
695
+ const currentAvailabilityError = this.getRequestAvailabilityError(method, signal, transport, lifecycleGeneration, id);
692
696
  if (currentAvailabilityError) {
693
697
  this.settlePendingRequest(id, {
694
698
  outcome: 'reject',
@@ -696,6 +700,9 @@ export class RustBridge extends plugins.events.EventEmitter {
696
700
  });
697
701
  return streaming;
698
702
  }
703
+ if (this.remoteCancelSupported) {
704
+ pending.cancelTransport = transport;
705
+ }
699
706
  void transport.write(json + '\n').catch((err) => {
700
707
  this.settlePendingRequest(id, {
701
708
  outcome: 'reject',
@@ -787,6 +794,8 @@ export class RustBridge extends plugins.events.EventEmitter {
787
794
  this.transport = null;
788
795
  this.isRunning = false;
789
796
  this.lifecycleState = 'idle';
797
+ // The transport is confirmed closed, so no answer can still arrive.
798
+ this.settleAllRemoteCancellations();
790
799
  })();
791
800
  this.terminationPromise = terminationPromise;
792
801
  void terminationPromise.then(() => {
@@ -848,26 +857,24 @@ export class RustBridge extends plugins.events.EventEmitter {
848
857
  if ('event' in parsed && !('id' in parsed)) {
849
858
  const event = parsed;
850
859
  if (event.event === this.options.readyEventName) {
851
- onReadyArg();
860
+ onReadyArg(event);
852
861
  }
853
862
  this.emit(`management:${event.event}`, event.data);
854
863
  return;
855
864
  }
865
+ // Late lines of a request abandoned after a cancel frame. Chunks are
866
+ // dropped; the one final answer settles the remote cancellation.
867
+ if ('id' in parsed && this.remoteCancellations.has(parsed.id)) {
868
+ if (parsed.stream !== true) {
869
+ this.settleRemoteCancellation(parsed);
870
+ }
871
+ return;
872
+ }
856
873
  // Stream chunk (has 'id' + stream === true + 'data')
857
874
  if ('id' in parsed && parsed.stream === true && 'data' in parsed) {
858
875
  const pending = this.pendingRequests.get(parsed.id);
859
876
  if (pending?.streaming) {
860
- // Reset inactivity timeout
861
- if (pending.timer) {
862
- clearTimeout(pending.timer);
863
- }
864
- const timeoutMs = this.options.streamTimeoutMs ?? this.options.requestTimeoutMs;
865
- pending.timer = setTimeout(() => {
866
- this.settlePendingRequest(parsed.id, {
867
- outcome: 'reject',
868
- error: new Error(`Streaming command timed out after ${timeoutMs}ms of inactivity`),
869
- });
870
- }, timeoutMs);
877
+ this.armStreamingTimeout(parsed.id, pending, true);
871
878
  pending.streaming.pushChunk(parsed.data);
872
879
  }
873
880
  return;
@@ -884,6 +891,110 @@ export class RustBridge extends plugins.events.EventEmitter {
884
891
  }
885
892
  }
886
893
  }
894
+ /** Start or restart the inactivity deadline of one streaming request. */
895
+ armStreamingTimeout(id, pending, afterChunkArg) {
896
+ if (pending.timer) {
897
+ clearTimeout(pending.timer);
898
+ }
899
+ const timeoutMs = this.options.streamTimeoutMs ?? this.options.requestTimeoutMs;
900
+ const message = afterChunkArg
901
+ ? `Streaming command '${pending.method}' timed out after ${timeoutMs}ms of inactivity`
902
+ : `Streaming command '${pending.method}' timed out after ${timeoutMs}ms`;
903
+ pending.timer = setTimeout(() => {
904
+ this.abandonPendingRequest(id, 'ERR_RUST_BRIDGE_REQUEST_TIMEOUT', message);
905
+ }, timeoutMs);
906
+ }
907
+ /**
908
+ * Reject a pending request on timeout or abort. When the request was
909
+ * already written to a transport that accepts cancel frames, send one and
910
+ * attach the remote settlement to the rejection.
911
+ */
912
+ abandonPendingRequest(id, code, message, cause) {
913
+ const pending = this.pendingRequests.get(id);
914
+ if (!pending) {
915
+ return;
916
+ }
917
+ const remoteSettlement = this.sendRemoteCancel(id, pending);
918
+ this.settlePendingRequest(id, {
919
+ outcome: 'reject',
920
+ error: new RustBridgeRequestError(message, {
921
+ code,
922
+ requestId: id,
923
+ method: pending.method,
924
+ cause,
925
+ remoteSettlement,
926
+ }),
927
+ });
928
+ }
929
+ /** Write one cancel frame and track the original id until Rust answers it. */
930
+ sendRemoteCancel(id, pending) {
931
+ const transport = pending.cancelTransport;
932
+ if (!transport || pending.sensitive || this.transport !== transport || !transport.connected) {
933
+ return undefined;
934
+ }
935
+ let settle;
936
+ const remoteSettlement = new Promise((resolve) => {
937
+ settle = resolve;
938
+ });
939
+ this.remoteCancellations.set(id, { method: pending.method, settle });
940
+ const frame = { id, cancel: true };
941
+ const logWriteFailure = (error) => {
942
+ // A failed write means the transport is closing; its close settles
943
+ // the cancellation as disconnected.
944
+ this.logger.log('warn', `Failed to write cancel for '${pending.method}' (${id}): ${this.getErrorMessage(error)}`);
945
+ };
946
+ try {
947
+ void transport.write(JSON.stringify(frame) + '\n').catch(logWriteFailure);
948
+ }
949
+ catch (error) {
950
+ logWriteFailure(error);
951
+ }
952
+ return remoteSettlement;
953
+ }
954
+ settleRemoteCancellation(response) {
955
+ const cancellation = this.remoteCancellations.get(response.id);
956
+ if (!cancellation) {
957
+ return;
958
+ }
959
+ this.remoteCancellations.delete(response.id);
960
+ if (response.success) {
961
+ cancellation.settle({ outcome: 'completed', result: response.result });
962
+ return;
963
+ }
964
+ const settlement = {
965
+ outcome: response.cancelled === true ? 'cancelled' : 'failed',
966
+ };
967
+ if (typeof response.error === 'string') {
968
+ settlement.error = response.error;
969
+ }
970
+ if (typeof response.errorCode === 'string') {
971
+ settlement.errorCode = response.errorCode;
972
+ }
973
+ if (response.errorData !== undefined) {
974
+ settlement.errorData = response.errorData;
975
+ }
976
+ cancellation.settle(settlement);
977
+ }
978
+ /** Settle every tracked cancellation as disconnected after transport closure. */
979
+ settleAllRemoteCancellations() {
980
+ const cancellations = [...this.remoteCancellations.values()];
981
+ this.remoteCancellations.clear();
982
+ for (const cancellation of cancellations) {
983
+ cancellation.settle({ outcome: 'disconnected' });
984
+ }
985
+ }
986
+ /** Read the `cancel` opt-in from a ready event's `capabilities`. */
987
+ readCancelCapability(readyEvent) {
988
+ const capabilities = readyEvent.capabilities;
989
+ if (capabilities === undefined) {
990
+ return false;
991
+ }
992
+ if (!Array.isArray(capabilities) || !capabilities.every((entry) => typeof entry === 'string')) {
993
+ this.logger.log('warn', `Ignoring malformed ready capabilities from ${this.options.binaryName}`);
994
+ return false;
995
+ }
996
+ return capabilities.includes('cancel');
997
+ }
887
998
  acceptSensitiveResponse(response, pending) {
888
999
  const state = pending.sensitive;
889
1000
  const ack = response.sensitiveAck;
@@ -959,14 +1070,12 @@ export class RustBridge extends plugins.events.EventEmitter {
959
1070
  for (const [id, pending] of [...this.pendingRequests]) {
960
1071
  this.settlePendingRequest(id, {
961
1072
  outcome: 'reject',
962
- error: pending.streaming
963
- ? new Error(message)
964
- : new RustBridgeRequestError(message, {
965
- code: 'ERR_RUST_BRIDGE_REQUEST_TRANSPORT',
966
- requestId: id,
967
- method: pending.method,
968
- cause,
969
- }),
1073
+ error: new RustBridgeRequestError(message, {
1074
+ code: 'ERR_RUST_BRIDGE_REQUEST_TRANSPORT',
1075
+ requestId: id,
1076
+ method: pending.method,
1077
+ cause,
1078
+ }),
970
1079
  });
971
1080
  }
972
1081
  }
@@ -1028,4 +1137,4 @@ export class RustBridge extends plugins.events.EventEmitter {
1028
1137
  return error instanceof Error ? error.message : String(error);
1029
1138
  }
1030
1139
  }
1031
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5ydXN0YnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5ydXN0YnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFrQi9ELE1BQU0sYUFBYSxHQUFzQjtJQUN2QyxHQUFHLEtBQUksQ0FBQztDQUNULENBQUM7QUFpQ0Y7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLFVBQXdELFNBQVEsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZO0lBQzlGLE9BQU8sQ0FBb0I7SUFDM0IsT0FBTyxDQUFtSjtJQUMxSixNQUFNLENBQW9CO0lBQzFCLFNBQVMsR0FBcUMsSUFBSSxDQUFDO0lBQ25ELGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUNyRCxrQ0FBa0MsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUMvRCxjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsVUFBVSxHQUFrQixJQUFJLENBQUM7SUFDakMsY0FBYyxHQUE4QixNQUFNLENBQUM7SUFDbkQsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLGlCQUFpQixHQUE0QixJQUFJLENBQUM7SUFDbEQsa0JBQWtCLEdBQXlCLElBQUksQ0FBQztJQUNoRCxr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
1140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5ydXN0YnJpZGdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5ydXN0YnJpZGdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFDTCxzQkFBc0IsR0FFdkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBb0IvRCxNQUFNLGFBQWEsR0FBc0I7SUFDdkMsR0FBRyxLQUFJLENBQUM7Q0FDVCxDQUFDO0FBNkNGOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxVQUF3RCxTQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWTtJQUM5RixPQUFPLENBQW9CO0lBQzNCLE9BQU8sQ0FBbUo7SUFDMUosTUFBTSxDQUFvQjtJQUMxQixTQUFTLEdBQXFDLElBQUksQ0FBQztJQUNuRCxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7SUFDckQsa0NBQWtDLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDL0QsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNuQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFVBQVUsR0FBa0IsSUFBSSxDQUFDO0lBQ2pDLGNBQWMsR0FBOEIsTUFBTSxDQUFDO0lBQ25ELG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUN4QixpQkFBaUIsR0FBNEIsSUFBSSxDQUFDO0lBQ2xELGtCQUFrQixHQUF5QixJQUFJLENBQUM7SUFDaEQs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