@zmdb/web 1.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/LICENSE +674 -0
- package/README.md +49 -0
- package/dist/app/bridge.d.ts +12 -0
- package/dist/app/bridge.d.ts.map +1 -0
- package/dist/app/bridge.js +16 -0
- package/dist/app/bridge.js.map +1 -0
- package/dist/app/index.d.ts +23 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +47 -0
- package/dist/app/index.js.map +1 -0
- package/dist/bench/index.d.ts +68 -0
- package/dist/bench/index.d.ts.map +1 -0
- package/dist/bench/index.js +250 -0
- package/dist/bench/index.js.map +1 -0
- package/dist/compression/index.d.ts +13 -0
- package/dist/compression/index.d.ts.map +1 -0
- package/dist/compression/index.js +211 -0
- package/dist/compression/index.js.map +1 -0
- package/dist/context/index.d.ts +74 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +118 -0
- package/dist/context/index.js.map +1 -0
- package/dist/contract/__fixtures__/http-client.generated.d.ts +70 -0
- package/dist/contract/__fixtures__/http-client.generated.d.ts.map +1 -0
- package/dist/contract/__fixtures__/http-client.generated.js +86 -0
- package/dist/contract/__fixtures__/http-client.generated.js.map +1 -0
- package/dist/contract/__fixtures__/http-convergence.d.ts +396 -0
- package/dist/contract/__fixtures__/http-convergence.d.ts.map +1 -0
- package/dist/contract/__fixtures__/http-convergence.js +425 -0
- package/dist/contract/__fixtures__/http-convergence.js.map +1 -0
- package/dist/contract/compiler/client.d.ts +12 -0
- package/dist/contract/compiler/client.d.ts.map +1 -0
- package/dist/contract/compiler/client.js +1293 -0
- package/dist/contract/compiler/client.js.map +1 -0
- package/dist/contract/compiler/index.d.ts +18 -0
- package/dist/contract/compiler/index.d.ts.map +1 -0
- package/dist/contract/compiler/index.js +1058 -0
- package/dist/contract/compiler/index.js.map +1 -0
- package/dist/contract/index.d.ts +237 -0
- package/dist/contract/index.d.ts.map +1 -0
- package/dist/contract/index.js +22 -0
- package/dist/contract/index.js.map +1 -0
- package/dist/csrf/index.d.ts +15 -0
- package/dist/csrf/index.d.ts.map +1 -0
- package/dist/csrf/index.js +218 -0
- package/dist/csrf/index.js.map +1 -0
- package/dist/data/index.d.ts +35 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +58 -0
- package/dist/data/index.js.map +1 -0
- package/dist/devtools/index.d.ts +74 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/index.js +552 -0
- package/dist/devtools/index.js.map +1 -0
- package/dist/dto-pipes/index.d.ts +45 -0
- package/dist/dto-pipes/index.d.ts.map +1 -0
- package/dist/dto-pipes/index.js +78 -0
- package/dist/dto-pipes/index.js.map +1 -0
- package/dist/gateways/index.d.ts +31 -0
- package/dist/gateways/index.d.ts.map +1 -0
- package/dist/gateways/index.js +138 -0
- package/dist/gateways/index.js.map +1 -0
- package/dist/health/index.d.ts +20 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +148 -0
- package/dist/health/index.js.map +1 -0
- package/dist/http-token.d.ts +2 -0
- package/dist/http-token.d.ts.map +1 -0
- package/dist/http-token.js +21 -0
- package/dist/http-token.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/index.d.ts +11 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +39 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/middleware/errors.d.ts +14 -0
- package/dist/middleware/errors.d.ts.map +1 -0
- package/dist/middleware/errors.js +18 -0
- package/dist/middleware/errors.js.map +1 -0
- package/dist/middleware/index.d.ts +46 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +64 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/modules/__fixtures__/large-graph.d.ts +239 -0
- package/dist/modules/__fixtures__/large-graph.d.ts.map +1 -0
- package/dist/modules/__fixtures__/large-graph.js +483 -0
- package/dist/modules/__fixtures__/large-graph.js.map +1 -0
- package/dist/openapi/__fixtures__/entities.d.ts +8 -0
- package/dist/openapi/__fixtures__/entities.d.ts.map +1 -0
- package/dist/openapi/__fixtures__/entities.js +4 -0
- package/dist/openapi/__fixtures__/entities.js.map +1 -0
- package/dist/openapi/__fixtures__/openapi-tools.fixture.d.ts +38 -0
- package/dist/openapi/__fixtures__/openapi-tools.fixture.d.ts.map +1 -0
- package/dist/openapi/__fixtures__/openapi-tools.fixture.js +172 -0
- package/dist/openapi/__fixtures__/openapi-tools.fixture.js.map +1 -0
- package/dist/openapi/__fixtures__/route-schemas.d.ts +2 -0
- package/dist/openapi/__fixtures__/route-schemas.d.ts.map +1 -0
- package/dist/openapi/__fixtures__/route-schemas.js +17 -0
- package/dist/openapi/__fixtures__/route-schemas.js.map +1 -0
- package/dist/openapi/index.d.ts +61 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +314 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/pipeline/guards.d.ts +9 -0
- package/dist/pipeline/guards.d.ts.map +1 -0
- package/dist/pipeline/guards.js +11 -0
- package/dist/pipeline/guards.js.map +1 -0
- package/dist/pipeline/index.d.ts +141 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +1624 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/routing/index.d.ts +40 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +162 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/static/index.d.ts +14 -0
- package/dist/static/index.d.ts.map +1 -0
- package/dist/static/index.js +348 -0
- package/dist/static/index.js.map +1 -0
- package/dist/testing/index.d.ts +20 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +32 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/traced-router.d.ts +5 -0
- package/dist/traced-router.d.ts.map +1 -0
- package/dist/traced-router.js +6 -0
- package/dist/traced-router.js.map +1 -0
- package/dist/upload/index.d.ts +28 -0
- package/dist/upload/index.d.ts.map +1 -0
- package/dist/upload/index.js +410 -0
- package/dist/upload/index.js.map +1 -0
- package/dist/versioning/index.d.ts +35 -0
- package/dist/versioning/index.d.ts.map +1 -0
- package/dist/versioning/index.js +66 -0
- package/dist/versioning/index.js.map +1 -0
- package/dist/versioning/runtime.d.ts +5 -0
- package/dist/versioning/runtime.d.ts.map +1 -0
- package/dist/versioning/runtime.js +34 -0
- package/dist/versioning/runtime.js.map +1 -0
- package/package.json +143 -0
- package/src/app/bridge.ts +39 -0
- package/src/app/index.ts +76 -0
- package/src/bench/index.ts +329 -0
- package/src/compression/index.ts +255 -0
- package/src/context/index.ts +181 -0
- package/src/contract/__fixtures__/http-client.generated.ts +73 -0
- package/src/contract/__fixtures__/http-client.generated.ts.map +1 -0
- package/src/contract/__fixtures__/http-convergence.ts +564 -0
- package/src/contract/compiler/client.ts +1518 -0
- package/src/contract/compiler/index.ts +1457 -0
- package/src/contract/index.ts +266 -0
- package/src/csrf/index.ts +264 -0
- package/src/data/index.ts +65 -0
- package/src/devtools/index.ts +727 -0
- package/src/dto-pipes/index.ts +93 -0
- package/src/gateways/index.ts +180 -0
- package/src/health/index.ts +198 -0
- package/src/http-token.ts +22 -0
- package/src/index.ts +167 -0
- package/src/integrations/index.ts +50 -0
- package/src/middleware/errors.ts +17 -0
- package/src/middleware/index.ts +108 -0
- package/src/modules/__fixtures__/large-graph.ts +540 -0
- package/src/openapi/__fixtures__/entities.ts +19 -0
- package/src/openapi/__fixtures__/openapi-tools.fixture.ts +212 -0
- package/src/openapi/__fixtures__/route-schemas.ts +27 -0
- package/src/openapi/index.ts +483 -0
- package/src/pipeline/guards.ts +23 -0
- package/src/pipeline/index.ts +2041 -0
- package/src/routing/index.ts +201 -0
- package/src/static/index.ts +443 -0
- package/src/testing/index.ts +58 -0
- package/src/traced-router.ts +8 -0
- package/src/upload/index.ts +489 -0
- package/src/versioning/index.ts +106 -0
- package/src/versioning/runtime.ts +38 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// generated by @zmdb/ai/http — do not edit
|
|
2
|
+
import type { OpenApiGeneratedTool } from '@zmdb/ai/http';
|
|
3
|
+
import type { MaxLength } from '@zmdb/schema/tags';
|
|
4
|
+
import { assert } from '@zmdb/validator';
|
|
5
|
+
|
|
6
|
+
type OpenApiNoArguments = {
|
|
7
|
+
readonly __openApiNoArguments?: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type ListUsersArguments = Readonly<Record<never, never>>;
|
|
11
|
+
|
|
12
|
+
export const listUsersTool: OpenApiGeneratedTool<ListUsersArguments> = {
|
|
13
|
+
spec: {
|
|
14
|
+
name: 'list_users',
|
|
15
|
+
parameters: {
|
|
16
|
+
type: 'object',
|
|
17
|
+
properties: {},
|
|
18
|
+
required: [],
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
request: {
|
|
22
|
+
method: 'GET',
|
|
23
|
+
path: '/users',
|
|
24
|
+
pathParameters: [],
|
|
25
|
+
queryParameters: [],
|
|
26
|
+
bodyParameters: [],
|
|
27
|
+
hasBody: false,
|
|
28
|
+
},
|
|
29
|
+
validate: (input: unknown): ListUsersArguments => assert<OpenApiNoArguments>(input),
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type PostUsersArguments = {
|
|
33
|
+
readonly createdAt?: string;
|
|
34
|
+
readonly email: string & MaxLength<255>;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export const postUsersTool: OpenApiGeneratedTool<PostUsersArguments> = {
|
|
38
|
+
spec: {
|
|
39
|
+
name: 'post_users',
|
|
40
|
+
parameters: {
|
|
41
|
+
type: 'object',
|
|
42
|
+
properties: {
|
|
43
|
+
createdAt: {
|
|
44
|
+
format: 'date-time',
|
|
45
|
+
type: 'string',
|
|
46
|
+
},
|
|
47
|
+
email: {
|
|
48
|
+
maxLength: 255,
|
|
49
|
+
type: 'string',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
required: ['email'],
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
request: {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
path: '/users',
|
|
58
|
+
pathParameters: [],
|
|
59
|
+
queryParameters: [],
|
|
60
|
+
bodyParameters: ['createdAt', 'email'],
|
|
61
|
+
hasBody: true,
|
|
62
|
+
},
|
|
63
|
+
validate: (input: unknown): PostUsersArguments => assert<PostUsersArguments>(input),
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export type GetUsersHealthArguments = Readonly<Record<never, never>>;
|
|
67
|
+
|
|
68
|
+
export const getUsersHealthTool: OpenApiGeneratedTool<GetUsersHealthArguments> = {
|
|
69
|
+
spec: {
|
|
70
|
+
name: 'get_users_health',
|
|
71
|
+
parameters: {
|
|
72
|
+
type: 'object',
|
|
73
|
+
properties: {},
|
|
74
|
+
required: [],
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
request: {
|
|
78
|
+
method: 'GET',
|
|
79
|
+
path: '/users/health',
|
|
80
|
+
pathParameters: [],
|
|
81
|
+
queryParameters: [],
|
|
82
|
+
bodyParameters: [],
|
|
83
|
+
hasBody: false,
|
|
84
|
+
},
|
|
85
|
+
validate: (input: unknown): GetUsersHealthArguments => assert<OpenApiNoArguments>(input),
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export type DeleteUsersIdArguments = {
|
|
89
|
+
readonly id: string;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const deleteUsersIdTool: OpenApiGeneratedTool<DeleteUsersIdArguments> = {
|
|
93
|
+
spec: {
|
|
94
|
+
name: 'delete_users_id',
|
|
95
|
+
parameters: {
|
|
96
|
+
type: 'object',
|
|
97
|
+
properties: {
|
|
98
|
+
id: {
|
|
99
|
+
type: 'string',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
required: ['id'],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
request: {
|
|
106
|
+
method: 'DELETE',
|
|
107
|
+
path: '/users/{id}',
|
|
108
|
+
pathParameters: ['id'],
|
|
109
|
+
queryParameters: [],
|
|
110
|
+
bodyParameters: [],
|
|
111
|
+
hasBody: false,
|
|
112
|
+
},
|
|
113
|
+
validate: (input: unknown): DeleteUsersIdArguments => assert<DeleteUsersIdArguments>(input),
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export type GetUsersIdArguments = {
|
|
117
|
+
readonly id: string;
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export const getUsersIdTool: OpenApiGeneratedTool<GetUsersIdArguments> = {
|
|
121
|
+
spec: {
|
|
122
|
+
name: 'get_users_id',
|
|
123
|
+
parameters: {
|
|
124
|
+
type: 'object',
|
|
125
|
+
properties: {
|
|
126
|
+
id: {
|
|
127
|
+
type: 'string',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
required: ['id'],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
request: {
|
|
134
|
+
method: 'GET',
|
|
135
|
+
path: '/users/{id}',
|
|
136
|
+
pathParameters: ['id'],
|
|
137
|
+
queryParameters: [],
|
|
138
|
+
bodyParameters: [],
|
|
139
|
+
hasBody: false,
|
|
140
|
+
},
|
|
141
|
+
validate: (input: unknown): GetUsersIdArguments => assert<GetUsersIdArguments>(input),
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export type PostUsersIdRolesArguments = {
|
|
145
|
+
readonly id: string;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
export const postUsersIdRolesTool: OpenApiGeneratedTool<PostUsersIdRolesArguments> = {
|
|
149
|
+
spec: {
|
|
150
|
+
name: 'post_users_id_roles',
|
|
151
|
+
parameters: {
|
|
152
|
+
type: 'object',
|
|
153
|
+
properties: {
|
|
154
|
+
id: {
|
|
155
|
+
type: 'string',
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
required: ['id'],
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
request: {
|
|
162
|
+
method: 'POST',
|
|
163
|
+
path: '/users/{id}/roles',
|
|
164
|
+
pathParameters: ['id'],
|
|
165
|
+
queryParameters: [],
|
|
166
|
+
bodyParameters: [],
|
|
167
|
+
hasBody: false,
|
|
168
|
+
},
|
|
169
|
+
validate: (input: unknown): PostUsersIdRolesArguments => assert<PostUsersIdRolesArguments>(input),
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export type PutUsersIdRolesRoleIdArguments = {
|
|
173
|
+
readonly id: string;
|
|
174
|
+
readonly roleId: string;
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export const putUsersIdRolesRoleIdTool: OpenApiGeneratedTool<PutUsersIdRolesRoleIdArguments> = {
|
|
178
|
+
spec: {
|
|
179
|
+
name: 'put_users_id_roles_roleId',
|
|
180
|
+
parameters: {
|
|
181
|
+
type: 'object',
|
|
182
|
+
properties: {
|
|
183
|
+
id: {
|
|
184
|
+
type: 'string',
|
|
185
|
+
},
|
|
186
|
+
roleId: {
|
|
187
|
+
type: 'string',
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
required: ['id', 'roleId'],
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
request: {
|
|
194
|
+
method: 'PUT',
|
|
195
|
+
path: '/users/{id}/roles/{roleId}',
|
|
196
|
+
pathParameters: ['id', 'roleId'],
|
|
197
|
+
queryParameters: [],
|
|
198
|
+
bodyParameters: [],
|
|
199
|
+
hasBody: false,
|
|
200
|
+
},
|
|
201
|
+
validate: (input: unknown): PutUsersIdRolesRoleIdArguments => assert<PutUsersIdRolesRoleIdArguments>(input),
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export const openApiTools = {
|
|
205
|
+
list_users: listUsersTool,
|
|
206
|
+
post_users: postUsersTool,
|
|
207
|
+
get_users_health: getUsersHealthTool,
|
|
208
|
+
delete_users_id: deleteUsersIdTool,
|
|
209
|
+
get_users_id: getUsersIdTool,
|
|
210
|
+
post_users_id_roles: postUsersIdRolesTool,
|
|
211
|
+
put_users_id_roles_roleId: putUsersIdRolesRoleIdTool,
|
|
212
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// One operation's request and response documents, asked for by type.
|
|
2
|
+
//
|
|
3
|
+
// `generated-schemas.spec.ts` runs the build transform over this file and puts the
|
|
4
|
+
// resulting documents into one method-specific HttpContractIR operation. The OpenAPI
|
|
5
|
+
// renderer receives only that IR; it never sees this declaration or reflects the types.
|
|
6
|
+
//
|
|
7
|
+
// `documents` is declared rather than defined so assignability is checked while the
|
|
8
|
+
// emitted values stay available to the spec, which supplies the function at evaluation.
|
|
9
|
+
|
|
10
|
+
import { type CreateDTO, type ReadDTO } from '@zmdb/schema/derive';
|
|
11
|
+
import { toJsonSchema, type JsonSchemaObject } from '@zmdb/schema/openapi';
|
|
12
|
+
|
|
13
|
+
import type { User } from './entities.js';
|
|
14
|
+
|
|
15
|
+
interface GeneratedDocuments {
|
|
16
|
+
readonly body: JsonSchemaObject;
|
|
17
|
+
readonly response: JsonSchemaObject;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
declare function documents(value: GeneratedDocuments): void;
|
|
21
|
+
|
|
22
|
+
documents({
|
|
23
|
+
// The create body: no `id`, because the database makes it, and `createdAt` optional,
|
|
24
|
+
// because it has a default. Both facts come from the type.
|
|
25
|
+
body: toJsonSchema<CreateDTO<User>>(),
|
|
26
|
+
response: toJsonSchema<ReadDTO<User>>(),
|
|
27
|
+
});
|