@commercetools/cli-topic-integration-layer 0.10.1 → 0.11.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/dist/commands/integration-layer/explore.d.ts +3 -0
- package/dist/commands/integration-layer/explore.js +87 -10
- package/dist/commands/integration-layer/explore.js.map +1 -1
- package/dist/commands/integration-layer/extension/pull.d.ts +10 -0
- package/dist/commands/integration-layer/extension/pull.js +60 -0
- package/dist/commands/integration-layer/extension/pull.js.map +1 -0
- package/dist/commands/integration-layer/extension/push.d.ts +3 -0
- package/dist/commands/integration-layer/extension/push.js +39 -12
- package/dist/commands/integration-layer/extension/push.js.map +1 -1
- package/dist/lib/ilClient.d.ts +26 -0
- package/dist/lib/ilClient.js +68 -0
- package/dist/lib/ilClient.js.map +1 -1
- package/dist/lib/tooling/session.d.ts +29 -0
- package/dist/lib/tooling/session.js +51 -0
- package/dist/lib/tooling/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,9 @@ export default class Explore extends IntegrationLayerCommand {
|
|
|
6
6
|
port: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
7
|
deployed: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
8
|
as: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
"business-unit": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
store: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
"session-token": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
12
|
locale: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
13
|
currency: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
14
|
country: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
// bar ran under the project's service-account credentials, and that is precisely what
|
|
20
20
|
// is not reimplemented here. To see what a customer sees, log in as them.
|
|
21
21
|
//
|
|
22
|
+
// B2B — a minted session has no business unit selected, so B2B operations fail
|
|
23
|
+
// until one is chosen. `--business-unit <key> --store <key>` performs the second
|
|
24
|
+
// storefront step (PUT /session/business-unit) that scopes the session and reissues
|
|
25
|
+
// the bearer; both keys are required and the store must belong to the unit. This
|
|
26
|
+
// needs a signed-in customer, so pair it with `--as` (or a `--session-token` that is
|
|
27
|
+
// already a customer session). `--session-token` also lets you skip the login
|
|
28
|
+
// entirely and hand the explorer an already-minted bearer.
|
|
29
|
+
//
|
|
22
30
|
// PRESENTMENT — prices are selected from the session's locale/currency/country, which
|
|
23
31
|
// the Commerce Integration Layer resolves ONCE at mint (it has no per-request override, by
|
|
24
32
|
// design). So `--locale/--currency/--country` are mint-time flags: to explore a
|
|
@@ -33,7 +41,7 @@ import { buildBundle, defaultEntry, defaultOutfile } from "../../lib/tooling/bui
|
|
|
33
41
|
import { loadBundleSource } from "../../lib/tooling/loadBundle.js";
|
|
34
42
|
import { buildSchema } from "graphql";
|
|
35
43
|
import { composeLocalExplorerSchema, } from "../../lib/tooling/exploreSchema.js";
|
|
36
|
-
import { mintSession } from "../../lib/tooling/session.js";
|
|
44
|
+
import { mintSession, selectBusinessUnit } from "../../lib/tooling/session.js";
|
|
37
45
|
import { createExplorerServer } from "../../lib/tooling/explorerServer.js";
|
|
38
46
|
export default class Explore extends IntegrationLayerCommand {
|
|
39
47
|
static description = "Run a local GraphQL explorer in your browser, against your project's deployed edge";
|
|
@@ -41,6 +49,8 @@ export default class Explore extends IntegrationLayerCommand {
|
|
|
41
49
|
"<%= config.bin %> integration-layer explore",
|
|
42
50
|
"<%= config.bin %> integration-layer explore --deployed",
|
|
43
51
|
"<%= config.bin %> integration-layer explore --as alice@example.com",
|
|
52
|
+
"<%= config.bin %> integration-layer explore --as alice@example.com --business-unit acme-eu --store acme-eu-de",
|
|
53
|
+
"<%= config.bin %> integration-layer explore --session-token eyJ… --business-unit acme-eu --store acme-eu-de",
|
|
44
54
|
"<%= config.bin %> integration-layer explore --currency EUR --country DE --locale de-DE",
|
|
45
55
|
"<%= config.bin %> integration-layer explore --deployed --port 5000",
|
|
46
56
|
];
|
|
@@ -57,6 +67,22 @@ export default class Explore extends IntegrationLayerCommand {
|
|
|
57
67
|
as: Flags.string({
|
|
58
68
|
description: "run operations as this customer (an ordinary email/password login; prompts for the password unless IL_CUSTOMER_PASSWORD is set). Omit to run anonymously.",
|
|
59
69
|
}),
|
|
70
|
+
// B2B scoping. The integration layer mints a session with NO business unit
|
|
71
|
+
// selected, so B2B operations fail until one is chosen. This is a second call
|
|
72
|
+
// (PUT /session/business-unit) that reissues the bearer; both keys are required
|
|
73
|
+
// and the store must belong to the business unit.
|
|
74
|
+
"business-unit": Flags.string({
|
|
75
|
+
description: "select this business unit for the session (B2B). Requires --store and a signed-in customer (--as or --session-token).",
|
|
76
|
+
helpGroup: "B2B",
|
|
77
|
+
}),
|
|
78
|
+
store: Flags.string({
|
|
79
|
+
description: "select this store for the session (B2B). Must be a store associated with --business-unit.",
|
|
80
|
+
helpGroup: "B2B",
|
|
81
|
+
}),
|
|
82
|
+
"session-token": Flags.string({
|
|
83
|
+
description: "use this already-minted session bearer instead of logging in (also settable via IL_SESSION_TOKEN). Skips minting, so --as and the presentment flags do not apply.",
|
|
84
|
+
env: "IL_SESSION_TOKEN",
|
|
85
|
+
}),
|
|
60
86
|
// Presentment. Applied at mint, because that is the only place the integration
|
|
61
87
|
// layer lets it be chosen; omitted flags fall back to the project's config.
|
|
62
88
|
locale: Flags.string({
|
|
@@ -99,18 +125,69 @@ export default class Explore extends IntegrationLayerCommand {
|
|
|
99
125
|
throw new Error("could not resolve the identity edge URL: pass --auth-url or set IL_AUTH_URL " +
|
|
100
126
|
"(e.g. https://auth.integration-layer.eu-central-1.aws.commercetools.com)");
|
|
101
127
|
}
|
|
128
|
+
// Validate the B2B / session flag combinations up front, before any network
|
|
129
|
+
// call, so a misuse fails instantly rather than after a mint.
|
|
130
|
+
const businessUnitKey = flags["business-unit"];
|
|
131
|
+
const storeKey = flags.store;
|
|
132
|
+
if ((businessUnitKey === undefined) !== (storeKey === undefined)) {
|
|
133
|
+
throw new Error("--business-unit and --store must be given together");
|
|
134
|
+
}
|
|
135
|
+
const sessionToken = flags["session-token"];
|
|
136
|
+
if (sessionToken !== undefined) {
|
|
137
|
+
// These are all mint-time inputs; with a supplied token there is no mint, so
|
|
138
|
+
// honouring them silently would be a lie. Fail loudly instead.
|
|
139
|
+
if (flags.as !== undefined) {
|
|
140
|
+
throw new Error("--session-token cannot be combined with --as: the token already carries its identity");
|
|
141
|
+
}
|
|
142
|
+
if (flags.locale !== undefined || flags.currency !== undefined || flags.country !== undefined) {
|
|
143
|
+
throw new Error("--session-token cannot be combined with --locale/--currency/--country: " +
|
|
144
|
+
"presentment is fixed when the session is minted");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// A business unit can only be selected on a signed-in customer session — mint is
|
|
148
|
+
// anonymous unless --as is given. A supplied --session-token may already be a
|
|
149
|
+
// customer session, so it satisfies this too (the server rejects it otherwise).
|
|
150
|
+
if (businessUnitKey !== undefined && flags.as === undefined && sessionToken === undefined) {
|
|
151
|
+
throw new Error("--business-unit/--store need a signed-in customer: pass --as, or an already " +
|
|
152
|
+
"signed-in --session-token");
|
|
153
|
+
}
|
|
102
154
|
const resolved = await this.resolveSchema(flags.deployed, baseUrl, projectKey, authFetch);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
155
|
+
// Either use the supplied bearer as-is, or mint one from the login.
|
|
156
|
+
let bearer;
|
|
157
|
+
let runningAs;
|
|
158
|
+
let pricesIn;
|
|
159
|
+
if (sessionToken !== undefined) {
|
|
160
|
+
bearer = sessionToken;
|
|
161
|
+
runningAs = "a supplied session token";
|
|
162
|
+
pricesIn = "as minted (from the supplied token)";
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const grant = await this.resolveGrant(flags.as);
|
|
166
|
+
const session = await mintSession(authUrl, projectKey, grant, {
|
|
167
|
+
locale: flags.locale,
|
|
168
|
+
currency: flags.currency,
|
|
169
|
+
country: flags.country,
|
|
170
|
+
});
|
|
171
|
+
bearer = session.token;
|
|
172
|
+
runningAs = session.describe;
|
|
173
|
+
pricesIn = session.presentment;
|
|
174
|
+
}
|
|
175
|
+
// Second step for B2B: scope the session to a business unit + store. This
|
|
176
|
+
// reissues the bearer (it now carries the store's distribution channel), so the
|
|
177
|
+
// proxy must run on the returned token, not the mint one.
|
|
178
|
+
if (businessUnitKey !== undefined && storeKey !== undefined) {
|
|
179
|
+
const scoped = await selectBusinessUnit(authUrl, projectKey, bearer, {
|
|
180
|
+
businessUnitKey,
|
|
181
|
+
storeKey,
|
|
182
|
+
});
|
|
183
|
+
bearer = scoped.token;
|
|
184
|
+
runningAs = `${runningAs} · ${scoped.describe}`;
|
|
185
|
+
}
|
|
109
186
|
const endpoint = `${graphqlUrl.replace(/\/+$/, "")}/${encodeURIComponent(projectKey)}/graphql`;
|
|
110
187
|
const server = createExplorerServer({
|
|
111
188
|
schema: resolved.schema,
|
|
112
189
|
endpoint,
|
|
113
|
-
bearer
|
|
190
|
+
bearer,
|
|
114
191
|
clientVersion: this.config.version,
|
|
115
192
|
});
|
|
116
193
|
await new Promise((resolve, reject) => {
|
|
@@ -124,8 +201,8 @@ export default class Explore extends IntegrationLayerCommand {
|
|
|
124
201
|
"",
|
|
125
202
|
` schema ${resolved.describe}`,
|
|
126
203
|
` operations ${endpoint}`,
|
|
127
|
-
` running as ${
|
|
128
|
-
` prices in ${
|
|
204
|
+
` running as ${runningAs}`,
|
|
205
|
+
` prices in ${pricesIn}`,
|
|
129
206
|
"",
|
|
130
207
|
" Ctrl-C to stop.",
|
|
131
208
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explore.js","sourceRoot":"","sources":["../../../src/commands/integration-layer/explore.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,EAAE;AACF,oFAAoF;AACpF,mFAAmF;AACnF,qDAAqD;AACrD,EAAE;AACF,mFAAmF;AACnF,gFAAgF;AAChF,iFAAiF;AACjF,6EAA6E;AAC7E,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,mFAAmF;AACnF,EAAE;AACF,qFAAqF;AACrF,+EAA+E;AAC/E,uFAAuF;AACvF,sFAAsF;AACtF,0EAA0E;AAC1E,EAAE;AACF,sFAAsF;AACtF,2FAA2F;AAC3F,gFAAgF;AAChF,8EAA8E;AAC9E,kEAAkE;AAElE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EACL,0BAA0B,GAE3B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAqB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"explore.js","sourceRoot":"","sources":["../../../src/commands/integration-layer/explore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IntegrationLayerCommand } from "../../../lib/base.js";
|
|
2
|
+
export default class ExtensionPull extends IntegrationLayerCommand {
|
|
3
|
+
static description: string;
|
|
4
|
+
static examples: string[];
|
|
5
|
+
static flags: {
|
|
6
|
+
out: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
8
|
+
};
|
|
9
|
+
run(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { access, mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { Flags } from "@oclif/core";
|
|
4
|
+
import { fetchBundleSource } from "../../../lib/ilClient.js";
|
|
5
|
+
import { IntegrationLayerCommand } from "../../../lib/base.js";
|
|
6
|
+
/** Whether a path already exists — a plain existence probe (F_OK). */
|
|
7
|
+
async function exists(path) {
|
|
8
|
+
try {
|
|
9
|
+
await access(path);
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export default class ExtensionPull extends IntegrationLayerCommand {
|
|
17
|
+
static description = "Download the project's stored extension bundle (the served .cjs) to a file";
|
|
18
|
+
static examples = [
|
|
19
|
+
"<%= config.bin %> integration-layer extension pull",
|
|
20
|
+
"<%= config.bin %> integration-layer extension pull --out ./dist/extension.cjs",
|
|
21
|
+
"<%= config.bin %> integration-layer extension pull --force",
|
|
22
|
+
];
|
|
23
|
+
static flags = {
|
|
24
|
+
out: Flags.string({
|
|
25
|
+
description: "file to write the bundle to (default: the stored filename under ./dist)",
|
|
26
|
+
}),
|
|
27
|
+
force: Flags.boolean({
|
|
28
|
+
char: "f",
|
|
29
|
+
description: "overwrite the output file if it already exists",
|
|
30
|
+
default: false,
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
33
|
+
async run() {
|
|
34
|
+
const { flags } = await this.parse(ExtensionPull);
|
|
35
|
+
const { baseUrl, projectKey, authFetch } = await this.resolveIlContext(flags);
|
|
36
|
+
const downloaded = await fetchBundleSource(baseUrl, projectKey, authFetch);
|
|
37
|
+
if (!downloaded) {
|
|
38
|
+
this.log(`No extension bundle is stored for '${projectKey}'.`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// Default to the name the bundle was uploaded under, so a pull → push round-trip
|
|
42
|
+
// keeps the same file; fall back to `extension.cjs` only if the store didn't send one.
|
|
43
|
+
const outfile = flags.out ?? join(process.cwd(), "dist", downloaded.filename ?? "extension.cjs");
|
|
44
|
+
// Don't clobber an existing file silently — a pull is easy to fire at the wrong
|
|
45
|
+
// path, and the local copy might be the only one. Make overwriting explicit.
|
|
46
|
+
if (!flags.force && (await exists(outfile))) {
|
|
47
|
+
this.error(`${outfile} already exists — pass --force to overwrite it.`);
|
|
48
|
+
}
|
|
49
|
+
await mkdir(dirname(outfile), { recursive: true });
|
|
50
|
+
await writeFile(outfile, downloaded.bundle);
|
|
51
|
+
this.log(`✓ wrote ${downloaded.bundle.length} bytes → ${outfile}`);
|
|
52
|
+
if (downloaded.version !== undefined)
|
|
53
|
+
this.log(` version: ${downloaded.version}`);
|
|
54
|
+
// Only when the push that stored it reported one — a bundle uploaded by hand in
|
|
55
|
+
// the Merchant Center has no revision.
|
|
56
|
+
if (downloaded.sourceRevision)
|
|
57
|
+
this.log(` built from: ${downloaded.sourceRevision}`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../../src/commands/integration-layer/extension/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,sEAAsE;AACtE,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,uBAAuB;IAChE,MAAM,CAAU,WAAW,GACzB,4EAA4E,CAAC;IAE/E,MAAM,CAAU,QAAQ,GAAG;QACzB,oDAAoD;QACpD,+EAA+E;QAC/E,4DAA4D;KAC7D,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,yEAAyE;SACvF,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,gDAAgD;YAC7D,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE9E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,sCAAsC,UAAU,IAAI,CAAC,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,iFAAiF;QACjF,uFAAuF;QACvF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,IAAI,eAAe,CAAC,CAAC;QACjG,gFAAgF;QAChF,6EAA6E;QAC7E,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,iDAAiD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,MAAM,CAAC,MAAM,YAAY,OAAO,EAAE,CAAC,CAAC;QACnE,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACvF,gFAAgF;QAChF,uCAAuC;QACvC,IAAI,UAAU,CAAC,cAAc;YAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;IACzF,CAAC"}
|
|
@@ -2,6 +2,9 @@ import { IntegrationLayerCommand } from "../../../lib/base.js";
|
|
|
2
2
|
export default class ExtensionPush extends IntegrationLayerCommand {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
|
+
static args: {
|
|
6
|
+
path: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
7
|
+
};
|
|
5
8
|
static flags: {
|
|
6
9
|
entry: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
10
|
out: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
|
-
import { basename } from "node:path";
|
|
3
|
-
import { Flags } from "@oclif/core";
|
|
2
|
+
import { basename, extname } from "node:path";
|
|
3
|
+
import { Args, Flags } from "@oclif/core";
|
|
4
4
|
import { defaultEntry, defaultOutfile } from "../../../lib/tooling/build.js";
|
|
5
5
|
import { bundleForFlags } from "../../../lib/tooling/extensions.js";
|
|
6
6
|
import { validateBundle, BundleValidationError } from "../../../lib/tooling/validateBundle.js";
|
|
@@ -28,11 +28,22 @@ export default class ExtensionPush extends IntegrationLayerCommand {
|
|
|
28
28
|
static description = "Build + validate (local + remote) + upload the bundle, replacing the project's stored one";
|
|
29
29
|
static examples = [
|
|
30
30
|
"<%= config.bin %> integration-layer extension push",
|
|
31
|
+
"<%= config.bin %> integration-layer extension push ./src/extension.ts",
|
|
32
|
+
"<%= config.bin %> integration-layer extension push ./dist/extension.cjs",
|
|
31
33
|
"<%= config.bin %> integration-layer extension push --force",
|
|
32
34
|
"<%= config.bin %> integration-layer extension push --all",
|
|
33
35
|
"<%= config.bin %> integration-layer extension push --source-revision r48211",
|
|
34
36
|
"<%= config.bin %> integration-layer extension push --no-source-revision",
|
|
35
37
|
];
|
|
38
|
+
static args = {
|
|
39
|
+
// One positional, auto-detected by extension: a `.cjs` file is an already-built
|
|
40
|
+
// bundle uploaded as-is (skipping the build), anything else is an entry source
|
|
41
|
+
// that is bundled first — so `push ./src/extension.ts` and `push ./dist/extension.cjs`
|
|
42
|
+
// both work. Omit it to fall back to --entry / --all as before.
|
|
43
|
+
path: Args.string({
|
|
44
|
+
description: "extension entry source (.ts/.js) to build, OR a pre-built .cjs bundle to upload as-is; auto-detected by extension. Omit to use --entry / --all.",
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
36
47
|
static flags = {
|
|
37
48
|
entry: Flags.string({
|
|
38
49
|
description: "extension entry source file (with --all: the per-package source segment applied under each ./extensions/*)",
|
|
@@ -134,21 +145,37 @@ export default class ExtensionPush extends IntegrationLayerCommand {
|
|
|
134
145
|
return result.valid;
|
|
135
146
|
}
|
|
136
147
|
async run() {
|
|
137
|
-
const { flags } = await this.parse(ExtensionPush);
|
|
148
|
+
const { args, flags } = await this.parse(ExtensionPush);
|
|
149
|
+
// A pre-built `.cjs` path is uploaded as-is; anything else is source to build.
|
|
150
|
+
const prebuilt = !!args.path && extname(args.path).toLowerCase() === ".cjs";
|
|
151
|
+
if (args.path && flags.all) {
|
|
152
|
+
this.error("Pass either a path argument or --all, not both.");
|
|
153
|
+
}
|
|
138
154
|
// Bundle, then VALIDATE before we touch the store. Local check first — it always
|
|
139
155
|
// hard-fails, regardless of --force.
|
|
140
156
|
let outfile;
|
|
141
157
|
let sourceFiles;
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}));
|
|
158
|
+
if (prebuilt) {
|
|
159
|
+
// Already built: skip esbuild and upload the file directly. There is no source
|
|
160
|
+
// to statically analyse, so sourceFiles is empty — validateBundle still loads
|
|
161
|
+
// the bundle and checks its shape/SDL coherence below.
|
|
162
|
+
outfile = args.path;
|
|
163
|
+
sourceFiles = [];
|
|
164
|
+
this.log(`Using pre-built bundle ${outfile} (skipping build)`);
|
|
149
165
|
}
|
|
150
|
-
|
|
151
|
-
|
|
166
|
+
else {
|
|
167
|
+
try {
|
|
168
|
+
({ outfile, sourceFiles } = await bundleForFlags({
|
|
169
|
+
all: flags.all,
|
|
170
|
+
extensionsDir: flags["extensions-dir"],
|
|
171
|
+
// A positional source path overrides --entry; otherwise use the flag default.
|
|
172
|
+
entry: args.path ?? flags.entry,
|
|
173
|
+
out: flags.out,
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
catch (err) {
|
|
177
|
+
this.error(err.message);
|
|
178
|
+
}
|
|
152
179
|
}
|
|
153
180
|
let typeDefs;
|
|
154
181
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/commands/integration-layer/extension/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/commands/integration-layer/extension/push.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ilClient.d.ts
CHANGED
|
@@ -99,6 +99,32 @@ export declare function remoteValidate(baseUrl: string, projectKey: string, auth
|
|
|
99
99
|
export declare function pushBundle(baseUrl: string, projectKey: string, authFetch: AuthFetch, bundle: string, filename: string, sourceRevision?: string): Promise<ExtensionMeta>;
|
|
100
100
|
/** The stored bundle's metadata, or null if none is stored (`GET …/extension/bundle/meta`). */
|
|
101
101
|
export declare function fetchExtensionMeta(baseUrl: string, projectKey: string, authFetch: AuthFetch): Promise<ExtensionMeta | null>;
|
|
102
|
+
/** The stored bundle's bytes plus the provenance the download route carries in headers. */
|
|
103
|
+
export interface DownloadedBundle {
|
|
104
|
+
/** The raw bundle bytes, read as an ArrayBuffer so a binary/compressed blob round-trips exactly. */
|
|
105
|
+
bundle: Buffer;
|
|
106
|
+
/** The original upload filename (from `Content-Disposition`), if the route sent one. */
|
|
107
|
+
filename?: string;
|
|
108
|
+
/** The served revision's version number (from `X-Extension-Version`), if present. */
|
|
109
|
+
version?: number;
|
|
110
|
+
/** The revision's source revision (from `X-Extension-Source-Revision`), if the push recorded one. */
|
|
111
|
+
sourceRevision?: string;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Download the project's stored extension bundle — the newest NON-FAILED ("served")
|
|
115
|
+
* revision's bytes (`GET …/extension/bundle`), or null when nothing is stored.
|
|
116
|
+
*
|
|
117
|
+
* The route serves the served revision, which is not always the newest upload: when
|
|
118
|
+
* the last push failed to load, the one beneath it is what's handed out here. Its
|
|
119
|
+
* provenance travels in response headers (filename, version, source revision), so a
|
|
120
|
+
* caller can name the file and report what it got.
|
|
121
|
+
*
|
|
122
|
+
* A 404 has two meanings. Nothing stored → null. But when every retained revision
|
|
123
|
+
* failed to load the route also 404s, with a body naming the newest (failed) version
|
|
124
|
+
* and why — that is NOT "nothing stored", so surface it as an error rather than
|
|
125
|
+
* masking it as an empty project.
|
|
126
|
+
*/
|
|
127
|
+
export declare function fetchBundleSource(baseUrl: string, projectKey: string, authFetch: AuthFetch): Promise<DownloadedBundle | null>;
|
|
102
128
|
/** Remove the project's extension subgraph from Hive (`DELETE …/extension/subgraph`). */
|
|
103
129
|
export declare function deleteExtensionSubgraph(baseUrl: string, projectKey: string, authFetch: AuthFetch): Promise<void>;
|
|
104
130
|
/**
|
package/dist/lib/ilClient.js
CHANGED
|
@@ -105,6 +105,74 @@ export async function fetchExtensionMeta(baseUrl, projectKey, authFetch) {
|
|
|
105
105
|
}
|
|
106
106
|
return JSON.parse(text);
|
|
107
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Pull the filename out of a `Content-Disposition` header. Prefers the RFC 6266
|
|
110
|
+
* UTF-8 form (`filename*=UTF-8''<pct-encoded>`, which preserves a unicode name),
|
|
111
|
+
* falling back to the plain ASCII `filename="..."`. Returns undefined when neither
|
|
112
|
+
* is present (or the header is absent).
|
|
113
|
+
*/
|
|
114
|
+
function filenameFromContentDisposition(header) {
|
|
115
|
+
if (!header)
|
|
116
|
+
return undefined;
|
|
117
|
+
const star = /filename\*=(?:UTF-8'')?([^;]+)/i.exec(header);
|
|
118
|
+
if (star) {
|
|
119
|
+
try {
|
|
120
|
+
return decodeURIComponent(star[1].trim());
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// Malformed percent-encoding — fall through to the ASCII form.
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const plain = /filename="?([^";]+)"?/i.exec(header);
|
|
127
|
+
return plain ? plain[1].trim() : undefined;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Download the project's stored extension bundle — the newest NON-FAILED ("served")
|
|
131
|
+
* revision's bytes (`GET …/extension/bundle`), or null when nothing is stored.
|
|
132
|
+
*
|
|
133
|
+
* The route serves the served revision, which is not always the newest upload: when
|
|
134
|
+
* the last push failed to load, the one beneath it is what's handed out here. Its
|
|
135
|
+
* provenance travels in response headers (filename, version, source revision), so a
|
|
136
|
+
* caller can name the file and report what it got.
|
|
137
|
+
*
|
|
138
|
+
* A 404 has two meanings. Nothing stored → null. But when every retained revision
|
|
139
|
+
* failed to load the route also 404s, with a body naming the newest (failed) version
|
|
140
|
+
* and why — that is NOT "nothing stored", so surface it as an error rather than
|
|
141
|
+
* masking it as an empty project.
|
|
142
|
+
*/
|
|
143
|
+
export async function fetchBundleSource(baseUrl, projectKey, authFetch) {
|
|
144
|
+
const url = `${apiRoot(baseUrl, projectKey)}/extension/bundle`;
|
|
145
|
+
const res = await authFetch(url);
|
|
146
|
+
if (res.status === 404) {
|
|
147
|
+
const text = await res.text();
|
|
148
|
+
let body;
|
|
149
|
+
try {
|
|
150
|
+
body = JSON.parse(text);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// Non-JSON 404 — treat as "nothing stored" below.
|
|
154
|
+
}
|
|
155
|
+
// `newestVersion` present ⇒ a bundle IS stored, it just can't be loaded. Don't
|
|
156
|
+
// pass that off as an empty project.
|
|
157
|
+
if (body?.newestVersion !== undefined) {
|
|
158
|
+
throw new Error(`no loadable extension bundle for '${projectKey}': ${body.error ?? "every retained revision failed to load"}` +
|
|
159
|
+
(body.reason ? ` (${body.reason})` : ""));
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
if (!res.ok) {
|
|
164
|
+
const text = await res.text();
|
|
165
|
+
throw new Error(`GET extension/bundle failed (${res.status}): ${text}`);
|
|
166
|
+
}
|
|
167
|
+
const bundle = Buffer.from(await res.arrayBuffer());
|
|
168
|
+
const versionHeader = res.headers.get("x-extension-version");
|
|
169
|
+
return {
|
|
170
|
+
bundle,
|
|
171
|
+
filename: filenameFromContentDisposition(res.headers.get("content-disposition")),
|
|
172
|
+
version: versionHeader ? Number(versionHeader) : undefined,
|
|
173
|
+
sourceRevision: res.headers.get("x-extension-source-revision") ?? undefined,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
108
176
|
/** Remove the project's extension subgraph from Hive (`DELETE …/extension/subgraph`). */
|
|
109
177
|
export async function deleteExtensionSubgraph(baseUrl, projectKey, authFetch) {
|
|
110
178
|
const url = `${apiRoot(baseUrl, projectKey)}/extension/subgraph`;
|
package/dist/lib/ilClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ilClient.js","sourceRoot":"","sources":["../../src/lib/ilClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ilClient.js","sourceRoot":"","sources":["../../src/lib/ilClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,21 @@ export interface MintedSession {
|
|
|
25
25
|
/** e.g. `de-DE / EUR / DE` or `project defaults` — what prices will be shown in. */
|
|
26
26
|
presentment: string;
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* The business unit / store a B2B session is scoped to. BOTH are required by the
|
|
30
|
+
* integration layer: a store proves membership of the business unit, so it cannot
|
|
31
|
+
* be inferred. Selection is a SECOND call — the mint endpoint takes no BU.
|
|
32
|
+
*/
|
|
33
|
+
export interface BusinessUnitScope {
|
|
34
|
+
businessUnitKey: string;
|
|
35
|
+
storeKey: string;
|
|
36
|
+
}
|
|
37
|
+
/** A reissued session after a business-unit selection. */
|
|
38
|
+
export interface ScopedSession {
|
|
39
|
+
token: string;
|
|
40
|
+
/** e.g. `BU acme-eu / store acme-eu-de` — appended to the banner's `running as`. */
|
|
41
|
+
describe: string;
|
|
42
|
+
}
|
|
28
43
|
/**
|
|
29
44
|
* Mint an integration-layer session bearer at `POST <authUrl>/<project>/session`.
|
|
30
45
|
*
|
|
@@ -34,3 +49,17 @@ export interface MintedSession {
|
|
|
34
49
|
* separately.
|
|
35
50
|
*/
|
|
36
51
|
export declare function mintSession(authUrl: string, projectKey: string, grant: SessionGrant, presentment?: Presentment): Promise<MintedSession>;
|
|
52
|
+
/**
|
|
53
|
+
* Select a business unit and store on an already-minted session, at
|
|
54
|
+
* `PUT <authUrl>/<project>/session/business-unit`.
|
|
55
|
+
*
|
|
56
|
+
* This is the SECOND step of the B2B flow: mint cannot take a business unit (the
|
|
57
|
+
* server rejects it), so a customer session is minted first and then scoped here.
|
|
58
|
+
* `bearer` is the token from that mint; the server proves the customer's membership
|
|
59
|
+
* of the business unit by an as-associate read, and rejects a store that is not in
|
|
60
|
+
* the unit with `StoreNotInBusinessUnitError`. The reissued token REPLACES the mint
|
|
61
|
+
* token — it carries the store's distribution channel — so callers must swap it in.
|
|
62
|
+
*
|
|
63
|
+
* `authUrl` is the same identity edge `mintSession` uses, NOT the extensions edge.
|
|
64
|
+
*/
|
|
65
|
+
export declare function selectBusinessUnit(authUrl: string, projectKey: string, bearer: string, scope: BusinessUnitScope): Promise<ScopedSession>;
|
|
@@ -80,6 +80,57 @@ export async function mintSession(authUrl, projectKey, grant, presentment = {})
|
|
|
80
80
|
presentment: describePresentment(chosen),
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Select a business unit and store on an already-minted session, at
|
|
85
|
+
* `PUT <authUrl>/<project>/session/business-unit`.
|
|
86
|
+
*
|
|
87
|
+
* This is the SECOND step of the B2B flow: mint cannot take a business unit (the
|
|
88
|
+
* server rejects it), so a customer session is minted first and then scoped here.
|
|
89
|
+
* `bearer` is the token from that mint; the server proves the customer's membership
|
|
90
|
+
* of the business unit by an as-associate read, and rejects a store that is not in
|
|
91
|
+
* the unit with `StoreNotInBusinessUnitError`. The reissued token REPLACES the mint
|
|
92
|
+
* token — it carries the store's distribution channel — so callers must swap it in.
|
|
93
|
+
*
|
|
94
|
+
* `authUrl` is the same identity edge `mintSession` uses, NOT the extensions edge.
|
|
95
|
+
*/
|
|
96
|
+
export async function selectBusinessUnit(authUrl, projectKey, bearer, scope) {
|
|
97
|
+
const base = authUrl.replace(/\/+$/, "");
|
|
98
|
+
const url = `${base}/${encodeURIComponent(projectKey)}/session/business-unit`;
|
|
99
|
+
const res = await fetch(url, {
|
|
100
|
+
method: "PUT",
|
|
101
|
+
headers: {
|
|
102
|
+
"content-type": "application/json",
|
|
103
|
+
authorization: `Bearer ${bearer}`,
|
|
104
|
+
},
|
|
105
|
+
body: JSON.stringify({
|
|
106
|
+
businessUnitKey: scope.businessUnitKey,
|
|
107
|
+
storeKey: scope.storeKey,
|
|
108
|
+
}),
|
|
109
|
+
});
|
|
110
|
+
const text = await res.text();
|
|
111
|
+
if (!res.ok) {
|
|
112
|
+
// Same OAuth-shaped error surfacing as mintSession: a bad store key (a 4xx with
|
|
113
|
+
// a `StoreNotInBusinessUnitError` description) and an unreachable edge must not
|
|
114
|
+
// read the same.
|
|
115
|
+
let detail = text;
|
|
116
|
+
try {
|
|
117
|
+
const parsed = JSON.parse(text);
|
|
118
|
+
detail = parsed.error_description ?? parsed.error ?? text;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// not JSON — use the raw body
|
|
122
|
+
}
|
|
123
|
+
throw new Error(`could not select business unit '${scope.businessUnitKey}' / store '${scope.storeKey}' ` +
|
|
124
|
+
`(${res.status}) at ${url}: ${detail}`);
|
|
125
|
+
}
|
|
126
|
+
const token = JSON.parse(text).token;
|
|
127
|
+
if (!token)
|
|
128
|
+
throw new Error(`business-unit response from ${url} had no \`token\``);
|
|
129
|
+
return {
|
|
130
|
+
token,
|
|
131
|
+
describe: `BU ${scope.businessUnitKey} / store ${scope.storeKey}`,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
83
134
|
/**
|
|
84
135
|
* What the banner says prices will be shown in. Reports what was REQUESTED, marking
|
|
85
136
|
* the rest as the project's — the mint response carries the token only, so claiming
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/lib/tooling/session.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,+EAA+E;AAC/E,mFAAmF;AACnF,2DAA2D;AAC3D,EAAE;AACF,oFAAoF;AACpF,mFAAmF;AACnF,wEAAwE;AACxE,mFAAmF;AACnF,mFAAmF;AACnF,+BAA+B;AAC/B,EAAE;AACF,kFAAkF;AAClF,oFAAoF;AACpF,mFAAmF;AACnF,gFAAgF;AAChF,kFAAkF;AAClF,6EAA6E;AAC7E,6DAA6D;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/lib/tooling/session.ts"],"names":[],"mappings":"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"}
|