create-ec-app 0.0.3 → 0.0.5
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 +7 -7
- package/dist/creators/powerpages.d.ts.map +1 -1
- package/dist/creators/powerpages.js +118 -20
- package/dist/creators/powerpages.js.map +1 -1
- package/dist/readmes/powerpages.md +89 -37
- package/package.json +59 -59
package/README.md
CHANGED
|
@@ -151,13 +151,13 @@ create-ec-app my-project
|
|
|
151
151
|
|
|
152
152
|
All applications come with:
|
|
153
153
|
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
-
|
|
154
|
+
- TypeScript configuration
|
|
155
|
+
- ESLint and Prettier setup
|
|
156
|
+
- Git repository initialization
|
|
157
|
+
- Environment configuration
|
|
158
|
+
- Build and development scripts
|
|
159
|
+
- Enterprise-ready folder structure
|
|
160
|
+
- Tailored project README in the generated app root (setup, auth, deployment)
|
|
161
161
|
|
|
162
162
|
### Webresource & Power Pages Apps Include:
|
|
163
163
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powerpages.d.ts","sourceRoot":"","sources":["../../src/creators/powerpages.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,mBAAmB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"powerpages.d.ts","sourceRoot":"","sources":["../../src/creators/powerpages.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,mBAAmB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CA4wB3E,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
1
4
|
import chalk from "chalk";
|
|
2
|
-
import ora from "ora";
|
|
3
5
|
import fs from "fs-extra";
|
|
4
|
-
import path from "path";
|
|
5
|
-
import { execSync } from "child_process";
|
|
6
6
|
import inquirer from "inquirer";
|
|
7
|
-
import
|
|
7
|
+
import ora from "ora";
|
|
8
8
|
// Helper function to run commands and show a spinner
|
|
9
9
|
const runCommand = (command, spinnerMessage) => {
|
|
10
10
|
const spinner = ora(spinnerMessage).start();
|
|
@@ -65,7 +65,7 @@ export const createPowerPagesApp = async (projectName) => {
|
|
|
65
65
|
fs.writeJsonSync(packageJsonPath, packageJson, { spaces: 2 });
|
|
66
66
|
ora("Updated package.json with Vite 7 overrides and custom build script").succeed();
|
|
67
67
|
// Install dependencies based on UI library choice
|
|
68
|
-
|
|
68
|
+
const dependencies = [
|
|
69
69
|
"tailwindcss@^4",
|
|
70
70
|
"@tailwindcss/vite@^4",
|
|
71
71
|
"@tanstack/react-query",
|
|
@@ -303,7 +303,7 @@ export const AuthButton = () => {
|
|
|
303
303
|
if (isLoading) {
|
|
304
304
|
return (
|
|
305
305
|
<div className="flex items-center gap-2 text-sm text-gray-600">
|
|
306
|
-
<span className="
|
|
306
|
+
<span className="w-4 h-4 border-2 border-gray-300 rounded-full animate-spin border-t-transparent" />
|
|
307
307
|
<span>Loading...</span>
|
|
308
308
|
</div>
|
|
309
309
|
);
|
|
@@ -317,8 +317,8 @@ export const AuthButton = () => {
|
|
|
317
317
|
</span>
|
|
318
318
|
<button
|
|
319
319
|
type="button"
|
|
320
|
-
className="
|
|
321
|
-
onClick={() =>
|
|
320
|
+
className="px-3 py-1 text-sm font-medium text-gray-700 transition border border-gray-300 rounded hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2"
|
|
321
|
+
onClick={() => { window.location.href = '/Account/Login/LogOff?returnUrl=%2F'; }}
|
|
322
322
|
>
|
|
323
323
|
Logout
|
|
324
324
|
</button>
|
|
@@ -332,7 +332,7 @@ export const AuthButton = () => {
|
|
|
332
332
|
<button
|
|
333
333
|
name="provider"
|
|
334
334
|
type="submit"
|
|
335
|
-
className="
|
|
335
|
+
className="px-3 py-1 text-sm font-medium text-gray-700 transition border border-gray-300 rounded hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-400 focus:ring-offset-2"
|
|
336
336
|
value={\`https://login.windows.net/\${tenantId}/\`}
|
|
337
337
|
>
|
|
338
338
|
Log In
|
|
@@ -353,7 +353,7 @@ function App() {
|
|
|
353
353
|
return (
|
|
354
354
|
<>
|
|
355
355
|
<AuthProvider>
|
|
356
|
-
<div className="flex flex-col
|
|
356
|
+
<div className="flex flex-col items-center justify-center h-screen gap-4">
|
|
357
357
|
<div>Hello World!</div>
|
|
358
358
|
<AuthButton />
|
|
359
359
|
</div>
|
|
@@ -374,7 +374,7 @@ function App() {
|
|
|
374
374
|
return (
|
|
375
375
|
<>
|
|
376
376
|
<AuthProvider>
|
|
377
|
-
<div className="flex flex-col
|
|
377
|
+
<div className="flex flex-col items-center justify-center h-screen gap-4">
|
|
378
378
|
<div>Hello World!</div>
|
|
379
379
|
<Button>Click me</Button>
|
|
380
380
|
<AuthButton />
|
|
@@ -465,7 +465,7 @@ root.render(
|
|
|
465
465
|
fs.writeFileSync(tsConfigPath, JSON.stringify(tsConfig, null, 2), "utf8");
|
|
466
466
|
ora("Updated tsconfig.json with path alias '@'").succeed();
|
|
467
467
|
}
|
|
468
|
-
catch (
|
|
468
|
+
catch (_) {
|
|
469
469
|
ora("Warning: could not update tsconfig.json with alias").warn();
|
|
470
470
|
}
|
|
471
471
|
}
|
|
@@ -507,8 +507,15 @@ export const AuthProvider: React.FC<AuthProviderProps> = ({ children }) => {
|
|
|
507
507
|
const refreshToken = async (): Promise<void> => {
|
|
508
508
|
try {
|
|
509
509
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
510
|
-
|
|
511
|
-
|
|
510
|
+
if ((window as any).shell?.getTokenDeferred) {
|
|
511
|
+
const newToken = await (window as any).shell.getTokenDeferred();
|
|
512
|
+
setToken(newToken || '');
|
|
513
|
+
} else if (import.meta.env.DEV) {
|
|
514
|
+
// Local development: read from token.json via fetch
|
|
515
|
+
const resp = await fetch('/token.json');
|
|
516
|
+
const data = await resp.json();
|
|
517
|
+
setToken(data.accessToken || '');
|
|
518
|
+
}
|
|
512
519
|
} catch (error) {
|
|
513
520
|
console.error('Error fetching token:', error);
|
|
514
521
|
setToken('');
|
|
@@ -582,11 +589,101 @@ export const useAuth = (): AuthContextType => {
|
|
|
582
589
|
};`;
|
|
583
590
|
fs.writeFileSync(authContextPath, authContextContent, "utf8");
|
|
584
591
|
ora("Created AuthContext.tsx in src/context").succeed();
|
|
585
|
-
// Create
|
|
592
|
+
// Create authService.ts for API URL and Auth Headers logic
|
|
586
593
|
const servicesDir = path.join(projectDir, "src", "services");
|
|
587
594
|
fs.ensureDirSync(servicesDir);
|
|
595
|
+
const authServicePath = path.join(servicesDir, "authService.ts");
|
|
596
|
+
const authServiceContent = `
|
|
597
|
+
/// <reference types="vite/client" />
|
|
598
|
+
|
|
599
|
+
const getAuthToken = async (): Promise<string> => {
|
|
600
|
+
const tokenModule = await import("../../token.json");
|
|
601
|
+
const token = tokenModule.default.accessToken;
|
|
602
|
+
return token;
|
|
603
|
+
};
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* AuthService: Helper functions for API URL and Auth headers.
|
|
607
|
+
* Supports Power Pages runtime and local development with token.json.
|
|
608
|
+
*/
|
|
609
|
+
|
|
610
|
+
// Returns either '/_api' (Power Pages) or a remote URL (from token.json) in local dev
|
|
611
|
+
export async function getApiUrl(): Promise<string> {
|
|
612
|
+
// Power Pages runtime
|
|
613
|
+
if (typeof window !== 'undefined' && (window as any).shell?.getTokenDeferred) {
|
|
614
|
+
return '/_api';
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// Local dev use Dynamics API directly
|
|
618
|
+
if (typeof window !== 'undefined' && import.meta.env.DEV) {
|
|
619
|
+
return "https://DOMAIN.ENV.dynamics.com/api/data/v9.2";
|
|
620
|
+
}
|
|
621
|
+
// fallback
|
|
622
|
+
return '/_api';
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
// Returns authentication headers for fetch requests
|
|
626
|
+
export async function getAuthHeaders(): Promise<HeadersInit> {
|
|
627
|
+
// Power Pages runtime
|
|
628
|
+
if (typeof window !== 'undefined' && (window as any).shell?.getTokenDeferred) {
|
|
629
|
+
const token = await (window as any).shell.getTokenDeferred();
|
|
630
|
+
return {
|
|
631
|
+
Authorization: \`Bearer \${token}\`
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// Local dev: read from token.json
|
|
636
|
+
if (typeof window !== 'undefined' && import.meta.env.DEV) {
|
|
637
|
+
try {
|
|
638
|
+
const token = await getAuthToken();
|
|
639
|
+
if (token) {
|
|
640
|
+
return {
|
|
641
|
+
Authorization: \`Bearer \${token}\`
|
|
642
|
+
};
|
|
643
|
+
}
|
|
644
|
+
} catch { }
|
|
645
|
+
}
|
|
646
|
+
// fallback
|
|
647
|
+
return {};
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
`;
|
|
651
|
+
fs.writeFileSync(authServicePath, authServiceContent, "utf8");
|
|
652
|
+
ora("Created authService.ts in src/services").succeed();
|
|
653
|
+
// Create token.json at project root with placeholder token for local dev
|
|
654
|
+
const tokenJsonPath = path.join(projectDir, "token.json");
|
|
655
|
+
const tokenJsonContent = `{
|
|
656
|
+
"accessToken": "<your-token-here>",
|
|
657
|
+
"expiresIn": "",
|
|
658
|
+
"expires_on": 0,
|
|
659
|
+
"tenant": "",
|
|
660
|
+
"tokenType": "Bearer"
|
|
661
|
+
}
|
|
662
|
+
`;
|
|
663
|
+
fs.writeFileSync(tokenJsonPath, tokenJsonContent, "utf8");
|
|
664
|
+
ora("Created token.json for local development").succeed();
|
|
665
|
+
// Add token.json to .gitignore
|
|
666
|
+
const gitignorePath = path.join(projectDir, ".gitignore");
|
|
667
|
+
let gitignoreContent = "";
|
|
668
|
+
if (fs.existsSync(gitignorePath)) {
|
|
669
|
+
gitignoreContent = fs.readFileSync(gitignorePath, "utf8");
|
|
670
|
+
if (!gitignoreContent.includes("token.json")) {
|
|
671
|
+
gitignoreContent += "\ntoken.json\n";
|
|
672
|
+
fs.writeFileSync(gitignorePath, gitignoreContent, "utf8");
|
|
673
|
+
ora("Added token.json to .gitignore").succeed();
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
else {
|
|
677
|
+
fs.writeFileSync(gitignorePath, "token.json\n", "utf8");
|
|
678
|
+
ora("Created .gitignore and added token.json").succeed();
|
|
679
|
+
}
|
|
680
|
+
// Print reminder for user to fill in token.json
|
|
681
|
+
console.log(chalk.yellowBright("\nReminder: For local development, please populate 'token.json' at the project root with a valid access token and remoteUrl if needed.\n"));
|
|
682
|
+
// Create DataService.ts using getApiUrl/getAuthHeaders (for future-proofing)
|
|
588
683
|
const dataServicePath = path.join(servicesDir, "DataService.ts");
|
|
589
|
-
const dataServiceContent = `
|
|
684
|
+
const dataServiceContent = `import { getApiUrl, getAuthHeaders } from "./authService";
|
|
685
|
+
|
|
686
|
+
export interface T {
|
|
590
687
|
entityId: string;
|
|
591
688
|
[key: string]: unknown;
|
|
592
689
|
}
|
|
@@ -595,12 +692,13 @@ export interface ApiResponse<T> {
|
|
|
595
692
|
value: T[];
|
|
596
693
|
}
|
|
597
694
|
|
|
598
|
-
const BASE_URL = '/_api';
|
|
599
|
-
|
|
600
695
|
export async function getEntity(): Promise<T[]> {
|
|
601
|
-
const
|
|
696
|
+
const baseUrl = await getApiUrl();
|
|
697
|
+
const headers = await getAuthHeaders();
|
|
698
|
+
const response = await fetch(\`\${baseUrl}/entity\`, {
|
|
602
699
|
method: 'GET',
|
|
603
700
|
headers: {
|
|
701
|
+
...headers,
|
|
604
702
|
'Accept': 'application/json',
|
|
605
703
|
'Content-Type': 'application/json',
|
|
606
704
|
},
|
|
@@ -646,7 +744,7 @@ export async function getEntity(): Promise<T[]> {
|
|
|
646
744
|
fs.writeFileSync(path.join(projectDir, "README.md"), readmeContent, "utf8");
|
|
647
745
|
ora("Added README.md from template").succeed();
|
|
648
746
|
}
|
|
649
|
-
catch (
|
|
747
|
+
catch (_) {
|
|
650
748
|
ora("Failed to add README.md from template; keeping default README").warn();
|
|
651
749
|
}
|
|
652
750
|
// Initialize Git
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powerpages.js","sourceRoot":"","sources":["../../src/creators/powerpages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"powerpages.js","sourceRoot":"","sources":["../../src/creators/powerpages.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,108 @@
|
|
|
1
|
-
# EC Power Pages
|
|
1
|
+
# EC Power Pages Single Page Application (SPA)
|
|
2
2
|
|
|
3
|
-
React
|
|
3
|
+
This is a Power Pages Single Page Application (SPA) built with React, Vite, and TypeScript, generated by `create-ec-app`. It follows Microsoft’s official Power Pages code site model, providing a modern, scalable, and maintainable frontend architecture tailored specifically for Power Pages environments. The app includes integrated authentication, data fetching, and UI options designed to work seamlessly within the Power Pages runtime.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- React + Vite + TypeScript
|
|
8
|
-
- Tailwind CSS
|
|
9
|
-
- UI
|
|
10
|
-
- TanStack Query provider
|
|
11
|
-
- Power Pages
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- Example `AuthButton` component in `src/components/shared/AuthButton.tsx`
|
|
15
|
-
- Power Pages configuration file `powerpages.config.json`
|
|
7
|
+
- **React + Vite + TypeScript**: Modern frontend stack for fast development and optimized builds.
|
|
8
|
+
- **Tailwind CSS**: Utility-first CSS framework with an optional Kendo UI preset for styling consistency.
|
|
9
|
+
- **UI Library Choice**: Select between Kendo UI (including theme selection) or Shadcn/ui components.
|
|
10
|
+
- **TanStack Query**: Preconfigured React Query provider for efficient data fetching and caching.
|
|
11
|
+
- **Power Pages AuthContext**: Integrated authentication context that detects the Power Pages user (`Microsoft.Dynamics365.Portal.User`) and retrieves tokens via `window.shell.getTokenDeferred()`.
|
|
12
|
+
- **Local Development Support**: Includes a mock token file and configuration to simulate authentication during local development.
|
|
13
|
+
- **Optimized Vite Build Output**: Builds optimized assets tailored for upload to Power Pages code sites.
|
|
16
14
|
|
|
17
|
-
##
|
|
15
|
+
## Auth and API Access
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
- Kendo UI license (if applicable)
|
|
21
|
-
- Access to a Power Pages site to host the built assets
|
|
17
|
+
This SPA integrates with Power Pages authentication and API access mechanisms. The `AuthContext` handles user detection and token retrieval using the Power Pages runtime API. Tokens are obtained asynchronously through `window.shell.getTokenDeferred()`, enabling authenticated API calls to Power Pages endpoints.
|
|
22
18
|
|
|
23
|
-
|
|
19
|
+
### Example: API URL and Auth Headers
|
|
24
20
|
|
|
25
|
-
|
|
26
|
-
- Activate Kendo license (if used): `npx kendo-ui-license activate`
|
|
27
|
-
- Dev server: `npm run dev`
|
|
28
|
-
- Production build: `npm run build`
|
|
29
|
-
- Development build (easier debugging): `npm run build:dev`
|
|
21
|
+
Here is an example of utility functions to build API URLs and set authentication headers for requests within the Power Pages SPA:
|
|
30
22
|
|
|
31
|
-
|
|
23
|
+
```ts
|
|
24
|
+
// src/utils/api.ts
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
26
|
+
export function getApiUrl(entity: string, query = ''): string {
|
|
27
|
+
// Base path for Power Pages API (adjust if your site uses a different base)
|
|
28
|
+
const baseUrl = '/_api';
|
|
29
|
+
return `${baseUrl}/${entity}${query ? `?${query}` : ''}`;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function getAuthHeaders(token: string) {
|
|
33
|
+
return {
|
|
34
|
+
Authorization: `Bearer ${token}`,
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
Accept: 'application/json',
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Azure CLI Token Generation for Local Development
|
|
42
|
+
|
|
43
|
+
For local development and debugging outside the Power Pages runtime, you can generate an Azure AD token using the Azure CLI. This token can be used to simulate authenticated requests against your Power Pages environment:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
az account get-access-token --resource=https://<your-powerpages-environment>.crm.dynamics.com
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Replace `<your-powerpages-environment>` with your actual environment URL. Use the obtained token in your local mock token file or directly in API request headers.
|
|
50
|
+
|
|
51
|
+
## Example Service Using TanStack Query
|
|
52
|
+
|
|
53
|
+
Here is an example of a service module `src/services/contacts.ts` that demonstrates fetching contacts data from the Power Pages API using TanStack Query:
|
|
38
54
|
|
|
39
|
-
|
|
55
|
+
```ts
|
|
56
|
+
// src/services/contacts.ts
|
|
57
|
+
import { useQuery } from '@tanstack/react-query';
|
|
58
|
+
import { getApiUrl, getAuthHeaders } from '@/utils/api';
|
|
59
|
+
import { useAuth } from '@/context/AuthContext';
|
|
40
60
|
|
|
41
|
-
|
|
61
|
+
export interface Contact {
|
|
62
|
+
contactid: string;
|
|
63
|
+
firstname: string;
|
|
64
|
+
lastname: string;
|
|
65
|
+
emailaddress1?: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async function fetchContacts(token: string): Promise<Contact[]> {
|
|
69
|
+
const response = await fetch(getApiUrl('contacts'), {
|
|
70
|
+
headers: getAuthHeaders(token),
|
|
71
|
+
});
|
|
72
|
+
if (!response.ok) {
|
|
73
|
+
throw new Error('Failed to fetch contacts');
|
|
74
|
+
}
|
|
75
|
+
const data = await response.json();
|
|
76
|
+
return data.value;
|
|
77
|
+
}
|
|
42
78
|
|
|
43
|
-
|
|
44
|
-
|
|
79
|
+
export function useContacts() {
|
|
80
|
+
const { token } = useAuth();
|
|
45
81
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
return <div>{user?.firstName} {user?.lastName}</div>
|
|
82
|
+
return useQuery(['contacts'], () => fetchContacts(token!), {
|
|
83
|
+
enabled: !!token,
|
|
84
|
+
});
|
|
50
85
|
}
|
|
51
86
|
```
|
|
52
87
|
|
|
88
|
+
This pattern leverages the `AuthContext` to access the current token and uses TanStack Query to manage caching and background updates.
|
|
89
|
+
|
|
53
90
|
## Deployment
|
|
54
91
|
|
|
55
|
-
|
|
56
|
-
|
|
92
|
+
To deploy your Power Pages SPA:
|
|
93
|
+
|
|
94
|
+
- Build the project using `npm run build` or `npm run build:dev` for development builds.
|
|
95
|
+
- Upload the contents of the `dist` folder to your Power Pages site’s **code site**. This is a dedicated location for hosting SPA assets as static content.
|
|
96
|
+
- Reference your built JavaScript and CSS files in your Power Pages pages as needed.
|
|
97
|
+
|
|
98
|
+
For detailed guidance on Power Pages code sites and deployment, see the [Microsoft Power Pages documentation on code sites](https://learn.microsoft.com/en-us/power-pages/developer/code-sites).
|
|
99
|
+
|
|
100
|
+
Power Pages code sites support continuous deployment workflows via the Power Platform CLI, enabling streamlined updates and integration with source control.
|
|
101
|
+
|
|
102
|
+
## Configuration
|
|
103
|
+
|
|
104
|
+
The `powerpages.config.json` file defines your site configuration, including output paths and landing page settings. Adjust this file to match your project and deployment conventions.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
This SPA template provides a robust foundation for building Power Pages applications with modern web development tools and best practices, ensuring smooth integration with the Power Pages platform and scalable, maintainable code.
|
package/package.json
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
2
|
+
"name": "create-ec-app",
|
|
3
|
+
"version": "0.0.5",
|
|
4
|
+
"description": "Unified CLI tool to create different types of EC applications: Webresource, Portal, Power Pages, and Mobile apps.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"create-ec-app": "bin/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc && node scripts/copy-assets.mjs",
|
|
12
|
+
"dev": "tsc --watch",
|
|
13
|
+
"test": "node bin/index.js test-app",
|
|
14
|
+
"prepublishOnly": "npm run build"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"react",
|
|
18
|
+
"vite",
|
|
19
|
+
"nextjs",
|
|
20
|
+
"expo",
|
|
21
|
+
"kendo",
|
|
22
|
+
"tailwind",
|
|
23
|
+
"cli",
|
|
24
|
+
"powerpages",
|
|
25
|
+
"portal",
|
|
26
|
+
"mobile",
|
|
27
|
+
"webresource",
|
|
28
|
+
"dynamics",
|
|
29
|
+
"ec"
|
|
30
|
+
],
|
|
31
|
+
"author": "Schalk Conradie",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"chalk": "^5.3.0",
|
|
35
|
+
"fs-extra": "^11.2.0",
|
|
36
|
+
"inquirer": "^12.6.3",
|
|
37
|
+
"ora": "^8.0.1"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/node": "^22.8.6",
|
|
41
|
+
"@types/fs-extra": "^11.0.4",
|
|
42
|
+
"@types/inquirer": "^9.0.7",
|
|
43
|
+
"typescript": "^5.6.3"
|
|
44
|
+
},
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=18.0.0"
|
|
47
|
+
},
|
|
48
|
+
"files": [
|
|
49
|
+
"dist/**/*",
|
|
50
|
+
"bin/**/*"
|
|
51
|
+
],
|
|
52
|
+
"repository": {
|
|
53
|
+
"type": "git",
|
|
54
|
+
"url": "git+https://github.com/Enterprisecloud-Pty-Ltd/create-ec-app.git"
|
|
55
|
+
},
|
|
56
|
+
"bugs": {
|
|
57
|
+
"url": "https://github.com/Enterprisecloud-Pty-Ltd/create-ec-app/issues"
|
|
58
|
+
},
|
|
59
|
+
"homepage": "https://github.com/Enterprisecloud-Pty-Ltd/create-ec-app#readme"
|
|
60
|
+
}
|