underpeaks-nxf 1.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 +0 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +53 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/generate.d.ts +3 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +75 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +59 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +24 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +22 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +56 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/package.json +36 -0
package/README.md
ADDED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYnC,eAAO,MAAM,aAAa,SA6CtB,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/cli/src/commands/doctor.ts
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.doctorCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
13
|
+
const CREDENTIALS_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'credentials.json');
|
|
14
|
+
exports.doctorCommand = new commander_1.Command('doctor')
|
|
15
|
+
.description('Diagnose connection, auth, and config issues')
|
|
16
|
+
.action(async () => {
|
|
17
|
+
console.log(chalk_1.default.cyan('\n nxf doctor\n'));
|
|
18
|
+
// Check credentials
|
|
19
|
+
const hasCredentials = await fs_extra_1.default.pathExists(CREDENTIALS_PATH);
|
|
20
|
+
console.log(hasCredentials
|
|
21
|
+
? chalk_1.default.green(' ✓ Credentials file found')
|
|
22
|
+
: chalk_1.default.red(' ✗ Not logged in — run: nxf login'));
|
|
23
|
+
if (!hasCredentials) {
|
|
24
|
+
console.log('');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const creds = await fs_extra_1.default.readJson(CREDENTIALS_PATH);
|
|
28
|
+
// Check active project
|
|
29
|
+
console.log(creds.active_project_id
|
|
30
|
+
? chalk_1.default.green(` ✓ Active project: ${creds.active_project_id}`)
|
|
31
|
+
: chalk_1.default.yellow(' ⚠ No active project — run: nxf project switch <id>'));
|
|
32
|
+
// Check API reachability
|
|
33
|
+
try {
|
|
34
|
+
const res = await (0, node_fetch_1.default)(`${creds.api_base}/api/codegen-private/health`);
|
|
35
|
+
console.log(res.ok
|
|
36
|
+
? chalk_1.default.green(` ✓ API reachable: ${creds.api_base}`)
|
|
37
|
+
: chalk_1.default.red(` ✗ API returned ${res.status}`));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
console.log(chalk_1.default.red(` ✗ API unreachable: ${creds.api_base}`));
|
|
41
|
+
}
|
|
42
|
+
// Check license expiry
|
|
43
|
+
if (creds.expires_at) {
|
|
44
|
+
const expiresAt = new Date(creds.expires_at);
|
|
45
|
+
const now = new Date();
|
|
46
|
+
const daysLeft = Math.floor((expiresAt.getTime() - now.getTime()) / (1000 * 60 * 60 * 24));
|
|
47
|
+
console.log(daysLeft > 0
|
|
48
|
+
? chalk_1.default.green(` ✓ License valid for ${daysLeft} more days`)
|
|
49
|
+
: chalk_1.default.red(' ✗ License expired — renew at studio.underpeaks.com'));
|
|
50
|
+
}
|
|
51
|
+
console.log('');
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";AAAA,+DAA+D;;;;;;AAE/D,yCAAmC;AACnC,kDAA+B;AAC/B,wDAAkC;AAClC,gDAA8B;AAC9B,4DAAoC;AAEpC,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,MAAM,EACN,kBAAkB,CACnB,CAAA;AAEY,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAE3C,oBAAoB;IACpB,MAAM,cAAc,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,cAAc;QACxB,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC;QAC3C,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAClD,CAAA;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAAC,OAAM;IAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAEjD,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB;QACjC,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC/D,CAAC,CAAC,eAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CACvE,CAAA;IAED,yBAAyB;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,KAAK,CAAC,QAAQ,6BAA6B,CAAC,CAAA;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAChB,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrD,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAC9C,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,uBAAuB;IACvB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAC5C,MAAM,GAAG,GAAS,IAAI,IAAI,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAI,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QAC3F,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC;YACtB,CAAC,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,QAAQ,YAAY,CAAC;YAC5D,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CACpE,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBnC,eAAO,MAAM,eAAe,SAwDxB,CAAA"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/cli/src/commands/generate.ts
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.generateCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
14
|
+
const CREDENTIALS_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'credentials.json');
|
|
15
|
+
async function getCredentials() {
|
|
16
|
+
if (!await fs_extra_1.default.pathExists(CREDENTIALS_PATH)) {
|
|
17
|
+
console.error(chalk_1.default.red('\n Not logged in. Run: nxf login\n'));
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
return fs_extra_1.default.readJson(CREDENTIALS_PATH);
|
|
21
|
+
}
|
|
22
|
+
exports.generateCommand = new commander_1.Command('generate')
|
|
23
|
+
.description('Generate Flutter or Next.js code from your CMS models')
|
|
24
|
+
.argument('<target>', 'Target framework: flutter or nextjs')
|
|
25
|
+
.option('--model <name>', 'Regenerate a specific model only')
|
|
26
|
+
.option('--models <names>', 'Regenerate multiple models (comma-separated)')
|
|
27
|
+
.option('--page <name>', 'Regenerate a specific page only')
|
|
28
|
+
.option('--pages <names>', 'Regenerate multiple pages (comma-separated)')
|
|
29
|
+
.option('--out <dir>', 'Output directory (default: ./nxf-output)')
|
|
30
|
+
.option('--state <manager>', 'State management: riverpod | bloc | provider (default: riverpod)')
|
|
31
|
+
.action(async (target, options) => {
|
|
32
|
+
if (!['flutter', 'nextjs'].includes(target)) {
|
|
33
|
+
console.error(chalk_1.default.red(`\n Unknown target: ${target}. Use flutter or nextjs.\n`));
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
const creds = await getCredentials();
|
|
37
|
+
const outDir = path_1.default.resolve(options.out ?? './nxf-output');
|
|
38
|
+
const spinner = (0, ora_1.default)(`Generating ${target} code…`).start();
|
|
39
|
+
try {
|
|
40
|
+
const res = await (0, node_fetch_1.default)(`${creds.api_base}/api/codegen-private/generate/${target}`, {
|
|
41
|
+
method: 'POST',
|
|
42
|
+
headers: {
|
|
43
|
+
'Content-Type': 'application/json',
|
|
44
|
+
'Authorization': `Bearer ${creds.license_key}`,
|
|
45
|
+
},
|
|
46
|
+
body: JSON.stringify({
|
|
47
|
+
project_id: creds.active_project_id,
|
|
48
|
+
state_manager: options.state ?? 'riverpod',
|
|
49
|
+
filter_models: options.models
|
|
50
|
+
? options.models.split(',').map((m) => m.trim())
|
|
51
|
+
: options.model ? [options.model] : null,
|
|
52
|
+
filter_pages: options.pages
|
|
53
|
+
? options.pages.split(',').map((p) => p.trim())
|
|
54
|
+
: options.page ? [options.page] : null,
|
|
55
|
+
}),
|
|
56
|
+
});
|
|
57
|
+
if (!res.ok) {
|
|
58
|
+
const err = await res.json();
|
|
59
|
+
spinner.fail(chalk_1.default.red(`Generation failed: ${err.error ?? 'Unknown error'}`));
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
// Stream zip response to disk
|
|
63
|
+
const buffer = await res.buffer();
|
|
64
|
+
await fs_extra_1.default.ensureDir(outDir);
|
|
65
|
+
const zipPath = path_1.default.join(outDir, `${target}-${Date.now()}.zip`);
|
|
66
|
+
await fs_extra_1.default.writeFile(zipPath, buffer);
|
|
67
|
+
spinner.succeed(chalk_1.default.green(`Generated successfully → ${zipPath}`));
|
|
68
|
+
console.log(chalk_1.default.dim(`\n Unzip and copy into your ${target} project.\n`));
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
spinner.fail(chalk_1.default.red(`Generation failed: ${err.message}`));
|
|
72
|
+
process.exit(1);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAQ,WAAW,CAAA;AAgBrC,eAAO,MAAM,YAAY,SA+CrB,CAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/cli/src/commands/login.ts
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.loginCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const ora_1 = __importDefault(require("ora"));
|
|
12
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
13
|
+
const path_1 = __importDefault(require("path"));
|
|
14
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
15
|
+
const CREDENTIALS_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'credentials.json');
|
|
16
|
+
const API_BASE = process.env.NXF_API_URL ?? 'https://studio.underpeaks.com';
|
|
17
|
+
exports.loginCommand = new commander_1.Command('login')
|
|
18
|
+
.description('Authenticate with your Underpeaks license key')
|
|
19
|
+
.action(async () => {
|
|
20
|
+
console.log(chalk_1.default.cyan('\n Underpeaks CLI\n'));
|
|
21
|
+
const { licenseKey } = await inquirer_1.default.prompt([
|
|
22
|
+
{
|
|
23
|
+
type: 'password',
|
|
24
|
+
name: 'licenseKey',
|
|
25
|
+
message: 'Enter your Underpeaks license key:',
|
|
26
|
+
mask: '*',
|
|
27
|
+
validate: (v) => v.trim().length > 0 || 'License key is required',
|
|
28
|
+
},
|
|
29
|
+
]);
|
|
30
|
+
const spinner = (0, ora_1.default)('Validating license key…').start();
|
|
31
|
+
try {
|
|
32
|
+
const res = await (0, node_fetch_1.default)(`${API_BASE}/api/codegen-private/license/validate`, {
|
|
33
|
+
method: 'POST',
|
|
34
|
+
headers: { 'Content-Type': 'application/json' },
|
|
35
|
+
body: JSON.stringify({ license_key: licenseKey.trim() }),
|
|
36
|
+
});
|
|
37
|
+
const data = await res.json();
|
|
38
|
+
if (!res.ok || !data.valid) {
|
|
39
|
+
spinner.fail(chalk_1.default.red('Invalid or expired license key.'));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
await fs_extra_1.default.ensureDir(path_1.default.dirname(CREDENTIALS_PATH));
|
|
43
|
+
await fs_extra_1.default.writeJson(CREDENTIALS_PATH, {
|
|
44
|
+
license_key: licenseKey.trim(),
|
|
45
|
+
user_id: data.user_id,
|
|
46
|
+
plan: data.plan,
|
|
47
|
+
active_project_id: data.active_project_id,
|
|
48
|
+
expires_at: data.expires_at,
|
|
49
|
+
api_base: API_BASE,
|
|
50
|
+
}, { spaces: 2 });
|
|
51
|
+
spinner.succeed(chalk_1.default.green(`Logged in. Plan: ${data.plan}`));
|
|
52
|
+
console.log(chalk_1.default.dim(` Credentials saved to ${CREDENTIALS_PATH}\n`));
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
spinner.fail(chalk_1.default.red(`Login failed: ${err.message}`));
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWnC,eAAO,MAAM,aAAa,SAStB,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/cli/src/commands/logout.ts
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.logoutCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
11
|
+
const path_1 = __importDefault(require("path"));
|
|
12
|
+
const CREDENTIALS_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'credentials.json');
|
|
13
|
+
exports.logoutCommand = new commander_1.Command('logout')
|
|
14
|
+
.description('Clear stored Underpeaks credentials')
|
|
15
|
+
.action(async () => {
|
|
16
|
+
if (await fs_extra_1.default.pathExists(CREDENTIALS_PATH)) {
|
|
17
|
+
await fs_extra_1.default.remove(CREDENTIALS_PATH);
|
|
18
|
+
console.log(chalk_1.default.green('\n Logged out successfully.\n'));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
console.log(chalk_1.default.dim('\n No active session found.\n'));
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";AAAA,+DAA+D;;;;;;AAE/D,yCAAmC;AACnC,kDAA+B;AAC/B,wDAAkC;AAClC,gDAA8B;AAE9B,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAChC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,EAClD,MAAM,EACN,kBAAkB,CACnB,CAAA;AAEY,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,qCAAqC,CAAC;KAClD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,MAAM,kBAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAA;IAC5D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAA;IAC1D,CAAC;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,eAAO,MAAM,cAAc,SAexB,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/cli/src/commands/migrate.ts
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.migrateCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
exports.migrateCommand = new commander_1.Command('migrate')
|
|
11
|
+
.description('Migrate between self-hosted and hosted')
|
|
12
|
+
.addCommand(new commander_1.Command('to-hosted')
|
|
13
|
+
.description('Migrate from self-hosted Core to Studio hosted')
|
|
14
|
+
.action(() => {
|
|
15
|
+
console.log(chalk_1.default.yellow('\n Migration coming in a future release.\n'));
|
|
16
|
+
}))
|
|
17
|
+
.addCommand(new commander_1.Command('to-self-hosted')
|
|
18
|
+
.description('Migrate from Studio hosted to self-hosted Core')
|
|
19
|
+
.action(() => {
|
|
20
|
+
console.log(chalk_1.default.yellow('\n Migration coming in a future release.\n'));
|
|
21
|
+
}));
|
|
22
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;;;;AAEhE,yCAAmC;AACnC,kDAA+B;AAElB,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,wCAAwC,CAAC;KACrD,UAAU,CACT,IAAI,mBAAO,CAAC,WAAW,CAAC;KACrB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,mBAAO,CAAC,gBAAgB,CAAC;KAC1B,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAA;AAC1E,CAAC,CAAC,CACL,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,eAAO,MAAM,cAAc,SA2CxB,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// File: underpeaks_codegen/packages/cli/src/commands/project.ts
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.projectCommand = void 0;
|
|
8
|
+
const commander_1 = require("commander");
|
|
9
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
10
|
+
const ora_1 = __importDefault(require("ora"));
|
|
11
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
14
|
+
const CREDENTIALS_PATH = path_1.default.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.nxf', 'credentials.json');
|
|
15
|
+
exports.projectCommand = new commander_1.Command('project')
|
|
16
|
+
.description('Manage Underpeaks projects')
|
|
17
|
+
.addCommand(new commander_1.Command('list')
|
|
18
|
+
.description('List all projects under your account')
|
|
19
|
+
.action(async () => {
|
|
20
|
+
if (!await fs_extra_1.default.pathExists(CREDENTIALS_PATH)) {
|
|
21
|
+
console.error(chalk_1.default.red('\n Not logged in. Run: nxf login\n'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const creds = await fs_extra_1.default.readJson(CREDENTIALS_PATH);
|
|
25
|
+
const spinner = (0, ora_1.default)('Fetching projects…').start();
|
|
26
|
+
try {
|
|
27
|
+
const res = await (0, node_fetch_1.default)(`${creds.api_base}/api/codegen-private/projects`, {
|
|
28
|
+
headers: { Authorization: `Bearer ${creds.license_key}` },
|
|
29
|
+
});
|
|
30
|
+
const data = await res.json();
|
|
31
|
+
spinner.stop();
|
|
32
|
+
console.log(chalk_1.default.cyan('\n Your projects:\n'));
|
|
33
|
+
(data.projects ?? []).forEach((p) => {
|
|
34
|
+
const active = p.project_id === creds.active_project_id ? chalk_1.default.green(' ← active') : '';
|
|
35
|
+
console.log(` ${chalk_1.default.white(p.name)}${active}`);
|
|
36
|
+
console.log(chalk_1.default.dim(` ${p.project_id}\n`));
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
spinner.fail(chalk_1.default.red(`Failed: ${err.message}`));
|
|
41
|
+
}
|
|
42
|
+
}))
|
|
43
|
+
.addCommand(new commander_1.Command('switch')
|
|
44
|
+
.description('Switch active project context')
|
|
45
|
+
.argument('<project_id>', 'Project ID to switch to')
|
|
46
|
+
.action(async (projectId) => {
|
|
47
|
+
if (!await fs_extra_1.default.pathExists(CREDENTIALS_PATH)) {
|
|
48
|
+
console.error(chalk_1.default.red('\n Not logged in. Run: nxf login\n'));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
const creds = await fs_extra_1.default.readJson(CREDENTIALS_PATH);
|
|
52
|
+
creds.active_project_id = projectId;
|
|
53
|
+
await fs_extra_1.default.writeJson(CREDENTIALS_PATH, creds, { spaces: 2 });
|
|
54
|
+
console.log(chalk_1.default.green(`\n Active project switched to: ${projectId}\n`));
|
|
55
|
+
}));
|
|
56
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const login_1 = require("./commands/login");
|
|
6
|
+
const logout_1 = require("./commands/logout");
|
|
7
|
+
const generate_1 = require("./commands/generate");
|
|
8
|
+
const migrate_1 = require("./commands/migrate");
|
|
9
|
+
const project_1 = require("./commands/project");
|
|
10
|
+
const doctor_1 = require("./commands/doctor");
|
|
11
|
+
const program = new commander_1.Command();
|
|
12
|
+
program
|
|
13
|
+
.name('nxf')
|
|
14
|
+
.description('Underpeaks CLI — generate Flutter and Next.js code from your CMS')
|
|
15
|
+
.version('1.0.0');
|
|
16
|
+
program.addCommand(login_1.loginCommand);
|
|
17
|
+
program.addCommand(logout_1.logoutCommand);
|
|
18
|
+
program.addCommand(generate_1.generateCommand);
|
|
19
|
+
program.addCommand(migrate_1.migrateCommand);
|
|
20
|
+
program.addCommand(project_1.projectCommand);
|
|
21
|
+
program.addCommand(doctor_1.doctorCommand);
|
|
22
|
+
program.parse(process.argv);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAGA,yCAAmC;AACnC,4CAAkD;AAClD,8CAAmD;AACnD,kDAAqD;AACrD,gDAAoD;AACpD,gDAAoD;AACpD,8CAAmD;AAEnD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,kEAAkE,CAAC;KAC/E,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAA;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAA;AACjC,OAAO,CAAC,UAAU,CAAC,0BAAe,CAAC,CAAA;AACnC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAA;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAA;AAEjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "underpeaks-nxf",
|
|
3
|
+
"version": "1.0.5",
|
|
4
|
+
"description": "Underpeaks CLI — generate Flutter and Next.js code from your CMS models",
|
|
5
|
+
"bin": {
|
|
6
|
+
"nxf": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"files": ["dist", "README.md"],
|
|
11
|
+
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"dev": "tsc --watch",
|
|
15
|
+
"clean": "rm -rf dist"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"commander": "^11.0.0",
|
|
19
|
+
"chalk": "^5.3.0",
|
|
20
|
+
"ora": "^7.0.1",
|
|
21
|
+
"inquirer": "^9.2.0",
|
|
22
|
+
"node-fetch": "^3.3.0",
|
|
23
|
+
"archiver": "^6.0.0",
|
|
24
|
+
"fs-extra": "^11.1.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"typescript": "^5.0.0",
|
|
28
|
+
"@types/node": "^20.0.0",
|
|
29
|
+
"@types/fs-extra": "^11.0.0",
|
|
30
|
+
"@types/archiver": "^6.0.0",
|
|
31
|
+
"@types/inquirer": "^9.0.0"
|
|
32
|
+
},
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=18.0.0"
|
|
35
|
+
}
|
|
36
|
+
}
|