@swarm.ing/pieui 2.0.10 → 2.0.13

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 (70) hide show
  1. package/README.md +48 -0
  2. package/dist/cli.js +437 -193
  3. package/dist/code/args.d.ts.map +1 -1
  4. package/dist/code/commands/add.d.ts +2 -2
  5. package/dist/code/commands/add.d.ts.map +1 -1
  6. package/dist/code/commands/create.d.ts +2 -0
  7. package/dist/code/commands/create.d.ts.map +1 -0
  8. package/dist/code/commands/init.d.ts.map +1 -1
  9. package/dist/code/commands/pageAdd.d.ts +2 -0
  10. package/dist/code/commands/pageAdd.d.ts.map +1 -0
  11. package/dist/code/public/favicon.ico +0 -0
  12. package/dist/code/public/favicon.svg +1 -0
  13. package/dist/code/public/pieui.png +0 -0
  14. package/dist/code/public/swarm.ing.png +0 -0
  15. package/dist/code/templates/componentTypes.d.ts +2 -1
  16. package/dist/code/templates/componentTypes.d.ts.map +1 -1
  17. package/dist/code/templates/env.d.ts +2 -0
  18. package/dist/code/templates/env.d.ts.map +1 -0
  19. package/dist/code/templates/homePage.d.ts +2 -0
  20. package/dist/code/templates/homePage.d.ts.map +1 -0
  21. package/dist/code/templates/index.d.ts +7 -4
  22. package/dist/code/templates/index.d.ts.map +1 -1
  23. package/dist/code/templates/loadingScreen.d.ts +2 -0
  24. package/dist/code/templates/loadingScreen.d.ts.map +1 -0
  25. package/dist/code/templates/nextConfig.d.ts +1 -1
  26. package/dist/code/templates/nextConfig.d.ts.map +1 -1
  27. package/dist/code/templates/pages/components/complexComponent.d.ts +3 -0
  28. package/dist/code/templates/pages/components/complexComponent.d.ts.map +1 -0
  29. package/dist/code/templates/pages/components/complexContainerComponent.d.ts +3 -0
  30. package/dist/code/templates/pages/components/complexContainerComponent.d.ts.map +1 -0
  31. package/dist/code/templates/pages/components/index.d.ts +5 -0
  32. package/dist/code/templates/pages/components/index.d.ts.map +1 -0
  33. package/dist/code/templates/pages/components/shared.d.ts +5 -0
  34. package/dist/code/templates/pages/components/shared.d.ts.map +1 -0
  35. package/dist/code/templates/pages/components/simpleComponent.d.ts +3 -0
  36. package/dist/code/templates/pages/components/simpleComponent.d.ts.map +1 -0
  37. package/dist/code/templates/pages/components/simpleContainerComponent.d.ts +3 -0
  38. package/dist/code/templates/pages/components/simpleContainerComponent.d.ts.map +1 -0
  39. package/dist/code/templates/pages/index.d.ts +6 -0
  40. package/dist/code/templates/pages/index.d.ts.map +1 -0
  41. package/dist/code/templates/pages/page.d.ts +2 -0
  42. package/dist/code/templates/pages/page.d.ts.map +1 -0
  43. package/dist/code/templates/rootLayout.d.ts +2 -0
  44. package/dist/code/templates/rootLayout.d.ts.map +1 -0
  45. package/dist/code/templates/sharedPage.d.ts +2 -0
  46. package/dist/code/templates/sharedPage.d.ts.map +1 -0
  47. package/dist/code/types.d.ts +11 -0
  48. package/dist/code/types.d.ts.map +1 -1
  49. package/package.json +5 -13
  50. package/dist/__tests__/step1-local.test.d.cts +0 -2
  51. package/dist/__tests__/step1-local.test.d.cts.map +0 -1
  52. package/dist/__tests__/step2-remote.test.d.cts +0 -2
  53. package/dist/__tests__/step2-remote.test.d.cts.map +0 -1
  54. package/dist/__tests__/step3-contract.test.d.cts +0 -2
  55. package/dist/__tests__/step3-contract.test.d.cts.map +0 -1
  56. package/dist/__tests__/step4-ci.test.d.cts +0 -2
  57. package/dist/__tests__/step4-ci.test.d.cts.map +0 -1
  58. package/dist/__tests__/step5-regres.test.d.cts +0 -2
  59. package/dist/__tests__/step5-regres.test.d.cts.map +0 -1
  60. package/dist/code/templates/complexComponent.d.ts +0 -2
  61. package/dist/code/templates/complexComponent.d.ts.map +0 -1
  62. package/dist/code/templates/complexContainerComponent.d.ts +0 -2
  63. package/dist/code/templates/complexContainerComponent.d.ts.map +0 -1
  64. package/dist/code/templates/simpleComponent.d.ts +0 -2
  65. package/dist/code/templates/simpleComponent.d.ts.map +0 -1
  66. package/dist/code/templates/simpleContainerComponent.d.ts +0 -2
  67. package/dist/code/templates/simpleContainerComponent.d.ts.map +0 -1
  68. package/dist/create.d.ts +0 -3
  69. package/dist/create.d.ts.map +0 -1
  70. package/dist/create.js +0 -162
package/dist/create.js DELETED
@@ -1,162 +0,0 @@
1
- #!/usr/bin/env node
2
- var __create = Object.create;
3
- var __getProtoOf = Object.getPrototypeOf;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __toESM = (mod, isNodeMode, target) => {
8
- target = mod != null ? __create(__getProtoOf(mod)) : {};
9
- const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
- for (let key of __getOwnPropNames(mod))
11
- if (!__hasOwnProp.call(to, key))
12
- __defProp(to, key, {
13
- get: () => mod[key],
14
- enumerable: true
15
- });
16
- return to;
17
- };
18
-
19
- // src/code/commands/createPieApp.ts
20
- var import_fs = __toESM(require("fs"));
21
- var import_path = __toESM(require("path"));
22
- var import_child_process = require("child_process");
23
- var DEFAULT_TEMPLATE_SPEC = "next-app@latest";
24
- var SHARED_TEMPLATE_DIR_ENV = "PIEUI_SHARED_TEMPLATE_DIR";
25
- var AI_EXCHANGE_BOT_DIR_ENV = "PIEUI_AI_EXCHANGE_BOT_DIR";
26
- var BACKEND_LINK_COMMENT = "// TODO(pie-backend): Link generated Python Unicorn backend routes here once backend template sync is enabled.";
27
- var updateNextScriptsToBun = (packageJsonPath) => {
28
- if (!import_fs.default.existsSync(packageJsonPath))
29
- return;
30
- try {
31
- const pkg = JSON.parse(import_fs.default.readFileSync(packageJsonPath, "utf8"));
32
- if (!pkg.scripts)
33
- return;
34
- const updates = {
35
- dev: "bun --bun next dev",
36
- build: "bun --bun next build",
37
- start: "bun --bun next start"
38
- };
39
- for (const [scriptName, scriptValue] of Object.entries(updates)) {
40
- if (pkg.scripts[scriptName]) {
41
- pkg.scripts[scriptName] = scriptValue;
42
- }
43
- }
44
- import_fs.default.writeFileSync(packageJsonPath, `${JSON.stringify(pkg, null, 2)}
45
- `, "utf8");
46
- } catch {
47
- }
48
- };
49
- var appendBackendLinkComment = (pagePath) => {
50
- if (!import_fs.default.existsSync(pagePath))
51
- return;
52
- const page = import_fs.default.readFileSync(pagePath, "utf8");
53
- if (page.includes(BACKEND_LINK_COMMENT))
54
- return;
55
- import_fs.default.writeFileSync(pagePath, `${page.trimEnd()}
56
-
57
- ${BACKEND_LINK_COMMENT}
58
- `, "utf8");
59
- };
60
- var uniq = (items) => [...new Set(items)];
61
- var isDirectory = (target) => {
62
- try {
63
- return import_fs.default.statSync(target).isDirectory();
64
- } catch {
65
- return false;
66
- }
67
- };
68
- var resolveSharedTemplateDir = () => {
69
- const explicitSharedDir = process.env[SHARED_TEMPLATE_DIR_ENV];
70
- if (explicitSharedDir) {
71
- const normalized = import_path.default.resolve(explicitSharedDir);
72
- if (!isDirectory(normalized)) {
73
- throw new Error(`${SHARED_TEMPLATE_DIR_ENV} points to a missing directory: ${normalized}`);
74
- }
75
- return normalized;
76
- }
77
- const cwd = process.cwd();
78
- const baseDirs = [cwd, import_path.default.resolve(cwd, ".."), import_path.default.resolve(cwd, "../..")];
79
- const explicitRepoDir = process.env[AI_EXCHANGE_BOT_DIR_ENV];
80
- if (explicitRepoDir) {
81
- baseDirs.unshift(import_path.default.resolve(explicitRepoDir));
82
- }
83
- const repoNames = ["ai-exchange-bot", "ai-exchange-web", "a-exchange-web"];
84
- const repoCandidates = uniq([
85
- ...baseDirs,
86
- ...baseDirs.flatMap((base) => repoNames.map((name) => import_path.default.join(base, name)))
87
- ]).filter((candidate) => isDirectory(candidate));
88
- const sharedSubpaths = [
89
- "_shared",
90
- "src/_shared",
91
- "app/_shared",
92
- "pages/_shared",
93
- "pages/components/_shared",
94
- "apps/web/_shared",
95
- "apps/web/src/_shared"
96
- ];
97
- for (const repoDir of repoCandidates) {
98
- for (const subpath of sharedSubpaths) {
99
- const candidate = import_path.default.join(repoDir, subpath);
100
- if (isDirectory(candidate)) {
101
- return candidate;
102
- }
103
- }
104
- }
105
- throw new Error([
106
- "Could not locate a _shared template directory from ai-exchange-bot.",
107
- `Set ${SHARED_TEMPLATE_DIR_ENV}=/absolute/path/to/_shared`,
108
- `or ${AI_EXCHANGE_BOT_DIR_ENV}=/absolute/path/to/ai-exchange-bot.`
109
- ].join(" "));
110
- };
111
- var copySharedTemplate = (sharedTemplateDir, appDir) => {
112
- const destination = import_path.default.join(appDir, "_shared");
113
- import_fs.default.cpSync(sharedTemplateDir, destination, { recursive: true, force: true });
114
- };
115
- var createPieAppCommand = (appName) => {
116
- const trimmedAppName = appName.trim();
117
- if (!trimmedAppName) {
118
- console.error("[pieui] Error: App name is required for create-pie-app command");
119
- process.exit(1);
120
- }
121
- const appDir = import_path.default.resolve(process.cwd(), trimmedAppName);
122
- if (import_fs.default.existsSync(appDir)) {
123
- console.error(`[pieui] Error: Target directory already exists: ${trimmedAppName}`);
124
- process.exit(1);
125
- }
126
- const bunBin = process.env.PIEUI_CREATE_BUN_BIN || "bun";
127
- const templateSpec = process.env.PIEUI_CREATE_NEXT_APP_SPEC || DEFAULT_TEMPLATE_SPEC;
128
- console.log(`[pieui] Creating blank PieUI web template in "${trimmedAppName}"...`);
129
- const args = ["create", templateSpec, trimmedAppName, "--yes"];
130
- const result = import_child_process.spawnSync(bunBin, args, {
131
- cwd: process.cwd(),
132
- stdio: "inherit",
133
- env: process.env
134
- });
135
- if (result.error) {
136
- throw result.error;
137
- }
138
- if (result.status !== 0) {
139
- throw new Error(`create-pie-app failed (exit code ${result.status ?? "unknown"})`);
140
- }
141
- const sharedTemplateDir = resolveSharedTemplateDir();
142
- copySharedTemplate(sharedTemplateDir, appDir);
143
- updateNextScriptsToBun(import_path.default.join(appDir, "package.json"));
144
- appendBackendLinkComment(import_path.default.join(appDir, "app", "page.tsx"));
145
- console.log("[pieui] Template created successfully.");
146
- console.log(`[pieui] Copied _shared from: ${sharedTemplateDir}`);
147
- console.log(`[pieui] Next steps:`);
148
- console.log(` 1. cd ${trimmedAppName}`);
149
- console.log(` 2. bun install`);
150
- console.log(` 3. bun run dev`);
151
- };
152
-
153
- // src/create.ts
154
- var main = () => {
155
- const [appName = ""] = process.argv.slice(2);
156
- if (!appName) {
157
- console.error("Usage: bun create pieui@latest <app-name>");
158
- process.exit(1);
159
- }
160
- createPieAppCommand(appName);
161
- };
162
- main();