cmx-sdk 0.2.6 → 0.2.8

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 (48) hide show
  1. package/README.md +16 -0
  2. package/dist/add-studio-YUDYE2OH.js +72 -0
  3. package/dist/{chunk-XPP5MZKG.js → chunk-7TDMLYBI.js} +17 -45
  4. package/dist/chunk-EDXXR5BE.js +80 -0
  5. package/dist/chunk-EZMBZWH7.js +121 -0
  6. package/dist/chunk-FPQYL5GE.js +128 -0
  7. package/dist/chunk-NZQ6SBFS.js +35 -0
  8. package/dist/cli.js +1152 -619
  9. package/dist/index.d.ts +253 -385
  10. package/dist/index.js +154 -25
  11. package/dist/index.js.map +1 -1
  12. package/dist/{init-NDNG5Q5T.js → init-FLRQXJX4.js} +23 -51
  13. package/dist/interactive-menu-FYVOQSTL.js +80 -0
  14. package/dist/studio-HAS6DYLO.js +8 -0
  15. package/dist/update-sdk-KJZ6VB4M.js +10 -0
  16. package/dist/update-studio-TWCYSYIS.js +14 -0
  17. package/package.json +18 -10
  18. package/templates/AGENTS.md +173 -0
  19. package/templates/CLAUDE.md +28 -0
  20. package/templates/claude/commands/check.md +64 -0
  21. package/templates/claude/commands/next-action.md +66 -0
  22. package/templates/claude/skills/cmx-cache/SKILL.md +50 -0
  23. package/templates/claude/skills/cmx-cache/references/cache-patterns.md +153 -0
  24. package/templates/claude/skills/cmx-component/SKILL.md +108 -0
  25. package/templates/claude/skills/cmx-component/references/component-schema.md +123 -0
  26. package/templates/claude/skills/cmx-content/SKILL.md +158 -0
  27. package/templates/claude/skills/cmx-content/references/migration-patterns.md +120 -0
  28. package/templates/claude/skills/cmx-content/references/seed-patterns.md +146 -0
  29. package/templates/claude/skills/cmx-dev/SKILL.md +266 -0
  30. package/templates/claude/skills/cmx-dev/references/api-patterns.md +220 -0
  31. package/templates/claude/skills/cmx-dev/references/cli-reference.md +54 -0
  32. package/templates/claude/skills/cmx-form/SKILL.md +103 -0
  33. package/templates/claude/skills/cmx-form/references/form-template.md +152 -0
  34. package/templates/claude/skills/cmx-migrate/SKILL.md +501 -0
  35. package/templates/claude/skills/cmx-migrate/references/analysis-guide.md +127 -0
  36. package/templates/claude/skills/cmx-migrate/references/html-to-mdx.md +99 -0
  37. package/templates/claude/skills/cmx-migrate/references/intermediate-format.md +196 -0
  38. package/templates/claude/skills/cmx-migrate/references/tool-setup.md +150 -0
  39. package/templates/claude/skills/cmx-schema/SKILL.md +159 -0
  40. package/templates/claude/skills/cmx-schema/references/field-types.md +164 -0
  41. package/templates/claude/skills/cmx-schema/references/migration-scenarios.md +44 -0
  42. package/templates/claude/skills/cmx-seo/SKILL.md +54 -0
  43. package/templates/claude/skills/cmx-seo/references/seo-patterns.md +216 -0
  44. package/templates/claude/skills/cmx-style/SKILL.md +48 -0
  45. package/templates/claude/skills/cmx-style/references/style-patterns.md +114 -0
  46. package/dist/add-studio-J7M7KOWM.js +0 -125
  47. package/dist/interactive-menu-RPPCBCOU.js +0 -66
  48. package/dist/studio-3YGVKWS4.js +0 -7
@@ -1,125 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- cleanupTempFile,
4
- downloadTarball
5
- } from "./chunk-IIQLQIDP.js";
6
-
7
- // src/commands/add-studio.ts
8
- import { existsSync, readFileSync, mkdirSync } from "fs";
9
- import { join, resolve } from "path";
10
- import { execSync } from "child_process";
11
- import { config } from "dotenv";
12
- import { extract } from "tar";
13
- var REPO_OWNER = "kzkm-lab";
14
- var REPO_NAME = "cmx-starter-kit";
15
- var REPO_BRANCH = "main";
16
- function findProjectRoot() {
17
- let dir = resolve(process.cwd());
18
- const root = resolve("/");
19
- while (dir !== root) {
20
- const pkgPath = join(dir, "package.json");
21
- if (existsSync(pkgPath)) {
22
- try {
23
- const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
24
- if (pkg.dependencies?.["cmx-sdk"] || pkg.devDependencies?.["cmx-sdk"]) {
25
- return dir;
26
- }
27
- } catch {
28
- }
29
- }
30
- dir = resolve(dir, "..");
31
- }
32
- return null;
33
- }
34
- async function downloadStudio(targetDir) {
35
- const tarballUrl = `https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/tarball/${REPO_BRANCH}`;
36
- const tmpFile = join(targetDir, ".tmp-studio-tarball.tar.gz");
37
- await downloadTarball(tarballUrl, tmpFile, {
38
- headers: { Accept: "application/vnd.github+json" }
39
- });
40
- const studioDir = join(targetDir, ".cmx", "studio");
41
- mkdirSync(studioDir, { recursive: true });
42
- await extract({
43
- file: tmpFile,
44
- cwd: studioDir,
45
- strip: 2,
46
- // {owner}-{repo}-{hash}/.cmx/studio/ → 2階層スキップ
47
- filter: (path) => {
48
- const parts = path.split("/");
49
- return parts.length >= 3 && parts[1] === ".cmx" && parts[2] === "studio";
50
- }
51
- });
52
- cleanupTempFile(tmpFile);
53
- }
54
- async function downloadStudioViaApi(targetDir, apiUrl, apiKey) {
55
- const downloadUrl = `${apiUrl}/api/v1/sdk/download/studio`;
56
- const tmpFile = join(targetDir, ".tmp-studio-tarball.tar.gz");
57
- await downloadTarball(downloadUrl, tmpFile, {
58
- headers: { Authorization: `Bearer ${apiKey}` }
59
- });
60
- const studioDir = join(targetDir, ".cmx", "studio");
61
- mkdirSync(studioDir, { recursive: true });
62
- await extract({
63
- file: tmpFile,
64
- cwd: studioDir,
65
- strip: 2,
66
- filter: (path) => {
67
- const parts = path.split("/");
68
- return parts.length >= 3 && parts[1] === ".cmx" && parts[2] === "studio";
69
- }
70
- });
71
- cleanupTempFile(tmpFile);
72
- }
73
- async function addStudio() {
74
- console.log("\n CMX Studio \u3092\u8FFD\u52A0\u4E2D...\n");
75
- const projectRoot = findProjectRoot();
76
- if (!projectRoot) {
77
- console.error(" \u274C CMX \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093");
78
- console.error(" package.json \u306B cmx-sdk \u4F9D\u5B58\u304C\u3042\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\n");
79
- process.exit(1);
80
- }
81
- const studioDir = join(projectRoot, ".cmx", "studio");
82
- if (existsSync(studioDir)) {
83
- console.error(" \u274C .cmx/studio/ \u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059");
84
- console.error(" \u518D\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B\u5834\u5408\u306F\u5148\u306B\u524A\u9664\u3057\u3066\u304F\u3060\u3055\u3044\n");
85
- process.exit(1);
86
- }
87
- config({ path: join(projectRoot, ".env") });
88
- const apiUrl = process.env.CMX_API_URL;
89
- const apiKey = process.env.CMX_API_KEY;
90
- const useApiDownload = !!(apiUrl && apiKey);
91
- console.log(" \u23F3 Studio \u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D...");
92
- try {
93
- if (useApiDownload) {
94
- await downloadStudioViaApi(projectRoot, apiUrl, apiKey);
95
- } else {
96
- await downloadStudio(projectRoot);
97
- }
98
- console.log(" \u2713 Studio \u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3057\u305F");
99
- } catch (error) {
100
- console.error("\n \u274C Studio \u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F");
101
- console.error(` ${error instanceof Error ? error.message : "\u4E0D\u660E\u306A\u30A8\u30E9\u30FC"}
102
- `);
103
- process.exit(1);
104
- }
105
- console.log("\n \u{1F4E6} Studio \u306E\u4F9D\u5B58\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D...");
106
- try {
107
- const pm = existsSync(join(projectRoot, "pnpm-lock.yaml")) ? "pnpm" : existsSync(join(projectRoot, "yarn.lock")) ? "yarn" : "npm";
108
- const installCmd = pm === "yarn" ? "yarn" : `${pm} install`;
109
- execSync(installCmd, { cwd: studioDir, stdio: "inherit" });
110
- } catch {
111
- console.error("\n \u26A0\uFE0F \u4F9D\u5B58\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F");
112
- console.error(" cd .cmx/studio && npm install \u3067\u624B\u52D5\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\n");
113
- }
114
- console.log(`
115
- \u2705 CMX Studio \u3092\u8FFD\u52A0\u3057\u307E\u3057\u305F\uFF01
116
-
117
- \u8D77\u52D5\u65B9\u6CD5:
118
- npx cmx-sdk studio # \u30B5\u30A4\u30C8 + Studio \u3092\u8D77\u52D5
119
- npm --prefix .cmx/studio run dev # Studio \u306E\u307F\u8D77\u52D5
120
- `);
121
- process.exit(0);
122
- }
123
- export {
124
- addStudio
125
- };
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // src/commands/interactive-menu.ts
4
- import { select } from "@inquirer/prompts";
5
- async function interactiveMenu() {
6
- console.log("\n CMX - \u30D8\u30C3\u30C9\u30EC\u30B9 CMS\n");
7
- const action = await select({
8
- message: "\u4F55\u3092\u3057\u307E\u3059\u304B?",
9
- choices: [
10
- { name: "\u65B0\u898F\u30B5\u30A4\u30C8\u3092\u4F5C\u6210", value: "init" },
11
- { name: "Studio \u3092\u8FFD\u52A0", value: "add-studio" },
12
- { name: "Studio \u3092\u8D77\u52D5", value: "studio" },
13
- { name: "\u578B\u3092\u751F\u6210", value: "codegen-types" },
14
- { name: "\u30DA\u30FC\u30B8\u3092\u751F\u6210", value: "codegen-pages" },
15
- { name: "\u30D8\u30EB\u30D7", value: "help" }
16
- ]
17
- });
18
- switch (action) {
19
- case "init": {
20
- const { init } = await import("./init-NDNG5Q5T.js");
21
- return init(void 0, {});
22
- }
23
- case "add-studio": {
24
- const { addStudio } = await import("./add-studio-J7M7KOWM.js");
25
- return addStudio();
26
- }
27
- case "studio": {
28
- const { studio } = await import("./studio-3YGVKWS4.js");
29
- return studio();
30
- }
31
- case "codegen-types": {
32
- console.log("\n npx cmx-sdk codegen types \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\n");
33
- process.exit(0);
34
- break;
35
- }
36
- case "codegen-pages": {
37
- console.log("\n npx cmx-sdk codegen pages \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\n");
38
- process.exit(0);
39
- break;
40
- }
41
- case "help": {
42
- console.log(`
43
- \u4F7F\u3044\u65B9:
44
- npx cmx-sdk init [project-name] \u65B0\u898F\u30B5\u30A4\u30C8\u3092\u4F5C\u6210
45
- npx cmx-sdk add-studio Studio \u3092\u8FFD\u52A0
46
- npx cmx-sdk studio \u30B5\u30A4\u30C8 + Studio \u3092\u8D77\u52D5
47
- npx cmx-sdk codegen types TypeScript \u578B\u3092\u751F\u6210
48
- npx cmx-sdk codegen pages Next.js \u30DA\u30FC\u30B8\u3092\u751F\u6210
49
- npx cmx-sdk codegen all \u578B\u751F\u6210 + \u30DA\u30FC\u30B8\u751F\u6210 + \u6574\u5408\u30C1\u30A7\u30C3\u30AF
50
- npx cmx-sdk mdx validate MDX\u672C\u6587\u3092\u691C\u8A3C
51
- npx cmx-sdk mdx doctor MDX\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u5B9A\u7FA9\u3092\u691C\u8A3C
52
- npx cmx-sdk --help \u5168\u30B3\u30DE\u30F3\u30C9\u3092\u8868\u793A
53
-
54
- \u8D77\u52D5:
55
- npm run dev \u30B5\u30A4\u30C8\u3092\u8D77\u52D5 (localhost:4000)
56
- npx cmx-sdk studio \u30B5\u30A4\u30C8 + Studio \u3092\u8D77\u52D5
57
- npm --prefix .cmx/studio run dev Studio \u306E\u307F\u8D77\u52D5
58
- `);
59
- process.exit(0);
60
- break;
61
- }
62
- }
63
- }
64
- export {
65
- interactiveMenu
66
- };
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- studio
4
- } from "./chunk-XPP5MZKG.js";
5
- export {
6
- studio
7
- };