@shopify/shop-minis-cli 0.0.37 → 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 (173) 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/utils/minis-manifest.d.ts +5 -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 +11 -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 +9 -7
  139. package/templates/__template_common/src/manifest.json +1 -0
  140. package/templates/__template_hello_world/src/components/ComponentLink.ts +6 -2
  141. package/templates/__template_hello_world/src/components/quiz/ImageCarouselSlide.tsx +54 -0
  142. package/templates/__template_hello_world/src/components/quiz/MultipleChoiceSlide.tsx +77 -0
  143. package/templates/__template_hello_world/src/components/quiz/QuizProvider.tsx +64 -0
  144. package/templates/__template_hello_world/src/components/quiz/QuizSlide.tsx +76 -0
  145. package/templates/__template_hello_world/src/components/quiz/QuizSlideCommander.tsx +35 -0
  146. package/templates/__template_hello_world/src/components/quiz/TextFieldSlide.tsx +47 -0
  147. package/templates/__template_hello_world/src/components/quiz/TextSlide.tsx +6 -0
  148. package/templates/__template_hello_world/src/components/quiz/types.ts +72 -0
  149. package/templates/__template_hello_world/src/hooks/useQuizData.ts +26 -0
  150. package/templates/__template_hello_world/src/hooks/useQuizState.ts +27 -0
  151. package/templates/__template_hello_world/src/routes.tsx +9 -3
  152. package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
  153. package/templates/__template_hello_world/src/screens/{ImageCarouselScreen.tsx → ImageMultipleChoiceScreen.tsx} +4 -6
  154. package/templates/__template_hello_world/src/screens/InputScreen.tsx +42 -58
  155. package/templates/__template_hello_world/src/screens/QuizResultScreen.tsx +82 -0
  156. package/templates/__template_hello_world/src/screens/QuizScreen.tsx +40 -0
  157. package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +150 -0
  158. package/templates/__template_hello_world/src/types.ts +2 -1
  159. package/templates/__template_hello_world/src/utils/mockQuizData.ts +313 -0
  160. package/templates/__template_hello_world/src/utils/quizUtils.ts +75 -0
  161. package/build/commands/check/index.d.ts +0 -5
  162. package/build/commands/check/index.js +0 -77
  163. package/build/commands/check/index.js.map +0 -1
  164. package/build/commands/check/utils/versions.d.ts +0 -1
  165. package/build/commands/check/utils/versions.js +0 -14
  166. package/build/commands/check/utils/versions.js.map +0 -1
  167. package/build/commands/dev/utils/binaries.test.d.ts +0 -1
  168. package/build/commands/dev/utils/binaries.test.js +0 -275
  169. package/build/commands/dev/utils/binaries.test.js.map +0 -1
  170. package/build/commands/dev/utils/minis-manifest.d.ts +0 -1
  171. package/build/commands/dev/utils/minis-manifest.js +0 -24
  172. package/build/commands/dev/utils/minis-manifest.js.map +0 -1
  173. package/templates/__template_hello_world/src/utils/getFlagEmoji.spec.tsx +0 -19
package/.eslintrc.cjs ADDED
@@ -0,0 +1,84 @@
1
+ module.exports = {
2
+ root: true,
3
+ extends: [
4
+ '@react-native-community',
5
+ 'plugin:@shopify/typescript',
6
+ 'plugin:@shopify/jest',
7
+ 'plugin:@shopify/prettier',
8
+ ],
9
+ plugins: ['jest'],
10
+ parserOptions: {
11
+ ecmaVersion: 6,
12
+ project: './tsconfig.eslint.json',
13
+ },
14
+ rules: {
15
+ '@babel/no-unused-expressions': 0,
16
+ '@typescript-eslint/no-unused-expressions': [
17
+ 'error',
18
+ {
19
+ allowShortCircuit: true,
20
+ },
21
+ ],
22
+ 'line-comment-position': 0,
23
+ 'no-implicit-coercion': 2,
24
+ 'consistent-return': 0,
25
+ 'no-console': 0,
26
+ 'spaced-comment': 0,
27
+ 'no-warning-comments': 'off',
28
+ 'no-process-env': 'off',
29
+ 'lines-around-comment': 'off',
30
+ '@shopify/typescript/prefer-pascal-case-enums': 'off',
31
+ '@typescript-eslint/naming-convention': 'off',
32
+ '@typescript-eslint/ban-ts-comment': 'off',
33
+ '@typescript-eslint/consistent-indexed-object-style': 'off',
34
+ '@typescript-eslint/member-ordering': 'off',
35
+ '@shopify/jest/no-vague-titles': 'off',
36
+ 'import/no-named-as-default': 'off',
37
+ 'import/named': 'off',
38
+ 'id-blacklist': [2, 'blacklist', 'whitelist'],
39
+ '@typescript-eslint/camelcase': 'off',
40
+ '@typescript-eslint/ban-ts-ignore': 'off',
41
+ '@typescript-eslint/ban-types': 'off',
42
+ '@typescript-eslint/class-name-casing': 'off',
43
+ '@typescript-eslint/array-type': 'off',
44
+ 'jest/no-standalone-expect': 'off',
45
+ 'jest/no-test-callback': 'off',
46
+ '@typescript-eslint/no-namespace': 'off',
47
+ 'jest/valid-title': 'off',
48
+ '@typescript-eslint/no-unused-vars': [
49
+ 'error',
50
+ {
51
+ argsIgnorePattern: '^_',
52
+ varsIgnorePattern: '^_.{1,}',
53
+ },
54
+ ],
55
+ '@typescript-eslint/no-shadow': 'error',
56
+ 'no-shadow': 'off',
57
+ 'max-len': [
58
+ 'error',
59
+ {
60
+ code: 200,
61
+ ignoreUrls: true,
62
+ },
63
+ ],
64
+
65
+ // Type files generated by codegen have eslint disabled with a comment
66
+ 'eslint-comments/no-unlimited-disable': 'off',
67
+ },
68
+ overrides: [
69
+ {
70
+ files: ['*.ts'],
71
+ rules: {
72
+ '@typescript-eslint/no-non-null-assertion': 0,
73
+ 'shopify/typescript/prefer-pascal-case-enums': 0,
74
+ },
75
+ },
76
+ {
77
+ files: ['*.spec.*', '*.test.*'],
78
+ rules: {
79
+ 'require-await': 2,
80
+ '@typescript-eslint/no-floating-promises': 2,
81
+ },
82
+ },
83
+ ],
84
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
3
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "editor.formatOnSave": true,
3
+ "files.trimTrailingWhitespace": false,
4
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
5
+ "editor.codeActionsOnSave": {
6
+ "source.fixAll.eslint": true
7
+ }
8
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": ".."
5
+ }
6
+ ],
7
+ "settings": {}
8
+ }
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function loadCommand(parentProgram: Command): void;
@@ -0,0 +1,22 @@
1
+ import { Command } from 'commander';
2
+ import { outputDebug } from '@shopify/cli-kit/node/output';
3
+ import { AbortError, handler as handleError } from '@shopify/cli-kit/node/error';
4
+ import { getMiniManifest } from '../utils/minis-manifest.js';
5
+ import { EMAILS } from '../config.js';
6
+ export function loadCommand(parentProgram) {
7
+ const command = new Command()
8
+ .name('cancel-submission')
9
+ .description('cancel a pending submission')
10
+ .option('--verbose', 'print debugging messages') // compatible with cli-kit
11
+ .action(async (args) => {
12
+ const miniHandle = getMiniManifest().handle;
13
+ outputDebug(`Cancel submission args ${JSON.stringify(args)}`);
14
+ outputDebug(`Cancelling submission for mini "${miniHandle}" at ${process.cwd()}`);
15
+ handleError(new AbortError(`Cancelling a submission is not available yet`, 'The feature is a work-in-progress, and should be available soon.', [
16
+ `Contact us in Slack, or email ${EMAILS.CONTACT_US} to cancel the submission.`,
17
+ ]));
18
+ process.exit(1);
19
+ });
20
+ parentProgram.addCommand(command);
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/cancel-submission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,UAAU,EAAE,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAE9E,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AAInC,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,mBAAmB,CAAC;SACzB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,0BAA0B;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAiC,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,MAAM,CAAA;QAE3C,WAAW,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC7D,WAAW,CACT,mCAAmC,UAAU,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CACrE,CAAA;QAED,WAAW,CACT,IAAI,UAAU,CACZ,8CAA8C,EAC9C,kEAAkE,EAClE;YACE,iCAAiC,MAAM,CAAC,UAAU,4BAA4B;SAC/E,CACF,CACF,CAAA;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface CancelSubmissionCommandArgs {
2
+ verbose?: boolean;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/cancel-submission/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function loadCommand(parentProgram: Command): void;
@@ -0,0 +1,22 @@
1
+ import { Command } from 'commander';
2
+ import { outputDebug } from '@shopify/cli-kit/node/output';
3
+ import { AbortError, handler as handleError } from '@shopify/cli-kit/node/error';
4
+ import { getMiniManifest } from '../utils/minis-manifest.js';
5
+ import { EMAILS } from '../config.js';
6
+ export function loadCommand(parentProgram) {
7
+ const command = new Command()
8
+ .name('check-submission')
9
+ .description('check submissions')
10
+ .option('--verbose', 'print debugging messages') // compatible with cli-kit
11
+ .action(async (args) => {
12
+ const miniHandle = getMiniManifest().handle;
13
+ outputDebug(`Check submission args ${JSON.stringify(args)}`);
14
+ outputDebug(`Checking submissions for mini "${miniHandle}" at ${process.cwd()}`);
15
+ handleError(new AbortError(`Checking on a submission is not available yet`, 'The feature is a work-in-progress, and should be available soon.', [
16
+ `Contact us in Slack, or email ${EMAILS.CONTACT_US} to check the status on the latest submission.`,
17
+ ]));
18
+ process.exit(1);
19
+ });
20
+ parentProgram.addCommand(command);
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/check-submission/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAC,UAAU,EAAE,OAAO,IAAI,WAAW,EAAC,MAAM,6BAA6B,CAAA;AAE9E,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAA;AAInC,MAAM,UAAU,WAAW,CAAC,aAAsB;IAChD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,kBAAkB,CAAC;SACxB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC,0BAA0B;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAiC,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,MAAM,CAAA;QAE3C,WAAW,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5D,WAAW,CACT,kCAAkC,UAAU,QAAQ,OAAO,CAAC,GAAG,EAAE,EAAE,CACpE,CAAA;QAED,WAAW,CACT,IAAI,UAAU,CACZ,+CAA+C,EAC/C,kEAAkE,EAClE;YACE,iCAAiC,MAAM,CAAC,UAAU,gDAAgD;SACnG,CACF,CACF,CAAA;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface CancelSubmissionCommandArgs {
2
+ verbose?: boolean;
3
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/check-submission/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export declare const getPackageManager: () => Promise<"yarn" | "npm" | "pnpm">;
2
+ export declare const CLI_VERSION: any;
3
+ export declare const PATHS: {
4
+ CACHE_DIR: string;
5
+ };
6
+ export declare const EMAILS: {
7
+ CONTACT_US: string;
8
+ };
9
+ export declare const SHOP_MINIS_ADMIN_API = "https://server.shop.app/minis/admin-api/alpha/graphql.json";
10
+ export declare const SHOP_MINIS_ADMIN_API_KEY: string | undefined;
@@ -0,0 +1,34 @@
1
+ import { createRequire } from 'node:module';
2
+ import path from 'node:path';
3
+ import fs from 'fs-extra';
4
+ import { getPackageManager as _getPackageManager, } from '@shopify/cli-kit/node/node-package-manager';
5
+ import { outputDebug } from '@shopify/cli-kit/node/output';
6
+ import * as dotenv from 'dotenv';
7
+ dotenv.config();
8
+ // Guess which package manager the minis developer use based on some heuristics from cli-kit
9
+ let packageManager = null;
10
+ export const getPackageManager = async () => {
11
+ if (!packageManager) {
12
+ // eslint-disable-next-line require-atomic-updates
13
+ packageManager = await _getPackageManager(process.cwd());
14
+ outputDebug(`Preferred package manager has been detected as: ${packageManager}`);
15
+ }
16
+ return packageManager;
17
+ };
18
+ export const CLI_VERSION = createRequire(import.meta.url)('../../package.json').version;
19
+ export const PATHS = {
20
+ CACHE_DIR: path.resolve(process.cwd(), '.minis-cache'),
21
+ };
22
+ export const EMAILS = {
23
+ CONTACT_US: 'shopminisdevelopers@shopify.com',
24
+ };
25
+ export const SHOP_MINIS_ADMIN_API = 'https://server.shop.app/minis/admin-api/alpha/graphql.json';
26
+ export const SHOP_MINIS_ADMIN_API_KEY = process.env.SHOP_MINIS_API_KEY;
27
+ // Create the cache directory if it doesn't exist.
28
+ try {
29
+ fs.mkdirSync(PATHS.CACHE_DIR);
30
+ }
31
+ catch {
32
+ // directory already exists. do nothing
33
+ }
34
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,EACL,iBAAiB,IAAI,kBAAkB,GAExC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AACxD,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAEhC,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,4FAA4F;AAC5F,IAAI,cAAc,GAA0B,IAAI,CAAA;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;IAC1C,IAAI,CAAC,cAAc,EAAE;QACnB,kDAAkD;QAClD,cAAc,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;QAExD,WAAW,CACT,mDAAmD,cAAc,EAAE,CACpE,CAAA;KACF;IAED,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACvD,oBAAoB,CACrB,CAAC,OAAO,CAAA;AAET,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC;CACvD,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,UAAU,EAAE,iCAAiC;CAC9C,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAC/B,4DAA4D,CAAA;AAE9D,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA;AAEtE,kDAAkD;AAClD,IAAI;IACF,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;CAC9B;AAAC,MAAM;IACN,uCAAuC;CACxC"}
@@ -1,32 +1,27 @@
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.loadCommand = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- const commander_1 = require("commander");
10
- const prompts_1 = __importDefault(require("prompts"));
11
- const chalk_1 = __importDefault(require("chalk"));
12
- const lodash_1 = __importDefault(require("lodash"));
13
- const exec_async_child_process_1 = require("../utils/exec-async-child-process");
14
- const wrap_with_loading_indicator_1 = require("../utils/wrap-with-loading-indicator");
15
- const template_app_1 = require("./utils/template-app");
16
- function logSuccess(handle, useYarn, outputDir = '.') {
17
- console.log(`\n \nShop Mini`, chalk_1.default.green.bold(`${handle}`), 'created. Next steps:\n');
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { packageManagerUsedForCreating } from '@shopify/cli-kit/node/node-package-manager';
4
+ import { Command } from 'commander';
5
+ import prompts from 'prompts';
6
+ import chalk from 'chalk';
7
+ import _ from 'lodash';
8
+ import { execAsync } from '../utils/exec-async-child-process.js';
9
+ import { wrapWithLoadingIndicator } from '../utils/wrap-with-loading-indicator.js';
10
+ import { generateMiniFromTemplate } from './utils/template-app.js';
11
+ function logSuccess(handle, outputDir, useYarn) {
12
+ console.log(`\n \nShop Mini`, chalk.green.bold(`${handle}`), 'created. Next steps:\n');
18
13
  const currentPath = `${process.cwd()}/`;
19
- const cdAbsolutePath = path_1.default.resolve(outputDir, handle);
14
+ const cdAbsolutePath = path.resolve(outputDir, handle);
20
15
  const cdPath = cdAbsolutePath.startsWith(currentPath)
21
16
  ? cdAbsolutePath.replace(currentPath, '')
22
17
  : cdAbsolutePath;
23
- console.log(chalk_1.default.cyan.bold(` cd ${cdPath}`));
24
- console.log(chalk_1.default.dim(' Open your Shop Mini’s directory\n'));
25
- console.log(chalk_1.default.cyan.bold(` ↪ ${useYarn ? 'yarn' : 'npm'} start`));
26
- console.log(chalk_1.default.dim(' Run Shop Mini, and open it on an iOS or Android device.\n'));
27
- console.log(chalk_1.default.cyan(' ↪ ') +
28
- chalk_1.default.cyan.underline.bold('https://shop.app/minis/docs/'));
29
- console.log(chalk_1.default.dim(' Shop Minis documentation.\n \n'));
18
+ console.log(chalk.cyan.bold(` cd ${cdPath}`));
19
+ console.log(chalk.dim(' Open your Shop Mini’s directory\n'));
20
+ console.log(chalk.cyan.bold(` ↪ ${useYarn ? 'yarn' : 'npm'} start`));
21
+ console.log(chalk.dim(' Run Shop Mini, and open it on an iOS or Android device.\n'));
22
+ console.log(chalk.cyan(' ↪ ') +
23
+ chalk.cyan.underline.bold('https://shop.app/minis/docs/'));
24
+ console.log(chalk.dim(' Shop Minis documentation.\n \n'));
30
25
  }
31
26
  async function promptUser(miniNameArg) {
32
27
  const questions = [];
@@ -34,7 +29,7 @@ async function promptUser(miniNameArg) {
34
29
  questions.push({
35
30
  type: 'text',
36
31
  name: 'miniName',
37
- message: `Give your Shop Mini a name. ${chalk_1.default.dim('You can change it later.\n')}`,
32
+ message: `Give your Shop Mini a name. ${chalk.dim('You can change it later.\n')}`,
38
33
  });
39
34
  }
40
35
  questions.push({
@@ -64,46 +59,50 @@ async function promptUser(miniNameArg) {
64
59
  console.log('\nShop Mini creation stopped at your request. Name not saved.\n');
65
60
  process.exit(0);
66
61
  };
67
- const response = await prompts_1.default.prompt(questions, { onCancel });
62
+ const response = await prompts.prompt(questions, { onCancel });
68
63
  return {
69
64
  miniName: miniNameArg || response.miniName,
70
65
  templateName: response.templateName,
71
66
  };
72
67
  }
73
- function loadCommand(parentProgram) {
74
- const command = new commander_1.Command()
68
+ export function loadCommand(parentProgram) {
69
+ const command = new Command()
75
70
  .name('create')
76
71
  .description('Create a new Shop Mini')
77
72
  .argument('[mini name]', 'the name of your mini')
73
+ // TODO: Remove `--useYarn` https://github.com/Shopify/shop-minis-cli/issues/190
78
74
  .option('--useYarn', 'Use yarn as package manager instead of npm')
79
75
  .option('--output-dir [path]', 'Specify an output directory for the mini')
80
76
  .action(async (miniNameArg, options = {}) => {
81
- const outputDir = options.outputDir ?? '.';
82
- if (!fs_1.default.existsSync(outputDir)) {
77
+ const currentDirectoryName = path.basename(process.cwd());
78
+ // The default has to be out of the 'shop-minis-cli' directory because the cli is using
79
+ // modules but the mini is a commonjs app. Running a cjs project inside a modules project causes various issues.
80
+ const defaultOutputDir = currentDirectoryName === 'shop-minis-cli' ? '..' : '.';
81
+ const outputDir = options.outputDir ?? defaultOutputDir;
82
+ if (!fs.existsSync(outputDir)) {
83
83
  console.error(`Unable to create a mini at the specified output dir of ${outputDir}`);
84
84
  process.exit(1);
85
85
  }
86
86
  try {
87
87
  const { miniName, templateName } = await promptUser(miniNameArg);
88
- const handle = lodash_1.default.kebabCase(miniName);
89
- await (0, wrap_with_loading_indicator_1.wrapWithLoadingIndicator)((0, template_app_1.generateMiniFromTemplate)(miniName, handle, templateName, outputDir), {
88
+ const handle = _.kebabCase(miniName);
89
+ await wrapWithLoadingIndicator(generateMiniFromTemplate(miniName, handle, templateName, outputDir), {
90
90
  loadingMessage: 'Fetching template...',
91
91
  successMessage: 'Template fetched',
92
92
  });
93
+ const useYarn = packageManagerUsedForCreating() === 'yarn';
93
94
  // Yarn is ignoring the `resolutions` when you install
94
95
  // via `yarn create @shopify/shop-mini` so use `--ignore-engines` to work around the
95
96
  // problem with `@apollo/federation`
96
97
  // npm fails to install for a similar reason on node 15 but runs fine so we will
97
98
  // use `--force` to get everything installed
98
- const installCmd = options.useYarn
99
- ? 'yarn --ignore-engines'
100
- : 'npm i --force';
101
- await (0, exec_async_child_process_1.execAsync)({
102
- cmd: `cd ${path_1.default.resolve(outputDir, handle)} && ${installCmd}`,
99
+ const installCmd = useYarn ? 'yarn --ignore-engines' : 'npm i --force';
100
+ await execAsync({
101
+ cmd: `cd ${path.resolve(outputDir, handle)} && ${installCmd}`,
103
102
  loadingMessage: 'Installing dependencies. This might take a minute...',
104
103
  successMessage: 'Dependencies installed',
105
104
  });
106
- logSuccess(handle, options.useYarn, outputDir);
105
+ logSuccess(handle, outputDir, useYarn);
107
106
  }
108
107
  catch (err) {
109
108
  console.error(err?.message || err);
@@ -112,5 +111,4 @@ function loadCommand(parentProgram) {
112
111
  });
113
112
  parentProgram.addCommand(command);
114
113
  }
115
- exports.loadCommand = loadCommand;
116
114
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/create-mini/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/create-mini/index.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,11 @@
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.generateMiniFromTemplate = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const os_1 = __importDefault(require("os"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const replace_in_file_1 = require("replace-in-file");
11
- const lodash_1 = __importDefault(require("lodash"));
1
+ import url from 'node:url';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ import fs from 'fs-extra';
5
+ import replaceInFile from 'replace-in-file';
6
+ import _ from 'lodash';
7
+ import { CLI_VERSION } from '../../config.js';
8
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
12
9
  async function replaceStringsInTemplate(dir, stringsToReplace) {
13
10
  for (const [replaceKey, replaceValue] of Object.entries(stringsToReplace)) {
14
11
  const replaceOptions = {
@@ -19,26 +16,24 @@ async function replaceStringsInTemplate(dir, stringsToReplace) {
19
16
  ignore: ['**/node_modules/**'],
20
17
  },
21
18
  };
22
- await (0, replace_in_file_1.replaceInFile)(replaceOptions);
19
+ await replaceInFile.replaceInFile(replaceOptions);
23
20
  }
24
21
  }
25
- async function generateMiniFromTemplate(name, handle, templateName, outputDir = '.') {
26
- const tmpDir = await fs_extra_1.default.mkdtemp(path_1.default.join(os_1.default.tmpdir(), `${handle}-`));
27
- const miniTemplateDir = await path_1.default.join(__dirname, '../../../../templates', `__template_${templateName}`);
28
- const miniDestinationDir = path_1.default.resolve(process.cwd(), outputDir, handle);
29
- const CLIVersion = require('../../../../package.json').version; // eslint-disable-line @typescript-eslint/no-var-requires
22
+ export async function generateMiniFromTemplate(name, handle, templateName, outputDir = '.') {
23
+ const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), `${handle}-`));
24
+ const miniTemplateDir = await path.join(__dirname, '../../../../templates', `__template_${templateName}`);
25
+ const miniDestinationDir = path.resolve(process.cwd(), outputDir, handle);
30
26
  const stringsToReplace = {
31
27
  __MINI_APP_NAME__: name,
32
- __MINI_APP_HANDLE_PASCAL_CASE__: lodash_1.default.startCase(handle).replace(/ /g, ''),
28
+ __MINI_APP_HANDLE_PASCAL_CASE__: _.startCase(handle).replace(/ /g, ''),
33
29
  __MINI_APP_HANDLE_KEBAB_CASE__: handle,
34
- __SHOP_MINIS_CLI_VERSION__: CLIVersion,
30
+ __SHOP_MINIS_CLI_VERSION__: CLI_VERSION,
35
31
  };
36
- const commonTemplateFilesDir = await path_1.default.join(__dirname, '../../../../templates', '__template_common');
37
- await fs_extra_1.default.copy(commonTemplateFilesDir, tmpDir);
38
- await fs_extra_1.default.copy(miniTemplateDir, tmpDir);
39
- await fs_extra_1.default.move(path_1.default.join(tmpDir, 'gitignore'), path_1.default.join(tmpDir, '.gitignore'));
32
+ const commonTemplateFilesDir = await path.join(__dirname, '../../../../templates', '__template_common');
33
+ await fs.copy(commonTemplateFilesDir, tmpDir);
34
+ await fs.copy(miniTemplateDir, tmpDir);
35
+ await fs.move(path.join(tmpDir, 'gitignore'), path.join(tmpDir, '.gitignore'));
40
36
  await replaceStringsInTemplate(tmpDir, stringsToReplace);
41
- await fs_extra_1.default.copy(tmpDir, miniDestinationDir);
37
+ await fs.copy(tmpDir, miniDestinationDir);
42
38
  }
43
- exports.generateMiniFromTemplate = generateMiniFromTemplate;
44
39
  //# sourceMappingURL=template-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-app.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/template-app.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,4CAAmB;AAEnB,wDAAyB;AACzB,qDAA6C;AAC7C,oDAAsB;AAEtB,KAAK,UAAU,wBAAwB,CACrC,GAAW,EACX,gBAAwC;IAExC,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACzE,MAAM,cAAc,GAAG;YACrB,KAAK,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC;YACxB,IAAI,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;YACjC,EAAE,EAAE,YAAY;YAChB,eAAe,EAAE;gBACf,MAAM,EAAE,CAAC,oBAAoB,CAAC;aAC/B;SACF,CAAA;QAED,MAAM,IAAA,+BAAa,EAAC,cAAc,CAAC,CAAA;KACpC;AACH,CAAC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,MAAc,EACd,YAAoB,EACpB,SAAS,GAAG,GAAG;IAEf,MAAM,MAAM,GAAG,MAAM,kBAAE,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA;IACrE,MAAM,eAAe,GAAG,MAAM,cAAI,CAAC,IAAI,CACrC,SAAS,EACT,uBAAuB,EACvB,cAAc,YAAY,EAAE,CAC7B,CAAA;IACD,MAAM,kBAAkB,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAA,CAAC,yDAAyD;IACxH,MAAM,gBAAgB,GAAG;QACvB,iBAAiB,EAAE,IAAI;QACvB,+BAA+B,EAAE,gBAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtE,8BAA8B,EAAE,MAAM;QACtC,0BAA0B,EAAE,UAAU;KACvC,CAAA;IAED,MAAM,sBAAsB,GAAG,MAAM,cAAI,CAAC,IAAI,CAC5C,SAAS,EACT,uBAAuB,EACvB,mBAAmB,CACpB,CAAA;IAED,MAAM,kBAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,kBAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACtC,MAAM,kBAAE,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC9E,MAAM,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACxD,MAAM,kBAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAC3C,CAAC;AAjCD,4DAiCC"}
1
+ {"version":3,"file":"template-app.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/template-app.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,UAAU,CAAA;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,EAAE,MAAM,UAAU,CAAA;AACzB,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,MAAM,SAAS,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAElE,KAAK,UAAU,wBAAwB,CACrC,GAAW,EACX,gBAAwC;IAExC,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;QACzE,MAAM,cAAc,GAAG;YACrB,KAAK,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC;YACxB,IAAI,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;YACjC,EAAE,EAAE,YAAY;YAChB,eAAe,EAAE;gBACf,MAAM,EAAE,CAAC,oBAAoB,CAAC;aAC/B;SACF,CAAA;QAED,MAAM,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;KAClD;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,MAAc,EACd,YAAoB,EACpB,SAAS,GAAG,GAAG;IAEf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA;IACrE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,IAAI,CACrC,SAAS,EACT,uBAAuB,EACvB,cAAc,YAAY,EAAE,CAC7B,CAAA;IACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAEzE,MAAM,gBAAgB,GAAG;QACvB,iBAAiB,EAAE,IAAI;QACvB,+BAA+B,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACtE,8BAA8B,EAAE,MAAM;QACtC,0BAA0B,EAAE,WAAW;KACxC,CAAA;IAED,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5C,SAAS,EACT,uBAAuB,EACvB,mBAAmB,CACpB,CAAA;IAED,MAAM,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;IAC7C,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;IACtC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC9E,MAAM,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACxD,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAC3C,CAAC"}
@@ -1,31 +1,24 @@
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.loadCommand = void 0;
7
- const commander_1 = require("commander");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const internal_ip_1 = require("internal-ip");
10
- const interactive_terminal_1 = require("./utils/interactive-terminal");
11
- const metro_server_1 = require("./utils/metro/metro-server");
12
- const minis_manifest_1 = require("./utils/minis-manifest");
13
- async function loadCommand(parentProgram) {
14
- const ip = await (0, internal_ip_1.v4)();
15
- const command = new commander_1.Command()
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import internalIp from 'internal-ip';
4
+ import { getMiniManifest } from '../utils/minis-manifest.js';
5
+ import { InteractiveTerminal } from './utils/interactive-terminal.js';
6
+ import { runMetro } from './utils/metro/metro-server.js';
7
+ export async function loadCommand(parentProgram) {
8
+ const ip = await internalIp.v4();
9
+ const command = new Command()
16
10
  .name('dev')
17
11
  .version('2.0.0')
18
12
  .description('Start a local dev server for the mini app')
19
13
  .option('--reset-cache', 'reset the dev server cache')
20
14
  .option('--host <host>', "packager's host", ip)
21
15
  .action(async (options) => {
22
- await (0, metro_server_1.runMetro)(options);
23
- const miniHandle = (0, minis_manifest_1.getMiniManifest)().handle;
24
- console.log('Local development environment for', chalk_1.default.green(miniHandle), 'is running...');
25
- const interactiveTerminal = new interactive_terminal_1.InteractiveTerminal(options);
16
+ await runMetro(options);
17
+ const miniHandle = getMiniManifest().handle;
18
+ console.log('Local development environment for', chalk.green(miniHandle), 'is running...');
19
+ const interactiveTerminal = new InteractiveTerminal(options);
26
20
  interactiveTerminal.start();
27
21
  });
28
22
  parentProgram.addCommand(command);
29
23
  }
30
- exports.loadCommand = loadCommand;
31
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAiC;AACjC,kDAAyB;AACzB,6CAAsC;AAEtC,uEAAgE;AAChE,6DAAmD;AACnD,2DAAsD;AAO/C,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,MAAM,EAAE,GAAG,MAAM,IAAA,gBAAI,GAAE,CAAA;IAEvB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;SAC1B,IAAI,CAAC,KAAK,CAAC;SACX,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,EAAE,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAA;QAEvB,MAAM,UAAU,GAAG,IAAA,gCAAe,GAAE,CAAC,MAAM,CAAA;QAC3C,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,eAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EACvB,eAAe,CAChB,CAAA;QAED,MAAM,mBAAmB,GAAG,IAAI,0CAAmB,CAAC,OAAO,CAAC,CAAA;QAC5D,mBAAmB,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AAxBD,kCAwBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,UAAU,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAA;AAOtD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,aAAsB;IACtD,MAAM,EAAE,GAAG,MAAM,UAAU,CAAC,EAAE,EAAE,CAAA;IAEhC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;SAC1B,IAAI,CAAC,KAAK,CAAC;SACX,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,4BAA4B,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,iBAAiB,EAAE,EAAE,CAAC;SAC9C,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAA;QAEvB,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC,MAAM,CAAA;QAC3C,OAAO,CAAC,GAAG,CACT,mCAAmC,EACnC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EACvB,eAAe,CAChB,CAAA;QAED,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAC5D,mBAAmB,CAAC,KAAK,EAAE,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEJ,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC"}