@haddowg/json-api-codegen 1.11.0 → 1.12.0

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/cli.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { r as CodegenConfig } from "./index-BLBSnK8y.mjs";
1
+ import { r as CodegenConfig } from "./index-Ch2PJH9Y.mjs";
2
2
 
3
3
  //#region src/cli.d.ts
4
4
  declare const USAGE = "Usage: json-api-codegen --input <url|file> --output <file> [--server <name>] [--schemas <url|file>] [--examples] [--check]";
package/dist/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as generateFiles, t as check } from "./src-D29xU79S.mjs";
2
+ import { i as generateFiles, t as check } from "./src-D4apiVHe.mjs";
3
3
  import { realpathSync } from "node:fs";
4
4
  import { fileURLToPath } from "node:url";
5
5
  //#region src/cli.ts
@@ -330,7 +330,7 @@ declare function buildExamples(doc: OpenApiDocument, descriptor: ApiDescriptor):
330
330
  /** Below this the document predates the structures this codegen reads. */
331
331
  declare const MINIMUM_CONTRACT = 1;
332
332
  /** Above this the document carries structures this codegen does not read. */
333
- declare const MAXIMUM_CONTRACT = 16;
333
+ declare const MAXIMUM_CONTRACT = 17;
334
334
  /**
335
335
  * Check the document's `info.x-generator.contract` against the range this codegen reads. A
336
336
  * document older than the range throws; a newer one returns a warning, because its new
@@ -718,4 +718,4 @@ declare function generateFiles(config: CodegenConfig): Promise<string[]>;
718
718
  declare function check(config: CodegenConfig): Promise<CheckResult>;
719
719
  //#endregion
720
720
  export { operationExamples as A, PathItemObject as B, VerbCollision as C, MINIMUM_CONTRACT as D, MAXIMUM_CONTRACT as E, InfoObject as F, SecurityRequirement as G, ResponseObject as H, MediaTypeObject as I, SecuritySchemeObject as K, OpenApiDocument as L, buildAtomic as M, buildDescriptor as N, checkContract as O, HttpMethod as P, OperationObject as R, Emitter as S, emit as T, SchemaObject as U, RequestBodyObject as V, SchemaOrBool as W, emitExamples as _, examplesOutputPath as a, emitErrorCodes as b, schemasOutputPath as c, hashJson as d, provenanceLines as f, readSchemas as g, readDocument as h, check as i, DescriptorBuilder as j, buildExamples as k, Provenance as l, SchemaBundle as m, CheckResult as n, generate as o, emitSchemas as p, CodegenConfig as r, generateFiles as s, ArtifactDrift as t, deriveProvenance as u, DocumentedErrorCode as v, detectVerbCollisions as w, readErrorCatalogue as x, ErrorCatalogue as y, ParameterObject as z };
721
- //# sourceMappingURL=index-BLBSnK8y.d.mts.map
721
+ //# sourceMappingURL=index-Ch2PJH9Y.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BLBSnK8y.d.mts","names":[],"sources":["../src/openapi.ts","../src/build-descriptor.ts","../src/build-examples.ts","../src/contract.ts","../src/emit.ts","../src/error-codes.ts","../src/emit-examples.ts","../src/reader.ts","../src/emit-schemas.ts","../src/provenance.ts","../src/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index-Ch2PJH9Y.d.mts","names":[],"sources":["../src/openapi.ts","../src/build-descriptor.ts","../src/build-examples.ts","../src/contract.ts","../src/emit.ts","../src/error-codes.ts","../src/emit-examples.ts","../src/reader.ts","../src/emit-schemas.ts","../src/provenance.ts","../src/index.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { A as operationExamples, B as PathItemObject, C as VerbCollision, D as MINIMUM_CONTRACT, E as MAXIMUM_CONTRACT, F as InfoObject, G as SecurityRequirement, H as ResponseObject, I as MediaTypeObject, K as SecuritySchemeObject, L as OpenApiDocument, M as buildAtomic, N as buildDescriptor, O as checkContract, P as HttpMethod, R as OperationObject, S as Emitter, T as emit, U as SchemaObject, V as RequestBodyObject, W as SchemaOrBool, _ as emitExamples, a as examplesOutputPath, b as emitErrorCodes, c as schemasOutputPath, d as hashJson, f as provenanceLines, g as readSchemas, h as readDocument, i as check, j as DescriptorBuilder, k as buildExamples, l as Provenance, m as SchemaBundle, n as CheckResult, o as generate, p as emitSchemas, r as CodegenConfig, s as generateFiles, t as ArtifactDrift, u as deriveProvenance, v as DocumentedErrorCode, w as detectVerbCollisions, x as readErrorCatalogue, y as ErrorCatalogue, z as ParameterObject } from "./index-BLBSnK8y.mjs";
1
+ import { A as operationExamples, B as PathItemObject, C as VerbCollision, D as MINIMUM_CONTRACT, E as MAXIMUM_CONTRACT, F as InfoObject, G as SecurityRequirement, H as ResponseObject, I as MediaTypeObject, K as SecuritySchemeObject, L as OpenApiDocument, M as buildAtomic, N as buildDescriptor, O as checkContract, P as HttpMethod, R as OperationObject, S as Emitter, T as emit, U as SchemaObject, V as RequestBodyObject, W as SchemaOrBool, _ as emitExamples, a as examplesOutputPath, b as emitErrorCodes, c as schemasOutputPath, d as hashJson, f as provenanceLines, g as readSchemas, h as readDocument, i as check, j as DescriptorBuilder, k as buildExamples, l as Provenance, m as SchemaBundle, n as CheckResult, o as generate, p as emitSchemas, r as CodegenConfig, s as generateFiles, t as ArtifactDrift, u as deriveProvenance, v as DocumentedErrorCode, w as detectVerbCollisions, x as readErrorCatalogue, y as ErrorCatalogue, z as ParameterObject } from "./index-Ch2PJH9Y.mjs";
2
2
  export { ArtifactDrift, CheckResult, CodegenConfig, DescriptorBuilder, type DocumentedErrorCode, Emitter, type ErrorCatalogue, type HttpMethod, type InfoObject, MAXIMUM_CONTRACT, MINIMUM_CONTRACT, type MediaTypeObject, type OpenApiDocument, type OperationObject, type ParameterObject, type PathItemObject, type Provenance, type RequestBodyObject, type ResponseObject, type SchemaBundle, type SchemaObject, type SchemaOrBool, type SecurityRequirement, type SecuritySchemeObject, type VerbCollision, buildAtomic, buildDescriptor, buildExamples, check, checkContract, deriveProvenance, detectVerbCollisions, emit, emitErrorCodes, emitExamples, emitSchemas, examplesOutputPath, generate, generateFiles, hashJson, operationExamples, provenanceLines, readDocument, readErrorCatalogue, readSchemas, schemasOutputPath };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { C as DescriptorBuilder, S as operationExamples, T as buildDescriptor, _ as readErrorCatalogue, a as schemasOutputPath, b as checkContract, c as emitSchemas, d as detectVerbCollisions, f as emit, g as emitErrorCodes, h as provenanceLines, i as generateFiles, l as emitExamples, m as hashJson, n as examplesOutputPath, o as readDocument, p as deriveProvenance, r as generate, s as readSchemas, t as check, u as Emitter, v as MAXIMUM_CONTRACT, w as buildAtomic, x as buildExamples, y as MINIMUM_CONTRACT } from "./src-D29xU79S.mjs";
1
+ import { C as DescriptorBuilder, S as operationExamples, T as buildDescriptor, _ as readErrorCatalogue, a as schemasOutputPath, b as checkContract, c as emitSchemas, d as detectVerbCollisions, f as emit, g as emitErrorCodes, h as provenanceLines, i as generateFiles, l as emitExamples, m as hashJson, n as examplesOutputPath, o as readDocument, p as deriveProvenance, r as generate, s as readSchemas, t as check, u as Emitter, v as MAXIMUM_CONTRACT, w as buildAtomic, x as buildExamples, y as MINIMUM_CONTRACT } from "./src-D4apiVHe.mjs";
2
2
  export { DescriptorBuilder, Emitter, MAXIMUM_CONTRACT, MINIMUM_CONTRACT, buildAtomic, buildDescriptor, buildExamples, check, checkContract, deriveProvenance, detectVerbCollisions, emit, emitErrorCodes, emitExamples, emitSchemas, examplesOutputPath, generate, generateFiles, hashJson, operationExamples, provenanceLines, readDocument, readErrorCatalogue, readSchemas, schemasOutputPath };
@@ -452,6 +452,9 @@ var DescriptorBuilder = class {
452
452
  }
453
453
  const scopes = this.scopes(op);
454
454
  if (scopes !== void 0) action.scopes = scopes;
455
+ const okSchema = okJsonApiSchema(op);
456
+ const mediaType = okSchema === void 0 ? void 0 : locationMediaType(okSchema);
457
+ if (mediaType !== void 0) action.location = { mediaType };
455
458
  return action;
456
459
  }
457
460
  /**
@@ -533,7 +536,8 @@ var DescriptorBuilder = class {
533
536
  firstOkJsonApiRef(op) {
534
537
  for (const [code, response] of Object.entries(op.responses ?? {})) {
535
538
  if (!code.startsWith("2")) continue;
536
- const ref = response.content?.[JSON_API_MEDIA_TYPE$1]?.schema?.$ref;
539
+ const schema = response.content?.[JSON_API_MEDIA_TYPE$1]?.schema;
540
+ const ref = schema === void 0 ? void 0 : documentArms(schema)[0]?.$ref;
537
541
  if (typeof ref === "string") return ref;
538
542
  }
539
543
  }
@@ -976,13 +980,47 @@ function rawContentType(op) {
976
980
  * (only a `204`).
977
981
  */
978
982
  function actionOutput(op) {
983
+ const schema = okJsonApiSchema(op);
984
+ if (schema === void 0) return "none";
985
+ const arm = documentArms(schema)[0];
986
+ if (arm === void 0) return locationMediaType(schema) === void 0 ? "document" : "location";
987
+ return typeof arm.$ref === "string" && refName$1(arm.$ref) === "MetaDocument" ? "meta" : "document";
988
+ }
989
+ /** The JSON:API schema of an operation's first success response that declares one. */
990
+ function okJsonApiSchema(op) {
979
991
  for (const [code, response] of Object.entries(op.responses ?? {})) {
980
992
  if (!code.startsWith("2")) continue;
981
993
  const schema = response.content?.[JSON_API_MEDIA_TYPE$1]?.schema;
982
- if (schema === void 0) continue;
983
- return typeof schema.$ref === "string" && refName$1(schema.$ref) === "MetaDocument" ? "meta" : "document";
994
+ if (schema !== void 0) return schema;
984
995
  }
985
- return "none";
996
+ }
997
+ /** Whether a schema is a location document: a `$ref` to `LocationDocument`, or an `allOf` with one. */
998
+ function isLocationSchema(schema) {
999
+ const isRef = (entry) => typeof entry.$ref === "string" && refName$1(entry.$ref) === "LocationDocument";
1000
+ return isRef(schema) || (schema.allOf?.some(isRef) ?? false);
1001
+ }
1002
+ /**
1003
+ * The documents a success response's schema offers besides a location document (generator
1004
+ * contract 17): each `oneOf` member that isn't one, or the schema itself when it isn't one.
1005
+ */
1006
+ function documentArms(schema) {
1007
+ return (schema.oneOf ?? [schema]).filter((arm) => !isLocationSchema(arm));
1008
+ }
1009
+ /**
1010
+ * The media type a location document's `links.location.type` is fixed to (generator contract
1011
+ * 17), `application/octet-stream` when the schema fixes none, or `undefined` when the schema
1012
+ * offers no location document.
1013
+ */
1014
+ function locationMediaType(schema) {
1015
+ const location = (schema.oneOf ?? [schema]).find(isLocationSchema);
1016
+ if (location === void 0) return;
1017
+ for (const entry of location.allOf ?? []) {
1018
+ const links = entry.properties?.["links"];
1019
+ const link = isSchema$3(links) ? links.properties?.["location"] : void 0;
1020
+ const type = isSchema$3(link) ? link.properties?.["type"] : void 0;
1021
+ if (isSchema$3(type) && typeof type.const === "string") return type.const;
1022
+ }
1023
+ return "application/octet-stream";
986
1024
  }
987
1025
  /** Build the {@link ApiDescriptor} from a parsed OpenAPI document. */
988
1026
  function buildDescriptor(doc) {
@@ -1147,7 +1185,7 @@ function buildExamples(doc, descriptor) {
1147
1185
  /** Below this the document predates the structures this codegen reads. */
1148
1186
  const MINIMUM_CONTRACT = 1;
1149
1187
  /** Above this the document carries structures this codegen does not read. */
1150
- const MAXIMUM_CONTRACT = 16;
1188
+ const MAXIMUM_CONTRACT = 17;
1151
1189
  /**
1152
1190
  * Check the document's `info.x-generator.contract` against the range this codegen reads. A
1153
1191
  * document older than the range throws; a newer one returns a warning, because its new
@@ -1157,8 +1195,8 @@ const MAXIMUM_CONTRACT = 16;
1157
1195
  function checkContract(doc) {
1158
1196
  const contract = doc.info?.["x-generator"]?.contract;
1159
1197
  if (typeof contract !== "number") return;
1160
- if (contract < 1) throw new Error(`the document declares contract ${contract}, which predates what this codegen reads (it supports 1 to 16). Use an older codegen release, or regenerate the document from a newer server.`);
1161
- if (contract > 16) return `the document declares contract ${contract} and this codegen reads up to 16. It describes capabilities that were not generated; upgrade the codegen to pick them up.`;
1198
+ if (contract < 1) throw new Error(`the document declares contract ${contract}, which predates what this codegen reads (it supports 1 to 17). Use an older codegen release, or regenerate the document from a newer server.`);
1199
+ if (contract > 17) return `the document declares contract ${contract} and this codegen reads up to 17. It describes capabilities that were not generated; upgrade the codegen to pick them up.`;
1162
1200
  }
1163
1201
  //#endregion
1164
1202
  //#region src/declared-links.ts
@@ -1637,6 +1675,15 @@ function safetyDoc(action) {
1637
1675
  if (words.length === 0) return;
1638
1676
  return `The server declares this action ${words.length === 1 ? words[0] : `${words.slice(0, -1).join(", ")} and ${words.at(-1)}`}.`;
1639
1677
  }
1678
+ /**
1679
+ * What an action that answers with a URL returns (generator contract 17), as JSDoc, or
1680
+ * `undefined` for any other action.
1681
+ */
1682
+ function locationDoc(action) {
1683
+ if (action.location === void 0) return;
1684
+ const serving = `a URL serving \`${action.location.mediaType}\``;
1685
+ return action.output === "location" ? `Returns ${serving} as an \`ActionLocation\`. The client doesn't follow it.` : `May return ${serving} instead, as an \`ActionLocation\`. The client doesn't follow it.`;
1686
+ }
1640
1687
  /** A list of scopes as inline code joined into prose: `a`, `b` and `c`. */
1641
1688
  function scopeList(scopes) {
1642
1689
  const quoted = scopes.map((scope) => `\`${scope}\``);
@@ -1786,6 +1833,7 @@ var Emitter = class {
1786
1833
  const op = actionOperation(this.doc, action);
1787
1834
  const parts = [
1788
1835
  actionDoc(action.path.slice(action.path.lastIndexOf("/") + 1), op),
1836
+ locationDoc(action),
1789
1837
  safetyDoc(action),
1790
1838
  scopeDoc(action.scopes),
1791
1839
  exampleDoc(op)
@@ -2630,4 +2678,4 @@ async function check(config) {
2630
2678
  //#endregion
2631
2679
  export { DescriptorBuilder as C, operationExamples as S, buildDescriptor as T, readErrorCatalogue as _, schemasOutputPath as a, checkContract as b, emitSchemas as c, detectVerbCollisions as d, emit as f, emitErrorCodes as g, provenanceLines as h, generateFiles as i, emitExamples as l, hashJson as m, examplesOutputPath as n, readDocument as o, deriveProvenance as p, generate as r, readSchemas as s, check as t, Emitter as u, MAXIMUM_CONTRACT as v, buildAtomic as w, buildExamples as x, MINIMUM_CONTRACT as y };
2632
2680
 
2633
- //# sourceMappingURL=src-D29xU79S.mjs.map
2681
+ //# sourceMappingURL=src-D4apiVHe.mjs.map