nitrostack 1.0.0
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/CHANGELOG.md +227 -0
- package/CONTRIBUTING.md +182 -0
- package/LICENSE +201 -0
- package/LICENSE_URLS_UPDATE_COMPLETE.md +388 -0
- package/NOTICE +153 -0
- package/README.md +571 -0
- package/dist/auth/api-key.d.ts +118 -0
- package/dist/auth/api-key.d.ts.map +1 -0
- package/dist/auth/api-key.js +168 -0
- package/dist/auth/api-key.js.map +1 -0
- package/dist/auth/client.d.ts +151 -0
- package/dist/auth/client.d.ts.map +1 -0
- package/dist/auth/client.js +330 -0
- package/dist/auth/client.js.map +1 -0
- package/dist/auth/index.d.ts +30 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +43 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +95 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +260 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/pkce.d.ts +53 -0
- package/dist/auth/pkce.d.ts.map +1 -0
- package/dist/auth/pkce.js +105 -0
- package/dist/auth/pkce.js.map +1 -0
- package/dist/auth/quick-setup.d.ts +94 -0
- package/dist/auth/quick-setup.d.ts.map +1 -0
- package/dist/auth/quick-setup.js +210 -0
- package/dist/auth/quick-setup.js.map +1 -0
- package/dist/auth/server-integration.d.ts +97 -0
- package/dist/auth/server-integration.d.ts.map +1 -0
- package/dist/auth/server-integration.js +182 -0
- package/dist/auth/server-integration.js.map +1 -0
- package/dist/auth/server-metadata.d.ts +51 -0
- package/dist/auth/server-metadata.d.ts.map +1 -0
- package/dist/auth/server-metadata.js +106 -0
- package/dist/auth/server-metadata.js.map +1 -0
- package/dist/auth/simple-jwt.d.ts +88 -0
- package/dist/auth/simple-jwt.d.ts.map +1 -0
- package/dist/auth/simple-jwt.js +152 -0
- package/dist/auth/simple-jwt.js.map +1 -0
- package/dist/auth/token-store.d.ts +104 -0
- package/dist/auth/token-store.d.ts.map +1 -0
- package/dist/auth/token-store.js +205 -0
- package/dist/auth/token-store.js.map +1 -0
- package/dist/auth/token-validation.d.ts +47 -0
- package/dist/auth/token-validation.d.ts.map +1 -0
- package/dist/auth/token-validation.js +237 -0
- package/dist/auth/token-validation.js.map +1 -0
- package/dist/auth/types.d.ts +215 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +6 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/cli/commands/build.d.ts +6 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +104 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +7 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +312 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/generate-types.d.ts +8 -0
- package/dist/cli/commands/generate-types.d.ts.map +1 -0
- package/dist/cli/commands/generate-types.js +220 -0
- package/dist/cli/commands/generate-types.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +5 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +365 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +7 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +365 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/start.d.ts +6 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +61 -0
- package/dist/cli/commands/start.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 +47 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/mcp-dev-wrapper.d.ts +3 -0
- package/dist/cli/mcp-dev-wrapper.d.ts.map +1 -0
- package/dist/cli/mcp-dev-wrapper.js +116 -0
- package/dist/cli/mcp-dev-wrapper.js.map +1 -0
- package/dist/core/apikey-module.d.ts +69 -0
- package/dist/core/apikey-module.d.ts.map +1 -0
- package/dist/core/apikey-module.js +114 -0
- package/dist/core/apikey-module.js.map +1 -0
- package/dist/core/app-decorator.d.ts +58 -0
- package/dist/core/app-decorator.d.ts.map +1 -0
- package/dist/core/app-decorator.js +261 -0
- package/dist/core/app-decorator.js.map +1 -0
- package/dist/core/builders.d.ts +38 -0
- package/dist/core/builders.d.ts.map +1 -0
- package/dist/core/builders.js +129 -0
- package/dist/core/builders.js.map +1 -0
- package/dist/core/component.d.ts +105 -0
- package/dist/core/component.d.ts.map +1 -0
- package/dist/core/component.js +182 -0
- package/dist/core/component.js.map +1 -0
- package/dist/core/config-module.d.ts +55 -0
- package/dist/core/config-module.d.ts.map +1 -0
- package/dist/core/config-module.js +94 -0
- package/dist/core/config-module.js.map +1 -0
- package/dist/core/decorators/cache.decorator.d.ts +61 -0
- package/dist/core/decorators/cache.decorator.d.ts.map +1 -0
- package/dist/core/decorators/cache.decorator.js +115 -0
- package/dist/core/decorators/cache.decorator.js.map +1 -0
- package/dist/core/decorators/health-check.decorator.d.ts +80 -0
- package/dist/core/decorators/health-check.decorator.d.ts.map +1 -0
- package/dist/core/decorators/health-check.decorator.js +153 -0
- package/dist/core/decorators/health-check.decorator.js.map +1 -0
- package/dist/core/decorators/rate-limit.decorator.d.ts +62 -0
- package/dist/core/decorators/rate-limit.decorator.d.ts.map +1 -0
- package/dist/core/decorators/rate-limit.decorator.js +129 -0
- package/dist/core/decorators/rate-limit.decorator.js.map +1 -0
- package/dist/core/decorators.d.ts +151 -0
- package/dist/core/decorators.d.ts.map +1 -0
- package/dist/core/decorators.js +142 -0
- package/dist/core/decorators.js.map +1 -0
- package/dist/core/di/container.d.ts +42 -0
- package/dist/core/di/container.d.ts.map +1 -0
- package/dist/core/di/container.js +76 -0
- package/dist/core/di/container.js.map +1 -0
- package/dist/core/di/injectable.decorator.d.ts +35 -0
- package/dist/core/di/injectable.decorator.d.ts.map +1 -0
- package/dist/core/di/injectable.decorator.js +57 -0
- package/dist/core/di/injectable.decorator.js.map +1 -0
- package/dist/core/errors.d.ts +54 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +87 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/events/event-emitter.d.ts +50 -0
- package/dist/core/events/event-emitter.d.ts.map +1 -0
- package/dist/core/events/event-emitter.js +94 -0
- package/dist/core/events/event-emitter.js.map +1 -0
- package/dist/core/events/event.decorator.d.ts +48 -0
- package/dist/core/events/event.decorator.d.ts.map +1 -0
- package/dist/core/events/event.decorator.js +68 -0
- package/dist/core/events/event.decorator.js.map +1 -0
- package/dist/core/filters/exception-filter.decorator.d.ts +40 -0
- package/dist/core/filters/exception-filter.decorator.d.ts.map +1 -0
- package/dist/core/filters/exception-filter.decorator.js +54 -0
- package/dist/core/filters/exception-filter.decorator.js.map +1 -0
- package/dist/core/filters/exception-filter.interface.d.ts +30 -0
- package/dist/core/filters/exception-filter.interface.d.ts.map +1 -0
- package/dist/core/filters/exception-filter.interface.js +2 -0
- package/dist/core/filters/exception-filter.interface.js.map +1 -0
- package/dist/core/guards/apikey.guard.d.ts +22 -0
- package/dist/core/guards/apikey.guard.d.ts.map +1 -0
- package/dist/core/guards/apikey.guard.js +11 -0
- package/dist/core/guards/apikey.guard.js.map +1 -0
- package/dist/core/guards/guard.interface.d.ts +18 -0
- package/dist/core/guards/guard.interface.d.ts.map +1 -0
- package/dist/core/guards/guard.interface.js +2 -0
- package/dist/core/guards/guard.interface.js.map +1 -0
- package/dist/core/guards/jwt.guard.d.ts +18 -0
- package/dist/core/guards/jwt.guard.d.ts.map +1 -0
- package/dist/core/guards/jwt.guard.js +2 -0
- package/dist/core/guards/jwt.guard.js.map +1 -0
- package/dist/core/guards/oauth.guard.d.ts +35 -0
- package/dist/core/guards/oauth.guard.d.ts.map +1 -0
- package/dist/core/guards/oauth.guard.js +2 -0
- package/dist/core/guards/oauth.guard.js.map +1 -0
- package/dist/core/guards/use-guards.decorator.d.ts +25 -0
- package/dist/core/guards/use-guards.decorator.d.ts.map +1 -0
- package/dist/core/guards/use-guards.decorator.js +32 -0
- package/dist/core/guards/use-guards.decorator.js.map +1 -0
- package/dist/core/health/health-checks.resource.d.ts +14 -0
- package/dist/core/health/health-checks.resource.d.ts.map +1 -0
- package/dist/core/health/health-checks.resource.js +29 -0
- package/dist/core/health/health-checks.resource.js.map +1 -0
- package/dist/core/index.d.ts +55 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +57 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/interceptors/interceptor.decorator.d.ts +37 -0
- package/dist/core/interceptors/interceptor.decorator.d.ts.map +1 -0
- package/dist/core/interceptors/interceptor.decorator.js +51 -0
- package/dist/core/interceptors/interceptor.decorator.js.map +1 -0
- package/dist/core/interceptors/interceptor.interface.d.ts +31 -0
- package/dist/core/interceptors/interceptor.interface.d.ts.map +1 -0
- package/dist/core/interceptors/interceptor.interface.js +2 -0
- package/dist/core/interceptors/interceptor.interface.js.map +1 -0
- package/dist/core/jwt-module.d.ts +51 -0
- package/dist/core/jwt-module.d.ts.map +1 -0
- package/dist/core/jwt-module.js +52 -0
- package/dist/core/jwt-module.js.map +1 -0
- package/dist/core/logger.d.ts +18 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +51 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/middleware/middleware.decorator.d.ts +39 -0
- package/dist/core/middleware/middleware.decorator.d.ts.map +1 -0
- package/dist/core/middleware/middleware.decorator.js +53 -0
- package/dist/core/middleware/middleware.decorator.js.map +1 -0
- package/dist/core/middleware/middleware.interface.d.ts +29 -0
- package/dist/core/middleware/middleware.interface.d.ts.map +1 -0
- package/dist/core/middleware/middleware.interface.js +2 -0
- package/dist/core/middleware/middleware.interface.js.map +1 -0
- package/dist/core/module.d.ts +74 -0
- package/dist/core/module.d.ts.map +1 -0
- package/dist/core/module.js +82 -0
- package/dist/core/module.js.map +1 -0
- package/dist/core/oauth-module.d.ts +144 -0
- package/dist/core/oauth-module.d.ts.map +1 -0
- package/dist/core/oauth-module.js +190 -0
- package/dist/core/oauth-module.js.map +1 -0
- package/dist/core/pipes/pipe.decorator.d.ts +55 -0
- package/dist/core/pipes/pipe.decorator.d.ts.map +1 -0
- package/dist/core/pipes/pipe.decorator.js +85 -0
- package/dist/core/pipes/pipe.decorator.js.map +1 -0
- package/dist/core/pipes/pipe.interface.d.ts +36 -0
- package/dist/core/pipes/pipe.interface.d.ts.map +1 -0
- package/dist/core/pipes/pipe.interface.js +2 -0
- package/dist/core/pipes/pipe.interface.js.map +1 -0
- package/dist/core/prompt.d.ts +37 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +76 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/resource.d.ts +42 -0
- package/dist/core/resource.d.ts.map +1 -0
- package/dist/core/resource.js +90 -0
- package/dist/core/resource.js.map +1 -0
- package/dist/core/server.d.ts +72 -0
- package/dist/core/server.d.ts.map +1 -0
- package/dist/core/server.js +406 -0
- package/dist/core/server.js.map +1 -0
- package/dist/core/tool.d.ts +78 -0
- package/dist/core/tool.d.ts.map +1 -0
- package/dist/core/tool.js +190 -0
- package/dist/core/tool.js.map +1 -0
- package/dist/core/transports/http-server.d.ts +102 -0
- package/dist/core/transports/http-server.d.ts.map +1 -0
- package/dist/core/transports/http-server.js +265 -0
- package/dist/core/transports/http-server.js.map +1 -0
- package/dist/core/types.d.ts +123 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/widgets/widget-examples.resource.d.ts +17 -0
- package/dist/core/widgets/widget-examples.resource.d.ts.map +1 -0
- package/dist/core/widgets/widget-examples.resource.js +28 -0
- package/dist/core/widgets/widget-examples.resource.js.map +1 -0
- package/dist/core/widgets/widget-registry.d.ts +56 -0
- package/dist/core/widgets/widget-registry.d.ts.map +1 -0
- package/dist/core/widgets/widget-registry.js +75 -0
- package/dist/core/widgets/widget-registry.js.map +1 -0
- package/dist/testing/index.d.ts +82 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +164 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/ui-next/index.d.ts +31 -0
- package/dist/ui-next/index.d.ts.map +1 -0
- package/dist/ui-next/index.js +687 -0
- package/dist/ui-next/index.js.map +1 -0
- package/dist/widgets/index.d.ts +9 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +9 -0
- package/dist/widgets/index.js.map +1 -0
- package/dist/widgets/metadata.d.ts +53 -0
- package/dist/widgets/metadata.d.ts.map +1 -0
- package/dist/widgets/metadata.js +29 -0
- package/dist/widgets/metadata.js.map +1 -0
- package/dist/widgets/withToolData.d.ts +19 -0
- package/dist/widgets/withToolData.d.ts.map +1 -0
- package/dist/widgets/withToolData.js +240 -0
- package/dist/widgets/withToolData.js.map +1 -0
- package/jest.config.js +21 -0
- package/package.json +108 -0
- package/templates/typescript-auth/AI_AGENT_CLI_REFERENCE.md +702 -0
- package/templates/typescript-auth/AI_AGENT_SDK_REFERENCE.md +1260 -0
- package/templates/typescript-auth/README.md +400 -0
- package/templates/typescript-auth/package.json +44 -0
- package/templates/typescript-auth-api-key/AI_AGENT_CLI_REFERENCE.md +701 -0
- package/templates/typescript-auth-api-key/AI_AGENT_SDK_REFERENCE.md +1260 -0
- package/templates/typescript-auth-api-key/README.md +483 -0
- package/templates/typescript-auth-api-key/package-lock.json +124 -0
- package/templates/typescript-auth-api-key/package.json +29 -0
- package/templates/typescript-oauth/AI_AGENT_CLI_REFERENCE.md +701 -0
- package/templates/typescript-oauth/AI_AGENT_SDK_REFERENCE.md +1260 -0
- package/templates/typescript-oauth/OAUTH_SETUP.md +406 -0
- package/templates/typescript-oauth/README.md +350 -0
- package/templates/typescript-oauth/package.json +30 -0
- package/templates/typescript-starter/AI_AGENT_CLI_REFERENCE.md +701 -0
- package/templates/typescript-starter/AI_AGENT_SDK_REFERENCE.md +1260 -0
- package/templates/typescript-starter/README.md +312 -0
- package/templates/typescript-starter/package.json +32 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAyCA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBAuTnD"}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import open from 'open';
|
|
5
|
+
import { spawn, execSync } from 'child_process';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
import { dirname } from 'path';
|
|
8
|
+
import chokidar from 'chokidar';
|
|
9
|
+
// ES module equivalent of __dirname
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = dirname(__filename);
|
|
12
|
+
/**
|
|
13
|
+
* Check if nitrostack is installed globally from npm registry
|
|
14
|
+
*/
|
|
15
|
+
function isNitrostackFromNpm() {
|
|
16
|
+
try {
|
|
17
|
+
const result = execSync('npm list -g nitrostack --json', {
|
|
18
|
+
encoding: 'utf-8',
|
|
19
|
+
stdio: 'pipe'
|
|
20
|
+
});
|
|
21
|
+
const parsed = JSON.parse(result);
|
|
22
|
+
if (parsed.dependencies && parsed.dependencies.nitrostack) {
|
|
23
|
+
const nitrostackInfo = parsed.dependencies.nitrostack;
|
|
24
|
+
return nitrostackInfo.version && !nitrostackInfo.resolved?.includes('file:');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if we're running nitrostack from a local development environment
|
|
34
|
+
*/
|
|
35
|
+
function isLocalDevelopment() {
|
|
36
|
+
return __dirname.includes('/src/cli/') || __dirname.includes('\\src\\cli\\');
|
|
37
|
+
}
|
|
38
|
+
export async function devCommand(options) {
|
|
39
|
+
console.log(chalk.blue.bold('\n🔥 Starting NitroStack Development Environment...\n'));
|
|
40
|
+
// Check if package.json exists
|
|
41
|
+
const packageJsonPath = path.join(process.cwd(), 'package.json');
|
|
42
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
43
|
+
console.error(chalk.red('Error: package.json not found. Are you in a NitroStack project?'));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
// Auto-detect and handle widgets
|
|
47
|
+
const widgetsPath = path.join(process.cwd(), 'src', 'widgets');
|
|
48
|
+
const widgetsPackageJsonPath = path.join(widgetsPath, 'package.json');
|
|
49
|
+
const hasWidgets = fs.existsSync(widgetsPackageJsonPath);
|
|
50
|
+
if (hasWidgets) {
|
|
51
|
+
console.log(chalk.blue('📦 Detected Next.js widgets in src/widgets\n'));
|
|
52
|
+
const fromNpm = isNitrostackFromNpm();
|
|
53
|
+
const isLocalDev = isLocalDevelopment();
|
|
54
|
+
// Check if widget dependencies are installed
|
|
55
|
+
const widgetsNodeModulesPath = path.join(widgetsPath, 'node_modules');
|
|
56
|
+
const widgetsNitrostackPath = path.join(widgetsNodeModulesPath, 'nitrostack');
|
|
57
|
+
if (!fs.existsSync(widgetsNodeModulesPath) || !fs.existsSync(widgetsNitrostackPath)) {
|
|
58
|
+
// If in local dev, link nitrostack first
|
|
59
|
+
if (isLocalDev && !fromNpm) {
|
|
60
|
+
try {
|
|
61
|
+
console.log(chalk.yellow('🔗 Linking local nitrostack to widgets...\n'));
|
|
62
|
+
execSync('npm link nitrostack', { cwd: widgetsPath, stdio: 'inherit' });
|
|
63
|
+
console.log(chalk.green('✅ Local nitrostack linked\n'));
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error(chalk.yellow('⚠️ Failed to link nitrostack. Trying regular install...\n'));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
console.log(chalk.yellow('📥 Installing widget dependencies...\n'));
|
|
70
|
+
try {
|
|
71
|
+
execSync('npm install', { cwd: widgetsPath, stdio: 'inherit' });
|
|
72
|
+
console.log(chalk.green('✅ Widget dependencies installed\n'));
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error(chalk.red('Failed to install widget dependencies'));
|
|
76
|
+
if (isLocalDev && !fromNpm) {
|
|
77
|
+
console.error(chalk.yellow('\n💡 Tip: Make sure nitrostack is linked globally:'));
|
|
78
|
+
console.error(chalk.cyan(' npm link (from nitrostack root directory)\n'));
|
|
79
|
+
}
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Check if package.json has changed since last install
|
|
85
|
+
try {
|
|
86
|
+
const pkgStat = fs.statSync(widgetsPackageJsonPath);
|
|
87
|
+
const lockPath = path.join(widgetsPath, 'package-lock.json');
|
|
88
|
+
if (fs.existsSync(lockPath)) {
|
|
89
|
+
const lockStat = fs.statSync(lockPath);
|
|
90
|
+
if (pkgStat.mtime > lockStat.mtime) {
|
|
91
|
+
console.log(chalk.yellow('📥 Detected package.json changes, updating dependencies...\n'));
|
|
92
|
+
execSync('npm install', { cwd: widgetsPath, stdio: 'inherit' });
|
|
93
|
+
console.log(chalk.green('✅ Widget dependencies updated\n'));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
// Ignore stat errors, continue
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Build widgets if not built
|
|
102
|
+
const widgetsOutPath = path.join(widgetsPath, '.next');
|
|
103
|
+
if (!fs.existsSync(widgetsOutPath)) {
|
|
104
|
+
console.log(chalk.yellow('🔨 Building widgets for the first time...\n'));
|
|
105
|
+
try {
|
|
106
|
+
execSync('npm run build', { cwd: widgetsPath, stdio: 'inherit', env: { ...process.env, NODE_ENV: 'production' } });
|
|
107
|
+
console.log(chalk.green('✅ Widgets built\n'));
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.log(chalk.yellow('⚠️ Widget build failed, will start dev server anyway\n'));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Check if dist/index.js exists
|
|
115
|
+
const distIndexPath = path.join(process.cwd(), 'dist', 'index.js');
|
|
116
|
+
if (!fs.existsSync(distIndexPath)) {
|
|
117
|
+
console.error(chalk.yellow('⚠️ dist/index.js not found. Building project...\n'));
|
|
118
|
+
// Try to build the project
|
|
119
|
+
try {
|
|
120
|
+
// Build widgets first if they exist
|
|
121
|
+
if (hasWidgets) {
|
|
122
|
+
console.log(chalk.blue('Building widgets...\n'));
|
|
123
|
+
execSync('npm run build', { cwd: widgetsPath, stdio: 'inherit', env: { ...process.env, NODE_ENV: 'production' } });
|
|
124
|
+
}
|
|
125
|
+
// Build TypeScript
|
|
126
|
+
execSync('npx tsc', { stdio: 'inherit', cwd: process.cwd() });
|
|
127
|
+
console.log(chalk.green('\n✅ Build successful\n'));
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
console.error(chalk.red('Build failed. Please fix errors and try again.'));
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const port = parseInt(options.port) || 3000;
|
|
135
|
+
let studioProcess = null;
|
|
136
|
+
let tscWatchProcess = null;
|
|
137
|
+
let widgetsDevProcess = null;
|
|
138
|
+
// Start TypeScript compiler in watch mode for hot reload
|
|
139
|
+
console.log(chalk.blue('🔧 Starting TypeScript watch mode for MCP server...\n'));
|
|
140
|
+
tscWatchProcess = spawn('npx', ['tsc', '--watch', '--preserveWatchOutput'], {
|
|
141
|
+
cwd: process.cwd(),
|
|
142
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
143
|
+
shell: true,
|
|
144
|
+
});
|
|
145
|
+
// Log TypeScript compilation output
|
|
146
|
+
if (tscWatchProcess.stdout) {
|
|
147
|
+
tscWatchProcess.stdout.on('data', (data) => {
|
|
148
|
+
const output = data.toString();
|
|
149
|
+
if (output.includes('Found 0 errors')) {
|
|
150
|
+
console.log(chalk.green('✅ MCP server compiled successfully - changes will be reflected on next tool call'));
|
|
151
|
+
}
|
|
152
|
+
else if (output.includes('error TS')) {
|
|
153
|
+
console.log(chalk.red('❌ TypeScript compilation error:'));
|
|
154
|
+
console.log(output);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (tscWatchProcess.stderr) {
|
|
159
|
+
tscWatchProcess.stderr.on('data', (data) => {
|
|
160
|
+
const error = data.toString();
|
|
161
|
+
if (error.trim()) {
|
|
162
|
+
console.error(chalk.red('TypeScript error:'), error);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
// Function to start/restart widget dev server
|
|
167
|
+
const startWidgetsDevServer = () => {
|
|
168
|
+
if (widgetsDevProcess) {
|
|
169
|
+
console.log(chalk.yellow('🔄 Stopping previous widget dev server...\n'));
|
|
170
|
+
widgetsDevProcess.kill();
|
|
171
|
+
widgetsDevProcess = null;
|
|
172
|
+
}
|
|
173
|
+
console.log(chalk.blue('🎨 Starting widget dev server on :3001...\n'));
|
|
174
|
+
widgetsDevProcess = spawn('npm', ['run', 'dev', '--', '--port', '3001'], {
|
|
175
|
+
cwd: widgetsPath,
|
|
176
|
+
env: { ...process.env, NODE_ENV: 'development' },
|
|
177
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
178
|
+
shell: true,
|
|
179
|
+
});
|
|
180
|
+
// Handle widget server errors
|
|
181
|
+
widgetsDevProcess.on('error', (error) => {
|
|
182
|
+
console.error(chalk.red('Widget dev server error:'), error);
|
|
183
|
+
});
|
|
184
|
+
widgetsDevProcess.on('exit', (code, signal) => {
|
|
185
|
+
if (signal !== 'SIGTERM' && signal !== 'SIGINT' && code !== 0) {
|
|
186
|
+
console.error(chalk.red(`Widget dev server exited with code ${code}`));
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
// Start widgets dev server if widgets exist
|
|
191
|
+
if (hasWidgets) {
|
|
192
|
+
startWidgetsDevServer();
|
|
193
|
+
// Watch for new widget pages being added and restart the dev server
|
|
194
|
+
// This prevents webpack cache corruption issues when adding new pages
|
|
195
|
+
const widgetPagesPath = path.join(widgetsPath, 'app');
|
|
196
|
+
const widgetNextCachePath = path.join(widgetsPath, '.next');
|
|
197
|
+
console.log(chalk.gray('👀 Watching for new widget pages...\n'));
|
|
198
|
+
const watcher = chokidar.watch(widgetPagesPath, {
|
|
199
|
+
ignored: /(^|[\/\\])\../, // ignore dotfiles
|
|
200
|
+
persistent: true,
|
|
201
|
+
ignoreInitial: true, // Don't fire events for existing files
|
|
202
|
+
awaitWriteFinish: {
|
|
203
|
+
stabilityThreshold: 1000, // Wait for file to stabilize
|
|
204
|
+
pollInterval: 100
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
// Track when we last restarted to prevent rapid restarts
|
|
208
|
+
let lastRestart = 0;
|
|
209
|
+
const RESTART_COOLDOWN = 3000; // 3 seconds
|
|
210
|
+
let restartTimeout = null;
|
|
211
|
+
watcher.on('add', (filepath) => {
|
|
212
|
+
// Only restart for page.tsx or page.jsx files (actual Next.js pages)
|
|
213
|
+
if (filepath.endsWith('page.tsx') || filepath.endsWith('page.jsx')) {
|
|
214
|
+
const now = Date.now();
|
|
215
|
+
if (now - lastRestart < RESTART_COOLDOWN) {
|
|
216
|
+
return; // Too soon, skip
|
|
217
|
+
}
|
|
218
|
+
const relativePath = path.relative(widgetPagesPath, filepath);
|
|
219
|
+
console.log(chalk.yellow(`\n📄 New widget page detected: ${relativePath}`));
|
|
220
|
+
console.log(chalk.yellow('🔄 Restarting widget dev server to prevent cache issues...\n'));
|
|
221
|
+
// Clear any pending restart
|
|
222
|
+
if (restartTimeout) {
|
|
223
|
+
clearTimeout(restartTimeout);
|
|
224
|
+
}
|
|
225
|
+
// Debounce restart in case multiple files are added
|
|
226
|
+
restartTimeout = setTimeout(() => {
|
|
227
|
+
try {
|
|
228
|
+
lastRestart = Date.now();
|
|
229
|
+
// Clear the .next cache before restarting
|
|
230
|
+
if (fs.existsSync(widgetNextCachePath)) {
|
|
231
|
+
console.log(chalk.gray('🗑️ Clearing widget cache...\n'));
|
|
232
|
+
fs.rmSync(widgetNextCachePath, { recursive: true, force: true });
|
|
233
|
+
}
|
|
234
|
+
// Restart the dev server
|
|
235
|
+
startWidgetsDevServer();
|
|
236
|
+
console.log(chalk.green('✅ Widget dev server restarted! All widgets should load properly.\n'));
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
console.error(chalk.red('⚠️ Failed to restart widget server:'), error);
|
|
240
|
+
}
|
|
241
|
+
}, 500); // Wait 500ms after file is stable
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
// Start Studio Next.js dev server
|
|
246
|
+
console.log(chalk.blue('📦 Starting Studio...\n'));
|
|
247
|
+
const studioPath = path.resolve(__dirname, '../../../src/studio');
|
|
248
|
+
// Check if Studio exists and has dependencies installed
|
|
249
|
+
if (!fs.existsSync(path.join(studioPath, 'node_modules'))) {
|
|
250
|
+
console.log(chalk.yellow('Installing Studio dependencies...\n'));
|
|
251
|
+
try {
|
|
252
|
+
execSync('npm install', { cwd: studioPath, stdio: 'inherit' });
|
|
253
|
+
console.log(chalk.green('\n✅ Studio dependencies installed\n'));
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
console.error(chalk.red('Failed to install Studio dependencies'));
|
|
257
|
+
process.exit(1);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Studio environment with MCP server config
|
|
261
|
+
const wrapperPath = path.resolve(__dirname, '../../cli/mcp-dev-wrapper.js');
|
|
262
|
+
const studioEnv = {
|
|
263
|
+
...process.env,
|
|
264
|
+
PORT: port.toString(),
|
|
265
|
+
NODE_ENV: 'development',
|
|
266
|
+
MCP_COMMAND: 'node',
|
|
267
|
+
MCP_ARGS: JSON.stringify([wrapperPath, distIndexPath]),
|
|
268
|
+
WIDGETS_DEV_MODE: hasWidgets ? 'true' : 'false',
|
|
269
|
+
WIDGETS_DEV_PORT: '3001',
|
|
270
|
+
};
|
|
271
|
+
studioProcess = spawn('npm', ['run', 'dev'], {
|
|
272
|
+
cwd: studioPath,
|
|
273
|
+
env: studioEnv,
|
|
274
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
275
|
+
shell: true,
|
|
276
|
+
});
|
|
277
|
+
// Wait for Studio to be ready
|
|
278
|
+
console.log(chalk.cyan('⏳ Waiting for Studio to start...\n'));
|
|
279
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
280
|
+
console.log(chalk.green('\n✅ Development Environment Ready!'));
|
|
281
|
+
console.log(chalk.cyan(`📡 Studio: http://localhost:${port}`));
|
|
282
|
+
if (hasWidgets) {
|
|
283
|
+
console.log(chalk.cyan(`🎨 Widgets: http://localhost:3001`));
|
|
284
|
+
}
|
|
285
|
+
console.log(chalk.gray('\nPress Ctrl+C to stop\n'));
|
|
286
|
+
// Open browser automatically unless --no-open flag is set
|
|
287
|
+
if (!options.noOpen) {
|
|
288
|
+
await open(`http://localhost:${port}`);
|
|
289
|
+
}
|
|
290
|
+
// Handle graceful shutdown
|
|
291
|
+
const shutdown = async () => {
|
|
292
|
+
console.log(chalk.yellow('\n\n🛑 Shutting down...'));
|
|
293
|
+
if (tscWatchProcess) {
|
|
294
|
+
tscWatchProcess.kill();
|
|
295
|
+
console.log(chalk.green('✅ TypeScript watch stopped'));
|
|
296
|
+
}
|
|
297
|
+
if (widgetsDevProcess) {
|
|
298
|
+
widgetsDevProcess.kill();
|
|
299
|
+
console.log(chalk.green('✅ Widgets dev server stopped'));
|
|
300
|
+
}
|
|
301
|
+
if (studioProcess) {
|
|
302
|
+
studioProcess.kill();
|
|
303
|
+
console.log(chalk.green('✅ Studio stopped'));
|
|
304
|
+
}
|
|
305
|
+
process.exit(0);
|
|
306
|
+
};
|
|
307
|
+
process.on('SIGINT', shutdown);
|
|
308
|
+
process.on('SIGTERM', shutdown);
|
|
309
|
+
// Keep process alive
|
|
310
|
+
await new Promise(() => { });
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates TypeScript types from tool definitions
|
|
3
|
+
* Scans all *.tools.ts files and extracts types from Zod schemas and examples
|
|
4
|
+
*/
|
|
5
|
+
export declare function generateTypes(options?: {
|
|
6
|
+
output?: string;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=generate-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate-types.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;CAAO,iBA4BrE"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { dirname } from 'path';
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = dirname(__filename);
|
|
7
|
+
/**
|
|
8
|
+
* Generates TypeScript types from tool definitions
|
|
9
|
+
* Scans all *.tools.ts files and extracts types from Zod schemas and examples
|
|
10
|
+
*/
|
|
11
|
+
export async function generateTypes(options = {}) {
|
|
12
|
+
const projectRoot = process.cwd();
|
|
13
|
+
const outputPath = options.output || path.join(projectRoot, 'src', 'types', 'generated-tools.ts');
|
|
14
|
+
console.log('🔍 Scanning for tool definitions...');
|
|
15
|
+
// Find all *.tools.ts files
|
|
16
|
+
const toolFiles = await findToolFiles(path.join(projectRoot, 'src'));
|
|
17
|
+
if (toolFiles.length === 0) {
|
|
18
|
+
console.log('⚠️ No tool files found');
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log(`📝 Found ${toolFiles.length} tool file(s)`);
|
|
22
|
+
// Parse tools and generate types
|
|
23
|
+
const types = await generateTypesFromFiles(toolFiles);
|
|
24
|
+
// Write output file
|
|
25
|
+
const outputDir = path.dirname(outputPath);
|
|
26
|
+
if (!fs.existsSync(outputDir)) {
|
|
27
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
28
|
+
}
|
|
29
|
+
fs.writeFileSync(outputPath, types);
|
|
30
|
+
console.log(`✅ Generated types at: ${outputPath}`);
|
|
31
|
+
}
|
|
32
|
+
async function findToolFiles(dir) {
|
|
33
|
+
const files = [];
|
|
34
|
+
if (!fs.existsSync(dir)) {
|
|
35
|
+
return files;
|
|
36
|
+
}
|
|
37
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
38
|
+
for (const entry of entries) {
|
|
39
|
+
const fullPath = path.join(dir, entry.name);
|
|
40
|
+
if (entry.isDirectory() && !entry.name.includes('node_modules') && !entry.name.includes('dist')) {
|
|
41
|
+
files.push(...await findToolFiles(fullPath));
|
|
42
|
+
}
|
|
43
|
+
else if (entry.isFile() && entry.name.endsWith('.tools.ts')) {
|
|
44
|
+
files.push(fullPath);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return files;
|
|
48
|
+
}
|
|
49
|
+
async function generateTypesFromFiles(files) {
|
|
50
|
+
let output = `/**
|
|
51
|
+
* Auto-generated types from tool definitions
|
|
52
|
+
* DO NOT EDIT THIS FILE MANUALLY
|
|
53
|
+
*
|
|
54
|
+
* Generated by: nitrostack generate-types
|
|
55
|
+
* Generated at: ${new Date().toISOString()}
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
// ==========================================
|
|
59
|
+
// Common Types
|
|
60
|
+
// ==========================================
|
|
61
|
+
|
|
62
|
+
export interface ToolInput<T = any> {
|
|
63
|
+
[key: string]: T;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface ToolOutput<T = any> {
|
|
67
|
+
[key: string]: T;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// ==========================================
|
|
71
|
+
// Tool-specific Types
|
|
72
|
+
// ==========================================
|
|
73
|
+
|
|
74
|
+
`;
|
|
75
|
+
const toolTypes = new Map();
|
|
76
|
+
for (const file of files) {
|
|
77
|
+
const content = fs.readFileSync(file, 'utf-8');
|
|
78
|
+
// Extract @Tool decorators
|
|
79
|
+
const toolRegex = /@Tool\(\{[\s\S]*?name:\s*['"]([^'"]+)['"]\s*,[\s\S]*?\}\)/g;
|
|
80
|
+
let match;
|
|
81
|
+
while ((match = toolRegex.exec(content)) !== null) {
|
|
82
|
+
const toolName = match[1];
|
|
83
|
+
const decoratorContent = match[0];
|
|
84
|
+
// Extract inputSchema (Zod schema)
|
|
85
|
+
const inputSchemaMatch = decoratorContent.match(/inputSchema:\s*z\.object\(\{([\s\S]*?)\}\)/);
|
|
86
|
+
// Extract example response
|
|
87
|
+
const examplesMatch = decoratorContent.match(/examples:\s*\{[\s\S]*?response:\s*(\{[\s\S]*?\})\s*\}/);
|
|
88
|
+
if (inputSchemaMatch || examplesMatch) {
|
|
89
|
+
const pascalCaseName = toPascalCase(toolName);
|
|
90
|
+
// Generate input type from Zod schema
|
|
91
|
+
let inputType = 'Record<string, any>';
|
|
92
|
+
if (inputSchemaMatch) {
|
|
93
|
+
inputType = generateTypeFromZodSchema(inputSchemaMatch[1]);
|
|
94
|
+
}
|
|
95
|
+
// Generate output type from example
|
|
96
|
+
let outputType = 'any';
|
|
97
|
+
if (examplesMatch) {
|
|
98
|
+
outputType = generateTypeFromExample(examplesMatch[1]);
|
|
99
|
+
}
|
|
100
|
+
toolTypes.set(toolName, { input: inputType, output: outputType });
|
|
101
|
+
output += `// ${toolName}\n`;
|
|
102
|
+
output += `export type ${pascalCaseName}Input = ${inputType};\n`;
|
|
103
|
+
output += `export type ${pascalCaseName}Output = ${outputType};\n\n`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Add a union type of all tool names
|
|
108
|
+
output += `// ==========================================\n`;
|
|
109
|
+
output += `// Tool Name Union\n`;
|
|
110
|
+
output += `// ==========================================\n\n`;
|
|
111
|
+
output += `export type ToolName = ${Array.from(toolTypes.keys()).map(name => `'${name}'`).join(' | ')};\n\n`;
|
|
112
|
+
// Add a mapped type for inputs and outputs
|
|
113
|
+
output += `// ==========================================\n`;
|
|
114
|
+
output += `// Mapped Types\n`;
|
|
115
|
+
output += `// ==========================================\n\n`;
|
|
116
|
+
output += `export interface ToolInputs {\n`;
|
|
117
|
+
for (const [toolName] of toolTypes) {
|
|
118
|
+
const pascalCase = toPascalCase(toolName);
|
|
119
|
+
output += ` '${toolName}': ${pascalCase}Input;\n`;
|
|
120
|
+
}
|
|
121
|
+
output += `}\n\n`;
|
|
122
|
+
output += `export interface ToolOutputs {\n`;
|
|
123
|
+
for (const [toolName] of toolTypes) {
|
|
124
|
+
const pascalCase = toPascalCase(toolName);
|
|
125
|
+
output += ` '${toolName}': ${pascalCase}Output;\n`;
|
|
126
|
+
}
|
|
127
|
+
output += `}\n`;
|
|
128
|
+
return output;
|
|
129
|
+
}
|
|
130
|
+
function toPascalCase(str) {
|
|
131
|
+
return str
|
|
132
|
+
.split(/[_-]/)
|
|
133
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
134
|
+
.join('');
|
|
135
|
+
}
|
|
136
|
+
function generateTypeFromZodSchema(zodContent) {
|
|
137
|
+
// Simple parser for basic Zod schemas
|
|
138
|
+
// This is a simplified version - in production, you might want to use actual Zod parsing
|
|
139
|
+
const fields = [];
|
|
140
|
+
// Match field definitions like: field_name: z.string().describe('...')
|
|
141
|
+
const fieldRegex = /(\w+):\s*z\.(\w+)\(\)(?:\.optional\(\))?(?:\.describe\([^)]*\))?/g;
|
|
142
|
+
let match;
|
|
143
|
+
while ((match = fieldRegex.exec(zodContent)) !== null) {
|
|
144
|
+
const fieldName = match[1];
|
|
145
|
+
const zodType = match[2];
|
|
146
|
+
const isOptional = zodContent.includes(`${fieldName}:`) && zodContent.includes('.optional()');
|
|
147
|
+
let tsType = 'any';
|
|
148
|
+
switch (zodType) {
|
|
149
|
+
case 'string':
|
|
150
|
+
tsType = 'string';
|
|
151
|
+
break;
|
|
152
|
+
case 'number':
|
|
153
|
+
tsType = 'number';
|
|
154
|
+
break;
|
|
155
|
+
case 'boolean':
|
|
156
|
+
tsType = 'boolean';
|
|
157
|
+
break;
|
|
158
|
+
case 'enum':
|
|
159
|
+
// Extract enum values if possible
|
|
160
|
+
const enumMatch = zodContent.match(new RegExp(`${fieldName}:\\s*z\\.enum\\(\\[([^\\]]+)\\]\\)`));
|
|
161
|
+
if (enumMatch) {
|
|
162
|
+
tsType = enumMatch[1].replace(/'/g, '"');
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
tsType = 'string';
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
case 'array':
|
|
169
|
+
tsType = 'any[]';
|
|
170
|
+
break;
|
|
171
|
+
case 'object':
|
|
172
|
+
tsType = 'Record<string, any>';
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
fields.push(`${fieldName}${isOptional ? '?' : ''}: ${tsType}`);
|
|
176
|
+
}
|
|
177
|
+
return fields.length > 0 ? `{\n ${fields.join(';\n ')};\n}` : 'Record<string, any>';
|
|
178
|
+
}
|
|
179
|
+
function generateTypeFromExample(exampleJson) {
|
|
180
|
+
try {
|
|
181
|
+
// Parse the example JSON to infer types
|
|
182
|
+
// This is a simplified version
|
|
183
|
+
const cleaned = exampleJson
|
|
184
|
+
.replace(/\/\/.*/g, '') // Remove comments
|
|
185
|
+
.trim();
|
|
186
|
+
const obj = eval('(' + cleaned + ')');
|
|
187
|
+
return generateTypeFromObject(obj);
|
|
188
|
+
}
|
|
189
|
+
catch (e) {
|
|
190
|
+
return 'any';
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
function generateTypeFromObject(obj, indent = ' ') {
|
|
194
|
+
if (obj === null || obj === undefined) {
|
|
195
|
+
return 'any';
|
|
196
|
+
}
|
|
197
|
+
if (Array.isArray(obj)) {
|
|
198
|
+
if (obj.length === 0) {
|
|
199
|
+
return 'any[]';
|
|
200
|
+
}
|
|
201
|
+
const itemType = generateTypeFromObject(obj[0], indent + ' ');
|
|
202
|
+
return `Array<${itemType}>`;
|
|
203
|
+
}
|
|
204
|
+
if (typeof obj === 'object') {
|
|
205
|
+
const fields = [];
|
|
206
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
207
|
+
const type = generateTypeFromObject(value, indent + ' ');
|
|
208
|
+
fields.push(`${key}: ${type}`);
|
|
209
|
+
}
|
|
210
|
+
return `{\n${indent}${fields.join(`;\n${indent}`)};\n${indent.slice(2)}}`;
|
|
211
|
+
}
|
|
212
|
+
if (typeof obj === 'string')
|
|
213
|
+
return 'string';
|
|
214
|
+
if (typeof obj === 'number')
|
|
215
|
+
return 'number';
|
|
216
|
+
if (typeof obj === 'boolean')
|
|
217
|
+
return 'boolean';
|
|
218
|
+
return 'any';
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=generate-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../../../src/cli/commands/generate-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAmTA;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAoF3F"}
|