@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.
Files changed (161) hide show
  1. package/.eslintrc.cjs +84 -0
  2. package/.vscode/extensions.json +3 -0
  3. package/.vscode/settings.json +8 -0
  4. package/.vscode/shop-minis-cli.code-workspace +8 -0
  5. package/build/commands/cancel-submission/index.d.ts +2 -0
  6. package/build/commands/cancel-submission/index.js +22 -0
  7. package/build/commands/cancel-submission/index.js.map +1 -0
  8. package/build/commands/cancel-submission/types.d.ts +3 -0
  9. package/build/commands/cancel-submission/types.js +2 -0
  10. package/build/commands/cancel-submission/types.js.map +1 -0
  11. package/build/commands/check-submission/index.d.ts +2 -0
  12. package/build/commands/check-submission/index.js +22 -0
  13. package/build/commands/check-submission/index.js.map +1 -0
  14. package/build/commands/check-submission/types.d.ts +3 -0
  15. package/build/commands/check-submission/types.js +2 -0
  16. package/build/commands/check-submission/types.js.map +1 -0
  17. package/build/commands/config.d.ts +10 -0
  18. package/build/commands/config.js +34 -0
  19. package/build/commands/config.js.map +1 -0
  20. package/build/commands/create-mini/index.js +38 -40
  21. package/build/commands/create-mini/index.js.map +1 -1
  22. package/build/commands/create-mini/utils/template-app.js +20 -25
  23. package/build/commands/create-mini/utils/template-app.js.map +1 -1
  24. package/build/commands/dev/index.js +13 -20
  25. package/build/commands/dev/index.js.map +1 -1
  26. package/build/commands/dev/utils/android.js +34 -48
  27. package/build/commands/dev/utils/android.js.map +1 -1
  28. package/build/commands/dev/utils/binaries.d.ts +1 -22
  29. package/build/commands/dev/utils/binaries.js +19 -98
  30. package/build/commands/dev/utils/binaries.js.map +1 -1
  31. package/build/commands/dev/utils/deeplink.d.ts +1 -1
  32. package/build/commands/dev/utils/deeplink.js +2 -7
  33. package/build/commands/dev/utils/deeplink.js.map +1 -1
  34. package/build/commands/dev/utils/interactive-terminal.d.ts +1 -1
  35. package/build/commands/dev/utils/interactive-terminal.js +46 -52
  36. package/build/commands/dev/utils/interactive-terminal.js.map +1 -1
  37. package/build/commands/dev/utils/metro/metro-config.js +19 -20
  38. package/build/commands/dev/utils/metro/metro-config.js.map +1 -1
  39. package/build/commands/dev/utils/metro/metro-reporter.d.ts +2 -3
  40. package/build/commands/dev/utils/metro/metro-reporter.js +7 -12
  41. package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -1
  42. package/build/commands/dev/utils/metro/metro-server-middleware.js +5 -12
  43. package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -1
  44. package/build/commands/dev/utils/metro/metro-server.d.ts +1 -1
  45. package/build/commands/dev/utils/metro/metro-server.js +6 -13
  46. package/build/commands/dev/utils/metro/metro-server.js.map +1 -1
  47. package/build/commands/dev/utils/network.d.ts +20 -0
  48. package/build/commands/dev/utils/network.js +62 -0
  49. package/build/commands/dev/utils/network.js.map +1 -0
  50. package/build/commands/dev/utils/qr-code.js +3 -10
  51. package/build/commands/dev/utils/qr-code.js.map +1 -1
  52. package/build/commands/dev/utils/simulator.js +25 -35
  53. package/build/commands/dev/utils/simulator.js.map +1 -1
  54. package/build/commands/dev/utils/types.d.ts +1 -0
  55. package/build/commands/dev/utils/types.js +2 -0
  56. package/build/commands/dev/utils/types.js.map +1 -0
  57. package/build/commands/dev/utils/with-retries.js +1 -5
  58. package/build/commands/dev/utils/with-retries.js.map +1 -1
  59. package/build/commands/generate-graphql-types/index.js +25 -26
  60. package/build/commands/generate-graphql-types/index.js.map +1 -1
  61. package/build/commands/schemas/contextual-image.schema.d.ts +22 -0
  62. package/build/commands/schemas/contextual-image.schema.js +23 -0
  63. package/build/commands/schemas/contextual-image.schema.js.map +1 -0
  64. package/build/commands/schemas/contextual-object.schema.d.ts +18 -0
  65. package/build/commands/schemas/contextual-object.schema.js +19 -0
  66. package/build/commands/schemas/contextual-object.schema.js.map +1 -0
  67. package/build/commands/schemas/manifest.schema.d.ts +181 -0
  68. package/build/commands/schemas/manifest.schema.js +230 -0
  69. package/build/commands/schemas/manifest.schema.js.map +1 -0
  70. package/build/commands/schemas/visibility.schema.d.ts +18 -0
  71. package/build/commands/schemas/visibility.schema.js +19 -0
  72. package/build/commands/schemas/visibility.schema.js.map +1 -0
  73. package/build/commands/submit/config.d.ts +9 -0
  74. package/build/commands/submit/config.js +18 -0
  75. package/build/commands/submit/config.js.map +1 -0
  76. package/build/commands/submit/errors.d.ts +19 -0
  77. package/build/commands/submit/errors.js +87 -0
  78. package/build/commands/submit/errors.js.map +1 -0
  79. package/build/commands/submit/gcs.d.ts +6 -0
  80. package/build/commands/submit/gcs.js +10 -0
  81. package/build/commands/submit/gcs.js.map +1 -0
  82. package/build/commands/submit/graphql.d.ts +73 -0
  83. package/build/commands/submit/graphql.js +100 -0
  84. package/build/commands/submit/graphql.js.map +1 -0
  85. package/build/commands/submit/index.d.ts +2 -0
  86. package/build/commands/submit/index.js +21 -0
  87. package/build/commands/submit/index.js.map +1 -0
  88. package/build/commands/submit/submit.d.ts +4 -0
  89. package/build/commands/submit/submit.js +171 -0
  90. package/build/commands/submit/submit.js.map +1 -0
  91. package/build/commands/submit/tasks.d.ts +39 -0
  92. package/build/commands/submit/tasks.js +167 -0
  93. package/build/commands/submit/tasks.js.map +1 -0
  94. package/build/commands/submit/types.d.ts +14 -0
  95. package/build/commands/submit/types.js +2 -0
  96. package/build/commands/submit/types.js.map +1 -0
  97. package/build/commands/submit/validation.d.ts +2 -0
  98. package/build/commands/submit/validation.js +14 -0
  99. package/build/commands/submit/validation.js.map +1 -0
  100. package/build/commands/types/autogenerated/shop-minis-admin-api/fragment-masking.d.ts +13 -0
  101. package/build/commands/types/autogenerated/shop-minis-admin-api/fragment-masking.js +7 -0
  102. package/build/commands/types/autogenerated/shop-minis-admin-api/fragment-masking.js.map +1 -0
  103. package/build/commands/types/autogenerated/shop-minis-admin-api/gql.d.ts +54 -0
  104. package/build/commands/types/autogenerated/shop-minis-admin-api/gql.js +21 -0
  105. package/build/commands/types/autogenerated/shop-minis-admin-api/gql.js.map +1 -0
  106. package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.d.ts +613 -0
  107. package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.js +427 -0
  108. package/build/commands/types/autogenerated/shop-minis-admin-api/graphql.js.map +1 -0
  109. package/build/commands/types/autogenerated/shop-minis-admin-api/index.d.ts +2 -0
  110. package/build/commands/types/autogenerated/shop-minis-admin-api/index.js +3 -0
  111. package/build/commands/types/autogenerated/shop-minis-admin-api/index.js.map +1 -0
  112. package/build/commands/types/helpers.d.ts +1 -0
  113. package/build/commands/types/helpers.js +2 -0
  114. package/build/commands/types/helpers.js.map +1 -0
  115. package/build/commands/utils/archive.d.ts +30 -0
  116. package/build/commands/utils/archive.js +38 -0
  117. package/build/commands/utils/archive.js.map +1 -0
  118. package/build/commands/utils/exec-async-child-process.d.ts +1 -1
  119. package/build/commands/utils/exec-async-child-process.js +6 -13
  120. package/build/commands/utils/exec-async-child-process.js.map +1 -1
  121. package/build/commands/utils/file.d.ts +1 -0
  122. package/build/commands/utils/file.js +7 -0
  123. package/build/commands/utils/file.js.map +1 -0
  124. package/build/commands/{check/utils/manifest.d.ts → utils/minis-manifest.d.ts} +1 -0
  125. package/build/commands/utils/minis-manifest.js +42 -0
  126. package/build/commands/utils/minis-manifest.js.map +1 -0
  127. package/build/commands/utils/wrap-with-loading-indicator.js +3 -10
  128. package/build/commands/utils/wrap-with-loading-indicator.js.map +1 -1
  129. package/build/dev-panel/middleware.js +5 -10
  130. package/build/dev-panel/middleware.js.map +1 -1
  131. package/build/index.js +15 -13
  132. package/build/index.js.map +1 -1
  133. package/jest.config.ts +11 -0
  134. package/package.json +4 -7
  135. package/scripts/graphql-codegen.ts +23 -0
  136. package/templates/__template_common/.eslintrc.json +2 -119
  137. package/templates/__template_common/gitignore +1 -0
  138. package/templates/__template_common/package.json +8 -7
  139. package/templates/__template_common/src/manifest.json +1 -0
  140. package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
  141. package/templates/__template_hello_world/src/screens/QuizScreen.tsx +2 -2
  142. package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +2 -2
  143. package/build/commands/check/index.d.ts +0 -6
  144. package/build/commands/check/index.js +0 -87
  145. package/build/commands/check/index.js.map +0 -1
  146. package/build/commands/check/utils/manifest.js +0 -26
  147. package/build/commands/check/utils/manifest.js.map +0 -1
  148. package/build/commands/check/utils/schemas/contextual-image.schema.json +0 -21
  149. package/build/commands/check/utils/schemas/contextual-object.schema.json +0 -17
  150. package/build/commands/check/utils/schemas/manifest.schema.json +0 -226
  151. package/build/commands/check/utils/schemas/visibility.schema.json +0 -17
  152. package/build/commands/check/utils/versions.d.ts +0 -1
  153. package/build/commands/check/utils/versions.js +0 -14
  154. package/build/commands/check/utils/versions.js.map +0 -1
  155. package/build/commands/dev/utils/binaries.test.d.ts +0 -1
  156. package/build/commands/dev/utils/binaries.test.js +0 -275
  157. package/build/commands/dev/utils/binaries.test.js.map +0 -1
  158. package/build/commands/dev/utils/minis-manifest.d.ts +0 -1
  159. package/build/commands/dev/utils/minis-manifest.js +0 -24
  160. package/build/commands/dev/utils/minis-manifest.js.map +0 -1
  161. 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
- "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.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":";;;;;;AAAA,8CAA8C;AASvC,KAAK,UAAU,wBAAwB,CAC5C,OAAwC,EACxC,EAAC,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAiB;IAE9E,MAAM,gBAAgB,GAAG,IAAA,aAAG,EAAC,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;AAhBD,4DAgBC"}
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
- "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.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":";;;;;;AAAA,gEAAgC;AAEhC,MAAM,eAAe,GAAG,SAAS,CAAA;AAEpB,QAAA,kBAAkB,GAAG,IAAA,sBAAK,EAAC,eAAe,CAAC,CAAA;AAC3C,QAAA,kBAAkB,GAAG,iCAAiC,CAAA"}
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
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const commander_1 = require("commander");
5
- const create_mini_1 = require("./commands/create-mini");
6
- const dev_1 = require("./commands/dev");
7
- const check_1 = require("./commands/check");
8
- const generate_graphql_types_1 = require("./commands/generate-graphql-types");
9
- const program = new commander_1.Command();
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
- (0, create_mini_1.loadCommand)(program);
12
- await (0, dev_1.loadCommand)(program);
13
- (0, check_1.loadCommand)(program);
14
- (0, generate_graphql_types_1.loadCommand)(program);
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 creating a new Shop Mini')
20
+ .description('CLI for Shop Minis development')
19
21
  .version('2.0.0');
20
22
  loadCommands()
21
23
  .then(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAiC;AAEjC,wDAA2E;AAC3E,wCAA4D;AAC5D,4CAAgE;AAChE,8EAAgG;AAEhG,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAE7B,KAAK,UAAU,YAAY;IACzB,IAAA,yBAAqB,EAAC,OAAO,CAAC,CAAA;IAC9B,MAAM,IAAA,iBAAc,EAAC,OAAO,CAAC,CAAA;IAC7B,IAAA,mBAAgB,EAAC,OAAO,CAAC,CAAA;IACzB,IAAA,oCAA+B,EAAC,OAAO,CAAC,CAAA;AAC1C,CAAC;AAED,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,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"}
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.38",
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
  }
@@ -1,3 +1,4 @@
1
1
  node_modules
2
2
  .minis-cache
3
3
  *.tsbuildinfo
4
+ .env
@@ -4,7 +4,10 @@
4
4
  "private": true,
5
5
  "scripts": {
6
6
  "start": "shop-minis dev",
7
- "presubmit": "shop-minis check && yarn lint",
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": "^42.0.3",
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": "^26.6.3",
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",
@@ -4,6 +4,7 @@
4
4
  "icon_url": "https://cdn.shopify.com/shop-assets/static_uploads/mini_apps/mini-placeholder-icon.png",
5
5
  "shopify_app_ids": [],
6
6
  "description": "Mini App Description",
7
+ "partner_name": "Shopify Partner Name",
7
8
  "entry_points": [
8
9
  {
9
10
  "type": "ACTION_BUTTON",
@@ -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
- useBottomSheet<Animated.ScrollView>({
307
- onDismiss,
308
- scrollToTop,
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="__MINI_APP_HANDLE_PASCAL_CASE__.QuizSlide"
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="__MINI_APP_HANDLE_PASCAL_CASE__.QuizResult"
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('__MINI_APP_HANDLE_PASCAL_CASE__.QuizResult')
81
+ navigation.replace('QuizScreen.QuizResult')
82
82
  return
83
83
  }
84
84
 
85
- navigation.push('__MINI_APP_HANDLE_PASCAL_CASE__.QuizSlide', {
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
- }