@shopify/shop-minis-cli 0.0.159 → 0.0.161

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 (40) hide show
  1. package/build/commands/create-mini/index.js +8 -178
  2. package/build/commands/create-mini/index.js.map +1 -1
  3. package/build/commands/create-mini/legacy/index.d.ts +2 -0
  4. package/build/commands/create-mini/legacy/index.js +174 -0
  5. package/build/commands/create-mini/legacy/index.js.map +1 -0
  6. package/build/commands/create-mini/{utils → legacy/utils}/template-app.js +12 -23
  7. package/build/commands/create-mini/legacy/utils/template-app.js.map +1 -0
  8. package/build/commands/create-mini/standalone/examples/with-getting-started/.eslintignore +1 -0
  9. package/build/commands/create-mini/standalone/examples/with-getting-started/.eslintrc.js +3 -0
  10. package/build/commands/create-mini/standalone/examples/with-getting-started/.graphqlrc.js +1 -0
  11. package/build/commands/create-mini/standalone/examples/with-getting-started/.prettierrc.json +8 -0
  12. package/build/commands/create-mini/standalone/examples/with-getting-started/assets.d.ts +14 -0
  13. package/build/commands/create-mini/standalone/examples/with-getting-started/babel.config.js +5 -0
  14. package/build/commands/create-mini/standalone/examples/with-getting-started/index.tsx +5 -0
  15. package/build/commands/create-mini/standalone/examples/with-getting-started/metro.config.js +3 -0
  16. package/build/commands/create-mini/standalone/examples/with-getting-started/package.json +33 -0
  17. package/build/commands/create-mini/standalone/examples/with-getting-started/src/App.tsx +23 -0
  18. package/build/commands/create-mini/standalone/examples/with-getting-started/src/index.tsx +9 -0
  19. package/build/commands/create-mini/standalone/examples/with-getting-started/src/manifest.json +7 -0
  20. package/build/commands/create-mini/standalone/examples/with-getting-started/src/screens/HomeScreen.tsx +133 -0
  21. package/build/commands/create-mini/standalone/examples/with-getting-started/src/screens/NativeFeaturesScreen.tsx +138 -0
  22. package/build/commands/create-mini/standalone/examples/with-getting-started/src/types/screens.ts +5 -0
  23. package/build/commands/create-mini/standalone/examples/with-getting-started/tsconfig.json +41 -0
  24. package/build/commands/create-mini/standalone/index.d.ts +2 -0
  25. package/build/commands/create-mini/standalone/index.js +115 -0
  26. package/build/commands/create-mini/standalone/index.js.map +1 -0
  27. package/build/commands/create-mini/utils/examples.d.ts +4 -1
  28. package/build/commands/create-mini/utils/examples.js +28 -2
  29. package/build/commands/create-mini/utils/examples.js.map +1 -1
  30. package/build/commands/create-mini/utils/index.d.ts +3 -0
  31. package/build/commands/create-mini/utils/index.js +23 -0
  32. package/build/commands/create-mini/utils/index.js.map +1 -0
  33. package/build/utils/package-manager.d.ts +5 -0
  34. package/build/utils/package-manager.js +13 -0
  35. package/build/utils/package-manager.js.map +1 -1
  36. package/package.json +5 -3
  37. package/scripts/{test-template.ts → test-create-mini-legacy.ts} +12 -15
  38. package/scripts/test-create-mini-standalone.ts +63 -0
  39. package/build/commands/create-mini/utils/template-app.js.map +0 -1
  40. /package/build/commands/create-mini/{utils → legacy/utils}/template-app.d.ts +0 -0
@@ -0,0 +1,133 @@
1
+ import {useState} from 'react'
2
+ import {ScrollView} from 'react-native'
3
+ import {useNavigation} from '@react-navigation/native'
4
+ import {NativeStackNavigationProp} from '@react-navigation/native-stack'
5
+ import {
6
+ Box,
7
+ SafeAreaView,
8
+ Text,
9
+ TouchableProduct,
10
+ ProductCard,
11
+ useProductSearch,
12
+ useTheme,
13
+ Button,
14
+ TextField,
15
+ RadioButton,
16
+ Divider,
17
+ } from '@shopify/shop-minis-sdk'
18
+
19
+ import {RootStackParamList} from '../types/screens'
20
+
21
+ export function HomeScreen() {
22
+ const theme = useTheme()
23
+ const navigation =
24
+ useNavigation<NativeStackNavigationProp<RootStackParamList>>()
25
+
26
+ const {products} = useProductSearch({
27
+ query: 'skateboard',
28
+ first: 4,
29
+ filters: {
30
+ minimumRating: 4,
31
+ price: {
32
+ min: 150,
33
+ max: 250,
34
+ },
35
+ },
36
+ })
37
+
38
+ const radioButtonOptions = ['Option A', 'Option B', 'Option C']
39
+
40
+ const [selectedOption, setSelectedOption] = useState(radioButtonOptions[0])
41
+ const [textFieldValue, setTextFieldValue] = useState('')
42
+
43
+ return (
44
+ <SafeAreaView
45
+ style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
46
+ >
47
+ <ScrollView>
48
+ <Box
49
+ flex={1}
50
+ paddingHorizontal="gutter"
51
+ marginBottom="s"
52
+ backgroundColor="backgrounds-regular"
53
+ >
54
+ <Text variant="heroBold" marginBottom="s" marginTop="xs">
55
+ Hello, World!
56
+ </Text>
57
+ <Text variant="subtitle" marginBottom="s">
58
+ You just created a Shop Mini! Nice.
59
+ </Text>
60
+ <Text variant="subtitle">Let&apos;s explore what a Mini can do.</Text>
61
+ <Divider marginVertical="s" />
62
+ {products ? (
63
+ <>
64
+ <Text marginBottom="s">
65
+ First up: Product Cards (Since we&apos;re all about shopping,
66
+ right?)
67
+ </Text>
68
+ <Box flexDirection="row">
69
+ {products.slice(0, 2).map(product => (
70
+ <Box key={product.id} flex={1}>
71
+ <TouchableProduct product={product}>
72
+ <ProductCard product={product} />
73
+ </TouchableProduct>
74
+ </Box>
75
+ ))}
76
+ </Box>
77
+ <Box flexDirection="row">
78
+ {products.slice(2, 4).map(product => (
79
+ <Box key={product.id} flex={1} padding="xs">
80
+ <TouchableProduct product={product}>
81
+ <ProductCard product={product} />
82
+ </TouchableProduct>
83
+ </Box>
84
+ ))}
85
+ </Box>
86
+ </>
87
+ ) : null}
88
+ <Divider marginVertical="s" />
89
+
90
+ <Text marginBottom="s">
91
+ You can add interactions to your Mini with inputs.
92
+ </Text>
93
+ <Box>
94
+ <TextField
95
+ placeholder="I love Minis because..."
96
+ value={textFieldValue}
97
+ onChangeText={setTextFieldValue}
98
+ />
99
+ {textFieldValue ? (
100
+ <Text marginTop="xs">I love Minis because {textFieldValue}</Text>
101
+ ) : null}
102
+ </Box>
103
+ <Divider marginVertical="s" />
104
+
105
+ <Text>Radio buttons</Text>
106
+ {radioButtonOptions.map(option => (
107
+ <Box key={option} marginVertical="xs">
108
+ <RadioButton
109
+ variant="tertiary"
110
+ text={option}
111
+ active={selectedOption === option}
112
+ onPress={() => setSelectedOption(option)}
113
+ />
114
+ </Box>
115
+ ))}
116
+ <Divider marginVertical="s" />
117
+
118
+ <Text marginBottom="s">
119
+ Ready for more? Let&apos;s explore native capabilities in the
120
+ screen.
121
+ </Text>
122
+ <Button
123
+ text="Next"
124
+ size="l"
125
+ onPress={() => {
126
+ navigation.navigate('GettingStarted.NativeFeatures')
127
+ }}
128
+ />
129
+ </Box>
130
+ </ScrollView>
131
+ </SafeAreaView>
132
+ )
133
+ }
@@ -0,0 +1,138 @@
1
+ import {useState} from 'react'
2
+ import {ScrollView, TouchableOpacity} from 'react-native'
3
+ import {useNavigation} from '@react-navigation/native'
4
+ import {NativeStackNavigationProp} from '@react-navigation/native-stack'
5
+ import {
6
+ Box,
7
+ SafeAreaView,
8
+ Text,
9
+ useTheme,
10
+ Button,
11
+ Icon,
12
+ useMinisDimensions,
13
+ Image,
14
+ Divider,
15
+ useImagePicker,
16
+ useShare,
17
+ } from '@shopify/shop-minis-sdk'
18
+
19
+ import {RootStackParamList} from '../types/screens'
20
+
21
+ export function NativeFeaturesScreen() {
22
+ const theme = useTheme()
23
+ const navigation =
24
+ useNavigation<NativeStackNavigationProp<RootStackParamList>>()
25
+ const {height, width} = useMinisDimensions()
26
+ const {share} = useShare()
27
+ const {openCamera, openPicker} = useImagePicker()
28
+ const [imageUrl, setImageUrl] = useState<string>()
29
+
30
+ return (
31
+ <SafeAreaView
32
+ style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
33
+ >
34
+ <ScrollView>
35
+ <Box
36
+ flex={1}
37
+ paddingHorizontal="gutter"
38
+ backgroundColor="backgrounds-regular"
39
+ >
40
+ <Box>
41
+ <TouchableOpacity
42
+ onPress={() => navigation.goBack()}
43
+ accessibilityLabel="Navigate back"
44
+ >
45
+ <Box marginTop="xs">
46
+ <Icon name="arrow-left" />
47
+ </Box>
48
+ </TouchableOpacity>
49
+ </Box>
50
+ <Text variant="heroBold" marginBottom="s" marginTop="xs">
51
+ Unlock Native Capabilities
52
+ </Text>
53
+ <Text variant="subtitle" marginBottom="s">
54
+ Let&apos;s explore the native capabilities your Shop Mini can
55
+ access.
56
+ </Text>
57
+ <Box>
58
+ <Button
59
+ text="Camera access"
60
+ onPress={async () => {
61
+ await openCamera({})
62
+ .then(image => {
63
+ setImageUrl(image.path)
64
+ })
65
+ .catch(error => {
66
+ console.log(error)
67
+ })
68
+ }}
69
+ />
70
+ <Text variant="bodySmall" marginTop="xs">
71
+ Run this Mini on a real device to access the camera.
72
+ </Text>
73
+ </Box>
74
+ <Box marginVertical="s">
75
+ <Button
76
+ text="Gallery access"
77
+ variant="secondary"
78
+ onPress={async () => {
79
+ await openPicker({})
80
+ .then(image => {
81
+ setImageUrl(image.path)
82
+ })
83
+ .catch(error => {
84
+ console.log(error)
85
+ })
86
+ }}
87
+ />
88
+ </Box>
89
+ {imageUrl ? (
90
+ <Box marginBottom="s">
91
+ <Box
92
+ style={{
93
+ width: 100,
94
+ height: 100,
95
+ borderRadius: 10,
96
+ overflow: 'hidden',
97
+ }}
98
+ >
99
+ <Image
100
+ source={{uri: imageUrl}}
101
+ style={{width: 100, height: 100}}
102
+ />
103
+ </Box>
104
+ </Box>
105
+ ) : null}
106
+ <Box>
107
+ <Button
108
+ text="Share sheet"
109
+ variant="tertiary"
110
+ onPress={async () => {
111
+ await share({
112
+ url: 'https://shop.app/minis',
113
+ title: 'title',
114
+ }).catch(error => {
115
+ console.log(error)
116
+ })
117
+ }}
118
+ />
119
+ </Box>
120
+ <Divider marginVertical="s" />
121
+ <Box>
122
+ <Text variant="subtitle" marginBottom="s">
123
+ Use some of our built-in APIs
124
+ </Text>
125
+ <Text>Screen height: {height}</Text>
126
+ <Text>Screen width: {width}</Text>
127
+ </Box>
128
+ <Divider marginVertical="s" />
129
+ <Text marginBottom="s">
130
+ We look forward to seeing what you build! Check out the
131
+ documentation at
132
+ </Text>
133
+ <Text>https://shop.app/minis</Text>
134
+ </Box>
135
+ </ScrollView>
136
+ </SafeAreaView>
137
+ )
138
+ }
@@ -0,0 +1,5 @@
1
+ import {ParamListBase} from '@react-navigation/native'
2
+
3
+ export interface RootStackParamList extends ParamListBase {
4
+ 'GettingStarted.Home': undefined
5
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": ".",
4
+ "paths": {
5
+ "*": [
6
+ "*",
7
+ "*.ios",
8
+ "*.android",
9
+ "./node_modules/@shopify/shop-minis-sdk/node_modules/*"
10
+ ]
11
+ },
12
+ "allowJs": true,
13
+ "resolveJsonModule": true,
14
+ "allowSyntheticDefaultImports": true,
15
+ "esModuleInterop": true,
16
+ "isolatedModules": false,
17
+ "jsx": "preserve",
18
+ "lib": ["es2019"],
19
+ "noUnusedParameters": true,
20
+ "noUnusedLocals": true,
21
+ "moduleResolution": "node",
22
+ "noEmit": true,
23
+ "incremental": true,
24
+ "strict": true,
25
+ "target": "esnext",
26
+ "skipLibCheck": true,
27
+ "noImplicitReturns": false,
28
+ "noFallthroughCasesInSwitch": true,
29
+ "allowUnreachableCode": false,
30
+ "allowUnusedLabels": false,
31
+ "noImplicitAny": true,
32
+ "strictNullChecks": true,
33
+ "strictFunctionTypes": true,
34
+ "strictBindCallApply": true,
35
+ "strictPropertyInitialization": true,
36
+ "noImplicitThis": true,
37
+ "alwaysStrict": true,
38
+ "useUnknownInCatchVariables": false
39
+ },
40
+ "exclude": ["node_modules"]
41
+ }
@@ -0,0 +1,2 @@
1
+ import { Command } from 'commander';
2
+ export declare function loadCommand(parentProgram: Command): void;
@@ -0,0 +1,115 @@
1
+ import { existsSync } from 'fs';
2
+ import path from 'path';
3
+ import { Command } from 'commander';
4
+ import { handler as handleError } from '@shopify/cli-kit/node/error';
5
+ import { renderError, renderSuccess, renderTasks, renderTextPrompt, } from '@shopify/cli-kit/node/ui';
6
+ import chalk from 'chalk';
7
+ import { copy } from 'fs-extra';
8
+ import { exec } from '@shopify/cli-kit/node/system';
9
+ import { packageManagerFromUserAgent } from '@shopify/cli-kit/node/node-package-manager';
10
+ import { getCdCommandPath, getHandleFromName, getOutputDirectory, } from '../utils/index.js';
11
+ import { generateMiniFromLocalExample } from '../utils/examples.js';
12
+ import { getRunBinCommand } from '../../../utils/package-manager.js';
13
+ export function loadCommand(parentProgram) {
14
+ const command = new Command()
15
+ .name('create')
16
+ .description('Create a new Shop Mini')
17
+ .argument('[mini name]', 'the name of your mini')
18
+ .option('--example <example name>', 'name of the example to use')
19
+ .option('-o, --output-dir <path>', 'Specify an output directory for the mini')
20
+ .option('--verbose', 'print debugging messages')
21
+ .option('--legacy', 'Use legacy create command') // TODO: Only used to keep commander happy
22
+ .action(async (miniNameArg, options = {}) => {
23
+ try {
24
+ let miniName = miniNameArg;
25
+ const outputDir = getOutputDirectory(options.outputDir);
26
+ if (!existsSync(outputDir)) {
27
+ renderError({
28
+ headline: 'Error creating mini',
29
+ body: [
30
+ `Unable to create a mini at the specified output dir of`,
31
+ { command: outputDir },
32
+ ],
33
+ });
34
+ process.exit(1);
35
+ }
36
+ if (!miniName) {
37
+ if (options.example) {
38
+ miniName = options.example;
39
+ }
40
+ else if (miniNameArg) {
41
+ miniName = miniNameArg;
42
+ }
43
+ else {
44
+ miniName = await renderTextPrompt({
45
+ message: `Give your Shop Mini a name. ${chalk.dim('You can change it later.')}`,
46
+ });
47
+ }
48
+ }
49
+ const miniHandle = getHandleFromName(miniName);
50
+ const miniDirPath = path.resolve(outputDir, miniHandle);
51
+ const example = options.example ?? 'with-getting-started';
52
+ await renderTasks([
53
+ {
54
+ title: 'Fetching example',
55
+ task: async () => {
56
+ const miniTmpDirPath = await generateMiniFromLocalExample(miniHandle, example);
57
+ await copy(miniTmpDirPath, miniDirPath);
58
+ },
59
+ },
60
+ {
61
+ title: 'Installing dependencies',
62
+ task: async () => {
63
+ const useYarn = packageManagerFromUserAgent() === 'yarn';
64
+ // Yarn is ignoring the `resolutions` when you install
65
+ // via `yarn create @shopify/shop-mini` so use `--ignore-engines` to work around the
66
+ // problem with `@apollo/federation`
67
+ // npm fails to install for a similar reason on node 15 but runs fine so we will
68
+ // use `--force` to get everything installed
69
+ if (useYarn) {
70
+ await exec('yarn', ['--ignore-engines'], { cwd: miniDirPath });
71
+ }
72
+ else {
73
+ await exec('npm', ['i', '--force'], { cwd: miniDirPath });
74
+ }
75
+ await exec(useYarn ? 'yarn' : 'npx', [
76
+ 'patch-package',
77
+ '--patch-dir',
78
+ 'node_modules/@shopify/shop-minis-runtime/patches',
79
+ ], { cwd: miniDirPath });
80
+ },
81
+ },
82
+ ]);
83
+ renderSuccess({
84
+ headline: 'Shop Mini created',
85
+ body: [`Your Shop Mini is ready to use.`],
86
+ nextSteps: [
87
+ [
88
+ "Change to your mini's directory",
89
+ {
90
+ command: `cd ${getCdCommandPath(outputDir, miniHandle)}`,
91
+ },
92
+ ],
93
+ [
94
+ 'Run your Shop Mini',
95
+ {
96
+ command: await getRunBinCommand('start'),
97
+ },
98
+ ],
99
+ [
100
+ 'Check out the docs',
101
+ {
102
+ bold: 'https://shop.app/minis/docs/',
103
+ },
104
+ ],
105
+ ],
106
+ });
107
+ }
108
+ catch (error) {
109
+ handleError(error);
110
+ process.exit(1);
111
+ }
112
+ });
113
+ parentProgram.addCommand(command);
114
+ }
115
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/standalone/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  export declare function cloneShopMinisRepo({ branch, }?: {
2
2
  branch?: string;
3
3
  }): Promise<string>;
4
- export declare function getExample(shopMinisClonePath: string, exampleName: string): Promise<string>;
4
+ export declare function getExample(examplesDir: string, exampleName: string): Promise<string>;
5
+ export declare function generateMiniFromShopMinisExample(handle: string, exampleName: string): Promise<string>;
6
+ export declare function generateMiniFromLocalExample(handle: string, exampleName: string): Promise<string>;
7
+ export declare function generateMiniFromExample(handle: string, examplePath: string): Promise<string>;
@@ -3,9 +3,14 @@ import { mkdtemp, readdir } from 'node:fs/promises';
3
3
  import path from 'path';
4
4
  import os from 'os';
5
5
  import { existsSync } from 'node:fs';
6
+ import url from 'node:url';
6
7
  import { downloadGitRepository } from '@shopify/cli-kit/node/git';
7
8
  import { simpleGit } from 'simple-git';
8
9
  import { outputDebug } from '@shopify/cli-kit/node/output';
10
+ import { copy } from 'fs-extra';
11
+ import { CLI_VERSION } from '../../config.js';
12
+ import { getPackageLatestVersion, overridePackageDependencies, } from '../../../utils/package-manager.js';
13
+ const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
9
14
  export async function cloneShopMinisRepo({ branch, } = {}) {
10
15
  const tmpDir = await mkdtemp(path.join(os.tmpdir(), `shop-minis-`));
11
16
  const repoUrl = 'https://github.com/Shopify/shop-minis.git';
@@ -33,12 +38,33 @@ export async function cloneShopMinisRepo({ branch, } = {}) {
33
38
  }
34
39
  return tmpDir;
35
40
  }
36
- export async function getExample(shopMinisClonePath, exampleName) {
37
- const examplesDir = path.join(shopMinisClonePath, 'examples');
41
+ export async function getExample(examplesDir, exampleName) {
38
42
  const examplePath = path.join(examplesDir, exampleName);
39
43
  if (!existsSync(examplePath)) {
40
44
  throw new Error(`Example "${exampleName}" not found. Available examples: ${JSON.stringify(await readdir(examplesDir))}`);
41
45
  }
42
46
  return examplePath;
43
47
  }
48
+ export async function generateMiniFromShopMinisExample(handle, exampleName) {
49
+ const shopMinisClonePath = await cloneShopMinisRepo();
50
+ const examplePath = await getExample(path.join(shopMinisClonePath, 'examples'), exampleName);
51
+ return generateMiniFromExample(handle, examplePath);
52
+ }
53
+ export async function generateMiniFromLocalExample(handle, exampleName) {
54
+ const examplePath = await getExample(path.join(__dirname, '..', 'standalone', 'examples'), exampleName);
55
+ return generateMiniFromExample(handle, examplePath);
56
+ }
57
+ export async function generateMiniFromExample(handle, examplePath) {
58
+ const tmpDir = await mkdtemp(path.join(os.tmpdir(), `${handle}-`));
59
+ await copy(examplePath, tmpDir);
60
+ overridePackageDependencies(tmpDir, {
61
+ dependencies: {
62
+ '@shopify/shop-minis-sdk': await getPackageLatestVersion('@shopify/shop-minis-sdk'),
63
+ },
64
+ devDependencies: {
65
+ '@shopify/shop-minis-cli': CLI_VERSION,
66
+ },
67
+ });
68
+ return tmpDir;
69
+ }
44
70
  //# sourceMappingURL=examples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/examples.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,kBAAkB,CAAA;AACjD,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAA;AAElC,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAA;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,8BAA8B,CAAA;AAExD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,MAAM,MAGJ,EAAE;IACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,2CAA2C,CAAA;IAE3D,WAAW,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAA;IAEnD,IAAI;QACF,MAAM,qBAAqB,CAAC;YAC1B,OAAO;YACP,WAAW,EAAE,MAAM;SACpB,CAAC,CAAA;KACH;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAA;QACtD,MAAM,IAAI,KAAK,CACb,yEAAyE,OAAO,gBAAgB,CACjG,CAAA;KACF;IAED,IAAI,MAAM,EAAE;QACV,WAAW,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAA;QAEvD,IAAI;YACF,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;SAC3B;QAAC,OAAO,KAAK,EAAE;YACd,WAAW,CAAC,wCAAwC,MAAM,KAAK,KAAK,EAAE,CAAC,CAAA;YACvE,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,iDAAiD,CAChG,CAAA;SACF;KACF;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,kBAA0B,EAC1B,WAAmB;IAEnB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAA;IAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAEvD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CACb,YAAY,WAAW,oCAAoC,IAAI,CAAC,SAAS,CACvE,MAAM,OAAO,CAAC,WAAW,CAAC,CAC3B,EAAE,CACJ,CAAA;KACF;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/examples.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const getOutputDirectory: (outputDir?: string) => string;
2
+ export declare const getCdCommandPath: (outputDir: string, handle: string) => string;
3
+ export declare const getHandleFromName: (name: string) => string;
@@ -0,0 +1,23 @@
1
+ import path from 'path';
2
+ import _ from 'lodash';
3
+ export const getOutputDirectory = (outputDir) => {
4
+ const currentDirectoryName = path.basename(process.cwd());
5
+ // The default has to be out of the 'shop-minis-cli' directory because the cli is using
6
+ // modules but the mini is a commonjs app. Running a cjs project inside a modules project causes various issues.
7
+ const defaultOutputDir = currentDirectoryName === 'shop-minis-cli' ? '..' : '.';
8
+ return outputDir ?? defaultOutputDir;
9
+ };
10
+ export const getCdCommandPath = (outputDir, handle) => {
11
+ // When running via create-shop-mini `process.cwd()` is a tmp directory so is no use
12
+ // TODO: create-shop-mini should pass the original cwd
13
+ const currentPath = `${process.cwd()}/`;
14
+ const cdAbsolutePath = path.resolve(outputDir, handle);
15
+ return cdAbsolutePath.startsWith(currentPath)
16
+ ? cdAbsolutePath.replace(currentPath, '')
17
+ : cdAbsolutePath;
18
+ };
19
+ export const getHandleFromName = (name) => {
20
+ // @ts-ignore
21
+ return _.kebabCase(name);
22
+ };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/create-mini/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,CAAC,MAAM,QAAQ,CAAA;AAEtB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAkB,EAAE,EAAE;IACvD,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAEzD,uFAAuF;IACvF,gHAAgH;IAChH,MAAM,gBAAgB,GACpB,oBAAoB,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAA;IAExD,OAAO,SAAS,IAAI,gBAAgB,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE;IACpE,oFAAoF;IACpF,sDAAsD;IACtD,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAA;IACvC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACtD,OAAO,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC;QAC3C,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QACzC,CAAC,CAAC,cAAc,CAAA;AACpB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;IAChD,aAAa;IACb,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAC1B,CAAC,CAAA"}
@@ -46,4 +46,9 @@ export declare const hardResetDependencies: () => Promise<[{
46
46
  }]>;
47
47
  export declare const getPackageVersion: (packageName: string) => Promise<string>;
48
48
  export declare const getPackageDependencyVersion: (packageName: string, dependencyName: string) => Promise<string | undefined>;
49
+ interface PackageVersions {
50
+ dependencies: Record<string, string>;
51
+ devDependencies: Record<string, string>;
52
+ }
53
+ export declare const overridePackageDependencies: (directoryPath: string, versions: PackageVersions) => void;
49
54
  export {};
@@ -145,4 +145,17 @@ export const getPackageDependencyVersion = async (packageName, dependencyName) =
145
145
  // do nothing if we fail to read the package.json
146
146
  }
147
147
  };
148
+ export const overridePackageDependencies = (directoryPath, versions) => {
149
+ const packageJsonPath = path.join(directoryPath, 'package.json');
150
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString('utf-8'));
151
+ packageJson.dependencies = {
152
+ ...packageJson.dependencies,
153
+ ...versions.dependencies,
154
+ };
155
+ packageJson.devDependencies = {
156
+ ...packageJson.devDependencies,
157
+ ...versions.devDependencies,
158
+ };
159
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
160
+ };
148
161
  //# sourceMappingURL=package-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public",
5
5
  "@shopify:registry": "https://registry.npmjs.org/"
6
6
  },
7
- "version": "0.0.159",
7
+ "version": "0.0.161",
8
8
  "description": "Shop Minis CLI",
9
9
  "main": "build/index.js",
10
10
  "bin": {
@@ -16,13 +16,15 @@
16
16
  "scripts": {
17
17
  "build": "yarn clean && yarn build:cli:graphql && yarn build:cli && yarn dev-panel:build-and-copy",
18
18
  "clean": "rm -rf build",
19
- "build:cli": "tsc -p tsconfig.build.json && chmod 755 build/index.js && cpx \"src/schemas/*.json\" build/schemas",
19
+ "build:cli": "tsc -p tsconfig.build.json && chmod 755 build/index.js && cpx \"src/schemas/*.json\" build/schemas && yarn build:cli:examples",
20
20
  "build:cli:watch": "chokidar \"./src/**/*.ts\" -c \"yarn run build:cli\" --silent --initial --ignore '(build|node_modules)'",
21
+ "build:cli:examples": "cpx \"src/commands/create-mini/standalone/examples/**/{*,.*}\" build/commands/create-mini/standalone/examples",
21
22
  "build:cli:graphql": "node --loader ts-node/esm scripts/graphql-codegen.ts",
22
23
  "lint": "eslint . --ext .js,.mjs,.ts,.tsx --format codeframe --cache",
23
24
  "shop-minis": "./build/index.js",
24
25
  "test": "vitest",
25
- "test:template": "node --loader ts-node/esm scripts/test-template.ts",
26
+ "test:create-mini:legacy": "node --loader ts-node/esm scripts/test-create-mini-legacy.ts",
27
+ "test:create-mini:standalone": "node --loader ts-node/esm scripts/test-create-mini-standalone.ts",
26
28
  "dev-panel:install": "cd ./dev-panel && yarn",
27
29
  "dev-panel:start": "cd ./dev-panel && yarn start",
28
30
  "dev-panel:clean": "cd ./dev-panel && rm -rf build",