@zenstackhq/sdk 3.0.0-alpha.8 → 3.0.0-beta.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/dist/index.cjs +355 -167
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +69 -32
- package/dist/index.d.ts +69 -32
- package/dist/index.js +365 -177
- package/dist/index.js.map +1 -1
- package/dist/schema.d.cts +46 -18
- package/dist/schema.d.ts +46 -18
- package/package.json +7 -7
package/dist/index.d.cts
CHANGED
|
@@ -1,32 +1,28 @@
|
|
|
1
1
|
import * as _zenstackhq_language_ast from '@zenstackhq/language/ast';
|
|
2
|
-
import {
|
|
2
|
+
import { DataField, DataModel, TypeDef, Enum, EnumField, FunctionDecl, Attribute, AttributeParam, DataFieldAttribute, DataModelAttribute, AstNode, Model, Reference, InvocationExpr } from '@zenstackhq/language/ast';
|
|
3
|
+
import { AttributeTarget } from '@zenstackhq/language/utils';
|
|
3
4
|
import { MaybePromise } from 'langium';
|
|
4
5
|
|
|
5
|
-
declare function isIdField(field:
|
|
6
|
-
declare function hasAttribute(decl: DataModel | TypeDef |
|
|
7
|
-
declare function getAttribute(decl:
|
|
8
|
-
/**
|
|
9
|
-
* Gets `@@id` fields declared at the data model level (including search in base models)
|
|
10
|
-
*/
|
|
11
|
-
declare function getModelIdFields(model: DataModel): DataModelField[];
|
|
12
|
-
/**
|
|
13
|
-
* Gets `@@unique` fields declared at the data model level (including search in base models)
|
|
14
|
-
*/
|
|
15
|
-
declare function getModelUniqueFields(model: DataModel): DataModelField[];
|
|
16
|
-
declare function getRecursiveBases(dataModel: DataModel, includeDelegate?: boolean, seen?: Set<DataModel>): DataModel[];
|
|
6
|
+
declare function isIdField(field: DataField, contextModel: DataModel): boolean;
|
|
7
|
+
declare function hasAttribute(decl: DataModel | TypeDef | DataField | Enum | EnumField | FunctionDecl | Attribute | AttributeParam, name: string): boolean;
|
|
8
|
+
declare function getAttribute(decl: AttributeTarget, name: string): DataFieldAttribute | DataModelAttribute | undefined;
|
|
17
9
|
declare function isDelegateModel(node: AstNode): boolean;
|
|
18
|
-
declare function isUniqueField(field:
|
|
10
|
+
declare function isUniqueField(field: DataField): boolean;
|
|
19
11
|
declare function isFromStdlib(node: AstNode): boolean;
|
|
20
12
|
declare function getContainingModel(node: AstNode | undefined): Model | null;
|
|
21
13
|
declare function resolved<T extends AstNode>(ref: Reference<T>): T;
|
|
22
14
|
declare function getAuthDecl(model: Model): _zenstackhq_language_ast.AbstractDeclaration | undefined;
|
|
15
|
+
declare function getIdFields(dm: DataModel): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Prefix for auxiliary relation fields generated for delegated models
|
|
18
|
+
*/
|
|
19
|
+
declare const DELEGATE_AUX_RELATION_PREFIX = "delegate_aux";
|
|
23
20
|
|
|
21
|
+
declare const modelUtils_DELEGATE_AUX_RELATION_PREFIX: typeof DELEGATE_AUX_RELATION_PREFIX;
|
|
24
22
|
declare const modelUtils_getAttribute: typeof getAttribute;
|
|
25
23
|
declare const modelUtils_getAuthDecl: typeof getAuthDecl;
|
|
26
24
|
declare const modelUtils_getContainingModel: typeof getContainingModel;
|
|
27
|
-
declare const
|
|
28
|
-
declare const modelUtils_getModelUniqueFields: typeof getModelUniqueFields;
|
|
29
|
-
declare const modelUtils_getRecursiveBases: typeof getRecursiveBases;
|
|
25
|
+
declare const modelUtils_getIdFields: typeof getIdFields;
|
|
30
26
|
declare const modelUtils_hasAttribute: typeof hasAttribute;
|
|
31
27
|
declare const modelUtils_isDelegateModel: typeof isDelegateModel;
|
|
32
28
|
declare const modelUtils_isFromStdlib: typeof isFromStdlib;
|
|
@@ -34,15 +30,47 @@ declare const modelUtils_isIdField: typeof isIdField;
|
|
|
34
30
|
declare const modelUtils_isUniqueField: typeof isUniqueField;
|
|
35
31
|
declare const modelUtils_resolved: typeof resolved;
|
|
36
32
|
declare namespace modelUtils {
|
|
37
|
-
export { modelUtils_getAttribute as getAttribute, modelUtils_getAuthDecl as getAuthDecl, modelUtils_getContainingModel as getContainingModel,
|
|
33
|
+
export { modelUtils_DELEGATE_AUX_RELATION_PREFIX as DELEGATE_AUX_RELATION_PREFIX, modelUtils_getAttribute as getAttribute, modelUtils_getAuthDecl as getAuthDecl, modelUtils_getContainingModel as getContainingModel, modelUtils_getIdFields as getIdFields, modelUtils_hasAttribute as hasAttribute, modelUtils_isDelegateModel as isDelegateModel, modelUtils_isFromStdlib as isFromStdlib, modelUtils_isIdField as isIdField, modelUtils_isUniqueField as isUniqueField, modelUtils_resolved as resolved };
|
|
38
34
|
}
|
|
39
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Context passed to CLI plugins when calling `generate`.
|
|
38
|
+
*/
|
|
40
39
|
type CliGeneratorContext = {
|
|
40
|
+
/**
|
|
41
|
+
* ZModel file path.
|
|
42
|
+
*/
|
|
43
|
+
schemaFile: string;
|
|
44
|
+
/**
|
|
45
|
+
* ZModel AST.
|
|
46
|
+
*/
|
|
41
47
|
model: Model;
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Default output path for code generation.
|
|
50
|
+
*/
|
|
51
|
+
defaultOutputPath: string;
|
|
52
|
+
/**
|
|
53
|
+
* Plugin options provided by the user.
|
|
54
|
+
*/
|
|
55
|
+
pluginOptions: Record<string, unknown>;
|
|
44
56
|
};
|
|
45
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Contract for a CLI plugin.
|
|
59
|
+
*/
|
|
60
|
+
interface CliPlugin {
|
|
61
|
+
/**
|
|
62
|
+
* Plugin's display name.
|
|
63
|
+
*/
|
|
64
|
+
name: string;
|
|
65
|
+
/**
|
|
66
|
+
* Text to show during generation.
|
|
67
|
+
*/
|
|
68
|
+
statusText?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Code generation callback.
|
|
71
|
+
*/
|
|
72
|
+
generate(context: CliGeneratorContext): MaybePromise<void>;
|
|
73
|
+
}
|
|
46
74
|
|
|
47
75
|
declare class FunctionCall {
|
|
48
76
|
func: string;
|
|
@@ -62,6 +90,7 @@ declare class FunctionCallArg {
|
|
|
62
90
|
declare class PrismaSchemaGenerator {
|
|
63
91
|
private readonly zmodel;
|
|
64
92
|
private readonly PRELUDE;
|
|
93
|
+
private shortNameMap;
|
|
65
94
|
constructor(zmodel: Model);
|
|
66
95
|
generate(): Promise<string>;
|
|
67
96
|
private generateDataSource;
|
|
@@ -77,7 +106,6 @@ declare class PrismaSchemaGenerator {
|
|
|
77
106
|
private generateModelField;
|
|
78
107
|
private isDefaultWithPluginInvocation;
|
|
79
108
|
private isFromPlugin;
|
|
80
|
-
private setDummyDefault;
|
|
81
109
|
private isInheritedFromDelegate;
|
|
82
110
|
private makeFieldAttribute;
|
|
83
111
|
private makeAttributeArg;
|
|
@@ -87,21 +115,27 @@ declare class PrismaSchemaGenerator {
|
|
|
87
115
|
private generateContainerAttribute;
|
|
88
116
|
private generateEnum;
|
|
89
117
|
private generateEnumField;
|
|
118
|
+
private generateDelegateRelationForBase;
|
|
119
|
+
private generateDelegateRelationForConcrete;
|
|
120
|
+
private getConcreteModels;
|
|
121
|
+
private truncate;
|
|
90
122
|
}
|
|
91
123
|
|
|
92
124
|
declare class TsSchemaGenerator {
|
|
93
|
-
generate(
|
|
94
|
-
|
|
95
|
-
warnings: string[];
|
|
96
|
-
}>;
|
|
125
|
+
generate(model: Model, outputDir: string): Promise<void>;
|
|
126
|
+
private generateSchema;
|
|
97
127
|
private generateSchemaStatements;
|
|
98
128
|
private createSchemaObject;
|
|
99
129
|
private createProviderObject;
|
|
100
130
|
private createModelsObject;
|
|
131
|
+
private createTypeDefsObject;
|
|
101
132
|
private createDataModelObject;
|
|
133
|
+
private getSubModels;
|
|
134
|
+
private createTypeDefObject;
|
|
102
135
|
private createComputedFieldsObject;
|
|
103
136
|
private mapFieldTypeToTSType;
|
|
104
|
-
private
|
|
137
|
+
private createDataFieldObject;
|
|
138
|
+
private isDiscriminatorField;
|
|
105
139
|
private getDataSourceProvider;
|
|
106
140
|
private getFieldMappedDefault;
|
|
107
141
|
private getMappedValue;
|
|
@@ -113,8 +147,8 @@ declare class TsSchemaGenerator {
|
|
|
113
147
|
private getForeignKeyFor;
|
|
114
148
|
private getOppositeRelationField;
|
|
115
149
|
private getRelationName;
|
|
116
|
-
private getIdFields;
|
|
117
150
|
private createUniqueFieldsObject;
|
|
151
|
+
private getCompoundUniqueKey;
|
|
118
152
|
private generateFieldTypeLiteral;
|
|
119
153
|
private createEnumObject;
|
|
120
154
|
private getLiteral;
|
|
@@ -134,6 +168,10 @@ declare class TsSchemaGenerator {
|
|
|
134
168
|
private createRefExpression;
|
|
135
169
|
private createCallExpression;
|
|
136
170
|
private createLiteralExpression;
|
|
171
|
+
private generateModelsAndTypeDefs;
|
|
172
|
+
private generateSchemaImport;
|
|
173
|
+
private generateDocs;
|
|
174
|
+
private generateInputTypes;
|
|
137
175
|
}
|
|
138
176
|
|
|
139
177
|
/**
|
|
@@ -166,10 +204,10 @@ declare class ZModelCodeGenerator {
|
|
|
166
204
|
private _generatePlugin;
|
|
167
205
|
private _generatePluginField;
|
|
168
206
|
private _generateDataModel;
|
|
169
|
-
private
|
|
207
|
+
private _generateDataField;
|
|
170
208
|
private fieldType;
|
|
171
209
|
private _generateDataModelAttribute;
|
|
172
|
-
private
|
|
210
|
+
private _generateDataFieldAttribute;
|
|
173
211
|
private attribute;
|
|
174
212
|
private _generateAttributeArg;
|
|
175
213
|
private _generateObjectExpr;
|
|
@@ -193,7 +231,6 @@ declare class ZModelCodeGenerator {
|
|
|
193
231
|
private _generateFunctionParam;
|
|
194
232
|
private _generateFunctionParamType;
|
|
195
233
|
private _generateTypeDef;
|
|
196
|
-
private _generateTypeDefField;
|
|
197
234
|
private argument;
|
|
198
235
|
private get binaryExprSpace();
|
|
199
236
|
private get unaryExprSpace();
|
|
@@ -202,4 +239,4 @@ declare class ZModelCodeGenerator {
|
|
|
202
239
|
private isCollectionPredicateOperator;
|
|
203
240
|
}
|
|
204
241
|
|
|
205
|
-
export { type
|
|
242
|
+
export { type CliGeneratorContext, type CliPlugin, modelUtils as ModelUtils, PrismaSchemaGenerator, TsSchemaGenerator, ZModelCodeGenerator, type ZModelCodeOptions };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,32 +1,28 @@
|
|
|
1
1
|
import * as _zenstackhq_language_ast from '@zenstackhq/language/ast';
|
|
2
|
-
import {
|
|
2
|
+
import { DataField, DataModel, TypeDef, Enum, EnumField, FunctionDecl, Attribute, AttributeParam, DataFieldAttribute, DataModelAttribute, AstNode, Model, Reference, InvocationExpr } from '@zenstackhq/language/ast';
|
|
3
|
+
import { AttributeTarget } from '@zenstackhq/language/utils';
|
|
3
4
|
import { MaybePromise } from 'langium';
|
|
4
5
|
|
|
5
|
-
declare function isIdField(field:
|
|
6
|
-
declare function hasAttribute(decl: DataModel | TypeDef |
|
|
7
|
-
declare function getAttribute(decl:
|
|
8
|
-
/**
|
|
9
|
-
* Gets `@@id` fields declared at the data model level (including search in base models)
|
|
10
|
-
*/
|
|
11
|
-
declare function getModelIdFields(model: DataModel): DataModelField[];
|
|
12
|
-
/**
|
|
13
|
-
* Gets `@@unique` fields declared at the data model level (including search in base models)
|
|
14
|
-
*/
|
|
15
|
-
declare function getModelUniqueFields(model: DataModel): DataModelField[];
|
|
16
|
-
declare function getRecursiveBases(dataModel: DataModel, includeDelegate?: boolean, seen?: Set<DataModel>): DataModel[];
|
|
6
|
+
declare function isIdField(field: DataField, contextModel: DataModel): boolean;
|
|
7
|
+
declare function hasAttribute(decl: DataModel | TypeDef | DataField | Enum | EnumField | FunctionDecl | Attribute | AttributeParam, name: string): boolean;
|
|
8
|
+
declare function getAttribute(decl: AttributeTarget, name: string): DataFieldAttribute | DataModelAttribute | undefined;
|
|
17
9
|
declare function isDelegateModel(node: AstNode): boolean;
|
|
18
|
-
declare function isUniqueField(field:
|
|
10
|
+
declare function isUniqueField(field: DataField): boolean;
|
|
19
11
|
declare function isFromStdlib(node: AstNode): boolean;
|
|
20
12
|
declare function getContainingModel(node: AstNode | undefined): Model | null;
|
|
21
13
|
declare function resolved<T extends AstNode>(ref: Reference<T>): T;
|
|
22
14
|
declare function getAuthDecl(model: Model): _zenstackhq_language_ast.AbstractDeclaration | undefined;
|
|
15
|
+
declare function getIdFields(dm: DataModel): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Prefix for auxiliary relation fields generated for delegated models
|
|
18
|
+
*/
|
|
19
|
+
declare const DELEGATE_AUX_RELATION_PREFIX = "delegate_aux";
|
|
23
20
|
|
|
21
|
+
declare const modelUtils_DELEGATE_AUX_RELATION_PREFIX: typeof DELEGATE_AUX_RELATION_PREFIX;
|
|
24
22
|
declare const modelUtils_getAttribute: typeof getAttribute;
|
|
25
23
|
declare const modelUtils_getAuthDecl: typeof getAuthDecl;
|
|
26
24
|
declare const modelUtils_getContainingModel: typeof getContainingModel;
|
|
27
|
-
declare const
|
|
28
|
-
declare const modelUtils_getModelUniqueFields: typeof getModelUniqueFields;
|
|
29
|
-
declare const modelUtils_getRecursiveBases: typeof getRecursiveBases;
|
|
25
|
+
declare const modelUtils_getIdFields: typeof getIdFields;
|
|
30
26
|
declare const modelUtils_hasAttribute: typeof hasAttribute;
|
|
31
27
|
declare const modelUtils_isDelegateModel: typeof isDelegateModel;
|
|
32
28
|
declare const modelUtils_isFromStdlib: typeof isFromStdlib;
|
|
@@ -34,15 +30,47 @@ declare const modelUtils_isIdField: typeof isIdField;
|
|
|
34
30
|
declare const modelUtils_isUniqueField: typeof isUniqueField;
|
|
35
31
|
declare const modelUtils_resolved: typeof resolved;
|
|
36
32
|
declare namespace modelUtils {
|
|
37
|
-
export { modelUtils_getAttribute as getAttribute, modelUtils_getAuthDecl as getAuthDecl, modelUtils_getContainingModel as getContainingModel,
|
|
33
|
+
export { modelUtils_DELEGATE_AUX_RELATION_PREFIX as DELEGATE_AUX_RELATION_PREFIX, modelUtils_getAttribute as getAttribute, modelUtils_getAuthDecl as getAuthDecl, modelUtils_getContainingModel as getContainingModel, modelUtils_getIdFields as getIdFields, modelUtils_hasAttribute as hasAttribute, modelUtils_isDelegateModel as isDelegateModel, modelUtils_isFromStdlib as isFromStdlib, modelUtils_isIdField as isIdField, modelUtils_isUniqueField as isUniqueField, modelUtils_resolved as resolved };
|
|
38
34
|
}
|
|
39
35
|
|
|
36
|
+
/**
|
|
37
|
+
* Context passed to CLI plugins when calling `generate`.
|
|
38
|
+
*/
|
|
40
39
|
type CliGeneratorContext = {
|
|
40
|
+
/**
|
|
41
|
+
* ZModel file path.
|
|
42
|
+
*/
|
|
43
|
+
schemaFile: string;
|
|
44
|
+
/**
|
|
45
|
+
* ZModel AST.
|
|
46
|
+
*/
|
|
41
47
|
model: Model;
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Default output path for code generation.
|
|
50
|
+
*/
|
|
51
|
+
defaultOutputPath: string;
|
|
52
|
+
/**
|
|
53
|
+
* Plugin options provided by the user.
|
|
54
|
+
*/
|
|
55
|
+
pluginOptions: Record<string, unknown>;
|
|
44
56
|
};
|
|
45
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Contract for a CLI plugin.
|
|
59
|
+
*/
|
|
60
|
+
interface CliPlugin {
|
|
61
|
+
/**
|
|
62
|
+
* Plugin's display name.
|
|
63
|
+
*/
|
|
64
|
+
name: string;
|
|
65
|
+
/**
|
|
66
|
+
* Text to show during generation.
|
|
67
|
+
*/
|
|
68
|
+
statusText?: string;
|
|
69
|
+
/**
|
|
70
|
+
* Code generation callback.
|
|
71
|
+
*/
|
|
72
|
+
generate(context: CliGeneratorContext): MaybePromise<void>;
|
|
73
|
+
}
|
|
46
74
|
|
|
47
75
|
declare class FunctionCall {
|
|
48
76
|
func: string;
|
|
@@ -62,6 +90,7 @@ declare class FunctionCallArg {
|
|
|
62
90
|
declare class PrismaSchemaGenerator {
|
|
63
91
|
private readonly zmodel;
|
|
64
92
|
private readonly PRELUDE;
|
|
93
|
+
private shortNameMap;
|
|
65
94
|
constructor(zmodel: Model);
|
|
66
95
|
generate(): Promise<string>;
|
|
67
96
|
private generateDataSource;
|
|
@@ -77,7 +106,6 @@ declare class PrismaSchemaGenerator {
|
|
|
77
106
|
private generateModelField;
|
|
78
107
|
private isDefaultWithPluginInvocation;
|
|
79
108
|
private isFromPlugin;
|
|
80
|
-
private setDummyDefault;
|
|
81
109
|
private isInheritedFromDelegate;
|
|
82
110
|
private makeFieldAttribute;
|
|
83
111
|
private makeAttributeArg;
|
|
@@ -87,21 +115,27 @@ declare class PrismaSchemaGenerator {
|
|
|
87
115
|
private generateContainerAttribute;
|
|
88
116
|
private generateEnum;
|
|
89
117
|
private generateEnumField;
|
|
118
|
+
private generateDelegateRelationForBase;
|
|
119
|
+
private generateDelegateRelationForConcrete;
|
|
120
|
+
private getConcreteModels;
|
|
121
|
+
private truncate;
|
|
90
122
|
}
|
|
91
123
|
|
|
92
124
|
declare class TsSchemaGenerator {
|
|
93
|
-
generate(
|
|
94
|
-
|
|
95
|
-
warnings: string[];
|
|
96
|
-
}>;
|
|
125
|
+
generate(model: Model, outputDir: string): Promise<void>;
|
|
126
|
+
private generateSchema;
|
|
97
127
|
private generateSchemaStatements;
|
|
98
128
|
private createSchemaObject;
|
|
99
129
|
private createProviderObject;
|
|
100
130
|
private createModelsObject;
|
|
131
|
+
private createTypeDefsObject;
|
|
101
132
|
private createDataModelObject;
|
|
133
|
+
private getSubModels;
|
|
134
|
+
private createTypeDefObject;
|
|
102
135
|
private createComputedFieldsObject;
|
|
103
136
|
private mapFieldTypeToTSType;
|
|
104
|
-
private
|
|
137
|
+
private createDataFieldObject;
|
|
138
|
+
private isDiscriminatorField;
|
|
105
139
|
private getDataSourceProvider;
|
|
106
140
|
private getFieldMappedDefault;
|
|
107
141
|
private getMappedValue;
|
|
@@ -113,8 +147,8 @@ declare class TsSchemaGenerator {
|
|
|
113
147
|
private getForeignKeyFor;
|
|
114
148
|
private getOppositeRelationField;
|
|
115
149
|
private getRelationName;
|
|
116
|
-
private getIdFields;
|
|
117
150
|
private createUniqueFieldsObject;
|
|
151
|
+
private getCompoundUniqueKey;
|
|
118
152
|
private generateFieldTypeLiteral;
|
|
119
153
|
private createEnumObject;
|
|
120
154
|
private getLiteral;
|
|
@@ -134,6 +168,10 @@ declare class TsSchemaGenerator {
|
|
|
134
168
|
private createRefExpression;
|
|
135
169
|
private createCallExpression;
|
|
136
170
|
private createLiteralExpression;
|
|
171
|
+
private generateModelsAndTypeDefs;
|
|
172
|
+
private generateSchemaImport;
|
|
173
|
+
private generateDocs;
|
|
174
|
+
private generateInputTypes;
|
|
137
175
|
}
|
|
138
176
|
|
|
139
177
|
/**
|
|
@@ -166,10 +204,10 @@ declare class ZModelCodeGenerator {
|
|
|
166
204
|
private _generatePlugin;
|
|
167
205
|
private _generatePluginField;
|
|
168
206
|
private _generateDataModel;
|
|
169
|
-
private
|
|
207
|
+
private _generateDataField;
|
|
170
208
|
private fieldType;
|
|
171
209
|
private _generateDataModelAttribute;
|
|
172
|
-
private
|
|
210
|
+
private _generateDataFieldAttribute;
|
|
173
211
|
private attribute;
|
|
174
212
|
private _generateAttributeArg;
|
|
175
213
|
private _generateObjectExpr;
|
|
@@ -193,7 +231,6 @@ declare class ZModelCodeGenerator {
|
|
|
193
231
|
private _generateFunctionParam;
|
|
194
232
|
private _generateFunctionParamType;
|
|
195
233
|
private _generateTypeDef;
|
|
196
|
-
private _generateTypeDefField;
|
|
197
234
|
private argument;
|
|
198
235
|
private get binaryExprSpace();
|
|
199
236
|
private get unaryExprSpace();
|
|
@@ -202,4 +239,4 @@ declare class ZModelCodeGenerator {
|
|
|
202
239
|
private isCollectionPredicateOperator;
|
|
203
240
|
}
|
|
204
241
|
|
|
205
|
-
export { type
|
|
242
|
+
export { type CliGeneratorContext, type CliPlugin, modelUtils as ModelUtils, PrismaSchemaGenerator, TsSchemaGenerator, ZModelCodeGenerator, type ZModelCodeOptions };
|