@metricinsights/pp-dev 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/README.md +146 -229
  3. package/dist/cjs/cli.js +1 -1200
  4. package/dist/cjs/cli.js.map +1 -1
  5. package/dist/cjs/helpers.js +1 -28
  6. package/dist/cjs/helpers.js.map +1 -1
  7. package/dist/cjs/index-7kvqDDBw.js +2 -0
  8. package/dist/cjs/index-7kvqDDBw.js.map +1 -0
  9. package/dist/cjs/index.js +1 -26
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/package.json +10 -7
  12. package/dist/cjs/plugin-CoHlzIq-.js +2 -0
  13. package/dist/cjs/plugin-CoHlzIq-.js.map +1 -0
  14. package/dist/cjs/plugin.js +1 -25
  15. package/dist/cjs/plugin.js.map +1 -1
  16. package/dist/client/client.css +233 -38
  17. package/dist/client/client.css.map +1 -0
  18. package/dist/client/client.js +110 -14
  19. package/dist/client/client.js.map +1 -1
  20. package/dist/client/index.html +39 -26
  21. package/dist/esm/cli.js +1 -1173
  22. package/dist/esm/cli.js.map +1 -1
  23. package/dist/esm/helpers.js +1 -24
  24. package/dist/esm/helpers.js.map +1 -1
  25. package/dist/esm/index-C2GV98GH.js +2 -0
  26. package/dist/esm/index-C2GV98GH.js.map +1 -0
  27. package/dist/esm/index.js +1 -19
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/package.json +10 -7
  30. package/dist/esm/plugin-B909lge8.js +2 -0
  31. package/dist/esm/plugin-B909lge8.js.map +1 -0
  32. package/dist/esm/plugin.js +1 -16
  33. package/dist/esm/plugin.js.map +1 -1
  34. package/dist/types/index.d.ts +102 -2
  35. package/package.json +10 -7
  36. package/dist/cjs/index-BE4YF5iw.js +0 -331
  37. package/dist/cjs/index-BE4YF5iw.js.map +0 -1
  38. package/dist/cjs/plugin-DZS4Taov.js +0 -1315
  39. package/dist/cjs/plugin-DZS4Taov.js.map +0 -1
  40. package/dist/client/index.d.ts +0 -2
  41. package/dist/esm/index-7YgmP5z7.js +0 -308
  42. package/dist/esm/index-7YgmP5z7.js.map +0 -1
  43. package/dist/esm/plugin-BeHiwpzF.js +0 -1277
  44. package/dist/esm/plugin-BeHiwpzF.js.map +0 -1
  45. package/dist/types/cli.d.ts +0 -3
  46. package/dist/types/helpers.d.ts +0 -24
  47. package/dist/types/plugin.d.ts +0 -86
@@ -1,7 +1,107 @@
1
1
  import { InlineConfig } from 'vite';
2
- import { VitePPDevOptions, NormalizedVitePPDevOptions } from './plugin.js';
2
+ import { ViteImageOptimizer } from 'vite-plugin-image-optimizer';
3
3
  import { NextConfig } from 'next';
4
- import 'vite-plugin-image-optimizer';
4
+
5
+ type RequiredSelection<T, K extends keyof T> = Required<Pick<T, K>> & Omit<T, K>;
6
+ interface DistZipOptions {
7
+ /**
8
+ * Output ZIP archive file name.
9
+ * You can use `[templateName]` placeholder to replace it with the template name.
10
+ * @default `${templateName}.zip`
11
+ */
12
+ outFileName?: string;
13
+ /**
14
+ * Output directory for the build.
15
+ * @default 'dist-zip'
16
+ */
17
+ outDir?: string;
18
+ }
19
+ interface VitePPDevOptions {
20
+ /**
21
+ * Backend base URL to MI instance for the local proxy.
22
+ */
23
+ backendBaseURL?: string;
24
+ /**
25
+ * Portal page ID on the MI instance.
26
+ * @deprecated Use appId instead
27
+ */
28
+ portalPageId?: number;
29
+ /**
30
+ * Application ID on the MI instance.
31
+ * This is a synonym for portalPageId.
32
+ */
33
+ appId?: number;
34
+ /**
35
+ * Template name or PP internal name that will be used for the asset generation.
36
+ * Equals to package.json name field value.
37
+ */
38
+ templateName: string;
39
+ /**
40
+ * Enable or disable template variables loading from the backend.
41
+ */
42
+ templateLess?: boolean;
43
+ /**
44
+ * Enable or disable MI top bar and scripts loading from the backend for local development.
45
+ */
46
+ miHudLess?: boolean;
47
+ /**
48
+ * Enable or disable request caching to the backend by the local proxy.
49
+ * @default true
50
+ */
51
+ enableProxyCache?: boolean;
52
+ /**
53
+ * Request caching time in milliseconds.
54
+ * @default 600000 (10 minutes)
55
+ */
56
+ proxyCacheTTL?: number;
57
+ /**
58
+ * Disable SSL certificate validation for MI instances with self-signed certificates.
59
+ * @default false
60
+ */
61
+ disableSSLValidation?: boolean;
62
+ /**
63
+ * Image optimizer options.
64
+ * @default true
65
+ */
66
+ imageOptimizer?: boolean | Parameters<typeof ViteImageOptimizer>[0];
67
+ /**
68
+ * Output directory for the build.
69
+ * @default 'dist'
70
+ */
71
+ outDir?: string;
72
+ /**
73
+ * Disable or enable packing the build output into a ZIP archive.
74
+ * @default true
75
+ */
76
+ distZip?: boolean | DistZipOptions;
77
+ /**
78
+ * Backups an asset directory path for sync with the MI instance.
79
+ * @default backups
80
+ */
81
+ syncBackupsDir?: string;
82
+ /**
83
+ * Enable Metric Insights v7 features.
84
+ * @default false
85
+ * @since 0.8.0
86
+ */
87
+ v7Features?: boolean;
88
+ /**
89
+ * Personal Access Token for the MI instance.
90
+ * @default process.env.MI_ACCESS_TOKEN
91
+ * @since 0.10.0
92
+ * @example
93
+ * ```ts
94
+ * import vitePPDev from '@metricinsights/pp-dev';
95
+ *
96
+ * export default vitePPDev({
97
+ * personalAccessToken: process.env.MI_ACCESS_TOKEN,
98
+ * // other options...
99
+ * });
100
+ * ```
101
+ */
102
+ personalAccessToken?: string;
103
+ }
104
+ type NormalizedVitePPDevOptions = RequiredSelection<VitePPDevOptions, 'templateName' | 'templateLess' | 'miHudLess' | 'enableProxyCache' | 'proxyCacheTTL' | 'disableSSLValidation' | 'imageOptimizer' | 'outDir' | 'distZip' | 'syncBackupsDir' | 'v7Features' | 'personalAccessToken'>;
5
105
 
6
106
  type PPDevConfig = Omit<VitePPDevOptions, 'templateName'>;
7
107
  type PPWatchConfig = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@metricinsights/pp-dev",
3
3
  "type": "module",
4
- "version": "0.9.0",
4
+ "version": "0.10.0",
5
5
  "description": "Portal Page dev build tool",
6
6
  "bin": {
7
7
  "pp-dev": "bin/pp-dev.js"
@@ -15,6 +15,7 @@
15
15
  "build:node": "rollup --config rollup.config.ts --configPlugin typescript && node scripts/postbuild.js",
16
16
  "build:client": "rollup --config src/client/rollup.config.ts --configPlugin typescript",
17
17
  "test": "cd test && npm run build",
18
+ "release": "semantic-release",
18
19
  "version": "npm version --commit-hooks false --git-tag-version false"
19
20
  },
20
21
  "exports": {
@@ -49,10 +50,10 @@
49
50
  "node": ">=20"
50
51
  },
51
52
  "peerDependencies": {
52
- "next": ">= 13 < 15"
53
+ "next": ">= 13 < 16"
53
54
  },
54
55
  "dependencies": {
55
- "axios": "^1.7.7",
56
+ "axios": "^1.7.8",
56
57
  "cac": "^6.7.14",
57
58
  "deepmerge-ts": "^7.1.3",
58
59
  "diff-match-patch": "^1.0.5",
@@ -68,8 +69,6 @@
68
69
  "jsdom": "^25.0.1",
69
70
  "memory-cache": "^0.2.0",
70
71
  "picocolors": "^1.1.1",
71
- "pino": "^9.0.0",
72
- "pino-pretty": "^13.0.0",
73
72
  "sass": "^1.80.7",
74
73
  "sharp": "^0.33.5",
75
74
  "source-map-support": "^0.5.21",
@@ -82,9 +81,11 @@
82
81
  "winston": "^3.17.0"
83
82
  },
84
83
  "devDependencies": {
85
- "@rollup/plugin-node-resolve": "^15.3.0",
84
+ "@rollup/plugin-terser": "^0.4.4",
86
85
  "@rollup/plugin-typescript": "^12.1.1",
87
86
  "@rollup/plugin-url": "^8.0.2",
87
+ "@semantic-release/changelog": "^6.0.3",
88
+ "@semantic-release/git": "^10.0.1",
88
89
  "@types/diff": "^6.0.0",
89
90
  "@types/diff-match-patch": "^1.0.36",
90
91
  "@types/ejs": "^3.1.5",
@@ -97,6 +98,7 @@
97
98
  "rollup": "^4.26.0",
98
99
  "rollup-plugin-dts": "^6.1.1",
99
100
  "rollup-plugin-scss": "^4.0.0",
101
+ "semantic-release": "^24.2.3",
100
102
  "tslib": "^2.8.1"
101
103
  },
102
104
  "files": [
@@ -106,7 +108,8 @@
106
108
  "README.md",
107
109
  "LICENSE.md",
108
110
  "pp-dev.d.ts",
109
- "assets"
111
+ "assets",
112
+ "CHANGELOG.md"
110
113
  ],
111
114
  "directories": {
112
115
  "test": "test"
@@ -1,331 +0,0 @@
1
- 'use strict';
2
-
3
- var plugin = require('./plugin-DZS4Taov.js');
4
- var vite = require('vite');
5
- var path = require('path');
6
- var fs = require('fs');
7
- var url = require('url');
8
- var ejs = require('ejs');
9
- var esbuild = require('esbuild');
10
-
11
- var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
12
- function _interopNamespaceDefault(e) {
13
- var n = Object.create(null);
14
- if (e) {
15
- Object.keys(e).forEach(function (k) {
16
- if (k !== 'default') {
17
- var d = Object.getOwnPropertyDescriptor(e, k);
18
- Object.defineProperty(n, k, d.get ? d : {
19
- enumerable: true,
20
- get: function () { return e[k]; }
21
- });
22
- }
23
- });
24
- }
25
- n.default = e;
26
- return Object.freeze(n);
27
- }
28
-
29
- var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
30
- var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
31
-
32
- const PP_DEV_PACKAGE_DIR = path.resolve(
33
- // import.meta.url is `dist/node/constants.js` after bundle
34
- (typeof __filename !== 'undefined' && __filename) || url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-BE4YF5iw.js', document.baseURI).href))), '../../..');
35
- const PP_DEV_CLIENT_ENTRY = path.resolve(PP_DEV_PACKAGE_DIR, 'dist/client/client.js');
36
- const { version, name } = JSON.parse(fs.readFileSync(path.resolve(PP_DEV_PACKAGE_DIR, 'package.json')).toString());
37
- const VERSION = version;
38
- const PACKAGE_NAME = name;
39
- const PP_WATCH_CONFIG_NAMES = ['.pp-watch.config.js', '.pp-watch.config.ts', '.pp-watch.config.json'];
40
- const PP_DEV_CONFIG_NAMES = [
41
- '.pp-dev.config.js',
42
- '.pp-dev.config.cjs',
43
- '.pp-dev.config.mjs',
44
- '.pp-dev.config.ts',
45
- '.pp-dev.config.cts',
46
- '.pp-dev.config.mts',
47
- '.pp-dev.config.json',
48
- 'pp-dev.config.js',
49
- 'pp-dev.config.cjs',
50
- 'pp-dev.config.mjs',
51
- 'pp-dev.config.ts',
52
- 'pp-dev.config.cts',
53
- 'pp-dev.config.mts',
54
- 'pp-dev.config.json',
55
- ];
56
-
57
- const DIRNAME = path__namespace.dirname((typeof __filename !== 'undefined' && __filename) || url.fileURLToPath(new URL('.', (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-BE4YF5iw.js', document.baseURI).href)))));
58
- const PACKAGE_IMPORT = `/${PACKAGE_NAME}/client`;
59
- const CLIENT_PATH = `/${PACKAGE_IMPORT}`;
60
- function clientInjectionPlugin(opts) {
61
- const clientPanelTpl = fs__namespace.readFileSync(path__namespace.resolve(DIRNAME, 'client', 'index.html'), {
62
- encoding: 'utf8',
63
- flag: 'r',
64
- });
65
- let render;
66
- let base = '';
67
- let baseChanged = false;
68
- return {
69
- name: 'pp-dev:client',
70
- apply: 'serve',
71
- config: (config) => {
72
- config.optimizeDeps?.exclude?.push(`${PACKAGE_NAME}/client`);
73
- return config;
74
- },
75
- resolveId(source) {
76
- const pkgRegExp = new RegExp(`^\\/?${PACKAGE_NAME}\\/client\\/(.*)$`);
77
- if (pkgRegExp.test(source)) {
78
- return {
79
- id: vite.normalizePath(path__namespace.join(PP_DEV_PACKAGE_DIR, 'dist/client', source.replace(pkgRegExp, '$1'))),
80
- };
81
- }
82
- },
83
- transformIndexHtml: async (html, ctx) => {
84
- if (ctx.server?.config.base && base !== ctx.server?.config.base) {
85
- base = ctx.server.config.base;
86
- baseChanged = true;
87
- }
88
- const result = {
89
- html,
90
- tags: [
91
- {
92
- tag: 'link',
93
- injectTo: 'head',
94
- attrs: { rel: 'stylesheet', href: path__namespace.posix.join(base, PACKAGE_NAME, 'client/client.css') },
95
- },
96
- ],
97
- };
98
- const { backendBaseURL, templateLess, portalPageId, canSync = true, } = ctx.server?.config.clientInjectionPlugin || {};
99
- if (!render || baseChanged) {
100
- render = ejs.compile(clientPanelTpl.replace(new RegExp(`${CLIENT_PATH}`, 'g'), path__namespace.posix.join(base, PACKAGE_IMPORT)), { openDelimiter: '{', closeDelimiter: '}', async: true });
101
- }
102
- result.tags.push({
103
- tag: 'div',
104
- injectTo: 'body-prepend',
105
- children: await render?.({ PACKAGE_NAME, VERSION, backendBaseURL, templateLess, portalPageId, canSync }),
106
- });
107
- result.tags.push({
108
- tag: 'script',
109
- injectTo: 'body-prepend',
110
- attrs: { src: path__namespace.posix.join(base, PACKAGE_NAME, 'client/client.js'), type: 'module' },
111
- });
112
- baseChanged = false;
113
- return result;
114
- },
115
- configureServer(server) {
116
- server.config.server?.fs?.allow?.push(vite.normalizePath(path__namespace.resolve(server.config.root, path__namespace.dirname(PP_DEV_CLIENT_ENTRY))));
117
- },
118
- };
119
- }
120
-
121
- const START = '/*!\n';
122
- const PREFIX = ' * ';
123
- const END = '\n */';
124
- const replacer = (substring, $1) => `${PREFIX}${$1}`;
125
- function header (chunk) {
126
- const content = `***** DO NOT EDIT THIS CODE! *****
127
- ***** ------- *****`;
128
- return `${START}${content.replace(/^(.*)$/gm, replacer)}${END}`;
129
- }
130
-
131
- async function loadTsConfig(filePath) {
132
- const cwd = process.cwd();
133
- let isESM = false;
134
- if (/\.m[jt]s$/.test(filePath)) {
135
- isESM = true;
136
- }
137
- else if (/\.c[jt]s$/.test(filePath)) {
138
- isESM = false;
139
- }
140
- else {
141
- // check package.json for type: "module" and set `isESM` to true
142
- try {
143
- const cwd = process.cwd();
144
- const pkg = fs.readFileSync(path.resolve(cwd, 'package.json'), {
145
- encoding: 'utf-8',
146
- flag: 'r',
147
- });
148
- isESM = !!pkg && JSON.parse(pkg).type === 'module';
149
- }
150
- catch (e) {
151
- //
152
- }
153
- }
154
- const result = await esbuild.build({
155
- absWorkingDir: cwd,
156
- entryPoints: [filePath],
157
- outfile: 'out.js',
158
- write: false,
159
- target: ['node14.18', 'node16'],
160
- platform: 'node',
161
- bundle: true,
162
- format: isESM ? 'esm' : 'cjs',
163
- mainFields: ['main'],
164
- sourcemap: 'inline',
165
- metafile: true,
166
- });
167
- const { text: code } = result.outputFiles[0];
168
- const fileBase = `pp-config.timestamp-${Date.now()}-${Math.random().toString(16).slice(2)}`;
169
- const fileNameTmp = `${fileBase}.js`;
170
- const fileUrl = url.pathToFileURL(path.resolve(cwd, fileNameTmp)).toString();
171
- fs.writeFileSync(fileNameTmp, code);
172
- let config = {};
173
- try {
174
- const conf = (await import(fileUrl)).default;
175
- config = conf?.default || conf;
176
- }
177
- finally {
178
- fs.unlink(fileNameTmp, () => {
179
- //
180
- });
181
- }
182
- return config;
183
- }
184
- async function loadJsConfig(filePath) {
185
- return (await import(url.pathToFileURL(filePath).toString())).default;
186
- }
187
- async function loadJSONConfig(filePath) {
188
- return JSON.parse(fs.readFileSync(filePath, { encoding: 'utf-8' }));
189
- }
190
- async function loadConfig(dirFiles, configNames) {
191
- for (const configName of configNames) {
192
- if (dirFiles.includes(configName)) {
193
- if (/\.[cm]?ts$/i.test(configName)) {
194
- return (await loadTsConfig(configName));
195
- }
196
- else if (/\.[cm]?js$/i.test(configName)) {
197
- return (await loadJsConfig(path.resolve('.', configName)));
198
- }
199
- else if (configName.endsWith('.json')) {
200
- return (await loadJSONConfig(path.resolve('.', configName)));
201
- }
202
- }
203
- }
204
- return null;
205
- }
206
- function getPkg() {
207
- const cwd = process.cwd();
208
- try {
209
- return JSON.parse(fs.readFileSync(path.resolve(cwd, 'package.json'), {
210
- encoding: 'utf-8',
211
- flag: 'r',
212
- }));
213
- }
214
- catch {
215
- return {};
216
- }
217
- }
218
- async function getConfig() {
219
- const endsWithRegExp = /\.config\.(([cm]?ts)|([cm]?js)|(json))$/;
220
- const cwd = process.cwd();
221
- const dirContent = fs.readdirSync(cwd, { withFileTypes: true })
222
- .filter((value) => value.isFile() && endsWithRegExp.test(value.name))
223
- .map((value) => value.name);
224
- let config = {};
225
- let configFound = false;
226
- const newConfig = await loadConfig(dirContent, PP_DEV_CONFIG_NAMES);
227
- if (newConfig) {
228
- config = newConfig;
229
- configFound = true;
230
- }
231
- if (dirContent.length) {
232
- if (!configFound) {
233
- const watchConfig = await loadConfig(dirContent, PP_WATCH_CONFIG_NAMES);
234
- if (watchConfig) {
235
- config = {
236
- backendBaseURL: watchConfig.baseURL,
237
- portalPageId: watchConfig.portalPageId,
238
- };
239
- configFound = true;
240
- }
241
- }
242
- }
243
- const pkg = getPkg();
244
- if (!configFound && typeof pkg['pp-dev'] === 'object') {
245
- config = pkg['pp-dev'];
246
- }
247
- return config;
248
- }
249
-
250
- const pathPagePrefix = '/p';
251
- const pathTemplatePrefix = '/pt';
252
- async function getViteConfig() {
253
- const pkg = getPkg();
254
- const templateName = pkg.name;
255
- const ppDevConfig = await getConfig();
256
- const normalizedPPDevConfig = plugin.normalizeVitePPDevConfig(Object.assign(ppDevConfig, { templateName }));
257
- const plugins = [plugin.vitePPDev(normalizedPPDevConfig), clientInjectionPlugin()];
258
- const { outDir, distZip, imageOptimizer, templateLess } = normalizedPPDevConfig;
259
- if (imageOptimizer) {
260
- const { ViteImageOptimizer } = await import('vite-plugin-image-optimizer');
261
- plugins.push(ViteImageOptimizer(typeof imageOptimizer === 'object' ? imageOptimizer : undefined));
262
- }
263
- if (distZip) {
264
- const { default: zipPack } = await import('vite-plugin-zip-pack');
265
- plugins.push({
266
- ...zipPack(typeof distZip === 'object'
267
- ? distZip
268
- : {
269
- outFileName: `${templateName}.zip`,
270
- }),
271
- enforce: 'post',
272
- });
273
- }
274
- return {
275
- base: templateLess ? `${pathPagePrefix}/${templateName}` : `${pathTemplatePrefix}/${templateName}`,
276
- server: {
277
- port: 3000,
278
- },
279
- build: {
280
- minify: false,
281
- assetsInlineLimit: 4096,
282
- rollupOptions: {
283
- output: {
284
- banner: header,
285
- },
286
- },
287
- outDir,
288
- },
289
- css: {
290
- modules: { localsConvention: 'dashes' },
291
- scss: {
292
- api: 'modern',
293
- },
294
- },
295
- ppDevConfig: normalizedPPDevConfig,
296
- plugins,
297
- };
298
- }
299
- function withPPDev(nextjsConfig, ppDevConfig) {
300
- return async (phase, nextConfig = {}) => {
301
- const { PHASE_DEVELOPMENT_SERVER } = await import('next/constants.js');
302
- const config = await getConfig();
303
- const pkg = getPkg();
304
- const templateName = pkg.name;
305
- const nextConfiguration = typeof nextjsConfig === 'function' ? await nextjsConfig(phase, nextConfig) : nextjsConfig;
306
- if (phase === PHASE_DEVELOPMENT_SERVER) {
307
- const devConfig = Object.assign(config, ppDevConfig);
308
- const { templateLess } = devConfig;
309
- return Object.assign({ basePath: templateLess ? `/p/${templateName}` : `/pt/${templateName}`, trailingSlash: true }, nextConfiguration, {
310
- serverRuntimeConfig: {
311
- templateName,
312
- ppDevConfig: devConfig,
313
- },
314
- publicRuntimeConfig: {
315
- templateName,
316
- ppDevConfig: {
317
- backendBaseURL: devConfig.backendBaseURL,
318
- portalPageId: devConfig.portalPageId,
319
- templateLess: devConfig.templateLess,
320
- },
321
- },
322
- });
323
- }
324
- return Object.assign({ basePath: `/pt/${templateName}` }, nextConfiguration);
325
- };
326
- }
327
-
328
- exports.VERSION = VERSION;
329
- exports.getViteConfig = getViteConfig;
330
- exports.withPPDev = withPPDev;
331
- //# sourceMappingURL=index-BE4YF5iw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-BE4YF5iw.js","sources":["constants.ts","client-injection-plugin.ts","header.ts","config.ts","index.ts"],"sourcesContent":[null,null,null,null,null],"names":["resolve","fileURLToPath","readFileSync","path","fs","normalizePath","compile","build","pathToFileURL","writeFileSync","unlink","readdirSync","normalizeVitePPDevConfig","vitePPDev"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,kBAAkB,GAAGA,YAAO;AACvC;AACA,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,KAAKC,iBAAa,CAAC,mQAAe,CAAC,EACnF,UAAU,CACX;AAEM,MAAM,mBAAmB,GAAGD,YAAO,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;AAEvF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAACE,eAAY,CAACF,YAAO,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAEnG,MAAM,OAAO,GAAG;AAChB,MAAM,YAAY,GAAG,IAAc;AAEnC,MAAM,qBAAqB,GAAG,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,uBAAuB,CAAU;AAE9G,MAAM,mBAAmB,GAAG;IACjC,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,oBAAoB;CACZ;;ACbV,MAAM,OAAO,GAAGG,eAAI,CAAC,OAAO,CAC1B,CAAC,OAAO,UAAU,KAAK,WAAW,IAAI,UAAU,KAAKF,iBAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,mQAAe,CAAC,CAAC,CAClG;AAED,MAAM,cAAc,GAAG,CAAI,CAAA,EAAA,YAAY,SAAS;AAChD,MAAM,WAAW,GAAG,CAAI,CAAA,EAAA,cAAc,EAAE;AAElC,SAAU,qBAAqB,CAAC,IAAgC,EAAA;AACpE,IAAA,MAAM,cAAc,GAAGG,aAAE,CAAC,YAAY,CAACD,eAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE;AACpF,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,IAAI,EAAE,GAAG;AACV,KAAA,CAAC;AAEF,IAAA,IAAI,MAA6B;IACjC,IAAI,IAAI,GAAG,EAAE;IACb,IAAI,WAAW,GAAG,KAAK;IAEvB,OAAO;AACL,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,CAAC,MAAM,KAAI;YACjB,MAAM,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAG,EAAA,YAAY,CAAS,OAAA,CAAA,CAAC;AAE5D,YAAA,OAAO,MAAM;SACd;AACD,QAAA,SAAS,CAAC,MAAM,EAAA;YACd,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,CAAQ,KAAA,EAAA,YAAY,CAAmB,iBAAA,CAAA,CAAC;AAErE,YAAA,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAC1B,OAAO;oBACL,EAAE,EAAEE,kBAAa,CAACF,eAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;iBACjG;;SAEJ;AACD,QAAA,kBAAkB,EAAE,OAAO,IAAI,EAAE,GAAG,KAAI;AACtC,YAAA,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBAC/D,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;gBAC7B,WAAW,GAAG,IAAI;;AAGpB,YAAA,MAAM,MAAM,GAA6B;gBACvC,IAAI;AACJ,gBAAA,IAAI,EAAE;AACJ,oBAAA;AACE,wBAAA,GAAG,EAAE,MAAM;AACX,wBAAA,QAAQ,EAAE,MAAM;wBAChB,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAEA,eAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,mBAAmB,CAAC,EAAE;AAC7F,qBAAA;AACF,iBAAA;aACF;YAED,MAAM,EACJ,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,OAAO,GAAG,IAAI,GACf,GAAW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;AAE1D,YAAA,IAAI,CAAC,MAAM,IAAI,WAAW,EAAE;AAC1B,gBAAA,MAAM,GAAGG,WAAO,CACd,cAAc,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAG,EAAA,WAAW,EAAE,EAAE,GAAG,CAAC,EAAEH,eAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,EAChG,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CACzD;;AAGH,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACf,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,QAAQ,EAAE,cAAc;AACxB,gBAAA,QAAQ,EAAE,MAAM,MAAM,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AACzG,aAAA,CAAC;AAEF,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AACf,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,QAAQ,EAAE,cAAc;gBACxB,KAAK,EAAE,EAAE,GAAG,EAAEA,eAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxF,aAAA,CAAC;YAEF,WAAW,GAAG,KAAK;AAEnB,YAAA,OAAO,MAAM;SACd;AACD,QAAA,eAAe,CAAC,MAAM,EAAA;AACpB,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CACnCE,kBAAa,CAACF,eAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAEA,eAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CACnF;SACF;KACF;AACH;;AC1GA,MAAM,KAAK,GAAG,OAAO;AACrB,MAAM,MAAM,GAAG,KAAK;AACpB,MAAM,GAAG,GAAG,OAAO;AAEnB,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,EAAU,KAAK,CAAG,EAAA,MAAM,CAAG,EAAA,EAAE,EAAE;AAEtD,eAAA,EAAW,KAAoB,EAAA;AAC3C,IAAA,MAAM,OAAO,GAAG,CAAA;oBACE;AAElB,IAAA,OAAO,CAAG,EAAA,KAAK,CAAG,EAAA,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAG,EAAA,GAAG,EAAE;AACjE;;ACHA,eAAe,YAAY,CAAmB,QAAgB,EAAA;AAC5D,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAEzB,IAAI,KAAK,GAAG,KAAK;AACjB,IAAA,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC9B,KAAK,GAAG,IAAI;;AACP,SAAA,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;QACrC,KAAK,GAAG,KAAK;;SACR;;AAEL,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AACzB,YAAA,MAAM,GAAG,GAAGD,eAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE;AAC1D,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,IAAI,EAAE,GAAG;AACV,aAAA,CAAC;AAEF,YAAA,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,QAAQ;;QAClD,OAAO,CAAC,EAAE;;;;AAKd,IAAA,MAAM,MAAM,GAAG,MAAMK,aAAK,CAAC;AACzB,QAAA,aAAa,EAAE,GAAG;QAClB,WAAW,EAAE,CAAC,QAAQ,CAAC;AACvB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,MAAM,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC/B,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK;QAC7B,UAAU,EAAE,CAAC,MAAM,CAAC;AACpB,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEF,IAAA,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,CAAuB,oBAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;AAE3F,IAAA,MAAM,WAAW,GAAG,CAAG,EAAA,QAAQ,KAAK;AACpC,IAAA,MAAM,OAAO,GAAGC,iBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;AAExE,IAAAC,gBAAa,CAAC,WAAW,EAAE,IAAI,CAAC;IAEhC,IAAI,MAAM,GAAM,EAAO;AAEvB,IAAA,IAAI;QACF,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,OAAO,CAAC,EAAE,OAAO;AAE5C,QAAA,MAAM,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI;;YACtB;AACR,QAAAC,SAAM,CAAC,WAAW,EAAE,MAAK;;AAEzB,SAAC,CAAC;;AAGJ,IAAA,OAAO,MAAM;AACf;AAEA,eAAe,YAAY,CAAmB,QAAgB,EAAA;AAC5D,IAAA,OAAO,CAAC,MAAM,OAAOF,iBAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAY;AACxE;AAEA,eAAe,cAAc,CAAmB,QAAgB,EAAA;AAC9D,IAAA,OAAO,IAAI,CAAC,KAAK,CAACN,eAAY,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAM;AACvE;AAEA,eAAe,UAAU,CAAmB,QAAkB,EAAE,WAAqB,EAAA;AACnF,IAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AACpC,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACjC,YAAA,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAClC,gBAAA,QAAQ,MAAM,YAAY,CAAC,UAAU,CAAC;;AACjC,iBAAA,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzC,gBAAA,QAAQ,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;;AACpD,iBAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACvC,gBAAA,QAAQ,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;;;;AAKjE,IAAA,OAAO,IAAI;AACb;SAEgB,MAAM,GAAA;AACpB,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;AAEzB,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,CAAC,KAAK,CACfA,eAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE;AAC9C,YAAA,QAAQ,EAAE,OAAO;AACjB,YAAA,IAAI,EAAE,GAAG;AACV,SAAA,CAAC,CACH;;AACD,IAAA,MAAM;AACN,QAAA,OAAO,EAAE;;AAEb;AAEO,eAAe,SAAS,GAAA;IAC7B,MAAM,cAAc,GAAG,yCAAyC;AAChE,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,UAAU,GAAGS,cAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE;AACxD,SAAA,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACnE,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;IAE7B,IAAI,MAAM,GAAgB,EAAE;IAC5B,IAAI,WAAW,GAAG,KAAK;IAEvB,MAAM,SAAS,GAAG,MAAM,UAAU,CAAc,UAAU,EAAE,mBAAwC,CAAC;IAErG,IAAI,SAAS,EAAE;QACb,MAAM,GAAG,SAAS;QAClB,WAAW,GAAG,IAAI;;AAGpB,IAAA,IAAI,UAAU,CAAC,MAAM,EAAE;QACrB,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAgB,UAAU,EAAE,qBAA0C,CAAC;YAE3G,IAAI,WAAW,EAAE;AACf,gBAAA,MAAM,GAAG;oBACP,cAAc,EAAE,WAAW,CAAC,OAAO;oBACnC,YAAY,EAAE,WAAW,CAAC,YAAY;iBACvC;gBAED,WAAW,GAAG,IAAI;;;;AAKxB,IAAA,MAAM,GAAG,GAAG,MAAM,EAAE;IAEpB,IAAI,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;AACrD,QAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC;;AAGxB,IAAA,OAAO,MAAM;AACf;;ACtIA,MAAM,cAAc,GAAG,IAAI;AAC3B,MAAM,kBAAkB,GAAG,KAAK;AAEzB,eAAe,aAAa,GAAA;AACjC,IAAA,MAAM,GAAG,GAAG,MAAM,EAAE;AAEpB,IAAA,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI;AAE7B,IAAA,MAAM,WAAW,GAAG,MAAM,SAAS,EAAE;AACrC,IAAA,MAAM,qBAAqB,GAAGC,+BAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IAEpG,MAAM,OAAO,GAA4B,CAACC,gBAAS,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAEpG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,qBAAqB;IAE/E,IAAI,cAAc,EAAE;QAClB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,OAAO,6BAA6B,CAAC;AAE1E,QAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,cAAc,KAAK,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC;;IAGnG,IAAI,OAAO,EAAE;QACX,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,sBAAsB,CAAC;QAEjE,OAAO,CAAC,IAAI,CAAC;AACX,YAAA,GAAG,OAAO,CACR,OAAO,OAAO,KAAK;AACjB,kBAAE;AACF,kBAAE;oBACE,WAAW,EAAE,CAAG,EAAA,YAAY,CAAM,IAAA,CAAA;iBACnC,CACN;AACD,YAAA,OAAO,EAAE,MAAM;AACA,SAAA,CAAC;;IAGpB,OAAO;AACL,QAAA,IAAI,EAAE,YAAY,GAAG,GAAG,cAAc,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,GAAG,GAAG,kBAAkB,CAAA,CAAA,EAAI,YAAY,CAAE,CAAA;AAClG,QAAA,MAAM,EAAE;AACN,YAAA,IAAI,EAAE,IAAI;AACX,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,iBAAiB,EAAE,IAAI;AACvB,YAAA,aAAa,EAAE;AACb,gBAAA,MAAM,EAAE;AACN,oBAAA,MAAM,EAAE,MAAM;AACf,iBAAA;AACF,aAAA;YACD,MAAM;AACP,SAAA;AACD,QAAA,GAAG,EAAE;AACH,YAAA,OAAO,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE;AACvC,YAAA,IAAI,EAAE;AACJ,gBAAA,GAAG,EAAE,QAAQ;AACd,aAAA;AACF,SAAA;AACD,QAAA,WAAW,EAAE,qBAAqB;QAClC,OAAO;KACQ;AACnB;AAEgB,SAAA,SAAS,CACvB,YAE+F,EAC/F,WAAyB,EAAA;AAEzB,IAAA,OAAO,OAAO,KAAa,EAAE,UAAsC,GAAA,EAAE,KAAyB;QAC5F,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,OAAO,mBAAmB,CAAC;AAEtE,QAAA,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE;AAChC,QAAA,MAAM,GAAG,GAAG,MAAM,EAAE;AACpB,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI;QAC7B,MAAM,iBAAiB,GAAG,OAAO,YAAY,KAAK,UAAU,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,YAAY;AAEnH,QAAA,IAAI,KAAK,KAAK,wBAAwB,EAAE;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;AAEpD,YAAA,MAAM,EAAE,YAAY,EAAE,GAAG,SAAS;YAElC,OAAO,MAAM,CAAC,MAAM,CAClB,EAAE,QAAQ,EAAE,YAAY,GAAG,CAAM,GAAA,EAAA,YAAY,CAAE,CAAA,GAAG,CAAO,IAAA,EAAA,YAAY,CAAE,CAAA,EAAE,aAAa,EAAE,IAAI,EAAgB,EAC5G,iBAAiB,EACjB;AACE,gBAAA,mBAAmB,EAAE;oBACnB,YAAY;AACZ,oBAAA,WAAW,EAAE,SAAS;AACvB,iBAAA;AACD,gBAAA,mBAAmB,EAAE;oBACnB,YAAY;AACZ,oBAAA,WAAW,EAAE;wBACX,cAAc,EAAE,SAAS,CAAC,cAAc;wBACxC,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,YAAY,EAAE,SAAS,CAAC,YAAY;AACrC,qBAAA;AACF,iBAAA;AACY,aAAA,CAChB;;AAGH,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAO,IAAA,EAAA,YAAY,CAAE,CAAA,EAAgB,EAAE,iBAAiB,CAAC;AAC5F,KAAC;AACH;;;;;;","x_google_ignoreList":[0,1,2,3,4]}