@slingr/cli 0.0.1
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 +320 -0
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +5 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +5 -0
- package/dist/commands/cli-build.d.ts +9 -0
- package/dist/commands/cli-build.d.ts.map +1 -0
- package/dist/commands/cli-build.js +36 -0
- package/dist/commands/cli-build.js.map +1 -0
- package/dist/commands/create-app.d.ts +20 -0
- package/dist/commands/create-app.d.ts.map +1 -0
- package/dist/commands/create-app.js +246 -0
- package/dist/commands/create-app.js.map +1 -0
- package/dist/commands/ds.d.ts +28 -0
- package/dist/commands/ds.d.ts.map +1 -0
- package/dist/commands/ds.js +529 -0
- package/dist/commands/ds.js.map +1 -0
- package/dist/commands/gql.d.ts +22 -0
- package/dist/commands/gql.d.ts.map +1 -0
- package/dist/commands/gql.js +340 -0
- package/dist/commands/gql.js.map +1 -0
- package/dist/commands/infra/down.d.ts +13 -0
- package/dist/commands/infra/down.d.ts.map +1 -0
- package/dist/commands/infra/down.js +80 -0
- package/dist/commands/infra/down.js.map +1 -0
- package/dist/commands/infra/up.d.ts +13 -0
- package/dist/commands/infra/up.d.ts.map +1 -0
- package/dist/commands/infra/up.js +69 -0
- package/dist/commands/infra/up.js.map +1 -0
- package/dist/commands/infra/update.d.ts +14 -0
- package/dist/commands/infra/update.d.ts.map +1 -0
- package/dist/commands/infra/update.js +321 -0
- package/dist/commands/infra/update.js.map +1 -0
- package/dist/commands/run.d.ts +19 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +315 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/setup.d.ts +18 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +189 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/projectStructure.d.ts +10 -0
- package/dist/projectStructure.d.ts.map +1 -0
- package/dist/projectStructure.js +153 -0
- package/dist/projectStructure.js.map +1 -0
- package/dist/scripts/generate-schema.d.ts +10 -0
- package/dist/scripts/generate-schema.d.ts.map +1 -0
- package/dist/scripts/generate-schema.js +130 -0
- package/dist/scripts/generate-schema.js.map +1 -0
- package/dist/scripts/generate-schema.ts +143 -0
- package/dist/templates/.github/copilot-instructions.md.template +17 -0
- package/dist/templates/config/datasource.ts.template +9 -0
- package/dist/templates/config/jest.config.ts +30 -0
- package/dist/templates/config/jest.setup.ts +1 -0
- package/dist/templates/config/tsconfig.json.template +30 -0
- package/dist/templates/dataSources/mysql.ts.template +13 -0
- package/dist/templates/dataSources/postgres.ts.template +13 -0
- package/dist/templates/dataset-generator-script.ts.template +140 -0
- package/dist/templates/datasets/mysql-default/Address.jsonl.template +4 -0
- package/dist/templates/datasets/mysql-default/App.jsonl.template +5 -0
- package/dist/templates/datasets/mysql-default/Company.jsonl.template +4 -0
- package/dist/templates/datasets/mysql-default/Person.jsonl.template +3 -0
- package/dist/templates/datasets/postgres-default/Address.jsonl.template +4 -0
- package/dist/templates/datasets/postgres-default/App.jsonl.template +5 -0
- package/dist/templates/datasets/postgres-default/Company.jsonl.template +4 -0
- package/dist/templates/datasets/postgres-default/Person.jsonl.template +3 -0
- package/dist/templates/docs/app-description.md.template +34 -0
- package/dist/templates/gql/codegen.yml.template +25 -0
- package/dist/templates/gql/index.ts.template +24 -0
- package/dist/templates/gql/operations.graphql.template +30 -0
- package/dist/templates/package.json.template +38 -0
- package/dist/templates/prompt-analysis.md.template +111 -0
- package/dist/templates/prompt-script-generation.md.template +259 -0
- package/dist/templates/src/Address.ts.template +31 -0
- package/dist/templates/src/App.ts.template +61 -0
- package/dist/templates/src/Company.ts.template +48 -0
- package/dist/templates/src/Models.test.ts.template +655 -0
- package/dist/templates/src/Person.test.ts.template +289 -0
- package/dist/templates/src/Person.ts.template +105 -0
- package/dist/templates/src/actions/index.ts.template +12 -0
- package/dist/templates/src/index.ts +66 -0
- package/dist/templates/src/types/gql.d.ts.template +18 -0
- package/dist/templates/vscode/extensions.json +3 -0
- package/dist/templates/vscode/settings.json +11 -0
- package/dist/utils/datasourceParser.d.ts +12 -0
- package/dist/utils/datasourceParser.d.ts.map +1 -0
- package/dist/utils/datasourceParser.js +91 -0
- package/dist/utils/datasourceParser.js.map +1 -0
- package/dist/utils/jsonlLoader.d.ts +140 -0
- package/dist/utils/jsonlLoader.d.ts.map +1 -0
- package/dist/utils/jsonlLoader.js +583 -0
- package/dist/utils/jsonlLoader.js.map +1 -0
- package/dist/utils/model-analyzer.d.ts +86 -0
- package/dist/utils/model-analyzer.d.ts.map +1 -0
- package/dist/utils/model-analyzer.js +458 -0
- package/dist/utils/model-analyzer.js.map +1 -0
- package/dist/utils/portChecker.d.ts +36 -0
- package/dist/utils/portChecker.d.ts.map +1 -0
- package/dist/utils/portChecker.js +308 -0
- package/dist/utils/portChecker.js.map +1 -0
- package/dist/utils/synthetic-data-generator.d.ts +74 -0
- package/dist/utils/synthetic-data-generator.d.ts.map +1 -0
- package/dist/utils/synthetic-data-generator.js +443 -0
- package/dist/utils/synthetic-data-generator.js.map +1 -0
- package/oclif.manifest.json +435 -0
- package/package.json +118 -0
- package/src/templates/.github/copilot-instructions.md.template +17 -0
- package/src/templates/config/datasource.ts.template +9 -0
- package/src/templates/config/jest.config.ts +30 -0
- package/src/templates/config/jest.setup.ts +1 -0
- package/src/templates/config/tsconfig.json.template +30 -0
- package/src/templates/dataSources/mysql.ts.template +13 -0
- package/src/templates/dataSources/postgres.ts.template +13 -0
- package/src/templates/dataset-generator-script.ts.template +140 -0
- package/src/templates/datasets/mysql-default/Address.jsonl.template +4 -0
- package/src/templates/datasets/mysql-default/App.jsonl.template +5 -0
- package/src/templates/datasets/mysql-default/Company.jsonl.template +4 -0
- package/src/templates/datasets/mysql-default/Person.jsonl.template +3 -0
- package/src/templates/datasets/postgres-default/Address.jsonl.template +4 -0
- package/src/templates/datasets/postgres-default/App.jsonl.template +5 -0
- package/src/templates/datasets/postgres-default/Company.jsonl.template +4 -0
- package/src/templates/datasets/postgres-default/Person.jsonl.template +3 -0
- package/src/templates/docs/app-description.md.template +34 -0
- package/src/templates/gql/codegen.yml.template +25 -0
- package/src/templates/gql/index.ts.template +24 -0
- package/src/templates/gql/operations.graphql.template +30 -0
- package/src/templates/package.json.template +38 -0
- package/src/templates/prompt-analysis.md.template +111 -0
- package/src/templates/prompt-script-generation.md.template +259 -0
- package/src/templates/src/Address.ts.template +31 -0
- package/src/templates/src/App.ts.template +61 -0
- package/src/templates/src/Company.ts.template +48 -0
- package/src/templates/src/Models.test.ts.template +655 -0
- package/src/templates/src/Person.test.ts.template +289 -0
- package/src/templates/src/Person.ts.template +105 -0
- package/src/templates/src/actions/index.ts.template +12 -0
- package/src/templates/src/index.ts +66 -0
- package/src/templates/src/types/gql.d.ts.template +18 -0
- package/src/templates/vscode/extensions.json +3 -0
- package/src/templates/vscode/settings.json +11 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { BaseModel, TypeOrmSqlDataSource } from 'slingr-framework';
|
|
2
|
+
import 'reflect-metadata';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for model constructors that extend BaseModel
|
|
5
|
+
*/
|
|
6
|
+
export interface ModelConstructor<T extends BaseModel> {
|
|
7
|
+
new (): T;
|
|
8
|
+
fromJSON(data: any): T;
|
|
9
|
+
prototype: T;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Interface for dataset loading options
|
|
13
|
+
*/
|
|
14
|
+
export interface DatasetLoadOptions {
|
|
15
|
+
/**
|
|
16
|
+
* Directory containing the JSONL files
|
|
17
|
+
*/
|
|
18
|
+
datasetPath: string;
|
|
19
|
+
/**
|
|
20
|
+
* Map of model name to model constructor
|
|
21
|
+
* Key: filename without .jsonl extension
|
|
22
|
+
* Value: Model constructor class
|
|
23
|
+
*/
|
|
24
|
+
modelMap: Record<string, ModelConstructor<any>>;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to validate each record after loading from JSON
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
validateRecords?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to log detailed information during loading
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
verbose?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Interface for model dependency information
|
|
38
|
+
*/
|
|
39
|
+
export interface ModelDependency {
|
|
40
|
+
modelName: string;
|
|
41
|
+
dependencies: string[];
|
|
42
|
+
dependents: string[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Interface for dependency analysis result
|
|
46
|
+
*/
|
|
47
|
+
export interface DependencyAnalysisResult {
|
|
48
|
+
dependencies: Record<string, ModelDependency>;
|
|
49
|
+
loadOrder: string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Result of loading a dataset
|
|
53
|
+
*/
|
|
54
|
+
export interface DatasetLoadResult<T extends BaseModel = BaseModel> {
|
|
55
|
+
/**
|
|
56
|
+
* Name of the model/file that was loaded
|
|
57
|
+
*/
|
|
58
|
+
modelName: string;
|
|
59
|
+
/**
|
|
60
|
+
* Array of loaded and converted model instances
|
|
61
|
+
*/
|
|
62
|
+
records: T[];
|
|
63
|
+
/**
|
|
64
|
+
* Number of records successfully loaded
|
|
65
|
+
*/
|
|
66
|
+
successCount: number;
|
|
67
|
+
/**
|
|
68
|
+
* Number of records that failed to load
|
|
69
|
+
*/
|
|
70
|
+
errorCount: number;
|
|
71
|
+
/**
|
|
72
|
+
* Array of validation errors if any
|
|
73
|
+
*/
|
|
74
|
+
errors: Array<{
|
|
75
|
+
recordIndex: number;
|
|
76
|
+
recordData: any;
|
|
77
|
+
validationErrors: any[];
|
|
78
|
+
}>;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Utility class for loading datasets from JSONL files using Slingr model fromJSON() functionality
|
|
82
|
+
*/
|
|
83
|
+
export declare class JsonlDatasetLoader {
|
|
84
|
+
/**
|
|
85
|
+
* Analyze model dependencies to determine the correct loading order
|
|
86
|
+
*/
|
|
87
|
+
analyzeDependencies(modelMap: Record<string, ModelConstructor<any>>, verbose?: boolean): DependencyAnalysisResult;
|
|
88
|
+
/**
|
|
89
|
+
* Extract dependencies from a model class by analyzing its decorators/metadata
|
|
90
|
+
*/
|
|
91
|
+
private extractModelDependencies;
|
|
92
|
+
/**
|
|
93
|
+
* Perform topological sort to determine loading order
|
|
94
|
+
*/
|
|
95
|
+
private topologicalSort;
|
|
96
|
+
/**
|
|
97
|
+
* Load all JSONL files from a dataset directory
|
|
98
|
+
*/
|
|
99
|
+
loadDataset(options: DatasetLoadOptions): Promise<DatasetLoadResult[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Load a single JSONL file and convert records using the model's fromJSON method
|
|
102
|
+
*/
|
|
103
|
+
/**
|
|
104
|
+
* Resolves simple references in format {"id": "uuid"} to full objects from loaded entities
|
|
105
|
+
*/
|
|
106
|
+
resolveSimpleReferences<T extends BaseModel>(data: any, ModelClass: ModelConstructor<T>, loadedEntities: Record<string, Record<string, any>>, verbose?: boolean): Promise<any>;
|
|
107
|
+
loadJsonlFile<T extends BaseModel>(filePath: string, ModelClass: ModelConstructor<T>, modelName: string, loadedEntities: Record<string, Record<string, any>>, validateRecords?: boolean, verbose?: boolean): Promise<DatasetLoadResult<T>>;
|
|
108
|
+
/**
|
|
109
|
+
* Convert loaded model instances to database-friendly format
|
|
110
|
+
* This method respects the model's field availability settings and converts camelCase to snake_case
|
|
111
|
+
*/
|
|
112
|
+
convertToDbFormat<T extends BaseModel>(records: T[], verbose?: boolean): any[];
|
|
113
|
+
/**
|
|
114
|
+
* Convert camelCase string to snake_case
|
|
115
|
+
*/
|
|
116
|
+
private camelToSnakeCase;
|
|
117
|
+
/**
|
|
118
|
+
* Load dataset into database using TypeORM with dynamic table creation
|
|
119
|
+
* This method creates tables dynamically and uses TypeORM for data insertion
|
|
120
|
+
* Note: Results should already be in dependency order from loadDataset()
|
|
121
|
+
*/
|
|
122
|
+
loadDatasetToDatabase(results: DatasetLoadResult[], dataSource: TypeOrmSqlDataSource, verbose?: boolean): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Create table dynamically using TypeORM (database-agnostic)
|
|
125
|
+
*/
|
|
126
|
+
private createTableDynamically;
|
|
127
|
+
/**
|
|
128
|
+
* Insert data dynamically using TypeORM (database-agnostic)
|
|
129
|
+
*/
|
|
130
|
+
private insertDataDynamically;
|
|
131
|
+
/**
|
|
132
|
+
* Get the database column schema based on ALL records to capture all possible fields
|
|
133
|
+
*/
|
|
134
|
+
inferDbSchemaFromAllRecords(records: any[]): Record<string, string>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Auto-discover models from the compiled JavaScript files
|
|
138
|
+
*/
|
|
139
|
+
export declare function discoverModels(distPath: string): Promise<Record<string, ModelConstructor<any>>>;
|
|
140
|
+
//# sourceMappingURL=jsonlLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonlLoader.d.ts","sourceRoot":"","sources":["../../src/utils/jsonlLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,SAAS;IACnD,QAAQ,CAAC,CAAC;IACV,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhD;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAChE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,CAAC;IAEb;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,MAAM,EAAE,KAAK,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,GAAG,CAAC;QAChB,gBAAgB,EAAE,GAAG,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAC/C,OAAO,GAAE,OAAe,GACvB,wBAAwB;IAyC3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuHhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAuCvB;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAuE5E;;OAEG;IACH;;OAEG;IACG,uBAAuB,CAAC,CAAC,SAAS,SAAS,EAC/C,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACnD,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,GAAG,CAAC;IAsFT,aAAa,CAAC,CAAC,SAAS,SAAS,EACrC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EACnD,eAAe,GAAE,OAAc,EAC/B,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAkFhC;;;OAGG;IACH,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,GAAE,OAAe,GAAG,GAAG,EAAE;IA0BrF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACG,qBAAqB,CACzB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,UAAU,EAAE,oBAAoB,EAChC,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IA2ChB;;OAEG;YACW,sBAAsB;IAwDpC;;OAEG;YACW,qBAAqB;IA6BnC;;OAEG;IACH,2BAA2B,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAyBpE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAmCrG"}
|