@delta-comic/plugin 3.0.0-next.15 → 3.0.0-next.16

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.
@@ -1847,7 +1847,7 @@ var PluginI18nRegistry = class {
1847
1847
  const pluginI18n = new PluginI18nRegistry();
1848
1848
  //#endregion
1849
1849
  //#region package.json
1850
- var version = "3.0.0-next.15";
1850
+ var version = "3.0.0-next.16";
1851
1851
  //#endregion
1852
1852
  //#region lib/core/env.ts
1853
1853
  const pluginName = "core";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../vite/dev.ts","../../vite/index.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport { relative, resolve } from 'node:path'\n\nimport type { PluginManifest } from '@delta-comic/model'\nimport type { Connect, ModuleNode, Plugin, ViteDevServer } from 'vite'\nimport { isCSSRequest, normalizePath } from 'vite'\n\nimport { DEV_CSS_PATH, DEV_ENTRY_PATH, DEV_MANIFEST_PATH } from '../lib/install/dev'\n\nexport const DEV_ENTRY_ID = '\\0delta-comic:dev-entry'\nexport { DEV_CSS_PATH, DEV_ENTRY_PATH, DEV_MANIFEST_PATH }\n\nconst NO_CACHE_HEADERS = {\n 'Cache-Control': 'no-cache, no-store, must-revalidate',\n 'Pragma': 'no-cache',\n 'Expires': '0',\n} as const\n\nconst CORS_HEADERS = { 'Access-Control-Allow-Origin': '*' } as const\n\nconst VUE_STYLE_QUERY = /(?:^|[?&])vue&type=style(?:&|$)/\nconst CSS_RUNTIME_BYPASS_QUERY = /(?:^|[?&])(?:direct|inline|raw|url)(?:&|$)/\n\nexport const createWireManifest = (meta: PluginManifest) => ({\n ...meta,\n entry: { jsPath: 'index.js', cssPath: 'index.css' },\n})\n\nexport const createDevEntryCode = (meta: PluginManifest, entryUrl: string) =>\n [\n `import '/@vite/client'`,\n `const __deltaComicCssPath = ${JSON.stringify(DEV_CSS_PATH)}`,\n `const __deltaComicUpdateStyle = async () => {`,\n ` const __deltaComicDocument = globalThis.document`,\n ` if (!__deltaComicDocument) return`,\n ` try {`,\n ` const __deltaComicResponse = await fetch(new URL(__deltaComicCssPath, import.meta.url), { cache: 'no-store' })`,\n ` if (!__deltaComicResponse.ok) return`,\n ` const __deltaComicCss = await __deltaComicResponse.text()`,\n ` for (const __deltaComicStyle of __deltaComicDocument.head.querySelectorAll('style')) {`,\n ` if (__deltaComicStyle.dataset.plugin === ${JSON.stringify(meta.name.id)}) __deltaComicStyle.textContent = __deltaComicCss`,\n ` }`,\n ` } catch {}`,\n `}`,\n `const __deltaComicHot = import.meta.hot`,\n `if (__deltaComicHot) {`,\n ` __deltaComicHot.accept(${JSON.stringify(entryUrl)}, () => {})`,\n ` const __deltaComicAfterUpdate = () => { void __deltaComicUpdateStyle() }`,\n ` __deltaComicHot.on('vite:afterUpdate', __deltaComicAfterUpdate)`,\n ` __deltaComicHot.dispose(() => __deltaComicHot.off('vite:afterUpdate', __deltaComicAfterUpdate))`,\n `}`,\n `export { default } from ${JSON.stringify(entryUrl)}`,\n ].join('\\n')\n\nconst isCssModuleRequest = (id: string) => isCSSRequest(id) || VUE_STYLE_QUERY.test(id)\n\nconst isDevCssRuntimeRequest = (id: string) =>\n !CSS_RUNTIME_BYPASS_QUERY.test(id) && isCssModuleRequest(id)\n\nconst stripViteCssRuntime = (code: string) => {\n let stripped = code\n const replacements: [RegExp, string][] = [\n [\n /import\\s*\\{\\s*updateStyle\\s+as\\s+__vite__updateStyle(?:\\s*,\\s*removeStyle\\s+as\\s+__vite__removeStyle)?\\s*\\}\\s*from\\s*['\"]\\/@vite\\/client['\"]\\s*;?/g,\n '',\n ],\n [\n /const\\s*\\{\\s*updateStyle\\s*:\\s*__vite__updateStyle\\s*,\\s*removeStyle\\s*:\\s*__vite__removeStyle\\s*\\}\\s*=\\s*import\\.meta\\.hot\\._internal\\s*;?/g,\n '',\n ],\n [/const\\s+__vite__id\\s*=\\s*(['\"])(?:\\\\.|(?!\\1)[^\\\\])*\\1\\s*;?/g, ''],\n [/const\\s+__vite__css\\s*=\\s*(['\"`])(?:\\\\.|(?!\\1)[^\\\\])*\\1\\s*;?/g, ''],\n [/__vite__updateStyle\\(\\s*__vite__id\\s*,\\s*__vite__css\\s*\\)\\s*;?/g, ''],\n [\n /import\\.meta\\.hot\\.prune\\(\\s*\\(\\)\\s*=>\\s*__vite__removeStyle\\(\\s*__vite__id\\s*\\)\\s*\\)\\s*;?/g,\n 'import.meta.hot.prune(() => {})',\n ],\n ]\n for (const [pattern, replacement] of replacements)\n stripped = stripped.replace(pattern, replacement)\n return stripped === code ? undefined : stripped\n}\n\nconst collectCssModules = (\n server: ViteDevServer,\n starts: readonly (ModuleNode | undefined)[],\n): ModuleNode[] => {\n const seen = new Set<ModuleNode>()\n const queue: ModuleNode[] = starts.filter((node): node is ModuleNode => node !== undefined)\n const cssModules: ModuleNode[] = []\n while (queue.length > 0) {\n const node = queue.shift()\n if (!node || seen.has(node)) continue\n seen.add(node)\n if (isCssModuleRequest(node.url)) cssModules.push(node)\n for (const imported of node.importedModules) queue.push(imported)\n // Vue SFC style modules share the component file but are not linked through\n // importedModules, so discover them through the file-to-modules map.\n const fileModules = node.file ? (server.moduleGraph.getModulesByFile?.(node.file) ?? []) : []\n for (const fileModule of fileModules) queue.push(fileModule)\n }\n return cssModules\n}\n\nconst toOriginAbsoluteUrls = (css: string, origin: string) =>\n css.replace(/(url\\(\\s*(?:\"|')?)\\/(?!\\/)/g, `$1${origin}/`)\n\nconst collectDevCss = async (\n server: ViteDevServer,\n origin: string,\n entryUrl: string,\n): Promise<string> => {\n const entryModule = await server.moduleGraph.getModuleByUrl?.(entryUrl)\n const modules = collectCssModules(server, [\n server.moduleGraph.getModuleById(DEV_ENTRY_ID),\n entryModule,\n ])\n const parts: string[] = []\n for (const module of modules) {\n const directUrl = `${module.url}${module.url.includes('?') ? '&' : '?'}direct`\n const result = await server.transformRequest(directUrl)\n if (result?.code) parts.push(toOriginAbsoluteUrls(result.code, origin))\n }\n return parts.join('\\n')\n}\n\nconst sendJson = (res: ServerResponse, body: unknown) => {\n res.writeHead(200, {\n 'Content-Type': 'application/json; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(JSON.stringify(body))\n}\n\nconst sendError = (res: ServerResponse, status: number, message: string) => {\n res.writeHead(status, {\n 'Content-Type': 'text/plain; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(message)\n}\n\nconst requestOrigin = (req: IncomingMessage) => {\n const secure = 'encrypted' in req.socket && req.socket.encrypted === true\n return `${secure ? 'https' : 'http'}://${req.headers.host}`\n}\n\nexport const createDevPlugin = (meta: PluginManifest): Plugin => {\n let server: ViteDevServer | undefined\n let entryUrl = '/src/main.ts'\n\n return {\n name: 'delta-comic:dev-server',\n enforce: 'post',\n config() {\n return { server: { cors: true } }\n },\n configureServer(devServer) {\n server = devServer\n const entrySource = meta.entry?.jsPath ?? 'src/main.ts'\n const entryFile = resolve(devServer.config.root, entrySource)\n entryUrl = `/${normalizePath(relative(devServer.config.root, entryFile))}`\n\n const handleManifest: Connect.NextHandleFunction = (req, res, next) => {\n if (new URL(req.url ?? '/', 'http://localhost').pathname !== DEV_MANIFEST_PATH) {\n return next()\n }\n sendJson(res, createWireManifest(meta))\n }\n const handleEntry: Connect.NextHandleFunction = async (req, res, next) => {\n if (new URL(req.url ?? '/', 'http://localhost').pathname !== DEV_ENTRY_PATH) {\n return next()\n }\n if (!server) return next()\n try {\n const result = await server.transformRequest(DEV_ENTRY_ID)\n if (!result?.code) {\n sendError(res, 500, `[delta-comic] failed to transform the plugin entry ${entryUrl}`)\n return\n }\n res.writeHead(200, {\n 'Content-Type': 'application/javascript; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(result.code)\n } catch (error) {\n sendError(res, 500, error instanceof Error ? error.message : String(error))\n }\n }\n const handleCss: Connect.NextHandleFunction = async (req, res, next) => {\n if (new URL(req.url ?? '/', 'http://localhost').pathname !== DEV_CSS_PATH) {\n return next()\n }\n if (!server) return next()\n try {\n const css = await collectDevCss(server, requestOrigin(req), entryUrl)\n res.writeHead(200, {\n 'Content-Type': 'text/css; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(css)\n } catch (error) {\n sendError(res, 500, error instanceof Error ? error.message : String(error))\n }\n }\n devServer.middlewares.use(handleManifest)\n devServer.middlewares.use(handleEntry)\n devServer.middlewares.use(handleCss)\n },\n resolveId(id) {\n if (id === DEV_ENTRY_ID) return DEV_ENTRY_ID\n },\n load(id) {\n if (id !== DEV_ENTRY_ID || !server) return\n return createDevEntryCode(meta, entryUrl)\n },\n transform(code, id) {\n if (!isDevCssRuntimeRequest(id)) return\n return stripViteCssRuntime(code)\n },\n }\n}","import type { PluginManifest } from '@delta-comic/model'\nimport { exposeHostLibraries, extendsDepends } from '@delta-comic/utils/vite'\nimport { merge } from 'es-toolkit'\nimport JSZip from 'jszip'\nimport type { Plugin, PluginOption } from 'vite'\n\nimport { createDevPlugin } from './dev'\n\nexport const deltaComic = (meta: PluginManifest): PluginOption[] => {\n const externalGlobals = extendsDepends as Record<string, string>\n let mode: string | undefined\n const sharedRuntimeGuard: Plugin = {\n name: 'delta-comic-shared-runtime-guard',\n enforce: 'pre',\n configResolved(config) {\n mode = config.mode\n },\n resolveId(source) {\n if (mode == 'test') return\n\n if (Object.hasOwn(externalGlobals, source)) return\n\n const externalRoot = Object.keys(externalGlobals).find(root => source.startsWith(`${root}/`))\n if (!externalRoot && !source.startsWith('@vue/')) return\n\n const publicEntry = externalRoot ?? 'vue'\n throw new Error(\n `[delta-comic] Shared runtime subpath \"${source}\" is not supported. Import \"${publicEntry}\" so the plugin reuses the host instance.`,\n )\n },\n }\n const plugin: Plugin = {\n name: 'delta-comic-helper',\n enforce: 'post',\n apply: 'build',\n config(config) {\n return merge(config, {\n build: {\n assetsInlineLimit: Number.POSITIVE_INFINITY,\n cssCodeSplit: false,\n lib: {\n entry: meta.entry?.jsPath ?? './src/main.ts',\n fileName: 'index',\n cssFileName: 'index',\n name: `$$lib$$.__DcPlugin__${meta.name.id.replace('-', '_')}__`,\n formats: ['es'],\n },\n },\n })\n },\n async generateBundle(_options, bundle) {\n const archiveName = 'plugin.zip'\n const manifest = JSON.stringify(meta, null, 2)\n const zip = new JSZip()\n\n for (const item of Object.values(bundle)) {\n if (item.fileName == archiveName) continue\n if (item.type == 'chunk') {\n zip.file(item.fileName, item.code)\n continue\n }\n zip.file(item.fileName, item.source)\n }\n\n zip.file('manifest.json', manifest)\n const archive = await zip.generateAsync({ compression: 'DEFLATE', type: 'uint8array' })\n\n this.emitFile({ type: 'asset', fileName: archiveName, source: archive })\n this.emitFile({ type: 'asset', fileName: 'manifest.json', source: manifest })\n },\n }\n const externals = exposeHostLibraries({ libraries: externalGlobals })\n const devPlugin = createDevPlugin(meta)\n devPlugin.apply = 'serve'\n\n return [sharedRuntimeGuard, externals, plugin, devPlugin]\n}\n"],"mappings":";;;;;;;AASA,MAAa,eAAe;AAG5B,MAAM,mBAAmB;CACvB,iBAAiB;CACjB,UAAU;CACV,WAAW;AACb;AAEA,MAAM,eAAe,EAAE,+BAA+B,IAAI;AAE1D,MAAM,kBAAkB;AACxB,MAAM,2BAA2B;AAEjC,MAAa,sBAAsB,UAA0B;CAC3D,GAAG;CACH,OAAO;EAAE,QAAQ;EAAY,SAAS;CAAY;AACpD;AAEA,MAAa,sBAAsB,MAAsB,aACvD;CACE;CACA,+BAA+B,KAAK,UAAU,YAAY;CAC1D;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,kDAAkD,KAAK,UAAU,KAAK,KAAK,EAAE,EAAE;CAC/E;CACA;CACA;CACA;CACA;CACA,4BAA4B,KAAK,UAAU,QAAQ,EAAE;CACrD;CACA;CACA;CACA;CACA,2BAA2B,KAAK,UAAU,QAAQ;AACpD,CAAC,CAAC,KAAK,IAAI;AAEb,MAAM,sBAAsB,OAAe,aAAa,EAAE,KAAK,gBAAgB,KAAK,EAAE;AAEtF,MAAM,0BAA0B,OAC9B,CAAC,yBAAyB,KAAK,EAAE,KAAK,mBAAmB,EAAE;AAE7D,MAAM,uBAAuB,SAAiB;CAC5C,IAAI,WAAW;CAkBf,KAAK,MAAM,CAAC,SAAS,gBAAgB;EAhBnC,CACE,sJACA,EACF;EACA,CACE,gJACA,EACF;EACA,CAAC,+DAA+D,EAAE;EAClE,CAAC,iEAAiE,EAAE;EACpE,CAAC,mEAAmE,EAAE;EACtE,CACE,+FACA,iCACF;CAE8C,GAC9C,WAAW,SAAS,QAAQ,SAAS,WAAW;CAClD,OAAO,aAAa,OAAO,KAAA,IAAY;AACzC;AAEA,MAAM,qBACJ,QACA,WACiB;CACjB,MAAM,uBAAO,IAAI,IAAgB;CACjC,MAAM,QAAsB,OAAO,QAAQ,SAA6B,SAAS,KAAA,CAAS;CAC1F,MAAM,aAA2B,CAAC;CAClC,OAAO,MAAM,SAAS,GAAG;EACvB,MAAM,OAAO,MAAM,MAAM;EACzB,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG;EAC7B,KAAK,IAAI,IAAI;EACb,IAAI,mBAAmB,KAAK,GAAG,GAAG,WAAW,KAAK,IAAI;EACtD,KAAK,MAAM,YAAY,KAAK,iBAAiB,MAAM,KAAK,QAAQ;EAGhE,MAAM,cAAc,KAAK,OAAQ,OAAO,YAAY,mBAAmB,KAAK,IAAI,KAAK,CAAC,IAAK,CAAC;EAC5F,KAAK,MAAM,cAAc,aAAa,MAAM,KAAK,UAAU;CAC7D;CACA,OAAO;AACT;AAEA,MAAM,wBAAwB,KAAa,WACzC,IAAI,QAAQ,+BAA+B,KAAK,OAAO,EAAE;AAE3D,MAAM,gBAAgB,OACpB,QACA,QACA,aACoB;CACpB,MAAM,cAAc,MAAM,OAAO,YAAY,iBAAiB,QAAQ;CACtE,MAAM,UAAU,kBAAkB,QAAQ,CACxC,OAAO,YAAY,cAAc,YAAY,GAC7C,WACF,CAAC;CACD,MAAM,QAAkB,CAAC;CACzB,KAAK,MAAM,UAAU,SAAS;EAC5B,MAAM,YAAY,GAAG,OAAO,MAAM,OAAO,IAAI,SAAS,GAAG,IAAI,MAAM,IAAI;EACvE,MAAM,SAAS,MAAM,OAAO,iBAAiB,SAAS;EACtD,IAAI,QAAQ,MAAM,MAAM,KAAK,qBAAqB,OAAO,MAAM,MAAM,CAAC;CACxE;CACA,OAAO,MAAM,KAAK,IAAI;AACxB;AAEA,MAAM,YAAY,KAAqB,SAAkB;CACvD,IAAI,UAAU,KAAK;EACjB,gBAAgB;EAChB,GAAG;EACH,GAAG;CACL,CAAC;CACD,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC;AAC9B;AAEA,MAAM,aAAa,KAAqB,QAAgB,YAAoB;CAC1E,IAAI,UAAU,QAAQ;EACpB,gBAAgB;EAChB,GAAG;EACH,GAAG;CACL,CAAC;CACD,IAAI,IAAI,OAAO;AACjB;AAEA,MAAM,iBAAiB,QAAyB;CAE9C,OAAO,GADQ,eAAe,IAAI,UAAU,IAAI,OAAO,cAAc,OAClD,UAAU,OAAO,KAAK,IAAI,QAAQ;AACvD;AAEA,MAAa,mBAAmB,SAAiC;CAC/D,IAAI;CACJ,IAAI,WAAW;CAEf,OAAO;EACL,MAAM;EACN,SAAS;EACT,SAAS;GACP,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,EAAE;EAClC;EACA,gBAAgB,WAAW;GACzB,SAAS;GACT,MAAM,cAAc,KAAK,OAAO,UAAU;GAC1C,MAAM,YAAY,QAAQ,UAAU,OAAO,MAAM,WAAW;GAC5D,WAAW,IAAI,cAAc,SAAS,UAAU,OAAO,MAAM,SAAS,CAAC;GAEvE,MAAM,kBAA8C,KAAK,KAAK,SAAS;IACrE,IAAI,IAAI,IAAI,IAAI,OAAO,KAAK,kBAAkB,CAAC,CAAC,aAAA,kBAC9C,OAAO,KAAK;IAEd,SAAS,KAAK,mBAAmB,IAAI,CAAC;GACxC;GACA,MAAM,cAA0C,OAAO,KAAK,KAAK,SAAS;IACxE,IAAI,IAAI,IAAI,IAAI,OAAO,KAAK,kBAAkB,CAAC,CAAC,aAAA,aAC9C,OAAO,KAAK;IAEd,IAAI,CAAC,QAAQ,OAAO,KAAK;IACzB,IAAI;KACF,MAAM,SAAS,MAAM,OAAO,iBAAiB,YAAY;KACzD,IAAI,CAAC,QAAQ,MAAM;MACjB,UAAU,KAAK,KAAK,sDAAsD,UAAU;MACpF;KACF;KACA,IAAI,UAAU,KAAK;MACjB,gBAAgB;MAChB,GAAG;MACH,GAAG;KACL,CAAC;KACD,IAAI,IAAI,OAAO,IAAI;IACrB,SAAS,OAAO;KACd,UAAU,KAAK,KAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;IAC5E;GACF;GACA,MAAM,YAAwC,OAAO,KAAK,KAAK,SAAS;IACtE,IAAI,IAAI,IAAI,IAAI,OAAO,KAAK,kBAAkB,CAAC,CAAC,aAAA,cAC9C,OAAO,KAAK;IAEd,IAAI,CAAC,QAAQ,OAAO,KAAK;IACzB,IAAI;KACF,MAAM,MAAM,MAAM,cAAc,QAAQ,cAAc,GAAG,GAAG,QAAQ;KACpE,IAAI,UAAU,KAAK;MACjB,gBAAgB;MAChB,GAAG;MACH,GAAG;KACL,CAAC;KACD,IAAI,IAAI,GAAG;IACb,SAAS,OAAO;KACd,UAAU,KAAK,KAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;IAC5E;GACF;GACA,UAAU,YAAY,IAAI,cAAc;GACxC,UAAU,YAAY,IAAI,WAAW;GACrC,UAAU,YAAY,IAAI,SAAS;EACrC;EACA,UAAU,IAAI;GACZ,IAAI,OAAA,2BAAqB,OAAO;EAClC;EACA,KAAK,IAAI;GACP,IAAI,OAAA,6BAAuB,CAAC,QAAQ;GACpC,OAAO,mBAAmB,MAAM,QAAQ;EAC1C;EACA,UAAU,MAAM,IAAI;GAClB,IAAI,CAAC,uBAAuB,EAAE,GAAG;GACjC,OAAO,oBAAoB,IAAI;EACjC;CACF;AACF;;;ACzNA,MAAa,cAAc,SAAyC;CAClE,MAAM,kBAAkB;CACxB,IAAI;CACJ,MAAM,qBAA6B;EACjC,MAAM;EACN,SAAS;EACT,eAAe,QAAQ;GACrB,OAAO,OAAO;EAChB;EACA,UAAU,QAAQ;GAChB,IAAI,QAAQ,QAAQ;GAEpB,IAAI,OAAO,OAAO,iBAAiB,MAAM,GAAG;GAE5C,MAAM,eAAe,OAAO,KAAK,eAAe,CAAC,CAAC,MAAK,SAAQ,OAAO,WAAW,GAAG,KAAK,EAAE,CAAC;GAC5F,IAAI,CAAC,gBAAgB,CAAC,OAAO,WAAW,OAAO,GAAG;GAGlD,MAAM,IAAI,MACR,yCAAyC,OAAO,8BAF9B,gBAAgB,MAEwD,0CAC5F;EACF;CACF;CACA,MAAM,SAAiB;EACrB,MAAM;EACN,SAAS;EACT,OAAO;EACP,OAAO,QAAQ;GACb,OAAO,MAAM,QAAQ,EACnB,OAAO;IACL,mBAAmB,OAAO;IAC1B,cAAc;IACd,KAAK;KACH,OAAO,KAAK,OAAO,UAAU;KAC7B,UAAU;KACV,aAAa;KACb,MAAM,uBAAuB,KAAK,KAAK,GAAG,QAAQ,KAAK,GAAG,EAAE;KAC5D,SAAS,CAAC,IAAI;IAChB;GACF,EACF,CAAC;EACH;EACA,MAAM,eAAe,UAAU,QAAQ;GACrC,MAAM,cAAc;GACpB,MAAM,WAAW,KAAK,UAAU,MAAM,MAAM,CAAC;GAC7C,MAAM,MAAM,IAAI,MAAM;GAEtB,KAAK,MAAM,QAAQ,OAAO,OAAO,MAAM,GAAG;IACxC,IAAI,KAAK,YAAY,aAAa;IAClC,IAAI,KAAK,QAAQ,SAAS;KACxB,IAAI,KAAK,KAAK,UAAU,KAAK,IAAI;KACjC;IACF;IACA,IAAI,KAAK,KAAK,UAAU,KAAK,MAAM;GACrC;GAEA,IAAI,KAAK,iBAAiB,QAAQ;GAClC,MAAM,UAAU,MAAM,IAAI,cAAc;IAAE,aAAa;IAAW,MAAM;GAAa,CAAC;GAEtF,KAAK,SAAS;IAAE,MAAM;IAAS,UAAU;IAAa,QAAQ;GAAQ,CAAC;GACvE,KAAK,SAAS;IAAE,MAAM;IAAS,UAAU;IAAiB,QAAQ;GAAS,CAAC;EAC9E;CACF;CACA,MAAM,YAAY,oBAAoB,EAAE,WAAW,gBAAgB,CAAC;CACpE,MAAM,YAAY,gBAAgB,IAAI;CACtC,UAAU,QAAQ;CAElB,OAAO;EAAC;EAAoB;EAAW;EAAQ;CAAS;AAC1D"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../vite/dev.ts","../../vite/index.ts"],"sourcesContent":["import type { IncomingMessage, ServerResponse } from 'node:http'\nimport { relative, resolve } from 'node:path'\n\nimport type { PluginManifest } from '@delta-comic/model'\nimport type { Connect, ModuleNode, Plugin, ViteDevServer } from 'vite'\nimport { isCSSRequest, normalizePath } from 'vite'\n\nimport { DEV_CSS_PATH, DEV_ENTRY_PATH, DEV_MANIFEST_PATH } from '../lib/install/dev'\n\nexport const DEV_ENTRY_ID = '\\0delta-comic:dev-entry'\nexport { DEV_CSS_PATH, DEV_ENTRY_PATH, DEV_MANIFEST_PATH }\n\nconst NO_CACHE_HEADERS = {\n 'Cache-Control': 'no-cache, no-store, must-revalidate',\n 'Pragma': 'no-cache',\n 'Expires': '0',\n} as const\n\nconst CORS_HEADERS = { 'Access-Control-Allow-Origin': '*' } as const\n\nconst VUE_STYLE_QUERY = /(?:^|[?&])vue&type=style(?:&|$)/\nconst CSS_RUNTIME_BYPASS_QUERY = /(?:^|[?&])(?:direct|inline|raw|url)(?:&|$)/\n\nexport const createWireManifest = (meta: PluginManifest) => ({\n ...meta,\n entry: { jsPath: 'index.js', cssPath: 'index.css' },\n})\n\nexport const createDevEntryCode = (meta: PluginManifest, entryUrl: string) =>\n [\n `import '/@vite/client'`,\n `const __deltaComicCssPath = ${JSON.stringify(DEV_CSS_PATH)}`,\n `const __deltaComicUpdateStyle = async () => {`,\n ` const __deltaComicDocument = globalThis.document`,\n ` if (!__deltaComicDocument) return`,\n ` try {`,\n ` const __deltaComicResponse = await fetch(new URL(__deltaComicCssPath, import.meta.url), { cache: 'no-store' })`,\n ` if (!__deltaComicResponse.ok) return`,\n ` const __deltaComicCss = await __deltaComicResponse.text()`,\n ` for (const __deltaComicStyle of __deltaComicDocument.head.querySelectorAll('style')) {`,\n ` if (__deltaComicStyle.dataset.plugin === ${JSON.stringify(meta.name.id)}) __deltaComicStyle.textContent = __deltaComicCss`,\n ` }`,\n ` } catch {}`,\n `}`,\n `const __deltaComicHot = import.meta.hot`,\n `if (__deltaComicHot) {`,\n ` __deltaComicHot.accept(${JSON.stringify(entryUrl)}, () => {})`,\n ` const __deltaComicAfterUpdate = () => { void __deltaComicUpdateStyle() }`,\n ` __deltaComicHot.on('vite:afterUpdate', __deltaComicAfterUpdate)`,\n ` __deltaComicHot.dispose(() => __deltaComicHot.off('vite:afterUpdate', __deltaComicAfterUpdate))`,\n `}`,\n `export { default } from ${JSON.stringify(entryUrl)}`,\n ].join('\\n')\n\nconst isCssModuleRequest = (id: string) => isCSSRequest(id) || VUE_STYLE_QUERY.test(id)\n\nconst isDevCssRuntimeRequest = (id: string) =>\n !CSS_RUNTIME_BYPASS_QUERY.test(id) && isCssModuleRequest(id)\n\nconst stripViteCssRuntime = (code: string) => {\n let stripped = code\n const replacements: [RegExp, string][] = [\n [\n /import\\s*\\{\\s*updateStyle\\s+as\\s+__vite__updateStyle(?:\\s*,\\s*removeStyle\\s+as\\s+__vite__removeStyle)?\\s*\\}\\s*from\\s*['\"]\\/@vite\\/client['\"]\\s*;?/g,\n '',\n ],\n [\n /const\\s*\\{\\s*updateStyle\\s*:\\s*__vite__updateStyle\\s*,\\s*removeStyle\\s*:\\s*__vite__removeStyle\\s*\\}\\s*=\\s*import\\.meta\\.hot\\._internal\\s*;?/g,\n '',\n ],\n [/const\\s+__vite__id\\s*=\\s*(['\"])(?:\\\\.|(?!\\1)[^\\\\])*\\1\\s*;?/g, ''],\n [/const\\s+__vite__css\\s*=\\s*(['\"`])(?:\\\\.|(?!\\1)[^\\\\])*\\1\\s*;?/g, ''],\n [/__vite__updateStyle\\(\\s*__vite__id\\s*,\\s*__vite__css\\s*\\)\\s*;?/g, ''],\n [\n /import\\.meta\\.hot\\.prune\\(\\s*\\(\\)\\s*=>\\s*__vite__removeStyle\\(\\s*__vite__id\\s*\\)\\s*\\)\\s*;?/g,\n 'import.meta.hot.prune(() => {})',\n ],\n ]\n for (const [pattern, replacement] of replacements)\n stripped = stripped.replace(pattern, replacement)\n return stripped === code ? undefined : stripped\n}\n\nconst collectCssModules = (\n server: ViteDevServer,\n starts: readonly (ModuleNode | undefined)[],\n): ModuleNode[] => {\n const seen = new Set<ModuleNode>()\n const queue: ModuleNode[] = starts.filter((node): node is ModuleNode => node !== undefined)\n const cssModules: ModuleNode[] = []\n while (queue.length > 0) {\n const node = queue.shift()\n if (!node || seen.has(node)) continue\n seen.add(node)\n if (isCssModuleRequest(node.url)) cssModules.push(node)\n for (const imported of node.importedModules) queue.push(imported)\n // Vue SFC style modules share the component file but are not linked through\n // importedModules, so discover them through the file-to-modules map.\n const fileModules = node.file ? (server.moduleGraph.getModulesByFile?.(node.file) ?? []) : []\n for (const fileModule of fileModules) queue.push(fileModule)\n }\n return cssModules\n}\n\nconst toOriginAbsoluteUrls = (css: string, origin: string) =>\n css.replace(/(url\\(\\s*(?:\"|')?)\\/(?!\\/)/g, `$1${origin}/`)\n\nconst collectDevCss = async (\n server: ViteDevServer,\n origin: string,\n entryUrl: string,\n): Promise<string> => {\n const entryModule = await server.moduleGraph.getModuleByUrl?.(entryUrl)\n const modules = collectCssModules(server, [\n server.moduleGraph.getModuleById(DEV_ENTRY_ID),\n entryModule,\n ])\n const parts: string[] = []\n for (const module of modules) {\n const directUrl = `${module.url}${module.url.includes('?') ? '&' : '?'}direct`\n const result = await server.transformRequest(directUrl)\n if (result?.code) parts.push(toOriginAbsoluteUrls(result.code, origin))\n }\n return parts.join('\\n')\n}\n\nconst sendJson = (res: ServerResponse, body: unknown) => {\n res.writeHead(200, {\n 'Content-Type': 'application/json; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(JSON.stringify(body))\n}\n\nconst sendError = (res: ServerResponse, status: number, message: string) => {\n res.writeHead(status, {\n 'Content-Type': 'text/plain; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(message)\n}\n\nconst requestOrigin = (req: IncomingMessage) => {\n const secure = 'encrypted' in req.socket && req.socket.encrypted === true\n return `${secure ? 'https' : 'http'}://${req.headers.host}`\n}\n\nexport const createDevPlugin = (meta: PluginManifest): Plugin => {\n let server: ViteDevServer | undefined\n let entryUrl = '/src/main.ts'\n\n return {\n name: 'delta-comic:dev-server',\n enforce: 'post',\n config() {\n return { server: { cors: true } }\n },\n configureServer(devServer) {\n server = devServer\n const entrySource = meta.entry?.jsPath ?? 'src/main.ts'\n const entryFile = resolve(devServer.config.root, entrySource)\n entryUrl = `/${normalizePath(relative(devServer.config.root, entryFile))}`\n\n const handleManifest: Connect.NextHandleFunction = (req, res, next) => {\n if (new URL(req.url ?? '/', 'http://localhost').pathname !== DEV_MANIFEST_PATH) {\n return next()\n }\n sendJson(res, createWireManifest(meta))\n }\n const handleEntry: Connect.NextHandleFunction = async (req, res, next) => {\n if (new URL(req.url ?? '/', 'http://localhost').pathname !== DEV_ENTRY_PATH) {\n return next()\n }\n if (!server) return next()\n try {\n const result = await server.transformRequest(DEV_ENTRY_ID)\n if (!result?.code) {\n sendError(res, 500, `[delta-comic] failed to transform the plugin entry ${entryUrl}`)\n return\n }\n res.writeHead(200, {\n 'Content-Type': 'application/javascript; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(result.code)\n } catch (error) {\n sendError(res, 500, error instanceof Error ? error.message : String(error))\n }\n }\n const handleCss: Connect.NextHandleFunction = async (req, res, next) => {\n if (new URL(req.url ?? '/', 'http://localhost').pathname !== DEV_CSS_PATH) {\n return next()\n }\n if (!server) return next()\n try {\n const css = await collectDevCss(server, requestOrigin(req), entryUrl)\n res.writeHead(200, {\n 'Content-Type': 'text/css; charset=utf-8',\n ...NO_CACHE_HEADERS,\n ...CORS_HEADERS,\n })\n res.end(css)\n } catch (error) {\n sendError(res, 500, error instanceof Error ? error.message : String(error))\n }\n }\n devServer.middlewares.use(handleManifest)\n devServer.middlewares.use(handleEntry)\n devServer.middlewares.use(handleCss)\n },\n resolveId(id) {\n if (id === DEV_ENTRY_ID) return DEV_ENTRY_ID\n },\n load(id) {\n if (id !== DEV_ENTRY_ID || !server) return\n return createDevEntryCode(meta, entryUrl)\n },\n transform(code, id) {\n if (!isDevCssRuntimeRequest(id)) return\n return stripViteCssRuntime(code)\n },\n }\n}","import type { PluginManifest } from '@delta-comic/model'\nimport { exposeHostLibraries, extendsDepends } from '@delta-comic/utils/vite'\nimport { merge } from 'es-toolkit'\nimport JSZip from 'jszip'\nimport type { Plugin, PluginOption } from 'vite'\n\nimport { createDevPlugin } from './dev'\n\nexport const deltaComic = (meta: PluginManifest): PluginOption[] => {\n const externalGlobals = extendsDepends as Record<string, string>\n let mode: string | undefined\n const sharedRuntimeGuard: Plugin = {\n name: 'delta-comic-shared-runtime-guard',\n enforce: 'pre',\n configResolved(config) {\n mode = config.mode\n },\n resolveId(source) {\n if (mode == 'test') return\n\n if (Object.hasOwn(externalGlobals, source)) return\n\n const externalRoot = Object.keys(externalGlobals).find(root => source.startsWith(`${root}/`))\n if (!externalRoot && !source.startsWith('@vue/')) return\n\n const publicEntry = externalRoot ?? 'vue'\n throw new Error(\n `[delta-comic] Shared runtime subpath \"${source}\" is not supported. Import \"${publicEntry}\" so the plugin reuses the host instance.`,\n )\n },\n }\n const plugin: Plugin = {\n name: 'delta-comic-helper',\n enforce: 'post',\n apply: 'build',\n config(config) {\n return merge(config, {\n build: {\n assetsInlineLimit: Number.POSITIVE_INFINITY,\n cssCodeSplit: false,\n lib: {\n entry: meta.entry?.jsPath ?? './src/main.ts',\n fileName: 'index',\n cssFileName: 'index',\n name: `$$lib$$.__DcPlugin__${meta.name.id.replace('-', '_')}__`,\n formats: ['es'],\n },\n },\n })\n },\n async generateBundle(_options, bundle) {\n const archiveName = 'plugin.zip'\n const manifest = JSON.stringify(meta, null, 2)\n const zip = new JSZip()\n\n for (const item of Object.values(bundle)) {\n if (item.fileName == archiveName) continue\n if (item.type == 'chunk') {\n zip.file(item.fileName, item.code)\n continue\n }\n zip.file(item.fileName, item.source)\n }\n\n zip.file('manifest.json', manifest)\n const archive = await zip.generateAsync({ compression: 'DEFLATE', type: 'uint8array' })\n\n this.emitFile({ type: 'asset', fileName: archiveName, source: archive })\n this.emitFile({ type: 'asset', fileName: 'manifest.json', source: manifest })\n },\n }\n const externals = exposeHostLibraries({ libraries: externalGlobals })\n const devPlugin = createDevPlugin(meta)\n devPlugin.apply = 'serve'\n\n return [sharedRuntimeGuard, externals, plugin, devPlugin]\n}"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delta-comic/plugin",
3
- "version": "3.0.0-next.15",
3
+ "version": "3.0.0-next.16",
4
4
  "description": "空阙虱楼",
5
5
  "homepage": "https://github.com/delta-comic/delta-comic",
6
6
  "license": "AGPL-3.0-only",
@@ -33,8 +33,8 @@
33
33
  "access": "public"
34
34
  },
35
35
  "dependencies": {
36
- "@delta-comic/downloader": "3.0.0-next.15",
37
- "@delta-comic/logger": "3.0.0-next.15",
36
+ "@delta-comic/downloader": "3.0.0-next.16",
37
+ "@delta-comic/logger": "3.0.0-next.16",
38
38
  "@octokit/rest": "^22.0.1",
39
39
  "@tauri-apps/api": "^2.11.1",
40
40
  "@tauri-apps/plugin-fs": "^2.5.1",
@@ -54,10 +54,10 @@
54
54
  "vue-component-type-helpers": "^3.3.9"
55
55
  },
56
56
  "peerDependencies": {
57
- "@delta-comic/db": "3.0.0-next.15",
58
- "@delta-comic/model": "3.0.0-next.15",
59
- "@delta-comic/ui": "3.0.0-next.15",
60
- "@delta-comic/utils": "3.0.0-next.15",
57
+ "@delta-comic/db": "3.0.0-next.16",
58
+ "@delta-comic/model": "3.0.0-next.16",
59
+ "@delta-comic/ui": "3.0.0-next.16",
60
+ "@delta-comic/utils": "3.0.0-next.16",
61
61
  "naive-ui": "^2.44.1",
62
62
  "vue": "^3.6.0-rc.4"
63
63
  }