@stigmer/cli 3.18.0-dev.20260918103812 → 3.18.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/commands/bootstrap.d.ts +3 -0
- package/commands/bootstrap.d.ts.map +1 -0
- package/commands/bootstrap.js +75 -0
- package/commands/bootstrap.js.map +1 -0
- package/commands/marketplace.d.ts.map +1 -1
- package/commands/marketplace.js +7 -7
- package/commands/marketplace.js.map +1 -1
- package/config/resolve.d.ts.map +1 -1
- package/config/resolve.js +8 -7
- package/config/resolve.js.map +1 -1
- package/local/bootstrap.d.ts +32 -13
- package/local/bootstrap.d.ts.map +1 -1
- package/local/bootstrap.js +105 -64
- package/local/bootstrap.js.map +1 -1
- package/local/daemon/launch.d.ts +1 -1
- package/local/daemon/launch.d.ts.map +1 -1
- package/local/paths.d.ts +1 -1
- package/local/paths.js +1 -1
- package/local/plugins/defaults.d.ts +27 -7
- package/local/plugins/defaults.d.ts.map +1 -1
- package/local/plugins/defaults.js +55 -28
- package/local/plugins/defaults.js.map +1 -1
- package/local/runtime/runtimes-install.d.ts.map +1 -1
- package/local/runtime/runtimes-install.js +7 -4
- package/local/runtime/runtimes-install.js.map +1 -1
- package/local/seedpack-retire.d.ts +63 -0
- package/local/seedpack-retire.d.ts.map +1 -0
- package/local/seedpack-retire.js +361 -0
- package/local/seedpack-retire.js.map +1 -0
- package/local/system-org.d.ts +15 -0
- package/local/system-org.d.ts.map +1 -0
- package/local/system-org.js +57 -0
- package/local/system-org.js.map +1 -0
- package/marketplace/config.d.ts +3 -1
- package/marketplace/config.d.ts.map +1 -1
- package/marketplace/config.js +24 -11
- package/marketplace/config.js.map +1 -1
- package/marketplace/github.d.ts +37 -0
- package/marketplace/github.d.ts.map +1 -1
- package/marketplace/github.js +70 -1
- package/marketplace/github.js.map +1 -1
- package/marketplace/install.d.ts +13 -6
- package/marketplace/install.d.ts.map +1 -1
- package/marketplace/install.js +63 -16
- package/marketplace/install.js.map +1 -1
- package/marketplace/official.js +4 -4
- package/marketplace/official.js.map +1 -1
- package/marketplace/render.d.ts.map +1 -1
- package/marketplace/render.js +10 -4
- package/marketplace/render.js.map +1 -1
- package/package.json +7 -7
- package/program.js +2 -2
- package/program.js.map +1 -1
- package/resources/apply/declarative.js +2 -2
- package/resources/apply/declarative.js.map +1 -1
- package/resources/plugin.d.ts.map +1 -1
- package/resources/plugin.js +12 -9
- package/resources/plugin.js.map +1 -1
- package/src/commands/bootstrap.test.ts +253 -0
- package/src/commands/bootstrap.ts +91 -0
- package/src/commands/install.test.ts +28 -9
- package/src/commands/marketplace.test.ts +28 -14
- package/src/commands/marketplace.ts +9 -7
- package/src/config/resolve.test.ts +2 -2
- package/src/config/resolve.ts +8 -7
- package/src/local/bootstrap.test.ts +110 -38
- package/src/local/bootstrap.ts +179 -89
- package/src/local/daemon/launch.ts +1 -1
- package/src/local/paths.ts +1 -1
- package/src/local/plugins/defaults.test.ts +46 -13
- package/src/local/plugins/defaults.ts +77 -34
- package/src/local/runtime/runtimes-install.test.ts +2 -0
- package/src/local/runtime/runtimes-install.ts +7 -4
- package/src/local/seedpack-retire.test.ts +499 -0
- package/src/local/seedpack-retire.ts +474 -0
- package/src/local/system-org.test.ts +124 -0
- package/src/local/system-org.ts +63 -0
- package/src/marketplace/__fixtures__/cursor-marketplace.ts +5 -2
- package/src/marketplace/config.test.ts +47 -22
- package/src/marketplace/config.ts +27 -12
- package/src/marketplace/github.test.ts +77 -1
- package/src/marketplace/github.ts +115 -1
- package/src/marketplace/install.test.ts +84 -17
- package/src/marketplace/install.ts +73 -15
- package/src/marketplace/official.ts +4 -4
- package/src/marketplace/read.test.ts +1 -1
- package/src/marketplace/render.ts +13 -4
- package/src/program.ts +2 -2
- package/src/resources/apply/declarative.integration.test.ts +2 -2
- package/src/resources/apply/declarative.ts +2 -2
- package/src/resources/connect/discover.test.ts +1 -1
- package/src/resources/plugin.ts +11 -10
- package/commands/seedpack.d.ts +0 -3
- package/commands/seedpack.d.ts.map +0 -1
- package/commands/seedpack.js +0 -98
- package/commands/seedpack.js.map +0 -1
- package/local/seedpack/apply.d.ts +0 -72
- package/local/seedpack/apply.d.ts.map +0 -1
- package/local/seedpack/apply.js +0 -145
- package/local/seedpack/apply.js.map +0 -1
- package/local/seedpack/content.d.ts +0 -61
- package/local/seedpack/content.d.ts.map +0 -1
- package/local/seedpack/content.js +0 -178
- package/local/seedpack/content.js.map +0 -1
- package/src/commands/seedpack.ts +0 -116
- package/src/local/seedpack/apply.test.ts +0 -287
- package/src/local/seedpack/apply.ts +0 -199
- package/src/local/seedpack/content.test.ts +0 -169
- package/src/local/seedpack/content.ts +0 -222
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Stigmer } from "@stigmer/sdk";
|
|
2
|
+
/** The system organization's slug, identical across editions. */
|
|
3
|
+
export declare const SYSTEM_ORG = "stigmer";
|
|
4
|
+
/**
|
|
5
|
+
* Marks the system org so an operator can tell it from a user's own org in
|
|
6
|
+
* any listing. Informational: no server or client code path reads it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const SYSTEM_ORG_LABEL = "stigmer.ai/system";
|
|
9
|
+
export type EnsureSystemOrgOutcome = "present" | "created";
|
|
10
|
+
/**
|
|
11
|
+
* Make sure the system organization exists on the backend `stigmer` is bound
|
|
12
|
+
* to. Idempotent; a lost create race counts as `present`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensureSystemOrg(stigmer: Stigmer): Promise<EnsureSystemOrgOutcome>;
|
|
15
|
+
//# sourceMappingURL=system-org.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-org.d.ts","sourceRoot":"","sources":["../../src/local/system-org.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,cAAc,CAAC;AAE1D,iEAAiE;AACjE,eAAO,MAAM,UAAU,YAAY,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAEpD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3D;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,sBAAsB,CAAC,CAuBjC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// The system organization, as code: the one `stigmer` org every Stigmer
|
|
2
|
+
// backend carries, which the official default plugins are installed into
|
|
3
|
+
// and the local CLI falls back to when no org is configured.
|
|
4
|
+
//
|
|
5
|
+
// This is the only place the org is defined. The bootstrap creates it when
|
|
6
|
+
// a backend does not have it (a fresh local data dir, a raw self-hosted
|
|
7
|
+
// server); on the hosted platform it already exists, owned by IAM, and the
|
|
8
|
+
// create never fires. Its slug is the same in both editions, so nothing
|
|
9
|
+
// here is configurable: a bootstrap that could be pointed at another org
|
|
10
|
+
// would put the platform's public defaults where no cross-org lookup finds
|
|
11
|
+
// them.
|
|
12
|
+
//
|
|
13
|
+
// "Ensure" is find-then-create with the race closed by the server: two
|
|
14
|
+
// launchers racing the same check see one `already-exists`, and that IS the
|
|
15
|
+
// desired end state, so it is reported as `present`, never rethrown. Any
|
|
16
|
+
// other refusal (a self-hosted authorizer that denies the reserved label,
|
|
17
|
+
// a backend that refuses the create) propagates with the server's sentence;
|
|
18
|
+
// the caller decides how loud to be.
|
|
19
|
+
import { ManagementMode } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/enum_pb";
|
|
20
|
+
import { StigmerError } from "@stigmer/sdk";
|
|
21
|
+
/** The system organization's slug, identical across editions. */
|
|
22
|
+
export const SYSTEM_ORG = "stigmer";
|
|
23
|
+
/**
|
|
24
|
+
* Marks the system org so an operator can tell it from a user's own org in
|
|
25
|
+
* any listing. Informational: no server or client code path reads it.
|
|
26
|
+
*/
|
|
27
|
+
export const SYSTEM_ORG_LABEL = "stigmer.ai/system";
|
|
28
|
+
/**
|
|
29
|
+
* Make sure the system organization exists on the backend `stigmer` is bound
|
|
30
|
+
* to. Idempotent; a lost create race counts as `present`.
|
|
31
|
+
*/
|
|
32
|
+
export async function ensureSystemOrg(stigmer) {
|
|
33
|
+
const mine = await stigmer.organization.findMyOrganizations();
|
|
34
|
+
if (mine.entries.some((org) => org.metadata?.slug === SYSTEM_ORG)) {
|
|
35
|
+
return "present";
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
// Organizations are self-owning: the org field is the slug itself, the
|
|
39
|
+
// shape the console's create form and the e2e harness both use.
|
|
40
|
+
await stigmer.organization.create({
|
|
41
|
+
name: "Stigmer",
|
|
42
|
+
slug: SYSTEM_ORG,
|
|
43
|
+
org: SYSTEM_ORG,
|
|
44
|
+
description: "System organization for Stigmer installations",
|
|
45
|
+
labels: { [SYSTEM_ORG_LABEL]: "true" },
|
|
46
|
+
managementMode: ManagementMode.self_managed,
|
|
47
|
+
});
|
|
48
|
+
return "created";
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
if (error instanceof StigmerError && error.code === "already-exists") {
|
|
52
|
+
return "present";
|
|
53
|
+
}
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=system-org.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-org.js","sourceRoot":"","sources":["../../src/local/system-org.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,yEAAyE;AACzE,6DAA6D;AAC7D,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,2EAA2E;AAC3E,QAAQ;AACR,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,qCAAqC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAC5F,OAAO,EAAgB,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1D,iEAAiE;AACjE,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAIpD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,UAAU;YACf,WAAW,EAAE,+CAA+C;YAC5D,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE;YACtC,cAAc,EAAE,cAAc,CAAC,YAAY;SAC5C,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACrE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/marketplace/config.d.ts
CHANGED
|
@@ -30,7 +30,9 @@ export interface MarketplaceListing {
|
|
|
30
30
|
readonly unreadable: readonly UnreadableMarketplace[];
|
|
31
31
|
}
|
|
32
32
|
export declare const OFFICIAL_MARKETPLACE: KnownMarketplace;
|
|
33
|
-
/**
|
|
33
|
+
/** The sources every CLI ships with, in listing order; the official one is first. */
|
|
34
|
+
export declare const BUILT_IN_SOURCES: readonly KnownMarketplace[];
|
|
35
|
+
/** Every source the CLI knows: the built-ins first, then the config's entries in file order. */
|
|
34
36
|
export declare function listMarketplaces(config?: Config): MarketplaceListing;
|
|
35
37
|
/** The marketplace called `name`, or `undefined`; an unreadable entry refuses with its reason. */
|
|
36
38
|
export declare function findMarketplace(name: string, config?: Config): KnownMarketplace | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/marketplace/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/marketplace/config.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,MAAM,EACX,KAAK,sBAAsB,EAG5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,uBAAuB,EAE5B,yBAAyB,EAIzB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,CAAC;AAElD,4EAA4E;AAC5E,MAAM,MAAM,iBAAiB;AAC3B,6FAA6F;AAC3F;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE;AAC/B,qIAAqI;GACnI,uBAAuB;AACzB,oDAAoD;GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD,wCAAwC;AACxC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC;AAED,sFAAsF;AACtF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACvD;AAED,eAAO,MAAM,oBAAoB,EAAE,gBAGlC,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,EAAE,SAAS,gBAAgB,EAInD,CAAC;AAEN,gGAAgG;AAChG,wBAAgB,gBAAgB,CAC9B,MAAM,GAAE,MAAqB,GAC5B,kBAAkB,CAYpB;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,MAAqB,GAC5B,gBAAgB,GAAG,SAAS,CAc9B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GACvD,IAAI,CAmBN;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAgBpD;AAWD,KAAK,aAAa,GACd;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,sBAAsB,GAAG,aAAa,CAsCxE;AAqBD,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAahE"}
|
package/marketplace/config.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
// The
|
|
2
|
-
//
|
|
1
|
+
// The sources a CLI knows: the built-in ones (the official catalogue and the
|
|
2
|
+
// three vendors' public ones, the same list the console ships), and the ones
|
|
3
|
+
// a user added under the `marketplaces` key of ~/.stigmer/config.yaml.
|
|
3
4
|
//
|
|
4
|
-
// A
|
|
5
|
+
// A source is client-side configuration, never a server resource: the
|
|
5
6
|
// server only ever sees the plugin archive a client pushes. That is why the
|
|
6
7
|
// list lives beside the named backends and the context, and why `stigmer
|
|
7
|
-
// marketplace` is a noun group like `config` and `auth`.
|
|
8
|
+
// marketplace` is a noun group like `config` and `auth`. The built-ins are
|
|
9
|
+
// code, not config: they cannot be added over or removed, so `stigmer
|
|
10
|
+
// install cursor-plugins/thermos` works on a fresh machine and the CLI's
|
|
11
|
+
// list never drifts from the console's.
|
|
8
12
|
//
|
|
9
13
|
// The config module keeps the on-disk entry loose (`MarketplaceEntryConfig`,
|
|
10
14
|
// every field optional) so a hand-edited entry this CLI cannot read survives
|
|
@@ -12,7 +16,7 @@
|
|
|
12
16
|
// `MarketplaceSource` the fetchers act on, and where an unreadable entry
|
|
13
17
|
// becomes a reason `stigmer marketplace list` prints instead of a silent gap.
|
|
14
18
|
import { load as loadConfig, save as saveConfig, } from "../config/index.js";
|
|
15
|
-
import { OFFICIAL_MARKETPLACE_NAME, describeGitHubSource, isOwnerRepo, } from "@stigmer/plugin-package/client";
|
|
19
|
+
import { BUILT_IN_MARKETPLACES, OFFICIAL_MARKETPLACE_NAME, builtInSourceRefusal, describeGitHubSource, isBuiltInMarketplaceName, isOwnerRepo, } from "@stigmer/plugin-package/client";
|
|
16
20
|
import { UsageError } from "../errors/index.js";
|
|
17
21
|
import { isStandalone } from "../runtime.js";
|
|
18
22
|
export { OFFICIAL_MARKETPLACE_NAME, isOwnerRepo };
|
|
@@ -20,11 +24,20 @@ export const OFFICIAL_MARKETPLACE = {
|
|
|
20
24
|
name: OFFICIAL_MARKETPLACE_NAME,
|
|
21
25
|
source: { type: "official" },
|
|
22
26
|
};
|
|
23
|
-
/**
|
|
27
|
+
/** The sources every CLI ships with, in listing order; the official one is first. */
|
|
28
|
+
export const BUILT_IN_SOURCES = BUILT_IN_MARKETPLACES.map((entry) => ({
|
|
29
|
+
name: entry.name,
|
|
30
|
+
source: entry.source,
|
|
31
|
+
}));
|
|
32
|
+
/** Every source the CLI knows: the built-ins first, then the config's entries in file order. */
|
|
24
33
|
export function listMarketplaces(config = loadConfig()) {
|
|
25
|
-
const known = [
|
|
34
|
+
const known = [...BUILT_IN_SOURCES];
|
|
26
35
|
const unreadable = [];
|
|
27
36
|
for (const [name, entry] of Object.entries(config.marketplaces ?? {})) {
|
|
37
|
+
// A config written before the vendors were built in may name one; the
|
|
38
|
+
// built-in wins and the entry is left in the file untouched.
|
|
39
|
+
if (isBuiltInMarketplaceName(name))
|
|
40
|
+
continue;
|
|
28
41
|
const narrowed = narrowEntry(entry);
|
|
29
42
|
if (narrowed.ok)
|
|
30
43
|
known.push({ name, source: narrowed.source });
|
|
@@ -54,8 +67,8 @@ export function findMarketplace(name, config = loadConfig()) {
|
|
|
54
67
|
*/
|
|
55
68
|
export function addMarketplace(name, source) {
|
|
56
69
|
refuseStandalone("add");
|
|
57
|
-
if (name
|
|
58
|
-
throw new UsageError(
|
|
70
|
+
if (isBuiltInMarketplaceName(name)) {
|
|
71
|
+
throw new UsageError(`${builtInSourceRefusal(name, "add")}\n\n` +
|
|
59
72
|
"Pass --name <other-name> to add this source under a different name.");
|
|
60
73
|
}
|
|
61
74
|
const config = loadConfig();
|
|
@@ -71,8 +84,8 @@ export function addMarketplace(name, source) {
|
|
|
71
84
|
/** Remove the marketplace called `name` and save. Refuses the reserved name and an unknown one. */
|
|
72
85
|
export function removeMarketplace(name) {
|
|
73
86
|
refuseStandalone("remove");
|
|
74
|
-
if (name
|
|
75
|
-
throw new UsageError(
|
|
87
|
+
if (isBuiltInMarketplaceName(name)) {
|
|
88
|
+
throw new UsageError(builtInSourceRefusal(name, "remove"));
|
|
76
89
|
}
|
|
77
90
|
const config = loadConfig();
|
|
78
91
|
if (config.marketplaces?.[name] === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/marketplace/config.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/marketplace/config.ts"],"names":[],"mappings":"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"}
|
package/marketplace/github.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type Marketplace, type MarketplaceFinding } from "@stigmer/plugin-package";
|
|
1
2
|
/** The caps a repository zipball must fit under; each refusal names the one it hit. */
|
|
2
3
|
export declare const GITHUB_ZIPBALL_LIMITS: {
|
|
3
4
|
/** The compressed archive as downloaded. */
|
|
@@ -21,6 +22,42 @@ export interface FetchGitHubTreeOptions {
|
|
|
21
22
|
}
|
|
22
23
|
/** The URL codeload answers with the zipball of `ref` (no API, no token). */
|
|
23
24
|
export declare function zipballUrl(source: GitHubTreeSource): string;
|
|
25
|
+
/** The URL raw.githubusercontent.com serves `path` from at `ref` (no API, no token). */
|
|
26
|
+
export declare function rawFileUrl(source: GitHubTreeSource, path: string): string;
|
|
27
|
+
/** What a peek learned: the file as declared, and where it sat. */
|
|
28
|
+
export interface PeekedMarketplace {
|
|
29
|
+
readonly marketplace: Marketplace;
|
|
30
|
+
readonly warnings: readonly MarketplaceFinding[];
|
|
31
|
+
/** The marketplace file's path in the tree, the first present in the library's precedence. */
|
|
32
|
+
readonly location: string;
|
|
33
|
+
}
|
|
34
|
+
export type PeekOutcome = {
|
|
35
|
+
readonly ok: true;
|
|
36
|
+
readonly peeked: PeekedMarketplace;
|
|
37
|
+
}
|
|
38
|
+
/** No marketplace file at any of the four locations: the repository is not a marketplace. */
|
|
39
|
+
| {
|
|
40
|
+
readonly ok: false;
|
|
41
|
+
readonly kind: "not-a-marketplace";
|
|
42
|
+
}
|
|
43
|
+
/** A file was found and the library refused it; its sentences travel. */
|
|
44
|
+
| {
|
|
45
|
+
readonly ok: false;
|
|
46
|
+
readonly kind: "refused";
|
|
47
|
+
readonly location: string;
|
|
48
|
+
readonly errors: readonly MarketplaceFinding[];
|
|
49
|
+
readonly warnings: readonly MarketplaceFinding[];
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Read only the marketplace file of a GitHub source. The four locations are
|
|
53
|
+
* tried in the library's precedence and the first that exists is read as
|
|
54
|
+
* declared (`readMarketplaceFile`: the tree is not consulted). Network and
|
|
55
|
+
* server faults throw a `CliExitError` naming the repository, as the
|
|
56
|
+
* zipball download does; a 404 at every location is the `not-a-marketplace`
|
|
57
|
+
* outcome, not an error, because a bare-name search must say which sources
|
|
58
|
+
* it looked at and move on.
|
|
59
|
+
*/
|
|
60
|
+
export declare function peekGitHubMarketplace(source: GitHubTreeSource, fetchImpl?: typeof globalThis.fetch): Promise<PeekOutcome>;
|
|
24
61
|
/**
|
|
25
62
|
* Download the zipball and extract it into `destDir` with the zipball's
|
|
26
63
|
* single top-level directory (`<repo>-<ref>/`) stripped, so `destDir` IS the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/marketplace/github.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../src/marketplace/github.ts"],"names":[],"mappings":"AAsCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EAIxB,MAAM,yBAAyB,CAAC;AAcjC,uFAAuF;AACvF,eAAO,MAAM,qBAAqB;IAChC,4CAA4C;;IAE5C,2DAA2D;;IAE3D,yDAAyD;;CAEjD,CAAC;AAKX,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,mFAAmF;IACnF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAC9C;AAED,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAE3D;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE;AAC3D,6FAA6F;GAC3F;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE;AAC5D,yEAAyE;GACvE;IACE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAClD,CAAC;AAEN;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,OAAO,UAAU,CAAC,KAAwB,GACpD,OAAO,CAAC,WAAW,CAAC,CA0BtB;AAkCD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAgBf"}
|
package/marketplace/github.js
CHANGED
|
@@ -23,10 +23,19 @@
|
|
|
23
23
|
// 1,169 entries; anthropics/claude-code 11.7 / 13.6 / 1,595; openai/codex
|
|
24
24
|
// 18.6 / 76.8 / 9,188, its marketplace file at the repository root so the
|
|
25
25
|
// whole repository is the tree), with room above the largest.
|
|
26
|
+
//
|
|
27
|
+
// The peek. A bare `stigmer install <name>` asks every known source whether
|
|
28
|
+
// it offers the name, and with the vendors' catalogues built in that would be
|
|
29
|
+
// three zipballs (about 35 MiB) per install. `peekGitHubMarketplace` reads
|
|
30
|
+
// only the marketplace file instead: the four locations the library knows,
|
|
31
|
+
// tried in its precedence, from raw.githubusercontent.com at the ref (no API
|
|
32
|
+
// call, no token, no rate budget, the same reasons as the zipball). It
|
|
33
|
+
// answers what the file declares; the zipball is then downloaded for the one
|
|
34
|
+
// holder and the tree read verifies the entry before anything is installed.
|
|
26
35
|
import { mkdirSync, writeFileSync } from "node:fs";
|
|
27
36
|
import { dirname, join } from "node:path";
|
|
28
37
|
import { inflateRawSync } from "node:zlib";
|
|
29
|
-
import { isContainedPath } from "@stigmer/plugin-package";
|
|
38
|
+
import { MARKETPLACE_LOCATIONS, inMemoryPluginFiles, isContainedPath, readMarketplaceFile, } from "@stigmer/plugin-package";
|
|
30
39
|
import { crc32, parseZipStructure, } from "@stigmer/zip-structure";
|
|
31
40
|
import { CliExitError } from "../errors/cli-exit-error.js";
|
|
32
41
|
import { ExitCode } from "../errors/exit-codes.js";
|
|
@@ -49,6 +58,66 @@ const DEFAULT_REF = "HEAD";
|
|
|
49
58
|
export function zipballUrl(source) {
|
|
50
59
|
return `https://codeload.github.com/${source.repo}/zip/${source.ref ?? DEFAULT_REF}`;
|
|
51
60
|
}
|
|
61
|
+
/** The URL raw.githubusercontent.com serves `path` from at `ref` (no API, no token). */
|
|
62
|
+
export function rawFileUrl(source, path) {
|
|
63
|
+
return `https://raw.githubusercontent.com/${source.repo}/${source.ref ?? DEFAULT_REF}/${path}`;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Read only the marketplace file of a GitHub source. The four locations are
|
|
67
|
+
* tried in the library's precedence and the first that exists is read as
|
|
68
|
+
* declared (`readMarketplaceFile`: the tree is not consulted). Network and
|
|
69
|
+
* server faults throw a `CliExitError` naming the repository, as the
|
|
70
|
+
* zipball download does; a 404 at every location is the `not-a-marketplace`
|
|
71
|
+
* outcome, not an error, because a bare-name search must say which sources
|
|
72
|
+
* it looked at and move on.
|
|
73
|
+
*/
|
|
74
|
+
export async function peekGitHubMarketplace(source, fetchImpl = globalThis.fetch) {
|
|
75
|
+
for (const location of Object.values(MARKETPLACE_LOCATIONS)) {
|
|
76
|
+
const bytes = await fetchRawFile(source, location, fetchImpl);
|
|
77
|
+
if (bytes === undefined)
|
|
78
|
+
continue;
|
|
79
|
+
const outcome = readMarketplaceFile(inMemoryPluginFiles(new Map([[location, bytes]])));
|
|
80
|
+
if (!outcome.ok) {
|
|
81
|
+
return {
|
|
82
|
+
ok: false,
|
|
83
|
+
kind: "refused",
|
|
84
|
+
location,
|
|
85
|
+
errors: outcome.errors,
|
|
86
|
+
warnings: outcome.warnings,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
ok: true,
|
|
91
|
+
peeked: {
|
|
92
|
+
marketplace: outcome.marketplace,
|
|
93
|
+
warnings: outcome.warnings,
|
|
94
|
+
location,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return { ok: false, kind: "not-a-marketplace" };
|
|
99
|
+
}
|
|
100
|
+
/** One raw file, or `undefined` when the path does not exist at the ref. */
|
|
101
|
+
async function fetchRawFile(source, path, fetchImpl) {
|
|
102
|
+
const url = rawFileUrl(source, path);
|
|
103
|
+
let response;
|
|
104
|
+
try {
|
|
105
|
+
response = await fetchImpl(url, { redirect: "follow" });
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
throw new CliExitError(`could not reach GitHub for ${source.repo}`, ExitCode.Connection, [
|
|
109
|
+
`URL: ${url}`,
|
|
110
|
+
"Check the network connection and retry.",
|
|
111
|
+
error instanceof Error ? error.message : String(error),
|
|
112
|
+
]);
|
|
113
|
+
}
|
|
114
|
+
if (response.status === 404)
|
|
115
|
+
return undefined;
|
|
116
|
+
if (!response.ok) {
|
|
117
|
+
throw new CliExitError(`GitHub answered ${response.status} for ${source.repo}`, ExitCode.Connection, [`URL: ${url}`, "Retry; if it persists, the repository or GitHub is unavailable."]);
|
|
118
|
+
}
|
|
119
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
120
|
+
}
|
|
52
121
|
/**
|
|
53
122
|
* Download the zipball and extract it into `destDir` with the zipball's
|
|
54
123
|
* single top-level directory (`<repo>-<ref>/`) stripped, so `destDir` IS the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/marketplace/github.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,oCAAoC;AACpC,EAAE;AACF,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,mEAAmE;AACnE,8EAA8E;AAC9E,wEAAwE;AACxE,6EAA6E;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AACvE,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,8DAA8D;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../src/marketplace/github.ts"],"names":[],"mappings":"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"}
|
package/marketplace/install.d.ts
CHANGED
|
@@ -10,12 +10,19 @@ export interface LocatedEntry {
|
|
|
10
10
|
readonly tree: ReadMarketplaceTree;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
* Find the
|
|
14
|
-
* name is searched across every
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
13
|
+
* Find the source a ref names. A prefixed ref names it outright; a bare
|
|
14
|
+
* name is searched across every known source in listing order (the official
|
|
15
|
+
* one first), and exactly one must offer it: none refuses toward
|
|
16
|
+
* `marketplace show`, more than one refuses by naming each holder, because
|
|
17
|
+
* "the first one wins" would make the answer depend on the order the user
|
|
18
|
+
* added sources in. The caller owns `open` and disposes it.
|
|
19
|
+
*
|
|
20
|
+
* The search is cheap by design: a GitHub source is asked through its
|
|
21
|
+
* marketplace file alone (`peekGitHubMarketplace`, a few KB), and only the
|
|
22
|
+
* one source that declares the name is opened as a tree and read whole,
|
|
23
|
+
* which is where "declared" becomes "offered" or the install refuses. With
|
|
24
|
+
* the vendors' catalogues built in, the alternative was three zipballs per
|
|
25
|
+
* bare install.
|
|
19
26
|
*/
|
|
20
27
|
export declare function locateEntry(ref: InstallRef, listing: MarketplaceListing, options?: OpenMarketplaceOptions): Promise<LocatedEntry>;
|
|
21
28
|
/** Read, validate and zip the entry called `name`; refuses an entry the marketplace does not offer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/marketplace/install.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAExB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAE5B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/marketplace/install.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAExB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAE5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,mBAAmB,EAKzB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,UAAU,CAAC;AAE7D,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,UAAU,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,YAAY,CAAC,CAsDvB;AAyDD,uGAAuG;AACvG,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,CAAC,CAI7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,EAAE,MAAM,GACV,IAAI,CASN"}
|
package/marketplace/install.js
CHANGED
|
@@ -9,15 +9,23 @@ import { UsageError } from "../errors/index.js";
|
|
|
9
9
|
import { preparePluginPush, } from "../resources/plugin.js";
|
|
10
10
|
import { describeSource, } from "./config.js";
|
|
11
11
|
import { openMarketplace, } from "./materialize.js";
|
|
12
|
-
import {
|
|
12
|
+
import { peekGitHubMarketplace } from "./github.js";
|
|
13
|
+
import { entryDirectory, findEntry, marketplaceRefusal, readMarketplaceTree, } from "./read.js";
|
|
13
14
|
import { formatInstallRef } from "./ref.js";
|
|
14
15
|
/**
|
|
15
|
-
* Find the
|
|
16
|
-
* name is searched across every
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
16
|
+
* Find the source a ref names. A prefixed ref names it outright; a bare
|
|
17
|
+
* name is searched across every known source in listing order (the official
|
|
18
|
+
* one first), and exactly one must offer it: none refuses toward
|
|
19
|
+
* `marketplace show`, more than one refuses by naming each holder, because
|
|
20
|
+
* "the first one wins" would make the answer depend on the order the user
|
|
21
|
+
* added sources in. The caller owns `open` and disposes it.
|
|
22
|
+
*
|
|
23
|
+
* The search is cheap by design: a GitHub source is asked through its
|
|
24
|
+
* marketplace file alone (`peekGitHubMarketplace`, a few KB), and only the
|
|
25
|
+
* one source that declares the name is opened as a tree and read whole,
|
|
26
|
+
* which is where "declared" becomes "offered" or the install refuses. With
|
|
27
|
+
* the vendors' catalogues built in, the alternative was three zipballs per
|
|
28
|
+
* bare install.
|
|
21
29
|
*/
|
|
22
30
|
export async function locateEntry(ref, listing, options = {}) {
|
|
23
31
|
if (ref.marketplace !== undefined) {
|
|
@@ -40,22 +48,17 @@ export async function locateEntry(ref, listing, options = {}) {
|
|
|
40
48
|
}
|
|
41
49
|
const holders = [];
|
|
42
50
|
for (const marketplace of listing.known) {
|
|
43
|
-
|
|
44
|
-
let tree;
|
|
51
|
+
let located;
|
|
45
52
|
try {
|
|
46
|
-
|
|
53
|
+
located = await locateIn(marketplace, ref.name, options);
|
|
47
54
|
}
|
|
48
55
|
catch (error) {
|
|
49
|
-
open.dispose();
|
|
50
56
|
for (const holder of holders)
|
|
51
57
|
holder.open.dispose();
|
|
52
58
|
throw error;
|
|
53
59
|
}
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
holders.push({ marketplace, open, tree });
|
|
60
|
+
if (located !== undefined)
|
|
61
|
+
holders.push(located);
|
|
59
62
|
}
|
|
60
63
|
if (holders.length === 1)
|
|
61
64
|
return holders[0];
|
|
@@ -72,6 +75,50 @@ export async function locateEntry(ref, listing, options = {}) {
|
|
|
72
75
|
throw new UsageError(`'${ref.name}' is offered by more than one marketplace: ${holders.map((holder) => holder.marketplace.name).join(", ")}\n\n` +
|
|
73
76
|
`Name the one you mean: ${holders.map((holder) => formatInstallRef({ ...ref, marketplace: holder.marketplace.name })).join(" or ")}.`);
|
|
74
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* The entry called `name` in one source, opened and read, or `undefined`
|
|
80
|
+
* when the source does not offer it. A GitHub source is first asked through
|
|
81
|
+
* its marketplace file alone (a few KB); its zipball is downloaded only when
|
|
82
|
+
* the file declares the name, and the tree read then decides whether it is
|
|
83
|
+
* held. A local or official tree is on disk and is read once. A GitHub
|
|
84
|
+
* repository with no marketplace file declares nothing (a built-in whose
|
|
85
|
+
* vendor moved the file must not break every bare install); one whose file
|
|
86
|
+
* the library refuses is a real fault and is said so.
|
|
87
|
+
*/
|
|
88
|
+
async function locateIn(marketplace, name, options) {
|
|
89
|
+
if (marketplace.source.type === "github") {
|
|
90
|
+
const peek = await peekGitHubMarketplace(marketplace.source, options.fetchImpl);
|
|
91
|
+
if (!peek.ok) {
|
|
92
|
+
switch (peek.kind) {
|
|
93
|
+
case "not-a-marketplace":
|
|
94
|
+
return undefined;
|
|
95
|
+
case "refused":
|
|
96
|
+
throw marketplaceRefusal(`${describeSource(marketplace.source)} (${peek.location})`, peek.errors, peek.warnings);
|
|
97
|
+
default: {
|
|
98
|
+
const exhaustive = peek;
|
|
99
|
+
return exhaustive;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (findEntry(peek.peeked.marketplace, name) === undefined)
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
const open = await openMarketplace(marketplace.source, options);
|
|
107
|
+
try {
|
|
108
|
+
const tree = readMarketplaceTree(open.root, describeSource(marketplace.source));
|
|
109
|
+
if (findEntry(tree.marketplace, name) === undefined) {
|
|
110
|
+
// Declared by a file but not held by the tree, or simply absent: not a
|
|
111
|
+
// holder. The not-found sentence names every source searched.
|
|
112
|
+
open.dispose();
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
return { marketplace, open, tree };
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
open.dispose();
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
75
122
|
/** Read, validate and zip the entry called `name`; refuses an entry the marketplace does not offer. */
|
|
76
123
|
export async function prepareEntry(tree, name) {
|
|
77
124
|
const entry = findEntry(tree.marketplace, name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/marketplace/install.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wEAAwE;AACxE,6EAA6E;AAC7E,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,gEAAgE;AAGhE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAEL,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAGL,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,cAAc,EACd,SAAS,EACT,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAmB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAS7D
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/marketplace/install.ts"],"names":[],"mappings":"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"}
|
package/marketplace/official.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
//
|
|
3
3
|
// The official catalogue (`plugins/` in the OSS repository, published as
|
|
4
4
|
// `@stigmer/plugins`) is the content `stigmer up` bootstraps a backend with,
|
|
5
|
-
// so it follows the
|
|
6
|
-
// the plugins a fresh install gets match the control plane that
|
|
7
|
-
// them. A lean `npx @stigmer/cli` does not carry the content; it is fetched
|
|
5
|
+
// so it follows the server's and the runner's rule: acquired at the CLI's OWN
|
|
6
|
+
// version, so the plugins a fresh install gets match the control plane that
|
|
7
|
+
// installs them. A lean `npx @stigmer/cli` does not carry the content; it is fetched
|
|
8
8
|
// once into ~/.stigmer/runtimes/<version>/ like the server and the runner.
|
|
9
9
|
//
|
|
10
|
-
// Two sources, tried in order (mirrors runtime/server.ts and
|
|
10
|
+
// Two sources, tried in order (mirrors runtime/server.ts and runtime/runner.ts):
|
|
11
11
|
// 1. A repo-tree checkout (dev): `<repo>/plugins`, the tree itself.
|
|
12
12
|
// 2. The published `@stigmer/plugins@<cli-version>`, whose package root IS
|
|
13
13
|
// the marketplace tree (`publish-libs.mjs` publishes from `dist/`, where
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official.js","sourceRoot":"","sources":["../../src/marketplace/official.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"official.js","sourceRoot":"","sources":["../../src/marketplace/official.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/marketplace/render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/marketplace/render.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAExB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,WAAW,CAAC;AAErE,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,GAC1B,aAAa,CAqCf;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,UAAU,EAAE,CAyBtE;AAED,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,SAAS,UAAU,EAAE,GAC7B,aAAa,CAyDf"}
|