@shopify/shop-minis-cli 0.0.220 → 0.0.222

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.
@@ -63,20 +63,91 @@ export const setMiniManifestProxies = (proxies, manifestPath = DEFAULT_MANIFEST_
63
63
  encoding: 'utf-8',
64
64
  });
65
65
  };
66
- function isValidHostname(hostname) {
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)
69
- // Does not allow protocols or paths
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);
66
+ /**
67
+ * Validates CSP (Content Security Policy) host-source expressions
68
+ * Format: [*.]hostname[/path/] (paths must end with trailing slash)
69
+ *
70
+ * Valid examples:
71
+ * - example.com
72
+ * - *.example.com
73
+ * - example.com/path/
74
+ * - example.com/path/to/resource/
75
+ *
76
+ * Invalid:
77
+ * - https://example.com (protocols not allowed)
78
+ * - example.com:443 (ports not allowed)
79
+ * - example.com/path (paths must end with /)
80
+ * - values with escape characters (\n, \r, \t, etc.)
81
+ * - values with whitespace or CSP-breaking characters
82
+ *
83
+ * @returns null if valid, or an error message string if invalid
84
+ */
85
+ function validateCspSource(source) {
86
+ // Reject empty strings
87
+ if (!source || source.length === 0) {
88
+ return 'Domain cannot be empty';
78
89
  }
79
- return hostnameRegex.test(hostname);
90
+ // Reject escape characters and control characters
91
+ // eslint-disable-next-line no-control-regex
92
+ if (/[\x00-\x1f\x7f\\]/.test(source)) {
93
+ return 'Domain contains invalid characters';
94
+ }
95
+ // Reject whitespace (spaces, tabs, newlines encoded as literal characters)
96
+ if (/\s/.test(source)) {
97
+ return 'Domain cannot contain whitespace';
98
+ }
99
+ // Reject CSP-breaking characters: semicolons, quotes, angle brackets, commas
100
+ if (/[;<>"',]/.test(source)) {
101
+ return 'Domain contains invalid characters';
102
+ }
103
+ // Reject protocols (anything that looks like scheme://)
104
+ if (/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(source)) {
105
+ return 'Domain should not include protocol (e.g., remove https://)';
106
+ }
107
+ // Reject bare protocol indicators (e.g., javascript:, data:)
108
+ // Only applies when there's no dot before the colon (real hostnames have dots)
109
+ const colonIndex = source.indexOf(':');
110
+ if (colonIndex > 0) {
111
+ const beforeColon = source.substring(0, colonIndex);
112
+ // If no dot before colon and followed by non-digit, it's likely a protocol scheme
113
+ if (!beforeColon.includes('.') &&
114
+ /^[a-zA-Z][a-zA-Z0-9+-]*$/.test(beforeColon) &&
115
+ !/^:\d/.test(source.substring(colonIndex))) {
116
+ return 'Domain should not include protocol scheme';
117
+ }
118
+ }
119
+ // Parse the source into components: hostname, optional path (no ports allowed)
120
+ // Match: [*.]hostname[/path]
121
+ const cspSourceRegex = /^(\*\.)?([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*)(\/[^\s]*)?$/;
122
+ const match = source.match(cspSourceRegex);
123
+ if (!match) {
124
+ return 'Invalid domain format. Use format: hostname or *.hostname';
125
+ }
126
+ const [, wildcardPrefix, hostname, , , , pathPart] = match;
127
+ // All domains must have at least one dot (e.g., example.com, not just "example")
128
+ if (!hostname.includes('.')) {
129
+ if (wildcardPrefix) {
130
+ // Wildcard needs second-level domain (e.g., *.example.com, not *.com)
131
+ return 'Wildcard domains require at least a second-level domain (e.g., *.example.com, not *.com)';
132
+ }
133
+ return 'Domain must include a top-level domain (e.g., example.com)';
134
+ }
135
+ // Validate path doesn't contain dangerous sequences
136
+ if (pathPart) {
137
+ // Paths must end with a trailing slash
138
+ if (!pathPart.endsWith('/')) {
139
+ return 'Paths must end with a trailing slash (e.g., /path/ instead of /path)';
140
+ }
141
+ // Reject paths with encoded dangerous characters or unusual patterns
142
+ if (/%[0-9a-fA-F]{2}/.test(pathPart)) {
143
+ // Allow common safe URL encodings but reject potential bypasses
144
+ const dangerousEncodings = /%0[aAdD]|%09|%00|%3[cCeE]|%22|%27|%3[bB]/i;
145
+ if (dangerousEncodings.test(pathPart)) {
146
+ return 'Path contains invalid characters';
147
+ }
148
+ }
149
+ }
150
+ return null;
80
151
  }
81
152
  function formatFriendlyManifestError(error) {
82
153
  // Map technical jsonschema errors to friendly, actionable messages
@@ -107,8 +178,11 @@ export function validateManifest(manifestPath) {
107
178
  if (Array.isArray(manifest.trusted_domains)) {
108
179
  manifest.trusted_domains.forEach((domain) => {
109
180
  // 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.`);
181
+ if (typeof domain === 'string') {
182
+ const error = validateCspSource(domain);
183
+ if (error) {
184
+ validationErrors.push(`Invalid trusted_domains entry "${domain}": ${error}`);
185
+ }
112
186
  }
113
187
  });
114
188
  }
@@ -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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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public",
5
5
  "@shopify:registry": "https://registry.npmjs.org/"
6
6
  },
7
- "version": "0.0.220",
7
+ "version": "0.0.222",
8
8
  "description": "Shop Minis CLI",
9
9
  "main": "build/index.js",
10
10
  "bin": {