@databricks/sdk-core 0.33.0 → 0.35.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 (135) hide show
  1. package/dist/apierror/apierror.d.ts +52 -49
  2. package/dist/apierror/apierror.d.ts.map +1 -1
  3. package/dist/apierror/apierror.js +124 -172
  4. package/dist/apierror/apierror.js.map +1 -1
  5. package/dist/apierror/codes/codes.d.ts +113 -113
  6. package/dist/apierror/codes/codes.d.ts.map +1 -1
  7. package/dist/apierror/codes/codes.js +24 -115
  8. package/dist/apierror/codes/codes.js.map +1 -1
  9. package/dist/apierror/codes/index.d.ts +2 -7
  10. package/dist/apierror/codes/index.js +3 -7
  11. package/dist/apierror/details.d.ts +104 -101
  12. package/dist/apierror/details.d.ts.map +1 -1
  13. package/dist/apierror/details.js +151 -226
  14. package/dist/apierror/details.js.map +1 -1
  15. package/dist/apierror/index.d.ts +3 -8
  16. package/dist/apierror/index.js +3 -7
  17. package/dist/clientinfo/agent.d.ts +6 -3
  18. package/dist/clientinfo/agent.d.ts.map +1 -1
  19. package/dist/clientinfo/agent.js +134 -112
  20. package/dist/clientinfo/agent.js.map +1 -1
  21. package/dist/clientinfo/base.d.ts +13 -15
  22. package/dist/clientinfo/base.d.ts.map +1 -1
  23. package/dist/clientinfo/base.js +50 -50
  24. package/dist/clientinfo/base.js.map +1 -1
  25. package/dist/clientinfo/clientinfo.d.ts +40 -38
  26. package/dist/clientinfo/clientinfo.d.ts.map +1 -1
  27. package/dist/clientinfo/clientinfo.js +78 -88
  28. package/dist/clientinfo/clientinfo.js.map +1 -1
  29. package/dist/clientinfo/default.browser.d.ts +6 -10
  30. package/dist/clientinfo/default.browser.d.ts.map +1 -1
  31. package/dist/clientinfo/default.browser.js +24 -16
  32. package/dist/clientinfo/default.browser.js.map +1 -1
  33. package/dist/clientinfo/default.d.ts +8 -4
  34. package/dist/clientinfo/default.d.ts.map +1 -1
  35. package/dist/clientinfo/default.js +157 -102
  36. package/dist/clientinfo/default.js.map +1 -1
  37. package/dist/clientinfo/index.browser.d.ts +4 -5
  38. package/dist/clientinfo/index.browser.js +5 -4
  39. package/dist/clientinfo/index.d.ts +4 -5
  40. package/dist/clientinfo/index.js +5 -4
  41. package/dist/clientinfo/meta-harness.d.ts +6 -3
  42. package/dist/clientinfo/meta-harness.d.ts.map +1 -1
  43. package/dist/clientinfo/meta-harness.js +30 -46
  44. package/dist/clientinfo/meta-harness.js.map +1 -1
  45. package/dist/http/http.d.ts +25 -22
  46. package/dist/http/http.d.ts.map +1 -1
  47. package/dist/http/http.js +24 -34
  48. package/dist/http/http.js.map +1 -1
  49. package/dist/http/index.d.ts +2 -8
  50. package/dist/http/index.js +3 -7
  51. package/dist/index.d.ts +1 -6
  52. package/dist/index.js +7 -5
  53. package/dist/index.js.map +1 -1
  54. package/dist/logger/index.d.ts +2 -8
  55. package/dist/logger/index.js +3 -7
  56. package/dist/logger/logger.d.ts +26 -23
  57. package/dist/logger/logger.d.ts.map +1 -1
  58. package/dist/logger/logger.js +46 -60
  59. package/dist/logger/logger.js.map +1 -1
  60. package/dist/ops/execute.d.ts +7 -3
  61. package/dist/ops/execute.d.ts.map +1 -1
  62. package/dist/ops/execute.js +55 -67
  63. package/dist/ops/execute.js.map +1 -1
  64. package/dist/ops/index.d.ts +5 -12
  65. package/dist/ops/index.js +4 -9
  66. package/dist/ops/limiter.d.ts +5 -2
  67. package/dist/ops/limiter.d.ts.map +1 -1
  68. package/dist/ops/limiter.js +0 -2
  69. package/dist/ops/options.d.ts +23 -19
  70. package/dist/ops/options.d.ts.map +1 -1
  71. package/dist/ops/options.js +0 -2
  72. package/dist/ops/retrier.d.ts +34 -31
  73. package/dist/ops/retrier.d.ts.map +1 -1
  74. package/dist/ops/retrier.js +55 -66
  75. package/dist/ops/retrier.js.map +1 -1
  76. package/dist/package.js +6 -0
  77. package/dist/package.js.map +1 -0
  78. package/dist/profiles/errors.d.ts +7 -4
  79. package/dist/profiles/errors.d.ts.map +1 -1
  80. package/dist/profiles/errors.js +16 -17
  81. package/dist/profiles/errors.js.map +1 -1
  82. package/dist/profiles/index.browser.d.ts +4 -10
  83. package/dist/profiles/index.browser.js +4 -8
  84. package/dist/profiles/index.d.ts +5 -15
  85. package/dist/profiles/index.js +5 -13
  86. package/dist/profiles/ini.d.ts +6 -3
  87. package/dist/profiles/ini.d.ts.map +1 -1
  88. package/dist/profiles/ini.js +60 -108
  89. package/dist/profiles/ini.js.map +1 -1
  90. package/dist/profiles/profile.d.ts +66 -67
  91. package/dist/profiles/profile.d.ts.map +1 -1
  92. package/dist/profiles/profile.js +89 -84
  93. package/dist/profiles/profile.js.map +1 -1
  94. package/dist/profiles/resolve.d.ts +8 -9
  95. package/dist/profiles/resolve.d.ts.map +1 -1
  96. package/dist/profiles/resolve.js +140 -185
  97. package/dist/profiles/resolve.js.map +1 -1
  98. package/dist/profiles/secret.d.ts +15 -12
  99. package/dist/profiles/secret.d.ts.map +1 -1
  100. package/dist/profiles/secret.js +38 -35
  101. package/dist/profiles/secret.js.map +1 -1
  102. package/dist/wkt/fieldmask.d.ts +23 -20
  103. package/dist/wkt/fieldmask.d.ts.map +1 -1
  104. package/dist/wkt/fieldmask.js +53 -62
  105. package/dist/wkt/fieldmask.js.map +1 -1
  106. package/dist/wkt/index.d.ts +3 -4
  107. package/dist/wkt/index.js +3 -2
  108. package/dist/wkt/value.d.ts +6 -3
  109. package/dist/wkt/value.d.ts.map +1 -1
  110. package/dist/wkt/value.js +0 -2
  111. package/package.json +2 -2
  112. package/dist/apierror/codes/index.d.ts.map +0 -1
  113. package/dist/apierror/codes/index.js.map +0 -1
  114. package/dist/apierror/index.d.ts.map +0 -1
  115. package/dist/apierror/index.js.map +0 -1
  116. package/dist/clientinfo/index.browser.d.ts.map +0 -1
  117. package/dist/clientinfo/index.browser.js.map +0 -1
  118. package/dist/clientinfo/index.d.ts.map +0 -1
  119. package/dist/clientinfo/index.js.map +0 -1
  120. package/dist/http/index.d.ts.map +0 -1
  121. package/dist/http/index.js.map +0 -1
  122. package/dist/index.d.ts.map +0 -1
  123. package/dist/logger/index.d.ts.map +0 -1
  124. package/dist/logger/index.js.map +0 -1
  125. package/dist/ops/index.d.ts.map +0 -1
  126. package/dist/ops/index.js.map +0 -1
  127. package/dist/ops/limiter.js.map +0 -1
  128. package/dist/ops/options.js.map +0 -1
  129. package/dist/profiles/index.browser.d.ts.map +0 -1
  130. package/dist/profiles/index.browser.js.map +0 -1
  131. package/dist/profiles/index.d.ts.map +0 -1
  132. package/dist/profiles/index.js.map +0 -1
  133. package/dist/wkt/index.d.ts.map +0 -1
  134. package/dist/wkt/index.js.map +0 -1
  135. package/dist/wkt/value.js.map +0 -1
@@ -1,96 +1,86 @@
1
- /**
2
- * Collects information about the client and its environment into an
3
- * immutable {@link ClientInfo} value.
4
- *
5
- * {@link ClientInfo.with} derives a new value with additional key/value
6
- * segments; it never mutates the original.
7
- *
8
- * @module
9
- */
10
- export class ClientInfoError extends Error {
11
- code;
12
- constructor(code, message) {
13
- super(message);
14
- this.name = 'ClientInfoError';
15
- this.code = code;
16
- }
17
- }
18
- const SEMVER_CORE = String.raw `(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)`;
19
- const SEMVER_PRERELEASE = String.raw `(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?`;
20
- const SEMVER_BUILDMETADATA = String.raw `(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?`;
21
- const REGEXP_SEMVER = new RegExp('^' + SEMVER_CORE + SEMVER_PRERELEASE + SEMVER_BUILDMETADATA + '$');
1
+ //#region src/clientinfo/clientinfo.ts
2
+ var ClientInfoError = class extends Error {
3
+ code;
4
+ constructor(code, message) {
5
+ super(message);
6
+ this.name = "ClientInfoError";
7
+ this.code = code;
8
+ }
9
+ };
10
+ const SEMVER_CORE = String.raw`(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)`;
11
+ const SEMVER_PRERELEASE = String.raw`(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?`;
12
+ const SEMVER_BUILDMETADATA = String.raw`(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?`;
13
+ const REGEXP_SEMVER = new RegExp("^" + SEMVER_CORE + SEMVER_PRERELEASE + SEMVER_BUILDMETADATA + "$");
22
14
  const REGEXP_VALID_SEGMENT = /^[-0-9A-Za-z_.+]+$/;
23
15
  const REGEXP_INVALID_SEGMENT_CHAR = /[^-0-9A-Za-z_.+]/g;
24
- export function isSemVer(s) {
25
- return REGEXP_SEMVER.test(s);
16
+ function isSemVer(s) {
17
+ return REGEXP_SEMVER.test(s);
26
18
  }
27
- export function isValidSegment(s) {
28
- return REGEXP_VALID_SEGMENT.test(s);
19
+ function isValidSegment(s) {
20
+ return REGEXP_VALID_SEGMENT.test(s);
29
21
  }
30
22
  /**
31
- * Replaces characters that are not valid in segment values with
32
- * hyphens. Used for environment-sourced values (runtime version,
33
- * upstream) that we do not control and cannot reject.
34
- */
35
- export function sanitize(s) {
36
- return s.replace(REGEXP_INVALID_SEGMENT_CHAR, '-');
23
+ * Replaces characters that are not valid in segment values with
24
+ * hyphens. Used for environment-sourced values (runtime version,
25
+ * upstream) that we do not control and cannot reject.
26
+ */
27
+ function sanitize(s) {
28
+ return s.replace(REGEXP_INVALID_SEGMENT_CHAR, "-");
37
29
  }
38
30
  /**
39
- * ClientInfo is an immutable, ordered list of key/value segments. Use
40
- * {@link ClientInfo.with} to derive new values with additional segments.
41
- */
42
- export class ClientInfo {
43
- static EMPTY = new ClientInfo();
44
- segments;
45
- constructor(segments = []) {
46
- this.segments = [...segments];
47
- }
48
- /**
49
- * Returns a new {@link ClientInfo} with the given items appended. Accepts
50
- * either individual key/value pairs or another {@link ClientInfo} whose
51
- * segments are merged in order. The original is not modified; mixing the
52
- * two forms in a single call is supported.
53
- *
54
- * Keys and values on pair arguments must contain only alphanumeric
55
- * characters plus `_`, `.`, `+`, or `-`. Exact key+value duplicates are
56
- * silently ignored. On error, an exception is thrown (all-or-nothing).
57
- *
58
- * @example
59
- * ```ts
60
- * base.with({key: 'partner', value: 'acme'});
61
- * base.with(pkgClientInfo);
62
- * base.with(pkgClientInfo, {key: 'sdk-feature', value: 'pagination'});
63
- * ```
64
- */
65
- with(...items) {
66
- if (items.length === 0) {
67
- return this;
68
- }
69
- const newSegments = [...this.segments];
70
- for (const item of items) {
71
- const pairs = item instanceof ClientInfo ? item.segments : [item];
72
- for (const { key, value } of pairs) {
73
- if (!isValidSegment(key)) {
74
- throw new ClientInfoError('INVALID_KEY', `Invalid key: ${key}.`);
75
- }
76
- if (!isValidSegment(value)) {
77
- throw new ClientInfoError('INVALID_VALUE', `Invalid value for "${key}": ${value}.`);
78
- }
79
- if (newSegments.some(s => s.key === key && s.value === value)) {
80
- continue;
81
- }
82
- newSegments.push({ key, value });
83
- }
84
- }
85
- return new ClientInfo(newSegments);
86
- }
87
- /**
88
- * Returns a string representation of the client info suitable for
89
- * inclusion in HTTP headers. Key/value pairs are formatted as
90
- * "key/value" and joined by spaces in the order they were inserted.
91
- */
92
- toString() {
93
- return this.segments.map(s => `${s.key}/${s.value}`).join(' ');
94
- }
95
- }
31
+ * ClientInfo is an immutable, ordered list of key/value segments. Use
32
+ * {@link ClientInfo.with} to derive new values with additional segments.
33
+ */
34
+ var ClientInfo = class ClientInfo {
35
+ static EMPTY = new ClientInfo();
36
+ segments;
37
+ constructor(segments = []) {
38
+ this.segments = [...segments];
39
+ }
40
+ /**
41
+ * Returns a new {@link ClientInfo} with the given items appended. Accepts
42
+ * either individual key/value pairs or another {@link ClientInfo} whose
43
+ * segments are merged in order. The original is not modified; mixing the
44
+ * two forms in a single call is supported.
45
+ *
46
+ * Keys and values on pair arguments must contain only alphanumeric
47
+ * characters plus `_`, `.`, `+`, or `-`. Exact key+value duplicates are
48
+ * silently ignored. On error, an exception is thrown (all-or-nothing).
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * base.with({key: 'partner', value: 'acme'});
53
+ * base.with(pkgClientInfo);
54
+ * base.with(pkgClientInfo, {key: 'sdk-feature', value: 'pagination'});
55
+ * ```
56
+ */
57
+ with(...items) {
58
+ if (items.length === 0) return this;
59
+ const newSegments = [...this.segments];
60
+ for (const item of items) {
61
+ const pairs = item instanceof ClientInfo ? item.segments : [item];
62
+ for (const { key, value } of pairs) {
63
+ if (!isValidSegment(key)) throw new ClientInfoError("INVALID_KEY", `Invalid key: ${key}.`);
64
+ if (!isValidSegment(value)) throw new ClientInfoError("INVALID_VALUE", `Invalid value for "${key}": ${value}.`);
65
+ if (newSegments.some((s) => s.key === key && s.value === value)) continue;
66
+ newSegments.push({
67
+ key,
68
+ value
69
+ });
70
+ }
71
+ }
72
+ return new ClientInfo(newSegments);
73
+ }
74
+ /**
75
+ * Returns a string representation of the client info suitable for
76
+ * inclusion in HTTP headers. Key/value pairs are formatted as
77
+ * "key/value" and joined by spaces in the order they were inserted.
78
+ */
79
+ toString() {
80
+ return this.segments.map((s) => `${s.key}/${s.value}`).join(" ");
81
+ }
82
+ };
83
+
84
+ //#endregion
85
+ export { ClientInfo, ClientInfoError, isSemVer, isValidSegment, sanitize };
96
86
  //# sourceMappingURL=clientinfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientinfo.js","sourceRoot":"","sources":["../../src/clientinfo/clientinfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientinfo.js","names":[],"sources":["../../src/clientinfo/clientinfo.ts"],"sourcesContent":["/**\n * Collects information about the client and its environment into an\n * immutable {@link ClientInfo} value.\n *\n * {@link ClientInfo.with} derives a new value with additional key/value\n * segments; it never mutates the original.\n *\n * @module\n */\n\nexport type ClientInfoErrorCode =\n | 'INVALID_KEY'\n | 'INVALID_VALUE'\n | 'INVALID_VERSION';\n\nexport class ClientInfoError extends Error {\n readonly code: ClientInfoErrorCode;\n\n constructor(code: ClientInfoErrorCode, message: string) {\n super(message);\n this.name = 'ClientInfoError';\n this.code = code;\n }\n}\n\ninterface Segment {\n readonly key: string;\n readonly value: string;\n}\n\nconst SEMVER_CORE = String.raw`(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)`;\n\nconst SEMVER_PRERELEASE = String.raw`(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?`;\n\nconst SEMVER_BUILDMETADATA = String.raw`(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?`;\n\nconst REGEXP_SEMVER = new RegExp(\n '^' + SEMVER_CORE + SEMVER_PRERELEASE + SEMVER_BUILDMETADATA + '$'\n);\nconst REGEXP_VALID_SEGMENT = /^[-0-9A-Za-z_.+]+$/;\nconst REGEXP_INVALID_SEGMENT_CHAR = /[^-0-9A-Za-z_.+]/g;\n\nexport function isSemVer(s: string): boolean {\n return REGEXP_SEMVER.test(s);\n}\n\nexport function isValidSegment(s: string): boolean {\n return REGEXP_VALID_SEGMENT.test(s);\n}\n\n/**\n * Replaces characters that are not valid in segment values with\n * hyphens. Used for environment-sourced values (runtime version,\n * upstream) that we do not control and cannot reject.\n */\nexport function sanitize(s: string): string {\n return s.replace(REGEXP_INVALID_SEGMENT_CHAR, '-');\n}\n\n/**\n * ClientInfo is an immutable, ordered list of key/value segments. Use\n * {@link ClientInfo.with} to derive new values with additional segments.\n */\nexport class ClientInfo {\n static readonly EMPTY = new ClientInfo();\n\n readonly segments: readonly Segment[];\n\n private constructor(\n segments: readonly {readonly key: string; readonly value: string}[] = []\n ) {\n this.segments = [...segments];\n }\n\n /**\n * Returns a new {@link ClientInfo} with the given items appended. Accepts\n * either individual key/value pairs or another {@link ClientInfo} whose\n * segments are merged in order. The original is not modified; mixing the\n * two forms in a single call is supported.\n *\n * Keys and values on pair arguments must contain only alphanumeric\n * characters plus `_`, `.`, `+`, or `-`. Exact key+value duplicates are\n * silently ignored. On error, an exception is thrown (all-or-nothing).\n *\n * @example\n * ```ts\n * base.with({key: 'partner', value: 'acme'});\n * base.with(pkgClientInfo);\n * base.with(pkgClientInfo, {key: 'sdk-feature', value: 'pagination'});\n * ```\n */\n with(...items: (ClientInfo | Segment)[]): ClientInfo {\n if (items.length === 0) {\n return this;\n }\n\n const newSegments: Segment[] = [...this.segments];\n\n for (const item of items) {\n const pairs = item instanceof ClientInfo ? item.segments : [item];\n for (const {key, value} of pairs) {\n if (!isValidSegment(key)) {\n throw new ClientInfoError('INVALID_KEY', `Invalid key: ${key}.`);\n }\n if (!isValidSegment(value)) {\n throw new ClientInfoError(\n 'INVALID_VALUE',\n `Invalid value for \"${key}\": ${value}.`\n );\n }\n if (newSegments.some(s => s.key === key && s.value === value)) {\n continue;\n }\n newSegments.push({key, value});\n }\n }\n\n return new ClientInfo(newSegments);\n }\n\n /**\n * Returns a string representation of the client info suitable for\n * inclusion in HTTP headers. Key/value pairs are formatted as\n * \"key/value\" and joined by spaces in the order they were inserted.\n */\n toString(): string {\n return this.segments.map(s => `${s.key}/${s.value}`).join(' ');\n }\n}\n"],"mappings":";AAeA,IAAa,kBAAb,cAAqC,MAAM;CACzC,AAAS;CAET,YAAY,MAA2B,SAAiB;AACtD,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,OAAO;;;AAShB,MAAM,cAAc,OAAO,GAAG;AAE9B,MAAM,oBAAoB,OAAO,GAAG;AAEpC,MAAM,uBAAuB,OAAO,GAAG;AAEvC,MAAM,gBAAgB,IAAI,OACxB,MAAM,cAAc,oBAAoB,uBAAuB,IAChE;AACD,MAAM,uBAAuB;AAC7B,MAAM,8BAA8B;AAEpC,SAAgB,SAAS,GAAoB;AAC3C,QAAO,cAAc,KAAK,EAAE;;AAG9B,SAAgB,eAAe,GAAoB;AACjD,QAAO,qBAAqB,KAAK,EAAE;;;;;;;AAQrC,SAAgB,SAAS,GAAmB;AAC1C,QAAO,EAAE,QAAQ,6BAA6B,IAAI;;;;;;AAOpD,IAAa,aAAb,MAAa,WAAW;CACtB,OAAgB,QAAQ,IAAI,YAAY;CAExC,AAAS;CAET,AAAQ,YACN,WAAsE,EAAE,EACxE;AACA,OAAK,WAAW,CAAC,GAAG,SAAS;;;;;;;;;;;;;;;;;;;CAoB/B,KAAK,GAAG,OAA6C;AACnD,MAAI,MAAM,WAAW,EACnB,QAAO;EAGT,MAAM,cAAyB,CAAC,GAAG,KAAK,SAAS;AAEjD,OAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,QAAQ,gBAAgB,aAAa,KAAK,WAAW,CAAC,KAAK;AACjE,QAAK,MAAM,EAAC,KAAK,WAAU,OAAO;AAChC,QAAI,CAAC,eAAe,IAAI,CACtB,OAAM,IAAI,gBAAgB,eAAe,gBAAgB,IAAI,GAAG;AAElE,QAAI,CAAC,eAAe,MAAM,CACxB,OAAM,IAAI,gBACR,iBACA,sBAAsB,IAAI,KAAK,MAAM,GACtC;AAEH,QAAI,YAAY,MAAK,MAAK,EAAE,QAAQ,OAAO,EAAE,UAAU,MAAM,CAC3D;AAEF,gBAAY,KAAK;KAAC;KAAK;KAAM,CAAC;;;AAIlC,SAAO,IAAI,WAAW,YAAY;;;;;;;CAQpC,WAAmB;AACjB,SAAO,KAAK,SAAS,KAAI,MAAK,GAAG,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC,KAAK,IAAI"}
@@ -1,17 +1,13 @@
1
- /**
2
- * Browser-compatible {@link createDefault}. Contains no Node.js-specific
3
- * APIs (no `process.version`, `process.platform`, or `process.env`); only
4
- * the segments registered via {@link setProduct}, {@link setPartner}, and
5
- * {@link addToDefault} are returned, plus the core SDK identity.
6
- *
7
- * @module
8
- */
9
- import { ClientInfo } from './clientinfo';
1
+ import { ClientInfo } from "./clientinfo.js";
2
+
3
+ //#region src/clientinfo/default.browser.d.ts
10
4
  /**
11
5
  * Returns a {@link ClientInfo} populated with SDK metadata and segments
12
6
  * registered via {@link addToDefault}. Unlike the Node.js variant, this
13
7
  * does not auto-detect runtime, OS, CI/CD, or agent because those signals
14
8
  * are not available in a browser.
15
9
  */
16
- export declare function createDefault(): ClientInfo;
10
+ declare function createDefault(): ClientInfo;
11
+ //#endregion
12
+ export { createDefault };
17
13
  //# sourceMappingURL=default.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.browser.d.ts","sourceRoot":"","sources":["../../src/clientinfo/default.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAGxC;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAK1C"}
1
+ {"version":3,"file":"default.browser.d.ts","names":[],"sources":["../../src/clientinfo/default.browser.ts"],"mappings":";;;;;;;;;iBAkBgB,aAAA,CAAA,GAAiB,UAAA"}
@@ -1,20 +1,28 @@
1
+ import { ClientInfo } from "./clientinfo.js";
2
+ import { MODULE_NAME, VERSION, getBase } from "./base.js";
3
+
4
+ //#region src/clientinfo/default.browser.ts
1
5
  /**
2
- * Browser-compatible {@link createDefault}. Contains no Node.js-specific
3
- * APIs (no `process.version`, `process.platform`, or `process.env`); only
4
- * the segments registered via {@link setProduct}, {@link setPartner}, and
5
- * {@link addToDefault} are returned, plus the core SDK identity.
6
- *
7
- * @module
8
- */
9
- import { ClientInfo } from './clientinfo';
10
- import { MODULE_NAME, VERSION, getBase } from './base';
6
+ * Browser-compatible {@link createDefault}. Contains no Node.js-specific
7
+ * APIs (no `process.version`, `process.platform`, or `process.env`); only
8
+ * the segments registered via {@link setProduct}, {@link setPartner}, and
9
+ * {@link addToDefault} are returned, plus the core SDK identity.
10
+ *
11
+ * @module
12
+ */
11
13
  /**
12
- * Returns a {@link ClientInfo} populated with SDK metadata and segments
13
- * registered via {@link addToDefault}. Unlike the Node.js variant, this
14
- * does not auto-detect runtime, OS, CI/CD, or agent because those signals
15
- * are not available in a browser.
16
- */
17
- export function createDefault() {
18
- return ClientInfo.EMPTY.with({ key: MODULE_NAME, value: VERSION }, ...getBase().segments);
14
+ * Returns a {@link ClientInfo} populated with SDK metadata and segments
15
+ * registered via {@link addToDefault}. Unlike the Node.js variant, this
16
+ * does not auto-detect runtime, OS, CI/CD, or agent because those signals
17
+ * are not available in a browser.
18
+ */
19
+ function createDefault() {
20
+ return ClientInfo.EMPTY.with({
21
+ key: MODULE_NAME,
22
+ value: VERSION
23
+ }, ...getBase().segments);
19
24
  }
25
+
26
+ //#endregion
27
+ export { createDefault };
20
28
  //# sourceMappingURL=default.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.browser.js","sourceRoot":"","sources":["../../src/clientinfo/default.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,QAAQ,CAAC;AAErD;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAC1B,EAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAC,EAClC,GAAG,OAAO,EAAE,CAAC,QAAQ,CACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"default.browser.js","names":[],"sources":["../../src/clientinfo/default.browser.ts"],"sourcesContent":["/**\n * Browser-compatible {@link createDefault}. Contains no Node.js-specific\n * APIs (no `process.version`, `process.platform`, or `process.env`); only\n * the segments registered via {@link setProduct}, {@link setPartner}, and\n * {@link addToDefault} are returned, plus the core SDK identity.\n *\n * @module\n */\n\nimport {ClientInfo} from './clientinfo';\nimport {MODULE_NAME, VERSION, getBase} from './base';\n\n/**\n * Returns a {@link ClientInfo} populated with SDK metadata and segments\n * registered via {@link addToDefault}. Unlike the Node.js variant, this\n * does not auto-detect runtime, OS, CI/CD, or agent because those signals\n * are not available in a browser.\n */\nexport function createDefault(): ClientInfo {\n return ClientInfo.EMPTY.with(\n {key: MODULE_NAME, value: VERSION},\n ...getBase().segments\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,SAAgB,gBAA4B;AAC1C,QAAO,WAAW,MAAM,KACtB;EAAC,KAAK;EAAa,OAAO;EAAQ,EAClC,GAAG,SAAS,CAAC,SACd"}
@@ -1,14 +1,18 @@
1
- import { ClientInfo } from './clientinfo';
1
+ import { ClientInfo } from "./clientinfo.js";
2
+
3
+ //#region src/clientinfo/default.d.ts
2
4
  /**
3
5
  * Converts a Node.js version string (e.g., "v22.0.0") into a bare
4
6
  * semver string (e.g., "22.0.0").
5
7
  */
6
- export declare function normalizeNodeVersion(raw: string): string;
7
- export declare const CACHED_NODE_VERSION: string;
8
+ declare function normalizeNodeVersion(raw: string): string;
9
+ declare const CACHED_NODE_VERSION: string;
8
10
  /**
9
11
  * Returns a {@link ClientInfo} populated with SDK metadata, runtime
10
12
  * information, segments registered via {@link addToDefault}, and
11
13
  * automatically detected environment properties.
12
14
  */
13
- export declare function createDefault(): ClientInfo;
15
+ declare function createDefault(): ClientInfo;
16
+ //#endregion
17
+ export { CACHED_NODE_VERSION, createDefault, normalizeNodeVersion };
14
18
  //# sourceMappingURL=default.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/clientinfo/default.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAW,MAAM,cAAc,CAAC;AAqElD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKxD;AAID,eAAO,MAAM,mBAAmB,QAAwC,CAAC;AAEzE;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA8C1C"}
1
+ {"version":3,"file":"default.d.ts","names":[],"sources":["../../src/clientinfo/default.ts"],"mappings":";;;;;AAyEA;;iBAAgB,oBAAA,CAAqB,GAAA;AAAA,cASxB,mBAAA;;AAAb;;;;iBAOgB,aAAA,CAAA,GAAiB,UAAA"}
@@ -1,111 +1,166 @@
1
- import { ClientInfo, sanitize } from './clientinfo';
2
- import { MODULE_NAME, VERSION, getBase } from './base';
3
- import { agentProvider } from './agent';
4
- import { metaHarnessProvider } from './meta-harness';
1
+ import { ClientInfo, sanitize } from "./clientinfo.js";
2
+ import { agentProvider } from "./agent.js";
3
+ import { MODULE_NAME, VERSION, getBase } from "./base.js";
4
+ import { metaHarnessProvider } from "./meta-harness.js";
5
+
6
+ //#region src/clientinfo/default.ts
5
7
  const CICD_PROVIDERS = [
6
- {
7
- name: 'github',
8
- envVars: [{ name: 'GITHUB_ACTIONS', expectedValue: 'true' }],
9
- },
10
- {
11
- name: 'gitlab',
12
- envVars: [{ name: 'GITLAB_CI', expectedValue: 'true' }],
13
- },
14
- { name: 'jenkins', envVars: [{ name: 'JENKINS_URL', expectedValue: '' }] },
15
- {
16
- name: 'azure-devops',
17
- envVars: [{ name: 'TF_BUILD', expectedValue: 'True' }],
18
- },
19
- {
20
- name: 'circle',
21
- envVars: [{ name: 'CIRCLECI', expectedValue: 'true' }],
22
- },
23
- { name: 'travis', envVars: [{ name: 'TRAVIS', expectedValue: 'true' }] },
24
- {
25
- name: 'bitbucket',
26
- envVars: [{ name: 'BITBUCKET_BUILD_NUMBER', expectedValue: '' }],
27
- },
28
- {
29
- name: 'google-cloud-build',
30
- envVars: [
31
- { name: 'PROJECT_ID', expectedValue: '' },
32
- { name: 'BUILD_ID', expectedValue: '' },
33
- { name: 'PROJECT_NUMBER', expectedValue: '' },
34
- { name: 'LOCATION', expectedValue: '' },
35
- ],
36
- },
37
- {
38
- name: 'aws-code-build',
39
- envVars: [{ name: 'CODEBUILD_BUILD_ARN', expectedValue: '' }],
40
- },
41
- { name: 'tf-cloud', envVars: [{ name: 'TFC_RUN_ID', expectedValue: '' }] },
8
+ {
9
+ name: "github",
10
+ envVars: [{
11
+ name: "GITHUB_ACTIONS",
12
+ expectedValue: "true"
13
+ }]
14
+ },
15
+ {
16
+ name: "gitlab",
17
+ envVars: [{
18
+ name: "GITLAB_CI",
19
+ expectedValue: "true"
20
+ }]
21
+ },
22
+ {
23
+ name: "jenkins",
24
+ envVars: [{
25
+ name: "JENKINS_URL",
26
+ expectedValue: ""
27
+ }]
28
+ },
29
+ {
30
+ name: "azure-devops",
31
+ envVars: [{
32
+ name: "TF_BUILD",
33
+ expectedValue: "True"
34
+ }]
35
+ },
36
+ {
37
+ name: "circle",
38
+ envVars: [{
39
+ name: "CIRCLECI",
40
+ expectedValue: "true"
41
+ }]
42
+ },
43
+ {
44
+ name: "travis",
45
+ envVars: [{
46
+ name: "TRAVIS",
47
+ expectedValue: "true"
48
+ }]
49
+ },
50
+ {
51
+ name: "bitbucket",
52
+ envVars: [{
53
+ name: "BITBUCKET_BUILD_NUMBER",
54
+ expectedValue: ""
55
+ }]
56
+ },
57
+ {
58
+ name: "google-cloud-build",
59
+ envVars: [
60
+ {
61
+ name: "PROJECT_ID",
62
+ expectedValue: ""
63
+ },
64
+ {
65
+ name: "BUILD_ID",
66
+ expectedValue: ""
67
+ },
68
+ {
69
+ name: "PROJECT_NUMBER",
70
+ expectedValue: ""
71
+ },
72
+ {
73
+ name: "LOCATION",
74
+ expectedValue: ""
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ name: "aws-code-build",
80
+ envVars: [{
81
+ name: "CODEBUILD_BUILD_ARN",
82
+ expectedValue: ""
83
+ }]
84
+ },
85
+ {
86
+ name: "tf-cloud",
87
+ envVars: [{
88
+ name: "TFC_RUN_ID",
89
+ expectedValue: ""
90
+ }]
91
+ }
42
92
  ];
43
93
  function detectCicd() {
44
- for (const p of CICD_PROVIDERS) {
45
- const allMatch = p.envVars.every(ev => {
46
- const v = process.env[ev.name];
47
- return (v !== undefined && (ev.expectedValue === '' || v === ev.expectedValue));
48
- });
49
- if (allMatch) {
50
- return p.name;
51
- }
52
- }
53
- return '';
94
+ for (const p of CICD_PROVIDERS) if (p.envVars.every((ev) => {
95
+ const v = process.env[ev.name];
96
+ return v !== void 0 && (ev.expectedValue === "" || v === ev.expectedValue);
97
+ })) return p.name;
98
+ return "";
54
99
  }
55
100
  /**
56
- * Converts a Node.js version string (e.g., "v22.0.0") into a bare
57
- * semver string (e.g., "22.0.0").
58
- */
59
- export function normalizeNodeVersion(raw) {
60
- if (!raw.startsWith('v')) {
61
- return '0.0.0-dev';
62
- }
63
- return raw.slice(1);
101
+ * Converts a Node.js version string (e.g., "v22.0.0") into a bare
102
+ * semver string (e.g., "22.0.0").
103
+ */
104
+ function normalizeNodeVersion(raw) {
105
+ if (!raw.startsWith("v")) return "0.0.0-dev";
106
+ return raw.slice(1);
64
107
  }
65
- // Computed once at module load because process.version never changes
66
- // during a process lifetime.
67
- export const CACHED_NODE_VERSION = normalizeNodeVersion(process.version);
108
+ const CACHED_NODE_VERSION = normalizeNodeVersion(process.version);
68
109
  /**
69
- * Returns a {@link ClientInfo} populated with SDK metadata, runtime
70
- * information, segments registered via {@link addToDefault}, and
71
- * automatically detected environment properties.
72
- */
73
- export function createDefault() {
74
- const pairs = [
75
- { key: MODULE_NAME, value: VERSION },
76
- { key: 'node', value: CACHED_NODE_VERSION },
77
- { key: 'os', value: process.platform },
78
- ...getBase().segments,
79
- ];
80
- // DATABRICKS_SDK_UPSTREAM and DATABRICKS_SDK_UPSTREAM_VERSION are set
81
- // by tools built on top of this SDK (e.g. Terraform provider, Pulumi)
82
- // to identify themselves as the upstream product. Both must be present
83
- // for the upstream segment to be included.
84
- const upstream = process.env.DATABRICKS_SDK_UPSTREAM;
85
- if (upstream !== undefined) {
86
- const upstreamVersion = process.env.DATABRICKS_SDK_UPSTREAM_VERSION;
87
- if (upstreamVersion !== undefined) {
88
- pairs.push({ key: 'upstream', value: sanitize(upstream) }, { key: 'upstream-version', value: sanitize(upstreamVersion) });
89
- }
90
- }
91
- const cicd = detectCicd();
92
- if (cicd !== '') {
93
- pairs.push({ key: 'cicd', value: cicd });
94
- }
95
- const runtime = process.env.DATABRICKS_RUNTIME_VERSION;
96
- if (runtime !== undefined && runtime !== '') {
97
- pairs.push({ key: 'runtime', value: sanitize(runtime) });
98
- }
99
- const agent = agentProvider();
100
- if (agent !== '') {
101
- pairs.push({ key: 'agent', value: agent });
102
- }
103
- // The meta-harness dimension is independent of agent detection: omnigent
104
- // running Claude Code reports both agent/claude-code and meta-harness/omnigent.
105
- const metaHarness = metaHarnessProvider();
106
- if (metaHarness !== '') {
107
- pairs.push({ key: 'meta-harness', value: metaHarness });
108
- }
109
- return ClientInfo.EMPTY.with(...pairs);
110
+ * Returns a {@link ClientInfo} populated with SDK metadata, runtime
111
+ * information, segments registered via {@link addToDefault}, and
112
+ * automatically detected environment properties.
113
+ */
114
+ function createDefault() {
115
+ const pairs = [
116
+ {
117
+ key: MODULE_NAME,
118
+ value: VERSION
119
+ },
120
+ {
121
+ key: "node",
122
+ value: CACHED_NODE_VERSION
123
+ },
124
+ {
125
+ key: "os",
126
+ value: process.platform
127
+ },
128
+ ...getBase().segments
129
+ ];
130
+ const upstream = process.env.DATABRICKS_SDK_UPSTREAM;
131
+ if (upstream !== void 0) {
132
+ const upstreamVersion = process.env.DATABRICKS_SDK_UPSTREAM_VERSION;
133
+ if (upstreamVersion !== void 0) pairs.push({
134
+ key: "upstream",
135
+ value: sanitize(upstream)
136
+ }, {
137
+ key: "upstream-version",
138
+ value: sanitize(upstreamVersion)
139
+ });
140
+ }
141
+ const cicd = detectCicd();
142
+ if (cicd !== "") pairs.push({
143
+ key: "cicd",
144
+ value: cicd
145
+ });
146
+ const runtime = process.env.DATABRICKS_RUNTIME_VERSION;
147
+ if (runtime !== void 0 && runtime !== "") pairs.push({
148
+ key: "runtime",
149
+ value: sanitize(runtime)
150
+ });
151
+ const agent = agentProvider();
152
+ if (agent !== "") pairs.push({
153
+ key: "agent",
154
+ value: agent
155
+ });
156
+ const metaHarness = metaHarnessProvider();
157
+ if (metaHarness !== "") pairs.push({
158
+ key: "meta-harness",
159
+ value: metaHarness
160
+ });
161
+ return ClientInfo.EMPTY.with(...pairs);
110
162
  }
163
+
164
+ //#endregion
165
+ export { CACHED_NODE_VERSION, createDefault, normalizeNodeVersion };
111
166
  //# sourceMappingURL=default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../src/clientinfo/default.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default.js","names":[],"sources":["../../src/clientinfo/default.ts"],"sourcesContent":["import {ClientInfo, sanitize} from './clientinfo';\nimport {MODULE_NAME, VERSION, getBase} from './base';\nimport {agentProvider} from './agent';\nimport {metaHarnessProvider} from './meta-harness';\n\ninterface EnvCheck {\n readonly name: string;\n readonly expectedValue: string;\n}\n\ninterface CicdDef {\n readonly name: string;\n readonly envVars: readonly EnvCheck[];\n}\n\nconst CICD_PROVIDERS: readonly CicdDef[] = [\n {\n name: 'github',\n envVars: [{name: 'GITHUB_ACTIONS', expectedValue: 'true'}],\n },\n {\n name: 'gitlab',\n envVars: [{name: 'GITLAB_CI', expectedValue: 'true'}],\n },\n {name: 'jenkins', envVars: [{name: 'JENKINS_URL', expectedValue: ''}]},\n {\n name: 'azure-devops',\n envVars: [{name: 'TF_BUILD', expectedValue: 'True'}],\n },\n {\n name: 'circle',\n envVars: [{name: 'CIRCLECI', expectedValue: 'true'}],\n },\n {name: 'travis', envVars: [{name: 'TRAVIS', expectedValue: 'true'}]},\n {\n name: 'bitbucket',\n envVars: [{name: 'BITBUCKET_BUILD_NUMBER', expectedValue: ''}],\n },\n {\n name: 'google-cloud-build',\n envVars: [\n {name: 'PROJECT_ID', expectedValue: ''},\n {name: 'BUILD_ID', expectedValue: ''},\n {name: 'PROJECT_NUMBER', expectedValue: ''},\n {name: 'LOCATION', expectedValue: ''},\n ],\n },\n {\n name: 'aws-code-build',\n envVars: [{name: 'CODEBUILD_BUILD_ARN', expectedValue: ''}],\n },\n {name: 'tf-cloud', envVars: [{name: 'TFC_RUN_ID', expectedValue: ''}]},\n];\n\nfunction detectCicd(): string {\n for (const p of CICD_PROVIDERS) {\n const allMatch = p.envVars.every(ev => {\n const v = process.env[ev.name];\n return (\n v !== undefined && (ev.expectedValue === '' || v === ev.expectedValue)\n );\n });\n if (allMatch) {\n return p.name;\n }\n }\n return '';\n}\n\n/**\n * Converts a Node.js version string (e.g., \"v22.0.0\") into a bare\n * semver string (e.g., \"22.0.0\").\n */\nexport function normalizeNodeVersion(raw: string): string {\n if (!raw.startsWith('v')) {\n return '0.0.0-dev';\n }\n return raw.slice(1);\n}\n\n// Computed once at module load because process.version never changes\n// during a process lifetime.\nexport const CACHED_NODE_VERSION = normalizeNodeVersion(process.version);\n\n/**\n * Returns a {@link ClientInfo} populated with SDK metadata, runtime\n * information, segments registered via {@link addToDefault}, and\n * automatically detected environment properties.\n */\nexport function createDefault(): ClientInfo {\n const pairs: {key: string; value: string}[] = [\n {key: MODULE_NAME, value: VERSION},\n {key: 'node', value: CACHED_NODE_VERSION},\n {key: 'os', value: process.platform},\n ...getBase().segments,\n ];\n\n // DATABRICKS_SDK_UPSTREAM and DATABRICKS_SDK_UPSTREAM_VERSION are set\n // by tools built on top of this SDK (e.g. Terraform provider, Pulumi)\n // to identify themselves as the upstream product. Both must be present\n // for the upstream segment to be included.\n const upstream = process.env.DATABRICKS_SDK_UPSTREAM;\n if (upstream !== undefined) {\n const upstreamVersion = process.env.DATABRICKS_SDK_UPSTREAM_VERSION;\n if (upstreamVersion !== undefined) {\n pairs.push(\n {key: 'upstream', value: sanitize(upstream)},\n {key: 'upstream-version', value: sanitize(upstreamVersion)}\n );\n }\n }\n\n const cicd = detectCicd();\n if (cicd !== '') {\n pairs.push({key: 'cicd', value: cicd});\n }\n\n const runtime = process.env.DATABRICKS_RUNTIME_VERSION;\n if (runtime !== undefined && runtime !== '') {\n pairs.push({key: 'runtime', value: sanitize(runtime)});\n }\n\n const agent = agentProvider();\n if (agent !== '') {\n pairs.push({key: 'agent', value: agent});\n }\n\n // The meta-harness dimension is independent of agent detection: omnigent\n // running Claude Code reports both agent/claude-code and meta-harness/omnigent.\n const metaHarness = metaHarnessProvider();\n if (metaHarness !== '') {\n pairs.push({key: 'meta-harness', value: metaHarness});\n }\n\n return ClientInfo.EMPTY.with(...pairs);\n}\n"],"mappings":";;;;;;AAeA,MAAM,iBAAqC;CACzC;EACE,MAAM;EACN,SAAS,CAAC;GAAC,MAAM;GAAkB,eAAe;GAAO,CAAC;EAC3D;CACD;EACE,MAAM;EACN,SAAS,CAAC;GAAC,MAAM;GAAa,eAAe;GAAO,CAAC;EACtD;CACD;EAAC,MAAM;EAAW,SAAS,CAAC;GAAC,MAAM;GAAe,eAAe;GAAG,CAAC;EAAC;CACtE;EACE,MAAM;EACN,SAAS,CAAC;GAAC,MAAM;GAAY,eAAe;GAAO,CAAC;EACrD;CACD;EACE,MAAM;EACN,SAAS,CAAC;GAAC,MAAM;GAAY,eAAe;GAAO,CAAC;EACrD;CACD;EAAC,MAAM;EAAU,SAAS,CAAC;GAAC,MAAM;GAAU,eAAe;GAAO,CAAC;EAAC;CACpE;EACE,MAAM;EACN,SAAS,CAAC;GAAC,MAAM;GAA0B,eAAe;GAAG,CAAC;EAC/D;CACD;EACE,MAAM;EACN,SAAS;GACP;IAAC,MAAM;IAAc,eAAe;IAAG;GACvC;IAAC,MAAM;IAAY,eAAe;IAAG;GACrC;IAAC,MAAM;IAAkB,eAAe;IAAG;GAC3C;IAAC,MAAM;IAAY,eAAe;IAAG;GACtC;EACF;CACD;EACE,MAAM;EACN,SAAS,CAAC;GAAC,MAAM;GAAuB,eAAe;GAAG,CAAC;EAC5D;CACD;EAAC,MAAM;EAAY,SAAS,CAAC;GAAC,MAAM;GAAc,eAAe;GAAG,CAAC;EAAC;CACvE;AAED,SAAS,aAAqB;AAC5B,MAAK,MAAM,KAAK,eAOd,KANiB,EAAE,QAAQ,OAAM,OAAM;EACrC,MAAM,IAAI,QAAQ,IAAI,GAAG;AACzB,SACE,MAAM,WAAc,GAAG,kBAAkB,MAAM,MAAM,GAAG;GAE1D,CAEA,QAAO,EAAE;AAGb,QAAO;;;;;;AAOT,SAAgB,qBAAqB,KAAqB;AACxD,KAAI,CAAC,IAAI,WAAW,IAAI,CACtB,QAAO;AAET,QAAO,IAAI,MAAM,EAAE;;AAKrB,MAAa,sBAAsB,qBAAqB,QAAQ,QAAQ;;;;;;AAOxE,SAAgB,gBAA4B;CAC1C,MAAM,QAAwC;EAC5C;GAAC,KAAK;GAAa,OAAO;GAAQ;EAClC;GAAC,KAAK;GAAQ,OAAO;GAAoB;EACzC;GAAC,KAAK;GAAM,OAAO,QAAQ;GAAS;EACpC,GAAG,SAAS,CAAC;EACd;CAMD,MAAM,WAAW,QAAQ,IAAI;AAC7B,KAAI,aAAa,QAAW;EAC1B,MAAM,kBAAkB,QAAQ,IAAI;AACpC,MAAI,oBAAoB,OACtB,OAAM,KACJ;GAAC,KAAK;GAAY,OAAO,SAAS,SAAS;GAAC,EAC5C;GAAC,KAAK;GAAoB,OAAO,SAAS,gBAAgB;GAAC,CAC5D;;CAIL,MAAM,OAAO,YAAY;AACzB,KAAI,SAAS,GACX,OAAM,KAAK;EAAC,KAAK;EAAQ,OAAO;EAAK,CAAC;CAGxC,MAAM,UAAU,QAAQ,IAAI;AAC5B,KAAI,YAAY,UAAa,YAAY,GACvC,OAAM,KAAK;EAAC,KAAK;EAAW,OAAO,SAAS,QAAQ;EAAC,CAAC;CAGxD,MAAM,QAAQ,eAAe;AAC7B,KAAI,UAAU,GACZ,OAAM,KAAK;EAAC,KAAK;EAAS,OAAO;EAAM,CAAC;CAK1C,MAAM,cAAc,qBAAqB;AACzC,KAAI,gBAAgB,GAClB,OAAM,KAAK;EAAC,KAAK;EAAgB,OAAO;EAAY,CAAC;AAGvD,QAAO,WAAW,MAAM,KAAK,GAAG,MAAM"}