@citolab/qti-components 6.9.1-beta.9 → 7.0.1

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/cdn/index.global.js +277 -0
  2. package/cdn/index.min.cjs +4489 -0
  3. package/cdn/index.min.js +4489 -0
  4. package/dist/custom-element-eslint-rules.js +337 -0
  5. package/dist/item.css +2613 -738
  6. package/dist/qti-components/index.cjs +6704 -0
  7. package/dist/qti-components/index.cjs.map +1 -0
  8. package/dist/qti-components/index.d.cts +150 -0
  9. package/dist/qti-components/index.d.ts +7 -7
  10. package/dist/qti-components/index.js +6244 -224
  11. package/dist/qti-components/index.js.map +1 -0
  12. package/dist/qti-components-jsx.d.ts +2170 -0
  13. package/dist/qti-item/index.cjs +89 -0
  14. package/dist/qti-item/index.cjs.map +1 -0
  15. package/dist/qti-item/index.d.cts +24 -0
  16. package/dist/qti-item/index.d.ts +15 -10
  17. package/dist/qti-item/index.js +63 -1504
  18. package/dist/qti-item/index.js.map +1 -0
  19. package/dist/qti-loader/index.cjs +332 -0
  20. package/dist/qti-loader/index.cjs.map +1 -0
  21. package/dist/qti-loader/index.d.cts +20 -0
  22. package/dist/qti-loader/index.d.ts +19 -4
  23. package/dist/qti-loader/index.js +305 -2
  24. package/dist/qti-loader/index.js.map +1 -0
  25. package/dist/{qti-simple-choice-CafJuhnH.d.ts → qti-simple-choice-CynLWb8d.d.cts} +183 -171
  26. package/dist/qti-simple-choice-CynLWb8d.d.ts +1185 -0
  27. package/dist/qti-test/index.cjs +4632 -0
  28. package/dist/qti-test/index.cjs.map +1 -0
  29. package/dist/qti-test/index.d.cts +304 -0
  30. package/dist/qti-test/index.d.ts +304 -0
  31. package/dist/qti-test/index.js +4599 -0
  32. package/dist/qti-test/index.js.map +1 -0
  33. package/dist/qti-transformers/index.cjs +316 -0
  34. package/dist/qti-transformers/index.cjs.map +1 -0
  35. package/dist/qti-transformers/index.d.cts +75 -0
  36. package/dist/qti-transformers/index.d.ts +25 -120
  37. package/dist/qti-transformers/index.js +288 -2
  38. package/dist/qti-transformers/index.js.map +1 -0
  39. package/dist/vscode.css-custom-data.json +72 -0
  40. package/dist/vscode.html-custom-data.json +914 -0
  41. package/package.json +178 -68
  42. package/dist/chunk-62FWJYVB.js +0 -24
  43. package/dist/chunk-E7TLXHQH.js +0 -2
  44. package/dist/custom-elements.json +0 -8035
  45. package/dist/index.js +0 -2326
  46. /package/{LICENSE → LICENSE.md} +0 -0
  47. /package/{readme.md → README.md} +0 -0
package/package.json CHANGED
@@ -21,14 +21,33 @@
21
21
  "engines": {
22
22
  "node": ">=20.0.0"
23
23
  },
24
- "version": "6.9.1-beta.9",
24
+ "version": "7.0.1",
25
25
  "type": "module",
26
26
  "exports": {
27
- "./qti-components": "./dist/qti-components/index.js",
28
- "./qti-transformers": "./dist/qti-transformers/index.js",
29
- "./qti-item": "./dist/qti-item/index.js",
30
- "./qti-loader": "./dist/qti-loader/index.js",
31
- "./item.css": "./dist/item.css"
27
+ "./qti-components": {
28
+ "import": "./dist/qti-components/index.js",
29
+ "require": "./dist/qti-components/index.cjs"
30
+ },
31
+ "./qti-transformers": {
32
+ "import": "./dist/qti-transformers/index.js",
33
+ "require": "./dist/qti-transformers/index.cjs"
34
+ },
35
+ "./qti-item": {
36
+ "import": "./dist/qti-item/index.js",
37
+ "require": "./dist/qti-item/index.cjs"
38
+ },
39
+ "./qti-test": {
40
+ "import": "./dist/qti-test/index.js",
41
+ "require": "./dist/qti-test/index.cjs"
42
+ },
43
+ "./qti-loader": {
44
+ "import": "./dist/qti-loader/index.js",
45
+ "require": "./dist/qti-loader/index.cjs"
46
+ },
47
+ "./item.css": "./dist/item.css",
48
+ "./cdn/index.js": "./dist/cdn/index.js",
49
+ "./cdn/index.min.js": "./dist/cdn/index.min.js",
50
+ "./cdn/index.global.js": "./dist/cdn/index.global.js"
32
51
  },
33
52
  "types": "./dist/qti-components/index.d.ts",
34
53
  "typesVersions": {
@@ -42,6 +61,9 @@
42
61
  "qti-item": [
43
62
  "./dist/qti-item/index.d.ts"
44
63
  ],
64
+ "qti-test": [
65
+ "./dist/qti-test/index.d.ts"
66
+ ],
45
67
  "qti-loader": [
46
68
  "./dist/qti-loader/index.d.ts"
47
69
  ]
@@ -49,97 +71,185 @@
49
71
  },
50
72
  "files": [
51
73
  "dist",
52
- "types",
53
- "./dist/item.css"
74
+ "cdn"
54
75
  ],
55
76
  "scripts": {
56
- "test": "vitest",
57
- "dev": "vite",
77
+ "storybook": "wireit",
78
+ "watch:build": "npm run build --watch",
79
+ "npm:publish": "np",
80
+ "---": "-",
58
81
  "build": "wireit",
59
- "build-lib": "tsx scripts/build.ts",
60
- "watch-lib": "nodemon --watch \"src/**\" --ext \"ts,json,css\" --ignore \"src/**/*.spec.ts\" --exec \"tsx scripts/build.ts\" watch",
61
- "storybook": "storybook dev -p 6006",
82
+ "test": "wireit",
83
+ "attw": "wireit",
84
+ "lint": "wireit",
85
+ "cem": "wireit",
86
+ "act": "act",
87
+ "vite": "vite",
88
+ "stylelint": "stylelint \"src/**/*.css\"",
62
89
  "build-storybook": "storybook build",
63
- "test-storybook": "test-storybook",
64
- "cem": "cem analyze --watch",
65
- "lint": "eslint src/lib/**",
66
- "arethetypeswrong": "wireit",
90
+ "storybook:test": "test-storybook",
91
+ "storybook:docs": "wireit",
92
+ "storybook:docs:build": "wireit",
93
+ "chromatic": "node chromatic-runner.cjs",
67
94
  "----hooks----": "-",
68
- "prepublishOnly": "echo 'calling prepublishOnly as npm lifecycle hook to build-lib!' && npm run build-lib",
69
- "postpublish": "echo 'posthook for prosperity, does nothing for now!'",
70
- "test:browser": "vitest",
71
- "chromatic": "node chromatic-runner.cjs"
95
+ "prepublishOnly": "npm run build",
96
+ "prepare": "husky"
72
97
  },
73
98
  "wireit": {
99
+ "storybook": {
100
+ "command": "storybook dev -p 6006",
101
+ "dependencies": [
102
+ "cem:watch"
103
+ ]
104
+ },
74
105
  "build": {
75
- "command": "tsc"
106
+ "env": {
107
+ "NODE_ENV": "production"
108
+ },
109
+ "command": "tsup",
110
+ "dependencies": [
111
+ "cem",
112
+ "css"
113
+ ],
114
+ "files": [
115
+ "src/**/*.{ts,css}",
116
+ "!src/**/*.{test,spec,stories}.ts"
117
+ ],
118
+ "output": [
119
+ "dist/**/*",
120
+ "cdn/**/*",
121
+ "!dist/item.css",
122
+ "!dist/vscode.*",
123
+ "!dist/qti-components-jsx.d.ts",
124
+ "!dist/custom-element-eslint-rules.js"
125
+ ]
126
+ },
127
+ "test": {
128
+ "command": "vitest run",
129
+ "dependencies": [
130
+ "build"
131
+ ]
132
+ },
133
+ "storybook:docs": {
134
+ "command": "storybook dev --docs -c .storybook-docs",
135
+ "dependencies": [
136
+ "cem:watch"
137
+ ]
76
138
  },
77
- "arethetypeswrong": {
78
- "command": "attw --pack",
139
+ "storybook:docs:build": {
140
+ "command": "storybook build --docs -c .storybook-docs --output-dir docs",
79
141
  "dependencies": [
80
- "build-lib"
142
+ "cem"
143
+ ]
144
+ },
145
+ "lint": {
146
+ "command": "eslint --color --cache --cache-location .eslintcache src/lib/**/*.ts"
147
+ },
148
+ "cem": {
149
+ "command": "cem analyze"
150
+ },
151
+ "cem:watch": {
152
+ "command": "cem analyze --watch",
153
+ "service": {
154
+ "readyWhen": {
155
+ "lineMatches": "Created new manifest."
156
+ }
157
+ }
158
+ },
159
+ "css": {
160
+ "command": "postcss src/item.css -d dist -m"
161
+ },
162
+ "attw": {
163
+ "command": "attw --pack --exclude-entrypoints ./item.css ./cdn/index.js ./cdn/index.global.js ./cdn/index.min.js",
164
+ "dependencies": [
165
+ "build"
81
166
  ]
82
167
  }
83
168
  },
84
169
  "peerDependencies": {
85
- "@lit/context": "^1.1.0",
86
- "lit": "^3.1.1"
170
+ "@lit/context": "^1.1.2",
171
+ "lit": "^3.2.1",
172
+ "stampino": "^0.8.3"
173
+ },
174
+ "dependencies": {
175
+ "@lit/context": "^1.1.2",
176
+ "lit": "^3.2.1",
177
+ "stampino": "^0.8.3"
87
178
  },
88
179
  "devDependencies": {
89
- "@arethetypeswrong/cli": "^0.15.4",
180
+ "@arethetypeswrong/cli": "^0.17.1",
181
+ "@chromatic-com/storybook": "^3.2.2",
182
+ "@commitlint/cli": "^19.6.0",
183
+ "@commitlint/config-conventional": "^19.6.0",
90
184
  "@custom-elements-manifest/analyzer": "^0.10.3",
91
- "@lit-labs/preact-signals": "^1.0.2",
92
- "@lit/context": "^1.1.2",
93
- "@storybook/addon-a11y": "^8.3.5",
94
- "@storybook/addon-essentials": "^8.3.5",
95
- "@storybook/addon-interactions": "^8.3.5",
96
- "@storybook/addon-links": "^8.3.5",
97
- "@storybook/blocks": "^8.3.5",
98
- "@storybook/preview-api": "^8.3.5",
99
- "@storybook/test": "^8.3.5",
100
- "@storybook/test-runner": "^0.19.1",
101
- "@storybook/testing-library": "^0.2.2",
102
- "@storybook/web-components": "^8.3.5",
103
- "@storybook/web-components-vite": "^8.3.5",
185
+ "@eslint/js": "^9.16.0",
186
+ "@lit/context": "^1.1.3",
187
+ "@storybook/addon-a11y": "^8.4.7",
188
+ "@storybook/addon-essentials": "^8.4.7",
189
+ "@storybook/addon-interactions": "^8.4.7",
190
+ "@storybook/addon-links": "^8.4.7",
191
+ "@storybook/addon-storysource": "^8.4.7",
192
+ "@storybook/blocks": "^8.4.7",
193
+ "@storybook/preview-api": "^8.4.7",
194
+ "@storybook/test": "^8.4.7",
195
+ "@storybook/test-runner": "^0.20.1",
196
+ "@storybook/web-components": "^8.4.7",
197
+ "@storybook/web-components-vite": "^8.4.7",
198
+ "@swc/core": "^1.10.1",
104
199
  "@testing-library/dom": "^10.4.0",
105
200
  "@types/dom-view-transitions": "^1.0.5",
106
- "@types/node": "^22.5.0",
107
- "@typescript-eslint/eslint-plugin": "^8.2.0",
108
- "@vitest/browser": "^2.0.5",
109
- "@wdio/cli": "^9.0.7",
201
+ "@types/node": "^22.10.1",
202
+ "@typescript-eslint/eslint-plugin": "^8.17.0",
203
+ "@typescript-eslint/parser": "^8.17.0",
204
+ "@vitest/browser": "^2.1.8",
110
205
  "autoprefixer": "^10.4.20",
111
- "chromatic": "^11.11.0",
206
+ "cem-plugin-expanded-types": "^1.3.3",
207
+ "chromatic": "^11.20.0",
208
+ "custom-element-eslint-rule-generator": "^1.0.1",
209
+ "custom-element-jsx-integration": "^1.5.4",
210
+ "custom-element-react-wrappers": "^1.6.8",
112
211
  "custom-element-vs-code-integration": "^1.4.1",
113
- "dotenv": "^16.4.5",
114
- "eslint": "^8.57.0",
115
- "eslint-plugin-import": "^2.29.1",
116
- "eslint-plugin-lit": "^1.14.0",
212
+ "dotenv": "^16.4.7",
213
+ "eslint": "^9.16.0",
214
+ "eslint-import-resolver-typescript": "^3.7.0",
215
+ "eslint-plugin-import": "^2.31.0",
216
+ "eslint-plugin-lit": "^1.15.0",
117
217
  "eslint-plugin-lit-a11y": "^4.1.4",
218
+ "eslint-plugin-react": "^7.37.2",
118
219
  "eslint-plugin-sort-imports-es6-autofix": "^0.6.0",
119
- "eslint-plugin-storybook": "^0.9.0",
120
- "eslint-plugin-wc": "^2.1.1",
121
- "lit": "^3.2.0",
122
- "nodemon": "^3.1.4",
123
- "np": "^10.0.7",
220
+ "eslint-plugin-storybook": "^0.11.1",
221
+ "eslint-plugin-wc": "^2.2.0",
222
+ "fast-xml-parser": "^4.5.0",
223
+ "globals": "^15.13.0",
224
+ "husky": "^9.1.7",
225
+ "np": "^10.1.0",
226
+ "npm": "^10.9.2",
124
227
  "path-browserify": "^1.0.1",
125
- "playwright": "^1.46.1",
126
- "postcss": "^8.4.47",
228
+ "pkg-pr-new": "^0.0.37",
229
+ "playwright": "^1.49.0",
230
+ "postcss": "^8.4.49",
127
231
  "postcss-class-apply": "^4.0.1",
232
+ "postcss-cli": "^11.0.0",
128
233
  "postcss-import": "^16.1.0",
129
- "postcss-nesting": "^13.0.0",
130
- "prettier": "3.3.3",
234
+ "postcss-nesting": "^13.0.1",
235
+ "prettier": "3.4.2",
131
236
  "remark-gfm": "^4.0.0",
132
- "storybook": "^8.3.5",
133
- "tsup": "^8.2.4",
134
- "tsx": "^4.17.0",
135
- "typescript": "^5.5.4",
136
- "vite": "^5.4.2",
137
- "vite-tsconfig-paths": "^5.0.1",
138
- "vitest": "^2.0.5",
139
- "wireit": "^0.14.8"
237
+ "shadow-dom-testing-library": "^1.11.3",
238
+ "storybook": "^8.4.7",
239
+ "stylelint": "^16.11.0",
240
+ "stylelint-config-standard": "^36.0.1",
241
+ "stylelint-prettier": "^5.0.2",
242
+ "tsup": "^8.3.5",
243
+ "typescript": "^5.7.2",
244
+ "typescript-eslint": "^8.18.0",
245
+ "vite": "^6.0.3",
246
+ "vite-tsconfig-paths": "^5.1.4",
247
+ "vitest": "^2.1.8",
248
+ "wc-storybook-helpers": "^2.0.4",
249
+ "wireit": "^0.14.9"
140
250
  },
141
251
  "optionalDependencies": {
142
- "@rollup/rollup-linux-x64-gnu": "^4.21.0"
252
+ "@rollup/rollup-linux-x64-gnu": "^4.28.1"
143
253
  },
144
254
  "customElements": "custom-elements.json",
145
255
  "bugs": {
@@ -1,24 +0,0 @@
1
- var g=String.raw,b=()=>{let e,r={async load(t,s=!1){return new Promise((n,o)=>{u(t,s).then(i=>(e=i,n(r)))})},parse(t){return e=p(t),r},path:t=>(x(e,t),r),fn(t){return t(e),r},pciHooks(t){let s=["hook","module"],n=t.substring(0,t.lastIndexOf("/"));for(let o of s)e.querySelectorAll("["+o+"]").forEach(c=>{let a=c.getAttribute(o);!a.startsWith("data:")&&!a.startsWith("http")&&(c.setAttribute("base-url",t),c.setAttribute("module",n+"/"+encodeURIComponent(a+(a.endsWith(".js")?"":".js"))))});return r},customInteraction(t,s){let n=e.querySelector("qti-custom-interaction"),o=n.querySelector("object");return n.setAttribute("data-base-ref",t),n.setAttribute("data-base-item",t+s),n.setAttribute("data",o.getAttribute("data")),n.setAttribute("width",o.getAttribute("width")),n.setAttribute("height",o.getAttribute("height")),n.removeChild(o),r},convertCDATAtoComment(){return d(e),r},stripStyleSheets(){return y(e),r},html(){return new XMLSerializer().serializeToString(m(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return m(e)},xmldoc(){return e}};return r},A=()=>{let e,r={async load(t){return new Promise((s,n)=>{u(t).then(o=>(e=o,s(r)))})},parse(t){e=p(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return r},L=()=>{let e,r={async load(t){return new Promise((s,n)=>{u(t).then(o=>(e=o,s(r)))})},parse(t){return e=p(t),r},fn(t){return t(e),r},items(){return h(e)},html(){return new XMLSerializer().serializeToString(m(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return m(e)},xmldoc(){return e}};return r},f=g`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
2
- <xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
3
- <xsl:template match="@*|node()">
4
- <xsl:copy>
5
- <xsl:apply-templates select="@*|node()"/>
6
- </xsl:copy>
7
- </xsl:template>
8
-
9
- <!-- remove existing namespaces -->
10
- <xsl:template match="*">
11
- <!-- remove element prefix -->
12
- <xsl:element name="{local-name()}">
13
- <!-- process attributes -->
14
- <xsl:for-each select="@*">
15
- <!-- remove attribute prefix -->
16
- <xsl:attribute name="{local-name()}">
17
- <xsl:value-of select="."/>
18
- </xsl:attribute>
19
- </xsl:for-each>
20
- <xsl:apply-templates/>
21
- </xsl:element>
22
- </xsl:template>
23
- </xsl:stylesheet>`;function h(e){let r=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let s=t.getAttribute("identifier"),n=t.getAttribute("href"),o=t.getAttribute("category");r.push({identifier:s,href:n,category:o})}),r}var l=null;function u(e,r=!0){return r&&l!==null&&l.abort(),new Promise((t,s)=>{let n=new XMLHttpRequest;l=n,n.open("GET",e,!0),n.responseType="document",n.onload=()=>{n.status>=200&&n.status<300?t(n.responseXML):s(n.statusText)},n.onerror=()=>{s(n.statusText)},n.send()})}function p(e){return new DOMParser().parseFromString(e,"text/xml")}function m(e){let r=new XSLTProcessor,t=new DOMParser().parseFromString(f,"text/xml");return r.importStylesheet(t),r.transformToFragment(e,document)}function x(e,r){r.endsWith("/")||(r+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var o;let s="";t.getAttribute("src")&&(s="src"),t.getAttribute("href")&&(s="href"),t.getAttribute("primary-path")&&(s="primary-path");let n=(o=t.getAttribute(s))==null?void 0:o.trim();if(!n.startsWith("data:")&&!n.startsWith("http")){let i=r+encodeURI(n);t.setAttribute(s,i)}})}function d(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let s=document.createComment(t.textContent);t.replaceChild(s,t.firstChild)})}function y(e){e.querySelectorAll("qti-stylesheet").forEach(r=>r.remove())}export{b as a,A as b,L as c};
24
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IHhtbCA9IFN0cmluZy5yYXc7XG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybUl0ZW0gPSAoKToge1xuICBsb2FkOiAodXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdD86IGJvb2xlYW4pID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gIHBhcnNlOiAoeG1sU3RyaW5nOiBzdHJpbmcpID0+IHR5cGVvZiBhcGk7XG4gIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBjdXN0b21JbnRlcmFjdGlvbjogKGJhc2VSZWY6IHN0cmluZywgYmFzZUl0ZW06IHN0cmluZykgPT4gdHlwZW9mIGFwaTtcbiAgaHRtbDogKCkgPT4gc3RyaW5nO1xuICB4bWw6ICgpID0+IHN0cmluZztcbiAgaHRtbGRvYzogKCkgPT4gRG9jdW1lbnRGcmFnbWVudDtcbiAgeG1sZG9jOiAoKSA9PiBYTUxEb2N1bWVudDtcbn0gPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSBmYWxzZSkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdCkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBzZXRMb2NhdGlvbih4bWxGcmFnbWVudCwgbG9jYXRpb24pO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGZuKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSB7XG4gICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGNpSG9va3ModXJpOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBbJ2hvb2snLCAnbW9kdWxlJ107XG4gICAgICBjb25zdCBkb2N1bWVudFBhdGggPSB1cmkuc3Vic3RyaW5nKDAsIHVyaS5sYXN0SW5kZXhPZignLycpKTtcbiAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3JjQXR0cmlidXRlcyA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1snICsgYXR0cmlidXRlICsgJ10nKTtcbiAgICAgICAgc3JjQXR0cmlidXRlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHNyY1ZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSE7XG4gICAgICAgICAgaWYgKCFzcmNWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFzcmNWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIC8vIEp1c3QgcGFzdGUgdGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIHNyYyBsb2NhdGlvbiBhZnRlciB0aGUgZG9jdW1lbnRyb290UGF0aFxuICAgICAgICAgICAgLy8gb2xkIHBjaXMgY2FuIGhhdmUgYSAuanMsIG5ldyBwY2kncyBkb24ndFxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2Jhc2UtdXJsJywgdXJpKTtcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRQYXRoICsgJy8nICsgZW5jb2RlVVJJQ29tcG9uZW50KHNyY1ZhbHVlICsgKHNyY1ZhbHVlLmVuZHNXaXRoKCcuanMnKSA/ICcnIDogJy5qcycpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGN1c3RvbUludGVyYWN0aW9uKGJhc2VSZWY6IHN0cmluZywgYmFzZUl0ZW06IHN0cmluZykge1xuICAgICAgY29uc3QgcXRpQ3VzdG9tSW50ZXJhY3Rpb24gPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdxdGktY3VzdG9tLWludGVyYWN0aW9uJyk7XG4gICAgICBjb25zdCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCA9IHF0aUN1c3RvbUludGVyYWN0aW9uLnF1ZXJ5U2VsZWN0b3IoJ29iamVjdCcpO1xuXG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtYmFzZS1yZWYnLCBiYXNlUmVmKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YS1iYXNlLWl0ZW0nLCBiYXNlUmVmICsgYmFzZUl0ZW0pO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhJywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCdkYXRhJykpO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCd3aWR0aCcsIHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0LmdldEF0dHJpYnV0ZSgnd2lkdGgnKSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2hlaWdodCcsIHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0LmdldEF0dHJpYnV0ZSgnaGVpZ2h0JykpO1xuXG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5yZW1vdmVDaGlsZChxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgY29udmVydENEQVRBdG9Db21tZW50KCkge1xuICAgICAgY29udmVydENEQVRBdG9Db21tZW50KHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBzdHJpcFN0eWxlU2hlZXRzKCkge1xuICAgICAgc3RyaXBTdHlsZVNoZWV0cyh4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgaHRtbCgpIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRvSFRNTCh4bWxGcmFnbWVudCkpO1xuICAgIH0sXG4gICAgeG1sKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICBodG1sZG9jKCkge1xuICAgICAgcmV0dXJuIHRvSFRNTCh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICB4bWxkb2MoKTogWE1MRG9jdW1lbnQge1xuICAgICAgcmV0dXJuIHhtbEZyYWdtZW50OyAvLyBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG5leHBvcnQgY29uc3QgcXRpVHJhbnNmb3JtTWFuaWZlc3QgPSAoKToge1xuICBsb2FkOiAodXJpOiBzdHJpbmcpID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gIGFzc2Vzc21lbnRUZXN0OiAoKSA9PiB7IGhyZWY6IHN0cmluZzsgaWRlbnRpZmllcjogc3RyaW5nIH07XG59ID0+IHtcbiAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcblxuICBjb25zdCBhcGkgPSB7XG4gICAgYXN5bmMgbG9hZCh1cmkpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvYWRYTUwodXJpKS50aGVuKHhtbCA9PiB7XG4gICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHBhcnNlKHhtbFN0cmluZzogc3RyaW5nKSB7XG4gICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgfSxcbiAgICBhc3Nlc3NtZW50VGVzdCgpIHtcbiAgICAgIGNvbnN0IGVsID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvcigncmVzb3VyY2VbdHlwZT1cImltc3F0aV90ZXN0X3htbHYzcDBcIl0nKTtcbiAgICAgIHJldHVybiB7IGhyZWY6IGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpLCBpZGVudGlmaWVyOiBlbC5nZXRBdHRyaWJ1dGUoJ2lkZW50aWZpZXInKSB9O1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGFwaTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlIGFuZCB0cmFuc2Zvcm0gUVRJIHRlc3RzLlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSBhbmQgdHJhbnNmb3JtIFFUSSB0ZXN0cy5cbiAqIEBleGFtcGxlXG4gKiBjb25zdCBxdGlUcmFuc2Zvcm1lciA9IHF0aVRyYW5zZm9ybVRlc3QoKTtcbiAqIGF3YWl0IHF0aVRyYW5zZm9ybWVyLmxvYWQoJ2h0dHBzOi8vZXhhbXBsZS5jb20vdGVzdC54bWwnKTtcbiAqIGNvbnN0IGl0ZW1zID0gcXRpVHJhbnNmb3JtZXIuaXRlbXMoKTtcbiAqIGNvbnN0IGh0bWwgPSBxdGlUcmFuc2Zvcm1lci5odG1sKCk7XG4gKiBjb25zdCB4bWwgPSBxdGlUcmFuc2Zvcm1lci54bWwoKTtcbiAqL1xuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybVRlc3QgPSAoKToge1xuICBsb2FkOiAodXJpOiBzdHJpbmcpID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gIHBhcnNlOiAoeG1sU3RyaW5nOiBzdHJpbmcpID0+IHR5cGVvZiBhcGk7XG4gIGZuOiAoZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpID0+IHR5cGVvZiBhcGk7XG4gIGl0ZW1zOiAoKSA9PiB7IGlkZW50aWZpZXI6IHN0cmluZzsgaHJlZjogc3RyaW5nOyBjYXRlZ29yeTogc3RyaW5nIH1bXTtcbiAgaHRtbDogKCkgPT4gc3RyaW5nO1xuICB4bWw6ICgpID0+IHN0cmluZztcbiAgaHRtbGRvYzogKCkgPT4gRG9jdW1lbnRGcmFnbWVudDtcbiAgeG1sZG9jOiAoKSA9PiBYTUxEb2N1bWVudDtcbn0gPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaSkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmkpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBmbihmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCkge1xuICAgICAgZm4oeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGl0ZW1zKCkge1xuICAgICAgcmV0dXJuIGl0ZW1zRnJvbVRlc3QoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgaHRtbCgpIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHRvSFRNTCh4bWxGcmFnbWVudCkpO1xuICAgIH0sXG4gICAgeG1sKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICBodG1sZG9jKCkge1xuICAgICAgcmV0dXJuIHRvSFRNTCh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICB4bWxkb2MoKTogWE1MRG9jdW1lbnQge1xuICAgICAgcmV0dXJuIHhtbEZyYWdtZW50O1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGFwaTtcbn07XG5cbi8qICAgPCEtLSBjb252ZXJ0IENEQVRBIHRvIGNvbW1lbnRzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwidGV4dCgpW2NvbnRhaW5zKC4sICdDREFUQScpXVwiPlxuICA8eHNsOmNvbW1lbnQ+XG4gICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9XCIuXCIvPlxuICA8L3hzbDpjb21tZW50PlxuPC94c2w6dGVtcGxhdGU+XG4qL1xuXG4vKlxuICA8IS0tIHJlbW92ZSB4bWwgY29tbWVudHMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCJjb21tZW50KClcIiAvPlxuICAqL1xuXG5jb25zdCB4bWxUb0hUTUwgPSB4bWxgPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249XCIxLjBcIiB4bWxuczp4c2w9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm1cIj5cbjx4c2w6b3V0cHV0IG1ldGhvZD1cImh0bWxcIiB2ZXJzaW9uPVwiNS4wXCIgZW5jb2Rpbmc9XCJVVEYtOFwiIGluZGVudD1cInllc1wiIC8+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCJAKnxub2RlKClcIj5cbiAgICA8eHNsOmNvcHk+XG4gICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9XCJAKnxub2RlKClcIi8+XG4gICAgPC94c2w6Y29weT5cbiAgPC94c2w6dGVtcGxhdGU+XG5cbiAgPCEtLSByZW1vdmUgZXhpc3RpbmcgbmFtZXNwYWNlcyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cIipcIj5cbiAgICA8IS0tIHJlbW92ZSBlbGVtZW50IHByZWZpeCAtLT5cbiAgICA8eHNsOmVsZW1lbnQgbmFtZT1cIntsb2NhbC1uYW1lKCl9XCI+XG4gICAgICA8IS0tIHByb2Nlc3MgYXR0cmlidXRlcyAtLT5cbiAgICAgIDx4c2w6Zm9yLWVhY2ggc2VsZWN0PVwiQCpcIj5cbiAgICAgICAgPCEtLSByZW1vdmUgYXR0cmlidXRlIHByZWZpeCAtLT5cbiAgICAgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT1cIntsb2NhbC1uYW1lKCl9XCI+XG4gICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9XCIuXCIvPlxuICAgICAgICA8L3hzbDphdHRyaWJ1dGU+XG4gICAgICA8L3hzbDpmb3ItZWFjaD5cbiAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcy8+XG4gIDwveHNsOmVsZW1lbnQ+XG48L3hzbDp0ZW1wbGF0ZT5cbjwveHNsOnN0eWxlc2hlZXQ+YDtcblxuZnVuY3Rpb24gaXRlbXNGcm9tVGVzdCh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICBjb25zdCBpdGVtczogeyBpZGVudGlmaWVyOiBzdHJpbmc7IGhyZWY6IHN0cmluZzsgY2F0ZWdvcnk6IHN0cmluZyB9W10gPSBbXTtcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLWFzc2Vzc21lbnQtaXRlbS1yZWYnKS5mb3JFYWNoKGVsID0+IHtcbiAgICBjb25zdCBpZGVudGlmaWVyID0gZWwuZ2V0QXR0cmlidXRlKCdpZGVudGlmaWVyJyk7XG4gICAgY29uc3QgaHJlZiA9IGVsLmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgIGNvbnN0IGNhdGVnb3J5ID0gZWwuZ2V0QXR0cmlidXRlKCdjYXRlZ29yeScpO1xuICAgIGl0ZW1zLnB1c2goeyBpZGVudGlmaWVyLCBocmVmLCBjYXRlZ29yeSB9KTtcbiAgfSk7XG4gIHJldHVybiBpdGVtcztcbn1cblxubGV0IGN1cnJlbnRSZXF1ZXN0OiBYTUxIdHRwUmVxdWVzdCB8IG51bGwgPSBudWxsO1xuXG5mdW5jdGlvbiBsb2FkWE1MKHVybCwgY2FuY2VsUHJldmlvdXNSZXF1ZXN0ID0gdHJ1ZSkge1xuICBpZiAoY2FuY2VsUHJldmlvdXNSZXF1ZXN0ICYmIGN1cnJlbnRSZXF1ZXN0ICE9PSBudWxsKSB7XG4gICAgY3VycmVudFJlcXVlc3QuYWJvcnQoKTsgLy8gQWJvcnQgdGhlIG9uZ29pbmcgcmVxdWVzdCBpZiB0aGVyZSBpcyBvbmVcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZTxYTUxEb2N1bWVudCB8IG51bGw+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICBjdXJyZW50UmVxdWVzdCA9IHhocjsgLy8gU3RvcmUgdGhlIGN1cnJlbnQgcmVxdWVzdFxuXG4gICAgeGhyLm9wZW4oJ0dFVCcsIHVybCwgdHJ1ZSk7XG4gICAgeGhyLnJlc3BvbnNlVHlwZSA9ICdkb2N1bWVudCc7XG5cbiAgICB4aHIub25sb2FkID0gKCkgPT4ge1xuICAgICAgaWYgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApIHtcbiAgICAgICAgcmVzb2x2ZSh4aHIucmVzcG9uc2VYTUwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVqZWN0KHhoci5zdGF0dXNUZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgeGhyLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgIH07XG5cbiAgICB4aHIuc2VuZCgpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VYTUwoeG1sRG9jdW1lbnQ6IHN0cmluZykge1xuICBjb25zdCBwYXJzZXIgPSBuZXcgRE9NUGFyc2VyKCk7XG4gIGNvbnN0IHhtbEZyYWdtZW50ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh4bWxEb2N1bWVudCwgJ3RleHQveG1sJyk7XG4gIHJldHVybiB4bWxGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gdG9IVE1MKHhtbEZyYWdtZW50OiBEb2N1bWVudCk6IERvY3VtZW50RnJhZ21lbnQge1xuICBjb25zdCBwcm9jZXNzb3IgPSBuZXcgWFNMVFByb2Nlc3NvcigpO1xuICBjb25zdCB4c2x0RG9jdW1lbnQgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKHhtbFRvSFRNTCwgJ3RleHQveG1sJyk7XG4gIHByb2Nlc3Nvci5pbXBvcnRTdHlsZXNoZWV0KHhzbHREb2N1bWVudCk7XG4gIGNvbnN0IGl0ZW1IVE1MRnJhZ21lbnQgPSBwcm9jZXNzb3IudHJhbnNmb3JtVG9GcmFnbWVudCh4bWxGcmFnbWVudCwgZG9jdW1lbnQpO1xuICByZXR1cm4gaXRlbUhUTUxGcmFnbWVudDtcbn1cblxuZnVuY3Rpb24gc2V0TG9jYXRpb24oeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQsIGxvY2F0aW9uOiBzdHJpbmcpIHtcbiAgaWYgKCFsb2NhdGlvbi5lbmRzV2l0aCgnLycpKSB7XG4gICAgbG9jYXRpb24gKz0gJy8nO1xuICB9XG5cbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnW3NyY10sW2hyZWZdLFtwcmltYXJ5LXBhdGhdJykuZm9yRWFjaChlbFdpdGhTcmMgPT4ge1xuICAgIGxldCBhdHRyOiAnc3JjJyB8ICdocmVmJyB8ICdwcmltYXJ5LXBhdGgnIHwgJycgPSAnJztcblxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdzcmMnKSkge1xuICAgICAgYXR0ciA9ICdzcmMnO1xuICAgIH1cbiAgICBpZiAoZWxXaXRoU3JjLmdldEF0dHJpYnV0ZSgnaHJlZicpKSB7XG4gICAgICBhdHRyID0gJ2hyZWYnO1xuICAgIH1cbiAgICBpZiAoZWxXaXRoU3JjLmdldEF0dHJpYnV0ZSgncHJpbWFyeS1wYXRoJykpIHtcbiAgICAgIGF0dHIgPSAncHJpbWFyeS1wYXRoJztcbiAgICB9XG4gICAgY29uc3QgYXR0clZhbHVlID0gZWxXaXRoU3JjLmdldEF0dHJpYnV0ZShhdHRyKT8udHJpbSgpO1xuXG4gICAgaWYgKCFhdHRyVmFsdWUuc3RhcnRzV2l0aCgnZGF0YTonKSAmJiAhYXR0clZhbHVlLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgY29uc3QgbmV3U3JjVmFsdWUgPSBsb2NhdGlvbiArIGVuY29kZVVSSShhdHRyVmFsdWUpO1xuICAgICAgZWxXaXRoU3JjLnNldEF0dHJpYnV0ZShhdHRyLCBuZXdTcmNWYWx1ZSk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gY29udmVydENEQVRBdG9Db21tZW50KHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIGNvbnN0IGNkYXRhRWxlbWVudHMgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdxdGktY3VzdG9tLW9wZXJhdG9yW2NsYXNzPVwianMub3JnXCJdID4gcXRpLWJhc2UtdmFsdWUnKTtcbiAgY2RhdGFFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbW1lbnRUZXh0ID0gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlbGVtZW50LnRleHRDb250ZW50KTtcbiAgICBlbGVtZW50LnJlcGxhY2VDaGlsZChjb21tZW50VGV4dCwgZWxlbWVudC5maXJzdENoaWxkKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHN0cmlwU3R5bGVTaGVldHMoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgLy8gcmVtb3ZlIHF0aS1zdHlsZXNoZWV0IHRhZ1xuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdxdGktc3R5bGVzaGVldCcpLmZvckVhY2goc3R5bGVzaGVldCA9PiBzdHlsZXNoZWV0LnJlbW92ZSgpKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQUFBLElBQU1BLEVBQU0sT0FBTyxJQWtCTkMsRUFBbUIsSUFVM0IsQ0FDSCxJQUFJQyxFQUVFQyxFQUFNLENBQ1YsTUFBTSxLQUFLQyxFQUFhQyxFQUF3QixHQUFPLENBQ3JELE9BQU8sSUFBSSxR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QVcsTUFBTSxFQUFHLENBQ25FLElBQU1DLEVBQWNsQyxFQUFXLFVBQVVpQyxDQUFTLEVBQ2xESCxFQUFVLGFBQWFFLEVBQU1FLENBQVcsQ0FDMUMsQ0FDRixDQUFDLENBQ0gsQ0FFQSxTQUFTdEIsRUFBc0JyQixFQUErQixDQUN0Q0EsRUFBWSxpQkFBaUIsc0RBQXNELEVBQzNGLFFBQVE0QyxHQUFXLENBQy9CLElBQU1DLEVBQWMsU0FBUyxjQUFjRCxFQUFRLFdBQVcsRUFDOURBLEVBQVEsYUFBYUMsRUFBYUQsRUFBUSxVQUFVLENBQ3RELENBQUMsQ0FDSCxDQUVBLFNBQVN0QixFQUFpQnRCLEVBQStCLENBRXZEQSxFQUFZLGlCQUFpQixnQkFBZ0IsRUFBRSxRQUFROEMsR0FBY0EsRUFBVyxPQUFPLENBQUMsQ0FDMUYiLAogICJuYW1lcyI6IFsieG1sIiwgInF0aVRyYW5zZm9ybUl0ZW0iLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJjYW5jZWxQcmV2aW91c1JlcXVlc3QiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAibG9hZFhNTCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAiZm4iLCAiYXR0cmlidXRlcyIsICJkb2N1bWVudFBhdGgiLCAiYXR0cmlidXRlIiwgIm5vZGUiLCAic3JjVmFsdWUiLCAiYmFzZVJlZiIsICJiYXNlSXRlbSIsICJxdGlDdXN0b21JbnRlcmFjdGlvbiIsICJxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdCIsICJjb252ZXJ0Q0RBVEF0b0NvbW1lbnQiLCAic3RyaXBTdHlsZVNoZWV0cyIsICJ0b0hUTUwiLCAicXRpVHJhbnNmb3JtTWFuaWZlc3QiLCAiZWwiLCAicXRpVHJhbnNmb3JtVGVzdCIsICJpdGVtc0Zyb21UZXN0IiwgInhtbFRvSFRNTCIsICJpdGVtcyIsICJpZGVudGlmaWVyIiwgImhyZWYiLCAiY2F0ZWdvcnkiLCAiY3VycmVudFJlcXVlc3QiLCAidXJsIiwgInhociIsICJ4bWxEb2N1bWVudCIsICJwcm9jZXNzb3IiLCAieHNsdERvY3VtZW50IiwgImVsV2l0aFNyYyIsICJfYSIsICJhdHRyIiwgImF0dHJWYWx1ZSIsICJuZXdTcmNWYWx1ZSIsICJlbGVtZW50IiwgImNvbW1lbnRUZXh0IiwgInN0eWxlc2hlZXQiXQp9Cg==
@@ -1,2 +0,0 @@
1
- var j=Object.defineProperty,m=Object.defineProperties,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,q=Object.prototype.propertyIsEnumerable;var k=b=>{throw TypeError(b)};var i=(b,a,c)=>a in b?j(b,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):b[a]=c,r=(b,a)=>{for(var c in a||(a={}))p.call(a,c)&&i(b,c,a[c]);if(h)for(var c of h(a))q.call(a,c)&&i(b,c,a[c]);return b},s=(b,a)=>m(b,o(a));var t=(b,a,c,d)=>{for(var e=d>1?void 0:d?n(a,c):a,f=b.length-1,g;f>=0;f--)(g=b[f])&&(e=(d?g(a,c,e):g(e))||e);return d&&e&&j(a,c,e),e};var l=(b,a,c)=>a.has(b)||k("Cannot "+c);var u=(b,a,c)=>(l(b,a,"read from private field"),c?c.call(b):a.get(b)),v=(b,a,c)=>a.has(b)?k("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(b):a.set(b,c),w=(b,a,c,d)=>(l(b,a,"write to private field"),d?d.call(b,c):a.set(b,c),c);export{r as a,s as b,t as c,u as d,v as e,w as f};
2
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K