@stigmer/plugin-package 3.23.1-dev.20260923075205 → 3.24.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/marketplace/messages.d.ts.map +1 -1
- package/marketplace/messages.js +0 -1
- package/marketplace/messages.js.map +1 -1
- package/marketplace/outcome.d.ts +1 -3
- package/marketplace/outcome.d.ts.map +1 -1
- package/marketplace/read-marketplace.d.ts +8 -3
- package/marketplace/read-marketplace.d.ts.map +1 -1
- package/marketplace/read-marketplace.js +9 -54
- package/marketplace/read-marketplace.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/marketplace.test.ts +11 -18
- package/src/marketplace/messages.ts +0 -1
- package/src/marketplace/outcome.ts +1 -5
- package/src/marketplace/read-marketplace.ts +9 -62
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/marketplace/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAM,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAErG,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAK9E,CAAC;
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/marketplace/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAM,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAErG,iFAAiF;AACjF,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAK9E,CAAC;AAkCF,+EAA+E;AAC/E,qBAAa,mBAAoB,SAAQ,gBAAgB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;;CAItG"}
|
package/marketplace/messages.js
CHANGED
|
@@ -34,7 +34,6 @@ const ERROR_MESSAGES = {
|
|
|
34
34
|
"entry-name-duplicate": (c) => `${q(c.path)} lists plugin ${q(c.subject)} more than once; 'install ${c.subject ?? ""}' would be ambiguous`,
|
|
35
35
|
"entry-source-missing": (c) => `${q(c.path)} plugin ${q(c.subject)} has no 'source'`,
|
|
36
36
|
"entry-source-escapes-root": (c) => `${q(c.path)} plugin ${q(c.subject)} has source ${q(c.detail)} outside the marketplace root; a source is a directory inside the marketplace`,
|
|
37
|
-
"default-unknown": (c) => `${q(c.path)} names ${q(c.subject)} as a default but lists no plugin of that name`,
|
|
38
37
|
};
|
|
39
38
|
const WARNING_MESSAGES = {
|
|
40
39
|
"entry-source-unsupported": (c) => `plugin ${q(c.subject)}${at(c.path)} has source ${q(c.detail)}, a form Stigmer does not fetch (only a directory inside the marketplace); not offered`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/marketplace/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,EAAiB,MAAM,gBAAgB,CAAC;AAGxE,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAiD;IACjF,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,iCAAiC;IACzC,KAAK,EAAE,kCAAkC;CAC1C,CAAC;AAEF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;KACtD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC9B,IAAI,CAAC,IAAI,CAAC,CAAC;AAEd,MAAM,cAAc,GAAqD;IACvE,uBAAuB,EAAE,GAAG,EAAE,CAAC,8CAA8C,YAAY,EAAE;IAC3F,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,IAAI,EAAE,qBAAqB,CAAC,CAAC,MAAM,IAAI,EAAE,kCAAkC;IACvI,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,MAAM,IAAI,aAAa,EAAE;IAChH,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,iBAAiB,EAAE;IAC9G,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qGAAqG;IACpJ,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAChC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,6GAA6G;IAChJ,6BAA6B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB;IAC1E,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,IAAI,EAAE,8CAA8C;IAC3G,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,IAAI,EAAE,iBAAiB;IACrF,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAC1B,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,sHAAsH;IAC3J,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC,OAAO,IAAI,EAAE,sBAAsB;IAC1I,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB;IACpF,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CACjC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,+EAA+E;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/marketplace/messages.ts"],"names":[],"mappings":"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"}
|
package/marketplace/outcome.d.ts
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
import type { Finding } from "../outcome.js";
|
|
29
29
|
/** The marketplace file dialects, in the precedence the reader applies. */
|
|
30
30
|
export type MarketplaceDialect = "stigmer" | "claude" | "cursor" | "codex";
|
|
31
|
-
export type MarketplaceErrorKind = "marketplace-not-found" | "marketplace-too-large" | "marketplace-unreadable" | "marketplace-field-type" | "marketplace-name-missing" | "marketplace-name-invalid" | "marketplace-plugins-missing" | "entry-shape" | "entry-name-missing" | "entry-name-invalid" | "entry-name-duplicate" | "entry-source-missing" | "entry-source-escapes-root"
|
|
31
|
+
export type MarketplaceErrorKind = "marketplace-not-found" | "marketplace-too-large" | "marketplace-unreadable" | "marketplace-field-type" | "marketplace-name-missing" | "marketplace-name-invalid" | "marketplace-plugins-missing" | "entry-shape" | "entry-name-missing" | "entry-name-invalid" | "entry-name-duplicate" | "entry-source-missing" | "entry-source-escapes-root";
|
|
32
32
|
export type MarketplaceWarningKind = "entry-source-unsupported" | "entry-directory-missing" | "entry-not-a-plugin";
|
|
33
33
|
export type MarketplaceFindingKind = MarketplaceErrorKind | MarketplaceWarningKind;
|
|
34
34
|
export type MarketplaceFinding = Finding<MarketplaceFindingKind>;
|
|
@@ -57,8 +57,6 @@ export interface Marketplace {
|
|
|
57
57
|
readonly path: string;
|
|
58
58
|
/** Installable entries, in the file's order; entries the reader dropped are in the warnings. */
|
|
59
59
|
readonly plugins: readonly MarketplaceEntry[];
|
|
60
|
-
/** Entry names a client bootstraps with, in install order; empty when the file names none. */
|
|
61
|
-
readonly defaults: readonly string[];
|
|
62
60
|
}
|
|
63
61
|
export type MarketplaceReadOutcome = {
|
|
64
62
|
readonly ok: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../src/marketplace/outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAE5B,uBAAuB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,0BAA0B,GAC1B,0BAA0B,GAC1B,6BAA6B,GAE7B,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"outcome.d.ts","sourceRoot":"","sources":["../../src/marketplace/outcome.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAE5B,uBAAuB,GACvB,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,0BAA0B,GAC1B,0BAA0B,GAC1B,6BAA6B,GAE7B,aAAa,GACb,oBAAoB,GACpB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,2BAA2B,CAAC;AAEhC,MAAM,MAAM,sBAAsB,GAC9B,0BAA0B,GAC1B,yBAAyB,GACzB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4GAA4G;IAC5G,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAAE,GAC1G;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAA;CAAE,CAAC"}
|
|
@@ -7,9 +7,14 @@
|
|
|
7
7
|
* a tree that carries two dialects' files describes one catalogue twice);
|
|
8
8
|
* parse it under the marketplace cap; read the dialect's shape into the one
|
|
9
9
|
* normalised shape; validate names and sources; drop the entries the tree
|
|
10
|
-
* cannot install, each with its own warning
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* cannot install, each with its own warning. Findings are collected and the
|
|
11
|
+
* read continues, so the outcome names every problem at once, and the
|
|
12
|
+
* marketplace is returned only when nothing refused.
|
|
13
|
+
*
|
|
14
|
+
* A catalogue installs nothing by itself: a field a dialect uses to name
|
|
15
|
+
* entries a client installs unasked (Codex's `INSTALLED_BY_DEFAULT` policy,
|
|
16
|
+
* or a `defaults` list) is not read, so a file that still carries one reads
|
|
17
|
+
* the same as a file without it.
|
|
13
18
|
*
|
|
14
19
|
* Sources. Every dialect names a plugin's directory relative to the
|
|
15
20
|
* marketplace root (Claude and Codex with a `./` prefix, Cursor without,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-marketplace.d.ts","sourceRoot":"","sources":["../../src/marketplace/read-marketplace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"read-marketplace.d.ts","sourceRoot":"","sources":["../../src/marketplace/read-marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,EAAwE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAErH,OAAO,KAAK,EAAuE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAKhI,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAInE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,sBAAsB,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,sBAAsB,CAE9E"}
|
|
@@ -7,9 +7,14 @@
|
|
|
7
7
|
* a tree that carries two dialects' files describes one catalogue twice);
|
|
8
8
|
* parse it under the marketplace cap; read the dialect's shape into the one
|
|
9
9
|
* normalised shape; validate names and sources; drop the entries the tree
|
|
10
|
-
* cannot install, each with its own warning
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* cannot install, each with its own warning. Findings are collected and the
|
|
11
|
+
* read continues, so the outcome names every problem at once, and the
|
|
12
|
+
* marketplace is returned only when nothing refused.
|
|
13
|
+
*
|
|
14
|
+
* A catalogue installs nothing by itself: a field a dialect uses to name
|
|
15
|
+
* entries a client installs unasked (Codex's `INSTALLED_BY_DEFAULT` policy,
|
|
16
|
+
* or a `defaults` list) is not read, so a file that still carries one reads
|
|
17
|
+
* the same as a file without it.
|
|
13
18
|
*
|
|
14
19
|
* Sources. Every dialect names a plugin's directory relative to the
|
|
15
20
|
* marketplace root (Claude and Codex with a `./` prefix, Cursor without,
|
|
@@ -34,13 +39,11 @@
|
|
|
34
39
|
* `readMarketplace`'s to say, on the tree, before anything is installed.
|
|
35
40
|
*/
|
|
36
41
|
import { hasPluginManifest, isValidPluginName } from "../detect.js";
|
|
37
|
-
import { describeValue, isJsonObject
|
|
42
|
+
import { describeValue, isJsonObject } from "../documents.js";
|
|
38
43
|
import { decodeUtf8, isContainedPath, PLUGIN_DOCUMENT_LIMITS, PluginFileIndex } from "../files.js";
|
|
39
44
|
import { MARKETPLACE_LOCATIONS, MarketplaceFindings } from "./messages.js";
|
|
40
45
|
/** The precedence the reader applies when a tree carries more than one marketplace file. */
|
|
41
46
|
const DIALECT_PRECEDENCE = ["stigmer", "claude", "cursor", "codex"];
|
|
42
|
-
/** Codex's per-entry install policy that marks a default. */
|
|
43
|
-
const CODEX_INSTALLED_BY_DEFAULT = "INSTALLED_BY_DEFAULT";
|
|
44
47
|
/** True when the tree holds any of the four marketplace files; the CLI's routing test. */
|
|
45
48
|
export function hasMarketplaceFile(paths) {
|
|
46
49
|
const locations = new Set(Object.values(MARKETPLACE_LOCATIONS));
|
|
@@ -80,7 +83,6 @@ function read(files, verify) {
|
|
|
80
83
|
const name = readName(object, path, findings);
|
|
81
84
|
const raw = readEntries(object, dialect, path, findings);
|
|
82
85
|
const entries = verify === "tree" ? offeredEntries(raw, index, path, findings) : declaredEntries(raw);
|
|
83
|
-
const defaults = resolveDefaults(object, raw, entries, dialect, path, findings);
|
|
84
86
|
if (findings.errors.length > 0 || name === undefined)
|
|
85
87
|
return refused(findings);
|
|
86
88
|
const description = readDescription(object, dialect);
|
|
@@ -92,7 +94,6 @@ function read(files, verify) {
|
|
|
92
94
|
dialect,
|
|
93
95
|
path,
|
|
94
96
|
plugins: entries,
|
|
95
|
-
defaults,
|
|
96
97
|
};
|
|
97
98
|
return { ok: true, marketplace, warnings: findings.warnings };
|
|
98
99
|
}
|
|
@@ -228,7 +229,6 @@ function readEntries(object, dialect, path, findings) {
|
|
|
228
229
|
name,
|
|
229
230
|
dir: resolveSource(item["source"], name, pluginRoot, path, findings),
|
|
230
231
|
...(description !== undefined && { description }),
|
|
231
|
-
installedByDefault: dialect === "codex" && codexInstalledByDefault(item),
|
|
232
232
|
});
|
|
233
233
|
});
|
|
234
234
|
return entries;
|
|
@@ -244,10 +244,6 @@ function claudePluginRoot(object) {
|
|
|
244
244
|
const resolved = relativeDirectory(root);
|
|
245
245
|
return resolved.ok ? resolved.dir : "";
|
|
246
246
|
}
|
|
247
|
-
function codexInstalledByDefault(item) {
|
|
248
|
-
const policy = item["policy"];
|
|
249
|
-
return isJsonObject(policy) && policy["installation"] === CODEX_INSTALLED_BY_DEFAULT;
|
|
250
|
-
}
|
|
251
247
|
/**
|
|
252
248
|
* A source becomes a marketplace-relative directory or nothing. A string is
|
|
253
249
|
* a relative directory (with or without `./`) unless it is a URL; Codex's
|
|
@@ -352,45 +348,4 @@ function childFilesOf(index, dir) {
|
|
|
352
348
|
const prefix = dir === "" ? "" : `${dir}/`;
|
|
353
349
|
return index.filesUnder(dir).map((file) => file.slice(prefix.length));
|
|
354
350
|
}
|
|
355
|
-
/**
|
|
356
|
-
* The defaults, in install order: Stigmer's `defaults` list, or Codex's
|
|
357
|
-
* `INSTALLED_BY_DEFAULT` entries in file order. A default that names no
|
|
358
|
-
* listed entry refuses the file; a default whose entry the tree could not
|
|
359
|
-
* offer is dropped silently, because that entry's own warning already says
|
|
360
|
-
* why it is missing.
|
|
361
|
-
*/
|
|
362
|
-
function resolveDefaults(object, raw, offered, dialect, path, findings) {
|
|
363
|
-
const listed = new Set(raw.map((entry) => entry.name));
|
|
364
|
-
const offeredNames = new Set(offered.map((entry) => entry.name));
|
|
365
|
-
let named;
|
|
366
|
-
if (dialect === "stigmer") {
|
|
367
|
-
const value = object["defaults"];
|
|
368
|
-
if (value === undefined) {
|
|
369
|
-
named = [];
|
|
370
|
-
}
|
|
371
|
-
else if (!isStringArray(value)) {
|
|
372
|
-
findings.error("marketplace-field-type", { path, subject: "defaults", detail: "an array of strings" });
|
|
373
|
-
named = [];
|
|
374
|
-
}
|
|
375
|
-
else {
|
|
376
|
-
named = value;
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
else if (dialect === "codex") {
|
|
380
|
-
named = raw.filter((entry) => entry.installedByDefault).map((entry) => entry.name);
|
|
381
|
-
}
|
|
382
|
-
else {
|
|
383
|
-
named = [];
|
|
384
|
-
}
|
|
385
|
-
const defaults = [];
|
|
386
|
-
for (const name of named) {
|
|
387
|
-
if (!listed.has(name)) {
|
|
388
|
-
findings.error("default-unknown", { path, subject: name });
|
|
389
|
-
continue;
|
|
390
|
-
}
|
|
391
|
-
if (offeredNames.has(name) && !defaults.includes(name))
|
|
392
|
-
defaults.push(name);
|
|
393
|
-
}
|
|
394
|
-
return defaults;
|
|
395
|
-
}
|
|
396
351
|
//# sourceMappingURL=read-marketplace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-marketplace.js","sourceRoot":"","sources":["../../src/marketplace/read-marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAoB,MAAM,aAAa,CAAC;AACrH,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAG3E,4FAA4F;AAC5F,MAAM,kBAAkB,GAAkC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEnG,6DAA6D;AAC7D,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAE1D,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAkB;IAChD,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAS,IAAI,CAAC,KAAkB,EAAE,MAAuB;IACvD,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAElC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACtG,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEhF,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,WAAW,GAAgB;QAC/B,IAAI;QACJ,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;QACjD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,OAAO;QAChB,QAAQ;KACT,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAChE,CAAC;AAED,SAAS,OAAO,CAAC,QAA6B;IAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,MAAM,CAAC,KAAsB;IACpC,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,KAAsB,EAAE,IAAY,EAAE,QAA6B;IACrF,MAAM,KAAK,GAAG,sBAAsB,CAAC,WAAW,CAAC;IACjD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtG,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC,CAAC;QAChG,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uHAAuH;AACvH,SAAS,QAAQ,CAAC,MAAkB,EAAE,IAAY,EAAE,QAA6B;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,QAAQ,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACxF,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,MAAkB,EAAE,OAA2B;IACtE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACjD,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,CAAC;QACD,KAAK,OAAO;YACV,8EAA8E;YAC9E,OAAO,SAAS,CAAC;QACnB,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,UAAU,GAAU,OAAO,CAAC;YAClC,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,MAAkB;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACrF,OAAO;QACL,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,wHAAwH;AACxH,SAAS,gBAAgB,CAAC,MAAkB,EAAE,KAAa;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAeD,SAAS,WAAW,CAAC,MAAkB,EAAE,OAA2B,EAAE,IAAY,EAAE,QAA6B;IAC/G,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,QAAQ,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3F,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,IAAa,EAAE,QAAgB,EAAE,EAAE;QAC/C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,QAAQ,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,QAAQ,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEf,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC;YACX,IAAI;YACJ,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;YACpE,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;YACjD,kBAAkB,EAAE,OAAO,KAAK,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC;SACzE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oHAAoH;AACpH,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAgB;IAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,0BAA0B,CAAC;AACvF,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,MAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,IAAY,EACZ,QAA6B;IAE7B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,QAAQ,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,SAA6B,CAAC;IAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACxF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,SAAS,GAAG,MAAM,CAAC;IACrB,CAAC;SAAM,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,OAAO,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QACtG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,QAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7F,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,2FAA2F;AAC3F,SAAS,cAAc,CAAC,MAAe;IACrC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1F,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAID;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,KAAa;IACtC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACtE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACjD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,GAAW;IAChD,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;AAC9C,CAAC;AAED,yGAAyG;AACzG,SAAS,cAAc,CACrB,GAAwB,EACxB,KAAsB,EACtB,IAAY,EACZ,QAA6B;IAE7B,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACpH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/G,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0FAA0F;AAC1F,SAAS,eAAe,CAAC,GAAwB;IAC/C,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,SAAS;QACtC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;SAC3E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4HAA4H;AAC5H,SAAS,YAAY,CAAC,KAAsB,EAAE,GAAW;IACvD,MAAM,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IAC3C,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CACtB,MAAkB,EAClB,GAAwB,EACxB,OAAoC,EACpC,OAA2B,EAC3B,IAAY,EACZ,QAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjE,IAAI,KAAwB,CAAC;IAC7B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;YACvG,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QAC/B,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,EAAE,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QACD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"read-marketplace.js","sourceRoot":"","sources":["../../src/marketplace/read-marketplace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stigmer/plugin-package",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.24.0",
|
|
4
4
|
"description": "Reads an Agent Plugins package — the open 1.0.0 format and the Cursor, Claude Code and Codex dialects — into one normalised description of what Stigmer would install, refusing with one sentence per problem what Stigmer cannot carry; pure over an in-memory file reader, shared by the CLI's offline validation and the server's install. The ./client entry is what every installing client does identically: file selection, the deterministic archive and its digest, the marketplace grammars",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -82,7 +82,6 @@ describe("the Stigmer file (root marketplace.json)", () => {
|
|
|
82
82
|
{ name: "alpha", source: "./alpha" },
|
|
83
83
|
{ name: "beta", source: "beta/", description: "Beta, described by the catalogue." },
|
|
84
84
|
],
|
|
85
|
-
defaults: ["beta", "alpha"],
|
|
86
85
|
},
|
|
87
86
|
{ alpha, beta },
|
|
88
87
|
),
|
|
@@ -92,7 +91,7 @@ describe("the Stigmer file (root marketplace.json)", () => {
|
|
|
92
91
|
expect(kindsOf(outcome)).toEqual({ errors: [], warnings: [] });
|
|
93
92
|
});
|
|
94
93
|
|
|
95
|
-
it("carries identity, dialect, path
|
|
94
|
+
it("carries identity, dialect, path and entries in file order", () => {
|
|
96
95
|
const marketplace = accepted(outcome);
|
|
97
96
|
expect(marketplace.name).toBe("stigmer");
|
|
98
97
|
expect(marketplace.description).toBe("The official catalogue.");
|
|
@@ -103,7 +102,15 @@ describe("the Stigmer file (root marketplace.json)", () => {
|
|
|
103
102
|
{ name: "alpha", dir: "alpha" },
|
|
104
103
|
{ name: "beta", dir: "beta", description: "Beta, described by the catalogue." },
|
|
105
104
|
]);
|
|
106
|
-
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it("ignores a `defaults` list, the retired install-unasked field, whatever it holds", () => {
|
|
108
|
+
for (const defaults of [["alpha"], ["gamma"], 7]) {
|
|
109
|
+
const read = readMarketplace(tree(STIGMER_FILE, { name: "acme", plugins: [{ name: "alpha", source: "./alpha" }], defaults }, { alpha }));
|
|
110
|
+
expect(kindsOf(read)).toEqual({ errors: [], warnings: [] });
|
|
111
|
+
expect(accepted(read).plugins).toEqual([{ name: "alpha", dir: "alpha" }]);
|
|
112
|
+
expect(Object.keys(accepted(read))).not.toContain("defaults");
|
|
113
|
+
}
|
|
107
114
|
});
|
|
108
115
|
|
|
109
116
|
it("offers the tree root itself when the source is '.' (a single-plugin marketplace)", () => {
|
|
@@ -148,7 +155,6 @@ describe("the Claude Code file (.claude-plugin/marketplace.json)", () => {
|
|
|
148
155
|
expect(marketplace.description).toBe("Acme's plugins");
|
|
149
156
|
expect(marketplace.owner).toEqual({ name: "Acme", email: "plugins@acme.example" });
|
|
150
157
|
expect(marketplace.plugins).toEqual([{ name: "alpha", dir: "plugins/alpha", description: "Alpha." }]);
|
|
151
|
-
expect(marketplace.defaults).toEqual([]);
|
|
152
158
|
const messages = outcome.warnings.map((w) => w.message);
|
|
153
159
|
expect(messages).toContain(
|
|
154
160
|
"plugin 'remote' in '.claude-plugin/marketplace.json' has source 'github', a form Stigmer does not fetch (only a directory inside the marketplace); not offered",
|
|
@@ -175,13 +181,12 @@ describe("the Codex file (.agents/plugins/marketplace.json)", () => {
|
|
|
175
181
|
),
|
|
176
182
|
);
|
|
177
183
|
|
|
178
|
-
it("reads local sources and
|
|
184
|
+
it("reads local sources and offers an INSTALLED_BY_DEFAULT entry like any other; the display name is not a description", () => {
|
|
179
185
|
expect(kindsOf(outcome)).toEqual({ errors: [], warnings: [] });
|
|
180
186
|
const marketplace = accepted(outcome);
|
|
181
187
|
expect(marketplace.dialect).toBe("codex");
|
|
182
188
|
expect(marketplace.description).toBeUndefined();
|
|
183
189
|
expect(marketplace.plugins.map((p) => p.dir)).toEqual(["plugins/alpha", "plugins/beta"]);
|
|
184
|
-
expect(marketplace.defaults).toEqual(["alpha"]);
|
|
185
190
|
});
|
|
186
191
|
});
|
|
187
192
|
|
|
@@ -218,7 +223,6 @@ describe("the Cursor file, verbatim from cursor/plugins at c1c0a32, over a parti
|
|
|
218
223
|
dir: "third_party/github",
|
|
219
224
|
description: "Manage repos, issues, pull requests, and Actions.",
|
|
220
225
|
});
|
|
221
|
-
expect(marketplace.defaults).toEqual([]);
|
|
222
226
|
expect(outcome.warnings).toHaveLength(73);
|
|
223
227
|
expect(new Set(outcome.warnings.map((w) => w.kind))).toEqual(new Set(["entry-directory-missing"]));
|
|
224
228
|
});
|
|
@@ -328,11 +332,6 @@ const ERROR_CASES: Record<MarketplaceErrorKind, Case> = {
|
|
|
328
332
|
kinds: errors("entry-source-escapes-root"),
|
|
329
333
|
message: "'marketplace.json' plugin 'alpha' has source '../alpha' outside the marketplace root; a source is a directory inside the marketplace",
|
|
330
334
|
},
|
|
331
|
-
"default-unknown": {
|
|
332
|
-
files: tree(STIGMER_FILE, { name: "acme", plugins: [{ name: "alpha", source: "./alpha" }], defaults: ["gamma"] }, { alpha }),
|
|
333
|
-
kinds: errors("default-unknown"),
|
|
334
|
-
message: "'marketplace.json' names 'gamma' as a default but lists no plugin of that name",
|
|
335
|
-
},
|
|
336
335
|
};
|
|
337
336
|
|
|
338
337
|
const WARNING_CASES: Record<MarketplaceWarningKind, Case> = {
|
|
@@ -376,10 +375,4 @@ describe("adversarial marketplaces: one fixture per warning kind", () => {
|
|
|
376
375
|
expect(findingOf(outcome.warnings, kind).message).toBe(testCase.message);
|
|
377
376
|
});
|
|
378
377
|
}
|
|
379
|
-
|
|
380
|
-
it("a default whose entry was dropped disappears with the entry's warning, never as a second finding", () => {
|
|
381
|
-
const outcome = readMarketplace(tree(STIGMER_FILE, { name: "acme", plugins: [{ name: "alpha", source: "./alpha" }], defaults: ["alpha"] }));
|
|
382
|
-
expect(kindsOf(outcome)).toEqual(warnings("entry-directory-missing"));
|
|
383
|
-
expect(accepted(outcome).defaults).toEqual([]);
|
|
384
|
-
});
|
|
385
378
|
});
|
|
@@ -42,7 +42,6 @@ const ERROR_MESSAGES: Readonly<Record<MarketplaceErrorKind, Sentence>> = {
|
|
|
42
42
|
"entry-source-missing": (c) => `${q(c.path)} plugin ${q(c.subject)} has no 'source'`,
|
|
43
43
|
"entry-source-escapes-root": (c) =>
|
|
44
44
|
`${q(c.path)} plugin ${q(c.subject)} has source ${q(c.detail)} outside the marketplace root; a source is a directory inside the marketplace`,
|
|
45
|
-
"default-unknown": (c) => `${q(c.path)} names ${q(c.subject)} as a default but lists no plugin of that name`,
|
|
46
45
|
};
|
|
47
46
|
|
|
48
47
|
const WARNING_MESSAGES: Readonly<Record<MarketplaceWarningKind, Sentence>> = {
|
|
@@ -46,9 +46,7 @@ export type MarketplaceErrorKind =
|
|
|
46
46
|
| "entry-name-invalid"
|
|
47
47
|
| "entry-name-duplicate"
|
|
48
48
|
| "entry-source-missing"
|
|
49
|
-
| "entry-source-escapes-root"
|
|
50
|
-
// Defaults
|
|
51
|
-
| "default-unknown";
|
|
49
|
+
| "entry-source-escapes-root";
|
|
52
50
|
|
|
53
51
|
export type MarketplaceWarningKind =
|
|
54
52
|
| "entry-source-unsupported"
|
|
@@ -86,8 +84,6 @@ export interface Marketplace {
|
|
|
86
84
|
readonly path: string;
|
|
87
85
|
/** Installable entries, in the file's order; entries the reader dropped are in the warnings. */
|
|
88
86
|
readonly plugins: readonly MarketplaceEntry[];
|
|
89
|
-
/** Entry names a client bootstraps with, in install order; empty when the file names none. */
|
|
90
|
-
readonly defaults: readonly string[];
|
|
91
87
|
}
|
|
92
88
|
|
|
93
89
|
export type MarketplaceReadOutcome =
|
|
@@ -7,9 +7,14 @@
|
|
|
7
7
|
* a tree that carries two dialects' files describes one catalogue twice);
|
|
8
8
|
* parse it under the marketplace cap; read the dialect's shape into the one
|
|
9
9
|
* normalised shape; validate names and sources; drop the entries the tree
|
|
10
|
-
* cannot install, each with its own warning
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* cannot install, each with its own warning. Findings are collected and the
|
|
11
|
+
* read continues, so the outcome names every problem at once, and the
|
|
12
|
+
* marketplace is returned only when nothing refused.
|
|
13
|
+
*
|
|
14
|
+
* A catalogue installs nothing by itself: a field a dialect uses to name
|
|
15
|
+
* entries a client installs unasked (Codex's `INSTALLED_BY_DEFAULT` policy,
|
|
16
|
+
* or a `defaults` list) is not read, so a file that still carries one reads
|
|
17
|
+
* the same as a file without it.
|
|
13
18
|
*
|
|
14
19
|
* Sources. Every dialect names a plugin's directory relative to the
|
|
15
20
|
* marketplace root (Claude and Codex with a `./` prefix, Cursor without,
|
|
@@ -35,7 +40,7 @@
|
|
|
35
40
|
*/
|
|
36
41
|
|
|
37
42
|
import { hasPluginManifest, isValidPluginName } from "../detect.js";
|
|
38
|
-
import { describeValue, isJsonObject,
|
|
43
|
+
import { describeValue, isJsonObject, type JsonObject } from "../documents.js";
|
|
39
44
|
import { decodeUtf8, isContainedPath, PLUGIN_DOCUMENT_LIMITS, PluginFileIndex, type PluginFiles } from "../files.js";
|
|
40
45
|
import { MARKETPLACE_LOCATIONS, MarketplaceFindings } from "./messages.js";
|
|
41
46
|
import type { Marketplace, MarketplaceDialect, MarketplaceEntry, MarketplaceOwner, MarketplaceReadOutcome } from "./outcome.js";
|
|
@@ -43,9 +48,6 @@ import type { Marketplace, MarketplaceDialect, MarketplaceEntry, MarketplaceOwne
|
|
|
43
48
|
/** The precedence the reader applies when a tree carries more than one marketplace file. */
|
|
44
49
|
const DIALECT_PRECEDENCE: readonly MarketplaceDialect[] = ["stigmer", "claude", "cursor", "codex"];
|
|
45
50
|
|
|
46
|
-
/** Codex's per-entry install policy that marks a default. */
|
|
47
|
-
const CODEX_INSTALLED_BY_DEFAULT = "INSTALLED_BY_DEFAULT";
|
|
48
|
-
|
|
49
51
|
/** True when the tree holds any of the four marketplace files; the CLI's routing test. */
|
|
50
52
|
export function hasMarketplaceFile(paths: Iterable<string>): boolean {
|
|
51
53
|
const locations = new Set<string>(Object.values(MARKETPLACE_LOCATIONS));
|
|
@@ -88,7 +90,6 @@ function read(files: PluginFiles, verify: "tree" | "file"): MarketplaceReadOutco
|
|
|
88
90
|
const name = readName(object, path, findings);
|
|
89
91
|
const raw = readEntries(object, dialect, path, findings);
|
|
90
92
|
const entries = verify === "tree" ? offeredEntries(raw, index, path, findings) : declaredEntries(raw);
|
|
91
|
-
const defaults = resolveDefaults(object, raw, entries, dialect, path, findings);
|
|
92
93
|
|
|
93
94
|
if (findings.errors.length > 0 || name === undefined) return refused(findings);
|
|
94
95
|
|
|
@@ -101,7 +102,6 @@ function read(files: PluginFiles, verify: "tree" | "file"): MarketplaceReadOutco
|
|
|
101
102
|
dialect,
|
|
102
103
|
path,
|
|
103
104
|
plugins: entries,
|
|
104
|
-
defaults,
|
|
105
105
|
};
|
|
106
106
|
return { ok: true, marketplace, warnings: findings.warnings };
|
|
107
107
|
}
|
|
@@ -214,7 +214,6 @@ interface RawEntry {
|
|
|
214
214
|
readonly name: string;
|
|
215
215
|
readonly dir: string | undefined;
|
|
216
216
|
readonly description?: string;
|
|
217
|
-
readonly installedByDefault: boolean;
|
|
218
217
|
}
|
|
219
218
|
|
|
220
219
|
function readEntries(object: JsonObject, dialect: MarketplaceDialect, path: string, findings: MarketplaceFindings): readonly RawEntry[] {
|
|
@@ -256,7 +255,6 @@ function readEntries(object: JsonObject, dialect: MarketplaceDialect, path: stri
|
|
|
256
255
|
name,
|
|
257
256
|
dir: resolveSource(item["source"], name, pluginRoot, path, findings),
|
|
258
257
|
...(description !== undefined && { description }),
|
|
259
|
-
installedByDefault: dialect === "codex" && codexInstalledByDefault(item),
|
|
260
258
|
});
|
|
261
259
|
});
|
|
262
260
|
return entries;
|
|
@@ -272,11 +270,6 @@ function claudePluginRoot(object: JsonObject): string {
|
|
|
272
270
|
return resolved.ok ? resolved.dir : "";
|
|
273
271
|
}
|
|
274
272
|
|
|
275
|
-
function codexInstalledByDefault(item: JsonObject): boolean {
|
|
276
|
-
const policy = item["policy"];
|
|
277
|
-
return isJsonObject(policy) && policy["installation"] === CODEX_INSTALLED_BY_DEFAULT;
|
|
278
|
-
}
|
|
279
|
-
|
|
280
273
|
/**
|
|
281
274
|
* A source becomes a marketplace-relative directory or nothing. A string is
|
|
282
275
|
* a relative directory (with or without `./`) unless it is a URL; Codex's
|
|
@@ -393,49 +386,3 @@ function childFilesOf(index: PluginFileIndex, dir: string): readonly string[] {
|
|
|
393
386
|
const prefix = dir === "" ? "" : `${dir}/`;
|
|
394
387
|
return index.filesUnder(dir).map((file) => file.slice(prefix.length));
|
|
395
388
|
}
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* The defaults, in install order: Stigmer's `defaults` list, or Codex's
|
|
399
|
-
* `INSTALLED_BY_DEFAULT` entries in file order. A default that names no
|
|
400
|
-
* listed entry refuses the file; a default whose entry the tree could not
|
|
401
|
-
* offer is dropped silently, because that entry's own warning already says
|
|
402
|
-
* why it is missing.
|
|
403
|
-
*/
|
|
404
|
-
function resolveDefaults(
|
|
405
|
-
object: JsonObject,
|
|
406
|
-
raw: readonly RawEntry[],
|
|
407
|
-
offered: readonly MarketplaceEntry[],
|
|
408
|
-
dialect: MarketplaceDialect,
|
|
409
|
-
path: string,
|
|
410
|
-
findings: MarketplaceFindings,
|
|
411
|
-
): readonly string[] {
|
|
412
|
-
const listed = new Set(raw.map((entry) => entry.name));
|
|
413
|
-
const offeredNames = new Set(offered.map((entry) => entry.name));
|
|
414
|
-
|
|
415
|
-
let named: readonly string[];
|
|
416
|
-
if (dialect === "stigmer") {
|
|
417
|
-
const value = object["defaults"];
|
|
418
|
-
if (value === undefined) {
|
|
419
|
-
named = [];
|
|
420
|
-
} else if (!isStringArray(value)) {
|
|
421
|
-
findings.error("marketplace-field-type", { path, subject: "defaults", detail: "an array of strings" });
|
|
422
|
-
named = [];
|
|
423
|
-
} else {
|
|
424
|
-
named = value;
|
|
425
|
-
}
|
|
426
|
-
} else if (dialect === "codex") {
|
|
427
|
-
named = raw.filter((entry) => entry.installedByDefault).map((entry) => entry.name);
|
|
428
|
-
} else {
|
|
429
|
-
named = [];
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
const defaults: string[] = [];
|
|
433
|
-
for (const name of named) {
|
|
434
|
-
if (!listed.has(name)) {
|
|
435
|
-
findings.error("default-unknown", { path, subject: name });
|
|
436
|
-
continue;
|
|
437
|
-
}
|
|
438
|
-
if (offeredNames.has(name) && !defaults.includes(name)) defaults.push(name);
|
|
439
|
-
}
|
|
440
|
-
return defaults;
|
|
441
|
-
}
|