create-ollie-shop 1.3.0 → 1.3.1
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/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> create-ollie-shop@1.3.
|
|
2
|
+
> create-ollie-shop@1.3.1 build /home/runner/work/ollie-shop/ollie-shop/packages/create-ollie-shop
|
|
3
3
|
> tsup
|
|
4
4
|
|
|
5
5
|
[34mCLI[39m Building entry: src/index.ts
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mESM[39m Build start
|
|
12
12
|
[32mESM[39m [1mdist/index.js [22m[32m7.76 KB[39m
|
|
13
|
-
[32mESM[39m ⚡️ Build success in
|
|
13
|
+
[32mESM[39m ⚡️ Build success in 176ms
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# create-ollie-shop
|
|
2
2
|
|
|
3
|
+
## 1.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 7c76974: Remove two orphaned files from `template/.claude/` that no longer have any consumer: `build-component.mjs` (one-shot esbuild wrapper used by the old `capability.studio_harness` skill) and `registry.json` (loading-order manifest for the old `.claude/skills/*.md` + `.claude/agents/*.md` files removed earlier). Both referenced content that lives in the standardized `@ollie-shop/skills` package now.
|
|
8
|
+
|
|
3
9
|
## 1.3.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// Server-less, one-shot build for a single checkout component.
|
|
2
|
-
//
|
|
3
|
-
// This is the canonical build the agent runs in the studio loop — no dev server,
|
|
4
|
-
// no websocket. It mirrors the platform build (the options below match
|
|
5
|
-
// @ollie-shop/cli's createBuildContext) so that what you PREVIEW equals what you
|
|
6
|
-
// DEPLOY. Keep these options in sync with the CLI if the platform build changes.
|
|
7
|
-
//
|
|
8
|
-
// Usage: node .claude/build-component.mjs <ComponentName>
|
|
9
|
-
// Output: JSON on stdout -> { name, id, slot, source, css, errors }
|
|
10
|
-
// - source: bundled CJS (sets module.exports.default; the checkout runtime
|
|
11
|
-
// mounts it via new Function). CSS-module class maps are baked in.
|
|
12
|
-
// - css: bundled stylesheet TEXT (inject via the gateway as a <style>).
|
|
13
|
-
// The agent then posts { id, slot, source, css } through the studio message
|
|
14
|
-
// gateway — text only; URLs/blobs can't cross the iframe origin boundary.
|
|
15
|
-
|
|
16
|
-
import { readFile } from "node:fs/promises";
|
|
17
|
-
import os from "node:os";
|
|
18
|
-
import path from "node:path";
|
|
19
|
-
import { build } from "esbuild";
|
|
20
|
-
|
|
21
|
-
const name = process.argv[2];
|
|
22
|
-
if (!name) {
|
|
23
|
-
process.stdout.write(
|
|
24
|
-
JSON.stringify({
|
|
25
|
-
errors: ["usage: node .claude/build-component.mjs <ComponentName>"],
|
|
26
|
-
}),
|
|
27
|
-
);
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const cwd = process.cwd();
|
|
32
|
-
const dir = path.join(cwd, "components", name);
|
|
33
|
-
|
|
34
|
-
// meta.json carries the component's linked id (null until `ollieshop component
|
|
35
|
-
// create`) and its target slot.
|
|
36
|
-
let meta = {};
|
|
37
|
-
try {
|
|
38
|
-
meta = JSON.parse(await readFile(path.join(dir, "meta.json"), "utf8"));
|
|
39
|
-
} catch {
|
|
40
|
-
// no meta.json yet — fall back to a studio-* id and a null slot
|
|
41
|
-
}
|
|
42
|
-
const id = meta.id ?? `studio-${name}`; // studio merges by slot; a stable id is enough for preview
|
|
43
|
-
const slot = meta.slot ?? null;
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
const result = await build({
|
|
47
|
-
entryPoints: { [`${name}/index`]: path.join(dir, "index.tsx") },
|
|
48
|
-
bundle: true,
|
|
49
|
-
write: false,
|
|
50
|
-
// outdir is required so CSS imports get an output path; nothing is written to disk.
|
|
51
|
-
outdir: path.join(os.tmpdir(), "ollie-build-out"),
|
|
52
|
-
format: "cjs", // runtime mounts module.exports.default
|
|
53
|
-
platform: "browser",
|
|
54
|
-
target: "es2020",
|
|
55
|
-
jsx: "automatic",
|
|
56
|
-
// provided by the checkout runtime via the require() shim — never bundle these
|
|
57
|
-
external: ["react", "react-dom", "next", "@ollie-shop/sdk", "next-intl"],
|
|
58
|
-
loader: {
|
|
59
|
-
".tsx": "tsx",
|
|
60
|
-
".ts": "ts",
|
|
61
|
-
".js": "js",
|
|
62
|
-
".jsx": "jsx",
|
|
63
|
-
".css": "css",
|
|
64
|
-
},
|
|
65
|
-
logLevel: "silent",
|
|
66
|
-
});
|
|
67
|
-
const source =
|
|
68
|
-
result.outputFiles.find((f) => f.path.endsWith(".js"))?.text ?? "";
|
|
69
|
-
const css =
|
|
70
|
-
result.outputFiles.find((f) => f.path.endsWith(".css"))?.text ?? "";
|
|
71
|
-
process.stdout.write(
|
|
72
|
-
JSON.stringify({ name, id, slot, source, css, errors: [] }),
|
|
73
|
-
);
|
|
74
|
-
} catch (e) {
|
|
75
|
-
const errors = e.errors?.map(
|
|
76
|
-
(x) => `${x.location?.file ?? ""}:${x.location?.line ?? ""} ${x.text}`,
|
|
77
|
-
) ?? [e.message];
|
|
78
|
-
process.stdout.write(
|
|
79
|
-
JSON.stringify({ name, id, slot, source: "", css: "", errors }),
|
|
80
|
-
);
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "1.1.0",
|
|
3
|
-
"_maintenance": "Ollie Checkout Skill Runtime Registry. Defines the deterministic loading order for all skills. To add a new skill: create the .md file in skills/, add it here in the correct section, and reference it in the agent file.",
|
|
4
|
-
"_skillDescriptions": {
|
|
5
|
-
"core.identity": "Agent persona, priorities and communication style",
|
|
6
|
-
"core.rules": "Agent behavior rules and component code rules",
|
|
7
|
-
"core.constraints": "SDK usage rules, domain isolation, and hard limits for components",
|
|
8
|
-
"agent.components": "4-step workflow for component creation (inputs, questions, output, quality)",
|
|
9
|
-
"capability.react": "React/TypeScript standards: functional components, hooks, naming, prop patterns",
|
|
10
|
-
"capability.sdk": "Full @ollie-shop/sdk reference: hooks, types, action types, integration pattern",
|
|
11
|
-
"capability.component_architecture": "Folder structure, CSS naming convention, image handling, README template",
|
|
12
|
-
"capability.design_reference": "Ingest a live site / Figma / screenshot via the browser, extract structure + tokens, produce a build spec",
|
|
13
|
-
"capability.studio_harness": "Build a component server-less (esbuild) and inject its source into the real checkout via the hosted studio harness at admin.ollie.shop (chrome-devtools MCP), then screenshot and iterate"
|
|
14
|
-
},
|
|
15
|
-
"core": ["core.identity", "core.rules", "core.constraints"],
|
|
16
|
-
"agents": {
|
|
17
|
-
"components": [
|
|
18
|
-
"agent.components",
|
|
19
|
-
"capability.react",
|
|
20
|
-
"capability.sdk",
|
|
21
|
-
"capability.component_architecture"
|
|
22
|
-
],
|
|
23
|
-
"checkout_studio": [
|
|
24
|
-
"agent.components",
|
|
25
|
-
"capability.react",
|
|
26
|
-
"capability.sdk",
|
|
27
|
-
"capability.component_architecture",
|
|
28
|
-
"capability.design_reference",
|
|
29
|
-
"capability.studio_harness"
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// Server-less, one-shot build for a single checkout component.
|
|
2
|
-
//
|
|
3
|
-
// This is the canonical build the agent runs in the studio loop — no dev server,
|
|
4
|
-
// no websocket. It mirrors the platform build (the options below match
|
|
5
|
-
// @ollie-shop/cli's createBuildContext) so that what you PREVIEW equals what you
|
|
6
|
-
// DEPLOY. Keep these options in sync with the CLI if the platform build changes.
|
|
7
|
-
//
|
|
8
|
-
// Usage: node .claude/build-component.mjs <ComponentName>
|
|
9
|
-
// Output: JSON on stdout -> { name, id, slot, source, css, errors }
|
|
10
|
-
// - source: bundled CJS (sets module.exports.default; the checkout runtime
|
|
11
|
-
// mounts it via new Function). CSS-module class maps are baked in.
|
|
12
|
-
// - css: bundled stylesheet TEXT (inject via the gateway as a <style>).
|
|
13
|
-
// The agent then posts { id, slot, source, css } through the studio message
|
|
14
|
-
// gateway — text only; URLs/blobs can't cross the iframe origin boundary.
|
|
15
|
-
|
|
16
|
-
import { readFile } from "node:fs/promises";
|
|
17
|
-
import os from "node:os";
|
|
18
|
-
import path from "node:path";
|
|
19
|
-
import { build } from "esbuild";
|
|
20
|
-
|
|
21
|
-
const name = process.argv[2];
|
|
22
|
-
if (!name) {
|
|
23
|
-
process.stdout.write(
|
|
24
|
-
JSON.stringify({
|
|
25
|
-
errors: ["usage: node .claude/build-component.mjs <ComponentName>"],
|
|
26
|
-
}),
|
|
27
|
-
);
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const cwd = process.cwd();
|
|
32
|
-
const dir = path.join(cwd, "components", name);
|
|
33
|
-
|
|
34
|
-
// meta.json carries the component's linked id (null until `ollieshop component
|
|
35
|
-
// create`) and its target slot.
|
|
36
|
-
let meta = {};
|
|
37
|
-
try {
|
|
38
|
-
meta = JSON.parse(await readFile(path.join(dir, "meta.json"), "utf8"));
|
|
39
|
-
} catch {
|
|
40
|
-
// no meta.json yet — fall back to a studio-* id and a null slot
|
|
41
|
-
}
|
|
42
|
-
const id = meta.id ?? `studio-${name}`; // studio merges by slot; a stable id is enough for preview
|
|
43
|
-
const slot = meta.slot ?? null;
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
const result = await build({
|
|
47
|
-
entryPoints: { [`${name}/index`]: path.join(dir, "index.tsx") },
|
|
48
|
-
bundle: true,
|
|
49
|
-
write: false,
|
|
50
|
-
// outdir is required so CSS imports get an output path; nothing is written to disk.
|
|
51
|
-
outdir: path.join(os.tmpdir(), "ollie-build-out"),
|
|
52
|
-
format: "cjs", // runtime mounts module.exports.default
|
|
53
|
-
platform: "browser",
|
|
54
|
-
target: "es2020",
|
|
55
|
-
jsx: "automatic",
|
|
56
|
-
// provided by the checkout runtime via the require() shim — never bundle these
|
|
57
|
-
external: ["react", "react-dom", "next", "@ollie-shop/sdk", "next-intl"],
|
|
58
|
-
loader: {
|
|
59
|
-
".tsx": "tsx",
|
|
60
|
-
".ts": "ts",
|
|
61
|
-
".js": "js",
|
|
62
|
-
".jsx": "jsx",
|
|
63
|
-
".css": "css",
|
|
64
|
-
},
|
|
65
|
-
logLevel: "silent",
|
|
66
|
-
});
|
|
67
|
-
const source =
|
|
68
|
-
result.outputFiles.find((f) => f.path.endsWith(".js"))?.text ?? "";
|
|
69
|
-
const css =
|
|
70
|
-
result.outputFiles.find((f) => f.path.endsWith(".css"))?.text ?? "";
|
|
71
|
-
process.stdout.write(
|
|
72
|
-
JSON.stringify({ name, id, slot, source, css, errors: [] }),
|
|
73
|
-
);
|
|
74
|
-
} catch (e) {
|
|
75
|
-
const errors = e.errors?.map(
|
|
76
|
-
(x) => `${x.location?.file ?? ""}:${x.location?.line ?? ""} ${x.text}`,
|
|
77
|
-
) ?? [e.message];
|
|
78
|
-
process.stdout.write(
|
|
79
|
-
JSON.stringify({ name, id, slot, source: "", css: "", errors }),
|
|
80
|
-
);
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": "1.1.0",
|
|
3
|
-
"_maintenance": "Ollie Checkout Skill Runtime Registry. Defines the deterministic loading order for all skills. To add a new skill: create the .md file in skills/, add it here in the correct section, and reference it in the agent file.",
|
|
4
|
-
"_skillDescriptions": {
|
|
5
|
-
"core.identity": "Agent persona, priorities and communication style",
|
|
6
|
-
"core.rules": "Agent behavior rules and component code rules",
|
|
7
|
-
"core.constraints": "SDK usage rules, domain isolation, and hard limits for components",
|
|
8
|
-
"agent.components": "4-step workflow for component creation (inputs, questions, output, quality)",
|
|
9
|
-
"capability.react": "React/TypeScript standards: functional components, hooks, naming, prop patterns",
|
|
10
|
-
"capability.sdk": "Full @ollie-shop/sdk reference: hooks, types, action types, integration pattern",
|
|
11
|
-
"capability.component_architecture": "Folder structure, CSS naming convention, image handling, README template",
|
|
12
|
-
"capability.design_reference": "Ingest a live site / Figma / screenshot via the browser, extract structure + tokens, produce a build spec",
|
|
13
|
-
"capability.studio_harness": "Build a component server-less (esbuild) and inject its source into the real checkout via the hosted studio harness at admin.ollie.shop (chrome-devtools MCP), then screenshot and iterate"
|
|
14
|
-
},
|
|
15
|
-
"core": ["core.identity", "core.rules", "core.constraints"],
|
|
16
|
-
"agents": {
|
|
17
|
-
"components": [
|
|
18
|
-
"agent.components",
|
|
19
|
-
"capability.react",
|
|
20
|
-
"capability.sdk",
|
|
21
|
-
"capability.component_architecture"
|
|
22
|
-
],
|
|
23
|
-
"checkout_studio": [
|
|
24
|
-
"agent.components",
|
|
25
|
-
"capability.react",
|
|
26
|
-
"capability.sdk",
|
|
27
|
-
"capability.component_architecture",
|
|
28
|
-
"capability.design_reference",
|
|
29
|
-
"capability.studio_harness"
|
|
30
|
-
]
|
|
31
|
-
}
|
|
32
|
-
}
|