@shopify/shop-minis-cli 0.0.115 → 0.0.116-alpha.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/build/commands/create-extension/constants.d.ts +4 -0
- package/build/commands/create-extension/constants.js +4 -0
- package/build/commands/create-extension/constants.js.map +1 -1
- package/build/commands/dev/index.d.ts +1 -0
- package/build/commands/dev/index.js +19 -9
- package/build/commands/dev/index.js.map +1 -1
- package/build/commands/dev/utils/deeplink.js +16 -9
- package/build/commands/dev/utils/deeplink.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-server-middleware.js +33 -10
- package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -1
- package/build/utils/codemod.d.ts +23 -3
- package/build/utils/codemod.js +39 -9
- package/build/utils/codemod.js.map +1 -1
- package/build/utils/development-params.d.ts +1 -2
- package/build/utils/development-params.js +1 -9
- package/build/utils/development-params.js.map +1 -1
- package/build/utils/extensions.d.ts +8 -0
- package/build/utils/extensions.js +79 -0
- package/build/utils/extensions.js.map +1 -0
- package/package.json +1 -1
|
@@ -12,6 +12,10 @@ export declare const EXTENSION_TARGET_CONFIG: {
|
|
|
12
12
|
label: string;
|
|
13
13
|
page: ExtensionPage;
|
|
14
14
|
};
|
|
15
|
+
"shop.product.policies.render-after": {
|
|
16
|
+
label: string;
|
|
17
|
+
page: ExtensionPage;
|
|
18
|
+
};
|
|
15
19
|
};
|
|
16
20
|
export declare const EXTENSION_TARGETS_WITH_TEMPLATES: Record<ExtensionTarget, {
|
|
17
21
|
label: string;
|
|
@@ -32,6 +32,10 @@ export const EXTENSION_TARGET_CONFIG = {
|
|
|
32
32
|
label: 'Product Page - Before Variants Picker',
|
|
33
33
|
page: ExtensionPage.PRODUCT_PAGE,
|
|
34
34
|
},
|
|
35
|
+
[ExtensionTarget['shop.product.policies.render-after']]: {
|
|
36
|
+
label: 'Product Page - After Policies',
|
|
37
|
+
page: ExtensionPage.PRODUCT_PAGE,
|
|
38
|
+
},
|
|
35
39
|
};
|
|
36
40
|
export const EXTENSION_TARGETS_WITH_TEMPLATES = Object.entries(EXTENSION_TARGET_CONFIG).reduce((acc, [key, value]) => {
|
|
37
41
|
if (EXTENSION_PAGE_CONFIG[value.page].templates.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/create-extension/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAE5E,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAA;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAA;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IAC3E,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;QAChC,KAAK,EAAE,kBAAkB;KAC1B;IACD,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;QAChC,KAAK,EAAE,kBAAkB;KAC1B;IACD,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;QAC/B,KAAK,EAAE,iBAAiB;KACzB;IACD,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;QACjC,KAAK,EAAE,mBAAmB;KAC3B;CACF,CAAA;AAED,oGAAoG;AACpG,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;QAC5B,SAAS,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC;KAC5E;IACD,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QAC1B,SAAS,EAAE,EAAE;KACd;IACD,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE;QACvC,SAAS,EAAE,EAAE;KACd;CACF,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAAC,EAAE;QACxD,KAAK,EAAE,uCAAuC;QAC9C,IAAI,EAAE,aAAa,CAAC,YAAY;KACjC;CAC0E,CAAA;AAE7E,MAAM,CAAC,MAAM,gCAAgC,GAGzC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IACvE,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1D,GAAG,CAAC,GAAsB,CAAC,GAAG,KAAK,CAAA;KACpC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,EAAmE,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,IAAI,CAC9D,gCAAgC,CACZ,CAAA"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/commands/create-extension/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,+BAA+B,CAAA;AAE5E,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAA;AAExC,MAAM,CAAC,MAAM,kBAAkB,GAAG,aAAa,CAAA;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IAC3E,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;QAChC,KAAK,EAAE,kBAAkB;KAC1B;IACD,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE;QAChC,KAAK,EAAE,kBAAkB;KAC1B;IACD,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE;QAC/B,KAAK,EAAE,iBAAiB;KACzB;IACD,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE;QACjC,KAAK,EAAE,mBAAmB;KAC3B;CACF,CAAA;AAED,oGAAoG;AACpG,MAAM,CAAC,MAAM,qBAAqB,GAG9B;IACF,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE;QAC5B,SAAS,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC;KAC5E;IACD,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE;QAC1B,SAAS,EAAE,EAAE;KACd;IACD,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE;QACvC,SAAS,EAAE,EAAE;KACd;CACF,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAAC,EAAE;QACxD,KAAK,EAAE,uCAAuC;QAC9C,IAAI,EAAE,aAAa,CAAC,YAAY;KACjC;IACD,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC,EAAE;QACvD,KAAK,EAAE,+BAA+B;QACtC,IAAI,EAAE,aAAa,CAAC,YAAY;KACjC;CAC0E,CAAA;AAE7E,MAAM,CAAC,MAAM,gCAAgC,GAGzC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;IACvE,IAAI,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1D,GAAG,CAAC,GAAsB,CAAC,GAAG,KAAK,CAAA;KACpC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,EAAmE,CAAC,CAAA;AAEvE,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,IAAI,CAC9D,gCAAgC,CACZ,CAAA"}
|
|
@@ -8,6 +8,7 @@ import { getMiniManifest } from '../../utils/minis-manifest.js';
|
|
|
8
8
|
import { maybeApplyPatches } from '../../utils/patch-package.js';
|
|
9
9
|
import { getInvalidDependencies } from '../doctor/utils/diagnose-dependencies.js';
|
|
10
10
|
import { getRunBinCommand } from '../../utils/package-manager.js';
|
|
11
|
+
import { getMiniExtensions } from '../../utils/extensions.js';
|
|
11
12
|
import { InteractiveTerminal } from './utils/interactive-terminal.js';
|
|
12
13
|
import { runMetro } from './utils/metro/metro-server.js';
|
|
13
14
|
import { BuildType } from './utils/types.js';
|
|
@@ -19,15 +20,16 @@ export async function loadCommand(parentProgram) {
|
|
|
19
20
|
.option('--reset-cache', 'reset the dev server cache')
|
|
20
21
|
.option('--host <host>', "packager's host", ip)
|
|
21
22
|
.option('--verbose', 'print debugging messages') // compatible with cli-kit
|
|
22
|
-
.option('--extension-target <extensionTarget>')
|
|
23
|
+
.option('--extension-target <extensionTarget>', '(deprecated) specify extension targets to run')
|
|
24
|
+
.option('--extension-targets <extensionTargets...>', 'specify extension targets to run')
|
|
23
25
|
.addOption(new Option('--build-type <buildType>', 'build type')
|
|
24
26
|
.choices(Object.values(BuildType))
|
|
25
27
|
.default(BuildType.Release))
|
|
26
28
|
.addOption(new Option('--snapshot-version <version>', 'specify the snapshot version to use. (example: 2.100.0+544)').implies({ buildType: 'snapshot' }))
|
|
27
|
-
.action(async (
|
|
29
|
+
.action(async (initialOptions) => {
|
|
28
30
|
try {
|
|
29
|
-
outputDebug(`Dev command args ${JSON.stringify(
|
|
30
|
-
|
|
31
|
+
outputDebug(`Dev command args ${JSON.stringify(initialOptions)}`);
|
|
32
|
+
const options = await initialiseOptions(initialOptions);
|
|
31
33
|
const { handle: miniHandle, name: miniName } = getMiniManifest();
|
|
32
34
|
outputDebug(`Running mini "${miniName}"`);
|
|
33
35
|
await validateDependencies();
|
|
@@ -45,13 +47,21 @@ export async function loadCommand(parentProgram) {
|
|
|
45
47
|
});
|
|
46
48
|
parentProgram.addCommand(command);
|
|
47
49
|
}
|
|
48
|
-
function
|
|
49
|
-
if (snapshotVersion && buildType !== 'snapshot') {
|
|
50
|
-
console.
|
|
50
|
+
async function initialiseOptions(options) {
|
|
51
|
+
if (options.snapshotVersion && options.buildType !== 'snapshot') {
|
|
52
|
+
console.log(chalk.bold.yellow('\n--snapshot-version was specified but --build-type is not `snapshot`. --snapshot-version will be ignored.'));
|
|
51
53
|
}
|
|
52
|
-
else if (buildType === 'snapshot' && !snapshotVersion) {
|
|
53
|
-
console.
|
|
54
|
+
else if (options.buildType === 'snapshot' && !options.snapshotVersion) {
|
|
55
|
+
console.log(chalk.bold.yellow('\n--build-type was set to `snapshot` but --snapshot-version was not specified. Fetching the latest available snapshot'));
|
|
54
56
|
}
|
|
57
|
+
let extensionTargets = options.extensionTargets;
|
|
58
|
+
if (!options.extensionTargets && options.extensionTarget) {
|
|
59
|
+
console.log(chalk.bold.yellow(`\n--extension-target is deprecated, used --extension-targets instead`));
|
|
60
|
+
extensionTargets = [options.extensionTarget];
|
|
61
|
+
}
|
|
62
|
+
const extensionsToStart = await getMiniExtensions(extensionTargets);
|
|
63
|
+
outputDebug(`Running extensions ${JSON.stringify(extensionsToStart)}`);
|
|
64
|
+
return { ...options, extensionTargets: extensionsToStart };
|
|
55
65
|
}
|
|
56
66
|
async function validateDependencies() {
|
|
57
67
|
const { areDependenciesInvalid } = getInvalidDependencies();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,UAAU,MAAM,aAAa,CAAA;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAClE,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAA;AAC/E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,UAAU,MAAM,aAAa,CAAA;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAClE,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAA;AAC/E,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAA;AACtD,OAAO,EAAC,SAAS,EAAC,MAAM,kBAAkB,CAAA;AAW1C,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,CAAA;IAEhC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,EAAE,CAAC;SAC9C,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,0BAA0B;SAC1E,MAAM,CACL,sCAAsC,EACtC,+CAA+C,CAChD;SACA,MAAM,CACL,2CAA2C,EAC3C,kCAAkC,CACnC;SACA,SAAS,CACR,IAAI,MAAM,CAAC,0BAA0B,EAAE,YAAY,CAAC;SACjD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SACjC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAC9B;SACA,SAAS,CACR,IAAI,MAAM,CACR,8BAA8B,EAC9B,6DAA6D,CAC9D,CAAC,OAAO,CAAC,EAAC,SAAS,EAAE,UAAU,EAAC,CAAC,CACnC;SACA,MAAM,CAAC,KAAK,EAAE,cAAiC,EAAE,EAAE;QAClD,IAAI;YACF,WAAW,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YACjE,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAA;YAEvD,MAAM,EAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAC,GAAG,eAAe,EAAE,CAAA;YAE9D,WAAW,CAAC,iBAAiB,QAAQ,GAAG,CAAC,CAAA;YAEzC,MAAM,oBAAoB,EAAE,CAAA;YAE5B,iBAAiB,EAAE,CAAA,CAAC,mFAAmF;YACvG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;YAEvB,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EACrB,eAAe,CAChB,CAAA;YAED,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CACjD,OAAO,EACP,UAAU,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,6EAA6E;aAClH,CAAA;YACD,mBAAmB,CAAC,KAAK,EAAE,CAAA;SAC5B;QAAC,OAAO,GAAG,EAAE;YACZ,OAAQ,GAAa,CAAC,KAAK,CAAA,CAAC,qFAAqF;YACjH,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;SACvB;IACH,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAA0B;IACzD,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE;QAC/D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CACf,4GAA4G,CAC7G,CACF,CAAA;KACF;SAAM,IAAI,OAAO,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;QACvE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CACf,uHAAuH,CACxH,CACF,CAAA;KACF;IAED,IAAI,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;IAC/C,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,eAAe,EAAE;QACxD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,MAAM,CACf,sEAAsE,CACvE,CACF,CAAA;QACD,gBAAgB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;KAC7C;IAED,MAAM,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,CAAA;IACnE,WAAW,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAEtE,OAAO,EAAC,GAAG,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAC,CAAA;AAC1D,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,EAAC,sBAAsB,EAAC,GAAG,sBAAsB,EAAE,CAAA;IAEzD,IAAI,sBAAsB,EAAE;QAC1B,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,uEAAuE,KAAK,CAAC,IAAI,CAC/E,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,CAC5C,wDAAwD,CAC1D,CACF,CAAA;QACD,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,+GAA+G,CAChH,CACF,CAAA;KACF;AACH,CAAC"}
|
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
2
|
-
import {
|
|
2
|
+
import { getDevelopmentEntryPointParamsQueryString } from '../../../utils/development-params.js';
|
|
3
3
|
import { getMiniManifest } from '../../../utils/minis-manifest.js';
|
|
4
4
|
import { getReactNativeVersion } from './react-native-version.js';
|
|
5
5
|
export function getBundleUrl(host) {
|
|
6
6
|
return `http://${host}:8082/index.bundle`;
|
|
7
7
|
}
|
|
8
|
-
function getExtensionInputQueryUrl(host) {
|
|
9
|
-
return `http://${host}:8082/input-query`;
|
|
8
|
+
function getExtensionInputQueryUrl(host, target) {
|
|
9
|
+
return `http://${host}:8082/input-query${target ? `/${target}` : ''}`;
|
|
10
10
|
}
|
|
11
|
-
function getDeeplinkPayload(miniHandle, host,
|
|
11
|
+
function getDeeplinkPayload(miniHandle, host, extensionTargets) {
|
|
12
12
|
const bundleUrl = getBundleUrl(host);
|
|
13
13
|
const extensionInputQueryUrl = getExtensionInputQueryUrl(host);
|
|
14
|
+
const extensionInputQueryUrlPrefix = getExtensionInputQueryUrl(host);
|
|
14
15
|
const params = {
|
|
15
16
|
handle: miniHandle,
|
|
16
17
|
bundleUrl,
|
|
18
|
+
/*
|
|
19
|
+
* We used to support only one input query per mini.
|
|
20
|
+
* Now we support one input query per target.
|
|
21
|
+
* TODO: Remove usage of extensionInputQueryUrl in favor of extensionInputQueryUrlPrefix. https://github.com/Shopify/shop-client/issues/41813
|
|
22
|
+
*/
|
|
17
23
|
extensionInputQueryUrl,
|
|
24
|
+
extensionInputQueryUrlPrefix,
|
|
18
25
|
rnVersion: getReactNativeVersion(),
|
|
19
26
|
features: getMiniManifest()?.features ?? undefined,
|
|
20
27
|
};
|
|
21
|
-
if (
|
|
22
|
-
params.
|
|
28
|
+
if (extensionTargets) {
|
|
29
|
+
params.extensionTargets = extensionTargets;
|
|
23
30
|
}
|
|
24
31
|
const stringifiedParams = JSON.stringify(params);
|
|
25
32
|
return Buffer.from(stringifiedParams).toString('base64');
|
|
@@ -36,9 +43,9 @@ function getDeeplinkPayload(miniHandle, host, extensionTarget) {
|
|
|
36
43
|
* In both cases, the base64 encoded payload contains the bundle url and extra information about the remote environment
|
|
37
44
|
*/
|
|
38
45
|
export function getDeeplink(miniHandle, options, universalLink = false) {
|
|
39
|
-
const deeplinkParams = getDeeplinkPayload(miniHandle, options.host, options.
|
|
40
|
-
const developmentParams =
|
|
41
|
-
const deeplinkPath = options.
|
|
46
|
+
const deeplinkParams = getDeeplinkPayload(miniHandle, options.host, options.extensionTargets);
|
|
47
|
+
const developmentParams = getDevelopmentEntryPointParamsQueryString();
|
|
48
|
+
const deeplinkPath = options.extensionTargets
|
|
42
49
|
? '/mini/remote-extension/'
|
|
43
50
|
: '/mini/remote/';
|
|
44
51
|
const deeplink = universalLink
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deeplink.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/deeplink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC
|
|
1
|
+
{"version":3,"file":"deeplink.js","sourceRoot":"","sources":["../../../../src/commands/dev/utils/deeplink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,yCAAyC,EAAC,MAAM,sCAAsC,CAAA;AAC9F,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAA;AAGhE,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;AAE/D,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,UAAU,IAAI,oBAAoB,CAAA;AAC3C,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAY,EAAE,MAAe;IAC9D,OAAO,UAAU,IAAI,oBAAoB,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;AACvE,CAAC;AAED,SAAS,kBAAkB,CACzB,UAAkB,EAClB,IAAY,EACZ,gBAA2B;IAE3B,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC9D,MAAM,4BAA4B,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAEpE,MAAM,MAAM,GAAkD;QAC5D,MAAM,EAAE,UAAU;QAClB,SAAS;QACT;;;;WAIG;QACH,sBAAsB;QACtB,4BAA4B;QAC5B,SAAS,EAAE,qBAAqB,EAAE;QAClC,QAAQ,EAAE,eAAe,EAAE,EAAE,QAAQ,IAAI,SAAS;KACnD,CAAA;IAED,IAAI,gBAAgB,EAAE;QACpB,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;KAC3C;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAEhD,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC1D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,UAAkB,EAClB,OAA0B,EAC1B,aAAa,GAAG,KAAK;IAErB,MAAM,cAAc,GAAG,kBAAkB,CACvC,UAAU,EACV,OAAO,CAAC,IAAK,EACb,OAAO,CAAC,gBAAgB,CACzB,CAAA;IACD,MAAM,iBAAiB,GAAG,yCAAyC,EAAE,CAAA;IACrE,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB;QAC3C,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,eAAe,CAAA;IAEnB,MAAM,QAAQ,GAAG,aAAa;QAC5B,CAAC,CAAC,mBAAmB,YAAY,GAAG,cAAc,GAAG,iBAAiB,EAAE;QACxE,CAAC,CAAC,WAAW,YAAY,GAAG,cAAc,GAAG,iBAAiB,EAAE,CAAA;IAElE,WAAW,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAA;IAEpC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import url from 'url';
|
|
1
2
|
import path from 'node:path';
|
|
2
3
|
import fs from 'node:fs';
|
|
3
4
|
import serve from 'serve-static';
|
|
4
5
|
import connect from 'connect';
|
|
6
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
5
7
|
/**
|
|
6
8
|
* mutates the received metro config param to inject a custom middleware.
|
|
7
9
|
* needed because of https://github.com/facebook/metro/issues/660
|
|
@@ -36,19 +38,40 @@ function devPanelMiddleware(...args) {
|
|
|
36
38
|
}
|
|
37
39
|
export const DEV_PANEL_BASE_URL = `http://localhost:8082/dev-panel`;
|
|
38
40
|
function inputQueryMiddlewareFactory(options) {
|
|
39
|
-
return function inputQueryMiddleware(
|
|
40
|
-
if (!options.
|
|
41
|
+
return function inputQueryMiddleware(req, res) {
|
|
42
|
+
if (!req.url || !options.extensionTargets) {
|
|
41
43
|
res.end();
|
|
42
44
|
return;
|
|
43
45
|
}
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
46
|
+
const urlParts = url.parse(req.url);
|
|
47
|
+
let target = '';
|
|
48
|
+
if (urlParts.pathname === '/') {
|
|
49
|
+
outputDebug('No target specified, using the first target.');
|
|
50
|
+
target = options.extensionTargets[0];
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
target = urlParts.pathname?.split('/')[1] ?? '';
|
|
54
|
+
}
|
|
55
|
+
if (target) {
|
|
56
|
+
const defaultTargetsFolderPath = path.join(process.cwd(), 'src', 'targets');
|
|
57
|
+
const customTargetsPath = process.env.CUSTOM_TARGETS_PATH
|
|
58
|
+
? path.join(process.cwd(), process.env.CUSTOM_TARGETS_PATH)
|
|
59
|
+
: null;
|
|
60
|
+
const queryFilePath = path.join(customTargetsPath || defaultTargetsFolderPath, // give preference to the custom path if the env variable is present
|
|
61
|
+
target, 'input.graphql');
|
|
62
|
+
try {
|
|
63
|
+
const queryFile = fs.readFileSync(queryFilePath);
|
|
64
|
+
res.end(queryFile);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
console.error(`Unable to read a query file for target ${target}`);
|
|
68
|
+
res.end();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
console.error(`Your mini does not support any extension targets yet`);
|
|
73
|
+
res.end();
|
|
74
|
+
}
|
|
52
75
|
};
|
|
53
76
|
}
|
|
54
77
|
//# sourceMappingURL=metro-server-middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metro-server-middleware.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server-middleware.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"metro-server-middleware.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-server-middleware.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,OAAO,KAAK,MAAM,cAAc,CAAA;AAChC,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAIxD;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAA0B;IACnE,OAAO,OAAO,EAAE;SACb,GAAG,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACtC,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC;SACrC,GAAG,CAAC,SAAS,EAAE,oBAAoB,CAAC;SACpC,GAAG,CAAC,cAAc,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,qHAAqH;AACrH,SAAS,iBAAiB,CACxB,GAAyB,EACzB,IAAyB,EACzB,IAAyB;IAEzB,CAAC;IAAC,GAAgD,CAAC,OAAO,GAAG,EAAE,CAAA;IAC/D,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAEvB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC/B,CAAC;QAAC,GAAgD,CAAC,OAAO,IAAI,KAAK,CAAA;IACrE,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QACjB,IAAI,EAAE,CAAA;IACR,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,4JAA4J;AAC5J,SAAS,oBAAoB,CAC3B,IAA0B,EAC1B,GAAwB;IAExB,GAAG,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,kBAAkB,CACzB,GAAG,IAA4C;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,WAAW,CACZ,CAAA;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,iCAAiC,CAAA;AAEnE,SAAS,2BAA2B,CAAC,OAA0B;IAC7D,OAAO,SAAS,oBAAoB,CAClC,GAAyB,EACzB,GAAwB;QAExB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACzC,GAAG,CAAC,GAAG,EAAE,CAAA;YACT,OAAM;SACP;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,QAAQ,CAAC,QAAQ,KAAK,GAAG,EAAE;YAC7B,WAAW,CAAC,8CAA8C,CAAC,CAAA;YAC3D,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;SACrC;aAAM;YACL,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;SAChD;QAED,IAAI,MAAM,EAAE;YACV,MAAM,wBAAwB,GAAG,IAAI,CAAC,IAAI,CACxC,OAAO,CAAC,GAAG,EAAE,EACb,KAAK,EACL,SAAS,CACV,CAAA;YACD,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACvD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;gBAC3D,CAAC,CAAC,IAAI,CAAA;YACR,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,iBAAiB,IAAI,wBAAwB,EAAE,oEAAoE;YACnH,MAAM,EACN,eAAe,CAChB,CAAA;YACD,IAAI;gBACF,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAA;gBAChD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;aACnB;YAAC,MAAM;gBACN,OAAO,CAAC,KAAK,CAAC,0CAA0C,MAAM,EAAE,CAAC,CAAA;gBACjE,GAAG,CAAC,GAAG,EAAE,CAAA;aACV;SACF;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,GAAG,CAAC,GAAG,EAAE,CAAA;SACV;IACH,CAAC,CAAA;AACH,CAAC"}
|
package/build/utils/codemod.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import jscodeshift from 'jscodeshift';
|
|
2
|
+
export type Root = ReturnType<typeof jscodeshift>;
|
|
2
3
|
export declare const j: jscodeshift.JSCodeshift;
|
|
3
4
|
/**
|
|
4
5
|
* Find the first import declaration of a module
|
|
@@ -17,7 +18,7 @@ export declare const j: jscodeshift.JSCodeshift;
|
|
|
17
18
|
* import {importedName as importedAsName} from 'importPath'
|
|
18
19
|
* ```
|
|
19
20
|
*/
|
|
20
|
-
export declare const findImportOf: (root:
|
|
21
|
+
export declare const findImportOf: (root: import("jscodeshift/src/Collection.js").Collection<any>, importPath: string, importedName: string, importedAsName?: string) => {
|
|
21
22
|
specifier: import("ast-types").namedTypes.ImportSpecifier | import("ast-types").namedTypes.ImportDefaultSpecifier | import("ast-types").namedTypes.ImportNamespaceSpecifier | null;
|
|
22
23
|
importDeclaration: import("ast-types").namedTypes.ImportDeclaration;
|
|
23
24
|
};
|
|
@@ -29,7 +30,7 @@ export declare const findImportOf: (root: ReturnType<typeof jscodeshift>, import
|
|
|
29
30
|
*
|
|
30
31
|
* Returns the specifier and import declaration nodes that were found, edited or created
|
|
31
32
|
*/
|
|
32
|
-
export declare const ensureImportOf: (root:
|
|
33
|
+
export declare const ensureImportOf: (root: import("jscodeshift/src/Collection.js").Collection<any>, importPath: string, importedName: string, importedAsName?: string) => {
|
|
33
34
|
specifier: import("ast-types").namedTypes.ImportSpecifier | import("ast-types").namedTypes.ImportDefaultSpecifier | import("ast-types").namedTypes.ImportNamespaceSpecifier;
|
|
34
35
|
importDeclaration: import("ast-types").namedTypes.ImportDeclaration;
|
|
35
36
|
};
|
|
@@ -46,7 +47,26 @@ export declare const ensureImportOf: (root: ReturnType<typeof jscodeshift>, impo
|
|
|
46
47
|
*
|
|
47
48
|
* If multiple are found, the first one is returned
|
|
48
49
|
*/
|
|
49
|
-
export declare const findObjectExpression: (root:
|
|
50
|
+
export declare const findObjectExpression: (root: import("jscodeshift/src/Collection.js").Collection<any>, objName: string) => import("ast-types").namedTypes.ObjectExpression | null;
|
|
51
|
+
/**
|
|
52
|
+
* Find an object's property by it's key
|
|
53
|
+
*
|
|
54
|
+
* Returns the property node that was found or null
|
|
55
|
+
*/
|
|
56
|
+
export declare const findObjectProperty: ({ obj, key, }: {
|
|
57
|
+
obj: jscodeshift.ObjectExpression;
|
|
58
|
+
key: string;
|
|
59
|
+
}) => jscodeshift.Property | null;
|
|
60
|
+
/**
|
|
61
|
+
* Return all the objects keys
|
|
62
|
+
*
|
|
63
|
+
* Only returns keys of types Identifier and StringLiteral eg
|
|
64
|
+
*
|
|
65
|
+
* const foo = { 'cool-key': 'value', otherKey: 'ok' }
|
|
66
|
+
*/
|
|
67
|
+
export declare const objectKeys: ({ obj, }: {
|
|
68
|
+
obj: jscodeshift.ObjectExpression;
|
|
69
|
+
}) => string[];
|
|
50
70
|
/**
|
|
51
71
|
* Ensure that an object has a property with a specific key
|
|
52
72
|
*
|
package/build/utils/codemod.js
CHANGED
|
@@ -91,6 +91,44 @@ export const findObjectExpression = (root, objName) => {
|
|
|
91
91
|
? result.init
|
|
92
92
|
: null;
|
|
93
93
|
};
|
|
94
|
+
/**
|
|
95
|
+
* Find an object's property by it's key
|
|
96
|
+
*
|
|
97
|
+
* Returns the property node that was found or null
|
|
98
|
+
*/
|
|
99
|
+
export const findObjectProperty = ({ obj, key, }) => {
|
|
100
|
+
const properties = obj.properties;
|
|
101
|
+
return (properties.find(prop => {
|
|
102
|
+
if (prop.type !== 'ObjectProperty')
|
|
103
|
+
return false;
|
|
104
|
+
if (prop.key.type === 'Identifier' && prop.key.name === key)
|
|
105
|
+
return true;
|
|
106
|
+
if (prop.key.type === 'StringLiteral' && prop.key.value === key)
|
|
107
|
+
return true;
|
|
108
|
+
return false;
|
|
109
|
+
}) ?? null);
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Return all the objects keys
|
|
113
|
+
*
|
|
114
|
+
* Only returns keys of types Identifier and StringLiteral eg
|
|
115
|
+
*
|
|
116
|
+
* const foo = { 'cool-key': 'value', otherKey: 'ok' }
|
|
117
|
+
*/
|
|
118
|
+
export const objectKeys = ({ obj, }) => {
|
|
119
|
+
const properties = obj.properties;
|
|
120
|
+
return properties
|
|
121
|
+
.map(prop => {
|
|
122
|
+
if (prop.type !== 'ObjectProperty')
|
|
123
|
+
return null;
|
|
124
|
+
if (prop.key.type === 'Identifier')
|
|
125
|
+
return prop.key.name;
|
|
126
|
+
if (prop.key.type === 'StringLiteral')
|
|
127
|
+
return prop.key.value;
|
|
128
|
+
return null;
|
|
129
|
+
})
|
|
130
|
+
.filter(value => typeof value === 'string');
|
|
131
|
+
};
|
|
94
132
|
/**
|
|
95
133
|
* Ensure that an object has a property with a specific key
|
|
96
134
|
*
|
|
@@ -104,15 +142,7 @@ export const findObjectExpression = (root, objName) => {
|
|
|
104
142
|
*/
|
|
105
143
|
export const ensureObjectProperty = ({ obj, key, defaultValue, overwrite = false, }) => {
|
|
106
144
|
const properties = obj.properties;
|
|
107
|
-
let targetProperty =
|
|
108
|
-
if (prop.type !== 'ObjectProperty')
|
|
109
|
-
return false;
|
|
110
|
-
if (prop.key.type === 'Identifier' && prop.key.name === key)
|
|
111
|
-
return true;
|
|
112
|
-
if (prop.key.type === 'StringLiteral' && prop.key.value === key)
|
|
113
|
-
return true;
|
|
114
|
-
return false;
|
|
115
|
-
}) ?? null;
|
|
145
|
+
let targetProperty = findObjectProperty({ obj, key });
|
|
116
146
|
if (targetProperty) {
|
|
117
147
|
if (overwrite) {
|
|
118
148
|
targetProperty.value = defaultValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codemod.js","sourceRoot":"","sources":["../../src/utils/codemod.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"codemod.js","sourceRoot":"","sources":["../../src/utils/codemod.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DevCommandOptions } from '../commands/dev/index.js';
|
|
2
1
|
declare const ALLOWED_ENTRY_POINT_PARAMS: readonly ["product_id", "shop_id", "product_variant_id", "external_id", "shop_domain", "order_id", "category_id"];
|
|
3
2
|
type DevelopmentEntryPointParams = {
|
|
4
3
|
[key in (typeof ALLOWED_ENTRY_POINT_PARAMS)[number]]?: string;
|
|
@@ -10,5 +9,5 @@ type DevelopmentEntryPointParams = {
|
|
|
10
9
|
* Returns empty string if the file does not exist or if the format of its content is incorrect.
|
|
11
10
|
*/
|
|
12
11
|
export declare function getDevelopmentEntryPointParams(): DevelopmentEntryPointParams;
|
|
13
|
-
export declare function
|
|
12
|
+
export declare function getDevelopmentEntryPointParamsQueryString(): string;
|
|
14
13
|
export {};
|
|
@@ -35,17 +35,9 @@ export function getDevelopmentEntryPointParams() {
|
|
|
35
35
|
return {};
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
function getDevelopmentEntryPointParamsQueryString() {
|
|
38
|
+
export function getDevelopmentEntryPointParamsQueryString() {
|
|
39
39
|
const paramsObject = getDevelopmentEntryPointParams();
|
|
40
40
|
const paramsQueryString = new URLSearchParams(paramsObject).toString();
|
|
41
41
|
return paramsQueryString ? `?${paramsQueryString}` : '';
|
|
42
42
|
}
|
|
43
|
-
function getDevelopmentWidgetParamsQueryString(extensionTarget) {
|
|
44
|
-
return `?${new URLSearchParams({ extensionTarget }).toString()}`;
|
|
45
|
-
}
|
|
46
|
-
export function getDevelopmentQueryStringParams(options) {
|
|
47
|
-
return options.extensionTarget
|
|
48
|
-
? getDevelopmentWidgetParamsQueryString(options.extensionTarget)
|
|
49
|
-
: getDevelopmentEntryPointParamsQueryString();
|
|
50
|
-
}
|
|
51
43
|
//# sourceMappingURL=development-params.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development-params.js","sourceRoot":"","sources":["../../src/utils/development-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"development-params.js","sourceRoot":"","sources":["../../src/utils/development-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,0BAA0B,GAAG;IACjC,YAAY;IACZ,SAAS;IACT,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,UAAU;IACV,aAAa;CACL,CAAA;AAMV,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AAC9D,MAAM,4BAA4B,GAAG,IAAI,CAAC,IAAI,CAC5C,OAAO,CAAC,GAAG,EAAE,EACb,4BAA4B,CAC7B,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B;IAC5C,IAAI;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnD,OAAO,YAAY,CAAC,KAAK,CACvB,YAAY,CAAC,OAAO,CAAC,4BAA4B,CAAC,CACnD,CAAA;QACD,MAAM,eAAe,GAA2B,YAAY,CAC1D,4BAA4B,CAC7B,CAAA;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,MAAM,CAC5D,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,0BAA0B,CAAC,QAAQ,CACjC,GAAwC,CACzC,IAAI,OAAO,CAAC,KAAK,CAAC,CACtB,CAAA;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;KAC3C;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,EAAE,IAAI,KAAK,kBAAkB,IAAI,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE;YAC9D,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;SAClB;QACD,sFAAsF;QACtF,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAED,MAAM,UAAU,yCAAyC;IACvD,MAAM,YAAY,GAAG,8BAA8B,EAAE,CAAA;IACrD,MAAM,iBAAiB,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAA;IAEtE,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExtensionTarget } from '../constants/extensions.js';
|
|
2
|
+
export declare const CONFIG_PATH: string;
|
|
3
|
+
/**
|
|
4
|
+
* Find a list of extensions used by this mini
|
|
5
|
+
*
|
|
6
|
+
* We read this from the minis src/index.tsx config.Targets object
|
|
7
|
+
*/
|
|
8
|
+
export declare function getMiniExtensions(specifiedExtensionTargets: string[] | undefined): Promise<ExtensionTarget[]>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
4
|
+
import { ExtensionTarget } from '../constants/extensions.js';
|
|
5
|
+
import { findObjectExpression, findObjectProperty, j, objectKeys, } from './codemod.js';
|
|
6
|
+
export const CONFIG_PATH = path.join('src', 'index.tsx');
|
|
7
|
+
const readConfigFile = () => readFile(path.join(process.cwd(), CONFIG_PATH), 'utf8');
|
|
8
|
+
/**
|
|
9
|
+
* Find a list of extensions used by this mini
|
|
10
|
+
*
|
|
11
|
+
* We read this from the minis src/index.tsx config.Targets object
|
|
12
|
+
*/
|
|
13
|
+
export async function getMiniExtensions(specifiedExtensionTargets) {
|
|
14
|
+
let configFile;
|
|
15
|
+
let root;
|
|
16
|
+
try {
|
|
17
|
+
configFile = await readConfigFile();
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
outputDebug(`getMiniExtensions couldn't read config at ${CONFIG_PATH}`);
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
if (!configFile || !configFile.includes('MiniAppConfig')) {
|
|
24
|
+
outputDebug(`getMiniExtensions couldn't find \`MiniAppConfig\` in ${CONFIG_PATH}`);
|
|
25
|
+
return [];
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
root = j(configFile);
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
outputDebug(`getMiniExtensions couldn't parse config at ${CONFIG_PATH}`);
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
// It would be better if we could find this by type `MiniAppConfig`
|
|
35
|
+
// Or find it by tracing back the default export of the config file
|
|
36
|
+
const configObject = findObjectExpression(root, 'config');
|
|
37
|
+
if (!configObject) {
|
|
38
|
+
outputDebug(`getMiniExtensions couldn't find a \`config\` object in ${CONFIG_PATH}`);
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
const targetsObject = findObjectProperty({
|
|
42
|
+
obj: configObject,
|
|
43
|
+
key: 'Targets',
|
|
44
|
+
});
|
|
45
|
+
if (!targetsObject) {
|
|
46
|
+
outputDebug('getMiniExtensions no `Targets` found in config');
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
const targetsValue = targetsObject.value;
|
|
50
|
+
if (targetsValue.type !== 'ObjectExpression') {
|
|
51
|
+
outputDebug(`getMiniExtensions unexpected type for Targets. Expected: ObjectExpression, Found: ${targetsValue.type}`);
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
54
|
+
const definedExtensions = objectKeys({ obj: targetsValue });
|
|
55
|
+
if (!definedExtensions) {
|
|
56
|
+
outputDebug('getMiniExtensions no extensions found in `Targets`');
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const possibleExtensions = Object.values(ExtensionTarget);
|
|
60
|
+
const validDefinedExtensions = possibleExtensions.filter(val => definedExtensions.includes(val));
|
|
61
|
+
outputDebug(`getMiniExtensions extensions found in \`Targets\`: ${JSON.stringify(validDefinedExtensions)}`);
|
|
62
|
+
const invalidDefinedExtensions = definedExtensions.filter(val => !possibleExtensions.includes(val));
|
|
63
|
+
if (invalidDefinedExtensions.length > 0) {
|
|
64
|
+
outputDebug(`getMiniExtensions invalid extensions found in \`Targets\`: ${JSON.stringify(invalidDefinedExtensions)}`);
|
|
65
|
+
}
|
|
66
|
+
let extensionsToStart = validDefinedExtensions;
|
|
67
|
+
// Find the valid extensions this mini has, filter to cli-args if supplied
|
|
68
|
+
// We could (should?) error out if we don't find what the user wanted
|
|
69
|
+
if (Array.isArray(specifiedExtensionTargets) &&
|
|
70
|
+
specifiedExtensionTargets.length > 0) {
|
|
71
|
+
outputDebug(`Extensions from cli args ${JSON.stringify(specifiedExtensionTargets)}`);
|
|
72
|
+
extensionsToStart = validDefinedExtensions.filter(ext => specifiedExtensionTargets?.includes(ext));
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
outputDebug(`No extensions from cli args`);
|
|
76
|
+
}
|
|
77
|
+
return extensionsToStart;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/utils/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAEL,oBAAoB,EACpB,kBAAkB,EAClB,CAAC,EACD,UAAU,GACX,MAAM,cAAc,CAAA;AAErB,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;AAExD,MAAM,cAAc,GAAG,GAAG,EAAE,CAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAA;AAEzD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,yBAA+C;IAE/C,IAAI,UAAkB,CAAA;IACtB,IAAI,IAAU,CAAA;IAEd,IAAI;QACF,UAAU,GAAG,MAAM,cAAc,EAAE,CAAA;KACpC;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,6CAA6C,WAAW,EAAE,CAAC,CAAA;QACvE,OAAO,EAAE,CAAA;KACV;IAED,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QACxD,WAAW,CACT,wDAAwD,WAAW,EAAE,CACtE,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,IAAI;QACF,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAA;KACrB;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,8CAA8C,WAAW,EAAE,CAAC,CAAA;QACxE,OAAO,EAAE,CAAA;KACV;IAED,mEAAmE;IACnE,mEAAmE;IACnE,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAEzD,IAAI,CAAC,YAAY,EAAE;QACjB,WAAW,CACT,0DAA0D,WAAW,EAAE,CACxE,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC;QACvC,GAAG,EAAE,YAAY;QACjB,GAAG,EAAE,SAAS;KACf,CAAC,CAAA;IAEF,IAAI,CAAC,aAAa,EAAE;QAClB,WAAW,CAAC,gDAAgD,CAAC,CAAA;QAC7D,OAAO,EAAE,CAAA;KACV;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAA;IACxC,IAAI,YAAY,CAAC,IAAI,KAAK,kBAAkB,EAAE;QAC5C,WAAW,CACT,qFAAqF,YAAY,CAAC,IAAI,EAAE,CACzG,CAAA;QACD,OAAO,EAAE,CAAA;KACV;IAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,EAAC,GAAG,EAAE,YAAY,EAAC,CAAC,CAAA;IAEzD,IAAI,CAAC,iBAAiB,EAAE;QACtB,WAAW,CAAC,oDAAoD,CAAC,CAAA;QACjE,OAAO,EAAE,CAAA;KACV;IAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAEzD,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7D,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAChC,CAAA;IAED,WAAW,CACT,sDAAsD,IAAI,CAAC,SAAS,CAClE,sBAAsB,CACvB,EAAE,CACJ,CAAA;IAED,MAAM,wBAAwB,GAAG,iBAAiB,CAAC,MAAM,CACvD,GAAG,CAAC,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,GAAsB,CAAC,CAC5D,CAAA;IAED,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,EAAE;QACvC,WAAW,CACT,8DAA8D,IAAI,CAAC,SAAS,CAC1E,wBAAwB,CACzB,EAAE,CACJ,CAAA;KACF;IAED,IAAI,iBAAiB,GAAG,sBAAsB,CAAA;IAE9C,0EAA0E;IAC1E,qEAAqE;IACrE,IACE,KAAK,CAAC,OAAO,CAAC,yBAAyB,CAAC;QACxC,yBAAyB,CAAC,MAAM,GAAG,CAAC,EACpC;QACA,WAAW,CACT,4BAA4B,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,EAAE,CACxE,CAAA;QACD,iBAAiB,GAAG,sBAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACtD,yBAAyB,EAAE,QAAQ,CAAC,GAAG,CAAC,CACzC,CAAA;KACF;SAAM;QACL,WAAW,CAAC,6BAA6B,CAAC,CAAA;KAC3C;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC"}
|