@editframe/create 0.6.0-beta.17 → 0.6.0-beta.18

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 (25) hide show
  1. package/dist/templates/card-poetry/package.json +4 -4
  2. package/dist/templates/react-demo/index.html +13 -0
  3. package/dist/templates/react-demo/package.json +28 -0
  4. package/dist/templates/react-demo/postcss.config.cjs +5 -0
  5. package/dist/templates/react-demo/src/Video.tsx +62 -0
  6. package/dist/templates/react-demo/src/assets/.gitkeep +0 -0
  7. package/dist/templates/react-demo/src/assets/cards/card-9-spades.json +362 -0
  8. package/dist/templates/react-demo/src/assets/cards/card-9-spades.mp3 +0 -0
  9. package/dist/templates/react-demo/src/assets/cards/card-9-spades.png +0 -0
  10. package/dist/templates/react-demo/src/assets/cards/card-joker.json +326 -0
  11. package/dist/templates/react-demo/src/assets/cards/card-joker.mp3 +0 -0
  12. package/dist/templates/react-demo/src/assets/cards/card-joker.png +0 -0
  13. package/dist/templates/react-demo/src/assets/cards/card-king-clubs.json +344 -0
  14. package/dist/templates/react-demo/src/assets/cards/card-king-clubs.mp3 +0 -0
  15. package/dist/templates/react-demo/src/assets/cards/card-king-clubs.png +0 -0
  16. package/dist/templates/react-demo/src/assets/cards/card-queen-spades.json +338 -0
  17. package/dist/templates/react-demo/src/assets/cards/card-queen-spades.mp3 +0 -0
  18. package/dist/templates/react-demo/src/assets/cards/card-queen-spades.png +0 -0
  19. package/dist/templates/react-demo/src/main.tsx +10 -0
  20. package/dist/templates/react-demo/src/styles.css +3 -0
  21. package/dist/templates/react-demo/tailwind.config.js +8 -0
  22. package/dist/templates/react-demo/vite.config.ts +16 -0
  23. package/dist/templates/simple-demo/package.json +5 -5
  24. package/package.json +1 -1
  25. package/vite.config.ts.timestamp-1720899052384-0abb0e6a326c2.mjs +0 -94
@@ -0,0 +1,338 @@
1
+ {
2
+ "text": " The Queen of Spades, a mysterious and formidable presence in the deck. Cloaked in the enigma of the Spade, she is the embodiment of intellect and intuition. The Queen of Spades, a strategist in her own right, weaves a tapestry of complexity and depth, challenging all who cross her path.",
3
+ "segments": [
4
+ {
5
+ "start": 0.12,
6
+ "end": 3.74,
7
+ "text": " The Queen of Spades, a mysterious and formidable presence in the deck.",
8
+ "confidence": 0.94,
9
+ "words": [
10
+ {
11
+ "text": "The",
12
+ "start": 0.12,
13
+ "end": 0.24,
14
+ "confidence": 0.8
15
+ },
16
+ {
17
+ "text": "Queen",
18
+ "start": 0.24,
19
+ "end": 0.4,
20
+ "confidence": 0.86
21
+ },
22
+ {
23
+ "text": "of",
24
+ "start": 0.4,
25
+ "end": 0.56,
26
+ "confidence": 0.98
27
+ },
28
+ {
29
+ "text": "Spades,",
30
+ "start": 0.56,
31
+ "end": 1.02,
32
+ "confidence": 0.99
33
+ },
34
+ {
35
+ "text": "a",
36
+ "start": 1.2,
37
+ "end": 1.28,
38
+ "confidence": 0.87
39
+ },
40
+ {
41
+ "text": "mysterious",
42
+ "start": 1.28,
43
+ "end": 1.72,
44
+ "confidence": 0.98
45
+ },
46
+ {
47
+ "text": "and",
48
+ "start": 1.72,
49
+ "end": 2.16,
50
+ "confidence": 0.99
51
+ },
52
+ {
53
+ "text": "formidable",
54
+ "start": 2.16,
55
+ "end": 2.58,
56
+ "confidence": 0.99
57
+ },
58
+ {
59
+ "text": "presence",
60
+ "start": 2.58,
61
+ "end": 3.06,
62
+ "confidence": 0.99
63
+ },
64
+ {
65
+ "text": "in",
66
+ "start": 3.06,
67
+ "end": 3.36,
68
+ "confidence": 0.98
69
+ },
70
+ {
71
+ "text": "the",
72
+ "start": 3.36,
73
+ "end": 3.5,
74
+ "confidence": 0.99
75
+ },
76
+ {
77
+ "text": "deck.",
78
+ "start": 3.5,
79
+ "end": 3.74,
80
+ "confidence": 0.87
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "start": 4.88,
86
+ "end": 8.94,
87
+ "text": " Cloaked in the enigma of the Spade, she is the embodiment of intellect and intuition.",
88
+ "confidence": 0.94,
89
+ "words": [
90
+ {
91
+ "text": "Cloaked",
92
+ "start": 4.88,
93
+ "end": 5.16,
94
+ "confidence": 0.85
95
+ },
96
+ {
97
+ "text": "in",
98
+ "start": 5.16,
99
+ "end": 5.28,
100
+ "confidence": 1.0
101
+ },
102
+ {
103
+ "text": "the",
104
+ "start": 5.28,
105
+ "end": 5.38,
106
+ "confidence": 1.0
107
+ },
108
+ {
109
+ "text": "enigma",
110
+ "start": 5.38,
111
+ "end": 5.72,
112
+ "confidence": 0.93
113
+ },
114
+ {
115
+ "text": "of",
116
+ "start": 5.72,
117
+ "end": 5.92,
118
+ "confidence": 1.0
119
+ },
120
+ {
121
+ "text": "the",
122
+ "start": 5.92,
123
+ "end": 6.02,
124
+ "confidence": 0.95
125
+ },
126
+ {
127
+ "text": "Spade,",
128
+ "start": 6.02,
129
+ "end": 6.46,
130
+ "confidence": 0.76
131
+ },
132
+ {
133
+ "text": "she",
134
+ "start": 6.64,
135
+ "end": 6.76,
136
+ "confidence": 0.96
137
+ },
138
+ {
139
+ "text": "is",
140
+ "start": 6.76,
141
+ "end": 6.88,
142
+ "confidence": 1.0
143
+ },
144
+ {
145
+ "text": "the",
146
+ "start": 6.88,
147
+ "end": 7.02,
148
+ "confidence": 1.0
149
+ },
150
+ {
151
+ "text": "embodiment",
152
+ "start": 7.02,
153
+ "end": 7.52,
154
+ "confidence": 1.0
155
+ },
156
+ {
157
+ "text": "of",
158
+ "start": 7.52,
159
+ "end": 7.7,
160
+ "confidence": 0.99
161
+ },
162
+ {
163
+ "text": "intellect",
164
+ "start": 7.7,
165
+ "end": 8.14,
166
+ "confidence": 0.99
167
+ },
168
+ {
169
+ "text": "and",
170
+ "start": 8.14,
171
+ "end": 8.46,
172
+ "confidence": 0.98
173
+ },
174
+ {
175
+ "text": "intuition.",
176
+ "start": 8.46,
177
+ "end": 8.94,
178
+ "confidence": 0.99
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "start": 10.14,
184
+ "end": 15.28,
185
+ "text": " The Queen of Spades, a strategist in her own right, weaves a tapestry of complexity and depth,",
186
+ "confidence": 0.94,
187
+ "words": [
188
+ {
189
+ "text": "The",
190
+ "start": 10.14,
191
+ "end": 10.24,
192
+ "confidence": 1.0
193
+ },
194
+ {
195
+ "text": "Queen",
196
+ "start": 10.24,
197
+ "end": 10.44,
198
+ "confidence": 0.99
199
+ },
200
+ {
201
+ "text": "of",
202
+ "start": 10.44,
203
+ "end": 10.58,
204
+ "confidence": 1.0
205
+ },
206
+ {
207
+ "text": "Spades,",
208
+ "start": 10.58,
209
+ "end": 11.06,
210
+ "confidence": 1.0
211
+ },
212
+ {
213
+ "text": "a",
214
+ "start": 11.22,
215
+ "end": 11.3,
216
+ "confidence": 0.99
217
+ },
218
+ {
219
+ "text": "strategist",
220
+ "start": 11.3,
221
+ "end": 11.94,
222
+ "confidence": 1.0
223
+ },
224
+ {
225
+ "text": "in",
226
+ "start": 11.94,
227
+ "end": 12.12,
228
+ "confidence": 0.99
229
+ },
230
+ {
231
+ "text": "her",
232
+ "start": 12.12,
233
+ "end": 12.28,
234
+ "confidence": 1.0
235
+ },
236
+ {
237
+ "text": "own",
238
+ "start": 12.28,
239
+ "end": 12.46,
240
+ "confidence": 1.0
241
+ },
242
+ {
243
+ "text": "right,",
244
+ "start": 12.46,
245
+ "end": 12.78,
246
+ "confidence": 0.99
247
+ },
248
+ {
249
+ "text": "weaves",
250
+ "start": 13.1,
251
+ "end": 13.36,
252
+ "confidence": 0.67
253
+ },
254
+ {
255
+ "text": "a",
256
+ "start": 13.36,
257
+ "end": 13.48,
258
+ "confidence": 0.99
259
+ },
260
+ {
261
+ "text": "tapestry",
262
+ "start": 13.48,
263
+ "end": 13.94,
264
+ "confidence": 0.99
265
+ },
266
+ {
267
+ "text": "of",
268
+ "start": 13.94,
269
+ "end": 14.12,
270
+ "confidence": 0.98
271
+ },
272
+ {
273
+ "text": "complexity",
274
+ "start": 14.12,
275
+ "end": 14.64,
276
+ "confidence": 0.99
277
+ },
278
+ {
279
+ "text": "and",
280
+ "start": 14.64,
281
+ "end": 15.08,
282
+ "confidence": 0.8
283
+ },
284
+ {
285
+ "text": "depth,",
286
+ "start": 15.08,
287
+ "end": 15.28,
288
+ "confidence": 0.86
289
+ }
290
+ ]
291
+ },
292
+ {
293
+ "start": 15.28,
294
+ "end": 17.38,
295
+ "text": " challenging all who cross her path.",
296
+ "confidence": 1.0,
297
+ "words": [
298
+ {
299
+ "text": "challenging",
300
+ "start": 15.28,
301
+ "end": 16.1,
302
+ "confidence": 0.98
303
+ },
304
+ {
305
+ "text": "all",
306
+ "start": 16.1,
307
+ "end": 16.46,
308
+ "confidence": 1.0
309
+ },
310
+ {
311
+ "text": "who",
312
+ "start": 16.46,
313
+ "end": 16.64,
314
+ "confidence": 1.0
315
+ },
316
+ {
317
+ "text": "cross",
318
+ "start": 16.64,
319
+ "end": 16.88,
320
+ "confidence": 1.0
321
+ },
322
+ {
323
+ "text": "her",
324
+ "start": 16.88,
325
+ "end": 17.08,
326
+ "confidence": 1.0
327
+ },
328
+ {
329
+ "text": "path.",
330
+ "start": 17.08,
331
+ "end": 17.38,
332
+ "confidence": 1.0
333
+ }
334
+ ]
335
+ }
336
+ ],
337
+ "language": "en"
338
+ }
@@ -0,0 +1,10 @@
1
+ import ReactDOM from "react-dom/client";
2
+ import { Video } from "./Video";
3
+ import "@editframe/elements/styles.css";
4
+
5
+ const root = document.getElementById("root");
6
+ if (!root) {
7
+ throw new Error("Root element not found");
8
+ }
9
+
10
+ ReactDOM.createRoot(root).render(<Video />);
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,8 @@
1
+ /** @type {import('tailwindcss').Config} */
2
+ module.exports = {
3
+ content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx,css}"],
4
+ theme: {
5
+ extend: {},
6
+ },
7
+ plugins: [],
8
+ };
@@ -0,0 +1,16 @@
1
+ import { defineConfig } from "vite";
2
+ import { viteSingleFile } from "vite-plugin-singlefile";
3
+ import react from "@vitejs/plugin-react";
4
+ import { vitePluginEditframe } from "@editframe/vite-plugin";
5
+ import path from "node:path";
6
+
7
+ export default defineConfig({
8
+ plugins: [
9
+ vitePluginEditframe({
10
+ root: path.join(__dirname, "src"),
11
+ cacheRoot: path.join(__dirname, "src", "assets"),
12
+ }),
13
+ viteSingleFile(),
14
+ react(),
15
+ ],
16
+ });
@@ -1,19 +1,19 @@
1
1
  {
2
- "name": "card-demo",
2
+ "name": "simple-demo",
3
3
  "version": "1.0.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "type": "module",
7
7
  "scripts": {
8
- "test": "echo \"Error: no test specified\" && exit 1"
8
+ "start": "editframe preview"
9
9
  },
10
10
  "keywords": [],
11
11
  "author": "",
12
12
  "license": "ISC",
13
13
  "dependencies": {
14
- "@editframe/cli": "0.6.0-beta.17",
15
- "@editframe/elements": "0.6.0-beta.17",
16
- "@editframe/vite-plugin": "0.6.0-beta.17",
14
+ "@editframe/cli": "0.6.0-beta.18",
15
+ "@editframe/elements": "0.6.0-beta.18",
16
+ "@editframe/vite-plugin": "0.6.0-beta.18",
17
17
  "tailwindcss": "^3.4.3",
18
18
  "vite": "^5.2.11",
19
19
  "vite-plugin-singlefile": "^2.0.1"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@editframe/create",
3
- "version": "0.6.0-beta.17",
3
+ "version": "0.6.0-beta.18",
4
4
  "description": "",
5
5
  "bin": {
6
6
  "create-editframe": "dist/index.js"
@@ -1,94 +0,0 @@
1
- // ../../lib/util/execPromise.ts
2
- import { exec } from "node:child_process";
3
- import { promisify } from "node:util";
4
- var execPromise = promisify(exec);
5
-
6
- // vite.config.ts
7
- import path2 from "node:path";
8
-
9
- // ../defineViteBuildConfig.ts
10
- import path from "node:path";
11
- import { defineConfig } from "file:///app/node_modules/vite/dist/node/index.js";
12
- import tsconfigPaths from "file:///app/node_modules/vite-tsconfig-paths/dist/index.mjs";
13
- import rollupTsConfigPaths from "file:///app/node_modules/rollup-plugin-tsconfig-paths/index.mjs";
14
- import dts from "file:///app/node_modules/vite-plugin-dts/dist/index.mjs";
15
- var defineViteBuildConfig = (config) => {
16
- const outDir = config.outDirPrefix ? path.join(config.root, "dist", config.outDirPrefix) : path.join(config.root, "dist");
17
- const extraEntries = config.extraEntries ?? [];
18
- return defineConfig({
19
- esbuild: {
20
- target: "es2022",
21
- platform: "browser",
22
- include: /\.(m?[jt]s|[jt]sx)$/,
23
- exclude: []
24
- },
25
- plugins: [tsconfigPaths(), dts(), ...config.plugins || []],
26
- appType: "custom",
27
- root: config.root,
28
- build: {
29
- ssr: true,
30
- target: "es2022",
31
- rollupOptions: {
32
- treeshake: "recommended",
33
- output: {
34
- inlineDynamicImports: false,
35
- preserveModules: true
36
- },
37
- external: [
38
- "@editframe/assets",
39
- "@editframe/vite-plugin",
40
- "@editframe/elements"
41
- ],
42
- plugins: [rollupTsConfigPaths({})]
43
- },
44
- emptyOutDir: true,
45
- outDir,
46
- lib: {
47
- entry: [...extraEntries, path.join(config.root, "./src/index.ts")],
48
- name: config.name,
49
- fileName: config.name,
50
- formats: ["es", "cjs"]
51
- }
52
- }
53
- });
54
- };
55
-
56
- // vite.config.ts
57
- import { cp } from "node:fs/promises";
58
- var __vite_injected_original_dirname = "/app/packages/create";
59
- var __vite_injected_original_import_meta_url = "file:///app/packages/create/vite.config.ts";
60
- var vite_config_default = defineViteBuildConfig({
61
- root: path2.dirname(new URL(__vite_injected_original_import_meta_url).pathname),
62
- name: "editframe-create",
63
- plugins: [
64
- {
65
- name: "chmod-executables",
66
- async closeBundle() {
67
- const cliExecPath = path2.join(__vite_injected_original_dirname, "dist/index.js");
68
- await execPromise(`chmod +x ${cliExecPath}`);
69
- console.log("chmod +x", cliExecPath);
70
- }
71
- },
72
- {
73
- name: "watch-external",
74
- async buildStart() {
75
- this.addWatchFile(path2.join(__vite_injected_original_dirname, "src/templates"));
76
- }
77
- },
78
- {
79
- name: "copy template",
80
- async closeBundle() {
81
- await cp(
82
- path2.join(__vite_injected_original_dirname, "src/templates"),
83
- path2.join(__vite_injected_original_dirname, "dist/templates"),
84
- { recursive: true }
85
- );
86
- console.log("Copied template into dist");
87
- }
88
- }
89
- ]
90
- });
91
- export {
92
- vite_config_default as default
93
- };
94
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vbGliL3V0aWwvZXhlY1Byb21pc2UudHMiLCAidml0ZS5jb25maWcudHMiLCAiLi4vZGVmaW5lVml0ZUJ1aWxkQ29uZmlnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL2FwcC9saWIvdXRpbFwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL2FwcC9saWIvdXRpbC9leGVjUHJvbWlzZS50c1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9pbXBvcnRfbWV0YV91cmwgPSBcImZpbGU6Ly8vYXBwL2xpYi91dGlsL2V4ZWNQcm9taXNlLnRzXCI7aW1wb3J0IHsgZXhlYyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gXCJub2RlOnV0aWxcIjtcblxuZXhwb3J0IGNvbnN0IGV4ZWNQcm9taXNlID0gcHJvbWlzaWZ5KGV4ZWMpO1xuIiwgImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCIvYXBwL3BhY2thZ2VzL2NyZWF0ZVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL2FwcC9wYWNrYWdlcy9jcmVhdGUvdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL2FwcC9wYWNrYWdlcy9jcmVhdGUvdml0ZS5jb25maWcudHNcIjtpbXBvcnQgeyBleGVjUHJvbWlzZSB9IGZyb20gXCIuLi8uLi9saWIvdXRpbC9leGVjUHJvbWlzZVwiO1xuXG5pbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB7IGRlZmluZVZpdGVCdWlsZENvbmZpZyB9IGZyb20gXCIuLi9kZWZpbmVWaXRlQnVpbGRDb25maWdcIjtcbmltcG9ydCB7IGNwIH0gZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lVml0ZUJ1aWxkQ29uZmlnKHtcbiAgcm9vdDogcGF0aC5kaXJuYW1lKG5ldyBVUkwoaW1wb3J0Lm1ldGEudXJsKS5wYXRobmFtZSksXG4gIG5hbWU6IFwiZWRpdGZyYW1lLWNyZWF0ZVwiLFxuICBwbHVnaW5zOiBbXG4gICAge1xuICAgICAgbmFtZTogXCJjaG1vZC1leGVjdXRhYmxlc1wiLFxuICAgICAgYXN5bmMgY2xvc2VCdW5kbGUoKSB7XG4gICAgICAgIGNvbnN0IGNsaUV4ZWNQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCJkaXN0L2luZGV4LmpzXCIpO1xuICAgICAgICBhd2FpdCBleGVjUHJvbWlzZShgY2htb2QgK3ggJHtjbGlFeGVjUGF0aH1gKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJjaG1vZCAreFwiLCBjbGlFeGVjUGF0aCk7XG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJ3YXRjaC1leHRlcm5hbFwiLFxuICAgICAgYXN5bmMgYnVpbGRTdGFydCgpIHtcbiAgICAgICAgdGhpcy5hZGRXYXRjaEZpbGUocGF0aC5qb2luKF9fZGlybmFtZSwgXCJzcmMvdGVtcGxhdGVzXCIpKTtcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiBcImNvcHkgdGVtcGxhdGVcIixcbiAgICAgIGFzeW5jIGNsb3NlQnVuZGxlKCkge1xuICAgICAgICBhd2FpdCBjcChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcInNyYy90ZW1wbGF0ZXNcIiksXG4gICAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCJkaXN0L3RlbXBsYXRlc1wiKSxcbiAgICAgICAgICB7IHJlY3Vyc2l2ZTogdHJ1ZSB9LFxuICAgICAgICApO1xuICAgICAgICBjb25zb2xlLmxvZyhcIkNvcGllZCB0ZW1wbGF0ZSBpbnRvIGRpc3RcIik7XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG59KTtcbiIsICJjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfZGlybmFtZSA9IFwiL2FwcC9wYWNrYWdlc1wiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiL2FwcC9wYWNrYWdlcy9kZWZpbmVWaXRlQnVpbGRDb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL2FwcC9wYWNrYWdlcy9kZWZpbmVWaXRlQnVpbGRDb25maWcudHNcIjtpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmltcG9ydCB7IGRlZmluZUNvbmZpZywgdHlwZSBVc2VyQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0c2NvbmZpZ1BhdGhzIGZyb20gXCJ2aXRlLXRzY29uZmlnLXBhdGhzXCI7XG5pbXBvcnQgcm9sbHVwVHNDb25maWdQYXRocyBmcm9tIFwicm9sbHVwLXBsdWdpbi10c2NvbmZpZy1wYXRoc1wiO1xuaW1wb3J0IGR0cyBmcm9tIFwidml0ZS1wbHVnaW4tZHRzXCI7XG5cbmludGVyZmFjZSBWaXRlQnVpbGRDb25maWcge1xuICByb290OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb3V0RGlyUHJlZml4Pzogc3RyaW5nO1xuICBwbHVnaW5zPzogVXNlckNvbmZpZ1tcInBsdWdpbnNcIl07XG4gIGV4dHJhRW50cmllcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgZGVmaW5lVml0ZUJ1aWxkQ29uZmlnID0gKGNvbmZpZzogVml0ZUJ1aWxkQ29uZmlnKSA9PiB7XG4gIGNvbnN0IG91dERpciA9IGNvbmZpZy5vdXREaXJQcmVmaXhcbiAgICA/IHBhdGguam9pbihjb25maWcucm9vdCwgXCJkaXN0XCIsIGNvbmZpZy5vdXREaXJQcmVmaXgpXG4gICAgOiBwYXRoLmpvaW4oY29uZmlnLnJvb3QsIFwiZGlzdFwiKTtcblxuICBjb25zdCBleHRyYUVudHJpZXMgPSBjb25maWcuZXh0cmFFbnRyaWVzID8/IFtdO1xuICByZXR1cm4gZGVmaW5lQ29uZmlnKHtcbiAgICBlc2J1aWxkOiB7XG4gICAgICB0YXJnZXQ6IFwiZXMyMDIyXCIsXG4gICAgICBwbGF0Zm9ybTogXCJicm93c2VyXCIsXG4gICAgICBpbmNsdWRlOiAvXFwuKG0/W2p0XXN8W2p0XXN4KSQvLFxuICAgICAgZXhjbHVkZTogW10sXG4gICAgfSxcbiAgICBwbHVnaW5zOiBbdHNjb25maWdQYXRocygpLCBkdHMoKSwgLi4uKGNvbmZpZy5wbHVnaW5zIHx8IFtdKV0sXG4gICAgYXBwVHlwZTogXCJjdXN0b21cIixcbiAgICByb290OiBjb25maWcucm9vdCxcbiAgICBidWlsZDoge1xuICAgICAgc3NyOiB0cnVlLFxuICAgICAgdGFyZ2V0OiBcImVzMjAyMlwiLFxuICAgICAgcm9sbHVwT3B0aW9uczoge1xuICAgICAgICB0cmVlc2hha2U6IFwicmVjb21tZW5kZWRcIixcbiAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgaW5saW5lRHluYW1pY0ltcG9ydHM6IGZhbHNlLFxuICAgICAgICAgIHByZXNlcnZlTW9kdWxlczogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZXh0ZXJuYWw6IFtcbiAgICAgICAgICBcIkBlZGl0ZnJhbWUvYXNzZXRzXCIsXG4gICAgICAgICAgXCJAZWRpdGZyYW1lL3ZpdGUtcGx1Z2luXCIsXG4gICAgICAgICAgXCJAZWRpdGZyYW1lL2VsZW1lbnRzXCIsXG4gICAgICAgIF0sXG4gICAgICAgIHBsdWdpbnM6IFtyb2xsdXBUc0NvbmZpZ1BhdGhzKHt9KV0sXG4gICAgICB9LFxuICAgICAgZW1wdHlPdXREaXI6IHRydWUsXG4gICAgICBvdXREaXI6IG91dERpcixcbiAgICAgIGxpYjoge1xuICAgICAgICBlbnRyeTogWy4uLmV4dHJhRW50cmllcywgcGF0aC5qb2luKGNvbmZpZy5yb290LCBcIi4vc3JjL2luZGV4LnRzXCIpXSxcbiAgICAgICAgbmFtZTogY29uZmlnLm5hbWUsXG4gICAgICAgIGZpbGVOYW1lOiBjb25maWcubmFtZSxcbiAgICAgICAgZm9ybWF0czogW1wiZXNcIiwgXCJjanNcIl0sXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufTtcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBeU4sU0FBUyxZQUFZO0FBQzlPLFNBQVMsaUJBQWlCO0FBRW5CLElBQU0sY0FBYyxVQUFVLElBQUk7OztBQ0R6QyxPQUFPQSxXQUFVOzs7QUNGNE4sT0FBTyxVQUFVO0FBRTlQLFNBQVMsb0JBQXFDO0FBQzlDLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8seUJBQXlCO0FBQ2hDLE9BQU8sU0FBUztBQVVULElBQU0sd0JBQXdCLENBQUMsV0FBNEI7QUFDaEUsUUFBTSxTQUFTLE9BQU8sZUFDbEIsS0FBSyxLQUFLLE9BQU8sTUFBTSxRQUFRLE9BQU8sWUFBWSxJQUNsRCxLQUFLLEtBQUssT0FBTyxNQUFNLE1BQU07QUFFakMsUUFBTSxlQUFlLE9BQU8sZ0JBQWdCLENBQUM7QUFDN0MsU0FBTyxhQUFhO0FBQUEsSUFDbEIsU0FBUztBQUFBLE1BQ1AsUUFBUTtBQUFBLE1BQ1IsVUFBVTtBQUFBLE1BQ1YsU0FBUztBQUFBLE1BQ1QsU0FBUyxDQUFDO0FBQUEsSUFDWjtBQUFBLElBQ0EsU0FBUyxDQUFDLGNBQWMsR0FBRyxJQUFJLEdBQUcsR0FBSSxPQUFPLFdBQVcsQ0FBQyxDQUFFO0FBQUEsSUFDM0QsU0FBUztBQUFBLElBQ1QsTUFBTSxPQUFPO0FBQUEsSUFDYixPQUFPO0FBQUEsTUFDTCxLQUFLO0FBQUEsTUFDTCxRQUFRO0FBQUEsTUFDUixlQUFlO0FBQUEsUUFDYixXQUFXO0FBQUEsUUFDWCxRQUFRO0FBQUEsVUFDTixzQkFBc0I7QUFBQSxVQUN0QixpQkFBaUI7QUFBQSxRQUNuQjtBQUFBLFFBQ0EsVUFBVTtBQUFBLFVBQ1I7QUFBQSxVQUNBO0FBQUEsVUFDQTtBQUFBLFFBQ0Y7QUFBQSxRQUNBLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7QUFBQSxNQUNuQztBQUFBLE1BQ0EsYUFBYTtBQUFBLE1BQ2I7QUFBQSxNQUNBLEtBQUs7QUFBQSxRQUNILE9BQU8sQ0FBQyxHQUFHLGNBQWMsS0FBSyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUFBLFFBQ2pFLE1BQU0sT0FBTztBQUFBLFFBQ2IsVUFBVSxPQUFPO0FBQUEsUUFDakIsU0FBUyxDQUFDLE1BQU0sS0FBSztBQUFBLE1BQ3ZCO0FBQUEsSUFDRjtBQUFBLEVBQ0YsQ0FBQztBQUNIOzs7QURwREEsU0FBUyxVQUFVO0FBTG5CLElBQU0sbUNBQW1DO0FBQXVHLElBQU0sMkNBQTJDO0FBT2pNLElBQU8sc0JBQVEsc0JBQXNCO0FBQUEsRUFDbkMsTUFBTUMsTUFBSyxRQUFRLElBQUksSUFBSSx3Q0FBZSxFQUFFLFFBQVE7QUFBQSxFQUNwRCxNQUFNO0FBQUEsRUFDTixTQUFTO0FBQUEsSUFDUDtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sTUFBTSxjQUFjO0FBQ2xCLGNBQU0sY0FBY0EsTUFBSyxLQUFLLGtDQUFXLGVBQWU7QUFDeEQsY0FBTSxZQUFZLFlBQVksV0FBVyxFQUFFO0FBQzNDLGdCQUFRLElBQUksWUFBWSxXQUFXO0FBQUEsTUFDckM7QUFBQSxJQUNGO0FBQUEsSUFDQTtBQUFBLE1BQ0UsTUFBTTtBQUFBLE1BQ04sTUFBTSxhQUFhO0FBQ2pCLGFBQUssYUFBYUEsTUFBSyxLQUFLLGtDQUFXLGVBQWUsQ0FBQztBQUFBLE1BQ3pEO0FBQUEsSUFDRjtBQUFBLElBQ0E7QUFBQSxNQUNFLE1BQU07QUFBQSxNQUNOLE1BQU0sY0FBYztBQUNsQixjQUFNO0FBQUEsVUFDSkEsTUFBSyxLQUFLLGtDQUFXLGVBQWU7QUFBQSxVQUNwQ0EsTUFBSyxLQUFLLGtDQUFXLGdCQUFnQjtBQUFBLFVBQ3JDLEVBQUUsV0FBVyxLQUFLO0FBQUEsUUFDcEI7QUFDQSxnQkFBUSxJQUFJLDJCQUEyQjtBQUFBLE1BQ3pDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJwYXRoIiwgInBhdGgiXQp9Cg==