@wildo-ai/saas-technical-doc 1.1.6 → 1.1.7

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.
Files changed (102) hide show
  1. package/dist/esm/build/csp-emit.d.ts.map +1 -1
  2. package/dist/esm/build/load-materialized-frontend-providers.d.ts.map +1 -1
  3. package/dist/esm/companion/application-documentation/application-authentication-documentation.d.ts.map +1 -1
  4. package/dist/esm/companion/application-documentation/application-connection-documentation.d.ts.map +1 -1
  5. package/dist/esm/companion/application-documentation/application-documentation-chapters.d.ts.map +1 -1
  6. package/dist/esm/companion/application-documentation/application-organization-role-documentation.d.ts.map +1 -1
  7. package/dist/esm/companion/application-documentation/application-organization-unit-resource-documentation.d.ts.map +1 -1
  8. package/dist/esm/companion/application-documentation/docs-api-origin-substitution.d.ts.map +1 -1
  9. package/dist/esm/companion/application-documentation/technical-documentation-engine-content-bundle.d.ts.map +1 -1
  10. package/dist/esm/companion/application-documentation/technical-documentation-operational-evidence.d.ts.map +1 -1
  11. package/dist/esm/companion/application-documentation/technical-documentation-private-derivation.d.ts.map +1 -1
  12. package/dist/esm/companion/application-documentation/technical-documentation-publication-policy.d.ts.map +1 -1
  13. package/dist/esm/companion/content/application-consumer-documentation-content-loader.d.ts.map +1 -1
  14. package/dist/esm/companion/index.d.ts.map +1 -1
  15. package/dist/esm/companion/manual-controller-route-projection.d.ts.map +1 -1
  16. package/dist/esm/companion/openapi-example-derivation.d.ts.map +1 -1
  17. package/dist/esm/companion/openapi-example-derivation.js.map +1 -1
  18. package/dist/esm/companion/openapi-generator.d.ts.map +1 -1
  19. package/dist/esm/companion/openapi-generator.js.map +1 -1
  20. package/dist/esm/companion/operation-projection.schemas.d.ts.map +1 -1
  21. package/dist/esm/companion/operation-projection.schemas.js.map +1 -1
  22. package/dist/esm/companion/publish-result.types.d.ts.map +1 -1
  23. package/dist/esm/companion/rendering/technical-documentation-authorized-bundle-reader.d.ts.map +1 -1
  24. package/dist/esm/companion/rendering/technical-documentation-docusaurus-renderer.d.ts.map +1 -1
  25. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.d.ts.map +1 -1
  26. package/dist/esm/companion/rendering/technical-documentation-managed-tree-validator.js.map +1 -1
  27. package/dist/esm/companion/rendering/technical-documentation-markdown-links.d.ts.map +1 -1
  28. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.d.ts.map +1 -1
  29. package/dist/esm/companion/rendering/technical-documentation-openapi-renderer.js.map +1 -1
  30. package/dist/esm/companion/rendering/technical-documentation-render-model.d.ts.map +1 -1
  31. package/dist/esm/companion/rendering/technical-documentation-search-index-renderer.d.ts.map +1 -1
  32. package/dist/esm/companion/spec-to-operation-doc.d.ts.map +1 -1
  33. package/dist/esm/companion/spec-to-operation-doc.js.map +1 -1
  34. package/dist/esm/companion/technical-documentation-asset-path.d.ts.map +1 -1
  35. package/dist/esm/companion/technical-documentation-capture-execution-port.d.ts.map +1 -1
  36. package/dist/esm/companion/technical-documentation-diagram-definitions.d.ts.map +1 -1
  37. package/dist/esm/companion/technical-documentation-diagram-materializer.d.ts.map +1 -1
  38. package/dist/esm/companion/technical-documentation-placeholder-materializer.d.ts.map +1 -1
  39. package/dist/esm/companion/zod-to-openapi.d.ts.map +1 -1
  40. package/dist/esm/companion-exports.d.ts.map +1 -1
  41. package/dist/esm/config/define-tech-doc-config.d.ts.map +1 -1
  42. package/dist/esm/config/index.d.ts.map +1 -1
  43. package/dist/esm/config/wildo-tech-doc-config.schemas.d.ts.map +1 -1
  44. package/dist/esm/content/application-consumer-documentation-content-manifest.schemas.d.ts.map +1 -1
  45. package/dist/esm/content/application-consumer-documentation-content.techdoc.d.ts.map +1 -1
  46. package/dist/esm/content/application-consumer-documentation-content.techdoc.js.map +1 -1
  47. package/dist/esm/content.exports.d.ts.map +1 -1
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/openapi/api-reference-link-index.d.ts.map +1 -1
  50. package/dist/esm/openapi/api-reference-link-index.js.map +1 -1
  51. package/dist/esm/openapi/api-reference-pages.d.ts.map +1 -1
  52. package/dist/esm/openapi/api-reference-pages.js.map +1 -1
  53. package/dist/esm/openapi/api-reference-search.d.ts.map +1 -1
  54. package/dist/esm/openapi/api-reference-search.js.map +1 -1
  55. package/dist/esm/openapi/api-reference-targets.d.ts.map +1 -1
  56. package/dist/esm/openapi/api-reference-targets.js.map +1 -1
  57. package/dist/esm/openapi/index.d.ts.map +1 -1
  58. package/dist/esm/openapi/index.js.map +1 -1
  59. package/dist/esm/openapi/openapi-generation-output.schemas.d.ts.map +1 -1
  60. package/dist/esm/openapi-reference-model.exports.d.ts.map +1 -1
  61. package/dist/esm/openapi-reference-model.exports.js.map +1 -1
  62. package/dist/esm/runtime/AuthExchangePage.d.ts.map +1 -1
  63. package/dist/esm/runtime/AuthExchangePage.js.map +1 -1
  64. package/dist/esm/runtime/DocsAuthContext.d.ts.map +1 -1
  65. package/dist/esm/runtime/DocsFrontendProviders.d.ts.map +1 -1
  66. package/dist/esm/runtime/DocsFrontendProviders.js.map +1 -1
  67. package/dist/esm/runtime/DocsProviderComponent.d.ts.map +1 -1
  68. package/dist/esm/runtime/DocsProviderComponent.js.map +1 -1
  69. package/dist/esm/runtime/decode-jwt-claims.d.ts.map +1 -1
  70. package/dist/esm/runtime/docs-auth-client.d.ts.map +1 -1
  71. package/dist/esm/runtime/docs-auth-session.schemas.d.ts.map +1 -1
  72. package/dist/esm/runtime/documentation-site-translator.d.ts.map +1 -1
  73. package/dist/esm/runtime/documentation-site-translator.js.map +1 -1
  74. package/dist/esm/runtime/frontend-provider-registry.techdoc.d.ts.map +1 -1
  75. package/dist/esm/runtime/index.d.ts.map +1 -1
  76. package/dist/esm/runtime/index.js.map +1 -1
  77. package/dist/esm/runtime/openapi-reference-conservation.d.ts.map +1 -1
  78. package/dist/esm/runtime/openapi-reference-model.d.ts.map +1 -1
  79. package/dist/esm/runtime/openapi-reference-model.js.map +1 -1
  80. package/dist/esm/runtime/openapi-reference-navigation.d.ts.map +1 -1
  81. package/dist/esm/runtime/openapi-reference-navigation.js.map +1 -1
  82. package/dist/esm/runtime/openapi-reference-samples.d.ts.map +1 -1
  83. package/dist/esm/runtime/openapi-reference-samples.js.map +1 -1
  84. package/dist/esm/runtime/openapi-reference-styles.d.ts.map +1 -1
  85. package/dist/esm/runtime/openapi-reference-styles.js.map +1 -1
  86. package/dist/esm/runtime/openapi-reference-view.d.ts.map +1 -1
  87. package/dist/esm/runtime/openapi-reference-view.js.map +1 -1
  88. package/dist/esm/runtime/openapi-reference-words-context.d.ts.map +1 -1
  89. package/dist/esm/runtime/openapi-reference-words-context.js.map +1 -1
  90. package/dist/esm/runtime/openapi-reference-words.d.ts.map +1 -1
  91. package/dist/esm/runtime/openapi-reference-words.js.map +1 -1
  92. package/dist/esm/runtime/provider-component-registry.techdoc.d.ts.map +1 -1
  93. package/dist/esm/runtime/provider-component-registry.techdoc.js.map +1 -1
  94. package/dist/esm/runtime/use-docs-auth-session.d.ts.map +1 -1
  95. package/dist/esm/runtime/use-docs-frontend-provider-registry.d.ts.map +1 -1
  96. package/dist/esm/runtime/use-docs-provider-component.d.ts.map +1 -1
  97. package/dist/esm/runtime/use-docs-provider-component.js.map +1 -1
  98. package/dist/esm/runtime/use-docs-provider-scripts.d.ts.map +1 -1
  99. package/dist/esm/runtime/use-docs-provider-scripts.js.map +1 -1
  100. package/dist/esm/runtime/use-docs-provider-sdks.d.ts.map +1 -1
  101. package/dist/tsconfig.build.tsbuildinfo +1 -1
  102. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-model.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-model.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Browser-safe projection of one generated OpenAPI document.\n *\n * Navigation is derived in memory from the verified OpenAPI bytes. The model\n * deliberately persists nothing and never invents API meaning: resource tags,\n * `operationId`, standard OpenAPI method/path fields and `x-wildo` source\n * identity are its only inputs.\n */\n\nimport { ApiReferenceTargetKind, apiReferenceTargetFragment } from '../openapi/api-reference-targets';\n\nexport interface ApiReferenceVariant {\n readonly variantRef: string;\n readonly anchorId: string;\n readonly operationId: string;\n readonly summary: string;\n readonly description: string | null;\n readonly method: string;\n readonly path: string;\n /**\n * The canonical path when this route is the same operation reached through a parent\n * (`x-wildo.aliasOfPath`), else `null`. The variant stays a variant — conservation counts it — and\n * the view presents it under the canonical operation instead of as a duplicate.\n */\n readonly aliasOfPath: string | null;\n /** Source-projected authentication and authorization explanation. */\n readonly access: ApiReferenceAccess;\n readonly securitySchemes: readonly string[];\n readonly parameters: readonly ApiReferenceParameter[];\n readonly requestBody: ApiReferenceRequestBody | null;\n readonly responses: readonly ApiReferenceResponse[];\n /** Documented failure modes from `x-wildo.errorScenarios`, in authored order. */\n readonly errorScenarios: readonly ApiReferenceErrorScenario[];\n readonly idempotent: boolean | null;\n}\n\n/**\n * One documented failure mode, with each identifier named by the error-body field a client reads\n * it from: `error.type`, `error.customMessageReference` and `error.code` are three fields.\n */\nexport interface ApiReferenceErrorScenario {\n readonly status: string;\n readonly when: string;\n readonly errorType: string | null;\n readonly customMessageReference: string | null;\n readonly errorCode: string | null;\n}\n\n/** A standard OpenAPI parameter, normalized for a documentation renderer. */\nexport interface ApiReferenceParameter {\n readonly name: string;\n readonly location: string;\n readonly required: boolean;\n readonly description: string | null;\n /** The exact OpenAPI Schema Object attached to this parameter. */\n readonly schema: ApiReferenceSchemaNode | null;\n /** Source-authored OpenAPI examples for this exact path/query/header parameter. */\n readonly examples: readonly ApiReferenceExample[];\n}\n\n/** The available request representations for an operation. */\nexport interface ApiReferenceRequestBody {\n /** Stable public target for this exact operation's request contract. */\n readonly anchorId: string;\n readonly required: boolean;\n readonly mediaTypes: readonly ApiReferenceMediaType[];\n}\n\n/** A request or response representation declared by the OpenAPI contract. */\nexport interface ApiReferenceMediaType {\n readonly mediaType: string;\n /** The exact OpenAPI Schema Object attached to this representation. */\n readonly schema: ApiReferenceSchemaNode | null;\n /** OpenAPI examples, kept as contract data rather than renderer-authored samples. */\n readonly examples: readonly ApiReferenceExample[];\n}\n\n/** One request or response example declared directly in the OpenAPI document. */\nexport interface ApiReferenceExample {\n readonly name: string;\n readonly summary: string | null;\n readonly description: string | null;\n /** Pretty-printed inline JSON when the OpenAPI example provides a serializable `value`. */\n readonly jsonValue: string | null;\n /** OpenAPI's alternative external example location, when supplied. */\n readonly externalValue: string | null;\n}\n\n/** The browser-safe view of the generated `x-wildo.access` contract. */\nexport interface ApiReferenceAccess {\n readonly authenticationMode: string;\n readonly authenticationSummary: string;\n readonly roleRequirements: readonly ApiReferenceRoleRequirement[];\n}\n\n/** One exact runtime role paired with the specification-owned explanation. */\nexport interface ApiReferenceRoleRequirement {\n readonly role: string;\n readonly label: string;\n readonly businessRole: string | null;\n readonly authorityBoundary: string | null;\n}\n\n/** One documented HTTP response. */\nexport interface ApiReferenceResponse {\n /** Stable public target for this exact operation/status response contract. */\n readonly anchorId: string;\n readonly status: string;\n readonly description: string | null;\n readonly mediaTypes: readonly ApiReferenceMediaType[];\n}\n\nexport interface ApiReferenceFamily {\n readonly familyRef: string;\n readonly anchorId: string;\n readonly label: string;\n readonly variants: readonly ApiReferenceVariant[];\n}\n\nexport interface ApiReferenceResource {\n readonly resourceRef: string;\n readonly anchorId: string;\n readonly label: string;\n /** Source-owned category transported through the OpenAPI resource tag. */\n readonly category: ApiReferenceResourceCategory | null;\n readonly description: string | null;\n readonly lifecycleRole: string | null;\n readonly relationships: readonly ApiReferenceResourceRelationship[];\n /**\n * The reusable schema that IS this resource's representation (`x-wildo.objectSchema`), when the\n * generator published one: \"the Tasks object\", shown once on the resource page.\n */\n readonly objectSchemaName: string | null;\n readonly families: readonly ApiReferenceFamily[];\n}\n\n/** A source-declared API-resource category, never inferred from resource names. */\nexport interface ApiReferenceResourceCategory {\n readonly id: string;\n /** Readable category fragment derived from the public target utility. */\n readonly anchorId: string;\n readonly label: string;\n readonly description: string | null;\n}\n\n/** One reusable `components.schemas` contract from the same OpenAPI document. */\nexport interface ApiReferenceComponentSchema {\n readonly name: string;\n readonly anchorId: string;\n readonly schema: ApiReferenceSchemaNode;\n}\n\n/**\n * A browser-safe, recursive projection of one OpenAPI 3.1 Schema Object.\n *\n * `$ref` nodes deliberately remain links instead of being resolved. This both\n * preserves the document's canonical component boundary and makes recursive\n * schemas cycle-safe without imposing a renderer-authored traversal limit.\n */\nexport interface ApiReferenceSchemaNode {\n /** A JSON Schema boolean schema; `null` means this node is an object schema. */\n readonly booleanSchema: boolean | null;\n readonly referenceName: string | null;\n readonly referenceAnchorId: string | null;\n readonly types: readonly string[];\n readonly description: string | null;\n readonly format: string | null;\n /** In the order the contract declares them — the view decides reading order, not the model. */\n readonly properties: readonly ApiReferenceSchemaProperty[];\n readonly items: ApiReferenceSchemaNode | null;\n readonly compositions: readonly ApiReferenceSchemaComposition[];\n readonly enumValues: readonly ApiReferenceSchemaEnumValue[];\n readonly constValue: string | null;\n readonly defaultValue: string | null;\n readonly constraints: readonly ApiReferenceSchemaConstraint[];\n /** `null` means the keyword is absent; a schema-valued keyword remains recursive. */\n readonly additionalProperties: boolean | ApiReferenceSchemaNode | null;\n}\n\n/** One named child of an OpenAPI object schema. */\nexport interface ApiReferenceSchemaProperty {\n readonly name: string;\n readonly required: boolean;\n readonly schema: ApiReferenceSchemaNode;\n}\n\n/** OpenAPI composition keywords are distinct contracts, not interchangeable labels. */\nexport enum ApiReferenceSchemaCompositionKind {\n ONE_OF = 'oneOf',\n ANY_OF = 'anyOf',\n ALL_OF = 'allOf',\n}\n\nexport interface ApiReferenceSchemaComposition {\n readonly kind: ApiReferenceSchemaCompositionKind;\n readonly branches: readonly ApiReferenceSchemaNode[];\n}\n\n/** One JSON value admitted by an OpenAPI enum and its optional source description. */\nexport interface ApiReferenceSchemaEnumValue {\n readonly jsonValue: string;\n readonly description: string | null;\n}\n\n/** Standard Schema Object constraint keywords preserved without interpretation. */\nexport enum ApiReferenceSchemaConstraintKind {\n MINIMUM = 'minimum',\n MAXIMUM = 'maximum',\n EXCLUSIVE_MINIMUM = 'exclusiveMinimum',\n EXCLUSIVE_MAXIMUM = 'exclusiveMaximum',\n MULTIPLE_OF = 'multipleOf',\n MIN_LENGTH = 'minLength',\n MAX_LENGTH = 'maxLength',\n PATTERN = 'pattern',\n MIN_ITEMS = 'minItems',\n MAX_ITEMS = 'maxItems',\n UNIQUE_ITEMS = 'uniqueItems',\n MIN_PROPERTIES = 'minProperties',\n MAX_PROPERTIES = 'maxProperties',\n}\n\nexport interface ApiReferenceSchemaConstraint {\n readonly kind: ApiReferenceSchemaConstraintKind;\n readonly jsonValue: string;\n}\n\n/** A compiled resource-relationship fact projected through the OpenAPI tag. */\nexport interface ApiReferenceResourceRelationship {\n readonly relatedResourceName: string;\n readonly relatedResourceLabel: string;\n readonly foreignKeyField: string | null;\n readonly resourceCardinality: string;\n readonly relatedResourceCardinality: string;\n readonly nature: string;\n readonly lifecycleModel: string;\n readonly onParentDelete: {\n readonly enabled: boolean;\n readonly mode: string;\n readonly strategy: string;\n readonly maxDepth: number;\n /**\n * True for the RESTRICT posture: the parent's delete is refused while these rows exist. Nothing is torn\n * down, so `mode` and `maxDepth` describe nothing and a renderer must not present them.\n */\n readonly refusesWhileChildrenExist: boolean;\n } | null;\n}\n\nexport interface ApiReferenceModel {\n /** Standard OpenAPI document title, when authored by the generator. */\n readonly title: string | null;\n /** Standard CommonMark description; presentation never authors substitute prose. */\n readonly description: string | null;\n /** Exact OpenAPI server choices used to compose an operation URL. */\n readonly servers: readonly ApiReferenceServer[];\n /** Exact reusable authentication mechanisms declared by OpenAPI. */\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n readonly resources: readonly ApiReferenceResource[];\n readonly componentSchemas: readonly ApiReferenceComponentSchema[];\n readonly operationCount: number;\n}\n\nexport interface ApiReferenceServer {\n readonly url: string;\n readonly description: string | null;\n}\n\n/** Browser-safe projection of an OpenAPI Security Scheme Object. */\nexport interface ApiReferenceSecurityScheme {\n readonly name: string;\n readonly type: string;\n readonly scheme: string | null;\n readonly bearerFormat: string | null;\n readonly location: string | null;\n readonly parameterName: string | null;\n readonly description: string | null;\n}\n\ntype UnknownRecord = Record<string, unknown>;\n\n/**\n * OpenAPI path-item members that describe an HTTP operation. Other members,\n * such as path-level parameters, are not individually navigable reference\n * entries. Every member in this vocabulary must carry Wildo identity metadata:\n * silently ignoring one would make the rendered reference incomplete.\n */\nconst OPENAPI_HTTP_METHODS: ReadonlySet<string> = new Set(['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace']);\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction documentInfo(value: unknown): { readonly title: string | null; readonly description: string | null } {\n if (value === undefined) return { title: null, description: null };\n if (!isRecord(value)) throw new Error('API reference document has malformed OpenAPI info');\n if (value.title !== undefined && typeof value.title !== 'string') throw new Error('API reference document has malformed OpenAPI info.title');\n if (value.description !== undefined && typeof value.description !== 'string') throw new Error('API reference document has malformed OpenAPI info.description');\n return {\n title: typeof value.title === 'string' ? value.title : null,\n description: typeof value.description === 'string' ? value.description : null,\n };\n}\n\nfunction documentServers(value: unknown): readonly ApiReferenceServer[] {\n if (value === undefined) return [];\n if (!Array.isArray(value)) throw new Error('API reference document has malformed OpenAPI servers');\n return value.map((server, index) => {\n if (!isRecord(server) || typeof server.url !== 'string') throw new Error(`API reference server at index ${index} has no URL`);\n if (server.description !== undefined && typeof server.description !== 'string') {\n throw new Error(`API reference server at index ${index} has a malformed description`);\n }\n return {\n url: server.url,\n description: typeof server.description === 'string' ? server.description : null,\n };\n });\n}\n\nfunction documentSecuritySchemes(value: unknown): readonly ApiReferenceSecurityScheme[] {\n if (value === undefined) return [];\n if (!isRecord(value)) throw new Error('API reference document has malformed OpenAPI security schemes');\n return Object.entries(value).map(([name, scheme]) => {\n if (!isRecord(scheme) || typeof scheme.type !== 'string') throw new Error(`API reference security scheme '${name}' is malformed`);\n for (const field of ['scheme', 'bearerFormat', 'in', 'name', 'description'] as const) {\n if (scheme[field] !== undefined && typeof scheme[field] !== 'string') {\n throw new Error(`API reference security scheme '${name}' has malformed '${field}'`);\n }\n }\n return {\n name,\n type: scheme.type,\n scheme: typeof scheme.scheme === 'string' ? scheme.scheme : null,\n bearerFormat: typeof scheme.bearerFormat === 'string' ? scheme.bearerFormat : null,\n location: typeof scheme.in === 'string' ? scheme.in : null,\n parameterName: typeof scheme.name === 'string' ? scheme.name : null,\n description: typeof scheme.description === 'string' ? scheme.description : null,\n };\n }).sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction access(value: unknown): ApiReferenceAccess {\n if (!isRecord(value) || typeof value.authenticationMode !== 'string' || typeof value.authenticationSummary !== 'string' || !Array.isArray(value.roleRequirements)) {\n throw new Error('API reference operation has no valid x-wildo access contract');\n }\n const roleRequirements = value.roleRequirements.map((requirement) => {\n if (!isRecord(requirement) || typeof requirement.role !== 'string' || typeof requirement.label !== 'string') {\n throw new Error('API reference operation has a malformed x-wildo role requirement');\n }\n if (requirement.businessRole !== null && requirement.businessRole !== undefined && typeof requirement.businessRole !== 'string') {\n throw new Error('API reference operation has a malformed role business explanation');\n }\n if (requirement.authorityBoundary !== null && requirement.authorityBoundary !== undefined && typeof requirement.authorityBoundary !== 'string') {\n throw new Error('API reference operation has a malformed role authority boundary');\n }\n return {\n role: requirement.role,\n label: requirement.label,\n businessRole: typeof requirement.businessRole === 'string' ? requirement.businessRole : null,\n authorityBoundary: typeof requirement.authorityBoundary === 'string' ? requirement.authorityBoundary : null,\n };\n });\n return {\n authenticationMode: value.authenticationMode,\n authenticationSummary: value.authenticationSummary,\n roleRequirements,\n };\n}\n\nfunction componentSchemaReference(value: unknown): { readonly name: string; readonly anchorId: string } | null {\n if (!isRecord(value) || typeof value.$ref !== 'string') return null;\n const schemaName = value.$ref.match(/^#\\/components\\/schemas\\/([^/]+)$/)?.[1];\n return schemaName === undefined\n ? { name: value.$ref, anchorId: null }\n : {\n name: schemaName,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.COMPONENT_SCHEMA, schemaName }),\n };\n}\n\nfunction serializeExampleJson(value: unknown): string | null {\n if (value === undefined) return null;\n try {\n const serialized = JSON.stringify(value, null, 2);\n return typeof serialized === 'string' ? serialized : null;\n } catch {\n // A malformed external OpenAPI document must not make the reference page\n // unusable merely because an example cannot be represented as JSON.\n return null;\n }\n}\n\nfunction schemaConstraint(\n schema: UnknownRecord,\n kind: ApiReferenceSchemaConstraintKind,\n): ApiReferenceSchemaConstraint | null {\n const jsonValue = serializeExampleJson(schema[kind]);\n return jsonValue === null ? null : { kind, jsonValue };\n}\n\nfunction schemaNodeOrThrow(value: unknown, owner: string): ApiReferenceSchemaNode {\n const schema = schemaNode(value);\n if (schema === null) throw new Error(`API reference ${owner} has a malformed OpenAPI schema`);\n return schema;\n}\n\n/**\n * Recursively projects only fields supplied by the OpenAPI Schema Object.\n *\n * semantic-literal-boundary: OpenAPI 3.1 Schema Object keywords are translated\n * once at this browser boundary; React consumes the named model exclusively.\n */\nfunction schemaNode(value: unknown): ApiReferenceSchemaNode | null {\n if (typeof value === 'boolean') {\n return {\n booleanSchema: value,\n referenceName: null,\n referenceAnchorId: null,\n types: [],\n description: null,\n format: null,\n properties: [],\n items: null,\n compositions: [],\n enumValues: [],\n constValue: null,\n defaultValue: null,\n constraints: [],\n additionalProperties: null,\n };\n }\n if (!isRecord(value)) return null;\n\n const reference = componentSchemaReference(value);\n const requiredPropertyNames = Array.isArray(value.required)\n ? new Set(value.required.filter((propertyName): propertyName is string => typeof propertyName === 'string'))\n : new Set<string>();\n const properties = isRecord(value.properties)\n ? Object.entries(value.properties).map(([name, propertySchema]) => ({\n name,\n required: requiredPropertyNames.has(name),\n schema: schemaNodeOrThrow(propertySchema, `property '${name}'`),\n }))\n : [];\n const compositionSources: ReadonlyArray<readonly [ApiReferenceSchemaCompositionKind, unknown]> = [\n [ApiReferenceSchemaCompositionKind.ONE_OF, value.oneOf],\n [ApiReferenceSchemaCompositionKind.ANY_OF, value.anyOf],\n [ApiReferenceSchemaCompositionKind.ALL_OF, value.allOf],\n ];\n const compositions = compositionSources.flatMap(([kind, branches]) => {\n if (!Array.isArray(branches)) return [];\n return [{ kind, branches: branches.map((branch, index) => schemaNodeOrThrow(branch, `${kind} branch ${index}`)) }];\n });\n const enumDescriptions = isRecord(value['x-enum-descriptions']) ? value['x-enum-descriptions'] : {};\n const enumValues = Array.isArray(value.enum)\n ? value.enum.flatMap((enumValue) => {\n const jsonValue = serializeExampleJson(enumValue);\n if (jsonValue === null) return [];\n const description = enumDescriptions[String(enumValue)];\n return [{ jsonValue, description: typeof description === 'string' ? description : null }];\n })\n : [];\n const types = typeof value.type === 'string'\n ? [value.type]\n : Array.isArray(value.type)\n ? value.type.filter((type): type is string => typeof type === 'string')\n : [];\n const additionalProperties = value.additionalProperties === undefined\n ? null\n : typeof value.additionalProperties === 'boolean'\n ? value.additionalProperties\n : schemaNodeOrThrow(value.additionalProperties, 'additionalProperties');\n\n return {\n booleanSchema: null,\n referenceName: reference?.name ?? null,\n referenceAnchorId: reference?.anchorId ?? null,\n types,\n description: typeof value.description === 'string' ? value.description : null,\n format: typeof value.format === 'string' ? value.format : null,\n properties,\n items: value.items === undefined ? null : schemaNodeOrThrow(value.items, 'array items'),\n compositions,\n enumValues,\n constValue: serializeExampleJson(value.const),\n defaultValue: serializeExampleJson(value.default),\n constraints: [\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MINIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAXIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.EXCLUSIVE_MINIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.EXCLUSIVE_MAXIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MULTIPLE_OF),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MIN_LENGTH),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAX_LENGTH),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.PATTERN),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MIN_ITEMS),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAX_ITEMS),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.UNIQUE_ITEMS),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MIN_PROPERTIES),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAX_PROPERTIES),\n ].filter((constraint): constraint is ApiReferenceSchemaConstraint => constraint !== null),\n additionalProperties,\n };\n}\n\nfunction openApiExamples(value: unknown): readonly ApiReferenceExample[] {\n if (!isRecord(value)) return [];\n return Object.entries(value)\n .map(([name, example]) => {\n if (!isRecord(example)) return null;\n return {\n name,\n summary: typeof example.summary === 'string' ? example.summary : null,\n description: typeof example.description === 'string' ? example.description : null,\n jsonValue: serializeExampleJson(example.value),\n externalValue: typeof example.externalValue === 'string' ? example.externalValue : null,\n };\n })\n .filter((example): example is ApiReferenceExample => example !== null)\n .sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction mediaTypes(value: unknown): readonly ApiReferenceMediaType[] {\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([mediaType, representation]) => {\n if (!isRecord(representation)) return { mediaType, schema: null, examples: [] };\n const namedExamples = openApiExamples(representation.examples);\n const inlineExample = representation.example === undefined\n ? []\n : [{ name: 'Example', summary: null, description: null, jsonValue: serializeExampleJson(representation.example), externalValue: null }];\n return {\n mediaType,\n schema: representation.schema === undefined ? null : schemaNodeOrThrow(representation.schema, `media type '${mediaType}'`),\n examples: [...namedExamples, ...inlineExample],\n };\n }).sort((a, b) => a.mediaType.localeCompare(b.mediaType));\n}\n\n/** Projects reusable OpenAPI components without re-authoring their schema meaning in React. */\nfunction componentSchemas(value: unknown): readonly ApiReferenceComponentSchema[] {\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([name, sourceSchema]) => {\n const schema = schemaNodeOrThrow(sourceSchema, `component schema '${name}'`);\n return {\n name,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.COMPONENT_SCHEMA, schemaName: name }),\n schema,\n };\n }).sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction parameter(value: unknown): ApiReferenceParameter | null {\n if (!isRecord(value) || typeof value.name !== 'string' || typeof value.in !== 'string') return null;\n const namedExamples = openApiExamples(value.examples);\n const inlineExample = value.example === undefined\n ? []\n : [{ name: 'Example', summary: null, description: null, jsonValue: serializeExampleJson(value.example), externalValue: null }];\n return {\n name: value.name,\n location: value.in,\n required: value.required === true,\n description: typeof value.description === 'string' ? value.description : null,\n schema: value.schema === undefined ? null : schemaNodeOrThrow(value.schema, `parameter '${value.name}'`),\n // Parameter Object supports the same named-example and single-inline-example\n // forms as Media Type Object. Preserve either form from external OpenAPI;\n // source generation currently emits the named form for query inputs.\n examples: [...namedExamples, ...inlineExample],\n };\n}\n\nfunction requestBody(value: unknown, operationId: string): ApiReferenceRequestBody | null {\n if (!isRecord(value)) return null;\n return {\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.REQUEST, operationId }),\n required: value.required === true,\n mediaTypes: mediaTypes(value.content),\n };\n}\n\n/**\n * Follows a Response Object `$ref` to the document's `components.responses`.\n *\n * The generator publishes the statuses every operation shares — `401` and `500` — once, as\n * `#/components/responses/<Name>`, and references them from each operation. Reading only inline\n * responses rendered roughly 1,800 of them in the Wonder Todos document as a bare status with no\n * description and \"No structured representation\", although the document carried both. A reference\n * that names no component is a malformed document, so it refuses rather than render an empty status.\n */\nfunction resolveResponseObject(response: unknown, componentResponses: UnknownRecord, owner: string): unknown {\n let current = response;\n const visited = new Set<string>();\n // A component response may itself be a reference to another one; follow the chain, refusing a cycle.\n while (isRecord(current) && typeof current.$ref === 'string') {\n const reference = current.$ref;\n if (visited.has(reference)) throw new Error(`API reference ${owner} has a circular response reference '${reference}'`);\n visited.add(reference);\n const encodedName = reference.match(/^#\\/components\\/responses\\/([^/]+)$/)?.[1];\n // JSON Pointer (RFC 6901 §4): `~1` decodes to `/` and `~0` to `~`, in that order.\n const name = encodedName?.replace(/~1/g, '/').replace(/~0/g, '~');\n const resolved = name === undefined ? undefined : componentResponses[name];\n if (!isRecord(resolved)) throw new Error(`API reference ${owner} references an unknown response '${reference}'`);\n current = resolved;\n }\n return current;\n}\n\nfunction responses(value: unknown, operationId: string, componentResponses: UnknownRecord): readonly ApiReferenceResponse[] {\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([status, reference]) => {\n const response = resolveResponseObject(reference, componentResponses, `${operationId} response ${status}`);\n return {\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.RESPONSE, operationId, status }),\n status,\n description: isRecord(response) && typeof response.description === 'string' ? response.description : null,\n mediaTypes: isRecord(response) ? mediaTypes(response.content) : [],\n };\n }).sort((a, b) => a.status.localeCompare(b.status, undefined, { numeric: true }));\n}\n\nfunction errorScenarios(value: unknown): readonly ApiReferenceErrorScenario[] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((scenario) => {\n if (!isRecord(scenario) || typeof scenario.status !== 'string' || typeof scenario.when !== 'string') return [];\n const optional = (field: unknown): string | null => typeof field === 'string' && field.length > 0 ? field : null;\n return [{\n status: scenario.status,\n when: scenario.when,\n errorType: optional(scenario.errorType),\n customMessageReference: optional(scenario.customMessageReference),\n errorCode: optional(scenario.errorCode),\n }];\n });\n}\n\nfunction securitySchemes(value: unknown): readonly string[] {\n if (!Array.isArray(value)) return [];\n return [...new Set(value.flatMap((requirement) => isRecord(requirement) ? Object.keys(requirement) : []))].sort((a, b) => a.localeCompare(b));\n}\n\nfunction resourceRelationships(value: unknown): readonly ApiReferenceResourceRelationship[] {\n if (!Array.isArray(value)) return [];\n return value.map((relationship, index) => {\n if (!isRecord(relationship)\n || typeof relationship.relatedResourceName !== 'string'\n || typeof relationship.resourceCardinality !== 'string'\n || typeof relationship.relatedResourceCardinality !== 'string'\n || typeof relationship.nature !== 'string'\n || typeof relationship.lifecycleModel !== 'string') {\n throw new Error(`API reference resource relationship at index ${index} is malformed`);\n }\n const parentDelete = relationship.onParentDelete;\n if (parentDelete !== undefined && (!isRecord(parentDelete)\n || typeof parentDelete.enabled !== 'boolean'\n || typeof parentDelete.mode !== 'string'\n || typeof parentDelete.strategy !== 'string'\n || typeof parentDelete.maxDepth !== 'number')) {\n throw new Error(`API reference resource relationship at index ${index} has malformed parent-delete lifecycle`);\n }\n return {\n relatedResourceName: relationship.relatedResourceName,\n relatedResourceLabel: relationship.relatedResourceName,\n foreignKeyField: typeof relationship.foreignKeyField === 'string' ? relationship.foreignKeyField : null,\n resourceCardinality: relationship.resourceCardinality,\n relatedResourceCardinality: relationship.relatedResourceCardinality,\n nature: relationship.nature,\n lifecycleModel: relationship.lifecycleModel,\n onParentDelete: isRecord(parentDelete) ? {\n enabled: parentDelete.enabled as boolean,\n mode: parentDelete.mode as string,\n strategy: parentDelete.strategy as string,\n maxDepth: parentDelete.maxDepth as number,\n // semantic-literal-boundary: the wire value of ResourceRelationshipDocumentationDeleteStrategy.REFUSE_WHILE_CHILDREN_EXIST, read from the published OpenAPI document this runtime model parses without importing the companion schemas.\n refusesWhileChildrenExist: parentDelete.strategy === 'refuse_while_children_exist',\n } : null,\n };\n });\n}\n\n/** Parses the strict category contract carried by `tags[].x-wildo.category`. */\nfunction resourceCategory(value: unknown): ApiReferenceResourceCategory | null {\n if (value === undefined) return null;\n if (!isRecord(value) || typeof value.id !== 'string' || typeof value.label !== 'string') {\n throw new Error('API reference resource tag has malformed x-wildo category');\n }\n if (value.description !== undefined && typeof value.description !== 'string') {\n throw new Error('API reference resource tag has malformed category description');\n }\n return {\n id: value.id,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.CATEGORY, categoryName: value.id }),\n label: value.label,\n description: typeof value.description === 'string' ? value.description : null,\n };\n}\n\n/**\n * The family's readable name. The family reference is a URI, so an identifier carrying a `:` arrives\n * percent-encoded (`collectionExport%3Alist`) and was shown that way (\"Collection Export%3Alist\"). It is\n * decoded first, and each `:`-separated part is spelled on its own: \"Collection Export · list\".\n */\nfunction operationFamilyLabel(familyRef: string): string {\n const encoded = familyRef.split('/operation-family/').at(-1)?.split('/').at(0) ?? familyRef;\n let identifier = encoded;\n try {\n identifier = decodeURIComponent(encoded);\n } catch {\n // A malformed escape is shown as written rather than failing the whole reference.\n }\n return identifier\n .split(':')\n // invented-display-text: generated API REFERENCE prose. The technical-doc lane has no label tree\n // and is not translated — the identifier it renders is the API's own public name.\n .map((part) => part.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/[-_]/g, ' ').trim())\n .filter((part) => part.length > 0)\n .join(' · ')\n .replace(/^./, (character) => character.toUpperCase());\n}\n\n/**\n * Presentation-only fallback for a resource whose related tag is absent from\n * this section (for example, a cron-only resource). It never changes the\n * canonical resource identity; it only prevents raw camelCase identifiers from\n * leaking into the reference when no source-authored display tag is available.\n */\nfunction resourceDisplayLabel(identifier: string): string {\n // invented-display-text: generated API reference prose, as above.\n return identifier\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/[-_]/g, ' ')\n .replace(/\\b\\w/g, (character) => character.toUpperCase());\n}\n\n/** Creates the two-level resource → operation-family view from OpenAPI. */\nexport function createApiReferenceModel(document: unknown): ApiReferenceModel {\n if (!isRecord(document) || !isRecord(document.paths)) throw new Error('API reference document has no OpenAPI paths object');\n const info = documentInfo(document.info);\n const resourceTags = new Map<string, {\n readonly resourceRef: string;\n readonly label: string;\n readonly description: string | null;\n readonly category: ApiReferenceResourceCategory | null;\n readonly lifecycleRole: string | null;\n readonly relationships: readonly ApiReferenceResourceRelationship[];\n readonly objectSchemaName: string | null;\n }>();\n if (Array.isArray(document.tags)) {\n for (const tag of document.tags) {\n if (isRecord(tag) && typeof tag.name === 'string') {\n if (!isRecord(tag['x-wildo']) || typeof tag['x-wildo'].resourceRef !== 'string') {\n throw new Error(`API reference resource tag '${tag.name}' has no x-wildo resource identity`);\n }\n if (resourceTags.has(tag.name)) throw new Error(`API reference resource tag is duplicated: ${tag.name}`);\n resourceTags.set(tag.name, {\n resourceRef: tag['x-wildo'].resourceRef,\n label: typeof tag['x-displayName'] === 'string' ? tag['x-displayName'] : resourceDisplayLabel(tag.name),\n description: typeof tag.description === 'string' ? tag.description : null,\n category: resourceCategory(tag['x-wildo'].category),\n lifecycleRole: typeof tag['x-wildo'].lifecycleRole === 'string' ? tag['x-wildo'].lifecycleRole : null,\n relationships: resourceRelationships(tag['x-wildo'].relationships),\n objectSchemaName: typeof tag['x-wildo'].objectSchema === 'string' ? tag['x-wildo'].objectSchema : null,\n });\n }\n }\n }\n const componentResponses = isRecord(document.components) && isRecord(document.components.responses) ? document.components.responses : {};\n const resources = new Map<string, Map<string, ApiReferenceVariant[]>>();\n const operationIds = new Set<string>();\n const operationVariantRefs = new Set<string>();\n for (const [path, item] of Object.entries(document.paths)) {\n if (!isRecord(item)) continue;\n for (const [method, operation] of Object.entries(item)) {\n if (!OPENAPI_HTTP_METHODS.has(method)) continue;\n if (!isRecord(operation)) throw new Error(`API reference ${method.toUpperCase()} ${path} operation is malformed`);\n if (!isRecord(operation['x-wildo'])) throw new Error(`API reference ${method.toUpperCase()} ${path} operation has no x-wildo identity`);\n const metadata = operation['x-wildo'];\n if (typeof metadata.resourceRef !== 'string' || typeof metadata.operationFamilyRef !== 'string' || typeof metadata.operationVariantRef !== 'string') {\n throw new Error('API reference operation has malformed x-wildo identity');\n }\n if (metadata.path !== path || metadata.httpVerb !== method.toLowerCase()) throw new Error('API reference operation x-wildo identity does not match its OpenAPI method/path');\n if (typeof operation.operationId !== 'string' || operation.operationId.length === 0) throw new Error('API reference operation has no operationId');\n if (operationIds.has(operation.operationId)) throw new Error(`API reference operationId is duplicated: ${operation.operationId}`);\n operationIds.add(operation.operationId);\n if (operationVariantRefs.has(metadata.operationVariantRef)) throw new Error(`API reference operation variant identity is duplicated: ${metadata.operationVariantRef}`);\n operationVariantRefs.add(metadata.operationVariantRef);\n const resource = resources.get(metadata.resourceRef) ?? new Map<string, ApiReferenceVariant[]>();\n const family = resource.get(metadata.operationFamilyRef) ?? [];\n family.push({\n variantRef: metadata.operationVariantRef,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.OPERATION, operationId: operation.operationId }),\n operationId: operation.operationId,\n summary: typeof operation.summary === 'string' ? operation.summary : `${method.toUpperCase()} ${path}`,\n description: typeof operation.description === 'string' ? operation.description : null,\n method: method.toUpperCase(),\n path,\n aliasOfPath: typeof metadata.aliasOfPath === 'string' ? metadata.aliasOfPath : null,\n access: access(metadata.access),\n securitySchemes: securitySchemes(operation.security),\n parameters: Array.isArray(operation.parameters) ? operation.parameters.map(parameter).filter((item): item is ApiReferenceParameter => item !== null) : [],\n requestBody: requestBody(operation.requestBody, operation.operationId),\n responses: responses(operation.responses, operation.operationId, componentResponses),\n errorScenarios: errorScenarios(metadata.errorScenarios),\n idempotent: typeof operation['x-idempotent'] === 'boolean' ? operation['x-idempotent'] : null,\n });\n resource.set(metadata.operationFamilyRef, family);\n resources.set(metadata.resourceRef, resource);\n }\n }\n const result = [...resources.entries()].map(([resourceRef, families]) => {\n const tagName = resourceRef.split('/').at(-1) ?? resourceRef;\n const tag = resourceTags.get(tagName);\n if (tag === undefined) throw new Error(`API reference resource '${resourceRef}' has no generated OpenAPI tag`);\n if (tag.resourceRef !== resourceRef) throw new Error(`API reference tag '${tagName}' resource identity does not match its operation identities`);\n return {\n resourceRef,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.RESOURCE, resourceName: tagName }),\n label: tag.label,\n category: tag.category,\n description: tag.description,\n lifecycleRole: tag.lifecycleRole,\n objectSchemaName: tag.objectSchemaName,\n relationships: tag.relationships.map((relationship) => ({\n ...relationship,\n relatedResourceLabel: resourceTags.get(relationship.relatedResourceName)?.label ?? resourceDisplayLabel(relationship.relatedResourceName),\n })),\n families: [...families.entries()].map(([familyRef, variants]) => ({\n familyRef,\n anchorId: apiReferenceTargetFragment({\n kind: ApiReferenceTargetKind.OPERATION_FAMILY,\n resourceName: tagName,\n operationName: familyRef.split('/').at(-1) ?? familyRef,\n }),\n label: operationFamilyLabel(familyRef),\n variants: variants.sort((a, b) => `${a.path}:${a.method}`.localeCompare(`${b.path}:${b.method}`)),\n })).sort((a, b) => a.familyRef.localeCompare(b.familyRef)),\n };\n }).sort((a, b) => a.label.localeCompare(b.label));\n const parsedComponentSchemas = componentSchemas(isRecord(document.components) ? document.components.schemas : undefined);\n assertCategoryMetadataIsConsistent(result);\n assertPublicAnchorsAreUnique(result, parsedComponentSchemas);\n return {\n title: info.title,\n description: info.description,\n servers: documentServers(document.servers),\n securitySchemes: documentSecuritySchemes(isRecord(document.components) ? document.components.securitySchemes : undefined),\n resources: result,\n componentSchemas: parsedComponentSchemas,\n operationCount: result.flatMap((resource) => resource.families).reduce((count, family) => count + family.variants.length, 0),\n };\n}\n\n/** A category id has one source-owned label and description throughout one document. */\nfunction assertCategoryMetadataIsConsistent(resources: readonly ApiReferenceResource[]): void {\n const categories = new Map<string, ApiReferenceResourceCategory>();\n for (const resource of resources) {\n if (resource.category === null) continue;\n const prior = categories.get(resource.category.id);\n if (prior !== undefined && (prior.label !== resource.category.label || prior.description !== resource.category.description)) {\n throw new Error(`API reference category '${resource.category.id}' has inconsistent source metadata`);\n }\n categories.set(resource.category.id, resource.category);\n }\n}\n\n/**\n * Public fragments must remain readable, but readability cannot excuse a\n * collision. Rejecting a collision keeps copied links deterministic and makes\n * the source identity that needs refinement visible to the generator owner.\n */\nfunction assertPublicAnchorsAreUnique(\n resources: readonly ApiReferenceResource[],\n schemas: readonly ApiReferenceComponentSchema[],\n): void {\n const ownerByAnchor = new Map<string, string>();\n const claim = (anchorId: string, owner: string): void => {\n const existingOwner = ownerByAnchor.get(anchorId);\n if (existingOwner !== undefined) {\n throw new Error(`API reference public fragment '${anchorId}' collides between ${existingOwner} and ${owner}`);\n }\n ownerByAnchor.set(anchorId, owner);\n };\n const categories = new Map(resources.flatMap((resource) => resource.category === null ? [] : [[resource.category.id, resource.category] as const]));\n categories.forEach((category) => claim(category.anchorId, `category '${category.id}'`));\n resources.forEach((resource) => {\n claim(resource.anchorId, resource.resourceRef);\n resource.families.forEach((family) => {\n claim(family.anchorId, family.familyRef);\n family.variants.forEach((variant) => {\n claim(variant.anchorId, variant.variantRef);\n if (variant.requestBody !== null) claim(variant.requestBody.anchorId, `${variant.variantRef}:request`);\n variant.responses.forEach((response) => claim(response.anchorId, `${variant.variantRef}:response:${response.status}`));\n });\n });\n });\n schemas.forEach((schema) => claim(schema.anchorId, `components.schemas.${schema.name}`));\n}\n"]}
1
+ {"version":3,"file":"openapi-reference-model.js","sourceRoot":"","sources":["../../../src/runtime/openapi-reference-model.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Browser-safe projection of one generated OpenAPI document.\n *\n * Navigation is derived in memory from the verified OpenAPI bytes. The model\n * deliberately persists nothing and never invents API meaning: resource tags,\n * `operationId`, standard OpenAPI method/path fields and `x-wildo` source\n * identity are its only inputs.\n */\n\nimport { ApiReferenceTargetKind, apiReferenceTargetFragment } from '../openapi/api-reference-targets';\n\nexport interface ApiReferenceVariant {\n readonly variantRef: string;\n readonly anchorId: string;\n readonly operationId: string;\n readonly summary: string;\n readonly description: string | null;\n readonly method: string;\n readonly path: string;\n /**\n * The canonical path when this route is the same operation reached through a parent\n * (`x-wildo.aliasOfPath`), else `null`. The variant stays a variant — conservation counts it — and\n * the view presents it under the canonical operation instead of as a duplicate.\n */\n readonly aliasOfPath: string | null;\n /** Source-projected authentication and authorization explanation. */\n readonly access: ApiReferenceAccess;\n readonly securitySchemes: readonly string[];\n readonly parameters: readonly ApiReferenceParameter[];\n readonly requestBody: ApiReferenceRequestBody | null;\n readonly responses: readonly ApiReferenceResponse[];\n /** Documented failure modes from `x-wildo.errorScenarios`, in authored order. */\n readonly errorScenarios: readonly ApiReferenceErrorScenario[];\n readonly idempotent: boolean | null;\n}\n\n/**\n * One documented failure mode, with each identifier named by the error-body field a client reads\n * it from: `error.type`, `error.customMessageReference` and `error.code` are three fields.\n */\nexport interface ApiReferenceErrorScenario {\n readonly status: string;\n readonly when: string;\n readonly errorType: string | null;\n readonly customMessageReference: string | null;\n readonly errorCode: string | null;\n}\n\n/** A standard OpenAPI parameter, normalized for a documentation renderer. */\nexport interface ApiReferenceParameter {\n readonly name: string;\n readonly location: string;\n readonly required: boolean;\n readonly description: string | null;\n /** The exact OpenAPI Schema Object attached to this parameter. */\n readonly schema: ApiReferenceSchemaNode | null;\n /** Source-authored OpenAPI examples for this exact path/query/header parameter. */\n readonly examples: readonly ApiReferenceExample[];\n}\n\n/** The available request representations for an operation. */\nexport interface ApiReferenceRequestBody {\n /** Stable public target for this exact operation's request contract. */\n readonly anchorId: string;\n readonly required: boolean;\n readonly mediaTypes: readonly ApiReferenceMediaType[];\n}\n\n/** A request or response representation declared by the OpenAPI contract. */\nexport interface ApiReferenceMediaType {\n readonly mediaType: string;\n /** The exact OpenAPI Schema Object attached to this representation. */\n readonly schema: ApiReferenceSchemaNode | null;\n /** OpenAPI examples, kept as contract data rather than renderer-authored samples. */\n readonly examples: readonly ApiReferenceExample[];\n}\n\n/** One request or response example declared directly in the OpenAPI document. */\nexport interface ApiReferenceExample {\n readonly name: string;\n readonly summary: string | null;\n readonly description: string | null;\n /** Pretty-printed inline JSON when the OpenAPI example provides a serializable `value`. */\n readonly jsonValue: string | null;\n /** OpenAPI's alternative external example location, when supplied. */\n readonly externalValue: string | null;\n}\n\n/** The browser-safe view of the generated `x-wildo.access` contract. */\nexport interface ApiReferenceAccess {\n readonly authenticationMode: string;\n readonly authenticationSummary: string;\n readonly roleRequirements: readonly ApiReferenceRoleRequirement[];\n}\n\n/** One exact runtime role paired with the specification-owned explanation. */\nexport interface ApiReferenceRoleRequirement {\n readonly role: string;\n readonly label: string;\n readonly businessRole: string | null;\n readonly authorityBoundary: string | null;\n}\n\n/** One documented HTTP response. */\nexport interface ApiReferenceResponse {\n /** Stable public target for this exact operation/status response contract. */\n readonly anchorId: string;\n readonly status: string;\n readonly description: string | null;\n readonly mediaTypes: readonly ApiReferenceMediaType[];\n}\n\nexport interface ApiReferenceFamily {\n readonly familyRef: string;\n readonly anchorId: string;\n readonly label: string;\n readonly variants: readonly ApiReferenceVariant[];\n}\n\nexport interface ApiReferenceResource {\n readonly resourceRef: string;\n readonly anchorId: string;\n readonly label: string;\n /** Source-owned category transported through the OpenAPI resource tag. */\n readonly category: ApiReferenceResourceCategory | null;\n readonly description: string | null;\n readonly lifecycleRole: string | null;\n readonly relationships: readonly ApiReferenceResourceRelationship[];\n /**\n * The reusable schema that IS this resource's representation (`x-wildo.objectSchema`), when the\n * generator published one: \"the Tasks object\", shown once on the resource page.\n */\n readonly objectSchemaName: string | null;\n readonly families: readonly ApiReferenceFamily[];\n}\n\n/** A source-declared API-resource category, never inferred from resource names. */\nexport interface ApiReferenceResourceCategory {\n readonly id: string;\n /** Readable category fragment derived from the public target utility. */\n readonly anchorId: string;\n readonly label: string;\n readonly description: string | null;\n}\n\n/** One reusable `components.schemas` contract from the same OpenAPI document. */\nexport interface ApiReferenceComponentSchema {\n readonly name: string;\n readonly anchorId: string;\n readonly schema: ApiReferenceSchemaNode;\n}\n\n/**\n * A browser-safe, recursive projection of one OpenAPI 3.1 Schema Object.\n *\n * `$ref` nodes deliberately remain links instead of being resolved. This both\n * preserves the document's canonical component boundary and makes recursive\n * schemas cycle-safe without imposing a renderer-authored traversal limit.\n */\nexport interface ApiReferenceSchemaNode {\n /** A JSON Schema boolean schema; `null` means this node is an object schema. */\n readonly booleanSchema: boolean | null;\n readonly referenceName: string | null;\n readonly referenceAnchorId: string | null;\n readonly types: readonly string[];\n readonly description: string | null;\n readonly format: string | null;\n /** In the order the contract declares them — the view decides reading order, not the model. */\n readonly properties: readonly ApiReferenceSchemaProperty[];\n readonly items: ApiReferenceSchemaNode | null;\n readonly compositions: readonly ApiReferenceSchemaComposition[];\n readonly enumValues: readonly ApiReferenceSchemaEnumValue[];\n readonly constValue: string | null;\n readonly defaultValue: string | null;\n readonly constraints: readonly ApiReferenceSchemaConstraint[];\n /** `null` means the keyword is absent; a schema-valued keyword remains recursive. */\n readonly additionalProperties: boolean | ApiReferenceSchemaNode | null;\n}\n\n/** One named child of an OpenAPI object schema. */\nexport interface ApiReferenceSchemaProperty {\n readonly name: string;\n readonly required: boolean;\n readonly schema: ApiReferenceSchemaNode;\n}\n\n/** OpenAPI composition keywords are distinct contracts, not interchangeable labels. */\nexport enum ApiReferenceSchemaCompositionKind {\n ONE_OF = 'oneOf',\n ANY_OF = 'anyOf',\n ALL_OF = 'allOf',\n}\n\nexport interface ApiReferenceSchemaComposition {\n readonly kind: ApiReferenceSchemaCompositionKind;\n readonly branches: readonly ApiReferenceSchemaNode[];\n}\n\n/** One JSON value admitted by an OpenAPI enum and its optional source description. */\nexport interface ApiReferenceSchemaEnumValue {\n readonly jsonValue: string;\n readonly description: string | null;\n}\n\n/** Standard Schema Object constraint keywords preserved without interpretation. */\nexport enum ApiReferenceSchemaConstraintKind {\n MINIMUM = 'minimum',\n MAXIMUM = 'maximum',\n EXCLUSIVE_MINIMUM = 'exclusiveMinimum',\n EXCLUSIVE_MAXIMUM = 'exclusiveMaximum',\n MULTIPLE_OF = 'multipleOf',\n MIN_LENGTH = 'minLength',\n MAX_LENGTH = 'maxLength',\n PATTERN = 'pattern',\n MIN_ITEMS = 'minItems',\n MAX_ITEMS = 'maxItems',\n UNIQUE_ITEMS = 'uniqueItems',\n MIN_PROPERTIES = 'minProperties',\n MAX_PROPERTIES = 'maxProperties',\n}\n\nexport interface ApiReferenceSchemaConstraint {\n readonly kind: ApiReferenceSchemaConstraintKind;\n readonly jsonValue: string;\n}\n\n/** A compiled resource-relationship fact projected through the OpenAPI tag. */\nexport interface ApiReferenceResourceRelationship {\n readonly relatedResourceName: string;\n readonly relatedResourceLabel: string;\n readonly foreignKeyField: string | null;\n readonly resourceCardinality: string;\n readonly relatedResourceCardinality: string;\n readonly nature: string;\n readonly lifecycleModel: string;\n readonly onParentDelete: {\n readonly enabled: boolean;\n readonly mode: string;\n readonly strategy: string;\n readonly maxDepth: number;\n /**\n * True for the RESTRICT posture: the parent's delete is refused while these rows exist. Nothing is torn\n * down, so `mode` and `maxDepth` describe nothing and a renderer must not present them.\n */\n readonly refusesWhileChildrenExist: boolean;\n } | null;\n}\n\nexport interface ApiReferenceModel {\n /** Standard OpenAPI document title, when authored by the generator. */\n readonly title: string | null;\n /** Standard CommonMark description; presentation never authors substitute prose. */\n readonly description: string | null;\n /** Exact OpenAPI server choices used to compose an operation URL. */\n readonly servers: readonly ApiReferenceServer[];\n /** Exact reusable authentication mechanisms declared by OpenAPI. */\n readonly securitySchemes: readonly ApiReferenceSecurityScheme[];\n readonly resources: readonly ApiReferenceResource[];\n readonly componentSchemas: readonly ApiReferenceComponentSchema[];\n readonly operationCount: number;\n}\n\nexport interface ApiReferenceServer {\n readonly url: string;\n readonly description: string | null;\n}\n\n/** Browser-safe projection of an OpenAPI Security Scheme Object. */\nexport interface ApiReferenceSecurityScheme {\n readonly name: string;\n readonly type: string;\n readonly scheme: string | null;\n readonly bearerFormat: string | null;\n readonly location: string | null;\n readonly parameterName: string | null;\n readonly description: string | null;\n}\n\ntype UnknownRecord = Record<string, unknown>;\n\n/**\n * OpenAPI path-item members that describe an HTTP operation. Other members,\n * such as path-level parameters, are not individually navigable reference\n * entries. Every member in this vocabulary must carry Wildo identity metadata:\n * silently ignoring one would make the rendered reference incomplete.\n */\nconst OPENAPI_HTTP_METHODS: ReadonlySet<string> = new Set(['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace']);\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction documentInfo(value: unknown): { readonly title: string | null; readonly description: string | null } {\n if (value === undefined) return { title: null, description: null };\n if (!isRecord(value)) throw new Error('API reference document has malformed OpenAPI info');\n if (value.title !== undefined && typeof value.title !== 'string') throw new Error('API reference document has malformed OpenAPI info.title');\n if (value.description !== undefined && typeof value.description !== 'string') throw new Error('API reference document has malformed OpenAPI info.description');\n return {\n title: typeof value.title === 'string' ? value.title : null,\n description: typeof value.description === 'string' ? value.description : null,\n };\n}\n\nfunction documentServers(value: unknown): readonly ApiReferenceServer[] {\n if (value === undefined) return [];\n if (!Array.isArray(value)) throw new Error('API reference document has malformed OpenAPI servers');\n return value.map((server, index) => {\n if (!isRecord(server) || typeof server.url !== 'string') throw new Error(`API reference server at index ${index} has no URL`);\n if (server.description !== undefined && typeof server.description !== 'string') {\n throw new Error(`API reference server at index ${index} has a malformed description`);\n }\n return {\n url: server.url,\n description: typeof server.description === 'string' ? server.description : null,\n };\n });\n}\n\nfunction documentSecuritySchemes(value: unknown): readonly ApiReferenceSecurityScheme[] {\n if (value === undefined) return [];\n if (!isRecord(value)) throw new Error('API reference document has malformed OpenAPI security schemes');\n return Object.entries(value).map(([name, scheme]) => {\n if (!isRecord(scheme) || typeof scheme.type !== 'string') throw new Error(`API reference security scheme '${name}' is malformed`);\n for (const field of ['scheme', 'bearerFormat', 'in', 'name', 'description'] as const) {\n if (scheme[field] !== undefined && typeof scheme[field] !== 'string') {\n throw new Error(`API reference security scheme '${name}' has malformed '${field}'`);\n }\n }\n return {\n name,\n type: scheme.type,\n scheme: typeof scheme.scheme === 'string' ? scheme.scheme : null,\n bearerFormat: typeof scheme.bearerFormat === 'string' ? scheme.bearerFormat : null,\n location: typeof scheme.in === 'string' ? scheme.in : null,\n parameterName: typeof scheme.name === 'string' ? scheme.name : null,\n description: typeof scheme.description === 'string' ? scheme.description : null,\n };\n }).sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction access(value: unknown): ApiReferenceAccess {\n if (!isRecord(value) || typeof value.authenticationMode !== 'string' || typeof value.authenticationSummary !== 'string' || !Array.isArray(value.roleRequirements)) {\n throw new Error('API reference operation has no valid x-wildo access contract');\n }\n const roleRequirements = value.roleRequirements.map((requirement) => {\n if (!isRecord(requirement) || typeof requirement.role !== 'string' || typeof requirement.label !== 'string') {\n throw new Error('API reference operation has a malformed x-wildo role requirement');\n }\n if (requirement.businessRole !== null && requirement.businessRole !== undefined && typeof requirement.businessRole !== 'string') {\n throw new Error('API reference operation has a malformed role business explanation');\n }\n if (requirement.authorityBoundary !== null && requirement.authorityBoundary !== undefined && typeof requirement.authorityBoundary !== 'string') {\n throw new Error('API reference operation has a malformed role authority boundary');\n }\n return {\n role: requirement.role,\n label: requirement.label,\n businessRole: typeof requirement.businessRole === 'string' ? requirement.businessRole : null,\n authorityBoundary: typeof requirement.authorityBoundary === 'string' ? requirement.authorityBoundary : null,\n };\n });\n return {\n authenticationMode: value.authenticationMode,\n authenticationSummary: value.authenticationSummary,\n roleRequirements,\n };\n}\n\nfunction componentSchemaReference(value: unknown): { readonly name: string; readonly anchorId: string } | null {\n if (!isRecord(value) || typeof value.$ref !== 'string') return null;\n const schemaName = value.$ref.match(/^#\\/components\\/schemas\\/([^/]+)$/)?.[1];\n return schemaName === undefined\n ? { name: value.$ref, anchorId: null }\n : {\n name: schemaName,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.COMPONENT_SCHEMA, schemaName }),\n };\n}\n\nfunction serializeExampleJson(value: unknown): string | null {\n if (value === undefined) return null;\n try {\n const serialized = JSON.stringify(value, null, 2);\n return typeof serialized === 'string' ? serialized : null;\n } catch {\n // A malformed external OpenAPI document must not make the reference page\n // unusable merely because an example cannot be represented as JSON.\n return null;\n }\n}\n\nfunction schemaConstraint(\n schema: UnknownRecord,\n kind: ApiReferenceSchemaConstraintKind,\n): ApiReferenceSchemaConstraint | null {\n const jsonValue = serializeExampleJson(schema[kind]);\n return jsonValue === null ? null : { kind, jsonValue };\n}\n\nfunction schemaNodeOrThrow(value: unknown, owner: string): ApiReferenceSchemaNode {\n const schema = schemaNode(value);\n if (schema === null) throw new Error(`API reference ${owner} has a malformed OpenAPI schema`);\n return schema;\n}\n\n/**\n * Recursively projects only fields supplied by the OpenAPI Schema Object.\n *\n * semantic-literal-boundary: OpenAPI 3.1 Schema Object keywords are translated\n * once at this browser boundary; React consumes the named model exclusively.\n */\nfunction schemaNode(value: unknown): ApiReferenceSchemaNode | null {\n if (typeof value === 'boolean') {\n return {\n booleanSchema: value,\n referenceName: null,\n referenceAnchorId: null,\n types: [],\n description: null,\n format: null,\n properties: [],\n items: null,\n compositions: [],\n enumValues: [],\n constValue: null,\n defaultValue: null,\n constraints: [],\n additionalProperties: null,\n };\n }\n if (!isRecord(value)) return null;\n\n const reference = componentSchemaReference(value);\n const requiredPropertyNames = Array.isArray(value.required)\n ? new Set(value.required.filter((propertyName): propertyName is string => typeof propertyName === 'string'))\n : new Set<string>();\n const properties = isRecord(value.properties)\n ? Object.entries(value.properties).map(([name, propertySchema]) => ({\n name,\n required: requiredPropertyNames.has(name),\n schema: schemaNodeOrThrow(propertySchema, `property '${name}'`),\n }))\n : [];\n const compositionSources: ReadonlyArray<readonly [ApiReferenceSchemaCompositionKind, unknown]> = [\n [ApiReferenceSchemaCompositionKind.ONE_OF, value.oneOf],\n [ApiReferenceSchemaCompositionKind.ANY_OF, value.anyOf],\n [ApiReferenceSchemaCompositionKind.ALL_OF, value.allOf],\n ];\n const compositions = compositionSources.flatMap(([kind, branches]) => {\n if (!Array.isArray(branches)) return [];\n return [{ kind, branches: branches.map((branch, index) => schemaNodeOrThrow(branch, `${kind} branch ${index}`)) }];\n });\n const enumDescriptions = isRecord(value['x-enum-descriptions']) ? value['x-enum-descriptions'] : {};\n const enumValues = Array.isArray(value.enum)\n ? value.enum.flatMap((enumValue) => {\n const jsonValue = serializeExampleJson(enumValue);\n if (jsonValue === null) return [];\n const description = enumDescriptions[String(enumValue)];\n return [{ jsonValue, description: typeof description === 'string' ? description : null }];\n })\n : [];\n const types = typeof value.type === 'string'\n ? [value.type]\n : Array.isArray(value.type)\n ? value.type.filter((type): type is string => typeof type === 'string')\n : [];\n const additionalProperties = value.additionalProperties === undefined\n ? null\n : typeof value.additionalProperties === 'boolean'\n ? value.additionalProperties\n : schemaNodeOrThrow(value.additionalProperties, 'additionalProperties');\n\n return {\n booleanSchema: null,\n referenceName: reference?.name ?? null,\n referenceAnchorId: reference?.anchorId ?? null,\n types,\n description: typeof value.description === 'string' ? value.description : null,\n format: typeof value.format === 'string' ? value.format : null,\n properties,\n items: value.items === undefined ? null : schemaNodeOrThrow(value.items, 'array items'),\n compositions,\n enumValues,\n constValue: serializeExampleJson(value.const),\n defaultValue: serializeExampleJson(value.default),\n constraints: [\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MINIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAXIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.EXCLUSIVE_MINIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.EXCLUSIVE_MAXIMUM),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MULTIPLE_OF),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MIN_LENGTH),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAX_LENGTH),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.PATTERN),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MIN_ITEMS),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAX_ITEMS),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.UNIQUE_ITEMS),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MIN_PROPERTIES),\n schemaConstraint(value, ApiReferenceSchemaConstraintKind.MAX_PROPERTIES),\n ].filter((constraint): constraint is ApiReferenceSchemaConstraint => constraint !== null),\n additionalProperties,\n };\n}\n\nfunction openApiExamples(value: unknown): readonly ApiReferenceExample[] {\n if (!isRecord(value)) return [];\n return Object.entries(value)\n .map(([name, example]) => {\n if (!isRecord(example)) return null;\n return {\n name,\n summary: typeof example.summary === 'string' ? example.summary : null,\n description: typeof example.description === 'string' ? example.description : null,\n jsonValue: serializeExampleJson(example.value),\n externalValue: typeof example.externalValue === 'string' ? example.externalValue : null,\n };\n })\n .filter((example): example is ApiReferenceExample => example !== null)\n .sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction mediaTypes(value: unknown): readonly ApiReferenceMediaType[] {\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([mediaType, representation]) => {\n if (!isRecord(representation)) return { mediaType, schema: null, examples: [] };\n const namedExamples = openApiExamples(representation.examples);\n const inlineExample = representation.example === undefined\n ? []\n : [{ name: 'Example', summary: null, description: null, jsonValue: serializeExampleJson(representation.example), externalValue: null }];\n return {\n mediaType,\n schema: representation.schema === undefined ? null : schemaNodeOrThrow(representation.schema, `media type '${mediaType}'`),\n examples: [...namedExamples, ...inlineExample],\n };\n }).sort((a, b) => a.mediaType.localeCompare(b.mediaType));\n}\n\n/** Projects reusable OpenAPI components without re-authoring their schema meaning in React. */\nfunction componentSchemas(value: unknown): readonly ApiReferenceComponentSchema[] {\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([name, sourceSchema]) => {\n const schema = schemaNodeOrThrow(sourceSchema, `component schema '${name}'`);\n return {\n name,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.COMPONENT_SCHEMA, schemaName: name }),\n schema,\n };\n }).sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction parameter(value: unknown): ApiReferenceParameter | null {\n if (!isRecord(value) || typeof value.name !== 'string' || typeof value.in !== 'string') return null;\n const namedExamples = openApiExamples(value.examples);\n const inlineExample = value.example === undefined\n ? []\n : [{ name: 'Example', summary: null, description: null, jsonValue: serializeExampleJson(value.example), externalValue: null }];\n return {\n name: value.name,\n location: value.in,\n required: value.required === true,\n description: typeof value.description === 'string' ? value.description : null,\n schema: value.schema === undefined ? null : schemaNodeOrThrow(value.schema, `parameter '${value.name}'`),\n // Parameter Object supports the same named-example and single-inline-example\n // forms as Media Type Object. Preserve either form from external OpenAPI;\n // source generation currently emits the named form for query inputs.\n examples: [...namedExamples, ...inlineExample],\n };\n}\n\nfunction requestBody(value: unknown, operationId: string): ApiReferenceRequestBody | null {\n if (!isRecord(value)) return null;\n return {\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.REQUEST, operationId }),\n required: value.required === true,\n mediaTypes: mediaTypes(value.content),\n };\n}\n\n/**\n * Follows a Response Object `$ref` to the document's `components.responses`.\n *\n * The generator publishes the statuses every operation shares — `401` and `500` — once, as\n * `#/components/responses/<Name>`, and references them from each operation. Reading only inline\n * responses rendered roughly 1,800 of them in the Wonder Todos document as a bare status with no\n * description and \"No structured representation\", although the document carried both. A reference\n * that names no component is a malformed document, so it refuses rather than render an empty status.\n */\nfunction resolveResponseObject(response: unknown, componentResponses: UnknownRecord, owner: string): unknown {\n let current = response;\n const visited = new Set<string>();\n // A component response may itself be a reference to another one; follow the chain, refusing a cycle.\n while (isRecord(current) && typeof current.$ref === 'string') {\n const reference = current.$ref;\n if (visited.has(reference)) throw new Error(`API reference ${owner} has a circular response reference '${reference}'`);\n visited.add(reference);\n const encodedName = reference.match(/^#\\/components\\/responses\\/([^/]+)$/)?.[1];\n // JSON Pointer (RFC 6901 §4): `~1` decodes to `/` and `~0` to `~`, in that order.\n const name = encodedName?.replace(/~1/g, '/').replace(/~0/g, '~');\n const resolved = name === undefined ? undefined : componentResponses[name];\n if (!isRecord(resolved)) throw new Error(`API reference ${owner} references an unknown response '${reference}'`);\n current = resolved;\n }\n return current;\n}\n\nfunction responses(value: unknown, operationId: string, componentResponses: UnknownRecord): readonly ApiReferenceResponse[] {\n if (!isRecord(value)) return [];\n return Object.entries(value).map(([status, reference]) => {\n const response = resolveResponseObject(reference, componentResponses, `${operationId} response ${status}`);\n return {\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.RESPONSE, operationId, status }),\n status,\n description: isRecord(response) && typeof response.description === 'string' ? response.description : null,\n mediaTypes: isRecord(response) ? mediaTypes(response.content) : [],\n };\n }).sort((a, b) => a.status.localeCompare(b.status, undefined, { numeric: true }));\n}\n\nfunction errorScenarios(value: unknown): readonly ApiReferenceErrorScenario[] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((scenario) => {\n if (!isRecord(scenario) || typeof scenario.status !== 'string' || typeof scenario.when !== 'string') return [];\n const optional = (field: unknown): string | null => typeof field === 'string' && field.length > 0 ? field : null;\n return [{\n status: scenario.status,\n when: scenario.when,\n errorType: optional(scenario.errorType),\n customMessageReference: optional(scenario.customMessageReference),\n errorCode: optional(scenario.errorCode),\n }];\n });\n}\n\nfunction securitySchemes(value: unknown): readonly string[] {\n if (!Array.isArray(value)) return [];\n return [...new Set(value.flatMap((requirement) => isRecord(requirement) ? Object.keys(requirement) : []))].sort((a, b) => a.localeCompare(b));\n}\n\nfunction resourceRelationships(value: unknown): readonly ApiReferenceResourceRelationship[] {\n if (!Array.isArray(value)) return [];\n return value.map((relationship, index) => {\n if (!isRecord(relationship)\n || typeof relationship.relatedResourceName !== 'string'\n || typeof relationship.resourceCardinality !== 'string'\n || typeof relationship.relatedResourceCardinality !== 'string'\n || typeof relationship.nature !== 'string'\n || typeof relationship.lifecycleModel !== 'string') {\n throw new Error(`API reference resource relationship at index ${index} is malformed`);\n }\n const parentDelete = relationship.onParentDelete;\n if (parentDelete !== undefined && (!isRecord(parentDelete)\n || typeof parentDelete.enabled !== 'boolean'\n || typeof parentDelete.mode !== 'string'\n || typeof parentDelete.strategy !== 'string'\n || typeof parentDelete.maxDepth !== 'number')) {\n throw new Error(`API reference resource relationship at index ${index} has malformed parent-delete lifecycle`);\n }\n return {\n relatedResourceName: relationship.relatedResourceName,\n relatedResourceLabel: relationship.relatedResourceName,\n foreignKeyField: typeof relationship.foreignKeyField === 'string' ? relationship.foreignKeyField : null,\n resourceCardinality: relationship.resourceCardinality,\n relatedResourceCardinality: relationship.relatedResourceCardinality,\n nature: relationship.nature,\n lifecycleModel: relationship.lifecycleModel,\n onParentDelete: isRecord(parentDelete) ? {\n enabled: parentDelete.enabled as boolean,\n mode: parentDelete.mode as string,\n strategy: parentDelete.strategy as string,\n maxDepth: parentDelete.maxDepth as number,\n // semantic-literal-boundary: the wire value of ResourceRelationshipDocumentationDeleteStrategy.REFUSE_WHILE_CHILDREN_EXIST, read from the published OpenAPI document this runtime model parses without importing the companion schemas.\n refusesWhileChildrenExist: parentDelete.strategy === 'refuse_while_children_exist',\n } : null,\n };\n });\n}\n\n/** Parses the strict category contract carried by `tags[].x-wildo.category`. */\nfunction resourceCategory(value: unknown): ApiReferenceResourceCategory | null {\n if (value === undefined) return null;\n if (!isRecord(value) || typeof value.id !== 'string' || typeof value.label !== 'string') {\n throw new Error('API reference resource tag has malformed x-wildo category');\n }\n if (value.description !== undefined && typeof value.description !== 'string') {\n throw new Error('API reference resource tag has malformed category description');\n }\n return {\n id: value.id,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.CATEGORY, categoryName: value.id }),\n label: value.label,\n description: typeof value.description === 'string' ? value.description : null,\n };\n}\n\n/**\n * The family's readable name. The family reference is a URI, so an identifier carrying a `:` arrives\n * percent-encoded (`collectionExport%3Alist`) and was shown that way (\"Collection Export%3Alist\"). It is\n * decoded first, and each `:`-separated part is spelled on its own: \"Collection Export · list\".\n */\nfunction operationFamilyLabel(familyRef: string): string {\n const encoded = familyRef.split('/operation-family/').at(-1)?.split('/').at(0) ?? familyRef;\n let identifier = encoded;\n try {\n identifier = decodeURIComponent(encoded);\n } catch {\n // A malformed escape is shown as written rather than failing the whole reference.\n }\n return identifier\n .split(':')\n // invented-display-text: generated API REFERENCE prose. The technical-doc lane has no label tree\n // and is not translated — the identifier it renders is the API's own public name.\n .map((part) => part.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/[-_]/g, ' ').trim())\n .filter((part) => part.length > 0)\n .join(' · ')\n .replace(/^./, (character) => character.toUpperCase());\n}\n\n/**\n * Presentation-only fallback for a resource whose related tag is absent from\n * this section (for example, a cron-only resource). It never changes the\n * canonical resource identity; it only prevents raw camelCase identifiers from\n * leaking into the reference when no source-authored display tag is available.\n */\nfunction resourceDisplayLabel(identifier: string): string {\n // invented-display-text: generated API reference prose, as above.\n return identifier\n .replace(/([a-z0-9])([A-Z])/g, '$1 $2')\n .replace(/[-_]/g, ' ')\n .replace(/\\b\\w/g, (character) => character.toUpperCase());\n}\n\n/** Creates the two-level resource → operation-family view from OpenAPI. */\nexport function createApiReferenceModel(document: unknown): ApiReferenceModel {\n if (!isRecord(document) || !isRecord(document.paths)) throw new Error('API reference document has no OpenAPI paths object');\n const info = documentInfo(document.info);\n const resourceTags = new Map<string, {\n readonly resourceRef: string;\n readonly label: string;\n readonly description: string | null;\n readonly category: ApiReferenceResourceCategory | null;\n readonly lifecycleRole: string | null;\n readonly relationships: readonly ApiReferenceResourceRelationship[];\n readonly objectSchemaName: string | null;\n }>();\n if (Array.isArray(document.tags)) {\n for (const tag of document.tags) {\n if (isRecord(tag) && typeof tag.name === 'string') {\n if (!isRecord(tag['x-wildo']) || typeof tag['x-wildo'].resourceRef !== 'string') {\n throw new Error(`API reference resource tag '${tag.name}' has no x-wildo resource identity`);\n }\n if (resourceTags.has(tag.name)) throw new Error(`API reference resource tag is duplicated: ${tag.name}`);\n resourceTags.set(tag.name, {\n resourceRef: tag['x-wildo'].resourceRef,\n label: typeof tag['x-displayName'] === 'string' ? tag['x-displayName'] : resourceDisplayLabel(tag.name),\n description: typeof tag.description === 'string' ? tag.description : null,\n category: resourceCategory(tag['x-wildo'].category),\n lifecycleRole: typeof tag['x-wildo'].lifecycleRole === 'string' ? tag['x-wildo'].lifecycleRole : null,\n relationships: resourceRelationships(tag['x-wildo'].relationships),\n objectSchemaName: typeof tag['x-wildo'].objectSchema === 'string' ? tag['x-wildo'].objectSchema : null,\n });\n }\n }\n }\n const componentResponses = isRecord(document.components) && isRecord(document.components.responses) ? document.components.responses : {};\n const resources = new Map<string, Map<string, ApiReferenceVariant[]>>();\n const operationIds = new Set<string>();\n const operationVariantRefs = new Set<string>();\n for (const [path, item] of Object.entries(document.paths)) {\n if (!isRecord(item)) continue;\n for (const [method, operation] of Object.entries(item)) {\n if (!OPENAPI_HTTP_METHODS.has(method)) continue;\n if (!isRecord(operation)) throw new Error(`API reference ${method.toUpperCase()} ${path} operation is malformed`);\n if (!isRecord(operation['x-wildo'])) throw new Error(`API reference ${method.toUpperCase()} ${path} operation has no x-wildo identity`);\n const metadata = operation['x-wildo'];\n if (typeof metadata.resourceRef !== 'string' || typeof metadata.operationFamilyRef !== 'string' || typeof metadata.operationVariantRef !== 'string') {\n throw new Error('API reference operation has malformed x-wildo identity');\n }\n if (metadata.path !== path || metadata.httpVerb !== method.toLowerCase()) throw new Error('API reference operation x-wildo identity does not match its OpenAPI method/path');\n if (typeof operation.operationId !== 'string' || operation.operationId.length === 0) throw new Error('API reference operation has no operationId');\n if (operationIds.has(operation.operationId)) throw new Error(`API reference operationId is duplicated: ${operation.operationId}`);\n operationIds.add(operation.operationId);\n if (operationVariantRefs.has(metadata.operationVariantRef)) throw new Error(`API reference operation variant identity is duplicated: ${metadata.operationVariantRef}`);\n operationVariantRefs.add(metadata.operationVariantRef);\n const resource = resources.get(metadata.resourceRef) ?? new Map<string, ApiReferenceVariant[]>();\n const family = resource.get(metadata.operationFamilyRef) ?? [];\n family.push({\n variantRef: metadata.operationVariantRef,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.OPERATION, operationId: operation.operationId }),\n operationId: operation.operationId,\n summary: typeof operation.summary === 'string' ? operation.summary : `${method.toUpperCase()} ${path}`,\n description: typeof operation.description === 'string' ? operation.description : null,\n method: method.toUpperCase(),\n path,\n aliasOfPath: typeof metadata.aliasOfPath === 'string' ? metadata.aliasOfPath : null,\n access: access(metadata.access),\n securitySchemes: securitySchemes(operation.security),\n parameters: Array.isArray(operation.parameters) ? operation.parameters.map(parameter).filter((item): item is ApiReferenceParameter => item !== null) : [],\n requestBody: requestBody(operation.requestBody, operation.operationId),\n responses: responses(operation.responses, operation.operationId, componentResponses),\n errorScenarios: errorScenarios(metadata.errorScenarios),\n idempotent: typeof operation['x-idempotent'] === 'boolean' ? operation['x-idempotent'] : null,\n });\n resource.set(metadata.operationFamilyRef, family);\n resources.set(metadata.resourceRef, resource);\n }\n }\n const result = [...resources.entries()].map(([resourceRef, families]) => {\n const tagName = resourceRef.split('/').at(-1) ?? resourceRef;\n const tag = resourceTags.get(tagName);\n if (tag === undefined) throw new Error(`API reference resource '${resourceRef}' has no generated OpenAPI tag`);\n if (tag.resourceRef !== resourceRef) throw new Error(`API reference tag '${tagName}' resource identity does not match its operation identities`);\n return {\n resourceRef,\n anchorId: apiReferenceTargetFragment({ kind: ApiReferenceTargetKind.RESOURCE, resourceName: tagName }),\n label: tag.label,\n category: tag.category,\n description: tag.description,\n lifecycleRole: tag.lifecycleRole,\n objectSchemaName: tag.objectSchemaName,\n relationships: tag.relationships.map((relationship) => ({\n ...relationship,\n relatedResourceLabel: resourceTags.get(relationship.relatedResourceName)?.label ?? resourceDisplayLabel(relationship.relatedResourceName),\n })),\n families: [...families.entries()].map(([familyRef, variants]) => ({\n familyRef,\n anchorId: apiReferenceTargetFragment({\n kind: ApiReferenceTargetKind.OPERATION_FAMILY,\n resourceName: tagName,\n operationName: familyRef.split('/').at(-1) ?? familyRef,\n }),\n label: operationFamilyLabel(familyRef),\n variants: variants.sort((a, b) => `${a.path}:${a.method}`.localeCompare(`${b.path}:${b.method}`)),\n })).sort((a, b) => a.familyRef.localeCompare(b.familyRef)),\n };\n }).sort((a, b) => a.label.localeCompare(b.label));\n const parsedComponentSchemas = componentSchemas(isRecord(document.components) ? document.components.schemas : undefined);\n assertCategoryMetadataIsConsistent(result);\n assertPublicAnchorsAreUnique(result, parsedComponentSchemas);\n return {\n title: info.title,\n description: info.description,\n servers: documentServers(document.servers),\n securitySchemes: documentSecuritySchemes(isRecord(document.components) ? document.components.securitySchemes : undefined),\n resources: result,\n componentSchemas: parsedComponentSchemas,\n operationCount: result.flatMap((resource) => resource.families).reduce((count, family) => count + family.variants.length, 0),\n };\n}\n\n/** A category id has one source-owned label and description throughout one document. */\nfunction assertCategoryMetadataIsConsistent(resources: readonly ApiReferenceResource[]): void {\n const categories = new Map<string, ApiReferenceResourceCategory>();\n for (const resource of resources) {\n if (resource.category === null) continue;\n const prior = categories.get(resource.category.id);\n if (prior !== undefined && (prior.label !== resource.category.label || prior.description !== resource.category.description)) {\n throw new Error(`API reference category '${resource.category.id}' has inconsistent source metadata`);\n }\n categories.set(resource.category.id, resource.category);\n }\n}\n\n/**\n * Public fragments must remain readable, but readability cannot excuse a\n * collision. Rejecting a collision keeps copied links deterministic and makes\n * the source identity that needs refinement visible to the generator owner.\n */\nfunction assertPublicAnchorsAreUnique(\n resources: readonly ApiReferenceResource[],\n schemas: readonly ApiReferenceComponentSchema[],\n): void {\n const ownerByAnchor = new Map<string, string>();\n const claim = (anchorId: string, owner: string): void => {\n const existingOwner = ownerByAnchor.get(anchorId);\n if (existingOwner !== undefined) {\n throw new Error(`API reference public fragment '${anchorId}' collides between ${existingOwner} and ${owner}`);\n }\n ownerByAnchor.set(anchorId, owner);\n };\n const categories = new Map(resources.flatMap((resource) => resource.category === null ? [] : [[resource.category.id, resource.category] as const]));\n categories.forEach((category) => claim(category.anchorId, `category '${category.id}'`));\n resources.forEach((resource) => {\n claim(resource.anchorId, resource.resourceRef);\n resource.families.forEach((family) => {\n claim(family.anchorId, family.familyRef);\n family.variants.forEach((variant) => {\n claim(variant.anchorId, variant.variantRef);\n if (variant.requestBody !== null) claim(variant.requestBody.anchorId, `${variant.variantRef}:request`);\n variant.responses.forEach((response) => claim(response.anchorId, `${variant.variantRef}:response:${response.status}`));\n });\n });\n });\n schemas.forEach((schema) => claim(schema.anchorId, `components.schemas.${schema.name}`));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-navigation.d.ts","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGzF,kGAAkG;AAClG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,oGAAoG;AACpG,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qGAAqG;AACrG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,GAAG,MAAM,CAEpG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAA;CAAE,GAClI,sBAAsB,CAuBxB"}
1
+ {"version":3,"file":"openapi-reference-navigation.d.ts","sourceRoot":"","sources":["../../../src/runtime/openapi-reference-navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGzF,kGAAkG;AAClG,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,oGAAoG;AACpG,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,8BAA8B,EAAE,CAAC;CAC/D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC/D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qGAAqG;AACrG,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,GAAG,MAAM,CAEpG;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAA;CAAE,GAClI,sBAAsB,CAuBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-navigation.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AA+BhF,qGAAqG;AACrG,MAAM,UAAU,wBAAwB,CAAC,QAAmD;IAC1F,OAAO,4BAA4B,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAwB,EACxB,OAAmI;IAEnI,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiF,CAAC;IAC5G,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,mBAAmB,CAAC;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAClG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE;YACxE,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/F,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aACvF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvH,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QACrC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The navigation a reference page's left rail shows: every resource of the section, grouped by its\n * source-declared category, each leading to its own page.\n *\n * A resource page carries only its own slice of the document (#1623), so it cannot compute this from\n * its own model. The portal builds it ONCE per section from the section's index model, at compile\n * time, and hands the same small value to every page of that section. It is plain data — labels,\n * links and counts — so it serializes into a route module and holds no schema.\n *\n * Browser-safe and Node-safe: no React, no Node built-ins.\n */\n\nimport type { ApiReferenceModel, ApiReferenceResource } from './openapi-reference-model';\nimport { apiReferenceResourcePageSlug } from '../openapi/api-reference-targets';\n\n/** A section of the same portal the reader can switch to (the API, the administration API, …). */\nexport interface ApiReferenceNavigationSection {\n readonly label: string;\n readonly href: string;\n}\n\nexport interface ApiReferenceNavigationResource {\n readonly resourceRef: string;\n readonly label: string;\n readonly href: string;\n readonly operationCount: number;\n}\n\n/** A category of resources; `label` is `null` for resources whose document declares no category. */\nexport interface ApiReferenceNavigationCategory {\n readonly id: string;\n readonly label: string | null;\n readonly resources: readonly ApiReferenceNavigationResource[];\n}\n\nexport interface ApiReferenceNavigation {\n readonly title: string;\n readonly sectionRootPath: string;\n readonly sections: readonly ApiReferenceNavigationSection[];\n readonly categories: readonly ApiReferenceNavigationCategory[];\n readonly resourceCount: number;\n readonly operationCount: number;\n}\n\n/** The page slug of a resource: the readable part of its reference, as the page plan computes it. */\nexport function apiReferenceResourceSlug(resource: Pick<ApiReferenceResource, 'resourceRef'>): string {\n return apiReferenceResourcePageSlug(resource.resourceRef.split('/').at(-1) ?? resource.resourceRef);\n}\n\n/**\n * Builds a section's navigation from its index model. Categories and resources keep the order the\n * reader sees on the index page: categories by label (uncategorized last), resources as the document\n * lists them.\n */\nexport function buildApiReferenceNavigation(\n model: ApiReferenceModel,\n options: { readonly title: string; readonly sectionRootPath: string; readonly sections?: readonly ApiReferenceNavigationSection[] },\n): ApiReferenceNavigation {\n const categories = new Map<string, { label: string | null; resources: ApiReferenceNavigationResource[] }>();\n for (const resource of model.resources) {\n const id = resource.category?.id ?? '__uncategorized__';\n const category = categories.get(id) ?? { label: resource.category?.label ?? null, resources: [] };\n category.resources.push({\n resourceRef: resource.resourceRef,\n label: resource.label,\n href: `${options.sectionRootPath}/${apiReferenceResourceSlug(resource)}`,\n operationCount: resource.families.reduce((count, family) => count + family.variants.length, 0),\n });\n categories.set(id, category);\n }\n return {\n title: options.title,\n sectionRootPath: options.sectionRootPath,\n sections: options.sections ?? [],\n categories: [...categories.entries()]\n .map(([id, category]) => ({ id, label: category.label, resources: category.resources }))\n .sort((left, right) => (left.label === null ? 1 : right.label === null ? -1 : left.label.localeCompare(right.label))),\n resourceCount: model.resources.length,\n operationCount: model.operationCount,\n };\n}\n"]}
1
+ {"version":3,"file":"openapi-reference-navigation.js","sourceRoot":"","sources":["../../../src/runtime/openapi-reference-navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,4BAA4B,EAAE,MAAM,kCAAkC,CAAC;AA+BhF,qGAAqG;AACrG,MAAM,UAAU,wBAAwB,CAAC,QAAmD;IAC1F,OAAO,4BAA4B,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAwB,EACxB,OAAmI;IAEnI,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiF,CAAC;IAC5G,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,IAAI,mBAAmB,CAAC;QACxD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAClG,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,wBAAwB,CAAC,QAAQ,CAAC,EAAE;YACxE,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;SAC/F,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;aACvF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACvH,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM;QACrC,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * The navigation a reference page's left rail shows: every resource of the section, grouped by its\n * source-declared category, each leading to its own page.\n *\n * A resource page carries only its own slice of the document (#1623), so it cannot compute this from\n * its own model. The portal builds it ONCE per section from the section's index model, at compile\n * time, and hands the same small value to every page of that section. It is plain data — labels,\n * links and counts — so it serializes into a route module and holds no schema.\n *\n * Browser-safe and Node-safe: no React, no Node built-ins.\n */\n\nimport type { ApiReferenceModel, ApiReferenceResource } from './openapi-reference-model';\nimport { apiReferenceResourcePageSlug } from '../openapi/api-reference-targets';\n\n/** A section of the same portal the reader can switch to (the API, the administration API, …). */\nexport interface ApiReferenceNavigationSection {\n readonly label: string;\n readonly href: string;\n}\n\nexport interface ApiReferenceNavigationResource {\n readonly resourceRef: string;\n readonly label: string;\n readonly href: string;\n readonly operationCount: number;\n}\n\n/** A category of resources; `label` is `null` for resources whose document declares no category. */\nexport interface ApiReferenceNavigationCategory {\n readonly id: string;\n readonly label: string | null;\n readonly resources: readonly ApiReferenceNavigationResource[];\n}\n\nexport interface ApiReferenceNavigation {\n readonly title: string;\n readonly sectionRootPath: string;\n readonly sections: readonly ApiReferenceNavigationSection[];\n readonly categories: readonly ApiReferenceNavigationCategory[];\n readonly resourceCount: number;\n readonly operationCount: number;\n}\n\n/** The page slug of a resource: the readable part of its reference, as the page plan computes it. */\nexport function apiReferenceResourceSlug(resource: Pick<ApiReferenceResource, 'resourceRef'>): string {\n return apiReferenceResourcePageSlug(resource.resourceRef.split('/').at(-1) ?? resource.resourceRef);\n}\n\n/**\n * Builds a section's navigation from its index model. Categories and resources keep the order the\n * reader sees on the index page: categories by label (uncategorized last), resources as the document\n * lists them.\n */\nexport function buildApiReferenceNavigation(\n model: ApiReferenceModel,\n options: { readonly title: string; readonly sectionRootPath: string; readonly sections?: readonly ApiReferenceNavigationSection[] },\n): ApiReferenceNavigation {\n const categories = new Map<string, { label: string | null; resources: ApiReferenceNavigationResource[] }>();\n for (const resource of model.resources) {\n const id = resource.category?.id ?? '__uncategorized__';\n const category = categories.get(id) ?? { label: resource.category?.label ?? null, resources: [] };\n category.resources.push({\n resourceRef: resource.resourceRef,\n label: resource.label,\n href: `${options.sectionRootPath}/${apiReferenceResourceSlug(resource)}`,\n operationCount: resource.families.reduce((count, family) => count + family.variants.length, 0),\n });\n categories.set(id, category);\n }\n return {\n title: options.title,\n sectionRootPath: options.sectionRootPath,\n sections: options.sections ?? [],\n categories: [...categories.entries()]\n .map(([id, category]) => ({ id, label: category.label, resources: category.resources }))\n .sort((left, right) => (left.label === null ? 1 : right.label === null ? -1 : left.label.localeCompare(right.label))),\n resourceCount: model.resources.length,\n operationCount: model.operationCount,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-samples.d.ts","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-samples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAyB,oBAAoB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AA8B9I,uEAAuE;AACvE,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAgDD,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,MAAM,CAMR;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,MAAM,CAaR;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,MAAM,CAWR;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAMtD;AAiCD,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,0BAA0B,EAAE,CASjH"}
1
+ {"version":3,"file":"openapi-reference-samples.d.ts","sourceRoot":"","sources":["../../../src/runtime/openapi-reference-samples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAyB,oBAAoB,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AA8B9I,uEAAuE;AACvE,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,MAAM,WAAW;CAClB;AAgDD,gEAAgE;AAChE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,MAAM,CAMR;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,MAAM,CAaR;AAED,8CAA8C;AAC9C,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,MAAM,CAWR;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,mBAAmB,EAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,eAAe,EAAE,SAAS,0BAA0B,EAAE,GACrD,QAAQ,CAAC,MAAM,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC,CAMtD;AAiCD,iFAAiF;AACjF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,GAAG,SAAS,0BAA0B,EAAE,CASjH"}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-samples.js","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-samples.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The request sample and response examples shown beside an operation's contract (#1618).\n *\n * Everything here is DERIVED from the verified OpenAPI model: the server, the path, the parameters,\n * the security scheme and the body example all come from the document, so a sample can only say what\n * the contract says. It is a sample, not a console — nothing here sends a request or holds a\n * credential; `<token>` and `<api-key>` are placeholders the reader replaces.\n *\n * curl is the one form every major API reference shows (Stripe, GitHub, Scalar) and the one a reader\n * can paste into any terminal. JavaScript (`fetch`) and Python (`requests`) are the same call, spelled\n * from the same parts, so the three tabs cannot disagree.\n */\n\nimport type { ApiReferenceParameter, ApiReferenceResponse, ApiReferenceSecurityScheme, ApiReferenceVariant } from './openapi-reference-model';\n\n/** Quote a value for a POSIX shell: single quotes, with an embedded `'` closed, escaped and reopened. */\nfunction shellQuote(value: string): string {\n return `'${value.replace(/'/g, `'\\\\''`)}'`;\n}\n\n/** The value a parameter's first example gives, as the raw string that goes on the wire. */\nfunction parameterExampleValue(parameter: ApiReferenceParameter): string | null {\n const jsonValue = parameter.examples.find((example) => example.jsonValue !== null)?.jsonValue ?? null;\n if (jsonValue === null) return null;\n try {\n const parsed: unknown = JSON.parse(jsonValue);\n return typeof parsed === 'string' ? parsed : jsonValue;\n } catch {\n return jsonValue;\n }\n}\n\n/**\n * The header a security scheme is sent in, with a placeholder credential — or `null` when the scheme\n * is not one a header can carry (a cookie or query scheme is left to the reader rather than guessed).\n */\nfunction securityHeader(scheme: ApiReferenceSecurityScheme): readonly [string, string] | null {\n if (scheme.type === 'http' && scheme.scheme?.toLowerCase() === 'bearer') return ['Authorization', 'Bearer <token>'];\n if (scheme.type === 'http' && scheme.scheme?.toLowerCase() === 'basic') return ['Authorization', 'Basic <credentials>'];\n if (scheme.type === 'apiKey' && scheme.location === 'header' && scheme.parameterName !== null) return [scheme.parameterName, '<api-key>'];\n return null;\n}\n\n/** The code languages a request sample is offered in, in tab order. */\nexport enum ApiReferenceSampleLanguage {\n CURL = 'curl',\n JAVASCRIPT = 'javascript',\n PYTHON = 'python',\n}\n\n/**\n * Everything a request sample says, before it is written in any language: the method, the full URL,\n * the headers and the JSON body. The three builders below only change the spelling, so they cannot\n * disagree about what the call is.\n *\n * Path parameters stay as `{name}` placeholders — the reader's ids are what belong there, and an\n * example id would look like a real one. Only REQUIRED query and header parameters are included, so\n * the sample is the smallest valid call; the parameter list shows the rest. The body is the request's\n * first example, authored or derived.\n */\ninterface RequestSampleParts {\n readonly method: string;\n readonly url: string;\n readonly headers: ReadonlyArray<readonly [name: string, value: string]>;\n /** The JSON body example exactly as the document gives it, or `null` for a call with no JSON body. */\n readonly jsonBody: string | null;\n}\n\nfunction requestSampleParts(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): RequestSampleParts {\n const query = variant.parameters\n .filter((parameter) => parameter.location === 'query' && parameter.required)\n .map((parameter) => `${encodeURIComponent(parameter.name)}=${parameterExampleValue(parameter) ?? `{${parameter.name}}`}`);\n const url = `${(serverUrl ?? '').replace(/\\/$/, '')}${variant.path}${query.length > 0 ? `?${query.join('&')}` : ''}`;\n const headers: Array<readonly [string, string]> = [];\n const credential = variant.securitySchemes\n .map((name) => securitySchemes.find((candidate) => candidate.name === name))\n .map((scheme) => (scheme === undefined ? null : securityHeader(scheme)))\n .find((candidate): candidate is readonly [string, string] => candidate !== null);\n if (credential !== undefined) headers.push(credential);\n for (const parameter of variant.parameters.filter((candidate) => candidate.location === 'header' && candidate.required)) {\n headers.push([parameter.name, parameterExampleValue(parameter) ?? `<${parameter.name}>`]);\n }\n const jsonMedia = variant.requestBody?.mediaTypes.find((media) => media.mediaType === 'application/json');\n if (jsonMedia !== undefined) headers.push(['Content-Type', 'application/json']);\n return {\n method: variant.method,\n url,\n headers,\n jsonBody: jsonMedia === undefined ? null : jsonMedia.examples.find((candidate) => candidate.jsonValue !== null)?.jsonValue ?? '{}',\n };\n}\n\n/** A curl command that calls `variant`, one option per line. */\nexport function buildCurlSample(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): string {\n const parts = requestSampleParts(variant, serverUrl, securitySchemes);\n const lines = [parts.method === 'GET' ? `curl ${shellQuote(parts.url)}` : `curl -X ${parts.method} ${shellQuote(parts.url)}`];\n for (const [name, value] of parts.headers) lines.push(`-H ${shellQuote(`${name}: ${value}`)}`);\n if (parts.jsonBody !== null) lines.push(`--data ${shellQuote(parts.jsonBody)}`);\n return lines.join(' \\\\\\n ');\n}\n\n/** The same call with the browser and Node `fetch`. */\nexport function buildJavaScriptSample(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): string {\n const parts = requestSampleParts(variant, serverUrl, securitySchemes);\n const options: string[] = [];\n if (parts.method !== 'GET') options.push(` method: ${JSON.stringify(parts.method)},`);\n if (parts.headers.length > 0) {\n options.push(' headers: {', ...parts.headers.map(([name, value]) => ` ${JSON.stringify(name)}: ${JSON.stringify(value)},`), ' },');\n }\n if (parts.jsonBody !== null) {\n const parsed = parseJson(parts.jsonBody);\n options.push(` body: JSON.stringify(${parsed.ok ? indentContinuation(JSON.stringify(parsed.value, null, 2), ' ') : JSON.stringify(parts.jsonBody)}),`);\n }\n const call = options.length === 0 ? `fetch(${JSON.stringify(parts.url)})` : `fetch(${JSON.stringify(parts.url)}, {\\n${options.join('\\n')}\\n})`;\n return `const response = await ${call};\\nconst data = await response.json();`;\n}\n\n/** The same call with Python's `requests`. */\nexport function buildPythonSample(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): string {\n const parts = requestSampleParts(variant, serverUrl, securitySchemes);\n const argumentsList = [` ${JSON.stringify(parts.url)},`];\n if (parts.headers.length > 0) {\n argumentsList.push(' headers={', ...parts.headers.map(([name, value]) => ` ${JSON.stringify(name)}: ${JSON.stringify(value)},`), ' },');\n }\n if (parts.jsonBody !== null) {\n const parsed = parseJson(parts.jsonBody);\n argumentsList.push(parsed.ok ? ` json=${indentContinuation(pythonLiteral(parsed.value, 0), ' ')},` : ` data=${JSON.stringify(parts.jsonBody)},`);\n }\n return `import requests\\n\\nresponse = requests.${parts.method.toLowerCase()}(\\n${argumentsList.join('\\n')}\\n)\\nprint(response.json())`;\n}\n\n/** Every language's sample for `variant`, keyed by language. */\nexport function buildRequestSamples(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): Readonly<Record<ApiReferenceSampleLanguage, string>> {\n return {\n [ApiReferenceSampleLanguage.CURL]: buildCurlSample(variant, serverUrl, securitySchemes),\n [ApiReferenceSampleLanguage.JAVASCRIPT]: buildJavaScriptSample(variant, serverUrl, securitySchemes),\n [ApiReferenceSampleLanguage.PYTHON]: buildPythonSample(variant, serverUrl, securitySchemes),\n };\n}\n\nfunction parseJson(source: string): { readonly ok: true; readonly value: unknown } | { readonly ok: false } {\n try {\n return { ok: true, value: JSON.parse(source) as unknown };\n } catch {\n return { ok: false };\n }\n}\n\n/** Indents every line after the first, so a multi-line value sits under the key that introduces it. */\nfunction indentContinuation(text: string, indent: string): string {\n return text.split('\\n').map((line, index) => (index === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n\n/**\n * A parsed JSON value written as a Python literal. JSON strings are valid Python strings, so only the\n * three words differ: `true`, `false` and `null` become `True`, `False` and `None`.\n */\nfunction pythonLiteral(value: unknown, depth: number): string {\n const pad = ' '.repeat(depth + 1);\n const closing = ' '.repeat(depth);\n if (value === null) return 'None';\n if (value === true) return 'True';\n if (value === false) return 'False';\n if (typeof value === 'number' || typeof value === 'string') return JSON.stringify(value);\n if (Array.isArray(value)) {\n return value.length === 0 ? '[]' : `[\\n${value.map((item) => `${pad}${pythonLiteral(item, depth + 1)},`).join('\\n')}\\n${closing}]`;\n }\n const entries = Object.entries(value as Record<string, unknown>);\n return entries.length === 0 ? '{}' : `{\\n${entries.map(([key, item]) => `${pad}${JSON.stringify(key)}: ${pythonLiteral(item, depth + 1)},`).join('\\n')}\\n${closing}}`;\n}\n\n/** One response status that has an example to show, with that example's JSON. */\nexport interface ApiReferenceResponseSample {\n readonly status: string;\n readonly description: string | null;\n readonly exampleName: string;\n readonly jsonValue: string;\n}\n\n/**\n * The response examples to show beside the contract: one per status that has one, successes first\n * (they are what the reader is building for), then errors in status order.\n */\nexport function responseSamples(responses: readonly ApiReferenceResponse[]): readonly ApiReferenceResponseSample[] {\n const samples = responses.flatMap((response) => {\n const example = response.mediaTypes.flatMap((media) => media.examples).find((candidate) => candidate.jsonValue !== null);\n return example === undefined || example.jsonValue === null\n ? []\n : [{ status: response.status, description: response.description, exampleName: example.name, jsonValue: example.jsonValue }];\n });\n const isSuccess = (status: string): boolean => /^[23]/.test(status);\n return [...samples.filter((sample) => isSuccess(sample.status)), ...samples.filter((sample) => !isSuccess(sample.status))];\n}\n"]}
1
+ {"version":3,"file":"openapi-reference-samples.js","sourceRoot":"","sources":["../../../src/runtime/openapi-reference-samples.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The request sample and response examples shown beside an operation's contract (#1618).\n *\n * Everything here is DERIVED from the verified OpenAPI model: the server, the path, the parameters,\n * the security scheme and the body example all come from the document, so a sample can only say what\n * the contract says. It is a sample, not a console — nothing here sends a request or holds a\n * credential; `<token>` and `<api-key>` are placeholders the reader replaces.\n *\n * curl is the one form every major API reference shows (Stripe, GitHub, Scalar) and the one a reader\n * can paste into any terminal. JavaScript (`fetch`) and Python (`requests`) are the same call, spelled\n * from the same parts, so the three tabs cannot disagree.\n */\n\nimport type { ApiReferenceParameter, ApiReferenceResponse, ApiReferenceSecurityScheme, ApiReferenceVariant } from './openapi-reference-model';\n\n/** Quote a value for a POSIX shell: single quotes, with an embedded `'` closed, escaped and reopened. */\nfunction shellQuote(value: string): string {\n return `'${value.replace(/'/g, `'\\\\''`)}'`;\n}\n\n/** The value a parameter's first example gives, as the raw string that goes on the wire. */\nfunction parameterExampleValue(parameter: ApiReferenceParameter): string | null {\n const jsonValue = parameter.examples.find((example) => example.jsonValue !== null)?.jsonValue ?? null;\n if (jsonValue === null) return null;\n try {\n const parsed: unknown = JSON.parse(jsonValue);\n return typeof parsed === 'string' ? parsed : jsonValue;\n } catch {\n return jsonValue;\n }\n}\n\n/**\n * The header a security scheme is sent in, with a placeholder credential — or `null` when the scheme\n * is not one a header can carry (a cookie or query scheme is left to the reader rather than guessed).\n */\nfunction securityHeader(scheme: ApiReferenceSecurityScheme): readonly [string, string] | null {\n if (scheme.type === 'http' && scheme.scheme?.toLowerCase() === 'bearer') return ['Authorization', 'Bearer <token>'];\n if (scheme.type === 'http' && scheme.scheme?.toLowerCase() === 'basic') return ['Authorization', 'Basic <credentials>'];\n if (scheme.type === 'apiKey' && scheme.location === 'header' && scheme.parameterName !== null) return [scheme.parameterName, '<api-key>'];\n return null;\n}\n\n/** The code languages a request sample is offered in, in tab order. */\nexport enum ApiReferenceSampleLanguage {\n CURL = 'curl',\n JAVASCRIPT = 'javascript',\n PYTHON = 'python',\n}\n\n/**\n * Everything a request sample says, before it is written in any language: the method, the full URL,\n * the headers and the JSON body. The three builders below only change the spelling, so they cannot\n * disagree about what the call is.\n *\n * Path parameters stay as `{name}` placeholders — the reader's ids are what belong there, and an\n * example id would look like a real one. Only REQUIRED query and header parameters are included, so\n * the sample is the smallest valid call; the parameter list shows the rest. The body is the request's\n * first example, authored or derived.\n */\ninterface RequestSampleParts {\n readonly method: string;\n readonly url: string;\n readonly headers: ReadonlyArray<readonly [name: string, value: string]>;\n /** The JSON body example exactly as the document gives it, or `null` for a call with no JSON body. */\n readonly jsonBody: string | null;\n}\n\nfunction requestSampleParts(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): RequestSampleParts {\n const query = variant.parameters\n .filter((parameter) => parameter.location === 'query' && parameter.required)\n .map((parameter) => `${encodeURIComponent(parameter.name)}=${parameterExampleValue(parameter) ?? `{${parameter.name}}`}`);\n const url = `${(serverUrl ?? '').replace(/\\/$/, '')}${variant.path}${query.length > 0 ? `?${query.join('&')}` : ''}`;\n const headers: Array<readonly [string, string]> = [];\n const credential = variant.securitySchemes\n .map((name) => securitySchemes.find((candidate) => candidate.name === name))\n .map((scheme) => (scheme === undefined ? null : securityHeader(scheme)))\n .find((candidate): candidate is readonly [string, string] => candidate !== null);\n if (credential !== undefined) headers.push(credential);\n for (const parameter of variant.parameters.filter((candidate) => candidate.location === 'header' && candidate.required)) {\n headers.push([parameter.name, parameterExampleValue(parameter) ?? `<${parameter.name}>`]);\n }\n const jsonMedia = variant.requestBody?.mediaTypes.find((media) => media.mediaType === 'application/json');\n if (jsonMedia !== undefined) headers.push(['Content-Type', 'application/json']);\n return {\n method: variant.method,\n url,\n headers,\n jsonBody: jsonMedia === undefined ? null : jsonMedia.examples.find((candidate) => candidate.jsonValue !== null)?.jsonValue ?? '{}',\n };\n}\n\n/** A curl command that calls `variant`, one option per line. */\nexport function buildCurlSample(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): string {\n const parts = requestSampleParts(variant, serverUrl, securitySchemes);\n const lines = [parts.method === 'GET' ? `curl ${shellQuote(parts.url)}` : `curl -X ${parts.method} ${shellQuote(parts.url)}`];\n for (const [name, value] of parts.headers) lines.push(`-H ${shellQuote(`${name}: ${value}`)}`);\n if (parts.jsonBody !== null) lines.push(`--data ${shellQuote(parts.jsonBody)}`);\n return lines.join(' \\\\\\n ');\n}\n\n/** The same call with the browser and Node `fetch`. */\nexport function buildJavaScriptSample(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): string {\n const parts = requestSampleParts(variant, serverUrl, securitySchemes);\n const options: string[] = [];\n if (parts.method !== 'GET') options.push(` method: ${JSON.stringify(parts.method)},`);\n if (parts.headers.length > 0) {\n options.push(' headers: {', ...parts.headers.map(([name, value]) => ` ${JSON.stringify(name)}: ${JSON.stringify(value)},`), ' },');\n }\n if (parts.jsonBody !== null) {\n const parsed = parseJson(parts.jsonBody);\n options.push(` body: JSON.stringify(${parsed.ok ? indentContinuation(JSON.stringify(parsed.value, null, 2), ' ') : JSON.stringify(parts.jsonBody)}),`);\n }\n const call = options.length === 0 ? `fetch(${JSON.stringify(parts.url)})` : `fetch(${JSON.stringify(parts.url)}, {\\n${options.join('\\n')}\\n})`;\n return `const response = await ${call};\\nconst data = await response.json();`;\n}\n\n/** The same call with Python's `requests`. */\nexport function buildPythonSample(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): string {\n const parts = requestSampleParts(variant, serverUrl, securitySchemes);\n const argumentsList = [` ${JSON.stringify(parts.url)},`];\n if (parts.headers.length > 0) {\n argumentsList.push(' headers={', ...parts.headers.map(([name, value]) => ` ${JSON.stringify(name)}: ${JSON.stringify(value)},`), ' },');\n }\n if (parts.jsonBody !== null) {\n const parsed = parseJson(parts.jsonBody);\n argumentsList.push(parsed.ok ? ` json=${indentContinuation(pythonLiteral(parsed.value, 0), ' ')},` : ` data=${JSON.stringify(parts.jsonBody)},`);\n }\n return `import requests\\n\\nresponse = requests.${parts.method.toLowerCase()}(\\n${argumentsList.join('\\n')}\\n)\\nprint(response.json())`;\n}\n\n/** Every language's sample for `variant`, keyed by language. */\nexport function buildRequestSamples(\n variant: ApiReferenceVariant,\n serverUrl: string | null,\n securitySchemes: readonly ApiReferenceSecurityScheme[],\n): Readonly<Record<ApiReferenceSampleLanguage, string>> {\n return {\n [ApiReferenceSampleLanguage.CURL]: buildCurlSample(variant, serverUrl, securitySchemes),\n [ApiReferenceSampleLanguage.JAVASCRIPT]: buildJavaScriptSample(variant, serverUrl, securitySchemes),\n [ApiReferenceSampleLanguage.PYTHON]: buildPythonSample(variant, serverUrl, securitySchemes),\n };\n}\n\nfunction parseJson(source: string): { readonly ok: true; readonly value: unknown } | { readonly ok: false } {\n try {\n return { ok: true, value: JSON.parse(source) as unknown };\n } catch {\n return { ok: false };\n }\n}\n\n/** Indents every line after the first, so a multi-line value sits under the key that introduces it. */\nfunction indentContinuation(text: string, indent: string): string {\n return text.split('\\n').map((line, index) => (index === 0 ? line : `${indent}${line}`)).join('\\n');\n}\n\n/**\n * A parsed JSON value written as a Python literal. JSON strings are valid Python strings, so only the\n * three words differ: `true`, `false` and `null` become `True`, `False` and `None`.\n */\nfunction pythonLiteral(value: unknown, depth: number): string {\n const pad = ' '.repeat(depth + 1);\n const closing = ' '.repeat(depth);\n if (value === null) return 'None';\n if (value === true) return 'True';\n if (value === false) return 'False';\n if (typeof value === 'number' || typeof value === 'string') return JSON.stringify(value);\n if (Array.isArray(value)) {\n return value.length === 0 ? '[]' : `[\\n${value.map((item) => `${pad}${pythonLiteral(item, depth + 1)},`).join('\\n')}\\n${closing}]`;\n }\n const entries = Object.entries(value as Record<string, unknown>);\n return entries.length === 0 ? '{}' : `{\\n${entries.map(([key, item]) => `${pad}${JSON.stringify(key)}: ${pythonLiteral(item, depth + 1)},`).join('\\n')}\\n${closing}}`;\n}\n\n/** One response status that has an example to show, with that example's JSON. */\nexport interface ApiReferenceResponseSample {\n readonly status: string;\n readonly description: string | null;\n readonly exampleName: string;\n readonly jsonValue: string;\n}\n\n/**\n * The response examples to show beside the contract: one per status that has one, successes first\n * (they are what the reader is building for), then errors in status order.\n */\nexport function responseSamples(responses: readonly ApiReferenceResponse[]): readonly ApiReferenceResponseSample[] {\n const samples = responses.flatMap((response) => {\n const example = response.mediaTypes.flatMap((media) => media.examples).find((candidate) => candidate.jsonValue !== null);\n return example === undefined || example.jsonValue === null\n ? []\n : [{ status: response.status, description: response.description, exampleName: example.name, jsonValue: example.jsonValue }];\n });\n const isSuccess = (status: string): boolean => /^[23]/.test(status);\n return [...samples.filter((sample) => isSuccess(sample.status)), ...samples.filter((sample) => !isSuccess(sample.status))];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"openapi-reference-styles.d.ts","sourceRoot":"","sources":["../../../../src/runtime/openapi-reference-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,+64BAwQhC,CAAC"}
1
+ {"version":3,"file":"openapi-reference-styles.d.ts","sourceRoot":"","sources":["../../../src/runtime/openapi-reference-styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,+64BAwQhC,CAAC"}