initial commit

This commit is contained in:
Zoe
2023-01-03 09:29:04 -06:00
commit 7851137d88
12889 changed files with 2557443 additions and 0 deletions

21
node_modules/vue-bundle-renderer/LICENSE.md generated vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2020 - Nuxt.js
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

65
node_modules/vue-bundle-renderer/README.md generated vendored Normal file
View File

@@ -0,0 +1,65 @@
# Vue Bundle Renderer
[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![Github Actions][github-actions-src]][github-actions-href]
<!-- [![Codecov][codecov-src]][codecov-href] -->
SSR Bundle Renderer for [Vue 3](https://vuejs.org/).
## Install
```sh
yarn add vue-bundle-renderer
npm install vue-bundle-renderer
pnpm add vue-bundle-renderer
```
## Usage
### `createRenderer`
```ts
import { createRenderer } from 'vue-bundle-renderer/runtime'
declare function createRenderer(createApp, renderOptions: RenderOptions)
```
### `normalizeViteManifest`
```ts
import { normalizeViteManifest } from 'vue-bundle-renderer'
declare function normalizeViteManifest(manifest: ViteManifest)
```
### `normalizeWebpackManifest`
```ts
import { normalizeWebpackManifest } from 'vue-bundle-renderer'
declare function normalizeWebpackManifest(manifest: ViteManifest)
```
## Credits
Based on [vue-server-renderer](https://www.npmjs.com/package/vue-server-renderer) made by [Evan You](https://github.com/yyx990803).
## License
MIT
<!-- Badges -->
[npm-version-src]: https://img.shields.io/npm/v/vue-bundle-renderer?style=flat-square
[npm-version-href]: https://npmjs.com/package/vue-bundle-renderer
[npm-downloads-src]: https://img.shields.io/npm/dm/vue-bundle-renderer?style=flat-square
[npm-downloads-href]: https://npmjs.com/package/vue-bundle-renderer
[github-actions-src]: https://img.shields.io/github/workflow/status/nuxt-contrib/vue-bundle-renderer/test/master?style=flat-square
[github-actions-href]: https://github.com/nuxt-contrib/vue-bundle-renderer/actions?query=workflow%3Atest
[codecov-src]: https://img.shields.io/codecov/c/gh/nuxt-contrib/vue-bundle-renderer/master?style=flat-square
[codecov-href]: https://codecov.io/gh/nuxt-contrib/vue-bundle-renderer

169
node_modules/vue-bundle-renderer/dist/index.cjs generated vendored Normal file
View File

@@ -0,0 +1,169 @@
'use strict';
const IS_JS_RE = /\.[cm]?js(\?[^.]+)?$/;
const HAS_EXT_RE = /[^./]+\.[^./]+$/;
const IS_CSS_RE = /\.(css|postcss|sass|scss|less|stylus|styl)(\?[^.]+)?$/;
function isJS(file) {
return IS_JS_RE.test(file) || !HAS_EXT_RE.test(file);
}
function isCSS(file) {
return IS_CSS_RE.test(file);
}
const IMAGE_RE = /^jpe?g|png|svg|gif|webp|ico$/;
const FONT_RE = /^woff2?|ttf|otf|eot$/;
const AUDIO_RE = /^mp3|wav|ogg|flac|aac|m4a|wma|aiff|aif|au|raw|vox|opus$/;
const VIDEO_RE = /^mp4|webm|ogv|mkv|avi|mov|flv|wmv|mpg|mpeg|m4v|3gp|3g2|mxf|rm|rmvb|asf|asx|m3u8|m3u|pls|cue|m3u8$/;
const contentTypeMap = {
ico: "image/x-icon",
jpg: "image/jpeg",
svg: "image/svg+xml"
};
function getContentType(asType, extension) {
if (asType === "font") {
return `font/${extension}`;
}
if (asType === "image") {
return contentTypeMap[extension] || `image/${extension}`;
}
}
function getAsType(ext) {
if (ext === "js" || ext === "cjs" || ext === "mjs") {
return "script";
} else if (ext === "css") {
return "style";
} else if (IMAGE_RE.test(ext)) {
return "image";
} else if (FONT_RE.test(ext)) {
return "font";
} else if (AUDIO_RE.test(ext)) {
return "audio";
} else if (VIDEO_RE.test(ext)) {
return "video";
}
}
const parseResource = (path) => {
const chunk = {};
const extension = path.replace(/\?.*/, "").split(".").pop() || "";
const asType = getAsType(extension);
if (asType) {
chunk.resourceType = asType;
if (asType === "script" && extension !== "cjs") {
chunk.module = true;
}
}
const contentType = getContentType(asType, extension);
if (contentType) {
chunk.mimeType = contentType;
}
return chunk;
};
function normalizeViteManifest(manifest) {
const _manifest = {};
for (const file in manifest) {
const chunk = manifest[file];
_manifest[file] = { ...parseResource(chunk.file || file), ...chunk };
for (const item of chunk.css || []) {
if (!_manifest[item]) {
_manifest[item] = { file: item, resourceType: "style", ...parseResource(item) };
}
}
for (const item of chunk.assets || []) {
if (!_manifest[item]) {
_manifest[item] = { file: item, ...parseResource(item) };
}
}
}
return _manifest;
}
function normalizeWebpackManifest(manifest) {
const clientManifest = {};
for (const outfile of manifest.all) {
if (isJS(outfile)) {
clientManifest[getIdentifier(outfile)] = {
file: outfile,
...parseResource(outfile)
};
}
}
const first = getIdentifier(manifest.initial.find(isJS));
if (first) {
if (!(first in clientManifest)) {
throw new Error(
`Invalid manifest - initial entrypoint not in \`all\`: ${manifest.initial.find(isJS)}`
);
}
clientManifest[first].css = [];
clientManifest[first].assets = [];
clientManifest[first].dynamicImports = [];
}
for (const outfile of manifest.initial) {
if (isJS(outfile)) {
clientManifest[getIdentifier(outfile)].isEntry = true;
} else if (isCSS(outfile) && first) {
clientManifest[first].css.push(outfile);
clientManifest[outfile] = { file: outfile, ...parseResource(outfile) };
} else if (first) {
clientManifest[first].assets.push(outfile);
clientManifest[outfile] = { file: outfile, ...parseResource(outfile) };
}
}
for (const outfile of manifest.async) {
if (isJS(outfile)) {
const identifier = getIdentifier(outfile);
if (!(identifier in clientManifest)) {
throw new Error(`Invalid manifest - async module not in \`all\`: ${outfile}`);
}
clientManifest[identifier].isDynamicEntry = true;
clientManifest[first].dynamicImports.push(identifier);
} else if (first) {
const key = isCSS(outfile) ? "css" : "assets";
const identifier = getIdentifier(outfile);
clientManifest[identifier] = {
file: "",
[key]: [outfile]
};
clientManifest[outfile] = {
file: outfile,
...parseResource(outfile)
};
clientManifest[first].dynamicImports.push(identifier);
}
}
for (const [moduleId, importIndexes] of Object.entries(manifest.modules)) {
const jsFiles = importIndexes.map((index) => manifest.all[index]).filter(isJS);
jsFiles.forEach((file) => {
const identifier = getIdentifier(file);
clientManifest[identifier] = {
...clientManifest[identifier],
file
};
});
const mappedIndexes = importIndexes.map((index) => manifest.all[index]);
clientManifest[moduleId] = {
file: "",
...parseResource(moduleId),
imports: jsFiles.map((id) => getIdentifier(id)),
css: mappedIndexes.filter(isCSS),
assets: mappedIndexes.filter((i) => !isJS(i) && !isCSS(i))
};
for (const key of ["css", "assets"]) {
for (const file of clientManifest[moduleId][key] || []) {
clientManifest[file] = clientManifest[file] || { file, ...parseResource(file) };
}
}
}
return clientManifest;
}
function getIdentifier(output) {
return output ? `_${output}` : null;
}
function defineManifest(manifest) {
return manifest;
}
exports.defineManifest = defineManifest;
exports.normalizeViteManifest = normalizeViteManifest;
exports.normalizeWebpackManifest = normalizeWebpackManifest;

21
node_modules/vue-bundle-renderer/dist/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,21 @@
import { Manifest } from 'vite';
import { M as Manifest$1 } from './types-dfcc483f.js';
export { M as Manifest, R as ResourceMeta, d as defineManifest } from './types-dfcc483f.js';
declare function normalizeViteManifest(manifest: Manifest | Manifest$1): Manifest$1;
declare type Identifier = string;
declare type OutputPath = string;
interface WebpackClientManifest {
publicPath: string;
all: Array<OutputPath>;
initial: Array<OutputPath>;
async: Array<OutputPath>;
modules: Record<Identifier, Array<number>>;
hasNoCssVersion?: {
[file: string]: boolean;
};
}
declare function normalizeWebpackManifest(manifest: WebpackClientManifest): Manifest$1;
export { normalizeViteManifest, normalizeWebpackManifest };

165
node_modules/vue-bundle-renderer/dist/index.mjs generated vendored Normal file
View File

@@ -0,0 +1,165 @@
const IS_JS_RE = /\.[cm]?js(\?[^.]+)?$/;
const HAS_EXT_RE = /[^./]+\.[^./]+$/;
const IS_CSS_RE = /\.(css|postcss|sass|scss|less|stylus|styl)(\?[^.]+)?$/;
function isJS(file) {
return IS_JS_RE.test(file) || !HAS_EXT_RE.test(file);
}
function isCSS(file) {
return IS_CSS_RE.test(file);
}
const IMAGE_RE = /^jpe?g|png|svg|gif|webp|ico$/;
const FONT_RE = /^woff2?|ttf|otf|eot$/;
const AUDIO_RE = /^mp3|wav|ogg|flac|aac|m4a|wma|aiff|aif|au|raw|vox|opus$/;
const VIDEO_RE = /^mp4|webm|ogv|mkv|avi|mov|flv|wmv|mpg|mpeg|m4v|3gp|3g2|mxf|rm|rmvb|asf|asx|m3u8|m3u|pls|cue|m3u8$/;
const contentTypeMap = {
ico: "image/x-icon",
jpg: "image/jpeg",
svg: "image/svg+xml"
};
function getContentType(asType, extension) {
if (asType === "font") {
return `font/${extension}`;
}
if (asType === "image") {
return contentTypeMap[extension] || `image/${extension}`;
}
}
function getAsType(ext) {
if (ext === "js" || ext === "cjs" || ext === "mjs") {
return "script";
} else if (ext === "css") {
return "style";
} else if (IMAGE_RE.test(ext)) {
return "image";
} else if (FONT_RE.test(ext)) {
return "font";
} else if (AUDIO_RE.test(ext)) {
return "audio";
} else if (VIDEO_RE.test(ext)) {
return "video";
}
}
const parseResource = (path) => {
const chunk = {};
const extension = path.replace(/\?.*/, "").split(".").pop() || "";
const asType = getAsType(extension);
if (asType) {
chunk.resourceType = asType;
if (asType === "script" && extension !== "cjs") {
chunk.module = true;
}
}
const contentType = getContentType(asType, extension);
if (contentType) {
chunk.mimeType = contentType;
}
return chunk;
};
function normalizeViteManifest(manifest) {
const _manifest = {};
for (const file in manifest) {
const chunk = manifest[file];
_manifest[file] = { ...parseResource(chunk.file || file), ...chunk };
for (const item of chunk.css || []) {
if (!_manifest[item]) {
_manifest[item] = { file: item, resourceType: "style", ...parseResource(item) };
}
}
for (const item of chunk.assets || []) {
if (!_manifest[item]) {
_manifest[item] = { file: item, ...parseResource(item) };
}
}
}
return _manifest;
}
function normalizeWebpackManifest(manifest) {
const clientManifest = {};
for (const outfile of manifest.all) {
if (isJS(outfile)) {
clientManifest[getIdentifier(outfile)] = {
file: outfile,
...parseResource(outfile)
};
}
}
const first = getIdentifier(manifest.initial.find(isJS));
if (first) {
if (!(first in clientManifest)) {
throw new Error(
`Invalid manifest - initial entrypoint not in \`all\`: ${manifest.initial.find(isJS)}`
);
}
clientManifest[first].css = [];
clientManifest[first].assets = [];
clientManifest[first].dynamicImports = [];
}
for (const outfile of manifest.initial) {
if (isJS(outfile)) {
clientManifest[getIdentifier(outfile)].isEntry = true;
} else if (isCSS(outfile) && first) {
clientManifest[first].css.push(outfile);
clientManifest[outfile] = { file: outfile, ...parseResource(outfile) };
} else if (first) {
clientManifest[first].assets.push(outfile);
clientManifest[outfile] = { file: outfile, ...parseResource(outfile) };
}
}
for (const outfile of manifest.async) {
if (isJS(outfile)) {
const identifier = getIdentifier(outfile);
if (!(identifier in clientManifest)) {
throw new Error(`Invalid manifest - async module not in \`all\`: ${outfile}`);
}
clientManifest[identifier].isDynamicEntry = true;
clientManifest[first].dynamicImports.push(identifier);
} else if (first) {
const key = isCSS(outfile) ? "css" : "assets";
const identifier = getIdentifier(outfile);
clientManifest[identifier] = {
file: "",
[key]: [outfile]
};
clientManifest[outfile] = {
file: outfile,
...parseResource(outfile)
};
clientManifest[first].dynamicImports.push(identifier);
}
}
for (const [moduleId, importIndexes] of Object.entries(manifest.modules)) {
const jsFiles = importIndexes.map((index) => manifest.all[index]).filter(isJS);
jsFiles.forEach((file) => {
const identifier = getIdentifier(file);
clientManifest[identifier] = {
...clientManifest[identifier],
file
};
});
const mappedIndexes = importIndexes.map((index) => manifest.all[index]);
clientManifest[moduleId] = {
file: "",
...parseResource(moduleId),
imports: jsFiles.map((id) => getIdentifier(id)),
css: mappedIndexes.filter(isCSS),
assets: mappedIndexes.filter((i) => !isJS(i) && !isCSS(i))
};
for (const key of ["css", "assets"]) {
for (const file of clientManifest[moduleId][key] || []) {
clientManifest[file] = clientManifest[file] || { file, ...parseResource(file) };
}
}
}
return clientManifest;
}
function getIdentifier(output) {
return output ? `_${output}` : null;
}
function defineManifest(manifest) {
return manifest;
}
export { defineManifest, normalizeViteManifest, normalizeWebpackManifest };

208
node_modules/vue-bundle-renderer/dist/runtime.cjs generated vendored Normal file
View File

@@ -0,0 +1,208 @@
'use strict';
const ufo = require('ufo');
const defaultShouldPrefetch = (resource) => resource.resourceType !== "font";
const defaultShouldPreload = (resource) => ["module", "script", "style"].includes(resource.resourceType || "");
function createRendererContext({ manifest, buildAssetsURL, shouldPrefetch, shouldPreload }) {
const ctx = {
shouldPrefetch: shouldPrefetch || defaultShouldPrefetch,
shouldPreload: shouldPreload || defaultShouldPreload,
buildAssetsURL: buildAssetsURL || ufo.withLeadingSlash,
manifest: void 0,
updateManifest,
_dependencies: void 0,
_dependencySets: void 0,
_entrypoints: void 0
};
function updateManifest(manifest2) {
const manifestEntries = Object.entries(manifest2);
ctx.manifest = manifest2;
ctx._dependencies = {};
ctx._dependencySets = {};
ctx._entrypoints = manifestEntries.filter((e) => e[1].isEntry).map(([module]) => module);
}
updateManifest(manifest);
return ctx;
}
function getModuleDependencies(id, rendererContext) {
if (rendererContext._dependencies[id]) {
return rendererContext._dependencies[id];
}
const dependencies = {
scripts: {},
styles: {},
preload: {},
prefetch: {}
};
const meta = rendererContext.manifest[id];
if (!meta) {
rendererContext._dependencies[id] = dependencies;
return dependencies;
}
if (meta.file) {
dependencies.scripts[id] = dependencies.preload[id] = rendererContext.manifest[id];
}
for (const css of meta.css || []) {
dependencies.styles[css] = dependencies.preload[css] = dependencies.prefetch[css] = rendererContext.manifest[css];
}
for (const asset of meta.assets || []) {
dependencies.preload[asset] = dependencies.prefetch[asset] = rendererContext.manifest[asset];
}
for (const depId of meta.imports || []) {
const depDeps = getModuleDependencies(depId, rendererContext);
Object.assign(dependencies.styles, depDeps.styles);
Object.assign(dependencies.preload, depDeps.preload);
Object.assign(dependencies.prefetch, depDeps.prefetch);
}
const filteredPreload = {};
for (const id2 in dependencies.preload) {
const dep = dependencies.preload[id2];
if (rendererContext.shouldPreload(dep)) {
filteredPreload[id2] = dep;
}
}
dependencies.preload = filteredPreload;
rendererContext._dependencies[id] = dependencies;
return dependencies;
}
function getAllDependencies(ids, rendererContext) {
const cacheKey = Array.from(ids).sort().join(",");
if (rendererContext._dependencySets[cacheKey]) {
return rendererContext._dependencySets[cacheKey];
}
const allDeps = {
scripts: {},
styles: {},
preload: {},
prefetch: {}
};
for (const id of ids) {
const deps = getModuleDependencies(id, rendererContext);
Object.assign(allDeps.scripts, deps.scripts);
Object.assign(allDeps.styles, deps.styles);
Object.assign(allDeps.preload, deps.preload);
Object.assign(allDeps.prefetch, deps.prefetch);
for (const dynamicDepId of rendererContext.manifest[id]?.dynamicImports || []) {
const dynamicDeps = getModuleDependencies(dynamicDepId, rendererContext);
Object.assign(allDeps.prefetch, dynamicDeps.scripts);
Object.assign(allDeps.prefetch, dynamicDeps.styles);
Object.assign(allDeps.prefetch, dynamicDeps.preload);
}
}
const filteredPrefetch = {};
for (const id in allDeps.prefetch) {
const dep = allDeps.prefetch[id];
if (rendererContext.shouldPrefetch(dep)) {
filteredPrefetch[id] = dep;
}
}
allDeps.prefetch = filteredPrefetch;
for (const id in allDeps.prefetch) {
if (id in allDeps.preload) {
delete allDeps.prefetch[id];
}
}
rendererContext._dependencySets[cacheKey] = allDeps;
return allDeps;
}
function getRequestDependencies(ssrContext, rendererContext) {
if (ssrContext._requestDependencies) {
return ssrContext._requestDependencies;
}
const ids = new Set(Array.from([
...rendererContext._entrypoints,
...ssrContext.modules || ssrContext._registeredComponents || []
]));
const deps = getAllDependencies(ids, rendererContext);
ssrContext._requestDependencies = deps;
return deps;
}
function renderStyles(ssrContext, rendererContext) {
const { styles } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(styles).map(
(resource) => renderLinkToString({ rel: "stylesheet", href: rendererContext.buildAssetsURL(resource.file) })
).join("");
}
function getResources(ssrContext, rendererContext) {
return [...getPreloadLinks(ssrContext, rendererContext), ...getPrefetchLinks(ssrContext, rendererContext)];
}
function renderResourceHints(ssrContext, rendererContext) {
return getResources(ssrContext, rendererContext).map(renderLinkToString).join("");
}
function renderResourceHeaders(ssrContext, rendererContext) {
return {
link: getResources(ssrContext, rendererContext).map(renderLinkToHeader).join(", ")
};
}
function getPreloadLinks(ssrContext, rendererContext) {
const { preload } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(preload).map((resource) => ({
rel: resource.module ? "modulepreload" : "preload",
as: resource.resourceType,
type: resource.mimeType ?? null,
crossorigin: resource.resourceType === "font" || resource.module ? "" : null,
href: rendererContext.buildAssetsURL(resource.file)
}));
}
function getPrefetchLinks(ssrContext, rendererContext) {
const { prefetch } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(prefetch).map((resource) => ({
rel: "prefetch",
as: resource.resourceType,
type: resource.mimeType ?? null,
crossorigin: resource.resourceType === "font" || resource.module ? "" : null,
href: rendererContext.buildAssetsURL(resource.file)
}));
}
function renderScripts(ssrContext, rendererContext) {
const { scripts } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(scripts).map((resource) => renderScriptToString({
type: resource.module ? "module" : null,
src: rendererContext.buildAssetsURL(resource.file),
defer: resource.module ? null : "",
crossorigin: ""
})).join("");
}
function createRenderer(createApp, renderOptions) {
const rendererContext = createRendererContext(renderOptions);
return {
rendererContext,
async renderToString(ssrContext) {
ssrContext._registeredComponents = ssrContext._registeredComponents || /* @__PURE__ */ new Set();
const _createApp = await Promise.resolve(createApp).then((r) => r.default || r);
const app = await _createApp(ssrContext);
const html = await renderOptions.renderToString(app, ssrContext);
const wrap = (fn) => () => fn(ssrContext, rendererContext);
return {
html,
renderResourceHeaders: wrap(renderResourceHeaders),
renderResourceHints: wrap(renderResourceHints),
renderStyles: wrap(renderStyles),
renderScripts: wrap(renderScripts)
};
}
};
}
function renderScriptToString(attrs) {
return `<script${Object.entries(attrs).map(([key, value]) => value === null ? "" : value ? ` ${key}="${value}"` : " " + key).join("")}><\/script>`;
}
function renderLinkToString(attrs) {
return `<link${Object.entries(attrs).map(([key, value]) => value === null ? "" : value ? ` ${key}="${value}"` : " " + key).join("")}>`;
}
function renderLinkToHeader(attrs) {
return `<${attrs.href}>${Object.entries(attrs).map(([key, value]) => key === "href" || value === null ? "" : value ? `; ${key}="${value}"` : `; ${key}`).join("")}`;
}
exports.createRenderer = createRenderer;
exports.createRendererContext = createRendererContext;
exports.getAllDependencies = getAllDependencies;
exports.getModuleDependencies = getModuleDependencies;
exports.getPrefetchLinks = getPrefetchLinks;
exports.getPreloadLinks = getPreloadLinks;
exports.getRequestDependencies = getRequestDependencies;
exports.getResources = getResources;
exports.renderResourceHeaders = renderResourceHeaders;
exports.renderResourceHints = renderResourceHints;
exports.renderScripts = renderScripts;
exports.renderStyles = renderStyles;

62
node_modules/vue-bundle-renderer/dist/runtime.d.ts generated vendored Normal file
View File

@@ -0,0 +1,62 @@
import { R as ResourceMeta, M as Manifest } from './types-dfcc483f.js';
interface ModuleDependencies {
scripts: Record<string, ResourceMeta>;
styles: Record<string, ResourceMeta>;
preload: Record<string, ResourceMeta>;
prefetch: Record<string, ResourceMeta>;
}
interface SSRContext {
renderResourceHints?: Function;
renderScripts?: Function;
renderStyles?: Function;
modules?: Set<string>;
_registeredComponents?: Set<string>;
_requestDependencies?: ModuleDependencies;
[key: string]: any;
}
interface RenderOptions {
shouldPrefetch?: (resource: ResourceMeta) => boolean;
shouldPreload?: (resource: ResourceMeta) => boolean;
buildAssetsURL?: (id: string) => string;
manifest: Manifest;
}
interface RendererContext extends Required<RenderOptions> {
_dependencies: Record<string, ModuleDependencies>;
_dependencySets: Record<string, ModuleDependencies>;
_entrypoints: string[];
updateManifest: (manifest: Manifest) => void;
}
interface LinkAttributes {
rel: string | null;
href: string;
as?: string | null;
type?: string | null;
crossorigin?: '' | null;
}
declare function createRendererContext({ manifest, buildAssetsURL, shouldPrefetch, shouldPreload }: RenderOptions): RendererContext;
declare function getModuleDependencies(id: string, rendererContext: RendererContext): ModuleDependencies;
declare function getAllDependencies(ids: Set<string>, rendererContext: RendererContext): ModuleDependencies;
declare function getRequestDependencies(ssrContext: SSRContext, rendererContext: RendererContext): ModuleDependencies;
declare function renderStyles(ssrContext: SSRContext, rendererContext: RendererContext): string;
declare function getResources(ssrContext: SSRContext, rendererContext: RendererContext): LinkAttributes[];
declare function renderResourceHints(ssrContext: SSRContext, rendererContext: RendererContext): string;
declare function renderResourceHeaders(ssrContext: SSRContext, rendererContext: RendererContext): Record<string, string>;
declare function getPreloadLinks(ssrContext: SSRContext, rendererContext: RendererContext): LinkAttributes[];
declare function getPrefetchLinks(ssrContext: SSRContext, rendererContext: RendererContext): LinkAttributes[];
declare function renderScripts(ssrContext: SSRContext, rendererContext: RendererContext): string;
declare type RenderFunction = (ssrContext: SSRContext, rendererContext: RendererContext) => any;
declare function createRenderer(createApp: any, renderOptions: RenderOptions & {
renderToString: Function;
}): {
rendererContext: RendererContext;
renderToString(ssrContext: SSRContext): Promise<{
html: any;
renderResourceHeaders: () => Record<string, string>;
renderResourceHints: () => string;
renderStyles: () => string;
renderScripts: () => string;
}>;
};
export { ModuleDependencies, RenderFunction, RenderOptions, RendererContext, SSRContext, createRenderer, createRendererContext, getAllDependencies, getModuleDependencies, getPrefetchLinks, getPreloadLinks, getRequestDependencies, getResources, renderResourceHeaders, renderResourceHints, renderScripts, renderStyles };

195
node_modules/vue-bundle-renderer/dist/runtime.mjs generated vendored Normal file
View File

@@ -0,0 +1,195 @@
import { withLeadingSlash } from 'ufo';
const defaultShouldPrefetch = (resource) => resource.resourceType !== "font";
const defaultShouldPreload = (resource) => ["module", "script", "style"].includes(resource.resourceType || "");
function createRendererContext({ manifest, buildAssetsURL, shouldPrefetch, shouldPreload }) {
const ctx = {
shouldPrefetch: shouldPrefetch || defaultShouldPrefetch,
shouldPreload: shouldPreload || defaultShouldPreload,
buildAssetsURL: buildAssetsURL || withLeadingSlash,
manifest: void 0,
updateManifest,
_dependencies: void 0,
_dependencySets: void 0,
_entrypoints: void 0
};
function updateManifest(manifest2) {
const manifestEntries = Object.entries(manifest2);
ctx.manifest = manifest2;
ctx._dependencies = {};
ctx._dependencySets = {};
ctx._entrypoints = manifestEntries.filter((e) => e[1].isEntry).map(([module]) => module);
}
updateManifest(manifest);
return ctx;
}
function getModuleDependencies(id, rendererContext) {
if (rendererContext._dependencies[id]) {
return rendererContext._dependencies[id];
}
const dependencies = {
scripts: {},
styles: {},
preload: {},
prefetch: {}
};
const meta = rendererContext.manifest[id];
if (!meta) {
rendererContext._dependencies[id] = dependencies;
return dependencies;
}
if (meta.file) {
dependencies.scripts[id] = dependencies.preload[id] = rendererContext.manifest[id];
}
for (const css of meta.css || []) {
dependencies.styles[css] = dependencies.preload[css] = dependencies.prefetch[css] = rendererContext.manifest[css];
}
for (const asset of meta.assets || []) {
dependencies.preload[asset] = dependencies.prefetch[asset] = rendererContext.manifest[asset];
}
for (const depId of meta.imports || []) {
const depDeps = getModuleDependencies(depId, rendererContext);
Object.assign(dependencies.styles, depDeps.styles);
Object.assign(dependencies.preload, depDeps.preload);
Object.assign(dependencies.prefetch, depDeps.prefetch);
}
const filteredPreload = {};
for (const id2 in dependencies.preload) {
const dep = dependencies.preload[id2];
if (rendererContext.shouldPreload(dep)) {
filteredPreload[id2] = dep;
}
}
dependencies.preload = filteredPreload;
rendererContext._dependencies[id] = dependencies;
return dependencies;
}
function getAllDependencies(ids, rendererContext) {
const cacheKey = Array.from(ids).sort().join(",");
if (rendererContext._dependencySets[cacheKey]) {
return rendererContext._dependencySets[cacheKey];
}
const allDeps = {
scripts: {},
styles: {},
preload: {},
prefetch: {}
};
for (const id of ids) {
const deps = getModuleDependencies(id, rendererContext);
Object.assign(allDeps.scripts, deps.scripts);
Object.assign(allDeps.styles, deps.styles);
Object.assign(allDeps.preload, deps.preload);
Object.assign(allDeps.prefetch, deps.prefetch);
for (const dynamicDepId of rendererContext.manifest[id]?.dynamicImports || []) {
const dynamicDeps = getModuleDependencies(dynamicDepId, rendererContext);
Object.assign(allDeps.prefetch, dynamicDeps.scripts);
Object.assign(allDeps.prefetch, dynamicDeps.styles);
Object.assign(allDeps.prefetch, dynamicDeps.preload);
}
}
const filteredPrefetch = {};
for (const id in allDeps.prefetch) {
const dep = allDeps.prefetch[id];
if (rendererContext.shouldPrefetch(dep)) {
filteredPrefetch[id] = dep;
}
}
allDeps.prefetch = filteredPrefetch;
for (const id in allDeps.prefetch) {
if (id in allDeps.preload) {
delete allDeps.prefetch[id];
}
}
rendererContext._dependencySets[cacheKey] = allDeps;
return allDeps;
}
function getRequestDependencies(ssrContext, rendererContext) {
if (ssrContext._requestDependencies) {
return ssrContext._requestDependencies;
}
const ids = new Set(Array.from([
...rendererContext._entrypoints,
...ssrContext.modules || ssrContext._registeredComponents || []
]));
const deps = getAllDependencies(ids, rendererContext);
ssrContext._requestDependencies = deps;
return deps;
}
function renderStyles(ssrContext, rendererContext) {
const { styles } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(styles).map(
(resource) => renderLinkToString({ rel: "stylesheet", href: rendererContext.buildAssetsURL(resource.file) })
).join("");
}
function getResources(ssrContext, rendererContext) {
return [...getPreloadLinks(ssrContext, rendererContext), ...getPrefetchLinks(ssrContext, rendererContext)];
}
function renderResourceHints(ssrContext, rendererContext) {
return getResources(ssrContext, rendererContext).map(renderLinkToString).join("");
}
function renderResourceHeaders(ssrContext, rendererContext) {
return {
link: getResources(ssrContext, rendererContext).map(renderLinkToHeader).join(", ")
};
}
function getPreloadLinks(ssrContext, rendererContext) {
const { preload } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(preload).map((resource) => ({
rel: resource.module ? "modulepreload" : "preload",
as: resource.resourceType,
type: resource.mimeType ?? null,
crossorigin: resource.resourceType === "font" || resource.module ? "" : null,
href: rendererContext.buildAssetsURL(resource.file)
}));
}
function getPrefetchLinks(ssrContext, rendererContext) {
const { prefetch } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(prefetch).map((resource) => ({
rel: "prefetch",
as: resource.resourceType,
type: resource.mimeType ?? null,
crossorigin: resource.resourceType === "font" || resource.module ? "" : null,
href: rendererContext.buildAssetsURL(resource.file)
}));
}
function renderScripts(ssrContext, rendererContext) {
const { scripts } = getRequestDependencies(ssrContext, rendererContext);
return Object.values(scripts).map((resource) => renderScriptToString({
type: resource.module ? "module" : null,
src: rendererContext.buildAssetsURL(resource.file),
defer: resource.module ? null : "",
crossorigin: ""
})).join("");
}
function createRenderer(createApp, renderOptions) {
const rendererContext = createRendererContext(renderOptions);
return {
rendererContext,
async renderToString(ssrContext) {
ssrContext._registeredComponents = ssrContext._registeredComponents || /* @__PURE__ */ new Set();
const _createApp = await Promise.resolve(createApp).then((r) => r.default || r);
const app = await _createApp(ssrContext);
const html = await renderOptions.renderToString(app, ssrContext);
const wrap = (fn) => () => fn(ssrContext, rendererContext);
return {
html,
renderResourceHeaders: wrap(renderResourceHeaders),
renderResourceHints: wrap(renderResourceHints),
renderStyles: wrap(renderStyles),
renderScripts: wrap(renderScripts)
};
}
};
}
function renderScriptToString(attrs) {
return `<script${Object.entries(attrs).map(([key, value]) => value === null ? "" : value ? ` ${key}="${value}"` : " " + key).join("")}><\/script>`;
}
function renderLinkToString(attrs) {
return `<link${Object.entries(attrs).map(([key, value]) => value === null ? "" : value ? ` ${key}="${value}"` : " " + key).join("")}>`;
}
function renderLinkToHeader(attrs) {
return `<${attrs.href}>${Object.entries(attrs).map(([key, value]) => key === "href" || value === null ? "" : value ? `; ${key}="${value}"` : `; ${key}`).join("")}`;
}
export { createRenderer, createRendererContext, getAllDependencies, getModuleDependencies, getPrefetchLinks, getPreloadLinks, getRequestDependencies, getResources, renderResourceHeaders, renderResourceHints, renderScripts, renderStyles };

View File

@@ -0,0 +1,19 @@
interface ResourceMeta {
src?: string;
file: string;
css?: string[];
assets?: string[];
isEntry?: boolean;
isDynamicEntry?: boolean;
imports?: string[];
dynamicImports?: string[];
module?: boolean;
resourceType?: 'audio' | 'document' | 'embed' | 'fetch' | 'font' | 'image' | 'object' | 'script' | 'style' | 'track' | 'worker' | 'video';
mimeType?: string;
}
interface Manifest {
[key: string]: ResourceMeta;
}
declare function defineManifest(manifest: Manifest): Manifest;
export { Manifest as M, ResourceMeta as R, defineManifest as d };

51
node_modules/vue-bundle-renderer/package.json generated vendored Normal file
View File

@@ -0,0 +1,51 @@
{
"name": "vue-bundle-renderer",
"version": "1.0.0",
"description": "Bundle Renderer for Vue 3.0",
"repository": "nuxt-contrib/vue-bundle-renderer",
"license": "MIT",
"exports": {
".": {
"require": "./dist/index.cjs",
"import": "./dist/index.mjs",
"types": "./dist/index.d.ts"
},
"./runtime": {
"require": "./dist/runtime.cjs",
"import": "./dist/runtime.mjs",
"types": "./dist/runtime.d.ts"
}
},
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
"types": "./dist/index.d.ts",
"files": [
"dist",
"runtime.d.ts"
],
"scripts": {
"build": "unbuild",
"dev": "vitest",
"lint": "eslint --ext .ts src",
"prerelease": "pnpm test && pnpm build && standard-version -p && git push --follow-tags && pnpm publish --tag prerelease",
"release": "pnpm test && pnpm build && standard-version && git push --follow-tags && pnpm publish",
"test": "pnpm lint && pnpm vitest run --coverage && tsc --noEmit"
},
"dependencies": {
"ufo": "^1.0.0"
},
"devDependencies": {
"@nuxtjs/eslint-config-typescript": "^11.0.0",
"@types/node": "^18.11.9",
"@vitest/coverage-c8": "^0.25.2",
"eslint": "^8.27.0",
"expect-type": "^0.15.0",
"standard-version": "^9.5.0",
"typescript": "^4.9.3",
"unbuild": "^0.9.4",
"vite": "^3.2.4",
"vitest": "0.25.2",
"vue": "3.2.45"
},
"packageManager": "pnpm@7.8.0"
}

1
node_modules/vue-bundle-renderer/runtime.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export * from './dist/runtime'