@dbx-tools/shared-core 0.9.131 → 0.9.133
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.
- package/README.md +84 -70
- package/index.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/src/brand-utils.d.ts +1 -1
- package/lib/src/brand-utils.js +2 -2
- package/package.json +1 -1
- package/src/brand-utils.ts +1 -1
package/README.md
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# @dbx-tools/shared-core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Use browser-safe utilities shared by `@dbx-tools/*` packages in browsers,
|
|
4
|
+
workers, Node, Bun, CLIs, and schema packages. The package includes logging,
|
|
5
|
+
options, networking, JSON, hashing, predicates, and other dependency-light
|
|
6
|
+
foundations.
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
schema packages. Modules are exported as namespaces so call sites stay explicit:
|
|
8
|
+
Import the namespaces that your code uses:
|
|
7
9
|
|
|
8
10
|
```ts
|
|
9
11
|
import {
|
|
@@ -11,6 +13,8 @@ import {
|
|
|
11
13
|
brandUtils,
|
|
12
14
|
environmentUtils,
|
|
13
15
|
errorUtils,
|
|
16
|
+
execution,
|
|
17
|
+
functionUtils,
|
|
14
18
|
hash,
|
|
15
19
|
http,
|
|
16
20
|
json,
|
|
@@ -18,20 +22,23 @@ import {
|
|
|
18
22
|
net,
|
|
19
23
|
object,
|
|
20
24
|
options,
|
|
25
|
+
pattern,
|
|
26
|
+
predicate,
|
|
21
27
|
stringUtils,
|
|
28
|
+
token,
|
|
22
29
|
} from "@dbx-tools/shared-core";
|
|
23
30
|
```
|
|
24
31
|
|
|
25
|
-
Node-only helpers live in [
|
|
26
|
-
Databricks SDK helpers live in [
|
|
32
|
+
Node-only helpers live in [@dbx-tools/core](../../node/core). AppKit and
|
|
33
|
+
Databricks SDK helpers live in [@dbx-tools/appkit](../../node/appkit).
|
|
27
34
|
|
|
28
|
-
|
|
35
|
+
Use these utilities for:
|
|
29
36
|
|
|
30
37
|
- Abort-aware async utilities for polling, sleeping, and connecting cancellation
|
|
31
38
|
across web and Node runtimes.
|
|
32
39
|
- Error normalization for unknown thrown values, nested causes, and HTTP-ish
|
|
33
40
|
status/message extraction.
|
|
34
|
-
- Deterministic non-cryptographic hashes and short
|
|
41
|
+
- Deterministic non-cryptographic hashes and short IDs for cache keys, slugs,
|
|
35
42
|
and generated names.
|
|
36
43
|
- Non-throwing JSON parsing for untrusted input, with record narrowing so parsed
|
|
37
44
|
data is not cast blindly.
|
|
@@ -41,12 +48,19 @@ Key features:
|
|
|
41
48
|
logging helpers that avoid Node-only dependencies.
|
|
42
49
|
- Namespace exports that make utility call sites explicit without creating a
|
|
43
50
|
grab-bag default import.
|
|
44
|
-
- A Zod-backed `BrandContext` contract with dbx
|
|
51
|
+
- A Zod-backed `BrandContext` contract with dbx-tools defaults, JSON Schema
|
|
45
52
|
output, and prompt serialization for browser, library, and LLM consumers.
|
|
46
53
|
- Shared Zod option schemas for Databricks environment names, normalized URLs,
|
|
47
54
|
TCP ports, listener addresses, and schema-driven parse/serialization.
|
|
48
55
|
|
|
49
|
-
##
|
|
56
|
+
## Runtime boundary
|
|
57
|
+
|
|
58
|
+
This package doesn't read files, discover Databricks credentials, or call
|
|
59
|
+
workspace APIs. Node-only configuration and filesystem behavior lives in
|
|
60
|
+
[@dbx-tools/core](../../node/core). AppKit integration lives in
|
|
61
|
+
[@dbx-tools/appkit](../../node/appkit).
|
|
62
|
+
|
|
63
|
+
## Brand context
|
|
50
64
|
|
|
51
65
|
```ts
|
|
52
66
|
import { brandUtils } from "@dbx-tools/shared-core";
|
|
@@ -58,11 +72,11 @@ const instructions = brandUtils.brandContextPrompt(context);
|
|
|
58
72
|
|
|
59
73
|
`BrandContextSchema` validates identity, theme-aware assets, colors,
|
|
60
74
|
typography, links, audience, and voice. Every field has a dbx tools default, so
|
|
61
|
-
an empty object is a complete context. Use [
|
|
75
|
+
an empty object is a complete context. Use [@dbx-tools/core](../../node/core)
|
|
62
76
|
to discover and read YAML/JSON files, and
|
|
63
|
-
[
|
|
77
|
+
[@dbx-tools/ui/branding](../../ui/appkit) to apply the same context to a UI.
|
|
64
78
|
|
|
65
|
-
##
|
|
79
|
+
## Control asynchronous work
|
|
66
80
|
|
|
67
81
|
```ts
|
|
68
82
|
for await (const status of asyncUtils.poll(fetchStatus, {
|
|
@@ -80,7 +94,7 @@ await asyncUtils.sleep(500, abortSignal);
|
|
|
80
94
|
`asyncUtils.tieAbortSignal()` and `asyncUtils.sleep()` let route handlers connect caller
|
|
81
95
|
cancellation to background work.
|
|
82
96
|
|
|
83
|
-
##
|
|
97
|
+
## Handle errors
|
|
84
98
|
|
|
85
99
|
```ts
|
|
86
100
|
try {
|
|
@@ -96,7 +110,7 @@ try {
|
|
|
96
110
|
`errorUtils.errorNodes()` normalize unknown thrown values. `errorUtils.errorContext()`
|
|
97
111
|
extracts HTTP-ish status/message detail from nested errors.
|
|
98
112
|
|
|
99
|
-
##
|
|
113
|
+
## Create hashes and IDs
|
|
100
114
|
|
|
101
115
|
```ts
|
|
102
116
|
const id = hash.id(8);
|
|
@@ -107,7 +121,7 @@ const suffix = hash.fnvHashWithOptions({ length: 6 }, longName);
|
|
|
107
121
|
These hashes are deterministic and non-cryptographic. Use them for cache keys,
|
|
108
122
|
slug suffixes, and trace-stable identifiers, not secrets or signatures.
|
|
109
123
|
|
|
110
|
-
##
|
|
124
|
+
## Parse untrusted JSON
|
|
111
125
|
|
|
112
126
|
```ts
|
|
113
127
|
const body = json.parseRecord(await readRequestText(req)) ?? {};
|
|
@@ -119,15 +133,15 @@ const settings = json.parse<Settings>(process.env.SETTINGS, DEFAULT_SETTINGS);
|
|
|
119
133
|
|
|
120
134
|
`json.parse()` returns the fallback (or `undefined`) instead of throwing, so a
|
|
121
135
|
malformed request body, env var, config file, subprocess stdout, or third-party
|
|
122
|
-
response does not need its own `try`/`catch`. `json.parseRecord()`
|
|
136
|
+
response does not need its own `try`/`catch`. `json.parseRecord()` also
|
|
123
137
|
narrows to `Record<string, unknown>`, which a bare `JSON.parse(...) as Record<...>`
|
|
124
138
|
does not: it rejects a parsed `null`, array, or scalar rather than letting it
|
|
125
139
|
through as an object.
|
|
126
140
|
|
|
127
141
|
Reach for `JSON.parse` directly only when a throw is the correct outcome, such as
|
|
128
|
-
reading a
|
|
142
|
+
reading a trusted generated file.
|
|
129
143
|
|
|
130
|
-
##
|
|
144
|
+
## Normalize strings and descriptions
|
|
131
145
|
|
|
132
146
|
```ts
|
|
133
147
|
const slug = stringUtils.toSlug("My Cool Project!");
|
|
@@ -144,7 +158,7 @@ const description = stringUtils.toDescription([
|
|
|
144
158
|
```
|
|
145
159
|
|
|
146
160
|
`stringUtils.tokenize()`, `toSlug()`, and `toIdentifier()` keep package names, tool
|
|
147
|
-
|
|
161
|
+
IDs, schema IDs, and generated labels consistent. `toDescription()` turns nested
|
|
148
162
|
description data into prompt/tool text without hand-concatenating paragraphs.
|
|
149
163
|
`dedent()` removes common indentation and surrounding blank lines from multiline
|
|
150
164
|
code or configuration templates. Its `trimStart` and `trimEnd` options preserve
|
|
@@ -152,7 +166,7 @@ boundary blank lines when generated output requires them, while `trimLineEnd:
|
|
|
152
166
|
false` preserves trailing spaces and tabs. `dedentLines()` returns the same
|
|
153
167
|
normalization as a line array for file generators.
|
|
154
168
|
|
|
155
|
-
|
|
169
|
+
Use the following helpers for common labels and configuration values:
|
|
156
170
|
|
|
157
171
|
```ts
|
|
158
172
|
const label = stringUtils.toLabel("web_search"); // "Web Search"
|
|
@@ -167,7 +181,7 @@ field off parsed JSON. `parseList()` normalizes a config value that may arrive a
|
|
|
167
181
|
an array or as one comma/whitespace-separated env string, de-duplicating as it
|
|
168
182
|
goes.
|
|
169
183
|
|
|
170
|
-
##
|
|
184
|
+
## Work with objects and predicates
|
|
171
185
|
|
|
172
186
|
```ts
|
|
173
187
|
if (object.isRecord(value)) {
|
|
@@ -185,7 +199,7 @@ const isRunnable = predicate
|
|
|
185
199
|
short-circuits. `predicate.create()` returns composable predicates with `and`,
|
|
186
200
|
`or`, and `negate`, used heavily by the projen engine.
|
|
187
201
|
|
|
188
|
-
##
|
|
202
|
+
## Validate serializable values and stable identities
|
|
189
203
|
|
|
190
204
|
```ts
|
|
191
205
|
if (object.isSerializableValue(requestBody)) {
|
|
@@ -207,11 +221,11 @@ it. Object key order does not affect the result, but types and structure do:
|
|
|
207
221
|
`1` and `"1"` differ, and so do `["a", "bc"]` and `["ab", "c"]`. It throws on a
|
|
208
222
|
cycle, a non-finite number, or a function/symbol rather than returning an
|
|
209
223
|
identity two callers could disagree about. `@dbx-tools/postgres` derives both its
|
|
210
|
-
advisory-lock
|
|
211
|
-
`hash.fnvHash()` instead when a short collision-tolerant digest is enough
|
|
224
|
+
advisory-lock IDs and its notification channel names through it. Use
|
|
225
|
+
`hash.fnvHash()` instead when a short collision-tolerant digest is enough. Its
|
|
212
226
|
canonicalizer is looser and folds every `Date` onto one token.
|
|
213
227
|
|
|
214
|
-
##
|
|
228
|
+
## Parse numbers, dates, and durations
|
|
215
229
|
|
|
216
230
|
```ts
|
|
217
231
|
object.toNumber("1,000"); // 1000
|
|
@@ -233,8 +247,8 @@ object.toDuration("-7d"); // -604_800_000
|
|
|
233
247
|
object.toDuration("2026-08-02"); // ms from now until that instant
|
|
234
248
|
```
|
|
235
249
|
|
|
236
|
-
|
|
237
|
-
files
|
|
250
|
+
These helpers parse values entered in environment variables, CLI flags, and
|
|
251
|
+
configuration files. Whitespace between the amount and unit is
|
|
238
252
|
optional, units are case-insensitive, and plurals and abbreviations are
|
|
239
253
|
equivalent (`2ms` === `2 milliseconds`, `1h` === `1 hr` === `1 Hour`). Signs make
|
|
240
254
|
a duration an OFFSET, which is what lets `toDate` read `-30d` / `12 hours ago` /
|
|
@@ -244,9 +258,9 @@ a duration an OFFSET, which is what lets `toDate` read `-30d` / `12 hours ago` /
|
|
|
244
258
|
over `Number(value)` is that `Number` invents values: `""`, `null`, `[]`, and a
|
|
245
259
|
whitespace string all become `0`, so every caller has to re-check the result.
|
|
246
260
|
`toNumber` returns `undefined` instead, and accepts the spellings a person
|
|
247
|
-
actually types
|
|
248
|
-
exponent, a trailing percent. `ToNumberOptions` disables the `separators` and
|
|
249
|
-
`percent` leniencies for a string whose other characters carry meaning
|
|
261
|
+
actually types, including digit-group separators, a bare fraction, a trailing point, an
|
|
262
|
+
exponent, and a trailing percent. `ToNumberOptions` disables the `separators` and
|
|
263
|
+
`percent` leniencies for a string whose other characters carry meaning. A SQL
|
|
250
264
|
cell uses that so `"1,000"` in a text column stays the string the query returned.
|
|
251
265
|
|
|
252
266
|
`toDate` exists rather than `new Date(value)` because a bare epoch usually
|
|
@@ -255,17 +269,17 @@ arrives as a STRING (`date +%s`, a JSON field, a copied log line) and
|
|
|
255
269
|
Numeric input is therefore routed to the epoch path, with values under `1e11`
|
|
256
270
|
read as seconds and the rest as milliseconds. An unknown unit fails the whole
|
|
257
271
|
duration parse instead of being skipped, so `1 fortnight` is `undefined` rather
|
|
258
|
-
than `1`. Neither function throws
|
|
272
|
+
than `1`. Neither function throws. Like `toBoolean`, they return `undefined`, so
|
|
259
273
|
the caller decides whether a bad value is fatal, a warning, or a fallback
|
|
260
274
|
(`@dbx-tools/tunnel`'s `TUNNEL_AUTH_SESSION_CUTOFF` warns and carries on).
|
|
261
275
|
|
|
262
|
-
### Dates
|
|
276
|
+
### Dates and durations are inverses
|
|
263
277
|
|
|
264
278
|
Each function falls back to the other, so one field accepts both readings: a
|
|
265
279
|
duration reaching `toDate` resolves against now, and a date reaching
|
|
266
280
|
`toDuration` becomes the signed offset from now (`date - now`, so a past instant
|
|
267
|
-
is negative). Each tries its own reading first
|
|
268
|
-
before the duration fallback
|
|
281
|
+
is negative). Each tries its own reading first. `toDate` runs `Date.parse`
|
|
282
|
+
before the duration fallback and recurses with the other's parser off, so a
|
|
269
283
|
value cannot bounce between them.
|
|
270
284
|
|
|
271
285
|
```ts
|
|
@@ -279,7 +293,7 @@ the current clock makes the same input mean something different on every call. A
|
|
|
279
293
|
timeout or a poll interval must not accept a date, because it would yield a
|
|
280
294
|
plausible but wrong number that also drifts.
|
|
281
295
|
|
|
282
|
-
##
|
|
296
|
+
## Transform iterables
|
|
283
297
|
|
|
284
298
|
```ts
|
|
285
299
|
const names = object
|
|
@@ -299,7 +313,7 @@ The iterable helpers are lazy and work well for filesystem scans, package lists,
|
|
|
299
313
|
and one-pass generated data. Use `sequence(..., { cache: true })` when a source
|
|
300
314
|
must be re-read.
|
|
301
315
|
|
|
302
|
-
## HTTP
|
|
316
|
+
## Read HTTP headers and cookies
|
|
303
317
|
|
|
304
318
|
```ts
|
|
305
319
|
const cookies = http.parseCookies(req);
|
|
@@ -314,14 +328,14 @@ http.forEachHeaderValue(req, "authorization", (value) => {
|
|
|
314
328
|
records, and plain `{ headers }` objects. `http.createFetchError()` turns a
|
|
315
329
|
failed `Response` into an error with response text attached.
|
|
316
330
|
|
|
317
|
-
##
|
|
331
|
+
## Run intercepted execution
|
|
318
332
|
|
|
319
333
|
`execution.directExecutor()` gives plugin-backed tools a no-plugin fallback with
|
|
320
334
|
the same success/failure shape as AppKit's executor. `execution.run()` merges the
|
|
321
335
|
plugin timeout signal with the caller's cancellation signal and centralizes
|
|
322
336
|
result unwrapping without imposing an AppKit dependency on shared code.
|
|
323
337
|
|
|
324
|
-
##
|
|
338
|
+
## Parse network strings, email addresses, and CIDR blocks
|
|
325
339
|
|
|
326
340
|
```ts
|
|
327
341
|
const url = net.urlBuilder("example.com")?.withPathAppend("api", "2.0");
|
|
@@ -334,10 +348,10 @@ const internal = cidr ? net.ipInCidr("10.1.2.3", cidr) : false;
|
|
|
334
348
|
`urlBuilder(...).pathMatches()` compares path prefixes on segment boundaries.
|
|
335
349
|
IP/CIDR helpers parse IPv4 and IPv6 into a shared bigint comparison model.
|
|
336
350
|
|
|
337
|
-
##
|
|
351
|
+
## Compile allowlist patterns
|
|
338
352
|
|
|
339
353
|
```ts
|
|
340
|
-
// One matcher from a config array
|
|
354
|
+
// One matcher from a config array or a delimited environment string.
|
|
341
355
|
const forwardable = pattern.toPatternMatcher(["x-mastra-*", "/^x-trace-/", "x-tenant"]);
|
|
342
356
|
|
|
343
357
|
forwardable("x-mastra-model"); // true (glob)
|
|
@@ -346,25 +360,25 @@ forwardable("x-tenant"); // true (literal, whole-string)
|
|
|
346
360
|
forwardable("x-forwarded-user"); // false
|
|
347
361
|
```
|
|
348
362
|
|
|
349
|
-
|
|
363
|
+
Configurable allowlists accept the same three shapes, so the
|
|
350
364
|
compilation lives here once: a `/regex/` literal (with optional flags), a
|
|
351
365
|
shell-style glob (`*`, `?`, anchored at both ends, all other characters escaped),
|
|
352
|
-
or a literal compared whole
|
|
353
|
-
|
|
354
|
-
out.
|
|
366
|
+
or a literal compared as a whole string. Matching is case-insensitive by
|
|
367
|
+
default, which suits HTTP header names and email addresses. Set `caseSensitive`
|
|
368
|
+
to opt out.
|
|
355
369
|
|
|
356
370
|
An invalid regex is skipped with a warning instead of throwing, so one bad
|
|
357
371
|
config entry cannot stop a process from starting. No usable patterns yields a
|
|
358
|
-
matcher that always returns `false
|
|
372
|
+
matcher that always returns `false`. A caller that reads "no patterns" as "permit
|
|
359
373
|
everything" must say so itself. The result is a `predicate`, so it composes with
|
|
360
374
|
`.and()` / `.or()` / `.negate()`.
|
|
361
375
|
|
|
362
|
-
|
|
376
|
+
Use [@dbx-tools/path](../../node/path)'s `toPathMatcher` instead when
|
|
363
377
|
matching a filesystem path or URL path, where `/` is a segment boundary and `**`
|
|
364
|
-
is meaningful
|
|
378
|
+
is meaningful. That matcher uses `minimatch`. This module remains
|
|
365
379
|
dependency-free so it stays usable in a browser bundle.
|
|
366
380
|
|
|
367
|
-
##
|
|
381
|
+
## Read token claims
|
|
368
382
|
|
|
369
383
|
```ts
|
|
370
384
|
const scopes = token.getAccessTokenScopes(req, "x-forwarded-access-token");
|
|
@@ -375,7 +389,7 @@ Token helpers decode JWT payloads without validating signatures. Use them for
|
|
|
375
389
|
request-scoped authorization hints after the platform has already authenticated
|
|
376
390
|
the request.
|
|
377
391
|
|
|
378
|
-
##
|
|
392
|
+
## Memoize functions
|
|
379
393
|
|
|
380
394
|
```ts
|
|
381
395
|
const getRanges = functionUtils.memoize(fetchRanges, {
|
|
@@ -385,13 +399,13 @@ const getRanges = functionUtils.memoize(fetchRanges, {
|
|
|
385
399
|
|
|
386
400
|
`functionUtils.memoize()` caches sync or async factories, evicts rejected
|
|
387
401
|
promises, and supports TTL-based refresh. It is useful for public metadata feeds,
|
|
388
|
-
SDK
|
|
402
|
+
SDK catalogs, and expensive computed constants.
|
|
389
403
|
|
|
390
404
|
Serializing whole callbacks rather than caching one value is a Node concern
|
|
391
405
|
(it needs `node:worker_threads`), so it lives in
|
|
392
|
-
[
|
|
406
|
+
[@dbx-tools/core](../../node/core)'s `processLock` instead.
|
|
393
407
|
|
|
394
|
-
##
|
|
408
|
+
## Write logs
|
|
395
409
|
|
|
396
410
|
```ts
|
|
397
411
|
const logger = log.logger("mastra/genie");
|
|
@@ -407,30 +421,30 @@ formatted process streams on server runtimes: debug/info use stdout and
|
|
|
407
421
|
warn/error use stderr. It honors `LOG_LEVEL` per call, so debug statements can
|
|
408
422
|
stay in production code without paying formatting cost when disabled.
|
|
409
423
|
|
|
410
|
-
##
|
|
424
|
+
## Package exports
|
|
411
425
|
|
|
412
|
-
- `asyncUtils
|
|
413
|
-
- `errorUtils
|
|
414
|
-
- `hash
|
|
415
|
-
- `json
|
|
416
|
-
- `stringUtils
|
|
426
|
+
- `asyncUtils`: polling, sleep, and abort-signal wiring.
|
|
427
|
+
- `errorUtils`: unknown-error normalization and HTTP-ish error context.
|
|
428
|
+
- `hash`: IDs, FNV hashes, and base32 encoding.
|
|
429
|
+
- `json`: non-throwing `parse()` and record-narrowing `parseRecord()`.
|
|
430
|
+
- `stringUtils`: tokenization, slugs, identifiers, human labels, string coercion,
|
|
417
431
|
config lists, multiline string/line dedenting, descriptions, pluralization,
|
|
418
432
|
and HTML escaping.
|
|
419
|
-
- `object
|
|
433
|
+
- `object`: record checks, number/boolean/date/duration coercion, present-only
|
|
420
434
|
field spreading, deep equality, JSON-round-trip guards
|
|
421
435
|
(`isSerializableValue`), canonical identity keys (`toStableKey`), shape types,
|
|
422
436
|
and lazy sequence transforms + collection helpers.
|
|
423
|
-
- `predicate
|
|
424
|
-
- `pattern
|
|
437
|
+
- `predicate`: composable boolean/type predicates.
|
|
438
|
+
- `pattern`: literal, glob, and `/regex/` allowlist matching compiled to a
|
|
425
439
|
predicate.
|
|
426
|
-
- `http
|
|
427
|
-
- `execution
|
|
428
|
-
- `net
|
|
429
|
-
- `options
|
|
440
|
+
- `http`: header iteration, cookie parsing, and fetch error creation.
|
|
441
|
+
- `execution`: direct executor fallback, cancellation merging, and result unwrapping.
|
|
442
|
+
- `net`: URL building, email parsing, path matching, and IP/CIDR helpers.
|
|
443
|
+
- `options`: Databricks environment/config schemas, ports, listener addresses,
|
|
430
444
|
URL normalization, nullable map parsing, and flag/env JSON serialization.
|
|
431
|
-
- `token
|
|
432
|
-
- `functionUtils
|
|
433
|
-
- `log
|
|
434
|
-
- `brandUtils
|
|
435
|
-
- `environmentUtils
|
|
445
|
+
- `token`: JWT payload and scope readers.
|
|
446
|
+
- `functionUtils`: memoization.
|
|
447
|
+
- `log`: tagged leveled logging.
|
|
448
|
+
- `brandUtils`: Zod schema, defaults, JSON Schema, and LLM prompt serialization.
|
|
449
|
+
- `environmentUtils`: Databricks App runtime detection from App env vars or the
|
|
436
450
|
Apps container source tree.
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.133";
|
|
7
7
|
export * as asyncUtils from "./src/async-utils.ts";
|
|
8
8
|
export * as bindings from "./src/bindings.ts";
|
|
9
9
|
export * as brandUtils from "./src/brand-utils.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.133";
|
|
3
3
|
export * as asyncUtils from "./src/async-utils.ts";
|
|
4
4
|
export * as bindings from "./src/bindings.ts";
|
|
5
5
|
export * as brandUtils from "./src/brand-utils.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-core";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.133";
|
|
6
6
|
export * as asyncUtils from "./src/async-utils.js";
|
|
7
7
|
export * as bindings from "./src/bindings.js";
|
|
8
8
|
export * as brandUtils from "./src/brand-utils.js";
|
|
@@ -26,4 +26,4 @@ export { DATABRICKS_APP_SOURCE_ROOT } from "./src/environment-utils.js";
|
|
|
26
26
|
export { MAX_TCP_PORT } from "./src/net.js";
|
|
27
27
|
export { DatabricksEnvironmentNamesSchema, databricksEnvironmentNames, PostgresEnvironmentNamesSchema, postgresEnvironmentNames, postgresRoleSchema, PostgresOptionsSchema, PostgresConfigOptionsSchema, tcpPortSchema, tcpPortOrZeroSchema, normalizedUrlSchema, DatabricksOptionsSchema, LakebaseOptionsSchema, TcpListenAddressSchema, UnixListenAddressSchema } from "./src/options.js";
|
|
28
28
|
export { ACCESS_TOKEN_HEADER, USER_ID_HEADER, USER_EMAIL_HEADER } from "./src/token.js";
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx3QkFBd0IsQ0FBQztBQUMzRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEtBQUssVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEtBQUssVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLGFBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssR0FBRyxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxPQUFPLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxXQUFXLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxLQUFLLEtBQUssTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvSixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU14RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzVDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUs1WCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5leHBvcnQgY29uc3QgUEFDS0FHRV9WRVJTSU9OID0gXCIwLjkuMTMzXCI7XG5leHBvcnQgKiBhcyBhc3luY1V0aWxzIGZyb20gXCIuL3NyYy9hc3luYy11dGlscy50c1wiO1xuZXhwb3J0ICogYXMgYmluZGluZ3MgZnJvbSBcIi4vc3JjL2JpbmRpbmdzLnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZFV0aWxzIGZyb20gXCIuL3NyYy9icmFuZC11dGlscy50c1wiO1xuZXhwb3J0ICogYXMgZW52aXJvbm1lbnRVdGlscyBmcm9tIFwiLi9zcmMvZW52aXJvbm1lbnQtdXRpbHMudHNcIjtcbmV4cG9ydCAqIGFzIGVycm9yVXRpbHMgZnJvbSBcIi4vc3JjL2Vycm9yLXV0aWxzLnRzXCI7XG5leHBvcnQgKiBhcyBleGVjdXRpb24gZnJvbSBcIi4vc3JjL2V4ZWN1dGlvbi50c1wiO1xuZXhwb3J0ICogYXMgZnVuY3Rpb25VdGlscyBmcm9tIFwiLi9zcmMvZnVuY3Rpb24tdXRpbHMudHNcIjtcbmV4cG9ydCAqIGFzIGhhc2ggZnJvbSBcIi4vc3JjL2hhc2gudHNcIjtcbmV4cG9ydCAqIGFzIGh0dHAgZnJvbSBcIi4vc3JjL2h0dHAudHNcIjtcbmV4cG9ydCAqIGFzIGpzb24gZnJvbSBcIi4vc3JjL2pzb24udHNcIjtcbmV4cG9ydCAqIGFzIGxvZyBmcm9tIFwiLi9zcmMvbG9nLnRzXCI7XG5leHBvcnQgKiBhcyBuZXQgZnJvbSBcIi4vc3JjL25ldC50c1wiO1xuZXhwb3J0ICogYXMgb2JqZWN0IGZyb20gXCIuL3NyYy9vYmplY3QudHNcIjtcbmV4cG9ydCAqIGFzIG9wdGlvbnMgZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIHBhdHRlcm4gZnJvbSBcIi4vc3JjL3BhdHRlcm4udHNcIjtcbmV4cG9ydCAqIGFzIHByZWRpY2F0ZSBmcm9tIFwiLi9zcmMvcHJlZGljYXRlLnRzXCI7XG5leHBvcnQgKiBhcyBzdHJpbmdVdGlscyBmcm9tIFwiLi9zcmMvc3RyaW5nLXV0aWxzLnRzXCI7XG5leHBvcnQgKiBhcyB0b2tlbiBmcm9tIFwiLi9zcmMvdG9rZW4udHNcIjtcbmV4cG9ydCB0eXBlIHsgQ29uY3VycmVudEVycm9yTW9kZSwgTWFwQ29uY3VycmVudE9wdGlvbnMsIFBvbGxDb250ZXh0LCBQb2xsUHJvZHVjZXIsIFBvbGxPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2FzeW5jLXV0aWxzLnRzXCI7XG5leHBvcnQgeyBERUZBVUxUX0JSQU5EX0FTU0VUUywgQnJhbmRBc3NldFNldFNjaGVtYSwgQnJhbmRDb2xvcnNTY2hlbWEsIEJyYW5kVm9pY2VTY2hlbWEsIEJyYW5kQ29udGV4dFNjaGVtYSwgZGVmYXVsdEJyYW5kQ29udGV4dCB9IGZyb20gXCIuL3NyYy9icmFuZC11dGlscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBCcmFuZENvbnRleHQsIEJyYW5kQ29udGV4dElucHV0LCBCcmFuZEFzc2V0U2V0IH0gZnJvbSBcIi4vc3JjL2JyYW5kLXV0aWxzLnRzXCI7XG5leHBvcnQgeyBEQVRBQlJJQ0tTX0FQUF9TT1VSQ0VfUk9PVCB9IGZyb20gXCIuL3NyYy9lbnZpcm9ubWVudC11dGlscy50c1wiO1xuZXhwb3J0IHR5cGUgeyBFcnJvckNvbnRleHQgfSBmcm9tIFwiLi9zcmMvZXJyb3ItdXRpbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgRXhlY3V0aW9uUmVzdWx0LCBFeGVjdXRvciwgRXhlY3V0aW9uRmFpbHVyZSwgUnVuT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9leGVjdXRpb24udHNcIjtcbmV4cG9ydCB0eXBlIHsgTWVtb2l6ZU9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvZnVuY3Rpb24tdXRpbHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgSGVhZGVyTGlrZSB9IGZyb20gXCIuL3NyYy9odHRwLnRzXCI7XG5leHBvcnQgdHlwZSB7IExvZ0xldmVsLCBMb2dnZXIgfSBmcm9tIFwiLi9zcmMvbG9nLnRzXCI7XG5leHBvcnQgeyBNQVhfVENQX1BPUlQgfSBmcm9tIFwiLi9zcmMvbmV0LnRzXCI7XG5leHBvcnQgdHlwZSB7IFVybExpa2UsIElwVmVyc2lvbiwgUGFyc2VkSXAsIENpZHIsIFVybEJ1aWxkZXIsIFBhcnNlRW1haWxzT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9uZXQudHNcIjtcbmV4cG9ydCB0eXBlIHsgU2VxdWVuY2UsIENvbnRhaW5lciwgQ29sbGVjdGlvbiwgT25lT3JNYW55LCBOYW1lTGlrZSwgTm9uRnVuY3Rpb25LZXlzLCBTZXJpYWxpemFibGVQcmltaXRpdmUsIFNlcmlhbGl6YWJsZVZhbHVlLCBUb051bWJlck9wdGlvbnMsIFRvRGF0ZU9wdGlvbnMsIFRvRHVyYXRpb25PcHRpb25zLCBEZWVwRXF1YWxDb21wYXJhdG9yIH0gZnJvbSBcIi4vc3JjL29iamVjdC50c1wiO1xuZXhwb3J0IHsgRGF0YWJyaWNrc0Vudmlyb25tZW50TmFtZXNTY2hlbWEsIGRhdGFicmlja3NFbnZpcm9ubWVudE5hbWVzLCBQb3N0Z3Jlc0Vudmlyb25tZW50TmFtZXNTY2hlbWEsIHBvc3RncmVzRW52aXJvbm1lbnROYW1lcywgcG9zdGdyZXNSb2xlU2NoZW1hLCBQb3N0Z3Jlc09wdGlvbnNTY2hlbWEsIFBvc3RncmVzQ29uZmlnT3B0aW9uc1NjaGVtYSwgdGNwUG9ydFNjaGVtYSwgdGNwUG9ydE9yWmVyb1NjaGVtYSwgbm9ybWFsaXplZFVybFNjaGVtYSwgRGF0YWJyaWNrc09wdGlvbnNTY2hlbWEsIExha2ViYXNlT3B0aW9uc1NjaGVtYSwgVGNwTGlzdGVuQWRkcmVzc1NjaGVtYSwgVW5peExpc3RlbkFkZHJlc3NTY2hlbWEgfSBmcm9tIFwiLi9zcmMvb3B0aW9ucy50c1wiO1xuZXhwb3J0IHR5cGUgeyBEYXRhYnJpY2tzRW52aXJvbm1lbnROYW1lcywgUG9zdGdyZXNFbnZpcm9ubWVudE5hbWVzLCBQb3N0Z3Jlc09wdGlvbnMsIERhdGFicmlja3NPcHRpb25zLCBPcHRpb25TZXJpYWxpemF0aW9uRm9ybWF0LCBMYWtlYmFzZU9wdGlvbnMsIE9wdGlvblZhbHVlTWFwLCBMaXN0ZW5TY2hlbWUsIFRjcExpc3RlbkFkZHJlc3MsIFVuaXhMaXN0ZW5BZGRyZXNzLCBMaXN0ZW5BZGRyZXNzLCBMaXN0ZW5BZGRyZXNzT3B0aW9ucywgTGlzdGVuQWRkcmVzc0lucHV0IH0gZnJvbSBcIi4vc3JjL29wdGlvbnMudHNcIjtcbmV4cG9ydCB0eXBlIHsgUGF0dGVybk9wdGlvbnMgfSBmcm9tIFwiLi9zcmMvcGF0dGVybi50c1wiO1xuZXhwb3J0IHR5cGUgeyBQcmVkaWNhdGVGdW5jdGlvbiwgVHlwZVByZWRpY2F0ZUZ1bmN0aW9uLCBQcmVkaWNhdGVJbnB1dCwgUHJlZGljYXRlIH0gZnJvbSBcIi4vc3JjL3ByZWRpY2F0ZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBUb2tlbml6ZU9wdGlvbnMsIEtleU9wdGlvbnMsIElkZW50aWZpZXJPcHRpb25zLCBEZWRlbnRPcHRpb25zLCBEZXNjcmlwdGlvbiB9IGZyb20gXCIuL3NyYy9zdHJpbmctdXRpbHMudHNcIjtcbmV4cG9ydCB7IEFDQ0VTU19UT0tFTl9IRUFERVIsIFVTRVJfSURfSEVBREVSLCBVU0VSX0VNQUlMX0hFQURFUiB9IGZyb20gXCIuL3NyYy90b2tlbi50c1wiO1xuIl19
|
package/lib/src/brand-utils.d.ts
CHANGED
|
@@ -86,7 +86,7 @@ export declare const BrandContextSchema: z.ZodObject<{
|
|
|
86
86
|
links: z.ZodPrefault<z.ZodObject<{
|
|
87
87
|
website: z.ZodDefault<z.ZodString>;
|
|
88
88
|
repository: z.ZodOptional<z.ZodString>;
|
|
89
|
-
documentation: z.
|
|
89
|
+
documentation: z.ZodDefault<z.ZodString>;
|
|
90
90
|
}, z.core.$strict>>;
|
|
91
91
|
extensions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
92
92
|
}, z.core.$strict>;
|
package/lib/src/brand-utils.js
CHANGED
|
@@ -99,7 +99,7 @@ export const BrandContextSchema = z
|
|
|
99
99
|
.object({
|
|
100
100
|
website: z.string().url().default("https://dbx.tools"),
|
|
101
101
|
repository: z.string().url().optional(),
|
|
102
|
-
documentation: z.string().url().
|
|
102
|
+
documentation: z.string().url().default("https://docs.dbx.tools/"),
|
|
103
103
|
})
|
|
104
104
|
.strict()
|
|
105
105
|
.prefault({}),
|
|
@@ -129,4 +129,4 @@ export function brandContextPrompt(context = defaultBrandContext) {
|
|
|
129
129
|
JSON.stringify(context, null, 2),
|
|
130
130
|
].join("\n");
|
|
131
131
|
}
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnJhbmQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFFcEcscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSw4Q0FBOEM7UUFDckQsSUFBSSxFQUFFLDZDQUE2QztLQUNwRDtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSw4Q0FBOEM7UUFDckQsSUFBSSxFQUFFLDZDQUE2QztLQUNwRDtJQUNELE9BQU8sRUFBRSw4Q0FBOEM7Q0FDL0MsQ0FBQztBQUVYLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDO0tBQ2pDLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDO0lBQzNELElBQUksRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGlEQUFpRCxDQUFDO0NBQzVGLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUUzRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQztLQUMvQixNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsb0NBQW9DLENBQUM7SUFDaEYsWUFBWSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDO0lBQ2xGLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwRSxVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUM7SUFDN0UsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDO0lBQ3pFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztJQUMzRSxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUM7SUFDN0QsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDO0NBQ25FLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFaEIscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUM7S0FDOUIsTUFBTSxDQUFDO0lBQ04sUUFBUSxFQUFFLENBQUM7U0FDUixLQUFLLENBQUMsY0FBYyxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNFLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNGLFVBQVUsRUFBRSxDQUFDO1NBQ1YsS0FBSyxDQUFDLGNBQWMsQ0FBQztTQUNyQixPQUFPLENBQUM7UUFDUCwrQkFBK0I7UUFDL0IsMkRBQTJEO1FBQzNELDhDQUE4QztLQUMvQyxDQUFDO0lBQ0osS0FBSyxFQUFFLENBQUM7U0FDTCxLQUFLLENBQUMsY0FBYyxDQUFDO1NBQ3JCLE9BQU8sQ0FBQyxDQUFDLDBCQUEwQixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDLENBQUM7Q0FDbEYsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVoQjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDO0tBQ2hDLE1BQU0sQ0FBQztJQUNOLGFBQWEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDMUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDO0lBQzdFLFNBQVMsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQztJQUNyRixPQUFPLEVBQUUsY0FBYztTQUNwQixPQUFPLENBQUMsMENBQTBDLENBQUM7U0FDbkQsUUFBUSxDQUFDLHVEQUF1RCxDQUFDO0lBQ3BFLFdBQVcsRUFBRSxjQUFjO1NBQ3hCLE9BQU8sQ0FDTixzR0FBc0csQ0FDdkc7U0FDQSxRQUFRLENBQUMscUNBQXFDLENBQUM7SUFDbEQsTUFBTSxFQUFFLENBQUM7U0FDTixNQUFNLENBQUM7UUFDTixJQUFJLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztRQUM1RCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztRQUM1RCxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUM7S0FDOUQsQ0FBQztTQUNELE1BQU0sRUFBRTtTQUNSLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztJQUNoQyxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFVBQVUsRUFBRSxDQUFDO1NBQ1YsTUFBTSxDQUFDO1FBQ04sSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7UUFDL0UsSUFBSSxFQUFFLGNBQWMsQ0FBQyxPQUFPLENBQUMsMkRBQTJELENBQUM7S0FDMUYsQ0FBQztTQUNELE1BQU0sRUFBRTtTQUNSLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDZixLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLEtBQUssRUFBRSxDQUFDO1NBQ0wsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdEQsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDdkMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDM0MsQ0FBQztTQUNELE1BQU0sRUFBRTtTQUNSLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDZixVQUFVLEVBQUUsQ0FBQztTQUNWLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25DLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDWCxRQUFRLENBQUMsOEVBQThFLENBQUM7Q0FDNUYsQ0FBQztLQUNELE1BQU0sRUFBRTtLQUNSLFFBQVEsQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO0FBU3pGLHVEQUF1RDtBQUN2RCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsUUFBaUIsRUFBRTtJQUNuRCxPQUFPLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFpQixpQkFBaUIsRUFBRSxDQUFDO0FBRXJFLHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBNEIsQ0FBQztBQUN2RSxDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUF3QixtQkFBbUI7SUFDNUUsT0FBTztRQUNMLHFCQUFxQixPQUFPLENBQUMsSUFBSSw4REFBOEQ7UUFDL0Ysd0VBQXdFO1FBQ3hFLEVBQUU7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ2pDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1zYWZlIGJyYW5kIGNvbnRyYWN0LCBkZWZhdWx0cywgYW5kIExMTSBzZXJpYWxpemF0aW9uIGhlbHBlcnMuXG4gKlxuICogQXNzZXQgdmFsdWVzIGFyZSBpbnRlbnRpb25hbGx5IHN0cmluZ3M6IHRoZXkgbWF5IGJlIHJlbGF0aXZlIGZpbGUgcGF0aHMsXG4gKiBwYWNrYWdlIGV4cG9ydHMsIGRhdGEgVVJMcywgb3IgbmV0d29yayBVUkxzIGRlcGVuZGluZyBvbiB0aGUgY29uc3VtZXIuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5jb25zdCBub25CbGFua1N0cmluZyA9IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKTtcbmNvbnN0IGNvbG9yID0gei5zdHJpbmcoKS5yZWdleCgvXiMoPzpbXFxkYS1mXXszfXxbXFxkYS1mXXs2fXxbXFxkYS1mXXs4fSkkL2ksIFwiRXhwZWN0ZWQgYSBoZXggY29sb3IuXCIpO1xuXG4vKiogUGFja2FnZSBhc3NldCByZWZlcmVuY2VzIHVzZWQgd2hlbiBhIGJyYW5kIGNvbnRleHQgc3VwcGxpZXMgbm8gY3VzdG9tIGFydHdvcmsuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CUkFORF9BU1NFVFMgPSB7XG4gIGljb246IHtcbiAgICBsaWdodDogXCJAZGJ4LXRvb2xzL3VpL2JyYW5kaW5nL2Fzc2V0cy9pY29uLWxpZ2h0LnN2Z1wiLFxuICAgIGRhcms6IFwiQGRieC10b29scy91aS9icmFuZGluZy9hc3NldHMvaWNvbi1kYXJrLnN2Z1wiLFxuICB9LFxuICBsb2dvOiB7XG4gICAgbGlnaHQ6IFwiQGRieC10b29scy91aS9icmFuZGluZy9hc3NldHMvbG9nby1saWdodC5zdmdcIixcbiAgICBkYXJrOiBcIkBkYngtdG9vbHMvdWkvYnJhbmRpbmcvYXNzZXRzL2xvZ28tZGFyay5zdmdcIixcbiAgfSxcbiAgZmF2aWNvbjogXCJAZGJ4LXRvb2xzL3VpL2JyYW5kaW5nL2Fzc2V0cy9pY29uLWxpZ2h0LnN2Z1wiLFxufSBhcyBjb25zdDtcblxuLyoqIFZhbGlkYXRlcyBsaWdodCBhbmQgb3B0aW9uYWwgZGFyayB2YXJpYW50cyBmb3Igb25lIHZpc3VhbCBhc3NldC4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZEFzc2V0U2V0U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBsaWdodDogbm9uQmxhbmtTdHJpbmcuZGVzY3JpYmUoXCJBc3NldCBmb3IgbGlnaHQgc3VyZmFjZXMuXCIpLFxuICAgIGRhcms6IG5vbkJsYW5rU3RyaW5nLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJBc3NldCBmb3IgZGFyayBzdXJmYWNlczsgbGlnaHQgaXMgdGhlIGZhbGxiYWNrLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIlRoZW1lLWF3YXJlIHJlZmVyZW5jZXMgdG8gb25lIHZpc3VhbCBhc3NldC5cIik7XG5cbi8qKiBTdHJpY3QgYnJhbmQgcGFsZXR0ZSB3aG9zZSBvbWl0dGVkIGNvbG9ycyByZXNvbHZlIHRvIHRoZSBkYnggdG9vbHMgZGVmYXVsdHMuICovXG5leHBvcnQgY29uc3QgQnJhbmRDb2xvcnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHByaW1hcnk6IGNvbG9yLmRlZmF1bHQoXCIjMUIzMTM5XCIpLmRlc2NyaWJlKFwiUHJpbWFyeSBhY3Rpb24gYW5kIGlkZW50aXR5IGNvbG9yLlwiKSxcbiAgICBwcmltYXJ5SG92ZXI6IGNvbG9yLmRlZmF1bHQoXCIjMEU1MzhCXCIpLmRlc2NyaWJlKFwiUHJpbWFyeSBob3ZlciBvciBwcmVzc2VkIGNvbG9yLlwiKSxcbiAgICBhY2NlbnQ6IGNvbG9yLmRlZmF1bHQoXCIjMDBBOTcyXCIpLmRlc2NyaWJlKFwiU2Vjb25kYXJ5IGFjY2VudCBjb2xvci5cIiksXG4gICAgZm9yZWdyb3VuZDogY29sb3IuZGVmYXVsdChcIiMxQjMxMzlcIikuZGVzY3JpYmUoXCJEZWZhdWx0IHRleHQgYW5kIG1hcmsgY29sb3IuXCIpLFxuICAgIGJhY2tncm91bmQ6IGNvbG9yLmRlZmF1bHQoXCIjRkZGRkZGXCIpLmRlc2NyaWJlKFwiRGVmYXVsdCBwYWdlIGJhY2tncm91bmQuXCIpLFxuICAgIHN1cmZhY2U6IGNvbG9yLmRlZmF1bHQoXCIjRjlGN0Y0XCIpLmRlc2NyaWJlKFwiU2Vjb25kYXJ5IHN1cmZhY2UgYmFja2dyb3VuZC5cIiksXG4gICAgbXV0ZWQ6IGNvbG9yLmRlZmF1bHQoXCIjNjE4Nzk0XCIpLmRlc2NyaWJlKFwiTXV0ZWQgdGV4dCBjb2xvci5cIiksXG4gICAgYm9yZGVyOiBjb2xvci5kZWZhdWx0KFwiI0U0RTJERFwiKS5kZXNjcmliZShcIkRlZmF1bHQgYm9yZGVyIGNvbG9yLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5wcmVmYXVsdCh7fSk7XG5cbi8qKiBTdHJpY3QgYXVkaWVuY2UsIHRvbmUsIHByaW5jaXBsZSwgYW5kIGF2b2lkYW5jZSBsaXN0cyB3aXRoIHByYWN0aWNhbCBkZWZhdWx0cy4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZFZvaWNlU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBhdWRpZW5jZTogelxuICAgICAgLmFycmF5KG5vbkJsYW5rU3RyaW5nKVxuICAgICAgLmRlZmF1bHQoW1wiRGF0YWJyaWNrcyBkZXZlbG9wZXJzXCIsIFwiYXBwbGljYXRpb24gZW5naW5lZXJzXCIsIFwiQUkgYWdlbnRzXCJdKSxcbiAgICB0b25lOiB6LmFycmF5KG5vbkJsYW5rU3RyaW5nKS5kZWZhdWx0KFtcImRpcmVjdFwiLCBcInByYWN0aWNhbFwiLCBcInRlY2huaWNhbFwiLCBcImFwcHJvYWNoYWJsZVwiXSksXG4gICAgcHJpbmNpcGxlczogelxuICAgICAgLmFycmF5KG5vbkJsYW5rU3RyaW5nKVxuICAgICAgLmRlZmF1bHQoW1xuICAgICAgICBcIkxlYWQgd2l0aCB0aGUgdXNlZnVsIG91dGNvbWUuXCIsXG4gICAgICAgIFwiUHJlZmVyIGNvbmNyZXRlIGV4YW1wbGVzIGFuZCBhY2N1cmF0ZSB0ZWNobmljYWwgbGFuZ3VhZ2UuXCIsXG4gICAgICAgIFwiS2VlcCBwcm9kdWN0IGNsYWltcyBzcGVjaWZpYyBhbmQgZGVmZW5zaWJsZS5cIixcbiAgICAgIF0pLFxuICAgIGF2b2lkOiB6XG4gICAgICAuYXJyYXkobm9uQmxhbmtTdHJpbmcpXG4gICAgICAuZGVmYXVsdChbXCJ1bnN1cHBvcnRlZCBzdXBlcmxhdGl2ZXNcIiwgXCJ2YWd1ZSBBSSBjbGFpbXNcIiwgXCJ1bm5lY2Vzc2FyeSBqYXJnb25cIl0pLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLnByZWZhdWx0KHt9KTtcblxuLyoqXG4gKiBTdHJpY3QgcG9ydGFibGUgYnJhbmQgY29udHJhY3QgdGhhdCBmaWxscyBpZGVudGl0eSwgYXNzZXRzLCBjb2xvcnMsXG4gKiB0eXBvZ3JhcGh5LCB2b2ljZSwgbGlua3MsIGFuZCBleHRlbnNpb24gZGVmYXVsdHMgZHVyaW5nIHBhcnNpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZENvbnRleHRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHNjaGVtYVZlcnNpb246IHoubGl0ZXJhbChcIjFcIikuZGVmYXVsdChcIjFcIiksXG4gICAgbmFtZTogbm9uQmxhbmtTdHJpbmcuZGVmYXVsdChcImRieCB0b29sc1wiKS5kZXNjcmliZShcIkNhbm9uaWNhbCBkaXNwbGF5IG5hbWUuXCIpLFxuICAgIHNob3J0TmFtZTogbm9uQmxhbmtTdHJpbmcuZGVmYXVsdChcImRieFwiKS5kZXNjcmliZShcIkNvbXBhY3QgbmFtZSBmb3IgY29uc3RyYWluZWQgVUkuXCIpLFxuICAgIHRhZ2xpbmU6IG5vbkJsYW5rU3RyaW5nXG4gICAgICAuZGVmYXVsdChcIlByYWN0aWNhbCB0b29scyBmb3IgRGF0YWJyaWNrcyBidWlsZGVycy5cIilcbiAgICAgIC5kZXNjcmliZShcIlNob3J0IHByb2R1Y3QgbGluZSBzdWl0YWJsZSBmb3IgYSBoZWFkZXIgb3IgbWV0YWRhdGEuXCIpLFxuICAgIGRlc2NyaXB0aW9uOiBub25CbGFua1N0cmluZ1xuICAgICAgLmRlZmF1bHQoXG4gICAgICAgIFwiQ29tcGFuaW9uIHBhY2thZ2VzIGZvciBEYXRhYnJpY2tzIGRldmVsb3BlcnMgYnVpbGRpbmcgYXBwcywgYWdlbnRzLCBkYXRhIHdvcmtmbG93cywgYW5kIHJldXNhYmxlIFVJLlwiLFxuICAgICAgKVxuICAgICAgLmRlc2NyaWJlKFwiUGxhaW4tbGFuZ3VhZ2UgcHJvZHVjdCBkZXNjcmlwdGlvbi5cIiksXG4gICAgYXNzZXRzOiB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgaWNvbjogQnJhbmRBc3NldFNldFNjaGVtYS5kZWZhdWx0KERFRkFVTFRfQlJBTkRfQVNTRVRTLmljb24pLFxuICAgICAgICBsb2dvOiBCcmFuZEFzc2V0U2V0U2NoZW1hLmRlZmF1bHQoREVGQVVMVF9CUkFORF9BU1NFVFMubG9nbyksXG4gICAgICAgIGZhdmljb246IG5vbkJsYW5rU3RyaW5nLmRlZmF1bHQoREVGQVVMVF9CUkFORF9BU1NFVFMuZmF2aWNvbiksXG4gICAgICB9KVxuICAgICAgLnN0cmljdCgpXG4gICAgICAuZGVmYXVsdChERUZBVUxUX0JSQU5EX0FTU0VUUyksXG4gICAgY29sb3JzOiBCcmFuZENvbG9yc1NjaGVtYSxcbiAgICB0eXBvZ3JhcGh5OiB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgc2Fuczogbm9uQmxhbmtTdHJpbmcuZGVmYXVsdChcIidETSBTYW5zJywgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmXCIpLFxuICAgICAgICBtb25vOiBub25CbGFua1N0cmluZy5kZWZhdWx0KFwiJ0RNIE1vbm8nLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgbW9ub3NwYWNlXCIpLFxuICAgICAgfSlcbiAgICAgIC5zdHJpY3QoKVxuICAgICAgLnByZWZhdWx0KHt9KSxcbiAgICB2b2ljZTogQnJhbmRWb2ljZVNjaGVtYSxcbiAgICBsaW5rczogelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIHdlYnNpdGU6IHouc3RyaW5nKCkudXJsKCkuZGVmYXVsdChcImh0dHBzOi8vZGJ4LnRvb2xzXCIpLFxuICAgICAgICByZXBvc2l0b3J5OiB6LnN0cmluZygpLnVybCgpLm9wdGlvbmFsKCksXG4gICAgICAgIGRvY3VtZW50YXRpb246IHouc3RyaW5nKCkudXJsKCkub3B0aW9uYWwoKSxcbiAgICAgIH0pXG4gICAgICAuc3RyaWN0KClcbiAgICAgIC5wcmVmYXVsdCh7fSksXG4gICAgZXh0ZW5zaW9uczogelxuICAgICAgLnJlY29yZChub25CbGFua1N0cmluZywgei51bmtub3duKCkpXG4gICAgICAuZGVmYXVsdCh7fSlcbiAgICAgIC5kZXNjcmliZShcIk5hbWVzcGFjZWQgY29uc3VtZXItc3BlY2lmaWMgdmFsdWVzIHRoYXQgZG8gbm90IGJlbG9uZyBpbiB0aGUgcG9ydGFibGUgY29yZS5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJQb3J0YWJsZSBpZGVudGl0eSwgdmlzdWFsLCBhbmQgdm9pY2UgY29udGV4dCBmb3IgVUksIGxpYnJhcmllcywgYW5kIExMTXMuXCIpO1xuXG4vKiogRnVsbHkgdmFsaWRhdGVkIGJyYW5kIGNvbnRleHQgYWZ0ZXIgZXZlcnkgc2NoZW1hIGRlZmF1bHQgaGFzIGJlZW4gYXBwbGllZC4gKi9cbmV4cG9ydCB0eXBlIEJyYW5kQ29udGV4dCA9IHoub3V0cHV0PHR5cGVvZiBCcmFuZENvbnRleHRTY2hlbWE+O1xuLyoqIElucHV0IGFjY2VwdGVkIGJ5IHtAbGluayBCcmFuZENvbnRleHRTY2hlbWF9LCBiZWZvcmUgZGVmYXVsdHMgYXJlIG1hdGVyaWFsaXplZC4gKi9cbmV4cG9ydCB0eXBlIEJyYW5kQ29udGV4dElucHV0ID0gei5pbnB1dDx0eXBlb2YgQnJhbmRDb250ZXh0U2NoZW1hPjtcbi8qKiBUaGVtZS1hd2FyZSBsaWdodCBhbmQgb3B0aW9uYWwgZGFyayByZWZlcmVuY2VzIGZvciBvbmUgYnJhbmQgYXNzZXQuICovXG5leHBvcnQgdHlwZSBCcmFuZEFzc2V0U2V0ID0gei5vdXRwdXQ8dHlwZW9mIEJyYW5kQXNzZXRTZXRTY2hlbWE+O1xuXG4vKiogVmFsaWRhdGUgaW5wdXQgYW5kIGZpbGwgZXZlcnkgZGJ4IHRvb2xzIGRlZmF1bHQuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VCcmFuZENvbnRleHQoaW5wdXQ6IHVua25vd24gPSB7fSk6IEJyYW5kQ29udGV4dCB7XG4gIHJldHVybiBCcmFuZENvbnRleHRTY2hlbWEucGFyc2UoaW5wdXQpO1xufVxuXG4vKiogQ2Fub25pY2FsIGRieCB0b29scyBicmFuZCBjb250ZXh0IHdpdGggYWxsIHNjaGVtYSBkZWZhdWx0cyByZXNvbHZlZC4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0QnJhbmRDb250ZXh0OiBCcmFuZENvbnRleHQgPSBwYXJzZUJyYW5kQ29udGV4dCgpO1xuXG4vKiogSlNPTiBTY2hlbWEgcmVwcmVzZW50YXRpb24gc3VpdGFibGUgZm9yIHN0cnVjdHVyZWQtb3V0cHV0IGFuZCB0b29sIGRlZmluaXRpb25zLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5kQ29udGV4dEpzb25TY2hlbWEoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gei50b0pTT05TY2hlbWEoQnJhbmRDb250ZXh0U2NoZW1hKSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqIFN0YWJsZSBwcm9tcHQgYmxvY2sgZm9yIGFuIExMTSB0aGF0IG5lZWRzIHRvIHdyaXRlIG9yIGRlc2lnbiBpbiB0aGlzIGJyYW5kLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5kQ29udGV4dFByb21wdChjb250ZXh0OiBCcmFuZENvbnRleHQgPSBkZWZhdWx0QnJhbmRDb250ZXh0KTogc3RyaW5nIHtcbiAgcmV0dXJuIFtcbiAgICBgVXNlIHRoZSBmb2xsb3dpbmcgJHtjb250ZXh0Lm5hbWV9IGJyYW5kIGNvbnRleHQgZm9yIG5hbWVzLCB2aXN1YWwgY2hvaWNlcywgYW5kIHdyaXRpbmcgdm9pY2UuYCxcbiAgICBcIlRyZWF0IGV4cGxpY2l0IHRhc2sgaW5zdHJ1Y3Rpb25zIGFzIGhpZ2hlciBwcmlvcml0eSB0aGFuIHRoaXMgY29udGV4dC5cIixcbiAgICBcIlwiLFxuICAgIEpTT04uc3RyaW5naWZ5KGNvbnRleHQsIG51bGwsIDIpLFxuICBdLmpvaW4oXCJcXG5cIik7XG59XG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnJhbmQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFFcEcscUZBQXFGO0FBQ3JGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSw4Q0FBOEM7UUFDckQsSUFBSSxFQUFFLDZDQUE2QztLQUNwRDtJQUNELElBQUksRUFBRTtRQUNKLEtBQUssRUFBRSw4Q0FBOEM7UUFDckQsSUFBSSxFQUFFLDZDQUE2QztLQUNwRDtJQUNELE9BQU8sRUFBRSw4Q0FBOEM7Q0FDL0MsQ0FBQztBQUVYLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDO0tBQ2pDLE1BQU0sQ0FBQztJQUNOLEtBQUssRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDO0lBQzNELElBQUksRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLGlEQUFpRCxDQUFDO0NBQzVGLENBQUM7S0FDRCxNQUFNLEVBQUU7S0FDUixRQUFRLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUUzRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQztLQUMvQixNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMs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QU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFpQixpQkFBaUIsRUFBRSxDQUFDO0FBRXJFLHNGQUFzRjtBQUN0RixNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBNEIsQ0FBQztBQUN2RSxDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUF3QixtQkFBbUI7SUFDNUUsT0FBTztRQUNMLHFCQUFxQixPQUFPLENBQUMsSUFBSSw4REFBOEQ7UUFDL0Ysd0VBQXdFO1FBQ3hFLEVBQUU7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ2pDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnJvd3Nlci1zYWZlIGJyYW5kIGNvbnRyYWN0LCBkZWZhdWx0cywgYW5kIExMTSBzZXJpYWxpemF0aW9uIGhlbHBlcnMuXG4gKlxuICogQXNzZXQgdmFsdWVzIGFyZSBpbnRlbnRpb25hbGx5IHN0cmluZ3M6IHRoZXkgbWF5IGJlIHJlbGF0aXZlIGZpbGUgcGF0aHMsXG4gKiBwYWNrYWdlIGV4cG9ydHMsIGRhdGEgVVJMcywgb3IgbmV0d29yayBVUkxzIGRlcGVuZGluZyBvbiB0aGUgY29uc3VtZXIuXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG5jb25zdCBub25CbGFua1N0cmluZyA9IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKTtcbmNvbnN0IGNvbG9yID0gei5zdHJpbmcoKS5yZWdleCgvXiMoPzpbXFxkYS1mXXszfXxbXFxkYS1mXXs2fXxbXFxkYS1mXXs4fSkkL2ksIFwiRXhwZWN0ZWQgYSBoZXggY29sb3IuXCIpO1xuXG4vKiogUGFja2FnZSBhc3NldCByZWZlcmVuY2VzIHVzZWQgd2hlbiBhIGJyYW5kIGNvbnRleHQgc3VwcGxpZXMgbm8gY3VzdG9tIGFydHdvcmsuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CUkFORF9BU1NFVFMgPSB7XG4gIGljb246IHtcbiAgICBsaWdodDogXCJAZGJ4LXRvb2xzL3VpL2JyYW5kaW5nL2Fzc2V0cy9pY29uLWxpZ2h0LnN2Z1wiLFxuICAgIGRhcms6IFwiQGRieC10b29scy91aS9icmFuZGluZy9hc3NldHMvaWNvbi1kYXJrLnN2Z1wiLFxuICB9LFxuICBsb2dvOiB7XG4gICAgbGlnaHQ6IFwiQGRieC10b29scy91aS9icmFuZGluZy9hc3NldHMvbG9nby1saWdodC5zdmdcIixcbiAgICBkYXJrOiBcIkBkYngtdG9vbHMvdWkvYnJhbmRpbmcvYXNzZXRzL2xvZ28tZGFyay5zdmdcIixcbiAgfSxcbiAgZmF2aWNvbjogXCJAZGJ4LXRvb2xzL3VpL2JyYW5kaW5nL2Fzc2V0cy9pY29uLWxpZ2h0LnN2Z1wiLFxufSBhcyBjb25zdDtcblxuLyoqIFZhbGlkYXRlcyBsaWdodCBhbmQgb3B0aW9uYWwgZGFyayB2YXJpYW50cyBmb3Igb25lIHZpc3VhbCBhc3NldC4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZEFzc2V0U2V0U2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBsaWdodDogbm9uQmxhbmtTdHJpbmcuZGVzY3JpYmUoXCJBc3NldCBmb3IgbGlnaHQgc3VyZmFjZXMuXCIpLFxuICAgIGRhcms6IG5vbkJsYW5rU3RyaW5nLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJBc3NldCBmb3IgZGFyayBzdXJmYWNlczsgbGlnaHQgaXMgdGhlIGZhbGxiYWNrLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIlRoZW1lLWF3YXJlIHJlZmVyZW5jZXMgdG8gb25lIHZpc3VhbCBhc3NldC5cIik7XG5cbi8qKiBTdHJpY3QgYnJhbmQgcGFsZXR0ZSB3aG9zZSBvbWl0dGVkIGNvbG9ycyByZXNvbHZlIHRvIHRoZSBkYnggdG9vbHMgZGVmYXVsdHMuICovXG5leHBvcnQgY29uc3QgQnJhbmRDb2xvcnNTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHByaW1hcnk6IGNvbG9yLmRlZmF1bHQoXCIjMUIzMTM5XCIpLmRlc2NyaWJlKFwiUHJpbWFyeSBhY3Rpb24gYW5kIGlkZW50aXR5IGNvbG9yLlwiKSxcbiAgICBwcmltYXJ5SG92ZXI6IGNvbG9yLmRlZmF1bHQoXCIjMEU1MzhCXCIpLmRlc2NyaWJlKFwiUHJpbWFyeSBob3ZlciBvciBwcmVzc2VkIGNvbG9yLlwiKSxcbiAgICBhY2NlbnQ6IGNvbG9yLmRlZmF1bHQoXCIjMDBBOTcyXCIpLmRlc2NyaWJlKFwiU2Vjb25kYXJ5IGFjY2VudCBjb2xvci5cIiksXG4gICAgZm9yZWdyb3VuZDogY29sb3IuZGVmYXVsdChcIiMxQjMxMzlcIikuZGVzY3JpYmUoXCJEZWZhdWx0IHRleHQgYW5kIG1hcmsgY29sb3IuXCIpLFxuICAgIGJhY2tncm91bmQ6IGNvbG9yLmRlZmF1bHQoXCIjRkZGRkZGXCIpLmRlc2NyaWJlKFwiRGVmYXVsdCBwYWdlIGJhY2tncm91bmQuXCIpLFxuICAgIHN1cmZhY2U6IGNvbG9yLmRlZmF1bHQoXCIjRjlGN0Y0XCIpLmRlc2NyaWJlKFwiU2Vjb25kYXJ5IHN1cmZhY2UgYmFja2dyb3VuZC5cIiksXG4gICAgbXV0ZWQ6IGNvbG9yLmRlZmF1bHQoXCIjNjE4Nzk0XCIpLmRlc2NyaWJlKFwiTXV0ZWQgdGV4dCBjb2xvci5cIiksXG4gICAgYm9yZGVyOiBjb2xvci5kZWZhdWx0KFwiI0U0RTJERFwiKS5kZXNjcmliZShcIkRlZmF1bHQgYm9yZGVyIGNvbG9yLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5wcmVmYXVsdCh7fSk7XG5cbi8qKiBTdHJpY3QgYXVkaWVuY2UsIHRvbmUsIHByaW5jaXBsZSwgYW5kIGF2b2lkYW5jZSBsaXN0cyB3aXRoIHByYWN0aWNhbCBkZWZhdWx0cy4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZFZvaWNlU2NoZW1hID0gelxuICAub2JqZWN0KHtcbiAgICBhdWRpZW5jZTogelxuICAgICAgLmFycmF5KG5vbkJsYW5rU3RyaW5nKVxuICAgICAgLmRlZmF1bHQoW1wiRGF0YWJyaWNrcyBkZXZlbG9wZXJzXCIsIFwiYXBwbGljYXRpb24gZW5naW5lZXJzXCIsIFwiQUkgYWdlbnRzXCJdKSxcbiAgICB0b25lOiB6LmFycmF5KG5vbkJsYW5rU3RyaW5nKS5kZWZhdWx0KFtcImRpcmVjdFwiLCBcInByYWN0aWNhbFwiLCBcInRlY2huaWNhbFwiLCBcImFwcHJvYWNoYWJsZVwiXSksXG4gICAgcHJpbmNpcGxlczogelxuICAgICAgLmFycmF5KG5vbkJsYW5rU3RyaW5nKVxuICAgICAgLmRlZmF1bHQoW1xuICAgICAgICBcIkxlYWQgd2l0aCB0aGUgdXNlZnVsIG91dGNvbWUuXCIsXG4gICAgICAgIFwiUHJlZmVyIGNvbmNyZXRlIGV4YW1wbGVzIGFuZCBhY2N1cmF0ZSB0ZWNobmljYWwgbGFuZ3VhZ2UuXCIsXG4gICAgICAgIFwiS2VlcCBwcm9kdWN0IGNsYWltcyBzcGVjaWZpYyBhbmQgZGVmZW5zaWJsZS5cIixcbiAgICAgIF0pLFxuICAgIGF2b2lkOiB6XG4gICAgICAuYXJyYXkobm9uQmxhbmtTdHJpbmcpXG4gICAgICAuZGVmYXVsdChbXCJ1bnN1cHBvcnRlZCBzdXBlcmxhdGl2ZXNcIiwgXCJ2YWd1ZSBBSSBjbGFpbXNcIiwgXCJ1bm5lY2Vzc2FyeSBqYXJnb25cIl0pLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLnByZWZhdWx0KHt9KTtcblxuLyoqXG4gKiBTdHJpY3QgcG9ydGFibGUgYnJhbmQgY29udHJhY3QgdGhhdCBmaWxscyBpZGVudGl0eSwgYXNzZXRzLCBjb2xvcnMsXG4gKiB0eXBvZ3JhcGh5LCB2b2ljZSwgbGlua3MsIGFuZCBleHRlbnNpb24gZGVmYXVsdHMgZHVyaW5nIHBhcnNpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBCcmFuZENvbnRleHRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHNjaGVtYVZlcnNpb246IHoubGl0ZXJhbChcIjFcIikuZGVmYXVsdChcIjFcIiksXG4gICAgbmFtZTogbm9uQmxhbmtTdHJpbmcuZGVmYXVsdChcImRieCB0b29sc1wiKS5kZXNjcmliZShcIkNhbm9uaWNhbCBkaXNwbGF5IG5hbWUuXCIpLFxuICAgIHNob3J0TmFtZTogbm9uQmxhbmtTdHJpbmcuZGVmYXVsdChcImRieFwiKS5kZXNjcmliZShcIkNvbXBhY3QgbmFtZSBmb3IgY29uc3RyYWluZWQgVUkuXCIpLFxuICAgIHRhZ2xpbmU6IG5vbkJsYW5rU3RyaW5nXG4gICAgICAuZGVmYXVsdChcIlByYWN0aWNhbCB0b29scyBmb3IgRGF0YWJyaWNrcyBidWlsZGVycy5cIilcbiAgICAgIC5kZXNjcmliZShcIlNob3J0IHByb2R1Y3QgbGluZSBzdWl0YWJsZSBmb3IgYSBoZWFkZXIgb3IgbWV0YWRhdGEuXCIpLFxuICAgIGRlc2NyaXB0aW9uOiBub25CbGFua1N0cmluZ1xuICAgICAgLmRlZmF1bHQoXG4gICAgICAgIFwiQ29tcGFuaW9uIHBhY2thZ2VzIGZvciBEYXRhYnJpY2tzIGRldmVsb3BlcnMgYnVpbGRpbmcgYXBwcywgYWdlbnRzLCBkYXRhIHdvcmtmbG93cywgYW5kIHJldXNhYmxlIFVJLlwiLFxuICAgICAgKVxuICAgICAgLmRlc2NyaWJlKFwiUGxhaW4tbGFuZ3VhZ2UgcHJvZHVjdCBkZXNjcmlwdGlvbi5cIiksXG4gICAgYXNzZXRzOiB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgaWNvbjogQnJhbmRBc3NldFNldFNjaGVtYS5kZWZhdWx0KERFRkFVTFRfQlJBTkRfQVNTRVRTLmljb24pLFxuICAgICAgICBsb2dvOiBCcmFuZEFzc2V0U2V0U2NoZW1hLmRlZmF1bHQoREVGQVVMVF9CUkFORF9BU1NFVFMubG9nbyksXG4gICAgICAgIGZhdmljb246IG5vbkJsYW5rU3RyaW5nLmRlZmF1bHQoREVGQVVMVF9CUkFORF9BU1NFVFMuZmF2aWNvbiksXG4gICAgICB9KVxuICAgICAgLnN0cmljdCgpXG4gICAgICAuZGVmYXVsdChERUZBVUxUX0JSQU5EX0FTU0VUUyksXG4gICAgY29sb3JzOiBCcmFuZENvbG9yc1NjaGVtYSxcbiAgICB0eXBvZ3JhcGh5OiB6XG4gICAgICAub2JqZWN0KHtcbiAgICAgICAgc2Fuczogbm9uQmxhbmtTdHJpbmcuZGVmYXVsdChcIidETSBTYW5zJywgdWktc2Fucy1zZXJpZiwgc3lzdGVtLXVpLCBzYW5zLXNlcmlmXCIpLFxuICAgICAgICBtb25vOiBub25CbGFua1N0cmluZy5kZWZhdWx0KFwiJ0RNIE1vbm8nLCB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgbW9ub3NwYWNlXCIpLFxuICAgICAgfSlcbiAgICAgIC5zdHJpY3QoKVxuICAgICAgLnByZWZhdWx0KHt9KSxcbiAgICB2b2ljZTogQnJhbmRWb2ljZVNjaGVtYSxcbiAgICBsaW5rczogelxuICAgICAgLm9iamVjdCh7XG4gICAgICAgIHdlYnNpdGU6IHouc3RyaW5nKCkudXJsKCkuZGVmYXVsdChcImh0dHBzOi8vZGJ4LnRvb2xzXCIpLFxuICAgICAgICByZXBvc2l0b3J5OiB6LnN0cmluZygpLnVybCgpLm9wdGlvbmFsKCksXG4gICAgICAgIGRvY3VtZW50YXRpb246IHouc3RyaW5nKCkudXJsKCkuZGVmYXVsdChcImh0dHBzOi8vZG9jcy5kYngudG9vbHMvXCIpLFxuICAgICAgfSlcbiAgICAgIC5zdHJpY3QoKVxuICAgICAgLnByZWZhdWx0KHt9KSxcbiAgICBleHRlbnNpb25zOiB6XG4gICAgICAucmVjb3JkKG5vbkJsYW5rU3RyaW5nLCB6LnVua25vd24oKSlcbiAgICAgIC5kZWZhdWx0KHt9KVxuICAgICAgLmRlc2NyaWJlKFwiTmFtZXNwYWNlZCBjb25zdW1lci1zcGVjaWZpYyB2YWx1ZXMgdGhhdCBkbyBub3QgYmVsb25nIGluIHRoZSBwb3J0YWJsZSBjb3JlLlwiKSxcbiAgfSlcbiAgLnN0cmljdCgpXG4gIC5kZXNjcmliZShcIlBvcnRhYmxlIGlkZW50aXR5LCB2aXN1YWwsIGFuZCB2b2ljZSBjb250ZXh0IGZvciBVSSwgbGlicmFyaWVzLCBhbmQgTExNcy5cIik7XG5cbi8qKiBGdWxseSB2YWxpZGF0ZWQgYnJhbmQgY29udGV4dCBhZnRlciBldmVyeSBzY2hlbWEgZGVmYXVsdCBoYXMgYmVlbiBhcHBsaWVkLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRDb250ZXh0ID0gei5vdXRwdXQ8dHlwZW9mIEJyYW5kQ29udGV4dFNjaGVtYT47XG4vKiogSW5wdXQgYWNjZXB0ZWQgYnkge0BsaW5rIEJyYW5kQ29udGV4dFNjaGVtYX0sIGJlZm9yZSBkZWZhdWx0cyBhcmUgbWF0ZXJpYWxpemVkLiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRDb250ZXh0SW5wdXQgPSB6LmlucHV0PHR5cGVvZiBCcmFuZENvbnRleHRTY2hlbWE+O1xuLyoqIFRoZW1lLWF3YXJlIGxpZ2h0IGFuZCBvcHRpb25hbCBkYXJrIHJlZmVyZW5jZXMgZm9yIG9uZSBicmFuZCBhc3NldC4gKi9cbmV4cG9ydCB0eXBlIEJyYW5kQXNzZXRTZXQgPSB6Lm91dHB1dDx0eXBlb2YgQnJhbmRBc3NldFNldFNjaGVtYT47XG5cbi8qKiBWYWxpZGF0ZSBpbnB1dCBhbmQgZmlsbCBldmVyeSBkYnggdG9vbHMgZGVmYXVsdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJyYW5kQ29udGV4dChpbnB1dDogdW5rbm93biA9IHt9KTogQnJhbmRDb250ZXh0IHtcbiAgcmV0dXJuIEJyYW5kQ29udGV4dFNjaGVtYS5wYXJzZShpbnB1dCk7XG59XG5cbi8qKiBDYW5vbmljYWwgZGJ4IHRvb2xzIGJyYW5kIGNvbnRleHQgd2l0aCBhbGwgc2NoZW1hIGRlZmF1bHRzIHJlc29sdmVkLiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRCcmFuZENvbnRleHQ6IEJyYW5kQ29udGV4dCA9IHBhcnNlQnJhbmRDb250ZXh0KCk7XG5cbi8qKiBKU09OIFNjaGVtYSByZXByZXNlbnRhdGlvbiBzdWl0YWJsZSBmb3Igc3RydWN0dXJlZC1vdXRwdXQgYW5kIHRvb2wgZGVmaW5pdGlvbnMuICovXG5leHBvcnQgZnVuY3Rpb24gYnJhbmRDb250ZXh0SnNvblNjaGVtYSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiB6LnRvSlNPTlNjaGVtYShCcmFuZENvbnRleHRTY2hlbWEpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKiogU3RhYmxlIHByb21wdCBibG9jayBmb3IgYW4gTExNIHRoYXQgbmVlZHMgdG8gd3JpdGUgb3IgZGVzaWduIGluIHRoaXMgYnJhbmQuICovXG5leHBvcnQgZnVuY3Rpb24gYnJhbmRDb250ZXh0UHJvbXB0KGNvbnRleHQ6IEJyYW5kQ29udGV4dCA9IGRlZmF1bHRCcmFuZENvbnRleHQpOiBzdHJpbmcge1xuICByZXR1cm4gW1xuICAgIGBVc2UgdGhlIGZvbGxvd2luZyAke2NvbnRleHQubmFtZX0gYnJhbmQgY29udGV4dCBmb3IgbmFtZXMsIHZpc3VhbCBjaG9pY2VzLCBhbmQgd3JpdGluZyB2b2ljZS5gLFxuICAgIFwiVHJlYXQgZXhwbGljaXQgdGFzayBpbnN0cnVjdGlvbnMgYXMgaGlnaGVyIHByaW9yaXR5IHRoYW4gdGhpcyBjb250ZXh0LlwiLFxuICAgIFwiXCIsXG4gICAgSlNPTi5zdHJpbmdpZnkoY29udGV4dCwgbnVsbCwgMiksXG4gIF0uam9pbihcIlxcblwiKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
package/src/brand-utils.ts
CHANGED
|
@@ -107,7 +107,7 @@ export const BrandContextSchema = z
|
|
|
107
107
|
.object({
|
|
108
108
|
website: z.string().url().default("https://dbx.tools"),
|
|
109
109
|
repository: z.string().url().optional(),
|
|
110
|
-
documentation: z.string().url().
|
|
110
|
+
documentation: z.string().url().default("https://docs.dbx.tools/"),
|
|
111
111
|
})
|
|
112
112
|
.strict()
|
|
113
113
|
.prefault({}),
|