@claudetools/tools 0.9.0 → 0.9.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/dist/cli.js +9 -1
- package/dist/codedna/__tests__/examples/mongoose-example.d.ts +6 -0
- package/dist/codedna/__tests__/examples/mongoose-example.js +163 -0
- package/dist/codedna/__tests__/fixtures/typeorm-production-test.d.ts +1 -0
- package/dist/codedna/__tests__/fixtures/typeorm-production-test.js +231 -0
- package/dist/codedna/__tests__/fixtures/typeorm-test.d.ts +1 -0
- package/dist/codedna/__tests__/fixtures/typeorm-test.js +124 -0
- package/dist/codedna/__tests__/laravel-output-review.d.ts +1 -0
- package/dist/codedna/__tests__/laravel-output-review.js +249 -0
- package/dist/codedna/__tests__/mongoose-output-test.d.ts +1 -0
- package/dist/codedna/__tests__/mongoose-output-test.js +178 -0
- package/dist/codedna/examples/radix-example.d.ts +2 -0
- package/dist/codedna/examples/radix-example.js +259 -0
- package/dist/codedna/index.d.ts +5 -3
- package/dist/codedna/index.js +6 -3
- package/dist/codedna/kappa-ast.d.ts +143 -5
- package/dist/codedna/kappa-drizzle-generator.js +8 -5
- package/dist/codedna/kappa-gofiber-generator.d.ts +65 -0
- package/dist/codedna/kappa-gofiber-generator.js +587 -0
- package/dist/codedna/kappa-laravel-generator.d.ts +68 -0
- package/dist/codedna/kappa-laravel-generator.js +741 -0
- package/dist/codedna/kappa-lexer.d.ts +44 -0
- package/dist/codedna/kappa-lexer.js +124 -0
- package/dist/codedna/kappa-mantine-generator.d.ts +65 -0
- package/dist/codedna/kappa-mantine-generator.js +518 -0
- package/dist/codedna/kappa-mongoose-generator.d.ts +44 -0
- package/dist/codedna/kappa-mongoose-generator.js +442 -0
- package/dist/codedna/kappa-parser.d.ts +43 -1
- package/dist/codedna/kappa-parser.js +601 -0
- package/dist/codedna/kappa-radix-generator.d.ts +61 -0
- package/dist/codedna/kappa-radix-generator.js +566 -0
- package/dist/codedna/kappa-typeorm-generator.d.ts +59 -0
- package/dist/codedna/kappa-typeorm-generator.js +723 -0
- package/dist/codedna/kappa-vitest-generator.d.ts +85 -0
- package/dist/codedna/kappa-vitest-generator.js +739 -0
- package/dist/codedna/parser.js +26 -1
- package/dist/codegen/cloud-client.d.ts +160 -0
- package/dist/codegen/cloud-client.js +195 -0
- package/dist/codegen/codegen-tool.d.ts +35 -0
- package/dist/codegen/codegen-tool.js +312 -0
- package/dist/codegen/field-inference.d.ts +24 -0
- package/dist/codegen/field-inference.js +101 -0
- package/dist/codegen/form-parser.d.ts +13 -0
- package/dist/codegen/form-parser.js +186 -0
- package/dist/codegen/index.d.ts +2 -0
- package/dist/codegen/index.js +4 -0
- package/dist/codegen/natural-parser.d.ts +50 -0
- package/dist/codegen/natural-parser.js +769 -0
- package/dist/handlers/codedna-handlers.d.ts +1 -1
- package/dist/handlers/codegen-handlers.d.ts +20 -0
- package/dist/handlers/codegen-handlers.js +60 -0
- package/dist/handlers/kappa-handlers.d.ts +97 -0
- package/dist/handlers/kappa-handlers.js +408 -0
- package/dist/handlers/tool-handlers.js +124 -221
- package/dist/helpers/api-client.js +48 -3
- package/dist/helpers/compact-formatter.d.ts +9 -2
- package/dist/helpers/compact-formatter.js +26 -2
- package/dist/helpers/config.d.ts +7 -2
- package/dist/helpers/config.js +25 -10
- package/dist/helpers/session-validation.d.ts +1 -1
- package/dist/helpers/session-validation.js +2 -4
- package/dist/helpers/tasks.d.ts +21 -0
- package/dist/helpers/tasks.js +52 -0
- package/dist/helpers/workers.d.ts +1 -1
- package/dist/helpers/workers.js +19 -19
- package/dist/setup.d.ts +1 -0
- package/dist/setup.js +228 -3
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.js +37 -152
- package/dist/templates/orchestrator-prompt.d.ts +2 -2
- package/dist/templates/orchestrator-prompt.js +31 -38
- package/dist/templates/self-critique.d.ts +50 -0
- package/dist/templates/self-critique.js +209 -0
- package/dist/templates/worker-prompt.d.ts +3 -3
- package/dist/templates/worker-prompt.js +18 -18
- package/dist/tools.js +77 -413
- package/docs/codedna/generator-testing-summary.md +205 -0
- package/docs/codedna/radix-ui-generator.md +478 -0
- package/docs/kappa-gofiber-generator.md +274 -0
- package/docs/kappa-laravel-fixes.md +172 -0
- package/docs/kappa-mongoose-generator.md +322 -0
- package/docs/kappa-vitest-generator.md +337 -0
- package/package.json +1 -1
- package/dist/context/deduplication.test.d.ts +0 -6
- package/dist/context/deduplication.test.js +0 -84
package/dist/codedna/index.d.ts
CHANGED
|
@@ -3,11 +3,10 @@ export * from './types.js';
|
|
|
3
3
|
export * from './template-engine.js';
|
|
4
4
|
export * from './registry.js';
|
|
5
5
|
export { type KappaSpec, type EntityBlock, type EntityField, type FieldType as KappaFieldType, type APIBlock, type APIOperation, type JourneyBlock, type PageBlock, type DesignBlock, } from './kappa-ast.js';
|
|
6
|
-
export { tokenize } from './kappa-lexer.js';
|
|
7
|
-
export { parse as parseKappa, parseToAST as parseKappaToAST, type ParseResult as KappaParseResult, } from './kappa-parser.js';
|
|
8
|
-
export { validateKappaSpec, formatValidationResults } from './kappa-validator.js';
|
|
9
6
|
export { wrapWithProvenance, ProvenanceGenerator } from './kappa-provenance.js';
|
|
10
7
|
export { generateDrizzleSchema } from './kappa-drizzle-generator.js';
|
|
8
|
+
export { generateTypeORMEntities } from './kappa-typeorm-generator.js';
|
|
9
|
+
export { generateMongooseSchema } from './kappa-mongoose-generator.js';
|
|
11
10
|
export { generateZodSchemas } from './kappa-zod-generator.js';
|
|
12
11
|
export { generateTypeScriptTypes } from './kappa-types-generator.js';
|
|
13
12
|
export { generateAPI, KappaAPIGenerator } from './kappa-api-generator.js';
|
|
@@ -15,6 +14,9 @@ export { generatePages, KappaPageGenerator } from './kappa-page-generator.js';
|
|
|
15
14
|
export { generateForms, KappaFormGenerator } from './kappa-form-generator.js';
|
|
16
15
|
export { generateComponents, KappaComponentGenerator } from './kappa-component-generator.js';
|
|
17
16
|
export { generateDesign, KappaDesignGenerator } from './kappa-design-generator.js';
|
|
17
|
+
export { generateEntityTests, generateAPITests, generateTestsFromBlock, generateTests, KappaVitestGenerator, } from './kappa-vitest-generator.js';
|
|
18
|
+
export { generateGoFiber, generateGoFiberAPI, generateGoFiberModels, KappaGoFiberGenerator, } from './kappa-gofiber-generator.js';
|
|
19
|
+
export { generateLaravel, generateLaravelAPI, generateLaravelModels, KappaLaravelGenerator, } from './kappa-laravel-generator.js';
|
|
18
20
|
export { BaseGenerator } from './generators/base.js';
|
|
19
21
|
export { ExpressApiGenerator } from './generators/express-api.js';
|
|
20
22
|
export { FastAPIGenerator } from './generators/fastapi-api.js';
|
package/dist/codedna/index.js
CHANGED
|
@@ -6,12 +6,11 @@ export * from './parser.js';
|
|
|
6
6
|
export * from './types.js';
|
|
7
7
|
export * from './template-engine.js';
|
|
8
8
|
export * from './registry.js';
|
|
9
|
-
export { tokenize } from './kappa-lexer.js';
|
|
10
|
-
export { parse as parseKappa, parseToAST as parseKappaToAST, } from './kappa-parser.js';
|
|
11
|
-
export { validateKappaSpec, formatValidationResults } from './kappa-validator.js';
|
|
12
9
|
export { wrapWithProvenance, ProvenanceGenerator } from './kappa-provenance.js';
|
|
13
10
|
// Kappa v2.5 Generators
|
|
14
11
|
export { generateDrizzleSchema } from './kappa-drizzle-generator.js';
|
|
12
|
+
export { generateTypeORMEntities } from './kappa-typeorm-generator.js';
|
|
13
|
+
export { generateMongooseSchema } from './kappa-mongoose-generator.js';
|
|
15
14
|
export { generateZodSchemas } from './kappa-zod-generator.js';
|
|
16
15
|
export { generateTypeScriptTypes } from './kappa-types-generator.js';
|
|
17
16
|
export { generateAPI, KappaAPIGenerator } from './kappa-api-generator.js';
|
|
@@ -19,6 +18,10 @@ export { generatePages, KappaPageGenerator } from './kappa-page-generator.js';
|
|
|
19
18
|
export { generateForms, KappaFormGenerator } from './kappa-form-generator.js';
|
|
20
19
|
export { generateComponents, KappaComponentGenerator } from './kappa-component-generator.js';
|
|
21
20
|
export { generateDesign, KappaDesignGenerator } from './kappa-design-generator.js';
|
|
21
|
+
export { generateEntityTests, generateAPITests, generateTestsFromBlock, generateTests, KappaVitestGenerator, } from './kappa-vitest-generator.js';
|
|
22
|
+
// Kappa v2.5 Multi-Language Generators
|
|
23
|
+
export { generateGoFiber, generateGoFiberAPI, generateGoFiberModels, KappaGoFiberGenerator, } from './kappa-gofiber-generator.js';
|
|
24
|
+
export { generateLaravel, generateLaravelAPI, generateLaravelModels, KappaLaravelGenerator, } from './kappa-laravel-generator.js';
|
|
22
25
|
// Generators - Base
|
|
23
26
|
export { BaseGenerator } from './generators/base.js';
|
|
24
27
|
// Generators - API
|
|
@@ -46,13 +46,44 @@ export interface KappaSpec extends BaseNode {
|
|
|
46
46
|
forms: FormBlock[];
|
|
47
47
|
/** Design system configuration */
|
|
48
48
|
design?: DesignBlock;
|
|
49
|
+
/** Test definitions */
|
|
50
|
+
tests: TestBlock[];
|
|
49
51
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Target programming language for code generation
|
|
54
|
+
*/
|
|
55
|
+
export type TargetLanguage = 'typescript' | 'go' | 'php' | 'csharp' | 'java' | 'kotlin' | 'python' | 'ruby' | 'dart';
|
|
56
|
+
/**
|
|
57
|
+
* Frontend/full-stack framework targets
|
|
58
|
+
*/
|
|
59
|
+
export type StackType = 'tanstack-start' | 'next' | 'remix' | 'sveltekit' | 'astro' | 'express' | 'hono' | 'elysia' | 'angular' | 'solid' | 'nuxt' | 'qwik' | 'fresh' | 'fiber' | 'echo' | 'gin' | 'chi' | 'laravel' | 'symfony' | 'slim' | 'aspnet-minimal' | 'aspnet-mvc' | 'carter' | 'spring' | 'quarkus' | 'micronaut' | 'ktor' | 'django' | 'flask' | 'rails' | 'sinatra';
|
|
60
|
+
/**
|
|
61
|
+
* Database types (extended)
|
|
62
|
+
*/
|
|
63
|
+
export type DatabaseType = 'postgres' | 'mysql' | 'sqlite' | 'turso' | 'mongodb' | 'sqlserver' | 'oracle' | 'cockroachdb' | 'planetscale';
|
|
64
|
+
/**
|
|
65
|
+
* ORM/Database library types
|
|
66
|
+
*/
|
|
67
|
+
export type ORMType = 'drizzle' | 'prisma' | 'typeorm' | 'sequelize' | 'mongoose' | 'kysely' | 'mikroorm' | 'gorm' | 'sqlc' | 'ent' | 'eloquent' | 'doctrine' | 'efcore' | 'dapper' | 'hibernate' | 'jooq' | 'mybatis' | 'sqlalchemy' | 'django-orm' | 'activerecord';
|
|
52
68
|
export type AuthType = 'jwt' | 'session' | 'oauth';
|
|
53
|
-
export type UILibrary = 'shadcn' | 'mui' | 'chakra' | 'tailwind-only';
|
|
54
69
|
/**
|
|
55
|
-
*
|
|
70
|
+
* UI component library types (extended)
|
|
71
|
+
*/
|
|
72
|
+
export type UILibrary = 'shadcn' | 'mui' | 'chakra' | 'tailwind-only' | 'radix' | 'mantine' | 'headless' | 'antd' | 'daisy' | 'ark' | 'park';
|
|
73
|
+
/**
|
|
74
|
+
* API framework types (for explicit API generation)
|
|
75
|
+
*/
|
|
76
|
+
export type APIFramework = 'express' | 'hono' | 'elysia' | 'fastify' | 'trpc' | 'nestjs' | 'fastapi' | 'django-rest' | 'flask-restful' | 'fiber' | 'echo' | 'gin' | 'chi' | 'laravel' | 'symfony' | 'aspnet' | 'spring' | 'quarkus';
|
|
77
|
+
/**
|
|
78
|
+
* Testing framework types
|
|
79
|
+
*/
|
|
80
|
+
export type TestFramework = 'vitest' | 'jest' | 'playwright' | 'cypress' | 'testing-library' | 'msw' | 'phpunit' | 'pytest' | 'rspec' | 'junit' | 'go-test';
|
|
81
|
+
/**
|
|
82
|
+
* Test type classification
|
|
83
|
+
*/
|
|
84
|
+
export type TestType = 'unit' | 'integration' | 'e2e' | 'component' | 'api';
|
|
85
|
+
/**
|
|
86
|
+
* Project configuration block (extended for multi-language support)
|
|
56
87
|
*/
|
|
57
88
|
export interface ProjectBlock extends BaseNode {
|
|
58
89
|
kind: 'ProjectBlock';
|
|
@@ -60,14 +91,22 @@ export interface ProjectBlock extends BaseNode {
|
|
|
60
91
|
name: string;
|
|
61
92
|
/** Semantic version */
|
|
62
93
|
version?: string;
|
|
94
|
+
/** Target programming language (default: typescript) */
|
|
95
|
+
language?: TargetLanguage;
|
|
63
96
|
/** Target stack/framework */
|
|
64
97
|
stack: StackType;
|
|
65
98
|
/** Database type */
|
|
66
99
|
database?: DatabaseType;
|
|
100
|
+
/** ORM/database library */
|
|
101
|
+
orm?: ORMType;
|
|
67
102
|
/** Authentication strategy */
|
|
68
103
|
auth?: AuthType;
|
|
69
104
|
/** UI component library */
|
|
70
105
|
ui?: UILibrary;
|
|
106
|
+
/** API framework (if different from stack) */
|
|
107
|
+
api?: APIFramework;
|
|
108
|
+
/** Testing framework */
|
|
109
|
+
testing?: TestFramework;
|
|
71
110
|
}
|
|
72
111
|
export type HashAlgorithm = 'argon2id' | 'bcrypt';
|
|
73
112
|
export interface HashConfig extends BaseNode {
|
|
@@ -517,10 +556,109 @@ export interface DesignBlock extends BaseNode {
|
|
|
517
556
|
shadows?: ShadowConfig;
|
|
518
557
|
motion?: MotionConfig;
|
|
519
558
|
}
|
|
559
|
+
/**
|
|
560
|
+
* Test assertion types
|
|
561
|
+
*/
|
|
562
|
+
export type AssertionType = 'equals' | 'notEquals' | 'contains' | 'matches' | 'throws' | 'resolves' | 'rejects' | 'truthy' | 'falsy' | 'defined' | 'undefined' | 'null' | 'instanceOf' | 'lengthOf' | 'deepEquals';
|
|
563
|
+
/**
|
|
564
|
+
* Mock configuration for tests
|
|
565
|
+
*/
|
|
566
|
+
export interface TestMock extends BaseNode {
|
|
567
|
+
kind: 'TestMock';
|
|
568
|
+
/** Module or function to mock */
|
|
569
|
+
target: string;
|
|
570
|
+
/** Mock implementation or return value */
|
|
571
|
+
implementation?: string;
|
|
572
|
+
/** Return value for simple mocks */
|
|
573
|
+
returns?: string;
|
|
574
|
+
}
|
|
575
|
+
/**
|
|
576
|
+
* Test assertion
|
|
577
|
+
*/
|
|
578
|
+
export interface TestAssertion extends BaseNode {
|
|
579
|
+
kind: 'TestAssertion';
|
|
580
|
+
/** What to test (expression) */
|
|
581
|
+
actual: string;
|
|
582
|
+
/** Assertion type */
|
|
583
|
+
type: AssertionType;
|
|
584
|
+
/** Expected value (for comparison assertions) */
|
|
585
|
+
expected?: string;
|
|
586
|
+
/** Optional message on failure */
|
|
587
|
+
message?: string;
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* Individual test case
|
|
591
|
+
*/
|
|
592
|
+
export interface TestCase extends BaseNode {
|
|
593
|
+
kind: 'TestCase';
|
|
594
|
+
/** Test description */
|
|
595
|
+
name: string;
|
|
596
|
+
/** Setup code (arrange) */
|
|
597
|
+
setup?: string[];
|
|
598
|
+
/** Action to perform (act) */
|
|
599
|
+
action: string;
|
|
600
|
+
/** Assertions to verify (assert) */
|
|
601
|
+
assertions: TestAssertion[];
|
|
602
|
+
/** Cleanup code */
|
|
603
|
+
teardown?: string[];
|
|
604
|
+
/** Skip this test */
|
|
605
|
+
skip?: boolean;
|
|
606
|
+
/** Only run this test */
|
|
607
|
+
only?: boolean;
|
|
608
|
+
/** Expected to fail */
|
|
609
|
+
todo?: boolean;
|
|
610
|
+
/** Timeout in ms */
|
|
611
|
+
timeout?: number;
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* Test suite (describe block)
|
|
615
|
+
*/
|
|
616
|
+
export interface TestSuite extends BaseNode {
|
|
617
|
+
kind: 'TestSuite';
|
|
618
|
+
/** Suite description */
|
|
619
|
+
name: string;
|
|
620
|
+
/** Before all tests */
|
|
621
|
+
beforeAll?: string[];
|
|
622
|
+
/** After all tests */
|
|
623
|
+
afterAll?: string[];
|
|
624
|
+
/** Before each test */
|
|
625
|
+
beforeEach?: string[];
|
|
626
|
+
/** After each test */
|
|
627
|
+
afterEach?: string[];
|
|
628
|
+
/** Mocks for this suite */
|
|
629
|
+
mocks: TestMock[];
|
|
630
|
+
/** Test cases */
|
|
631
|
+
tests: TestCase[];
|
|
632
|
+
/** Nested suites */
|
|
633
|
+
suites: TestSuite[];
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Test block - defines tests for an entity or API
|
|
637
|
+
*/
|
|
638
|
+
export interface TestBlock extends BaseNode {
|
|
639
|
+
kind: 'TestBlock';
|
|
640
|
+
/** Test suite name */
|
|
641
|
+
name: string;
|
|
642
|
+
/** Target entity or API being tested */
|
|
643
|
+
target: string;
|
|
644
|
+
/** Testing framework */
|
|
645
|
+
framework: TestFramework;
|
|
646
|
+
/** Test type */
|
|
647
|
+
type: TestType;
|
|
648
|
+
/** Root test suite */
|
|
649
|
+
suite: TestSuite;
|
|
650
|
+
/** Coverage requirements */
|
|
651
|
+
coverage?: {
|
|
652
|
+
statements?: number;
|
|
653
|
+
branches?: number;
|
|
654
|
+
functions?: number;
|
|
655
|
+
lines?: number;
|
|
656
|
+
};
|
|
657
|
+
}
|
|
520
658
|
/**
|
|
521
659
|
* All possible AST node types
|
|
522
660
|
*/
|
|
523
|
-
export type KappaNode = KappaSpec | ProjectBlock | AuthBlock | EntityBlock | APIBlock | JourneyBlock | PageBlock | ComponentBlock | FormBlock | DesignBlock | EntityField | EntityRelationship | Capability | LifecycleHook | LifecycleAction | EntityIndex | APIOperation | APIParameter | APIReturnType | CRUDShorthand | JourneyStep | JourneyRecovery | PageLoader | PageAction | PageLayout | ComponentProp | ComponentStructure | ComponentVariant | CompoundPart | FormField | FormFieldOption | FormSubmit | FormLayoutRow | ColorPalette | TypographyConfig | SpacingConfig | BorderConfig | ShadowConfig | MotionConfig | HashConfig | JWTConfig | SessionConfig;
|
|
661
|
+
export type KappaNode = KappaSpec | ProjectBlock | AuthBlock | EntityBlock | APIBlock | JourneyBlock | PageBlock | ComponentBlock | FormBlock | DesignBlock | TestBlock | EntityField | EntityRelationship | Capability | LifecycleHook | LifecycleAction | EntityIndex | APIOperation | APIParameter | APIReturnType | CRUDShorthand | JourneyStep | JourneyRecovery | PageLoader | PageAction | PageLayout | ComponentProp | ComponentStructure | ComponentVariant | CompoundPart | FormField | FormFieldOption | FormSubmit | FormLayoutRow | ColorPalette | TypographyConfig | SpacingConfig | BorderConfig | ShadowConfig | MotionConfig | HashConfig | JWTConfig | SessionConfig | TestMock | TestAssertion | TestCase | TestSuite;
|
|
524
662
|
/**
|
|
525
663
|
* Extract node type from kind string
|
|
526
664
|
*/
|
|
@@ -130,10 +130,6 @@ export class KappaDrizzleGenerator {
|
|
|
130
130
|
}
|
|
131
131
|
// Always include table function
|
|
132
132
|
const imports = [this.getTableFunction(), ...Array.from(columnTypes).sort()];
|
|
133
|
-
// Add relations import if needed
|
|
134
|
-
if (this.generateRelations) {
|
|
135
|
-
imports.push('relations');
|
|
136
|
-
}
|
|
137
133
|
return `import { ${imports.join(', ')} } from '${importPath}';`;
|
|
138
134
|
}
|
|
139
135
|
getTableFunction() {
|
|
@@ -181,7 +177,14 @@ export class KappaDrizzleGenerator {
|
|
|
181
177
|
}
|
|
182
178
|
if (modifiers.includes('auto')) {
|
|
183
179
|
if (type.kind === 'primitive' && type.type === 'uuid') {
|
|
184
|
-
|
|
180
|
+
// PostgreSQL: .defaultRandom() is built-in
|
|
181
|
+
// SQLite/MySQL: use $defaultFn with crypto.randomUUID()
|
|
182
|
+
if (this.dialect === 'postgresql') {
|
|
183
|
+
chainMethods.push('defaultRandom()');
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
chainMethods.push('$defaultFn(() => crypto.randomUUID())');
|
|
187
|
+
}
|
|
185
188
|
}
|
|
186
189
|
else if (type.kind === 'primitive' && (type.type === 'int' || type.type === 'timestamp')) {
|
|
187
190
|
if (type.type === 'timestamp') {
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { APIBlock, EntityBlock } from './kappa-ast.js';
|
|
2
|
+
export interface GoFiberGeneratorOptions {
|
|
3
|
+
/** Package name (default: 'main') */
|
|
4
|
+
packageName?: string;
|
|
5
|
+
/** Add provenance comments (default: true) */
|
|
6
|
+
provenance?: boolean;
|
|
7
|
+
/** Generate GORM models (default: true) */
|
|
8
|
+
gorm?: boolean;
|
|
9
|
+
/** Generate validation tags (default: true) */
|
|
10
|
+
validation?: boolean;
|
|
11
|
+
/** Base path for routes (default: '/api') */
|
|
12
|
+
basePath?: string;
|
|
13
|
+
/** Module path for imports */
|
|
14
|
+
modulePath?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface GeneratedGoFiles {
|
|
17
|
+
/** Main routes file */
|
|
18
|
+
routes: string;
|
|
19
|
+
/** GORM models */
|
|
20
|
+
models?: string;
|
|
21
|
+
/** Request/Response types */
|
|
22
|
+
types?: string;
|
|
23
|
+
/** Handlers file */
|
|
24
|
+
handlers?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class KappaGoFiberGenerator {
|
|
27
|
+
private packageName;
|
|
28
|
+
private provenance;
|
|
29
|
+
private gorm;
|
|
30
|
+
private validation;
|
|
31
|
+
private basePath;
|
|
32
|
+
private modulePath;
|
|
33
|
+
constructor(options?: GoFiberGeneratorOptions);
|
|
34
|
+
generateFromAPIs(apis: APIBlock[]): GeneratedGoFiles;
|
|
35
|
+
generateFromEntities(entities: EntityBlock[]): GeneratedGoFiles;
|
|
36
|
+
generateAll(apis: APIBlock[], entities: EntityBlock[]): GeneratedGoFiles;
|
|
37
|
+
private generateRoutes;
|
|
38
|
+
private isRouteFromAPI;
|
|
39
|
+
private extractRoutes;
|
|
40
|
+
private operationToRoute;
|
|
41
|
+
private crudToRoutes;
|
|
42
|
+
private inferMethod;
|
|
43
|
+
private generateHandlers;
|
|
44
|
+
private generateHandler;
|
|
45
|
+
private generateListHandler;
|
|
46
|
+
private generateCreateHandler;
|
|
47
|
+
private generateReadHandler;
|
|
48
|
+
private generateUpdateHandler;
|
|
49
|
+
private generateDeleteHandler;
|
|
50
|
+
private extractEntityName;
|
|
51
|
+
private generateModels;
|
|
52
|
+
private generateModel;
|
|
53
|
+
private generateModelField;
|
|
54
|
+
private fieldToGoType;
|
|
55
|
+
private generateFieldTags;
|
|
56
|
+
private generateRequestTypes;
|
|
57
|
+
private generateRequestType;
|
|
58
|
+
private toPascalCase;
|
|
59
|
+
private toKebabCase;
|
|
60
|
+
private toSnakeCase;
|
|
61
|
+
private pluralizeTableName;
|
|
62
|
+
}
|
|
63
|
+
export declare function generateGoFiberAPI(apis: APIBlock[], options?: GoFiberGeneratorOptions): GeneratedGoFiles;
|
|
64
|
+
export declare function generateGoFiberModels(entities: EntityBlock[], options?: GoFiberGeneratorOptions): string;
|
|
65
|
+
export declare function generateGoFiber(apis: APIBlock[], entities: EntityBlock[], options?: GoFiberGeneratorOptions): GeneratedGoFiles;
|