@cyanheads/mcp-ts-core 0.13.2 → 0.13.4
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/AGENTS.md +12 -10
- package/CLAUDE.md +12 -10
- package/README.md +2 -2
- package/changelog/0.13.x/0.13.3.md +44 -0
- package/changelog/0.13.x/0.13.4.md +65 -0
- package/changelog/template.md +7 -7
- package/dist/config/appRoot.d.ts.map +1 -1
- package/dist/config/appRoot.js +48 -16
- package/dist/config/appRoot.js.map +1 -1
- package/dist/core/app.d.ts +20 -0
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +1 -0
- package/dist/core/app.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/linter/rules/schema-rules.d.ts +19 -0
- package/dist/linter/rules/schema-rules.d.ts.map +1 -1
- package/dist/linter/rules/schema-rules.js +36 -0
- package/dist/linter/rules/schema-rules.js.map +1 -1
- package/dist/linter/rules/tool-rules.d.ts +17 -0
- package/dist/linter/rules/tool-rules.d.ts.map +1 -1
- package/dist/linter/rules/tool-rules.js +97 -1
- package/dist/linter/rules/tool-rules.js.map +1 -1
- package/dist/mcp-server/handlerContext.d.ts +6 -0
- package/dist/mcp-server/handlerContext.d.ts.map +1 -1
- package/dist/mcp-server/handlerContext.js.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +17 -9
- package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
- package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts +114 -0
- package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/inputPrevalidation.js +428 -0
- package/dist/mcp-server/tools/utils/inputPrevalidation.js.map +1 -0
- package/dist/mcp-server/tools/utils/strictenRecord.d.ts +42 -0
- package/dist/mcp-server/tools/utils/strictenRecord.d.ts.map +1 -0
- package/dist/mcp-server/tools/utils/strictenRecord.js +48 -0
- package/dist/mcp-server/tools/utils/strictenRecord.js.map +1 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts +27 -0
- package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolDefinition.js +35 -6
- package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +28 -4
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +245 -23
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/services/canvas/core/sqlGate.d.ts +14 -1
- package/dist/services/canvas/core/sqlGate.d.ts.map +1 -1
- package/dist/services/canvas/core/sqlGate.js +69 -7
- package/dist/services/canvas/core/sqlGate.js.map +1 -1
- package/dist/services/canvas/index.d.ts +1 -1
- package/dist/services/canvas/index.d.ts.map +1 -1
- package/dist/services/canvas/index.js +1 -1
- package/dist/services/canvas/index.js.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +20 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +75 -25
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
- package/dist/services/canvas/types.d.ts +6 -1
- package/dist/services/canvas/types.d.ts.map +1 -1
- package/dist/types-global/errors.d.ts.map +1 -1
- package/dist/types-global/errors.js +4 -3
- package/dist/types-global/errors.js.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.d.ts +33 -0
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js +45 -3
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
- package/dist/utils/network/httpError.d.ts +13 -2
- package/dist/utils/network/httpError.d.ts.map +1 -1
- package/dist/utils/network/httpError.js +4 -2
- package/dist/utils/network/httpError.js.map +1 -1
- package/dist/utils/network/pacer.d.ts +117 -0
- package/dist/utils/network/pacer.d.ts.map +1 -0
- package/dist/utils/network/pacer.js +304 -0
- package/dist/utils/network/pacer.js.map +1 -0
- package/dist/utils/network/retry.d.ts +119 -3
- package/dist/utils/network/retry.d.ts.map +1 -1
- package/dist/utils/network/retry.js +176 -35
- package/dist/utils/network/retry.js.map +1 -1
- package/dist/utils/security/rateLimiter.d.ts +19 -1
- package/dist/utils/security/rateLimiter.d.ts.map +1 -1
- package/dist/utils/security/rateLimiter.js +49 -1
- package/dist/utils/security/rateLimiter.js.map +1 -1
- package/dist/utils/telemetry/attributes.d.ts +19 -0
- package/dist/utils/telemetry/attributes.d.ts.map +1 -1
- package/dist/utils/telemetry/attributes.js +30 -0
- package/dist/utils/telemetry/attributes.js.map +1 -1
- package/framework-skills/add-tool/SKILL.md +43 -2
- package/framework-skills/api-canvas/SKILL.md +8 -4
- package/framework-skills/api-config/SKILL.md +4 -4
- package/framework-skills/api-errors/SKILL.md +19 -10
- package/framework-skills/api-linter/SKILL.md +48 -3
- package/framework-skills/api-telemetry/SKILL.md +26 -2
- package/framework-skills/api-utils/SKILL.md +7 -3
- package/framework-skills/api-utils/references/security.md +2 -2
- package/framework-skills/design-mcp-server/SKILL.md +17 -2
- package/framework-skills/field-test/SKILL.md +3 -1
- package/framework-skills/git-wrapup/SKILL.md +90 -68
- package/framework-skills/orchestrations/SKILL.md +3 -3
- package/framework-skills/release-and-publish/SKILL.md +10 -10
- package/framework-skills/release-pr-review/SKILL.md +19 -26
- package/framework-skills/report-issue-framework/SKILL.md +6 -35
- package/framework-skills/report-issue-local/SKILL.md +6 -36
- package/framework-skills/tool-defs-analysis/SKILL.md +4 -4
- package/package.json +7 -7
- package/templates/.github/ISSUE_TEMPLATE/bug_report.yml +2 -2
- package/templates/.github/ISSUE_TEMPLATE/feature_request.yml +2 -2
- package/templates/.github/workflows/codeql.yml +39 -0
- package/templates/AGENTS.md +3 -1
- package/templates/CLAUDE.md +3 -1
- package/templates/changelog/template.md +7 -7
- package/templates/package.json +2 -2
- package/templates/src/index.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlGate.d.ts","sourceRoot":"","sources":["../../../../src/services/canvas/core/sqlGate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sqlGate.d.ts","sourceRoot":"","sources":["../../../../src/services/canvas/core/sqlGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,mBAAmB,CAAuB,CAAC;AAE7F;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;aAC3B,cAAc,EAAE,iBAAiB;aACjC,kBAAkB,EAAE,sBAAsB;IAC1C,2FAA2F;aAC3F,UAAU,EAAE,aAAa;aACzB,sBAAsB,EAAE,2BAA2B;aACnD,cAAc,EAAE,iBAAiB;aACjC,oBAAoB,EAAE,yBAAyB;aAC/C,eAAe,EAAE,kBAAkB;aACnC,eAAe,EAAE,kBAAkB;aACnC,kBAAkB,EAAE,qBAAqB;aACzC,mBAAmB,EAAE,uBAAuB;CACpC,CAAC;AAEX,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAkCrF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAElF;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAuErD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CA2CrD,CAAC;AAmFH;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CA8BzD;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAgBxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,iEAAiE;IACjE,aAAa,EAAE,mBAAmB,CAAC;IACnC,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAGP;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,mBAAmB,CAAC;CACpC,GAAG,IAAI,CAeP;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAsB1D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,GAAG;IACxD,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B,CAKA;AAwDD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAkC,CAAC;AA6CvE,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CA8BnF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD"}
|
|
@@ -19,7 +19,9 @@
|
|
|
19
19
|
* `EXPLAIN (FORMAT JSON)` tree; reject any operator outside the allowlist
|
|
20
20
|
* or any string field referencing a deny-listed function.
|
|
21
21
|
*
|
|
22
|
-
* Rejection paths throw `ValidationError` with a structured `data.reason
|
|
22
|
+
* Rejection paths throw `ValidationError` with a structured `data.reason` and a
|
|
23
|
+
* `data.recovery.hint` phrased for a caller that can only reach the canvas
|
|
24
|
+
* through a consuming server's tools.
|
|
23
25
|
*
|
|
24
26
|
* @module src/services/canvas/core/sqlGate
|
|
25
27
|
*/
|
|
@@ -44,6 +46,36 @@ export const SQL_GATE_REASONS = {
|
|
|
44
46
|
identifierReserved: 'identifier_reserved',
|
|
45
47
|
systemCatalogAccess: 'system_catalog_access',
|
|
46
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* Recovery hint per gate reason.
|
|
51
|
+
*
|
|
52
|
+
* A gate rejection is read by a model that can only call the consuming
|
|
53
|
+
* server's tools, so each hint names a capability rather than the framework
|
|
54
|
+
* method behind it: the caller cannot invoke `registerTable` or `describe`, and
|
|
55
|
+
* naming them invites a hallucinated tool call. The `Record` is exhaustive by
|
|
56
|
+
* type, so a new reason cannot ship without one.
|
|
57
|
+
*/
|
|
58
|
+
const SQL_GATE_RECOVERY = {
|
|
59
|
+
[SQL_GATE_REASONS.multiStatement]: 'Send exactly one SELECT statement; split multi-statement SQL into separate calls.',
|
|
60
|
+
[SQL_GATE_REASONS.nonSelectStatement]: 'Rewrite as a single SELECT — this surface is read-only and cannot create, alter, or drop tables.',
|
|
61
|
+
[SQL_GATE_REASONS.invalidSql]: "Correct the column or function the message names; list the staged columns with this server's dataframe-describe tool.",
|
|
62
|
+
[SQL_GATE_REASONS.planOperatorNotAllowed]: 'Rewrite using read-only SELECT constructs — joins, aggregates, window functions, and CTEs are supported.',
|
|
63
|
+
[SQL_GATE_REASONS.deniedFunction]: 'Remove the file-reading or external-data function — only the staged tables are queryable.',
|
|
64
|
+
[SQL_GATE_REASONS.deniedFunctionInPlan]: 'Remove the file-reading or external-data function — only the staged tables are queryable.',
|
|
65
|
+
[SQL_GATE_REASONS.identifierEmpty]: 'Use a name of letters, digits, and underscores starting with a letter or underscore, 63 characters or fewer.',
|
|
66
|
+
[SQL_GATE_REASONS.identifierShape]: 'Use a name of letters, digits, and underscores starting with a letter or underscore, 63 characters or fewer.',
|
|
67
|
+
[SQL_GATE_REASONS.identifierReserved]: 'Choose a name that is not a SQL keyword — for example, prefix it with the dataset name.',
|
|
68
|
+
[SQL_GATE_REASONS.systemCatalogAccess]: "Query only the staged dataframe tables; use this server's dataframe-describe tool to list them.",
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* The wire-shaped recovery for a gate reason, ready to spread into an error's
|
|
72
|
+
* `data`. The framework mirrors `data.recovery.hint` into `content[]`, so
|
|
73
|
+
* spreading this is what puts a `Recovery:` line in front of a format()-only
|
|
74
|
+
* client.
|
|
75
|
+
*/
|
|
76
|
+
export function gateRecovery(reason) {
|
|
77
|
+
return { recovery: { hint: SQL_GATE_RECOVERY[reason] } };
|
|
78
|
+
}
|
|
47
79
|
/**
|
|
48
80
|
* Allowlist of read-only operator names that can appear in an EXPLAIN plan.
|
|
49
81
|
* Anything outside this set causes rejection. Notable exclusions:
|
|
@@ -266,14 +298,22 @@ export function assertNoDeniedFunctions(sql) {
|
|
|
266
298
|
const match = DENIED_FUNCTION_CALL_REGEX.exec(stripped);
|
|
267
299
|
if (match?.[1]) {
|
|
268
300
|
const fn = match[1].toLowerCase();
|
|
269
|
-
throw validationError(`Canvas query references disallowed table function: ${fn}. File-reading and external-data functions are not permitted.`, {
|
|
301
|
+
throw validationError(`Canvas query references disallowed table function: ${fn}. File-reading and external-data functions are not permitted.`, {
|
|
302
|
+
reason: SQL_GATE_REASONS.deniedFunction,
|
|
303
|
+
function: fn,
|
|
304
|
+
...gateRecovery(SQL_GATE_REASONS.deniedFunction),
|
|
305
|
+
});
|
|
270
306
|
}
|
|
271
307
|
// Deny pragma_* table function calls (whole namespace, not just known names).
|
|
272
308
|
DENIED_PRAGMA_CALL_REGEX.lastIndex = 0;
|
|
273
309
|
const pragmaMatch = DENIED_PRAGMA_CALL_REGEX.exec(stripped);
|
|
274
310
|
if (pragmaMatch?.[1]) {
|
|
275
311
|
const fn = pragmaMatch[1].toLowerCase();
|
|
276
|
-
throw validationError(`Canvas query references disallowed table function: ${fn}. PRAGMA metadata functions are not permitted.`, {
|
|
312
|
+
throw validationError(`Canvas query references disallowed table function: ${fn}. PRAGMA metadata functions are not permitted.`, {
|
|
313
|
+
reason: SQL_GATE_REASONS.deniedFunction,
|
|
314
|
+
function: fn,
|
|
315
|
+
...gateRecovery(SQL_GATE_REASONS.deniedFunction),
|
|
316
|
+
});
|
|
277
317
|
}
|
|
278
318
|
}
|
|
279
319
|
/**
|
|
@@ -312,7 +352,11 @@ export function assertNoSystemCatalogs(sql) {
|
|
|
312
352
|
const match = SYSTEM_CATALOG_REGEX.exec(stripped);
|
|
313
353
|
if (match) {
|
|
314
354
|
const name = (match[1] ?? match[2] ?? match[0]).toLowerCase();
|
|
315
|
-
throw validationError(`Canvas query references a system catalog: ${name}. System catalogs are not permitted
|
|
355
|
+
throw validationError(`Canvas query references a system catalog: ${name}. System catalogs are not permitted.`, {
|
|
356
|
+
reason: SQL_GATE_REASONS.systemCatalogAccess,
|
|
357
|
+
catalog: name,
|
|
358
|
+
...gateRecovery(SQL_GATE_REASONS.systemCatalogAccess),
|
|
359
|
+
});
|
|
316
360
|
}
|
|
317
361
|
}
|
|
318
362
|
/**
|
|
@@ -333,10 +377,15 @@ export function assertSelectOnly(input) {
|
|
|
333
377
|
throw validationError('Canvas query must contain exactly one SQL statement.', {
|
|
334
378
|
reason: SQL_GATE_REASONS.multiStatement,
|
|
335
379
|
statementCount: input.statementCount,
|
|
380
|
+
...gateRecovery(SQL_GATE_REASONS.multiStatement),
|
|
336
381
|
});
|
|
337
382
|
}
|
|
338
383
|
if (!ALLOWED_STATEMENT_TYPES.has(input.statementType)) {
|
|
339
|
-
throw validationError(`Canvas query must be SELECT; got ${input.statementType}
|
|
384
|
+
throw validationError(`Canvas query must be SELECT; got ${input.statementType}.`, {
|
|
385
|
+
reason: SQL_GATE_REASONS.nonSelectStatement,
|
|
386
|
+
statementType: input.statementType,
|
|
387
|
+
...gateRecovery(SQL_GATE_REASONS.nonSelectStatement),
|
|
388
|
+
});
|
|
340
389
|
}
|
|
341
390
|
}
|
|
342
391
|
/**
|
|
@@ -349,12 +398,14 @@ export function assertPlanReadOnly(planJson) {
|
|
|
349
398
|
throw validationError(`Canvas query references disallowed table function in plan: ${[...deniedFunctions].sort().join(', ')}.`, {
|
|
350
399
|
reason: SQL_GATE_REASONS.deniedFunctionInPlan,
|
|
351
400
|
functions: [...deniedFunctions].sort(),
|
|
401
|
+
...gateRecovery(SQL_GATE_REASONS.deniedFunctionInPlan),
|
|
352
402
|
});
|
|
353
403
|
}
|
|
354
404
|
if (offending.size > 0) {
|
|
355
405
|
throw validationError(`Canvas query contains disallowed operators: ${[...offending].sort().join(', ')}.`, {
|
|
356
406
|
reason: SQL_GATE_REASONS.planOperatorNotAllowed,
|
|
357
407
|
operators: [...offending].sort(),
|
|
408
|
+
...gateRecovery(SQL_GATE_REASONS.planOperatorNotAllowed),
|
|
358
409
|
});
|
|
359
410
|
}
|
|
360
411
|
}
|
|
@@ -489,13 +540,24 @@ export function assertValidIdentifier(value, kind) {
|
|
|
489
540
|
throw validationError(`Canvas ${kind} name must be a non-empty string.`, {
|
|
490
541
|
reason: SQL_GATE_REASONS.identifierEmpty,
|
|
491
542
|
kind,
|
|
543
|
+
...gateRecovery(SQL_GATE_REASONS.identifierEmpty),
|
|
492
544
|
});
|
|
493
545
|
}
|
|
494
546
|
if (!CANVAS_IDENTIFIER_REGEX.test(value)) {
|
|
495
|
-
throw validationError(`Canvas ${kind} name "${value}" is invalid. Use letters, digits, and underscores; must start with a letter or underscore; max 63 chars.`, {
|
|
547
|
+
throw validationError(`Canvas ${kind} name "${value}" is invalid. Use letters, digits, and underscores; must start with a letter or underscore; max 63 chars.`, {
|
|
548
|
+
reason: SQL_GATE_REASONS.identifierShape,
|
|
549
|
+
kind,
|
|
550
|
+
value,
|
|
551
|
+
...gateRecovery(SQL_GATE_REASONS.identifierShape),
|
|
552
|
+
});
|
|
496
553
|
}
|
|
497
554
|
if (RESERVED_IDENTIFIERS.has(value.toLowerCase())) {
|
|
498
|
-
throw validationError(`Canvas ${kind} name "${value}" is a reserved SQL keyword. Choose another name.`, {
|
|
555
|
+
throw validationError(`Canvas ${kind} name "${value}" is a reserved SQL keyword. Choose another name.`, {
|
|
556
|
+
reason: SQL_GATE_REASONS.identifierReserved,
|
|
557
|
+
kind,
|
|
558
|
+
value,
|
|
559
|
+
...gateRecovery(SQL_GATE_REASONS.identifierReserved),
|
|
560
|
+
});
|
|
499
561
|
}
|
|
500
562
|
}
|
|
501
563
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlGate.js","sourceRoot":"","sources":["../../../../src/services/canvas/core/sqlGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAS3D,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAqC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,sBAAsB;IAC1C,2FAA2F;IAC3F,UAAU,EAAE,aAAa;IACzB,sBAAsB,EAAE,2BAA2B;IACnD,cAAc,EAAE,iBAAiB;IACjC,oBAAoB,EAAE,yBAAyB;IAC/C,eAAe,EAAE,kBAAkB;IACnC,eAAe,EAAE,kBAAkB;IACnC,kBAAkB,EAAE,qBAAqB;IACzC,mBAAmB,EAAE,uBAAuB;CACpC,CAAC;AAKX;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,iCAAiC;IACjC,YAAY;IACZ,UAAU;IACV,kBAAkB;IAClB,YAAY;IACZ,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,YAAY;IACZ,cAAc;IACd,sBAAsB;IACtB,sBAAsB;IACtB,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,kBAAkB;IAClB,mBAAmB;IACnB,SAAS;IACT,sBAAsB;IACtB,eAAe;IACf,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,kBAAkB;IAClB,YAAY;IACZ,aAAa;IACb,eAAe;IACf,uBAAuB;IACvB,qBAAqB;IACrB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,OAAO;IACP,mBAAmB;IACnB,UAAU;IACV,OAAO;IACP,OAAO;IACP,eAAe;IACf,iBAAiB;IACjB,SAAS;IACT,QAAQ;IACR,kBAAkB;IAClB,SAAS;IACT,QAAQ;IACR,qFAAqF;IACrF,KAAK;IACL,SAAS;IACT,SAAS;IACT,aAAa;IACb,eAAe;IACf,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,QAAQ;IACR,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;IAClB,SAAS;IACT,wCAAwC;IACxC,OAAO;IACP,qEAAqE;IACrE,2DAA2D;IAC3D,kBAAkB;CACnB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IACjE,MAAM;IACN,UAAU;IACV,eAAe;IACf,WAAW;IACX,OAAO;IACP,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,qBAAqB;IACrB,UAAU;IACV,cAAc;IACd,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,uBAAuB;IACvB,qBAAqB;IACrB,qBAAqB;IACrB,WAAW;IACX,WAAW;IACX,MAAM;IACN,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,YAAY;IACZ,0EAA0E;IAC1E,eAAe;IACf,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,aAAa;IACb,cAAc;IACd,qEAAqE;IACrE,6EAA6E;IAC7E,2EAA2E;IAC3E,2DAA2D;IAC3D,SAAS;IACT,YAAY;IACZ,kBAAkB;CACnB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAC7D,IAAI,CACL,CAAC;AAEF;;;;GAIG;AACH,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,MAAM,CAAC,GAAG,CAAA,MAAM,CAAC,GAAG,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAC1D,IAAI,CACL,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AACzD,MAAM,wBAAwB,GAAG,oBAAoB,CAAC;AAEtD,gFAAgF;AAChF,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,YAAY;IACZ,UAAU;IACV,eAAe;IACf,gBAAgB;IAChB,QAAQ;CACT,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,MAAM;QACvB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,MAAM;QACxB,QAAQ,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;QAC1C,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,GAAW;IACzC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAW;IACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACxD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,0BAA0B,CAAC,SAAS,GAAG,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,eAAe,CACnB,sDAAsD,EAAE,+DAA+D,EACvH,EAAE,MAAM,EAAE,gBAAgB,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,8EAA8E;IAC9E,wBAAwB,CAAC,SAAS,GAAG,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,eAAe,CACnB,sDAAsD,EAAE,gDAAgD,EACxG,EAAE,MAAM,EAAE,gBAAgB,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,oBAAoB,GACxB,6EAA6E,CAAC;AAEhF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACxD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,oBAAoB,CAAC,SAAS,GAAG,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,eAAe,CACnB,6CAA6C,IAAI,yEAAyE,EAC1H,EAAE,MAAM,EAAE,gBAAgB,CAAC,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAOnC;IACC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxB,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAGhC;IACC,IAAI,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,eAAe,CAAC,sDAAsD,EAAE;YAC5E,MAAM,EAAE,gBAAgB,CAAC,cAAc;YACvC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,MAAM,eAAe,CACnB,oCAAoC,KAAK,CAAC,aAAa,qDAAqD,EAC5G,EAAE,MAAM,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CACpF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAiB;IAClD,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACvE,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,eAAe,CACnB,8DAA8D,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACvG;YACE,MAAM,EAAE,gBAAgB,CAAC,oBAAoB;YAC7C,SAAS,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE;SACvC,CACF,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,eAAe,CACnB,+CAA+C,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAClF;YACE,MAAM,EAAE,gBAAgB,CAAC,sBAAsB;YAC/C,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE;SACjC,CACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAiB;IAC1D,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IAIrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC3C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,IAAI,CAAC,IAAa,EAAE,SAAsB,EAAE,eAA4B;IAC/E,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,wEAAwE;IACxE,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAC9C,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,0BAA0B,CAAC;QAC/B,4BAA4B,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YACjD,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,wBAAwB,CAAC;QAC7B,4BAA4B,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACpE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAClE,IAAI,GAAG,IAAI,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAa,EAAE,KAAa,EAAE,IAAiB;IACnF,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;IACpB,IAAI,KAAK,GAA2B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACtB,IAAI,KAAK,CAAC,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/C,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAA4B;IACpD,uEAAuE;IACvE,6CAA6C;IAC7C,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO;AACT,CAAC;AAED,8EAA8E;AAC9E,oCAAoC;AACpC,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEvE;;;GAGG;AACH,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACxD,QAAQ;IACR,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,WAAW;IACX,QAAQ;IACR,KAAK;IACL,UAAU;IACV,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,IAAI;IACJ,OAAO;IACP,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAEH,qFAAqF;AACrF,MAAM,UAAU,qBAAqB,CAAC,KAAa,EAAE,IAAwB;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,eAAe,CAAC,UAAU,IAAI,mCAAmC,EAAE;YACvE,MAAM,EAAE,gBAAgB,CAAC,eAAe;YACxC,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,eAAe,CACnB,UAAU,IAAI,UAAU,KAAK,2GAA2G,EACxI,EAAE,MAAM,EAAE,gBAAgB,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;QAClD,MAAM,eAAe,CACnB,UAAU,IAAI,UAAU,KAAK,mDAAmD,EAChF,EAAE,MAAM,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,CAC7D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"sqlGate.js","sourceRoot":"","sources":["../../../../src/services/canvas/core/sqlGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export { DataCanvas } from './core/DataCanvas.js';
|
|
|
17
17
|
export type { IDataCanvasProvider } from './core/IDataCanvasProvider.js';
|
|
18
18
|
export { inferSchemaFromRows } from './core/schemaSniffer.js';
|
|
19
19
|
export { ALLOWED_PLAN_OPERATORS, ALLOWED_STATEMENT_TYPES, assertNoDeniedFunctions, assertNoSystemCatalogs, assertReadOnlyQuery, assertValidIdentifier, CANVAS_IDENTIFIER_REGEX, collectDisallowedOperators, collectPlanViolations, DENIED_TABLE_FUNCTIONS, type DuckdbStatementType, quoteIdentifier, SQL_GATE_REASONS, type SqlGateReason, } from './core/sqlGate.js';
|
|
20
|
-
export { DuckdbProvider, type DuckdbProviderOptions, } from './providers/duckdb/DuckdbProvider.js';
|
|
20
|
+
export { DUCKDB_ERROR_REASONS, type DuckdbErrorReason, DuckdbProvider, type DuckdbProviderOptions, } from './providers/duckdb/DuckdbProvider.js';
|
|
21
21
|
export { type SpilloverFitResult, type SpilloverOptions, type SpilloverResult, type SpilloverSpillResult, spillover, } from './spillover.js';
|
|
22
22
|
export type { AcquireOptions, CanvasObjectKind, ColumnSchema, ColumnType, DescribeOptions, ExportFormat, ExportOptions, ExportResult, ExportTarget, ImportFromOptions, QueryOptions, QueryResult, RegisterRows, RegisterTableOptions, RegisterTableResult, RegisterViewOptions, RegisterViewResult, TableInfo, } from './types.js';
|
|
23
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/canvas/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,qBAAqB,EAC1B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,eAAe,EACf,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/canvas/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,KAAK,aAAa,EAClB,cAAc,EACd,KAAK,qBAAqB,EAC1B,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,eAAe,EACf,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -16,6 +16,6 @@ export { createCanvasService } from './core/canvasFactory.js';
|
|
|
16
16
|
export { DataCanvas } from './core/DataCanvas.js';
|
|
17
17
|
export { inferSchemaFromRows } from './core/schemaSniffer.js';
|
|
18
18
|
export { ALLOWED_PLAN_OPERATORS, ALLOWED_STATEMENT_TYPES, assertNoDeniedFunctions, assertNoSystemCatalogs, assertReadOnlyQuery, assertValidIdentifier, CANVAS_IDENTIFIER_REGEX, collectDisallowedOperators, collectPlanViolations, DENIED_TABLE_FUNCTIONS, quoteIdentifier, SQL_GATE_REASONS, } from './core/sqlGate.js';
|
|
19
|
-
export { DuckdbProvider, } from './providers/duckdb/DuckdbProvider.js';
|
|
19
|
+
export { DUCKDB_ERROR_REASONS, DuckdbProvider, } from './providers/duckdb/DuckdbProvider.js';
|
|
20
20
|
export { spillover, } from './spillover.js';
|
|
21
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/canvas/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,cAAc,EAEd,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EAEtB,eAAe,EACf,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,GAEf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAKL,SAAS,GACV,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/canvas/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAEL,cAAc,EAEd,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EAEtB,eAAe,EACf,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,oBAAoB,EAEpB,cAAc,GAEf,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAKL,SAAS,GACV,MAAM,gBAAgB,CAAC"}
|
|
@@ -122,6 +122,21 @@ export declare function toDateDays(value: unknown, columnName: string): number;
|
|
|
122
122
|
* @internal Exported for unit testing.
|
|
123
123
|
*/
|
|
124
124
|
export declare function toUint8Array(value: unknown, columnName: string): Uint8Array;
|
|
125
|
+
/**
|
|
126
|
+
* Reason codes {@link classifyDuckdbError} sets on `data.reason`. Exported
|
|
127
|
+
* alongside {@link SQL_GATE_REASONS} so a canvas-consuming tool can map an
|
|
128
|
+
* engine failure onto an `errors[]` entry without duplicating the strings.
|
|
129
|
+
*/
|
|
130
|
+
export declare const DUCKDB_ERROR_REASONS: {
|
|
131
|
+
/** SQL the engine could not parse. */
|
|
132
|
+
readonly sqlParseError: 'sql_parse_error';
|
|
133
|
+
/** A write the engine refused, or a permission it denied. */
|
|
134
|
+
readonly sqlReadOnly: 'sql_read_only';
|
|
135
|
+
/** A gated SELECT that prepared cleanly and then failed on the staged data. */
|
|
136
|
+
readonly sqlExecutionError: 'sql_execution_error';
|
|
137
|
+
};
|
|
138
|
+
/** Union of the engine-error reason strings — see {@link DUCKDB_ERROR_REASONS}. */
|
|
139
|
+
export type DuckdbErrorReason = (typeof DUCKDB_ERROR_REASONS)[keyof typeof DUCKDB_ERROR_REASONS];
|
|
125
140
|
/**
|
|
126
141
|
* Map a DuckDB-thrown error to a framework error class. Classification is for
|
|
127
142
|
* raw engine errors only — an already-structured `McpError` passes through
|
|
@@ -129,6 +144,11 @@ export declare function toUint8Array(value: unknown, columnName: string): Uint8A
|
|
|
129
144
|
* (`ensureTableMissing`'s `register_as_clash`, `resolveExportPath`'s path
|
|
130
145
|
* validations) must keep their code and `data.reason` instead of being
|
|
131
146
|
* reclassified as `DatabaseError`.
|
|
147
|
+
*
|
|
148
|
+
* The three caller-side classes are `ValidationError`; everything else — I/O,
|
|
149
|
+
* internal, out-of-memory, transaction, interrupt — stays `DatabaseError`,
|
|
150
|
+
* which is what an export or Parquet round-trip failing on the filesystem
|
|
151
|
+
* must remain.
|
|
132
152
|
* @internal Exported for unit testing.
|
|
133
153
|
*/
|
|
134
154
|
export declare function classifyDuckdbError(err: unknown): Error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DuckdbProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/canvas/providers/duckdb/DuckdbProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAeH,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"DuckdbProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/canvas/providers/duckdb/DuckdbProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ import { logger } from '../../../../utils/internal/logger.js';
|
|
|
15
15
|
import { requestContextService, withExtra, } from '../../../../utils/internal/requestContext.js';
|
|
16
16
|
import { canvasNotFound } from '../../core/CanvasRegistry.js';
|
|
17
17
|
import { sniffSchema } from '../../core/schemaSniffer.js';
|
|
18
|
-
import { assertNoDeniedFunctions, assertNoSystemCatalogs, assertPlanReadOnly, assertSelectOnly, assertValidIdentifier, quoteIdentifier, SQL_GATE_REASONS, } from '../../core/sqlGate.js';
|
|
18
|
+
import { assertNoDeniedFunctions, assertNoSystemCatalogs, assertPlanReadOnly, assertSelectOnly, assertValidIdentifier, gateRecovery, quoteIdentifier, SQL_GATE_REASONS, } from '../../core/sqlGate.js';
|
|
19
19
|
import { copyFormatClause, isPathTarget, pipeFileToStream, resolveExportPath, safeSizeBytes, tempFilePathFor, } from './exportWriter.js';
|
|
20
20
|
const importDuckDB = lazyImport(() => import('@duckdb/node-api'), 'Install "@duckdb/node-api" to use the DuckDB canvas provider: bun add @duckdb/node-api');
|
|
21
21
|
export class DuckdbProvider {
|
|
@@ -309,10 +309,10 @@ export class DuckdbProvider {
|
|
|
309
309
|
}
|
|
310
310
|
async importFrom(targetCanvasId, sourceCanvasId, sourceTableName, asName, _context, options) {
|
|
311
311
|
if (sourceCanvasId === targetCanvasId) {
|
|
312
|
-
throw validationError('Source and target canvases must differ.
|
|
312
|
+
throw validationError('Source and target canvases must differ. Importing copies a table between two canvases.', {
|
|
313
313
|
reason: 'import_same_canvas',
|
|
314
314
|
recovery: {
|
|
315
|
-
hint: '
|
|
315
|
+
hint: 'Pass the canvas id of a different canvas as the source — the table is already on this one.',
|
|
316
316
|
},
|
|
317
317
|
});
|
|
318
318
|
}
|
|
@@ -328,7 +328,7 @@ export class DuckdbProvider {
|
|
|
328
328
|
sourceCanvasId,
|
|
329
329
|
sourceTableName,
|
|
330
330
|
recovery: {
|
|
331
|
-
hint:
|
|
331
|
+
hint: "Re-check the source table name, or list the tables staged on the source canvas with this server's dataframe-describe tool.",
|
|
332
332
|
},
|
|
333
333
|
});
|
|
334
334
|
}
|
|
@@ -338,7 +338,7 @@ export class DuckdbProvider {
|
|
|
338
338
|
reason: 'import_view_clash',
|
|
339
339
|
asName,
|
|
340
340
|
recovery: {
|
|
341
|
-
hint: 'Drop the existing view
|
|
341
|
+
hint: 'Drop the existing view first, or choose a different destination name for the imported table.',
|
|
342
342
|
},
|
|
343
343
|
});
|
|
344
344
|
}
|
|
@@ -377,11 +377,10 @@ export class DuckdbProvider {
|
|
|
377
377
|
if (options?.tableName !== undefined) {
|
|
378
378
|
assertValidIdentifier(options.tableName, 'table');
|
|
379
379
|
}
|
|
380
|
-
//
|
|
381
|
-
//
|
|
382
|
-
//
|
|
383
|
-
//
|
|
384
|
-
// and no `table_type`), but qualify them too for consistency and latent safety.
|
|
380
|
+
// Every pushed filter stays qualified with the `t` alias. The join that
|
|
381
|
+
// made an unqualified `table_name` ambiguous is gone (#324), but keeping
|
|
382
|
+
// the qualification means re-introducing a second source here cannot
|
|
383
|
+
// silently resurrect the Binder Error of #235.
|
|
385
384
|
const filters = [`t.table_schema = 'main'`];
|
|
386
385
|
if (options?.tableName) {
|
|
387
386
|
filters.push(`t.table_name = '${escapeSqlString(options.tableName)}'`);
|
|
@@ -392,20 +391,18 @@ export class DuckdbProvider {
|
|
|
392
391
|
else if (options?.kind === 'table') {
|
|
393
392
|
filters.push(`t.table_type <> 'VIEW'`);
|
|
394
393
|
}
|
|
395
|
-
//
|
|
396
|
-
//
|
|
397
|
-
//
|
|
398
|
-
//
|
|
399
|
-
const reader = await record.controlConnection.runAndReadAll(`SELECT t.table_name, t.table_type
|
|
394
|
+
// No join against duckdb_tables(): its `estimated_size` is an estimated row
|
|
395
|
+
// count, not a byte footprint, so reporting it as `approxSizeBytes` sent a
|
|
396
|
+
// caller choosing an eviction victim after the wrong table. DuckDB exposes
|
|
397
|
+
// no per-table byte column at all (#324), so describe() reports none.
|
|
398
|
+
const reader = await record.controlConnection.runAndReadAll(`SELECT t.table_name, t.table_type
|
|
400
399
|
FROM information_schema.tables t
|
|
401
|
-
LEFT JOIN duckdb_tables() dt
|
|
402
|
-
ON dt.schema_name = 'main' AND dt.table_name = t.table_name
|
|
403
400
|
WHERE ${filters.join(' AND ')}
|
|
404
401
|
ORDER BY t.table_name`);
|
|
405
402
|
const tableRows = reader.getRowObjectsJson();
|
|
406
|
-
return await Promise.all(tableRows.map((row) => this.describeOne(record.controlConnection, row.table_name, row.table_type === 'VIEW' ? 'view' : 'table'
|
|
403
|
+
return await Promise.all(tableRows.map((row) => this.describeOne(record.controlConnection, row.table_name, row.table_type === 'VIEW' ? 'view' : 'table')));
|
|
407
404
|
}
|
|
408
|
-
async describeOne(connection, tableName, kind
|
|
405
|
+
async describeOne(connection, tableName, kind) {
|
|
409
406
|
const [colRows, rowCount] = await Promise.all([
|
|
410
407
|
this.columnRows(connection, tableName),
|
|
411
408
|
this.countRows(connection, tableName),
|
|
@@ -420,7 +417,6 @@ export class DuckdbProvider {
|
|
|
420
417
|
kind,
|
|
421
418
|
rowCount,
|
|
422
419
|
columns,
|
|
423
|
-
...(approxSizeBytes !== undefined && { approxSizeBytes }),
|
|
424
420
|
};
|
|
425
421
|
}
|
|
426
422
|
async drop(canvasId, name, _context) {
|
|
@@ -521,9 +517,14 @@ export class DuckdbProvider {
|
|
|
521
517
|
reason: SQL_GATE_REASONS.invalidSql,
|
|
522
518
|
statementType: 'UNKNOWN',
|
|
523
519
|
binderMessage,
|
|
520
|
+
...gateRecovery(SQL_GATE_REASONS.invalidSql),
|
|
524
521
|
});
|
|
525
522
|
}
|
|
526
|
-
return validationError('Canvas query must be SELECT; the statement could not be parsed or prepared.', {
|
|
523
|
+
return validationError('Canvas query must be SELECT; the statement could not be parsed or prepared.', {
|
|
524
|
+
reason: SQL_GATE_REASONS.nonSelectStatement,
|
|
525
|
+
statementType: 'UNKNOWN',
|
|
526
|
+
...gateRecovery(SQL_GATE_REASONS.nonSelectStatement),
|
|
527
|
+
});
|
|
527
528
|
}
|
|
528
529
|
/**
|
|
529
530
|
* Run the same four-layer read-only gate `query()` enforces, against an
|
|
@@ -563,11 +564,11 @@ export class DuckdbProvider {
|
|
|
563
564
|
const tableNameMatch = prepErr.message.match(/Table with name (\S+) does not exist|Catalog Error:.*?(\S+) does not exist/i);
|
|
564
565
|
if (tableNameMatch) {
|
|
565
566
|
const tableName = tableNameMatch[1] ?? tableNameMatch[2];
|
|
566
|
-
throw notFound(`Canvas table ${tableName ? `"${tableName}"` : '(unknown)'} does not exist. The table may have expired
|
|
567
|
+
throw notFound(`Canvas table ${tableName ? `"${tableName}"` : '(unknown)'} does not exist. The table may have expired, been dropped, or the name may be mistyped.`, {
|
|
567
568
|
reason: 'missing_table',
|
|
568
569
|
...(tableName && { tableName }),
|
|
569
570
|
recovery: {
|
|
570
|
-
hint:
|
|
571
|
+
hint: "Re-run the tool that produced this table to stage it again, or list the currently staged tables with this server's dataframe-describe tool.",
|
|
571
572
|
},
|
|
572
573
|
});
|
|
573
574
|
}
|
|
@@ -605,6 +606,7 @@ export class DuckdbProvider {
|
|
|
605
606
|
throw validationError('Canvas query must be SELECT; the statement could not be explained.', {
|
|
606
607
|
reason: SQL_GATE_REASONS.nonSelectStatement,
|
|
607
608
|
statementType,
|
|
609
|
+
...gateRecovery(SQL_GATE_REASONS.nonSelectStatement),
|
|
608
610
|
});
|
|
609
611
|
}
|
|
610
612
|
assertPlanReadOnly(planJson);
|
|
@@ -866,6 +868,40 @@ async function ensureTableMissing(connection, tableName) {
|
|
|
866
868
|
throw validationError(`Canvas table "${tableName}" already exists. Drop it before reusing the name.`, { reason: 'register_as_clash', tableName });
|
|
867
869
|
}
|
|
868
870
|
}
|
|
871
|
+
/**
|
|
872
|
+
* Reason codes {@link classifyDuckdbError} sets on `data.reason`. Exported
|
|
873
|
+
* alongside {@link SQL_GATE_REASONS} so a canvas-consuming tool can map an
|
|
874
|
+
* engine failure onto an `errors[]` entry without duplicating the strings.
|
|
875
|
+
*/
|
|
876
|
+
export const DUCKDB_ERROR_REASONS = {
|
|
877
|
+
/** SQL the engine could not parse. */
|
|
878
|
+
sqlParseError: 'sql_parse_error',
|
|
879
|
+
/** A write the engine refused, or a permission it denied. */
|
|
880
|
+
sqlReadOnly: 'sql_read_only',
|
|
881
|
+
/** A gated SELECT that prepared cleanly and then failed on the staged data. */
|
|
882
|
+
sqlExecutionError: 'sql_execution_error',
|
|
883
|
+
};
|
|
884
|
+
/** Recovery hint per engine-error reason, phrased as the caller's next move. */
|
|
885
|
+
const DUCKDB_ERROR_RECOVERY = {
|
|
886
|
+
[DUCKDB_ERROR_REASONS.sqlParseError]: 'Fix the SQL syntax the message names and send a single read-only SELECT.',
|
|
887
|
+
[DUCKDB_ERROR_REASONS.sqlReadOnly]: 'Send a read-only SELECT — this surface cannot create, alter, or drop anything.',
|
|
888
|
+
[DUCKDB_ERROR_REASONS.sqlExecutionError]: 'Wrap the cast in TRY_CAST, or filter out the rows the message names before converting them.',
|
|
889
|
+
};
|
|
890
|
+
/**
|
|
891
|
+
* DuckDB's execution-error classes, the split its own `Exception::
|
|
892
|
+
* IsExecutionError` makes: CONVERSION, INVALID_INPUT, OUT_OF_RANGE. The SQL
|
|
893
|
+
* prepared, so the fault is in the data the caller asked the engine to
|
|
894
|
+
* process, not in the engine.
|
|
895
|
+
*
|
|
896
|
+
* `@duckdb/node-api` surfaces a bare `Error` — no `errorType`, no `code` — and
|
|
897
|
+
* `@duckdb/node-bindings` binds neither `duckdb_error_data_error_type` nor
|
|
898
|
+
* `duckdb_result_error_type`, so the leading class prefix is the only
|
|
899
|
+
* discriminator available in process. It is anchored at the start on purpose:
|
|
900
|
+
* `Out of Range Error` and `Out of Memory Error` land on opposite sides of the
|
|
901
|
+
* split and diverge only after `Out of `, and an engine fault whose message
|
|
902
|
+
* merely quotes a data-error class mid-sentence is still an engine fault.
|
|
903
|
+
*/
|
|
904
|
+
const DUCKDB_EXECUTION_ERROR_PREFIX = /^(?:Conversion|Invalid Input|Out of Range) Error\b/;
|
|
869
905
|
/**
|
|
870
906
|
* Map a DuckDB-thrown error to a framework error class. Classification is for
|
|
871
907
|
* raw engine errors only — an already-structured `McpError` passes through
|
|
@@ -873,6 +909,11 @@ async function ensureTableMissing(connection, tableName) {
|
|
|
873
909
|
* (`ensureTableMissing`'s `register_as_clash`, `resolveExportPath`'s path
|
|
874
910
|
* validations) must keep their code and `data.reason` instead of being
|
|
875
911
|
* reclassified as `DatabaseError`.
|
|
912
|
+
*
|
|
913
|
+
* The three caller-side classes are `ValidationError`; everything else — I/O,
|
|
914
|
+
* internal, out-of-memory, transaction, interrupt — stays `DatabaseError`,
|
|
915
|
+
* which is what an export or Parquet round-trip failing on the filesystem
|
|
916
|
+
* must remain.
|
|
876
917
|
* @internal Exported for unit testing.
|
|
877
918
|
*/
|
|
878
919
|
export function classifyDuckdbError(err) {
|
|
@@ -880,14 +921,23 @@ export function classifyDuckdbError(err) {
|
|
|
880
921
|
return err;
|
|
881
922
|
if (err instanceof Error) {
|
|
882
923
|
const msg = err.message;
|
|
924
|
+
// Checked first: the anchored class prefix is a stronger signal than the
|
|
925
|
+
// loose word matches below, which a data-error message can also satisfy.
|
|
926
|
+
if (DUCKDB_EXECUTION_ERROR_PREFIX.test(msg)) {
|
|
927
|
+
return engineFailure(DUCKDB_ERROR_REASONS.sqlExecutionError, `Canvas query failed: ${msg}`, err);
|
|
928
|
+
}
|
|
883
929
|
if (/parser error|syntax/i.test(msg)) {
|
|
884
|
-
return
|
|
930
|
+
return engineFailure(DUCKDB_ERROR_REASONS.sqlParseError, `Canvas SQL rejected: ${msg}`, err);
|
|
885
931
|
}
|
|
886
932
|
if (/permission|read.?only/i.test(msg)) {
|
|
887
|
-
return
|
|
933
|
+
return engineFailure(DUCKDB_ERROR_REASONS.sqlReadOnly, `Canvas SQL rejected: ${msg}`, err);
|
|
888
934
|
}
|
|
889
935
|
return databaseError(msg, undefined, { cause: err });
|
|
890
936
|
}
|
|
891
937
|
return databaseError('DuckDB threw a non-Error value.', { value: String(err) });
|
|
892
938
|
}
|
|
939
|
+
/** A caller-side engine failure: reason, contract recovery, and the engine error chained. */
|
|
940
|
+
function engineFailure(reason, message, cause) {
|
|
941
|
+
return validationError(message, { reason, recovery: { hint: DUCKDB_ERROR_RECOVERY[reason] } }, { cause });
|
|
942
|
+
}
|
|
893
943
|
//# sourceMappingURL=DuckdbProvider.js.map
|