arkos 1.4.9-beta → 1.4.10-beta
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/cjs/app.js +14 -14
- package/dist/cjs/components/arkos-policy/index.js +38 -0
- package/dist/cjs/components/arkos-policy/index.js.map +1 -0
- package/dist/cjs/{types/arkos-prisma-input.bak.js → components/arkos-policy/types.js} +1 -1
- package/dist/cjs/components/arkos-policy/types.js.map +1 -0
- package/dist/cjs/exports/auth/index.js +1 -1
- package/dist/cjs/exports/config.js +6 -0
- package/dist/cjs/exports/config.js.map +1 -0
- package/dist/cjs/exports/controllers/index.js +2 -2
- package/dist/cjs/exports/error-handler/index.js +2 -2
- package/dist/cjs/exports/index.js +4 -4
- package/dist/cjs/exports/middlewares/index.js +1 -1
- package/dist/cjs/exports/prisma/index.js +1 -1
- package/dist/cjs/exports/services/index.js +5 -5
- package/dist/cjs/exports/utils/index.js +2 -2
- package/dist/cjs/exports/validation/index.js +2 -2
- package/dist/cjs/modules/auth/auth.controller.js +7 -7
- package/dist/cjs/modules/auth/auth.router.js +10 -10
- package/dist/cjs/modules/auth/auth.service.js +12 -12
- package/dist/cjs/modules/auth/utils/auth-error-objects.js +1 -1
- package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +2 -2
- package/dist/cjs/modules/auth/utils/services/auth-action.service.js +3 -3
- package/dist/cjs/modules/base/base.controller.js +9 -9
- package/dist/cjs/modules/base/base.middlewares.js +9 -9
- package/dist/cjs/modules/base/base.router.js +4 -4
- package/dist/cjs/modules/base/base.service.js +8 -8
- package/dist/cjs/modules/base/utils/error-prettifier.js +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +1 -1
- package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +9 -9
- package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +2 -2
- package/dist/cjs/modules/debugger/debugger.service.js +4 -4
- package/dist/cjs/modules/debugger/utils/loaded-components-logger.js +2 -2
- package/dist/cjs/modules/email/email.service.js +2 -2
- package/dist/cjs/modules/error-handler/error-handler.controller.js +2 -2
- package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +1 -1
- package/dist/cjs/modules/file-upload/file-upload.controller.js +9 -9
- package/dist/cjs/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.router.js +22 -22
- package/dist/cjs/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/cjs/modules/file-upload/file-upload.service.js +6 -6
- package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +3 -3
- package/dist/cjs/modules/swagger/swagger.router.js +8 -8
- package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js +276 -0
- package/dist/cjs/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +3 -3
- package/dist/cjs/modules/swagger/utils/helpers/get-file-upload-json-schema-paths.js +4 -4
- package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +1 -1
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +4 -4
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +2 -2
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +3 -3
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +5 -5
- package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +3 -3
- package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +2 -2
- package/dist/cjs/modules/swagger/utils/helpers/openapi-schema-converter.js +3 -3
- package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +12 -12
- package/dist/cjs/server.js +5 -5
- package/dist/cjs/types/arkos-config/utils.js +3 -0
- package/dist/cjs/types/arkos-config/utils.js.map +1 -0
- package/dist/cjs/types/arkos.js +3 -0
- package/dist/cjs/types/arkos.js.map +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/arkos-router-openapi-manager.js +1 -1
- package/dist/cjs/utils/arkos-router/index.js +9 -9
- package/dist/cjs/utils/arkos-router/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/route-config-validator.js +2 -2
- package/dist/cjs/utils/arkos-router/types/index.js.map +1 -1
- package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +152 -0
- package/dist/cjs/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/cjs/utils/arkos-router/utils/helpers/index.js +6 -6
- package/dist/cjs/utils/arkos-router/utils/helpers/upload-manager.js +8 -8
- package/dist/cjs/utils/bundler.js +163 -0
- package/dist/cjs/utils/bundler.js.map +1 -0
- package/dist/cjs/utils/cli/build.js +21 -33
- package/dist/cjs/utils/cli/build.js.map +1 -1
- package/dist/cjs/utils/cli/dev.js +6 -5
- package/dist/cjs/utils/cli/dev.js.map +1 -1
- package/dist/cjs/utils/cli/export-auth-action.js +4 -3
- package/dist/cjs/utils/cli/export-auth-action.js.map +1 -1
- package/dist/cjs/utils/cli/generate.js +8 -8
- package/dist/cjs/utils/cli/index.js +7 -7
- package/dist/cjs/utils/cli/prisma-generate.js +3 -3
- package/dist/cjs/utils/cli/remove-dir-cli.js +1 -1
- package/dist/cjs/utils/cli/start.js +5 -5
- package/dist/cjs/utils/cli/start.js.map +1 -1
- package/dist/cjs/utils/cli/utils/cli.helpers.js +3 -3
- package/dist/cjs/utils/cli/utils/runtime-cli-commander.js +5 -5
- package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/create-dto-template.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator/update-dto-template.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/class-validator-dto-generator.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/generate-multiple-components.js +3 -3
- package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js +53 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -0
- package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +1 -1
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/create-schema-template.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod/update-schema-template.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generator/templates/zod-schema-generator.js +2 -2
- package/dist/cjs/utils/cli/utils/template-generators.js +11 -11
- package/dist/cjs/utils/cli/utils/watermark-stamper.js +3 -3
- package/dist/cjs/utils/dotenv.helpers.js +2 -2
- package/dist/cjs/utils/dynamic-loader.js +8 -8
- package/dist/cjs/utils/features/api.features.js +5 -5
- package/dist/cjs/utils/features/change-case.features.js +1 -1
- package/dist/cjs/utils/features/port-and-host-allocator.js +1 -1
- package/dist/cjs/utils/helpers/api.features.helpers.js +2 -2
- package/dist/cjs/utils/helpers/arkos-config.helpers.js +3 -3
- package/dist/cjs/utils/helpers/exit-error.js +12 -0
- package/dist/cjs/utils/helpers/exit-error.js.map +1 -0
- package/dist/cjs/utils/helpers/fs.helpers.js +1 -1
- package/dist/cjs/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/cjs/utils/helpers/prisma.helpers.js +6 -6
- package/dist/cjs/utils/helpers/query-parser.helpers.js +1 -1
- package/dist/cjs/utils/helpers/routers.helpers.js +4 -4
- package/dist/cjs/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/cjs/utils/initialize-app.js +56 -0
- package/dist/cjs/utils/initialize-app.js.map +1 -0
- package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +4 -4
- package/dist/cjs/utils/prisma/prisma-schema-parser.js +2 -2
- package/dist/cjs/utils/setup-app.js +119 -0
- package/dist/cjs/utils/setup-app.js.map +1 -0
- package/dist/esm/components/arkos-policy/index.js +32 -0
- package/dist/esm/components/arkos-policy/index.js.map +1 -0
- package/dist/esm/components/arkos-policy/types.js +2 -0
- package/dist/esm/components/arkos-policy/types.js.map +1 -0
- package/dist/esm/exports/config.js +3 -0
- package/dist/esm/exports/config.js.map +1 -0
- package/dist/esm/modules/file-upload/file-upload.controller.js +2 -2
- package/dist/esm/modules/file-upload/file-upload.controller.js.map +1 -1
- package/dist/esm/modules/file-upload/file-upload.router.js +12 -12
- package/dist/esm/modules/file-upload/file-upload.router.js.map +1 -1
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js +273 -0
- package/dist/esm/modules/swagger/utils/get-open-api-login-html.js.map +1 -0
- package/dist/esm/types/arkos-config/utils.js +2 -0
- package/dist/esm/types/arkos-config/utils.js.map +1 -0
- package/dist/esm/types/arkos.js +2 -0
- package/dist/esm/types/arkos.js.map +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/types/index.js.map +1 -1
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js +146 -0
- package/dist/esm/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.js.map +1 -0
- package/dist/esm/utils/bundler.js +156 -0
- package/dist/esm/utils/bundler.js.map +1 -0
- package/dist/esm/utils/cli/build.js +15 -27
- package/dist/esm/utils/cli/build.js.map +1 -1
- package/dist/esm/utils/cli/dev.js +1 -0
- package/dist/esm/utils/cli/dev.js.map +1 -1
- package/dist/esm/utils/cli/export-auth-action.js +1 -0
- package/dist/esm/utils/cli/export-auth-action.js.map +1 -1
- package/dist/esm/utils/cli/start.js +1 -1
- package/dist/esm/utils/cli/start.js.map +1 -1
- package/dist/esm/utils/cli/utils/cli.helpers.js +1 -1
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js +47 -0
- package/dist/esm/utils/cli/utils/template-generator/templates/policy-template.js.map +1 -0
- package/dist/esm/utils/helpers/exit-error.js +6 -0
- package/dist/esm/utils/helpers/exit-error.js.map +1 -0
- package/dist/esm/utils/helpers/fs.helpers.js +1 -1
- package/dist/esm/utils/helpers/fs.helpers.js.map +1 -1
- package/dist/esm/utils/helpers/routers.helpers.js.map +1 -1
- package/dist/esm/utils/initialize-app.js +50 -0
- package/dist/esm/utils/initialize-app.js.map +1 -0
- package/dist/esm/utils/setup-app.js +113 -0
- package/dist/esm/utils/setup-app.js.map +1 -0
- package/dist/types/components/arkos-policy/index.d.ts +31 -0
- package/dist/types/components/arkos-policy/types.d.ts +21 -0
- package/dist/types/exports/config.d.ts +2 -0
- package/dist/types/modules/file-upload/file-upload.router.d.ts +1 -2
- package/dist/types/modules/swagger/utils/get-open-api-login-html.d.ts +1 -0
- package/dist/types/types/arkos-config/utils.d.ts +35 -0
- package/dist/types/types/arkos.d.ts +31 -0
- package/dist/types/types/index.d.ts +3 -5
- package/dist/types/utils/arkos-router/types/index.d.ts +20 -11
- package/dist/types/utils/arkos-router/utils/helpers/apply-arkos-router-proxy.d.ts +7 -0
- package/dist/types/utils/bundler.d.ts +152 -0
- package/dist/types/utils/cli/utils/template-generator/templates/policy-template.d.ts +2 -0
- package/dist/types/utils/helpers/exit-error.d.ts +1 -0
- package/dist/types/utils/helpers/routers.helpers.d.ts +3 -3
- package/dist/types/utils/initialize-app.d.ts +2 -0
- package/dist/types/utils/setup-app.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cjs/types/arkos-prisma-input.bak.js.map +0 -1
- package/dist/cjs/utils/cli/utils/static-types-generator.js +0 -558
- package/dist/cjs/utils/cli/utils/static-types-generator.js.map +0 -1
- package/dist/esm/types/arkos-prisma-input.bak.js +0 -2
- package/dist/esm/types/arkos-prisma-input.bak.js.map +0 -1
- package/dist/esm/utils/cli/utils/static-types-generator.js +0 -553
- package/dist/esm/utils/cli/utils/static-types-generator.js.map +0 -1
- package/dist/types/types/arkos-prisma-input.bak.d.ts +0 -237
- package/dist/types/utils/cli/utils/static-types-generator.d.ts +0 -36
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Helper type to exclude properties from T that exist in U
|
|
3
|
-
* Used internally by XOR to create mutually exclusive types
|
|
4
|
-
*/
|
|
5
|
-
type Without<T, U> = {
|
|
6
|
-
[P in Exclude<keyof T, keyof U>]?: never;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* XOR (Exclusive OR) type for mutually exclusive union types
|
|
10
|
-
* Ensures that properties from T and U cannot be mixed together
|
|
11
|
-
* @see https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types
|
|
12
|
-
*/
|
|
13
|
-
type XOR<T, U> = T extends object ? U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : U : T;
|
|
14
|
-
/**
|
|
15
|
-
* Extract type from Prisma's Enumerable wrapper
|
|
16
|
-
* Currently acts as identity but can be extended to handle array unwrapping
|
|
17
|
-
*/
|
|
18
|
-
type Unpack<T> = T;
|
|
19
|
-
/**
|
|
20
|
-
* Checks if a field is a Prisma relation field
|
|
21
|
-
* A field is considered a relation if it has any of: create, connect, connectOrCreate, update, delete, disconnect
|
|
22
|
-
* Handles optional fields by excluding undefined before checking
|
|
23
|
-
* @template T - The type to check
|
|
24
|
-
* @returns true if T is a relation field, false otherwise
|
|
25
|
-
*/
|
|
26
|
-
export type IsRelationField<T> = Exclude<T, undefined> extends {
|
|
27
|
-
create?: {
|
|
28
|
-
id?: any;
|
|
29
|
-
} | {
|
|
30
|
-
id?: any;
|
|
31
|
-
}[];
|
|
32
|
-
} | {
|
|
33
|
-
connect?: {
|
|
34
|
-
id?: any;
|
|
35
|
-
} | {
|
|
36
|
-
id?: any;
|
|
37
|
-
}[];
|
|
38
|
-
} | {
|
|
39
|
-
update?: {
|
|
40
|
-
where?: {
|
|
41
|
-
id?: any;
|
|
42
|
-
};
|
|
43
|
-
data?: any;
|
|
44
|
-
};
|
|
45
|
-
} | {
|
|
46
|
-
delete?: {
|
|
47
|
-
where?: {
|
|
48
|
-
id?: any;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
} | {
|
|
52
|
-
disconnect?: {
|
|
53
|
-
where?: {
|
|
54
|
-
id?: any;
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
} ? true : false;
|
|
58
|
-
/**
|
|
59
|
-
* Checks if a Prisma relation field is an array/many relation
|
|
60
|
-
* Detects relations that support multiple records (one-to-many or many-to-many)
|
|
61
|
-
* @template T - The relation field type
|
|
62
|
-
* @returns true if it's an array relation, false otherwise
|
|
63
|
-
*/
|
|
64
|
-
export type IsArrayRelation<T> = Exclude<T, undefined> extends {
|
|
65
|
-
createMany?: any;
|
|
66
|
-
} ? true : Exclude<T, undefined> extends {
|
|
67
|
-
deleteMany?: any;
|
|
68
|
-
} ? true : false;
|
|
69
|
-
/**
|
|
70
|
-
* Extracts the create data type from a Prisma relation field
|
|
71
|
-
* @template T - The relation field type
|
|
72
|
-
* @returns The type used in the create operation, or never if not present
|
|
73
|
-
*/
|
|
74
|
-
export type ExtractCreateType<T> = Exclude<T, undefined> extends {
|
|
75
|
-
create?: infer C;
|
|
76
|
-
} ? C extends Array<infer U> ? (U & {
|
|
77
|
-
apiAction?: "create";
|
|
78
|
-
})[] : C & {
|
|
79
|
-
apiAction?: "create";
|
|
80
|
-
} : never;
|
|
81
|
-
type ExtractConnectType<T, action extends "connect" | "delete" | "udpate" | "disconnect" | "deleteMany"> = Exclude<T, undefined> extends {
|
|
82
|
-
[k in action]?: infer C;
|
|
83
|
-
} ? C extends Array<infer U> ? (U & {
|
|
84
|
-
apiAction?: action;
|
|
85
|
-
})[] : C & {
|
|
86
|
-
apiAction?: action;
|
|
87
|
-
} : never;
|
|
88
|
-
/**
|
|
89
|
-
* Extracts and merges the update data type from a Prisma relation field
|
|
90
|
-
* Combines the 'where' clause and 'data' fields into a single type
|
|
91
|
-
* @template T - The relation field type
|
|
92
|
-
* @returns Merged type of where & data fields, or never if not present
|
|
93
|
-
*/
|
|
94
|
-
type ExtractUpdateType<T> = T extends {
|
|
95
|
-
update?: infer U;
|
|
96
|
-
} ? U extends Array<infer Item> ? Item extends {
|
|
97
|
-
where: infer W;
|
|
98
|
-
data: infer D;
|
|
99
|
-
} ? ((W & D) & {
|
|
100
|
-
apiAction?: "update";
|
|
101
|
-
})[] : never : U extends {
|
|
102
|
-
where: infer W;
|
|
103
|
-
data: infer D;
|
|
104
|
-
} ? (W & D) & {
|
|
105
|
-
apiAction?: "update";
|
|
106
|
-
} : never : never;
|
|
107
|
-
/**
|
|
108
|
-
* Creates a flattened union type for a single relation field
|
|
109
|
-
* Combines all possible Prisma operations (create, connect, update, delete, etc.) into a discriminated union
|
|
110
|
-
* Each variant includes an optional apiAction field for explicit operation specification
|
|
111
|
-
* @template T - The Prisma relation field type
|
|
112
|
-
*/
|
|
113
|
-
type FlattenRelationField<T> =
|
|
114
|
-
/**
|
|
115
|
-
* Create Operation - Creates a new related entity
|
|
116
|
-
* Extracts the 'create' data type and recursively flattens nested relations
|
|
117
|
-
* @example { name: "New Item", apiAction?: "create" }
|
|
118
|
-
*/
|
|
119
|
-
(ExtractCreateType<T> extends never ? never : FlattenRelations<ExtractCreateType<T>>)
|
|
120
|
-
/**
|
|
121
|
-
* Connect Operation - Links to an existing entity using unique fields
|
|
122
|
-
* Extracts the 'connect' data type (typically unique identifiers like id, email, etc.)
|
|
123
|
-
* @example { id: 123, apiAction?: "connect" } or { email: "user@example.com", apiAction?: "connect" }
|
|
124
|
-
*/
|
|
125
|
-
| (ExtractConnectType<T, "connect"> extends never ? never : FlattenRelations<ExtractConnectType<T, "connect">>)
|
|
126
|
-
/**
|
|
127
|
-
* Update Operation - Modifies an existing related entity
|
|
128
|
-
* Combines the 'where' clause and 'data' fields into a single flat object
|
|
129
|
-
* @example { id: 123, name: "Updated Name", apiAction?: "update" }
|
|
130
|
-
*/
|
|
131
|
-
| (ExtractUpdateType<T> extends never ? never : FlattenRelations<ExtractUpdateType<T>> & {
|
|
132
|
-
apiAction?: "update";
|
|
133
|
-
})
|
|
134
|
-
/**
|
|
135
|
-
* Delete Operation - Removes a related entity from the database
|
|
136
|
-
* Requires unique identifier(s) and explicit apiAction: "delete"
|
|
137
|
-
* For arrays, automatically uses deleteMany; for singular relations uses delete
|
|
138
|
-
* @example { id: 123, apiAction: "delete" }
|
|
139
|
-
*/
|
|
140
|
-
| (T extends {
|
|
141
|
-
delete?: any;
|
|
142
|
-
} ? {
|
|
143
|
-
apiAction: "delete";
|
|
144
|
-
} & ExtractConnectType<T, "delete"> : never)
|
|
145
|
-
/**
|
|
146
|
-
* Disconnect Operation - Breaks the relationship without deleting the entity
|
|
147
|
-
* Requires unique identifier(s) and explicit apiAction: "disconnect"
|
|
148
|
-
* Only available for optional relations
|
|
149
|
-
* @example { id: 123, apiAction: "disconnect" }
|
|
150
|
-
*/
|
|
151
|
-
| (T extends {
|
|
152
|
-
disconnect?: any;
|
|
153
|
-
} ? {
|
|
154
|
-
apiAction: "disconnect";
|
|
155
|
-
} & ExtractConnectType<T, "disconnect"> : never)
|
|
156
|
-
/**
|
|
157
|
-
* Set Operation - Replaces all related entities with a new set
|
|
158
|
-
* Typically used for many-to-many relations to completely replace the relation set
|
|
159
|
-
* @example { id: 456, apiAction?: "set" }
|
|
160
|
-
*/
|
|
161
|
-
| (T extends {
|
|
162
|
-
set?: infer S;
|
|
163
|
-
} ? Unpack<S> & {
|
|
164
|
-
apiAction?: "set";
|
|
165
|
-
} : never)
|
|
166
|
-
/**
|
|
167
|
-
* Delete Many Operation - Removes multiple related entities matching criteria
|
|
168
|
-
* Requires unique identifier(s) and explicit apiAction: "deleteMany"
|
|
169
|
-
* Used for bulk deletion of related records
|
|
170
|
-
* @example { id: 123, apiAction: "deleteMany" }
|
|
171
|
-
*/
|
|
172
|
-
| (T extends {
|
|
173
|
-
deleteMany?: any;
|
|
174
|
-
} ? {
|
|
175
|
-
apiAction: "deleteMany";
|
|
176
|
-
} & ExtractConnectType<T, "deleteMany"> : never);
|
|
177
|
-
/**
|
|
178
|
-
* Ensures array relations only accept arrays, not single objects
|
|
179
|
-
* For array relations (one-to-many, many-to-many), forces array type
|
|
180
|
-
* For singular relations (one-to-one, many-to-one), keeps XOR behavior
|
|
181
|
-
* @template T - The original Prisma field type
|
|
182
|
-
* @template Flattened - The flattened relation field type
|
|
183
|
-
*/
|
|
184
|
-
type EnforceArrayRelation<T, Flattened> = IsArrayRelation<T> extends true ? Flattened extends Array<any> ? Flattened : never : Exclude<XOR<Flattened, T>, "AND">;
|
|
185
|
-
type FlattenRelations<T> = {
|
|
186
|
-
[K in keyof T]: IsRelationField<T[K]> extends true ? EnforceArrayRelation<T[K], FlattenRelationField<T[K]>> : T[K] extends object ? T[K] extends Date | null | undefined ? T[K] : FlattenRelations<T[K]> : T[K];
|
|
187
|
-
};
|
|
188
|
-
/**
|
|
189
|
-
* Flattens Prisma relation inputs into a simpler, developer-friendly format
|
|
190
|
-
*
|
|
191
|
-
* Transforms Prisma's nested relation format:
|
|
192
|
-
* ```typescript
|
|
193
|
-
* { posts: { create: [...], connect: [...], update: [...] } }
|
|
194
|
-
* ```
|
|
195
|
-
*
|
|
196
|
-
* Into a flattened format with optional apiAction discriminators:
|
|
197
|
-
* ```typescript
|
|
198
|
-
* { posts: [
|
|
199
|
-
* { title: "New Post" }, // auto-detected as create
|
|
200
|
-
* { id: 1 }, // auto-detected as connect
|
|
201
|
-
* { id: 2, title: "Updated", apiAction: "update" }
|
|
202
|
-
* ]}
|
|
203
|
-
* ```
|
|
204
|
-
*
|
|
205
|
-
* Features:
|
|
206
|
-
* - Preserves non-relation fields as-is
|
|
207
|
-
* - Automatically detects operation type based on field presence
|
|
208
|
-
* - Supports explicit apiAction for disambiguation
|
|
209
|
-
* - Works recursively for deeply nested relations
|
|
210
|
-
* - Enforces array-only types for array relations (one-to-many, many-to-many)
|
|
211
|
-
* - Enforces mutual exclusivity between flattened and Prisma formats for singular relations
|
|
212
|
-
*
|
|
213
|
-
* @see {@link https://wwww.arkosjs.com/docs/api-reference/arkos-prisma-input}
|
|
214
|
-
* @template T - The Prisma input type (e.g., Prisma.UserCreateInput)
|
|
215
|
-
* @returns A flattened version of the input type with simplified relation handling
|
|
216
|
-
*
|
|
217
|
-
* @example
|
|
218
|
-
* ```typescript
|
|
219
|
-
* import { Prisma } from "@prisma/client";
|
|
220
|
-
*
|
|
221
|
-
* type FlatUserInput = ArkosPrismaInput<Prisma.UserCreateInput>;
|
|
222
|
-
*
|
|
223
|
-
* const user: FlatUserInput = {
|
|
224
|
-
* name: "John",
|
|
225
|
-
* email: "john@example.com",
|
|
226
|
-
* posts: [
|
|
227
|
-
* { title: "My First Post" }, // creates new post
|
|
228
|
-
* { id: 1 }, // connects to existing post
|
|
229
|
-
* { id: 2, title: "Updated" }, // updates existing post
|
|
230
|
-
* { id: 3, apiAction: "delete" } // deletes post
|
|
231
|
-
* ],
|
|
232
|
-
* profile: { bio: "Software developer" } // singular relation (can be object or array)
|
|
233
|
-
* };
|
|
234
|
-
* ```
|
|
235
|
-
*/
|
|
236
|
-
export type ArkosPrismaInput<T> = FlattenRelations<T>;
|
|
237
|
-
export {};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
declare class StaticTypesGenerator {
|
|
2
|
-
private readonly outputDir;
|
|
3
|
-
private readonly packageName;
|
|
4
|
-
constructor();
|
|
5
|
-
/**
|
|
6
|
-
* Generates all static types including Prisma types and package metadata
|
|
7
|
-
* @returns Promise<void>
|
|
8
|
-
*/
|
|
9
|
-
generate(): Promise<void>;
|
|
10
|
-
/**
|
|
11
|
-
* Executes Prisma client generation
|
|
12
|
-
*/
|
|
13
|
-
private generatePrismaClient;
|
|
14
|
-
/**
|
|
15
|
-
* Ensures the output directory exists
|
|
16
|
-
*/
|
|
17
|
-
private ensureOutputDirectory;
|
|
18
|
-
/**
|
|
19
|
-
* Generates the TypeScript declaration file content
|
|
20
|
-
*/
|
|
21
|
-
private generateDeclarationContent;
|
|
22
|
-
/**
|
|
23
|
-
* Writes the TypeScript declaration file
|
|
24
|
-
*/
|
|
25
|
-
private generateTypeDeclarations;
|
|
26
|
-
/**
|
|
27
|
-
* Generates the package.json content
|
|
28
|
-
*/
|
|
29
|
-
private generatePackageJsonContent;
|
|
30
|
-
/**
|
|
31
|
-
* Writes the package.json file
|
|
32
|
-
*/
|
|
33
|
-
private generatePackageJson;
|
|
34
|
-
}
|
|
35
|
-
declare const staticTypesGenerator: StaticTypesGenerator;
|
|
36
|
-
export default staticTypesGenerator;
|