From 12ff17cf86fdd7b1561647c751c247a6de118621 Mon Sep 17 00:00:00 2001 From: lzxb Date: Sun, 17 Nov 2024 22:48:32 +0800 Subject: [PATCH] deploy --- 404.html | 17 ++ guide/essentials/alias.html | 65 ++++++ guide/essentials/base-path.html | 50 ++++ guide/essentials/command.html | 80 +++++++ guide/essentials/config.html | 213 ++++++++++++++++++ guide/essentials/csr.html | 69 ++++++ guide/essentials/module-link.html | 212 +++++++++++++++++ guide/essentials/render-context.html | 91 ++++++++ guide/essentials/rspack.html | 180 +++++++++++++++ guide/framework/html.html | 18 ++ guide/framework/preact.html | 19 ++ guide/framework/react.html | 19 ++ guide/framework/solid.html | 19 ++ guide/framework/svelte.html | 19 ++ guide/framework/vue.html | 107 +++++++++ guide/start/getting-started.html | 145 ++++++++++++ guide/start/introduction.html | 47 ++++ index.html | 17 ++ logo.svg | 3 + ssr-html/about/index.html | 32 +++ ssr-html/chunks/222.584a2be3.final.css | 1 + ssr-html/chunks/222.81e62fc0.final.js | 35 +++ ssr-html/chunks/473.31938102.final.js | 12 + ssr-html/chunks/473.584a2be3.final.css | 1 + ssr-html/chunks/830.584a2be3.final.css | 1 + ssr-html/chunks/830.da02209d.final.js | 12 + ssr-html/images/cat.ed79ef6b.final.jpeg | Bin 0 -> 9111 bytes ssr-html/images/loading.6e6b1b2e.final.gif | Bin 0 -> 10805 bytes ssr-html/images/logo.310683d2.final.svg | 3 + ssr-html/images/starry.d914a632.final.jpg | Bin 0 -> 154039 bytes ssr-html/images/sun.429a7bc5.final.png | Bin 0 -> 13076 bytes ssr-html/importmap.24d223d14d7f44f5.final.js | 1 + ssr-html/importmap.js | 1 + ssr-html/index.html | 55 +++++ ssr-html/manifest.json | 82 +++++++ ssr-html/src/entry.client.25759c49.final.js | 1 + ssr-html/src/entry.client.ab81ae40.final.css | 1 + ssr-html/versions/latest.tgz | 1 + .../importmap.7b073355c5c2f9d5.final.js | 1 + ssr-preact-htm/importmap.js | 1 + ssr-preact-htm/index.html | 19 ++ ssr-preact-htm/manifest.json | 29 +++ .../src/entry.client.191feabb.final.css | 1 + .../src/entry.client.9b6dc184.final.js | 4 + ssr-vue2-host/chunks/324.0d155c87.final.css | 1 + ssr-vue2-host/chunks/324.456d5722.final.js | 1 + .../importmap.e001fcacb2721197.final.js | 1 + ssr-vue2-host/importmap.js | 1 + ssr-vue2-host/index.html | 24 ++ ssr-vue2-host/manifest.json | 40 ++++ .../src/entry.client.9cab921e.final.js | 1 + ssr-vue2-remote/chunks/44.74223083.final.js | 1 + ssr-vue2-remote/chunks/44.8b723d12.final.css | 1 + .../images/logo.310683d2.final.svg | 3 + .../importmap.c32d2b54c2994661.final.js | 1 + ssr-vue2-remote/importmap.js | 1 + ssr-vue2-remote/index.html | 21 ++ ssr-vue2-remote/manifest.json | 73 ++++++ ssr-vue2-remote/npm/vue.d7ca5d88.final.js | 1 + .../components/layout.vue.16eacfd2.final.css | 1 + .../components/layout.vue.782be1f1.final.js | 1 + .../src/entry.client.78e281fd.final.js | 1 + .../src/entry.client.ee65e65a.final.css | 1 + ssr-vue3/importmap.01318e694d673e9e.final.js | 1 + ssr-vue3/importmap.js | 1 + ssr-vue3/index.html | 17 ++ ssr-vue3/manifest.json | 29 +++ ssr-vue3/src/entry.client.b6883e8d.final.js | 23 ++ ssr-vue3/src/entry.client.c3405dab.final.css | 1 + static/css/styles.03ffc65a.css | 1 + static/js/async/100.2a804390.js | 1 + static/js/async/237.a0341d77.js | 1 + static/js/async/300.818619a6.js | 1 + static/js/async/318.7a063e46.js | 1 + static/js/async/324.2fdae225.js | 1 + static/js/async/400.562c6b03.js | 1 + static/js/async/435.66e1fcf2.js | 1 + static/js/async/55.38a357ce.js | 1 + static/js/async/67.8810a1f7.js | 1 + static/js/async/718.6b8bd5be.js | 1 + static/js/async/730.c0edadd0.js | 1 + static/js/async/765.ecd14024.js | 1 + static/js/async/779.6f681814.js | 1 + static/js/async/80.661f3871.js | 1 + static/js/async/833.8d2a71de.js | 1 + static/js/async/900.e693ffae.js | 1 + static/js/async/969.eee9a02c.js | 1 + static/js/index.7b63fb09.js | 6 + static/js/index.7b63fb09.js.LICENSE.txt | 35 +++ static/js/lib-react.af521ee3.js | 2 + static/js/lib-react.af521ee3.js.LICENSE.txt | 39 ++++ static/js/lib-router.e148b32c.js | 2 + static/js/lib-router.e148b32c.js.LICENSE.txt | 32 +++ static/js/styles.984bbb88.js | 1 + static/search_index.a777900e.json | 1 + 95 files changed, 2067 insertions(+) create mode 100644 404.html create mode 100644 guide/essentials/alias.html create mode 100644 guide/essentials/base-path.html create mode 100644 guide/essentials/command.html create mode 100644 guide/essentials/config.html create mode 100644 guide/essentials/csr.html create mode 100644 guide/essentials/module-link.html create mode 100644 guide/essentials/render-context.html create mode 100644 guide/essentials/rspack.html create mode 100644 guide/framework/html.html create mode 100644 guide/framework/preact.html create mode 100644 guide/framework/react.html create mode 100644 guide/framework/solid.html create mode 100644 guide/framework/svelte.html create mode 100644 guide/framework/vue.html create mode 100644 guide/start/getting-started.html create mode 100644 guide/start/introduction.html create mode 100644 index.html create mode 100644 logo.svg create mode 100644 ssr-html/about/index.html create mode 100644 ssr-html/chunks/222.584a2be3.final.css create mode 100644 ssr-html/chunks/222.81e62fc0.final.js create mode 100644 ssr-html/chunks/473.31938102.final.js create mode 100644 ssr-html/chunks/473.584a2be3.final.css create mode 100644 ssr-html/chunks/830.584a2be3.final.css create mode 100644 ssr-html/chunks/830.da02209d.final.js create mode 100644 ssr-html/images/cat.ed79ef6b.final.jpeg create mode 100644 ssr-html/images/loading.6e6b1b2e.final.gif create mode 100644 ssr-html/images/logo.310683d2.final.svg create mode 100644 ssr-html/images/starry.d914a632.final.jpg create mode 100644 ssr-html/images/sun.429a7bc5.final.png create mode 100644 ssr-html/importmap.24d223d14d7f44f5.final.js create mode 100644 ssr-html/importmap.js create mode 100644 ssr-html/index.html create mode 100644 ssr-html/manifest.json create mode 100644 ssr-html/src/entry.client.25759c49.final.js create mode 100644 ssr-html/src/entry.client.ab81ae40.final.css create mode 100644 ssr-html/versions/latest.tgz create mode 100644 ssr-preact-htm/importmap.7b073355c5c2f9d5.final.js create mode 100644 ssr-preact-htm/importmap.js create mode 100644 ssr-preact-htm/index.html create mode 100644 ssr-preact-htm/manifest.json create mode 100644 ssr-preact-htm/src/entry.client.191feabb.final.css create mode 100644 ssr-preact-htm/src/entry.client.9b6dc184.final.js create mode 100644 ssr-vue2-host/chunks/324.0d155c87.final.css create mode 100644 ssr-vue2-host/chunks/324.456d5722.final.js create mode 100644 ssr-vue2-host/importmap.e001fcacb2721197.final.js create mode 100644 ssr-vue2-host/importmap.js create mode 100644 ssr-vue2-host/index.html create mode 100644 ssr-vue2-host/manifest.json create mode 100644 ssr-vue2-host/src/entry.client.9cab921e.final.js create mode 100644 ssr-vue2-remote/chunks/44.74223083.final.js create mode 100644 ssr-vue2-remote/chunks/44.8b723d12.final.css create mode 100644 ssr-vue2-remote/images/logo.310683d2.final.svg create mode 100644 ssr-vue2-remote/importmap.c32d2b54c2994661.final.js create mode 100644 ssr-vue2-remote/importmap.js create mode 100644 ssr-vue2-remote/index.html create mode 100644 ssr-vue2-remote/manifest.json create mode 100644 ssr-vue2-remote/npm/vue.d7ca5d88.final.js create mode 100644 ssr-vue2-remote/src/components/layout.vue.16eacfd2.final.css create mode 100644 ssr-vue2-remote/src/components/layout.vue.782be1f1.final.js create mode 100644 ssr-vue2-remote/src/entry.client.78e281fd.final.js create mode 100644 ssr-vue2-remote/src/entry.client.ee65e65a.final.css create mode 100644 ssr-vue3/importmap.01318e694d673e9e.final.js create mode 100644 ssr-vue3/importmap.js create mode 100644 ssr-vue3/index.html create mode 100644 ssr-vue3/manifest.json create mode 100644 ssr-vue3/src/entry.client.b6883e8d.final.js create mode 100644 ssr-vue3/src/entry.client.c3405dab.final.css create mode 100644 static/css/styles.03ffc65a.css create mode 100644 static/js/async/100.2a804390.js create mode 100644 static/js/async/237.a0341d77.js create mode 100644 static/js/async/300.818619a6.js create mode 100644 static/js/async/318.7a063e46.js create mode 100644 static/js/async/324.2fdae225.js create mode 100644 static/js/async/400.562c6b03.js create mode 100644 static/js/async/435.66e1fcf2.js create mode 100644 static/js/async/55.38a357ce.js create mode 100644 static/js/async/67.8810a1f7.js create mode 100644 static/js/async/718.6b8bd5be.js create mode 100644 static/js/async/730.c0edadd0.js create mode 100644 static/js/async/765.ecd14024.js create mode 100644 static/js/async/779.6f681814.js create mode 100644 static/js/async/80.661f3871.js create mode 100644 static/js/async/833.8d2a71de.js create mode 100644 static/js/async/900.e693ffae.js create mode 100644 static/js/async/969.eee9a02c.js create mode 100644 static/js/index.7b63fb09.js create mode 100644 static/js/index.7b63fb09.js.LICENSE.txt create mode 100644 static/js/lib-react.af521ee3.js create mode 100644 static/js/lib-react.af521ee3.js.LICENSE.txt create mode 100644 static/js/lib-router.e148b32c.js create mode 100644 static/js/lib-router.e148b32c.js.LICENSE.txt create mode 100644 static/js/styles.984bbb88.js create mode 100644 static/search_index.a777900e.json diff --git a/404.html b/404.html new file mode 100644 index 00000000..a3f07898 --- /dev/null +++ b/404.html @@ -0,0 +1,17 @@ + + + + + + + + + 404 - Gez + + + +

404

PAGE NOT FOUND

+
+ + + diff --git a/guide/essentials/alias.html b/guide/essentials/alias.html new file mode 100644 index 00000000..641108c7 --- /dev/null +++ b/guide/essentials/alias.html @@ -0,0 +1,65 @@ + + + + + + + + + 路径别名 - Gez + + + +

路径别名

+

路径别名允许开发者为模块定义别名,以便于在代码中更方便的引用它们。当你想要使用一个简短、易于记忆的名称来代替冗长复杂的路径时,这将非常有用。

+

默认别名

+

在 Gez 中,默认使用服务名来作为别名,这样有两个好处。

+
    +
  • 在调用其它服务时保持命名风格的统一
  • +
  • 执行 npm run build:dts 命令,生成的类型可以被其它服务使用。
  • +
+

entry.node.ts

+
import type { GezOptions } from '@gez/core';
+
+export default {
+    name: 'ssr-module-auth'
+} satisfies GezOptions;
+

程序会读取这里的 name 配置,设置别名为 ssr-module-auth

+

tsconfig.json

+

同时还需要在 tsconfig.json 配置别名。

+
{
+    "compilerOptions": {
+        "paths": {
+            "ssr-module-auth/src/*": [
+                "./src/*"
+            ],
+            "ssr-module-auth/*": [
+                "./*"
+            ]
+        }
+    }
+}
+
TIP

如果你想了解多服务类型如何工作的,可以了解一下 gez release 命令的说明。 +

+

自定义别名

+

业务模块,你应该总是使用默认的别名,但是一些第三方包有时需要设置别名,你可以这样做。

+
export default {
+    async createDevApp(gez) {
+        return import('@gez/rspack').then((m) =>
+            m.createApp(gez, (buildContext) => {
+                buildContext.config.resolve = {
+                    ...buildContext.config.resolve,
+                    alias: {
+                        ...buildContext.config.resolve?.alias,
+                        vue$: 'vue/dist/vue.esm.js',
+                    }
+                }
+            })
+        );
+    }
+} satisfies GezOptions;
+
WARNING

业务模块对外导出时,程序会做一些打包的优化。如果你自定义了业务模块的别名,可能会导致打包出来的内容不正确。

+
+ + + diff --git a/guide/essentials/base-path.html b/guide/essentials/base-path.html new file mode 100644 index 00000000..50e5a850 --- /dev/null +++ b/guide/essentials/base-path.html @@ -0,0 +1,50 @@ + + + + + + + + + 基本路径 - Gez + + + +

基本路径

+

默认路径

+

静态资产的文件路径,总是使用 name 来生成固定的路径:/${name}/

+

src/entry.node.ts

+
import http from 'node:http';
+import type { GezOptions } from '@gez/core';
+import { name } from '../package.json';
+
+export default {
+    name,
+} satisfies GezOptions;
+

动态路径

+

有时,我们将一套代码部署在不同的国家或地区的集群中,允许独立域名访问和二级目录访问。

+

二级目录

+
    +
  • 主域名.com -> 默认主站
  • +
  • 主域名.com/cn/ -> 中文站点
  • +
  • 主域名.com/en/ -> 英文站点
  • +
+
+
+

独立站点

+
    +
  • 主域名.com -> 默认主站
  • +
  • cn.域名.com -> 中文站点
  • +
  • en.域名.com -> 英文站点
  • +
+

动态传参

+

你可以根据请求上下文,在给渲染函数传入不同的基本 URL。

+
const render = await gez.render({
+    base: '/gez'
+});
+
实现原理

在服务端,静态资产文件的编译路径为 [[[___GEZ_DYNAMIC_BASE___]]]/${name}/,程序会将你返回的 html 中的 [[[___GEZ_DYNAMIC_BASE___]]] 占位符替换成你传入的 base。 +

+
+ + + diff --git a/guide/essentials/command.html b/guide/essentials/command.html new file mode 100644 index 00000000..fd3de212 --- /dev/null +++ b/guide/essentials/command.html @@ -0,0 +1,80 @@ + + + + + + + + + 内置命令 - Gez + + + +

内置命令

+

一个典型的命令配置。

+
{
+    "scripts": {
+        "dev": "gez dev",
+        "build": "npm run build:ssr && npm run build:dts && npm run release",
+        "build:ssr": "gez build",
+        "build:dts": "tsc --noEmit --outDir dist/src",
+        "release": "gez release",
+        "preview": "gez preview",
+        "start": "gez start",
+        "postinstall": "gez install"
+    }
+}
+
TIP

你需要手动配置 tsconfig.json 文件,否则执行 build:dts 命令会报错。 +

+

gez dev

+

本地开发时启动。

+
TIP

如果链接的服务是一个本地的目录,你也可以把该服务跑起来快速的开发调试。

+
export default {
+    name: 'ssr-module-auth',
+    modules: {
+        imports: {
+            'ssr-core': 'root:../ssr-core/dist'
+        }
+    }
+} satisfies GezOptions;
+

gez build

+

构建生产代码

+
TIP

有三个产物,分别是 client、server、node。

+

gez release

+

当前服务如果有对外导出模块时使用。

+
    +
  • 执行 gez build 命令,构建生产产物。
  • +
  • 执行 npm run build:dts 命令,将类型输出到 dist/server/ 目录,本地开发时,可以得到类型提示。
  • +
  • 执行 gez release 命令,将 dist/clientdist/server 目录生成 zip 压缩文件,放到 dist/client/versions 目录中。
  • +
  • dist 目录的代码,部署到生产环境中。
  • +
  • 其它服务调用 +
      +
    • entry.node.ts 配置 +
      export default {
      +    name: 'ssr-module-auth',
      +    modules: {
      +        imports: {
      +            'ssr-core': ['root:../ssr-core/dist', 'https://<hostname>/ssr-core/versions/latest.json']
      +        }
      +    }
      +} satisfies GezOptions;
      +
    • +
    • 执行 npm install 命令,触发 postinstall 钩子,再执行 gez install 命令下载
    • +
    +
  • +
+
TIP

可以封装一个 build 命令,将多个命令封装到一起。 +

+

gez preview

+

等同于执行 gez build && gez start

+

gez start

+

运行生产环境代码

+
TIP

开发环境中,所依赖的外部服务代码变更,总是会获得热更新,但是在生产环境中是没有热更新的。

如果依赖的服务发布更新了,你需要手动重启一下服务,或者编写一个脚本,监听版本发布来重启服务。

+

gez install

+

安装远程依赖到本地

+
TIP

postinstall 钩子中,执行 npm install --production 安装生产依赖无效。 +

+
+ + + diff --git a/guide/essentials/config.html b/guide/essentials/config.html new file mode 100644 index 00000000..c47eb44d --- /dev/null +++ b/guide/essentials/config.html @@ -0,0 +1,213 @@ + + + + + + + + + 基础配置 - Gez + + + +

基础配置

+

Gez 作为基础设施,它的配置总是非常简单的。

+

使用

+
src/entry.node.ts
import type { GezOptions } from '@gez/core';
+
+export default {
+    // 配置选项
+} satisfies GezOptions;
+

选项

+

name v3.0.0

+
    +
  • 类型:string
  • +
  • 默认值:gez
  • +
  • 描述: 服务的名称,全局唯一。
  • +
+
src/entry.node.ts
import type { GezOptions } from '@gez/core';
+import { name } from '../package.json';
+
+export default {
+    name,
+} satisfies GezOptions;
+
TIP

如果你的网站,同一个域名下,使用 Gez 打包了多个项目,那么你需要配置一个 name 来区分不同的项目。 +

+

root v3.0.0

+
    +
  • +

    类型:string

    +
  • +
  • +

    默认值:cwd()

    +
  • +
  • +

    描述: 项目根目录,默认为当前执行命令的目录。

    +
  • +
+
WARNING

如果你没有充足的理由,你都不应该配置它。

+
+

isProd v3.0.0

+
    +
  • 类型:boolean
  • +
  • 默认值: process.env.NODE_ENV === 'production'
  • +
  • 描述: 是否是生产环境。
  • +
+
WARNING

如果你没有充足的理由,你都不应该配置它。

+

isInstall v3.0.0

+
    +
  • 类型:boolean
  • +
  • 默认值: process.env.npm_config_production !== 'true'
  • +
  • 描述: 安装生产依赖时,是否安装远程依赖。
  • +
+
WARNING

如果你没有充足的理由,你都不应该配置它。

+

basePathPlaceholder v3.0.0

+
    +
  • 类型:string | false
  • +
  • 默认值: [[[___GEZ_DYNAMIC_BASE___]]]
  • +
  • 描述: 动态路径的变量占位符,深入了解请看基本路径说明。
  • +
+
WARNING

如果你的业务上,没有出现用户的内容被误替换,你都不应该配置它。

+

模块链接

+

这是 Gez 的核心功能,点击这里深入了解

+

modules.exports v3.0.0

+
    +
  • 类型:string[]
  • +
  • 默认值: []
  • +
  • 描述: 对外模块导出。
  • +
+
src/entry.node.ts
export default {
+    modules: {
+        exports: [
+            'root:src/components/layout.vue',
+            'root:src/utils/index.ts',
+            'npm:vue',
+            'npm:vue-router'
+        ]
+    }
+} satisfies GezOptions;
+
TIP

你可以将当前项目的模块或者当前项目的第三方依赖,对外导出,这样其它服务就可以使用了。

+

modules.imports v3.0.0

+
    +
  • 类型:Record<string, string | [string, string]>
  • +
  • 默认值: {}
  • +
  • 描述: 配置远程依赖。
  • +
+
src/entry.node.ts
export default {
+    modules: {
+        imports: {
+            'ssr-base': ['root:../ssr-base/dist', 'https://<hostname>/ssr-base/versions/latest.json']
+        }
+    }
+} satisfies GezOptions;
+
TIP
+
    +
  • 第一个参数为本地的存储路径
  • +
  • 第二个参数是远程依赖的地址
  • +
  • 执行 gez install 命令可以下载远程依赖到本地的地址。
  • +
+
+

你也可以直接配置本地地址。

+
src/entry.node.ts
export default {
+    modules: {
+        imports: {
+            'ssr-base': 'root:../ssr-base/dist'
+        }
+    }
+} satisfies GezOptions;
+

modules.externals v3.0.0

+
    +
  • 类型:Record<string, string>
  • +
  • 默认值: {}
  • +
  • 描述: 外部依赖设置,你可以将当前服务的依赖,指向到其它导出的服务。
  • +
+
src/entry.node.ts
export default {
+    name: 'ssr-main',
+    modules: {
+        externals: {
+            vue: 'ssr-base/npm/vue',
+            'vue-router': 'ssr-base/npm/vue-router'
+        }
+    }
+} satisfies GezOptions;
+
WARNING

需要先配置对应服务的 modules.imports,否则运行起来会报错,提示找不到模块。 +

+

钩子

+

createDevApp() v3.0.0

+
    +
  • 类型:(gez: Gez) => Promise<App>
  • +
  • 默认值: isProd = false
  • +
  • 描述: 创建开发应用,在执行 devbuildpreview 命令时调用。
  • +
+
src/entry.node.ts
export default {
+    async createDevApp(gez) {
+        return import('@gez/rspack').then((m) =>
+            m.createRspackHtmlApp(gez, {
+                config(context) {
+                    // 可以在这里修改 Rspack 编译的配置
+                }
+            })
+        );
+    }
+} satisfies GezOptions;
+
TIP
+ +
+

createServer() v3.0.0

+
    +
  • 类型:(gez: Gez) => Promise<void>
  • +
  • 默认值: undefined
  • +
  • 描述: 创建服务器,执行 devbuildpreview 命令时调用。
  • +
+
src/entry.node.ts
import http from 'node:http';
+
+export default {
+    async createServer(gez) {
+        const server = http.createServer((req, res) => {
+            // 静态文件处理
+            gez.middleware(req, res, async () => {
+                // 传入渲染的参数
+                const render = await gez.render({
+                    params: {
+                        url: req.url
+                    }
+                });
+                // 响应 HTML 内容
+                res.end(render.html);
+            });
+        });
+        // 监听端口
+        server.listen(3000, () => {
+            console.log('http://localhost:3000');
+        });
+    },
+} satisfies GezOptions;
+
TIP

你也可以使用其它的框架来创建服务器,例如:Express。 +

+

postCompileProdHook() v3.0.0

+
    +
  • 类型:(gez: Gez) => Promise<void>
  • +
  • 默认值: undefined
  • +
  • 描述: gez build 构建完成后,以生产模式执行的钩子。
  • +
+
src/entry.node.ts
import path from 'node:path';
+
+export default {
+    async postCompileProdHook(gez) {
+        const render = await gez.render({
+            base: '/gez',
+            params: { url: '/' }
+        });
+        gez.writeSync(
+            gez.resolvePath('dist/client', url.substring(1), 'index.html'),
+            rc.html
+        );
+    }
+} satisfies GezOptions;
+
TIP

你可以使用这个钩子来生成静态网站。

+
+ + + diff --git a/guide/essentials/csr.html b/guide/essentials/csr.html new file mode 100644 index 00000000..d14bedd2 --- /dev/null +++ b/guide/essentials/csr.html @@ -0,0 +1,69 @@ + + + + + + + + + 客户端渲染 - Gez + + + +

客户端渲染

+

如果在生产环境,无法部署一个 Node 实例,可以在构建阶段就生成客户端渲染的 index.html 文件。

+

客户端模板

+

在服务渲染时,返回一个通用的模板即可。

+
src/entry.server.ts
import type { RenderContext } from '@gez/core';
+
+export default async (rc: RenderContext) => {
+    // 提交依赖收集
+    await rc.commit();
+    // 响应 HTML
+    rc.html = `
+<!DOCTYPE html>
+<html>
+<head>
+    ${rc.preload()}
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Gez</title>
+    ${rc.css()}
+</head>
+<body>
+    <div id="app"></div>
+    ${rc.importmap()}
+    ${rc.moduleEntry()}
+    ${rc.modulePreload()}
+</body>
+</html>
+`;
+};
+

构建时生成 index.html

+
    +
  • postCompileProdHook 钩子中,手动执行一次 SSR 渲染,将生成的 HTML 写入到 dist/client/index.html 文件中。
  • +
  • dist/client/ 目录复制到你的服务器上。
  • +
+
src/entry.node.ts
import path from 'node:path';
+import type { GezOptions } from '@gez/core';
+
+export default {
+    // ... 其它选项
+    async postCompileProdHook(gez) {
+        const render = await gez.render({
+            params: {
+                url: '/'
+            }
+        });
+        gez.writeSync(
+            gez.resolvePath('dist/client', url.substring(1), 'index.html'),
+            rc.html
+        );
+    }
+} satisfies GezOptions;
+
TIP

postCompileProdHook 钩子会在构建完成后,以生产模式执行构建出来的代码。如果你要生成一个完全静态的网站,也可以在这里实现。

+
+
+ + + diff --git a/guide/essentials/module-link.html b/guide/essentials/module-link.html new file mode 100644 index 00000000..ef37f6e9 --- /dev/null +++ b/guide/essentials/module-link.html @@ -0,0 +1,212 @@ + + + + + + + + + 模块链接 - Gez + + + +

模块链接

+

一个大型项目,总是会拆分成组件库、工具库、业务模块等。它们总是会写在不同的地方,以独立的仓库、monorepo 包等形式存在,但最终都需要系统的主程序来链接这些模块。Gez 的核心功能就是帮你把这些不同地方的模块,快速的链接到一起。实现一个服务发布,其它服务同时更新。

+
TIP

Gez 默认支持 SSR,你也可以把它当成 CSR 来使用。 +

+

设计理念

+
    +
  • 我们应该设计一个基础服务,由基础服务提供所有的第三方依赖。
  • +
  • 基础服务统一维护第三方依赖更新,一次发布,所有业务系统生效。
  • +
  • 业务服务仅构建业务代码,所有的第三方依赖,应指向到基础服务中。
  • +
+
TIP

由于第三方依赖,都被指向到了基础服务,不再需要重复打包,这会让 Rspack 的编译速度,再提升一个台阶。

+

构建

+

传统的 SSR 程序在构建目标为 node 时,会将 node_modules 的模块设置为外部依赖,但是 Gez 会把全部代码都打包成 ESM 模块来进行链接。所以在使用一些第三方依赖的时候,尽可能的选择支持 ESM 的包,否则你可能会遇到一些问题。 +构建完成后,通常你可以看到这样的目录结构。

+
- dist/ # 构建输出目录 + - client/ # 客户端构建输出 + - chunks/ # 当前服务抽离的公共代码 + - [name].[contenthash].final.js + - npm/ # 对外导出的 node_modules 包 + - [name].[contenthash].final.js + - src/ # 对外导出的 src 目录下的文件 + - [name].[contenthash].final.js + - versions/ # 执行 gez release 命令,会将 client 和 server 的代码打包到这里 + - [contenthash].zip # 压缩文件 + - [contenthash].json # 当前压缩的版本号 + - latest.json # 最新的版本号 + - entry.[contenthash].final.js # 入口文件 + - importmap.js # 不可缓存文件,执行后往 globalThis 注入 __importmap__ + - importmap.[contenthash].final.js # 可缓存文件,执行后往 globalThis 注入 __importmap__ + - package.json # 声明模块的基本导出信息 + - server/ # 服务端构建输出 + - ... # 除了缺少 versions 目录,其它和 client 目录一致 +
+
TIP

文件名携带 .final.拓展名 时,程序会认为这是一个基于 [contenthash] 构建出来的URL,gez.middleware 将会在请求头设置强缓存。 +

+

客户端链接

+

在服务渲染时注入所有服务的 /[服务名]/importmap.[contenthash].js 文件,将模块的哈希映射信息写入到 globalThis.__importmap__ 对象中,最终将该变量值写入到 <script type="importmap"></script> 标签中。

+
src/entry.server.ts
import type { RenderContext } from '@gez/core';
+
+export default async (rc: RenderContext) => {
+    const script = await rc.script();
+    rc.html = `
+<!DOCTYPE html>
+<html>
+<head>
+    <title>Gez</title>
+</head>
+<body>
+    ${script}
+</body>
+</html>
+`;
+};
+

服务端链接

+
    +
  • 在开发阶段时,我们可以设置一个远程的依赖地址。
  • +
  • 程序会根据你配置的本地路径,计算出一个所有服务可以共同访问的 node_modules 路径,并自动创建软链接。
  • +
+
src/entry.node.ts
export default {
+    name: 'ssr-module-auth',
+    modules: {
+        imports: {
+            'ssr-base': ['root:../ssr-base/dist', 'https://<hostname>/ssr-base/versions/latest.json']
+        }
+    }
+} satisfies GezOptions;
+
WARNING

在生产环境中,你应该使用本地链接,而不是远程链接,这样能提高应用程序的启动速度。如果你使用 Docker,可以通过使用持久卷,将不同服务的产物组织到一个目录中。 +

+

远程依赖安装

+

配置 postinstall 钩子执行 gez install 命令。在安装开发依赖时,就会将远程依赖下载到你配置的 'root:../ssr-base/dist' 目录中。

+
package.json
"scripts": {
+    "postinstall": "gez install"
+}
+
WARNING

这个需要在构建时,提供对应的版本才能下载。更多请查看 gez release 命令说明。 +

+

示例

+

ssr-base

+

基础服务,提供了所有的第三方依赖和基础组件。

+

src/entry.node.ts

+
export default {
+    name: 'ssr-base',
+    modules: {
+        exports: [
+            'root:src/components/layout.vue',
+            'root:src/utils/index.ts',
+            'npm:vue',
+            'npm:vue-router'
+        ]
+    }
+} satisfies GezOptions;
+
WARNING

如果一个依赖包,只在 SSR 中使用,那么你应该总是将它放到开发依赖中,这样能显著减少安装生产依赖的大小。

+

导出类型

+
    +
  • 使用方式 +
      +
    • 在其它的服务的 src/entry.node.ts 文件中的 modules.imports 配置添加 ssr-base
    • +
    +
  • +
  • root: +
      +
    • 配置项目文件路径,通常是 src 目录的。
    • +
    • 例如: +
        +
      • import Layout from 'ssr-base/src/components/layout.vue'
      • +
      • import utils from 'ssr-base/utils/index'
      • +
      +
    • +
    +
  • +
  • npm: +
      +
    • 指向的是当前项目的依赖包,通常是 package.json 字段中 devDependencies 配置的依赖名。
    • +
    • 需要配置 modules.externals,将对应的依赖名,指向到 ssr-base/npm/包名
    • +
    +
  • +
+

多版本依赖共存

+

package.json 中配置别名。

+
{
+    "dependencies": {
+        "query-string5": "npm:query-string@^5.1.1",
+        "query-string6": "npm:query-string@^6.11.1"
+    }
+}
+

src/entry.node.ts 文件中配置对外导出。

+
export default {
+    name: 'ssr-base',
+    modules: {
+        exports: [
+            // ...
+            'npm:query-string5', // 模块链接:ssr-base/npm/query-string5
+            'npm:query-string6'  // 模块链接:ssr-base/npm/query-string6
+        ]
+    }
+} satisfies GezOptions;
+

在对应的服务将 query-string 模块链接到你需要的版本。

+

ssr-module-auth

+

将登录、注册、验证码、修改密码、找回密码等用户信息认证的业务单独在一个服务中实现,对外导出相关的页面路由地址。

+

src/entry.node.ts

+
export default {
+    name: 'ssr-module-auth',
+    modules: {
+        // 其它服务使用:import routes from 'ssr-module-auth/src/routes
+        exports: ['root:src/routes.ts'],
+        // 总是需要配置依赖服务的地址
+        imports: {
+            'ssr-base': 'root:../ssr-base/dist'
+        },
+        // 这里只配置链接的第三方依赖,实现依赖共享
+        externals: {
+            vue: 'ssr-base/npm/vue',
+            'vue-router': 'ssr-base/npm/vue-router'
+        }
+    }
+} satisfies GezOptions;
+
TIP
+
    +
  • 当我们开发一个很大的系统时,可以按照业务模块来划分不同的服务,明确每个服务的职责。
  • +
  • 当你将第三方依赖全部指向到 ssr-base 服务时,项目构建速度总是会非常快,基本上都能在瞬间完成。
  • +
+
+

ssr-main

+

系统的主程序,负责将不同的业务服务,链接到一起。

+

src/entry.node.ts

+
export default {
+    name: 'ssr-main',
+    modules: {
+        imports: {
+            'ssr-base': 'root:../ssr-base/dist',
+            'ssr-module-auth': 'root:../ssr-module-auth/dist'
+        },
+        externals: {
+            vue: 'ssr-base/npm/vue',
+            'vue-router': 'ssr-base/npm/vue-router'
+        }
+    }
+} satisfies GezOptions;
+

使用方式

+
    +
  • import Layout from 'ssr-base/src/components/layout.vue' +
      +
    • 调用 ssr-base 服务的路由配置文件
    • +
    +
  • +
  • import routes from 'ssr-module-auth/src/routes +
      +
    • 调用 ssr-module-auth 服务的路由配置文件
    • +
    +
  • +
  • import Vue from 'vue' +
      +
    • 构建工具会替换为 import Vue from 'ssr-base/npm/vue'
    • +
    • 其它依赖举一反三
    • +
    +
  • +
+
+ + + diff --git a/guide/essentials/render-context.html b/guide/essentials/render-context.html new file mode 100644 index 00000000..8522b4b3 --- /dev/null +++ b/guide/essentials/render-context.html @@ -0,0 +1,91 @@ + + + + + + + + + 渲染上下文 - Gez + + + +

渲染上下文

+

我们有 entry.node.tsentry.server.ts 两个入口文件,entry.node.ts 负责创建服务器,来调用 entry.server.ts 生成 HTML。为了简化 CSS 和 JS 的注入,于是提供了一个 RenderContext 对象。

+

基本传参

+

entry.node.ts 通常可以看到这样的代码,调用一个渲染函数,然后服务响应 HTML。

+
entry.node.ts
const rc = await gez.render({
+    // 传入渲染的参数
+    params: {
+        url: req.url
+    }
+});
+// 响应 HTML 内容
+res.end(rc.html);
+

entry.server.ts 接收到传入的参数,并且根据传入的参数来响应内容。

+
entry.server.ts
import type { RenderContext } from '@gez/core';
+
+export default async (rc: RenderContext) => {
+    // 传入的参数
+    console.log(rc.params);
+    // 提交模块依赖收集
+    await rc.commit();
+    // 响应内容
+    rc.html = `你好世界!`;
+}
+

模块依赖收集

+

在 SSR 应用程序中,要处理注入渲染页面的 CSS 和 JS 文件,并不是一件简单的事情,当需要考虑多服务提供的模块时,这个问题将会变得更难。庆幸的是,Gez 提供了一个标准的实现方案,并且在 Vue 中提供了完整的实现。

+

在构建阶段,Gez 会给服务端生成的每一个 JS 文件头部注入一个 import.meta.chunkName 字段,该字段提供了一个 chunk 文件打包的入口源文件。

+
[chunk].js
import.meta.chunkName="ssr-vue2-remote@src/entry.ts";
+

ssr-vue2-remote 是我们的服务名,src/entry.ts 是这个文件打包的第一个文件。

+

例如:

+
import('ssr-vue2-remote/src/app.ts');
+

上述代码,就会生成

+
import.meta.chunkName="ssr-vue2-remote@src/app.ts";
+

Vue2 例子

+

将渲染上下文的 importMetaSet 对象传递给 Vue SSR 渲染的上下文对象中。

+
entry.server.ts
export default async (rc: RenderContext) => {
+    const { app } = createApp();
+
+    const html = await renderer.renderToString(app, {
+        importMetaSet: rc.importMetaSet
+    });
+    // ......
+};
+

在 Vue 组件中,收集上下文依赖。

+
App.vue
export default {
+    serverPrefetch () {
+        this.$ssrContext?.importMetaSet.add(import.meta);
+    }
+}
+
TIP

在实际的操作中,@gez/rspack-vue 已经在编译 .vue 组件时,已经将这段代码注入,你不需要手动调用。 +

+

等 Vue 组件渲染完成后,调用 await rc.commit() 函数来提交模块上下文的依赖收集, rc.preload()rc.css()rc.importmap()rc.modulePreload() 才能正确的注入客户端所需的依赖。

+
entry.server.ts
export default async (rc: RenderContext) => {
+    // ......
+    await rc.commit();
+
+    rc.html = `
+<!DOCTYPE html>
+<html>
+<head>
+    ${rc.preload()}
+    <title>Gez</title>
+    ${rc.css()}
+</head>
+<body>
+    ${html}
+    ${rc.importmap()}
+    ${rc.moduleEntry()}
+    ${rc.modulePreload()}
+</body>
+</html>
+`;
+};
+

深入了解

+
TIP

如果你想更加深入了解模块依赖收集,可以看下 ssr-html 这个例子,它是通过编码的形式来实现模块的依赖收集。 +

+
+ + + diff --git a/guide/essentials/rspack.html b/guide/essentials/rspack.html new file mode 100644 index 00000000..83a1c8bc --- /dev/null +++ b/guide/essentials/rspack.html @@ -0,0 +1,180 @@ + + + + + + + + + Rspack - Gez + + + +

Rspack

+

Gez 是基于 Rspack 构建应用程序,同时也就继承了 Rspack 的全部优势。Gez 提供了一些 Rspack 的配置,你可以根据自己的情况来选择使用哪个。

+
TIP

你可以基于 @gez/rspackcreateRspackHtmlApp 函数构建自己的 VueReactPreactSolidSvelte 等不同框架的配置。 +

+

@gez/rspack

+

提供了 Rspack 的基本配置。

+

安装依赖

+

如果你没有 @gez/rspack 的依赖,那么你可以通过如下命令安装。

+
npm
yarn
pnpm
bun
npm install @gez/rspack -D
+

No Loader

+

createRspackApp 提供了 Gez 的必要配置,默认情况下不提供任何 loader 相关的配置,你还需要配置一些 loader 才能将项目跑起来。

+
DANGER

Gez 的默认配置不可修改,否则 Gez 无法正常工作,点击这里 了解默认配置。 +

+

选项

+

config() v3.0.0

+
    +
  • 类型: config?: (context: RspackAppConfigContext) => void;
  • +
  • 默认值: undefined
  • +
  • 描述: 自定义 Rspack 配置。
  • +
+

例子

+
src/entry.node.ts
import type { GezOptions } from '@gez/core';
+
+export default {
+    async createDevApp(gez) {
+        return import('@gez/rspack').then((m) =>
+            m.createRspackApp(gez, {
+                config({ config }) {
+                    config.module = {
+                        ...config.module,
+                        rules: [
+                            {
+                                test: /\.ts$/,
+                                exclude: [/node_modules/],
+                                loader: 'builtin:swc-loader',
+                                options: {
+                                  jsc: {
+                                    parser: {
+                                      syntax: 'typescript',
+                                    },
+                                  },
+                                },
+                                type: 'javascript/auto',
+                              }
+                        ]
+                    }
+                }
+            })
+        );
+    }
+} satisfies GezOptions;
+

Html

+

createRspackHtmlApp 提供了一些开箱即用的配置,支持 Typescript、Worker、JSON、CSS、Less、Video、Image、Font 的相关文件。

+

选项

+

css v3.0.0

+
    +
  • 类型: boolean
  • +
  • 默认值: true
  • +
  • 描述: 是否启用默认的 CSS 配置。
  • +
+
TIP

如果你要自定义 CSS loader,可以设置为 false。 +

+

swcLoader v3.0.0

+
    +
  • 类型: SwcLoaderOptions
  • +
  • 默认值: undefined
  • +
  • 描述: 透传 builtin-swc-loader
  • +
+

lessLoader v3.0.0

+
    +
  • 类型: Record<string, any>;
  • +
  • 默认值: undefined
  • +
  • 描述: 透传 less-loader
  • +
+

styleResourcesLoader v3.0.0

+ +

definePlugin v3.0.0

+
    +
  • 类型: Record<string, any>;
  • +
  • 默认值: undefined
  • +
  • 描述: 透传 DefinePlugin
  • +
+

target.web v3.0.0

+
    +
  • 类型: string[]
  • +
  • 默认值: ['chrome>=87', 'firefox>=78', 'safari>=14', 'edge>=88']
  • +
  • 描述: 浏览器的构建目标。
  • +
+
WARNING

构建目标小于默认配置,Gez 可能无法正常工作。

+

target.node v3.0.0

+
    +
  • 类型: string[]
  • +
  • 默认值: ['node>=20']
  • +
  • 描述: Node.js 的构建目标。
  • +
+
WARNING

构建目标小于默认配置,无法保证兼容性,请认真考虑后设置。

+

例子

+
src/entry.node.ts
import type { GezOptions } from '@gez/core';
+
+export default {
+    async createDevApp(gez) {
+        return import('@gez/rspack').then((m) =>
+            m.createRspackHtmlApp(gez, {
+                // 自定义选项
+                config({ config }) {
+                    // 自定义 Rspack 的配置
+                }
+            })
+        );
+    },
+} satisfies GezOptions;
+

@gez/rspack-vue

+

提供了 Rspack vue 的基本配置。

+

安装

+

如果你没有 @gez/rspack-vue 的依赖,那么你可以通过如下命令安装。

+
npm
yarn
pnpm
bun
npm install @gez/rspack-vue -D
+
TIP

该软件包同时支持 Vue2Vue3。 +

+

选项

+

选项继承于 createRspackHtmlApp

+

vueLoader v3.0.0

+
    +
  • 类型: Record<string, any>
  • +
  • 默认值: undefined
  • +
  • 描述: 透传 vue-loader
  • +
+
WARNING

experimentalInlineMatchResourceoptimizeSSR 由程序自动设置,你传入也无效。 +

+

Vue2

+

createRspackVue2App 提供了 Vue2 的 .vue 文件支持。

+
src/entry.node.ts
import type { GezOptions } from '@gez/core';
+
+export default {
+    async createDevApp(gez) {
+        return import('@gez/rspack-vue').then((m) =>
+            m.createRspackVue2App(gez, {
+                config ({ config }) {
+                    // 自定义 Rspack 配置
+                }
+            })
+        );
+    }
+} satisfies GezOptions;
+

Vue3

+

createRspackVue3App 提供了 Vue3 的 .vue 文件的支持

+
src/entry.node.ts
import type { GezOptions } from '@gez/core';
+
+export default {
+    async createDevApp(gez) {
+        return import('@gez/rspack-vue').then((m) =>
+            m.createRspackVue3App(gez, {
+                config ({ config }) {
+                    // 自定义 Rspack 配置
+                }
+            })
+        );
+    }
+} satisfies GezOptions;
+

JSX/TSX

+

目前暂不支持 JSX/TSX ,如果你想要支持它。需要自行添加相关的 Rspack 配置。点击这里了解 Vue 的相关配置。

+
+ + + diff --git a/guide/framework/html.html b/guide/framework/html.html new file mode 100644 index 00000000..721c4290 --- /dev/null +++ b/guide/framework/html.html @@ -0,0 +1,18 @@ + + + + + + + + + HTML - Gez + + + +

HTML

+

在开发一些简单的页面时,使用 HTML 是一个不错的选择。我们提供了一个 HTML 的完整例子,包含了服务端请求数据、客户端水合。

+
+ + + diff --git a/guide/framework/preact.html b/guide/framework/preact.html new file mode 100644 index 00000000..802cdba7 --- /dev/null +++ b/guide/framework/preact.html @@ -0,0 +1,19 @@ + + + + + + + + + Preact - Gez + + + +

Preact

+

@gez/rspack 包的基础上,你可以编写 Preact 相关的 Rspack 配置。

+
TIP

欢迎提交 PR 来实现 Preact。

+
+ + + diff --git a/guide/framework/react.html b/guide/framework/react.html new file mode 100644 index 00000000..f2ba62be --- /dev/null +++ b/guide/framework/react.html @@ -0,0 +1,19 @@ + + + + + + + + + React - Gez + + + +

React

+

@gez/rspack 包的基础上,你可以编写 React 相关的 Rspack 配置。

+
TIP

欢迎提交 PR 来实现 React。

+
+ + + diff --git a/guide/framework/solid.html b/guide/framework/solid.html new file mode 100644 index 00000000..9d71f2ed --- /dev/null +++ b/guide/framework/solid.html @@ -0,0 +1,19 @@ + + + + + + + + + Solid - Gez + + + +

Solid

+

@gez/rspack 包的基础上,你可以编写 Solid 相关的 Rspack 配置。

+
TIP

欢迎提交 PR 来实现 Solid。

+
+ + + diff --git a/guide/framework/svelte.html b/guide/framework/svelte.html new file mode 100644 index 00000000..8a9abc94 --- /dev/null +++ b/guide/framework/svelte.html @@ -0,0 +1,19 @@ + + + + + + + + + Svelte - Gez + + + +

Svelte

+

@gez/rspack 包的基础上,你可以编写 Svelte 相关的 Rspack 配置。

+
TIP

欢迎提交 PR 来实现 Svelte。

+
+ + + diff --git a/guide/framework/vue.html b/guide/framework/vue.html new file mode 100644 index 00000000..82e386e5 --- /dev/null +++ b/guide/framework/vue.html @@ -0,0 +1,107 @@ + + + + + + + + + Vue - Gez + + + +

Vue

+

Gez 提供了 Vue 开箱即用的支持。

+

例子

+ +
TIP

自定义实现,需要基于 @gez/rspack 来实现,Vue 相关的配置,可以在这里了解。 +

+

安装依赖

+

Vue2

+
npm
yarn
pnpm
bun
npm install @gez/rspack-vue vue@2.7.16 vue-tsc vue-server-renderer@2.7.16 -D
+

entry.node.ts

+
import type { GezOptions } from '@gez/core';
+
+export default {
+    // ...... 省略若干配置
+    async createDevApp(gez) {
+        return import('@gez/rspack-vue').then((m) => m.createVue2App(gez));
+    }
+} satisfies GezOptions;
+

entry.server.ts

+
import type { RenderContext } from '@gez/core';
+import { createRenderer } from 'vue-server-renderer';
+import { createApp } from './create-app';
+
+const renderer = createRenderer();
+
+export default async (rc: RenderContext) => {
+    const script = await rc.script();
+
+    const { app } = createApp();
+    const vueCtx = {
+        renderStyles: () => ''
+    };
+    const html = await renderer.renderToString(app, vueCtx);
+
+    rc.html = `
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Gez</title>
+    ${vueCtx.renderStyles()}
+</head>
+<body>
+    ${html}
+    ${script}
+</body>
+</html>
+`;
+};
+
TIP

内部系统,还在大量使用 Vue2,未来 5 年还好持续维护。

+

Vue3

+
npm
yarn
pnpm
bun
npm install @gez/rspack-vue vue -D
+

entry.node.ts

+
import type { GezOptions } from '@gez/core';
+
+export default {
+    // ...... 省略若干配置
+    async createDevApp(gez) {
+        return import('@gez/rspack-vue').then((m) => m.createVue3App(gez));
+    }
+} satisfies GezOptions;
+

entry.server.ts

+
import type { RenderContext } from '@gez/core';
+import { renderToString } from 'vue/server-renderer';
+
+import { createApp } from './create-app';
+
+export default async (rc: RenderContext) => {
+    const { app } = createApp('server');
+    const script = await rc.script();
+    const body = await renderToString(app, {});
+    rc.html = `
+  <!DOCTYPE html>
+  <html>
+  <head>
+      <meta charset="UTF-8">
+      <meta name="viewport" content="width=device-width, initial-scale=1.0">
+      <title>Gez</title>
+  </head>
+  <body>
+      ${body}
+      ${script}
+  </body>
+  </html>
+  `;
+};
+
TIP

例子不够完整,欢迎提交 PR 补充完整例子。

+
+ + + diff --git a/guide/start/getting-started.html b/guide/start/getting-started.html new file mode 100644 index 00000000..5d8e05a5 --- /dev/null +++ b/guide/start/getting-started.html @@ -0,0 +1,145 @@ + + + + + + + + + 快速开始 - Gez + + + +

快速开始

+

这是一个与框架无关的例子,采用原生的 HTML 来开发项目

+
TIP

Gez 默认支持 SSR,但是你可以当成 CSR 来使用。 +

+

创建项目

+
cd 项目目录
+npm init
+

设置 ESM

+
package.json
{
+    "type": "module"
+}
+

安装依赖

+

安装生产依赖

+
npm
yarn
pnpm
bun
npm install @gez/core
+

安装开发依赖

+
npm
yarn
pnpm
bun
npm install @gez/rspack typescript @types/node -D
+
TIP

总是应该将生产依赖和开发依赖区分,会使 node_modules 在生产环境中更小。 +

+

添加脚本

+
package.json
{
+    "scripts": {
+        "dev": "gez dev",
+        "build": "npm run build:ssr && npm run build:dts && npm run release",
+        "build:ssr": "gez build",
+        "build:dts": "tsc --noEmit --outDir dist/src",
+        "release": "gez release",
+        "preview": "gez preview",
+        "start": "gez start",
+        "postinstall": "gez install"
+    }
+}
+
TIP

你需要手动配置 tsconfig.json 文件,否则执行 build:dts 命令会报错。 +

+

基本例子

+

基本结构

+
- src/ + - entry.client.ts # 客户端渲染入口 + - entry.server.ts # 服务端渲染入口 + - entry.node.ts # 创建服务器 +
+

客户端渲染

+

更新当前时间

+
src/entry.client.ts
const time = document.querySelector('time');
+setInterval(() => {
+    time?.setHTMLUnsafe(new Date().toISOString());
+}, 1000);
+

服务端渲染

+

模拟框架的 SSR API,渲染出 HTML 内容返回

+
src/entry.server.ts
import type { RenderContext } from '@gez/core';
+
+export default async (rc: RenderContext) => {
+    // 提交依赖收集
+    await rc.commit();
+    // 响应 HTML
+    const time = new Date().toISOString();
+    rc.html = `
+<!DOCTYPE html>
+<html>
+<head>
+    ${rc.preload()}
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Gez</title>
+    ${rc.css()}
+</head>
+<body>
+    <h1>Gez</h1>
+    <h2>Hello world!</h2>
+    <p>URL: ${rc.params.url}</p>
+    <time>${time}</time>
+    ${rc.importmap()}
+    ${rc.moduleEntry()}
+    ${rc.modulePreload()}
+</body>
+</html>
+`;
+};
+

创建服务器

+

创建一个 web 服务器,来处理客户请求

+
src/entry.node.ts
import http from 'node:http';
+import type { GezOptions } from '@gez/core';
+import { name } from '../package.json';
+
+export default {
+    // 设置应用的唯一名字,如果有多个项目,则名字不能重复
+    name,
+    // 本地执行 dev 和 build 时会使用
+    async createDevApp(gez) {
+        return import('@gez/rspack').then((m) =>
+            m.createRspackHtmlApp(gez, {
+                config(context) {
+                    // 可以在这里修改 Rspack 编译的配置
+                }
+            })
+        );
+    },
+    async createServer(gez) {
+        const server = http.createServer((req, res) => {
+            // 静态文件处理
+            gez.middleware(req, res, async () => {
+                // 传入渲染的参数
+                const rc = await gez.render({
+                    params: {
+                        url: req.url
+                    }
+                });
+                // 响应 HTML 内容
+                res.end(rc.html);
+            });
+        });
+        // 监听端口
+        server.listen(3000, () => {
+            console.log('http://localhost:3000');
+        });
+    }
+} satisfies GezOptions;
+

启动项目

+
npm run dev
+
+

浏览器打开:http://localhost:3000

+
+

更多例子

+ +
TIP

如果你使用了 Gez,欢迎提交 PR,在这里提供更多的例子。

+
+ + + diff --git a/guide/start/introduction.html b/guide/start/introduction.html new file mode 100644 index 00000000..1c18f8ce --- /dev/null +++ b/guide/start/introduction.html @@ -0,0 +1,47 @@ + + + + + + + + + 介绍 - Gez + + + +

介绍

+

Gez 是 Genesis 迭代的第三个大版本,v1.0 是基于 HTTP 请求来实现的远程组件,v2.0 是基于 Module Federation v1.0 +实现的远程组件。随着主流浏览器都已经支持 ESM,这使得设计一款基于 ESM 的模块链接变成了可能。随着 Rspack v1.0 的发布,提供了对 ESM 更加友好的支持,这使得我们可以将可能变成了现实。于是,我们将 v3.0 版本重命名为 Gez

+

为什么选 Gez

+

目前社区类微服务的解决方案基本可以分为 iframemicro-app +Module Federation 三种代表。其中 iframe 和 micro-app 这种模式只适合对已有的老项目进行缝合,是以降低程序运行效率所做的一种妥协,而 Module Federation 的接入成本较高,里面又是一个黑盒子,一旦出了问题,都十分难以排查。

+

Gez 完全是基于 ESM 模块系统进行设计,默认支持 SSR,每个服务都可以对外导出模块,也可以使用外部模块,整个过程简单透明,能够精准的控制依赖管理。通过 importmap 将多服务的模块映射到具有强缓存,基于内容哈希的 URL 中。

+
TIP

Gez 诞生的初衷,就是为了实现一个支持 SSR 的微服务架构,去构建一个高性能、大型的 web 应用程序。

+

调研

+
    +
  • 参考了 Vite 对现代 JavaScript 支持的定义,以浏览器支持 ESM dynamic importimport.meta 作为基准。 +
      +
    • Chrome >=87
    • +
    • Firefox >=78
    • +
    • Safari >=14
    • +
    • Edge >=88
    • +
    • node >=20
    • +
    +
  • +
  • 构建出具有内容哈希的产物,使用 importmapimport vue from 'vue' 替换成 ssr-npm/npm/vue.[contenthash].js,这样静态文件就可以设置为强缓存了。对于不支持 importmap 的浏览器,es-module-shims 提供了降级的方案
  • +
  • Rspack 的 externalsType 支持使用 module-import,来设置 ESM 模块的外部依赖。
  • +
  • 在 Node 上实现 ESM 模块热更新不是一件容易的事情,庆幸的是可以通过启用 node --experimental-vm-modules --experimental-import-meta-resolve 来实现它。
  • +
  • 最终确定使用 Rspack 和 Node20 来实现 v3.0 版本。
  • +
+
TIP

从最早的构思,到调研 Vite、farmfe、Rspack的调研,中间经历了一年多的时间,庆幸的是这条路最终走通了,并且达到了生产可用。

+

定位

+

Gez 的定位并不是成为 Next.jsNuxt.js 那样大而全的框架,而是成为一个具有 Typescript、ESM、SSR、模块链接等特性的基础设施,你可以在这个基础上来构建属于你自己的 Next.js。如果你需要定制化实现,它会很适合你。

+

兼容性

+

所有的主流浏览器都已经支持,针对一些低版本的浏览器,可以提供一个升级的页面来引导用户升级它的浏览器。

+

可靠性

+

v1.0v2.0 到现在的 v3.0,已经走过了将近 5 年的时光,支持起了公司内部数十个业务的项目,并且不断地推动业务项目的升级。

+
+ + + diff --git a/index.html b/index.html new file mode 100644 index 00000000..09a24910 --- /dev/null +++ b/index.html @@ -0,0 +1,17 @@ + + + + + + + + + Gez + + + +

Gez

基于 ESM 的模块链接。

👍

技术创新

首个基于 ESM 构建的 SSR 多服务模块链接。

🚀

项目构建

基于 Rspack 实现,构建速度极快,带给你极致的开发体验。

🎯

依赖管理

一次构建,一次发布,多服务生效。

☁️

同构渲染

支持 Vue2、Vue3、React 等不同框架实现 SSR。

😎

基准支持

Node20 和支持 ESM dynamic import 和 import.meta 的浏览器。

👏

长久维护

Genesis 从 2020 年迭代至今,现更名为 Gez。

+
+ + + diff --git a/logo.svg b/logo.svg new file mode 100644 index 00000000..fef098a6 --- /dev/null +++ b/logo.svg @@ -0,0 +1,3 @@ + + Gez + \ No newline at end of file diff --git a/ssr-html/about/index.html b/ssr-html/about/index.html new file mode 100644 index 00000000..d23aa565 --- /dev/null +++ b/ssr-html/about/index.html @@ -0,0 +1,32 @@ + + + + + + + + Gez + + + +
+ +
+

Gez

+ +
+ Gez 是一个基于 Rspack 构建的模块链接(Module Link) 解决方案,通过 importmap 将多服务的模块映射到具有强缓存,基于内容哈希的 URL 中。 +
+
+ +
+ + + + + + + diff --git a/ssr-html/chunks/222.584a2be3.final.css b/ssr-html/chunks/222.584a2be3.final.css new file mode 100644 index 00000000..9b19013a --- /dev/null +++ b/ssr-html/chunks/222.584a2be3.final.css @@ -0,0 +1 @@ +.layout{padding:10px}head{--webpack-__ssr_html__-222:&_992} \ No newline at end of file diff --git a/ssr-html/chunks/222.81e62fc0.final.js b/ssr-html/chunks/222.81e62fc0.final.js new file mode 100644 index 00000000..a1f10479 --- /dev/null +++ b/ssr-html/chunks/222.81e62fc0.final.js @@ -0,0 +1,35 @@ +export const ids=["222"];export const modules={878:function(e,t,r){function i(e){return` +
+

Gez

+ +
+ ${e} +
+
+`}r.d(t,{b:function(){return i}}),r(992)},286:function(e,t,r){function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,{T:function(){return n}});class n{get props(){if(null===this._props)throw Error("props is null");return this._props}set props(e){this._props=e}render(){return""}onCreated(){}onClient(){}async onServer(){this.importMetaSet.add(import.meta)}constructor(){i(this,"importMetaSet",new Set),i(this,"_props",null),i(this,"state",{})}}},421:function(e,t,r){r.r(t),r.d(t,{default:()=>c});var i=r("878");let n=r.p+"images/cat.ed79ef6b.final.jpeg",s=r.p+"images/loading.6e6b1b2e.final.gif",a=r.p+"images/logo.310683d2.final.svg",o=r.p+"images/starry.d914a632.final.jpg",l=r.p+"images/sun.429a7bc5.final.png";var u=r("286");class c extends u.T{render(){let{url:e}=this.props,{count:t}=this.state;return(0,i.b)(` +

计数器

+
${t}
+

请求地址

+
${e}
+

图片

+ +`)}onClient(){setInterval(()=>{this.state.count++;let e=document.querySelector("#count");e instanceof HTMLDivElement&&(e.innerText=String(this.state.count))},1e3)}async onServer(){this.importMetaSet.add(import.meta),super.onServer(),this.state.count=1}constructor(...e){var t,r,i;super(...e),t=this,i={count:0},(r="state")in t?Object.defineProperty(t,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[r]=i}}}}; \ No newline at end of file diff --git a/ssr-html/chunks/473.31938102.final.js b/ssr-html/chunks/473.31938102.final.js new file mode 100644 index 00000000..9cb51e5f --- /dev/null +++ b/ssr-html/chunks/473.31938102.final.js @@ -0,0 +1,12 @@ +export const ids=["473"];export const modules={878:function(t,e,r){function n(t){return` +
+

Gez

+ +
+ ${t} +
+
+`}r.d(e,{b:function(){return n}}),r(992)},286:function(t,e,r){function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}r.d(e,{T:function(){return i}});class i{get props(){if(null===this._props)throw Error("props is null");return this._props}set props(t){this._props=t}render(){return""}onCreated(){}onClient(){}async onServer(){this.importMetaSet.add(import.meta)}constructor(){n(this,"importMetaSet",new Set),n(this,"_props",null),n(this,"state",{})}}},896:function(t,e,r){r.r(e),r.d(e,{default:function(){return o}});var n=r(878),i=r(286);class o extends i.T{render(){return(0,n.b)(`Gez 是一个基于 Rspack 构建的模块链接(Module Link) 解决方案,通过 importmap 将多服务的模块映射到具有强缓存,基于内容哈希的 URL 中。`)}async onServer(){this.importMetaSet.add(import.meta),super.onServer(),this.state.time=new Date().toISOString()}constructor(...t){var e,r,n;super(...t),e=this,n={time:""},(r="state")in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n}}}}; \ No newline at end of file diff --git a/ssr-html/chunks/473.584a2be3.final.css b/ssr-html/chunks/473.584a2be3.final.css new file mode 100644 index 00000000..fd550132 --- /dev/null +++ b/ssr-html/chunks/473.584a2be3.final.css @@ -0,0 +1 @@ +.layout{padding:10px}head{--webpack-__ssr_html__-473:&_992} \ No newline at end of file diff --git a/ssr-html/chunks/830.584a2be3.final.css b/ssr-html/chunks/830.584a2be3.final.css new file mode 100644 index 00000000..99934719 --- /dev/null +++ b/ssr-html/chunks/830.584a2be3.final.css @@ -0,0 +1 @@ +.layout{padding:10px}head{--webpack-__ssr_html__-830:&_992} \ No newline at end of file diff --git a/ssr-html/chunks/830.da02209d.final.js b/ssr-html/chunks/830.da02209d.final.js new file mode 100644 index 00000000..abf71449 --- /dev/null +++ b/ssr-html/chunks/830.da02209d.final.js @@ -0,0 +1,12 @@ +export const ids=["830"];export const modules={878:function(t,r,e){function n(t){return` +
+

Gez

+ +
+ ${t} +
+
+`}e.d(r,{b:function(){return n}}),e(992)},286:function(t,r,e){function n(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}e.d(r,{T:function(){return o}});class o{get props(){if(null===this._props)throw Error("props is null");return this._props}set props(t){this._props=t}render(){return""}onCreated(){}onClient(){}async onServer(){this.importMetaSet.add(import.meta)}constructor(){n(this,"importMetaSet",new Set),n(this,"_props",null),n(this,"state",{})}}},654:function(t,r,e){e.r(r),e.d(r,{default:function(){return i}});var n=e(878),o=e(286);class i extends o.T{render(){return(0,n.b)("

Not Found

")}async onServer(){this.importMetaSet.add(import.meta),super.onServer()}}}}; \ No newline at end of file diff --git a/ssr-html/images/cat.ed79ef6b.final.jpeg b/ssr-html/images/cat.ed79ef6b.final.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..29e4dab9bb9f3719f1e1a4f95ec634d038205b01 GIT binary patch literal 9111 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 literal 0 HcmV?d00001 diff --git a/ssr-html/images/loading.6e6b1b2e.final.gif b/ssr-html/images/loading.6e6b1b2e.final.gif new file mode 100644 index 0000000000000000000000000000000000000000..0613ccb0c68936132dd480decc45bccacc4c3e40 GIT binary patch literal 10805 zcmeI2c|6n$-}i@x?8z3Bge+t1TcJ~DES05XNij;4#Dq|U7GoP`Y-1m5voL0{uY)j_ z>_keIF!rTLicslR=efGheP7q>zRv408-z$%}-shHq^H` zrJhh_IArSC6({~G|d9h_XOvs<<+wb1=dy_eFnyB-t%Y0LLlzA=Pvizxgkkm(1uip#wZG z-Lv!zp|Ap4d@oPT`8X`Qx;a=_ai1`CIE$NO|G48l0~7tru3SCF#_tVyk^7%M?H45y z&VXjUpf9fXg|{VY>==xTE^=Q~5|y`Xg$m{DH%V1>YW-q+b6_8;%4_Z|JyD*q-$4JI z5?sr{DpwnOvE|cUFdxO5W>c}WNAZ-SJ<;EWOkGMY5m8TD4$)4sFg!b!@(bNs#q6xc zGHY_OjR>BI*uyPxmR>yB94V;i&`p0&&*PK1Pzat2f(57_hPe45IkXX@3}_ z3h_tsN#ZIHEI=NzrbjXSW+yxAg`q2s05+~Nx3bqDr!^o8FW68L^9$W8!}zg*7a*|Q zcm7%M#R7mHz@3%ZEXc^d!dsIgAOsk?!qUXb_0}wPK3yvyWX~oWKoW8IPCy%g9n3@k zMO>M|9CABkX2?;kJ^-+R#k$eq#&SOtSZV=iy!vRY3<>0OtwfpydTU9W%c4b}!s3eQ zQ`U#%)}^DX!)}Dd^fDJhqh7DthQ`j|vHkWTTSEz$GvgdKI>vkkIf+7rEmBD`t*bNf zmY%>v$r2iF(y3-}-Q46m=RU|{oiqr9H2ZPq@wi)_DWpsfs_wk-jnl_SoB`~Ec_+Mg zI4x2G2Rm+Nu4OImBZROA$m7r|AUDE&0(2oDQEz+BFiixekZUI~LdnC!eHBPZSRllf z_Iyi0v*2PRm|E1NN6V+c? z11YQUNiTrC(z92ttlQ`>sG3YLlgOObQ=GtzB10WZcoOcrKe2seR`g_GoaRxxojzKW zv9+UETrULx{Ee`GffMRq;G{mLwrH@6Q`*0Y(}C|eiT$}a9b*59(@_CPj+Es!UZksJ zFB$7~yq`iQZp+>T-=_?Xq@j-*3Zn=)trFy^IYxhsYI?Bg*~1ZmTqTArYx;Fs6rbp5GRjC;K2s%L-D4jAF&Xr*$v8K6A^2 z_q?JjUvWC((>oy5{wnoC2rHmU5o!yS`a1vq(m7G>Y$oC%3xH!N)%{S(?uYmHIJp|` z;e{3-R1>}|Z+42;NRpe4|MjU$_E=*k<91v(@Y0=Inc*nZ_%sAJ5?3oRuBaek-bBBm zrWeq#_;e<4T9wjr9csy((rD^ z>BGF}V`{BK#-)UM4fP$UgS$*lEC8HgXlsNW-iC|AU@t!d#sILg zzepx2HbLe)eri=JZI>8A)Ci5YHwFXb{e zbnWCbZx0?oCiVAsuz z=4DCO@2xJCY6dkIlL5I)f5OP)zu5T=LWJHEutG( zYZa-@By4_Zn?`MZ@c`8HU_nL72&{ni%pgO#qB>!qpvnggDx{CXj$f_z&Q@FrsnCmD zu39V9^sM_J5>@oe$Ca*v+MT6NPX_QnzCOnvm8p)m|Gn!I+a>De=Mfdx_h(Hs2l~9U z^G62jC%pr@RPMB``Ul>>`|v>!!Y#xAX&$W-8Gu%}>Ubws2@{_Hex#D6oOU21Di!ir z5l)&66(qg?ELub+YU5SH4?o$yOG`V7y}^XnduoR$UF* z7$G`nvGyv?sZ5MtQ-mN?+~1^mz{y#>I{tcx^2r_k4pEb}86z`r5Ky4Q>d2|sL(6XD zVF9UL|Cjz7Pu?e<)x-0L3TX%OxLK*1-7)pqR_l6hb77x3sz%{fi^{LH(!$O@kZ0#q zg|n`#pYOG(gtDD@X;M`))rAeyQJ*kd(G0Te+cMZ&E!aqZd=&g6Fm(uNy6w0EGD2gL>Kp)t2^4VTQ}1=tnI8@ z!M@H_;G9G_9 z?{%MK7ZW+bZ|JHQ#JcT*4`IEtK#b}10Tb^+V2e1;b9xk_oM(+&OcV^AmwwSF5lpc} zaxLW&T8F7LSI%vPTw)Um5?|4L!TSi=2y)5n0eG(FYNHduGDkKJrO{ey{lV8{!Nk& z{yjE@{cp@}U%!6+$N0v!!~Dls_QwECsk(+uaB(plD5Tn-BsSZP1UghUa4*9j2A_ZA zAL1RM>=C|;W@s2DJ~{>!gg~bxU5`q`rasQNfKSc=XA$IM&C{u5iX1IF5m#PZSU{}I zB~?imz~|4}z3)HG;jT9pG1*Q`w{&P~S%f!6tc#yW0Pbu1RbZdy=_LAo z-UI}nror0<&y-ZO@{SQ)2<%PJjfR}rzLlnG-<>St7O3Pm;K-i^wqE}jAOOzCvz3XC zg_TbT;Z)vfofrz2%f&y^(Wo(@$Yf$EBBqUEl`c{Q)dA|2uF8VZDzE9zEVJ)`a=HC* zjS~$bFRqFHh-Kjux`96g4s*ot5sF@VqiIvz63VZOKs;k*=T}=@E?w+=3DelPwQC<= zeYcMm+vOhJM{pXEefL5T?2n}Q0S=!lmtP1->G&&E2Y64D;*V2Tbr7zsLuG>gd}BT? z%DZXI|3?~|QMmU>;+*ssQG2bDltLpW6vE&gDz zn9hQu-GNh1lSt6rSsReJC)UO+DXiT|)FRpSTI8i1dIwsmcbWiJYqbsY?0(@d&9CV~ zB!-`4Vh7`(+4w|zqm%8=BLYqdJ6kBqpfDGOz5=bdj1pu9HSM$a+(^=cyA3K`H@B0+ zDyDDArrm7CV7TOZ%jKlU%D3dwO~)IZ^~_C=<-zXz44dKHWSw1+{1PyELh+MDFp=Mz;N1`chzrXYD*g@!gZZ+r>kF4x8iS;}a7TOeXX9gtF~8%Kt-U@)u(B&>v?r zaCLnFxwi9_aRNQ*D%lvsI5YdEu$??R-}^c; z`B)rN?*}V?>Lp+z^U)FxqA*|ed?ixjt z&Awuf@Cc|EfCckC$T1I2bs=f^x1R^02re8q4-VR>F*krZKNrpP+a>X~6hFcPwC>i! zCZz-Tg?`UtG}Ze!6`;d#W^GRt+~oaIJO$Y$5%7b=7u?70t@Q7I3*6iEoy0G%m;DE* zSD)3_eg3pM-Szlb%~Ds*!8 z#UUXVQKY4p^MVw@+ADH0LU;#w0U`rm2#?Ijv7Iv4Oq-DoIXUyu@~Gx>|I^V9vsj$L z0aj<=ULzm=(70_NC&v7kkX;Usu9Zx(*RernPNGE(_{Qn?uENd9=X){N5**NF7Tk_V z1rpkMyx7w8NRG)2@4lnj=BhruCMjXcHexrk?~fee!CiYlJkJ#X61#Zj(Ee@V3l_Q~ z!a2RhHOUvO>_+%V+_F@Wytn?H3HWDql1rp-XNQAHEL7?eWgs&E%##lxQw=#9A&L2A z&mlLDKG|4O#4=9arExU0a^)FoU2<&F8LM{-u#T{67%M9?tH$ z-zt@^dqpNSvUjYYjAIBy^AAnrEgs0cHv!_X!21NV2!XZyUZXsLRf0e*f9_z$LQf{k zY#0-Id*T(@`gWI{{%ychpwAmQetSQoj9mc9m%kU2E#J0Di~O?-z`ca;0B*mYbt}6y z(OXyh=^e8<>hSq`lTdbkjpivY{8zTCCLkmJ3aQY~8y4sJ_NMXK5jy+my)I7>oL z-<7<+SG}10EDErAw>es~(@Xl4l?~B`=a;pG>k&{Fp=TI1q2XyB(eZYfGkVXNGl>>1 z;91^-0nFS~#mfrQygS<3y{WEL$vLbu8<;iSi(2iH(Zon2WnPM%oy+hGLEX%D@_n(} zy@-gBHA4gYnli8ICod4L9j)mjVps#mazbm0yKsjwCgEZN8d>w60i_sdMv6sR;x9~UWoO4%nVo>R4cGc;P` zIeo%Jy9PTQd3?>EV6gA2Z4*Xq+i@n^SVKPETwTp1hfCBsZI>ZN8PjyT7p%s)o3XGy@FhHUCPt^{FmNn~u(s&cKEbKkvUM*pji!@g`mav+x zpWV|Zc1H>tvvAbCcBM4R{fR2sOqKh?xP4L9_Qsnc&YugwpOg&0eEITw-}&3P_y15b z{L8q{|LanRLVf^gFsQh7zU@y0Fw~fHzV0D!l8lZmc((p)j*9Q(#6y6d?^DDcksb1d zAPxaK%JQ_qd&U5z(BBQot_CrC;>W*d;Za^CniVz~p9@!#HaG*qvQcp+OpgyQKD7 zkyRr+JLcKYm3b~HD!*{K<*0*3$i&cV=?cV*$}O^yw;%pyE-`_6L>BLp4pz){@P<&c zs5Run1vT3w)5oRhG;+lVM4>RL)luP870EKcgaS*-7wu~DQYx*}5)qK)9kBY`uM8c; zD3=B#=r&hG9y(#v>ACAy2(C7actZ#>SfD~Z$$D%AG{anereAh?pvBV zbcAlkTu7q{HKc8kfik%lL3fvaOq20%^$ zkdhbRisxGS(C-cD#0-N4$i>fq;MQZeKJ68Vl$Ml~72n+4X941O#3y~(l%2IY0GN}< zSzi*`v1JCEe$B%LXNcZt2?cBbUxW#<+jd{pcjh?kqq)VLj8O7+ZH}CKC_BjwZgpft zvHRmQb)-7g2s~;{qDH4Bc7$d>bRwiGbds( zjk9W$UcharhskUD_9l=s;y{659H7p`gcw`7mqN-oiw5Uig)QwRrJ;wf=S2H&Qz&_* zFb+zt3S5qQk6c5|FROvQN!pGCLC9Y2!-@rHm*zLc3=QDTSk)_wB$Kn!G{s|+;=-oc zrw1HHA%!DWBL$|zk3K6_O{LqdR4@GVc=%6geDdVU&#c$l+S=CE*52OU(b3V_+1b_A z)!p6Q)6>)2+uPUIH!v_TI5_y~)vKYQq0!ON-BkD!FP-A*_&0>lGdY@0H8o%%OKq`dWLBRAP@zVyz z4m->n;&#o>XYRbR9r4;K9c#yEy0V7_3^hRmv&(Bz4xtu?0 z@mQFi_}bS(RgW<%?4`d@k}2vk&pGMzU)xmwGpJq`&a|7B~(M}nWmii4X% z*>>C1xd74RsVmmuix_5(e{T@_|5?`75PhZHnS?t4>HN^WU092V(7H z({7Y@7{u_MFuHLPesPbm_?4JGvuuy|Ch`W4SQU6qUK|ET30;O%h z6h#Pr+i!#$MQUlHzO69%1GK_ns_`>e;LVh4hkVMe=I`Vt!YlceGn6YQ_zrrOz4klk zQN2LAW$?Fk@b_)a&!e-S7iYgoB$-U6P$*O?l}4lG=jRs`6ciQ~78MnhmX?;6mseF) z(dqP>nwniD-DUT`R5eXaP5*sc^9OM3*u6RHu~(1oF3fT>U5`2!ackLIH_9Qk?)tsJ z`wwnB3P#w3goa5VQITBK(l@H zI~VqaKaJDSsL|h4P9&iZ@2Iv)3OQdlNYu0nxol0zHMk^qz7wM>c(^9>*nzbRV*9|S z4jLX5(WYvivC8emg1)>@a#Eq3i@6}IW4e@Fz$Y89ymnX6Lf^1wJF(f?qfPC^)0)d{ zzQVsg{@wcc{pQT8kn8)N?=IEM&WAa2XBAa3Jk^C(bwv~dg6E%Qr(S#%UVWF1ci%~Q z3r3)JDEsv33C$QgP3OIwM;APC&}QUNseXTJ^rSixC@5*~h!OYqN^L%H9oHxJea}}o zed$RsOUO&^rl@^!Cu$p)BQ=enxci}Oob|p@M}t`F*!cLxfAPlw8biJ&_1_%&{mt3# z`sm2Z0#rk=u+R7~EU)nH2e8mY)fiVo@^eqKus-o+JL_X2^VCiOjb*d;ETKzBi-Fdq zWBg)lfEQn`a)iac22kQ-HaB$y;sZEQf@sx%{Ye@SiIy2N>r=ofBTMA;)NvVoAK6rE z0~8+nD;9hsl`TfW<>Hy%ikU=*(k;2nujDPkbU}sE+!LM&#WxY_j1ThX z^yBpFbEOFkBLzxYe7cT8cJj4!*&Owa08$n#5cHDdq5(TXdO(1~qrwMKa4Mm*6p~+n zgelT+k4)uLYCAg@i!zb>-xeoPE#GF9q}-)Rw1GyH3hJ^!%0)IRd}T^y)gfv5l|BwO o%jqCx(YK-P4rYY~1KG6v>LtC;@Y)p@?ssV)25;T|9x;#q2cn`wqW}N^ literal 0 HcmV?d00001 diff --git a/ssr-html/images/logo.310683d2.final.svg b/ssr-html/images/logo.310683d2.final.svg new file mode 100644 index 00000000..fef098a6 --- /dev/null +++ b/ssr-html/images/logo.310683d2.final.svg @@ -0,0 +1,3 @@ + + Gez + \ No newline at end of file diff --git a/ssr-html/images/starry.d914a632.final.jpg b/ssr-html/images/starry.d914a632.final.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d0c3b0a572b62130289f400d022c56bdc51e970 GIT binary patch literal 154039 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

6=6 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

?mGqH$M^Zdg%!ms=` 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 literal 0 HcmV?d00001 diff --git a/ssr-html/importmap.24d223d14d7f44f5.final.js b/ssr-html/importmap.24d223d14d7f44f5.final.js new file mode 100644 index 00000000..df0d0cf2 --- /dev/null +++ b/ssr-html/importmap.24d223d14d7f44f5.final.js @@ -0,0 +1 @@ +(t=>{let r="ssr-html",e="__importmap__",s=t[e]=t[e]||{},i=s.imports=s.imports||{},n=new URL(document.currentScript.src).pathname.split("/"+r+"/"),c=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.25759c49.final.js"}).forEach(([t,r])=>{i[c(t)]=n[0]+"/"+c(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-html/importmap.js b/ssr-html/importmap.js new file mode 100644 index 00000000..df0d0cf2 --- /dev/null +++ b/ssr-html/importmap.js @@ -0,0 +1 @@ +(t=>{let r="ssr-html",e="__importmap__",s=t[e]=t[e]||{},i=s.imports=s.imports||{},n=new URL(document.currentScript.src).pathname.split("/"+r+"/"),c=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.25759c49.final.js"}).forEach(([t,r])=>{i[c(t)]=n[0]+"/"+c(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-html/index.html b/ssr-html/index.html new file mode 100644 index 00000000..eb03c6e7 --- /dev/null +++ b/ssr-html/index.html @@ -0,0 +1,55 @@ + + + + + + + + Gez + + + +

+ +
+

Gez

+
+
+ +

计数器

+
1
+

请求地址

+
/
+

图片

+
    +
  • /gez/ssr-html/images/logo.310683d2.final.svg
    + +
  • +
  • /gez/ssr-html/images/starry.d914a632.final.jpg
    + +
  • +
  • /gez/ssr-html/images/cat.ed79ef6b.final.jpeg
    + +
  • +
  • /gez/ssr-html/images/loading.6e6b1b2e.final.gif
    + +
  • +
  • /gez/ssr-html/images/sun.429a7bc5.final.png
    + +
  • +
+ +
+
+ +
+ + + + + + + diff --git a/ssr-html/manifest.json b/ssr-html/manifest.json new file mode 100644 index 00000000..126a28c8 --- /dev/null +++ b/ssr-html/manifest.json @@ -0,0 +1,82 @@ +{ + "name": "ssr-html", + "version": "1.0.0", + "hash": "24d223d14d7f44f5", + "type": "module", + "exports": { + "./src/entry.client": "./src/entry.client.25759c49.final.js" + }, + "buildFiles": [ + "images/logo.310683d2.final.svg", + "src/entry.client.25759c49.final.js", + "chunks/473.584a2be3.final.css", + "images/cat.ed79ef6b.final.jpeg", + "images/sun.429a7bc5.final.png", + "importmap.24d223d14d7f44f5.final.js", + "chunks/222.584a2be3.final.css", + "chunks/222.81e62fc0.final.js", + "importmap.js", + "chunks/830.584a2be3.final.css", + "chunks/473.31938102.final.js", + "images/starry.d914a632.final.jpg", + "chunks/830.da02209d.final.js", + "src/entry.client.ab81ae40.final.css", + "images/loading.6e6b1b2e.final.gif" + ], + "chunks": { + "ssr-html@src/views/home.ts": { + "js": "chunks/222.81e62fc0.final.js", + "css": [ + "chunks/222.584a2be3.final.css" + ], + "resources": [ + "images/cat.ed79ef6b.final.jpeg", + "images/loading.6e6b1b2e.final.gif", + "images/logo.310683d2.final.svg", + "images/starry.d914a632.final.jpg", + "images/sun.429a7bc5.final.png" + ], + "sizes": { + "js": 3911, + "css": 30, + "resource": 187219 + } + }, + "ssr-html@src/views/about.ts": { + "js": "chunks/473.31938102.final.js", + "css": [ + "chunks/473.584a2be3.final.css" + ], + "resources": [], + "sizes": { + "js": 2360, + "css": 30, + "resource": 0 + } + }, + "ssr-html@src/views/not-found.ts": { + "js": "chunks/830.da02209d.final.js", + "css": [ + "chunks/830.584a2be3.final.css" + ], + "resources": [], + "sizes": { + "js": 1687, + "css": 30, + "resource": 0 + } + }, + "ssr-html@src/entry.client.ts": { + "js": "./src/entry.client.25759c49.final.js", + "css": [ + "./src/entry.client.ab81ae40.final.css" + ], + "resources": [], + "sizes": { + "js": 11760, + "css": 44, + "resource": 0 + } + } + } +} \ No newline at end of file diff --git a/ssr-html/src/entry.client.25759c49.final.js b/ssr-html/src/entry.client.25759c49.final.js new file mode 100644 index 00000000..41394306 --- /dev/null +++ b/ssr-html/src/entry.client.25759c49.final.js @@ -0,0 +1 @@ +var e,t,r,n,o,i,a,u={},l={};function c(e){var t=l[e];if(void 0!==t)return t.exports;var r=l[e]={exports:{}};return u[e](r,r.exports,c),r.exports}async function s(e){let t=[{path:"/",page:()=>c.e("222").then(c.bind(c,421)).then(e=>e.default)},{path:"/about",page:()=>c.e("473").then(c.bind(c,896)).then(e=>e.default)}].find(t=>t.path===e);return t?t.page():c.e("830").then(c.bind(c,654)).then(e=>e.default)}c.m=u,c.d=function(e,t){for(var r in t)c.o(t,r)&&!c.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},c.f={},c.e=function(e){return Promise.all(Object.keys(c.f).reduce(function(t,r){return c.f[r](e,t),t},[]))},c.k=function(e){return"chunks/"+e+"."+({222:"584a2be3",473:"584a2be3",830:"584a2be3"})[e]+".final.css"},c.u=function(e){return"chunks/"+e+"."+({222:"81e62fc0",473:"31938102",830:"da02209d"})[e]+".final.js"},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.rv=function(){return"1.1.0"},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),c.p=e+"../"})(),e={},t="__ssr_html__",r=(r,n,i)=>{var a,u,l="",s="",f="",d={},p="--webpack-"+t+"-"+i,h=1,b={};try{!n&&(n=o(i));for(var m=n.sheet.cssRules||n.sheet.rules,v=m.length-1;v>-1&&!a;){var g=m[v--].style;if(!!g)a=g.getPropertyValue(p)}}catch(e){}if(!a&&(a=getComputedStyle(document.head).getPropertyValue(p)),!a)return[];var y,w={},_=a[0],k=_,A=_,P=256;for(u=1;u65535&&(P=256,w={}),k=y;for(u=0,a=A;h;u++)58==(h=a.charCodeAt(u))?(s=l,l=""):47==h?(l=l.replace(/^_/,""),s=s.replace(/^_/,""),f?b.push(s,f,l):d[s]=void 0===d[s]?l:d[s]+" "+l,l="",s="",f=""):38==h?c.r(d):h&&44!=h?92==h?l+=a[++u]:64==h?(f=l,l=""):l+=a[u]:(r[l=l.replace(/^_/,"")]=((e,t,r)=>{!function(e,t){for(var r=0;r{let r="ssr-preact-htm",e="__importmap__",s=t[e]=t[e]||{},c=s.imports=s.imports||{},i=new URL(document.currentScript.src).pathname.split("/"+r+"/"),n=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.9b6dc184.final.js"}).forEach(([t,r])=>{c[n(t)]=i[0]+"/"+n(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-preact-htm/importmap.js b/ssr-preact-htm/importmap.js new file mode 100644 index 00000000..ca3b38af --- /dev/null +++ b/ssr-preact-htm/importmap.js @@ -0,0 +1 @@ +(t=>{let r="ssr-preact-htm",e="__importmap__",s=t[e]=t[e]||{},c=s.imports=s.imports||{},i=new URL(document.currentScript.src).pathname.split("/"+r+"/"),n=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.9b6dc184.final.js"}).forEach(([t,r])=>{c[n(t)]=i[0]+"/"+n(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-preact-htm/index.html b/ssr-preact-htm/index.html new file mode 100644 index 00000000..a4803f48 --- /dev/null +++ b/ssr-preact-htm/index.html @@ -0,0 +1,19 @@ + + + + + + + + Gez + + + +
+

Preact

你好,世界!

+
+ + + + + diff --git a/ssr-preact-htm/manifest.json b/ssr-preact-htm/manifest.json new file mode 100644 index 00000000..df262a3c --- /dev/null +++ b/ssr-preact-htm/manifest.json @@ -0,0 +1,29 @@ +{ + "name": "ssr-preact-htm", + "version": "1.0.0", + "hash": "7b073355c5c2f9d5", + "type": "module", + "exports": { + "./src/entry.client": "./src/entry.client.9b6dc184.final.js" + }, + "buildFiles": [ + "importmap.js", + "src/entry.client.9b6dc184.final.js", + "src/entry.client.191feabb.final.css", + "importmap.7b073355c5c2f9d5.final.js" + ], + "chunks": { + "ssr-preact-htm@src/entry.client.ts": { + "js": "./src/entry.client.9b6dc184.final.js", + "css": [ + "./src/entry.client.191feabb.final.css" + ], + "resources": [], + "sizes": { + "js": 19003, + "css": 39, + "resource": 0 + } + } + } +} \ No newline at end of file diff --git a/ssr-preact-htm/src/entry.client.191feabb.final.css b/ssr-preact-htm/src/entry.client.191feabb.final.css new file mode 100644 index 00000000..98522cfe --- /dev/null +++ b/ssr-preact-htm/src/entry.client.191feabb.final.css @@ -0,0 +1 @@ +body{margin:0;padding:0}head{--webpack-__ssr_preact_htm__-891:&_142} \ No newline at end of file diff --git a/ssr-preact-htm/src/entry.client.9b6dc184.final.js b/ssr-preact-htm/src/entry.client.9b6dc184.final.js new file mode 100644 index 00000000..d6e294eb --- /dev/null +++ b/ssr-preact-htm/src/entry.client.9b6dc184.final.js @@ -0,0 +1,4 @@ +var e={},t={};function n(_){var r=t[_];if(void 0!==r)return r.exports;var o=t[_]={exports:{}};return e[_](o,o.exports,n),o.exports}n.m=e,n.k=function(e){return""+e+".css"},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.rv=function(){return"1.1.0"},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e+"../"})(),_={},r="__ssr_preact_htm__",o="data-webpack-loading",l=function(e,t,_,l,u){var i,s,c="chunk-"+e;if(!l){for(var p=document.getElementsByTagName("link"),f=0;f{var u,i,s="",c="",p="",f={},a="--webpack-"+r+"-"+o,h=1,d={};try{!t&&(t=l(o));for(var v=t.sheet.cssRules||t.sheet.rules,y=v.length-1;y>-1&&!u;){var g=v[y--].style;if(!!g)u=g.getPropertyValue(a)}}catch(e){}if(!u&&(u=getComputedStyle(document.head).getPropertyValue(a)),!u)return;var m,b={},k=u[0],w=k,x=k,P=256;for(i=1;i65535&&(P=256,b={}),w=m;for(i=0,u=x;h;i++)58==(h=u.charCodeAt(i))?(c=s,s=""):47==h?(s=s.replace(/^_/,""),c=c.replace(/^_/,""),p?d.push(c,p,s):f[c]=void 0===f[c]?s:f[c]+" "+s,s="",c="",p=""):38==h?n.r(f):h&&44!=h?92==h?s+=u[++i]:64==h?(p=s,s=""):s+=u[i]:(e[s=s.replace(/^_/,"")]=((e,t,_)=>{!function(e,t){for(var _=0;_2&&(l.children=arguments.length>3?u.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===l[o]&&(l[o]=e.defaultProps[o]);return P(e,l,_,r,null)}function P(e,t,n,_,r){var o={type:e,props:t,key:n,ref:_,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++s:r,__i:-1,__u:0};return null==r&&null!=i.vnode&&i.vnode(o),o}function S(e){return e.children}function C(e,t){this.props=e,this.context=t}function T(e,t){if(null==t)return e.__?T(e.__,e.__i+1):null;for(var n;tt&&c.sort(a));M.__r=0}function U(e,t,n,_,r,o,l,u,s,c,p){var f,a,h,d,v,m=_&&_.__k||g,k=t.length;for(n.__d=s,function(e,t,n){var _,r,o,l,u,s=t.length,c=n.length,p=c,f=0;for(e.__k=[],_=0;_0?P(r.type,r.props,r.key,r.ref?r.ref:null,r.__v):r).__=e,r.__b=e.__b+1,o=null,-1!==(u=r.__i=function(e,t,n,_){var r=e.key,o=e.type,l=n-1,u=n+1,i=t[n];if(null===i||i&&r==i.key&&o===i.type&&0==(131072&i.__u))return n;if(_>(null!=i&&0==(131072&i.__u)?1:0))for(;l>=0||u=0){if((i=t[l])&&0==(131072&i.__u)&&r==i.key&&o===i.type)return l;l--}if(ul?f--:f++,r.__u|=65536))):r=e.__k[_]=null;if(p)for(_=0;_=5&&((r||!e&&5===_)&&(l.push(_,0,r,n),_=6),e&&(l.push(_,e,0,n),_=6)),r=""},i=0;i"===t?(_=1,r=""):r=t+r[0]:o?t===o?o="":r+=t:'"'===t||"'"===t?o=t:">"===t?(u(),_=1):_&&("="===t?(_=5,n=r,r=""):"/"===t&&(_<5||">"===e[i][s+1])?(u(),3===_&&(l=l[0]),_=l,(l=l[0]).push(2,0,_),_=0):" "===t||" "===t||"\n"===t||"\r"===t?(u(),_=2):r+=t),3===_&&"!--"===r&&(_=4,l=l[0])}return u(),l}(e)),t),arguments,[])).length>1?t:t[0]}).bind(x);!function e(t,n){var _,r,o,l,s,c,p;_=t,r=n,o=e,i.__&&i.__(_,r),s=(l="function"==typeof o)?null:o&&o.__k||r.__k,c=[],p=[],L(r,_=(!l&&o||r).__k=x(S,null,[_]),s||y,y,r.namespaceURI,!l&&o?[o]:s?null:r.firstChild?u.call(r.childNodes):null,c,!l&&o?o:s?s.__e:r.firstChild,l,p),N(c,_,p)}(I`
+

Preact

+

你好,世界!

+
`,document.getElementById("app")); \ No newline at end of file diff --git a/ssr-vue2-host/chunks/324.0d155c87.final.css b/ssr-vue2-host/chunks/324.0d155c87.final.css new file mode 100644 index 00000000..2b0a72b2 --- /dev/null +++ b/ssr-vue2-host/chunks/324.0d155c87.final.css @@ -0,0 +1 @@ +button[data-v-c46f67c8]{border-radius:5px;margin:0;padding:5px 10px}.tip[data-v-418edb39]{background:#efe;margin:0;padding:10px}div,body,html,h2{margin:0;padding:0}head{--webpack-__ssr_vue__host__-324:&_920,Ā52ą_11ĄĆ9ĉ78ďĀ142} \ No newline at end of file diff --git a/ssr-vue2-host/chunks/324.456d5722.final.js b/ssr-vue2-host/chunks/324.456d5722.final.js new file mode 100644 index 00000000..92ac8146 --- /dev/null +++ b/ssr-vue2-host/chunks/324.456d5722.final.js @@ -0,0 +1 @@ +export const ids=["324"];export const modules={796:function(t,e,n){n.r(e),n.d(e,{default:()=>l});var s=n("946"),o=n("527");function r(t,e,n,s,o,r,i,a){var l,_="function"==typeof t?t.options:t;if(e&&(_.render=e,_.staticRenderFns=n,_._compiled=!0),s&&(_.functional=!0),r&&(_._scopeId="data-v-"+r),i?(l=function(t){!(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)&&"undefined"!=typeof __VUE_SSR_CONTEXT__&&(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},_._ssrRegister=l):o&&(l=a?function(){o.call(this,(_.functional?this.parent:this).$root.$options.shadowRoot)}:o),l){if(_.functional){_._injectStyles=l;var u=_.render;_.render=function(t,e){return l.call(e),u(t,e)}}else{var c=_.beforeCreate;_.beforeCreate=c?[].concat(c,l):[l]}}return{exports:t,options:_}}n("52");let i=r({},function(){return(0,this._self._c)("button",[this._v("这是自己服务的组件")])},[],!1,null,"c46f67c8",null).exports,a=(0,s.defineComponent)({__name:"app",setup:t=>({__sfc:!0,layout:o.default,Next:i})});n("59"),n("142");let l=r(a,function(){var t=this._self._c,e=this._self._setupProxy;return t("div",{staticClass:"box"},[t(e.layout,[this._v("\n Hello world!\n\n "),t("br"),this._v(" "),t(e.Next),this._v(" "),t("p",{staticClass:"tip"},[this._v("\n 我的 "),t("a",{attrs:{href:"https://github.com/dp-os/gez/blob/master/examples/ssr-vue2-host/src/entry.node.ts",rel:"noopener",target:"_blank"}},[this._v("Vue")]),this._v(" 实例,被指向到了 ssr-vue2-remote/vue\n ")])],1)],1)},[],!1,null,"418edb39",null).exports}}; \ No newline at end of file diff --git a/ssr-vue2-host/importmap.e001fcacb2721197.final.js b/ssr-vue2-host/importmap.e001fcacb2721197.final.js new file mode 100644 index 00000000..a285e47d --- /dev/null +++ b/ssr-vue2-host/importmap.e001fcacb2721197.final.js @@ -0,0 +1 @@ +(t=>{let r="ssr-vue2-host",s="__importmap__",e=t[s]=t[s]||{},c=e.imports=e.imports||{},i=new URL(document.currentScript.src).pathname.split("/"+r+"/"),n=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.9cab921e.final.js"}).forEach(([t,r])=>{c[n(t)]=i[0]+"/"+n(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-vue2-host/importmap.js b/ssr-vue2-host/importmap.js new file mode 100644 index 00000000..a285e47d --- /dev/null +++ b/ssr-vue2-host/importmap.js @@ -0,0 +1 @@ +(t=>{let r="ssr-vue2-host",s="__importmap__",e=t[s]=t[s]||{},c=e.imports=e.imports||{},i=new URL(document.currentScript.src).pathname.split("/"+r+"/"),n=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.9cab921e.final.js"}).forEach(([t,r])=>{c[n(t)]=i[0]+"/"+n(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-vue2-host/index.html b/ssr-vue2-host/index.html new file mode 100644 index 00000000..4fd51c3a --- /dev/null +++ b/ssr-vue2-host/index.html @@ -0,0 +1,24 @@ + + + + + + + + Gez + + + +
+ 我是一个来自于 ssr-vue2-remote 服务的组件。 +
+ Hello world! + +

+ 我的 Vue 实例,被指向到了 ssr-vue2-remote/vue +

+ + + + + diff --git a/ssr-vue2-host/manifest.json b/ssr-vue2-host/manifest.json new file mode 100644 index 00000000..e8e10002 --- /dev/null +++ b/ssr-vue2-host/manifest.json @@ -0,0 +1,40 @@ +{ + "name": "ssr-vue2-host", + "version": "1.0.0", + "hash": "e001fcacb2721197", + "type": "module", + "exports": { + "./src/entry.client": "./src/entry.client.9cab921e.final.js" + }, + "buildFiles": [ + "importmap.js", + "chunks/324.456d5722.final.js", + "src/entry.client.9cab921e.final.js", + "chunks/324.0d155c87.final.css", + "importmap.e001fcacb2721197.final.js" + ], + "chunks": { + "ssr-vue2-host@src/app.vue": { + "js": "chunks/324.456d5722.final.js", + "css": [ + "chunks/324.0d155c87.final.css" + ], + "resources": [], + "sizes": { + "js": 7903, + "css": 2809, + "resource": 0 + } + }, + "ssr-vue2-host@src/entry.client.ts": { + "js": "./src/entry.client.9cab921e.final.js", + "css": [], + "resources": [], + "sizes": { + "js": 11168, + "css": 0, + "resource": 0 + } + } + } +} \ No newline at end of file diff --git a/ssr-vue2-host/src/entry.client.9cab921e.final.js b/ssr-vue2-host/src/entry.client.9cab921e.final.js new file mode 100644 index 00000000..ce7e7a4d --- /dev/null +++ b/ssr-vue2-host/src/entry.client.9cab921e.final.js @@ -0,0 +1 @@ +import*as e from"ssr-vue2-remote/npm/vue";import*as t from"ssr-vue2-remote/src/components/layout.vue";var r,o,n,i,a,u,s,c={946:function(t){t.exports=e},527:function(e){e.exports=t}},l={};function f(e){var t=l[e];if(void 0!==t)return t.exports;var r=l[e]={exports:{}};return c[e](r,r.exports,f),r.exports}f.m=c,f.d=function(e,t){for(var r in t)f.o(t,r)&&!f.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce(function(t,r){return f.f[r](e,t),t},[]))},f.k=function(e){return"chunks/"+e+".0d155c87.final.css"},f.u=function(e){return"chunks/"+e+".456d5722.final.js"},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.rv=function(){return"1.1.0"},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),f.p=e+"../"})(),r={891:0},o="__ssr_vue__host__",n=(e,t,n)=>{var i,u,s="",c="",l="",p={},d="--webpack-"+o+"-"+n,h=1,m={};try{!t&&(t=a(n));for(var v=t.sheet.cssRules||t.sheet.rules,b=v.length-1;b>-1&&!i;){var y=v[b--].style;if(!!y)i=y.getPropertyValue(d)}}catch(e){}if(!i&&(i=getComputedStyle(document.head).getPropertyValue(d)),!i)return[];var g,k={},w=i[0],A=w,_=w,P=256;for(u=1;u65535&&(P=256,k={}),A=g;for(u=0,i=_;h;u++)58==(h=i.charCodeAt(u))?(c=s,s=""):47==h?(s=s.replace(/^_/,""),c=c.replace(/^_/,""),l?m.push(c,l,s):p[c]=void 0===p[c]?s:p[c]+" "+s,s="",c="",l=""):38==h?f.r(p):h&&44!=h?92==h?s+=i[++u]:64==h?(l=s,s=""):s+=i[u]:(e[s=s.replace(/^_/,"")]=((e,t,r)=>{!function(e,t){for(var r=0;rf.e("324").then(f.bind(f,796)));({app:new p.default({render:e=>e(d)})}).app.$mount('[data-server-rendered="true"]'); \ No newline at end of file diff --git a/ssr-vue2-remote/chunks/44.74223083.final.js b/ssr-vue2-remote/chunks/44.74223083.final.js new file mode 100644 index 00000000..67ddb536 --- /dev/null +++ b/ssr-vue2-remote/chunks/44.74223083.final.js @@ -0,0 +1 @@ +export const ids=["44"];export const modules={92:function(t,e,s){s.d(e,{Z:function(){return n}});function n(t,e,s,n,i,o,r,a){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId="data-v-"+o),r?(l=function(t){!(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)&&"undefined"!=typeof __VUE_SSR_CONTEXT__&&(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=l):i&&(l=a?function(){i.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:i),l){if(u.functional){u._injectStyles=l;var _=u.render;u.render=function(t,e){return l.call(e),_(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,l):[l]}}return{exports:t,options:u}}},69:function(t,e,s){t.exports=s.p+"images/logo.310683d2.final.svg"},166:function(t,e,s){s.r(e),s.d(e,{default:()=>u});var n=s("946"),i=s("910");let o=(0,n.defineComponent)({__name:"logo",props:{width:null,height:null},setup:t=>({__sfc:!0})});s("205");var r=s("92");let a=(0,r.Z)(o,function(){var t=this._self._c;return this._self._setupProxy,t("div",{staticClass:"logo"},[t("img",{attrs:{width:this.width,height:this.height,src:s(69)}})])},[],!1,null,"0e165eca",null).exports,l=(0,n.defineComponent)({__name:"app",setup(t){let e=(0,n.ref)(new Date().toISOString());return(0,n.onMounted)(()=>{let t=setInterval(()=>{e.value=new Date().toISOString()},1e3);(0,n.onBeforeUnmount)(()=>{clearInterval(t)})}),{__sfc:!0,time:e,layout:i.Z,Logo:a}}});s("282");let u=(0,r.Z)(l,function(){var t=this._self._c,e=this._self._setupProxy;return t(e.layout,[t(e.Logo,{attrs:{width:120,height:60}}),this._v(" "),t("p",[this._v("\n Time: "+this._s(e.time)+"\n ")])],1)},[],!1,null,null,null).exports},910:function(t,e,s){s.d(e,{Z:()=>i});let n=(0,s("946").defineComponent)({__name:"layout",setup:t=>({__sfc:!0})});s("490");let i=(0,s("92").Z)(n,function(){var t=this._self._c;return this._self._setupProxy,t("div",{staticClass:"layout"},[this._m(0),this._v(" "),this._m(1),this._v(" "),t("main",[this._t("default")],2)])},[function(){var t=this._self._c;return this._self._setupProxy,t("div",{staticClass:"tip"},[this._v("\n 我是一个来自于 "),t("a",{staticClass:"menu-list-item-link",attrs:{href:"https://github.com/dp-os/gez/blob/master/examples/ssr-vue2-remote/src/components/layout.vue",rel:"noopener",target:"_blank"}},[this._v("ssr-vue2-remote")]),this._v(" 服务的组件。\n ")])},function(){var t=this._self._c;return this._self._setupProxy,t("header",{staticClass:"menu-list"},[t("div",{staticClass:"menu-list-item"},[t("a",{staticClass:"menu-list-item-link",attrs:{href:"https://github.com/dp-os/gez",target:"_blank"}},[this._v("github")])]),this._v(" "),t("div",{staticClass:"menu-list-item"},[t("a",{staticClass:"menu-list-item-link",attrs:{href:"https://www.npmjs.com/package/@gez/core",target:"_blank"}},[this._v("npm")])])])}],!1,null,"b2ae6f88",null).exports}}; \ No newline at end of file diff --git a/ssr-vue2-remote/chunks/44.8b723d12.final.css b/ssr-vue2-remote/chunks/44.8b723d12.final.css new file mode 100644 index 00000000..cfdfb4b3 --- /dev/null +++ b/ssr-vue2-remote/chunks/44.8b723d12.final.css @@ -0,0 +1 @@ +.tip[data-v-b2ae6f88]{background:#efefef;padding:10px}.tip a[data-v-b2ae6f88]{color:#00f}.menu-list[data-v-b2ae6f88]{display:flex}.menu-list-item[data-v-b2ae6f88]{background:#efefef;border-radius:5px;margin:5px;padding:10px}.menu-list-item[data-v-b2ae6f88]:hover{background:#00f}.menu-list-item:hover a[data-v-b2ae6f88]{color:#fff}.menu-list-item-link[data-v-b2ae6f88]{color:#000;text-decoration:none}.logo[data-v-0e165eca]{border:1px solid red;padding:5px}div,body,html,h2{margin:0;padding:0}head{--webpack-__ssr_vue__remote__-44:&_192,Ā490ą_Ĉ3Ċ205Ď6ĉĀ282} \ No newline at end of file diff --git a/ssr-vue2-remote/images/logo.310683d2.final.svg b/ssr-vue2-remote/images/logo.310683d2.final.svg new file mode 100644 index 00000000..fef098a6 --- /dev/null +++ b/ssr-vue2-remote/images/logo.310683d2.final.svg @@ -0,0 +1,3 @@ + + Gez + \ No newline at end of file diff --git a/ssr-vue2-remote/importmap.c32d2b54c2994661.final.js b/ssr-vue2-remote/importmap.c32d2b54c2994661.final.js new file mode 100644 index 00000000..8f3db112 --- /dev/null +++ b/ssr-vue2-remote/importmap.c32d2b54c2994661.final.js @@ -0,0 +1 @@ +(e=>{let t="ssr-vue2-remote",n="__importmap__",s=e[n]=e[n]||{},c=s.imports=s.imports||{},r=new URL(document.currentScript.src).pathname.split("/"+t+"/"),a=e=>t+e.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.78e281fd.final.js","./src/components/layout.vue":"./src/components/layout.vue.782be1f1.final.js","./npm/vue":"./npm/vue.d7ca5d88.final.js"}).forEach(([e,t])=>{c[a(e)]=r[0]+"/"+a(t)})})(globalThis); \ No newline at end of file diff --git a/ssr-vue2-remote/importmap.js b/ssr-vue2-remote/importmap.js new file mode 100644 index 00000000..8f3db112 --- /dev/null +++ b/ssr-vue2-remote/importmap.js @@ -0,0 +1 @@ +(e=>{let t="ssr-vue2-remote",n="__importmap__",s=e[n]=e[n]||{},c=s.imports=s.imports||{},r=new URL(document.currentScript.src).pathname.split("/"+t+"/"),a=e=>t+e.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.78e281fd.final.js","./src/components/layout.vue":"./src/components/layout.vue.782be1f1.final.js","./npm/vue":"./npm/vue.d7ca5d88.final.js"}).forEach(([e,t])=>{c[a(e)]=r[0]+"/"+a(t)})})(globalThis); \ No newline at end of file diff --git a/ssr-vue2-remote/index.html b/ssr-vue2-remote/index.html new file mode 100644 index 00000000..750679ed --- /dev/null +++ b/ssr-vue2-remote/index.html @@ -0,0 +1,21 @@ + + + + + + + + Gez + + + +
+ 我是一个来自于 ssr-vue2-remote 服务的组件。 +

+ Time: 2024-11-17T14:48:30.218Z +

+ + + + + diff --git a/ssr-vue2-remote/manifest.json b/ssr-vue2-remote/manifest.json new file mode 100644 index 00000000..9d06d9d1 --- /dev/null +++ b/ssr-vue2-remote/manifest.json @@ -0,0 +1,73 @@ +{ + "name": "ssr-vue2-remote", + "version": "1.0.0", + "hash": "c32d2b54c2994661", + "type": "module", + "exports": { + "./src/entry.client": "./src/entry.client.78e281fd.final.js", + "./src/components/layout.vue": "./src/components/layout.vue.782be1f1.final.js", + "./npm/vue": "./npm/vue.d7ca5d88.final.js" + }, + "buildFiles": [ + "images/logo.310683d2.final.svg", + "npm/vue.d7ca5d88.final.js", + "importmap.c32d2b54c2994661.final.js", + "src/components/layout.vue.782be1f1.final.js", + "chunks/44.74223083.final.js", + "importmap.js", + "src/components/layout.vue.16eacfd2.final.css", + "chunks/44.8b723d12.final.css", + "src/entry.client.ee65e65a.final.css", + "src/entry.client.78e281fd.final.js" + ], + "chunks": { + "ssr-vue2-remote@src/app.vue": { + "js": "chunks/44.74223083.final.js", + "css": [ + "chunks/44.8b723d12.final.css" + ], + "resources": [ + "images/logo.310683d2.final.svg" + ], + "sizes": { + "js": 13854, + "css": 3223, + "resource": 188 + } + }, + "ssr-vue2-remote@src/components/layout.vue": { + "js": "./src/components/layout.vue.782be1f1.final.js", + "css": [ + "./src/components/layout.vue.16eacfd2.final.css" + ], + "resources": [], + "sizes": { + "js": 12960, + "css": 1368, + "resource": 0 + } + }, + "ssr-vue2-remote@src/entry.client.ts": { + "js": "./src/entry.client.78e281fd.final.js", + "css": [ + "./src/entry.client.ee65e65a.final.css" + ], + "resources": [], + "sizes": { + "js": 11173, + "css": 63, + "resource": 0 + } + }, + "ssr-vue2-remote@../../node_modules/.pnpm/vue@2.7.16/node_modules/vue/dist/vue.esm.js": { + "js": "./npm/vue.d7ca5d88.final.js", + "css": [], + "resources": [], + "sizes": { + "js": 419844, + "css": 0, + "resource": 0 + } + } + } +} \ No newline at end of file diff --git a/ssr-vue2-remote/npm/vue.d7ca5d88.final.js b/ssr-vue2-remote/npm/vue.d7ca5d88.final.js new file mode 100644 index 00000000..0c4dc6de --- /dev/null +++ b/ssr-vue2-remote/npm/vue.d7ca5d88.final.js @@ -0,0 +1 @@ +var t,e,n,r,o,i,a,s,c,u,l,f,p,d,v,h,_,m,g,y,b,w,x,$,k,C,S,O,T,A,j,E,P,R,N={},D={};function M(t){var e=D[t];if(void 0!==e)return e.exports;var n=D[t]={exports:{}};return N[t](n,n.exports,M),n.exports}M.d=function(t,e){for(var n in e)M.o(e,n)&&!M.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},M.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),M.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},M.rv=function(){return"1.1.0"},M.ruid="bundler=rspack@1.1.0";var I={};M.d(I,{$y:function(){return ep},Ah:function(){return re},B:function(){return nu},BK:function(){return eC},Bj:function(){return nc},EB:function(){return nf},FN:function(){return tK},Fl:function(){return ej},HA:function(){return e7},IU:function(){return function t(e){var n=e&&e.__v_raw;return n?t(n):e}},IV:function(){return ea},JJ:function(){return nF},Jd:function(){return rt},OT:function(){return eO},Ob:function(){return nD},PG:function(){return el},RC:function(){return n9},Rh:function(){return nN},Rr:function(){return e8},SU:function(){return ew},Um:function(){return ec},Vh:function(){return eS},WL:function(){return ex},X3:function(){return ed},XI:function(){return eg},Xl:function(){return ev},Xn:function(){return n7},Y3:function(){return n1},YP:function(){return nI},YS:function(){return eA},Yq:function(){return ra},ZM:function(){return ek},ZP:function(){return rJ},aZ:function(){return rl},bT:function(){return ri},bv:function(){return n6},d1:function(){return rc},dl:function(){return rn},dq:function(){return e_},f3:function(){return nU},fb:function(){return n2},h:function(){return nH},i8:function(){return ru},iH:function(){return em},ic:function(){return n5},l1:function(){return e6},m0:function(){return nR},nZ:function(){return nl},oR:function(){return eb},qj:function(){return es},se:function(){return rr},sj:function(){return n3},t8:function(){return ei},u_:function(){return nt},vl:function(){return ro},wF:function(){return n8},yT:function(){return ef}});var L=Object.freeze({}),F=Array.isArray;function B(t){return null==t}function U(t){return null!=t}function H(t){return!0===t}function V(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function z(t){return"function"==typeof t}function J(t){return null!==t&&"object"==typeof t}var K=Object.prototype.toString;function q(t){return"[object Object]"===K.call(t)}function Z(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function W(t){return U(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function X(t){return null==t?"":Array.isArray(t)||q(t)&&t.toString===K?JSON.stringify(t,Y,2):String(t)}function Y(t,e){return e&&e.__v_isRef?e.value:e}function G(t){var e=parseFloat(t);return isNaN(e)?t:e}function Q(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(r,1)}}var tr=Object.prototype.hasOwnProperty;function to(t,e){return tr.call(t,e)}function ti(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var ta=/-(\w)/g,ts=ti(function(t){return t.replace(ta,function(t,e){return e?e.toUpperCase():""})}),tc=ti(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),tu=/\B([A-Z])/g,tl=ti(function(t){return t.replace(tu,"-$1").toLowerCase()}),tf=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function tp(t,e){e=e||0;for(var n=t.length-e,r=Array(n);n--;)r[n]=t[n+e];return r}function td(t,e){for(var n in e)t[n]=e[n];return t}function tv(t){for(var e={},n=0;n0,tD=tP&&tP.indexOf("edge/")>0;tP&&tP.indexOf("android");var tM=tP&&/iphone|ipad|ipod|ios/.test(tP);tP&&/chrome\/\d+/.test(tP),tP&&/phantomjs/.test(tP);var tI=tP&&tP.match(/firefox\/(\d+)/),tL={}.watch,tF=!1;if(tE)try{var tB={};Object.defineProperty(tB,"passive",{get:function(){tF=!0}}),window.addEventListener("test-passive",null,tB)}catch(t){}var tU=function(){return void 0===c&&(c=!tE&&void 0!==M.g&&M.g.process&&"server"===M.g.process.env.VUE_ENV),c},tH=tE&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function tV(t){return"function"==typeof t&&/native code/.test(t.toString())}var tz="undefined"!=typeof Symbol&&tV(Symbol)&&"undefined"!=typeof Reflect&&tV(Reflect.ownKeys);u="undefined"!=typeof Set&&tV(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var tJ=null;function tK(){return tJ&&{proxy:tJ}}function tq(t){void 0===t&&(t=null),!t&&tJ&&tJ._scope.off(),tJ=t,t&&t._scope.on()}var tZ=function(){function t(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),tW=function(t){void 0===t&&(t="");var e=new tZ;return e.text=t,e.isComment=!0,e};function tX(t){return new tZ(void 0,void 0,void 0,String(t))}function tY(t){var e=new tZ(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}"function"==typeof SuppressedError&&SuppressedError;var tG=0,tQ=[],t0=function(){for(var t=0;t0&&(eI((o=t(o,"".concat(n||"","_").concat(r)))[0])&&eI(a)&&(s[i]=tX(a.text+o[0].text),o.shift()),s.push.apply(s,o)):V(o)?eI(a)?s[i]=tX(a.text+o):""!==o&&s.push(tX(o)):eI(o)&&eI(a)?s[i]=tX(a.text+o.text):(H(e._isVList)&&U(o.tag)&&B(o.key)&&U(n)&&(o.key="__vlist".concat(n,"_").concat(r,"__")),s.push(o)));return s}(t):void 0}function eI(t){return U(t)&&U(t.text)&&!1===t.isComment}function eL(t,e,n,r,o,i){return(F(n)||V(n))&&(o=r,r=n,n=void 0),H(i)&&(o=2),function(t,e,n,r,o){if(U(n)&&U(n.__ob__))return tW();if(U(n)&&U(n.is)&&(e=n.is),!e)return tW();if(F(r)&&z(r[0])&&((n=n||{}).scopedSlots={default:r[0]},r.length=0),2===o?r=eM(r):1===o&&(r=function(t){for(var e=0;e0,a=e?!!e.$stable:!i,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;else if(a&&r&&r!==L&&s===r.$key&&!i&&!r.$hasNormal)return r;else for(var c in o={},e)e[c]&&"$"!==c[0]&&(o[c]=function(t,e,n,r){var o=function(){var e=tJ;tq(t);var n=arguments.length?r.apply(null,arguments):r({}),o=(n=n&&"object"==typeof n&&!F(n)?[n]:eM(n))&&n[0];return tq(e),n&&(!o||1===n.length&&o.isComment&&!e1(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}(t,n,c,e[c]))}else o={};for(var u in n)!(u in o)&&(o[u]=function(t,e){return function(){return t[e]}}(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),tT(o,"$stable",a),tT(o,"$key",s),tT(o,"$hasNormal",i),o}function e3(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};tT(e,"_v_attr_proxy",!0),e9(e,t.$attrs,L,t,"$attrs")}return t._attrsProxy},get listeners(){return!t._listenersProxy&&e9(t._listenersProxy={},t.$listeners,L,t,"$listeners"),t._listenersProxy},get slots(){return function(t){return!t._slotsProxy&&e4(t._slotsProxy={},t.$scopedSlots),t._slotsProxy}(t)},emit:tf(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach(function(n){return e$(t,e,n)})}}}function e9(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,function(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}(t,a,r,o));for(var a in t)!(a in e)&&(i=!0,delete t[a]);return i}function e4(t,e){for(var n in e)t[n]=e[n];for(var n in t)!(n in e)&&delete t[n]}function e8(){return e5().slots}function e6(){return e5().attrs}function e7(){return e5().listeners}function e5(){var t=tJ;return t._setupContext||(t._setupContext=e3(t))}function nt(t,e){var n=F(t)?t.reduce(function(t,e){return t[e]={},t},{}):t;for(var r in e){var o=n[r];o?F(o)||z(o)?n[r]={type:o,default:e[r]}:o.default=e[r]:null===o&&(n[r]={default:e[r]})}return n}var ne=null;function nn(t,e){return(t.__esModule||tz&&"Module"===t[Symbol.toStringTag])&&(t=t.default),J(t)?e.extend(t):t}function nr(t){if(F(t))for(var e=0;edocument.createEvent("Event").timeStamp&&(nk=function(){return nC.now()})}var nS=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return -1;return t.id-e.id};function nO(){for(n$=nk(),nw=!0,nm.sort(nS),nx=0;nxnx&&nm[n].id>t.id;)n--;nm.splice(n+1,0,t)}else nm.push(t);if(!nb){nb=!0;n1(nO)}}}var nA="watcher",nj="".concat(nA," callback"),nE="".concat(nA," getter"),nP="".concat(nA," cleanup");function nR(t,e){return nL(t,null,e)}function nN(t,e){return nL(t,null,{flush:"post"})}function nD(t,e){return nL(t,null,{flush:"sync"})}var nM={};function nI(t,e,n){return nL(t,e,n)}function nL(t,e,n){var r,o,i=void 0===n?L:n,a=i.immediate,s=i.deep,c=i.flush,u=void 0===c?"pre":c;i.onTrack,i.onTrigger;var l=tJ,f=function(t,e,n){void 0===n&&(n=null);var r=nz(t,null,n,l,e);return s&&r&&r.__ob__&&r.__ob__.dep.depend(),r},p=!1,d=!1;if(e_(t)?(r=function(){return t.value},p=ef(t)):el(t)?(r=function(){return t.__ob__.dep.depend(),t},s=!0):F(t)?(d=!0,p=t.some(function(t){return el(t)||ef(t)}),r=function(){return t.map(function(t){if(e_(t))return t.value;if(el(t))return t.__ob__.dep.depend(),rp(t);if(z(t))return f(t,nE)})}):r=z(t)?e?function(){return f(t,nE)}:function(){if(!l||!l._isDestroyed)return o&&o(),f(t,nA,[h])}:th,e&&s){var v=r;r=function(){return rp(v())}}var h=function(t){o=_.onStop=function(){f(t,nP)}};if(tU())return h=th,e?a&&f(e,nj,[r(),d?[]:void 0,h]):r(),th;var _=new rv(tJ,r,th,{lazy:!0});_.noRecurse=!e;var m=d?[]:nM;return _.run=function(){if(!!_.active)if(e){var t=_.get();(s||p||(d?t.some(function(t,e){return tw(t,m[e])}):tw(t,m)))&&(o&&o(),f(e,nj,[t,m===nM?void 0:m,h]),m=t)}else _.get()},"sync"===u?_.update=_.run:"post"===u?(_.post=!0,_.update=function(){return nT(_)}):_.update=function(){if(l&&l===tJ&&!l._isMounted){var t=l._preWatchers||(l._preWatchers=[]);0>t.indexOf(_)&&t.push(_)}else nT(_)},e?a?_.run():m=_.get():"post"===u&&l?l.$once("hook:mounted",function(){return _.get()}):_.get(),function(){_.teardown()}}function nF(t,e){if(tJ)nB(tJ)[t]=e}function nB(t){var e=t._provided,n=t.$parent&&t.$parent._provided;return n===e?t._provided=Object.create(n):e}function nU(t,e,n){void 0===n&&(n=!1);var r=tJ;if(r){var o=r.$parent&&r.$parent._provided;if(o&&t in o)return o[t];if(arguments.length>1)return n&&z(e)?e.call(r):e}}function nH(t,e,n){return eL(tJ,t,e,n,2,!0)}function nV(t,e,n){t3();try{if(e){for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i-1){if(i&&!to(o,"default"))a=!1;else if(""===a||a===tl(t)){var c=rz(String,o.type);(c<0||s1?tp(e):e;for(var n=tp(arguments,1),r='event handler for "'.concat(t,'"'),o=0,i=e.length;o-1;if("string"==typeof t)return t.split(",").indexOf(e)>-1;if(n=t,"[object RegExp]"===K.call(n))return t.test(e);return!1}function rZ(t,e){var n=t.cache,r=t.keys,o=t._vnode,i=t.$vnode;for(var a in n){var s=n[a];if(s){var c=s.name;c&&!e(c)&&rW(n,a,r,o)}}i.componentOptions.children=void 0}function rW(t,e,n,r){var o=t[e];o&&(!r||o.tag!==r.tag)&&o.componentInstance.$destroy(),t[e]=null,tn(n,e)}var rX=[String,RegExp,Array],rY={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:rX,exclude:rX,max:[String,Number]},methods:{cacheVNode:function(){var t=this.cache,e=this.keys,n=this.vnodeToCache,r=this.keyToCache;if(n){var o=n.tag,i=n.componentInstance,a=n.componentOptions;t[r]={name:rK(a),tag:o,componentInstance:i},e.push(r),this.max&&e.length>parseInt(this.max)&&rW(t,e[0],e,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)rW(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",function(e){rZ(t,function(t){return rq(e,t)})}),this.$watch("exclude",function(e){rZ(t,function(t){return!rq(e,t)})})},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=nr(t),n=e&&e.componentOptions;if(n){var r=rK(n),o=this.include,i=this.exclude;if(o&&(!r||!rq(o,r))||i&&r&&rq(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,tn(s,c),s.push(c)):(this.vnodeToCache=e,this.keyToCache=c),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e,n,r,o={};o.get=function(){return tC};Object.defineProperty(t,"config",o),t.util={warn:th,extend:td,mergeOptions:rL,defineReactive:eo},t.set=ei,t.delete=ea,t.nextTick=n1,t.observable=function(t){return er(t),t},t.options=Object.create(null),t$.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,td(t.options.components,rY),t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=tp(arguments,1);return n.unshift(this),z(t.install)?t.install.apply(t,n):z(t)&&t.apply(null,n),e.push(t),this},t.mixin=function(t){return this.options=rL(this.options,t),this},(e=t).cid=0,n=1,e.extend=function(t){t=t||{};var e=this,r=e.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=rT(t)||rT(e.options),a=function(t){this._init(t)};return a.prototype=Object.create(e.prototype),a.prototype.constructor=a,a.cid=n++,a.options=rL(e.options,t),a.super=e,a.options.props&&function(t){var e=t.options.props;for(var n in e)r_(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)rg(t.prototype,n,e[n])}(a),a.extend=e.extend,a.mixin=e.mixin,a.use=e.use,t$.forEach(function(t){a[t]=e[t]}),i&&(a.options.components[i]=a),a.superOptions=e.options,a.extendOptions=t,a.sealedOptions=td({},a.options),o[r]=a,a},r=t,t$.forEach(function(t){r[t]=function(e,n){return n?("component"===t&&q(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&z(n)&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}})}(rJ),Object.defineProperty(rJ.prototype,"$isServer",{get:tU}),Object.defineProperty(rJ.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(rJ,"FunctionalRenderContext",{value:rC}),rJ.version=ru;var rG=Q("style,class"),rQ=Q("input,textarea,option,select,progress"),r0=function(t,e,n){return"value"===n&&rQ(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},r1=Q("contenteditable,draggable,spellcheck"),r2=Q("events,caret,typing,plaintext-only"),r3=Q("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),r9="http://www.w3.org/1999/xlink",r4=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},r8=function(t){return r4(t)?t.slice(6,t.length):""},r6=function(t){return null==t||!1===t};function r7(t,e){return{staticClass:r5(t.staticClass,e.staticClass),class:U(t.class)?[t.class,e.class]:e.class}}function r5(t,e){return t?e?t+" "+e:t:e||""}function ot(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r-1)ox(t,e,n);else if(r3(e))r6(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n));else if(r1(e)){var o,i;t.setAttribute(e,(o=e,r6(i=n)||"false"===i?"false":"contenteditable"===o&&r2(i)?i:"true"))}else r4(e)?r6(n)?t.removeAttributeNS(r9,r8(e)):t.setAttributeNS(r9,e,n):ox(t,e,n)}function ox(t,e,n){if(r6(n))t.removeAttribute(e);else{if(tR&&!tN&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}function o$(t,e){var n=e.elm,r=e.data,o=t.data;if(!(B(r.staticClass)&&B(r.class)&&(B(o)||B(o.staticClass)&&B(o.class)))){var i=function(t){for(var e=t.data,n=t,r=t;U(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=r7(r.data,e));for(;U(n=n.parent);)n&&n.data&&(e=r7(e,n.data));return function(t,e){return U(t)||U(e)?r5(t,ot(e)):""}(e.staticClass,e.class)}(e),a=n._transitionClasses;U(a)&&(i=r5(i,ot(a))),i!==n._prevClass&&(n.setAttribute("class",i),n._prevClass=i)}}var ok=/[\w).+\-_$\]]/;function oC(t){var e,n,r,o,i,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r=0&&" "===(h=t.charAt(v));v--);(!h||!ok.test(h))&&(u=!0)}}else void 0===o?(d=r+1,o=t.slice(0,r).trim()):_();function _(){(i||(i=[])).push(t.slice(d,r).trim()),d=r+1}if(void 0===o?o=t.slice(0,r).trim():0!==d&&_(),i)for(r=0;rt.indexOf("[")||t.lastIndexOf("]")-1?{exp:t.slice(0,_),key:'"'+t.slice(_+1)+'"'}:{exp:t,key:null};for(v=t,_=m=g=0;!oB();)oU(h=oF())?oH(h):91===h&&function(t){var e=1;for(m=_;!(_>=d);){if(oU(t=oF())){oH(t);continue}if(91===t&&e++,93===t&&e--,0===e){g=_;break}}}(h);return{exp:t.slice(0,m),key:t.slice(m+1,g)}}(t);return null===n.key?"".concat(t,"=").concat(e):"$set(".concat(n.exp,", ").concat(n.key,", ").concat(e,")")}function oF(){return v.charCodeAt(++_)}function oB(){return _>=d}function oU(t){return 34===t||39===t}function oH(t){for(var e=t;!(_>=d)&&(t=oF())!==e;);}function oV(t,e,n){var r=y;return function o(){var i=e.apply(null,arguments);null!==i&&oK(t,o,n,r)}}var oz=nq&&!(tI&&53>=Number(tI[1]));function oJ(t,e,n,r){if(oz){var o=n$,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}y.addEventListener(t,e,tF?{capture:n,passive:r}:n)}function oK(t,e,n,r){(r||y).removeEventListener(t,e._wrapper||e,n)}function oq(t,e){if(!(B(t.data.on)&&B(e.data.on))){var n=e.data.on||{},r=t.data.on||{};y=e.elm||t.elm,!function(t){if(U(t.__r)){var e=tR?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}U(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(n),eR(n,r,oJ,oK,oV,e.context),y=void 0}}function oZ(t,e){if(!(B(t.data.domProps)&&B(e.data.domProps))){var n,r,o=e.elm,i=t.data.domProps||{},a=e.data.domProps||{};for(n in(U(a.__ob__)||H(a._v_attr_proxy))&&(a=e.data.domProps=td({},a)),i)!(n in a)&&(o[n]="");for(n in a){if(r=a[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===i[n])continue;1===o.childNodes.length&&o.removeChild(o.childNodes[0])}if("value"===n&&"PROGRESS"!==o.tagName){o._value=r;var s=B(r)?"":String(r);(function(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(U(r)){if(r.number)return G(n)!==G(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))})(o,s)&&(o.value=s)}else if("innerHTML"===n&&or(o.tagName)&&B(o.innerHTML)){(b=b||document.createElement("div")).innerHTML="".concat(r,"");for(var c=b.firstChild;o.firstChild;)o.removeChild(o.firstChild);for(;c.firstChild;)o.appendChild(c.firstChild)}else if(r!==i[n])try{o[n]=r}catch(t){}}}}var oW=ti(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function oX(t){var e=oY(t.style);return t.staticStyle?td(t.staticStyle,e):e}function oY(t){return Array.isArray(t)?tv(t):"string"==typeof t?oW(t):t}var oG=/^--/,oQ=/\s*!important$/,o0=function(t,e,n){if(oG.test(e))t.style.setProperty(e,n);else if(oQ.test(n))t.style.setProperty(tl(e),n.replace(oQ,""),"important");else{var r=o2(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(o9).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");0>n.indexOf(" "+e+" ")&&t.setAttribute("class",(n+e).trim())}}function o8(t,e){if(!!e&&!!(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(o9).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),!t.classList.length&&t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function o6(t){if(!!t){if("object"==typeof t){var e={};return!1!==t.css&&td(e,o7(t.name||"v")),td(e,t),e}if("string"==typeof t)return o7(t)}}var o7=ti(function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}}),o5=tE&&!tN,it="transition",ie="animation",ir="transition",io="transitionend",ii="animation",ia="animationend";o5&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ir="WebkitTransition",io="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ii="WebkitAnimation",ia="webkitAnimationEnd"));var is=tE?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function ic(t){is(function(){is(t)})}function iu(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);0>n.indexOf(e)&&(n.push(e),o4(t,e))}function il(t,e){t._transitionClasses&&tn(t._transitionClasses,e),o8(t,e)}function ip(t,e,n){var r=iv(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===it?io:ia,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=it,l=a,f=i.length):e===ie?u>0&&(n=ie,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?it:ie:null)?n===it?i.length:c.length:0;var p=n===it&&id.test(r[ir+"Property"]);return{type:n,timeout:l,propCount:f,hasTransform:p}}function ih(t,e){for(;t.length1}function iw(t,e){!0!==e.data.show&&im(e)}var ix=function(t){var e,n,r={},o=t.modules,i=t.nodeOps;for(e=0;ep?v(t,B(n[g+1])?null:n[g+1].elm,n,f,g,r):f>g&&_(e,l,p)}(l,d,h,n,c):U(h)?(U(t.text)&&i.setTextContent(l,""),v(l,null,h,0,h.length-1,n)):U(d)?_(d,0,d.length-1):U(t.text)&&i.setTextContent(l,""):t.text!==e.text&&i.setTextContent(l,e.text),U(p)&&U(u=p.hook)&&U(u=u.postpatch)&&u(t,e)}}function g(t,e,n){if(H(n)&&U(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,o.selected!==r&&(o.selected=r);else if(tg(iO(o),i)){t.selectedIndex!==s&&(t.selectedIndex=s);return}!a&&(t.selectedIndex=-1)}}function iS(t,e){return e.every(function(e){return!tg(e,t)})}function iO(t){return"_value"in t?t._value:t.value}function iT(t){t.target.composing=!0}function iA(t){t.target.composing&&(t.target.composing=!1,ij(t.target,"input"))}function ij(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function iE(t){return!t.componentInstance||t.data&&t.data.transition?t:iE(t.componentInstance._vnode)}var iP={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function iR(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?iR(nr(e.children)):t}function iN(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[ts(r)]=o[r];return e}function iD(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var iM=function(t){return t.tag||e1(t)},iI=function(t){return"show"===t.name},iL=td({tag:String,moveClass:String},iP);delete iL.mode;function iF(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function iB(t){t.data.newPos=t.elm.getBoundingClientRect()}function iU(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}rJ.config.mustUseProp=r0,rJ.config.isReservedTag=oo,rJ.config.isReservedAttr=rG,rJ.config.getTagNamespace=oi,rJ.config.isUnknownElement=function(t){if(!tE)return!0;if(oo(t))return!1;if(null!=oa[t=t.toLowerCase()])return oa[t];var e=document.createElement(t);return t.indexOf("-")>-1?oa[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:oa[t]=/HTMLUnknownElement/.test(e.toString())},td(rJ.options.directives,{model:i$,show:{bind:function(t,e,n){var r=e.value,o=(n=iE(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,im(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=iE(n)).data&&n.data.transition?(n.data.show=!0,r?im(n,function(){t.style.display=t.__vOriginalDisplay}):ig(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){!o&&(t.style.display=t.__vOriginalDisplay)}}}),td(rJ.options.components,{Transition:{name:"transition",props:iP,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(!!n&&!!(n=n.filter(iM)).length){var r=this.mode,o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=iR(o);if(!i)return o;if(this._leaving)return iD(t,o);var a="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?a+"comment":a+i.tag:V(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=iN(this),c=this._vnode,u=iR(c);if(i.data.directives&&i.data.directives.some(iI)&&(i.data.show=!0),u&&u.data&&(f=i,(p=u).key!==f.key||p.tag!==f.tag)&&!e1(u)&&!(u.componentInstance&&u.componentInstance._vnode.isComment)){var l=u.data.transition=td({},s);if("out-in"===r)return this._leaving=!0,eN(l,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),iD(t,o);if("in-out"===r){if(e1(i))return c;var f,p,d,v=function(){d()};eN(s,"afterEnter",v),eN(s,"enterCancelled",v),eN(l,"delayLeave",function(t){d=t})}}return o}}},TransitionGroup:{props:iL,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=nd(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=iN(this),s=0;s\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,iW=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,iX="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(tS.source,"]*"),iY="((?:".concat(iX,"\\:)?").concat(iX,")"),iG=new RegExp("^<".concat(iY)),iQ=/^\s*(\/?)>/,i0=new RegExp("^<\\/".concat(iY,"[^>]*>")),i1=/^]+>/i,i2=/^",""":'"',"&":"&"," ":"\n"," ":" ","'":"'"},i6=/&(?:lt|gt|quot|amp|#39);/g,i7=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,i5=Q("pre,textarea",!0),at=function(t,e){return t&&i5(t)&&"\n"===e[0]},ae=/^@|^v-on:/,an=/^v-|^@|^:|^#/,ar=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,ao=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,ai=/^\(|\)$/g,aa=/^\[.*\]$/,as=/:(.*)$/,ac=/^:|^\.|^v-bind:/,au=/\.[^.\]]+(?=[^\]]*$)/g,al=/^v-slot(:|$)|^#/,af=/[\r\n]/,ap=/[ \f\t\r\n]+/g,ad=ti(function(t){return(x=x||document.createElement("div")).innerHTML=t,x.textContent}),av="_empty_";function ah(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:function(t){for(var e={},n=0,r=t.length;n-1")+("true"===i?":(".concat(e,")"):":_q(".concat(e,",").concat(i,")"))),oP(t,"change","var $$a=".concat(e,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(i,"):(").concat(a,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(r?"_n("+o+")":o,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(oL(e,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(oL(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(oL(e,"$$c"),"}"),null,!0)})(t,r,o);else if("input"===i&&"radio"===a)(function(t,e,n){var r=n&&n.number,o=oR(t,"value")||"null";o=r?"_n(".concat(o,")"):o,oT(t,"checked","_q(".concat(e,",").concat(o,")")),oP(t,"change",oL(e,o),null,!0)})(t,r,o);else if("input"===i||"textarea"===i)(function(t,e,n){var r=t.attrsMap.type,o=n||{},i=o.lazy,a=o.number,s=o.trim,c="$event.target.value";s&&(c="$event.target.value.trim()"),a&&(c="_n(".concat(c,")"));var u=oL(e,c);!i&&"range"!==r&&(u="if($event.target.composing)return;".concat(u)),oT(t,"value","(".concat(e,")")),oP(t,i?"change":"range"===r?"__r":"input",u,null,!0),(s||a)&&oP(t,"blur","$forceUpdate()")})(t,r,o);else if(!tC.isReservedTag(i))return oI(t,r,o),!1;return!0},text:function(t,e){e.value&&oT(t,"textContent","_s(".concat(e.value,")"),e)},html:function(t,e){e.value&&oT(t,"innerHTML","_s(".concat(e.value,")"),e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:iJ,mustUseProp:r0,canBeLeftOpenTag:iK,isReservedTag:oo,getTagNamespace:oi,staticKeys:a$.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")},aC=ti(function(t){return Q("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}),aS=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,aO=/\([^)]*?\);*$/,aT=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,aA={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},aj={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},aE=function(t){return"if(".concat(t,")return null;")},aP={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:aE("$event.target !== $event.currentTarget"),ctrl:aE("!$event.ctrlKey"),shift:aE("!$event.shiftKey"),alt:aE("!$event.altKey"),meta:aE("!$event.metaKey"),left:aE("'button' in $event && $event.button !== 0"),middle:aE("'button' in $event && $event.button !== 1"),right:aE("'button' in $event && $event.button !== 2")};function aR(t,e){var n=e?"nativeOn:":"on:",r="",o="";for(var i in t){var a=function t(e){if(!e)return"function(){}";if(Array.isArray(e))return"[".concat(e.map(function(e){return t(e)}).join(","),"]");var n=aT.test(e.value),r=aS.test(e.value),o=aT.test(e.value.replace(aO,""));if(e.modifiers){var i="",a="",s=[];for(var c in e.modifiers)!function(t){if(aP[t])a+=aP[t],aA[t]&&s.push(t);else if("exact"===t){var n=e.modifiers;a+=aE(["ctrl","shift","alt","meta"].filter(function(t){return!n[t]}).map(function(t){return"$event.".concat(t,"Key")}).join("||"))}else s.push(t)}(c);s.length&&(i+=function(t){return"if(!$event.type.indexOf('key')&&"+"".concat(t.map(aN).join("&&"),")return null;")}(s)),a&&(i+=a);var u=n?"return ".concat(e.value,".apply(null, arguments)"):r?"return (".concat(e.value,").apply(null, arguments)"):o?"return ".concat(e.value):e.value;return"function($event){".concat(i).concat(u,"}")}return n||r?e.value:"function($event){".concat(o?"return ".concat(e.value):e.value,"}")}(t[i]);t[i]&&t[i].dynamic?o+="".concat(i,",").concat(a,","):r+='"'.concat(i,'":').concat(a,",")}return(r="{".concat(r.slice(0,-1),"}"),o)?n+"_d(".concat(r,",[").concat(o.slice(0,-1),"])"):n+r}function aN(t){var e=parseInt(t,10);if(e)return"$event.keyCode!==".concat(e);var n=aA[t],r=aj[t];return"_k($event.keyCode,"+"".concat(JSON.stringify(t),",")+"".concat(JSON.stringify(n),",")+"$event.key,"+"".concat(JSON.stringify(r))+")"}var aD={on:function(t,e){t.wrapListeners=function(t){return"_g(".concat(t,",").concat(e.value,")")}},bind:function(t,e){t.wrapData=function(n){return"_b(".concat(n,",'").concat(t.tag,"',").concat(e.value,",").concat(e.modifiers&&e.modifiers.prop?"true":"false").concat(e.modifiers&&e.modifiers.sync?",true":"",")")}},cloak:th},aM=function(t){this.options=t,this.warn=t.warn||oS,this.transforms=oO(t.modules,"transformCode"),this.dataGenFns=oO(t.modules,"genData"),this.directives=td(td({},aD),t.directives);var e=t.isReservedTag||t_;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function aI(t,e){var n=new aM(e),r=t?"script"===t.tag?"null":aL(t,n):'_c("div")';return{render:"with(this){return ".concat(r,"}"),staticRenderFns:n.staticRenderFns}}function aL(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return aF(t,e);if(t.once&&!t.onceProcessed)return aB(t,e);if(t.for&&!t.forProcessed)return aH(t,e);else{if(t.if&&!t.ifProcessed)return aU(t,e);if("template"===t.tag&&!t.slotTarget&&!e.pre)return az(t,e)||"void 0";if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',r=az(t,e),o="_t(".concat(n).concat(r?",function(){return ".concat(r,"}"):""),i=t.attrs||t.dynamicAttrs?aq((t.attrs||[]).concat(t.dynamicAttrs||[]).map(function(t){return{name:ts(t.name),value:t.value,dynamic:t.dynamic}})):null,a=t.attrsMap["v-bind"];return(i||a)&&!r&&(o+=",null"),i&&(o+=",".concat(i)),a&&(o+="".concat(i?"":",null",",").concat(a)),o+")"}(t,e);var n=void 0;if(t.component)n=function(t,e,n){var r=e.inlineTemplate?null:az(e,n,!0);return"_c(".concat(t,",").concat(aV(e,n)).concat(r?",".concat(r):"",")")}(t.component,t,e);else{var r=void 0,o=e.maybeComponent(t);(!t.plain||t.pre&&o)&&(r=aV(t,e));var i=void 0,a=e.options.bindings;o&&a&&!1!==a.__isScriptSetup&&(i=function(t,e){var n=ts(e),r=tc(n),o=function(o){return t[e]===o?e:t[n]===o?n:t[r]===o?r:void 0},i=o("setup-const")||o("setup-reactive-const");if(i)return i;var a=o("setup-let")||o("setup-ref")||o("setup-maybe-ref");if(a)return a}(a,t.tag)),!i&&(i="'".concat(t.tag,"'"));var s=t.inlineTemplate?null:az(t,e,!0);n="_c(".concat(i).concat(r?",".concat(r):"").concat(s?",".concat(s):"",")")}for(var c=0;c>>0}(a)):"",")")}(t,t.scopedSlots,e),",")),t.model&&(n+="model:{value:".concat(t.model.value,",callback:").concat(t.model.callback,",expression:").concat(t.model.expression,"},")),t.inlineTemplate){var i=function(t,e){var n=t.children[0];if(n&&1===n.type){var r=aI(n,e.options);return"inlineTemplate:{render:function(){".concat(r.render,"},staticRenderFns:[").concat(r.staticRenderFns.map(function(t){return"function(){".concat(t,"}")}).join(","),"]}")}}(t,e);i&&(n+="".concat(i,","))}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b(".concat(n,',"').concat(t.tag,'",').concat(aq(t.dynamicAttrs),")")),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function az(t,e,n,r,o){var i=t.children;if(i.length){var a=i[0];if(1===i.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?e.maybeComponent(a)?",1":",0":"";return"".concat((r||aL)(a,e)).concat(s)}var c=n?function(t,e){for(var n=0,r=0;r]*>)","i")),v=t.replace(d,function(t,n,r){return f=r.length,!i9(p)&&"noscript"!==p&&(n=n.replace(//g,"$1").replace(//g,"$1")),at(p,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});c+=t.length-v.length,t=v,l(p,c-f,c)}else{var h=t.indexOf("<");if(0===h){if(i2.test(t)){var _=t.indexOf("--\x3e");if(_>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,_),c,c+_+3),u(_+3),"continue"}if(i3.test(t)){var m=t.indexOf("]>");if(m>=0)return u(m+2),"continue"}var g=t.match(i1);if(g)return u(g[0].length),"continue";var y=t.match(i0);if(y){var b=c;return u(y[0].length),l(y[1],b,c),"continue"}var w=function(){var e=t.match(iG);if(e){var n={tagName:e[1],attrs:[],start:c};u(e[0].length);for(var r=void 0,o=void 0;!(r=t.match(iQ))&&(o=t.match(iW)||t.match(iZ));)o.start=c,u(o[0].length),o.end=c,n.attrs.push(o);if(r)return n.unarySlash=r[1],u(r[0].length),n.end=c,n}}();if(w)return function(t){var n=t.tagName,c=t.unarySlash;i&&("p"===r&&iq(n)&&l(r),s(n)&&r===n&&l(n));for(var u=a(n)||!!c,f=t.attrs.length,p=Array(f),d=0;d=0){for(v=t.slice(h);!i0.test(v)&&!iG.test(v)&&!i2.test(v)&&!i3.test(v)&&!(($=v.indexOf("<",1))<0);){;h+=$,v=t.slice(h)}x=t.substring(0,h)}h<0&&(x=t),x&&u(x.length),e.chars&&x&&e.chars(x,c-x.length,c)}if(t===n)return e.chars&&e.chars(t),"break"}(););function u(e){c+=e,t=t.substring(e)}l();function l(t,n,i){var a,s;if(null==n&&(n=c),null==i&&(i=c),t)for(s=t.toLowerCase(),a=o.length-1;a>=0&&o[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=o.length-1;u>=a;u--)e.end&&e.end(o[u].tag,n,i);o.length=a,r=a&&o[a-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,i):"p"===s&&(e.start&&e.start(t,[],!1,n,i),e.end&&e.end(t,n,i))}}(t,{warn:$,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,i,a,l,f){var p=r&&r.ns||j(t);tR&&"svg"===p&&(i=function(t){for(var e=[],n=0;nc&&(s.push(o=t.slice(c,r)),a.push(JSON.stringify(o)));var u=oC(n[1].trim());a.push("_s(".concat(u,")")),s.push({"@binding":u}),c=r+n[0].length}return c':'
',R.innerHTML.indexOf(" ")>0}var aG=!!tE&&aY(!1),aQ=!!tE&&aY(!0),a0=ti(function(t){var e=oc(t);return e&&e.innerHTML}),a1=rJ.prototype.$mount;rJ.prototype.$mount=function(t,e){if((t=t&&oc(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r){if("string"==typeof r)"#"===r.charAt(0)&&(r=a0(r));else{if(!r.nodeType)return this;r=r.innerHTML}}else t&&(r=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(r){var o=aX(r,{outputSourceRange:!1,shouldDecodeNewlines:aG,shouldDecodeNewlinesForHref:aQ,delimiters:n.delimiters,comments:n.comments},this),i=o.render,a=o.staticRenderFns;n.render=i,n.staticRenderFns=a}}return a1.call(this,t,e)};rJ.compile=aX;var a2=I.Bj,a3=I.Fl,a9=I.ZM,a4=I.ZP,a8=I.RC,a6=I.aZ,a7=I.IV,a5=I.B,st=I.FN,se=I.nZ,sn=I.h,sr=I.f3,so=I.X3,si=I.PG,sa=I.$y,ss=I.dq,sc=I.yT,su=I.Xl,sl=I.u_,sf=I.Y3,sp=I.dl,sd=I.wF,sv=I.Jd,sh=I.Xn,s_=I.se,sm=I.d1,sg=I.bv,sy=I.bT,sb=I.Yq,sw=I.EB,sx=I.vl,s$=I.Ah,sk=I.ic,sC=I.JJ,sS=I.WL,sO=I.qj,sT=I.OT,sA=I.iH,sj=I.t8,sE=I.Um,sP=I.YS,sR=I.XI,sN=I.IU,sD=I.Vh,sM=I.BK,sI=I.oR,sL=I.SU,sF=I.l1,sB=I.fb,sU=I.sj,sH=I.HA,sV=I.Rr,sz=I.i8,sJ=I.YP,sK=I.m0,sq=I.Rh,sZ=I.Ob;export{a2 as EffectScope,a3 as computed,a9 as customRef,a4 as default,a8 as defineAsyncComponent,a6 as defineComponent,a7 as del,a5 as effectScope,st as getCurrentInstance,se as getCurrentScope,sn as h,sr as inject,so as isProxy,si as isReactive,sa as isReadonly,ss as isRef,sc as isShallow,su as markRaw,sl as mergeDefaults,sf as nextTick,sp as onActivated,sd as onBeforeMount,sv as onBeforeUnmount,sh as onBeforeUpdate,s_ as onDeactivated,sm as onErrorCaptured,sg as onMounted,sy as onRenderTracked,sb as onRenderTriggered,sw as onScopeDispose,sx as onServerPrefetch,s$ as onUnmounted,sk as onUpdated,sC as provide,sS as proxyRefs,sO as reactive,sT as readonly,sA as ref,sj as set,sE as shallowReactive,sP as shallowReadonly,sR as shallowRef,sN as toRaw,sD as toRef,sM as toRefs,sI as triggerRef,sL as unref,sF as useAttrs,sB as useCssModule,sU as useCssVars,sH as useListeners,sV as useSlots,sz as version,sJ as watch,sK as watchEffect,sq as watchPostEffect,sZ as watchSyncEffect}; \ No newline at end of file diff --git a/ssr-vue2-remote/src/components/layout.vue.16eacfd2.final.css b/ssr-vue2-remote/src/components/layout.vue.16eacfd2.final.css new file mode 100644 index 00000000..6f9ac913 --- /dev/null +++ b/ssr-vue2-remote/src/components/layout.vue.16eacfd2.final.css @@ -0,0 +1 @@ +.tip[data-v-b2ae6f88]{background:#efefef;padding:10px}.tip a[data-v-b2ae6f88]{color:#00f}.menu-list[data-v-b2ae6f88]{display:flex}.menu-list-item[data-v-b2ae6f88]{background:#efefef;border-radius:5px;margin:5px;padding:10px}.menu-list-item[data-v-b2ae6f88]:hover{background:#00f}.menu-list-item:hover a[data-v-b2ae6f88]{color:#fff}.menu-list-item-link[data-v-b2ae6f88]{color:#000;text-decoration:none}head{--webpack-__ssr_vue__remote__-706:&_192,Ā490} \ No newline at end of file diff --git a/ssr-vue2-remote/src/components/layout.vue.782be1f1.final.js b/ssr-vue2-remote/src/components/layout.vue.782be1f1.final.js new file mode 100644 index 00000000..5682e9e1 --- /dev/null +++ b/ssr-vue2-remote/src/components/layout.vue.782be1f1.final.js @@ -0,0 +1 @@ +import*as t from"ssr-vue2-remote/npm/vue";var e,r,n,o,i={92:function(t,e,r){r.d(e,{Z:function(){return n}});function n(t,e,r,n,o,i,s,a){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=r,u._compiled=!0),n&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),s?(l=function(t){!(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)&&"undefined"!=typeof __VUE_SSR_CONTEXT__&&(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=l):o&&(l=a?function(){o.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:o),l){if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(t,e){return l.call(e),c(t,e)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,l):[l]}}return{exports:t,options:u}}},946:function(e){e.exports=t}},s={};function a(t){var e=s[t];if(void 0!==e)return e.exports;var r=s[t]={exports:{}};return i[t](r,r.exports,a),r.exports}a.m=i,a.d=function(t,e){for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.k=function(t){return""+t+".css"},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(t){if("object"==typeof window)return window}}(),a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.rv=function(){return"1.1.0"},(()=>{var t;if("string"==typeof import.meta.url&&(t=import.meta.url),!t)throw Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=t+"../../"})(),e={},r="__ssr_vue__remote__",n="data-webpack-loading",o=function(t,e,o,i,s){var l,u,c="chunk-"+t;if(!i){for(var p=document.getElementsByTagName("link"),f=0;f{var s,l,u="",c="",p="",f={},d="--webpack-"+r+"-706",h=1,_={};try{!n&&(n=o(i));for(var m=n.sheet.cssRules||n.sheet.rules,v=m.length-1;v>-1&&!s;){var b=m[v--].style;if(!!b)s=b.getPropertyValue(d)}}catch(t){}if(!s&&(s=getComputedStyle(document.head).getPropertyValue(d)),!s)return;var g,y={},C=s[0],k=C,w=C,x=256;for(l=1;l65535&&(x=256,y={}),k=g;for(l=0,s=w;h;l++)58==(h=s.charCodeAt(l))?(c=u,u=""):47==h?(u=u.replace(/^_/,""),c=c.replace(/^_/,""),p?_.push(c,p,u):f[c]=void 0===f[c]?u:f[c]+" "+u,u="",c="",p=""):38==h?a.r(f):h&&44!=h?92==h?u+=s[++l]:64==h?(p=u,u=""):u+=s[l]:(t[u=u.replace(/^_/,"")]=((t,e,r)=>{!function(t,e){for(var r=0;rc});let u=(0,a("946").defineComponent)({__name:"layout",setup:t=>({__sfc:!0})});a("490");let c=(0,a("92").Z)(u,function(){var t=this._self._c;return this._self._setupProxy,t("div",{staticClass:"layout"},[this._m(0),this._v(" "),this._m(1),this._v(" "),t("main",[this._t("default")],2)])},[function(){var t=this._self._c;return this._self._setupProxy,t("div",{staticClass:"tip"},[this._v("\n 我是一个来自于 "),t("a",{staticClass:"menu-list-item-link",attrs:{href:"https://github.com/dp-os/gez/blob/master/examples/ssr-vue2-remote/src/components/layout.vue",rel:"noopener",target:"_blank"}},[this._v("ssr-vue2-remote")]),this._v(" 服务的组件。\n ")])},function(){var t=this._self._c;return this._self._setupProxy,t("header",{staticClass:"menu-list"},[t("div",{staticClass:"menu-list-item"},[t("a",{staticClass:"menu-list-item-link",attrs:{href:"https://github.com/dp-os/gez",target:"_blank"}},[this._v("github")])]),this._v(" "),t("div",{staticClass:"menu-list-item"},[t("a",{staticClass:"menu-list-item-link",attrs:{href:"https://www.npmjs.com/package/@gez/core",target:"_blank"}},[this._v("npm")])])])}],!1,null,"b2ae6f88",null).exports;var p=l.Z;export{p as default}; \ No newline at end of file diff --git a/ssr-vue2-remote/src/entry.client.78e281fd.final.js b/ssr-vue2-remote/src/entry.client.78e281fd.final.js new file mode 100644 index 00000000..107d1e61 --- /dev/null +++ b/ssr-vue2-remote/src/entry.client.78e281fd.final.js @@ -0,0 +1 @@ +import*as e from"ssr-vue2-remote/npm/vue";var t,r,n,o,i,a,u,s={946:function(t){t.exports=e}},c={};function l(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return s[e](r,r.exports,l),r.exports}l.m=s,l.d=function(e,t){for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce(function(t,r){return l.f[r](e,t),t},[]))},l.k=function(e){return"chunks/"+e+".8b723d12.final.css"},l.u=function(e){return"chunks/"+e+".74223083.final.js"},l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.rv=function(){return"1.1.0"},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e+"../"})(),t={},r="__ssr_vue__remote__",n=(e,n,o)=>{var a,u,s="",c="",f="",d={},p="--webpack-"+r+"-"+o,h=1,m={};try{!n&&(n=i(o));for(var v=n.sheet.cssRules||n.sheet.rules,b=v.length-1;b>-1&&!a;){var y=v[b--].style;if(!!y)a=y.getPropertyValue(p)}}catch(e){}if(!a&&(a=getComputedStyle(document.head).getPropertyValue(p)),!a)return[];var g,k={},w=a[0],A=w,_=w,P=256;for(u=1;u65535&&(P=256,k={}),A=g;for(u=0,a=_;h;u++)58==(h=a.charCodeAt(u))?(c=s,s=""):47==h?(s=s.replace(/^_/,""),c=c.replace(/^_/,""),f?m.push(c,f,s):d[c]=void 0===d[c]?s:d[c]+" "+s,s="",c="",f=""):38==h?l.r(d):h&&44!=h?92==h?s+=a[++u]:64==h?(f=s,s=""):s+=a[u]:(e[s=s.replace(/^_/,"")]=((e,t,r)=>{!function(e,t){for(var r=0;rl.e("44").then(l.bind(l,166)));({app:new f.default({render:e=>e(d)})}).app.$mount('[data-server-rendered="true"]'); \ No newline at end of file diff --git a/ssr-vue2-remote/src/entry.client.ee65e65a.final.css b/ssr-vue2-remote/src/entry.client.ee65e65a.final.css new file mode 100644 index 00000000..3f1ba50b --- /dev/null +++ b/ssr-vue2-remote/src/entry.client.ee65e65a.final.css @@ -0,0 +1 @@ +html,body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin:0;padding:0}head{--webpack-__ssr_vue__remote__-891:&_605} \ No newline at end of file diff --git a/ssr-vue3/importmap.01318e694d673e9e.final.js b/ssr-vue3/importmap.01318e694d673e9e.final.js new file mode 100644 index 00000000..fcc56ec2 --- /dev/null +++ b/ssr-vue3/importmap.01318e694d673e9e.final.js @@ -0,0 +1 @@ +(t=>{let r="ssr-vue3",e="__importmap__",c=t[e]=t[e]||{},s=c.imports=c.imports||{},i=new URL(document.currentScript.src).pathname.split("/"+r+"/"),n=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.b6883e8d.final.js"}).forEach(([t,r])=>{s[n(t)]=i[0]+"/"+n(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-vue3/importmap.js b/ssr-vue3/importmap.js new file mode 100644 index 00000000..fcc56ec2 --- /dev/null +++ b/ssr-vue3/importmap.js @@ -0,0 +1 @@ +(t=>{let r="ssr-vue3",e="__importmap__",c=t[e]=t[e]||{},s=c.imports=c.imports||{},i=new URL(document.currentScript.src).pathname.split("/"+r+"/"),n=t=>r+t.substring(1);Object.entries({"./src/entry.client":"./src/entry.client.b6883e8d.final.js"}).forEach(([t,r])=>{s[n(t)]=i[0]+"/"+n(r)})})(globalThis); \ No newline at end of file diff --git a/ssr-vue3/index.html b/ssr-vue3/index.html new file mode 100644 index 00000000..d5b48905 --- /dev/null +++ b/ssr-vue3/index.html @@ -0,0 +1,17 @@ + + + + + + + + Gez + + + +

rspack + vue3

Count value: 1
+ + + + + diff --git a/ssr-vue3/manifest.json b/ssr-vue3/manifest.json new file mode 100644 index 00000000..4fd15170 --- /dev/null +++ b/ssr-vue3/manifest.json @@ -0,0 +1,29 @@ +{ + "name": "ssr-vue3", + "version": "1.0.0", + "hash": "01318e694d673e9e", + "type": "module", + "exports": { + "./src/entry.client": "./src/entry.client.b6883e8d.final.js" + }, + "buildFiles": [ + "importmap.js", + "importmap.01318e694d673e9e.final.js", + "src/entry.client.c3405dab.final.css", + "src/entry.client.b6883e8d.final.js" + ], + "chunks": { + "ssr-vue3@src/entry.client.ts": { + "js": "./src/entry.client.b6883e8d.final.js", + "css": [ + "./src/entry.client.c3405dab.final.css" + ], + "resources": [], + "sizes": { + "js": 371917, + "css": 665, + "resource": 0 + } + } + } +} \ No newline at end of file diff --git a/ssr-vue3/src/entry.client.b6883e8d.final.js b/ssr-vue3/src/entry.client.b6883e8d.final.js new file mode 100644 index 00000000..3ec81a5d --- /dev/null +++ b/ssr-vue3/src/entry.client.b6883e8d.final.js @@ -0,0 +1,23 @@ +let e,t,n,r,i,o,l,s,a,u,c,p,d,f,h,m;var g,y,b,_,w,x,k={},S={};function C(e){var t=S[e];if(void 0!==t)return t.exports;var n=S[e]={exports:{}};return k[e](n,n.exports,C),n.exports}function $(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}C.m=k,C.k=function(e){return""+e+".css"},C.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),C.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},C.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},C.rv=function(){return"1.1.0"},(()=>{var e;if("string"==typeof import.meta.url&&(e=import.meta.url),!e)throw Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),C.p=e+"../"})(),g={},y="__ssr_vue___",b="data-webpack-loading",_=function(e,t,n,r,i){var o,l,s="chunk-"+e;if(!r){for(var a=document.getElementsByTagName("link"),u=0;u{var r,i,o="",l="",s="",a={},u="--webpack-"+y+"-"+n,c=1,p={};try{!t&&(t=_(n));for(var d=t.sheet.cssRules||t.sheet.rules,f=d.length-1;f>-1&&!r;){var h=d[f--].style;if(!!h)r=h.getPropertyValue(u)}}catch(e){}if(!r&&(r=getComputedStyle(document.head).getPropertyValue(u)),!r)return;var m,b={},w=r[0],x=w,k=w,S=256;for(i=1;i65535&&(S=256,b={}),x=m;for(i=0,r=k;c;i++)58==(c=r.charCodeAt(i))?(l=o,o=""):47==c?(o=o.replace(/^_/,""),l=l.replace(/^_/,""),s?p.push(l,s,o):a[l]=void 0===a[l]?o:a[l]+" "+o,o="",l="",s=""):38==c?C.r(a):c&&44!=c?92==c?o+=r[++i]:64==c?(s=o,o=""):o+=r[i]:(e[o=o.replace(/^_/,"")]=((e,t,n)=>{!function(e,t){for(var n=0;n{},j=()=>!1,E=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),M=e=>e.startsWith("onUpdate:"),P=Object.assign,R=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,F=(e,t)=>N.call(e,t),I=Array.isArray,L=e=>"[object Map]"===J(e),V=e=>"[object Set]"===J(e),D=e=>"[object RegExp]"===J(e),U=e=>"function"==typeof e,H=e=>"string"==typeof e,B=e=>"symbol"==typeof e,W=e=>null!==e&&"object"==typeof e,z=e=>(W(e)||U(e))&&U(e.then)&&U(e.catch),q=Object.prototype.toString,J=e=>q.call(e),K=e=>J(e).slice(8,-1),G=e=>"[object Object]"===J(e),Y=e=>H(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,X=$(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Z=$("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),Q=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ee=/-(\w)/g,et=Q(e=>e.replace(ee,(e,t)=>t?t.toUpperCase():"")),en=/\B([A-Z])/g,er=Q(e=>e.replace(en,"-$1").toLowerCase()),ei=Q(e=>e.charAt(0).toUpperCase()+e.slice(1)),eo=Q(e=>e?`on${ei(e)}`:""),el=(e,t)=>!Object.is(e,t),es=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},eu=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ec=e=>{let t=H(e)?Number(e):NaN;return isNaN(t)?e:t},ep=()=>e||(e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==C.g?C.g:{});function ed(e){if(I(e)){let t={};for(let n=0;n{if(e){let n=e.split(eh);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}(r):ed(r);if(i)for(let e in i)t[e]=i[e]}return t}if(H(e)||W(e))return e}const ef=/;(?![^(]*\))/g,eh=/:([^]+)/,em=/\/\*[^]*?\*\//g;function eg(e){let t="";if(H(e))t=e;else if(I(e))for(let n=0;n?@[\\\]^`{|}~]/g,eO=e=>!!(e&&!0===e.__v_isRef),eT=e=>H(e)?e:null==e?"":I(e)||W(e)&&(e.toString===q||!U(e.toString))?eO(e)?eT(e.value):JSON.stringify(e,eA,2):String(e),eA=(e,t)=>{if(eO(t))return eA(e,t.value);if(L(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[ej(t,r)+" =>"]=n,e),{})};if(V(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>ej(e))};else if(B(t))return ej(t);else if(W(t)&&!I(t)&&!G(t))return String(t);return t},ej=(e,t="")=>{var n;return B(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};function eE(e,...t){console.warn(`[Vue warn] ${e}`,...t)}class eM{constructor(e=!1){this.detached=e,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=t,!e&&t&&(this.index=(t.scopes||(t.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0)){if(i){let e=i;for(i=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;r;){let t=r;for(r=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){!e&&(e=t)}t=n}}if(e)throw e}}function eV(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eD(e){let t;let n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),eB(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function eU(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eH(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty||!1}function eH(e){if(4&e.flags&&!(16&e.flags))return;if(e.flags&=-17,e.globalVersion===eG)return;e.globalVersion=eG;let t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!eU(e)){e.flags&=-3;return}let r=n,i=eW;n=e,eW=!0;try{eV(e);let n=e.fn(e._value);(0===t.version||el(n,e._value))&&(e._value=n,t.version++)}catch(e){throw t.version++,e}finally{n=r,eW=i,eD(e),e.flags&=-3}}function eB(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=i),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)eB(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}let eW=!0;const ez=[];function eq(){ez.push(eW),eW=!1}function eJ(){let e=ez.pop();eW=void 0===e||e}function eK(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=n;n=void 0;try{t()}finally{n=e}}}let eG=0;class eY{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class eX{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.subsHead=void 0}track(e){if(!n||!eW||n===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==n)t=this.activeLink=new eY(n,this),n.deps?(t.prevDep=n.depsTail,n.depsTail.nextDep=t,n.depsTail=t):n.deps=n.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),void 0===t.dep.subsHead&&(t.dep.subsHead=t),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=n.depsTail,t.nextDep=void 0,n.depsTail.nextDep=t,n.depsTail=t,n.deps===t&&(n.deps=e)}return n.onTrack&&n.onTrack(P({effect:n},e)),t}trigger(e){this.version++,eG++,this.notify(e)}notify(e){eN++;try{for(let t=this.subsHead;t;t=t.nextSub)t.sub.onTrigger&&!(8&t.sub.flags)&&t.sub.onTrigger(P({effect:t.sub},e));for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eL()}}}const eZ=new WeakMap,eQ=Symbol("Object iterate"),e0=Symbol("Map keys iterate"),e1=Symbol("Array iterate");function e2(e,t,r){if(eW&&n){let n=eZ.get(e);!n&&eZ.set(e,n=new Map);let i=n.get(r);!i&&(n.set(r,i=new eX),i.map=n,i.key=r),i.track({target:e,type:t,key:r})}}function e6(e,t,n,r,i,o){let l=eZ.get(e);if(!l){eG++;return}let s=l=>{l&&l.trigger({target:e,type:t,key:n,newValue:r,oldValue:i,oldTarget:o})};if(eN++,"clear"===t)l.forEach(s);else{let i=I(e),o=i&&Y(n);if(i&&"length"===n){let e=Number(r);l.forEach((t,n)=>{("length"===n||n===e1||!B(n)&&n>=e)&&s(t)})}else switch((void 0!==n||l.has(void 0))&&s(l.get(n)),o&&s(l.get(e1)),t){case"add":i?o&&s(l.get("length")):(s(l.get(eQ)),L(e)&&s(l.get(e0)));break;case"delete":!i&&(s(l.get(eQ)),L(e)&&s(l.get(e0)));break;case"set":L(e)&&s(l.get(eQ))}}eL()}function e4(e){let t=tR(e);return t===e?t:(e2(t,"iterate",e1),tM(e)?t:t.map(tN))}function e3(e){return e2(e=tR(e),"iterate",e1),e}const e8={__proto__:null,[Symbol.iterator](){return e5(this,Symbol.iterator,tN)},concat(...e){return e4(this).concat(...e.map(e=>I(e)?e4(e):e))},entries(){return e5(this,"entries",e=>(e[1]=tN(e[1]),e))},every(e,t){return e9(this,"every",e,t,void 0,arguments)},filter(e,t){return e9(this,"filter",e,t,e=>e.map(tN),arguments)},find(e,t){return e9(this,"find",e,t,tN,arguments)},findIndex(e,t){return e9(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return e9(this,"findLast",e,t,tN,arguments)},findLastIndex(e,t){return e9(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return e9(this,"forEach",e,t,void 0,arguments)},includes(...e){return tt(this,"includes",e)},indexOf(...e){return tt(this,"indexOf",e)},join(e){return e4(this).join(e)},lastIndexOf(...e){return tt(this,"lastIndexOf",e)},map(e,t){return e9(this,"map",e,t,void 0,arguments)},pop(){return tn(this,"pop")},push(...e){return tn(this,"push",e)},reduce(e,...t){return te(this,"reduce",e,t)},reduceRight(e,...t){return te(this,"reduceRight",e,t)},shift(){return tn(this,"shift")},some(e,t){return e9(this,"some",e,t,void 0,arguments)},splice(...e){return tn(this,"splice",e)},toReversed(){return e4(this).toReversed()},toSorted(e){return e4(this).toSorted(e)},toSpliced(...e){return e4(this).toSpliced(...e)},unshift(...e){return tn(this,"unshift",e)},values(){return e5(this,"values",tN)}};function e5(e,t,n){let r=e3(e),i=r[t]();return r!==e&&!tM(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}const e7=Array.prototype;function e9(e,t,n,r,i,o){let l=e3(e),s=l!==e&&!tM(e),a=l[t];if(a!==e7[t]){let t=a.apply(e,o);return s?tN(t):t}let u=n;l!==e&&(s?u=function(t,r){return n.call(this,tN(t),r,e)}:n.length>2&&(u=function(t,r){return n.call(this,t,r,e)}));let c=a.call(l,u,r);return s&&i?i(c):c}function te(e,t,n,r){let i=e3(e),o=n;return i!==e&&(tM(e)?n.length>3&&(o=function(t,r,i){return n.call(this,t,r,i,e)}):o=function(t,r,i){return n.call(this,t,tN(r),i,e)}),i[t](o,...r)}function tt(e,t,n){let r=tR(e);e2(r,"iterate",e1);let i=r[t](...n);return(-1===i||!1===i)&&tP(n[0])?(n[0]=tR(n[0]),r[t](...n)):i}function tn(e,t,n=[]){eq(),eN++;let r=tR(e)[t].apply(e,n);return eL(),eJ(),r}const tr=$("__proto__,__v_isRef,__isVue"),ti=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(B));function to(e){!B(e)&&(e=String(e));let t=tR(this);return e2(t,"has",e),t.hasOwnProperty(e)}class tl{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;else if("__v_raw"===t)return n===(r?i?tC:tS:i?tk:tx).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let o=I(e);if(!r){let e;if(o&&(e=e8[t]))return e;if("hasOwnProperty"===t)return to}let l=Reflect.get(e,t,tI(e)?e:n);return(B(t)?ti.has(t):tr(t))?l:(!r&&e2(e,"get",t),i)?l:tI(l)?o&&Y(t)?l:l.value:W(l)?r?tO(l):t$(l):l}}class ts extends tl{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=tE(i);if(!tM(n)&&!tE(n)&&(i=tR(i),n=tR(n)),!I(e)&&tI(i)&&!tI(n))return!t&&(i.value=n,!0)}let o=I(e)&&Y(t)?Number(t)e,th=e=>Reflect.getPrototypeOf(e);function tm(e){return function(...t){{let n=t[0]?`on key "${t[0]}" `:"";eE(`${ei(e)} operation ${n}failed: target is readonly.`,tR(this))}return"delete"!==e&&("clear"===e?void 0:this)}}function tg(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=tR(r),o=tR(n);!e&&(el(n,o)&&e2(i,"get",n),e2(i,"get",o));let{has:l}=th(i),s=t?tf:e?tF:tN;return l.call(i,n)?s(r.get(n)):l.call(i,o)?s(r.get(o)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||e2(tR(t),"iterate",eQ),Reflect.get(t,"size",t)},has(t){let n=this.__v_raw,r=tR(n),i=tR(t);return!e&&(el(t,i)&&e2(r,"has",t),e2(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,o=i.__v_raw,l=tR(o),s=t?tf:e?tF:tN;return e||e2(l,"iterate",eQ),o.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return P(n,e?{add:tm("add"),set:tm("set"),delete:tm("delete"),clear:tm("clear")}:{add(e){!t&&!tM(e)&&!tE(e)&&(e=tR(e));let n=tR(this);return!th(n).has.call(n,e)&&(n.add(e),e6(n,"add",e,e)),this},set(e,n){!t&&!tM(n)&&!tE(n)&&(n=tR(n));let r=tR(this),{has:i,get:o}=th(r),l=i.call(r,e);l?tw(r,i,e):(e=tR(e),l=i.call(r,e));let s=o.call(r,e);return r.set(e,n),l?el(n,s)&&e6(r,"set",e,n,s):e6(r,"add",e,n),this},delete(e){let t=tR(this),{has:n,get:r}=th(t),i=n.call(t,e);i?tw(t,n,e):(e=tR(e),i=n.call(t,e));let o=r?r.call(t,e):void 0,l=t.delete(e);return i&&e6(t,"delete",e,void 0,o),l},clear(){let e=tR(this),t=0!==e.size,n=L(e)?new Map(e):new Set(e),r=e.clear();return t&&e6(e,"clear",void 0,void 0,n),r}}),["keys","values","entries",Symbol.iterator].forEach(r=>{var i,o,l;n[r]=(i=r,o=e,l=t,function(...e){let t=this.__v_raw,n=tR(t),r=L(n),s="entries"===i||i===Symbol.iterator&&r,a=t[i](...e),u=l?tf:o?tF:tN;return o||e2(n,"iterate","keys"===i&&r?e0:eQ),{next(){let{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}})}),n}(e,t);return(t,r,i)=>{if("__v_isReactive"===r)return!e;if("__v_isReadonly"===r)return e;if("__v_raw"===r)return t;return Reflect.get(F(n,r)&&r in t?n:t,r,i)}}const tv={get:tg(!1,!1)},ty={get:tg(!1,!0)},tb={get:tg(!0,!1)},t_={get:tg(!0,!0)};function tw(e,t,n){let r=tR(n);if(r!==n&&t.call(e,r)){let t=K(e);eE(`Reactive ${t} contains both the raw and reactive versions of the same object${"Map"===t?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const tx=new WeakMap,tk=new WeakMap,tS=new WeakMap,tC=new WeakMap;function t$(e){return tE(e)?e:tA(e,!1,tu,tv,tx)}function tO(e){return tA(e,!0,tc,tb,tS)}function tT(e){return tA(e,!0,td,t_,tC)}function tA(e,t,n,r,i){var o;if(!W(e))return eE(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;let l=i.get(e);if(l)return l;let s=(o=e).__v_skip||!Object.isExtensible(o)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}(K(o));if(0===s)return e;let a=new Proxy(e,2===s?r:n);return i.set(e,a),a}function tj(e){return tE(e)?tj(e.__v_raw):!!(e&&e.__v_isReactive)}function tE(e){return!!(e&&e.__v_isReadonly)}function tM(e){return!!(e&&e.__v_isShallow)}function tP(e){return!!e&&!!e.__v_raw}function tR(e){let t=e&&e.__v_raw;return t?tR(t):e}const tN=e=>W(e)?t$(e):e,tF=e=>W(e)?tO(e):e;function tI(e){return!!e&&!0===e.__v_isRef}class tL{constructor(e,t){this.dep=new eX,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tR(e),this._value=t?e:tN(e),this.__v_isShallow=t}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tM(e)||tE(e);el(e=n?e:tR(e),t)&&(this._rawValue=e,this._value=n?e:tN(e),this.dep.trigger({target:this,type:"set",key:"value",newValue:e,oldValue:t}))}}const tV={get:(e,t,n)=>{var r;return"__v_raw"===t?e:tI(r=Reflect.get(e,t,n))?r.value:r},set:(e,t,n,r)=>{let i=e[t];return tI(i)&&!tI(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tD(e){return tj(e)?e:new Proxy(e,tV)}class tU{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eX(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eG-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&n!==this)return eF(this,!0),!0}get value(){let e=this.dep.track({target:this,type:"get",key:"value"});return eH(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter?this.setter(e):eE("Write operation failed: computed value is readonly")}}const tH={},tB=new WeakMap;function tW(e,t=1/0,n){if(t<=0||!W(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,tI(e))tW(e.value,t,n);else if(I(e))for(let r=0;r{tW(e,t,n)});else if(G(e)){for(let r in e)tW(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tW(e[r],t,n)}return e}const tz=[];function tq(e){tz.push(e)}function tJ(){tz.pop()}let tK=!1;function tG(e,...t){if(tK)return;tK=!0,eq();let n=tz.length?tz[tz.length-1].component:null,r=n&&n.appContext.config.warnHandler,i=function(){let e=tz[tz.length-1];if(!e)return[];let t=[];for(;e;){let n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});let r=e.component&&e.component.parent;e=r&&r.vnode}return t}();if(r)tX(r,n,11,[e+t.map(e=>{var t,n;return null!=(n=null==(t=e.toString)?void 0:t.call(e))?n:JSON.stringify(e)}).join(""),n&&n.proxy,i.map(({vnode:e})=>`at <${i2(n,e.type)}>`).join("\n"),i]);else{let n=[`[Vue warn]: ${e}`,...t];i.length&&n.push(` +`,...function(e){let t=[];return e.forEach((e,n)=>{t.push(...0===n?[]:[` +`],...function({vnode:e,recurseCount:t}){let n=t>0?`... (${t} recursive calls)`:"",r=!!e.component&&null==e.component.parent,i=` at <${i2(e.component,e.type,r)}`,o=">"+n;return e.props?[i,...function(e){let t=[],n=Object.keys(e);return n.slice(0,3).forEach(n=>{t.push(...function e(t,n,r){if(H(n))return n=JSON.stringify(n),r?n:[`${t}=${n}`];if("number"==typeof n||"boolean"==typeof n||null==n)return r?n:[`${t}=${n}`];if(tI(n))return n=e(t,tR(n.value),!0),r?n:[`${t}=Ref<`,n,">"];else if(U(n))return[`${t}=fn${n.name?`<${n.name}>`:""}`];else return n=tR(n),r?n:[`${t}=`,n]}(n,e[n]))}),n.length>3&&t.push(" ..."),t}(e.props),o]:[i+o]}(e))}),t}(i)),console.warn(...n)}eJ(),tK=!1}const tY={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function tX(e,t,n,r){try{return r?e(...r):e()}catch(e){tQ(e,t,n)}}function tZ(e,t,n,r){if(U(e)){let i=tX(e,t,n,r);return i&&z(i)&&i.catch(e=>{tQ(e,t,n)}),i}if(I(e)){let i=[];for(let o=0;o=nr(n)?t0.push(e):t0.splice(function(e){let t=t1+1,n=t0.length;for(;t>>1,i=t0[r],o=nr(i);oni(t,e);try{for(t1=0;t1nr(e)-nr(t));if(t2.length=0,t6){t6.push(...t);return}for(t4=0,t6=t,e=e||new Map;t4null==e.id?2&e.flags?-1:1/0:e.id;function ni(e,t){let n=e.get(t)||0;if(n>100){let e=t.i,n=e&&i1(e.type);return tQ(`Maximum recursive updates exceeded${n?` in component <${n}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let no=!1;const nl=new Map;ep().__VUE_HMR_RUNTIME__={createRecord:np(na),rerender:np(function(e,t){let n=ns.get(e);if(!!n)n.initialDef.render=t,[...n.instances].forEach(e=>{t&&(e.render=t,nu(e.type).render=t),e.renderCache=[],no=!0,e.update(),no=!1})}),reload:np(function(e,t){let n=ns.get(e);if(!n)return;t=nu(t),nc(n.initialDef,t);let r=[...n.instances];for(let e=0;e{no=!0,i.parent.update(),no=!1,l.delete(i)}):i.appContext.reload?i.appContext.reload():"undefined"!=typeof window?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),i.root.ce&&i!==i.root&&i.root.ce._removeChildStyle(o)}ne(()=>{nl.clear()})})};const ns=new Map;function na(e,t){return!ns.has(e)&&(ns.set(e,{initialDef:nu(t),instances:new Set}),!0)}function nu(e){return i6(e)?e.__vccOpts:e}function nc(e,t){for(let n in P(e,t),e)"__file"!==n&&!(n in t)&&delete e[n]}function np(e){return(t,n)=>{try{return e(t,n)}catch(e){console.error(e),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let nd=[],nf=!1;function nh(e,...t){o?o.emit(e,...t):!nf&&nd.push({event:e,args:t})}const nm=nb("component:added"),ng=nb("component:updated"),nv=nb("component:removed"),ny=e=>{o&&"function"==typeof o.cleanupBuffer&&!o.cleanupBuffer(e)&&nv(e)};function nb(e){return t=>{nh(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const n_=nx("perf:start"),nw=nx("perf:end");function nx(e){return(t,n,r)=>{nh(e,t.appContext.app,t.uid,t,n,r)}}let nk=null,nS=null;function nC(e){let t=nk;return nk=e,nS=e&&e.type.__scopeId||null,t}function n$(e){Z(e)&&tG("Do not use built-in directive ids as custom directive id: "+e)}function nO(e,t,n,r){let i=e.dirs,o=t&&t.dirs;for(let l=0;le.__isTeleport,nj=Symbol("_leaveCb"),nE=Symbol("_enterCb"),nM=[Function,Array],nP={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nM,onEnter:nM,onAfterEnter:nM,onEnterCancelled:nM,onBeforeLeave:nM,onLeave:nM,onAfterLeave:nM,onLeaveCancelled:nM,onBeforeAppear:nM,onAppear:nM,onAfterAppear:nM,onAppearCancelled:nM},nR=e=>{let t=e.subTree;return t.component?nR(t.component):t};function nN(e){let t=e[0];if(e.length>1){let n=!1;for(let r of e)if(r.type!==ib){if(n){tG(" can only be used on a single element or component. Use for lists.");break}t=r,n=!0}}return t}function nF(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return!r&&(r=Object.create(null),n.set(t.type,r)),r}function nI(e,t,n,r,i){let{appear:o,mode:l,persisted:s=!1,onBeforeEnter:a,onEnter:u,onAfterEnter:c,onEnterCancelled:p,onBeforeLeave:d,onLeave:f,onAfterLeave:h,onLeaveCancelled:m,onBeforeAppear:g,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,w=String(e.key),x=nF(n,e),k=(e,t)=>{e&&tZ(e,r,9,t)},S=(e,t)=>{let n=t[1];k(e,t),I(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},C={mode:l,persisted:s,beforeEnter(t){let r=a;if(!n.isMounted){if(!o)return;r=g||a}t[nj]&&t[nj](!0);let i=x[w];i&&i$(e,i)&&i.el[nj]&&i.el[nj](),k(r,[t])},enter(e){let t=u,r=c,i=p;if(!n.isMounted){if(!o)return;t=y||u,r=b||c,i=_||p}let l=!1,s=e[nE]=t=>{!l&&(l=!0,t?k(i,[e]):k(r,[e]),C.delayedLeave&&C.delayedLeave(),e[nE]=void 0)};t?S(t,[e,s]):s()},leave(t,r){let i=String(e.key);if(t[nE]&&t[nE](!0),n.isUnmounting)return r();k(d,[t]);let o=!1,l=t[nj]=n=>{!o&&(o=!0,r(),n?k(m,[t]):k(h,[t]),t[nj]=void 0,x[i]===e&&delete x[i])};x[i]=e,f?S(f,[t,l]):l()},clone(e){let o=nI(e,t,n,r,i);return i&&i(o),o}};return C}function nL(e){if(n6(e))return(e=iE(e)).children=null,e}function nV(e){if(!n6(e))return nA(e.type)&&e.children?nN(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&U(n.default))return n.default()}}function nD(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nD(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nU(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const nH=new WeakSet;function nB(e,t,n,r,i=!1){if(I(e)){e.forEach((e,o)=>nB(e,t&&(I(t)?t[o]:t),n,r,i));return}if(n2(r)&&!i)return;let o=4&r.shapeFlag?iZ(r.component):r.el,l=i?null:o,{i:s,r:a}=e;if(!s){tG("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}let u=t&&t.r,c=s.refs===O?s.refs={}:s.refs,p=s.setupState,d=tR(p),f=p===O?()=>!1:e=>(F(d,e)&&!tI(d[e])&&tG(`Template ref "${e}" used on a non-ref value. It will not work in the production build.`),!nH.has(d[e])&&F(d,e));if(null!=u&&u!==a&&(H(u)?(c[u]=null,f(u)&&(p[u]=null)):tI(u)&&(u.value=null)),U(a))tX(a,s,12,[l,c]);else{let t=H(a),r=tI(a);if(t||r){let s=()=>{if(e.f){let n=t?f(a)?p[a]:c[a]:a.value;i?I(n)&&R(n,o):I(n)?!n.includes(o)&&n.push(o):t?(c[a]=[o],f(a)&&(p[a]=c[a])):(a.value=[o],e.k&&(c[e.k]=a.value))}else t?(c[a]=l,f(a)&&(p[a]=l)):r?(a.value=l,e.k&&(c[e.k]=l)):tG("Invalid template ref type:",a,`(${typeof a})`)};l?(s.id=-1,rZ(s,n)):s()}else tG("Invalid template ref type:",a,`(${typeof a})`)}}let nW=!1;const nz=()=>{if(!nW)console.error("Hydration completed but contains mismatches."),nW=!0},nq=e=>e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName,nJ=e=>e.namespaceURI.includes("MathML"),nK=e=>{if(1===e.nodeType){if(nq(e))return"svg";if(nJ(e))return"mathml"}},nG=e=>8===e.nodeType;function nY(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:o,parentNode:l,remove:s,insert:a,createComment:u}}=e,c=(n,r,s,u,b,_=!1)=>{_=_||!!r.dynamicChildren;let w=nG(n)&&"["===n.data,x=()=>h(n,r,s,u,b,w),{type:k,ref:S,shapeFlag:C,patchFlag:$}=r,O=n.nodeType;r.el=n,ea(n,"__vnode",r,!0),ea(n,"__vueParentComponent",s,!0),-2===$&&(_=!1,r.dynamicChildren=null);let T=null;switch(k){case iy:3!==O?""===r.children?(a(r.el=i(""),l(n),n),T=n):T=x():(n.data!==r.children&&(tG("Hydration text mismatch in",n.parentNode,` + - rendered on server: ${JSON.stringify(n.data)} + - expected on client: ${JSON.stringify(r.children)}`),nz(),n.data=r.children),T=o(n));break;case ib:y(n)?(T=o(n),g(r.el=n.content.firstChild,n,s)):T=8!==O||w?x():o(n);break;case i_:if(w&&(O=(n=o(n)).nodeType),1===O||3===O){T=n;let e=!r.children.length;for(let t=0;t{l=l||!!t.dynamicChildren;let{type:a,props:u,patchFlag:c,shapeFlag:p,dirs:f,transition:h}=t,m="input"===a||"option"===a;{let a;f&&nO(t,null,n,"created");let c=!1;if(y(e)){c=r2(null,h)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;c&&h.beforeEnter(r),g(r,e,n),t.el=e=r}if(16&p&&!(u&&(u.innerHTML||u.textContent))){let r=d(e.firstChild,t,e,n,i,o,l),a=!1;for(;r;){!n1(e,1)&&(!a&&(tG("Hydration children mismatch on",e,` +Server rendered element contains more child nodes than client vdom.`),a=!0),nz());let t=r;r=r.nextSibling,s(t)}}else if(8&p){let n=t.children;"\n"===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(!n1(e,0)&&(tG("Hydration text content mismatch on",e,` + - rendered on server: ${e.textContent} + - expected on client: ${t.children}`),nz()),e.textContent=t.children)}if(u){let i=e.tagName.includes("-");for(let o in u)!(f&&f.some(e=>e.dir.created))&&function(e,t,n,r,i){let o,l,s,a;if("class"===t)s=e.getAttribute("class"),a=eg(n),!function(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}(nX(s||""),nX(a))&&(o=2,l="class");else if("style"===t){s=e.getAttribute("style")||"",a=H(n)?n:function(e){let t="";if(!e||H(e))return t;for(let n in e){let r=e[n];if(H(r)||"number"==typeof r){let e=n.startsWith("--")?n:er(n);t+=`${e}:${r};`}}return t}(ed(n));let t=nZ(s),u=nZ(a);if(r.dirs)for(let{dir:e,value:t}of r.dirs)"show"===e.name&&!t&&u.set("display","none");i&&function e(t,n,r){let i=t.subTree;if(t.getCssVars&&(n===i||i&&i.type===iv&&i.children.includes(n))){let e=t.getCssVars();for(let t in e){var o=void 0;r.set(`--${t.replace(e$,e=>`\\${e}`)}`,String(e[t]))}}n===i&&t.parent&&e(t.parent,t.vnode,r)}(i,r,u),!function(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e)if(r!==t.get(n))return!1;return!0}(t,u)&&(o=3,l="style")}else(e instanceof SVGElement&&eC(t)||e instanceof HTMLElement&&(ex(t)||eS(t)))&&(ex(t)?(s=e.hasAttribute(t),a=ek(n)):null==n?(s=e.hasAttribute(t),a=!1):(s=e.hasAttribute(t)?e.getAttribute(t):"value"===t&&"TEXTAREA"===e.tagName&&e.value,a=!!function(e){if(null==e)return!1;let t=typeof e;return"string"===t||"number"===t||"boolean"===t}(n)&&String(n)),s!==a&&(o=4,l=t));if(null!=o&&!n1(e,o)){let t=e=>!1===e?"(not rendered)":`${l}="${e}"`,n=`Hydration ${n0[o]} mismatch on`;return tG(n,e,` + - rendered on server: ${t(s)} + - expected on client: ${t(a)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`),!0}return!1}(e,o,u[o],t,n)&&nz(),(m&&(o.endsWith("value")||"indeterminate"===o)||E(o)&&!X(o)||"."===o[0]||i)&&r(e,o,null,u[o],void 0,n)}(a=u&&u.onVnodeBeforeMount)&&iI(a,n,t),f&&nO(t,null,n,"beforeMount"),((a=u&&u.onVnodeMounted)||f||c)&&ig(()=>{a&&iI(a,n,t),c&&h.enter(e),f&&nO(t,null,n,"mounted")},i)}return e.nextSibling},d=(e,t,r,l,s,u,p)=>{p=p||!!t.dynamicChildren;let d=t.children,f=d.length,h=!1;for(let t=0;t{let{slotScopeIds:c}=t;c&&(i=i?i.concat(c):c);let p=l(e),f=d(o(e),t,p,n,r,i,s);return f&&nG(f)&&"]"===f.data?o(t.anchor=f):(nz(),a(t.anchor=u("]"),p,f),f)},h=(e,t,r,i,a,u)=>{if(!n1(e.parentElement,1)&&(tG(`Hydration node mismatch: +- rendered on server:`,e,3===e.nodeType?"(text)":nG(e)&&"["===e.data?"(start of fragment)":"",` +- expected on client:`,t.type),nz()),t.el=null,u){let t=m(e);for(;;){let n=o(e);if(n&&n!==t)s(n);else break}}let c=o(e),p=l(e);return s(e),n(null,t,p,c,r,i,nK(p),a),c},m=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=o(e))&&nG(e)&&(e.data===t&&r++,e.data===n)){if(0===r)return o(e);r--}return e},g=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){tG("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,e,t),nn(),t._vnode=e;return}c(t.firstChild,e,null,null,null),nn(),t._vnode=e},c]}function nX(e){return new Set(e.trim().split(/\s+/))}function nZ(e){let t=new Map;for(let n of e.split(";")){let[e,r]=n.split(":");e=e.trim(),r=r&&r.trim(),e&&r&&t.set(e,r)}return t}const nQ="data-allow-mismatch",n0={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function n1(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nQ);)e=e.parentElement;let n=e&&e.getAttribute(nQ);if(null==n)return!1;if(""===n)return!0;{let e=n.split(",");return!!(0===t&&e.includes("children"))||n.split(",").includes(n0[t])}}ep().requestIdleCallback||(e=>setTimeout(e,1)),ep().cancelIdleCallback||(e=>clearTimeout(e));const n2=e=>!!e.type.__asyncLoader,n6=e=>e.type.__isKeepAlive;function n4(e,t){n8(e,"a",t)}function n3(e,t){n8(e,"da",t)}function n8(e,t,n=iD){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(n5(t,r,n),n){let e=n.parent;for(;e&&e.parent;)n6(e.parent.vnode)&&function(e,t,n,r){let i=n5(t,e,r,!0);ri(()=>{R(r[t],i)},n)}(r,t,n,e),e=e.parent}}function n5(e,t,n=iD,r=!1){if(n){let i=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...r)=>{eq();let i=iH(n),o=tZ(t,n,e,r);return i(),eJ(),o});return r?i.unshift(o):i.push(o),o}{let t=eo(tY[e].replace(/ hook$/,""));tG(`${t} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const n7=e=>(t,n=iD)=>{(!iJ||"sp"===e)&&n5(e,(...e)=>t(...e),n)},n9=n7("bm"),re=n7("m"),rt=n7("bu"),rn=n7("u"),rr=n7("bum"),ri=n7("um"),ro=n7("sp"),rl=n7("rtg"),rs=n7("rtc");function ra(e,t=iD){n5("ec",e,t)}const ru=Symbol.for("v-ndc"),rc=e=>e?iq(e)?iZ(e):rc(e.parent):null,rp=P(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>tT(e.props),$attrs:e=>tT(e.attrs),$slots:e=>tT(e.slots),$refs:e=>tT(e.refs),$parent:e=>rc(e.parent),$root:e=>rc(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ry(e),$forceUpdate:e=>e.f||(e.f=()=>{t7(e.update)}),$nextTick:e=>e.n||(e.n=t5.bind(e.proxy)),$watch:e=>r9.bind(e)}),rd=e=>"_"===e||"$"===e,rf=(e,t)=>e!==O&&!e.__isScriptSetup&&F(e,t),rh={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:o,setupState:l,data:s,props:a,accessCache:u,type:c,appContext:p}=e;if("__isVue"===t)return!0;if("$"!==t[0]){let r=u[t];if(void 0!==r)switch(r){case 1:return l[t];case 2:return s[t];case 4:return o[t];case 3:return a[t]}else{if(rf(l,t))return u[t]=1,l[t];if(s!==O&&F(s,t))return u[t]=2,s[t];if((n=e.propsOptions[0])&&F(n,t))return u[t]=3,a[t];if(o!==O&&F(o,t))return u[t]=4,o[t];rg&&(u[t]=0)}}let d=rp[t];if(d)return"$attrs"===t?(e2(e.attrs,"get",""),function(){io=!0}()):"$slots"===t&&e2(e,"get",t),d(e);if((r=c.__cssModules)&&(r=r[t]))return r;if(o!==O&&F(o,t))return u[t]=4,o[t];else{if(F(i=p.config.globalProperties,t))return i[t];nk&&(!H(t)||0!==t.indexOf("__v"))&&(s!==O&&rd(t[0])&&F(s,t)?tG(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===nk&&tG(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))}},set({_:e},t,n){let{data:r,setupState:i,ctx:o}=e;if(rf(i,t))return i[t]=n,!0;if(i.__isScriptSetup&&F(i,t))return tG(`Cannot mutate