@zenstackhq/sdk 3.0.0-alpha.3 → 3.0.0-alpha.31

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/schema.d.cts CHANGED
@@ -52,16 +52,21 @@ type SchemaDef = {
52
52
  provider: DataSourceProvider;
53
53
  models: Record<string, ModelDef>;
54
54
  enums?: Record<string, EnumDef>;
55
+ typeDefs?: Record<string, TypeDefDef>;
55
56
  plugins: Record<string, unknown>;
56
57
  procedures?: Record<string, ProcedureDef>;
57
58
  authType?: GetModels<SchemaDef>;
58
59
  };
59
60
  type ModelDef = {
61
+ name: string;
62
+ baseModel?: string;
60
63
  fields: Record<string, FieldDef>;
61
64
  attributes?: AttributeApplication[];
62
65
  uniqueFields: Record<string, Pick<FieldDef, 'type'> | Record<string, Pick<FieldDef, 'type'>>>;
63
66
  idFields: string[];
64
67
  computedFields?: Record<string, Function>;
68
+ isDelegate?: boolean;
69
+ subModels?: string[];
65
70
  };
66
71
  type AttributeApplication = {
67
72
  name: string;
@@ -81,6 +86,7 @@ type RelationInfo = {
81
86
  onUpdate?: CascadeAction;
82
87
  };
83
88
  type FieldDef = {
89
+ name: string;
84
90
  type: string;
85
91
  id?: boolean;
86
92
  array?: boolean;
@@ -88,10 +94,12 @@ type FieldDef = {
88
94
  unique?: boolean;
89
95
  updatedAt?: boolean;
90
96
  attributes?: AttributeApplication[];
91
- default?: MappedBuiltinType | Expression;
97
+ default?: MappedBuiltinType | Expression | unknown[];
92
98
  relation?: RelationInfo;
93
99
  foreignKeyFor?: string[];
94
100
  computed?: boolean;
101
+ originModel?: string;
102
+ isDiscriminator?: boolean;
95
103
  };
96
104
  type ProcedureParam = {
97
105
  name: string;
@@ -103,35 +111,55 @@ type ProcedureDef = {
103
111
  returnType: string;
104
112
  mutation?: boolean;
105
113
  };
106
- type BuiltinType = 'String' | 'Boolean' | 'Int' | 'Float' | 'BigInt' | 'Decimal' | 'DateTime' | 'Bytes';
114
+ type BuiltinType = 'String' | 'Boolean' | 'Int' | 'Float' | 'BigInt' | 'Decimal' | 'DateTime' | 'Bytes' | 'Json' | 'Unsupported';
107
115
  type MappedBuiltinType = string | boolean | number | bigint | Decimal | Date;
108
116
  type EnumDef = Record<string, string>;
117
+ type TypeDefDef = {
118
+ name: string;
119
+ fields: Record<string, FieldDef>;
120
+ attributes?: AttributeApplication[];
121
+ };
109
122
  type GetModels<Schema extends SchemaDef> = Extract<keyof Schema['models'], string>;
123
+ type GetDelegateModels<Schema extends SchemaDef> = keyof {
124
+ [Key in GetModels<Schema> as Schema['models'][Key]['isDelegate'] extends true ? Key : never]: true;
125
+ };
126
+ type GetSubModels<Schema extends SchemaDef, Model extends GetModels<Schema>> = GetModel<Schema, Model>['subModels'] extends string[] ? Extract<GetModel<Schema, Model>['subModels'][number], GetModels<Schema>> : never;
110
127
  type GetModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model];
111
128
  type GetEnums<Schema extends SchemaDef> = keyof Schema['enums'];
112
129
  type GetEnum<Schema extends SchemaDef, Enum extends GetEnums<Schema>> = Schema['enums'][Enum];
113
- type GetFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = Extract<keyof GetModel<Schema, Model>['fields'], string>;
114
- type GetField<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = Schema['models'][Model]['fields'][Field];
115
- type GetFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = Schema['models'][Model]['fields'][Field]['type'];
130
+ type GetTypeDefs<Schema extends SchemaDef> = Extract<keyof Schema['typeDefs'], string>;
131
+ type GetTypeDef<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Schema['typeDefs'] extends Record<string, unknown> ? Schema['typeDefs'][TypeDef] : never;
132
+ type GetModelFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = Extract<keyof GetModel<Schema, Model>['fields'], string>;
133
+ type GetModelField<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModel<Schema, Model>['fields'][Field];
134
+ type GetModelDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
135
+ [Key in GetModelFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? GetModelField<Schema, Model, Key>['originModel'] extends string ? never : Key : never]: true;
136
+ };
137
+ type GetModelFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = Schema['models'][Model]['fields'][Field]['type'];
138
+ type GetTypeDefFields<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Extract<keyof GetTypeDef<Schema, TypeDef>['fields'], string>;
139
+ type GetTypeDefField<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDef<Schema, TypeDef>['fields'][Field];
116
140
  type ScalarFields<Schema extends SchemaDef, Model extends GetModels<Schema>, IncludeComputed extends boolean = true> = keyof {
117
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['relation'] extends object ? never : GetField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? never : IncludeComputed extends true ? Key : FieldIsComputed<Schema, Model, Key> extends true ? never : Key]: Key;
141
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? never : GetModelField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? never : IncludeComputed extends true ? Key : FieldIsComputed<Schema, Model, Key> extends true ? never : Key]: Key;
118
142
  };
119
143
  type ForeignKeyFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
120
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? Key : never]: Key;
144
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? Key : never]: Key;
121
145
  };
122
146
  type NonRelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
123
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['relation'] extends object ? never : Key]: Key;
147
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? never : Key]: Key;
124
148
  };
125
149
  type RelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
126
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['relation'] extends object ? Key : never]: Key;
127
- };
128
- type FieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['type'];
129
- type RelationFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetField<Schema, Model, Field>['type'] extends GetModels<Schema> ? GetField<Schema, Model, Field>['type'] : never;
130
- type FieldIsOptional<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['optional'] extends true ? true : false;
131
- type FieldIsRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['relation'] extends object ? true : false;
132
- type FieldIsArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['array'] extends true ? true : false;
133
- type FieldIsComputed<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['computed'] extends true ? true : false;
134
- type FieldHasDefault<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['default'] extends object | number | string | boolean ? true : GetField<Schema, Model, Field>['updatedAt'] extends true ? true : false;
135
- type FieldIsRelationArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = FieldIsRelation<Schema, Model, Field> extends true ? FieldIsArray<Schema, Model, Field> : false;
150
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? Key : never]: Key;
151
+ };
152
+ type FieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['type'];
153
+ type RelationFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetModelField<Schema, Model, Field>['type'] extends GetModels<Schema> ? GetModelField<Schema, Model, Field>['type'] : never;
154
+ type ModelFieldIsOptional<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['optional'] extends true ? true : false;
155
+ type TypeDefFieldIsOptional<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDefField<Schema, TypeDef, Field>['optional'] extends true ? true : false;
156
+ type FieldIsRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['relation'] extends object ? true : false;
157
+ type FieldIsArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['array'] extends true ? true : false;
158
+ type FieldIsComputed<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['computed'] extends true ? true : false;
159
+ type FieldHasDefault<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['default'] extends object | number | string | boolean ? true : GetModelField<Schema, Model, Field>['updatedAt'] extends true ? true : false;
160
+ type FieldIsRelationArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = FieldIsRelation<Schema, Model, Field> extends true ? FieldIsArray<Schema, Model, Field> : false;
161
+ type IsDelegateModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model]['isDelegate'] extends true ? true : false;
162
+ type FieldIsDelegateRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetModelFieldType<Schema, Model, Field> extends GetModels<Schema> ? IsDelegateModel<Schema, GetModelFieldType<Schema, Model, Field>> : false;
163
+ type FieldIsDelegateDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['isDiscriminator'] extends true ? true : false;
136
164
 
137
- export type { ArrayExpression, AttributeApplication, AttributeArg, BinaryExpression, BinaryOperator, BuiltinType, CallExpression, CascadeAction, DataSourceProvider, DataSourceProviderType, EnumDef, Expression, FieldDef, FieldExpression, FieldHasDefault, FieldIsArray, FieldIsComputed, FieldIsOptional, FieldIsRelation, FieldIsRelationArray, FieldType, ForeignKeyFields, GetEnum, GetEnums, GetField, GetFieldType, GetFields, GetModel, GetModels, LiteralExpression, MappedBuiltinType, MemberExpression, ModelDef, NonRelationFields, NullExpression, ProcedureDef, ProcedureParam, RelationFieldType, RelationFields, RelationInfo, ScalarFields, SchemaDef, ThisExpression, UnaryExpression, UnaryOperator };
165
+ export type { ArrayExpression, AttributeApplication, AttributeArg, BinaryExpression, BinaryOperator, BuiltinType, CallExpression, CascadeAction, DataSourceProvider, DataSourceProviderType, EnumDef, Expression, FieldDef, FieldExpression, FieldHasDefault, FieldIsArray, FieldIsComputed, FieldIsDelegateDiscriminator, FieldIsDelegateRelation, FieldIsRelation, FieldIsRelationArray, FieldType, ForeignKeyFields, GetDelegateModels, GetEnum, GetEnums, GetModel, GetModelDiscriminator, GetModelField, GetModelFieldType, GetModelFields, GetModels, GetSubModels, GetTypeDef, GetTypeDefField, GetTypeDefFields, GetTypeDefs, IsDelegateModel, LiteralExpression, MappedBuiltinType, MemberExpression, ModelDef, ModelFieldIsOptional, NonRelationFields, NullExpression, ProcedureDef, ProcedureParam, RelationFieldType, RelationFields, RelationInfo, ScalarFields, SchemaDef, ThisExpression, TypeDefDef, TypeDefFieldIsOptional, UnaryExpression, UnaryOperator };
package/dist/schema.d.ts CHANGED
@@ -52,16 +52,21 @@ type SchemaDef = {
52
52
  provider: DataSourceProvider;
53
53
  models: Record<string, ModelDef>;
54
54
  enums?: Record<string, EnumDef>;
55
+ typeDefs?: Record<string, TypeDefDef>;
55
56
  plugins: Record<string, unknown>;
56
57
  procedures?: Record<string, ProcedureDef>;
57
58
  authType?: GetModels<SchemaDef>;
58
59
  };
59
60
  type ModelDef = {
61
+ name: string;
62
+ baseModel?: string;
60
63
  fields: Record<string, FieldDef>;
61
64
  attributes?: AttributeApplication[];
62
65
  uniqueFields: Record<string, Pick<FieldDef, 'type'> | Record<string, Pick<FieldDef, 'type'>>>;
63
66
  idFields: string[];
64
67
  computedFields?: Record<string, Function>;
68
+ isDelegate?: boolean;
69
+ subModels?: string[];
65
70
  };
66
71
  type AttributeApplication = {
67
72
  name: string;
@@ -81,6 +86,7 @@ type RelationInfo = {
81
86
  onUpdate?: CascadeAction;
82
87
  };
83
88
  type FieldDef = {
89
+ name: string;
84
90
  type: string;
85
91
  id?: boolean;
86
92
  array?: boolean;
@@ -88,10 +94,12 @@ type FieldDef = {
88
94
  unique?: boolean;
89
95
  updatedAt?: boolean;
90
96
  attributes?: AttributeApplication[];
91
- default?: MappedBuiltinType | Expression;
97
+ default?: MappedBuiltinType | Expression | unknown[];
92
98
  relation?: RelationInfo;
93
99
  foreignKeyFor?: string[];
94
100
  computed?: boolean;
101
+ originModel?: string;
102
+ isDiscriminator?: boolean;
95
103
  };
96
104
  type ProcedureParam = {
97
105
  name: string;
@@ -103,35 +111,55 @@ type ProcedureDef = {
103
111
  returnType: string;
104
112
  mutation?: boolean;
105
113
  };
106
- type BuiltinType = 'String' | 'Boolean' | 'Int' | 'Float' | 'BigInt' | 'Decimal' | 'DateTime' | 'Bytes';
114
+ type BuiltinType = 'String' | 'Boolean' | 'Int' | 'Float' | 'BigInt' | 'Decimal' | 'DateTime' | 'Bytes' | 'Json' | 'Unsupported';
107
115
  type MappedBuiltinType = string | boolean | number | bigint | Decimal | Date;
108
116
  type EnumDef = Record<string, string>;
117
+ type TypeDefDef = {
118
+ name: string;
119
+ fields: Record<string, FieldDef>;
120
+ attributes?: AttributeApplication[];
121
+ };
109
122
  type GetModels<Schema extends SchemaDef> = Extract<keyof Schema['models'], string>;
123
+ type GetDelegateModels<Schema extends SchemaDef> = keyof {
124
+ [Key in GetModels<Schema> as Schema['models'][Key]['isDelegate'] extends true ? Key : never]: true;
125
+ };
126
+ type GetSubModels<Schema extends SchemaDef, Model extends GetModels<Schema>> = GetModel<Schema, Model>['subModels'] extends string[] ? Extract<GetModel<Schema, Model>['subModels'][number], GetModels<Schema>> : never;
110
127
  type GetModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model];
111
128
  type GetEnums<Schema extends SchemaDef> = keyof Schema['enums'];
112
129
  type GetEnum<Schema extends SchemaDef, Enum extends GetEnums<Schema>> = Schema['enums'][Enum];
113
- type GetFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = Extract<keyof GetModel<Schema, Model>['fields'], string>;
114
- type GetField<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = Schema['models'][Model]['fields'][Field];
115
- type GetFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = Schema['models'][Model]['fields'][Field]['type'];
130
+ type GetTypeDefs<Schema extends SchemaDef> = Extract<keyof Schema['typeDefs'], string>;
131
+ type GetTypeDef<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Schema['typeDefs'] extends Record<string, unknown> ? Schema['typeDefs'][TypeDef] : never;
132
+ type GetModelFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = Extract<keyof GetModel<Schema, Model>['fields'], string>;
133
+ type GetModelField<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModel<Schema, Model>['fields'][Field];
134
+ type GetModelDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
135
+ [Key in GetModelFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? GetModelField<Schema, Model, Key>['originModel'] extends string ? never : Key : never]: true;
136
+ };
137
+ type GetModelFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = Schema['models'][Model]['fields'][Field]['type'];
138
+ type GetTypeDefFields<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Extract<keyof GetTypeDef<Schema, TypeDef>['fields'], string>;
139
+ type GetTypeDefField<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDef<Schema, TypeDef>['fields'][Field];
116
140
  type ScalarFields<Schema extends SchemaDef, Model extends GetModels<Schema>, IncludeComputed extends boolean = true> = keyof {
117
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['relation'] extends object ? never : GetField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? never : IncludeComputed extends true ? Key : FieldIsComputed<Schema, Model, Key> extends true ? never : Key]: Key;
141
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? never : GetModelField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? never : IncludeComputed extends true ? Key : FieldIsComputed<Schema, Model, Key> extends true ? never : Key]: Key;
118
142
  };
119
143
  type ForeignKeyFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
120
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? Key : never]: Key;
144
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? Key : never]: Key;
121
145
  };
122
146
  type NonRelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
123
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['relation'] extends object ? never : Key]: Key;
147
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? never : Key]: Key;
124
148
  };
125
149
  type RelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
126
- [Key in GetFields<Schema, Model> as GetField<Schema, Model, Key>['relation'] extends object ? Key : never]: Key;
127
- };
128
- type FieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['type'];
129
- type RelationFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetField<Schema, Model, Field>['type'] extends GetModels<Schema> ? GetField<Schema, Model, Field>['type'] : never;
130
- type FieldIsOptional<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['optional'] extends true ? true : false;
131
- type FieldIsRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['relation'] extends object ? true : false;
132
- type FieldIsArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['array'] extends true ? true : false;
133
- type FieldIsComputed<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['computed'] extends true ? true : false;
134
- type FieldHasDefault<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = GetField<Schema, Model, Field>['default'] extends object | number | string | boolean ? true : GetField<Schema, Model, Field>['updatedAt'] extends true ? true : false;
135
- type FieldIsRelationArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetFields<Schema, Model>> = FieldIsRelation<Schema, Model, Field> extends true ? FieldIsArray<Schema, Model, Field> : false;
150
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? Key : never]: Key;
151
+ };
152
+ type FieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['type'];
153
+ type RelationFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetModelField<Schema, Model, Field>['type'] extends GetModels<Schema> ? GetModelField<Schema, Model, Field>['type'] : never;
154
+ type ModelFieldIsOptional<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['optional'] extends true ? true : false;
155
+ type TypeDefFieldIsOptional<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDefField<Schema, TypeDef, Field>['optional'] extends true ? true : false;
156
+ type FieldIsRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['relation'] extends object ? true : false;
157
+ type FieldIsArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['array'] extends true ? true : false;
158
+ type FieldIsComputed<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['computed'] extends true ? true : false;
159
+ type FieldHasDefault<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['default'] extends object | number | string | boolean ? true : GetModelField<Schema, Model, Field>['updatedAt'] extends true ? true : false;
160
+ type FieldIsRelationArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = FieldIsRelation<Schema, Model, Field> extends true ? FieldIsArray<Schema, Model, Field> : false;
161
+ type IsDelegateModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model]['isDelegate'] extends true ? true : false;
162
+ type FieldIsDelegateRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetModelFieldType<Schema, Model, Field> extends GetModels<Schema> ? IsDelegateModel<Schema, GetModelFieldType<Schema, Model, Field>> : false;
163
+ type FieldIsDelegateDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['isDiscriminator'] extends true ? true : false;
136
164
 
137
- export type { ArrayExpression, AttributeApplication, AttributeArg, BinaryExpression, BinaryOperator, BuiltinType, CallExpression, CascadeAction, DataSourceProvider, DataSourceProviderType, EnumDef, Expression, FieldDef, FieldExpression, FieldHasDefault, FieldIsArray, FieldIsComputed, FieldIsOptional, FieldIsRelation, FieldIsRelationArray, FieldType, ForeignKeyFields, GetEnum, GetEnums, GetField, GetFieldType, GetFields, GetModel, GetModels, LiteralExpression, MappedBuiltinType, MemberExpression, ModelDef, NonRelationFields, NullExpression, ProcedureDef, ProcedureParam, RelationFieldType, RelationFields, RelationInfo, ScalarFields, SchemaDef, ThisExpression, UnaryExpression, UnaryOperator };
165
+ export type { ArrayExpression, AttributeApplication, AttributeArg, BinaryExpression, BinaryOperator, BuiltinType, CallExpression, CascadeAction, DataSourceProvider, DataSourceProviderType, EnumDef, Expression, FieldDef, FieldExpression, FieldHasDefault, FieldIsArray, FieldIsComputed, FieldIsDelegateDiscriminator, FieldIsDelegateRelation, FieldIsRelation, FieldIsRelationArray, FieldType, ForeignKeyFields, GetDelegateModels, GetEnum, GetEnums, GetModel, GetModelDiscriminator, GetModelField, GetModelFieldType, GetModelFields, GetModels, GetSubModels, GetTypeDef, GetTypeDefField, GetTypeDefFields, GetTypeDefs, IsDelegateModel, LiteralExpression, MappedBuiltinType, MemberExpression, ModelDef, ModelFieldIsOptional, NonRelationFields, NullExpression, ProcedureDef, ProcedureParam, RelationFieldType, RelationFields, RelationInfo, ScalarFields, SchemaDef, ThisExpression, TypeDefDef, TypeDefFieldIsOptional, UnaryExpression, UnaryOperator };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zenstackhq/sdk",
3
- "version": "3.0.0-alpha.3",
3
+ "version": "3.0.0-alpha.31",
4
4
  "description": "ZenStack SDK",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -32,24 +32,22 @@
32
32
  }
33
33
  },
34
34
  "dependencies": {
35
- "langium": "~3.3.0",
36
- "tiny-invariant": "^1.3.3",
37
- "tmp": "^0.2.3",
38
- "ts-pattern": "^5.7.0",
39
- "typescript": "^5.8.3",
40
- "@zenstackhq/language": "3.0.0-alpha.3"
35
+ "langium": "3.5.0",
36
+ "ts-pattern": "^5.7.1",
37
+ "typescript": "^5.8.0",
38
+ "@zenstackhq/language": "3.0.0-alpha.31",
39
+ "@zenstackhq/common-helpers": "3.0.0-alpha.31"
41
40
  },
42
41
  "devDependencies": {
43
- "@types/node": "^20.0.0",
44
- "@types/tmp": "^0.2.6",
45
42
  "decimal.js": "^10.4.3",
46
- "kysely": "^0.27.6"
43
+ "kysely": "^0.27.6",
44
+ "@zenstackhq/typescript-config": "3.0.0-alpha.31",
45
+ "@zenstackhq/eslint-config": "3.0.0-alpha.31"
47
46
  },
48
47
  "scripts": {
49
- "build": "tsup-node",
48
+ "build": "tsc --noEmit && tsup-node",
50
49
  "watch": "tsup-node --watch",
51
50
  "lint": "eslint src --ext ts",
52
- "test": "vitest",
53
51
  "pack": "pnpm pack"
54
52
  }
55
53
  }