@dbx-tools/appkit 0.9.131 → 0.9.136

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 CHANGED
@@ -1,11 +1,9 @@
1
1
  # @dbx-tools/appkit
2
2
 
3
- Node-side helpers for Databricks AppKit apps.
3
+ Configure Lakebase before Databricks AppKit plugin startup and use AppKit request
4
+ context, typed plugin lookup, and Databricks SDK cancellation from backend code.
4
5
 
5
- These helpers configure Lakebase before plugin startup and expose AppKit request
6
- context, typed plugin lookup, and Databricks SDK cancellation to backend code.
7
-
8
- ## Quick Start
6
+ ## Quick start
9
7
 
10
8
  Use the wrapper when Lakebase settings must be resolved before plugin setup:
11
9
 
@@ -18,7 +16,7 @@ await appkit.createApp({
18
16
  });
19
17
  ```
20
18
 
21
- **Key features:**
19
+ Use these helpers for:
22
20
 
23
21
  - Auto-configuration before AppKit setup, especially for Lakebase/Postgres env
24
22
  values that AppKit plugins read during initialization.
@@ -39,7 +37,7 @@ await appkit.createApp({
39
37
  AppKit's own `setup:complete` / `server:ready` / `shutdown` vocabulary).
40
38
  `@dbx-tools/tunnel` consumes this surface for auxiliary startup and shutdown.
41
39
 
42
- ## Use With Native AppKit
40
+ ## Use with native AppKit
43
41
 
44
42
  Use native AppKit directly when your app can read its required env vars before
45
43
  `createApp()` and does not need extra setup around plugin exports or config
@@ -47,19 +45,31 @@ sources.
47
45
 
48
46
  Use this package when the friction is around bootstrapping and reuse:
49
47
 
50
- - AppKit plugins read Lakebase/Postgres env during initialization; this package
48
+ - AppKit plugins read Lakebase/Postgres env during initialization. This package
51
49
  resolves and applies those values before setup.
52
- - AppKit exposes request context inside AppKit handlers; these helpers make code
50
+ - AppKit exposes request context inside AppKit handlers. These helpers make code
53
51
  safe to call from scripts, tests, and background jobs too.
54
- - AppKit plugin instances are generic; the lookup helpers keep sibling-plugin
52
+ - AppKit plugin instances are generic. The lookup helpers keep sibling-plugin
55
53
  access typed and return clear errors.
56
54
  - Local CLI flags, bundle validation output, and `app.yaml` values use the same
57
55
  `@dbx-tools/core` configuration path.
58
56
  - AppKit's `asUser(req)` throws outside `NODE_ENV=development` when a request
59
- carries no OBO token; `identity` makes falling back to the service principal a
60
- configured, per-request decision instead of a `NODE_ENV` side effect.
57
+ carries no on-behalf-of-user (OBO) token. `identity` makes falling back to the
58
+ service principal a configured, per-request decision instead of a `NODE_ENV`
59
+ side effect.
60
+
61
+ Choose the Lakebase path by caller:
62
+
63
+ - Use native AppKit `lakebase()` when a Databricks App already has complete
64
+ runtime connection configuration.
65
+ - Use this package's `appkit.createApp()` when Lakebase environment values or
66
+ cache grants must be resolved before AppKit plugins initialize.
67
+ - Use [@dbx-tools/lakebase](../lakebase) for profile-aware discovery and
68
+ short-lived credentials in standalone Node or Bun code.
69
+ - Use [dbx lakebase-proxy](../../cli/dbx-tools) when an external PostgreSQL
70
+ client needs a loopback connection.
61
71
 
62
- ## Auto-Configuration Behavior
72
+ ## Auto-configuration behavior
63
73
 
64
74
  `appkit.createApp` is a drop-in wrapper around AppKit `createApp` with the
65
75
  same config and the same typed plugin-export map. It runs
@@ -79,7 +89,7 @@ When native `lakebase()` or beta `database()` is present, auto-config resolves
79
89
  Lakebase Postgres connection settings and fills missing `PG*` /
80
90
  `LAKEBASE_*` variables. That avoids a startup race where a plugin reads env
81
91
  before another async setup step can discover it. A database-only app resolves
82
- env without implicitly broadening cache-schema grants; AppKit's database plugin
92
+ env without implicitly broadening cache-schema grants. AppKit's database plugin
83
93
  owns its own pool.
84
94
 
85
95
  Auto-configuration is conservative: existing env vars win unless a caller passes
@@ -109,8 +119,8 @@ const resolved = await lakebaseResolver.resolveLakebaseConnection({
109
119
  lakebaseResolver.applyLakebaseToEnv(resolved);
110
120
  ```
111
121
 
112
- `applyLakebaseEnv()` does both steps and applies the COMPLETE set a Postgres pool
113
- needs, `PGUSER` included — it is what auto-configuration itself calls, so a caller
122
+ `applyLakebaseEnv()` does both steps and applies the complete set a Postgres pool
123
+ needs, including `PGUSER`. Auto-configuration calls the same function, so a caller
114
124
  outside `createApp` gets the same env rather than a hand-rolled subset:
115
125
 
116
126
  ```ts
@@ -118,10 +128,10 @@ const { resolved, user } = await lakebaseResolver.applyLakebaseEnv({ autoCreate:
118
128
  ```
119
129
 
120
130
  Reach for it when something other than the `lakebase()` plugin needs a working
121
- pool. AppKit's PERSISTENT cache is the common case: it builds its own pool from
131
+ pool. AppKit's persistent cache is the common case: it builds its own pool from
122
132
  env, and `createLakebasePool()` throws unless `LAKEBASE_ENDPOINT`, `PGHOST`,
123
- `PGDATABASE`, and a username are all present — while a Databricks App `postgres`
124
- resource binding supplies only the first. Miss one and the cache degrades silently
133
+ `PGDATABASE`, and a username are all present. A Databricks App `postgres`
134
+ resource binding supplies only the first. If one is missing, the cache degrades silently
125
135
  to in-memory. `@dbx-tools/tunnel`'s OTP gate calls this for exactly that
126
136
  reason.
127
137
 
@@ -131,7 +141,7 @@ reason.
131
141
 
132
142
  | Option | Type | Default | Description |
133
143
  | --------------- | ------------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
134
- | `autoConfigure` | `"provision" \| "env" \| false` | `"provision"` | What to run before AppKit boots. `"provision"` resolves the Lakebase connection into `process.env` and grants the AppKit cache schema; `"env"` resolves the connection only; `false` skips auto-configuration. Omit it to gate resolution on native `lakebase` or `database`; implicit database-only resolution does not grant the cache schema. |
144
+ | `autoConfigure` | `"provision" \| "env" \| false` | `"provision"` | What to run before AppKit boots. `"provision"` resolves the Lakebase connection into `process.env` and grants the AppKit cache schema. `"env"` resolves the connection only. `false` skips auto-configuration. Omit it to gate resolution on native `lakebase` or `database`. Implicit database-only resolution does not grant the cache schema. |
135
145
  | `interceptor` | `Interceptor \| Interceptor[]` | none | One or many callbacks handed an `InterceptorContext` after auto-config computes the env and before AppKit boots. The context carries the resolved env and AppKit lifecycle registration through `onLifecycle`. |
136
146
 
137
147
  Set `autoConfigure` explicitly on an app that registers no `lakebase()` plugin but
@@ -139,8 +149,8 @@ still wants Lakebase-backed cache persistence. The injected AppKit storage is
139
149
  memory-first: warm hits avoid persistent reads and `last_accessed` writes, while
140
150
  mutations are coalesced and written behind without blocking the request. When a
141
151
  Lakebase pool is available it is the persistent level. Otherwise the cache uses
142
- the portable project-scoped disk level from `@dbx-tools/cache`. `"env"` is the
143
- right mode inside a deployed app, since the app service principal cannot grant on
152
+ the portable project-scoped disk level from `@dbx-tools/cache`. Use `"env"`
153
+ inside a deployed app because the app service principal cannot grant access to
144
154
  the cache schema anyway.
145
155
 
146
156
  `createApp()` installs this storage by default when AppKit caching is enabled and
@@ -154,10 +164,10 @@ const storage = await cacheStorage.createAppKitCacheStorage();
154
164
  ```
155
165
 
156
166
  AppKit closes injected storage during shutdown. Native composition should call
157
- `close()` when it owns the storage directly; that drains tracked write-behind
167
+ `close()` when it owns the storage directly. That drains tracked write-behind
158
168
  work before disconnecting the persistent levels.
159
169
 
160
- ## Filesystem Cache Plugin
170
+ ## Filesystem cache plugin
161
171
 
162
172
  Register `filesCache()` when provider-backed filesystems should share one
163
173
  AppKit-lifecycle cache:
@@ -179,7 +189,7 @@ batched invalidation clears matching keys across active user scopes without
179
189
  sharing authorization-sensitive values.
180
190
 
181
191
  `forFileSystem(scope, { paths, key? }, load)` retains one framework filesystem
182
- source for the same user and actual mounted paths. `key` separates framework
192
+ source for the same user and mounted paths. `key` separates framework
183
193
  instances that use different policies over the same paths. This gives frameworks
184
194
  such as Mastra a stable source identity across page refreshes and turns without
185
195
  introducing a second parsed catalogue cache.
@@ -220,9 +230,9 @@ Environment variables read during resolution:
220
230
  Resolved values are written back to `process.env` by
221
231
  `lakebaseResolver.applyLakebaseToEnv()`, which never overwrites a variable that
222
232
  is already set. That function covers everything except `PGUSER`, which needs an
223
- await; `lakebaseResolver.applyLakebaseEnv()` resolves and applies the full set.
233
+ await. `lakebaseResolver.applyLakebaseEnv()` resolves and applies the full set.
224
234
 
225
- ## Resolve Local And Bundle Config
235
+ ## Resolve local and bundle config
226
236
 
227
237
  Configuration is owned by `@dbx-tools/core`, not re-exported by this package.
228
238
  Its default precedence is constant config, process env, `.env`, bundle
@@ -241,7 +251,7 @@ Databricks App deployment. `configUtils.bundleFile()` exposes validated bundle
241
251
  output, while `configUtils.appFile()` exposes parsed App YAML. Both cache successful,
242
252
  missing, and invalid results for the process lifetime.
243
253
 
244
- ## Parse Lakebase Addresses
254
+ ## Parse Lakebase addresses
245
255
 
246
256
  `pgaddress.parseAddress()` accepts resource paths, Postgres URLs, bare
247
257
  Lakebase hosts, and partial inputs. It gives the resolver a common shape without
@@ -258,7 +268,7 @@ pgaddress.parseAddress(
258
268
  `pgaddress.parseResourcePath()` is useful when you specifically expect a
259
269
  `projects/<id>/branches/<id>/endpoints/<id>` value.
260
270
 
261
- ## Use AppKit Execution Context Safely
271
+ ## Use AppKit execution context safely
262
272
 
263
273
  `appkit.tryGetExecutionContext()` returns the active AppKit request context when
264
274
  code is running under AppKit, and `undefined` elsewhere. That lets libraries
@@ -274,7 +284,7 @@ const client = appkit.tryGetExecutionContext()?.client ?? createWorkspaceClient(
274
284
  `appkit.ensureInitialized()` lazily initializes AppKit runtime state before
275
285
  context lookup in code paths that may run early.
276
286
 
277
- ## Adapt Databricks SDK Cancellation
287
+ ## Adapt Databricks SDK cancellation
278
288
 
279
289
  Databricks SDK calls accept a `Context`. Many app and web APIs use
280
290
  `AbortSignal`. `databricks.toContext()` bridges the two.
@@ -293,7 +303,7 @@ await client.apiClient.request(
293
303
  );
294
304
  ```
295
305
 
296
- ## Look Up Sibling Plugins
306
+ ## Look up sibling plugins
297
307
 
298
308
  AppKit's plugin map is intentionally generic. `pluginRegistry.data()`,
299
309
  `pluginRegistry.instance()`, and `pluginRegistry.require()` keep lookups typed and produce better
@@ -314,10 +324,10 @@ hard-code registered names or casts at every call site. A missing required
314
324
  plugin throws AppKit's `ConfigurationError`, naming both the caller and the
315
325
  plugin to register.
316
326
 
317
- ## Provision Lakebase Cache Schema
327
+ ## Provision the Lakebase cache schema
318
328
 
319
329
  `provision.provisionCacheSchema()` grants the AppKit cache schema in Lakebase to
320
- the Postgres role that will run the app. Use it after Lakebase connection env has
330
+ the Postgres role that runs the app. Use it after Lakebase connection env has
321
331
  been resolved and before AppKit initializes its persistent cache.
322
332
 
323
333
  ```ts
@@ -330,13 +340,13 @@ Pass a second argument to report progress on your own logger. The grants are
330
340
  skipped inside a Databricks App, and any failure is logged rather than thrown so
331
341
  a degraded cache never blocks startup.
332
342
 
333
- ## Choose The Request Identity
343
+ ## Choose the request identity
334
344
 
335
345
  AppKit gives a plugin two identities: the ambient service context (the app's own
336
346
  service principal) and a per-request user context entered with `asUser(req)`,
337
347
  which authenticates on-behalf-of (OBO) using the token the Databricks front door
338
348
  forwards on `x-forwarded-access-token`. When that header is absent, AppKit's
339
- behaviour depends entirely on `NODE_ENV`:
349
+ behavior depends entirely on `NODE_ENV`:
340
350
 
341
351
  | `NODE_ENV` | `asUser(req)` with no `x-forwarded-access-token` |
342
352
  | ------------- | ------------------------------------------------------ |
@@ -346,9 +356,9 @@ behaviour depends entirely on `NODE_ENV`:
346
356
  That throw is right for an app behind the front door, where a missing token means
347
357
  something is broken. It is fatal for an app whose traffic legitimately arrives
348
358
  without one - a public tunnel where callers authenticate by email code
349
- ([`@dbx-tools/tunnel`](../../node/tunnel)), or a bot channel that validates its
359
+ ([@dbx-tools/tunnel](../../node/tunnel)), or a bot channel that validates its
350
360
  own inbound JWT (`POST /api/teams/messages`). Those apps must not run with
351
- `NODE_ENV=development` just to get the fallback, since that flag also relaxes
361
+ `NODE_ENV=development` only to get the fallback, because that flag also relaxes
352
362
  secure cookies and unlocks other dev-only escape hatches.
353
363
 
354
364
  `identity` is that decision, made explicit:
@@ -363,20 +373,20 @@ const scoped = identity.useServicePrincipal(mode, req) ? this : this.asUser(req)
363
373
  const rows = await scoped.executeQuery(sql);
364
374
  ```
365
375
 
366
- | Mode | Behaviour |
376
+ | Mode | Behavior |
367
377
  | ------------------- | ---------------------------------------------------------------------------- |
368
378
  | `user` (default) | Always OBO. Per-user attribution and per-user Genie / Unity Catalog filters. |
369
379
  | `service-principal` | Always the app's own identity. Needs no OBO scopes and serves any caller. |
370
380
  | `auto` | OBO when the request carries a usable token, service principal otherwise. |
371
381
 
372
- `auto` decides per REQUEST, not per boot, because one container can serve both
382
+ `auto` decides per request, not per boot, because one container can serve both
373
383
  doors at once - the tunnel gate and the platform front door share a port. A
374
384
  boot-time flag would have to be wrong for one of them. An unrecognized configured
375
385
  value throws a `ConfigurationError` rather than falling back, because a typo
376
386
  (`"obo"`, `"sp"`) would otherwise keep serving the very error the option was set
377
387
  to avoid.
378
388
 
379
- Running as the service principal does not change WHO the request belongs to. The
389
+ Running as the service principal does not change which user owns the request. The
380
390
  caller still arrives on `x-forwarded-user` / `x-forwarded-email` (read them with
381
391
  `identity.requestUserId()` / `requestUserEmail()`), so memory threads, cache
382
392
  namespaces, and trace attribution stay per-user - only the Databricks credential
@@ -398,5 +408,5 @@ is shared. `@dbx-tools/appkit-mastra` exposes this as its `genieIdentity` option
398
408
  | `identity` | OBO-vs-service-principal request identity: modes, resolution, and the forwarded headers. |
399
409
 
400
410
  The shell-facing wrapper for auto-config is
401
- [`@dbx-tools/cli/appkit`](../../cli/dbx-tools). Higher-level agent composition
402
- is in [`@dbx-tools/appkit-mastra`](../appkit-mastra).
411
+ [@dbx-tools/cli/appkit](../../cli/dbx-tools). Higher-level agent composition
412
+ is in [@dbx-tools/appkit-mastra](../appkit-mastra).
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/appkit";
6
- export const PACKAGE_VERSION = "0.9.131";
6
+ export const PACKAGE_VERSION = "0.9.136";
7
7
  export * as appkit from "./src/appkit.ts";
8
8
  export * as brandContext from "./src/brand-context.ts";
9
9
  export * as bundle from "./src/bundle.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/appkit";
2
- export declare const PACKAGE_VERSION = "0.9.131";
2
+ export declare const PACKAGE_VERSION = "0.9.136";
3
3
  export * as appkit from "./src/appkit.ts";
4
4
  export * as brandContext from "./src/brand-context.ts";
5
5
  export * as bundle from "./src/bundle.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/appkit";
5
- export const PACKAGE_VERSION = "0.9.131";
5
+ export const PACKAGE_VERSION = "0.9.136";
6
6
  export * as appkit from "./src/appkit.js";
7
7
  export * as brandContext from "./src/brand-context.js";
8
8
  export * as bundle from "./src/bundle.js";
@@ -30,4 +30,4 @@ export { ACCESS_TOKEN_HEADER, USER_ID_HEADER, USER_EMAIL_HEADER, IDENTITY_MODES,
30
30
  export { LifecycleBridgePlugin, lifecycleBridge } from "./src/interceptor.js";
31
31
  export { SSL_MODES } from "./src/pgaddress.js";
32
32
  export { ToolRegistryPlugin } from "./src/tool-provider.js";
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEtBQUssY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9hcHBraXRcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMzFcIjtcbmV4cG9ydCAqIGFzIGFwcGtpdCBmcm9tIFwiLi9zcmMvYXBwa2l0LnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZENvbnRleHQgZnJvbSBcIi4vc3JjL2JyYW5kLWNvbnRleHQudHNcIjtcbmV4cG9ydCAqIGFzIGJ1bmRsZSBmcm9tIFwiLi9zcmMvYnVuZGxlLnRzXCI7XG5leHBvcnQgKiBhcyBjYWNoZVN0b3JhZ2UgZnJvbSBcIi4vc3JjL2NhY2hlLXN0b3JhZ2UudHNcIjtcbmV4cG9ydCAqIGFzIGRhdGFicmlja3MgZnJvbSBcIi4vc3JjL2RhdGFicmlja3MudHNcIjtcbmV4cG9ydCAqIGFzIGZpbGVzQ2FjaGUgZnJvbSBcIi4vc3JjL2ZpbGVzLWNhY2hlLnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIGludGVyY2VwdG9yIGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0ICogYXMgbGFrZWJhc2VSZXNvbHZlciBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcmVzb2x2ZXIudHNcIjtcbmV4cG9ydCAqIGFzIG1pZ3JhdGlvbiBmcm9tIFwiLi9zcmMvbWlncmF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBvcGVuYXBpVG9vbCBmcm9tIFwiLi9zcmMvb3BlbmFwaS10b29sLnRzXCI7XG5leHBvcnQgKiBhcyBwZ2FkZHJlc3MgZnJvbSBcIi4vc3JjL3BnYWRkcmVzcy50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luRXhlY3V0aW9uIGZyb20gXCIuL3NyYy9wbHVnaW4tZXhlY3V0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW5SZWdpc3RyeSBmcm9tIFwiLi9zcmMvcGx1Z2luLXJlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgKiBhcyBwcm92aXNpb24gZnJvbSBcIi4vc3JjL3Byb3Zpc2lvbi50c1wiO1xuZXhwb3J0ICogYXMgcmVxdWVzdFRhZ3MgZnJvbSBcIi4vc3JjL3JlcXVlc3QtdGFncy50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2xPcGVyYXRpb25zIGZyb20gXCIuL3NyYy90b29sLW9wZXJhdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2xQcm92aWRlciBmcm9tIFwiLi9zcmMvdG9vbC1wcm92aWRlci50c1wiO1xuZXhwb3J0ICogYXMgdG9vbGtpdEVudHJpZXMgZnJvbSBcIi4vc3JjL3Rvb2xraXQtZW50cmllcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdXRvQ29uZmlndXJlTW9kZSwgQ3JlYXRlQXBwQ29uZmlnLCBFeGVjdXRpb25Db250ZXh0TGlrZSwgV29ya3NwYWNlQ2xpZW50TGlrZSB9IGZyb20gXCIuL3NyYy9hcHBraXQudHNcIjtcbmV4cG9ydCB7IGJ1bmRsZUFwcFJlc291cmNlU2NoZW1hLCBmbGF0dGVuQXBwWWFtbEVudiwgZmxhdHRlbkFwcEVudiwgZ2V0QnVuZGxlUGF0aCB9IGZyb20gXCIuL3NyYy9idW5kbGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVuZGxlVmFsaWRhdGVKc29uLCBDb25maWdGaWxlLCBDb25maWdNYXBWYWx1ZSwgQ29uZmlnU291cmNlLCBSZXNvbHZlQ29uZmlnVmFsdWVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2J1bmRsZS50c1wiO1xuZXhwb3J0IHsgQXBwS2l0Q2FjaGVTdG9yYWdlIH0gZnJvbSBcIi4vc3JjL2NhY2hlLXN0b3JhZ2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwS2l0Q2FjaGVTdG9yYWdlT3B0aW9ucywgUGVyc2lzdGVudFN0b3JhZ2VCYXNlIH0gZnJvbSBcIi4vc3JjL2NhY2hlLXN0b3JhZ2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ29udGV4dExpa2UgfSBmcm9tIFwiLi9zcmMvZGF0YWJyaWNrcy50c1wiO1xuZXhwb3J0IHsgRmlsZXNDYWNoZU1hbmFnZXIsIEZpbGVzQ2FjaGVQbHVnaW4gfSBmcm9tIFwiLi9zcmMvZmlsZXMtY2FjaGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZXNDYWNoZVBsdWdpbkNvbmZpZywgRmlsZXNDYWNoZVNjb3BlLCBGaWxlc0NhY2hlU291cmNlSWRlbnRpdHksIEZpbGVzQ2FjaGVFeHBvcnRzIH0gZnJvbSBcIi4vc3JjL2ZpbGVzLWNhY2hlLnRzXCI7XG5leHBvcnQgeyBBQ0NFU1NfVE9LRU5fSEVBREVSLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIsIElERU5USVRZX01PREVTLCBERUZBVUxUX0lERU5USVRZX01PREUgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgSWRlbnRpdHlNb2RlLCBIZWFkZXJCZWFyaW5nIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgeyBMaWZlY3ljbGVCcmlkZ2VQbHVnaW4sIGxpZmVjeWNsZUJyaWRnZSB9IGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0IHR5cGUgeyBMaWZlY3ljbGVFdmVudCwgTGlmZWN5Y2xlSGFuZGxlciwgUmVzb2x2ZWRBcHBFbnYsIEludGVyY2VwdG9yQ29udGV4dCwgSW50ZXJjZXB0b3IsIEludGVyY2VwdG9yUnVudGltZSB9IGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0IHR5cGUgeyBMYWtlYmFzZVJlc29sdmVySW5wdXRzLCBMYWtlYmFzZUNvbm5lY3Rpb24gfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcmVzb2x2ZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3duZXJzaGlwTWlncmF0aW9uRXJyb3JPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21pZ3JhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBPcGVuQXBpSHR0cE1ldGhvZCwgT3BlbkFwaVRvb2wsIE9wZW5BcGlUb29sc09wdGlvbnMgfSBmcm9tIFwiLi9zcmMvb3BlbmFwaS10b29sLnRzXCI7XG5leHBvcnQgeyBTU0xfTU9ERVMgfSBmcm9tIFwiLi9zcmMvcGdhZGRyZXNzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNzbE1vZGUsIFBhcnNlZEFkZHJlc3MsIExha2ViYXNlQ29ubmVjdGlvbklucHV0cyB9IGZyb20gXCIuL3NyYy9wZ2FkZHJlc3MudHNcIjtcbmV4cG9ydCB0eXBlIHsgUnVuUGx1Z2luRXhlY3V0aW9uT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW4tZXhlY3V0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBsdWdpbkNvbnRleHRMaWtlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi1yZWdpc3RyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXF1ZXN0VGFnVmFsdWUgfSBmcm9tIFwiLi9zcmMvcmVxdWVzdC10YWdzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE5hdGl2ZUh0dHBUZWxlbWV0cnlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBLaXRUb29sTWV0YSwgQXBwS2l0T3BlcmF0aW9uU2NoZW1hTWV0YSwgQXBwS2l0T3BlcmF0aW9uIH0gZnJvbSBcIi4vc3JjL3Rvb2wtb3BlcmF0aW9ucy50c1wiO1xuZXhwb3J0IHsgVG9vbFJlZ2lzdHJ5UGx1Z2luIH0gZnJvbSBcIi4vc3JjL3Rvb2wtcHJvdmlkZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgQWdlbnRUb29sUHJvZ3Jlc3NPcHRpb25zLCBBZ2VudFRvb2xFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcIi4vc3JjL3Rvb2wtcHJvdmlkZXIudHNcIjtcbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxZQUFZLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssVUFBVSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssV0FBVyxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLGVBQWUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEtBQUssY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sS0FBSyxTQUFTLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxLQUFLLFdBQVcsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxjQUFjLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFlBQVksTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssY0FBYyxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLOUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR0VORVJBVEVEIGJ5IHByb2plbiB3YXRjaCAtIERPIE5PVCBFRElULlxuLy8gUmVnZW5lcmF0ZWQgZnJvbSB0aGUgZXhwb3J0aW5nIG1vZHVsZXMgaW4gLi9zcmMuXG4vLyBIYW5kIGVkaXRzIGFyZSBvdmVyd3JpdHRlbiBvbiB0aGUgbmV4dCB3YXRjaDsgdGhpcyBmaWxlIGlzIHJlYWQtb25seS5cblxuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfSURFTlRJRklFUiA9IFwiQGRieC10b29scy9hcHBraXRcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMzZcIjtcbmV4cG9ydCAqIGFzIGFwcGtpdCBmcm9tIFwiLi9zcmMvYXBwa2l0LnRzXCI7XG5leHBvcnQgKiBhcyBicmFuZENvbnRleHQgZnJvbSBcIi4vc3JjL2JyYW5kLWNvbnRleHQudHNcIjtcbmV4cG9ydCAqIGFzIGJ1bmRsZSBmcm9tIFwiLi9zcmMvYnVuZGxlLnRzXCI7XG5leHBvcnQgKiBhcyBjYWNoZVN0b3JhZ2UgZnJvbSBcIi4vc3JjL2NhY2hlLXN0b3JhZ2UudHNcIjtcbmV4cG9ydCAqIGFzIGRhdGFicmlja3MgZnJvbSBcIi4vc3JjL2RhdGFicmlja3MudHNcIjtcbmV4cG9ydCAqIGFzIGZpbGVzQ2FjaGUgZnJvbSBcIi4vc3JjL2ZpbGVzLWNhY2hlLnRzXCI7XG5leHBvcnQgKiBhcyBpZGVudGl0eSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCAqIGFzIGludGVyY2VwdG9yIGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0ICogYXMgbGFrZWJhc2VSZXNvbHZlciBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcmVzb2x2ZXIudHNcIjtcbmV4cG9ydCAqIGFzIG1pZ3JhdGlvbiBmcm9tIFwiLi9zcmMvbWlncmF0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBvcGVuYXBpVG9vbCBmcm9tIFwiLi9zcmMvb3BlbmFwaS10b29sLnRzXCI7XG5leHBvcnQgKiBhcyBwZ2FkZHJlc3MgZnJvbSBcIi4vc3JjL3BnYWRkcmVzcy50c1wiO1xuZXhwb3J0ICogYXMgcGx1Z2luRXhlY3V0aW9uIGZyb20gXCIuL3NyYy9wbHVnaW4tZXhlY3V0aW9uLnRzXCI7XG5leHBvcnQgKiBhcyBwbHVnaW5SZWdpc3RyeSBmcm9tIFwiLi9zcmMvcGx1Z2luLXJlZ2lzdHJ5LnRzXCI7XG5leHBvcnQgKiBhcyBwcm92aXNpb24gZnJvbSBcIi4vc3JjL3Byb3Zpc2lvbi50c1wiO1xuZXhwb3J0ICogYXMgcmVxdWVzdFRhZ3MgZnJvbSBcIi4vc3JjL3JlcXVlc3QtdGFncy50c1wiO1xuZXhwb3J0ICogYXMgdGVsZW1ldHJ5IGZyb20gXCIuL3NyYy90ZWxlbWV0cnkudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2xPcGVyYXRpb25zIGZyb20gXCIuL3NyYy90b29sLW9wZXJhdGlvbnMudHNcIjtcbmV4cG9ydCAqIGFzIHRvb2xQcm92aWRlciBmcm9tIFwiLi9zcmMvdG9vbC1wcm92aWRlci50c1wiO1xuZXhwb3J0ICogYXMgdG9vbGtpdEVudHJpZXMgZnJvbSBcIi4vc3JjL3Rvb2xraXQtZW50cmllcy50c1wiO1xuZXhwb3J0IHR5cGUgeyBBdXRvQ29uZmlndXJlTW9kZSwgQ3JlYXRlQXBwQ29uZmlnLCBFeGVjdXRpb25Db250ZXh0TGlrZSwgV29ya3NwYWNlQ2xpZW50TGlrZSB9IGZyb20gXCIuL3NyYy9hcHBraXQudHNcIjtcbmV4cG9ydCB7IGJ1bmRsZUFwcFJlc291cmNlU2NoZW1hLCBmbGF0dGVuQXBwWWFtbEVudiwgZmxhdHRlbkFwcEVudiwgZ2V0QnVuZGxlUGF0aCB9IGZyb20gXCIuL3NyYy9idW5kbGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgQnVuZGxlVmFsaWRhdGVKc29uLCBDb25maWdGaWxlLCBDb25maWdNYXBWYWx1ZSwgQ29uZmlnU291cmNlLCBSZXNvbHZlQ29uZmlnVmFsdWVPcHRpb25zIH0gZnJvbSBcIi4vc3JjL2J1bmRsZS50c1wiO1xuZXhwb3J0IHsgQXBwS2l0Q2FjaGVTdG9yYWdlIH0gZnJvbSBcIi4vc3JjL2NhY2hlLXN0b3JhZ2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXBwS2l0Q2FjaGVTdG9yYWdlT3B0aW9ucywgUGVyc2lzdGVudFN0b3JhZ2VCYXNlIH0gZnJvbSBcIi4vc3JjL2NhY2hlLXN0b3JhZ2UudHNcIjtcbmV4cG9ydCB0eXBlIHsgQ29udGV4dExpa2UgfSBmcm9tIFwiLi9zcmMvZGF0YWJyaWNrcy50c1wiO1xuZXhwb3J0IHsgRmlsZXNDYWNoZU1hbmFnZXIsIEZpbGVzQ2FjaGVQbHVnaW4gfSBmcm9tIFwiLi9zcmMvZmlsZXMtY2FjaGUudHNcIjtcbmV4cG9ydCB0eXBlIHsgRmlsZXNDYWNoZVBsdWdpbkNvbmZpZywgRmlsZXNDYWNoZVNjb3BlLCBGaWxlc0NhY2hlU291cmNlSWRlbnRpdHksIEZpbGVzQ2FjaGVFeHBvcnRzIH0gZnJvbSBcIi4vc3JjL2ZpbGVzLWNhY2hlLnRzXCI7XG5leHBvcnQgeyBBQ0NFU1NfVE9LRU5fSEVBREVSLCBVU0VSX0lEX0hFQURFUiwgVVNFUl9FTUFJTF9IRUFERVIsIElERU5USVRZX01PREVTLCBERUZBVUxUX0lERU5USVRZX01PREUgfSBmcm9tIFwiLi9zcmMvaWRlbnRpdHkudHNcIjtcbmV4cG9ydCB0eXBlIHsgSWRlbnRpdHlNb2RlLCBIZWFkZXJCZWFyaW5nIH0gZnJvbSBcIi4vc3JjL2lkZW50aXR5LnRzXCI7XG5leHBvcnQgeyBMaWZlY3ljbGVCcmlkZ2VQbHVnaW4sIGxpZmVjeWNsZUJyaWRnZSB9IGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0IHR5cGUgeyBMaWZlY3ljbGVFdmVudCwgTGlmZWN5Y2xlSGFuZGxlciwgUmVzb2x2ZWRBcHBFbnYsIEludGVyY2VwdG9yQ29udGV4dCwgSW50ZXJjZXB0b3IsIEludGVyY2VwdG9yUnVudGltZSB9IGZyb20gXCIuL3NyYy9pbnRlcmNlcHRvci50c1wiO1xuZXhwb3J0IHR5cGUgeyBMYWtlYmFzZVJlc29sdmVySW5wdXRzLCBMYWtlYmFzZUNvbm5lY3Rpb24gfSBmcm9tIFwiLi9zcmMvbGFrZWJhc2UtcmVzb2x2ZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgT3duZXJzaGlwTWlncmF0aW9uRXJyb3JPcHRpb25zIH0gZnJvbSBcIi4vc3JjL21pZ3JhdGlvbi50c1wiO1xuZXhwb3J0IHR5cGUgeyBPcGVuQXBpSHR0cE1ldGhvZCwgT3BlbkFwaVRvb2wsIE9wZW5BcGlUb29sc09wdGlvbnMgfSBmcm9tIFwiLi9zcmMvb3BlbmFwaS10b29sLnRzXCI7XG5leHBvcnQgeyBTU0xfTU9ERVMgfSBmcm9tIFwiLi9zcmMvcGdhZGRyZXNzLnRzXCI7XG5leHBvcnQgdHlwZSB7IFNzbE1vZGUsIFBhcnNlZEFkZHJlc3MsIExha2ViYXNlQ29ubmVjdGlvbklucHV0cyB9IGZyb20gXCIuL3NyYy9wZ2FkZHJlc3MudHNcIjtcbmV4cG9ydCB0eXBlIHsgUnVuUGx1Z2luRXhlY3V0aW9uT3B0aW9ucyB9IGZyb20gXCIuL3NyYy9wbHVnaW4tZXhlY3V0aW9uLnRzXCI7XG5leHBvcnQgdHlwZSB7IFBsdWdpbkNvbnRleHRMaWtlIH0gZnJvbSBcIi4vc3JjL3BsdWdpbi1yZWdpc3RyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBSZXF1ZXN0VGFnVmFsdWUgfSBmcm9tIFwiLi9zcmMvcmVxdWVzdC10YWdzLnRzXCI7XG5leHBvcnQgdHlwZSB7IE5hdGl2ZUh0dHBUZWxlbWV0cnlPcHRpb25zIH0gZnJvbSBcIi4vc3JjL3RlbGVtZXRyeS50c1wiO1xuZXhwb3J0IHR5cGUgeyBBcHBLaXRUb29sTWV0YSwgQXBwS2l0T3BlcmF0aW9uU2NoZW1hTWV0YSwgQXBwS2l0T3BlcmF0aW9uIH0gZnJvbSBcIi4vc3JjL3Rvb2wtb3BlcmF0aW9ucy50c1wiO1xuZXhwb3J0IHsgVG9vbFJlZ2lzdHJ5UGx1Z2luIH0gZnJvbSBcIi4vc3JjL3Rvb2wtcHJvdmlkZXIudHNcIjtcbmV4cG9ydCB0eXBlIHsgQWdlbnRUb29sUHJvZ3Jlc3NPcHRpb25zLCBBZ2VudFRvb2xFeGVjdXRpb25Db250ZXh0IH0gZnJvbSBcIi4vc3JjL3Rvb2wtcHJvdmlkZXIudHNcIjtcbiJdfQ==
package/package.json CHANGED
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "devDependencies": {
22
22
  "@databricks/appkit": "0.81.0",
23
- "@dbx-tools/projen": "^0.9.131",
23
+ "@dbx-tools/projen": "^0.9.136",
24
24
  "@types/json-schema": "^7",
25
25
  "@types/node": "^24.6.0",
26
26
  "typescript": "^5.9.3",
@@ -31,13 +31,13 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@databricks/sdk-experimental": "^0.17.0",
34
- "@dbx-tools/auth": "^0.9.131",
35
- "@dbx-tools/cache": "^0.9.131",
36
- "@dbx-tools/core": "^0.9.131",
37
- "@dbx-tools/lakebase": "^0.9.131",
38
- "@dbx-tools/postgres": "^0.9.131",
39
- "@dbx-tools/shared-core": "^0.9.131",
40
- "@dbx-tools/shared-fs": "^0.9.131",
34
+ "@dbx-tools/auth": "^0.9.136",
35
+ "@dbx-tools/cache": "^0.9.136",
36
+ "@dbx-tools/core": "^0.9.136",
37
+ "@dbx-tools/lakebase": "^0.9.136",
38
+ "@dbx-tools/postgres": "^0.9.136",
39
+ "@dbx-tools/shared-core": "^0.9.136",
40
+ "@dbx-tools/shared-fs": "^0.9.136",
41
41
  "@opentelemetry/api": "^1.9.1",
42
42
  "@opentelemetry/sdk-trace-base": "2.8.0",
43
43
  "zod": "4.3.6"
@@ -140,7 +140,7 @@
140
140
  "./package.json": "./package.json"
141
141
  }
142
142
  },
143
- "version": "0.9.131",
143
+ "version": "0.9.136",
144
144
  "types": "./lib/index.d.ts",
145
145
  "dbxToolsConfig": {
146
146
  "tags": [