@kvman/testkit 0.1.0 → 0.1.2
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/bin/bin-failure.js +2 -2
- package/dist/bin/bin-failure.js.map +1 -1
- package/dist/check/check-output.js +1 -1
- package/dist/check/check-output.js.map +1 -1
- package/dist/check/docs-findings.js +3 -3
- package/dist/check/docs-findings.js.map +1 -1
- package/dist/new/scaffold-versions.d.ts +1 -1
- package/dist/new/scaffold-versions.js +1 -1
- package/docs/presets.md +1 -1
- package/package.json +2 -2
package/dist/bin/bin-failure.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// The failure codes every bin of this package uses (ADR 0010, 20).
|
|
2
|
-
// `
|
|
1
|
+
// The failure codes every bin of this package uses (ADR 0010, 20). kvbuilder turns each into
|
|
2
|
+
// `kvbuilder/<CODE>`, except `VALIDATION_FAILED`, which stays as it is.
|
|
3
3
|
export const binFailureCodes = ['VALIDATION_FAILED', 'NOT_FOUND', 'NOT_RUNNING', 'FOLDER_NOT_EMPTY', 'FILE_EXISTS', 'NPM_FAILED', 'NO_FREE_PORT', 'PREVIEW_FAILED'];
|
|
4
4
|
/** A structured bin failure: `{ code, message, params? }`. */
|
|
5
5
|
export class BinFailure extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin-failure.js","sourceRoot":"","sources":["../../src/bin/bin-failure.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"bin-failure.js","sourceRoot":"","sources":["../../src/bin/bin-failure.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,wEAAwE;AAExE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,CAAU,CAAC;AAK7K,8DAA8D;AAC9D,MAAM,OAAO,UAAW,SAAQ,KAAK;IACnC,iCAAiC;IACxB,IAAI,CAAiB;IAC9B,4CAA4C;IACnC,MAAM,CAAmC;IAElD,kEAAkE;IAClE,YAAY,IAAoB,EAAE,OAAe,EAAE,MAA6B;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,mGAAmG;AACnG,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,IAAa;IACxD,IAAI,KAAK,YAAY,UAAU,IAAI,IAAI,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9J,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// How `kvman-check` prints its findings (ADR 0009, 116): readable lines for a person, or with `--json` the
|
|
2
|
-
// `[{ file?, message, hint }]` array on one line, which
|
|
2
|
+
// `[{ file?, message, hint }]` array on one line, which kvbuilder's `ext check` reads.
|
|
3
3
|
export function readableFindings(findings) {
|
|
4
4
|
if (findings.length === 0)
|
|
5
5
|
return 'kvman-check: no findings.';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-output.js","sourceRoot":"","sources":["../../src/check/check-output.ts"],"names":[],"mappings":"AAEA,2GAA2G;AAC3G,
|
|
1
|
+
{"version":3,"file":"check-output.js","sourceRoot":"","sources":["../../src/check/check-output.ts"],"names":[],"mappings":"AAEA,2GAA2G;AAC3G,uFAAuF;AAEvF,MAAM,UAAU,gBAAgB,CAAC,QAAmC;IAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,2BAA2B,CAAC;IAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,KAAK,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,CAAC,GAAG,KAAK,EAAE,gBAAgB,MAAM,CAAC,MAAM,CAAC,cAAc,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3H,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAmC;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAW,EAAE,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ProblemError, z } from '@kvman/sdk';
|
|
2
|
-
// The docs-pair warnings (plan 09 §9.5, QA17-E30): an extension's docs reach
|
|
2
|
+
// The docs-pair warnings (plan 09 §9.5, QA17-E30): an extension's docs reach kvbuilder and `kvman-docs` only
|
|
3
3
|
// through both `<namespace>.docs.list` and `<namespace>.docs.get` as public queries, so a half-done or wrong pair
|
|
4
4
|
// warns instead of silently hiding the pages. Every finding here is a warning.
|
|
5
5
|
const listAnswerSchema = z.array(z.object({ topic: z.string(), title: z.string() }));
|
|
@@ -54,11 +54,11 @@ export async function docsFindings(kernel, namespace, queries) {
|
|
|
54
54
|
return [];
|
|
55
55
|
if (!hasList || !hasGet) {
|
|
56
56
|
const only = hasList ? list : get;
|
|
57
|
-
return [docsWarning(`Only ${only} is registered;
|
|
57
|
+
return [docsWarning(`Only ${only} is registered; kvbuilder and kvman-docs show an extension's docs only when it has both ${list} and ${get}.`, 'Register the other as a public query, or remove this one.')];
|
|
58
58
|
}
|
|
59
59
|
const privateOnes = [list, get].filter((name) => !queries.some((query) => query.name === name && query.public));
|
|
60
60
|
if (privateOnes.length > 0) {
|
|
61
|
-
return privateOnes.map((name) => docsWarning(`${name} isn't public, so
|
|
61
|
+
return privateOnes.map((name) => docsWarning(`${name} isn't public, so kvbuilder and kvman-docs can't read it.`, 'Add public: true to its registration.'));
|
|
62
62
|
}
|
|
63
63
|
return answeredFindings(kernel, list, get);
|
|
64
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-findings.js","sourceRoot":"","sources":["../../src/check/docs-findings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAI7C,
|
|
1
|
+
{"version":3,"file":"docs-findings.js","sourceRoot":"","sources":["../../src/check/docs-findings.ts"],"names":[],"mappings":"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"}
|
package/docs/presets.md
CHANGED
|
@@ -8,7 +8,7 @@ A preset is the whole app for one run: which extensions load, and the preset-lev
|
|
|
8
8
|
"settings": { "kvwebui.home": "notes.list", "kvwebui.title": "notes.app.title" } }
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
- **Sources.** `bundled` (kvai, kvwebui, kvcoder,
|
|
11
|
+
- **Sources.** `bundled` (kvai, kvwebui, kvcoder, kvbuilder), `npm:<exact version>`, or `path:<folder>` relative to the preset file. A `path:` extension loads `kvman.source` with no build, and reloads on every save.
|
|
12
12
|
- **Settings.** Any registered key, checked against its schema once the extensions load. A key with no default must be set by the preset. `kvwebui.home` is required whenever kvwebui loads: a page with no params, such as `kvwebui.extensions`.
|
|
13
13
|
- **Running.** `kvman --preset ./notes-app.json` (a file, relative to the start folder) or `kvman --preset notes-app` for `<home>/presets/notes-app.json`. Non-bundled extensions ask to be trusted at start.
|
|
14
14
|
- `kvman-preset new` writes a preset that runs as-is; `kvman-preset check` checks its schema, its extensions, its settings, and its home page.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kvman/testkit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "createTestKernel: the real kvman kernel for extension tests.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"templates"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@kvman/kernel": "0.
|
|
42
|
+
"@kvman/kernel": "0.2.0",
|
|
43
43
|
"@kvman/sdk": "0.1.0"
|
|
44
44
|
},
|
|
45
45
|
"scripts": {
|