@zenstackhq/sdk 3.0.0-alpha.9 → 3.0.0-beta.10

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,22 @@ 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[];
70
+ isView?: boolean;
65
71
  };
66
72
  type AttributeApplication = {
67
73
  name: string;
@@ -81,6 +87,7 @@ type RelationInfo = {
81
87
  onUpdate?: CascadeAction;
82
88
  };
83
89
  type FieldDef = {
90
+ name: string;
84
91
  type: string;
85
92
  id?: boolean;
86
93
  array?: boolean;
@@ -92,6 +99,8 @@ type FieldDef = {
92
99
  relation?: RelationInfo;
93
100
  foreignKeyFor?: string[];
94
101
  computed?: boolean;
102
+ originModel?: string;
103
+ isDiscriminator?: boolean;
95
104
  };
96
105
  type ProcedureParam = {
97
106
  name: string;
@@ -106,32 +115,52 @@ type ProcedureDef = {
106
115
  type BuiltinType = 'String' | 'Boolean' | 'Int' | 'Float' | 'BigInt' | 'Decimal' | 'DateTime' | 'Bytes' | 'Json' | 'Unsupported';
107
116
  type MappedBuiltinType = string | boolean | number | bigint | Decimal | Date;
108
117
  type EnumDef = Record<string, string>;
118
+ type TypeDefDef = {
119
+ name: string;
120
+ fields: Record<string, FieldDef>;
121
+ attributes?: AttributeApplication[];
122
+ };
109
123
  type GetModels<Schema extends SchemaDef> = Extract<keyof Schema['models'], string>;
124
+ type GetDelegateModels<Schema extends SchemaDef> = keyof {
125
+ [Key in GetModels<Schema> as Schema['models'][Key]['isDelegate'] extends true ? Key : never]: true;
126
+ };
127
+ 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
128
  type GetModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model];
111
129
  type GetEnums<Schema extends SchemaDef> = keyof Schema['enums'];
112
130
  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'];
131
+ type GetTypeDefs<Schema extends SchemaDef> = Extract<keyof Schema['typeDefs'], string>;
132
+ type GetTypeDef<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Schema['typeDefs'] extends Record<string, unknown> ? Schema['typeDefs'][TypeDef] : never;
133
+ type GetModelFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = Extract<keyof GetModel<Schema, Model>['fields'], string>;
134
+ type GetModelField<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModel<Schema, Model>['fields'][Field];
135
+ type GetModelDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
136
+ [Key in GetModelFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? GetModelField<Schema, Model, Key>['originModel'] extends string ? never : Key : never]: true;
137
+ };
138
+ type GetModelFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = Schema['models'][Model]['fields'][Field]['type'];
139
+ type GetTypeDefFields<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Extract<keyof GetTypeDef<Schema, TypeDef>['fields'], string>;
140
+ type GetTypeDefField<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDef<Schema, TypeDef>['fields'][Field];
116
141
  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;
142
+ [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
143
  };
119
144
  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;
145
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? Key : never]: Key;
121
146
  };
122
147
  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;
148
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? never : Key]: Key;
124
149
  };
125
150
  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;
151
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? Key : never]: Key;
152
+ };
153
+ type FieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['type'];
154
+ 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;
155
+ type ModelFieldIsOptional<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['optional'] extends true ? true : false;
156
+ type TypeDefFieldIsOptional<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDefField<Schema, TypeDef, Field>['optional'] extends true ? true : false;
157
+ type FieldIsRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['relation'] extends object ? true : false;
158
+ type FieldIsArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['array'] extends true ? true : false;
159
+ type FieldIsComputed<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['computed'] extends true ? true : false;
160
+ 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;
161
+ 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;
162
+ type IsDelegateModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model]['isDelegate'] extends true ? true : false;
163
+ 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;
164
+ type FieldIsDelegateDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['isDiscriminator'] extends true ? true : false;
136
165
 
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 };
166
+ 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,22 @@ 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[];
70
+ isView?: boolean;
65
71
  };
66
72
  type AttributeApplication = {
67
73
  name: string;
@@ -81,6 +87,7 @@ type RelationInfo = {
81
87
  onUpdate?: CascadeAction;
82
88
  };
83
89
  type FieldDef = {
90
+ name: string;
84
91
  type: string;
85
92
  id?: boolean;
86
93
  array?: boolean;
@@ -92,6 +99,8 @@ type FieldDef = {
92
99
  relation?: RelationInfo;
93
100
  foreignKeyFor?: string[];
94
101
  computed?: boolean;
102
+ originModel?: string;
103
+ isDiscriminator?: boolean;
95
104
  };
96
105
  type ProcedureParam = {
97
106
  name: string;
@@ -106,32 +115,52 @@ type ProcedureDef = {
106
115
  type BuiltinType = 'String' | 'Boolean' | 'Int' | 'Float' | 'BigInt' | 'Decimal' | 'DateTime' | 'Bytes' | 'Json' | 'Unsupported';
107
116
  type MappedBuiltinType = string | boolean | number | bigint | Decimal | Date;
108
117
  type EnumDef = Record<string, string>;
118
+ type TypeDefDef = {
119
+ name: string;
120
+ fields: Record<string, FieldDef>;
121
+ attributes?: AttributeApplication[];
122
+ };
109
123
  type GetModels<Schema extends SchemaDef> = Extract<keyof Schema['models'], string>;
124
+ type GetDelegateModels<Schema extends SchemaDef> = keyof {
125
+ [Key in GetModels<Schema> as Schema['models'][Key]['isDelegate'] extends true ? Key : never]: true;
126
+ };
127
+ 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
128
  type GetModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model];
111
129
  type GetEnums<Schema extends SchemaDef> = keyof Schema['enums'];
112
130
  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'];
131
+ type GetTypeDefs<Schema extends SchemaDef> = Extract<keyof Schema['typeDefs'], string>;
132
+ type GetTypeDef<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Schema['typeDefs'] extends Record<string, unknown> ? Schema['typeDefs'][TypeDef] : never;
133
+ type GetModelFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = Extract<keyof GetModel<Schema, Model>['fields'], string>;
134
+ type GetModelField<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModel<Schema, Model>['fields'][Field];
135
+ type GetModelDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
136
+ [Key in GetModelFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? GetModelField<Schema, Model, Key>['originModel'] extends string ? never : Key : never]: true;
137
+ };
138
+ type GetModelFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = Schema['models'][Model]['fields'][Field]['type'];
139
+ type GetTypeDefFields<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Extract<keyof GetTypeDef<Schema, TypeDef>['fields'], string>;
140
+ type GetTypeDefField<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDef<Schema, TypeDef>['fields'][Field];
116
141
  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;
142
+ [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
143
  };
119
144
  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;
145
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['foreignKeyFor'] extends string[] ? Key : never]: Key;
121
146
  };
122
147
  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;
148
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? never : Key]: Key;
124
149
  };
125
150
  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;
151
+ [Key in GetModelFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends object ? Key : never]: Key;
152
+ };
153
+ type FieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['type'];
154
+ 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;
155
+ type ModelFieldIsOptional<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['optional'] extends true ? true : false;
156
+ type TypeDefFieldIsOptional<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = GetTypeDefField<Schema, TypeDef, Field>['optional'] extends true ? true : false;
157
+ type FieldIsRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['relation'] extends object ? true : false;
158
+ type FieldIsArray<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['array'] extends true ? true : false;
159
+ type FieldIsComputed<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['computed'] extends true ? true : false;
160
+ 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;
161
+ 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;
162
+ type IsDelegateModel<Schema extends SchemaDef, Model extends GetModels<Schema>> = Schema['models'][Model]['isDelegate'] extends true ? true : false;
163
+ 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;
164
+ type FieldIsDelegateDiscriminator<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['isDiscriminator'] extends true ? true : false;
136
165
 
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 };
166
+ 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.9",
3
+ "version": "3.0.0-beta.10",
4
4
  "description": "ZenStack SDK",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -34,18 +34,18 @@
34
34
  "dependencies": {
35
35
  "langium": "3.5.0",
36
36
  "ts-pattern": "^5.7.1",
37
- "typescript": "^5.0.0",
38
- "@zenstackhq/language": "3.0.0-alpha.9",
39
- "@zenstackhq/common-helpers": "3.0.0-alpha.9"
37
+ "typescript": "^5.8.0",
38
+ "@zenstackhq/language": "3.0.0-beta.10",
39
+ "@zenstackhq/common-helpers": "3.0.0-beta.10"
40
40
  },
41
41
  "devDependencies": {
42
42
  "decimal.js": "^10.4.3",
43
43
  "kysely": "^0.27.6",
44
- "@zenstackhq/typescript-config": "3.0.0-alpha.9",
45
- "@zenstackhq/eslint-config": "3.0.0-alpha.9"
44
+ "@zenstackhq/eslint-config": "3.0.0-beta.10",
45
+ "@zenstackhq/typescript-config": "3.0.0-beta.10"
46
46
  },
47
47
  "scripts": {
48
- "build": "tsup-node",
48
+ "build": "tsc --noEmit && tsup-node",
49
49
  "watch": "tsup-node --watch",
50
50
  "lint": "eslint src --ext ts",
51
51
  "pack": "pnpm pack"