@scalar/fastify-api-reference 1.19.5 → 1.20.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/LICENSE +1 -1
- package/dist/fastifyApiReference.d.ts +13 -1
- package/dist/fastifyApiReference.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +2 -2
- package/dist/js/standalone.js +6 -6
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @scalar/fastify-api-reference
|
|
2
2
|
|
|
3
|
+
## 1.20.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 0c5e22c: fix: section flare if position fixed
|
|
8
|
+
|
|
9
|
+
## 1.20.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- b32f46c: chore: update @scalar/api-reference
|
|
14
|
+
|
|
3
15
|
## 1.19.5
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/LICENSE
CHANGED
|
@@ -2,11 +2,23 @@ import type { ReferenceConfiguration } from '@scalar/api-reference';
|
|
|
2
2
|
import type { FastifyPluginAsync } from 'fastify';
|
|
3
3
|
export type FastifyApiReferenceOptions = {
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* If you’re prefixing Fastify with a path, you can set it here.
|
|
6
|
+
* It’ll be added to the JavaScript URL and the route.
|
|
7
|
+
*
|
|
8
|
+
* Example: ${publicPath}${routePrefix}/@scalar/fastify-api-reference/js/browser.js
|
|
9
|
+
*/
|
|
10
|
+
publicPath?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Prefix the route with a path. This is where the API Reference will be available.
|
|
6
13
|
*
|
|
7
14
|
* @default ''
|
|
8
15
|
*/
|
|
9
16
|
routePrefix?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The universal configuration object for @scalar/api-reference.
|
|
19
|
+
*
|
|
20
|
+
* Read more: https://github.com/scalar/scalar
|
|
21
|
+
*/
|
|
10
22
|
configuration?: ReferenceConfiguration;
|
|
11
23
|
};
|
|
12
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fastifyApiReference.d.ts","sourceRoot":"","sources":["../src/fastifyApiReference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIjD,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,sBAAsB,CAAA;CACvC,CAAA;AAcD;;GAEG;AACH,eAAO,MAAM,UAAU,64EA4EtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,0BAA0B,WAkB7D,CAAA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,0BAA0B,UAgB/D;AAED,QAAA,MAAM,mBAAmB,EAAE,kBAAkB,CAC3C,0BAA0B,CAiF3B,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"fastifyApiReference.d.ts","sourceRoot":"","sources":["../src/fastifyApiReference.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAIjD,MAAM,MAAM,0BAA0B,GAAG;IACvC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,sBAAsB,CAAA;CACvC,CAAA;AAcD;;GAEG;AACH,eAAO,MAAM,UAAU,64EA4EtB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,0BAA0B,WAkB7D,CAAA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,0BAA0B,UAgB/D;AAED,QAAA,MAAM,mBAAmB,EAAE,kBAAkB,CAC3C,0BAA0B,CAiF3B,CAAA;AAED,eAAe,mBAAmB,CAAA"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;const e=require("node:fs"),n=require("node:path"),t=require("node:url");var o="undefined"!=typeof document?document.currentScript:null;const r={hide:!0},c=e=>`${e??""}/@scalar/fastify-api-reference/js/browser.js`.replace(/\/\//g,"/");function l(e){return`\n<!DOCTYPE html>\n<html>\n <head>\n <title>API Reference</title>\n <meta charset="utf-8" />\n <meta\n name="viewport"\n content="width=device-width, initial-scale=1" />\n </head>\n <body>\n ${(e=>{var n,t,o,r;const{configuration:l}=e;return`\n <script\n id="api-reference"\n type="application/json"\n data-configuration="${JSON.stringify(l??{}).split('"').join(""")}">${(null==(n=null==l?void 0:l.spec)?void 0:n.content)?"function"==typeof(null==(t=null==l?void 0:l.spec)?void 0:t.content)?JSON.stringify(null==(o=null==l?void 0:l.spec)?void 0:o.content()):JSON.stringify(null==(r=null==l?void 0:l.spec)?void 0:r.content):""}<\/script>\n <script src="${c(e.routePrefix)}"><\/script>\n `})(e)}\n </body>\n</html>\n`}module.exports=async(a,i)=>{var s,h;let{configuration:d}=i;const u=a.hasPlugin("@fastify/swagger");if(a.hasPlugin("fastify-html")||await a.register(import("fastify-html")),!(null==(s=null==d?void 0:d.spec)?void 0:s.content)&&!(null==(h=null==d?void 0:d.spec)?void 0:h.url)&&!u)return void a.log.warn("[@scalar/fastify-api-reference] You didn’t provide a spec.content or spec.url, and @fastify/swagger could not be found. Please provide one of these options.");const m=function(){const r=n.dirname(t.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:o&&o.src||new URL("index.cjs",document.baseURI).href)),c=[n.resolve(`${r}/js/standalone.js`),n.resolve(`${r}/../../dist/js/standalone.js`)].find((n=>e.existsSync(n)));if(void 0===c)throw new Error(`JavaScript file not found: ${n.resolve(`${r}/js/standalone.js`)}`);return e.readFileSync(c,"utf8")}();a.route({method:"GET",url:i.routePrefix??"/",schema:r,async handler(e,n){var t,o;return n.header("Content-Type","text/html; charset=utf-8"),(null==(t=null==d?void 0:d.spec)?void 0:t.content)||(null==(o=null==d?void 0:d.spec)?void 0:o.url)||!u||(d={...d,spec:{content:()=>a.swagger()}}),(null==d?void 0:d.customCss)||(null==d?void 0:d.theme)||(d={...d,customCss:"\n:root {\n --theme-font: 'Inter', var(--system-fonts);\n}\n\n.light-mode {\n color-scheme: light;\n --theme-color-1: #1c1e21;\n --theme-color-2: #757575;\n --theme-color-3: #8e8e8e;\n --theme-color-disabled: #b4b1b1;\n --theme-color-ghost: #a7a7a7;\n --theme-color-accent: #2f8555;\n --theme-background-1: #fff;\n --theme-background-2: #f5f5f5;\n --theme-background-3: #ededed;\n --theme-background-4: rgba(0, 0, 0, 0.06);\n --theme-background-accent: #2f85551f;\n\n --theme-border-color: rgba(0, 0, 0, 0.1);\n --theme-scrollbar-color: rgba(0, 0, 0, 0.18);\n --theme-scrollbar-color-active: rgba(0, 0, 0, 0.36);\n --theme-lifted-brightness: 1;\n --theme-backdrop-brightness: 1;\n\n --theme-shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.11);\n --theme-shadow-2: rgba(0, 0, 0, 0.08) 0px 13px 20px 0px,\n rgba(0, 0, 0, 0.08) 0px 3px 8px 0px, #eeeeed 0px 0 0 1px;\n\n --theme-button-1: rgb(49 53 56);\n --theme-button-1-color: #fff;\n --theme-button-1-hover: rgb(28 31 33);\n\n --theme-color-green: #007300;\n --theme-color-red: #af272b;\n --theme-color-yellow: #b38200;\n --theme-color-blue: #3b8ba5;\n --theme-color-orange: #fb892c;\n --theme-color-purple: #5203d1;\n}\n\n.dark-mode {\n color-scheme: dark;\n --theme-color-1: rgba(255, 255, 255, 0.9);\n --theme-color-2: rgba(255, 255, 255, 0.62);\n --theme-color-3: rgba(255, 255, 255, 0.44);\n --theme-color-disabled: rgba(255, 255, 255, 0.34);\n --theme-color-ghost: rgba(255, 255, 255, 0.26);\n --theme-color-accent: #27c2a0;\n --theme-background-1: #1b1b1d;\n --theme-background-2: #242526;\n --theme-background-3: #3b3b3b;\n --theme-background-4: rgba(255, 255, 255, 0.06);\n --theme-background-accent: #27c2a01f;\n\n --theme-border-color: rgba(255, 255, 255, 0.1);\n --theme-scrollbar-color: rgba(255, 255, 255, 0.24);\n --theme-scrollbar-color-active: rgba(255, 255, 255, 0.48);\n --theme-lifted-brightness: 1.45;\n --theme-backdrop-brightness: 0.5;\n\n --theme-shadow-1: 0 1px 3px 0 rgb(0, 0, 0, 0.1);\n --theme-shadow-2: rgba(15, 15, 15, 0.2) 0px 3px 6px,\n rgba(15, 15, 15, 0.4) 0px 9px 24px, 0 0 0 1px rgba(255, 255, 255, 0.1);\n\n --theme-button-1: #f6f6f6;\n --theme-button-1-color: #000;\n --theme-button-1-hover: #e7e7e7;\n\n --theme-color-green: #26b226;\n --theme-color-red: #fb565b;\n --theme-color-yellow: #ffc426;\n --theme-color-blue: #6ecfef;\n --theme-color-orange: #ff8d4d;\n --theme-color-purple: #b191f9;\n}\n"}),n.html`!${l({...i,configuration:d})}`}}),a.route({method:"GET",url:c(i.routePrefix),schema:r,async handler(e,n){n.header("Content-Type","application/javascript; charset=utf-8"),n.send(m)}})};
|
|
1
|
+
"use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;const e=require("node:fs"),n=require("node:path"),t=require("node:url");var o="undefined"!=typeof document?document.currentScript:null;const r={hide:!0},c=(e,n)=>`${n??""}${e??""}/@scalar/fastify-api-reference/js/browser.js`.replace(/\/\//g,"/");function l(e){return`\n<!DOCTYPE html>\n<html>\n <head>\n <title>API Reference</title>\n <meta charset="utf-8" />\n <meta\n name="viewport"\n content="width=device-width, initial-scale=1" />\n </head>\n <body>\n ${(e=>{var n,t,o,r;const{configuration:l}=e;return`\n <script\n id="api-reference"\n type="application/json"\n data-configuration="${JSON.stringify(l??{}).split('"').join(""")}">${(null==(n=null==l?void 0:l.spec)?void 0:n.content)?"function"==typeof(null==(t=null==l?void 0:l.spec)?void 0:t.content)?JSON.stringify(null==(o=null==l?void 0:l.spec)?void 0:o.content()):JSON.stringify(null==(r=null==l?void 0:l.spec)?void 0:r.content):""}<\/script>\n <script src="${c(e.routePrefix,e.publicPath)}"><\/script>\n `})(e)}\n </body>\n</html>\n`}module.exports=async(a,i)=>{var s,h;let{configuration:d}=i;const u=a.hasPlugin("@fastify/swagger");if(a.hasPlugin("fastify-html")||await a.register(import("fastify-html")),!(null==(s=null==d?void 0:d.spec)?void 0:s.content)&&!(null==(h=null==d?void 0:d.spec)?void 0:h.url)&&!u)return void a.log.warn("[@scalar/fastify-api-reference] You didn’t provide a spec.content or spec.url, and @fastify/swagger could not be found. Please provide one of these options.");const m=function(){const r=n.dirname(t.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:o&&o.src||new URL("index.cjs",document.baseURI).href)),c=[n.resolve(`${r}/js/standalone.js`),n.resolve(`${r}/../../dist/js/standalone.js`)].find((n=>e.existsSync(n)));if(void 0===c)throw new Error(`JavaScript file not found: ${n.resolve(`${r}/js/standalone.js`)}`);return e.readFileSync(c,"utf8")}();a.route({method:"GET",url:i.routePrefix??"/",schema:r,async handler(e,n){var t,o;return n.header("Content-Type","text/html; charset=utf-8"),(null==(t=null==d?void 0:d.spec)?void 0:t.content)||(null==(o=null==d?void 0:d.spec)?void 0:o.url)||!u||(d={...d,spec:{content:()=>a.swagger()}}),(null==d?void 0:d.customCss)||(null==d?void 0:d.theme)||(d={...d,customCss:"\n:root {\n --theme-font: 'Inter', var(--system-fonts);\n}\n\n.light-mode {\n color-scheme: light;\n --theme-color-1: #1c1e21;\n --theme-color-2: #757575;\n --theme-color-3: #8e8e8e;\n --theme-color-disabled: #b4b1b1;\n --theme-color-ghost: #a7a7a7;\n --theme-color-accent: #2f8555;\n --theme-background-1: #fff;\n --theme-background-2: #f5f5f5;\n --theme-background-3: #ededed;\n --theme-background-4: rgba(0, 0, 0, 0.06);\n --theme-background-accent: #2f85551f;\n\n --theme-border-color: rgba(0, 0, 0, 0.1);\n --theme-scrollbar-color: rgba(0, 0, 0, 0.18);\n --theme-scrollbar-color-active: rgba(0, 0, 0, 0.36);\n --theme-lifted-brightness: 1;\n --theme-backdrop-brightness: 1;\n\n --theme-shadow-1: 0 1px 3px 0 rgba(0, 0, 0, 0.11);\n --theme-shadow-2: rgba(0, 0, 0, 0.08) 0px 13px 20px 0px,\n rgba(0, 0, 0, 0.08) 0px 3px 8px 0px, #eeeeed 0px 0 0 1px;\n\n --theme-button-1: rgb(49 53 56);\n --theme-button-1-color: #fff;\n --theme-button-1-hover: rgb(28 31 33);\n\n --theme-color-green: #007300;\n --theme-color-red: #af272b;\n --theme-color-yellow: #b38200;\n --theme-color-blue: #3b8ba5;\n --theme-color-orange: #fb892c;\n --theme-color-purple: #5203d1;\n}\n\n.dark-mode {\n color-scheme: dark;\n --theme-color-1: rgba(255, 255, 255, 0.9);\n --theme-color-2: rgba(255, 255, 255, 0.62);\n --theme-color-3: rgba(255, 255, 255, 0.44);\n --theme-color-disabled: rgba(255, 255, 255, 0.34);\n --theme-color-ghost: rgba(255, 255, 255, 0.26);\n --theme-color-accent: #27c2a0;\n --theme-background-1: #1b1b1d;\n --theme-background-2: #242526;\n --theme-background-3: #3b3b3b;\n --theme-background-4: rgba(255, 255, 255, 0.06);\n --theme-background-accent: #27c2a01f;\n\n --theme-border-color: rgba(255, 255, 255, 0.1);\n --theme-scrollbar-color: rgba(255, 255, 255, 0.24);\n --theme-scrollbar-color-active: rgba(255, 255, 255, 0.48);\n --theme-lifted-brightness: 1.45;\n --theme-backdrop-brightness: 0.5;\n\n --theme-shadow-1: 0 1px 3px 0 rgb(0, 0, 0, 0.1);\n --theme-shadow-2: rgba(15, 15, 15, 0.2) 0px 3px 6px,\n rgba(15, 15, 15, 0.4) 0px 9px 24px, 0 0 0 1px rgba(255, 255, 255, 0.1);\n\n --theme-button-1: #f6f6f6;\n --theme-button-1-color: #000;\n --theme-button-1-hover: #e7e7e7;\n\n --theme-color-green: #26b226;\n --theme-color-red: #fb565b;\n --theme-color-yellow: #ffc426;\n --theme-color-blue: #6ecfef;\n --theme-color-orange: #ff8d4d;\n --theme-color-purple: #b191f9;\n}\n"}),n.html`!${l({...i,configuration:d})}`}}),a.route({method:"GET",url:c(i.routePrefix),schema:r,async handler(e,n){n.header("Content-Type","application/javascript; charset=utf-8"),n.send(m)}})};
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ function getJavaScriptFile() {
|
|
|
19
19
|
const schemaToHideRoute = {
|
|
20
20
|
hide: true
|
|
21
21
|
};
|
|
22
|
-
const getJavaScriptUrl = (routePrefix) => `${routePrefix ?? ""}/@scalar/fastify-api-reference/js/browser.js`.replace(
|
|
22
|
+
const getJavaScriptUrl = (routePrefix, publicPath) => `${publicPath ?? ""}${routePrefix ?? ""}/@scalar/fastify-api-reference/js/browser.js`.replace(
|
|
23
23
|
/\/\//g,
|
|
24
24
|
"/"
|
|
25
25
|
);
|
|
@@ -108,7 +108,7 @@ const javascript = (options) => {
|
|
|
108
108
|
id="api-reference"
|
|
109
109
|
type="application/json"
|
|
110
110
|
data-configuration="${JSON.stringify(configuration ?? {}).split('"').join(""")}">${((_a = configuration == null ? void 0 : configuration.spec) == null ? void 0 : _a.content) ? typeof ((_b = configuration == null ? void 0 : configuration.spec) == null ? void 0 : _b.content) === "function" ? JSON.stringify((_c = configuration == null ? void 0 : configuration.spec) == null ? void 0 : _c.content()) : JSON.stringify((_d = configuration == null ? void 0 : configuration.spec) == null ? void 0 : _d.content) : ""}<\/script>
|
|
111
|
-
<script src="${getJavaScriptUrl(options.routePrefix)}"><\/script>
|
|
111
|
+
<script src="${getJavaScriptUrl(options.routePrefix, options.publicPath)}"><\/script>
|
|
112
112
|
`;
|
|
113
113
|
};
|
|
114
114
|
function htmlDocument(options) {
|