camusdb 0.6.0 → 0.7.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 (87) hide show
  1. package/README.md +193 -0
  2. package/dist/client.d.ts +42 -37
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +117 -166
  5. package/dist/client.js.map +1 -1
  6. package/dist/config.d.ts +22 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +19 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/endpoint-pool.d.ts +8 -0
  11. package/dist/endpoint-pool.d.ts.map +1 -1
  12. package/dist/endpoint-pool.js +25 -0
  13. package/dist/endpoint-pool.js.map +1 -1
  14. package/dist/index.d.ts +6 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/node-stats.d.ts +113 -0
  19. package/dist/node-stats.d.ts.map +1 -0
  20. package/dist/node-stats.js +90 -0
  21. package/dist/node-stats.js.map +1 -0
  22. package/dist/options.d.ts +10 -0
  23. package/dist/options.d.ts.map +1 -1
  24. package/dist/options.js +1 -0
  25. package/dist/options.js.map +1 -1
  26. package/dist/pipeline.d.ts +126 -0
  27. package/dist/pipeline.d.ts.map +1 -0
  28. package/dist/pipeline.js +363 -0
  29. package/dist/pipeline.js.map +1 -0
  30. package/dist/prepared/auto-prepare.d.ts +51 -0
  31. package/dist/prepared/auto-prepare.d.ts.map +1 -0
  32. package/dist/prepared/auto-prepare.js +150 -0
  33. package/dist/prepared/auto-prepare.js.map +1 -0
  34. package/dist/prepared/policy.d.ts +7 -0
  35. package/dist/prepared/policy.d.ts.map +1 -1
  36. package/dist/prepared/policy.js +16 -0
  37. package/dist/prepared/policy.js.map +1 -1
  38. package/dist/query-stream.d.ts +4 -1
  39. package/dist/query-stream.d.ts.map +1 -1
  40. package/dist/query-stream.js +13 -2
  41. package/dist/query-stream.js.map +1 -1
  42. package/dist/retry.d.ts +8 -0
  43. package/dist/retry.d.ts.map +1 -1
  44. package/dist/retry.js +12 -1
  45. package/dist/retry.js.map +1 -1
  46. package/dist/telemetry.d.ts +199 -0
  47. package/dist/telemetry.d.ts.map +1 -0
  48. package/dist/telemetry.js +422 -0
  49. package/dist/telemetry.js.map +1 -0
  50. package/dist/transaction.d.ts +60 -5
  51. package/dist/transaction.d.ts.map +1 -1
  52. package/dist/transaction.js +124 -24
  53. package/dist/transaction.js.map +1 -1
  54. package/dist/transport/authenticating-transport.d.ts +9 -1
  55. package/dist/transport/authenticating-transport.d.ts.map +1 -1
  56. package/dist/transport/authenticating-transport.js +13 -0
  57. package/dist/transport/authenticating-transport.js.map +1 -1
  58. package/dist/transport/grpc/batch-frames.d.ts +23 -5
  59. package/dist/transport/grpc/batch-frames.d.ts.map +1 -1
  60. package/dist/transport/grpc/batch-frames.js +29 -8
  61. package/dist/transport/grpc/batch-frames.js.map +1 -1
  62. package/dist/transport/grpc/batcher.d.ts +69 -5
  63. package/dist/transport/grpc/batcher.d.ts.map +1 -1
  64. package/dist/transport/grpc/batcher.js +217 -10
  65. package/dist/transport/grpc/batcher.js.map +1 -1
  66. package/dist/transport/grpc/grpc-transport.d.ts +35 -1
  67. package/dist/transport/grpc/grpc-transport.d.ts.map +1 -1
  68. package/dist/transport/grpc/grpc-transport.js +193 -7
  69. package/dist/transport/grpc/grpc-transport.js.map +1 -1
  70. package/dist/transport/grpc/messages.d.ts +15 -0
  71. package/dist/transport/grpc/messages.d.ts.map +1 -1
  72. package/dist/transport/grpc/messages.js +9 -0
  73. package/dist/transport/grpc/messages.js.map +1 -1
  74. package/dist/transport/rest-transport.d.ts +9 -1
  75. package/dist/transport/rest-transport.d.ts.map +1 -1
  76. package/dist/transport/rest-transport.js +24 -0
  77. package/dist/transport/rest-transport.js.map +1 -1
  78. package/dist/transport/sequential-pipeline.d.ts +21 -0
  79. package/dist/transport/sequential-pipeline.d.ts.map +1 -0
  80. package/dist/transport/sequential-pipeline.js +119 -0
  81. package/dist/transport/sequential-pipeline.js.map +1 -0
  82. package/dist/transport/transport.d.ts +94 -0
  83. package/dist/transport/transport.d.ts.map +1 -1
  84. package/dist/transport/transport.js +10 -0
  85. package/dist/transport/transport.js.map +1 -1
  86. package/package.json +10 -4
  87. package/proto/camus_sql.proto +114 -0
package/dist/config.js CHANGED
@@ -79,6 +79,7 @@ export function resolveOptions(options) {
79
79
  streamDrainTimeoutMs: atLeastOr(options.streamDrainTimeoutMs, 0, DEFAULT_BATCH_OPTIONS.streamDrainTimeoutMs),
80
80
  requestFrames: options.requestFrames ?? DEFAULT_BATCH_OPTIONS.requestFrames,
81
81
  },
82
+ httpVersion: resolveHttpVersion(options.httpVersion),
82
83
  backupEndpoint: options.backupEndpoint,
83
84
  backupTimeoutSeconds: positiveOr(options.backupTimeoutSeconds, DEFAULT_BACKUP_TIMEOUT_SECONDS),
84
85
  allowInsecureCredentials: options.allowInsecureCredentials === true,
@@ -87,6 +88,7 @@ export function resolveOptions(options) {
87
88
  routingMaxHintAgeMs: atLeastOr(options.routingMaxHintAgeMs, 1, 5000),
88
89
  defaultTransactionOptions: options.defaultTransactionOptions ?? {},
89
90
  decode: { int64: options.int64 ?? 'auto' },
91
+ traceQueryText: options.traceQueryText === true,
90
92
  connectionString: undefined,
91
93
  };
92
94
  ensureCredentialsAreNotSentInClear(config);
@@ -119,6 +121,7 @@ export function resolveConnectionString(connectionString) {
119
121
  streamDrainTimeoutMs: parseIntAtLeast(settings.get('StreamDrainTimeout'), 0, DEFAULT_BATCH_OPTIONS.streamDrainTimeoutMs),
120
122
  requestFrames: parseBool(settings.get('RequestFrames'), DEFAULT_BATCH_OPTIONS.requestFrames),
121
123
  },
124
+ httpVersion: resolveHttpVersion(settings.get('HttpVersion')),
122
125
  backupEndpoint: settings.first('BackupEndpoint'),
123
126
  backupTimeoutSeconds: parsePositiveInt(settings.get('BackupTimeout'), DEFAULT_BACKUP_TIMEOUT_SECONDS),
124
127
  allowInsecureCredentials: settings.get(ALLOW_INSECURE_CREDENTIALS_KEY)?.toLowerCase() === 'true',
@@ -131,6 +134,7 @@ export function resolveConnectionString(connectionString) {
131
134
  locking: parseEnum(settings.get('Locking'), CamusLocking, undefined),
132
135
  },
133
136
  decode: { int64: parseInt64Mode(settings.get('Int64')) },
137
+ traceQueryText: parseBool(settings.get('TraceQueryText'), false),
134
138
  connectionString,
135
139
  };
136
140
  ensureCredentialsAreNotSentInClear(config);
@@ -292,6 +296,21 @@ function parseEnum(raw, members, fallback) {
292
296
  }
293
297
  return fallback;
294
298
  }
299
+ /**
300
+ * Reads `HttpVersion=` as the .NET driver does: `2` and `2.0` ask for HTTP/2, `3` and `3.0` for
301
+ * HTTP/3, and any other value, or none, for HTTP/1.1.
302
+ *
303
+ * Node's `fetch` sends HTTP/1.1 only. So a request for HTTP/2 or HTTP/3 is refused here, before
304
+ * the client is used, and is not changed to HTTP/1.1 without a word.
305
+ */
306
+ function resolveHttpVersion(raw) {
307
+ const text = raw?.trim();
308
+ if (text === '2' || text === '2.0' || text === '3' || text === '3.0') {
309
+ throw new CamusError(CamusErrorCode.Generic, `HttpVersion=${text} is not supported: Node's fetch sends HTTP/1.1 only. Remove HttpVersion, ` +
310
+ 'or set it to 1.1. A gRPC client uses HTTP/2 on its own.');
311
+ }
312
+ return '1.1';
313
+ }
295
314
  function parseInt64Mode(raw) {
296
315
  switch (raw?.trim().toLowerCase()) {
297
316
  case 'number':
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,14 @@ export declare class CamusEndpointPool {
31
31
  static forEndpoints(endpointList: string): CamusEndpointPool;
32
32
  /** @internal Test hook: drops every shared pool. */
33
33
  static resetShared(): void;
34
+ /**
35
+ * Every endpoint of the shared pools, with whether one of the pools has it in quarantine now. Two
36
+ * pools can list the same endpoint, and it counts as set aside when one of them set it aside. It
37
+ * feeds the `camusdb.client.endpoint.quarantined` gauge.
38
+ *
39
+ * @internal
40
+ */
41
+ static collectQuarantine(): Map<string, boolean>;
34
42
  private readonly endpoints;
35
43
  /**
36
44
  * Monotonic-clock deadlines, indexed alongside `endpoints`. Zero — the initial value — is in the
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-pool.d.ts","sourceRoot":"","sources":["../src/endpoint-pool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB;IAC5B,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,oBAAoB,SAAU;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAEzE;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB;IAI5D,oDAAoD;IACpD,MAAM,CAAC,WAAW,IAAI,IAAI;IAI1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAErC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAW;IAE5C,OAAO,CAAC,SAAS,CAAK;IAEtB,gEAAgE;IAChE,KAAK,EAAE,MAAM,MAAM,CAA2B;gBAElC,YAAY,EAAE,MAAM;IAahC,8DAA8D;IAC9D,IAAI,OAAO,IAAI,SAAS,MAAM,EAAE,CAE/B;IAED;;;;;;;OAOG;IACH,IAAI,IAAI,MAAM;IAkBd;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOxC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAInC,+FAA+F;IAC/F,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOvC,OAAO,CAAC,OAAO;CAShB"}
1
+ {"version":3,"file":"endpoint-pool.d.ts","sourceRoot":"","sources":["../src/endpoint-pool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB;IAC5B,8EAA8E;IAC9E,MAAM,CAAC,QAAQ,CAAC,oBAAoB,SAAU;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAEzE;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,iBAAiB;IAI5D,oDAAoD;IACpD,MAAM,CAAC,WAAW,IAAI,IAAI;IAI1B;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAmBhD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAErC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAW;IAE5C,OAAO,CAAC,SAAS,CAAK;IAEtB,gEAAgE;IAChE,KAAK,EAAE,MAAM,MAAM,CAA2B;gBAElC,YAAY,EAAE,MAAM;IAahC,8DAA8D;IAC9D,IAAI,OAAO,IAAI,SAAS,MAAM,EAAE,CAE/B;IAED;;;;;;;OAOG;IACH,IAAI,IAAI,MAAM;IAkBd;;;;OAIG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOxC;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAInC,+FAA+F;IAC/F,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IASvC,OAAO,CAAC,OAAO;CAShB"}
@@ -7,6 +7,7 @@
7
7
  import { CamusError } from './errors.js';
8
8
  import { CamusErrorCode } from './error-codes.js';
9
9
  import { SharedRegistry } from './shared-registry.js';
10
+ import { recordQuarantine } from './telemetry.js';
10
11
  /**
11
12
  * The endpoints one deployment's clients rotate through, and which of them are set aside after
12
13
  * failing to answer at all.
@@ -38,6 +39,29 @@ export class CamusEndpointPool {
38
39
  static resetShared() {
39
40
  CamusEndpointPool.shared.clear();
40
41
  }
42
+ /**
43
+ * Every endpoint of the shared pools, with whether one of the pools has it in quarantine now. Two
44
+ * pools can list the same endpoint, and it counts as set aside when one of them set it aside. It
45
+ * feeds the `camusdb.client.endpoint.quarantined` gauge.
46
+ *
47
+ * @internal
48
+ */
49
+ static collectQuarantine() {
50
+ const byKey = new Map();
51
+ for (const pool of CamusEndpointPool.shared.values()) {
52
+ const now = pool.clock();
53
+ pool.endpoints.forEach((endpoint, i) => {
54
+ const key = endpoint.toLowerCase();
55
+ const quarantined = pool.quarantinedUntil[i] > now;
56
+ const seen = byKey.get(key);
57
+ if (seen === undefined)
58
+ byKey.set(key, { endpoint, quarantined });
59
+ else
60
+ seen.quarantined ||= quarantined;
61
+ });
62
+ }
63
+ return new Map([...byKey.values()].map(({ endpoint, quarantined }) => [endpoint, quarantined]));
64
+ }
41
65
  endpoints;
42
66
  /**
43
67
  * Monotonic-clock deadlines, indexed alongside `endpoints`. Zero — the initial value — is in the
@@ -107,6 +131,7 @@ export class CamusEndpointPool {
107
131
  if (index < 0)
108
132
  return;
109
133
  this.quarantinedUntil[index] = this.clock() + CamusEndpointPool.QUARANTINE_PERIOD_MS;
134
+ recordQuarantine(this.endpoints[index]);
110
135
  }
111
136
  indexOf(endpoint) {
112
137
  const wanted = endpoint.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-pool.js","sourceRoot":"","sources":["../src/endpoint-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint-pool.js","sourceRoot":"","sources":["../src/endpoint-pool.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,11 +18,15 @@
18
18
  export { CamusClient } from './client.js';
19
19
  export type { AutocommitStatementOptions, ExecuteResult, QueryResult, StatementOptions, TransactionRunOptions, } from './client.js';
20
20
  export { CamusTransaction } from './transaction.js';
21
+ export { CamusPipeline } from './pipeline.js';
22
+ export type { PipelineQueryOptions } from './pipeline.js';
21
23
  export { CamusQueryStream } from './query-stream.js';
22
24
  export { CamusBackupClient } from './backup.js';
25
+ export { CamusDiskVolumeRole } from './node-stats.js';
26
+ export type { CamusCpuStats, CamusDiskVolumeStats, CamusMemoryStats, CamusNodeIdentity, CamusNodeStats, CamusNodeStatsError, } from './node-stats.js';
23
27
  export type { CamusBackupGcDeletion, CamusBackupGcOrphan, CamusBackupGcResult, CamusBackupInfo, } from './backup.js';
24
28
  export { CamusProtocol, CamusRoutingMode, DEFAULT_BATCH_OPTIONS } from './config.js';
25
- export type { CamusClientOptions, GrpcBatchOptions, ResolvedConfig } from './config.js';
29
+ export type { CamusClientOptions, CamusHttpVersion, GrpcBatchOptions, ResolvedConfig } from './config.js';
26
30
  export { parseConnectionString, redactConnectionString } from './connection-string.js';
27
31
  export { CamusIsolationLevel, CamusLocking, CamusTransactionMode, DEFAULT_TRANSACTION_OPTIONS, OPTIMISTIC_TRANSACTION_OPTIONS, SNAPSHOT_TRANSACTION_OPTIONS, } from './options.js';
28
32
  export type { CamusTransactionOptions } from './options.js';
@@ -51,6 +55,7 @@ export { CamusCacheStatus, cacheHint, evictAllCacheStatement, evictCacheStatemen
51
55
  export type { CamusCacheMetadata } from './cache.js';
52
56
  export { CamusRoutingDisposition, ROUTING_ACCEPT_VERSION } from './routing/advice.js';
53
57
  export type { CamusRoutingAdvice } from './routing/advice.js';
58
+ export { CAMUS_TELEMETRY_NAME } from './telemetry.js';
54
59
  export { formatHlc } from './hlc.js';
55
60
  export type { CamusHlcTimestamp } from './hlc.js';
56
61
  export { CamusTransportPool } from './transport/transport-pool.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -18,8 +18,10 @@
18
18
  // ─── The client ─────────────────────────────────────────────────────────────
19
19
  export { CamusClient } from './client.js';
20
20
  export { CamusTransaction } from './transaction.js';
21
+ export { CamusPipeline } from './pipeline.js';
21
22
  export { CamusQueryStream } from './query-stream.js';
22
23
  export { CamusBackupClient } from './backup.js';
24
+ export { CamusDiskVolumeRole } from './node-stats.js';
23
25
  // ─── Configuration ──────────────────────────────────────────────────────────
24
26
  export { CamusProtocol, CamusRoutingMode, DEFAULT_BATCH_OPTIONS } from './config.js';
25
27
  export { parseConnectionString, redactConnectionString } from './connection-string.js';
@@ -44,6 +46,8 @@ export { CamusResultSet } from './result-set.js';
44
46
  export { CamusCacheStatus, cacheHint, evictAllCacheStatement, evictCacheStatement } from './cache.js';
45
47
  // ─── Learned routing ────────────────────────────────────────────────────────
46
48
  export { CamusRoutingDisposition, ROUTING_ACCEPT_VERSION } from './routing/advice.js';
49
+ // ─── Telemetry ──────────────────────────────────────────────────────────────
50
+ export { CAMUS_TELEMETRY_NAME } from './telemetry.js';
47
51
  // ─── Clocks ─────────────────────────────────────────────────────────────────
48
52
  export { formatHlc } from './hlc.js';
49
53
  // ─── Process lifetime ───────────────────────────────────────────────────────
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQhD,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAGtB,+EAA+E;AAE/E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGpE,+EAA+E;AAE/E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtG,+EAA+E;AAE/E,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AAEH,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAgBtD,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGrF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,cAAc,CAAC;AAGtB,+EAA+E;AAE/E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGpE,+EAA+E;AAE/E,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI1C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,+EAA+E;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAIjD,+EAA+E;AAE/E,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtG,+EAA+E;AAE/E,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGtF,+EAA+E;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,+EAA+E;AAE/E,OAAO,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * This file is part of CamusDB
3
+ *
4
+ * For the full copyright and license information, please view the LICENSE.txt
5
+ * file that was distributed with this source code.
6
+ */
7
+ /** The `role` of a disk volume. */
8
+ export declare const CamusDiskVolumeRole: {
9
+ /** The volume that holds the node's data directory. The write gate watches this one. */
10
+ readonly Data: "data";
11
+ /** A Raft WAL directory on a volume of its own. */
12
+ readonly Wal: "wal";
13
+ };
14
+ /**
15
+ * One node's disk, CPU, and memory, as `CamusClient.nodeStats` returns them.
16
+ *
17
+ * The server sends the same fields over gRPC (`GetNodeStats`) and over REST (`GET /v1/admin/stats`),
18
+ * so this shape is the same for both protocols.
19
+ *
20
+ * **The -1 rule.** Every size is in bytes. A value that the node could not read is `-1`, never `0`,
21
+ * and `errors` names the field and the reason. A value that the server did not send, for example
22
+ * from an older server, also reads as `-1`.
23
+ *
24
+ * **One node.** The answer is for the node that received the call, which `address` names, and not
25
+ * for the cluster. To monitor a cluster, make one call for each endpoint in `CamusClient.endpoints`.
26
+ */
27
+ export interface CamusNodeStats {
28
+ /** The configured endpoint that this answer came from. The driver sets it; the server does not send it. */
29
+ readonly address: string;
30
+ readonly node: CamusNodeIdentity;
31
+ /** The data volume first. A `wal` entry follows only when the WAL is on its own volume. */
32
+ readonly disks: readonly CamusDiskVolumeStats[];
33
+ readonly cpu: CamusCpuStats;
34
+ readonly memory: CamusMemoryStats;
35
+ /** One entry for each value reported as -1. */
36
+ readonly errors: readonly CamusNodeStatsError[];
37
+ /**
38
+ * The volume that holds the node's data directory, which the write gate watches. It is
39
+ * `undefined` when the server sent none.
40
+ */
41
+ readonly dataVolume: CamusDiskVolumeStats | undefined;
42
+ }
43
+ /** Which node answered, and when. */
44
+ export interface CamusNodeIdentity {
45
+ /** The node's Raft node id. It is empty early in boot. */
46
+ readonly nodeId: string;
47
+ /** The node's Raft endpoint (`host:port`). It is empty early in boot. */
48
+ readonly endpoint: string;
49
+ readonly version: string;
50
+ readonly clusterMode: boolean;
51
+ readonly uptimeSeconds: number;
52
+ /** When the server built the answer, in Unix epoch milliseconds (UTC). */
53
+ readonly sampledAtUnixMs: number;
54
+ }
55
+ /** One volume that the engine writes to. */
56
+ export interface CamusDiskVolumeStats {
57
+ /** `data` or `wal`. See `CamusDiskVolumeRole`. */
58
+ readonly role: string;
59
+ readonly path: string;
60
+ /** The mount point that holds `path`. It is empty when it is not known yet. */
61
+ readonly mountPoint: string;
62
+ readonly totalBytes: number;
63
+ readonly freeBytes: number;
64
+ /** The free space that the server can still write. The watermark compares this value. */
65
+ readonly availableBytes: number;
66
+ readonly usedBytes: number;
67
+ /** The write-admission watermark (`min_free_disk_bytes`). It is 0 on a `wal` entry, which the gate does not watch. */
68
+ readonly minFreeDiskBytes: number;
69
+ /** True while the node refuses writes because this volume is too full (`CADB0536`). */
70
+ readonly belowWatermark: boolean;
71
+ /** The bytes of the storage engine's own files on this volume. */
72
+ readonly engineBytes: number;
73
+ }
74
+ /** The CPU of the server process and of its host. */
75
+ export interface CamusCpuStats {
76
+ /** The process CPU as a share of the whole node (all `processorCount` processors), 0 to 100. */
77
+ readonly processCpuPercent: number;
78
+ /** The window that `processCpuPercent` is averaged over, in milliseconds. */
79
+ readonly processCpuWindowMs: number;
80
+ readonly processorCount: number;
81
+ /** The host load averages. They are -1 on a host that has none. */
82
+ readonly loadAverage1m: number;
83
+ readonly loadAverage5m: number;
84
+ readonly loadAverage15m: number;
85
+ }
86
+ /** The memory of the server process, of its managed heap, and of its host. */
87
+ export interface CamusMemoryStats {
88
+ readonly processWorkingSetBytes: number;
89
+ readonly gcHeapBytes: number;
90
+ readonly gcCommittedBytes: number;
91
+ /** The managed heap limit in force. `0` means that no limit is in force. */
92
+ readonly gcMemoryLimitBytes: number;
93
+ /** The cgroup memory limit when one applies, and the host's physical memory if not. */
94
+ readonly hostTotalBytes: number;
95
+ readonly hostAvailableBytes: number;
96
+ }
97
+ /** Why one value is -1. `field` is the value's path, for example `cpu.load_average_1m`. */
98
+ export interface CamusNodeStatsError {
99
+ readonly field: string;
100
+ readonly message: string;
101
+ }
102
+ /**
103
+ * Builds the model from a REST body or a gRPC reply.
104
+ *
105
+ * The two use the same camelCase names, with one exception: the gRPC loader spells
106
+ * `load_average_1m` as `loadAverage_1m`, and REST spells it `loadAverage1m`. Both are read. A part
107
+ * that the reply does not carry keeps the -1 defaults, so an older server's gap does not read as
108
+ * zero.
109
+ *
110
+ * @internal
111
+ */
112
+ export declare function nodeStatsFromWire(address: string, wire: unknown): CamusNodeStats;
113
+ //# sourceMappingURL=node-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-stats.d.ts","sourceRoot":"","sources":["../src/node-stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * This file is part of CamusDB
3
+ *
4
+ * For the full copyright and license information, please view the LICENSE.txt
5
+ * file that was distributed with this source code.
6
+ */
7
+ import { asNumber } from './json.js';
8
+ /** The `role` of a disk volume. */
9
+ export const CamusDiskVolumeRole = {
10
+ /** The volume that holds the node's data directory. The write gate watches this one. */
11
+ Data: 'data',
12
+ /** A Raft WAL directory on a volume of its own. */
13
+ Wal: 'wal',
14
+ };
15
+ /**
16
+ * Builds the model from a REST body or a gRPC reply.
17
+ *
18
+ * The two use the same camelCase names, with one exception: the gRPC loader spells
19
+ * `load_average_1m` as `loadAverage_1m`, and REST spells it `loadAverage1m`. Both are read. A part
20
+ * that the reply does not carry keeps the -1 defaults, so an older server's gap does not read as
21
+ * zero.
22
+ *
23
+ * @internal
24
+ */
25
+ export function nodeStatsFromWire(address, wire) {
26
+ const body = asRecord(wire) ?? {};
27
+ const node = asRecord(body.node);
28
+ const cpu = asRecord(body.cpu);
29
+ const memory = asRecord(body.memory);
30
+ const disks = asArray(body.disks).map((entry) => {
31
+ const disk = asRecord(entry) ?? {};
32
+ return {
33
+ role: asText(disk.role),
34
+ path: asText(disk.path),
35
+ mountPoint: asText(disk.mountPoint),
36
+ totalBytes: asNumber(disk.totalBytes, -1),
37
+ freeBytes: asNumber(disk.freeBytes, -1),
38
+ availableBytes: asNumber(disk.availableBytes, -1),
39
+ usedBytes: asNumber(disk.usedBytes, -1),
40
+ minFreeDiskBytes: asNumber(disk.minFreeDiskBytes, -1),
41
+ belowWatermark: disk.belowWatermark === true,
42
+ engineBytes: asNumber(disk.engineBytes, -1),
43
+ };
44
+ });
45
+ return {
46
+ address,
47
+ node: {
48
+ nodeId: asText(node?.nodeId),
49
+ endpoint: asText(node?.endpoint),
50
+ version: asText(node?.version),
51
+ clusterMode: node?.clusterMode === true,
52
+ uptimeSeconds: asNumber(node?.uptimeSeconds, -1),
53
+ sampledAtUnixMs: asNumber(node?.sampledAtUnixMs, -1),
54
+ },
55
+ disks,
56
+ cpu: {
57
+ processCpuPercent: asNumber(cpu?.processCpuPercent, -1),
58
+ processCpuWindowMs: asNumber(cpu?.processCpuWindowMs, -1),
59
+ processorCount: asNumber(cpu?.processorCount, -1),
60
+ loadAverage1m: asNumber(cpu?.loadAverage1m ?? cpu?.loadAverage_1m, -1),
61
+ loadAverage5m: asNumber(cpu?.loadAverage5m ?? cpu?.loadAverage_5m, -1),
62
+ loadAverage15m: asNumber(cpu?.loadAverage15m ?? cpu?.loadAverage_15m, -1),
63
+ },
64
+ memory: {
65
+ processWorkingSetBytes: asNumber(memory?.processWorkingSetBytes, -1),
66
+ gcHeapBytes: asNumber(memory?.gcHeapBytes, -1),
67
+ gcCommittedBytes: asNumber(memory?.gcCommittedBytes, -1),
68
+ gcMemoryLimitBytes: asNumber(memory?.gcMemoryLimitBytes, -1),
69
+ hostTotalBytes: asNumber(memory?.hostTotalBytes, -1),
70
+ hostAvailableBytes: asNumber(memory?.hostAvailableBytes, -1),
71
+ },
72
+ errors: asArray(body.errors).map((entry) => {
73
+ const error = asRecord(entry) ?? {};
74
+ return { field: asText(error.field), message: asText(error.message) };
75
+ }),
76
+ dataVolume: disks.find((disk) => disk.role === CamusDiskVolumeRole.Data),
77
+ };
78
+ }
79
+ function asRecord(value) {
80
+ return typeof value === 'object' && value !== null && !Array.isArray(value)
81
+ ? value
82
+ : undefined;
83
+ }
84
+ function asArray(value) {
85
+ return Array.isArray(value) ? value : [];
86
+ }
87
+ function asText(value) {
88
+ return typeof value === 'string' ? value : '';
89
+ }
90
+ //# sourceMappingURL=node-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-stats.js","sourceRoot":"","sources":["../src/node-stats.ts"],"names":[],"mappings":"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"}
package/dist/options.d.ts CHANGED
@@ -65,6 +65,16 @@ export interface CamusTransactionOptions {
65
65
  * Set it when the transaction's hot statement is not its first one.
66
66
  */
67
67
  readonly affinity?: string | undefined;
68
+ /**
69
+ * Send `BEGIN` with the transaction's first statement, or inside its first `CamusPipeline` send
70
+ * as part of the same stream message, and not from `beginTransaction`. A pipelined transaction
71
+ * then costs no exchange for its `BEGIN`.
72
+ *
73
+ * With learned routing on, `BEGIN` is deferred already, and this changes nothing. The visible
74
+ * results are those of the routed deferral: the identity reads as zero until the first
75
+ * statement, and a failure to begin comes from that statement.
76
+ */
77
+ readonly deferBegin?: boolean | undefined;
68
78
  }
69
79
  /** No knob set: every one deferred to a lower level of defaults. */
70
80
  export declare const DEFAULT_TRANSACTION_OPTIONS: CamusTransactionOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B,+FAA+F;;IAG/F;;;OAGG;;CAEK,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjG,uCAAuC;AACvC,eAAO,MAAM,oBAAoB;IAC/B,+DAA+D;;IAG/D;;;OAGG;;CAEK,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEpG,yFAAyF;AACzF,eAAO,MAAM,YAAY;IACvB;;;OAGG;;IAGH;;;;;OAKG;;CAEK,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAE5C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,EAAE,uBAA2C,CAAC;AAEtF,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,EAAE,uBAE3C,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,EAAE,uBAGzC,CAAC;AAEH,+DAA+D;AAC/D,wBAAgB,YAAY,CAC1B,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,uBAAuB,CASzB"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B,+FAA+F;;IAG/F;;;OAGG;;CAEK,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjG,uCAAuC;AACvC,eAAO,MAAM,oBAAoB;IAC/B,+DAA+D;;IAG/D;;;OAGG;;CAEK,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEpG,yFAAyF;AACzF,eAAO,MAAM,YAAY;IACvB;;;OAGG;;IAGH;;;;;OAKG;;CAEK,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAE5C;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3C;AAED,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,EAAE,uBAA2C,CAAC;AAEtF,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,EAAE,uBAE3C,CAAC;AAEH,mEAAmE;AACnE,eAAO,MAAM,4BAA4B,EAAE,uBAGzC,CAAC;AAEH,+DAA+D;AAC/D,wBAAgB,YAAY,CAC1B,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,uBAAuB,CAUzB"}
package/dist/options.js CHANGED
@@ -63,6 +63,7 @@ export function withDefaults(options, fallback) {
63
63
  mode: options.mode ?? fallback.mode,
64
64
  locking: options.locking ?? fallback.locking,
65
65
  affinity: options.affinity ?? fallback.affinity,
66
+ deferBegin: options.deferBegin === true || fallback.deferBegin === true ? true : undefined,
66
67
  };
67
68
  }
68
69
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,+FAA+F;IAC/F,aAAa,EAAE,eAAe;IAE9B;;;OAGG;IACH,YAAY,EAAE,cAAc;CACpB,CAAC;AAIX,uCAAuC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,+DAA+D;IAC/D,SAAS,EAAE,WAAW;IAEtB;;;OAGG;IACH,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;;;OAGG;IACH,WAAW,EAAE,aAAa;IAE1B;;;;;OAKG;IACH,UAAU,EAAE,YAAY;CAChB,CAAC;AA0BX,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAA4B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEtF,wEAAwE;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAA4B,MAAM,CAAC,MAAM,CAAC;IACnF,OAAO,EAAE,YAAY,CAAC,UAAU;CACjC,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAA4B,MAAM,CAAC,MAAM,CAAC;IACjF,cAAc,EAAE,mBAAmB,CAAC,YAAY;IAChD,IAAI,EAAE,oBAAoB,CAAC,QAAQ;CACpC,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAC1B,OAAgC,EAChC,QAA6C;IAE7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE3C,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc;QACjE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;QACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,+FAA+F;IAC/F,aAAa,EAAE,eAAe;IAE9B;;;OAGG;IACH,YAAY,EAAE,cAAc;CACpB,CAAC;AAIX,uCAAuC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,+DAA+D;IAC/D,SAAS,EAAE,WAAW;IAEtB;;;OAGG;IACH,QAAQ,EAAE,UAAU;CACZ,CAAC;AAIX,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;;;OAGG;IACH,WAAW,EAAE,aAAa;IAE1B;;;;;OAKG;IACH,UAAU,EAAE,YAAY;CAChB,CAAC;AAqCX,oEAAoE;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAA4B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEtF,wEAAwE;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAA4B,MAAM,CAAC,MAAM,CAAC;IACnF,OAAO,EAAE,YAAY,CAAC,UAAU;CACjC,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,4BAA4B,GAA4B,MAAM,CAAC,MAAM,CAAC;IACjF,cAAc,EAAE,mBAAmB,CAAC,YAAY;IAChD,IAAI,EAAE,oBAAoB,CAAC,QAAQ;CACpC,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAC1B,OAAgC,EAChC,QAA6C;IAE7C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE3C,OAAO;QACL,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,QAAQ,CAAC,cAAc;QACjE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI;QACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QAC5C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;QAC/C,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;KAC3F,CAAC;AACJ,CAAC"}