sunpeak 0.10.5 → 0.10.6

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.
@@ -212,6 +212,18 @@ export async function build(projectRoot = process.cwd()) {
212
212
  mkdirSync(distOutDir, { recursive: true });
213
213
  }
214
214
 
215
+ // Copy and process resource metadata JSON file
216
+ const srcJson = path.join(resourceDir, `${componentFile}.json`);
217
+ const destJson = path.join(distOutDir, `${kebabName}.json`);
218
+
219
+ if (existsSync(srcJson)) {
220
+ const meta = JSON.parse(readFileSync(srcJson, 'utf-8'));
221
+ // Generate URI using resource name and build timestamp
222
+ meta.uri = `ui://${meta.name}-${timestamp}`;
223
+ writeFileSync(destJson, JSON.stringify(meta, null, 2));
224
+ console.log(`✓ Generated ${kebabName}/${kebabName}.json (uri: ${meta.uri})`);
225
+ }
226
+
215
227
  // Copy built JS file
216
228
  const builtFile = path.join(buildOutDir, output);
217
229
  const destFile = path.join(distOutDir, output);
@@ -229,18 +241,6 @@ export async function build(projectRoot = process.cwd()) {
229
241
  process.exit(1);
230
242
  }
231
243
 
232
- // Copy and process resource metadata JSON file
233
- const srcJson = path.join(resourceDir, `${componentFile}.json`);
234
- const destJson = path.join(distOutDir, `${kebabName}.json`);
235
-
236
- if (existsSync(srcJson)) {
237
- const meta = JSON.parse(readFileSync(srcJson, 'utf-8'));
238
- // Generate URI using resource name and build timestamp
239
- meta.uri = `ui://${meta.name}-${timestamp}`;
240
- writeFileSync(destJson, JSON.stringify(meta, null, 2));
241
- console.log(`✓ Generated ${kebabName}/${kebabName}.json (uri: ${meta.uri})`);
242
- }
243
-
244
244
  // Copy affiliated simulation files (matching {resource}-*-simulation.json pattern)
245
245
  const simulationFiles = readdirSync(resourceDir)
246
246
  .filter(file => isSimulationFile(file, kebabName));
@@ -265,7 +265,7 @@ export async function build(projectRoot = process.cwd()) {
265
265
  console.log('\nBuilt resources:');
266
266
  for (const { kebabName, distOutDir } of resourceFiles) {
267
267
  const files = readdirSync(distOutDir);
268
- console.log(` ${kebabName}/: ${files.join(', ')}`);
268
+ console.log(` ${kebabName}`);
269
269
  }
270
270
  }
271
271
 
@@ -348,10 +348,9 @@ Examples:
348
348
  const result = await pushResource(resource, repository, options.tags, credentials.access_token, d);
349
349
  const simCount = resource.simulations?.length || 0;
350
350
  const simInfo = simCount > 0 ? `, ${simCount} simulation(s)` : '';
351
- d.console.log(`✓ Pushed ${resource.name} (id: ${result.id}${simInfo})`);
352
- if (result.tags?.length > 0) {
353
- d.console.log(` Tags: ${result.tags.join(', ')}`);
354
- }
351
+ const tagInfo = result.tags?.length > 0 ? `, tag(s): ${result.tags.join(', ')}` : '';
352
+ d.console.log(`✓ Pushed ${resource.name}${simInfo}${tagInfo}`);
353
+ d.console.log(` ${d.apiUrl}/resources/${result.id}`);
355
354
  successCount++;
356
355
  } catch (error) {
357
356
  d.console.error(`✗ Failed to push ${resource.name}: ${error.message}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sunpeak",
3
- "version": "0.10.5",
3
+ "version": "0.10.6",
4
4
  "description": "The ChatGPT App framework. Quickstart, build, & test your ChatGPT App locally!",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://albums-mkd501pp"
15
+ "uri": "ui://albums-mkd8cub2"
16
16
  }
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://carousel-mkd501pp"
15
+ "uri": "ui://carousel-mkd8cub2"
16
16
  }
@@ -18,5 +18,5 @@
18
18
  ]
19
19
  }
20
20
  },
21
- "uri": "ui://map-mkd501pp"
21
+ "uri": "ui://map-mkd8cub2"
22
22
  }
@@ -12,5 +12,5 @@
12
12
  ]
13
13
  }
14
14
  },
15
- "uri": "ui://review-mkd501pp"
15
+ "uri": "ui://review-mkd8cub2"
16
16
  }
@@ -7,115 +7,115 @@
7
7
  "react": {
8
8
  "src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/index.js",
9
9
  "file": "react.js",
10
- "fileHash": "a01e02ec",
10
+ "fileHash": "aa5a3a0c",
11
11
  "needsInterop": true
12
12
  },
13
13
  "react-dom": {
14
14
  "src": "../../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/index.js",
15
15
  "file": "react-dom.js",
16
- "fileHash": "852dc6cf",
16
+ "fileHash": "126dcd53",
17
17
  "needsInterop": true
18
18
  },
19
19
  "react/jsx-dev-runtime": {
20
20
  "src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-dev-runtime.js",
21
21
  "file": "react_jsx-dev-runtime.js",
22
- "fileHash": "19be4e5d",
22
+ "fileHash": "d15f2c08",
23
23
  "needsInterop": true
24
24
  },
25
25
  "react/jsx-runtime": {
26
26
  "src": "../../../../node_modules/.pnpm/react@19.2.3/node_modules/react/jsx-runtime.js",
27
27
  "file": "react_jsx-runtime.js",
28
- "fileHash": "acf17278",
28
+ "fileHash": "787fb4d9",
29
29
  "needsInterop": true
30
30
  },
31
31
  "@openai/apps-sdk-ui/components/Avatar": {
32
32
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Avatar/index.js",
33
33
  "file": "@openai_apps-sdk-ui_components_Avatar.js",
34
- "fileHash": "fcc2ba72",
34
+ "fileHash": "4f7dab6b",
35
35
  "needsInterop": false
36
36
  },
37
37
  "@openai/apps-sdk-ui/components/Button": {
38
38
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Button/index.js",
39
39
  "file": "@openai_apps-sdk-ui_components_Button.js",
40
- "fileHash": "03eb92c6",
40
+ "fileHash": "f89c0ea2",
41
41
  "needsInterop": false
42
42
  },
43
43
  "@openai/apps-sdk-ui/components/Checkbox": {
44
44
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Checkbox/index.js",
45
45
  "file": "@openai_apps-sdk-ui_components_Checkbox.js",
46
- "fileHash": "7e9ec6df",
46
+ "fileHash": "0f65736a",
47
47
  "needsInterop": false
48
48
  },
49
49
  "@openai/apps-sdk-ui/components/Icon": {
50
50
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.7__@types+react@19._90324f97b7190ccfdbe40a9e8bef3385/node_modules/@openai/apps-sdk-ui/dist/es/components/Icon/index.js",
51
51
  "file": "@openai_apps-sdk-ui_components_Icon.js",
52
- "fileHash": "f11a24eb",
52
+ "fileHash": "5a9171de",
53
53
  "needsInterop": false
54
54
  },
55
55
  "@openai/apps-sdk-ui/components/Input": {
56
56
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Input/index.js",
57
57
  "file": "@openai_apps-sdk-ui_components_Input.js",
58
- "fileHash": "ff509e2c",
58
+ "fileHash": "0ec48633",
59
59
  "needsInterop": false
60
60
  },
61
61
  "@openai/apps-sdk-ui/components/SegmentedControl": {
62
62
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/SegmentedControl/index.js",
63
63
  "file": "@openai_apps-sdk-ui_components_SegmentedControl.js",
64
- "fileHash": "7a881b72",
64
+ "fileHash": "e0ebbe92",
65
65
  "needsInterop": false
66
66
  },
67
67
  "@openai/apps-sdk-ui/components/Select": {
68
68
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Select/index.js",
69
69
  "file": "@openai_apps-sdk-ui_components_Select.js",
70
- "fileHash": "49917d45",
70
+ "fileHash": "842e7bd7",
71
71
  "needsInterop": false
72
72
  },
73
73
  "@openai/apps-sdk-ui/components/Textarea": {
74
74
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/components/Textarea/index.js",
75
75
  "file": "@openai_apps-sdk-ui_components_Textarea.js",
76
- "fileHash": "5deb9460",
76
+ "fileHash": "35457429",
77
77
  "needsInterop": false
78
78
  },
79
79
  "@openai/apps-sdk-ui/theme": {
80
80
  "src": "../../../../node_modules/.pnpm/@openai+apps-sdk-ui@0.2.1_@types+react-dom@19.2.3_@types+react@19.2.8__@types+react@19._10810175a7ab45acace17e46639bb69b/node_modules/@openai/apps-sdk-ui/dist/es/lib/theme.js",
81
81
  "file": "@openai_apps-sdk-ui_theme.js",
82
- "fileHash": "276bc136",
82
+ "fileHash": "663e5ef3",
83
83
  "needsInterop": false
84
84
  },
85
85
  "clsx": {
86
86
  "src": "../../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs",
87
87
  "file": "clsx.js",
88
- "fileHash": "cdb5498b",
88
+ "fileHash": "d9283f57",
89
89
  "needsInterop": false
90
90
  },
91
91
  "embla-carousel-react": {
92
92
  "src": "../../../../node_modules/.pnpm/embla-carousel-react@8.6.0_react@19.2.3/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js",
93
93
  "file": "embla-carousel-react.js",
94
- "fileHash": "7cacdeeb",
94
+ "fileHash": "349da7d8",
95
95
  "needsInterop": false
96
96
  },
97
97
  "embla-carousel-wheel-gestures": {
98
98
  "src": "../../../../node_modules/.pnpm/embla-carousel-wheel-gestures@8.1.0_embla-carousel@8.6.0/node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js",
99
99
  "file": "embla-carousel-wheel-gestures.js",
100
- "fileHash": "3a9ca925",
100
+ "fileHash": "3ef6648b",
101
101
  "needsInterop": false
102
102
  },
103
103
  "mapbox-gl": {
104
104
  "src": "../../../../node_modules/.pnpm/mapbox-gl@3.17.0/node_modules/mapbox-gl/dist/mapbox-gl.js",
105
105
  "file": "mapbox-gl.js",
106
- "fileHash": "88e67be1",
106
+ "fileHash": "5b612d49",
107
107
  "needsInterop": true
108
108
  },
109
109
  "react-dom/client": {
110
110
  "src": "../../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/client.js",
111
111
  "file": "react-dom_client.js",
112
- "fileHash": "ecc5d1cf",
112
+ "fileHash": "a2bbcfff",
113
113
  "needsInterop": true
114
114
  },
115
115
  "tailwind-merge": {
116
116
  "src": "../../../../node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs",
117
117
  "file": "tailwind-merge.js",
118
- "fileHash": "7c8f6702",
118
+ "fileHash": "d8f65d97",
119
119
  "needsInterop": false
120
120
  }
121
121
  },
@@ -1 +1 @@
1
- {"version":"4.0.16","results":[[":src/resources/carousel/carousel-resource.test.tsx",{"duration":220.06690000000003,"failed":false}],[":src/resources/albums/components/albums.test.tsx",{"duration":379.385309,"failed":false}],[":src/resources/review/review-resource.test.tsx",{"duration":537.4127110000002,"failed":false}],[":src/resources/map/components/map-view.test.tsx",{"duration":110.59915100000012,"failed":false}],[":src/resources/map/components/place-inspector.test.tsx",{"duration":410.08161999999993,"failed":false}],[":src/resources/albums/components/fullscreen-viewer.test.tsx",{"duration":233.9370899999999,"failed":false}],[":src/resources/map/components/place-list.test.tsx",{"duration":163.80220499999996,"failed":false}],[":src/resources/map/components/place-card.test.tsx",{"duration":381.8033540000001,"failed":false}],[":src/resources/map/components/place-carousel.test.tsx",{"duration":407.8787040000002,"failed":false}],[":src/resources/albums/components/album-carousel.test.tsx",{"duration":89.49945000000002,"failed":false}],[":src/resources/carousel/components/carousel.test.tsx",{"duration":72.2798459999999,"failed":false}],[":src/resources/map/map-resource.test.tsx",{"duration":270.91068300000006,"failed":false}],[":src/resources/albums/albums-resource.test.tsx",{"duration":263.16983600000003,"failed":false}],[":src/resources/albums/components/film-strip.test.tsx",{"duration":491.0817860000002,"failed":false}],[":src/resources/albums/components/album-card.test.tsx",{"duration":319.74282000000017,"failed":false}],[":src/resources/carousel/components/card.test.tsx",{"duration":88.84511300000008,"failed":false}]]}
1
+ {"version":"4.0.16","results":[[":src/resources/review/review-resource.test.tsx",{"duration":553.6102520000002,"failed":false}],[":src/resources/carousel/carousel-resource.test.tsx",{"duration":237.81386599999996,"failed":false}],[":src/resources/albums/components/albums.test.tsx",{"duration":356.660584,"failed":false}],[":src/resources/map/components/map-view.test.tsx",{"duration":74.22177499999998,"failed":false}],[":src/resources/map/components/place-inspector.test.tsx",{"duration":412.39553099999966,"failed":false}],[":src/resources/albums/components/fullscreen-viewer.test.tsx",{"duration":275.8819410000001,"failed":false}],[":src/resources/map/components/place-list.test.tsx",{"duration":177.16193999999996,"failed":false}],[":src/resources/map/components/place-card.test.tsx",{"duration":356.5837899999999,"failed":false}],[":src/resources/map/components/place-carousel.test.tsx",{"duration":428.04780200000005,"failed":false}],[":src/resources/albums/components/album-carousel.test.tsx",{"duration":97.15666699999997,"failed":false}],[":src/resources/carousel/components/carousel.test.tsx",{"duration":78.08477199999993,"failed":false}],[":src/resources/map/map-resource.test.tsx",{"duration":296.47909900000013,"failed":false}],[":src/resources/albums/albums-resource.test.tsx",{"duration":266.0843010000001,"failed":false}],[":src/resources/albums/components/film-strip.test.tsx",{"duration":481.53560500000003,"failed":false}],[":src/resources/albums/components/album-card.test.tsx",{"duration":363.6167539999999,"failed":false}],[":src/resources/carousel/components/card.test.tsx",{"duration":84.04759899999999,"failed":false}]]}