@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.
- 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/utils/minis-manifest.d.ts +5 -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 +11 -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 +9 -7
- package/templates/__template_common/src/manifest.json +1 -0
- package/templates/__template_hello_world/src/components/ComponentLink.ts +6 -2
- package/templates/__template_hello_world/src/components/quiz/ImageCarouselSlide.tsx +54 -0
- package/templates/__template_hello_world/src/components/quiz/MultipleChoiceSlide.tsx +77 -0
- package/templates/__template_hello_world/src/components/quiz/QuizProvider.tsx +64 -0
- package/templates/__template_hello_world/src/components/quiz/QuizSlide.tsx +76 -0
- package/templates/__template_hello_world/src/components/quiz/QuizSlideCommander.tsx +35 -0
- package/templates/__template_hello_world/src/components/quiz/TextFieldSlide.tsx +47 -0
- package/templates/__template_hello_world/src/components/quiz/TextSlide.tsx +6 -0
- package/templates/__template_hello_world/src/components/quiz/types.ts +72 -0
- package/templates/__template_hello_world/src/hooks/useQuizData.ts +26 -0
- package/templates/__template_hello_world/src/hooks/useQuizState.ts +27 -0
- package/templates/__template_hello_world/src/routes.tsx +9 -3
- package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +6 -5
- package/templates/__template_hello_world/src/screens/{ImageCarouselScreen.tsx → ImageMultipleChoiceScreen.tsx} +4 -6
- package/templates/__template_hello_world/src/screens/InputScreen.tsx +42 -58
- package/templates/__template_hello_world/src/screens/QuizResultScreen.tsx +82 -0
- package/templates/__template_hello_world/src/screens/QuizScreen.tsx +40 -0
- package/templates/__template_hello_world/src/screens/QuizSlideScreen.tsx +150 -0
- package/templates/__template_hello_world/src/types.ts +2 -1
- package/templates/__template_hello_world/src/utils/mockQuizData.ts +313 -0
- package/templates/__template_hello_world/src/utils/quizUtils.ts +75 -0
- package/build/commands/check/index.d.ts +0 -5
- package/build/commands/check/index.js +0 -77
- package/build/commands/check/index.js.map +0 -1
- 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
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,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 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/cancel-submission/types.ts"],"names":[],"mappings":""}
|
|
@@ -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 @@
|
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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 =
|
|
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(
|
|
24
|
-
console.log(
|
|
25
|
-
console.log(
|
|
26
|
-
console.log(
|
|
27
|
-
console.log(
|
|
28
|
-
|
|
29
|
-
console.log(
|
|
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. ${
|
|
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
|
|
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
|
|
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
|
|
82
|
-
|
|
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 =
|
|
89
|
-
await
|
|
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 =
|
|
99
|
-
|
|
100
|
-
:
|
|
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,
|
|
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":"
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
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
|
|
19
|
+
await replaceInFile.replaceInFile(replaceOptions);
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
|
-
async function generateMiniFromTemplate(name, handle, templateName, outputDir = '.') {
|
|
26
|
-
const tmpDir = await
|
|
27
|
-
const miniTemplateDir = await
|
|
28
|
-
const miniDestinationDir =
|
|
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__:
|
|
28
|
+
__MINI_APP_HANDLE_PASCAL_CASE__: _.startCase(handle).replace(/ /g, ''),
|
|
33
29
|
__MINI_APP_HANDLE_KEBAB_CASE__: handle,
|
|
34
|
-
__SHOP_MINIS_CLI_VERSION__:
|
|
30
|
+
__SHOP_MINIS_CLI_VERSION__: CLI_VERSION,
|
|
35
31
|
};
|
|
36
|
-
const commonTemplateFilesDir = await
|
|
37
|
-
await
|
|
38
|
-
await
|
|
39
|
-
await
|
|
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
|
|
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":"
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
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
|
|
23
|
-
const miniHandle =
|
|
24
|
-
console.log('Local development environment for',
|
|
25
|
-
const interactiveTerminal = new
|
|
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":"
|
|
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"}
|