@redocly/client-generator 0.7.11 → 0.7.12
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/eject-assets/generators/cli/docs.ts +1 -1
- package/eject-assets/generators/cli/engine-source.ts +1 -1
- package/eject-assets/generators/cli/index.ts +2 -2
- package/eject-assets/generators/cli/render.ts +1 -1
- package/eject-assets/generators/go/client.ts +1 -1
- package/eject-assets/generators/go/descriptor.ts +1 -1
- package/eject-assets/generators/go/index.ts +2 -2
- package/eject-assets/generators/go/models.ts +7 -2
- package/eject-assets/generators/go/naming.ts +1 -1
- package/eject-assets/generators/go/operations.ts +1 -1
- package/eject-assets/generators/go/pagination.ts +1 -1
- package/eject-assets/generators/go/types.ts +1 -1
- package/eject-assets/generators/mock/faker.ts +17 -9
- package/eject-assets/generators/mock/index.ts +4 -3
- package/eject-assets/generators/mock/render.ts +128 -9
- package/eject-assets/generators/mock/sample.ts +87 -4
- package/eject-assets/generators/mock/values.ts +1 -1
- package/eject-assets/generators/php/client.ts +1 -1
- package/eject-assets/generators/php/descriptor.ts +10 -1
- package/eject-assets/generators/php/index.ts +2 -2
- package/eject-assets/generators/php/models.ts +8 -3
- package/eject-assets/generators/php/naming.ts +1 -1
- package/eject-assets/generators/php/operations.ts +11 -6
- package/eject-assets/generators/php/pagination.ts +3 -2
- package/eject-assets/generators/php/types.ts +12 -2
- package/eject-assets/generators/python/client.ts +1 -1
- package/eject-assets/generators/python/descriptor.ts +1 -1
- package/eject-assets/generators/python/index.ts +3 -3
- package/eject-assets/generators/python/models.ts +9 -3
- package/eject-assets/generators/python/naming.ts +1 -1
- package/eject-assets/generators/python/operations.ts +6 -5
- package/eject-assets/generators/python/pagination.ts +1 -1
- package/eject-assets/generators/python/types.ts +1 -1
- package/eject-assets/generators/swr/index.ts +2 -2
- package/eject-assets/generators/swr/render.ts +1 -1
- package/eject-assets/generators/tanstack-query/index.ts +2 -2
- package/eject-assets/generators/tanstack-query/render.ts +6 -5
- package/eject-assets/generators/transformers/index.ts +2 -2
- package/eject-assets/generators/transformers/render.ts +34 -7
- package/eject-assets/generators/typescript/banner.ts +1 -1
- package/eject-assets/generators/typescript/client.ts +1 -1
- package/eject-assets/generators/typescript/descriptor.ts +1 -1
- package/eject-assets/generators/typescript/index.ts +2 -2
- package/eject-assets/generators/typescript/inline-runtime.ts +1 -1
- package/eject-assets/generators/typescript/operation-signature.ts +1 -1
- package/eject-assets/generators/typescript/operation-types.ts +1 -1
- package/eject-assets/generators/typescript/operations.ts +1 -1
- package/eject-assets/generators/typescript/response-headers.ts +1 -1
- package/eject-assets/generators/typescript/type-guards.ts +1 -1
- package/eject-assets/generators/typescript/types.ts +1 -1
- package/eject-assets/generators/zod/index.ts +2 -2
- package/eject-assets/generators/zod/schemas.ts +1 -1
- package/eject-assets/skills/go-generator/SKILL.md +3 -0
- package/eject-assets/skills/mock-generator/SKILL.md +22 -0
- package/eject-assets/skills/php-generator/SKILL.md +9 -2
- package/eject-assets/skills/python-generator/SKILL.md +6 -0
- package/eject-assets/skills/tanstack-query-generator/SKILL.md +2 -1
- package/eject-assets/skills/transformers-generator/SKILL.md +4 -0
- package/eject-assets/skills/typescript-generator/SKILL.md +5 -0
- package/lib/authoring/schema.d.ts.map +1 -1
- package/lib/authoring/schema.js +4 -1
- package/lib/authoring/schema.js.map +1 -1
- package/lib/generators/go/models.d.ts.map +1 -1
- package/lib/generators/go/models.js +4 -1
- package/lib/generators/go/models.js.map +1 -1
- package/lib/generators/mock/faker.js +18 -8
- package/lib/generators/mock/faker.js.map +1 -1
- package/lib/generators/mock/index.d.ts.map +1 -1
- package/lib/generators/mock/index.js +2 -1
- package/lib/generators/mock/index.js.map +1 -1
- package/lib/generators/mock/render.d.ts +3 -1
- package/lib/generators/mock/render.d.ts.map +1 -1
- package/lib/generators/mock/render.js +119 -9
- package/lib/generators/mock/render.js.map +1 -1
- package/lib/generators/mock/sample.d.ts +18 -1
- package/lib/generators/mock/sample.d.ts.map +1 -1
- package/lib/generators/mock/sample.js +71 -2
- package/lib/generators/mock/sample.js.map +1 -1
- package/lib/generators/php/descriptor.d.ts +6 -0
- package/lib/generators/php/descriptor.d.ts.map +1 -1
- package/lib/generators/php/descriptor.js +8 -0
- package/lib/generators/php/descriptor.js.map +1 -1
- package/lib/generators/php/models.d.ts.map +1 -1
- package/lib/generators/php/models.js +5 -2
- package/lib/generators/php/models.js.map +1 -1
- package/lib/generators/php/operations.d.ts.map +1 -1
- package/lib/generators/php/operations.js +5 -5
- package/lib/generators/php/operations.js.map +1 -1
- package/lib/generators/php/pagination.d.ts.map +1 -1
- package/lib/generators/php/pagination.js +2 -1
- package/lib/generators/php/pagination.js.map +1 -1
- package/lib/generators/php/types.d.ts.map +1 -1
- package/lib/generators/php/types.js +13 -2
- package/lib/generators/php/types.js.map +1 -1
- package/lib/generators/python/index.js +1 -1
- package/lib/generators/python/index.js.map +1 -1
- package/lib/generators/python/models.d.ts.map +1 -1
- package/lib/generators/python/models.js +6 -2
- package/lib/generators/python/models.js.map +1 -1
- package/lib/generators/python/operations.d.ts.map +1 -1
- package/lib/generators/python/operations.js +5 -4
- package/lib/generators/python/operations.js.map +1 -1
- package/lib/generators/tanstack-query/render.js +5 -4
- package/lib/generators/tanstack-query/render.js.map +1 -1
- package/lib/generators/transformers/render.d.ts +1 -1
- package/lib/generators/transformers/render.d.ts.map +1 -1
- package/lib/generators/transformers/render.js +24 -5
- package/lib/generators/transformers/render.js.map +1 -1
- package/lib/generators/typescript/runtime/create-client.js +1 -1
- package/lib/generators/typescript/runtime/create-client.js.map +1 -1
- package/lib/generators/typescript/runtime/paginate.d.ts.map +1 -1
- package/lib/generators/typescript/runtime/paginate.js +5 -4
- package/lib/generators/typescript/runtime/paginate.js.map +1 -1
- package/lib/generators/typescript/runtime/send.d.ts.map +1 -1
- package/lib/generators/typescript/runtime/send.js +10 -4
- package/lib/generators/typescript/runtime/send.js.map +1 -1
- package/lib/generators/typescript/runtime/sse.d.ts.map +1 -1
- package/lib/generators/typescript/runtime/sse.js +6 -1
- package/lib/generators/typescript/runtime/sse.js.map +1 -1
- package/lib/intermediate-representation/build.d.ts.map +1 -1
- package/lib/intermediate-representation/build.js +51 -26
- package/lib/intermediate-representation/build.js.map +1 -1
- package/lib/intermediate-representation/model.d.ts +6 -2
- package/lib/intermediate-representation/model.d.ts.map +1 -1
- package/lib/intermediate-representation/model.js.map +1 -1
- package/lib/runtime-contract.d.ts +1 -1
- package/lib/runtime-contract.d.ts.map +1 -1
- package/lib/runtime-contract.js.map +1 -1
- package/lib/runtime-sources/python.d.ts +2 -2
- package/lib/runtime-sources/python.js +2 -2
- package/lib/runtime-sources/python.js.map +1 -1
- package/lib/runtime-sources/typescript.d.ts +10 -10
- package/lib/runtime-sources/typescript.js +10 -10
- package/lib/runtime-sources/typescript.js.map +1 -1
- package/package.json +2 -2
|
@@ -73,6 +73,8 @@ function extractMetadata(schema) {
|
|
|
73
73
|
out.exclusiveMaximum = s.maximum;
|
|
74
74
|
delete out.maximum;
|
|
75
75
|
}
|
|
76
|
+
if (typeof s.multipleOf === 'number')
|
|
77
|
+
out.multipleOf = s.multipleOf;
|
|
76
78
|
if (typeof s.minLength === 'number')
|
|
77
79
|
out.minLength = s.minLength;
|
|
78
80
|
if (typeof s.maxLength === 'number')
|
|
@@ -185,28 +187,36 @@ export function buildApiModel(doc) {
|
|
|
185
187
|
securitySchemes,
|
|
186
188
|
};
|
|
187
189
|
// Sanitize names into safe identifiers (and rewrite refs to match) BEFORE any later
|
|
188
|
-
// pass derives names from them — `
|
|
190
|
+
// pass derives names from them — `stripDirectional` builds `omit` targets from schema
|
|
189
191
|
// names, so it must see the sanitized ones.
|
|
190
192
|
sanitizeIdentifiers(model);
|
|
191
|
-
|
|
193
|
+
stripDirectionalProperties(services, schemas);
|
|
192
194
|
// Hard gate: no unsafe name may reach the printer (see sanitize-identifiers.ts).
|
|
193
195
|
assertSafeIdentifiers(model);
|
|
194
196
|
// A path parameter named like a request-args slot cannot be routed — fail loudly.
|
|
195
197
|
return model;
|
|
196
198
|
}
|
|
197
199
|
/**
|
|
198
|
-
* Drop
|
|
199
|
-
*
|
|
200
|
-
* body should not demand `id
|
|
201
|
-
*
|
|
202
|
-
*
|
|
200
|
+
* Drop the properties that do not travel in a direction, in place. OpenAPI says
|
|
201
|
+
* `readOnly` properties are not sent in requests and `writeOnly` properties are not
|
|
202
|
+
* returned in responses, so a create body should not demand `id` and a response should
|
|
203
|
+
* not promise `password`. A body that `$ref`s a named schema becomes
|
|
204
|
+
* `Omit<Name, …keys>` (keeping the named type); an inline object has those properties
|
|
205
|
+
* filtered out. Inline arrays, maps, and objects are walked, so a list of `Name` or an
|
|
206
|
+
* inline `{ data: Name }` wrapper is stripped too; a named schema is never walked into,
|
|
207
|
+
* because its type is shared. Only success responses are stripped: error bodies keep
|
|
208
|
+
* their schema.
|
|
203
209
|
*/
|
|
204
|
-
function
|
|
210
|
+
function stripDirectionalProperties(services, schemas) {
|
|
205
211
|
const byName = new Map(schemas.map((s) => [s.name, s.schema]));
|
|
206
212
|
for (const service of services) {
|
|
207
213
|
for (const op of service.operations) {
|
|
208
|
-
if (op.requestBody)
|
|
209
|
-
op.requestBody.schema =
|
|
214
|
+
if (op.requestBody) {
|
|
215
|
+
op.requestBody.schema = stripDirectional(op.requestBody.schema, 'readOnly', byName);
|
|
216
|
+
}
|
|
217
|
+
for (const response of op.successResponses) {
|
|
218
|
+
response.schema = stripDirectional(response.schema, 'writeOnly', byName);
|
|
219
|
+
}
|
|
210
220
|
}
|
|
211
221
|
}
|
|
212
222
|
}
|
|
@@ -219,23 +229,34 @@ function dropRedundantUnknown(members) {
|
|
|
219
229
|
const real = members.filter((m) => m.kind !== 'unknown');
|
|
220
230
|
return real.length > 0 ? real : [{ kind: 'unknown' }];
|
|
221
231
|
}
|
|
222
|
-
function
|
|
232
|
+
function stripDirectional(schema, flag, byName) {
|
|
223
233
|
if (schema.kind === 'ref') {
|
|
224
|
-
const keys =
|
|
234
|
+
const keys = collectFlaggedKeys(schema, flag, byName, new Set());
|
|
225
235
|
return keys.length > 0 ? { kind: 'omit', base: schema.name, keys } : schema;
|
|
226
236
|
}
|
|
237
|
+
if (schema.kind === 'array') {
|
|
238
|
+
return { ...schema, items: stripDirectional(schema.items, flag, byName) };
|
|
239
|
+
}
|
|
240
|
+
if (schema.kind === 'record') {
|
|
241
|
+
return { ...schema, value: stripDirectional(schema.value, flag, byName) };
|
|
242
|
+
}
|
|
227
243
|
if (schema.kind === 'object') {
|
|
228
|
-
const
|
|
229
|
-
|
|
244
|
+
const properties = schema.properties
|
|
245
|
+
.filter((property) => !property[flag])
|
|
246
|
+
.map((property) => ({
|
|
247
|
+
...property,
|
|
248
|
+
schema: stripDirectional(property.schema, flag, byName),
|
|
249
|
+
}));
|
|
250
|
+
return { ...schema, properties };
|
|
230
251
|
}
|
|
231
252
|
return schema;
|
|
232
253
|
}
|
|
233
254
|
/**
|
|
234
|
-
* The
|
|
235
|
-
* and `allOf` (intersection) members — the shape entity schemas compose with.
|
|
236
|
-
* `visited` set guards against recursive refs. Order-preserving and deduped.
|
|
255
|
+
* The top-level property names of a schema that carry `flag`, descending through
|
|
256
|
+
* `$ref`s and `allOf` (intersection) members — the shape entity schemas compose with.
|
|
257
|
+
* A `visited` set guards against recursive refs. Order-preserving and deduped.
|
|
237
258
|
*/
|
|
238
|
-
function
|
|
259
|
+
function collectFlaggedKeys(schema, flag, byName, visited) {
|
|
239
260
|
const keys = [];
|
|
240
261
|
const visit = (s) => {
|
|
241
262
|
if (s.kind === 'ref') {
|
|
@@ -248,7 +269,7 @@ function collectReadOnlyKeys(schema, byName, visited) {
|
|
|
248
269
|
}
|
|
249
270
|
else if (s.kind === 'object') {
|
|
250
271
|
for (const p of s.properties)
|
|
251
|
-
if (p
|
|
272
|
+
if (p[flag] && !keys.includes(p.name))
|
|
252
273
|
keys.push(p.name);
|
|
253
274
|
}
|
|
254
275
|
else if (s.kind === 'intersection') {
|
|
@@ -826,20 +847,24 @@ function buildProperties(schema, location, doc) {
|
|
|
826
847
|
const required = new Set(schema.required ?? []);
|
|
827
848
|
const siblingsApply = refSiblingsApply(doc);
|
|
828
849
|
return Object.entries(props).map(([name, sub]) => {
|
|
829
|
-
const
|
|
830
|
-
// A `readOnly` sibling on a 3.0 `$ref` is a no-op the author almost
|
|
831
|
-
// not intend — it leaves
|
|
832
|
-
// is reported rather than dropped in silence.
|
|
833
|
-
|
|
850
|
+
const flags = sub;
|
|
851
|
+
// A `readOnly` or `writeOnly` sibling on a 3.0 `$ref` is a no-op the author almost
|
|
852
|
+
// certainly did not intend — it leaves the property in the direction it is excluded
|
|
853
|
+
// from — so it is reported rather than dropped in silence.
|
|
854
|
+
const ignored = isRef(sub) && !siblingsApply;
|
|
855
|
+
if (ignored && flags.readOnly === true) {
|
|
834
856
|
logger.warn(`generate-client: "${name}" declares readOnly beside a $ref, which OpenAPI ${doc.openapi} ignores — the property stays in request bodies. Inline the schema, wrap the $ref in allOf, or move the description to OpenAPI 3.1.\n`);
|
|
835
857
|
}
|
|
836
|
-
|
|
858
|
+
if (ignored && flags.writeOnly === true) {
|
|
859
|
+
logger.warn(`generate-client: "${name}" declares writeOnly beside a $ref, which OpenAPI ${doc.openapi} ignores — the property stays in responses. Inline the schema, wrap the $ref in allOf, or move the description to OpenAPI 3.1.\n`);
|
|
860
|
+
}
|
|
837
861
|
return {
|
|
838
862
|
name,
|
|
839
863
|
schema: schemaFromSlot(sub, `${location}.${name}`, doc),
|
|
840
864
|
required: required.has(name),
|
|
841
865
|
description: sub.description,
|
|
842
|
-
...(readOnly ? { readOnly: true } : {}),
|
|
866
|
+
...(flags.readOnly === true && !ignored ? { readOnly: true } : {}),
|
|
867
|
+
...(flags.writeOnly === true && !ignored ? { writeOnly: true } : {}),
|
|
843
868
|
};
|
|
844
869
|
});
|
|
845
870
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/intermediate-representation/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/intermediate-representation/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export type SchemaMetadata = {
|
|
|
17
17
|
maximum?: number;
|
|
18
18
|
exclusiveMinimum?: number;
|
|
19
19
|
exclusiveMaximum?: number;
|
|
20
|
+
multipleOf?: number;
|
|
20
21
|
minLength?: number;
|
|
21
22
|
maxLength?: number;
|
|
22
23
|
pattern?: string;
|
|
@@ -110,8 +111,9 @@ export type SchemaModel = {
|
|
|
110
111
|
/**
|
|
111
112
|
* `Omit<base, "k1" | "k2">` — a named schema with some keys removed. Built only
|
|
112
113
|
* for request bodies, where `readOnly` (server-managed) properties must not be
|
|
113
|
-
* sent
|
|
114
|
-
*
|
|
114
|
+
* sent, and for success responses, where `writeOnly` properties are never
|
|
115
|
+
* returned. `base` is a named schema (an emitted type); `keys` are the property
|
|
116
|
+
* names dropped from it.
|
|
115
117
|
*/
|
|
116
118
|
| {
|
|
117
119
|
kind: 'omit';
|
|
@@ -127,6 +129,8 @@ export type PropertyModel = {
|
|
|
127
129
|
description?: string;
|
|
128
130
|
/** `readOnly: true` in the spec — server-managed; dropped from request bodies. */
|
|
129
131
|
readOnly?: boolean;
|
|
132
|
+
/** `writeOnly: true` in the spec — sent but never returned; dropped from success responses. */
|
|
133
|
+
writeOnly?: boolean;
|
|
130
134
|
};
|
|
131
135
|
export type ParamModel = {
|
|
132
136
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/intermediate-representation/model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/intermediate-representation/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/intermediate-representation/model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/intermediate-representation/model.ts"],"names":[],"mappings":"AA4RA,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAC3B,mBAAuD;IAEvD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-contract.d.ts","sourceRoot":"","sources":["../src/runtime-contract.ts"],"names":[],"mappings":"AAKA,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,aAAa,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,CAC1B,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,IAAI,SAAS,MAAM,GAAG,MAAM,EAC5B,GAAG,SAAS,MAAM,GAAG,MAAM,IACzB;IAAE,EAAE,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC;AAExC,yEAAyE;AACzE,MAAM,MAAM,cAAc,CAAC,EAAE,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,EAAE,CAAC;CACf,CAAC;AAEF,iGAAiG;AACjG,MAAM,MAAM,YAAY,CAAC,EAAE,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,WAAW,CAAC,EAAE,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjE,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,GAAG;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;
|
|
1
|
+
{"version":3,"file":"runtime-contract.d.ts","sourceRoot":"","sources":["../src/runtime-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-contract.js","sourceRoot":"","sources":["../src/runtime-contract.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,iFAAiF;AACjF,oFAAoF;AACpF,iFAAiF;
|
|
1
|
+
{"version":3,"file":"runtime-contract.js","sourceRoot":"","sources":["../src/runtime-contract.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,iFAAiF;AACjF,oFAAoF;AACpF,iFAAiF;AAsGjF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -2,8 +2,8 @@ export declare const PYTHON_RUNTIME_SOURCES: {
|
|
|
2
2
|
readonly '_errors.py': "# Runtime errors and the result-mode envelope for generated Python clients.\n# Hand-authored once, embedded into every generated client (see\n# scripts/generate-runtime-sources.mjs) — mirror of the TypeScript runtime's\n# errors.ts, kept semantically in lockstep.\nfrom __future__ import annotations\n\nfrom dataclasses import dataclass\nfrom typing import Any, Generic, Optional, TypeVar\n\nT = TypeVar(\"T\")\nE = TypeVar(\"E\")\n\n\nclass ApiError(Exception):\n \"\"\"Raised (throw mode) for a non-2xx response, carrying the decoded error body.\"\"\"\n\n def __init__(self, url: str, status: int, status_text: str, body: Any) -> None:\n super().__init__(f\"Request failed with status {status}\")\n self.url = url\n self.status = status\n self.status_text = status_text\n self.body = body\n\n\nclass ApiTimeoutError(Exception):\n \"\"\"Raised when a request attempt exceeds the configured timeout — carries the\n context a log line needs (which operation, what budget, which attempt).\"\"\"\n\n def __init__(self, operation_id: str, timeout: float, attempt: int) -> None:\n super().__init__(\n f'Request \"{operation_id}\" timed out after {timeout} s (attempt {attempt})'\n )\n self.operation_id = operation_id\n self.timeout = timeout\n self.attempt = attempt\n\n\n@dataclass\nclass Result(Generic[T, E]):\n \"\"\"Result-mode return shape: exactly one of `data`/`error` is set.\"\"\"\n\n data: Optional[T]\n error: Optional[E]\n response: Any # httpx.Response\n\n @property\n def ok(self) -> bool:\n return self.error is None\n";
|
|
3
3
|
readonly '_auth.py': "# Auth resolution for generated Python clients — mirror of the TypeScript\n# runtime's auth.ts: the first OR-alternative whose schemes are all configured\n# is applied, so \"bearer OR apiKey\" works with either credential and never\n# sends both. Cookie-borne api keys fold into a single Cookie header.\nfrom __future__ import annotations\n\nimport base64\nfrom typing import Any, Callable, Dict, List, Tuple, Union\nfrom urllib.parse import quote\n\nTokenProvider = Union[str, Callable[[], str]]\n\n\ndef _api_keys(auth: Dict[str, Any]) -> Dict[str, Any]:\n \"\"\"The apiKey credentials. `apiKey` is the documented key (it matches the scheme\n kind and the other language SDKs); `api_key` is accepted too, so a snake_case\n config keeps working.\"\"\"\n return {**(auth.get(\"api_key\") or {}), **(auth.get(\"apiKey\") or {})}\n\ndef _resolve_token(provider: TokenProvider) -> str:\n return provider() if callable(provider) else provider\n\n\ndef _is_configured(scheme: Dict[str, Any], auth: Dict[str, Any]) -> bool:\n kind = scheme[\"kind\"]\n if kind == \"apiKey\":\n return scheme[\"scheme\"] in _api_keys(auth)\n if kind == \"bearer\":\n return auth.get(\"bearer\") is not None\n return auth.get(\"basic\") is not None\n\n\ndef resolve_auth(\n security: List[List[Dict[str, Any]]], auth: Dict[str, Any]\n) -> Tuple[Dict[str, str], Dict[str, str]]:\n \"\"\"Build (headers, query) for one operation's security OR-alternatives from\n the client credentials. When no alternative is fully configured, the first\n alternative's configured schemes are still sent (the server rejects the\n request — same behavior as the TypeScript runtime).\"\"\"\n alternative = next(\n (schemes for schemes in security if all(_is_configured(s, auth) for s in schemes)),\n security[0] if security else [],\n )\n headers: Dict[str, str] = {}\n query: Dict[str, str] = {}\n cookies: List[str] = []\n for scheme in alternative:\n kind = scheme[\"kind\"]\n if kind == \"apiKey\":\n provider = _api_keys(auth).get(scheme[\"scheme\"])\n if provider is None:\n continue\n value = _resolve_token(provider)\n location = scheme.get(\"in\", \"header\")\n if location == \"header\":\n headers[scheme[\"name\"]] = value\n elif location == \"query\":\n query[scheme[\"name\"]] = value\n else:\n # Reserved characters (`;`, `=`, space) must not break Cookie syntax.\n cookies.append(f\"{scheme['name']}={quote(value, safe='')}\")\n elif kind == \"bearer\":\n provider = auth.get(\"bearer\")\n if provider is not None:\n headers[\"Authorization\"] = f\"Bearer {_resolve_token(provider)}\"\n else:\n basic = auth.get(\"basic\")\n if basic is not None:\n username, password = basic[\"username\"], basic[\"password\"]\n token = base64.b64encode(f\"{username}:{password}\".encode(\"utf-8\")).decode(\"ascii\")\n headers[\"Authorization\"] = f\"Basic {token}\"\n if cookies:\n headers[\"Cookie\"] = \"; \".join(cookies)\n return headers, query\n";
|
|
4
4
|
readonly '_url.py': "# URL assembly for generated Python clients — path-parameter substitution with\n# percent-encoding, mirroring the TypeScript runtime's url.ts semantics.\nfrom __future__ import annotations\n\nfrom typing import Any, Dict\nfrom urllib.parse import quote\n\n\ndef build_url(server_url: str, path: str, path_params: Dict[str, Any]) -> str:\n filled = path\n for name, value in path_params.items():\n filled = filled.replace(\"{\" + name + \"}\", quote(str(value), safe=\"\"))\n return server_url.rstrip(\"/\") + filled\n";
|
|
5
|
-
readonly '_decode.py': "# Reflective JSON <-> model conversion for generated Python clients. Models are\n# plain dataclasses by default, or pydantic BaseModels under `models: pydantic`;\n# one decoder serves both. For a dataclass it hydrates parsed JSON reflectively,\n# honoring each class's `_field_map` (python name -> wire name) and the typing\n# constructs the generator emits: Optional/Union, List, Dict, Enum, Literal, Any.\n# For a pydantic model it defers to pydantic, which already knows the aliases.\n# encode() mirrors whichever it was given back to wire shape.\nfrom __future__ import annotations\n\nimport dataclasses\nimport typing\nfrom datetime import date, datetime\nfrom enum import Enum\nfrom typing import Any, Dict, Tuple, get_args, get_origin, get_type_hints\n\n# Discriminated unions: resolved Union annotation -> (wire property, {value: class}).\n# The generated module registers its unions here; decode() dispatches through it\n# before falling back to trying members in order.\nDISCRIMINATORS: Dict[Any, Tuple[str, Dict[str, Any]]] = {}\n\n\ndef decode(type_: Any, data: Any):\n \"\"\"Best-effort hydration: wire data -> the annotated Python shape. Unknown or\n mismatched shapes pass through unchanged (the server is the source of truth).\"\"\"\n if data is None or type_ is Any or type_ is None:\n return data\n # `Annotated[Union[...], Field(discriminator=...)]`: pydantic reads that annotation on a\n # model's own field, so here only the union underneath matters.\n if hasattr(type_, \"__metadata__\"):\n type_ = get_args(type_)[0]\n origin = get_origin(type_)\n if origin is typing.Union:\n discriminator = DISCRIMINATORS.get(type_)\n if discriminator is not None and isinstance(data, dict):\n wire_property, mapping = discriminator\n
|
|
6
|
-
readonly '_send.py': "# The request core for generated Python clients — mirror of the TypeScript\n# runtime's send.ts: default + config + per-call headers, on_request middleware\n# BEFORE serialization (mutations are sent), the retry loop (idempotent-methods\n# default, Idempotency-Key opt-in makes POST/PATCH safe, Retry-After honored,\n# exponential backoff with full jitter, a fresh timeout budget per attempt), and\n# the reverse on_response onion.\nfrom __future__ import annotations\n\nimport asyncio\nimport random\nimport time\nimport uuid\nfrom dataclasses import dataclass\nfrom typing import Any, Dict, Generic, List, Optional, Tuple, TypeVar\n\nimport httpx\n\nfrom ._errors import ApiTimeoutError\n\nT = TypeVar(\"T\")\n\n\n@dataclass\nclass Envelope(Generic[T]):\n \"\"\"A *_with_headers() result: decoded body + coerced declared headers + raw response.\"\"\"\n\n data: T\n headers: Dict[str, Any]\n response: httpx.Response\n\n\ndef read_envelope_headers(\n response: httpx.Response, specs: List[Tuple[str, str, str]]\n) -> Dict[str, Any]:\n \"\"\"Coerce declared response headers per (name, key, type) specs; absent/unparsable omitted.\"\"\"\n headers: Dict[str, Any] = {}\n for name, key, type_ in specs:\n raw = response.headers.get(name)\n if raw is None:\n continue\n if type_ in (\"integer\", \"number\"):\n try:\n headers[key] = int(raw) if type_ == \"integer\" else float(raw)\n except ValueError:\n pass\n elif type_ == \"boolean\":\n lower = raw.strip().lower()\n if lower in (\"true\", \"false\"):\n headers[key] = lower == \"true\"\n else:\n headers[key] = raw\n return headers\n\n\n_IDEMPOTENT_METHODS = {\"GET\", \"HEAD\", \"PUT\", \"DELETE\", \"OPTIONS\"}\n_TRANSIENT_STATUS = {408, 429, 500, 502, 503, 504}\n\n\ndef _default_retry_on(method: str, headers: Dict[str, str], response: Optional[httpx.Response]) -> bool:\n safe = method.upper() in _IDEMPOTENT_METHODS or \"Idempotency-Key\" in headers\n if not safe:\n return False\n return response is None or response.status_code in _TRANSIENT_STATUS\n\n\ndef _retry_delay(retry: Dict[str, Any], attempt: int, retry_after: Optional[str]) -> float:\n if retry_after:\n try:\n return float(retry_after)\n except ValueError:\n pass # HTTP-date form: fall through to backoff\n base = float(retry.get(\"retry_delay\", 1.0))\n raw = base if retry.get(\"retry_strategy\") == \"fixed\" else base * (2 ** (attempt - 1))\n return random.uniform(0, raw) if retry.get(\"jitter\", True) is not False else raw\n\n\ndef send(\n client: httpx.Client,\n config: Dict[str, Any],\n op: Dict[str, Any],\n url: str,\n *,\n method: str,\n headers: Optional[Dict[str, str]] = None,\n params: Optional[Dict[str, Any]] = None,\n json_body: Any = None,\n content: Any = None,\n content_type: Optional[str] = None,\n data: Any = None,\n files: Any = None,\n timeout: Optional[float] = None,\n idempotency_key: Any = None,\n retry: Optional[Dict[str, Any]] = None,\n) -> httpx.Response:\n merged_retry: Dict[str, Any] = {**(config.get(\"retry\") or {}), **(retry or {})}\n effective_timeout = timeout if timeout is not None else config.get(\"timeout\")\n merged_headers: Dict[str, str] = {**(config.get(\"headers\") or {}), **(headers or {})}\n\n # One stable key per LOGICAL call — set before the retry loop so every\n # attempt re-sends the same key; a caller-provided header always wins.\n key = idempotency_key if idempotency_key is not None else config.get(\"idempotency_key\")\n if (\n key not in (None, False)\n and method.upper() in (\"POST\", \"PATCH\")\n and \"Idempotency-Key\" not in merged_headers\n ):\n merged_headers[\"Idempotency-Key\"] = (\n key if isinstance(key, str) else key() if callable(key) else str(uuid.uuid4())\n )\n # The declared content type fills the gap; a caller-provided header always wins.\n if content_type is not None and not any(name.lower() == \"content-type\" for name in merged_headers):\n merged_headers[\"Content-Type\"] = content_type\n\n context = {\n \"url\": url,\n \"method\": method.upper(),\n \"headers\": merged_headers,\n \"body\": json_body,\n \"operation\": op,\n }\n middleware: List[Any] = config.get(\"middleware\") or []\n for mw in middleware:\n on_request = getattr(mw, \"on_request\", None) or (mw.get(\"on_request\") if isinstance(mw, dict) else None)\n if on_request:\n on_request(context)\n\n # A file-like object or iterator is consumed by the first attempt and cannot be replayed, so it never retries.\n replayable = content is None or isinstance(content, (bytes, bytearray, str))\n max_attempts = 1 + int(merged_retry.get(\"retries\", 0)) if replayable else 1\n retry_on = merged_retry.get(\"retry_on\") or (\n lambda ctx: _default_retry_on(context[\"method\"], context[\"headers\"], ctx.get(\"response\"))\n )\n\n attempt = 0\n while True:\n attempt += 1\n try:\n response = client.request(\n context[\"method\"],\n context[\"url\"],\n headers=context[\"headers\"],\n params=params,\n json=context[\"body\"] if content is None and files is None and data is None else None,\n content=content,\n data=data,\n files=files,\n timeout=effective_timeout if effective_timeout is not None else httpx.USE_CLIENT_DEFAULT,\n )\n except httpx.TimeoutException:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n time.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise ApiTimeoutError(op.get(\"id\", \"?\"), float(effective_timeout or 0), attempt) from None\n except httpx.TransportError:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n time.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise\n\n for mw in reversed(middleware):\n on_response = getattr(mw, \"on_response\", None) or (mw.get(\"on_response\") if isinstance(mw, dict) else None)\n if on_response:\n replaced = on_response(response, context)\n if replaced is not None:\n response = replaced\n\n if (\n not response.is_success\n and attempt < max_attempts\n and retry_on({\"attempt\": attempt, \"response\": response})\n ):\n time.sleep(_retry_delay(merged_retry, attempt, response.headers.get(\"retry-after\")))\n continue\n return response\n\n\nasync def send_async(\n client: httpx.AsyncClient,\n config: Dict[str, Any],\n op: Dict[str, Any],\n url: str,\n *,\n method: str,\n headers: Optional[Dict[str, str]] = None,\n params: Optional[Dict[str, Any]] = None,\n json_body: Any = None,\n content: Any = None,\n content_type: Optional[str] = None,\n data: Any = None,\n files: Any = None,\n timeout: Optional[float] = None,\n idempotency_key: Any = None,\n retry: Optional[Dict[str, Any]] = None,\n) -> httpx.Response:\n \"\"\"The async mirror of send() — same retry/timeout/idempotency semantics.\"\"\"\n merged_retry: Dict[str, Any] = {**(config.get(\"retry\") or {}), **(retry or {})}\n effective_timeout = timeout if timeout is not None else config.get(\"timeout\")\n merged_headers: Dict[str, str] = {**(config.get(\"headers\") or {}), **(headers or {})}\n key = idempotency_key if idempotency_key is not None else config.get(\"idempotency_key\")\n if (\n key not in (None, False)\n and method.upper() in (\"POST\", \"PATCH\")\n and \"Idempotency-Key\" not in merged_headers\n ):\n merged_headers[\"Idempotency-Key\"] = (\n key if isinstance(key, str) else key() if callable(key) else str(uuid.uuid4())\n )\n if content_type is not None and not any(name.lower() == \"content-type\" for name in merged_headers):\n merged_headers[\"Content-Type\"] = content_type\n context = {\n \"url\": url,\n \"method\": method.upper(),\n \"headers\": merged_headers,\n \"body\": json_body,\n \"operation\": op,\n }\n middleware: List[Any] = config.get(\"middleware\") or []\n for mw in middleware:\n on_request = getattr(mw, \"on_request\", None) or (mw.get(\"on_request\") if isinstance(mw, dict) else None)\n if on_request:\n on_request(context)\n # A file-like object or iterator is consumed by the first attempt and cannot be replayed, so it never retries.\n replayable = content is None or isinstance(content, (bytes, bytearray, str))\n max_attempts = 1 + int(merged_retry.get(\"retries\", 0)) if replayable else 1\n retry_on = merged_retry.get(\"retry_on\") or (\n lambda ctx: _default_retry_on(context[\"method\"], context[\"headers\"], ctx.get(\"response\"))\n )\n attempt = 0\n while True:\n attempt += 1\n try:\n response = await client.request(\n context[\"method\"],\n context[\"url\"],\n headers=context[\"headers\"],\n params=params,\n json=context[\"body\"] if content is None and files is None and data is None else None,\n content=content,\n data=data,\n files=files,\n timeout=effective_timeout if effective_timeout is not None else httpx.USE_CLIENT_DEFAULT,\n )\n except httpx.TimeoutException:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n await asyncio.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise ApiTimeoutError(op.get(\"id\", \"?\"), float(effective_timeout or 0), attempt) from None\n except httpx.TransportError:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n await asyncio.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise\n for mw in reversed(middleware):\n on_response = getattr(mw, \"on_response\", None) or (mw.get(\"on_response\") if isinstance(mw, dict) else None)\n if on_response:\n replaced = on_response(response, context)\n if replaced is not None:\n response = replaced\n if (\n not response.is_success\n and attempt < max_attempts\n and retry_on({\"attempt\": attempt, \"response\": response})\n ):\n await asyncio.sleep(_retry_delay(merged_retry, attempt, response.headers.get(\"retry-after\")))\n continue\n return response\n";
|
|
5
|
+
readonly '_decode.py': "# Reflective JSON <-> model conversion for generated Python clients. Models are\n# plain dataclasses by default, or pydantic BaseModels under `models: pydantic`;\n# one decoder serves both. For a dataclass it hydrates parsed JSON reflectively,\n# honoring each class's `_field_map` (python name -> wire name) and the typing\n# constructs the generator emits: Optional/Union, List, Dict, Enum, Literal, Any.\n# For a pydantic model it defers to pydantic, which already knows the aliases.\n# encode() mirrors whichever it was given back to wire shape.\nfrom __future__ import annotations\n\nimport dataclasses\nimport typing\nfrom datetime import date, datetime\nfrom enum import Enum\nfrom typing import Any, Dict, Tuple, get_args, get_origin, get_type_hints\n\n# Discriminated unions: resolved Union annotation -> (wire property, {value: class}).\n# The generated module registers its unions here; decode() dispatches through it\n# before falling back to trying members in order.\nDISCRIMINATORS: Dict[Any, Tuple[str, Dict[str, Any]]] = {}\n\n\ndef decode(type_: Any, data: Any) -> Any:\n \"\"\"Best-effort hydration: wire data -> the annotated Python shape. Unknown or\n mismatched shapes pass through unchanged (the server is the source of truth).\"\"\"\n if data is None or type_ is Any or type_ is None:\n return data\n # `Annotated[Union[...], Field(discriminator=...)]`: pydantic reads that annotation on a\n # model's own field, so here only the union underneath matters.\n if hasattr(type_, \"__metadata__\"):\n type_ = get_args(type_)[0]\n origin = get_origin(type_)\n if origin is typing.Union:\n discriminator = DISCRIMINATORS.get(type_)\n if discriminator is not None and isinstance(data, dict):\n wire_property, mapping = discriminator\n value = data.get(wire_property)\n target = mapping.get(value) if isinstance(value, str) else None\n if target is not None:\n try:\n return decode(target, data)\n except (TypeError, ValueError, KeyError):\n pass\n for member in get_args(type_):\n if member is type(None):\n continue\n try:\n return decode(member, data)\n except (TypeError, ValueError, KeyError):\n continue\n return data\n if origin is list:\n (item_type,) = get_args(type_) or (Any,)\n return [decode(item_type, item) for item in data]\n if origin is dict:\n args = get_args(type_)\n value_type = args[1] if len(args) == 2 else Any\n return {key: decode(value_type, value) for key, value in data.items()}\n if origin is typing.Literal:\n return data\n if isinstance(type_, type) and issubclass(type_, Enum):\n return type_(data)\n # `dateType: Date` annotates date/date-time fields as datetime objects; a value that\n # doesn't parse passes through unchanged (the server is the source of truth).\n if type_ is datetime or type_ is date:\n if not isinstance(data, str):\n return data\n try:\n # `datetime` accepts a bare date too; `date` rejects a timestamp, so trim it.\n return (\n datetime.fromisoformat(data)\n if type_ is datetime\n else date.fromisoformat(data[:10])\n )\n except ValueError:\n return data\n # A pydantic model validates itself, aliases included. `ValidationError`\n # subclasses `ValueError`, so union member probing above still works.\n if isinstance(type_, type) and hasattr(type_, \"model_validate\"):\n return type_.model_validate(data)\n if dataclasses.is_dataclass(type_) and isinstance(type_, type):\n hints = get_type_hints(type_)\n field_map = getattr(type_, \"_field_map\", {})\n kwargs: Dict[str, Any] = {}\n for field in dataclasses.fields(type_):\n wire = field_map.get(field.name, field.name)\n if isinstance(data, dict) and wire in data:\n kwargs[field.name] = decode(hints.get(field.name, Any), data[wire])\n return type_(**kwargs)\n return data\n\n\ndef encode(value: Any) -> Any:\n \"\"\"Python shape -> wire (JSON) shape; inverse of decode for request bodies.\"\"\"\n # `mode=\"json\"` resolves datetimes and enums the same way the branches below do,\n # and `exclude_none` matches the dataclass path: an unset optional is not sent.\n if hasattr(value, \"model_dump\") and not isinstance(value, type):\n return value.model_dump(by_alias=True, exclude_none=True, mode=\"json\")\n if dataclasses.is_dataclass(value) and not isinstance(value, type):\n field_map = getattr(type(value), \"_field_map\", {})\n out = {}\n for field in dataclasses.fields(value):\n item = getattr(value, field.name)\n if item is None:\n continue\n out[field_map.get(field.name, field.name)] = encode(item)\n return out\n if isinstance(value, Enum):\n return value.value\n # A date-only value must not gain a time component on the way out.\n if isinstance(value, datetime):\n return value.isoformat()\n if isinstance(value, date):\n return value.isoformat()\n if isinstance(value, list):\n return [encode(item) for item in value]\n if isinstance(value, dict):\n return {key: encode(item) for key, item in value.items()}\n return value\n";
|
|
6
|
+
readonly '_send.py': "# The request core for generated Python clients — mirror of the TypeScript\n# runtime's send.ts: default + config + per-call headers, on_request middleware\n# BEFORE serialization (mutations are sent), the retry loop (idempotent-methods\n# default, Idempotency-Key opt-in makes POST/PATCH safe, Retry-After honored,\n# exponential backoff with full jitter, a fresh timeout budget per attempt), and\n# the reverse on_response onion.\nfrom __future__ import annotations\n\nimport asyncio\nimport random\nimport time\nimport uuid\nfrom dataclasses import dataclass\nfrom typing import Any, Dict, Generic, List, Optional, Tuple, TypeVar\n\nimport httpx\n\nfrom ._errors import ApiTimeoutError\n\n# Not `T`: the runtime modules share one generated file, where `_errors.py` defines `T`.\nTData = TypeVar(\"TData\")\n\n\n@dataclass\nclass Envelope(Generic[TData]):\n \"\"\"A *_with_headers() result: decoded body + coerced declared headers + raw response.\"\"\"\n\n data: TData\n headers: Dict[str, Any]\n response: httpx.Response\n\n\ndef read_envelope_headers(\n response: httpx.Response, specs: List[Tuple[str, str, str]]\n) -> Dict[str, Any]:\n \"\"\"Coerce declared response headers per (name, key, type) specs; absent/unparsable omitted.\"\"\"\n headers: Dict[str, Any] = {}\n for name, key, type_ in specs:\n raw = response.headers.get(name)\n if raw is None:\n continue\n if type_ in (\"integer\", \"number\"):\n try:\n headers[key] = int(raw) if type_ == \"integer\" else float(raw)\n except ValueError:\n pass\n elif type_ == \"boolean\":\n lower = raw.strip().lower()\n if lower in (\"true\", \"false\"):\n headers[key] = lower == \"true\"\n else:\n headers[key] = raw\n return headers\n\n\n_IDEMPOTENT_METHODS = {\"GET\", \"HEAD\", \"PUT\", \"DELETE\", \"OPTIONS\"}\n_TRANSIENT_STATUS = {408, 429, 500, 502, 503, 504}\n\n\ndef _default_retry_on(method: str, headers: Dict[str, str], response: Optional[httpx.Response]) -> bool:\n safe = method.upper() in _IDEMPOTENT_METHODS or \"Idempotency-Key\" in headers\n if not safe:\n return False\n return response is None or response.status_code in _TRANSIENT_STATUS\n\n\ndef _retry_delay(retry: Dict[str, Any], attempt: int, retry_after: Optional[str]) -> float:\n if retry_after:\n try:\n return float(retry_after)\n except ValueError:\n pass # HTTP-date form: fall through to backoff\n base = float(retry.get(\"retry_delay\", 1.0))\n raw = base if retry.get(\"retry_strategy\") == \"fixed\" else base * (2 ** (attempt - 1))\n return random.uniform(0, raw) if retry.get(\"jitter\", True) is not False else raw\n\n\ndef send(\n client: httpx.Client,\n config: Dict[str, Any],\n op: Dict[str, Any],\n url: str,\n *,\n method: str,\n headers: Optional[Dict[str, str]] = None,\n params: Optional[Dict[str, Any]] = None,\n json_body: Any = None,\n content: Any = None,\n content_type: Optional[str] = None,\n data: Any = None,\n files: Any = None,\n timeout: Optional[float] = None,\n idempotency_key: Any = None,\n retry: Optional[Dict[str, Any]] = None,\n) -> httpx.Response:\n merged_retry: Dict[str, Any] = {**(config.get(\"retry\") or {}), **(retry or {})}\n effective_timeout = timeout if timeout is not None else config.get(\"timeout\")\n merged_headers: Dict[str, str] = {**(config.get(\"headers\") or {}), **(headers or {})}\n\n # One stable key per LOGICAL call — set before the retry loop so every\n # attempt re-sends the same key; a caller-provided header always wins.\n key = idempotency_key if idempotency_key is not None else config.get(\"idempotency_key\")\n if (\n key not in (None, False)\n and method.upper() in (\"POST\", \"PATCH\")\n and \"Idempotency-Key\" not in merged_headers\n ):\n merged_headers[\"Idempotency-Key\"] = (\n key if isinstance(key, str) else key() if callable(key) else str(uuid.uuid4())\n )\n # The declared content type fills the gap; a caller-provided header always wins.\n if content_type is not None and not any(name.lower() == \"content-type\" for name in merged_headers):\n merged_headers[\"Content-Type\"] = content_type\n\n context = {\n \"url\": url,\n \"method\": method.upper(),\n \"headers\": merged_headers,\n \"body\": json_body,\n \"operation\": op,\n }\n middleware: List[Any] = config.get(\"middleware\") or []\n for mw in middleware:\n on_request = getattr(mw, \"on_request\", None) or (mw.get(\"on_request\") if isinstance(mw, dict) else None)\n if on_request:\n on_request(context)\n\n # A file-like object or iterator is consumed by the first attempt and cannot be replayed, so it never retries.\n replayable = content is None or isinstance(content, (bytes, bytearray, str))\n max_attempts = 1 + int(merged_retry.get(\"retries\", 0)) if replayable else 1\n retry_on = merged_retry.get(\"retry_on\") or (\n lambda ctx: _default_retry_on(context[\"method\"], context[\"headers\"], ctx.get(\"response\"))\n )\n\n attempt = 0\n while True:\n attempt += 1\n try:\n response = client.request(\n context[\"method\"],\n context[\"url\"],\n headers=context[\"headers\"],\n params=params,\n json=context[\"body\"] if content is None and files is None and data is None else None,\n content=content,\n data=data,\n files=files,\n timeout=effective_timeout if effective_timeout is not None else httpx.USE_CLIENT_DEFAULT,\n )\n except httpx.TimeoutException:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n time.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise ApiTimeoutError(op.get(\"id\", \"?\"), float(effective_timeout or 0), attempt) from None\n except httpx.TransportError:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n time.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise\n\n for mw in reversed(middleware):\n on_response = getattr(mw, \"on_response\", None) or (mw.get(\"on_response\") if isinstance(mw, dict) else None)\n if on_response:\n replaced = on_response(response, context)\n if replaced is not None:\n response = replaced\n\n if (\n not response.is_success\n and attempt < max_attempts\n and retry_on({\"attempt\": attempt, \"response\": response})\n ):\n time.sleep(_retry_delay(merged_retry, attempt, response.headers.get(\"retry-after\")))\n continue\n return response\n\n\nasync def send_async(\n client: httpx.AsyncClient,\n config: Dict[str, Any],\n op: Dict[str, Any],\n url: str,\n *,\n method: str,\n headers: Optional[Dict[str, str]] = None,\n params: Optional[Dict[str, Any]] = None,\n json_body: Any = None,\n content: Any = None,\n content_type: Optional[str] = None,\n data: Any = None,\n files: Any = None,\n timeout: Optional[float] = None,\n idempotency_key: Any = None,\n retry: Optional[Dict[str, Any]] = None,\n) -> httpx.Response:\n \"\"\"The async mirror of send() — same retry/timeout/idempotency semantics.\"\"\"\n merged_retry: Dict[str, Any] = {**(config.get(\"retry\") or {}), **(retry or {})}\n effective_timeout = timeout if timeout is not None else config.get(\"timeout\")\n merged_headers: Dict[str, str] = {**(config.get(\"headers\") or {}), **(headers or {})}\n key = idempotency_key if idempotency_key is not None else config.get(\"idempotency_key\")\n if (\n key not in (None, False)\n and method.upper() in (\"POST\", \"PATCH\")\n and \"Idempotency-Key\" not in merged_headers\n ):\n merged_headers[\"Idempotency-Key\"] = (\n key if isinstance(key, str) else key() if callable(key) else str(uuid.uuid4())\n )\n if content_type is not None and not any(name.lower() == \"content-type\" for name in merged_headers):\n merged_headers[\"Content-Type\"] = content_type\n context = {\n \"url\": url,\n \"method\": method.upper(),\n \"headers\": merged_headers,\n \"body\": json_body,\n \"operation\": op,\n }\n middleware: List[Any] = config.get(\"middleware\") or []\n for mw in middleware:\n on_request = getattr(mw, \"on_request\", None) or (mw.get(\"on_request\") if isinstance(mw, dict) else None)\n if on_request:\n on_request(context)\n # A file-like object or iterator is consumed by the first attempt and cannot be replayed, so it never retries.\n replayable = content is None or isinstance(content, (bytes, bytearray, str))\n max_attempts = 1 + int(merged_retry.get(\"retries\", 0)) if replayable else 1\n retry_on = merged_retry.get(\"retry_on\") or (\n lambda ctx: _default_retry_on(context[\"method\"], context[\"headers\"], ctx.get(\"response\"))\n )\n attempt = 0\n while True:\n attempt += 1\n try:\n response = await client.request(\n context[\"method\"],\n context[\"url\"],\n headers=context[\"headers\"],\n params=params,\n json=context[\"body\"] if content is None and files is None and data is None else None,\n content=content,\n data=data,\n files=files,\n timeout=effective_timeout if effective_timeout is not None else httpx.USE_CLIENT_DEFAULT,\n )\n except httpx.TimeoutException:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n await asyncio.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise ApiTimeoutError(op.get(\"id\", \"?\"), float(effective_timeout or 0), attempt) from None\n except httpx.TransportError:\n if attempt < max_attempts and retry_on({\"attempt\": attempt, \"response\": None}):\n await asyncio.sleep(_retry_delay(merged_retry, attempt, None))\n continue\n raise\n for mw in reversed(middleware):\n on_response = getattr(mw, \"on_response\", None) or (mw.get(\"on_response\") if isinstance(mw, dict) else None)\n if on_response:\n replaced = on_response(response, context)\n if replaced is not None:\n response = replaced\n if (\n not response.is_success\n and attempt < max_attempts\n and retry_on({\"attempt\": attempt, \"response\": response})\n ):\n await asyncio.sleep(_retry_delay(merged_retry, attempt, response.headers.get(\"retry-after\")))\n continue\n return response\n";
|
|
7
7
|
readonly '_paginate.py': "# Auto-pagination iterators for generated Python clients — the TypeScript\n# runtime's paginate.ts semantics ported: cursor (next-cursor pointer, optional\n# has-more flag, repeated-cursor guard), offset/page (advance by count/one,\n# repeated-page guard, null start treated as absent), link (RFC 8288\n# `Link: rel=\"next\"` following) and body-link (the next-link pointer's URL), both\n# with relative resolution and a loop guard.\nfrom __future__ import annotations\n\nimport re\nfrom typing import Any, AsyncIterator, Awaitable, Callable, Dict, Iterator, Optional, Tuple\nfrom urllib.parse import parse_qsl, urljoin, urlparse\n\n# call(params) -> (parsed_json, httpx.Response)\nPageCall = Callable[[Dict[str, Any]], Tuple[Any, Any]]\n\n\ndef resolve_pointer(data: Any, pointer: str) -> Any:\n \"\"\"RFC 6901 JSON pointer over parsed JSON; None on any miss.\"\"\"\n if pointer == \"\":\n return data\n if not pointer.startswith(\"/\"):\n return None\n current = data\n for token in pointer[1:].split(\"/\"):\n key = token.replace(\"~1\", \"/\").replace(\"~0\", \"~\")\n if isinstance(current, dict):\n current = current.get(key)\n elif isinstance(current, list) and key.isdigit():\n index = int(key)\n current = current[index] if index < len(current) else None\n else:\n return None\n if current is None:\n return None\n return current\n\n\ndef iter_pages(call: PageCall, spec: Dict[str, Any], params: Optional[Dict[str, Any]] = None) -> Iterator[Any]:\n \"\"\"Yield raw page JSON per the pagination spec; every page is yielded before\n the stop condition is evaluated, so the last page always arrives.\"\"\"\n style = spec[\"style\"]\n base = dict(params or {})\n if style == \"cursor\":\n cursor = base.get(spec[\"param\"])\n while True:\n page_params = dict(base)\n if cursor is not None:\n page_params[spec[\"param\"]] = cursor\n page, _response = call(page_params)\n yield page\n if spec.get(\"has_more\") is not None and resolve_pointer(page, spec[\"has_more\"]) is False:\n return\n nxt = resolve_pointer(page, spec.get(\"next_cursor\", \"\"))\n if nxt is None or nxt == \"\":\n return\n if not isinstance(nxt, (str, int, float)):\n raise ValueError(f\"Pagination cursor at {spec['next_cursor']} is not a string or number\")\n if nxt == cursor:\n raise ValueError(\"Pagination did not advance: the operation returned the same cursor twice\")\n cursor = nxt\n elif style in (\"link\", \"body-link\"):\n yield from _iter_pages_by_link(call, spec, base)\n else: # offset / page\n start = base.get(spec[\"param\"])\n fallback = 1 if style == \"page\" else 0\n try:\n position = fallback if start in (None, \"\") else int(start)\n except (TypeError, ValueError):\n position = fallback\n previous_items = None\n while True:\n page, _response = call({**base, spec[\"param\"]: position})\n items = resolve_pointer(page, spec.get(\"items\", \"\"))\n serialized = repr(items) if isinstance(items, list) else None\n if serialized is not None and serialized == previous_items:\n raise ValueError(\"Pagination did not advance: the operation returned the same page twice\")\n yield page\n if not isinstance(items, list) or len(items) == 0:\n return\n previous_items = serialized\n position += 1 if style == \"page\" else len(items)\n\n\ndef _link_next(header: Optional[str]) -> Optional[str]:\n if not header:\n return None\n for entry in re.split(r\",\\s*(?=<)\", header):\n match = re.match(r\"^\\s*<([^>]*)>(.*)$\", entry)\n if not match:\n continue\n rel = re.search(r';\\s*rel\\s*=\\s*\"?([^\";]+)\"?', match.group(2), re.IGNORECASE)\n if rel and \"next\" in rel.group(1).split():\n return match.group(1)\n return None\n\n\ndef _next_link(spec: Dict[str, Any], page: Any, response: Any) -> Optional[str]:\n \"\"\"The next page's URL: the `Link` header's rel=\"next\" target for `link`, the value at\n the `next_link` pointer for `body-link`; None when absent, null, or empty.\"\"\"\n if spec[\"style\"] == \"link\":\n return _link_next(response.headers.get(\"link\"))\n pointer = spec[\"next_link\"]\n target = resolve_pointer(page, pointer)\n if target is None or target == \"\":\n return None\n if not isinstance(target, str):\n raise ValueError(f\"Pagination link at {pointer} is not a string\")\n return target\n\n\ndef _iter_pages_by_link(call: PageCall, spec: Dict[str, Any], base: Dict[str, Any]) -> Iterator[Any]:\n params = dict(base)\n previous = None\n while True:\n page, response = call(params)\n yield page\n target = _next_link(spec, page, response)\n if target is None:\n return\n page_url = str(response.request.url) if response.request is not None else \"\"\n nxt = urljoin(page_url or \"http://relative.invalid\", target)\n if nxt in (previous, page_url):\n raise ValueError('Pagination did not advance: the Link rel=\"next\" target repeats')\n previous = nxt\n link_params: Dict[str, Any] = {}\n for key, value in parse_qsl(urlparse(nxt).query):\n if key in link_params:\n existing = link_params[key]\n link_params[key] = [*existing, value] if isinstance(existing, list) else [existing, value]\n else:\n link_params[key] = value\n params = {**base, **link_params}\n\n\ndef iter_items(call: PageCall, spec: Dict[str, Any], params: Optional[Dict[str, Any]] = None) -> Iterator[Any]:\n \"\"\"Each page's `items` pointer, flattened.\"\"\"\n for page in iter_pages(call, spec, params):\n items = resolve_pointer(page, spec.get(\"items\", \"\"))\n if isinstance(items, list):\n yield from items\n\n\n# call(params) -> awaitable of (parsed_json, httpx.Response)\nAsyncPageCall = Callable[[Dict[str, Any]], Awaitable[Tuple[Any, Any]]]\n\n\nasync def aiter_pages(\n call: AsyncPageCall, spec: Dict[str, Any], params: Optional[Dict[str, Any]] = None\n) -> AsyncIterator[Any]:\n \"\"\"Async mirror of iter_pages — same stop conditions and guards.\"\"\"\n style = spec[\"style\"]\n base = dict(params or {})\n if style == \"cursor\":\n cursor = base.get(spec[\"param\"])\n while True:\n page_params = dict(base)\n if cursor is not None:\n page_params[spec[\"param\"]] = cursor\n page, _response = await call(page_params)\n yield page\n if spec.get(\"has_more\") is not None and resolve_pointer(page, spec[\"has_more\"]) is False:\n return\n nxt = resolve_pointer(page, spec.get(\"next_cursor\", \"\"))\n if nxt is None or nxt == \"\":\n return\n if not isinstance(nxt, (str, int, float)):\n raise ValueError(f\"Pagination cursor at {spec['next_cursor']} is not a string or number\")\n if nxt == cursor:\n raise ValueError(\"Pagination did not advance: the operation returned the same cursor twice\")\n cursor = nxt\n elif style in (\"link\", \"body-link\"):\n previous = None\n link_params: Dict[str, Any] = dict(base)\n while True:\n page, response = await call(link_params)\n yield page\n target = _next_link(spec, page, response)\n if target is None:\n return\n page_url = str(response.request.url) if response.request is not None else \"\"\n nxt = urljoin(page_url or \"http://relative.invalid\", target)\n if nxt in (previous, page_url):\n raise ValueError('Pagination did not advance: the Link rel=\"next\" target repeats')\n previous = nxt\n merged: Dict[str, Any] = {}\n for key, value in parse_qsl(urlparse(nxt).query):\n if key in merged:\n existing = merged[key]\n merged[key] = [*existing, value] if isinstance(existing, list) else [existing, value]\n else:\n merged[key] = value\n link_params = {**base, **merged}\n else:\n start = base.get(spec[\"param\"])\n fallback = 1 if style == \"page\" else 0\n try:\n position = fallback if start in (None, \"\") else int(start)\n except (TypeError, ValueError):\n position = fallback\n previous_items = None\n while True:\n page, _response = await call({**base, spec[\"param\"]: position})\n items = resolve_pointer(page, spec.get(\"items\", \"\"))\n serialized = repr(items) if isinstance(items, list) else None\n if serialized is not None and serialized == previous_items:\n raise ValueError(\"Pagination did not advance: the operation returned the same page twice\")\n yield page\n if not isinstance(items, list) or len(items) == 0:\n return\n previous_items = serialized\n position += 1 if style == \"page\" else len(items)\n\n\nasync def aiter_items(\n call: AsyncPageCall, spec: Dict[str, Any], params: Optional[Dict[str, Any]] = None\n) -> AsyncIterator[Any]:\n async for page in aiter_pages(call, spec, params):\n items = resolve_pointer(page, spec.get(\"items\", \"\"))\n if isinstance(items, list):\n for item in items:\n yield item\n";
|
|
8
8
|
readonly '_sse.py': "# Server-Sent Events for generated Python clients — the TypeScript runtime's\n# sse.ts semantics ported: frame parsing per the EventSource spec (retry must be\n# ASCII digits; comment-only frames skipped; multi-line data joined with \\n) and\n# auto-reconnect resuming from the last event id via Last-Event-ID, with\n# exponential backoff capped at 30s. JSON payloads are parsed when the operation\n# declares a JSON event stream.\nfrom __future__ import annotations\n\nimport asyncio\nimport json\nimport random\nimport time\nfrom dataclasses import dataclass\nfrom typing import Any, AsyncIterator, Callable, Dict, Iterator, Optional\n\nimport httpx\n\n_FRAME_DELIMITER = \"\\n\\n\"\n\n\n@dataclass\nclass ServerSentEvent:\n data: Any\n event: Optional[str] = None\n id: Optional[str] = None\n retry: Optional[int] = None\n\n\ndef parse_sse_frame(raw: str, data_kind: str = \"text\") -> Optional[ServerSentEvent]:\n event = None\n data_lines = []\n event_id = None\n retry = None\n saw_field = False\n for line in raw.replace(\"\\r\\n\", \"\\n\").replace(\"\\r\", \"\\n\").split(\"\\n\"):\n if line == \"\" or line.startswith(\":\"):\n continue\n field, _, value = line.partition(\":\")\n if value.startswith(\" \"):\n value = value[1:]\n saw_field = True\n if field == \"event\":\n event = value\n elif field == \"data\":\n data_lines.append(value)\n elif field == \"id\":\n event_id = value\n elif field == \"retry\" and value.isdigit():\n retry = int(value)\n if not saw_field:\n return None\n text = \"\\n\".join(data_lines)\n data: Any = text\n if data_kind == \"json\" and text != \"\":\n data = json.loads(text)\n return ServerSentEvent(data=data, event=event, id=event_id, retry=retry)\n\n\ndef iter_sse(\n open_stream: Callable[[Dict[str, str]], Any],\n data_kind: str = \"text\",\n reconnect: bool = True,\n reconnect_delay: float = 1.0,\n) -> Iterator[ServerSentEvent]:\n \"\"\"Iterate an event stream. `open_stream(extra_headers)` must return an\n httpx streaming-response context manager; it is reopened on dropped\n connections with Last-Event-ID set (fresh call = fresh auth).\"\"\"\n last_event_id: Optional[str] = None\n server_retry: Optional[float] = None\n failures = 0\n while True:\n headers = {\"Accept\": \"text/event-stream\"}\n if last_event_id is not None:\n headers[\"Last-Event-ID\"] = last_event_id\n try:\n with open_stream(headers) as response:\n if response.status_code >= 400:\n response.read()\n raise httpx.HTTPStatusError(\n f\"SSE request failed with status {response.status_code}\",\n request=response.request,\n response=response,\n )\n failures = 0\n buffer = \"\"\n for chunk in response.iter_text():\n buffer += chunk\n while _FRAME_DELIMITER in buffer:\n raw, buffer = buffer.split(_FRAME_DELIMITER, 1)\n parsed = parse_sse_frame(raw, data_kind)\n if parsed is not None:\n if parsed.id is not None:\n last_event_id = parsed.id\n if parsed.retry is not None:\n server_retry = parsed.retry / 1000\n yield parsed\n # Clean end: flush a trailing frame, then finish (no reconnect).\n if buffer.strip():\n parsed = parse_sse_frame(buffer, data_kind)\n if parsed is not None:\n yield parsed\n return\n except httpx.HTTPStatusError:\n raise # a 4xx/5xx is definitive, not a dropped connection\n except (httpx.TransportError, httpx.TimeoutException):\n if not reconnect:\n raise\n failures += 1\n base = server_retry if server_retry is not None else reconnect_delay\n time.sleep(random.uniform(0, min(base * (2 ** (failures - 1)), 30.0)))\n\n\nasync def aiter_sse(\n open_stream: Callable[[Dict[str, str]], Any],\n data_kind: str = \"text\",\n reconnect: bool = True,\n reconnect_delay: float = 1.0,\n) -> AsyncIterator[ServerSentEvent]:\n \"\"\"Async mirror of iter_sse; `open_stream` returns an async context manager.\"\"\"\n last_event_id: Optional[str] = None\n server_retry: Optional[float] = None\n failures = 0\n while True:\n headers = {\"Accept\": \"text/event-stream\"}\n if last_event_id is not None:\n headers[\"Last-Event-ID\"] = last_event_id\n try:\n async with open_stream(headers) as response:\n if response.status_code >= 400:\n await response.aread()\n raise httpx.HTTPStatusError(\n f\"SSE request failed with status {response.status_code}\",\n request=response.request,\n response=response,\n )\n failures = 0\n buffer = \"\"\n async for chunk in response.aiter_text():\n buffer += chunk\n while _FRAME_DELIMITER in buffer:\n raw, buffer = buffer.split(_FRAME_DELIMITER, 1)\n parsed = parse_sse_frame(raw, data_kind)\n if parsed is not None:\n if parsed.id is not None:\n last_event_id = parsed.id\n if parsed.retry is not None:\n server_retry = parsed.retry / 1000\n yield parsed\n if buffer.strip():\n parsed = parse_sse_frame(buffer, data_kind)\n if parsed is not None:\n yield parsed\n return\n except httpx.HTTPStatusError:\n raise\n except (httpx.TransportError, httpx.TimeoutException):\n if not reconnect:\n raise\n failures += 1\n base = server_retry if server_retry is not None else reconnect_delay\n await asyncio.sleep(random.uniform(0, min(base * (2 ** (failures - 1)), 30.0)))\n";
|
|
9
9
|
readonly '_multipart.py': "# Multipart bodies for generated Python clients — a typed dict/dataclass body is\n# split into httpx's (data, files): bytes and file-like values upload as parts,\n# everything else is form data (nested values JSON-encoded, mirroring the\n# TypeScript runtime's FormData serialization). A body that is already bytes, a\n# `str`, a file-like object, or an (async) iterator of bytes passes through as httpx\n# `content=` untouched; the caller sets its Content-Type.\nfrom __future__ import annotations\n\nimport json\nfrom typing import Any, Dict, Tuple\n\nfrom ._decode import encode\n\n\ndef to_multipart(body: Any) -> Tuple[Dict[str, Any], Dict[str, Any]]:\n wire = encode(body)\n data: Dict[str, Any] = {}\n files: Dict[str, Any] = {}\n for key, value in (wire or {}).items():\n if isinstance(value, (bytes, bytearray)) or hasattr(value, \"read\"):\n files[key] = value\n elif isinstance(value, (dict, list)):\n data[key] = json.dumps(value)\n else:\n data[key] = value\n return data, files\n\n\ndef is_stream_body(body: Any) -> bool:\n return (\n isinstance(body, (bytes, bytearray, str))\n or callable(getattr(body, \"read\", None))\n or hasattr(body, \"__next__\")\n or hasattr(body, \"__aiter__\")\n )\n\n\ndef multipart_arguments(body: Any) -> Dict[str, Any]:\n if is_stream_body(body):\n return {\"content\": body}\n data, files = to_multipart(body)\n return {\"data\": data, \"files\": files}\n";
|