@shopify/shop-minis-cli 0.0.167 → 0.0.170

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.
@@ -7,12 +7,13 @@ import internalIp from 'internal-ip';
7
7
  import { outputDebug } from '@shopify/cli-kit/node/output';
8
8
  import { handler as handleError } from '@shopify/cli-kit/node/error';
9
9
  import _ from 'lodash';
10
- import { getMiniManifest } from '../../utils/minis-manifest.js';
10
+ import { getMiniManifest, manifestExists } from '../../utils/minis-manifest.js';
11
11
  import { maybeApplyPatches } from '../../utils/patch-package.js';
12
12
  import { getInvalidDependencies } from '../doctor/utils/diagnose-dependencies.js';
13
13
  import { getRunBinCommand } from '../../utils/package-manager.js';
14
14
  import { getMiniExtensions } from '../../utils/extensions.js';
15
15
  import { generateGraphQLTypes } from '../generate-graphql-types/utils/generate-graphql-types.js';
16
+ import { isStandaloneMini } from '../../utils/standalone.js';
16
17
  import { InteractiveTerminal } from './utils/interactive-terminal.js';
17
18
  import { runMetro } from './utils/metro/metro-server.js';
18
19
  import { BuildType } from './utils/types.js';
@@ -24,7 +25,7 @@ export async function loadCommand(parentProgram) {
24
25
  .option('--reset-cache', 'Reset the development server cache.')
25
26
  .option('--host <host>', 'The host address for the packager.', ip)
26
27
  .option('--verbose', 'Print debugging messages.') // compatible with cli-kit
27
- .option('--extension-targets <extensionTargets...>', 'Specify the extension targets to run.')
28
+ .addOption(new Option('--extension-targets <extensionTargets...>', 'Specify the extension targets to run.').hideHelp(!manifestExists() || isStandaloneMini()))
28
29
  .addOption(new Option('--build-type <buildType>', 'The type of build to perform.')
29
30
  .choices(Object.values(BuildType))
30
31
  .default(BuildType.Release))
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/dev/index.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,11 @@ import path from 'path';
3
3
  import { loadConfig } from 'metro-config';
4
4
  import { createMinisMetroReporter } from './metro-reporter.js';
5
5
  import { createMinisModuleResolver } from './metro-minis-module-resolver.js';
6
+ // Create a require function for use in ESM context
7
+ const require = createRequire(import.meta.url);
6
8
  // modified so that metro uses the mini dependency path and not the CLI dependency when using symlinks to run the CLI (yarn link)
7
- const defaults = createRequire(import.meta.url)('metro-config/src/defaults/defaults');
8
- defaults.moduleSystem = `${process.cwd()}/node_modules/metro-runtime/src/polyfills/require.js`;
9
+ const defaults = require('metro-config/src/defaults/defaults');
10
+ defaults.moduleSystem = path.join(path.dirname(require.resolve('metro-runtime/package.json')), 'src', 'polyfills', 'require.js');
9
11
  export async function getMetroConfig() {
10
12
  const metroConfig = await loadConfig({ cwd: process.cwd() });
11
13
  // @ts-ignore - @types/metro is outdated and missing this attribute: https://facebook.github.io/metro/docs/configuration/#emptymodulepath
@@ -1 +1 @@
1
- {"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAoB,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEpD,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,yBAAyB,EAAC,MAAM,kCAAkC,CAAA;AAE1E,iIAAiI;AACjI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC7C,oCAAoC,CACrC,CAAA;AACD,QAAQ,CAAC,YAAY,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,sDAAsD,CAAA;AAE9F,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,EAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAC,CAAC,CAAA;IAE1D,yIAAyI;IACzI,gFAAgF;IAChF,WAAW,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAC9C,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,2CAA2C,CAC5C,CAAA;IAED,aAAa;IACb,gFAAgF;IAChF,WAAW,CAAC,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACxD,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,wCAAwC,CACzC,CAAA;IAED,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAA;IAE3C,OAAO;QACL,GAAG,WAAW;QACd,QAAQ,EAAE;YACR,GAAG,WAAW,CAAC,QAAQ;YACvB,cAAc,EAAE,yBAAyB,CAAC,WAAW,CAAC;SACvD;QACD,QAAQ;KACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"metro-config.js","sourceRoot":"","sources":["../../../../../src/commands/dev/utils/metro/metro-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAoB,EAAC,UAAU,EAAC,MAAM,cAAc,CAAA;AAEpD,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAC,yBAAyB,EAAC,MAAM,kCAAkC,CAAA;AAE1E,mDAAmD;AACnD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9C,iIAAiI;AACjI,MAAM,QAAQ,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAA;AAE9D,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,EAC3D,KAAK,EACL,WAAW,EACX,YAAY,CACb,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,EAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAC,CAAC,CAAA;IAE1D,yIAAyI;IACzI,gFAAgF;IAChF,WAAW,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAC9C,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,2CAA2C,CAC5C,CAAA;IAED,aAAa;IACb,gFAAgF;IAChF,WAAW,CAAC,WAAW,CAAC,sBAAsB,GAAG,IAAI,CAAC,IAAI,CACxD,WAAW,CAAC,WAAW,EACvB,cAAc,EACd,wCAAwC,CACzC,CAAA;IAED,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAA;IAE3C,OAAO;QACL,GAAG,WAAW;QACd,QAAQ,EAAE;YACR,GAAG,WAAW,CAAC,QAAQ;YACvB,cAAc,EAAE,yBAAyB,CAAC,WAAW,CAAC;SACvD;QACD,QAAQ;KACT,CAAA;AACH,CAAC"}
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.167",
7
+ "version": "0.0.170",
8
8
  "description": "Shop Minis CLI",
9
9
  "main": "build/index.js",
10
10
  "bin": {
@@ -6,15 +6,14 @@ import {
6
6
  Box,
7
7
  SafeAreaView,
8
8
  Text,
9
- TouchableProduct,
10
9
  ProductCard,
11
10
  useProductSearch,
12
11
  useTheme,
13
12
  Button,
14
13
  TextField,
15
- RadioButton,
16
14
  Divider,
17
- } from '@shopify/shop-minis-platform-sdk'
15
+ Shelf,
16
+ } from '@shopify/shop-minis-sdk'
18
17
 
19
18
  import {RootStackParamList} from '../types/screens'
20
19
 
@@ -22,24 +21,20 @@ export function HomeScreen() {
22
21
  const theme = useTheme()
23
22
  const navigation =
24
23
  useNavigation<NativeStackNavigationProp<RootStackParamList>>()
24
+ const [searchQuery, setSearchQuery] = useState('Skateboard')
25
25
 
26
- const {products} = useProductSearch({
27
- query: 'skateboard',
26
+ const {products, loading} = useProductSearch({
27
+ query: searchQuery,
28
28
  first: 4,
29
29
  filters: {
30
30
  minimumRating: 4,
31
31
  price: {
32
- min: 150,
32
+ min: 100,
33
33
  max: 250,
34
34
  },
35
35
  },
36
36
  })
37
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
38
  return (
44
39
  <SafeAreaView
45
40
  style={{flex: 1, backgroundColor: theme.colors['backgrounds-regular']}}
@@ -52,75 +47,72 @@ export function HomeScreen() {
52
47
  backgroundColor="backgrounds-regular"
53
48
  >
54
49
  <Text variant="heroBold" marginBottom="s" marginTop="xs">
55
- Hello, World!
50
+ Welcome to Shop Minis
56
51
  </Text>
57
52
  <Text variant="subtitle" marginBottom="s">
58
- You just created a Shop Mini! Nice.
53
+ Build powerful mobile commerce experiences with our SDK
59
54
  </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
73
- shopId="gid://shopify/Shop/62104633599"
74
- product={product}
75
- />
76
- </TouchableProduct>
77
- </Box>
78
- ))}
79
- </Box>
80
- <Box flexDirection="row">
81
- {products.slice(2, 4).map(product => (
82
- <Box key={product.id} flex={1} padding="xs">
83
- <TouchableProduct product={product}>
84
- <ProductCard
85
- shopId="gid://shopify/Shop/62104633599"
86
- product={product}
87
- />
88
- </TouchableProduct>
89
- </Box>
90
- ))}
91
- </Box>
92
- </>
93
- ) : null}
55
+ <Text variant="subtitle">Let's explore the key features.</Text>
94
56
  <Divider marginVertical="s" />
95
57
 
96
58
  <Text marginBottom="s">
97
- You can add interactions to your Mini with inputs.
59
+ Search for products using the{' '}
60
+ <Text color="text-brand">useProductSearch</Text> hook. This hook
61
+ provides real-time product search with filtering capabilities.
98
62
  </Text>
99
63
  <Box>
100
64
  <TextField
101
- placeholder="I love Minis because..."
102
- value={textFieldValue}
103
- onChangeText={setTextFieldValue}
65
+ placeholder="Skateboard"
66
+ value={searchQuery}
67
+ onChangeText={setSearchQuery}
104
68
  />
105
- {textFieldValue ? (
106
- <Text marginTop="xs">I love Minis because {textFieldValue}</Text>
107
- ) : null}
108
69
  </Box>
70
+
109
71
  <Divider marginVertical="s" />
110
72
 
111
- <Text>Radio buttons</Text>
112
- {radioButtonOptions.map(option => (
113
- <Box key={option} marginVertical="xs">
114
- <RadioButton
115
- variant="tertiary"
116
- text={option}
117
- active={selectedOption === option}
118
- onPress={() => setSelectedOption(option)}
119
- />
120
- </Box>
121
- ))}
73
+ <Box>
74
+ <Text marginBottom="s">
75
+ Display product collections using the{' '}
76
+ <Text color="text-brand">ProductCard</Text> and{' '}
77
+ <Text color="text-brand">Shelf</Text> components. These components
78
+ handle layout, touch interactions, and product display
79
+ automatically.
80
+ </Text>
81
+ {loading ? (
82
+ <Text>Loading products...</Text>
83
+ ) : products && products.length > 0 ? (
84
+ <Box height={200}>
85
+ <Shelf
86
+ data={products}
87
+ renderItem={({item}) => (
88
+ <Box key={item.id} width={150}>
89
+ <ProductCard product={item} />
90
+ </Box>
91
+ )}
92
+ />
93
+ </Box>
94
+ ) : (
95
+ <Text>No products found</Text>
96
+ )}
97
+ </Box>
98
+
122
99
  <Divider marginVertical="s" />
123
100
 
101
+ <Text variant="subtitle" marginBottom="s">
102
+ Check our docs to learn more about the powerful product hooks:
103
+ </Text>
104
+
105
+ <Text color="text-brand">
106
+ - useRecommendedProducts:
107
+ <Text> Get personalized product recommendations</Text>
108
+ </Text>
109
+ <Text color="text-brand">
110
+ - useSavedProducts:<Text> Access user's saved products</Text>
111
+ </Text>
112
+ <Text color="text-brand">
113
+ - useRecentProducts:<Text> Display recently viewed products</Text>
114
+ </Text>
115
+ <Divider marginVertical="s" />
124
116
  <Text marginBottom="s">
125
117
  Ready for more? Let&apos;s explore native capabilities in the
126
118
  screen.