create-ec-app 0.0.2 ā 0.0.3
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/README.md +14 -11
- package/bin/index.js +0 -0
- package/dist/creators/mobile.d.ts.map +1 -1
- package/dist/creators/mobile.js +24 -0
- package/dist/creators/mobile.js.map +1 -1
- package/dist/creators/portal.d.ts.map +1 -1
- package/dist/creators/portal.js +124 -4
- package/dist/creators/portal.js.map +1 -1
- package/dist/creators/powerpages.d.ts.map +1 -1
- package/dist/creators/powerpages.js +214 -32
- package/dist/creators/powerpages.js.map +1 -1
- package/dist/creators/webresource.d.ts.map +1 -1
- package/dist/creators/webresource.js +37 -3
- package/dist/creators/webresource.js.map +1 -1
- package/dist/index.js +17 -17
- package/dist/index.js.map +1 -1
- package/dist/readmes/mobile.md +42 -0
- package/dist/readmes/portal.md +161 -0
- package/dist/readmes/powerpages.md +56 -0
- package/dist/readmes/webresource.md +260 -0
- package/package.json +58 -58
|
@@ -4,6 +4,7 @@ import fs from "fs-extra";
|
|
|
4
4
|
import path from "path";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
6
|
import inquirer from "inquirer";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
7
8
|
// Helper function to run commands and show a spinner
|
|
8
9
|
const runCommand = (command, spinnerMessage) => {
|
|
9
10
|
const spinner = ora(spinnerMessage).start();
|
|
@@ -19,22 +20,38 @@ const runCommand = (command, spinnerMessage) => {
|
|
|
19
20
|
}
|
|
20
21
|
};
|
|
21
22
|
export const createPowerPagesApp = async (projectName) => {
|
|
22
|
-
// Prompt for
|
|
23
|
-
const
|
|
24
|
-
{ name: "Default", value: "@progress/kendo-theme-default" },
|
|
25
|
-
{ name: "Bootstrap (v5)", value: "@progress/kendo-theme-bootstrap" },
|
|
26
|
-
{ name: "Material (v3)", value: "@progress/kendo-theme-material" },
|
|
27
|
-
{ name: "Fluent", value: "@progress/kendo-theme-fluent" },
|
|
28
|
-
{ name: "Classic", value: "@progress/kendo-theme-classic" },
|
|
29
|
-
];
|
|
30
|
-
const { kendoThemePackage } = await inquirer.prompt([
|
|
23
|
+
// Prompt for UI library choice
|
|
24
|
+
const { uiLibrary } = await inquirer.prompt([
|
|
31
25
|
{
|
|
32
26
|
type: "list",
|
|
33
|
-
name: "
|
|
34
|
-
message: "Which
|
|
35
|
-
choices:
|
|
27
|
+
name: "uiLibrary",
|
|
28
|
+
message: "Which UI library would you like to use?",
|
|
29
|
+
choices: [
|
|
30
|
+
{ name: "Kendo UI (React components with themes)", value: "kendo" },
|
|
31
|
+
{ name: "Shadcn/ui (Modern React components)", value: "shadcn" },
|
|
32
|
+
],
|
|
36
33
|
},
|
|
37
34
|
]);
|
|
35
|
+
let kendoThemePackage = "";
|
|
36
|
+
if (uiLibrary === "kendo") {
|
|
37
|
+
// Prompt for Kendo theme
|
|
38
|
+
const kendoThemes = [
|
|
39
|
+
{ name: "Default", value: "@progress/kendo-theme-default" },
|
|
40
|
+
{ name: "Bootstrap (v5)", value: "@progress/kendo-theme-bootstrap" },
|
|
41
|
+
{ name: "Material (v3)", value: "@progress/kendo-theme-material" },
|
|
42
|
+
{ name: "Fluent", value: "@progress/kendo-theme-fluent" },
|
|
43
|
+
{ name: "Classic", value: "@progress/kendo-theme-classic" },
|
|
44
|
+
];
|
|
45
|
+
const { kendoThemePackage: selectedTheme } = await inquirer.prompt([
|
|
46
|
+
{
|
|
47
|
+
type: "list",
|
|
48
|
+
name: "kendoThemePackage",
|
|
49
|
+
message: "Which Kendo UI theme would you like to install?",
|
|
50
|
+
choices: kendoThemes,
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
kendoThemePackage = selectedTheme;
|
|
54
|
+
}
|
|
38
55
|
const projectDir = path.resolve(process.cwd(), projectName);
|
|
39
56
|
console.log(`\nScaffolding a new project in ${chalk.green(projectDir)}...\n`);
|
|
40
57
|
// Create React + Vite (TypeScript) project
|
|
@@ -47,22 +64,33 @@ export const createPowerPagesApp = async (projectName) => {
|
|
|
47
64
|
packageJson.scripts["build:dev"] = "tsc -b && vite build --mode development";
|
|
48
65
|
fs.writeJsonSync(packageJsonPath, packageJson, { spaces: 2 });
|
|
49
66
|
ora("Updated package.json with Vite 7 overrides and custom build script").succeed();
|
|
50
|
-
// Install dependencies
|
|
51
|
-
|
|
52
|
-
"@progress/kendo-react-buttons",
|
|
53
|
-
"@progress/kendo-licensing",
|
|
67
|
+
// Install dependencies based on UI library choice
|
|
68
|
+
let dependencies = [
|
|
54
69
|
"tailwindcss@^4",
|
|
55
70
|
"@tailwindcss/vite@^4",
|
|
56
71
|
"@tanstack/react-query",
|
|
57
72
|
"zustand",
|
|
58
73
|
"@types/xrm",
|
|
59
74
|
"@types/node",
|
|
60
|
-
kendoThemePackage,
|
|
61
75
|
];
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
76
|
+
if (uiLibrary === "kendo") {
|
|
77
|
+
dependencies.push("@progress/kendo-react-buttons", "@progress/kendo-licensing", kendoThemePackage);
|
|
78
|
+
}
|
|
79
|
+
const devDependencies = [];
|
|
80
|
+
if (uiLibrary === "shadcn") {
|
|
81
|
+
devDependencies.push("tailwindcss-animate");
|
|
82
|
+
}
|
|
83
|
+
const installMessage = uiLibrary === "kendo"
|
|
84
|
+
? `Installing dependencies (Kendo Theme: ${kendoThemePackage.split("/")[1]})...`
|
|
85
|
+
: "Installing dependencies (Shadcn/ui)...";
|
|
86
|
+
runCommand(`npm install ${dependencies.join(" ")}`, installMessage);
|
|
87
|
+
if (devDependencies.length > 0) {
|
|
88
|
+
runCommand(`npm install -D ${devDependencies.join(" ")}`, "Installing dev dependencies...");
|
|
89
|
+
}
|
|
90
|
+
if (uiLibrary === "kendo") {
|
|
91
|
+
// Create kendo-tw-preset.js
|
|
92
|
+
const kendoPresetPath = path.join(projectDir, "kendo-tw-preset.js");
|
|
93
|
+
const kendoPresetContent = `module.exports = {
|
|
66
94
|
theme: {
|
|
67
95
|
extend: {
|
|
68
96
|
spacing: {
|
|
@@ -133,11 +161,11 @@ export const createPowerPagesApp = async (projectName) => {
|
|
|
133
161
|
},
|
|
134
162
|
},
|
|
135
163
|
};`;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
164
|
+
fs.writeFileSync(kendoPresetPath, kendoPresetContent, "utf8");
|
|
165
|
+
ora("Created kendo-tw-preset.js").succeed();
|
|
166
|
+
// Create tailwind.config.js with Kendo preset
|
|
167
|
+
const tailwindConfigPath = path.join(projectDir, "tailwind.config.js");
|
|
168
|
+
const tailwindConfigContent = `/** @type {import('tailwindcss').Config} */
|
|
141
169
|
|
|
142
170
|
import kendoTwPreset from "./kendo-tw-preset.js";
|
|
143
171
|
|
|
@@ -151,8 +179,81 @@ export default {
|
|
|
151
179
|
},
|
|
152
180
|
plugins: [],
|
|
153
181
|
};`;
|
|
154
|
-
|
|
155
|
-
|
|
182
|
+
fs.writeFileSync(tailwindConfigPath, tailwindConfigContent, "utf8");
|
|
183
|
+
ora("Created tailwind.config.js with Kendo preset").succeed();
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
// Basic Tailwind config for Shadcn/ui
|
|
187
|
+
const tailwindConfigPath = path.join(projectDir, "tailwind.config.js");
|
|
188
|
+
const tailwindConfigContent = `/** @type {import('tailwindcss').Config} */
|
|
189
|
+
|
|
190
|
+
export default {
|
|
191
|
+
content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
|
|
192
|
+
theme: { extend: {} },
|
|
193
|
+
plugins: [],
|
|
194
|
+
};`;
|
|
195
|
+
fs.writeFileSync(tailwindConfigPath, tailwindConfigContent, "utf8");
|
|
196
|
+
ora("Created tailwind.config.js").succeed();
|
|
197
|
+
// Align TypeScript config with Shadcn setup (like webresource creator)
|
|
198
|
+
const tsconfigPath = path.join(projectDir, "tsconfig.json");
|
|
199
|
+
const tsConfigContent = `{
|
|
200
|
+
"files": [],
|
|
201
|
+
"references": [
|
|
202
|
+
{
|
|
203
|
+
"path": "./tsconfig.app.json"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"path": "./tsconfig.node.json"
|
|
207
|
+
}
|
|
208
|
+
],
|
|
209
|
+
"compilerOptions": {
|
|
210
|
+
"baseUrl": ".",
|
|
211
|
+
"paths": {
|
|
212
|
+
"@/*": [
|
|
213
|
+
"./src/*"
|
|
214
|
+
]
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}`;
|
|
218
|
+
fs.writeFileSync(tsconfigPath, tsConfigContent, "utf8");
|
|
219
|
+
ora("Updated tsconfig.json with baseUrl and paths").succeed();
|
|
220
|
+
const tsconfigAppPath = path.join(projectDir, "tsconfig.app.json");
|
|
221
|
+
const tsConfigAppContent = `{
|
|
222
|
+
"compilerOptions": {
|
|
223
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
224
|
+
"target": "ES2022",
|
|
225
|
+
"useDefineForClassFields": true,
|
|
226
|
+
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
227
|
+
"module": "ESNext",
|
|
228
|
+
"skipLibCheck": true,
|
|
229
|
+
|
|
230
|
+
/* Shadcn */
|
|
231
|
+
"baseUrl": ".",
|
|
232
|
+
"paths": {
|
|
233
|
+
"@/*": [
|
|
234
|
+
"./src/*"
|
|
235
|
+
]
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
/* Bundler mode */
|
|
239
|
+
"moduleResolution": "bundler",
|
|
240
|
+
"allowImportingTsExtensions": true,
|
|
241
|
+
"moduleDetection": "force",
|
|
242
|
+
"noEmit": true,
|
|
243
|
+
"jsx": "react-jsx",
|
|
244
|
+
|
|
245
|
+
/* Linting */
|
|
246
|
+
"strict": true,
|
|
247
|
+
"noUnusedLocals": true,
|
|
248
|
+
"noUnusedParameters": true,
|
|
249
|
+
"noFallthroughCasesInSwitch": true,
|
|
250
|
+
},
|
|
251
|
+
"include": ["src"]
|
|
252
|
+
}
|
|
253
|
+
`;
|
|
254
|
+
fs.writeFileSync(tsconfigAppPath, tsConfigAppContent, "utf8");
|
|
255
|
+
ora("Created tsconfig.app.json").succeed();
|
|
256
|
+
}
|
|
156
257
|
// Overwrite Vite config with advanced build options
|
|
157
258
|
const viteConfigPath = path.join(projectDir, "vite.config.ts");
|
|
158
259
|
const newViteConfigContent = `import path from "path";
|
|
@@ -176,6 +277,15 @@ export default defineConfig({
|
|
|
176
277
|
const indexCssPath = path.join(projectDir, "src", "index.css");
|
|
177
278
|
fs.writeFileSync(indexCssPath, `@import "tailwindcss";`, "utf8");
|
|
178
279
|
ora("Updated CSS entry point").succeed();
|
|
280
|
+
// Add global type declarations for asset modules
|
|
281
|
+
const globalDtsPath = path.join(projectDir, "src", "global.d.ts");
|
|
282
|
+
const globalDtsContent = `declare module "*.css";
|
|
283
|
+
declare module "*.scss";
|
|
284
|
+
declare module "*.svg";
|
|
285
|
+
declare module "*.png";
|
|
286
|
+
`;
|
|
287
|
+
fs.writeFileSync(globalDtsPath, globalDtsContent, "utf8");
|
|
288
|
+
ora("Created src/global.d.ts").succeed();
|
|
179
289
|
// Clear App.css
|
|
180
290
|
const appCssPath = path.join(projectDir, "src", "App.css");
|
|
181
291
|
fs.writeFileSync(appCssPath, "", "utf8");
|
|
@@ -235,7 +345,7 @@ export const AuthButton = () => {
|
|
|
235
345
|
ora("Created AuthButton.tsx in src/components/shared").succeed();
|
|
236
346
|
// Replace App.tsx with custom content
|
|
237
347
|
const appTsxPath = path.join(projectDir, "src", "App.tsx");
|
|
238
|
-
|
|
348
|
+
let newAppTsxContent = `import "./App.css";
|
|
239
349
|
import { AuthProvider } from './context/AuthContext'
|
|
240
350
|
import { AuthButton } from './components/shared/AuthButton'
|
|
241
351
|
|
|
@@ -243,8 +353,9 @@ function App() {
|
|
|
243
353
|
return (
|
|
244
354
|
<>
|
|
245
355
|
<AuthProvider>
|
|
246
|
-
<div className="flex flex-col h-screen items-center justify-center">
|
|
247
|
-
Hello World
|
|
356
|
+
<div className="flex flex-col h-screen items-center justify-center gap-4">
|
|
357
|
+
<div>Hello World!</div>
|
|
358
|
+
<AuthButton />
|
|
248
359
|
</div>
|
|
249
360
|
</AuthProvider>
|
|
250
361
|
</>
|
|
@@ -253,14 +364,38 @@ function App() {
|
|
|
253
364
|
|
|
254
365
|
export default App;
|
|
255
366
|
`;
|
|
367
|
+
if (uiLibrary === "shadcn") {
|
|
368
|
+
newAppTsxContent = `import "./App.css";
|
|
369
|
+
import { AuthProvider } from './context/AuthContext'
|
|
370
|
+
import { AuthButton } from './components/shared/AuthButton'
|
|
371
|
+
import { Button } from "@/components/ui/button";
|
|
372
|
+
|
|
373
|
+
function App() {
|
|
374
|
+
return (
|
|
375
|
+
<>
|
|
376
|
+
<AuthProvider>
|
|
377
|
+
<div className="flex flex-col h-screen items-center justify-center gap-4">
|
|
378
|
+
<div>Hello World!</div>
|
|
379
|
+
<Button>Click me</Button>
|
|
380
|
+
<AuthButton />
|
|
381
|
+
</div>
|
|
382
|
+
</AuthProvider>
|
|
383
|
+
</>
|
|
384
|
+
);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export default App;
|
|
388
|
+
`;
|
|
389
|
+
}
|
|
256
390
|
fs.writeFileSync(appTsxPath, newAppTsxContent, "utf8");
|
|
257
391
|
ora("Replaced App.tsx with custom template").succeed();
|
|
258
392
|
// Generate main.tsx from template
|
|
259
393
|
const mainTsxPath = path.join(projectDir, "src", "main.tsx");
|
|
394
|
+
const kendoImport = uiLibrary === "kendo" ? `import "${kendoThemePackage}/dist/all.css";` : "";
|
|
260
395
|
const newMainTsxContent = `import { StrictMode } from "react";
|
|
261
396
|
import { createRoot } from "react-dom/client";
|
|
262
397
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
263
|
-
|
|
398
|
+
${kendoImport}
|
|
264
399
|
import "./index.css";
|
|
265
400
|
import App from "./App.tsx";
|
|
266
401
|
|
|
@@ -289,6 +424,11 @@ root.render(
|
|
|
289
424
|
`;
|
|
290
425
|
fs.writeFileSync(mainTsxPath, newMainTsxContent, "utf8");
|
|
291
426
|
ora("Generated custom main.tsx with providers").succeed();
|
|
427
|
+
// Initialize Shadcn/ui if selected
|
|
428
|
+
if (uiLibrary === "shadcn") {
|
|
429
|
+
runCommand("npx shadcn@latest init --force --silent --yes --base-color neutral", "Initializing Shadcn/ui...");
|
|
430
|
+
runCommand("npx shadcn@latest add --all", "Installing all Shadcn components...");
|
|
431
|
+
}
|
|
292
432
|
// Modify index.html
|
|
293
433
|
const indexPath = path.join(projectDir, "index.html");
|
|
294
434
|
let indexContent = fs.readFileSync(indexPath, "utf8");
|
|
@@ -310,6 +450,25 @@ root.render(
|
|
|
310
450
|
}`;
|
|
311
451
|
fs.writeFileSync(prettierRcPath, prettierRcContent, "utf8");
|
|
312
452
|
ora("Added .prettierrc").succeed();
|
|
453
|
+
// Ensure TS path alias for '@' exists (for Kendo branch, Shadcn gets explicit files above)
|
|
454
|
+
if (uiLibrary === "kendo") {
|
|
455
|
+
try {
|
|
456
|
+
const tsConfigPath = path.join(projectDir, "tsconfig.json");
|
|
457
|
+
const raw = fs.readFileSync(tsConfigPath, "utf8");
|
|
458
|
+
const tsConfig = JSON.parse(raw);
|
|
459
|
+
tsConfig.compilerOptions = tsConfig.compilerOptions || {};
|
|
460
|
+
tsConfig.compilerOptions.baseUrl = tsConfig.compilerOptions.baseUrl || ".";
|
|
461
|
+
tsConfig.compilerOptions.paths = {
|
|
462
|
+
...(tsConfig.compilerOptions.paths || {}),
|
|
463
|
+
"@/*": ["./src/*"],
|
|
464
|
+
};
|
|
465
|
+
fs.writeFileSync(tsConfigPath, JSON.stringify(tsConfig, null, 2), "utf8");
|
|
466
|
+
ora("Updated tsconfig.json with path alias '@'").succeed();
|
|
467
|
+
}
|
|
468
|
+
catch (e) {
|
|
469
|
+
ora("Warning: could not update tsconfig.json with alias").warn();
|
|
470
|
+
}
|
|
471
|
+
}
|
|
313
472
|
// Add in the AuthContext
|
|
314
473
|
const contextDir = path.join(projectDir, "src", "context");
|
|
315
474
|
fs.ensureDirSync(contextDir);
|
|
@@ -467,6 +626,29 @@ export async function getEntity(): Promise<T[]> {
|
|
|
467
626
|
`;
|
|
468
627
|
fs.writeFileSync(powerPagesConfigPath, powerPagesConfigContent, "utf8");
|
|
469
628
|
ora("Created powerpages.config.json").succeed();
|
|
629
|
+
// Replace README.md with template
|
|
630
|
+
try {
|
|
631
|
+
const currentFileDir = path.dirname(fileURLToPath(import.meta.url));
|
|
632
|
+
const candidates = [
|
|
633
|
+
path.resolve(currentFileDir, "../readmes/powerpages.md"), // dist layout
|
|
634
|
+
path.resolve(currentFileDir, "../../src/readmes/powerpages.md"), // repo layout
|
|
635
|
+
];
|
|
636
|
+
let templatePath = "";
|
|
637
|
+
for (const c of candidates) {
|
|
638
|
+
if (fs.existsSync(c)) {
|
|
639
|
+
templatePath = c;
|
|
640
|
+
break;
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
const readmeContent = templatePath
|
|
644
|
+
? fs.readFileSync(templatePath, "utf8")
|
|
645
|
+
: `# EC Power Pages App\n\nSee documentation inside create-ec-app (powerpages README template).`;
|
|
646
|
+
fs.writeFileSync(path.join(projectDir, "README.md"), readmeContent, "utf8");
|
|
647
|
+
ora("Added README.md from template").succeed();
|
|
648
|
+
}
|
|
649
|
+
catch (err) {
|
|
650
|
+
ora("Failed to add README.md from template; keeping default README").warn();
|
|
651
|
+
}
|
|
470
652
|
// Initialize Git
|
|
471
653
|
runCommand("git init", "Initializing Git repository...");
|
|
472
654
|
runCommand("git add .", "Staging files for initial commit...");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powerpages.js","sourceRoot":"","sources":["../../src/creators/powerpages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"powerpages.js","sourceRoot":"","sources":["../../src/creators/powerpages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webresource.d.ts","sourceRoot":"","sources":["../../src/creators/webresource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webresource.d.ts","sourceRoot":"","sources":["../../src/creators/webresource.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,oBAAoB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAktB5E,CAAC"}
|
|
@@ -4,6 +4,7 @@ import fs from "fs-extra";
|
|
|
4
4
|
import path from "path";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
6
|
import inquirer from "inquirer";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
7
8
|
// Helper function to run commands and show a spinner
|
|
8
9
|
const runCommand = (command, spinnerMessage) => {
|
|
9
10
|
const spinner = ora(spinnerMessage).start();
|
|
@@ -382,7 +383,6 @@ export default {
|
|
|
382
383
|
/* Bundler mode */
|
|
383
384
|
"moduleResolution": "bundler",
|
|
384
385
|
"allowImportingTsExtensions": true,
|
|
385
|
-
"verbatimModuleSyntax": true,
|
|
386
386
|
"moduleDetection": "force",
|
|
387
387
|
"noEmit": true,
|
|
388
388
|
"jsx": "react-jsx",
|
|
@@ -391,9 +391,7 @@ export default {
|
|
|
391
391
|
"strict": true,
|
|
392
392
|
"noUnusedLocals": true,
|
|
393
393
|
"noUnusedParameters": true,
|
|
394
|
-
"erasableSyntaxOnly": true,
|
|
395
394
|
"noFallthroughCasesInSwitch": true,
|
|
396
|
-
"noUncheckedSideEffectImports": true
|
|
397
395
|
},
|
|
398
396
|
"include": ["src"]
|
|
399
397
|
}
|
|
@@ -506,6 +504,15 @@ export default defineConfig(({ command, mode }) => {
|
|
|
506
504
|
fs.writeFileSync(indexCssPath, `@import "tailwindcss";`, "utf8");
|
|
507
505
|
ora("Updated CSS entry point").succeed();
|
|
508
506
|
}
|
|
507
|
+
// Add global type declarations for asset modules
|
|
508
|
+
const globalDtsPath = path.join(projectDir, "src", "global.d.ts");
|
|
509
|
+
const globalDtsContent = `declare module "*.css";
|
|
510
|
+
declare module "*.scss";
|
|
511
|
+
declare module "*.svg";
|
|
512
|
+
declare module "*.png";
|
|
513
|
+
`;
|
|
514
|
+
fs.writeFileSync(globalDtsPath, globalDtsContent, "utf8");
|
|
515
|
+
ora("Created src/global.d.ts").succeed();
|
|
509
516
|
// Clear App.css
|
|
510
517
|
const appCssPath = path.join(projectDir, "src", "App.css");
|
|
511
518
|
fs.writeFileSync(appCssPath, "", "utf8");
|
|
@@ -663,6 +670,33 @@ export const getAuthHeaders = async (): Promise<HeadersInit> => {
|
|
|
663
670
|
};`;
|
|
664
671
|
fs.writeFileSync(authServicePath, authServiceContent, "utf8");
|
|
665
672
|
ora("Created authService.ts in src/services").succeed();
|
|
673
|
+
// Replace README.md with template from the package
|
|
674
|
+
try {
|
|
675
|
+
const currentFileDir = path.dirname(fileURLToPath(import.meta.url));
|
|
676
|
+
const candidates = [
|
|
677
|
+
path.resolve(currentFileDir, "../readmes/webresource.md"), // dist layout
|
|
678
|
+
path.resolve(currentFileDir, "../../src/readmes/webresource.md"), // repo layout (ts src)
|
|
679
|
+
];
|
|
680
|
+
let templatePath = "";
|
|
681
|
+
for (const c of candidates) {
|
|
682
|
+
if (fs.existsSync(c)) {
|
|
683
|
+
templatePath = c;
|
|
684
|
+
break;
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
let readmeContent = "";
|
|
688
|
+
if (templatePath) {
|
|
689
|
+
readmeContent = fs.readFileSync(templatePath, "utf8");
|
|
690
|
+
}
|
|
691
|
+
else {
|
|
692
|
+
readmeContent = `# EC Webresource App\n\nSee documentation inside create-ec-app (webresource README template).`;
|
|
693
|
+
}
|
|
694
|
+
fs.writeFileSync(path.join(projectDir, "README.md"), readmeContent, "utf8");
|
|
695
|
+
ora("Added README.md from template").succeed();
|
|
696
|
+
}
|
|
697
|
+
catch (err) {
|
|
698
|
+
ora("Failed to add README.md from template; keeping Vite README").warn();
|
|
699
|
+
}
|
|
666
700
|
// Initialize Git
|
|
667
701
|
runCommand("git init", "Initializing Git repository...");
|
|
668
702
|
runCommand("git add .", "Staging files for initial commit...");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webresource.js","sourceRoot":"","sources":["../../src/creators/webresource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"webresource.js","sourceRoot":"","sources":["../../src/creators/webresource.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,8 +6,8 @@ import { createPortalApp } from "./creators/portal.js";
|
|
|
6
6
|
import { createPowerPagesApp } from "./creators/powerpages.js";
|
|
7
7
|
import { createMobileApp } from "./creators/mobile.js";
|
|
8
8
|
const main = async () => {
|
|
9
|
-
console.log(chalk.bold.hex("#F5AB00")("\
|
|
10
|
-
console.log(chalk.gray("Create
|
|
9
|
+
console.log(chalk.bold.hex("#F5AB00")("\nEC App Creator\n"));
|
|
10
|
+
console.log(chalk.gray("Create applications for your EC ecosystem.\n"));
|
|
11
11
|
// Prompt for project name if not provided
|
|
12
12
|
let projectName = process.argv[2];
|
|
13
13
|
if (!projectName) {
|
|
@@ -26,24 +26,24 @@ const main = async () => {
|
|
|
26
26
|
// Prompt for application type
|
|
27
27
|
const appTypes = [
|
|
28
28
|
{
|
|
29
|
-
name: "
|
|
29
|
+
name: "Webresource App",
|
|
30
30
|
value: "webresource",
|
|
31
|
-
description: "React app for Dynamics 365 webresources with Vite, Kendo UI, and Tailwind"
|
|
31
|
+
description: "React app for Dynamics 365 webresources with Vite, optional Kendo UI, and Tailwind"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
name: "
|
|
34
|
+
name: "Portal App",
|
|
35
35
|
value: "portal",
|
|
36
36
|
description: "Next.js app for customer portals with authentication and Dynamics integration"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
name: "
|
|
39
|
+
name: "Power Pages App",
|
|
40
40
|
value: "powerpages",
|
|
41
|
-
description: "React SPA for Power Pages with
|
|
41
|
+
description: "React SPA for Power Pages with authentication context and data services"
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
|
-
name: "
|
|
44
|
+
name: "Mobile App",
|
|
45
45
|
value: "mobile",
|
|
46
|
-
description: "React Native Expo app with
|
|
46
|
+
description: "React Native Expo app with TypeScript and NativeWind"
|
|
47
47
|
}
|
|
48
48
|
];
|
|
49
49
|
const { appType } = await inquirer.prompt([
|
|
@@ -54,12 +54,12 @@ const main = async () => {
|
|
|
54
54
|
choices: appTypes.map(type => ({
|
|
55
55
|
name: `${type.name}\n ${chalk.gray(type.description)}`,
|
|
56
56
|
value: type.value,
|
|
57
|
-
short: type.name
|
|
57
|
+
short: type.name
|
|
58
58
|
})),
|
|
59
59
|
pageSize: 10
|
|
60
60
|
},
|
|
61
61
|
]);
|
|
62
|
-
console.log(`\n${chalk.green("
|
|
62
|
+
console.log(`\n${chalk.green("Creating")} ${chalk.bold(appType)} app: ${chalk.cyan(projectName)}\n`);
|
|
63
63
|
// Route to the appropriate creator
|
|
64
64
|
switch (appType) {
|
|
65
65
|
case "webresource":
|
|
@@ -79,17 +79,17 @@ const main = async () => {
|
|
|
79
79
|
process.exit(1);
|
|
80
80
|
}
|
|
81
81
|
// Final success message
|
|
82
|
-
console.log(chalk.green.bold("\
|
|
82
|
+
console.log(chalk.green.bold("\nProject created successfully."));
|
|
83
83
|
console.log(`\n${chalk.cyan("Next steps:")}`);
|
|
84
|
-
console.log(`
|
|
84
|
+
console.log(` - cd ${projectName}`);
|
|
85
85
|
if (appType === "webresource" || appType === "powerpages") {
|
|
86
|
-
console.log(`
|
|
86
|
+
console.log(` - If you selected Kendo UI: ${chalk.yellow("npx kendo-ui-license activate")}`);
|
|
87
87
|
}
|
|
88
|
-
console.log(`
|
|
89
|
-
console.log(`
|
|
88
|
+
console.log(` - npm run dev`);
|
|
89
|
+
console.log(` - npm run build\n`);
|
|
90
90
|
};
|
|
91
91
|
main().catch((error) => {
|
|
92
|
-
console.error(chalk.red("
|
|
92
|
+
console.error(chalk.red("An error occurred:"), error);
|
|
93
93
|
process.exit(1);
|
|
94
94
|
});
|
|
95
95
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAQvD,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;IACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# EC Mobile App
|
|
2
|
+
|
|
3
|
+
Expo + React Native + TypeScript template with Tailwind (NativeWind-style utilities), Expo Router, and a small set of UI utilities. Generated by `create-ec-app` for rapid mobile development.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Expo Router with typed layouts
|
|
8
|
+
- Tailwind utilities for React Native
|
|
9
|
+
- Theming helpers for React Navigation (`lib/theme.ts`)
|
|
10
|
+
- Utility helpers (`lib/utils.ts` with `cn`)
|
|
11
|
+
- Portal support via `@rn-primitives/portal` (included in root layout)
|
|
12
|
+
|
|
13
|
+
## Prerequisites
|
|
14
|
+
|
|
15
|
+
- Node.js 18+
|
|
16
|
+
- Xcode (macOS) and/or Android Studio SDKs for local simulators
|
|
17
|
+
- Expo CLI (installed automatically via `npx`)
|
|
18
|
+
|
|
19
|
+
## Getting Started
|
|
20
|
+
|
|
21
|
+
- Install dependencies: `npm install`
|
|
22
|
+
- Start development: `npx expo start`
|
|
23
|
+
- Press `i` for iOS simulator, `a` for Android, or scan the QR code with Expo Go
|
|
24
|
+
|
|
25
|
+
## Key Files
|
|
26
|
+
|
|
27
|
+
- `app/_layout.tsx`: Root layout with theme provider, Expo Router stack, and `PortalHost`.
|
|
28
|
+
- `lib/theme.ts`: Light/dark palettes mapped to React Navigation theme.
|
|
29
|
+
- `lib/utils.ts`: `cn` helper for conditional class names.
|
|
30
|
+
- `global.css`: Tailwind directives and custom styles (imported by the root layout).
|
|
31
|
+
|
|
32
|
+
## Styling
|
|
33
|
+
|
|
34
|
+
- The template uses Tailwind utilities for React Native components. Adjust Tailwind config as needed for your design system.
|
|
35
|
+
|
|
36
|
+
## Building
|
|
37
|
+
|
|
38
|
+
- Use the Expo tooling for builds and previews:
|
|
39
|
+
- `npx expo prebuild` to generate native projects (if needed)
|
|
40
|
+
- `npx expo run:ios` / `npx expo run:android` to build and run
|
|
41
|
+
- See the Expo docs for EAS Build for cloud builds
|
|
42
|
+
|