@agility/create-next-app 1.0.0-beta.2
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/.claude/settings.json +7 -0
- package/.claude/settings.local.json +24 -0
- package/FEATURE_ROADMAP.md +343 -0
- package/README.md +205 -0
- package/TESTING.md +131 -0
- package/bin/create-agility-app.js +48 -0
- package/dist/agility/api-keys/generateApiKeys.d.ts +9 -0
- package/dist/agility/api-keys/generateApiKeys.d.ts.map +1 -0
- package/dist/agility/api-keys/generateApiKeys.js +99 -0
- package/dist/agility/api-keys/generateApiKeys.js.map +1 -0
- package/dist/agility/api-keys/getApiKeys.d.ts +9 -0
- package/dist/agility/api-keys/getApiKeys.d.ts.map +1 -0
- package/dist/agility/api-keys/getApiKeys.js +14 -0
- package/dist/agility/api-keys/getApiKeys.js.map +1 -0
- package/dist/agility/index.d.ts +3 -0
- package/dist/agility/index.d.ts.map +1 -0
- package/dist/agility/index.js +8 -0
- package/dist/agility/index.js.map +1 -0
- package/dist/agility/instance/createNewInstance.d.ts +8 -0
- package/dist/agility/instance/createNewInstance.d.ts.map +1 -0
- package/dist/agility/instance/createNewInstance.js +65 -0
- package/dist/agility/instance/createNewInstance.js.map +1 -0
- package/dist/agility/instance/getAvailableInstances.d.ts +8 -0
- package/dist/agility/instance/getAvailableInstances.d.ts.map +1 -0
- package/dist/agility/instance/getAvailableInstances.js +43 -0
- package/dist/agility/instance/getAvailableInstances.js.map +1 -0
- package/dist/agility/instance/manageInstance.d.ts +9 -0
- package/dist/agility/instance/manageInstance.d.ts.map +1 -0
- package/dist/agility/instance/manageInstance.js +82 -0
- package/dist/agility/instance/manageInstance.js.map +1 -0
- package/dist/agility/utils/getMgmtAPIUrl.d.ts +20 -0
- package/dist/agility/utils/getMgmtAPIUrl.d.ts.map +1 -0
- package/dist/agility/utils/getMgmtAPIUrl.js +61 -0
- package/dist/agility/utils/getMgmtAPIUrl.js.map +1 -0
- package/dist/auth/api-key/authenticateWithApiKey.d.ts +6 -0
- package/dist/auth/api-key/authenticateWithApiKey.d.ts.map +1 -0
- package/dist/auth/api-key/authenticateWithApiKey.js +28 -0
- package/dist/auth/api-key/authenticateWithApiKey.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/oauth/authenticate.d.ts +6 -0
- package/dist/auth/oauth/authenticate.d.ts.map +1 -0
- package/dist/auth/oauth/authenticate.js +162 -0
- package/dist/auth/oauth/authenticate.js.map +1 -0
- package/dist/auth/oauth/constants.d.ts +5 -0
- package/dist/auth/oauth/constants.d.ts.map +1 -0
- package/dist/auth/oauth/constants.js +9 -0
- package/dist/auth/oauth/constants.js.map +1 -0
- package/dist/auth/oauth/exchangeCodeForToken.d.ts +7 -0
- package/dist/auth/oauth/exchangeCodeForToken.d.ts.map +1 -0
- package/dist/auth/oauth/exchangeCodeForToken.js +39 -0
- package/dist/auth/oauth/exchangeCodeForToken.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +290 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/promptForMissingOptions.d.ts +8 -0
- package/dist/cli/promptForMissingOptions.d.ts.map +1 -0
- package/dist/cli/promptForMissingOptions.js +92 -0
- package/dist/cli/promptForMissingOptions.js.map +1 -0
- package/dist/config/env/createEnvFile.d.ts +6 -0
- package/dist/config/env/createEnvFile.d.ts.map +1 -0
- package/dist/config/env/createEnvFile.js +31 -0
- package/dist/config/env/createEnvFile.js.map +1 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/mcp/createMcpConfig.d.ts +5 -0
- package/dist/config/mcp/createMcpConfig.d.ts.map +1 -0
- package/dist/config/mcp/createMcpConfig.js +32 -0
- package/dist/config/mcp/createMcpConfig.js.map +1 -0
- package/dist/config/packages/installAgilityPackages.d.ts +6 -0
- package/dist/config/packages/installAgilityPackages.d.ts.map +1 -0
- package/dist/config/packages/installAgilityPackages.js +61 -0
- package/dist/config/packages/installAgilityPackages.js.map +1 -0
- package/dist/config/setupProject.d.ts +8 -0
- package/dist/config/setupProject.d.ts.map +1 -0
- package/dist/config/setupProject.js +32 -0
- package/dist/config/setupProject.js.map +1 -0
- package/dist/create-next-app/createNextApp.d.ts +9 -0
- package/dist/create-next-app/createNextApp.d.ts.map +1 -0
- package/dist/create-next-app/createNextApp.js +83 -0
- package/dist/create-next-app/createNextApp.js.map +1 -0
- package/dist/create-next-app/index.d.ts +3 -0
- package/dist/create-next-app/index.d.ts.map +1 -0
- package/dist/create-next-app/index.js +8 -0
- package/dist/create-next-app/index.js.map +1 -0
- package/dist/scaffold/components/createPageComponents.d.ts +6 -0
- package/dist/scaffold/components/createPageComponents.d.ts.map +1 -0
- package/dist/scaffold/components/createPageComponents.js +62 -0
- package/dist/scaffold/components/createPageComponents.js.map +1 -0
- package/dist/scaffold/containers/createContainers.d.ts +6 -0
- package/dist/scaffold/containers/createContainers.d.ts.map +1 -0
- package/dist/scaffold/containers/createContainers.js +48 -0
- package/dist/scaffold/containers/createContainers.js.map +1 -0
- package/dist/scaffold/index.d.ts +2 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/index.js +6 -0
- package/dist/scaffold/index.js.map +1 -0
- package/dist/scaffold/instance/createBlankInstance.d.ts +8 -0
- package/dist/scaffold/instance/createBlankInstance.d.ts.map +1 -0
- package/dist/scaffold/instance/createBlankInstance.js +51 -0
- package/dist/scaffold/instance/createBlankInstance.js.map +1 -0
- package/dist/scaffold/models/createContentModels.d.ts +6 -0
- package/dist/scaffold/models/createContentModels.d.ts.map +1 -0
- package/dist/scaffold/models/createContentModels.js +70 -0
- package/dist/scaffold/models/createContentModels.js.map +1 -0
- package/dist/templates/copyDirectory.d.ts +5 -0
- package/dist/templates/copyDirectory.d.ts.map +1 -0
- package/dist/templates/copyDirectory.js +28 -0
- package/dist/templates/copyDirectory.js.map +1 -0
- package/dist/templates/copyTemplates.d.ts +8 -0
- package/dist/templates/copyTemplates.d.ts.map +1 -0
- package/dist/templates/copyTemplates.js +58 -0
- package/dist/templates/copyTemplates.js.map +1 -0
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +6 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/types/index.d.ts +50 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/git.d.ts +9 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +71 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/validation.d.ts +45 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +180 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +45 -0
- package/src/agility/api-keys/generateApiKeys.ts +100 -0
- package/src/agility/api-keys/getApiKeys.ts +13 -0
- package/src/agility/index.ts +3 -0
- package/src/agility/instance/createNewInstance.ts +67 -0
- package/src/agility/instance/getAvailableInstances.ts +49 -0
- package/src/agility/instance/manageInstance.ts +90 -0
- package/src/agility/utils/getMgmtAPIUrl.ts +68 -0
- package/src/auth/api-key/authenticateWithApiKey.ts +24 -0
- package/src/auth/index.ts +3 -0
- package/src/auth/oauth/authenticate.ts +165 -0
- package/src/auth/oauth/constants.ts +6 -0
- package/src/auth/oauth/exchangeCodeForToken.ts +43 -0
- package/src/cli/index.ts +281 -0
- package/src/cli/promptForMissingOptions.ts +104 -0
- package/src/config/env/createEnvFile.ts +30 -0
- package/src/config/index.ts +2 -0
- package/src/config/mcp/createMcpConfig.ts +30 -0
- package/src/config/packages/installAgilityPackages.ts +63 -0
- package/src/config/setupProject.ts +31 -0
- package/src/create-next-app/createNextApp.ts +75 -0
- package/src/create-next-app/index.ts +3 -0
- package/src/scaffold/components/createPageComponents.ts +74 -0
- package/src/scaffold/containers/createContainers.ts +55 -0
- package/src/scaffold/index.ts +2 -0
- package/src/scaffold/instance/createBlankInstance.ts +55 -0
- package/src/scaffold/models/createContentModels.ts +83 -0
- package/src/templates/copyDirectory.ts +24 -0
- package/src/templates/copyTemplates.ts +57 -0
- package/src/templates/index.ts +2 -0
- package/src/types/index.ts +55 -0
- package/src/utils/git.ts +74 -0
- package/src/utils/validation.ts +184 -0
- package/templates/.claude/QUICK-START.md +230 -0
- package/templates/.claude/README.md +32 -0
- package/templates/.claude/settings.json +8 -0
- package/templates/BLANK-INSTANCE-SETUP.md +375 -0
- package/templates/DEVELOPMENT.md +160 -0
- package/templates/EXAMPLE-PROMPTS.md +643 -0
- package/templates/PROMPTS.md +410 -0
- package/templates/README.md +281 -0
- package/templates/agents.md +429 -0
- package/templates/app/[locale]/[...slug]/error.tsx +17 -0
- package/templates/app/[locale]/[...slug]/not-found.tsx +9 -0
- package/templates/app/[locale]/[...slug]/page.tsx +102 -0
- package/templates/app/[locale]/layout.tsx +22 -0
- package/templates/app/[locale]/page.tsx +12 -0
- package/templates/app/api/dynamic-redirect/route.ts +24 -0
- package/templates/app/api/preview/exit/route.ts +34 -0
- package/templates/app/api/preview/route.ts +63 -0
- package/templates/app/api/revalidate/route.ts +118 -0
- package/templates/components/agility-components/RichTextArea.tsx +66 -0
- package/templates/components/agility-components/index.ts +30 -0
- package/templates/components/agility-pages/MainTemplate.tsx +36 -0
- package/templates/components/agility-pages/index.ts +11 -0
- package/templates/docs/01-agility-cms-overview.md +139 -0
- package/templates/docs/02-page-routing.md +251 -0
- package/templates/docs/03-creating-components.md +462 -0
- package/templates/docs/04-data-fetching.md +484 -0
- package/templates/docs/05-containers-and-lists.md +596 -0
- package/templates/docs/06-localization.md +561 -0
- package/templates/docs/07-caching-strategies.md +410 -0
- package/templates/docs/08-common-components.md +756 -0
- package/templates/docs/09-whats-included.md +279 -0
- package/templates/docs/10-mcp-server-setup.md +153 -0
- package/templates/docs/11-linked-nested-content.md +611 -0
- package/templates/docs/README.md +164 -0
- package/templates/lib/cms/getAgilityContext.ts +28 -0
- package/templates/lib/cms/getAgilityPage.ts +51 -0
- package/templates/lib/cms/getAgilitySDK.ts +22 -0
- package/templates/lib/cms/getContentItem.ts +20 -0
- package/templates/lib/cms/getContentList.ts +19 -0
- package/templates/lib/cms/getRedirections.ts +85 -0
- package/templates/lib/cms/getSitemapFlat.ts +19 -0
- package/templates/lib/cms/getSitemapNested.ts +19 -0
- package/templates/lib/env.ts +99 -0
- package/templates/lib/i18n/config.ts +28 -0
- package/templates/proxy.ts +101 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBlankInstance = void 0;
|
|
4
|
+
var createBlankInstance_1 = require("./instance/createBlankInstance");
|
|
5
|
+
Object.defineProperty(exports, "createBlankInstance", { enumerable: true, get: function () { return createBlankInstance_1.createBlankInstance; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":";;;AAAA,sEAAqE;AAA5D,0HAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ApiKeys } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a blank Agility instance with basic content models and components
|
|
4
|
+
* @param instanceGuid - Instance GUID
|
|
5
|
+
* @param apiKeys - API keys object
|
|
6
|
+
*/
|
|
7
|
+
export declare function createBlankInstance(instanceGuid: string, apiKeys: ApiKeys | null): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=createBlankInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlankInstance.d.ts","sourceRoot":"","sources":["../../../src/scaffold/instance/createBlankInstance.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCtG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createBlankInstance = createBlankInstance;
|
|
7
|
+
const ora_1 = __importDefault(require("ora"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
10
|
+
const createContentModels_1 = require("../models/createContentModels");
|
|
11
|
+
const createPageComponents_1 = require("../components/createPageComponents");
|
|
12
|
+
const createContainers_1 = require("../containers/createContainers");
|
|
13
|
+
/**
|
|
14
|
+
* Creates a blank Agility instance with basic content models and components
|
|
15
|
+
* @param instanceGuid - Instance GUID
|
|
16
|
+
* @param apiKeys - API keys object
|
|
17
|
+
*/
|
|
18
|
+
async function createBlankInstance(instanceGuid, apiKeys) {
|
|
19
|
+
const spinner = (0, ora_1.default)('Scaffolding blank Agility instance...').start();
|
|
20
|
+
try {
|
|
21
|
+
// Ask user if they want to scaffold
|
|
22
|
+
const answer = await inquirer_1.default.prompt([
|
|
23
|
+
{
|
|
24
|
+
type: 'confirm',
|
|
25
|
+
name: 'scaffold',
|
|
26
|
+
message: 'Would you like to scaffold a blank instance with basic content models and components?',
|
|
27
|
+
default: true
|
|
28
|
+
}
|
|
29
|
+
]);
|
|
30
|
+
if (!answer.scaffold) {
|
|
31
|
+
spinner.info('Skipping instance scaffolding');
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
spinner.text = 'Creating content models...';
|
|
35
|
+
// Create content models
|
|
36
|
+
await (0, createContentModels_1.createContentModels)(instanceGuid, apiKeys);
|
|
37
|
+
spinner.text = 'Creating page components...';
|
|
38
|
+
// Create page components
|
|
39
|
+
await (0, createPageComponents_1.createPageComponents)(instanceGuid, apiKeys);
|
|
40
|
+
spinner.text = 'Creating containers...';
|
|
41
|
+
// Create containers
|
|
42
|
+
await (0, createContainers_1.createContainers)(instanceGuid, apiKeys);
|
|
43
|
+
spinner.succeed('Blank instance scaffolded successfully');
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
spinner.fail('Failed to scaffold instance');
|
|
47
|
+
console.error(chalk_1.default.red(error.message));
|
|
48
|
+
// Don't throw - allow project creation to continue
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=createBlankInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createBlankInstance.js","sourceRoot":"","sources":["../../../src/scaffold/instance/createBlankInstance.ts"],"names":[],"mappings":";;;;;AAaA,kDAwCC;AArDD,8CAAsB;AACtB,kDAA0B;AAC1B,wDAAgC;AAEhC,uEAAoE;AACpE,6EAA0E;AAC1E,qEAAkE;AAElE;;;;GAIG;AACI,KAAK,UAAU,mBAAmB,CAAC,YAAoB,EAAE,OAAuB;IACrF,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,uCAAuC,CAAC,CAAC,KAAK,EAAE,CAAC;IAErE,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,MAAM,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAwB;YAC1D;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,uFAAuF;gBAChG,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;QAE5C,wBAAwB;QACxB,MAAM,IAAA,yCAAmB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAE7C,yBAAyB;QACzB,MAAM,IAAA,2CAAoB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAElD,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QAExC,oBAAoB;QACpB,MAAM,IAAA,mCAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAE9C,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,mDAAmD;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createContentModels.d.ts","sourceRoot":"","sources":["../../../src/scaffold/models/createContentModels.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2EtG"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createContentModels = createContentModels;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
/**
|
|
9
|
+
* Creates basic content models
|
|
10
|
+
*/
|
|
11
|
+
async function createContentModels(instanceGuid, apiKeys) {
|
|
12
|
+
// Note: This would use the MCP Agility CMS tools or direct API calls
|
|
13
|
+
// For now, we'll provide instructions to the user
|
|
14
|
+
const models = [
|
|
15
|
+
{
|
|
16
|
+
displayName: 'Page',
|
|
17
|
+
referenceName: 'Page',
|
|
18
|
+
description: 'Page content model with SEO fields',
|
|
19
|
+
fields: [
|
|
20
|
+
{ type: 'Text', name: 'title', label: 'Title', required: true },
|
|
21
|
+
{ type: 'LongText', name: 'description', label: 'Description' },
|
|
22
|
+
{ type: 'Html', name: 'content', label: 'Content' },
|
|
23
|
+
{ type: 'Text', name: 'seoTitle', label: 'SEO Title' },
|
|
24
|
+
{ type: 'LongText', name: 'seoDescription', label: 'SEO Description' },
|
|
25
|
+
{ type: 'Text', name: 'seoKeywords', label: 'SEO Keywords' }
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
displayName: 'Post',
|
|
30
|
+
referenceName: 'Post',
|
|
31
|
+
description: 'Blog post content model',
|
|
32
|
+
fields: [
|
|
33
|
+
{ type: 'Text', name: 'title', label: 'Title', required: true },
|
|
34
|
+
{ type: 'LongText', name: 'excerpt', label: 'Excerpt' },
|
|
35
|
+
{ type: 'Html', name: 'content', label: 'Content' },
|
|
36
|
+
{ type: 'Date', name: 'publishDate', label: 'Publish Date' },
|
|
37
|
+
{ type: 'ImageAttachment', name: 'featuredImage', label: 'Featured Image' }
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Category',
|
|
42
|
+
referenceName: 'Category',
|
|
43
|
+
description: 'Category content model',
|
|
44
|
+
fields: [
|
|
45
|
+
{ type: 'Text', name: 'title', label: 'Title', required: true },
|
|
46
|
+
{ type: 'LongText', name: 'description', label: 'Description' }
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
displayName: 'Author',
|
|
51
|
+
referenceName: 'Author',
|
|
52
|
+
description: 'Author content model',
|
|
53
|
+
fields: [
|
|
54
|
+
{ type: 'Text', name: 'name', label: 'Name', required: true },
|
|
55
|
+
{ type: 'LongText', name: 'bio', label: 'Bio' },
|
|
56
|
+
{ type: 'ImageAttachment', name: 'avatar', label: 'Avatar' }
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
];
|
|
60
|
+
// In a real implementation, this would use the MCP tool:
|
|
61
|
+
// for (const model of models) {
|
|
62
|
+
// await mcp_Agility_CMS_save_content_model({ instanceGuid, model });
|
|
63
|
+
// }
|
|
64
|
+
console.log(chalk_1.default.cyan('\n📋 Content models to create:'));
|
|
65
|
+
models.forEach(model => {
|
|
66
|
+
console.log(chalk_1.default.white(` - ${model.displayName} (${model.referenceName})`));
|
|
67
|
+
});
|
|
68
|
+
console.log(chalk_1.default.yellow('\n⚠️ Please create these content models in Agility CMS manually, or use the API.'));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=createContentModels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createContentModels.js","sourceRoot":"","sources":["../../../src/scaffold/models/createContentModels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyDirectory.d.ts","sourceRoot":"","sources":["../../src/templates/copyDirectory.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB5E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.copyDirectory = copyDirectory;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
/**
|
|
10
|
+
* Recursively copies a directory
|
|
11
|
+
*/
|
|
12
|
+
async function copyDirectory(src, dest) {
|
|
13
|
+
const entries = fs_1.default.readdirSync(src, { withFileTypes: true });
|
|
14
|
+
for (const entry of entries) {
|
|
15
|
+
const srcPath = path_1.default.join(src, entry.name);
|
|
16
|
+
const destPath = path_1.default.join(dest, entry.name);
|
|
17
|
+
if (entry.isDirectory()) {
|
|
18
|
+
if (!fs_1.default.existsSync(destPath)) {
|
|
19
|
+
fs_1.default.mkdirSync(destPath, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
await copyDirectory(srcPath, destPath);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
fs_1.default.copyFileSync(srcPath, destPath);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=copyDirectory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyDirectory.js","sourceRoot":"","sources":["../../src/templates/copyDirectory.ts"],"names":[],"mappings":";;;;;AAMA,sCAgBC;AAtBD,4CAAoB;AACpB,gDAAwB;AAExB;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,GAAW,EAAE,IAAY;IAC3D,MAAM,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CliOptions } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Copies template files to the project
|
|
4
|
+
* @param projectPath - Path to the project
|
|
5
|
+
* @param options - Options
|
|
6
|
+
*/
|
|
7
|
+
export declare function copyTemplates(projectPath: string, options: CliOptions): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=copyTemplates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyTemplates.d.ts","sourceRoot":"","sources":["../../src/templates/copyTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C3F"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.copyTemplates = copyTemplates;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const copyDirectory_1 = require("./copyDirectory");
|
|
11
|
+
/**
|
|
12
|
+
* Copies template files to the project
|
|
13
|
+
* @param projectPath - Path to the project
|
|
14
|
+
* @param options - Options
|
|
15
|
+
*/
|
|
16
|
+
async function copyTemplates(projectPath, options) {
|
|
17
|
+
const spinner = (0, ora_1.default)('Adding Agility CMS template files...').start();
|
|
18
|
+
try {
|
|
19
|
+
const templatesDir = path_1.default.join(__dirname, '..', '..', 'templates');
|
|
20
|
+
const srcDir = path_1.default.join(projectPath, 'src');
|
|
21
|
+
// Ensure src directory exists
|
|
22
|
+
if (!fs_1.default.existsSync(srcDir)) {
|
|
23
|
+
fs_1.default.mkdirSync(srcDir, { recursive: true });
|
|
24
|
+
}
|
|
25
|
+
// Copy all template files to src directory, except .claude
|
|
26
|
+
const entries = fs_1.default.readdirSync(templatesDir, { withFileTypes: true });
|
|
27
|
+
for (const entry of entries) {
|
|
28
|
+
const srcPath = path_1.default.join(templatesDir, entry.name);
|
|
29
|
+
// .claude folder should be copied to project root, not src
|
|
30
|
+
if (entry.name === '.claude') {
|
|
31
|
+
const destPath = path_1.default.join(projectPath, '.claude');
|
|
32
|
+
if (!fs_1.default.existsSync(destPath)) {
|
|
33
|
+
fs_1.default.mkdirSync(destPath, { recursive: true });
|
|
34
|
+
}
|
|
35
|
+
await (0, copyDirectory_1.copyDirectory)(srcPath, destPath);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// All other files go to src directory
|
|
39
|
+
const destPath = path_1.default.join(srcDir, entry.name);
|
|
40
|
+
if (entry.isDirectory()) {
|
|
41
|
+
if (!fs_1.default.existsSync(destPath)) {
|
|
42
|
+
fs_1.default.mkdirSync(destPath, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
await (0, copyDirectory_1.copyDirectory)(srcPath, destPath);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
fs_1.default.copyFileSync(srcPath, destPath);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
spinner.succeed('Template files copied');
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
spinner.fail('Failed to copy template files');
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=copyTemplates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copyTemplates.js","sourceRoot":"","sources":["../../src/templates/copyTemplates.ts"],"names":[],"mappings":";;;;;AAWA,sCA4CC;AAvDD,4CAAoB;AACpB,gDAAwB;AACxB,8CAAsB;AAEtB,mDAAgD;AAEhD;;;;GAIG;AACI,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,OAAmB;IAC1E,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,sCAAsC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpE,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAE7C,8BAA8B;QAC9B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,YAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,2DAA2D;QAC3D,MAAM,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEpD,2DAA2D;YAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACnD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,MAAM,IAAA,6BAAa,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7B,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,CAAC;oBACD,MAAM,IAAA,6BAAa,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACzC,CAAC;qBAAM,CAAC;oBACN,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC9C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.copyTemplates = void 0;
|
|
4
|
+
var copyTemplates_1 = require("./copyTemplates");
|
|
5
|
+
Object.defineProperty(exports, "copyTemplates", { enumerable: true, get: function () { return copyTemplates_1.copyTemplates; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export interface Instance {
|
|
2
|
+
name: string;
|
|
3
|
+
guid: string;
|
|
4
|
+
org?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ApiKeys {
|
|
7
|
+
fetchKey: string;
|
|
8
|
+
previewKey: string;
|
|
9
|
+
securityKey: string;
|
|
10
|
+
}
|
|
11
|
+
export interface InstanceData {
|
|
12
|
+
guid: string;
|
|
13
|
+
name: string;
|
|
14
|
+
apiKeys: ApiKeys;
|
|
15
|
+
}
|
|
16
|
+
export interface CliOptions {
|
|
17
|
+
typescript?: boolean;
|
|
18
|
+
javascript?: boolean;
|
|
19
|
+
tailwind?: boolean;
|
|
20
|
+
eslint?: boolean;
|
|
21
|
+
app?: boolean;
|
|
22
|
+
srcDir?: boolean;
|
|
23
|
+
importAlias?: string;
|
|
24
|
+
useNpm?: boolean;
|
|
25
|
+
usePnpm?: boolean;
|
|
26
|
+
useYarn?: boolean;
|
|
27
|
+
useBun?: boolean;
|
|
28
|
+
skipInstall?: boolean;
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
export interface ProjectConfig {
|
|
32
|
+
instanceGuid?: string;
|
|
33
|
+
apiKeys?: ApiKeys | null;
|
|
34
|
+
[key: string]: unknown;
|
|
35
|
+
}
|
|
36
|
+
export interface CreateNextAppOptions {
|
|
37
|
+
typescript?: boolean;
|
|
38
|
+
javascript?: boolean;
|
|
39
|
+
tailwind?: boolean;
|
|
40
|
+
eslint?: boolean;
|
|
41
|
+
app?: boolean;
|
|
42
|
+
srcDir?: boolean;
|
|
43
|
+
importAlias?: string;
|
|
44
|
+
useNpm?: boolean;
|
|
45
|
+
usePnpm?: boolean;
|
|
46
|
+
useYarn?: boolean;
|
|
47
|
+
useBun?: boolean;
|
|
48
|
+
skipInstall?: boolean;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBzE;AAgCD;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAQxC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.initializeGit = initializeGit;
|
|
7
|
+
exports.isGitAvailable = isGitAvailable;
|
|
8
|
+
const child_process_1 = require("child_process");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
/**
|
|
12
|
+
* Initialize a git repository
|
|
13
|
+
*/
|
|
14
|
+
async function initializeGit(projectPath) {
|
|
15
|
+
const spinner = (0, ora_1.default)('Initializing git repository...').start();
|
|
16
|
+
try {
|
|
17
|
+
// Initialize git
|
|
18
|
+
await runGitCommand(['init'], projectPath);
|
|
19
|
+
// Add all files
|
|
20
|
+
await runGitCommand(['add', '.'], projectPath);
|
|
21
|
+
// Create initial commit
|
|
22
|
+
await runGitCommand(['commit', '-m', 'Initial commit from create-next-agility-app'], projectPath);
|
|
23
|
+
spinner.succeed('Git repository initialized');
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
spinner.fail('Failed to initialize git repository');
|
|
28
|
+
console.log(chalk_1.default.yellow(' You can initialize git manually later with: git init'));
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Run a git command
|
|
34
|
+
*/
|
|
35
|
+
function runGitCommand(args, cwd) {
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
const child = (0, child_process_1.spawn)('git', args, {
|
|
38
|
+
cwd,
|
|
39
|
+
stdio: 'pipe',
|
|
40
|
+
});
|
|
41
|
+
let stderr = '';
|
|
42
|
+
child.stderr?.on('data', (data) => {
|
|
43
|
+
stderr += data.toString();
|
|
44
|
+
});
|
|
45
|
+
child.on('error', (error) => {
|
|
46
|
+
reject(error);
|
|
47
|
+
});
|
|
48
|
+
child.on('exit', (code) => {
|
|
49
|
+
if (code !== 0) {
|
|
50
|
+
reject(new Error(stderr || `Git command failed with code ${code}`));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
resolve();
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if git is available
|
|
60
|
+
*/
|
|
61
|
+
function isGitAvailable() {
|
|
62
|
+
try {
|
|
63
|
+
const { execSync } = require('child_process');
|
|
64
|
+
execSync('git --version', { stdio: 'ignore' });
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":";;;;;AAOA,sCAuBC;AAmCD,wCAQC;AAzED,iDAAsC;AACtC,kDAA0B;AAC1B,8CAAsB;AAEtB;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,WAAmB;IACrD,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,gCAAgC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE9D,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,aAAa,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC;QAE3C,gBAAgB;QAChB,MAAM,aAAa,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;QAE/C,wBAAwB;QACxB,MAAM,aAAa,CACjB,CAAC,QAAQ,EAAE,IAAI,EAAE,6CAA6C,CAAC,EAC/D,WAAW,CACZ,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAc,EAAE,GAAW;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,KAAK,EAAE,IAAI,EAAE;YAC/B,GAAG;YACH,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates a project name
|
|
3
|
+
*/
|
|
4
|
+
export declare function validateProjectName(projectName: string): {
|
|
5
|
+
valid: boolean;
|
|
6
|
+
message?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Checks if a directory already exists
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkDirectoryExists(projectPath: string): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Checks if directory is empty
|
|
14
|
+
*/
|
|
15
|
+
export declare function isDirectoryEmpty(projectPath: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Validates that we can create a project at the given path
|
|
18
|
+
*/
|
|
19
|
+
export declare function validateProjectPath(projectPath: string): {
|
|
20
|
+
valid: boolean;
|
|
21
|
+
message?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Check if git is installed
|
|
25
|
+
*/
|
|
26
|
+
export declare function isGitInstalled(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Displays validation error with helpful formatting
|
|
29
|
+
*/
|
|
30
|
+
export declare function displayValidationError(message: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Check available disk space (basic check)
|
|
33
|
+
*/
|
|
34
|
+
export declare function checkDiskSpace(): {
|
|
35
|
+
hasSpace: boolean;
|
|
36
|
+
message?: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Validate Node.js version
|
|
40
|
+
*/
|
|
41
|
+
export declare function validateNodeVersion(): {
|
|
42
|
+
valid: boolean;
|
|
43
|
+
message?: string;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAgCA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CA0C7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAO7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAyB7F;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAQxC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI5D;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAaxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAY1E"}
|