@shopify/shop-minis-cli 0.0.38 → 0.0.39
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/.eslintrc.cjs +84 -0
- package/.vscode/extensions.json +3 -0
- package/.vscode/settings.json +8 -0
- package/.vscode/shop-minis-cli.code-workspace +8 -0
- package/build/commands/cancel-submission/index.d.ts +2 -0
- package/build/commands/cancel-submission/index.js +22 -0
- package/build/commands/cancel-submission/index.js.map +1 -0
- package/build/commands/cancel-submission/types.d.ts +3 -0
- package/build/commands/cancel-submission/types.js +2 -0
- package/build/commands/cancel-submission/types.js.map +1 -0
- package/build/commands/check-submission/index.d.ts +2 -0
- package/build/commands/check-submission/index.js +22 -0
- package/build/commands/check-submission/index.js.map +1 -0
- package/build/commands/check-submission/types.d.ts +3 -0
- package/build/commands/check-submission/types.js +2 -0
- package/build/commands/check-submission/types.js.map +1 -0
- package/build/commands/config.d.ts +10 -0
- package/build/commands/config.js +34 -0
- package/build/commands/config.js.map +1 -0
- package/build/commands/create-mini/index.js +38 -40
- package/build/commands/create-mini/index.js.map +1 -1
- package/build/commands/create-mini/utils/template-app.js +20 -25
- package/build/commands/create-mini/utils/template-app.js.map +1 -1
- package/build/commands/dev/index.js +13 -20
- package/build/commands/dev/index.js.map +1 -1
- package/build/commands/dev/utils/android.js +34 -48
- package/build/commands/dev/utils/android.js.map +1 -1
- package/build/commands/dev/utils/binaries.d.ts +1 -22
- package/build/commands/dev/utils/binaries.js +19 -98
- package/build/commands/dev/utils/binaries.js.map +1 -1
- package/build/commands/dev/utils/deeplink.d.ts +1 -1
- package/build/commands/dev/utils/deeplink.js +2 -7
- package/build/commands/dev/utils/deeplink.js.map +1 -1
- package/build/commands/dev/utils/interactive-terminal.d.ts +1 -1
- package/build/commands/dev/utils/interactive-terminal.js +46 -52
- package/build/commands/dev/utils/interactive-terminal.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-config.js +19 -20
- package/build/commands/dev/utils/metro/metro-config.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-reporter.d.ts +2 -3
- package/build/commands/dev/utils/metro/metro-reporter.js +7 -12
- package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-server-middleware.js +5 -12
- package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -1
- package/build/commands/dev/utils/metro/metro-server.d.ts +1 -1
- package/build/commands/dev/utils/metro/metro-server.js +6 -13
- package/build/commands/dev/utils/metro/metro-server.js.map +1 -1
- package/build/commands/dev/utils/network.d.ts +20 -0
- package/build/commands/dev/utils/network.js +62 -0
- package/build/commands/dev/utils/network.js.map +1 -0
- package/build/commands/dev/utils/qr-code.js +3 -10
- package/build/commands/dev/utils/qr-code.js.map +1 -1
- package/build/commands/dev/utils/simulator.js +25 -35
- package/build/commands/dev/utils/simulator.js.map +1 -1
- package/build/commands/dev/utils/types.d.ts +1 -0
- package/build/commands/dev/utils/types.js +2 -0
- package/build/commands/dev/utils/types.js.map +1 -0
- package/build/commands/dev/utils/with-retries.js +1 -5
- package/build/commands/dev/utils/with-retries.js.map +1 -1
- package/build/commands/generate-graphql-types/index.js +25 -26
- package/build/commands/generate-graphql-types/index.js.map +1 -1
- package/build/commands/schemas/contextual-image.schema.d.ts +22 -0
- package/build/commands/schemas/contextual-image.schema.js +23 -0
- package/build/commands/schemas/contextual-image.schema.js.map +1 -0
- package/build/commands/schemas/contextual-object.schema.d.ts +18 -0
- package/build/commands/schemas/contextual-object.schema.js +19 -0
- package/build/commands/schemas/contextual-object.schema.js.map +1 -0
- package/build/commands/schemas/manifest.schema.d.ts +181 -0
- package/build/commands/schemas/manifest.schema.js +230 -0
- package/build/commands/schemas/manifest.schema.js.map +1 -0
- package/build/commands/schemas/visibility.schema.d.ts +18 -0
- package/build/commands/schemas/visibility.schema.js +19 -0
- package/build/commands/schemas/visibility.schema.js.map +1 -0
- package/build/commands/submit/config.d.ts +9 -0
- package/build/commands/submit/config.js +18 -0
- package/build/commands/submit/config.js.map +1 -0
- package/build/commands/submit/errors.d.ts +19 -0
- package/build/commands/submit/errors.js +87 -0
- package/build/commands/submit/errors.js.map +1 -0
- package/build/commands/submit/gcs.d.ts +6 -0
- package/build/commands/submit/gcs.js +10 -0
- package/build/commands/submit/gcs.js.map +1 -0
- package/build/commands/submit/graphql.d.ts +73 -0
- package/build/commands/submit/graphql.js +100 -0
- package/build/commands/submit/graphql.js.map +1 -0
- package/build/commands/submit/index.d.ts +2 -0
- package/build/commands/submit/index.js +21 -0
- package/build/commands/submit/index.js.map +1 -0
- package/build/commands/submit/submit.d.ts +4 -0
- package/build/commands/submit/submit.js +171 -0
- package/build/commands/submit/submit.js.map +1 -0
- package/build/commands/submit/tasks.d.ts +39 -0
- package/build/commands/submit/tasks.js +167 -0
- package/build/commands/submit/tasks.js.map +1 -0
- package/build/commands/submit/types.d.ts +14 -0
- package/build/commands/submit/types.js +2 -0
- package/build/commands/submit/types.js.map +1 -0
- package/build/commands/submit/validation.d.ts +2 -0
- package/build/commands/submit/validation.js +14 -0
- package/build/commands/submit/validation.js.map +1 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/gql.d.ts +54 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/gql.js +21 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.d.ts +613 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.js +427 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/index.d.ts +2 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/index.js +3 -0
- package/build/commands/types/autogenerated/shop-minis-admin-api/index.js.map +1 -0
- package/build/commands/types/helpers.d.ts +1 -0
- package/build/commands/types/helpers.js +2 -0
- package/build/commands/types/helpers.js.map +1 -0
- package/build/commands/utils/archive.d.ts +30 -0
- package/build/commands/utils/archive.js +38 -0
- package/build/commands/utils/archive.js.map +1 -0
- package/build/commands/utils/exec-async-child-process.d.ts +1 -1
- package/build/commands/utils/exec-async-child-process.js +6 -13
- package/build/commands/utils/exec-async-child-process.js.map +1 -1
- package/build/commands/utils/file.d.ts +1 -0
- package/build/commands/utils/file.js +7 -0
- package/build/commands/utils/file.js.map +1 -0
- package/build/commands/{check/utils/manifest.d.ts → utils/minis-manifest.d.ts} +1 -0
- package/build/commands/utils/minis-manifest.js +42 -0
- package/build/commands/utils/minis-manifest.js.map +1 -0
- package/build/commands/utils/wrap-with-loading-indicator.js +3 -10
- package/build/commands/utils/wrap-with-loading-indicator.js.map +1 -1
- package/build/dev-panel/middleware.js +5 -10
- package/build/dev-panel/middleware.js.map +1 -1
- package/build/index.js +15 -13
- package/build/index.js.map +1 -1
- package/jest.config.ts +11 -0
- package/package.json +4 -7
- package/scripts/graphql-codegen.ts +23 -0
- package/templates/__template_common/.eslintrc.json +2 -119
- package/templates/__template_common/gitignore +1 -0
- package/templates/__template_common/package.json +8 -7
- package/templates/__template_common/src/manifest.json +1 -0
- package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
- package/templates/__template_hello_world/src/screens/QuizScreen.tsx +2 -2
- package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +2 -2
- package/build/commands/check/index.d.ts +0 -6
- package/build/commands/check/index.js +0 -87
- package/build/commands/check/index.js.map +0 -1
- package/build/commands/check/utils/manifest.js +0 -26
- package/build/commands/check/utils/manifest.js.map +0 -1
- package/build/commands/check/utils/schemas/contextual-image.schema.json +0 -21
- package/build/commands/check/utils/schemas/contextual-object.schema.json +0 -17
- package/build/commands/check/utils/schemas/manifest.schema.json +0 -226
- package/build/commands/check/utils/schemas/visibility.schema.json +0 -17
- package/build/commands/check/utils/versions.d.ts +0 -1
- package/build/commands/check/utils/versions.js +0 -14
- package/build/commands/check/utils/versions.js.map +0 -1
- package/build/commands/dev/utils/binaries.test.d.ts +0 -1
- package/build/commands/dev/utils/binaries.test.js +0 -275
- package/build/commands/dev/utils/binaries.test.js.map +0 -1
- package/build/commands/dev/utils/minis-manifest.d.ts +0 -1
- package/build/commands/dev/utils/minis-manifest.js +0 -24
- package/build/commands/dev/utils/minis-manifest.js.map +0 -1
- package/templates/__template_hello_world/src/utils/getFlagEmoji.spec.tsx +0 -19
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { Validator } from 'jsonschema';
|
|
3
|
+
import contextualImageSchema from '../schemas/contextual-image.schema.js';
|
|
4
|
+
import contextualObjectSchema from '../schemas/contextual-object.schema.js';
|
|
5
|
+
import visibilitySchema from '../schemas/visibility.schema.js';
|
|
6
|
+
import manifestSchema from '../schemas/manifest.schema.js';
|
|
7
|
+
const manifestRequire = createRequire(import.meta.url);
|
|
8
|
+
export function getMiniManifest() {
|
|
9
|
+
const manifestPath = `${process.cwd()}/src/manifest.json`;
|
|
10
|
+
let manifest;
|
|
11
|
+
try {
|
|
12
|
+
manifest = manifestRequire(manifestPath);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
if (process.env.MOCK_MANIFEST) {
|
|
16
|
+
manifest = {
|
|
17
|
+
handle: 'mocked',
|
|
18
|
+
name: 'mocked',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new Error(`Failed to load manifest file from ${manifestPath}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return manifest;
|
|
26
|
+
}
|
|
27
|
+
export function validateManifest() {
|
|
28
|
+
const manifest = getMiniManifest();
|
|
29
|
+
const validator = new Validator();
|
|
30
|
+
// The filenames here seem to relate to the ones inside the files themselves
|
|
31
|
+
// rather than their exact filepath. We use `js` because at runtime they are
|
|
32
|
+
// compiled by ts and are imported from the `build` directory
|
|
33
|
+
validator.addSchema(contextualImageSchema, '/contextual-image.schema.js');
|
|
34
|
+
validator.addSchema(contextualObjectSchema, '/contextual-object.schema.js');
|
|
35
|
+
validator.addSchema(visibilitySchema, '/visibility.schema.js');
|
|
36
|
+
const result = validator.validate(manifest, manifestSchema);
|
|
37
|
+
return {
|
|
38
|
+
valid: result.valid,
|
|
39
|
+
errors: result.errors.map(validationError => validationError.stack),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=minis-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minis-manifest.js","sourceRoot":"","sources":["../../../src/commands/utils/minis-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AAEzC,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AAEpC,OAAO,qBAAqB,MAAM,uCAAuC,CAAA;AACzE,OAAO,sBAAsB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,gBAAgB,MAAM,iCAAiC,CAAA;AAC9D,OAAO,cAAc,MAAM,+BAA+B,CAAA;AAE1D,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEtD,MAAM,UAAU,eAAe;IAC7B,MAAM,YAAY,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,oBAAoB,CAAA;IACzD,IAAI,QAAa,CAAA;IACjB,IAAI;QACF,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;KACzC;IAAC,MAAM;QACN,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE;YAC7B,QAAQ,GAAG;gBACT,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,QAAQ;aACf,CAAA;SACF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAA;SACrE;KACF;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAA;IAEjC,4EAA4E;IAC5E,4EAA4E;IAC5E,6DAA6D;IAC7D,SAAS,CAAC,SAAS,CAAC,qBAAqB,EAAE,6BAA6B,CAAC,CAAA;IACzE,SAAS,CAAC,SAAS,CAAC,sBAAsB,EAAE,8BAA8B,CAAC,CAAA;IAC3E,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAA;IAE9D,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAE3D,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;KACpE,CAAA;AACH,CAAC"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.wrapWithLoadingIndicator = void 0;
|
|
7
|
-
const ora_1 = __importDefault(require("ora"));
|
|
8
|
-
async function wrapWithLoadingIndicator(promise, { loadingMessage, errorMessage, successMessage, spinnerOptions }) {
|
|
9
|
-
const loadingIndicator = (0, ora_1.default)(spinnerOptions);
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
export async function wrapWithLoadingIndicator(promise, { loadingMessage, errorMessage, successMessage, spinnerOptions }) {
|
|
3
|
+
const loadingIndicator = ora(spinnerOptions);
|
|
10
4
|
loadingIndicator.start(loadingMessage);
|
|
11
5
|
try {
|
|
12
6
|
const result = await promise;
|
|
@@ -19,5 +13,4 @@ async function wrapWithLoadingIndicator(promise, { loadingMessage, errorMessage,
|
|
|
19
13
|
throw err;
|
|
20
14
|
}
|
|
21
15
|
}
|
|
22
|
-
exports.wrapWithLoadingIndicator = wrapWithLoadingIndicator;
|
|
23
16
|
//# sourceMappingURL=wrap-with-loading-indicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap-with-loading-indicator.js","sourceRoot":"","sources":["../../../src/commands/utils/wrap-with-loading-indicator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wrap-with-loading-indicator.js","sourceRoot":"","sources":["../../../src/commands/utils/wrap-with-loading-indicator.ts"],"names":[],"mappings":"AAAA,OAAO,GAA4B,MAAM,KAAK,CAAA;AAS9C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAwC,EACxC,EAAC,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAiB;IAE9E,MAAM,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC,CAAA;IAC5C,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAEtC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAA;QAC5B,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QACxC,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,GAAG,EAAE;QACZ,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,MAAM,GAAG,CAAA;KACV;AACH,CAAC"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.DEV_PANEL_BASE_URL = exports.devPanelMiddleware = void 0;
|
|
7
|
-
const serve_static_1 = __importDefault(require("serve-static"));
|
|
8
|
-
const INDEX_FILE_PATH = __dirname;
|
|
9
|
-
exports.devPanelMiddleware = (0, serve_static_1.default)(INDEX_FILE_PATH);
|
|
10
|
-
exports.DEV_PANEL_BASE_URL = `http://localhost:8082/dev-panel`;
|
|
1
|
+
import url from 'node:url';
|
|
2
|
+
import serve from 'serve-static';
|
|
3
|
+
const INDEX_FILE_PATH = url.fileURLToPath(new URL('.', import.meta.url));
|
|
4
|
+
export const devPanelMiddleware = serve(INDEX_FILE_PATH);
|
|
5
|
+
export const DEV_PANEL_BASE_URL = `http://localhost:8082/dev-panel`;
|
|
11
6
|
//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/dev-panel/middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/dev-panel/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,KAAK,MAAM,cAAc,CAAA;AAEhC,MAAM,eAAe,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,eAAe,CAAC,CAAA;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iCAAiC,CAAA"}
|
package/build/index.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const program = new
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { loadCommand as loadCreateMiniCommand } from './commands/create-mini/index.js';
|
|
4
|
+
import { loadCommand as loadDevCommand } from './commands/dev/index.js';
|
|
5
|
+
import { loadCommand as loadGenerateGraphqlTypesCommand } from './commands/generate-graphql-types/index.js';
|
|
6
|
+
import { loadCommand as loadSubmitCommand } from './commands/submit/index.js';
|
|
7
|
+
import { loadCommand as loadCancelSubmissionCommand } from './commands/cancel-submission/index.js';
|
|
8
|
+
import { loadCommand as loadCheckSubmissionCommand } from './commands/check-submission/index.js';
|
|
9
|
+
const program = new Command();
|
|
10
10
|
async function loadCommands() {
|
|
11
|
-
(
|
|
12
|
-
await (
|
|
13
|
-
(
|
|
14
|
-
(
|
|
11
|
+
loadCreateMiniCommand(program);
|
|
12
|
+
await loadDevCommand(program);
|
|
13
|
+
loadGenerateGraphqlTypesCommand(program);
|
|
14
|
+
loadSubmitCommand(program);
|
|
15
|
+
loadCancelSubmissionCommand(program);
|
|
16
|
+
loadCheckSubmissionCommand(program);
|
|
15
17
|
}
|
|
16
18
|
program
|
|
17
19
|
.name('shop-minis')
|
|
18
|
-
.description('CLI for
|
|
20
|
+
.description('CLI for Shop Minis development')
|
|
19
21
|
.version('2.0.0');
|
|
20
22
|
loadCommands()
|
|
21
23
|
.then(() => {
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAC,WAAW,IAAI,qBAAqB,EAAC,MAAM,iCAAiC,CAAA;AACpF,OAAO,EAAC,WAAW,IAAI,cAAc,EAAC,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAC,WAAW,IAAI,+BAA+B,EAAC,MAAM,4CAA4C,CAAA;AACzG,OAAO,EAAC,WAAW,IAAI,iBAAiB,EAAC,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAC,WAAW,IAAI,2BAA2B,EAAC,MAAM,uCAAuC,CAAA;AAChG,OAAO,EAAC,WAAW,IAAI,0BAA0B,EAAC,MAAM,sCAAsC,CAAA;AAE9F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,KAAK,UAAU,YAAY;IACzB,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;IAC7B,+BAA+B,CAAC,OAAO,CAAC,CAAA;IACxC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAC1B,2BAA2B,CAAC,OAAO,CAAC,CAAA;IACpC,0BAA0B,CAAC,OAAO,CAAC,CAAA;AACrC,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,YAAY,EAAE;KACX,IAAI,CAAC,GAAG,EAAE;IACT,OAAO,CAAC,KAAK,EAAE,CAAA;AACjB,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,CAAC,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/jest.config.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type {Config} from '@jest/types'
|
|
2
|
+
|
|
3
|
+
const config: Config.InitialOptions = {
|
|
4
|
+
resetMocks: true,
|
|
5
|
+
preset: 'ts-jest/presets/default-esm',
|
|
6
|
+
testMatch: [ "<rootDir>/src/**/*.test.ts" ],
|
|
7
|
+
moduleNameMapper: {
|
|
8
|
+
'^(\\.{1,2}/.*)\\.js$': '$1', // Get rid of the .js file ext
|
|
9
|
+
},
|
|
10
|
+
}
|
|
11
|
+
export default config
|
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.
|
|
7
|
+
"version": "0.0.39",
|
|
8
8
|
"description": "Shop Minis CLI",
|
|
9
9
|
"main": "build/index.js",
|
|
10
10
|
"bin": {
|
|
@@ -12,14 +12,15 @@
|
|
|
12
12
|
},
|
|
13
13
|
"author": "shopify",
|
|
14
14
|
"license": "MIT",
|
|
15
|
+
"type": "module",
|
|
15
16
|
"scripts": {
|
|
16
|
-
"build": "yarn clean && yarn build:cli && yarn build:cli:binaries && yarn dev-panel:build-and-copy",
|
|
17
|
+
"build": "yarn clean && yarn build:cli:graphql && yarn build:cli && yarn build:cli:binaries && yarn dev-panel:build-and-copy",
|
|
17
18
|
"clean": "rm -rf build",
|
|
18
19
|
"build:cli": "tsc -i false && chmod 755 build/index.js",
|
|
19
20
|
"build:cli:watch": "chokidar \"./src/**/*.ts\" -c \"yarn run build:cli\" --silent --initial --ignore '(build|src/dev-panel/*|node_modules)'",
|
|
20
21
|
"build:cli:binaries": "mkdir -p build/commands/dev/bin/",
|
|
22
|
+
"build:cli:graphql": "node --loader ts-node/esm scripts/graphql-codegen.ts",
|
|
21
23
|
"lint": "eslint . --ext .js,.mjs,.ts,.tsx --format codeframe --cache",
|
|
22
|
-
"shop-minis-dev": "ts-node -T src/index.ts",
|
|
23
24
|
"shop-minis": "./build/index.js",
|
|
24
25
|
"test": "jest",
|
|
25
26
|
"dev-panel:install": "cd ./src/dev-panel && yarn",
|
|
@@ -29,9 +30,6 @@
|
|
|
29
30
|
"dev-panel:build-and-copy": "mkdir -p build/dev-panel/ && yarn dev-panel:clean && yarn dev-panel:install && yarn dev-panel:build && cp -r src/dev-panel/build/* build/dev-panel"
|
|
30
31
|
},
|
|
31
32
|
"devDependencies": {
|
|
32
|
-
"@babel/core": "^7.20.12",
|
|
33
|
-
"@babel/preset-env": "^7.20.2",
|
|
34
|
-
"@babel/preset-typescript": "^7.18.6",
|
|
35
33
|
"@graphql-codegen/cli": "^3.2.2",
|
|
36
34
|
"@graphql-codegen/client-preset": "^2.1.1",
|
|
37
35
|
"@react-native-community/eslint-config": "^3.1.0",
|
|
@@ -48,7 +46,6 @@
|
|
|
48
46
|
"@types/serve-static": "^1.15.0",
|
|
49
47
|
"@typescript-eslint/eslint-plugin": "^5.17.0",
|
|
50
48
|
"@typescript-eslint/parser": "^5.17.0",
|
|
51
|
-
"babel-jest": "^29.3.1",
|
|
52
49
|
"chokidar-cli": "^3.0.0",
|
|
53
50
|
"eslint": "^8.24.0",
|
|
54
51
|
"eslint-formatter-codeframe": "^7.32.1",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {CodegenConfig, generate} from '@graphql-codegen/cli'
|
|
2
|
+
|
|
3
|
+
import {SHOP_MINIS_ADMIN_API} from '../src/commands/config.js'
|
|
4
|
+
|
|
5
|
+
const config: CodegenConfig = {
|
|
6
|
+
schema: SHOP_MINIS_ADMIN_API,
|
|
7
|
+
documents: ['src/commands/**/*.ts'],
|
|
8
|
+
generates: {
|
|
9
|
+
'src/commands/types/autogenerated/shop-minis-admin-api/': {
|
|
10
|
+
preset: 'client-preset',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
hooks: {afterAllFileWrite: ['prettier --write']},
|
|
14
|
+
|
|
15
|
+
// Make sure the output is valid esm
|
|
16
|
+
emitLegacyCommonJSImports: false,
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async function generateTypes() {
|
|
20
|
+
await generate(config, true)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
generateTypes()
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"root": true,
|
|
3
|
-
"extends": [
|
|
4
|
-
"@react-native-community",
|
|
5
|
-
"plugin:@shopify/typescript",
|
|
6
|
-
"plugin:@shopify/react",
|
|
7
|
-
"plugin:@shopify/jest",
|
|
8
|
-
"plugin:@shopify/prettier"
|
|
9
|
-
],
|
|
10
|
-
"plugins": ["jest", "reanimated"],
|
|
3
|
+
"extends": ["plugin:@shopify/shop-minis/all"],
|
|
11
4
|
"settings": {
|
|
12
5
|
"react": {
|
|
13
6
|
"version": "detect"
|
|
@@ -18,115 +11,5 @@
|
|
|
18
11
|
"project": "./tsconfig.json",
|
|
19
12
|
"schema": "node_modules/@shopify/shop-minis-platform-sdk/src/api/minis.graphql",
|
|
20
13
|
"operations": "**/*.graphql"
|
|
21
|
-
}
|
|
22
|
-
"rules": {
|
|
23
|
-
"@babel/no-unused-expressions": 0,
|
|
24
|
-
"@typescript-eslint/no-unused-expressions": [
|
|
25
|
-
"error",
|
|
26
|
-
{
|
|
27
|
-
"allowShortCircuit": true
|
|
28
|
-
}
|
|
29
|
-
],
|
|
30
|
-
"line-comment-position": 0,
|
|
31
|
-
"no-implicit-coercion": 2,
|
|
32
|
-
"consistent-return": 0,
|
|
33
|
-
"no-console": 0,
|
|
34
|
-
"jsx-a11y/no-autofocus": 0,
|
|
35
|
-
"@shopify/strict-component-boundaries": 0,
|
|
36
|
-
"react/display-name": 0,
|
|
37
|
-
"spaced-comment": 0,
|
|
38
|
-
"no-warning-comments": "off",
|
|
39
|
-
"no-process-env": "off",
|
|
40
|
-
"lines-around-comment": "off",
|
|
41
|
-
"react/jsx-no-bind": "off",
|
|
42
|
-
"react/state-in-constructor": "off",
|
|
43
|
-
"react/jsx-no-constructed-context-values": "off",
|
|
44
|
-
"react/jsx-uses-react": "off",
|
|
45
|
-
"react/react-in-jsx-scope": "off",
|
|
46
|
-
"@shopify/typescript/prefer-pascal-case-enums": "off",
|
|
47
|
-
"@typescript-eslint/naming-convention": "off",
|
|
48
|
-
"@typescript-eslint/ban-ts-comment": "off",
|
|
49
|
-
"@typescript-eslint/consistent-indexed-object-style": "off",
|
|
50
|
-
"@typescript-eslint/member-ordering": "off",
|
|
51
|
-
"@shopify/react-no-multiple-render-methods": "off",
|
|
52
|
-
"@shopify/react-type-state": "off",
|
|
53
|
-
"@shopify/react-prefer-private-members": "off",
|
|
54
|
-
"react/no-unused-prop-types": "off",
|
|
55
|
-
"@shopify/jest/no-vague-titles": "off",
|
|
56
|
-
"@shopify/jsx-no-complex-expressions": "off",
|
|
57
|
-
"@shopify/jsx-no-hardcoded-content": "off",
|
|
58
|
-
"import/no-named-as-default": "off",
|
|
59
|
-
"import/named": "off",
|
|
60
|
-
"id-blacklist": [2, "blacklist", "whitelist"],
|
|
61
|
-
"@shopify/images-no-direct-imports": "off",
|
|
62
|
-
"@typescript-eslint/camelcase": "off",
|
|
63
|
-
"@typescript-eslint/ban-ts-ignore": "off",
|
|
64
|
-
"@typescript-eslint/ban-types": "off",
|
|
65
|
-
"@typescript-eslint/class-name-casing": "off",
|
|
66
|
-
"@typescript-eslint/array-type": "off",
|
|
67
|
-
"jest/no-standalone-expect": "off",
|
|
68
|
-
"jest/no-test-callback": "off",
|
|
69
|
-
"@typescript-eslint/no-namespace": "off",
|
|
70
|
-
"react-native/no-inline-styles": "off",
|
|
71
|
-
"jsx-a11y/accessible-emoji": "off",
|
|
72
|
-
"jest/valid-title": "off",
|
|
73
|
-
"@typescript-eslint/no-unused-vars": [
|
|
74
|
-
"error",
|
|
75
|
-
{
|
|
76
|
-
"argsIgnorePattern": "^_",
|
|
77
|
-
"varsIgnorePattern": "^_.{1,}"
|
|
78
|
-
}
|
|
79
|
-
],
|
|
80
|
-
"@typescript-eslint/no-shadow": "error",
|
|
81
|
-
"no-shadow": "off",
|
|
82
|
-
"max-len": [
|
|
83
|
-
"error",
|
|
84
|
-
{
|
|
85
|
-
"code": 200,
|
|
86
|
-
"ignoreUrls": true
|
|
87
|
-
}
|
|
88
|
-
],
|
|
89
|
-
"no-restricted-imports": [
|
|
90
|
-
"error",
|
|
91
|
-
{
|
|
92
|
-
"paths": [
|
|
93
|
-
{
|
|
94
|
-
"name": "react",
|
|
95
|
-
"importNames": ["default"],
|
|
96
|
-
"message": "JSX Transform is active. Please remove unnecessary default import of 'React' or use destructured named imports instead"
|
|
97
|
-
}
|
|
98
|
-
]
|
|
99
|
-
}
|
|
100
|
-
],
|
|
101
|
-
"reanimated/js-function-in-worklet": 2,
|
|
102
|
-
"react-hooks/exhaustive-deps": ["error"]
|
|
103
|
-
},
|
|
104
|
-
"overrides": [
|
|
105
|
-
{
|
|
106
|
-
"files": ["*.ts", "*.tsx"],
|
|
107
|
-
"rules": {
|
|
108
|
-
"@typescript-eslint/no-non-null-assertion": 0,
|
|
109
|
-
"shopify/typescript/prefer-pascal-case-enums": 0
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"files": ["**/*.graphql"],
|
|
114
|
-
"extends": "plugin:@graphql-eslint/operations-recommended",
|
|
115
|
-
"rules": {
|
|
116
|
-
"@graphql-eslint/no-deprecated": "warn",
|
|
117
|
-
|
|
118
|
-
// we sometimes declare fragments that get used in TypeScript, which causes this to error
|
|
119
|
-
"@graphql-eslint/no-unused-fragments": "off",
|
|
120
|
-
"@graphql-eslint/naming-convention": "off",
|
|
121
|
-
"@graphql-eslint/selection-set-depth": ["error", {"maxDepth": 15}]
|
|
122
|
-
}
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
"files": ["*.spec.*", "*.test.*"],
|
|
126
|
-
"rules": {
|
|
127
|
-
"require-await": 2,
|
|
128
|
-
"@typescript-eslint/no-floating-promises": 2
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
]
|
|
14
|
+
}
|
|
132
15
|
}
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"start": "shop-minis dev",
|
|
7
|
-
"presubmit": "
|
|
7
|
+
"presubmit": "yarn lint && yarn tsc",
|
|
8
|
+
"submit": "shop-minis submit",
|
|
9
|
+
"cancel-submission": "shop-minis cancel-submission",
|
|
10
|
+
"check-submission": "shop-minis check-submission",
|
|
8
11
|
"test": "jest",
|
|
9
12
|
"lint": "eslint .",
|
|
10
13
|
"postinstall": "patch-package",
|
|
@@ -15,19 +18,18 @@
|
|
|
15
18
|
"@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5",
|
|
16
19
|
"@babel/plugin-transform-react-jsx": "^7.20.7",
|
|
17
20
|
"@babel/runtime": "^7.12.5",
|
|
18
|
-
"@graphql-eslint/eslint-plugin": "^3.15.0",
|
|
19
21
|
"@react-native-community/blur": "4.3.0",
|
|
20
|
-
"@react-native-community/eslint-config": "^3.2.0",
|
|
21
22
|
"@react-navigation/native": "6.1.2",
|
|
22
23
|
"@react-navigation/native-stack": "6.9.8",
|
|
23
24
|
"@react-native-community/datetimepicker": "^6.7.5",
|
|
24
25
|
"@react-native-community/picker": "1.6.1",
|
|
25
|
-
"@shopify/eslint-plugin": "^
|
|
26
|
+
"@shopify/eslint-plugin-shop-minis": "^0.0.2",
|
|
26
27
|
"@shopify/react-graphql": "0.0.0-snapshot-20230110221326",
|
|
27
28
|
"@shopify/restyle": "^2.1.0",
|
|
28
29
|
"@shopify/shop-minis-cli": "__SHOP_MINIS_CLI_VERSION__",
|
|
29
30
|
"@shopify/shop-minis-platform-sdk": "^0.1.11",
|
|
30
31
|
"@types/color": "^3.0.3",
|
|
32
|
+
"@types/jest": "^29.2.6",
|
|
31
33
|
"@types/react": "^17.0.39",
|
|
32
34
|
"@types/react-native": "^0.68.1",
|
|
33
35
|
"apollo-link-timeout": "^4.0.0",
|
|
@@ -35,11 +37,9 @@
|
|
|
35
37
|
"babel-plugin-import-graphql": "^2.8.1",
|
|
36
38
|
"color": "^4.2.3",
|
|
37
39
|
"eslint": "^8.32.0",
|
|
38
|
-
"eslint-plugin-react-native": "^4.0.0",
|
|
39
|
-
"eslint-plugin-reanimated": "^2.0.0",
|
|
40
40
|
"graphql": "^15.0.0",
|
|
41
41
|
"intl": "^1.2.5",
|
|
42
|
-
"jest": "^
|
|
42
|
+
"jest": "^29.3.1",
|
|
43
43
|
"jsonschema": "^1.4.1",
|
|
44
44
|
"metro-react-native-babel-preset": "^0.67.0",
|
|
45
45
|
"patch-package": "^6.4.7",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"react-native": "0.68.5",
|
|
50
50
|
"react-native-fast-image": "8.6.3",
|
|
51
51
|
"react-native-gesture-handler": "2.6.1",
|
|
52
|
+
"react-native-linear-gradient": "2.6.2",
|
|
52
53
|
"react-native-localize": "2.2.4",
|
|
53
54
|
"react-native-progress": "5.0.0",
|
|
54
55
|
"react-native-reanimated": "2.13.0",
|
|
@@ -302,11 +302,12 @@ const ExampleUseBottomSheet = ({
|
|
|
302
302
|
ref?.scrollTo({y: 0, animated: false})
|
|
303
303
|
}, [])
|
|
304
304
|
|
|
305
|
-
const {BottomSheet, scrollRef, onScroll, dismissBottomSheet} =
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
305
|
+
const {BottomSheet, scrollRef, onScroll, dismissBottomSheet} = useBottomSheet<
|
|
306
|
+
typeof Animated.ScrollView
|
|
307
|
+
>({
|
|
308
|
+
onDismiss,
|
|
309
|
+
scrollToTop,
|
|
310
|
+
})
|
|
310
311
|
|
|
311
312
|
return (
|
|
312
313
|
<BottomSheet>
|
|
@@ -17,7 +17,7 @@ export const QuizScreen = () => {
|
|
|
17
17
|
<NavigationContainer independent>
|
|
18
18
|
<Stack.Navigator>
|
|
19
19
|
<Stack.Screen
|
|
20
|
-
name="
|
|
20
|
+
name="QuizScreen.QuizSlide"
|
|
21
21
|
component={QuizSlideScreen}
|
|
22
22
|
options={{
|
|
23
23
|
title: '__MINI_APP_HANDLE_PASCAL_CASE__ Quiz',
|
|
@@ -28,7 +28,7 @@ export const QuizScreen = () => {
|
|
|
28
28
|
}}
|
|
29
29
|
/>
|
|
30
30
|
<Stack.Screen
|
|
31
|
-
name="
|
|
31
|
+
name="QuizScreen.QuizResult"
|
|
32
32
|
component={QuizResultScreen}
|
|
33
33
|
options={{headerShown: false}}
|
|
34
34
|
/>
|
|
@@ -78,11 +78,11 @@ export const QuizSlideScreen = () => {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
if (slideData?.props.nextSlideId === 'results') {
|
|
81
|
-
navigation.replace('
|
|
81
|
+
navigation.replace('QuizScreen.QuizResult')
|
|
82
82
|
return
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
navigation.push('
|
|
85
|
+
navigation.push('QuizScreen.QuizSlide', {
|
|
86
86
|
slideIndex: determineNextSlideIndex(),
|
|
87
87
|
})
|
|
88
88
|
}, [
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
export declare function assertDependenciesUpToDate(): Promise<void>;
|
|
3
|
-
export declare function assertApiKeyIsSet(): void;
|
|
4
|
-
export declare function assertNoActiveSubmissions(): Promise<void>;
|
|
5
|
-
export declare function assertManifestValid(): void;
|
|
6
|
-
export declare function loadCommand(parentProgram: Command): Promise<void>;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.loadCommand = exports.assertManifestValid = exports.assertNoActiveSubmissions = exports.assertApiKeyIsSet = exports.assertDependenciesUpToDate = void 0;
|
|
30
|
-
const commander_1 = require("commander");
|
|
31
|
-
const semver_1 = __importDefault(require("semver"));
|
|
32
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
33
|
-
const dotenv = __importStar(require("dotenv"));
|
|
34
|
-
const exec_async_child_process_1 = require("../utils/exec-async-child-process");
|
|
35
|
-
const versions_1 = require("./utils/versions");
|
|
36
|
-
const manifest_1 = require("./utils/manifest");
|
|
37
|
-
async function assertDependenciesUpToDate() {
|
|
38
|
-
const { stdout: latestCliVersion } = await (0, exec_async_child_process_1.execAsync)({
|
|
39
|
-
cmd: 'npm show @shopify/shop-minis-cli version',
|
|
40
|
-
});
|
|
41
|
-
const installedCliVersion = (0, versions_1.getInstalledPackageVersion)('@shopify/shop-minis-cli') ?? '0.0.0';
|
|
42
|
-
const isUpToDate = semver_1.default.eq(installedCliVersion, latestCliVersion[0]);
|
|
43
|
-
if (!isUpToDate) {
|
|
44
|
-
console.warn(chalk_1.default.red('Check failed: Shop Minis CLI has to be updated.'));
|
|
45
|
-
console.log(`Installed version: ${installedCliVersion} (latest: ${latestCliVersion})`);
|
|
46
|
-
console.log(`Use ${chalk_1.default.blue.underline.bold('npm update @shopify/shop-minis-cli@latest')} to update.`);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.assertDependenciesUpToDate = assertDependenciesUpToDate;
|
|
51
|
-
function assertApiKeyIsSet() {
|
|
52
|
-
dotenv.config();
|
|
53
|
-
const apiKey = process.env.SHOP_MINIS_API_KEY;
|
|
54
|
-
if (!apiKey) {
|
|
55
|
-
console.warn(chalk_1.default.red('Check failed: Shop Minis API key is not set.'));
|
|
56
|
-
console.log(`To continue, set the environment variable in .env ${chalk_1.default.blue.underline.bold('SHOP_MINIS_API_KEY=<your-shop-minis-api-key>')}`);
|
|
57
|
-
process.exit(1);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.assertApiKeyIsSet = assertApiKeyIsSet;
|
|
61
|
-
async function assertNoActiveSubmissions() {
|
|
62
|
-
// TODO: check if there are any active submissions
|
|
63
|
-
}
|
|
64
|
-
exports.assertNoActiveSubmissions = assertNoActiveSubmissions;
|
|
65
|
-
function assertManifestValid() {
|
|
66
|
-
const { valid, errors } = (0, manifest_1.validateManifest)();
|
|
67
|
-
if (!valid) {
|
|
68
|
-
console.warn(chalk_1.default.red(`Manifest invalid: ${errors}`));
|
|
69
|
-
process.exit(1);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
exports.assertManifestValid = assertManifestValid;
|
|
73
|
-
async function loadCommand(parentProgram) {
|
|
74
|
-
const command = new commander_1.Command()
|
|
75
|
-
.name('check')
|
|
76
|
-
.version('2.0.0')
|
|
77
|
-
.description('Check your Shop Mini configuration')
|
|
78
|
-
.action(async () => {
|
|
79
|
-
assertManifestValid();
|
|
80
|
-
assertApiKeyIsSet();
|
|
81
|
-
await assertDependenciesUpToDate();
|
|
82
|
-
await assertNoActiveSubmissions();
|
|
83
|
-
});
|
|
84
|
-
parentProgram.addCommand(command);
|
|
85
|
-
}
|
|
86
|
-
exports.loadCommand = loadCommand;
|
|
87
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAiC;AACjC,oDAA2B;AAC3B,kDAAyB;AACzB,+CAAgC;AAEhC,gFAA2D;AAE3D,+CAA2D;AAC3D,+CAAiD;AAE1C,KAAK,UAAU,0BAA0B;IAC9C,MAAM,EAAC,MAAM,EAAE,gBAAgB,EAAC,GAAG,MAAM,IAAA,oCAAS,EAAC;QACjD,GAAG,EAAE,0CAA0C;KAChD,CAAC,CAAA;IACF,MAAM,mBAAmB,GACvB,IAAA,qCAA0B,EAAC,yBAAyB,CAAC,IAAI,OAAO,CAAA;IAElE,MAAM,UAAU,GAAG,gBAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IAEtE,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAA;QAC1E,OAAO,CAAC,GAAG,CACT,sBAAsB,mBAAmB,aAAa,gBAAgB,GAAG,CAC1E,CAAA;QACD,OAAO,CAAC,GAAG,CACT,OAAO,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9B,2CAA2C,CAC5C,aAAa,CACf,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AArBD,gEAqBC;AAED,SAAgB,iBAAiB;IAC/B,MAAM,CAAC,MAAM,EAAE,CAAA;IACf,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;IAE7C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAA;QACvE,OAAO,CAAC,GAAG,CACT,qDAAqD,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAC5E,8CAA8C,CAC/C,EAAE,CACJ,CAAA;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AAbD,8CAaC;AAEM,KAAK,UAAU,yBAAyB;IAC7C,kDAAkD;AACpD,CAAC;AAFD,8DAEC;AAED,SAAgB,mBAAmB;IACjC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,IAAA,2BAAgB,GAAE,CAAA;IAE1C,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAA;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChB;AACH,CAAC;AAPD,kDAOC;AAEM,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;SAC1B,IAAI,CAAC,OAAO,CAAC;SACb,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,mBAAmB,EAAE,CAAA;QACrB,iBAAiB,EAAE,CAAA;QACnB,MAAM,0BAA0B,EAAE,CAAA;QAClC,MAAM,yBAAyB,EAAE,CAAA;IACnC,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAbD,kCAaC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.validateManifest = void 0;
|
|
7
|
-
const jsonschema_1 = require("jsonschema");
|
|
8
|
-
const minis_manifest_1 = require("../../dev/utils/minis-manifest");
|
|
9
|
-
const contextual_image_schema_json_1 = __importDefault(require("./schemas/contextual-image.schema.json"));
|
|
10
|
-
const contextual_object_schema_json_1 = __importDefault(require("./schemas/contextual-object.schema.json"));
|
|
11
|
-
const manifest_schema_json_1 = __importDefault(require("./schemas/manifest.schema.json"));
|
|
12
|
-
const visibility_schema_json_1 = __importDefault(require("./schemas/visibility.schema.json"));
|
|
13
|
-
function validateManifest() {
|
|
14
|
-
const manifest = (0, minis_manifest_1.getMiniManifest)();
|
|
15
|
-
const validator = new jsonschema_1.Validator();
|
|
16
|
-
validator.addSchema(contextual_image_schema_json_1.default, '/contextual-image.schema.json');
|
|
17
|
-
validator.addSchema(contextual_object_schema_json_1.default, '/contextual-object.schema.json');
|
|
18
|
-
validator.addSchema(visibility_schema_json_1.default, '/visibility.schema.json');
|
|
19
|
-
const result = validator.validate(manifest, manifest_schema_json_1.default);
|
|
20
|
-
return {
|
|
21
|
-
valid: result.valid,
|
|
22
|
-
errors: result.errors.map(validationError => validationError.stack),
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
exports.validateManifest = validateManifest;
|
|
26
|
-
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../../../src/commands/check/utils/manifest.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAoC;AAEpC,mEAA8D;AAE9D,0GAA0E;AAC1E,4GAA4E;AAC5E,0FAA2D;AAC3D,8FAA+D;AAE/D,SAAgB,gBAAgB;IAC9B,MAAM,QAAQ,GAAG,IAAA,gCAAe,GAAE,CAAA;IAClC,MAAM,SAAS,GAAG,IAAI,sBAAS,EAAE,CAAA;IAEjC,SAAS,CAAC,SAAS,CAAC,sCAAqB,EAAE,+BAA+B,CAAC,CAAA;IAC3E,SAAS,CAAC,SAAS,CAAC,uCAAsB,EAAE,gCAAgC,CAAC,CAAA;IAC7E,SAAS,CAAC,SAAS,CAAC,gCAAgB,EAAE,yBAAyB,CAAC,CAAA;IAEhE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,8BAAc,CAAC,CAAA;IAE3D,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;KACpE,CAAA;AACH,CAAC;AAdD,4CAcC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$id": "/contextual-image.schema.json",
|
|
3
|
-
"$schema": "http://json-schema.org/draft-07/schema",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"title": "Contextual image entry-point",
|
|
6
|
-
"required": ["default_value"],
|
|
7
|
-
"properties": {
|
|
8
|
-
"namespace": {
|
|
9
|
-
"type": "string"
|
|
10
|
-
},
|
|
11
|
-
"key": {
|
|
12
|
-
"type": "string"
|
|
13
|
-
},
|
|
14
|
-
"default_value": {
|
|
15
|
-
"type": "array",
|
|
16
|
-
"items": {
|
|
17
|
-
"type": "string"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|