@commercetools/cli-topic-integration-layer 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -12
- package/dist/commands/integration-layer/allowlist/add.js +2 -2
- package/dist/commands/integration-layer/allowlist/add.js.map +1 -1
- package/dist/commands/integration-layer/config/unset.js +1 -1
- package/dist/commands/integration-layer/config/unset.js.map +1 -1
- package/dist/commands/integration-layer/explore.js +4 -4
- package/dist/commands/integration-layer/explore.js.map +1 -1
- package/dist/commands/integration-layer/extension/push.d.ts +1 -1
- package/dist/commands/integration-layer/extension/push.js +7 -7
- package/dist/commands/integration-layer/extension/push.js.map +1 -1
- package/dist/commands/integration-layer/extension/serve.d.ts +3 -3
- package/dist/commands/integration-layer/extension/serve.js +28 -28
- package/dist/commands/integration-layer/extension/serve.js.map +1 -1
- package/dist/commands/integration-layer/extension/validate.js +3 -3
- package/dist/commands/integration-layer/extension/validate.js.map +1 -1
- package/dist/commands/integration-layer/init.js +7 -7
- package/dist/lib/awaitBundleState.js +3 -3
- package/dist/lib/awaitBundleState.js.map +1 -1
- package/dist/lib/base.d.ts +1 -1
- package/dist/lib/base.js +5 -5
- package/dist/lib/base.js.map +1 -1
- package/dist/lib/ilClient.d.ts +9 -9
- package/dist/lib/ilClient.js +5 -5
- package/dist/lib/ilClient.js.map +1 -1
- package/dist/lib/sourceRevision.d.ts +1 -1
- package/dist/lib/sourceRevision.js +3 -3
- package/dist/lib/sourceRevision.js.map +1 -1
- package/dist/lib/tooling/compose.d.ts +2 -2
- package/dist/lib/tooling/compose.js +3 -3
- package/dist/lib/tooling/compose.js.map +1 -1
- package/dist/lib/tooling/exploreSchema.js +1 -1
- package/dist/lib/tooling/exploreSchema.js.map +1 -1
- package/dist/lib/tooling/explorerPage.js +2 -2
- package/dist/lib/tooling/gateway.d.ts +1 -1
- package/dist/lib/tooling/gateway.js +4 -4
- package/dist/lib/tooling/gateway.js.map +1 -1
- package/dist/lib/tooling/session.d.ts +1 -1
- package/dist/lib/tooling/session.js +2 -2
- package/dist/lib/tooling/session.js.map +1 -1
- package/dist/lib/tooling/validateBundle.js +16 -3
- package/dist/lib/tooling/validateBundle.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/commands/integration-layer/extension/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAA+B,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,uBAAuB;IACpE,MAAM,CAAU,WAAW,GACzB,4FAA4F,CAAC;IAE/F,MAAM,CAAU,QAAQ,GAAG;QACzB,wDAAwD;QACxD,sEAAsE;QACtE,8DAA8D;KAC/D,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;QAC5F,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;QACnF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EACT,8GAA8G;YAChH,OAAO,EAAE,KAAK;SACf,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,4DAA4D;YACzE,OAAO,EAAE,YAAY;SACtB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC7B,CAAC;KACH,CAAC;IAEF,6EAA6E;IACrE,YAAY,CAAC,MAA8B;QACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/commands/integration-layer/extension/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAA+B,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,uBAAuB;IACpE,MAAM,CAAU,WAAW,GACzB,4FAA4F,CAAC;IAE/F,MAAM,CAAU,QAAQ,GAAG;QACzB,wDAAwD;QACxD,sEAAsE;QACtE,8DAA8D;KAC/D,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;QAC5F,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC;QACnF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACjB,WAAW,EACT,8GAA8G;YAChH,OAAO,EAAE,KAAK;SACf,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC;YAC7B,WAAW,EAAE,4DAA4D;YACzE,OAAO,EAAE,YAAY;SACtB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC7B,CAAC;KACH,CAAC;IAEF,6EAA6E;IACrE,YAAY,CAAC,MAA8B;QACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,8EAA8E,CAAC,CAAC;YACjG,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,iBAAiB;gBAAE,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,sEAAsE,CAAC,CAAC;YACzF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,QAAQ,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CACN,kHAAkH,CACnH,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,OAAe,CAAC;QACpB,IAAI,WAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,CAAC;gBAC/C,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBACtC,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,GAAG,EAAE,KAAK,CAAC,GAAG;aACf,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACzD,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC1B,IAAI,CAAC,GAAG,CACN,0CAA0C,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI;oBACpF,mBAAmB,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CACpE,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,qBAAqB;oBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6EAA6E;YAC7E,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3E,QAAQ,GAAG,KAAK,EAAE,QAAQ,IAAI,IAAI,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YAChF,OAAO;QACT,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC1E,CAAC"}
|
|
@@ -96,7 +96,7 @@ INTEGRATION_LAYER_URL=
|
|
|
96
96
|
`,
|
|
97
97
|
"README.md": `# ${projectName}
|
|
98
98
|
|
|
99
|
-
A monorepo of commercetools Integration Layer extensions, scaffolded by
|
|
99
|
+
A monorepo of commercetools Commerce Integration Layer extensions, scaffolded by
|
|
100
100
|
\`commercetools integration-layer init\`. Each extension is a workspace member under
|
|
101
101
|
\`extensions/\`; the starter one (\`extensions/hello-world\`) adds a \`hello\` field to
|
|
102
102
|
\`Query\`.
|
|
@@ -126,7 +126,7 @@ pnpm install
|
|
|
126
126
|
\`\`\`sh
|
|
127
127
|
# From the repo root — these operate on the ONE combined bundle:
|
|
128
128
|
pnpm dev # serve the merged subgraph behind a local federated gateway with the
|
|
129
|
-
# Integration Layer, at http://localhost:4000/graphql. Needs a login.
|
|
129
|
+
# Commerce Integration Layer, at http://localhost:4000/graphql. Needs a login.
|
|
130
130
|
pnpm validate # compose the combined bundle against your live schema (no upload)
|
|
131
131
|
pnpm push # validate + upload it (replacing the Project's current bundle)
|
|
132
132
|
|
|
@@ -142,15 +142,15 @@ and edit its \`src/extension.ts\` — the root scripts discover it automatically
|
|
|
142
142
|
extensions can each add fields to \`Query\`; they only clash if they declare the *same*
|
|
143
143
|
field.
|
|
144
144
|
|
|
145
|
-
Optionally copy \`.env.example\` to \`.env\` to override the Integration Layer edge URL.
|
|
145
|
+
Optionally copy \`.env.example\` to \`.env\` to override the Commerce Integration Layer edge URL.
|
|
146
146
|
|
|
147
147
|
## Documentation
|
|
148
148
|
|
|
149
|
-
- [Integration Layer documentation](https://docs.commercetools.com/integration-layer) —
|
|
149
|
+
- [Commerce Integration Layer documentation](https://docs.commercetools.com/integration-layer) —
|
|
150
150
|
the authoring model: federation concepts, schema patterns, the entity catalog, the
|
|
151
151
|
sandbox, configuration, and publishing.
|
|
152
|
-
- [Extension authoring details](https://github.com/commercetools/integration-layer-extensions/blob/main/docs/authoring.md)
|
|
153
|
-
and the [CLI reference](https://github.com/commercetools/integration-layer-extensions/blob/main/docs/cli.md),
|
|
152
|
+
- [Extension authoring details](https://github.com/commercetools/commerce-integration-layer-extensions/blob/main/docs/authoring.md)
|
|
153
|
+
and the [CLI reference](https://github.com/commercetools/commerce-integration-layer-extensions/blob/main/docs/cli.md),
|
|
154
154
|
alongside ready-to-edit templates for each pattern.
|
|
155
155
|
`,
|
|
156
156
|
"extensions/hello-world/package.json": `{
|
|
@@ -181,7 +181,7 @@ Optionally copy \`.env.example\` to \`.env\` to override the Integration Layer e
|
|
|
181
181
|
`,
|
|
182
182
|
"extensions/hello-world/src/extension.ts": `/**
|
|
183
183
|
* A hello-world integration-layer extension — the PURELY ADDITIVE pattern: it adds a
|
|
184
|
-
* brand-new root field (\`Query.hello\`) and shares nothing with the
|
|
184
|
+
* brand-new root field (\`Query.hello\`) and shares nothing with the Commerce Integration Layer,
|
|
185
185
|
* so the two \`Query\` types merge with no change to it and composition is trivial.
|
|
186
186
|
*
|
|
187
187
|
* An extension exports \`typeDefs\` (a federation-v2 SDL string) + \`resolvers\` and runs
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
//
|
|
12
12
|
// Three things it deliberately does NOT do:
|
|
13
13
|
//
|
|
14
|
-
// - It never treats "I couldn't find out" as a failure.
|
|
14
|
+
// - It never treats "I couldn't find out" as a failure. A Commerce Integration Layer that
|
|
15
15
|
// predates bundle state reports no `state` at all, and a project whose extension
|
|
16
16
|
// isn't deployed yet will never move off `pending`. Both are `unknown`, not
|
|
17
17
|
// `failed` — failing a push for them would break perfectly good workflows.
|
|
@@ -48,10 +48,10 @@ export async function awaitBundleState(baseUrl, projectKey, token, version, opti
|
|
|
48
48
|
return { kind: "unknown", reason: "no bundle is stored for this project any more" };
|
|
49
49
|
}
|
|
50
50
|
if (meta.state === undefined) {
|
|
51
|
-
//
|
|
51
|
+
// A Commerce Integration Layer that doesn't report state. Nothing to wait for.
|
|
52
52
|
return {
|
|
53
53
|
kind: "unknown",
|
|
54
|
-
reason: "this
|
|
54
|
+
reason: "this Commerce Integration Layer does not report bundle status",
|
|
55
55
|
meta,
|
|
56
56
|
};
|
|
57
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"awaitBundleState.js","sourceRoot":"","sources":["../../src/lib/awaitBundleState.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,gFAAgF;AAChF,mFAAmF;AACnF,oFAAoF;AACpF,EAAE;AACF,iFAAiF;AACjF,kEAAkE;AAClE,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"awaitBundleState.js","sourceRoot":"","sources":["../../src/lib/awaitBundleState.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,EAAE;AACF,mFAAmF;AACnF,+EAA+E;AAC/E,gFAAgF;AAChF,mFAAmF;AACnF,oFAAoF;AACpF,EAAE;AACF,iFAAiF;AACjF,kEAAkE;AAClE,EAAE;AACF,4CAA4C;AAC5C,EAAE;AACF,4FAA4F;AAC5F,qFAAqF;AACrF,gFAAgF;AAChF,+EAA+E;AAC/E,kFAAkF;AAClF,qFAAqF;AACrF,2CAA2C;AAC3C,kFAAkF;AAClF,iEAAiE;AAEjE,OAAO,EAAE,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AAoBvE,MAAM,YAAY,GAAG,CAAC,EAAU,EAAiB,EAAE,CACjD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,UAAkB,EAClB,KAAa,EACb,OAAe,EACf,OAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACpC,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IAE3C,SAAS,CAAC;QACR,IAAI,IAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,8CAA+C,GAAa,CAAC,OAAO,EAAE;aAC/E,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,4DAA4D;YAC5D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,+CAA+C,EAAE,CAAC;QACtF,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,+EAA+E;YAC/E,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,+DAA+D;gBACvE,IAAI;aACL,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC7B,4EAA4E;YAC5E,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC/D,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE7D,iBAAiB;QACjB,IAAI,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YACtB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,2CAA2C,OAAO,WAAW,IAAI,CAAC,KAAK,CAC7E,OAAO,CAAC,SAAS,GAAG,IAAI,CACzB,GAAG;gBACJ,IAAI;aACL,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
|
package/dist/lib/base.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export declare function authEdgeUrlForRegion(region: string): string | undefined
|
|
|
51
51
|
export declare abstract class IntegrationLayerCommand extends AuthCommand {
|
|
52
52
|
/**
|
|
53
53
|
* Whether the command needs a logged-in principal. True for every command that
|
|
54
|
-
* calls the
|
|
54
|
+
* calls the Commerce Integration Layer; a command that only conditionally reaches it (e.g.
|
|
55
55
|
* `serve` in standalone mode) sets this false and relies on {@link resolveIlContext}
|
|
56
56
|
* to fail loudly if the network path is actually taken.
|
|
57
57
|
*/
|
package/dist/lib/base.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Base class for the topic's commands that reach the
|
|
1
|
+
// Base class for the topic's commands that reach the Commerce Integration Layer's
|
|
2
2
|
// `manage_project` boundary. The bearer is the token `commercetools auth login`
|
|
3
3
|
// already persisted to `~/.commercetools/credentials`; we read it back from disk
|
|
4
4
|
// here rather than from the auth plugin's in-memory security context — see below.
|
|
@@ -104,7 +104,7 @@ export function authEdgeUrlForRegion(region) {
|
|
|
104
104
|
export class IntegrationLayerCommand extends AuthCommand {
|
|
105
105
|
/**
|
|
106
106
|
* Whether the command needs a logged-in principal. True for every command that
|
|
107
|
-
* calls the
|
|
107
|
+
* calls the Commerce Integration Layer; a command that only conditionally reaches it (e.g.
|
|
108
108
|
* `serve` in standalone mode) sets this false and relies on {@link resolveIlContext}
|
|
109
109
|
* to fail loudly if the network path is actually taken.
|
|
110
110
|
*/
|
|
@@ -119,11 +119,11 @@ export class IntegrationLayerCommand extends AuthCommand {
|
|
|
119
119
|
"integration-layer-url": Flags.string({
|
|
120
120
|
description: "integration-layer extensions edge base URL (also settable via INTEGRATION_LAYER_URL); overrides the URL derived from your login region",
|
|
121
121
|
env: "INTEGRATION_LAYER_URL",
|
|
122
|
-
helpGroup: "INTEGRATION LAYER",
|
|
122
|
+
helpGroup: "COMMERCE INTEGRATION LAYER",
|
|
123
123
|
}),
|
|
124
124
|
"project-key": Flags.string({
|
|
125
125
|
description: "override the logged-in project key",
|
|
126
|
-
helpGroup: "INTEGRATION LAYER",
|
|
126
|
+
helpGroup: "COMMERCE INTEGRATION LAYER",
|
|
127
127
|
}),
|
|
128
128
|
};
|
|
129
129
|
async init() {
|
|
@@ -161,7 +161,7 @@ export class IntegrationLayerCommand extends AuthCommand {
|
|
|
161
161
|
}
|
|
162
162
|
const baseUrl = flags["integration-layer-url"] ?? edgeUrlForRegion(principal.getRegion());
|
|
163
163
|
if (!baseUrl) {
|
|
164
|
-
throw new Error("could not resolve the
|
|
164
|
+
throw new Error("could not resolve the Commerce Integration Layer URL: pass --integration-layer-url or set " +
|
|
165
165
|
"INTEGRATION_LAYER_URL (the extensions edge base, e.g. " +
|
|
166
166
|
"https://extensions.integration-layer.eu-central-1.aws.commercetools.com)");
|
|
167
167
|
}
|
package/dist/lib/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/lib/base.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/lib/base.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/ilClient.d.ts
CHANGED
|
@@ -10,11 +10,11 @@ export interface ConfigEntry {
|
|
|
10
10
|
* pending — stored and being handed out, but nothing has confirmed it loads.
|
|
11
11
|
* running — an extension loaded it and published its schema. Once a version
|
|
12
12
|
* reaches this it is never demoted.
|
|
13
|
-
* failed — it could not be loaded (`reason` says why). The
|
|
13
|
+
* failed — it could not be loaded (`reason` says why). The Commerce Integration Layer
|
|
14
14
|
* stops handing it out and the version beneath it takes over.
|
|
15
15
|
*/
|
|
16
16
|
export type ExtensionState = "pending" | "running" | "failed";
|
|
17
|
-
/** The stored bundle's metadata (
|
|
17
|
+
/** The stored bundle's metadata (Commerce Integration Layer `ExtensionMeta`). */
|
|
18
18
|
export interface ExtensionMeta {
|
|
19
19
|
projectKey: string;
|
|
20
20
|
length: number;
|
|
@@ -29,7 +29,7 @@ export interface ExtensionMeta {
|
|
|
29
29
|
*/
|
|
30
30
|
sourceRevision?: string;
|
|
31
31
|
/**
|
|
32
|
-
* Lifecycle state of THIS version. Absent when talking to
|
|
32
|
+
* Lifecycle state of THIS version. Absent when talking to a Commerce Integration Layer
|
|
33
33
|
* that predates bundle state — callers must treat `undefined` as "this deployment
|
|
34
34
|
* can't tell me", not as a failure.
|
|
35
35
|
*/
|
|
@@ -38,12 +38,12 @@ export interface ExtensionMeta {
|
|
|
38
38
|
reason?: string;
|
|
39
39
|
/**
|
|
40
40
|
* The version actually in use, which is NOT always `version`: when the newest
|
|
41
|
-
* upload failed to load, the
|
|
41
|
+
* upload failed to load, the Commerce Integration Layer serves the one beneath it and this
|
|
42
42
|
* reports that older one. `null` when nothing is in use. Returned by the meta read
|
|
43
43
|
* only, not by an upload's response.
|
|
44
44
|
*
|
|
45
45
|
* It carries the source revision as well as the number, because the number is the
|
|
46
|
-
*
|
|
46
|
+
* Commerce Integration Layer's own counter — the commit is what identifies the build to
|
|
47
47
|
* whoever pushed it.
|
|
48
48
|
*/
|
|
49
49
|
served?: {
|
|
@@ -68,9 +68,9 @@ export declare function fetchSubgraphSdl(baseUrl: string, projectKey: string, to
|
|
|
68
68
|
/**
|
|
69
69
|
* GET the project's DEPLOYED composed graph as a PUBLIC API SCHEMA — what the router
|
|
70
70
|
* actually plans and serves (core subgraph + the project's published extension),
|
|
71
|
-
* read from Hive by the
|
|
71
|
+
* read from Hive by the Commerce Integration Layer and reduced there (`GET …/schema/api`).
|
|
72
72
|
*
|
|
73
|
-
* The
|
|
73
|
+
* The Commerce Integration Layer strips the federation machinery before sending, so this is
|
|
74
74
|
* `buildSchema`-able as-is; there is no supergraph to reduce client-side. It is the
|
|
75
75
|
* byte-identical response the Merchant Center console's explorer reads under its
|
|
76
76
|
* own operator JWT — one artifact, two guards.
|
|
@@ -87,7 +87,7 @@ export declare function remoteValidate(baseUrl: string, projectKey: string, toke
|
|
|
87
87
|
* Upload the built bundle, replacing the project's stored one (`PUT …/extension/bundle`).
|
|
88
88
|
*
|
|
89
89
|
* `sourceRevision` (optional) records which of the integrator's revisions this build
|
|
90
|
-
* came from; the
|
|
90
|
+
* came from; the Commerce Integration Layer stores it against the revision, shows it in the
|
|
91
91
|
* Merchant Center, and hands it to the connector.
|
|
92
92
|
*/
|
|
93
93
|
export declare function pushBundle(baseUrl: string, projectKey: string, token: string, bundle: string, filename: string, sourceRevision?: string): Promise<ExtensionMeta>;
|
|
@@ -113,7 +113,7 @@ export declare function getAllowlist(baseUrl: string, projectKey: string, token:
|
|
|
113
113
|
/**
|
|
114
114
|
* Replace the merchant `allow` patterns with `patterns` (`PUT …/extension/allowlist`).
|
|
115
115
|
* The route takes a bare JSON array and REPLACES the whole allow list — the add/remove
|
|
116
|
-
* commands read-modify-write around it. The
|
|
116
|
+
* commands read-modify-write around it. The Commerce Integration Layer validates and normalizes
|
|
117
117
|
* (lowercases, de-dupes, rejects schemes/ports/paths/IPs/over-broad patterns) and
|
|
118
118
|
* returns the stored list plus the config's new monotonic version. The `deny` ceiling
|
|
119
119
|
* is untouched (it has no write route).
|
package/dist/lib/ilClient.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Low-level HTTP client for the
|
|
1
|
+
// Low-level HTTP client for the Commerce Integration Layer's per-project manage-surface
|
|
2
2
|
// routes. Every call is parameterised by (baseUrl, projectKey, token) — the command
|
|
3
3
|
// layer resolves those (`IntegrationLayerCommand.resolveIlContext`, whose token is the
|
|
4
4
|
// `commercetools auth login` principal's) and this module just speaks the wire
|
|
@@ -25,9 +25,9 @@ export async function fetchSubgraphSdl(baseUrl, projectKey, token) {
|
|
|
25
25
|
/**
|
|
26
26
|
* GET the project's DEPLOYED composed graph as a PUBLIC API SCHEMA — what the router
|
|
27
27
|
* actually plans and serves (core subgraph + the project's published extension),
|
|
28
|
-
* read from Hive by the
|
|
28
|
+
* read from Hive by the Commerce Integration Layer and reduced there (`GET …/schema/api`).
|
|
29
29
|
*
|
|
30
|
-
* The
|
|
30
|
+
* The Commerce Integration Layer strips the federation machinery before sending, so this is
|
|
31
31
|
* `buildSchema`-able as-is; there is no supergraph to reduce client-side. It is the
|
|
32
32
|
* byte-identical response the Merchant Center console's explorer reads under its
|
|
33
33
|
* own operator JWT — one artifact, two guards.
|
|
@@ -68,7 +68,7 @@ export async function remoteValidate(baseUrl, projectKey, token, typeDefs) {
|
|
|
68
68
|
* Upload the built bundle, replacing the project's stored one (`PUT …/extension/bundle`).
|
|
69
69
|
*
|
|
70
70
|
* `sourceRevision` (optional) records which of the integrator's revisions this build
|
|
71
|
-
* came from; the
|
|
71
|
+
* came from; the Commerce Integration Layer stores it against the revision, shows it in the
|
|
72
72
|
* Merchant Center, and hands it to the connector.
|
|
73
73
|
*/
|
|
74
74
|
export async function pushBundle(baseUrl, projectKey, token, bundle, filename, sourceRevision) {
|
|
@@ -130,7 +130,7 @@ export async function getAllowlist(baseUrl, projectKey, token) {
|
|
|
130
130
|
/**
|
|
131
131
|
* Replace the merchant `allow` patterns with `patterns` (`PUT …/extension/allowlist`).
|
|
132
132
|
* The route takes a bare JSON array and REPLACES the whole allow list — the add/remove
|
|
133
|
-
* commands read-modify-write around it. The
|
|
133
|
+
* commands read-modify-write around it. The Commerce Integration Layer validates and normalizes
|
|
134
134
|
* (lowercases, de-dupes, rejects schemes/ports/paths/IPs/over-broad patterns) and
|
|
135
135
|
* returns the stored list plus the config's new monotonic version. The `deny` ceiling
|
|
136
136
|
* is untouched (it has no write route).
|
package/dist/lib/ilClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ilClient.js","sourceRoot":"","sources":["../../src/lib/ilClient.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ilClient.js","sourceRoot":"","sources":["../../src/lib/ilClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Longest revision the
|
|
2
|
+
* Longest revision the Commerce Integration Layer stores — it truncates past this. Applied
|
|
3
3
|
* here too so what the CLI prints is what actually gets stored, rather than a value
|
|
4
4
|
* the server silently shortens.
|
|
5
5
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Where the bundle being pushed came from — the integrator's OWN version-control
|
|
2
|
-
// revision, recorded against the stored bundle by the
|
|
2
|
+
// revision, recorded against the stored bundle by the Commerce Integration Layer.
|
|
3
3
|
//
|
|
4
4
|
// The point is provenance: with this, the Merchant Center shows which revision a
|
|
5
5
|
// project is running, the connector stamps it on every log line, and
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
// GIT is auto-detected because that's what the examples and (nearly) every
|
|
11
11
|
// integrator use. Any other VCS — hg, svn, Perforce, a CI build id — is supported
|
|
12
12
|
// through `--source-revision` / `EXTENSION_SOURCE_REVISION` rather than a detector
|
|
13
|
-
// per system: the
|
|
13
|
+
// per system: the Commerce Integration Layer treats the value as an OPAQUE string, so
|
|
14
14
|
// whatever identifies a revision to the integrator is the right thing to send.
|
|
15
15
|
import { execFile } from "node:child_process";
|
|
16
16
|
import { promisify } from "node:util";
|
|
17
17
|
const exec = promisify(execFile);
|
|
18
18
|
/**
|
|
19
|
-
* Longest revision the
|
|
19
|
+
* Longest revision the Commerce Integration Layer stores — it truncates past this. Applied
|
|
20
20
|
* here too so what the CLI prints is what actually gets stored, rather than a value
|
|
21
21
|
* the server silently shortens.
|
|
22
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceRevision.js","sourceRoot":"","sources":["../../src/lib/sourceRevision.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"sourceRevision.js","sourceRoot":"","sources":["../../src/lib/sourceRevision.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,EAAE;AACF,iFAAiF;AACjF,qEAAqE;AACrE,oFAAoF;AACpF,mFAAmF;AACnF,0BAA0B;AAC1B,EAAE;AACF,2EAA2E;AAC3E,kFAAkF;AAClF,mFAAmF;AACnF,sFAAsF;AACtF,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAyB;IAC9D,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK;SAClB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,IAAI,EAAE;SACN,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACxC,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,kFAAkF;AAClF,mFAAmF;AACnF,qCAAqC;AACrC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,GAAW;IAC5C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,0EAA0E;IAC1E,kFAAkF;IAClF,SAAS;IACT,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,CAAC;IACpF,kFAAkF;IAClF,0BAA0B;IAC1B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,QAA4B,EAC5B,GAAW;IAEX,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACpE,OAAO,sBAAsB,CAAC,CAAC,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type GraphQLSchema } from "graphql";
|
|
2
|
-
/** The subgraph names the
|
|
2
|
+
/** The subgraph names the Commerce Integration Layer composes under — matched here so the
|
|
3
3
|
* local composition mirrors the deployed one. `integration-layer` is the name an
|
|
4
4
|
* extension's `@override(from: …)` references. */
|
|
5
5
|
export declare const INTEGRATION_LAYER_SERVICE = "integration-layer";
|
|
@@ -17,7 +17,7 @@ export type ComposeResult = {
|
|
|
17
17
|
errors: string[];
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
* Compose the
|
|
20
|
+
* Compose the Commerce Integration Layer + the extension into a supergraph and derive the
|
|
21
21
|
* client-facing API schema. Never throws — a composition failure comes back in
|
|
22
22
|
* `errors` so the dev server can surface it and keep serving. The URLs are baked into
|
|
23
23
|
* the supergraph so `--gateway` routes correctly; for `--compose` they're cosmetic.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Compose the local extension subgraph with the project's live integration-layer
|
|
2
|
-
// subgraph — the same two-subgraph composition the
|
|
2
|
+
// subgraph — the same two-subgraph composition the Commerce Integration Layer runs on publish.
|
|
3
3
|
//
|
|
4
4
|
// `composeWithIntegrationLayer` below is the low-level half. Fetching the project's
|
|
5
5
|
// subgraph SDL is a plain authenticated HTTP call, so it lives separately in
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
// layer supplying the token.
|
|
8
8
|
import { parse, printSchema } from "graphql";
|
|
9
9
|
import { composeServices } from "@apollo/composition";
|
|
10
|
-
/** The subgraph names the
|
|
10
|
+
/** The subgraph names the Commerce Integration Layer composes under — matched here so the
|
|
11
11
|
* local composition mirrors the deployed one. `integration-layer` is the name an
|
|
12
12
|
* extension's `@override(from: …)` references. */
|
|
13
13
|
export const INTEGRATION_LAYER_SERVICE = "integration-layer";
|
|
14
14
|
export const EXTENSION_SERVICE = "extensions";
|
|
15
15
|
/**
|
|
16
|
-
* Compose the
|
|
16
|
+
* Compose the Commerce Integration Layer + the extension into a supergraph and derive the
|
|
17
17
|
* client-facing API schema. Never throws — a composition failure comes back in
|
|
18
18
|
* `errors` so the dev server can surface it and keep serving. The URLs are baked into
|
|
19
19
|
* the supergraph so `--gateway` routes correctly; for `--compose` they're cosmetic.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/lib/tooling/compose.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/lib/tooling/compose.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,+FAA+F;AAC/F,EAAE;AACF,oFAAoF;AACpF,6EAA6E;AAC7E,mFAAmF;AACnF,6BAA6B;AAE7B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;mDAEmD;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAc9C;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,mBAA2B,EAC3B,YAAoB,EACpB,IAA2D;IAE3D,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG;YACT,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAAE;YACxG,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE;SACnF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,6BAA8B,GAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,gFAAgF;IAChF,6EAA6E;IAC7E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAClE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,SAAS;QACT,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// Fast inner loop: edit the extension, restart, see your fields.
|
|
6
6
|
//
|
|
7
7
|
// --deployed the project's DEPLOYED composed graph (GET /schema/api), read from
|
|
8
|
-
// Hive by the
|
|
8
|
+
// Hive by the Commerce Integration Layer and reduced THERE to a public API
|
|
9
9
|
// schema — exactly what the router plans and serves, including
|
|
10
10
|
// whichever extension is actually deployed. The command just
|
|
11
11
|
// buildSchema()s it, so nothing in this module handles that path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exploreSchema.js","sourceRoot":"","sources":["../../../src/lib/tooling/exploreSchema.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,EAAE;AACF,oFAAoF;AACpF,
|
|
1
|
+
{"version":3,"file":"exploreSchema.js","sourceRoot":"","sources":["../../../src/lib/tooling/exploreSchema.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,EAAE;AACF,oFAAoF;AACpF,0FAA0F;AAC1F,8EAA8E;AAC9E,4EAA4E;AAC5E,iFAAiF;AACjF,EAAE;AACF,qFAAqF;AACrF,sFAAsF;AACtF,kFAAkF;AAClF,oFAAoF;AACpF,oFAAoF;AAEpF,OAAO,EAAE,WAAW,EAAsB,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,GAE1B,MAAM,cAAc,CAAC;AAEtB;;wEAEwE;AACxE,MAAM,YAAY,GAAG,wCAAwC,CAAC;AAC9D,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAU7D;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG;YACT,EAAE,IAAI,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE;SACjF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,2CAA4C,GAAa,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;IACtG,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC;IAClE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,SAAS;QACT,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,YAAgC;IAEhC,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,2BAA2B,CAAC,OAAO,EAAE,YAAY,EAAE;YACjD,mBAAmB,EAAE,YAAY;YACjC,YAAY,EAAE,mBAAmB;SAClC,CAAC;QACJ,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAE7B,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,SAAS;QACxB,GAAG,EAAE,MAAM,CAAC,MAAM;QAClB,QAAQ,EAAE,YAAY;YACpB,CAAC,CAAC,sDAAsD;YACxD,CAAC,CAAC,qEAAqE;KAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -13,7 +13,7 @@ export const EXPLORER_HTML = String.raw `<!doctype html>
|
|
|
13
13
|
<head>
|
|
14
14
|
<meta charset="utf-8" />
|
|
15
15
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
16
|
-
<title>GraphQL Explorer · commercetools
|
|
16
|
+
<title>GraphQL Explorer · commercetools Commerce Integration Layer</title>
|
|
17
17
|
<style>
|
|
18
18
|
body { margin: 0; height: 100dvh; overflow: hidden; }
|
|
19
19
|
#graphiql { height: 100dvh; }
|
|
@@ -67,7 +67,7 @@ export const EXPLORER_HTML = String.raw `<!doctype html>
|
|
|
67
67
|
const plugins = [HISTORY_PLUGIN, explorerPlugin()];
|
|
68
68
|
|
|
69
69
|
const DEFAULT_QUERY = [
|
|
70
|
-
'# Local GraphQL explorer for your commercetools
|
|
70
|
+
'# Local GraphQL explorer for your commercetools Commerce Integration Layer.',
|
|
71
71
|
'#',
|
|
72
72
|
'# Operations run against the DEPLOYED edge under the session shown in your',
|
|
73
73
|
'# terminal. Docs and autocomplete come from the schema the CLI resolved.',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ApolloGateway } from "@apollo/gateway";
|
|
2
2
|
/**
|
|
3
3
|
* Mint an anonymous session and return its bearer token. The gateway attaches it to
|
|
4
|
-
* every integration-layer subgraph request; the
|
|
4
|
+
* every integration-layer subgraph request; the Commerce Integration Layer 403s a bearer
|
|
5
5
|
* whose project doesn't match the URL, so an anonymous session is the minimum needed
|
|
6
6
|
* to route real queries through. (A 30-day sliding TTL easily outlasts a dev session.)
|
|
7
7
|
*/
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// The `--gateway` half of the local dev server: an executable merged schema that
|
|
2
2
|
// routes each field to its owner — the local extension and the project's deployed
|
|
3
|
-
//
|
|
4
|
-
// resolves `name` from the
|
|
3
|
+
// Commerce Integration Layer — so a query like `{ product(id:…) { name loyaltyPoints(price:…) }}`
|
|
4
|
+
// resolves `name` from the Commerce Integration Layer and `loyaltyPoints` from the local
|
|
5
5
|
// extension in one request, the production topology in miniature.
|
|
6
6
|
//
|
|
7
7
|
// We use Apollo Gateway (the reference Federation
|
|
8
8
|
// implementation) because the extension model leans on `@interfaceObject` and only
|
|
9
9
|
// the reference gateway resolves that correctly. Both subgraphs are reached over
|
|
10
10
|
// HTTP, so the extension runs as a genuine subgraph; the integration-layer data
|
|
11
|
-
// source carries an anonymous session bearer (the
|
|
11
|
+
// source carries an anonymous session bearer (the Commerce Integration Layer re-validates the
|
|
12
12
|
// bearer's project against the URL).
|
|
13
13
|
import { ApolloGateway, RemoteGraphQLDataSource } from "@apollo/gateway";
|
|
14
14
|
import { INTEGRATION_LAYER_SERVICE } from "./compose.js";
|
|
15
15
|
/**
|
|
16
16
|
* Mint an anonymous session and return its bearer token. The gateway attaches it to
|
|
17
|
-
* every integration-layer subgraph request; the
|
|
17
|
+
* every integration-layer subgraph request; the Commerce Integration Layer 403s a bearer
|
|
18
18
|
* whose project doesn't match the URL, so an anonymous session is the minimum needed
|
|
19
19
|
* to route real queries through. (A 30-day sliding TTL easily outlasts a dev session.)
|
|
20
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/lib/tooling/gateway.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,yFAAyF;AACzF,
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../../src/lib/tooling/gateway.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,kGAAkG;AAClG,yFAAyF;AACzF,kEAAkE;AAClE,EAAE;AACF,kDAAkD;AAClD,mFAAmF;AACnF,iFAAiF;AACjF,gFAAgF;AAChF,8FAA8F;AAC9F,qCAAqC;AAErC,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,mBAA2B,EAC3B,UAAkB;IAElB,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;KAClD,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,MAAM,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwB,CAAC,KAAK,CAAC;IAC7D,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AASD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAoB;IACpD,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;QAChC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAC9B,IAAI,uBAAuB,CAAC;YAC1B,GAAG;YACH,6EAA6E;YAC7E,mEAAmE;YACnE,OAAO,EAAE,UAAU,CAAC,KAAsD;YAC1E,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC/B,2EAA2E;gBAC3E,iEAAiE;gBACjE,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;oBACvC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;SACF,CAAC;KACL,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -9,7 +9,7 @@ export type SessionGrant = {
|
|
|
9
9
|
/**
|
|
10
10
|
* An explicit presentment selection, as a storefront's locale/currency switcher
|
|
11
11
|
* would send it. Every field is optional and independently defaulted by the
|
|
12
|
-
*
|
|
12
|
+
* Commerce Integration Layer from the project config, so `{ currency: "EUR" }` alone is
|
|
13
13
|
* valid — it changes the currency and leaves locale and country at the project's.
|
|
14
14
|
*/
|
|
15
15
|
export interface Presentment {
|
|
@@ -33,7 +33,7 @@ export async function mintSession(authUrl, projectKey, grant, presentment = {})
|
|
|
33
33
|
? { grant_type: "anonymous" }
|
|
34
34
|
: { grant_type: "password", email: grant.email, password: grant.password };
|
|
35
35
|
// Currency and country are upper-cased to the canonical form the session will
|
|
36
|
-
// hold (the
|
|
36
|
+
// hold (the Commerce Integration Layer upper-cases them too, so `--currency eur` already
|
|
37
37
|
// worked) — done here so the banner reports the value the session actually got
|
|
38
38
|
// rather than echoing back what was typed. Locale keeps its case: `de-DE` is not
|
|
39
39
|
// `DE-DE`.
|
|
@@ -57,7 +57,7 @@ export async function mintSession(authUrl, projectKey, grant, presentment = {})
|
|
|
57
57
|
});
|
|
58
58
|
const text = await res.text();
|
|
59
59
|
if (!res.ok) {
|
|
60
|
-
// Surface the
|
|
60
|
+
// Surface the Commerce Integration Layer's own error (an OAuth-shaped
|
|
61
61
|
// `{ error, error_description }`) rather than a bare status — a bad password
|
|
62
62
|
// and an unreachable edge should not read the same.
|
|
63
63
|
let detail = text;
|
|
@@ -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;AA4B7D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,UAAkB,EAClB,KAAmB,EACnB,cAA2B,EAAE;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC;IAChE,MAAM,QAAQ,GACZ,KAAK,CAAC,IAAI,KAAK,WAAW;QACxB,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE;QAC7B,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/E,8EAA8E;IAC9E,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/lib/tooling/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,17 @@ export class BundleValidationError extends Error {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
const API_EXTENSION_ACTIONS = new Set(['Create', 'Update']);
|
|
23
|
+
/**
|
|
24
|
+
* Does the bundle carry a capability the runtime dispatches directly, rather than
|
|
25
|
+
* through the schema or an API Extension? Such a capability adds nothing to the SDL, so
|
|
26
|
+
* a bundle whose only contribution is one of them is COMPLETE without `typeDefs` — it
|
|
27
|
+
* must not be rejected for having no subgraph. `buildCombinedBundle` already carries
|
|
28
|
+
* these through when it merges bundles; this is the matching check on the way in.
|
|
29
|
+
*/
|
|
30
|
+
function hasDispatchOnlyCapability(mod) {
|
|
31
|
+
const { hooks } = mod;
|
|
32
|
+
return typeof hooks === 'object' && hooks !== null && Object.keys(hooks).length > 0;
|
|
33
|
+
}
|
|
23
34
|
/**
|
|
24
35
|
* Validate the bundle's optional `apiExtensions` export (shape only — a handler's
|
|
25
36
|
* behaviour is the author's to test). Returns the declared keys.
|
|
@@ -83,13 +94,15 @@ export async function validateBundle(bundlePath, sourceFiles) {
|
|
|
83
94
|
}
|
|
84
95
|
const { typeDefs, resolvers } = mod;
|
|
85
96
|
const apiExtensionKeys = validateApiExtensions(mod.apiExtensions);
|
|
86
|
-
// A bundle must contribute
|
|
97
|
+
// A bundle must contribute SOMETHING: a GraphQL subgraph, API Extensions, or a
|
|
98
|
+
// capability the runtime dispatches directly (hasDispatchOnlyCapability).
|
|
87
99
|
const hasTypeDefs = typeof typeDefs === "string" && typeDefs.trim() !== "";
|
|
88
100
|
if (!hasTypeDefs) {
|
|
89
|
-
if (apiExtensionKeys.length === 0) {
|
|
101
|
+
if (apiExtensionKeys.length === 0 && !hasDispatchOnlyCapability(mod)) {
|
|
90
102
|
throw new BundleValidationError("bundle must export a non-empty `typeDefs` string and/or an `apiExtensions` array");
|
|
91
103
|
}
|
|
92
|
-
//
|
|
104
|
+
// Nothing here contributes to the schema: no SDL to check, and nothing to compose
|
|
105
|
+
// remotely. The bundle is still uploaded as-is.
|
|
93
106
|
return { typeDefs: null, resolverTypes: [], apiExtensionKeys };
|
|
94
107
|
}
|
|
95
108
|
if (resolvers === null || typeof resolvers !== "object") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateBundle.js","sourceRoot":"","sources":["../../../src/lib/tooling/validateBundle.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,8CAA8C;AAC9C,EAAE;AACF,2CAA2C;AAC3C,8EAA8E;AAC9E,kFAAkF;AAClF,4CAA4C;AAC5C,8EAA8E;AAC9E,sFAAsF;AACtF,0EAA0E;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,KAAK,GAEN,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,yFAAyF;AACzF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"validateBundle.js","sourceRoot":"","sources":["../../../src/lib/tooling/validateBundle.ts"],"names":[],"mappings":"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"}
|