@askdb/config 1.0.0-beta.15 → 1.0.0-beta.17

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 (45) hide show
  1. package/README.md +4 -4
  2. package/dist/ai-env.d.ts +31 -0
  3. package/dist/ai-env.d.ts.map +1 -0
  4. package/dist/ai-env.js +88 -0
  5. package/dist/ai-env.js.map +1 -0
  6. package/dist/defaults.d.ts +1 -14
  7. package/dist/defaults.d.ts.map +1 -1
  8. package/dist/defaults.js +1 -42
  9. package/dist/defaults.js.map +1 -1
  10. package/dist/index.d.ts +3 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/load-merge.js +1 -1
  15. package/dist/load-merge.js.map +1 -1
  16. package/dist/projection.d.ts +6 -0
  17. package/dist/projection.d.ts.map +1 -1
  18. package/dist/projection.js +11 -4
  19. package/dist/projection.js.map +1 -1
  20. package/dist/resolve.d.ts +36 -0
  21. package/dist/resolve.d.ts.map +1 -0
  22. package/dist/{normalize.js → resolve.js} +381 -7
  23. package/dist/resolve.js.map +1 -0
  24. package/dist/runtime-config.d.ts +5 -173
  25. package/dist/runtime-config.d.ts.map +1 -1
  26. package/dist/runtime-config.js +18 -223
  27. package/dist/runtime-config.js.map +1 -1
  28. package/dist/runtime-store.d.ts +9 -5
  29. package/dist/runtime-store.d.ts.map +1 -1
  30. package/dist/runtime-store.js +8 -7
  31. package/dist/runtime-store.js.map +1 -1
  32. package/dist/runtime-types.d.ts +176 -0
  33. package/dist/runtime-types.d.ts.map +1 -0
  34. package/dist/runtime-types.js +2 -0
  35. package/dist/runtime-types.js.map +1 -0
  36. package/dist/types.d.ts +21 -10
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/dist/flatten.d.ts +0 -14
  40. package/dist/flatten.d.ts.map +0 -1
  41. package/dist/flatten.js +0 -253
  42. package/dist/flatten.js.map +0 -1
  43. package/dist/normalize.d.ts +0 -58
  44. package/dist/normalize.d.ts.map +0 -1
  45. package/dist/normalize.js.map +0 -1
@@ -0,0 +1,176 @@
1
+ import type { AskDbDialectId, AskDbIntrospectionProvider, AskDbLogLevel, AskDbModeV1, AskDbRagStore, AskDbStudioExecuteProvider } from "./constants.js";
2
+ import type { AskDbConfig } from "./types.js";
3
+ /** One resolved `ai` section: its provider, the connection it uses, its model, and an env view built from that connection only. */
4
+ export type AskDbRuntimeAiSection = {
5
+ provider: string;
6
+ /** Connection name within `ai.providerConfig.<provider>`. */
7
+ connection: string;
8
+ model: string | undefined;
9
+ /** `AiEnv` for `@askdb/ai` registry calls, built from this section's connection only. */
10
+ env: Record<string, string | undefined>;
11
+ };
12
+ /**
13
+ * Typed AI runtime settings for `@askdb/core` (not `process.env`).
14
+ */
15
+ export type AskDbRuntimeAiConfig = {
16
+ /**
17
+ * Flat env-shaped map built from the runtime snapshot: the language view plus every other
18
+ * canonical key. Pass to `@askdb/ai` registry methods such as `resolveAiConfig` and
19
+ * `createLanguageModelFromEnv`.
20
+ */
21
+ aiEnv: Record<string, string | undefined>;
22
+ /** `ai.language`: the language model. `model` is undefined only for a custom provider with no model set. */
23
+ language: AskDbRuntimeAiSection & {
24
+ modelFamily: string | undefined;
25
+ };
26
+ /**
27
+ * `ai.embedding`: the embedding model. Undefined unless `rag.embedder` is `"ai"`. Pass `env`
28
+ * to `resolveEmbeddingConfig` / `createEmbeddingModelFromEnv`, and `{ dimensions }` as the
29
+ * latter's options: `env` holds the connection and model, not the width.
30
+ */
31
+ embedding: (AskDbRuntimeAiSection & {
32
+ model: string;
33
+ /**
34
+ * `ai.embedding.dimensions`: the vector size to request from the provider. Undefined
35
+ * leaves the width to the model; `detectEmbeddingDimensions` in `@askdb/rag` learns it.
36
+ */
37
+ dimensions: number | undefined;
38
+ }) | undefined;
39
+ };
40
+ /**
41
+ * OpenAI embedder settings for the `askdb-rag` CLI. Filled from `ai.embedding` when its provider
42
+ * is `openai`; otherwise only from the OpenAI language connection.
43
+ */
44
+ export type AskDbRuntimeRagEmbedderConfig = {
45
+ apiKey: string | undefined;
46
+ baseURL: string | undefined;
47
+ model: string | undefined;
48
+ };
49
+ export type AskDbRuntimeRagConfig = {
50
+ embedder: AskDbRuntimeRagEmbedderConfig;
51
+ /** `rag.store`, or `"memory"` when the config has no `rag` block. Read this rather than `structured.rag`, which is `undefined` when the block is omitted. */
52
+ store: AskDbRagStore;
53
+ /** `rag.storeConfig` as written, with no defaults filled in; `{}` when the config has no `rag` block or the block has no `storeConfig`. */
54
+ storeConfig: NonNullable<AskDbConfig["rag"]>["storeConfig"];
55
+ };
56
+ export type AskDbRuntimeLoggingConfig = {
57
+ /** `logging.level`; `undefined` leaves the level to each tool (the CLI and the HTTP API server differ). */
58
+ level: AskDbLogLevel | undefined;
59
+ correlationId: string | undefined;
60
+ logFile: string | undefined;
61
+ logStdout: boolean;
62
+ };
63
+ export type AskDbRuntimeHttpApiConfig = {
64
+ listen: {
65
+ port: number;
66
+ host: string;
67
+ };
68
+ /** Whether `POST /ask` accepts a per-request `schemaJson` override. Default `false`. */
69
+ allowSchemaOverride: boolean;
70
+ /** Model-call timeout per `POST /ask` request, in milliseconds (1 to 2147483647). Default `60000`. */
71
+ requestTimeoutMs: number;
72
+ };
73
+ export type AskDbRuntimeIntrospectionConfig = {
74
+ provider: AskDbIntrospectionProvider;
75
+ /**
76
+ * Resolved Postgres connection URL when `provider === "postgres"`:
77
+ * `providerConfig.postgres.databaseUrl`. Never read from `process.env`.
78
+ * `undefined` for non-Postgres providers.
79
+ */
80
+ postgresDatabaseUrl: string | undefined;
81
+ /** Resolved from `introspection.providerConfig.prisma.schemaPath`; `undefined` triggers auto-discovery in `@askdb/prisma`. */
82
+ prismaSchemaPath: string | undefined;
83
+ /**
84
+ * Resolved MySQL connection URL when `provider === "mysql"`:
85
+ * `providerConfig.mysql.databaseUrl`. Never read from `process.env`.
86
+ * `undefined` for non-MySQL providers.
87
+ */
88
+ mysqlDatabaseUrl: string | undefined;
89
+ /**
90
+ * Schemas (MySQL/MariaDB: databases) to introspect, for every provider: `introspection.schemas`.
91
+ * `undefined` means the engine's default. `askdb introspect --schemas` overrides it.
92
+ */
93
+ schemas: string[] | undefined;
94
+ /**
95
+ * Resolved SQLite file path when `provider === "sqlite"`:
96
+ * `providerConfig.sqlite.file`. Never read from `process.env`.
97
+ * `undefined` for non-SQLite providers.
98
+ */
99
+ sqliteFile: string | undefined;
100
+ /**
101
+ * Resolved SQL Server connection URL when `provider === "sqlserver"`:
102
+ * `providerConfig.sqlserver.databaseUrl`. Never read from `process.env`.
103
+ * `undefined` for non-SQL Server providers.
104
+ */
105
+ sqlserverDatabaseUrl: string | undefined;
106
+ /** Resolved from `introspection.outputDir`; falls back to the package default (`./askdb/`). */
107
+ outputDir: string;
108
+ };
109
+ export type AskDbRuntimeDevConfig = {
110
+ mockSql: string | undefined;
111
+ };
112
+ export type AskDbRuntimeModesConfig = {
113
+ /** `modes.askdbMode`; `undefined` means `"schema_only"`. */
114
+ askdbMode: AskDbModeV1 | undefined;
115
+ omitSensitiveFromPrompt: boolean;
116
+ };
117
+ export type AskDbRuntimeNlToSqlConfig = {
118
+ /**
119
+ * Optional NL→SQL dialect override from `askdb.config.ts`. When set, hosts
120
+ * (CLI / HTTP API / Studio) pass this to `ask({ dialect })` instead of
121
+ * inferring from the introspection provider.
122
+ */
123
+ dialect: AskDbDialectId | undefined;
124
+ };
125
+ export type AskDbRuntimeStudioConfig = {
126
+ execute: {
127
+ /**
128
+ * Resolved execute provider. Falls back to the active introspection provider when it
129
+ * is a live engine (`postgres`, `mysql`, `sqlite`, `sqlserver`), then defaults to
130
+ * `"postgres"` for backward compatibility.
131
+ */
132
+ provider: AskDbStudioExecuteProvider;
133
+ /** Connection URL used by the Studio playground query runner for network databases. */
134
+ databaseUrl: string | undefined;
135
+ /** SQLite file path used when `provider === "sqlite"`. */
136
+ file: string | undefined;
137
+ /** Whether `POST /api/execute` is allowed. Default `false` (opt-in). */
138
+ enabled: boolean;
139
+ /**
140
+ * Whether `databaseUrl` / `file` may fall back to the active introspection
141
+ * connection. Default `false`.
142
+ */
143
+ useIntrospectionConnection: boolean;
144
+ /**
145
+ * True when the introspection config has a connection for this provider that
146
+ * Studio did not use because `useIntrospectionConnection` is off. Lets hosts
147
+ * explain why execute reports "not configured".
148
+ */
149
+ introspectionConnectionAvailable: boolean;
150
+ /** Per-query timeout in milliseconds. Default `30000`. */
151
+ timeoutMs: number;
152
+ /** Maximum rows returned per query. Default `500`. */
153
+ maxRows: number;
154
+ };
155
+ };
156
+ /**
157
+ * Typed runtime view over the bootstrapped AskDB config snapshot. Every field is resolved from
158
+ * `structured`; `flat` and `ai.aiEnv` are projections of the same resolution, never read back.
159
+ */
160
+ export type AskDbRuntimeConfig = {
161
+ readonly structured: Readonly<AskDbConfig>;
162
+ /** Canonical flattened map (subprocess env via {@link mergeAskDbFlatIntoEnvMap}), built from `structured`. */
163
+ readonly flat: Readonly<Record<string, string>>;
164
+ ai: AskDbRuntimeAiConfig;
165
+ introspection: AskDbRuntimeIntrospectionConfig;
166
+ rag: AskDbRuntimeRagConfig;
167
+ logging: AskDbRuntimeLoggingConfig;
168
+ httpApi: AskDbRuntimeHttpApiConfig;
169
+ dev: AskDbRuntimeDevConfig;
170
+ modes: AskDbRuntimeModesConfig;
171
+ nlToSql: AskDbRuntimeNlToSqlConfig;
172
+ studio: AskDbRuntimeStudioConfig;
173
+ /** One message per deprecated config key in use (it names the old and new key, never a value). */
174
+ deprecations: readonly string[];
175
+ };
176
+ //# sourceMappingURL=runtime-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.d.ts","sourceRoot":"","sources":["../src/runtime-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=runtime-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-types.js","sourceRoot":"","sources":["../src/runtime-types.ts"],"names":[],"mappings":""}
package/dist/types.d.ts CHANGED
@@ -199,8 +199,16 @@ export type OpenaiRagEmbedderConfig = {
199
199
  baseUrl?: string;
200
200
  };
201
201
  export type FileStoreConfig = {
202
- /** Passed to `createFileStore({ basePath })` — vector files use `<basePath>.embeddings.*`. */
202
+ /**
203
+ * Passed to `createFileStore({ basePath })` — vector files use `<basePath>.embeddings.*`.
204
+ * When unset, the CLI and Studio use `<schema dir>/schema` (`./askdb/schema` with the
205
+ * default `introspection.outputDir`).
206
+ */
203
207
  basePath?: string;
208
+ /**
209
+ * @deprecated Never read: the file store writes its files after every change. Loading a
210
+ * config that sets it gives a deprecation warning. Remove it.
211
+ */
204
212
  autoFlush?: boolean;
205
213
  };
206
214
  /** In-memory store has no env-backed options today. */
@@ -223,7 +231,7 @@ export type IntrospectionProviderConfigs = {
223
231
  postgres?: {
224
232
  /**
225
233
  * Postgres connection URL for live introspection (maps to `ASKDB_INTROSPECT_POSTGRES_URL`).
226
- * When omitted, pass `--url` to `askdb introspect` or set `ASKDB_INTROSPECT_POSTGRES_URL` in env.
234
+ * When omitted, pass `--url` to `askdb introspect`.
227
235
  */
228
236
  databaseUrl?: string;
229
237
  };
@@ -238,7 +246,7 @@ export type IntrospectionProviderConfigs = {
238
246
  mysql?: {
239
247
  /**
240
248
  * MySQL connection URL (e.g. `mysql://user:pass@host:port/database`).
241
- * When omitted, pass `--url` to `askdb introspect` or set `ASKDB_INTROSPECT_MYSQL_URL` in env.
249
+ * When omitted, pass `--url` to `askdb introspect`.
242
250
  */
243
251
  databaseUrl?: string;
244
252
  };
@@ -253,8 +261,7 @@ export type IntrospectionProviderConfigs = {
253
261
  sqlserver?: {
254
262
  /**
255
263
  * Microsoft SQL Server connection URL (mssql URI form or the equivalent
256
- * `Server=...;` connection string). When omitted, pass `--url` to `askdb introspect`
257
- * or set `ASKDB_INTROSPECT_SQLSERVER_URL` in env.
264
+ * `Server=...;` connection string). When omitted, pass `--url` to `askdb introspect`.
258
265
  */
259
266
  databaseUrl?: string;
260
267
  };
@@ -363,10 +370,10 @@ export type AskDbConfig = {
363
370
  ai: AskDbAiConfig;
364
371
  introspection: AskDbIntrospectionConfig;
365
372
  /**
366
- * Override the NL→SQL dialect. When unset, the dialect is inferred from the
367
- * introspection provider (or, for Prisma, from the detected `datasource.provider`).
368
- * Use this when the inferred dialect is wrong — e.g. Prisma `schema.prisma` declares
369
- * `provider = "postgresql"` but you actually target a different engine.
373
+ * Override the NL→SQL dialect. When unset, `createAskDb` uses the provider recorded in the
374
+ * schema artifact at introspection time, else `postgres`. Use this when that provider is
375
+ * wrong — e.g. Prisma `schema.prisma` declares `provider = "postgresql"` but you actually
376
+ * target a different engine, or the artifact came from MariaDB, which records `mysql`.
370
377
  *
371
378
  * Keep aligned with `DialectId` in `@askdb/core`. Shipped specs: see `ASKDB_DIALECTS`.
372
379
  */
@@ -466,7 +473,11 @@ export type AskDbConfig = {
466
473
  /** HTTP API server defaults (first-party `apps/http-api`). */
467
474
  httpApi?: {
468
475
  listen?: {
469
- /** When unset, servers default to `3000`. Use `env("PORT")` for platforms that inject `PORT`. */
476
+ /**
477
+ * An integer from 0 to 65535. When unset or `NaN`, servers default to `3000`. Another
478
+ * value fails when the config loads. For platforms that inject `PORT`, use
479
+ * `Number(env("PORT") ?? 3000)`: `env()` returns a string.
480
+ */
470
481
  port?: number;
471
482
  host?: string;
472
483
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAExB;;;;;;;GAOG;AAMH,qFAAqF;AACrF,KAAK,qBAAqB,GAAG;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,mFAAmF;AACnF,KAAK,2BAA2B,GAAG;IACjC,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,qBAAqB,GACjD,2BAA2B,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEJ,8GAA8G;AAC9G,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEhD,6FAA6F;AAC7F,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,+GAA+G;AAC/G,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG;IACtD,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IACrC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,+GAA+G;AAC/G,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;AAEtF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C;;;;OAIG;IACH,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;CAClG,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC5C,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAC1C,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC9C,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAClD,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC5C,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,qFAAqF;IACrF,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,qBAAqB,GAAG;IAClC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7C,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC,CAAC;AAEF,gHAAgH;AAChH,MAAM,MAAM,sBAAsB,GAAG;IACnC,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7C,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mHAAmH;IACnH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAC3C,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAC1C,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAC5C,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC9C,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAC3C,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAM5C,mIAAmI;AACnI,MAAM,MAAM,uBAAuB,GAAG;IACpC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,gIAAgI;AAChI,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE;QACT;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACP;;;;WAIG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE;QACN;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACP;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE;QACV;;;;WAIG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,wBAAwB,GAChC,2BAA2B,GAC3B,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,4BAA4B,CAAC;AAMjC;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,aAAa,CAAC;IAElB,aAAa,EAAE,wBAAwB,CAAC;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;;;OAKG;IACH,GAAG,CAAC,EAAE;QACJ,0HAA0H;QAC1H,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,mIAAmI;QACnI,cAAc,CAAC,EAAE;YACf,MAAM,CAAC,EAAE,uBAAuB,CAAC;SAClC,CAAC;QACF,KAAK,EAAE,aAAa,CAAC;QACrB,WAAW,EAAE;YACX,IAAI,CAAC,EAAE,eAAe,CAAC;YACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;YAC3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;SAChC,CAAC;KACH,CAAC;IAEF,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,kDAAkD;QAClD,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,WAAW,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACvE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpD,6EAA6E;IAC7E,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3B,iEAAiE;IACjE,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C;;;;WAIG;QACH,OAAO,CAAC,EAAE;YACR;;;;eAIG;YACH,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB;;;;;eAKG;YACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;YACrC;;;;eAIG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB;;;;eAIG;YACH,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB;;;;eAIG;YACH,QAAQ,CAAC,EAAE,0BAA0B,CAAC;YACtC,8GAA8G;YAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB;;;eAGG;YACH,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IAEF,8DAA8D;IAC9D,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE;YACP,iGAAiG;YACjG,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;QACF;;;;;WAKG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B;;;;WAIG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAExB;;;;;;;GAOG;AAMH,qFAAqF;AACrF,KAAK,qBAAqB,GAAG;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,mFAAmF;AACnF,KAAK,2BAA2B,GAAG;IACjC,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,qBAAqB,GACjD,2BAA2B,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEJ,8GAA8G;AAC9G,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEhD,6FAA6F;AAC7F,MAAM,MAAM,mBAAmB,GAAG,qBAAqB,GAAG;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,+GAA+G;AAC/G,MAAM,MAAM,iBAAiB,GAAG,qBAAqB,GAAG;IACtD,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG;IACrC,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,+GAA+G;AAC/G,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,SAAS,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;AAEtF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAC/C,MAAM,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC3C;;;;OAIG;IACH,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;CAClG,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC5C,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAC1C,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC9C,mEAAmE;AACnE,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC;AAClD,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAC5C,iEAAiE;AACjE,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,qFAAqF;IACrF,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,qBAAqB,GAAG;IAClC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7C,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qHAAqH;IACrH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC,CAAC;AAEF,gHAAgH;AAChH,MAAM,MAAM,sBAAsB,GAAG;IACnC,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7C,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mHAAmH;IACnH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAC3C,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC;AAC1C,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAC5C,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAC9C,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAAG,aAAa,CAAC;AAC3C,6DAA6D;AAC7D,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAM5C,mIAAmI;AACnI,MAAM,MAAM,uBAAuB,GAAG;IACpC,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,gIAAgI;AAChI,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,EAAE;QACT;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACP;;;;WAIG;QACH,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE;QACN;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACP;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE;QACV;;;WAGG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,EAAE,UAAU,CAAC;IACrB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,MAAM,wBAAwB,GAChC,2BAA2B,GAC3B,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,4BAA4B,CAAC;AAMjC;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,aAAa,CAAC;IAElB,aAAa,EAAE,wBAAwB,CAAC;IAExC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;;;OAKG;IACH,GAAG,CAAC,EAAE;QACJ,0HAA0H;QAC1H,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,mIAAmI;QACnI,cAAc,CAAC,EAAE;YACf,MAAM,CAAC,EAAE,uBAAuB,CAAC;SAClC,CAAC;QACF,KAAK,EAAE,aAAa,CAAC;QACrB,WAAW,EAAE;YACX,IAAI,CAAC,EAAE,eAAe,CAAC;YACvB,MAAM,CAAC,EAAE,iBAAiB,CAAC;YAC3B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;SAChC,CAAC;KACH,CAAC;IAEF,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gCAAgC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,kDAAkD;QAClD,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,WAAW,CAAC;QAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACvE,IAAI,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEpD,6EAA6E;IAC7E,GAAG,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3B,iEAAiE;IACjE,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1C;;;;WAIG;QACH,OAAO,CAAC,EAAE;YACR;;;;eAIG;YACH,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB;;;;;eAKG;YACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;YACrC;;;;eAIG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB;;;;eAIG;YACH,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB;;;;eAIG;YACH,QAAQ,CAAC,EAAE,0BAA0B,CAAC;YACtC,8GAA8G;YAC9G,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB;;;eAGG;YACH,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IAEF,8DAA8D;IAC9D,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE;YACP;;;;eAIG;YACH,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,CAAC;QACF;;;;;WAKG;QACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;QAC9B;;;;WAIG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@askdb/config",
3
- "version": "1.0.0-beta.15",
3
+ "version": "1.0.0-beta.17",
4
4
  "description": "AskDB configuration helpers: Prisma-style env() and askdb.config file discovery for first-party apps.",
5
5
  "keywords": [
6
6
  "askdb",
package/dist/flatten.d.ts DELETED
@@ -1,14 +0,0 @@
1
- import { type NormalizedAiEmbeddingSection, type NormalizedAiLanguageSection, type NormalizedAskDbConfig } from "./normalize.js";
2
- import type { AskDbConfig } from "./types.js";
3
- /** The env view of `ai.language`: its provider, its connection only, its model and reasoning. */
4
- export declare function aiLanguageEnv(section: NormalizedAiLanguageSection): Record<string, string>;
5
- /** The env view of `ai.embedding`: its provider, its connection only, and its model. Nothing from the language side. */
6
- export declare function aiEmbeddingEnv(section: NormalizedAiEmbeddingSection): Record<string, string>;
7
- /**
8
- * Flattens a nested {@link AskDbConfig} into canonical env keys for the runtime snapshot
9
- * (`AskDbEnvProjection.entries`). Deprecated keys are translated first (see
10
- * `normalizeAskDbConfig`); the AI keys come from the `ai.language` section's connection.
11
- */
12
- export declare function flattenAskDbConfig(config: AskDbConfig): Record<string, string>;
13
- export declare function flattenNormalizedAskDbConfig(config: NormalizedAskDbConfig): Record<string, string>;
14
- //# sourceMappingURL=flatten.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../src/flatten.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAA0B,WAAW,EAAE,MAAM,YAAY,CAAC;AAoEtE,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO1F;AAED,wHAAwH;AACxH,wBAAgB,cAAc,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM5F;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9E;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4KlG"}
package/dist/flatten.js DELETED
@@ -1,253 +0,0 @@
1
- import { ASKDB_LOG_LEVELS, ASKDB_MODES_V1, ASKDB_RAG_STORES, } from "./constants.js";
2
- import { DEFAULT_INTROSPECT_OUTPUT_DIR, DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS, DEFAULT_RAG_FILE_BASE_PATH, normalizePgvectorIndexStrategy, parseHttpApiRequestTimeoutMs, parsePositiveInteger, } from "./defaults.js";
3
- import { isMember, normalizeAskDbConfig, } from "./normalize.js";
4
- function set(out, key, value) {
5
- if (value === undefined)
6
- return;
7
- const t = value.trim();
8
- if (t === "")
9
- return;
10
- out[key] = t;
11
- }
12
- /** Writes a connection's settings under the env keys `provider`'s `@askdb/ai` adapter reads. */
13
- function applyAiConnection(out, provider, connection) {
14
- switch (provider) {
15
- case "openai":
16
- set(out, "OPENAI_API_KEY", connection.apiKey);
17
- set(out, "OPENAI_BASE_URL", connection.baseUrl);
18
- return;
19
- case "anthropic":
20
- set(out, "ANTHROPIC_API_KEY", connection.apiKey);
21
- set(out, "ANTHROPIC_BASE_URL", connection.baseUrl);
22
- return;
23
- case "google":
24
- set(out, "GOOGLE_GENERATIVE_AI_API_KEY", connection.apiKey);
25
- set(out, "GOOGLE_AI_BASE_URL", connection.baseUrl);
26
- return;
27
- case "gateway":
28
- set(out, "AI_GATEWAY_API_KEY", connection.apiKey);
29
- set(out, "ASKDB_AI_BASE_URL", connection.baseUrl);
30
- return;
31
- case "azure":
32
- case "foundry":
33
- // `@askdb/core` treats `foundry` like Azure for env parsing.
34
- set(out, "AZURE_OPENAI_API_KEY", connection.apiKey);
35
- set(out, "AZURE_OPENAI_API_KEY_SECONDARY", connection.secondaryApiKey);
36
- set(out, "ASKDB_AI_AZURE_RESOURCE_NAME", connection.resourceName);
37
- set(out, "AZURE_OPENAI_BASE_URL", connection.baseUrl);
38
- set(out, "AZURE_OPENAI_API_VERSION", connection.apiVersion);
39
- return;
40
- default:
41
- // Custom/third-party provider: the universal ASKDB_AI_* keys that @askdb/ai's
42
- // resolveBaseConfig honors for every registered adapter. Works end to end only when the
43
- // host registry contains an adapter with this provider name.
44
- set(out, "ASKDB_AI_API_KEY", connection.apiKey);
45
- set(out, "ASKDB_AI_BASE_URL", connection.baseUrl);
46
- }
47
- }
48
- function applyLanguageModel(out, section) {
49
- const { provider, model } = section;
50
- if (provider === "openai") {
51
- set(out, "OPENAI_MODEL", model);
52
- set(out, "ASKDB_MODEL", model);
53
- }
54
- else if (provider === "azure" || provider === "foundry") {
55
- set(out, "AZURE_OPENAI_DEPLOYMENT", model);
56
- set(out, "AZURE_DEPLOYMENT_NAME", model);
57
- set(out, "ASKDB_AI_MODEL", model);
58
- set(out, "ASKDB_AI_AZURE_MODEL_FAMILY", section.modelFamily);
59
- }
60
- else {
61
- set(out, "ASKDB_AI_MODEL", model);
62
- }
63
- }
64
- function applyReasoningAi(out, reasoning) {
65
- if (!reasoning)
66
- return;
67
- set(out, "ASKDB_AI_REASONING_EFFORT", reasoning.effort);
68
- set(out, "ASKDB_AI_REASONING_EFFORT_NL_TO_SQL", reasoning.nlToSql);
69
- set(out, "ASKDB_AI_REASONING_EFFORT_ENRICHMENT", reasoning.enrichment);
70
- }
71
- /** The env view of `ai.language`: its provider, its connection only, its model and reasoning. */
72
- export function aiLanguageEnv(section) {
73
- const out = {};
74
- set(out, "ASKDB_AI_PROVIDER", section.provider);
75
- applyAiConnection(out, section.provider, section.connection);
76
- applyLanguageModel(out, section);
77
- applyReasoningAi(out, section.reasoning);
78
- return out;
79
- }
80
- /** The env view of `ai.embedding`: its provider, its connection only, and its model. Nothing from the language side. */
81
- export function aiEmbeddingEnv(section) {
82
- const out = {};
83
- set(out, "ASKDB_AI_PROVIDER", section.provider);
84
- applyAiConnection(out, section.provider, section.connection);
85
- set(out, "ASKDB_AI_EMBEDDING_MODEL", section.model);
86
- return out;
87
- }
88
- /**
89
- * Flattens a nested {@link AskDbConfig} into canonical env keys for the runtime snapshot
90
- * (`AskDbEnvProjection.entries`). Deprecated keys are translated first (see
91
- * `normalizeAskDbConfig`); the AI keys come from the `ai.language` section's connection.
92
- */
93
- export function flattenAskDbConfig(config) {
94
- return flattenNormalizedAskDbConfig(normalizeAskDbConfig(config).config);
95
- }
96
- export function flattenNormalizedAskDbConfig(config) {
97
- const out = {};
98
- // --- AI ---
99
- Object.assign(out, aiLanguageEnv(config.ai.language));
100
- // --- Introspection ---
101
- const intro = config.introspection;
102
- if (intro.provider === "postgres") {
103
- set(out, "ASKDB_INTROSPECT_POSTGRES_URL", intro.providerConfig?.postgres?.databaseUrl);
104
- }
105
- else if (intro.provider === "prisma") {
106
- // schemaPath lives in structured config (introspection.providerConfig.prisma.schemaPath);
107
- // @askdb/prisma discovers it at runtime — no flat env key needed.
108
- }
109
- else if (intro.provider === "mysql") {
110
- set(out, "ASKDB_INTROSPECT_MYSQL_URL", intro.providerConfig?.mysql?.databaseUrl);
111
- }
112
- else if (intro.provider === "sqlite") {
113
- set(out, "ASKDB_INTROSPECT_SQLITE_FILE", intro.providerConfig?.sqlite?.file);
114
- }
115
- else if (intro.provider === "sqlserver") {
116
- set(out, "ASKDB_INTROSPECT_SQLSERVER_URL", intro.providerConfig?.sqlserver?.databaseUrl);
117
- }
118
- const outDir = intro.outputDir?.trim() || DEFAULT_INTROSPECT_OUTPUT_DIR;
119
- set(out, "ASKDB_INTROSPECT_OUT", outDir);
120
- set(out, "ASKDB_INTROSPECT_SCHEMAS", intro.schemas?.join(","));
121
- // --- RAG ---
122
- const rag = config.rag;
123
- set(out, "ASKDB_RAG_EMBEDDER", rag.embedder);
124
- const embedding = config.ai.embedding;
125
- const width = embedding?.dimensions;
126
- if (embedding) {
127
- set(out, "ASKDB_RAG_EMBEDDER_MODEL", embedding.model);
128
- if (width !== undefined)
129
- set(out, "ASKDB_RAG_EMBEDDER_DIMENSIONS", String(width));
130
- }
131
- if (!isMember(rag.store, ASKDB_RAG_STORES)) {
132
- throw new Error(`askdb.config: invalid rag.store "${rag.store}" (expected one of: ${ASKDB_RAG_STORES.join(", ")}).`);
133
- }
134
- if (rag.store === "file") {
135
- const f = rag.storeConfig.file;
136
- if (!f)
137
- throw new Error('askdb.config: rag.store is "file" but `rag.storeConfig.file` is missing.');
138
- const basePath = f.basePath?.trim() || DEFAULT_RAG_FILE_BASE_PATH;
139
- set(out, "ASKDB_RAG_FILE_BASE_PATH", basePath);
140
- }
141
- else if (rag.store === "memory") {
142
- // no env keys
143
- }
144
- else if (rag.store === "pgvector") {
145
- const p = rag.storeConfig.pgvector;
146
- if (!p)
147
- throw new Error('askdb.config: rag.store is "pgvector" but `rag.storeConfig.pgvector` is missing.');
148
- const url = p.databaseUrl?.trim();
149
- if (!url) {
150
- throw new Error('askdb.config: rag.store is "pgvector" but `storeConfig.pgvector.databaseUrl` is missing (set ASKDB_PGVECTOR_URL via env in askdb.config).');
151
- }
152
- set(out, "ASKDB_PGVECTOR_URL", url);
153
- // With `rag.embedder: "ai"`, normalization has already moved any pgvector width to ai.embedding,
154
- // where it's only a size to request: unset, the model's own width applies, learned at index time.
155
- // The mock embedder's vectors are always 64 wide, whatever rag.storeConfig.pgvector.dimensions says.
156
- const pgDims = embedding ? width : DEFAULT_MOCK_RAG_EMBEDDING_DIMENSIONS;
157
- if (pgDims !== undefined)
158
- set(out, "ASKDB_RAG_EMBEDDER_DIMENSIONS", String(pgDims));
159
- const strategy = normalizePgvectorIndexStrategy(typeof p.indexStrategy === "string" ? p.indexStrategy : undefined);
160
- set(out, "ASKDB_PGVECTOR_INDEX_STRATEGY", strategy);
161
- }
162
- // --- Logging ---
163
- if (config.logging?.level) {
164
- const lvl = config.logging.level;
165
- if (!isMember(lvl, ASKDB_LOG_LEVELS)) {
166
- throw new Error(`askdb.config: invalid logging.level "${lvl}" (expected one of: ${ASKDB_LOG_LEVELS.join(", ")}).`);
167
- }
168
- set(out, "ASKDB_LOG_LEVEL", lvl);
169
- }
170
- set(out, "ASKDB_CORRELATION_ID", config.logging?.correlationId);
171
- // --- Modes ---
172
- if (config.modes?.askdbMode) {
173
- const m = config.modes.askdbMode;
174
- if (!isMember(m, ASKDB_MODES_V1)) {
175
- throw new Error(`askdb.config: invalid modes.askdbMode "${m}" (expected one of: ${ASKDB_MODES_V1.join(", ")}).`);
176
- }
177
- set(out, "ASKDB_MODE", m);
178
- }
179
- if (config.modes?.omitSensitiveFromPrompt === true) {
180
- set(out, "ASKDB_OMIT_SENSITIVE_FROM_PROMPT", "true");
181
- }
182
- // --- Host ---
183
- set(out, "ASKDB_SCHEMA_PATH", config.host?.schemaPath);
184
- set(out, "ASKDB_SCHEMA_JSON", config.host?.schemaJson);
185
- if (config.logging?.logFile) {
186
- set(out, "ASKDB_LOG_FILE", config.logging.logFile);
187
- }
188
- if (config.logging?.logStdout === true) {
189
- set(out, "ASKDB_LOG_STDOUT", "true");
190
- }
191
- // --- Dev ---
192
- if (config.dev?.mockSql) {
193
- set(out, "ASKDB_MOCK_SQL", config.dev.mockSql);
194
- }
195
- // --- Studio ---
196
- if (config.studio?.listen?.host) {
197
- set(out, "ASKDB_STUDIO_HOST", config.studio.listen.host);
198
- }
199
- if (config.studio?.listen?.port !== undefined && !Number.isNaN(config.studio.listen.port)) {
200
- set(out, "ASKDB_STUDIO_PORT", String(config.studio.listen.port));
201
- }
202
- set(out, "ASKDB_STUDIO_EXECUTE_PROVIDER", config.studio?.execute?.provider);
203
- set(out, "ASKDB_STUDIO_DATABASE_URL", config.studio?.execute?.databaseUrl);
204
- set(out, "ASKDB_STUDIO_SQLITE_FILE", config.studio?.execute?.file);
205
- const studioExecute = config.studio?.execute;
206
- if (studioExecute?.enabled !== undefined) {
207
- if (typeof studioExecute.enabled !== "boolean") {
208
- throw new Error("askdb.config: studio.execute.enabled must be a boolean.");
209
- }
210
- set(out, "ASKDB_STUDIO_EXECUTE_ENABLED", String(studioExecute.enabled));
211
- }
212
- if (studioExecute?.useIntrospectionConnection !== undefined) {
213
- if (typeof studioExecute.useIntrospectionConnection !== "boolean") {
214
- throw new Error("askdb.config: studio.execute.useIntrospectionConnection must be a boolean.");
215
- }
216
- set(out, "ASKDB_STUDIO_EXECUTE_USE_INTROSPECTION_CONNECTION", String(studioExecute.useIntrospectionConnection));
217
- }
218
- for (const [field, key] of [
219
- ["timeoutMs", "ASKDB_STUDIO_EXECUTE_TIMEOUT_MS"],
220
- ["maxRows", "ASKDB_STUDIO_EXECUTE_MAX_ROWS"],
221
- ]) {
222
- const raw = studioExecute?.[field];
223
- if (raw === undefined)
224
- continue;
225
- const n = parsePositiveInteger(raw);
226
- if (n === undefined) {
227
- throw new Error(`askdb.config: studio.execute.${field} must be a positive integer (got ${JSON.stringify(raw)}).`);
228
- }
229
- set(out, key, String(n));
230
- }
231
- // --- HTTP API listen (canonical keys on runtime flat map) ---
232
- const httpListen = config.httpApi?.listen;
233
- if (httpListen?.port !== undefined && !Number.isNaN(httpListen.port)) {
234
- set(out, "PORT", String(httpListen.port));
235
- }
236
- if (httpListen?.host) {
237
- set(out, "HOST", httpListen.host);
238
- }
239
- const allowSchemaOverride = config.httpApi?.allowSchemaOverride;
240
- if (allowSchemaOverride !== undefined) {
241
- if (typeof allowSchemaOverride !== "boolean") {
242
- throw new Error("askdb.config: httpApi.allowSchemaOverride must be a boolean.");
243
- }
244
- if (allowSchemaOverride)
245
- set(out, "ASKDB_HTTP_ALLOW_SCHEMA_OVERRIDE", "true");
246
- }
247
- const requestTimeoutMs = parseHttpApiRequestTimeoutMs(config.httpApi?.requestTimeoutMs, "httpApi.requestTimeoutMs");
248
- if (requestTimeoutMs !== undefined) {
249
- set(out, "ASKDB_HTTP_REQUEST_TIMEOUT_MS", String(requestTimeoutMs));
250
- }
251
- return out;
252
- }
253
- //# sourceMappingURL=flatten.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flatten.js","sourceRoot":"","sources":["../src/flatten.ts"],"names":[],"mappings":"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"}