@shopify/shop-minis-cli 0.0.192 → 0.0.194
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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Command, Option } from 'commander';
|
|
2
2
|
import { outputDebug } from '@shopify/cli-kit/node/output';
|
|
3
|
+
import prompts from 'prompts';
|
|
3
4
|
import { getMiniManifest } from '../../utils/minis-manifest.js';
|
|
4
5
|
import { token } from '../../data/partners/query.js';
|
|
5
6
|
import { codeBuildChecks, completeConfig, doSubmit, preSubmitChecks, } from './submit.js';
|
|
@@ -26,6 +27,16 @@ export function loadCommand(parentProgram) {
|
|
|
26
27
|
args.skipLintCheck = true;
|
|
27
28
|
outputDebug(`Submit args ${JSON.stringify(args)}`);
|
|
28
29
|
outputDebug(`Submitting mini "${miniName}" at ${process.cwd()}`);
|
|
30
|
+
const { acceptsTerms } = await prompts({
|
|
31
|
+
type: 'confirm',
|
|
32
|
+
initial: false,
|
|
33
|
+
name: 'acceptsTerms',
|
|
34
|
+
message: 'Before submitting, do you accept the Shop Minis Developer Terms? (https://shop.app/minis/terms)',
|
|
35
|
+
});
|
|
36
|
+
if (!acceptsTerms) {
|
|
37
|
+
console.log('Submission cancelled. You must accept the terms and conditions to continue.');
|
|
38
|
+
process.exit(0);
|
|
39
|
+
}
|
|
29
40
|
const continueWithSubmission = await codeBuildChecks({
|
|
30
41
|
skipDependencyCheck: args.skipDependencyCheck,
|
|
31
42
|
skipTypescriptCheck: args.skipTypescriptCheck,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/submit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/submit/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,MAAM,EAAC,MAAM,WAAW,CAAA;AACzC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAC,KAAK,EAAC,MAAM,8BAA8B,CAAA;AAElD,OAAO,EACL,eAAe,EACf,cAAc,EACd,QAAQ,EACR,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CACL,6BAA6B,EAC7B,kDAAkD,CACnD;SACA,SAAS,CACR,IAAI,MAAM,CACR,yBAAyB,EACzB,gEAAgE,CACjE;SACE,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,IAAI,CAAC,CAClB;SACA,SAAS,CACR,IAAI,MAAM,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;SACrE,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,IAAI,CAAC,CAClB;SACA,SAAS,CACR,IAAI,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;SACzD,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,IAAI,CAAC,CAClB;SACA,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,0BAA0B;SAC3E,MAAM,CAAC,KAAK,EAAE,IAAkD,EAAE,EAAE;QACnE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC,IAAI,CAAA;QACvC,MAAM,mBAAmB,GAAG,MAAM,KAAK,EAAE,CAAA;QAEzC,wCAAwC;QACxC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;QAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QAEzB,WAAW,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClD,WAAW,CAAC,oBAAoB,QAAQ,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QAEhE,MAAM,EAAC,YAAY,EAAC,GAAG,MAAM,OAAO,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,cAAc;YACpB,OAAO,EACL,iGAAiG;SACpG,CAAC,CAAA;QAEF,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,CAAC,GAAG,CACT,6EAA6E,CAC9E,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,MAAM,sBAAsB,GAAG,MAAM,eAAe,CAAC;YACnD,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAA;QAEF,IAAI,CAAC,sBAAsB,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;SAChB;QAED,MAAM,eAAe,EAAE,CAAA;QACvB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAA;QACzC,MAAM,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -42,23 +42,21 @@
|
|
|
42
42
|
"items": {
|
|
43
43
|
"type": "string",
|
|
44
44
|
"enum": [
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"FAVORITES",
|
|
61
|
-
"FAVORITES_WRITE"
|
|
45
|
+
"openid",
|
|
46
|
+
"user_settings:read",
|
|
47
|
+
"profile",
|
|
48
|
+
"products:recent:read",
|
|
49
|
+
"products:recommendations:read",
|
|
50
|
+
"shops:recent:read",
|
|
51
|
+
"shops:follows",
|
|
52
|
+
"shops:follows:read",
|
|
53
|
+
"shops:follows:write",
|
|
54
|
+
"shops:recommendations:read",
|
|
55
|
+
"orders",
|
|
56
|
+
"product_list",
|
|
57
|
+
"product_list:read",
|
|
58
|
+
"product_list:write",
|
|
59
|
+
"product_list_item:write"
|
|
62
60
|
]
|
|
63
61
|
}
|
|
64
62
|
},
|
|
@@ -64,24 +64,51 @@ export const setMiniManifestProxies = (proxies, manifestPath = DEFAULT_MANIFEST_
|
|
|
64
64
|
});
|
|
65
65
|
};
|
|
66
66
|
function isValidHostname(hostname) {
|
|
67
|
-
// Hostname regex: allows letters, numbers, dots, and
|
|
67
|
+
// Hostname regex: allows letters, numbers, dots, hyphens, and wildcard (*) in subdomain
|
|
68
|
+
// Wildcard is only allowed as the entire first segment (e.g., *.example.com)
|
|
68
69
|
// Does not allow protocols or paths
|
|
69
|
-
|
|
70
|
+
// Regex that matches either:
|
|
71
|
+
// 1. A wildcard subdomain: *.domain.com (asterisk followed by at least a second-level domain)
|
|
72
|
+
// 2. A regular hostname: example.com, subdomain.example.com, etc.
|
|
73
|
+
const hostnameRegex = /^(\*\.)?[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/;
|
|
74
|
+
// For wildcard patterns, ensure there's at least one dot after the wildcard (e.g., *.example.com not *.com)
|
|
75
|
+
if (hostname.startsWith('*.')) {
|
|
76
|
+
const domainAfterWildcard = hostname.substring(2);
|
|
77
|
+
return domainAfterWildcard.includes('.') && hostnameRegex.test(hostname);
|
|
78
|
+
}
|
|
70
79
|
return hostnameRegex.test(hostname);
|
|
71
80
|
}
|
|
81
|
+
function formatFriendlyManifestError(error) {
|
|
82
|
+
// Map technical jsonschema errors to friendly, actionable messages
|
|
83
|
+
const requiredFieldMessages = {
|
|
84
|
+
privacy_policy_url: 'Before submitting your mini, please add a URL to the privacy policy in the manifest file',
|
|
85
|
+
terms_url: 'Before submitting your mini, please add a URL to the terms of service in the manifest file',
|
|
86
|
+
handle: "Your manifest is missing a handle. Run `npx shop-minis setup` to generate your Shop Mini's handle",
|
|
87
|
+
name: 'Before submitting your mini, please add a name in the manifest file',
|
|
88
|
+
};
|
|
89
|
+
// Check if this is a "requires property" error
|
|
90
|
+
const requiresPropertyMatch = error.match(/instance requires property "([^"]+)"/);
|
|
91
|
+
if (requiresPropertyMatch) {
|
|
92
|
+
const fieldName = requiresPropertyMatch[1];
|
|
93
|
+
return requiredFieldMessages[fieldName] || error;
|
|
94
|
+
}
|
|
95
|
+
// Return the original error if no mapping exists
|
|
96
|
+
return error;
|
|
97
|
+
}
|
|
72
98
|
export function validateManifest(manifestPath) {
|
|
73
99
|
const manifest = getMiniManifest(manifestPath);
|
|
74
100
|
const validator = new Validator();
|
|
75
101
|
const result = validator.validate(manifest, manifestSchema);
|
|
76
102
|
const validationErrors = [
|
|
77
|
-
...result.errors.map(validationError => validationError.stack),
|
|
103
|
+
...result.errors.map(validationError => formatFriendlyManifestError(validationError.stack)),
|
|
78
104
|
];
|
|
79
105
|
// Validate trusted_domains
|
|
80
106
|
if (manifest.trusted_domains) {
|
|
81
107
|
if (Array.isArray(manifest.trusted_domains)) {
|
|
82
108
|
manifest.trusted_domains.forEach((domain) => {
|
|
83
|
-
|
|
84
|
-
|
|
109
|
+
// Only validate string domains (non-strings are already caught by JSON schema)
|
|
110
|
+
if (typeof domain === 'string' && !isValidHostname(domain)) {
|
|
111
|
+
validationErrors.push(`Invalid hostname format in trusted_domains: "${domain}". Domain should not include protocol or path. Wildcard subdomains (e.g., *.example.com) are supported.`);
|
|
85
112
|
}
|
|
86
113
|
});
|
|
87
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../src/utils/minis-manifest.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../src/utils/minis-manifest.ts"],"names":[],"mappings":"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"}
|