mirror of
https://github.com/p-stream/p-stream.git
synced 2026-04-21 19:22:19 +00:00
218 lines
22 KiB
JavaScript
218 lines
22 KiB
JavaScript
// vite.config.mts
|
|
import { defineConfig } from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/vitest@1.6.1_@types+node@20.19.23_jsdom@23.2.0_terser@5.46.0/node_modules/vitest/dist/config.js";
|
|
import react from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/@vitejs+plugin-react@4.7.0_vite@5.4.21_@types+node@20.19.23_terser@5.46.0_/node_modules/@vitejs/plugin-react/dist/index.js";
|
|
import loadVersion from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/vite-plugin-package-version@1.1.0_vite@5.4.21_@types+node@20.19.23_terser@5.46.0_/node_modules/vite-plugin-package-version/dist/index.mjs";
|
|
import { VitePWA } from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/vite-plugin-pwa@0.17.5_vite@5.4.21_@types+node@20.19.23_terser@5.46.0__workbox-build@7.3.0_@t_k25kbpptevhphsoend3zjsc7ne/node_modules/vite-plugin-pwa/dist/index.js";
|
|
import checker from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/vite-plugin-checker@0.6.4_eslint@8.57.1_optionator@0.9.4_typescript@5.9.3_vite@5.4.21_@types+_itnddrexsefb5o2agbq2462fiy/node_modules/vite-plugin-checker/dist/esm/main.js";
|
|
import path2 from "path";
|
|
import million from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/million@2.6.4/node_modules/million/dist/packages/compiler.mjs";
|
|
|
|
// plugins/handlebars.ts
|
|
import { globSync } from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/glob@10.4.5/node_modules/glob/dist/esm/index.js";
|
|
import { viteStaticCopy } from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/vite-plugin-static-copy@3.1.4_vite@5.4.21_@types+node@20.19.23_terser@5.46.0_/node_modules/vite-plugin-static-copy/dist/index.js";
|
|
import Handlebars from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/handlebars@4.7.8/node_modules/handlebars/lib/index.js";
|
|
import path from "path";
|
|
var handlebars = (options = {}) => {
|
|
const files = globSync("src/assets/**/**.hbs");
|
|
function render(content) {
|
|
const template = Handlebars.compile(content);
|
|
return template(options?.vars ?? {});
|
|
}
|
|
return [
|
|
{
|
|
name: "hbs-templating",
|
|
enforce: "pre",
|
|
transformIndexHtml: {
|
|
order: "pre",
|
|
handler(html) {
|
|
return render(html);
|
|
}
|
|
}
|
|
},
|
|
viteStaticCopy({
|
|
silent: true,
|
|
targets: files.map((file) => ({
|
|
src: file,
|
|
dest: "",
|
|
rename: path.basename(file).slice(0, -4),
|
|
// remove .hbs file extension
|
|
transform: {
|
|
encoding: "utf8",
|
|
handler(content) {
|
|
return render(content);
|
|
}
|
|
}
|
|
}))
|
|
})
|
|
];
|
|
};
|
|
|
|
// vite.config.mts
|
|
import { loadEnv, splitVendorChunkPlugin } from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/vite@5.4.21_@types+node@20.19.23_terser@5.46.0/node_modules/vite/dist/node/index.js";
|
|
import { visualizer } from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/rollup-plugin-visualizer@5.14.0_rollup@4.43.0/node_modules/rollup-plugin-visualizer/dist/plugin/index.js";
|
|
import tailwind from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/tailwindcss@3.4.18_yaml@2.8.0/node_modules/tailwindcss/lib/index.js";
|
|
import rtl from "file:///Users/magnus/Documents/repos/p-stream%20combined/p-stream/node_modules/.pnpm/postcss-rtlcss@4.0.9_postcss@8.5.6/node_modules/postcss-rtlcss/esm/index.js";
|
|
var __vite_injected_original_dirname = "/Users/magnus/Documents/repos/p-stream combined/p-stream";
|
|
var captioningPackages = [
|
|
"dompurify",
|
|
"htmlparser2",
|
|
"subsrt-ts",
|
|
"parse5",
|
|
"entities",
|
|
"fuse"
|
|
];
|
|
var vite_config_default = defineConfig(({ mode }) => {
|
|
const env = loadEnv(mode, process.cwd());
|
|
return {
|
|
base: env.VITE_BASE_URL || "/",
|
|
plugins: [
|
|
million.vite({ auto: true, mute: true }),
|
|
handlebars({
|
|
vars: {
|
|
opensearchEnabled: env.VITE_OPENSEARCH_ENABLED === "true",
|
|
routeDomain: env.VITE_APP_DOMAIN + (env.VITE_NORMAL_ROUTER !== "true" ? "/#" : ""),
|
|
domain: env.VITE_APP_DOMAIN,
|
|
env
|
|
}
|
|
}),
|
|
react({
|
|
babel: {
|
|
presets: [
|
|
"@babel/preset-typescript",
|
|
[
|
|
"@babel/preset-env",
|
|
{
|
|
modules: false,
|
|
useBuiltIns: "entry",
|
|
corejs: {
|
|
version: "3.34"
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}),
|
|
VitePWA({
|
|
disable: env.VITE_PWA_ENABLED !== "true",
|
|
registerType: "autoUpdate",
|
|
workbox: {
|
|
maximumFileSizeToCacheInBytes: 4e6,
|
|
// 4mb
|
|
globIgnores: ["!assets/**/*"]
|
|
},
|
|
includeAssets: [
|
|
"favicon.ico",
|
|
"apple-touch-icon.png",
|
|
"safari-pinned-tab.svg"
|
|
],
|
|
manifest: {
|
|
name: "P-Stream",
|
|
short_name: "P-Stream",
|
|
description: "Watch your favorite shows and movies for free with no ads ever! (\u3063'\u30EE'c)",
|
|
theme_color: "#000000",
|
|
background_color: "#000000",
|
|
display: "standalone",
|
|
start_url: "/",
|
|
icons: [
|
|
{
|
|
src: "android-chrome-192x192.png",
|
|
sizes: "192x192",
|
|
type: "image/png",
|
|
purpose: "any"
|
|
},
|
|
{
|
|
src: "android-chrome-512x512.png",
|
|
sizes: "512x512",
|
|
type: "image/png",
|
|
purpose: "any"
|
|
},
|
|
{
|
|
src: "android-chrome-192x192.png",
|
|
sizes: "192x192",
|
|
type: "image/png",
|
|
purpose: "maskable"
|
|
},
|
|
{
|
|
src: "android-chrome-512x512.png",
|
|
sizes: "512x512",
|
|
type: "image/png",
|
|
purpose: "maskable"
|
|
}
|
|
]
|
|
}
|
|
}),
|
|
loadVersion(),
|
|
checker({
|
|
overlay: {
|
|
position: "tr"
|
|
},
|
|
typescript: true,
|
|
// check typescript build errors in dev server
|
|
eslint: {
|
|
// check lint errors in dev server
|
|
lintCommand: "eslint --ext .tsx,.ts src",
|
|
dev: {
|
|
logLevel: ["error"]
|
|
}
|
|
}
|
|
}),
|
|
splitVendorChunkPlugin(),
|
|
visualizer()
|
|
],
|
|
build: {
|
|
sourcemap: mode !== "production",
|
|
rollupOptions: {
|
|
output: {
|
|
manualChunks(id) {
|
|
if (id.includes("@sozialhelden+ietf-language-tags") || id.includes("country-language")) {
|
|
return "language-db";
|
|
}
|
|
if (id.includes("hls.js")) {
|
|
return "hls";
|
|
}
|
|
if (id.includes("node-forge") || id.includes("crypto-js")) {
|
|
return "auth";
|
|
}
|
|
if (id.includes("locales") && !id.includes("en.json")) {
|
|
return "locales";
|
|
}
|
|
if (id.includes("react-dom")) {
|
|
return "react-dom";
|
|
}
|
|
if (id.includes("Icon.tsx")) {
|
|
return "Icons";
|
|
}
|
|
const isCaptioningPackage = captioningPackages.some(
|
|
(packageName) => id.includes(packageName)
|
|
);
|
|
if (isCaptioningPackage) {
|
|
return "caption-parsing";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
css: {
|
|
postcss: {
|
|
plugins: [tailwind(), rtl()]
|
|
}
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@": path2.resolve(__vite_injected_original_dirname, "./src"),
|
|
"@themes": path2.resolve(__vite_injected_original_dirname, "./themes"),
|
|
"@sozialhelden/ietf-language-tags": path2.resolve(
|
|
__vite_injected_original_dirname,
|
|
"./node_modules/@sozialhelden/ietf-language-tags/dist/cjs"
|
|
)
|
|
}
|
|
},
|
|
test: {
|
|
environment: "jsdom"
|
|
}
|
|
};
|
|
});
|
|
export {
|
|
vite_config_default as default
|
|
};
|
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcubXRzIiwgInBsdWdpbnMvaGFuZGxlYmFycy50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2Rpcm5hbWUgPSBcIi9Vc2Vycy9tYWdudXMvRG9jdW1lbnRzL3JlcG9zL3Atc3RyZWFtIGNvbWJpbmVkL3Atc3RyZWFtXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvbWFnbnVzL0RvY3VtZW50cy9yZXBvcy9wLXN0cmVhbSBjb21iaW5lZC9wLXN0cmVhbS92aXRlLmNvbmZpZy5tdHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL21hZ251cy9Eb2N1bWVudHMvcmVwb3MvcC1zdHJlYW0lMjBjb21iaW5lZC9wLXN0cmVhbS92aXRlLmNvbmZpZy5tdHNcIjtpbXBvcnQgeyBkZWZpbmVDb25maWcgfSBmcm9tIFwidml0ZXN0L2NvbmZpZ1wiO1xuaW1wb3J0IHJlYWN0IGZyb20gXCJAdml0ZWpzL3BsdWdpbi1yZWFjdFwiO1xuaW1wb3J0IGxvYWRWZXJzaW9uIGZyb20gXCJ2aXRlLXBsdWdpbi1wYWNrYWdlLXZlcnNpb25cIjtcbmltcG9ydCB7IFZpdGVQV0EgfSBmcm9tIFwidml0ZS1wbHVnaW4tcHdhXCI7XG5pbXBvcnQgY2hlY2tlciBmcm9tIFwidml0ZS1wbHVnaW4tY2hlY2tlclwiO1xuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCBtaWxsaW9uIGZyb20gXCJtaWxsaW9uL2NvbXBpbGVyXCI7XG5pbXBvcnQgeyBoYW5kbGViYXJzIH0gZnJvbSBcIi4vcGx1Z2lucy9oYW5kbGViYXJzXCI7XG5pbXBvcnQgeyBQbHVnaW5PcHRpb24sIGxvYWRFbnYsIHNwbGl0VmVuZG9yQ2h1bmtQbHVnaW4gfSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IHsgdmlzdWFsaXplciB9IGZyb20gXCJyb2xsdXAtcGx1Z2luLXZpc3VhbGl6ZXJcIjtcblxuaW1wb3J0IHRhaWx3aW5kIGZyb20gXCJ0YWlsd2luZGNzc1wiO1xuaW1wb3J0IHJ0bCBmcm9tIFwicG9zdGNzcy1ydGxjc3NcIjtcblxuY29uc3QgY2FwdGlvbmluZ1BhY2thZ2VzID0gW1xuICBcImRvbXB1cmlmeVwiLFxuICBcImh0bWxwYXJzZXIyXCIsXG4gIFwic3Vic3J0LXRzXCIsXG4gIFwicGFyc2U1XCIsXG4gIFwiZW50aXRpZXNcIixcbiAgXCJmdXNlXCIsXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoKHsgbW9kZSB9KSA9PiB7XG4gIGNvbnN0IGVudiA9IGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSk7XG4gIHJldHVybiB7XG4gICAgYmFzZTogZW52LlZJVEVfQkFTRV9VUkwgfHwgXCIvXCIsXG4gICAgcGx1Z2luczogW1xuICAgICAgbWlsbGlvbi52aXRlKHsgYXV0bzogdHJ1ZSwgbXV0ZTogdHJ1ZSB9KSxcbiAgICAgIGhhbmRsZWJhcnMoe1xuICAgICAgICB2YXJzOiB7XG4gICAgICAgICAgb3BlbnNlYXJjaEVuYWJsZWQ6IGVudi5WSVRFX09QRU5TRUFSQ0hfRU5BQkxFRCA9PT0gXCJ0cnVlXCIsXG4gICAgICAgICAgcm91dGVEb21haW46XG4gICAgICAgICAgICBlbnYuVklURV9BUFBfRE9NQUlOICtcbiAgICAgICAgICAgIChlbnYuVklURV9OT1JNQUxfUk9VVEVSICE9PSBcInRydWVcIiA/IFwiLyNcIiA6IFwiXCIpLFxuICAgICAgICAgIGRvbWFpbjogZW52LlZJVEVfQVBQX0RPTUFJTixcbiAgICAgICAgICBlbnYsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHJlYWN0KHtcbiAgICAgICAgYmFiZWw6IHtcbiAgICAgICAgICBwcmVzZXRzOiBbXG4gICAgICAgICAgICBcIkBiYWJlbC9wcmVzZXQtdHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBcIkBiYWJlbC9wcmVzZXQtZW52XCIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtb2R1bGVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB1c2VCdWlsdEluczogXCJlbnRyeVwiLFxuICAgICAgICAgICAgICAgIGNvcmVqczoge1xuICAgICAgICAgICAgICAgICAgdmVyc2lvbjogXCIzLjM0XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgVml0ZVBXQSh7XG4gICAgICAgIGRpc2FibGU6IGVudi5WSVRFX1BXQV9FTkFCTEVEICE9PSBcInRydWVcIixcbiAgICAgICAgcmVnaXN0ZXJUeXBlOiBcImF1dG9VcGRhdGVcIixcbiAgICAgICAgd29ya2JveDoge1xuICAgICAgICAgIG1heGltdW1GaWxlU2l6ZVRvQ2FjaGVJbkJ5dGVzOiA0MDAwMDAwLCAvLyA0bWJcbiAgICAgICAgICBnbG9iSWdub3JlczogW1wiIWFzc2V0cy8qKi8qXCJdLFxuICAgICAgICB9LFxuICAgICAgICBpbmNsdWRlQXNzZXRzOiBbXG4gICAgICAgICAgXCJmYXZpY29uLmljb1wiLFxuICAgICAgICAgIFwiYXBwbGUtdG91Y2gtaWNvbi5wbmdcIixcbiAgICAgICAgICBcInNhZmFyaS1waW5uZWQtdGFiLnN2Z1wiLFxuICAgICAgICBdLFxuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIG5hbWU6IFwiUC1TdHJlYW1cIixcbiAgICAgICAgICBzaG9ydF9uYW1lOiBcIlAtU3RyZWFtXCIsXG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICBcIldhdGNoIHlvdXIgZmF2b3JpdGUgc2hvd3MgYW5kIG1vdmllcyBmb3IgZnJlZSB3aXRoIG5vIGFkcyBldmVyISAoXHUzMDYzJ1x1MzBFRSdjKVwiLFxuICAgICAgICAgIHRoZW1lX2NvbG9yOiBcIiMwMDAwMDBcIixcbiAgICAgICAgICBiYWNrZ3JvdW5kX2NvbG9yOiBcIiMwMDAwMDBcIixcbiAgICAgICAgICBkaXNwbGF5OiBcInN0YW5kYWxvbmVcIixcbiAgICAgICAgICBzdGFydF91cmw6IFwiL1wiLFxuICAgICAgICAgIGljb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNyYzogXCJhbmRyb2lkLWNocm9tZS0xOTJ4MTkyLnBuZ1wiLFxuICAgICAgICAgICAgICBzaXplczogXCIxOTJ4MTkyXCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwiaW1hZ2UvcG5nXCIsXG4gICAgICAgICAgICAgIHB1cnBvc2U6IFwiYW55XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBzcmM6IFwiYW5kcm9pZC1jaHJvbWUtNTEyeDUxMi5wbmdcIixcbiAgICAgICAgICAgICAgc2l6ZXM6IFwiNTEyeDUxMlwiLFxuICAgICAgICAgICAgICB0eXBlOiBcImltYWdlL3BuZ1wiLFxuICAgICAgICAgICAgICBwdXJwb3NlOiBcImFueVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc3JjOiBcImFuZHJvaWQtY2hyb21lLTE5MngxOTIucG5nXCIsXG4gICAgICAgICAgICAgIHNpemVzOiBcIjE5MngxOTJcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJpbWFnZS9wbmdcIixcbiAgICAgICAgICAgICAgcHVycG9zZTogXCJtYXNrYWJsZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgc3JjOiBcImFuZHJvaWQtY2hyb21lLTUxMng1MTIucG5nXCIsXG4gICAgICAgICAgICAgIHNpemVzOiBcIjUxMng1MTJcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJpbWFnZS9wbmdcIixcbiAgICAgICAgICAgICAgcHVycG9zZTogXCJtYXNrYWJsZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBsb2FkVmVyc2lvbigpLFxuICAgICAgY2hlY2tlcih7XG4gICAgICAgIG92ZXJsYXk6IHtcbiAgICAgICAgICBwb3NpdGlvbjogXCJ0clwiLFxuICAgICAgICB9LFxuICAgICAgICB0eXBlc2NyaXB0OiB0cnVlLCAvLyBjaGVjayB0eXBlc2NyaXB0IGJ1aWxkIGVycm9ycyBpbiBkZXYgc2VydmVyXG4gICAgICAgIGVzbGludDoge1xuICAgICAgICAgIC8vIGNoZWNrIGxpbnQgZXJyb3JzIGluIGRldiBzZXJ2ZXJcbiAgICAgICAgICBsaW50Q29tbWFuZDogXCJlc2xpbnQgLS1leHQgLnRzeCwudHMgc3JjXCIsXG4gICAgICAgICAgZGV2OiB7XG4gICAgICAgICAgICBsb2dMZXZlbDogW1wiZXJyb3JcIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgc3BsaXRWZW5kb3JDaHVua1BsdWdpbigpLFxuICAgICAgdmlzdWFsaXplcigpIGFzIFBsdWdpbk9wdGlvbixcbiAgICBdLFxuXG4gICAgYnVpbGQ6IHtcbiAgICAgIHNvdXJjZW1hcDogbW9kZSAhPT0gXCJwcm9kdWN0aW9uXCIsXG4gICAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICAgIG91dHB1dDoge1xuICAgICAgICAgIG1hbnVhbENodW5rcyhpZDogc3RyaW5nKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGlkLmluY2x1ZGVzKFwiQHNvemlhbGhlbGRlbitpZXRmLWxhbmd1YWdlLXRhZ3NcIikgfHxcbiAgICAgICAgICAgICAgaWQuaW5jbHVkZXMoXCJjb3VudHJ5LWxhbmd1YWdlXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwibGFuZ3VhZ2UtZGJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZC5pbmNsdWRlcyhcImhscy5qc1wiKSkge1xuICAgICAgICAgICAgICByZXR1cm4gXCJobHNcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZC5pbmNsdWRlcyhcIm5vZGUtZm9yZ2VcIikgfHwgaWQuaW5jbHVkZXMoXCJjcnlwdG8tanNcIikpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwiYXV0aFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlkLmluY2x1ZGVzKFwibG9jYWxlc1wiKSAmJiAhaWQuaW5jbHVkZXMoXCJlbi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcImxvY2FsZXNcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZC5pbmNsdWRlcyhcInJlYWN0LWRvbVwiKSkge1xuICAgICAgICAgICAgICByZXR1cm4gXCJyZWFjdC1kb21cIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpZC5pbmNsdWRlcyhcIkljb24udHN4XCIpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBcIkljb25zXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc0NhcHRpb25pbmdQYWNrYWdlID0gY2FwdGlvbmluZ1BhY2thZ2VzLnNvbWUoKHBhY2thZ2VOYW1lKSA9PlxuICAgICAgICAgICAgICBpZC5pbmNsdWRlcyhwYWNrYWdlTmFtZSksXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGlzQ2FwdGlvbmluZ1BhY2thZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFwiY2FwdGlvbi1wYXJzaW5nXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjc3M6IHtcbiAgICAgIHBvc3Rjc3M6IHtcbiAgICAgICAgcGx1Z2luczogW3RhaWx3aW5kKCksIHJ0bCgpXSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHJlc29sdmU6IHtcbiAgICAgIGFsaWFzOiB7XG4gICAgICAgIFwiQFwiOiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcIi4vc3JjXCIpLFxuICAgICAgICBcIkB0aGVtZXNcIjogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgXCIuL3RoZW1lc1wiKSxcbiAgICAgICAgXCJAc296aWFsaGVsZGVuL2lldGYtbGFuZ3VhZ2UtdGFnc1wiOiBwYXRoLnJlc29sdmUoXG4gICAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICAgIFwiLi9ub2RlX21vZHVsZXMvQHNvemlhbGhlbGRlbi9pZXRmLWxhbmd1YWdlLXRhZ3MvZGlzdC9janNcIixcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHRlc3Q6IHtcbiAgICAgIGVudmlyb25tZW50OiBcImpzZG9tXCIsXG4gICAgfSxcbiAgfTtcbn0pO1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvVXNlcnMvbWFnbnVzL0RvY3VtZW50cy9yZXBvcy9wLXN0cmVhbSBjb21iaW5lZC9wLXN0cmVhbS9wbHVnaW5zXCI7Y29uc3QgX192aXRlX2luamVjdGVkX29yaWdpbmFsX2ZpbGVuYW1lID0gXCIvVXNlcnMvbWFnbnVzL0RvY3VtZW50cy9yZXBvcy9wLXN0cmVhbSBjb21iaW5lZC9wLXN0cmVhbS9wbHVnaW5zL2hhbmRsZWJhcnMudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL1VzZXJzL21hZ251cy9Eb2N1bWVudHMvcmVwb3MvcC1zdHJlYW0lMjBjb21iaW5lZC9wLXN0cmVhbS9wbHVnaW5zL2hhbmRsZWJhcnMudHNcIjtpbXBvcnQgeyBnbG9iU3luYyB9IGZyb20gXCJnbG9iXCI7XG5pbXBvcnQgeyB2aXRlU3RhdGljQ29weSB9IGZyb20gXCJ2aXRlLXBsdWdpbi1zdGF0aWMtY29weVwiO1xuaW1wb3J0IHsgUGx1Z2luT3B0aW9uIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCBIYW5kbGViYXJzIGZyb20gXCJoYW5kbGViYXJzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlYmFycyA9IChcbiAgb3B0aW9uczogeyB2YXJzPzogUmVjb3JkPHN0cmluZywgYW55PiB9ID0ge30sXG4pOiBQbHVnaW5PcHRpb25bXSA9PiB7XG4gIGNvbnN0IGZpbGVzID0gZ2xvYlN5bmMoXCJzcmMvYXNzZXRzLyoqLyoqLmhic1wiKTtcblxuICBmdW5jdGlvbiByZW5kZXIoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IEhhbmRsZWJhcnMuY29tcGlsZShjb250ZW50KTtcbiAgICByZXR1cm4gdGVtcGxhdGUob3B0aW9ucz8udmFycyA/PyB7fSk7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIG5hbWU6IFwiaGJzLXRlbXBsYXRpbmdcIixcbiAgICAgIGVuZm9yY2U6IFwicHJlXCIsXG4gICAgICB0cmFuc2Zvcm1JbmRleEh0bWw6IHtcbiAgICAgICAgb3JkZXI6IFwicHJlXCIsXG4gICAgICAgIGhhbmRsZXIoaHRtbCkge1xuICAgICAgICAgIHJldHVybiByZW5kZXIoaHRtbCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgdml0ZVN0YXRpY0NvcHkoe1xuICAgICAgc2lsZW50OiB0cnVlLFxuICAgICAgdGFyZ2V0czogZmlsZXMubWFwKChmaWxlKSA9PiAoe1xuICAgICAgICBzcmM6IGZpbGUsXG4gICAgICAgIGRlc3Q6IFwiXCIsXG4gICAgICAgIHJlbmFtZTogcGF0aC5iYXNlbmFtZShmaWxlKS5zbGljZSgwLCAtNCksIC8vIHJlbW92ZSAuaGJzIGZpbGUgZXh0ZW5zaW9uXG4gICAgICAgIHRyYW5zZm9ybToge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICBoYW5kbGVyKGNvbnRlbnQ6IHN0cmluZykge1xuICAgICAgICAgICAgcmV0dXJuIHJlbmRlcihjb250ZW50KTtcbiAgICAg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
|