@patterkit/core 0.2.0 → 0.2.1
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/dist/index.cjs +17 -0
- package/dist/index.js +17 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -460,6 +460,21 @@ function checkDecls(decls, where, issues) {
|
|
|
460
460
|
message: `${where}: '${decl.name}' is ${decl.type} but declares no values`
|
|
461
461
|
});
|
|
462
462
|
}
|
|
463
|
+
if (decl.type === "quality") {
|
|
464
|
+
const stages = decl.stages ?? [];
|
|
465
|
+
if (stages.length < 2) {
|
|
466
|
+
issues.push({
|
|
467
|
+
code: "invalid-declaration",
|
|
468
|
+
message: `${where}: '${decl.name}' is a quality but declares ${stages.length === 0 ? "no stages" : "only one stage"} (a ladder needs at least two)`
|
|
469
|
+
});
|
|
470
|
+
}
|
|
471
|
+
const seenStages = /* @__PURE__ */ new Set();
|
|
472
|
+
for (const s of stages) {
|
|
473
|
+
if (!s.trim()) issues.push({ code: "invalid-declaration", message: `${where}: '${decl.name}' has an empty stage name` });
|
|
474
|
+
else if (seenStages.has(s)) issues.push({ code: "invalid-declaration", message: `${where}: '${decl.name}' declares stage '${s}' more than once` });
|
|
475
|
+
else seenStages.add(s);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
463
478
|
if (decl.default !== void 0 && !defaultMatchesType(decl.default, decl)) {
|
|
464
479
|
issues.push({
|
|
465
480
|
code: "invalid-declaration",
|
|
@@ -480,6 +495,8 @@ function defaultMatchesType(value, decl) {
|
|
|
480
495
|
return typeof value === "string" && (decl.values?.includes(value) ?? true);
|
|
481
496
|
case "flags":
|
|
482
497
|
return Array.isArray(value) && value.every((v) => typeof v === "string" && (decl.values?.includes(v) ?? true));
|
|
498
|
+
case "quality":
|
|
499
|
+
return typeof value === "string" && (decl.stages?.includes(value) ?? true);
|
|
483
500
|
}
|
|
484
501
|
}
|
|
485
502
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/index.js
CHANGED
|
@@ -415,6 +415,21 @@ function checkDecls(decls, where, issues) {
|
|
|
415
415
|
message: `${where}: '${decl.name}' is ${decl.type} but declares no values`
|
|
416
416
|
});
|
|
417
417
|
}
|
|
418
|
+
if (decl.type === "quality") {
|
|
419
|
+
const stages = decl.stages ?? [];
|
|
420
|
+
if (stages.length < 2) {
|
|
421
|
+
issues.push({
|
|
422
|
+
code: "invalid-declaration",
|
|
423
|
+
message: `${where}: '${decl.name}' is a quality but declares ${stages.length === 0 ? "no stages" : "only one stage"} (a ladder needs at least two)`
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
const seenStages = /* @__PURE__ */ new Set();
|
|
427
|
+
for (const s of stages) {
|
|
428
|
+
if (!s.trim()) issues.push({ code: "invalid-declaration", message: `${where}: '${decl.name}' has an empty stage name` });
|
|
429
|
+
else if (seenStages.has(s)) issues.push({ code: "invalid-declaration", message: `${where}: '${decl.name}' declares stage '${s}' more than once` });
|
|
430
|
+
else seenStages.add(s);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
418
433
|
if (decl.default !== void 0 && !defaultMatchesType(decl.default, decl)) {
|
|
419
434
|
issues.push({
|
|
420
435
|
code: "invalid-declaration",
|
|
@@ -435,6 +450,8 @@ function defaultMatchesType(value, decl) {
|
|
|
435
450
|
return typeof value === "string" && (decl.values?.includes(value) ?? true);
|
|
436
451
|
case "flags":
|
|
437
452
|
return Array.isArray(value) && value.every((v) => typeof v === "string" && (decl.values?.includes(v) ?? true));
|
|
453
|
+
case "quality":
|
|
454
|
+
return typeof value === "string" && (decl.stages?.includes(value) ?? true);
|
|
438
455
|
}
|
|
439
456
|
}
|
|
440
457
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patterkit/core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Patter core: stable id generation, readable-handle computation, canonical (de)serialisation, and the structural validator.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"build": "tsup src/index.ts --format esm,cjs --dts --clean"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@patterkit/model": "0.
|
|
37
|
+
"@patterkit/model": "0.4.0",
|
|
38
38
|
"json5": "^2.2.3"
|
|
39
39
|
}
|
|
40
40
|
}
|