From 2e139d691b463a135fbc884831c350d0d7036713 Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Sat, 24 Feb 2024 18:21:42 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20badges/s?= =?UTF-8?q?hields@49a91720d7dcd9e5a07785167777bd95c33c5d0d=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BaseThunderstoreService.html | 4 +- badge-maker_lib_index.js.html | 4 +- badge-maker_lib_xml.js.html | 4 +- core_base-service_base-graphql.js.html | 4 +- core_base-service_base-json.js.html | 4 +- core_base-service_base-svg-scraping.js.html | 4 +- core_base-service_base-toml.js.html | 4 +- core_base-service_base-xml.js.html | 4 +- core_base-service_base-yaml.js.html | 4 +- core_base-service_base.js.html | 96 ++---- core_base-service_errors.js.html | 4 +- core_base-service_graphql.js.html | 4 +- core_base-service_openapi.js.html | 154 +--------- core_base-service_resource-cache.js.html | 4 +- core_base-service_service-definitions.js.html | 135 +++++++++ core_server_prometheus-metrics.js.html | 4 +- core_server_server.js.html | 4 +- ...-test-runner_create-service-tester.js.html | 4 +- ...ice-test-runner_icedfrisby-shields.js.html | 4 +- core_service-test-runner_runner.js.html | 4 +- ...service-test-runner_service-tester.js.html | 4 +- ...ice-test-runner_services-for-title.js.html | 4 +- core_token-pooling_token-pool.js.html | 4 +- global.html | 4 +- index.html | 4 +- module-badge-maker.html | 4 +- module-badge-maker_lib_xml-ElementList.html | 4 +- module-badge-maker_lib_xml-XmlElement.html | 4 +- module-badge-maker_lib_xml.html | 4 +- ...le-core_base-service_base-BaseService.html | 104 +------ ...rvice_base-graphql-BaseGraphqlService.html | 4 +- module-core_base-service_base-graphql.html | 4 +- ...ase-service_base-json-BaseJsonService.html | 4 +- module-core_base-service_base-json.html | 4 +- ...e-svg-scraping-BaseSvgScrapingService.html | 4 +- ...e-core_base-service_base-svg-scraping.html | 4 +- ...ase-service_base-toml-BaseTomlService.html | 4 +- module-core_base-service_base-toml.html | 4 +- ..._base-service_base-xml-BaseXmlService.html | 4 +- module-core_base-service_base-xml.html | 4 +- ...ase-service_base-yaml-BaseYamlService.html | 4 +- module-core_base-service_base-yaml.html | 4 +- module-core_base-service_base.html | 286 +----------------- ...e-core_base-service_errors-Deprecated.html | 4 +- ...e-service_errors-ImproperlyConfigured.html | 4 +- ...core_base-service_errors-Inaccessible.html | 4 +- ..._base-service_errors-InvalidParameter.html | 4 +- ...e_base-service_errors-InvalidResponse.html | 4 +- module-core_base-service_errors-NotFound.html | 4 +- ...se-service_errors-ShieldsRuntimeError.html | 4 +- module-core_base-service_errors.html | 4 +- module-core_base-service_graphql.html | 4 +- module-core_base-service_openapi.html | 18 +- module-core_base-service_resource-cache.html | 4 +- ...core_base-service_service-definitions.html | 200 ++++++++++++ module-core_server_server-Server.html | 4 +- module-core_server_server.html | 4 +- ...ice-test-runner_create-service-tester.html | 4 +- ...ervice-test-runner_icedfrisby-shields.html | 4 +- ...ore_service-test-runner_runner-Runner.html | 4 +- module-core_service-test-runner_runner.html | 4 +- ...t-runner_service-tester-ServiceTester.html | 4 +- ...re_service-test-runner_service-tester.html | 4 +- ...ervice-test-runner_services-for-title.html | 4 +- ...e-core_token-pooling_token-pool-Token.html | 4 +- ...re_token-pooling_token-pool-TokenPool.html | 4 +- module-core_token-pooling_token-pool.html | 4 +- module-services_build-status.html | 4 +- module-services_color-formatters.html | 4 +- module-services_contributor-count.html | 4 +- module-services_downloads.html | 4 +- module-services_dynamic-common.html | 4 +- module-services_dynamic_json-path.html | 4 +- module-services_endpoint-common.html | 4 +- module-services_licenses.html | 4 +- module-services_package-json-helpers.html | 4 +- module-services_php-version.html | 4 +- module-services_pipenv-helpers.html | 4 +- module-services_route-builder.html | 4 +- ...ervices_steam_steam-base-BaseSteamAPI.html | 4 +- module-services_steam_steam-base.html | 4 +- module-services_text-formatters.html | 4 +- module-services_validators.html | 4 +- module-services_version.html | 4 +- module-services_website-status.html | 4 +- services_build-status.js.html | 4 +- services_color-formatters.js.html | 4 +- services_contributor-count.js.html | 4 +- services_downloads.js.html | 4 +- services_dynamic-common.js.html | 4 +- services_dynamic_json-path.js.html | 4 +- services_endpoint-common.js.html | 4 +- services_licenses.js.html | 4 +- services_package-json-helpers.js.html | 4 +- services_packagist_packagist-base.js.html | 4 +- services_php-version.js.html | 4 +- services_pipenv-helpers.js.html | 4 +- services_route-builder.js.html | 4 +- services_steam_steam-base.js.html | 4 +- services_test-helpers.js.html | 4 +- services_test-validators.js.html | 4 +- services_text-formatters.js.html | 4 +- ...ces_thunderstore_thunderstore-base.js.html | 4 +- services_validators.js.html | 4 +- services_version.js.html | 4 +- services_website-status.js.html | 4 +- tutorial-TUTORIAL.html | 5 +- tutorial-adding-new-config-values.html | 4 +- tutorial-authentication.html | 4 +- tutorial-badge-urls.html | 4 +- tutorial-code-walkthrough.html | 4 +- tutorial-deprecating-badges.html | 4 +- tutorial-input-validation.html | 4 +- tutorial-json-format.html | 4 +- tutorial-logos.html | 4 +- tutorial-performance-testing.html | 4 +- tutorial-production-hosting.html | 4 +- tutorial-releases.html | 4 +- tutorial-self-hosting.html | 4 +- tutorial-server-secrets.html | 4 +- tutorial-service-tests.html | 4 +- tutorial-static-badges.html | 4 +- 122 files changed, 629 insertions(+), 825 deletions(-) create mode 100644 core_base-service_service-definitions.js.html create mode 100644 module-core_base-service_service-definitions.html diff --git a/BaseThunderstoreService.html b/BaseThunderstoreService.html index 289b5d9bfd..286d5f8db0 100644 --- a/BaseThunderstoreService.html +++ b/BaseThunderstoreService.html @@ -392,13 +392,13 @@
diff --git a/badge-maker_lib_index.js.html b/badge-maker_lib_index.js.html index c0d6cc38b6..225b535fee 100644 --- a/badge-maker_lib_index.js.html +++ b/badge-maker_lib_index.js.html @@ -117,13 +117,13 @@ module.exports = {
diff --git a/badge-maker_lib_xml.js.html b/badge-maker_lib_xml.js.html index 73600b179a..3edd3fe710 100644 --- a/badge-maker_lib_xml.js.html +++ b/badge-maker_lib_xml.js.html @@ -132,13 +132,13 @@ module.exports = { escapeXml, stripXmlWhitespace, XmlElement, ElementList }
diff --git a/core_base-service_base-graphql.js.html b/core_base-service_base-graphql.js.html index ce075c9280..4c478c1933 100644 --- a/core_base-service_base-graphql.js.html +++ b/core_base-service_base-graphql.js.html @@ -142,13 +142,13 @@ export default BaseGraphqlService
diff --git a/core_base-service_base-json.js.html b/core_base-service_base-json.js.html index 3380653b29..82f921144d 100644 --- a/core_base-service_base-json.js.html +++ b/core_base-service_base-json.js.html @@ -108,13 +108,13 @@ export default BaseJsonService
diff --git a/core_base-service_base-svg-scraping.js.html b/core_base-service_base-svg-scraping.js.html index c3b7b2a8d4..0ba3f885a7 100644 --- a/core_base-service_base-svg-scraping.js.html +++ b/core_base-service_base-svg-scraping.js.html @@ -139,13 +139,13 @@ export default BaseSvgScrapingService
diff --git a/core_base-service_base-toml.js.html b/core_base-service_base-toml.js.html index a0b4cd0c6f..4d616bef2a 100644 --- a/core_base-service_base-toml.js.html +++ b/core_base-service_base-toml.js.html @@ -122,13 +122,13 @@ export default BaseTomlService
diff --git a/core_base-service_base-xml.js.html b/core_base-service_base-xml.js.html index c1361976c4..9bb8bf4745 100644 --- a/core_base-service_base-xml.js.html +++ b/core_base-service_base-xml.js.html @@ -118,13 +118,13 @@ export default BaseXmlService
diff --git a/core_base-service_base-yaml.js.html b/core_base-service_base-yaml.js.html index b0d40943db..237d416620 100644 --- a/core_base-service_base-yaml.js.html +++ b/core_base-service_base-yaml.js.html @@ -121,13 +121,13 @@ export default BaseYamlService
diff --git a/core_base-service_base.js.html b/core_base-service_base.js.html index aeb833ace9..7133ef0b14 100644 --- a/core_base-service_base.js.html +++ b/core_base-service_base.js.html @@ -47,7 +47,6 @@ import { InvalidParameter, Deprecated, } from './errors.js' -import { validateExample, transformExample } from './examples.js' import { fetch } from './got.js' import { getEnum } from './openapi.js' import { @@ -172,31 +171,14 @@ class BaseService { static auth = undefined /** - * Array of Example objects describing example URLs for this service. - * These should use the format specified in `route`, - * and can be used to demonstrate how to use badges for this service. - * - * The preferred way to specify an example is with `namedParams` which are - * substituted into the service's compiled route pattern. The rendered badge - * is specified with `staticPreview`. - * - * For services which use a route `format`, the `pattern` can be specified as - * part of the example. - * - * @see {@link module:core/base-service/base~Example} - * @abstract - * @type {module:core/base-service/base~Example[]} - */ - static examples = [] - - /** - * Optional: an OpenAPI Paths Object describing this service's + * An OpenAPI Paths Object describing this service's * route or routes in OpenAPI format. * - * @see https://swagger.io/specification/#paths-object * @abstract + * @see https://swagger.io/specification/#paths-object + * @type {module:core/base-service/service-definitions~openApiSchema} */ - static openApi = undefined + static openApi = {} static get _cacheLength() { const cacheLengths = { @@ -235,23 +217,17 @@ class BaseService { `Default badge data for ${this.name}`, ) - this.examples.forEach((example, index) => - validateExample(example, index, this), - ) - // ensure openApi spec matches route - if (this.openApi) { - const preparedRoute = prepareRoute(this.route) - for (const [key, value] of Object.entries(this.openApi)) { - let example = key - for (const param of value.get.parameters) { - example = example.replace(`{${param.name}}`, param.example) - } - if (!example.match(preparedRoute.regex)) { - throw new Error( - `Inconsistent Open Api spec and Route found for service ${this.name}`, - ) - } + const preparedRoute = prepareRoute(this.route) + for (const [key, value] of Object.entries(this.openApi)) { + let example = key + for (const param of value.get.parameters) { + example = example.replace(`{${param.name}}`, param.example) + } + if (!example.match(preparedRoute.regex)) { + throw new Error( + `Inconsistent Open Api spec and Route found for service ${this.name}`, + ) } } } @@ -261,10 +237,6 @@ class BaseService { const { base, format, pattern } = this.route const queryParams = getQueryParamNames(this.route) - const examples = this.examples.map((example, index) => - transformExample(example, index, this), - ) - let route if (pattern) { route = { pattern: makeFullUrl(base, pattern), queryParams } @@ -274,7 +246,7 @@ class BaseService { route = undefined } - const result = { category, name, isDeprecated, route, examples, openApi } + const result = { category, name, isDeprecated, route, openApi } assertValidServiceDefinition(result, `getDefinition() for ${this.name}`) @@ -625,9 +597,11 @@ class BaseService { * receives numeric can use `Joi.string()`. A boolean * parameter should use `Joi.equal('')` and will receive an * empty string on e.g. `?compact_message` and undefined - * when the parameter is absent. (Note that in, - * `examples.queryParams` boolean query params should be given - * `null` values.) + * when the parameter is absent. In the OpenApi definitions, + * this type of param should be documented as + * queryParam({ + * name: 'compact_message', schema: { type: 'boolean' }, example: null + * }) */ /** @@ -642,32 +616,6 @@ class BaseService { * configured credentials are present. */ -/** - * @typedef {object} Example - * @property {string} title - * Descriptive text that will be shown next to the badge. The default - * is to use the service class name, which probably is not what you want. - * @property {object} namedParams - * An object containing the values of named parameters to - * substitute into the compiled route pattern. - * @property {object} queryParams - * An object containing query parameters to include in the - * example URLs. For alphanumeric query parameters, specify a string value. - * For boolean query parameters, specify `null`. - * @property {string} pattern - * The route pattern to compile. Defaults to `this.route.pattern`. - * @property {object} staticPreview - * A rendered badge of the sort returned by `handle()` or - * `render()`: an object containing `message` and optional `label` and - * `color`. This is usually generated by invoking `this.render()` with some - * explicit props. - * @property {string[]} keywords - * Additional keywords, other than words in the title. This helps - * users locate relevant badges. - * @property {string} documentation - * An HTML string that is included in the badge popup. - */ - export default BaseService @@ -679,13 +627,13 @@ export default BaseService
diff --git a/core_base-service_errors.js.html b/core_base-service_errors.js.html index 572d51bb6f..90827f0992 100644 --- a/core_base-service_errors.js.html +++ b/core_base-service_errors.js.html @@ -259,13 +259,13 @@ export {
diff --git a/core_base-service_graphql.js.html b/core_base-service_graphql.js.html index b8c64fba28..567dc2d028 100644 --- a/core_base-service_graphql.js.html +++ b/core_base-service_graphql.js.html @@ -87,13 +87,13 @@ export { mergeQueries }
diff --git a/core_base-service_openapi.js.html b/core_base-service_openapi.js.html index 5a5439079e..41f4bdd9b1 100644 --- a/core_base-service_openapi.js.html +++ b/core_base-service_openapi.js.html @@ -74,13 +74,6 @@ function getCodeSamples(altText) { ] } -function pattern2openapi(pattern) { - return pattern - .replace(/:([A-Za-z0-9_\-.]+)(?=[/]?)/g, (matches, grp1) => `{${grp1}}`) - .replace(/\([^)]*\)/g, '') - .replace(/\+$/, '') -} - function getEnum(pattern, paramName) { const re = new RegExp(`${paramName}\\(([A-Za-z0-9_\\-|]+)\\)`) const match = pattern.match(re) @@ -93,126 +86,6 @@ function getEnum(pattern, paramName) { return match[1].split('|') } -function param2openapi(pattern, paramName, exampleValue, paramType) { - const outParam = {} - outParam.name = paramName - // We don't have description if we are building the OpenAPI spec from examples[] - outParam.in = paramType - if (paramType === 'path') { - outParam.required = true - } else { - /* Occasionally we do have required query params, but we can't - detect this if we are building the OpenAPI spec from examples[] - so just assume all query params are optional */ - outParam.required = false - } - - if (exampleValue === null && paramType === 'query') { - outParam.schema = { type: 'boolean' } - outParam.allowEmptyValue = true - } else { - outParam.schema = { type: 'string' } - } - - if (paramType === 'path') { - outParam.schema.enum = getEnum(pattern, paramName) - } - - outParam.example = exampleValue - return outParam -} - -function getVariants(pattern) { - /* - given a URL pattern (which may include '/one/or/:more?/:optional/:parameters*') - return an array of all possible permutations: - [ - '/one/or/:more/:optional/:parameters', - '/one/or/:optional/:parameters', - '/one/or/:more/:optional', - '/one/or/:optional', - ] - */ - const patterns = [pattern.split('/')] - while (patterns.flat().find(p => p.endsWith('?') || p.endsWith('*'))) { - for (let i = 0; i < patterns.length; i++) { - const pattern = patterns[i] - for (let j = 0; j < pattern.length; j++) { - const path = pattern[j] - if (path.endsWith('?') || path.endsWith('*')) { - pattern[j] = path.slice(0, -1) - patterns.push(patterns[i].filter(p => p !== pattern[j])) - } - } - } - } - for (let i = 0; i < patterns.length; i++) { - patterns[i] = patterns[i].join('/') - } - return patterns -} - -function examples2openapi(examples) { - const paths = {} - for (const example of examples) { - const patterns = getVariants(example.example.pattern) - - for (const pattern of patterns) { - const openApiPattern = pattern2openapi(pattern) - if ( - openApiPattern.includes('*') || - openApiPattern.includes('?') || - openApiPattern.includes('+') || - openApiPattern.includes('(') - ) { - throw new Error(`unexpected characters in pattern '${openApiPattern}'`) - } - - /* - There's several things going on in this block: - 1. Filter out any examples for params that don't appear - in this variant of the route - 2. Make sure we add params to the array - in the same order they appear in the route - 3. If there are any params we don't have an example value for, - make sure they still appear in the pathParams array with - exampleValue == undefined anyway - */ - const pathParams = [] - for (const param of openApiPattern - .split('/') - .filter(p => p.startsWith('{') && p.endsWith('}'))) { - const paramName = param.slice(1, -1) - const exampleValue = example.example.namedParams[paramName] - pathParams.push(param2openapi(pattern, paramName, exampleValue, 'path')) - } - - const queryParams = example.example.queryParams || {} - - const parameters = [ - ...pathParams, - ...Object.entries(queryParams).map(([paramName, exampleValue]) => - param2openapi(pattern, paramName, exampleValue, 'query'), - ), - ...globalParamRefs, - ] - paths[openApiPattern] = { - get: { - summary: example.title, - description: example?.documentation?.__html - .replace(/<br>/g, '<br />') // react does not like <br> - .replace(/{/g, '&#123;') - .replace(/}/g, '&#125;') - .replace(/<style>(.|\n)*?<\/style>/, ''), // workaround for w3c-validation TODO: remove later - parameters, - 'x-code-samples': getCodeSamples(example.title), - }, - } - } - } - return paths -} - function addGlobalProperties(endpoints) { const paths = {} for (const key of Object.keys(endpoints)) { @@ -235,24 +108,13 @@ function sortPaths(obj) { function services2openapi(services, sort) { const paths = {} for (const service of services) { - if (service.openApi) { - // if the service declares its own OpenAPI definition, use that... - for (const [key, value] of Object.entries( - addGlobalProperties(service.openApi), - )) { - if (key in paths && key !== '/github/{variant}/{user}/{repo}') { - throw new Error(`Conflicting route: ${key}`) - } - paths[key] = value - } - } else { - // ...otherwise do our best to build one from examples[] - for (const [key, value] of Object.entries( - examples2openapi(service.examples), - )) { - // allow conflicting routes for legacy examples - paths[key] = value + for (const [key, value] of Object.entries( + addGlobalProperties(service.openApi), + )) { + if (key in paths && key !== '/github/{variant}/{user}/{repo}') { + throw new Error(`Conflicting route: ${key}`) } + paths[key] = value } } return sort ? sortPaths(paths) : paths @@ -520,13 +382,13 @@ export {
diff --git a/core_base-service_resource-cache.js.html b/core_base-service_resource-cache.js.html index c78207d279..9e65676a31 100644 --- a/core_base-service_resource-cache.js.html +++ b/core_base-service_resource-cache.js.html @@ -105,13 +105,13 @@ export { getCachedResource, clearResourceCache }
diff --git a/core_base-service_service-definitions.js.html b/core_base-service_service-definitions.js.html new file mode 100644 index 0000000000..798af3fb49 --- /dev/null +++ b/core_base-service_service-definitions.js.html @@ -0,0 +1,135 @@ + + + + + JSDoc: Source: core/base-service/service-definitions.js + + + + + + + + + + +
+ +

Source: core/base-service/service-definitions.js

+ + + + + + +
+
+
/**
+ * @module
+ */
+import Joi from 'joi'
+
+const arrayOfStrings = Joi.array().items(Joi.string()).min(0).required()
+
+/**
+ * Joi schema describing the subset of OpenAPI paths we use in this application
+ *
+ * @see https://swagger.io/specification/#paths-object
+ */
+const openApiSchema = Joi.object()
+  .pattern(
+    /./,
+    Joi.object({
+      get: Joi.object({
+        summary: Joi.string().required(),
+        description: Joi.string(),
+        parameters: Joi.array()
+          .items(
+            Joi.object({
+              name: Joi.string().required(),
+              description: Joi.string(),
+              in: Joi.string().valid('query', 'path').required(),
+              required: Joi.boolean().required(),
+              schema: Joi.object({
+                type: Joi.string().required(),
+                enum: Joi.array(),
+              }).required(),
+              allowEmptyValue: Joi.boolean(),
+              example: Joi.string().allow(null),
+            }),
+          )
+          .min(1)
+          .required(),
+      }).required(),
+    }).required(),
+  )
+  .default({})
+
+const serviceDefinition = Joi.object({
+  category: Joi.string().required(),
+  name: Joi.string().required(),
+  isDeprecated: Joi.boolean().required(),
+  route: Joi.alternatives().try(
+    Joi.object({
+      pattern: Joi.string().required(),
+      queryParams: arrayOfStrings,
+    }),
+    Joi.object({
+      format: Joi.string().required(),
+      queryParams: arrayOfStrings,
+    }),
+  ),
+  openApi: openApiSchema,
+}).required()
+
+function assertValidServiceDefinition(service, message = undefined) {
+  Joi.assert(service, serviceDefinition, message)
+}
+
+const serviceDefinitionExport = Joi.object({
+  schemaVersion: Joi.equal('0').required(),
+  categories: Joi.array()
+    .items(
+      Joi.object({
+        id: Joi.string().required(),
+        name: Joi.string().required(),
+      }),
+    )
+    .required(),
+  services: Joi.array().items(serviceDefinition).required(),
+}).required()
+
+function assertValidServiceDefinitionExport(openApiSpec, message = undefined) {
+  Joi.assert(openApiSpec, serviceDefinitionExport, message)
+}
+
+export {
+  assertValidServiceDefinition,
+  assertValidServiceDefinitionExport,
+  openApiSchema,
+}
+
+
+
+ + + + +
+ + + +
+ + + + + + + diff --git a/core_server_prometheus-metrics.js.html b/core_server_prometheus-metrics.js.html index 737c331d05..13bcd71206 100644 --- a/core_server_prometheus-metrics.js.html +++ b/core_server_prometheus-metrics.js.html @@ -121,13 +121,13 @@ export default class PrometheusMetrics {
diff --git a/core_server_server.js.html b/core_server_server.js.html index badfeb791e..a39aca0890 100644 --- a/core_server_server.js.html +++ b/core_server_server.js.html @@ -643,13 +643,13 @@ export default Server
diff --git a/core_service-test-runner_create-service-tester.js.html b/core_service-test-runner_create-service-tester.js.html index 12cbc05b1c..a9dda59b87 100644 --- a/core_service-test-runner_create-service-tester.js.html +++ b/core_service-test-runner_create-service-tester.js.html @@ -68,13 +68,13 @@ export default createServiceTester
diff --git a/core_service-test-runner_icedfrisby-shields.js.html b/core_service-test-runner_icedfrisby-shields.js.html index f79b53dcf2..09ea90222b 100644 --- a/core_service-test-runner_icedfrisby-shields.js.html +++ b/core_service-test-runner_icedfrisby-shields.js.html @@ -140,13 +140,13 @@ export default factory
diff --git a/core_service-test-runner_runner.js.html b/core_service-test-runner_runner.js.html index 425f4444a6..0b03d24c81 100644 --- a/core_service-test-runner_runner.js.html +++ b/core_service-test-runner_runner.js.html @@ -112,13 +112,13 @@ export default Runner
diff --git a/core_service-test-runner_service-tester.js.html b/core_service-test-runner_service-tester.js.html index 229ec9633b..c76e45a40b 100644 --- a/core_service-test-runner_service-tester.js.html +++ b/core_service-test-runner_service-tester.js.html @@ -178,13 +178,13 @@ export default ServiceTester
diff --git a/core_service-test-runner_services-for-title.js.html b/core_service-test-runner_services-for-title.js.html index ed38c7624a..5148cfb2e9 100644 --- a/core_service-test-runner_services-for-title.js.html +++ b/core_service-test-runner_services-for-title.js.html @@ -69,13 +69,13 @@ export default servicesForTitle
diff --git a/core_token-pooling_token-pool.js.html b/core_token-pooling_token-pool.js.html index fe160f97d0..982e0d6b80 100644 --- a/core_token-pooling_token-pool.js.html +++ b/core_token-pooling_token-pool.js.html @@ -373,13 +373,13 @@ export { sanitizeToken, Token, TokenPool }
diff --git a/global.html b/global.html index 874f3e6f80..b265cc5790 100644 --- a/global.html +++ b/global.html @@ -1870,13 +1870,13 @@ testAuth(StackExchangeReputation, QueryStringAuth, { items: [{ reputation: 8 }]
diff --git a/index.html b/index.html index 572c632e64..f4a2ff0002 100644 --- a/index.html +++ b/index.html @@ -212,13 +212,13 @@ under their terms and license.


diff --git a/module-badge-maker.html b/module-badge-maker.html index 724398d2f0..6191b33491 100644 --- a/module-badge-maker.html +++ b/module-badge-maker.html @@ -423,13 +423,13 @@
diff --git a/module-badge-maker_lib_xml-ElementList.html b/module-badge-maker_lib_xml-ElementList.html index 6688f8eafa..312802f505 100644 --- a/module-badge-maker_lib_xml-ElementList.html +++ b/module-badge-maker_lib_xml-ElementList.html @@ -157,13 +157,13 @@ like an XmlElement but renders multiple XML tags (not wrapped in a ).


- Documentation generated by JSDoc 4.0.2 on Wed Feb 21 2024 18:42:01 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 4.0.2 on Sat Feb 24 2024 18:21:41 GMT+0000 (Coordinated Universal Time)
diff --git a/module-badge-maker_lib_xml-XmlElement.html b/module-badge-maker_lib_xml-XmlElement.html index 2e49cc18cb..bf2f87b62c 100644 --- a/module-badge-maker_lib_xml-XmlElement.html +++ b/module-badge-maker_lib_xml-XmlElement.html @@ -468,13 +468,13 @@ element will be rendered as a self-closing element.


- Documentation generated by JSDoc 4.0.2 on Wed Feb 21 2024 18:42:01 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 4.0.2 on Sat Feb 24 2024 18:21:41 GMT+0000 (Coordinated Universal Time)
diff --git a/module-badge-maker_lib_xml.html b/module-badge-maker_lib_xml.html index 8a56a3919c..45db421a45 100644 --- a/module-badge-maker_lib_xml.html +++ b/module-badge-maker_lib_xml.html @@ -122,13 +122,13 @@
- Documentation generated by JSDoc 4.0.2 on Wed Feb 21 2024 18:42:01 GMT+0000 (Coordinated Universal Time) + Documentation generated by JSDoc 4.0.2 on Sat Feb 24 2024 18:21:41 GMT+0000 (Coordinated Universal Time)
diff --git a/module-core_base-service_base-BaseService.html b/module-core_base-service_base-BaseService.html index 376c176d13..68553b04af 100644 --- a/module-core_base-service_base-BaseService.html +++ b/module-core_base-service_base-BaseService.html @@ -96,7 +96,7 @@ category(), route() and handle(namedParams, queryParams)

Source:
@@ -211,7 +211,7 @@ this._request(this.authHelper.withBasicAuth({ url, schema, options }))

Source:
@@ -285,7 +285,7 @@ from the handler nor overridden by the user via query parameters.

Source:
@@ -303,20 +303,14 @@ from the handler nor overridden by the user via query parameters.

-

(abstract) examples :Array.<module:core/base-service/base~Example>

+

(abstract) openApi :module:core/base-service/service-definitions~openApiSchema

-

Array of Example objects describing example URLs for this service. -These should use the format specified in route, -and can be used to demonstrate how to use badges for this service.

-

The preferred way to specify an example is with namedParams which are -substituted into the service's compiled route pattern. The rendered badge -is specified with staticPreview.

-

For services which use a route format, the pattern can be specified as -part of the example.

+

An OpenAPI Paths Object describing this service's +route or routes in OpenAPI format.

@@ -325,7 +319,7 @@ part of the example.