@typed-sql/conformance 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/README.md +30 -20
- package/dist/packages/conformance/src/assertions.d.ts +7 -1
- package/dist/packages/conformance/src/assertions.d.ts.map +1 -1
- package/dist/packages/conformance/src/assertions.js +89 -1
- package/dist/packages/conformance/src/assertions.js.map +1 -1
- package/dist/packages/conformance/src/failure-injection.d.ts +24 -0
- package/dist/packages/conformance/src/failure-injection.d.ts.map +1 -0
- package/dist/packages/conformance/src/failure-injection.js +52 -0
- package/dist/packages/conformance/src/failure-injection.js.map +1 -0
- package/dist/packages/conformance/src/feature-ledger-markdown.d.ts +4 -0
- package/dist/packages/conformance/src/feature-ledger-markdown.d.ts.map +1 -0
- package/dist/packages/conformance/src/feature-ledger-markdown.js +58 -0
- package/dist/packages/conformance/src/feature-ledger-markdown.js.map +1 -0
- package/dist/packages/conformance/src/feature-ledger.d.ts +62 -0
- package/dist/packages/conformance/src/feature-ledger.d.ts.map +1 -0
- package/dist/packages/conformance/src/feature-ledger.js +347 -0
- package/dist/packages/conformance/src/feature-ledger.js.map +1 -0
- package/dist/packages/conformance/src/index.d.ts +6 -2
- package/dist/packages/conformance/src/index.d.ts.map +1 -1
- package/dist/packages/conformance/src/index.js +3 -1
- package/dist/packages/conformance/src/index.js.map +1 -1
- package/dist/packages/conformance/src/types.d.ts +60 -1
- package/dist/packages/conformance/src/types.d.ts.map +1 -1
- package/dist/packages/conformance/src/types.js +1 -0
- package/dist/packages/conformance/src/types.js.map +1 -1
- package/dist/packages/conformance/src/v2/contracts.d.ts +7 -0
- package/dist/packages/conformance/src/v2/contracts.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/contracts.js +97 -0
- package/dist/packages/conformance/src/v2/contracts.js.map +1 -0
- package/dist/packages/conformance/src/v2/fixtures.d.ts +4 -0
- package/dist/packages/conformance/src/v2/fixtures.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/fixtures.js +58 -0
- package/dist/packages/conformance/src/v2/fixtures.js.map +1 -0
- package/dist/packages/conformance/src/v2/index.d.ts +9 -0
- package/dist/packages/conformance/src/v2/index.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/index.js +8 -0
- package/dist/packages/conformance/src/v2/index.js.map +1 -0
- package/dist/packages/conformance/src/v2/legacy.d.ts +6 -0
- package/dist/packages/conformance/src/v2/legacy.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/legacy.js +75 -0
- package/dist/packages/conformance/src/v2/legacy.js.map +1 -0
- package/dist/packages/conformance/src/v2/reporters.d.ts +4 -0
- package/dist/packages/conformance/src/v2/reporters.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/reporters.js +17 -0
- package/dist/packages/conformance/src/v2/reporters.js.map +1 -0
- package/dist/packages/conformance/src/v2/reproduction.d.ts +4 -0
- package/dist/packages/conformance/src/v2/reproduction.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/reproduction.js +35 -0
- package/dist/packages/conformance/src/v2/reproduction.js.map +1 -0
- package/dist/packages/conformance/src/v2/runner.d.ts +9 -0
- package/dist/packages/conformance/src/v2/runner.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/runner.js +369 -0
- package/dist/packages/conformance/src/v2/runner.js.map +1 -0
- package/dist/packages/conformance/src/v2/types.d.ts +204 -0
- package/dist/packages/conformance/src/v2/types.d.ts.map +1 -0
- package/dist/packages/conformance/src/v2/types.js +3 -0
- package/dist/packages/conformance/src/v2/types.js.map +1 -0
- package/package.json +5 -4
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import { performance } from "node:perf_hooks";
|
|
2
|
+
import { isDeepStrictEqual } from "node:util";
|
|
3
|
+
import { compileSource } from "@typed-sql/compiler";
|
|
4
|
+
import { renderQuery } from "@typed-sql/core";
|
|
5
|
+
import { selectExpectedOutcome } from "./contracts.js";
|
|
6
|
+
import { CONFORMANCE_REPORT_FORMAT_VERSION, CONFORMANCE_VERSION, } from "./types.js";
|
|
7
|
+
const allLayers = Object.freeze([
|
|
8
|
+
"lex-parse",
|
|
9
|
+
"resolve",
|
|
10
|
+
"compile",
|
|
11
|
+
"render",
|
|
12
|
+
"prepare",
|
|
13
|
+
"execute",
|
|
14
|
+
"plan",
|
|
15
|
+
]);
|
|
16
|
+
class ConformanceTimeoutError extends Error {
|
|
17
|
+
name = "ConformanceTimeoutError";
|
|
18
|
+
}
|
|
19
|
+
async function withinTimeout(operation, milliseconds) {
|
|
20
|
+
let timer;
|
|
21
|
+
try {
|
|
22
|
+
return await Promise.race([
|
|
23
|
+
operation,
|
|
24
|
+
new Promise((_resolve, reject) => {
|
|
25
|
+
timer = setTimeout(() => reject(new ConformanceTimeoutError(`Conformance layer exceeded ${milliseconds}ms`)), milliseconds);
|
|
26
|
+
}),
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
if (timer !== undefined)
|
|
31
|
+
clearTimeout(timer);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function validatePreparedEvidence(value) {
|
|
35
|
+
if (typeof value !== "object" || value === null)
|
|
36
|
+
throw new TypeError("Prepared evidence must be an object");
|
|
37
|
+
for (const [kind, fields] of [
|
|
38
|
+
["columns", value.columns],
|
|
39
|
+
["parameters", value.parameters],
|
|
40
|
+
]) {
|
|
41
|
+
if (!Array.isArray(fields))
|
|
42
|
+
throw new TypeError(`Prepared evidence ${kind} must be an array`);
|
|
43
|
+
for (const [offset, field] of fields.entries()) {
|
|
44
|
+
if (typeof field !== "object" || field === null)
|
|
45
|
+
throw new TypeError(`Prepared evidence ${kind}[${offset}] must be an object`);
|
|
46
|
+
if (!Number.isSafeInteger(field.index) || field.index < 1) {
|
|
47
|
+
throw new TypeError(`Prepared evidence ${kind}[${offset}].index must be a positive integer`);
|
|
48
|
+
}
|
|
49
|
+
if (field.name !== undefined && (typeof field.name !== "string" || field.name.length === 0)) {
|
|
50
|
+
throw new TypeError(`Prepared evidence ${kind}[${offset}].name must be a non-empty string`);
|
|
51
|
+
}
|
|
52
|
+
if (field.nativeType !== undefined && (typeof field.nativeType !== "string" || field.nativeType.length === 0)) {
|
|
53
|
+
throw new TypeError(`Prepared evidence ${kind}[${offset}].nativeType must be a non-empty string`);
|
|
54
|
+
}
|
|
55
|
+
if (field.nullable !== undefined && typeof field.nullable !== "boolean") {
|
|
56
|
+
throw new TypeError(`Prepared evidence ${kind}[${offset}].nullable must be boolean`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
function liveErrorClass(error, adapter) {
|
|
63
|
+
return error instanceof ConformanceTimeoutError ? "timeout" : adapter.classify(error);
|
|
64
|
+
}
|
|
65
|
+
function freeze(value, seen = new Set()) {
|
|
66
|
+
if (typeof value !== "object" || value === null || seen.has(value))
|
|
67
|
+
return value;
|
|
68
|
+
seen.add(value);
|
|
69
|
+
for (const child of Object.values(value))
|
|
70
|
+
freeze(child, seen);
|
|
71
|
+
return Object.freeze(value);
|
|
72
|
+
}
|
|
73
|
+
function difference(path, expected, actual) {
|
|
74
|
+
return isDeepStrictEqual(expected, actual) ? [] : [Object.freeze({ path, expected, actual })];
|
|
75
|
+
}
|
|
76
|
+
function sensitiveDifference(path, expected, actual) {
|
|
77
|
+
return isDeepStrictEqual(expected, actual)
|
|
78
|
+
? []
|
|
79
|
+
: [Object.freeze({ path, expected: "[redacted]", actual: "[redacted]" })];
|
|
80
|
+
}
|
|
81
|
+
function omitUndefined(value) {
|
|
82
|
+
return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined));
|
|
83
|
+
}
|
|
84
|
+
function columns(value) {
|
|
85
|
+
return (value ?? []).map((column) => omitUndefined(column));
|
|
86
|
+
}
|
|
87
|
+
function resolvedColumns(value) {
|
|
88
|
+
return value.map(({ name, tsType, nullable, databaseType, range }) => omitUndefined({ name, tsType, nullable, databaseType, range }));
|
|
89
|
+
}
|
|
90
|
+
function parameters(value) {
|
|
91
|
+
return (value ?? []).map((parameter) => omitUndefined(parameter));
|
|
92
|
+
}
|
|
93
|
+
function diagnostics(value) {
|
|
94
|
+
return value ?? [];
|
|
95
|
+
}
|
|
96
|
+
function liveColumns(value) {
|
|
97
|
+
return (value ?? []).map(({ range: _range, ...column }) => omitUndefined(column));
|
|
98
|
+
}
|
|
99
|
+
function layerResult(layer, started, differences = []) {
|
|
100
|
+
return freeze({
|
|
101
|
+
layer,
|
|
102
|
+
status: differences.length === 0 ? "pass" : "fail",
|
|
103
|
+
durationMilliseconds: performance.now() - started,
|
|
104
|
+
...(differences.length === 0 ? {} : { differences }),
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
function skipped(layer, reason) {
|
|
108
|
+
return Object.freeze({ layer, status: "skip", durationMilliseconds: 0, skipReason: reason });
|
|
109
|
+
}
|
|
110
|
+
function failed(layer, started, error) {
|
|
111
|
+
return layerResult(layer, started, [
|
|
112
|
+
Object.freeze({
|
|
113
|
+
path: `${layer}.error`,
|
|
114
|
+
expected: "no error",
|
|
115
|
+
actual: error instanceof ConformanceTimeoutError ? "operation timed out" : "[redacted adapter error]",
|
|
116
|
+
}),
|
|
117
|
+
]);
|
|
118
|
+
}
|
|
119
|
+
function outcomeStatus(probe, layers) {
|
|
120
|
+
if (probe.quarantine !== undefined)
|
|
121
|
+
return "quarantined";
|
|
122
|
+
if (layers.some(({ status }) => status === "fail"))
|
|
123
|
+
return "fail";
|
|
124
|
+
if (layers.every(({ status }) => status === "skip"))
|
|
125
|
+
return "skip";
|
|
126
|
+
return "pass";
|
|
127
|
+
}
|
|
128
|
+
function createProbeResult(probe, target, outcome, layers) {
|
|
129
|
+
return freeze({
|
|
130
|
+
probeId: probe.id,
|
|
131
|
+
featureId: probe.featureId,
|
|
132
|
+
target,
|
|
133
|
+
support: outcome.support,
|
|
134
|
+
status: outcomeStatus(probe, layers),
|
|
135
|
+
layers,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
function explicitSkip(outcome, layer) {
|
|
139
|
+
const reason = outcome.skips?.[layer];
|
|
140
|
+
return reason === undefined ? undefined : skipped(layer, reason);
|
|
141
|
+
}
|
|
142
|
+
export function runStaticConformanceProbe(probe, target, context) {
|
|
143
|
+
if (target.grammar !== probe.grammar || context.dialect.id !== probe.grammar) {
|
|
144
|
+
throw new TypeError(`${probe.id} cannot run against grammar ${context.dialect.id}`);
|
|
145
|
+
}
|
|
146
|
+
const outcome = selectExpectedOutcome(probe, target);
|
|
147
|
+
const layers = [];
|
|
148
|
+
const parseSkip = explicitSkip(outcome, "lex-parse");
|
|
149
|
+
if (parseSkip !== undefined)
|
|
150
|
+
layers.push(parseSkip);
|
|
151
|
+
else if (context.parse === undefined)
|
|
152
|
+
layers.push(skipped("lex-parse", "grammar-parser-private"));
|
|
153
|
+
else {
|
|
154
|
+
const started = performance.now();
|
|
155
|
+
try {
|
|
156
|
+
const parsed = context.parse(probe.source);
|
|
157
|
+
const parsedDiagnostics = parsed.diagnostics.map(({ code, severity, range }) => ({ code, severity, range }));
|
|
158
|
+
const differences = [...difference("lex-parse.diagnostics", diagnostics(outcome.diagnostics), parsedDiagnostics)];
|
|
159
|
+
if (parsed.ast !== undefined &&
|
|
160
|
+
(typeof parsed.ast !== "object" || parsed.ast === null || !Object.isFrozen(parsed.ast))) {
|
|
161
|
+
differences.push(Object.freeze({ path: "lex-parse.ast", expected: "immutable AST", actual: "mutable AST" }));
|
|
162
|
+
}
|
|
163
|
+
layers.push(layerResult("lex-parse", started, differences));
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
layers.push(failed("lex-parse", started, error));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const resolveSkip = explicitSkip(outcome, "resolve");
|
|
170
|
+
if (resolveSkip !== undefined)
|
|
171
|
+
layers.push(resolveSkip);
|
|
172
|
+
else {
|
|
173
|
+
const started = performance.now();
|
|
174
|
+
try {
|
|
175
|
+
const analysis = context.dialect.analyze(probe.source, context.snapshot, context.policy);
|
|
176
|
+
const actualColumns = resolvedColumns(analysis.columns);
|
|
177
|
+
const actualParameters = analysis.parameters.map((parameter) => omitUndefined(parameter));
|
|
178
|
+
const actualDiagnostics = analysis.diagnostics.map(({ code, severity, range }) => ({ code, severity, range }));
|
|
179
|
+
const differences = [
|
|
180
|
+
...difference("resolve.rows", columns(outcome.rows), actualColumns),
|
|
181
|
+
...difference("resolve.parameters", parameters(outcome.parameters), actualParameters),
|
|
182
|
+
...difference("resolve.diagnostics", diagnostics(outcome.diagnostics), actualDiagnostics),
|
|
183
|
+
...difference("resolve.resultKind", outcome.resultKind ?? "rows", analysis.resultKind ?? "rows"),
|
|
184
|
+
];
|
|
185
|
+
layers.push(layerResult("resolve", started, differences));
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
layers.push(failed("resolve", started, error));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const compileSkip = explicitSkip(outcome, "compile");
|
|
192
|
+
if (compileSkip !== undefined)
|
|
193
|
+
layers.push(compileSkip);
|
|
194
|
+
else if (probe.compilerSource === undefined)
|
|
195
|
+
layers.push(skipped("compile", "no-compiler-source"));
|
|
196
|
+
else {
|
|
197
|
+
const started = performance.now();
|
|
198
|
+
try {
|
|
199
|
+
const compiled = compileSource({
|
|
200
|
+
source: probe.compilerSource,
|
|
201
|
+
dialect: context.dialect,
|
|
202
|
+
schema: context.snapshot,
|
|
203
|
+
typePolicy: context.policy,
|
|
204
|
+
});
|
|
205
|
+
const query = compiled.queries[0];
|
|
206
|
+
const compiledDiagnostics = compiled.diagnostics.map(({ code, severity, range }) => ({ code, severity, range }));
|
|
207
|
+
const differences = [
|
|
208
|
+
...difference("compile.diagnostics", diagnostics(outcome.diagnostics), compiledDiagnostics),
|
|
209
|
+
...difference("compile.queryCount", outcome.compiled === undefined ? 0 : 1, compiled.queries.length),
|
|
210
|
+
];
|
|
211
|
+
if (outcome.compiled !== undefined && query !== undefined) {
|
|
212
|
+
differences.push(...difference("compile.rowType", outcome.compiled.rowType, query.rowType));
|
|
213
|
+
differences.push(...difference("compile.parameterType", outcome.compiled.parameterType, query.parameterType));
|
|
214
|
+
if (outcome.compiled.fingerprint !== undefined) {
|
|
215
|
+
differences.push(...difference("compile.fingerprint", outcome.compiled.fingerprint, query.fingerprint));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
layers.push(layerResult("compile", started, differences));
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
layers.push(failed("compile", started, error));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const renderSkip = explicitSkip(outcome, "render");
|
|
225
|
+
if (renderSkip !== undefined)
|
|
226
|
+
layers.push(renderSkip);
|
|
227
|
+
else if (probe.query === undefined || outcome.rendered === undefined)
|
|
228
|
+
layers.push(skipped("render", "no-runtime-query"));
|
|
229
|
+
else {
|
|
230
|
+
const started = performance.now();
|
|
231
|
+
try {
|
|
232
|
+
const rendered = renderQuery(probe.query, context.renderer);
|
|
233
|
+
const differences = [
|
|
234
|
+
...difference("render.text", outcome.rendered.text, rendered.text),
|
|
235
|
+
...sensitiveDifference("render.values", outcome.rendered.values, rendered.values),
|
|
236
|
+
];
|
|
237
|
+
layers.push(layerResult("render", started, differences));
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
layers.push(failed("render", started, error));
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
for (const layer of ["prepare", "execute", "plan"]) {
|
|
244
|
+
layers.push(explicitSkip(outcome, layer) ?? skipped(layer, "no-live-adapter"));
|
|
245
|
+
}
|
|
246
|
+
return createProbeResult(probe, target, outcome, layers);
|
|
247
|
+
}
|
|
248
|
+
function statementCount(source) {
|
|
249
|
+
let count = 1;
|
|
250
|
+
let quote;
|
|
251
|
+
for (let index = 0; index < source.length; index += 1) {
|
|
252
|
+
const character = source[index];
|
|
253
|
+
if (quote !== undefined) {
|
|
254
|
+
if (character === quote && source[index + 1] === quote)
|
|
255
|
+
index += 1;
|
|
256
|
+
else if (character === quote)
|
|
257
|
+
quote = undefined;
|
|
258
|
+
}
|
|
259
|
+
else if (character === "'" || character === '"' || character === "`")
|
|
260
|
+
quote = character;
|
|
261
|
+
else if (character === ";" && source.slice(index + 1).trim().length > 0)
|
|
262
|
+
count += 1;
|
|
263
|
+
}
|
|
264
|
+
return count;
|
|
265
|
+
}
|
|
266
|
+
function assertSafeLiveProbe(probe, outcome) {
|
|
267
|
+
if (probe.source.length > 1_000_000)
|
|
268
|
+
throw new RangeError(`${probe.id} exceeds the live SQL size limit`);
|
|
269
|
+
if (statementCount(probe.source) > 1 && probe.live?.allowMultipleStatements !== true) {
|
|
270
|
+
throw new TypeError(`${probe.id} contains multiple live statements`);
|
|
271
|
+
}
|
|
272
|
+
if (!/^\s*(?:SELECT|WITH|EXPLAIN)\b/iu.test(probe.source) && probe.live?.allowMutation !== true) {
|
|
273
|
+
throw new TypeError(`${probe.id} must explicitly allow live mutation`);
|
|
274
|
+
}
|
|
275
|
+
const values = outcome.rendered?.values ?? [];
|
|
276
|
+
if (values.length > 65_535)
|
|
277
|
+
throw new RangeError(`${probe.id} exceeds the live parameter limit`);
|
|
278
|
+
return Object.freeze({
|
|
279
|
+
probeId: probe.id,
|
|
280
|
+
sql: outcome.rendered?.text ?? probe.source,
|
|
281
|
+
values,
|
|
282
|
+
timeoutMilliseconds: probe.live?.timeoutMilliseconds ?? 5_000,
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
export async function runLiveConformanceProbe(probe, target, adapter, normalizer, staticResult) {
|
|
286
|
+
if (adapter.grammar !== probe.grammar)
|
|
287
|
+
throw new TypeError(`${probe.id} cannot use ${adapter.grammar} live adapter`);
|
|
288
|
+
const outcome = selectExpectedOutcome(probe, target);
|
|
289
|
+
const request = assertSafeLiveProbe(probe, outcome);
|
|
290
|
+
const layers = staticResult?.layers.filter(({ layer }) => !["prepare", "execute", "plan"].includes(layer)) ?? [];
|
|
291
|
+
try {
|
|
292
|
+
if (probe.live?.prepare === true) {
|
|
293
|
+
const started = performance.now();
|
|
294
|
+
try {
|
|
295
|
+
const evidence = validatePreparedEvidence(await withinTimeout(adapter.prepare(request), request.timeoutMilliseconds));
|
|
296
|
+
const differences = [
|
|
297
|
+
...difference("prepare.rows", liveColumns(outcome.rows), evidence.columns.map(normalizer.column)),
|
|
298
|
+
...difference("prepare.parameters", parameters(outcome.parameters), evidence.parameters.map(normalizer.parameter)),
|
|
299
|
+
];
|
|
300
|
+
layers.push(layerResult("prepare", started, differences));
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
layers.push(freeze({ ...failed("prepare", started, error), errorClass: liveErrorClass(error, adapter) }));
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else
|
|
307
|
+
layers.push(explicitSkip(outcome, "prepare") ?? skipped("prepare", "no-server-metadata"));
|
|
308
|
+
if (probe.live?.execute === true) {
|
|
309
|
+
const started = performance.now();
|
|
310
|
+
try {
|
|
311
|
+
const rows = await withinTimeout(adapter.execute(request), request.timeoutMilliseconds);
|
|
312
|
+
const maximumRows = probe.live.maximumRows ?? 1_000;
|
|
313
|
+
const differences = [
|
|
314
|
+
...(rows.length > maximumRows
|
|
315
|
+
? [Object.freeze({ path: "execute.rowCount", expected: `<= ${maximumRows}`, actual: rows.length })]
|
|
316
|
+
: []),
|
|
317
|
+
...sensitiveDifference("execute.rows", outcome.decodedRows ?? [], rows),
|
|
318
|
+
];
|
|
319
|
+
layers.push(layerResult("execute", started, differences));
|
|
320
|
+
}
|
|
321
|
+
catch (error) {
|
|
322
|
+
layers.push(freeze({ ...failed("execute", started, error), errorClass: liveErrorClass(error, adapter) }));
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
else
|
|
326
|
+
layers.push(explicitSkip(outcome, "execute") ?? skipped("execute", "execution-not-meaningful"));
|
|
327
|
+
if (probe.live?.plan === true && adapter.plan !== undefined) {
|
|
328
|
+
const started = performance.now();
|
|
329
|
+
try {
|
|
330
|
+
layers.push(layerResult("plan", started, difference("plan", outcome.plan, await withinTimeout(adapter.plan(request), request.timeoutMilliseconds))));
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
layers.push(freeze({ ...failed("plan", started, error), errorClass: liveErrorClass(error, adapter) }));
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
else
|
|
337
|
+
layers.push(explicitSkip(outcome, "plan") ?? skipped("plan", "plan-format-unstable"));
|
|
338
|
+
}
|
|
339
|
+
finally {
|
|
340
|
+
await withinTimeout(adapter.cleanup(probe.id), request.timeoutMilliseconds);
|
|
341
|
+
}
|
|
342
|
+
return createProbeResult(probe, target, outcome, layers);
|
|
343
|
+
}
|
|
344
|
+
export function createConformanceReport(suite, environment, results, generatedAt = new Date()) {
|
|
345
|
+
const count = (status) => results.filter((result) => result.status === status).length;
|
|
346
|
+
const exactEligible = results.filter((result) => result.support === "exact" && result.status === "pass" && result.layers.every(({ status }) => status === "pass")).length;
|
|
347
|
+
return freeze({
|
|
348
|
+
formatVersion: CONFORMANCE_REPORT_FORMAT_VERSION,
|
|
349
|
+
conformanceVersion: CONFORMANCE_VERSION,
|
|
350
|
+
generatedAt: generatedAt.toISOString(),
|
|
351
|
+
suite,
|
|
352
|
+
environment,
|
|
353
|
+
results,
|
|
354
|
+
summary: {
|
|
355
|
+
pass: count("pass"),
|
|
356
|
+
fail: count("fail"),
|
|
357
|
+
skip: count("skip"),
|
|
358
|
+
quarantined: count("quarantined"),
|
|
359
|
+
exactEligible,
|
|
360
|
+
},
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
export function assertExactConformance(report) {
|
|
364
|
+
const invalid = report.results.filter((result) => result.support === "exact" && (result.status !== "pass" || result.layers.some(({ status }) => status !== "pass")));
|
|
365
|
+
if (invalid.length > 0)
|
|
366
|
+
throw new Error(`Exact conformance failed: ${invalid.map(({ probeId }) => probeId).join(", ")}`);
|
|
367
|
+
}
|
|
368
|
+
export { allLayers as CONFORMANCE_LAYERS };
|
|
369
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../src/v2/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import type { DialectPlugin, SchemaSnapshot, SourceRange, SqlDiagnostic, SqlRenderer, SqlSegment } from "@typed-sql/core";
|
|
2
|
+
export declare const CONFORMANCE_VERSION: 2;
|
|
3
|
+
export declare const CONFORMANCE_REPORT_FORMAT_VERSION: 1;
|
|
4
|
+
export type ConformanceSupport = "exact" | "conservative" | "unsupported" | "version-gated";
|
|
5
|
+
export type ConformanceLayer = "lex-parse" | "resolve" | "compile" | "render" | "prepare" | "execute" | "plan";
|
|
6
|
+
export type ConformanceLayerStatus = "pass" | "fail" | "skip";
|
|
7
|
+
export type ConformanceSkipReason = "grammar-parser-private" | "no-compiler-source" | "no-runtime-query" | "no-live-adapter" | "no-server-metadata" | "execution-not-meaningful" | "plan-format-unstable";
|
|
8
|
+
export interface ConformanceTarget {
|
|
9
|
+
readonly grammar: string;
|
|
10
|
+
readonly grammarVersion: string;
|
|
11
|
+
readonly databaseVersion?: string;
|
|
12
|
+
readonly capabilities?: Readonly<Record<string, string | number | boolean>>;
|
|
13
|
+
}
|
|
14
|
+
export interface ConformanceTargetSelector {
|
|
15
|
+
readonly grammarVersion?: string;
|
|
16
|
+
readonly databaseVersion?: string;
|
|
17
|
+
readonly minimumDatabaseVersion?: string;
|
|
18
|
+
readonly maximumDatabaseVersion?: string;
|
|
19
|
+
readonly capabilities?: Readonly<Record<string, string | number | boolean>>;
|
|
20
|
+
}
|
|
21
|
+
export interface ExpectedColumn {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly tsType: string;
|
|
24
|
+
readonly nullable: boolean;
|
|
25
|
+
readonly databaseType?: string;
|
|
26
|
+
readonly range?: SourceRange;
|
|
27
|
+
}
|
|
28
|
+
export interface ExpectedParameter {
|
|
29
|
+
readonly index: number;
|
|
30
|
+
readonly tsType: string;
|
|
31
|
+
readonly nullable: boolean;
|
|
32
|
+
readonly databaseType?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ExpectedDiagnostic {
|
|
35
|
+
readonly code: string;
|
|
36
|
+
readonly severity: SqlDiagnostic["severity"];
|
|
37
|
+
readonly range: SourceRange;
|
|
38
|
+
}
|
|
39
|
+
export interface ExpectedRenderedQuery {
|
|
40
|
+
readonly text: string;
|
|
41
|
+
readonly values: readonly unknown[];
|
|
42
|
+
readonly fingerprint?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ExpectedCompileResult {
|
|
45
|
+
readonly rowType: string;
|
|
46
|
+
readonly parameterType: string;
|
|
47
|
+
readonly fingerprint?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ExpectedOutcome {
|
|
50
|
+
readonly target: ConformanceTargetSelector;
|
|
51
|
+
readonly support: ConformanceSupport;
|
|
52
|
+
readonly rows?: readonly ExpectedColumn[];
|
|
53
|
+
readonly parameters?: readonly ExpectedParameter[];
|
|
54
|
+
readonly diagnostics?: readonly ExpectedDiagnostic[];
|
|
55
|
+
readonly rendered?: ExpectedRenderedQuery;
|
|
56
|
+
readonly compiled?: ExpectedCompileResult;
|
|
57
|
+
readonly decodedRows?: readonly unknown[];
|
|
58
|
+
readonly plan?: unknown;
|
|
59
|
+
readonly resultKind?: "rows" | "command";
|
|
60
|
+
readonly skips?: Partial<Readonly<Record<ConformanceLayer, ConformanceSkipReason>>>;
|
|
61
|
+
}
|
|
62
|
+
export interface LiveProbePolicy {
|
|
63
|
+
readonly prepare?: boolean;
|
|
64
|
+
readonly execute?: boolean;
|
|
65
|
+
readonly plan?: boolean;
|
|
66
|
+
readonly allowMutation?: boolean;
|
|
67
|
+
readonly allowMultipleStatements?: boolean;
|
|
68
|
+
readonly maximumRows?: number;
|
|
69
|
+
readonly timeoutMilliseconds?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface ConformanceProbe {
|
|
72
|
+
readonly version: typeof CONFORMANCE_VERSION;
|
|
73
|
+
readonly id: string;
|
|
74
|
+
readonly featureId: string;
|
|
75
|
+
readonly grammar: string;
|
|
76
|
+
readonly targets: readonly ConformanceTarget[];
|
|
77
|
+
readonly source: string;
|
|
78
|
+
readonly schemaFixture: string;
|
|
79
|
+
readonly expected: readonly ExpectedOutcome[];
|
|
80
|
+
readonly query?: {
|
|
81
|
+
readonly segments: readonly SqlSegment[];
|
|
82
|
+
};
|
|
83
|
+
readonly compilerSource?: string;
|
|
84
|
+
readonly live?: LiveProbePolicy;
|
|
85
|
+
readonly quarantine?: {
|
|
86
|
+
readonly owner: string;
|
|
87
|
+
readonly issue: string;
|
|
88
|
+
readonly expires: string;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export interface ConformanceSuite {
|
|
92
|
+
readonly version: typeof CONFORMANCE_VERSION;
|
|
93
|
+
readonly name: string;
|
|
94
|
+
readonly probes: readonly ConformanceProbe[];
|
|
95
|
+
}
|
|
96
|
+
export interface ConformanceParserResult {
|
|
97
|
+
readonly diagnostics: readonly SqlDiagnostic[];
|
|
98
|
+
readonly ast?: unknown;
|
|
99
|
+
}
|
|
100
|
+
export interface ConformanceStaticContext<Snapshot extends SchemaSnapshot, Policy = unknown> {
|
|
101
|
+
readonly dialect: DialectPlugin<Snapshot, Policy>;
|
|
102
|
+
readonly snapshot: Snapshot;
|
|
103
|
+
readonly renderer: SqlRenderer;
|
|
104
|
+
readonly policy?: Policy;
|
|
105
|
+
readonly parse?: (source: string) => ConformanceParserResult;
|
|
106
|
+
}
|
|
107
|
+
export interface ConformanceEnvironment {
|
|
108
|
+
readonly grammar: string;
|
|
109
|
+
readonly grammarVersion: string;
|
|
110
|
+
readonly databaseVersion?: string;
|
|
111
|
+
readonly driver?: string;
|
|
112
|
+
readonly driverVersion?: string;
|
|
113
|
+
readonly runtime: string;
|
|
114
|
+
readonly runtimeVersion: string;
|
|
115
|
+
readonly typescriptVersion?: string;
|
|
116
|
+
readonly schemaFingerprint: string;
|
|
117
|
+
readonly capabilities: Readonly<Record<string, string | number | boolean>>;
|
|
118
|
+
}
|
|
119
|
+
export interface ConformanceDifference {
|
|
120
|
+
readonly path: string;
|
|
121
|
+
readonly expected: unknown;
|
|
122
|
+
readonly actual: unknown;
|
|
123
|
+
}
|
|
124
|
+
export interface ConformanceLayerResult {
|
|
125
|
+
readonly layer: ConformanceLayer;
|
|
126
|
+
readonly status: ConformanceLayerStatus;
|
|
127
|
+
readonly durationMilliseconds: number;
|
|
128
|
+
readonly skipReason?: ConformanceSkipReason;
|
|
129
|
+
readonly differences?: readonly ConformanceDifference[];
|
|
130
|
+
readonly errorClass?: ConformanceServerErrorClass;
|
|
131
|
+
}
|
|
132
|
+
export interface ConformanceProbeResult {
|
|
133
|
+
readonly probeId: string;
|
|
134
|
+
readonly featureId: string;
|
|
135
|
+
readonly target: ConformanceTarget;
|
|
136
|
+
readonly support: ConformanceSupport;
|
|
137
|
+
readonly status: "pass" | "fail" | "skip" | "quarantined";
|
|
138
|
+
readonly layers: readonly ConformanceLayerResult[];
|
|
139
|
+
}
|
|
140
|
+
export interface ConformanceReport {
|
|
141
|
+
readonly formatVersion: typeof CONFORMANCE_REPORT_FORMAT_VERSION;
|
|
142
|
+
readonly conformanceVersion: typeof CONFORMANCE_VERSION;
|
|
143
|
+
readonly generatedAt: string;
|
|
144
|
+
readonly suite: string;
|
|
145
|
+
readonly environment: ConformanceEnvironment;
|
|
146
|
+
readonly results: readonly ConformanceProbeResult[];
|
|
147
|
+
readonly summary: {
|
|
148
|
+
readonly pass: number;
|
|
149
|
+
readonly fail: number;
|
|
150
|
+
readonly skip: number;
|
|
151
|
+
readonly quarantined: number;
|
|
152
|
+
readonly exactEligible: number;
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
export type ConformanceServerErrorClass = "syntax" | "semantic" | "schema" | "privilege" | "environment" | "timeout";
|
|
156
|
+
export interface ConformanceNativeField {
|
|
157
|
+
readonly index: number;
|
|
158
|
+
readonly name?: string;
|
|
159
|
+
readonly nativeType?: string;
|
|
160
|
+
readonly nullable?: boolean;
|
|
161
|
+
}
|
|
162
|
+
export interface ConformancePreparedEvidence {
|
|
163
|
+
readonly columns: readonly ConformanceNativeField[];
|
|
164
|
+
readonly parameters: readonly ConformanceNativeField[];
|
|
165
|
+
readonly unavailable?: readonly ("columns" | "parameters" | "nullability")[];
|
|
166
|
+
}
|
|
167
|
+
export interface ConformanceLiveRequest {
|
|
168
|
+
readonly probeId: string;
|
|
169
|
+
readonly sql: string;
|
|
170
|
+
readonly values: readonly unknown[];
|
|
171
|
+
readonly timeoutMilliseconds: number;
|
|
172
|
+
}
|
|
173
|
+
export interface ConformanceLiveAdapter {
|
|
174
|
+
readonly grammar: string;
|
|
175
|
+
readonly driver: string;
|
|
176
|
+
readonly driverVersion: string;
|
|
177
|
+
server(): Promise<{
|
|
178
|
+
readonly version: string;
|
|
179
|
+
readonly capabilities: Readonly<Record<string, string | number | boolean>>;
|
|
180
|
+
}>;
|
|
181
|
+
prepare(request: ConformanceLiveRequest): Promise<ConformancePreparedEvidence>;
|
|
182
|
+
execute(request: ConformanceLiveRequest): Promise<readonly unknown[]>;
|
|
183
|
+
plan?(request: ConformanceLiveRequest): Promise<unknown>;
|
|
184
|
+
classify(error: unknown): ConformanceServerErrorClass;
|
|
185
|
+
cleanup(probeId: string): Promise<void>;
|
|
186
|
+
close(): Promise<void>;
|
|
187
|
+
}
|
|
188
|
+
export interface ConformanceTypeNormalizer {
|
|
189
|
+
column(field: ConformanceNativeField): Omit<ExpectedColumn, "range">;
|
|
190
|
+
parameter(field: ConformanceNativeField): ExpectedParameter;
|
|
191
|
+
}
|
|
192
|
+
export interface ConformanceReproductionBundle {
|
|
193
|
+
readonly formatVersion: 1;
|
|
194
|
+
readonly probeId: string;
|
|
195
|
+
readonly featureId: string;
|
|
196
|
+
readonly source: string;
|
|
197
|
+
readonly schemaFixture: string;
|
|
198
|
+
readonly target: ConformanceTarget;
|
|
199
|
+
readonly environment: ConformanceEnvironment;
|
|
200
|
+
readonly expected: ExpectedOutcome;
|
|
201
|
+
readonly actual: ConformanceProbeResult;
|
|
202
|
+
readonly command: string;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/v2/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/v2/types.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAU,CAAC;AAC9C,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typed-sql/conformance",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Public grammar, capability, codec, and performance conformance kit for typed-sql dialects.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Lojhan",
|
|
@@ -33,11 +33,12 @@
|
|
|
33
33
|
"sideEffects": false,
|
|
34
34
|
"type": "module",
|
|
35
35
|
"exports": {
|
|
36
|
-
".": "./dist/packages/conformance/src/index.js"
|
|
36
|
+
".": "./dist/packages/conformance/src/index.js",
|
|
37
|
+
"./v2": "./dist/packages/conformance/src/v2/index.js"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
|
-
"@typed-sql/
|
|
40
|
-
"@typed-sql/
|
|
40
|
+
"@typed-sql/core": "2.1.0",
|
|
41
|
+
"@typed-sql/compiler": "2.1.0"
|
|
41
42
|
},
|
|
42
43
|
"scripts": {
|
|
43
44
|
"test": "poku test --reporter=compact --enforce",
|