ember-scoped-css 0.18.0 → 0.19.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.
- package/README.md +7 -0
- package/declarations/lib/path/hash-from-absolute-path.d.ts +3 -0
- package/declarations/lib/path/hash-from-absolute-path.d.ts.map +1 -0
- package/declarations/lib/path/hash-from-absolute-path.test.d.ts +2 -0
- package/declarations/lib/path/hash-from-absolute-path.test.d.ts.map +1 -0
- package/declarations/lib/path/hash-from-module-path.d.ts +31 -0
- package/declarations/lib/path/hash-from-module-path.d.ts.map +1 -0
- package/declarations/lib/path/template-transform-paths.d.ts +11 -0
- package/declarations/lib/path/template-transform-paths.d.ts.map +1 -0
- package/declarations/lib/path/template-transform-paths.test.d.ts +2 -0
- package/declarations/lib/path/template-transform-paths.test.d.ts.map +1 -0
- package/declarations/lib/path/utils.appPath.test.d.ts +2 -0
- package/declarations/lib/path/utils.appPath.test.d.ts.map +1 -0
- package/declarations/lib/path/utils.d.ts +85 -0
- package/declarations/lib/path/utils.d.ts.map +1 -0
- package/declarations/lib/path/utils.hashFrom.test.d.ts +2 -0
- package/declarations/lib/path/utils.hashFrom.test.d.ts.map +1 -0
- package/declarations/lib/path/utils.isRelevantFile.test.d.ts +2 -0
- package/declarations/lib/path/utils.isRelevantFile.test.d.ts.map +1 -0
- package/declarations/lib/path/utils.paths.test.d.ts +7 -0
- package/declarations/lib/path/utils.paths.test.d.ts.map +1 -0
- package/dist/cjs/app-css-loader.cjs +220 -0
- package/dist/cjs/app-dependency-loader.cjs +41 -0
- package/dist/cjs/babel-plugin.cjs +378 -0
- package/dist/cjs/ember-classic-support.cjs +466 -0
- package/dist/cjs/index.cjs +662 -0
- package/dist/cjs/template-plugin.cjs +434 -0
- package/dist/runtime/test-support.js +7 -8
- package/dist/runtime/test-support.js.map +3 -3
- package/package.json +35 -25
- package/src/build/app-css-loader.js +19 -14
- package/src/build/app-dependency-loader.js +4 -4
- package/src/build/app-js-unplugin.js +3 -10
- package/src/build/babel-plugin.js +26 -35
- package/src/build/ember-classic-support.js +21 -14
- package/src/build/scoped-css-unplugin.js +8 -10
- package/src/build/template-plugin.js +76 -0
- package/src/lib/css/utils.js +17 -0
- package/src/lib/path/hash-from-absolute-path.js +16 -0
- package/src/lib/path/hash-from-absolute-path.test.ts +42 -0
- package/src/lib/path/hash-from-module-path.js +43 -0
- package/src/lib/path/template-transform-paths.js +103 -0
- package/src/lib/path/template-transform-paths.test.ts +47 -0
- package/src/lib/path/utils.appPath.test.ts +33 -0
- package/src/lib/path/utils.hashFrom.test.ts +51 -0
- package/src/lib/path/utils.isRelevantFile.test.ts +75 -0
- package/src/lib/path/utils.js +328 -0
- package/src/lib/path/utils.paths.test.ts +26 -0
- package/src/lib/replaceGlimmerAst.js +2 -3
- package/src/lib/rewriteHbs.js +15 -12
- package/src/runtime/test-support.ts +4 -4
- package/declarations/lib/generateRelativePathHash.d.ts +0 -7
- package/declarations/lib/generateRelativePathHash.d.ts.map +0 -1
- package/dist/cjs/build/app-css-loader.cjs +0 -202
- package/dist/cjs/build/app-dependency-loader.cjs +0 -53
- package/dist/cjs/build/ember-classic-support.cjs +0 -458
- package/dist/cjs/build/index.cjs +0 -656
- package/dist/cjs/scoped-babel-plugin.cjs +0 -295
- package/src/lib/fsExists.js +0 -11
- package/src/lib/generateAbsolutePathHash.js +0 -176
- package/src/lib/generateRelativePathHash.js +0 -10
- package/src/scoped-babel-plugin.js +0 -1
package/README.md
CHANGED
|
@@ -19,6 +19,13 @@ This build tool emits CSS in a `@layer`.
|
|
|
19
19
|
- non-embroider apps
|
|
20
20
|
- embroider apps
|
|
21
21
|
|
|
22
|
+
| You Have | ember-scoped-css | ember-scoped-css-compat |
|
|
23
|
+
| -------- | ----------- | ---------------------- |
|
|
24
|
+
| ember-template-imports@v4 or babel-plugin-ember-template-compilation@2.2.5+ | 0.19.0 | 10.0.0 |
|
|
25
|
+
| ember-template-imports@v3 or babel-plugin-ember-template-compilation@2.2.1 or rollup-plugin-glimmer-template-tag | <= 0.18.0 | <= 9.0.0 |
|
|
26
|
+
| classic components | <= 0.18.0 | <= 8.0.0 |
|
|
27
|
+
| ember < 4 | <= 0.18.0 | <= 8.0.0 |
|
|
28
|
+
|
|
22
29
|
|
|
23
30
|
## Installation for a non-embroider ember app
|
|
24
31
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-from-absolute-path.d.ts","sourceRoot":"","sources":["../../../src/lib/path/hash-from-absolute-path.js"],"names":[],"mappings":"AAKA,gEAUC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-from-absolute-path.test.d.ts","sourceRoot":"","sources":["../../../src/lib/path/hash-from-absolute-path.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The intent of this function is to generate the suffix/postfix for the
|
|
3
|
+
* css classes, based on the module-scoped path name.
|
|
4
|
+
*
|
|
5
|
+
* for example,
|
|
6
|
+
* hash('my-app/components/foo')
|
|
7
|
+
* instead of
|
|
8
|
+
* hash('app/components/foo')
|
|
9
|
+
*
|
|
10
|
+
* (unless your app name is 'app')
|
|
11
|
+
*
|
|
12
|
+
* @param {string} modulePath
|
|
13
|
+
* @returns {string}
|
|
14
|
+
*/
|
|
15
|
+
export function hash(modulePath: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* The intent of this function is to generate the suffix/postfix for the
|
|
18
|
+
* css classes, based on the module-scoped path name.
|
|
19
|
+
*
|
|
20
|
+
* for example,
|
|
21
|
+
* hash('my-app/components/foo')
|
|
22
|
+
* instead of
|
|
23
|
+
* hash('app/components/foo')
|
|
24
|
+
*
|
|
25
|
+
* (unless your app name is 'app')
|
|
26
|
+
*
|
|
27
|
+
* @param {string} modulePath
|
|
28
|
+
* @returns {string}
|
|
29
|
+
*/
|
|
30
|
+
export function hashFromModulePath(modulePath: string): string;
|
|
31
|
+
//# sourceMappingURL=hash-from-module-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hash-from-module-path.d.ts","sourceRoot":"","sources":["../../../src/lib/path/hash-from-module-path.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,iCAHW,MAAM,GACJ,MAAM,CAIlB;AAhBD;;;;;;;;;;;;;GAaG;AACH,+CAHW,MAAM,GACJ,MAAM,CAIlB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* template plugins do not hand us the correct file path.
|
|
3
|
+
* additionally, we may not be able to rely on this data in the future,
|
|
4
|
+
* so this functions acts as a means of normalizing _whatever_ we're given
|
|
5
|
+
* in the future.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} filename
|
|
8
|
+
* @returns {string} the absolute path to the file
|
|
9
|
+
*/
|
|
10
|
+
export function fixFilename(filename: string): string;
|
|
11
|
+
//# sourceMappingURL=template-transform-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-transform-paths.d.ts","sourceRoot":"","sources":["../../../src/lib/path/template-transform-paths.js"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,sCAHW,MAAM,GACJ,MAAM,CAqElB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-transform-paths.test.d.ts","sourceRoot":"","sources":["../../../src/lib/path/template-transform-paths.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.appPath.test.d.ts","sourceRoot":"","sources":["../../../src/lib/path/utils.appPath.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regardless of what the filePath format is,
|
|
3
|
+
* this will try to return the correct postfix.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} filePath
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export function hashFrom(filePath: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Based on ember's component location conventions,
|
|
11
|
+
* this function will provide a path for where we
|
|
12
|
+
* expect the CSS to live.
|
|
13
|
+
*
|
|
14
|
+
* For co-located structure:
|
|
15
|
+
* - components/my-component.hbs
|
|
16
|
+
* - components/my-component.css
|
|
17
|
+
*
|
|
18
|
+
* For nested co-located structure
|
|
19
|
+
* - components/my-component/foo.hbs
|
|
20
|
+
* - components/my-component/foo.css
|
|
21
|
+
*
|
|
22
|
+
* For Pods routes structure
|
|
23
|
+
* - routes/my-route/template.{hbs,js}
|
|
24
|
+
* - routes/my-route/styles.css
|
|
25
|
+
*
|
|
26
|
+
* Deliberately not supported:
|
|
27
|
+
* - components w/ pods -- this is deprecated in 5.10
|
|
28
|
+
*
|
|
29
|
+
* @param {string} fileName - the hbs, js, gjs, gts or whatever co-located path.
|
|
30
|
+
* @returns {string} - expected css path
|
|
31
|
+
*/
|
|
32
|
+
export function cssPathFor(fileName: string): string;
|
|
33
|
+
/**
|
|
34
|
+
* Note that components in the "pods" convention will
|
|
35
|
+
* never be supported.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} filePath
|
|
38
|
+
*/
|
|
39
|
+
export function isPodTemplate(filePath: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Note that components in the "pods" convention will
|
|
42
|
+
* never be supported.
|
|
43
|
+
*
|
|
44
|
+
* Checks if a file ends with
|
|
45
|
+
* - template.js
|
|
46
|
+
* - template.hbs
|
|
47
|
+
* - styles.css
|
|
48
|
+
*
|
|
49
|
+
* @param {string} filePath
|
|
50
|
+
*/
|
|
51
|
+
export function isPod(filePath: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @param {string} filePath
|
|
55
|
+
* @returns the same path, but without the extension
|
|
56
|
+
*/
|
|
57
|
+
export function withoutExtension(filePath: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Examples for fileName
|
|
60
|
+
* - absolute on-disk path
|
|
61
|
+
* - in webpack
|
|
62
|
+
* - URL-absolute path, starting with /
|
|
63
|
+
*
|
|
64
|
+
* @param {string} fileName
|
|
65
|
+
* @param {string[]} [additionalRoots]
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export function isRelevantFile(fileName: string, additionalRoots?: string[] | undefined): boolean | undefined;
|
|
69
|
+
export function packageScopedPathToModulePath(packageScopedPath: any): string;
|
|
70
|
+
/**
|
|
71
|
+
* returns the app-module path of the source file
|
|
72
|
+
*
|
|
73
|
+
* This assumes normal ember app conventions
|
|
74
|
+
*
|
|
75
|
+
* which is `<package.json#name>/path-to-file`
|
|
76
|
+
*/
|
|
77
|
+
export function appPath(sourcePath: any): string;
|
|
78
|
+
/**
|
|
79
|
+
* Populates the "seen" workspace cache,
|
|
80
|
+
* so that we don't hit the file system too often.
|
|
81
|
+
*/
|
|
82
|
+
export function findWorkspacePath(sourcePath: any): any;
|
|
83
|
+
export { hashFromAbsolutePath } from "./hash-from-absolute-path.js";
|
|
84
|
+
export { hashFromModulePath } from "./hash-from-module-path.js";
|
|
85
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/path/utils.js"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,mCAHW,MAAM,UAShB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qCAHW,MAAM,GACJ,MAAM,CAalB;AAED;;;;;GAKG;AACH,wCAFW,MAAM,WAQhB;AAED;;;;;;;;;;GAUG;AACH,gCAFW,MAAM,WAYhB;AAED;;;;GAIG;AACH,2CAHW,MAAM,UAOhB;AAMD;;;;;;;;;GASG;AACH,yCAJW,MAAM,+DAmEhB;AAED,8EAsCC;AAED;;;;;;GAMG;AACH,iDA4BC;AAoBD;;;GAGG;AACH,wDAgBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.hashFrom.test.d.ts","sourceRoot":"","sources":["../../../src/lib/path/utils.hashFrom.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.isRelevantFile.test.d.ts","sourceRoot":"","sources":["../../../src/lib/path/utils.isRelevantFile.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.paths.test.d.ts","sourceRoot":"","sources":["../../../src/lib/path/utils.paths.test.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,KAAK;;;;;CAKjB,CAAC"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/build/app-css-loader.js
|
|
31
|
+
var app_css_loader_exports = {};
|
|
32
|
+
__export(app_css_loader_exports, {
|
|
33
|
+
default: () => app_css_loader_default
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(app_css_loader_exports);
|
|
36
|
+
var import_node_fs2 = require("node:fs");
|
|
37
|
+
var import_node_path2 = __toESM(require("node:path"), 1);
|
|
38
|
+
|
|
39
|
+
// src/lib/path/utils.js
|
|
40
|
+
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
41
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
42
|
+
var import_find_up = __toESM(require("find-up"), 1);
|
|
43
|
+
|
|
44
|
+
// src/lib/path/hash-from-module-path.js
|
|
45
|
+
var import_blueimp_md5 = __toESM(require("blueimp-md5"), 1);
|
|
46
|
+
function hash(modulePath) {
|
|
47
|
+
return "e" + (0, import_blueimp_md5.default)(modulePath).substring(0, 8);
|
|
48
|
+
}
|
|
49
|
+
var hashFromModulePath = hash;
|
|
50
|
+
|
|
51
|
+
// src/lib/path/hash-from-absolute-path.js
|
|
52
|
+
function hashFromAbsolutePath(absolutePath) {
|
|
53
|
+
const modulePath = appPath(absolutePath);
|
|
54
|
+
const postfix = hash(modulePath);
|
|
55
|
+
return postfix;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// src/lib/path/utils.js
|
|
59
|
+
function hashFrom(filePath) {
|
|
60
|
+
if (filePath.startsWith("/")) {
|
|
61
|
+
return hashFromAbsolutePath(filePath);
|
|
62
|
+
}
|
|
63
|
+
return hashFromModulePath(filePath);
|
|
64
|
+
}
|
|
65
|
+
function isPodTemplate(filePath) {
|
|
66
|
+
if (filePath.includes("/components/")) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
return filePath.endsWith("template.js") || filePath.endsWith("template.hbs");
|
|
70
|
+
}
|
|
71
|
+
function isPod(filePath) {
|
|
72
|
+
if (filePath.includes("/components/")) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (isPodTemplate(filePath)) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return filePath.endsWith("styles.css");
|
|
79
|
+
}
|
|
80
|
+
function packageScopedPathToModulePath(packageScopedPath) {
|
|
81
|
+
let packageRelative = packageScopedPath.replace(/^\/src\//, "/");
|
|
82
|
+
let parsed = import_node_path.default.parse(packageRelative);
|
|
83
|
+
if (isPod(packageRelative)) {
|
|
84
|
+
return parsed.dir;
|
|
85
|
+
}
|
|
86
|
+
let localPackagerStylePath = import_node_path.default.join(parsed.dir, parsed.name);
|
|
87
|
+
return localPackagerStylePath;
|
|
88
|
+
}
|
|
89
|
+
function appPath(sourcePath) {
|
|
90
|
+
let workspacePath = findWorkspacePath(sourcePath);
|
|
91
|
+
let name = workspacePackageName(sourcePath);
|
|
92
|
+
let packageRelative = sourcePath.replace(workspacePath, "");
|
|
93
|
+
packageRelative = packageRelative.replace(`/app/`, `/`);
|
|
94
|
+
packageRelative = packageRelative.replace(
|
|
95
|
+
`/node_modules/.embroider/rewritten-app/`,
|
|
96
|
+
"/"
|
|
97
|
+
);
|
|
98
|
+
let localPackagerStylePath = packageScopedPathToModulePath(packageRelative);
|
|
99
|
+
return `${name}${localPackagerStylePath}`;
|
|
100
|
+
}
|
|
101
|
+
var CACHE = /* @__PURE__ */ new Set();
|
|
102
|
+
function hasSeen(sourcePath) {
|
|
103
|
+
for (let entry of CACHE) {
|
|
104
|
+
if (sourcePath.startsWith(entry)) {
|
|
105
|
+
return entry;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
function findWorkspacePath(sourcePath) {
|
|
111
|
+
let seen = hasSeen(sourcePath);
|
|
112
|
+
if (seen) {
|
|
113
|
+
return seen;
|
|
114
|
+
}
|
|
115
|
+
const packageJsonPath = import_find_up.default.sync("package.json", {
|
|
116
|
+
cwd: import_node_path.default.dirname(sourcePath)
|
|
117
|
+
});
|
|
118
|
+
const workspacePath = import_node_path.default.dirname(packageJsonPath);
|
|
119
|
+
CACHE.add(workspacePath);
|
|
120
|
+
return workspacePath;
|
|
121
|
+
}
|
|
122
|
+
var MANIFEST_CACHE = /* @__PURE__ */ new Map();
|
|
123
|
+
function workspacePackageName(sourcePath) {
|
|
124
|
+
const workspace = findWorkspacePath(sourcePath);
|
|
125
|
+
let existing = MANIFEST_CACHE.get(workspace);
|
|
126
|
+
if (existing) {
|
|
127
|
+
return existing.name;
|
|
128
|
+
}
|
|
129
|
+
let buffer = import_node_fs.default.readFileSync(import_node_path.default.join(workspace, "package.json"));
|
|
130
|
+
let content = buffer.toString();
|
|
131
|
+
let json = JSON.parse(content);
|
|
132
|
+
MANIFEST_CACHE.set(workspace, json);
|
|
133
|
+
return json.name;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// src/lib/rewriteCss.js
|
|
137
|
+
var import_postcss = __toESM(require("postcss"), 1);
|
|
138
|
+
var import_postcss_selector_parser = __toESM(require("postcss-selector-parser"), 1);
|
|
139
|
+
|
|
140
|
+
// src/lib/isInsideGlobal.js
|
|
141
|
+
function isInsideGlobal(node, func) {
|
|
142
|
+
const parent = node.parent;
|
|
143
|
+
if (!parent) return false;
|
|
144
|
+
if (parent.type === "pseudo" && parent.value === ":global") return true;
|
|
145
|
+
return isInsideGlobal(parent, func);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// src/lib/rewriteCss.js
|
|
149
|
+
function rewriteSelector(sel, postfix) {
|
|
150
|
+
const transform = (selectors) => {
|
|
151
|
+
selectors.walk((selector) => {
|
|
152
|
+
if (selector.type === "class" && !isInsideGlobal(selector)) {
|
|
153
|
+
selector.value += "_" + postfix;
|
|
154
|
+
} else if (selector.type === "tag" && !isInsideGlobal(selector)) {
|
|
155
|
+
selector.replaceWith(
|
|
156
|
+
import_postcss_selector_parser.default.tag({ value: selector.value }),
|
|
157
|
+
import_postcss_selector_parser.default.className({ value: postfix })
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
selectors.walk((selector) => {
|
|
162
|
+
if (selector.type === "pseudo" && selector.value === ":global") {
|
|
163
|
+
selector.replaceWith(...selector.nodes);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
const transformed = (0, import_postcss_selector_parser.default)(transform).processSync(sel);
|
|
168
|
+
return transformed;
|
|
169
|
+
}
|
|
170
|
+
function isInsideKeyframes(node) {
|
|
171
|
+
const parent = node.parent;
|
|
172
|
+
if (!parent) return false;
|
|
173
|
+
if (parent.type === "atrule" && parent.name === "keyframes") return true;
|
|
174
|
+
return isInsideKeyframes(parent);
|
|
175
|
+
}
|
|
176
|
+
function rewriteCss(css, postfix, fileName, layerName) {
|
|
177
|
+
const layerNameWithDefault = layerName ?? "components";
|
|
178
|
+
const ast = import_postcss.default.parse(css);
|
|
179
|
+
ast.walk((node) => {
|
|
180
|
+
if (node.type === "rule" && !isInsideKeyframes(node)) {
|
|
181
|
+
node.selector = rewriteSelector(node.selector, postfix);
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
const rewrittenCss = ast.toString();
|
|
185
|
+
if (!layerNameWithDefault) {
|
|
186
|
+
return `/* ${fileName} */
|
|
187
|
+
${rewrittenCss}
|
|
188
|
+
`;
|
|
189
|
+
}
|
|
190
|
+
return `/* ${fileName} */
|
|
191
|
+
@layer ${layerNameWithDefault} {
|
|
192
|
+
|
|
193
|
+
` + rewrittenCss + "\n}\n";
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// src/build/app-css-loader.js
|
|
197
|
+
async function app_css_loader_default(code) {
|
|
198
|
+
const options = this.getOptions();
|
|
199
|
+
const cssPath = this.resourcePath;
|
|
200
|
+
if (!cssPath.startsWith(this.rootContext)) {
|
|
201
|
+
return code;
|
|
202
|
+
}
|
|
203
|
+
const cssFileName = import_node_path2.default.basename(cssPath);
|
|
204
|
+
const hbsPath = cssPath.replace(".css", ".hbs");
|
|
205
|
+
const gjsPath = cssPath.replace(".css", ".js");
|
|
206
|
+
const hbsExists = (0, import_node_fs2.existsSync)(hbsPath);
|
|
207
|
+
const gjsExists = (0, import_node_fs2.existsSync)(gjsPath);
|
|
208
|
+
if (hbsExists || gjsExists) {
|
|
209
|
+
const postfix = hashFrom(cssPath);
|
|
210
|
+
const rewrittenCss = rewriteCss(
|
|
211
|
+
code,
|
|
212
|
+
postfix,
|
|
213
|
+
cssFileName,
|
|
214
|
+
options.layerName
|
|
215
|
+
);
|
|
216
|
+
return rewrittenCss;
|
|
217
|
+
}
|
|
218
|
+
return code;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2J1aWxkL2FwcC1jc3MtbG9hZGVyLmpzIiwgIi4uLy4uL3NyYy9saWIvcGF0aC91dGlscy5qcyIsICIuLi8uLi9zcmMvbGliL3BhdGgvaGFzaC1mcm9tLW1vZHVsZS1wYXRoLmpzIiwgIi4uLy4uL3NyYy9saWIvcGF0aC9oYXNoLWZyb20tYWJzb2x1dGUtcGF0aC5qcyIsICIuLi8uLi9zcmMvbGliL3Jld3JpdGVDc3MuanMiLCAiLi4vLi4vc3JjL2xpYi9pc0luc2lkZUdsb2JhbC5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLy8gaW1wb3J0IHsgY3JlYXRlVW5wbHVnaW4gfSAgZnJvbSAndW5wbHVnaW4nO1xuaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJztcblxuaW1wb3J0IHsgaGFzaEZyb20gfSBmcm9tICcuLi9saWIvcGF0aC91dGlscy5qcyc7XG5pbXBvcnQgcmV3cml0ZUNzcyBmcm9tICcuLi9saWIvcmV3cml0ZUNzcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIChjb2RlKSB7XG4gIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgY29uc3QgY3NzUGF0aCA9IHRoaXMucmVzb3VyY2VQYXRoO1xuXG4gIGlmICghY3NzUGF0aC5zdGFydHNXaXRoKHRoaXMucm9vdENvbnRleHQpKSB7XG4gICAgcmV0dXJuIGNvZGU7XG4gIH1cblxuICBjb25zdCBjc3NGaWxlTmFtZSA9IHBhdGguYmFzZW5hbWUoY3NzUGF0aCk7XG5cbiAgY29uc3QgaGJzUGF0aCA9IGNzc1BhdGgucmVwbGFjZSgnLmNzcycsICcuaGJzJyk7XG4gIGNvbnN0IGdqc1BhdGggPSBjc3NQYXRoLnJlcGxhY2UoJy5jc3MnLCAnLmpzJyk7XG4gIGNvbnN0IGhic0V4aXN0cyA9IGV4aXN0c1N5bmMoaGJzUGF0aCk7XG4gIGNvbnN0IGdqc0V4aXN0cyA9IGV4aXN0c1N5bmMoZ2pzUGF0aCk7XG5cbiAgaWYgKGhic0V4aXN0cyB8fCBnanNFeGlzdHMpIHtcbiAgICBjb25zdCBwb3N0Zml4ID0gaGFzaEZyb20oY3NzUGF0aCk7XG4gICAgY29uc3QgcmV3cml0dGVuQ3NzID0gcmV3cml0ZUNzcyhcbiAgICAgIGNvZGUsXG4gICAgICBwb3N0Zml4LFxuICAgICAgY3NzRmlsZU5hbWUsXG4gICAgICBvcHRpb25zLmxheWVyTmFtZSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHJld3JpdHRlbkNzcztcbiAgfVxuXG4gIHJldHVybiBjb2RlO1xufVxuIiwgImltcG9ydCBmc1N5bmMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgZmluZFVwIGZyb20gJ2ZpbmQtdXAnO1xuXG5pbXBvcnQgeyBoYXNoRnJvbUFic29sdXRlUGF0aCB9IGZyb20gJy4vaGFzaC1mcm9tLWFic29sdXRlLXBhdGguanMnO1xuaW1wb3J0IHsgaGFzaEZyb21Nb2R1bGVQYXRoIH0gZnJvbSAnLi9oYXNoLWZyb20tbW9kdWxlLXBhdGguanMnO1xuXG5leHBvcnQgeyBoYXNoRnJvbUFic29sdXRlUGF0aCB9IGZyb20gJy4vaGFzaC1mcm9tLWFic29sdXRlLXBhdGguanMnO1xuZXhwb3J0IHsgaGFzaEZyb21Nb2R1bGVQYXRoIH0gZnJvbSAnLi9oYXNoLWZyb20tbW9kdWxlLXBhdGguanMnO1xuXG4vKipcbiAqIFJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgZmlsZVBhdGggZm9ybWF0IGlzLFxuICogdGhpcyB3aWxsIHRyeSB0byByZXR1cm4gdGhlIGNvcnJlY3QgcG9zdGZpeC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gZmlsZVBhdGhcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRnJvbShmaWxlUGF0aCkge1xuICBpZiAoZmlsZVBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIGhhc2hGcm9tQWJzb2x1dGVQYXRoKGZpbGVQYXRoKTtcbiAgfVxuXG4gIHJldHVybiBoYXNoRnJvbU1vZHVsZVBhdGgoZmlsZVBhdGgpO1xufVxuXG4vKipcbiAqIEJhc2VkIG9uIGVtYmVyJ3MgY29tcG9uZW50IGxvY2F0aW9uIGNvbnZlbnRpb25zLFxuICogdGhpcyBmdW5jdGlvbiB3aWxsIHByb3ZpZGUgYSBwYXRoIGZvciB3aGVyZSB3ZVxuICogZXhwZWN0IHRoZSBDU1MgdG8gbGl2ZS5cbiAqXG4gKiBGb3IgY28tbG9jYXRlZCBzdHJ1Y3R1cmU6XG4gKiAgIC0gY29tcG9uZW50cy9teS1jb21wb25lbnQuaGJzXG4gKiAgIC0gY29tcG9uZW50cy9teS1jb21wb25lbnQuY3NzXG4gKlxuICogRm9yIG5lc3RlZCBjby1sb2NhdGVkIHN0cnVjdHVyZVxuICogICAtIGNvbXBvbmVudHMvbXktY29tcG9uZW50L2Zvby5oYnNcbiAqICAgLSBjb21wb25lbnRzL215LWNvbXBvbmVudC9mb28uY3NzXG4gKlxuICogRm9yIFBvZHMgcm91dGVzIHN0cnVjdHVyZVxuICogICAtIHJvdXRlcy9teS1yb3V0ZS90ZW1wbGF0ZS57aGJzLGpzfVxuICogICAtIHJvdXRlcy9teS1yb3V0ZS9zdHlsZXMuY3NzXG4gKlxuICogRGVsaWJlcmF0ZWx5IG5vdCBzdXBwb3J0ZWQ6XG4gKiAgIC0gY29tcG9uZW50cyB3LyBwb2RzIC0tIHRoaXMgaXMgZGVwcmVjYXRlZCBpbiA1LjEwXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lIC0gdGhlIGhicywganMsIGdqcywgZ3RzIG9yIHdoYXRldmVyIGNvLWxvY2F0ZWQgcGF0aC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gZXhwZWN0ZWQgY3NzIHBhdGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNzc1BhdGhGb3IoZmlsZU5hbWUpIHtcbiAgbGV0IHdpdGhvdXRFeHQgPSB3aXRob3V0RXh0ZW5zaW9uKGZpbGVOYW1lKTtcbiAgbGV0IGNzc1BhdGggPSB3aXRob3V0RXh0ICsgJy5jc3MnO1xuXG4gIGlmIChpc1BvZChmaWxlTmFtZSkpIHtcbiAgICBjc3NQYXRoID0gZmlsZU5hbWVcbiAgICAgIC5yZXBsYWNlKC90ZW1wbGF0ZVxcLmpzJC8sICdzdHlsZXMuY3NzJylcbiAgICAgIC5yZXBsYWNlKC90ZW1wbGF0ZVxcLmhicy8sICdzdHlsZXMuY3NzJyk7XG4gIH1cblxuICByZXR1cm4gY3NzUGF0aDtcbn1cblxuLyoqXG4gKiBOb3RlIHRoYXQgY29tcG9uZW50cyBpbiB0aGUgXCJwb2RzXCIgY29udmVudGlvbiB3aWxsXG4gKiBuZXZlciBiZSBzdXBwb3J0ZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BvZFRlbXBsYXRlKGZpbGVQYXRoKSB7XG4gIGlmIChmaWxlUGF0aC5pbmNsdWRlcygnL2NvbXBvbmVudHMvJykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gZmlsZVBhdGguZW5kc1dpdGgoJ3RlbXBsYXRlLmpzJykgfHwgZmlsZVBhdGguZW5kc1dpdGgoJ3RlbXBsYXRlLmhicycpO1xufVxuXG4vKipcbiAqIE5vdGUgdGhhdCBjb21wb25lbnRzIGluIHRoZSBcInBvZHNcIiBjb252ZW50aW9uIHdpbGxcbiAqIG5ldmVyIGJlIHN1cHBvcnRlZC5cbiAqXG4gKiBDaGVja3MgaWYgYSBmaWxlIGVuZHMgd2l0aFxuICogLSB0ZW1wbGF0ZS5qc1xuICogLSB0ZW1wbGF0ZS5oYnNcbiAqIC0gc3R5bGVzLmNzc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQb2QoZmlsZVBhdGgpIHtcbiAgaWYgKGZpbGVQYXRoLmluY2x1ZGVzKCcvY29tcG9uZW50cy8nKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpc1BvZFRlbXBsYXRlKGZpbGVQYXRoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVQYXRoLmVuZHNXaXRoKCdzdHlsZXMuY3NzJyk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlUGF0aFxuICogQHJldHVybnMgdGhlIHNhbWUgcGF0aCwgYnV0IHdpdGhvdXQgdGhlIGV4dGVuc2lvblxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aG91dEV4dGVuc2lvbihmaWxlUGF0aCkge1xuICBsZXQgcGFyc2VkID0gcGF0aC5wYXJzZShmaWxlUGF0aCk7XG5cbiAgcmV0dXJuIHBhdGguam9pbihwYXJzZWQuZGlyLCBwYXJzZWQubmFtZSk7XG59XG5cbmNvbnN0IElSUkVMRVZBTlRfUEFUSFMgPSBbJ25vZGVfbW9kdWxlcy8ucG5wbSddO1xuXG5jb25zdCBVTlNVUFBPUlRFRF9ESVJFQ1RPUklFUyA9IG5ldyBTZXQoWyd0ZXN0cyddKTtcblxuLyoqXG4gKiBFeGFtcGxlcyBmb3IgZmlsZU5hbWVcbiAqIC0gYWJzb2x1dGUgb24tZGlzayBwYXRoXG4gKiAtIGluIHdlYnBhY2tcbiAqICAgLSBVUkwtYWJzb2x1dGUgcGF0aCwgc3RhcnRpbmcgd2l0aCAvXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbYWRkaXRpb25hbFJvb3RzXVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVsZXZhbnRGaWxlKGZpbGVOYW1lLCBhZGRpdGlvbmFsUm9vdHMpIHtcbiAgaWYgKGZpbGVOYW1lLnN0YXJ0c1dpdGgoJy9AZW1icm9pZGVyJykpIHJldHVybiBmYWxzZTtcbiAgaWYgKElSUkVMRVZBTlRfUEFUSFMuc29tZSgoaSkgPT4gZmlsZU5hbWUuaW5jbHVkZXMoaSkpKSByZXR1cm4gZmFsc2U7XG5cbiAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpKSB7XG4gICAgLy8gaWYgYSBmaWxlIGlzIG5vdCB0aGUgZW1icm9pZGVyIGNhY2hlIGRpcmVjdG9yeVxuICAgIC8vIGFuZCBpcyBpbiBub2RlX21vZHVsZXMsIHNraXAgaXQuXG4gICAgaWYgKCFmaWxlTmFtZS5pbmNsdWRlcygnL25vZGVfbW9kdWxlcy8uZW1icm9pZGVyLycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gcmV3cml0dGVuIHBhY2thZ2VzIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlbiBwcm9jZXNzZWQgYXQgdGhlaXIgb3duXG4gICAgLy8gcHVibGlzaCB0aW1lXG4gICAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLy5lbWJyb2lkZXIvcmV3cml0dGVuLXBhY2thZ2VzLycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gVGhlc2UgYXJlIGFscmVhZHkgdGhlIGJ1bmRsZWQgZmlsZXMuXG4gICAgaWYgKGZpbGVOYW1lLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLy5lbWJyb2lkZXIvcmV3cml0dGVuLWFwcC9hc3NldHMvJykpIHtcbiAgICAgIC8vIG5vdCBzdXBwb3J0ZWQsIG5ldmVyIHdpbGwgYmVcbiAgICAgIGlmIChcbiAgICAgICAgZmlsZU5hbWUuZW5kc1dpdGgoXG4gICAgICAgICAgJy9ub2RlX21vZHVsZXMvLmVtYnJvaWRlci9yZXdyaXR0ZW4tYXBwL2Fzc2V0cy90ZXN0cy5qcycsXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIElkZWFsbHksIHdlIG5ldmVyIGdldCBoZXJlIC0tIGluZGljYXRlcyB3ZSdyZSBub3QgZmlsdGVyaW5nIGVmZmVjdGl2ZWx5IGluIGJhYmVsXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbU2NvcGVkQ1NTXTogdHJhbnNmb3JtYXRpb24gaXMgYXR0ZW1wdGluZyB0b28gbGF0ZS4gQ2Fubm90IG9wZXJhdGUgb24gb3V0cHV0IGZpbGU6ICR7ZmlsZU5hbWV9YCxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBsZXQgd29ya3NwYWNlID0gZmluZFdvcmtzcGFjZVBhdGgoZmlsZU5hbWUpO1xuICBsZXQgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgbGV0IG91cldvcmtzcGFjZSA9IGZpbmRXb3Jrc3BhY2VQYXRoKGN3ZCk7XG5cbiAgaWYgKHdvcmtzcGFjZSAhPT0gb3VyV29ya3NwYWNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IGxvY2FsID0gZmlsZU5hbWUucmVwbGFjZSh3b3Jrc3BhY2UsICcnKTtcbiAgbGV0IFssIC4uLnBhcnRzXSA9IGxvY2FsLnNwbGl0KCcvJykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gIGlmIChVTlNVUFBPUlRFRF9ESVJFQ1RPUklFUy5oYXMocGFydHNbMF0pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vc3RseSBwb2RzIHN1cHBvcnQuXG4gICAqIGZvbGtzIG5lZWQgdG8gb3B0IGluIHRvIHBvZHMgKHJvdXRlcyksIGJlY2F1c2UgZXZlcnkgcG9kcyBhcHAgY2FuIGJlIGNvbmZpZ3VyZWQgZGlmZmVyZW50bHlcbiAgICovXG4gIGxldCByb290cyA9IFsnL2NvbXBvbmVudHMvJywgLi4uKGFkZGl0aW9uYWxSb290cyB8fCBbXSldO1xuXG4gIGlmICghcm9vdHMuc29tZSgocm9vdCkgPT4gZmlsZU5hbWUuaW5jbHVkZXMocm9vdCkpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWNrYWdlU2NvcGVkUGF0aFRvTW9kdWxlUGF0aChwYWNrYWdlU2NvcGVkUGF0aCkge1xuICAvKipcbiAgICogKkJ5IGNvbnZlbnRpb24qLCBgc3JjYCBpcyBvbWl0dGVkIGZyb20gY29tcG9uZW50IHBhdGhzLlxuICAgKiBXZSBjYW4gcmVmbGVjdCB0aGUgc2FtZSBiZWhhdmlvciBieSByZXBsYWNpbmcgc3JjL1xuICAgKiB3aXRoIGFuIGVtcHR5IHN0cmluZy5cbiAgICpcbiAgICogQ1NTIGlzbid0IGVtaXR0ZWQgYXMgYSBjby1sb2NhdGVkIG1vZHVsZSwgYnV0XG4gICAqIHRvIGtlZXAgY29udmVudGlvbnMgY29uc2lzdGVudCBhY3Jvc3MgbGFuZ3VhZ2VzLFxuICAgKiB3ZSBjYW4gcHJldGVuZCBpdCBpcy5cbiAgICpcbiAgICogQW55IGN1c3RvbWl6YXRpb24gYmV5b25kIHJlbW92aW5nIGBzcmNgIGFuZCBgYXBwYCBpcyBwb3RlbnRpYWxseSBjb25mdXNpbmcuXG4gICAqIElmIHdlIG5lZWQgZnVydGhlciBjdXN0b21pemF0aW9ucywgd2UnbGwgd2FudCB0byBtYXRjaCBvbiBgZXhwb3J0c2AgaW4gdGhlXG4gICAqIGNvcnJlc3BvbmRpbmcgcGFja2FnZS5qc29uXG4gICAqL1xuICBsZXQgcGFja2FnZVJlbGF0aXZlID0gcGFja2FnZVNjb3BlZFBhdGgucmVwbGFjZSgvXlxcL3NyY1xcLy8sICcvJyk7XG5cbiAgbGV0IHBhcnNlZCA9IHBhdGgucGFyc2UocGFja2FnZVJlbGF0aXZlKTtcblxuICBpZiAoaXNQb2QocGFja2FnZVJlbGF0aXZlKSkge1xuICAgIC8qKlxuICAgICAqIEZvciBwb2RzLCB3ZSBjaG9wIG9mZiB0aGUgd2hvbGUgZmlsZSwgYW5kIHVzZSB0aGUgZGlyIG5hbWUgYXMgdGhlIFwibW9kdWxlUGF0aFwiXG4gICAgICovXG4gICAgcmV0dXJuIHBhcnNlZC5kaXI7XG4gIH1cblxuICAvKipcbiAgICogSWYgYW4gZXh0ZW5zaW9uIGlzIHBhc3NlZCwgcmVtb3ZlIGl0LlxuICAgKiBXaGVuIHVzaW5nIHBhY2thZ2VycywgZm9sa3MgYXJlIHVzZWQgdG8gbm90IGhhdmluZyB0byBzcGVjaWZ5IGV4dGVuc2lvbnMgZm9yIGZpbGVzLlxuICAgKiBTaW5jZSB3ZSBkb24ndCBldmVuIGVtaXQgY3NzIGZpbGVzIGNvLWxvY2F0ZWQgdG8gZWFjaCBtb2R1bGUsXG4gICAqIHRoaXMgaGVscHMgdXMgbm90IGNvbnZleSBhIGxpZSB0aGF0IGEgZmlsZSBtYXkgZXhpc3QgaW4gYXQgcnVudGltZS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUgYDxtb2R1bGUtbmFtZT4vY29tcG9uZW50cy9idXR0b25gLlxuICAgKiBJdCBkb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBleHRlbnNpb24gaXMsIGJlY2F1c2UgeW91IGNhbiBvbmx5IGhhdmUgb25lIGNzcyBmaWxlXG4gICAqIGZvciB0aGUgYnV0dG9uIG1vZHVsZSBhbnl3YXkuXG4gICAqL1xuICBsZXQgbG9jYWxQYWNrYWdlclN0eWxlUGF0aCA9IHBhdGguam9pbihwYXJzZWQuZGlyLCBwYXJzZWQubmFtZSk7XG5cbiAgcmV0dXJuIGxvY2FsUGFja2FnZXJTdHlsZVBhdGg7XG59XG5cbi8qKlxuICogcmV0dXJucyB0aGUgYXBwLW1vZHVsZSBwYXRoIG9mIHRoZSBzb3VyY2UgZmlsZVxuICpcbiAqIFRoaXMgYXNzdW1lcyBub3JtYWwgZW1iZXIgYXBwIGNvbnZlbnRpb25zXG4gKlxuICogd2hpY2ggaXMgYDxwYWNrYWdlLmpzb24jbmFtZT4vcGF0aC10by1maWxlYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwUGF0aChzb3VyY2VQYXRoKSB7XG4gIGxldCB3b3Jrc3BhY2VQYXRoID0gZmluZFdvcmtzcGFjZVBhdGgoc291cmNlUGF0aCk7XG4gIGxldCBuYW1lID0gd29ya3NwYWNlUGFja2FnZU5hbWUoc291cmNlUGF0aCk7XG5cbiAgLyoqXG4gICAqICBVbmRlciBlbWJyb2lkZXIgYnVpbGRzLCB0aGUgc3BlYy1jb21wbGlhbnQgdmVyc2lvbiBvZiB0aGUgYXBwXG4gICAqIGhhcyBhbGwgdGhlIGZpbGVzIHVuZGVyIGEgZm9sZGVyIHdoaWNoIHJlcHJlc2VudHMgdGhlIHBhY2thZ2UgbmFtZSxcbiAgICogcmF0aGVyIHRoYW4gXCJhcHBcIi5cbiAgICovXG4gIGxldCBwYWNrYWdlUmVsYXRpdmUgPSBzb3VyY2VQYXRoLnJlcGxhY2Uod29ya3NwYWNlUGF0aCwgJycpO1xuXG4gIC8qKlxuICAgKiBCdXQgd2UgYWxzbyBkb24ndCB3YW50ICdhcHAnIC0tIHdoaWNoIGlzIHByZXNlbnQgaW4gdGhlIHYxIGFkZG9uIHBpcGVsaW5lXG4gICAqL1xuICBwYWNrYWdlUmVsYXRpdmUgPSBwYWNrYWdlUmVsYXRpdmUucmVwbGFjZShgL2FwcC9gLCBgL2ApO1xuXG4gIC8qKlxuICAgKiBhbHNvIGFsc28sIHdlIGtub3cgdGhhdCB0aGUgcmUtd3JpdHRlbiBhcHAgc3RydWN0dXJlIGluIGVtYnJvaWRlckB2M1xuICAgKiBpcyBleHRyYW5lb3VzLCBhbmQgd2UgY2FuIGNvbGxhcHNlIGl0XG4gICAqL1xuICBwYWNrYWdlUmVsYXRpdmUgPSBwYWNrYWdlUmVsYXRpdmUucmVwbGFjZShcbiAgICBgL25vZGVfbW9kdWxlcy8uZW1icm9pZGVyL3Jld3JpdHRlbi1hcHAvYCxcbiAgICAnLycsXG4gICk7XG5cbiAgbGV0IGxvY2FsUGFja2FnZXJTdHlsZVBhdGggPSBwYWNrYWdlU2NvcGVkUGF0aFRvTW9kdWxlUGF0aChwYWNrYWdlUmVsYXRpdmUpO1xuXG4gIHJldHVybiBgJHtuYW1lfSR7bG9jYWxQYWNrYWdlclN0eWxlUGF0aH1gO1xufVxuXG5jb25zdCBDQUNIRSA9IG5ldyBTZXQoKTtcblxuLyoqXG4gKiBGb3IgYSBnaXZlbiBzb3VyY2UgcGF0aCwgaWYgd2UgaGF2ZSBzZWVuIGFcbiAqIHNvdXJjZSBmaWxlIHdpdGhpbiB0aGUgd29ya3NwYWNlIGRpcmVjdG9yeSxcbiAqIGZpbmQgdGhhdCB3b3Jrc3BhY2UgZGlyZWN0b3J5IGFuZCByZXR1cm4gaXQuXG4gKi9cbmZ1bmN0aW9uIGhhc1NlZW4oc291cmNlUGF0aCkge1xuICBmb3IgKGxldCBlbnRyeSBvZiBDQUNIRSkge1xuICAgIGlmIChzb3VyY2VQYXRoLnN0YXJ0c1dpdGgoZW50cnkpKSB7XG4gICAgICByZXR1cm4gZW50cnk7XG4gICAgfVxuICB9XG5cbiAgLy8gd2UgaGF2ZSBub3Qgc2VlbiB0aGlzIHNvdXJjZSBwYXRoIHlldFxuICByZXR1cm47XG59XG5cbi8qKlxuICogUG9wdWxhdGVzIHRoZSBcInNlZW5cIiB3b3Jrc3BhY2UgY2FjaGUsXG4gKiBzbyB0aGF0IHdlIGRvbid0IGhpdCB0aGUgZmlsZSBzeXN0ZW0gdG9vIG9mdGVuLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFdvcmtzcGFjZVBhdGgoc291cmNlUGF0aCkge1xuICBsZXQgc2VlbiA9IGhhc1NlZW4oc291cmNlUGF0aCk7XG5cbiAgaWYgKHNlZW4pIHtcbiAgICByZXR1cm4gc2VlbjtcbiAgfVxuXG4gIGNvbnN0IHBhY2thZ2VKc29uUGF0aCA9IGZpbmRVcC5zeW5jKCdwYWNrYWdlLmpzb24nLCB7XG4gICAgY3dkOiBwYXRoLmRpcm5hbWUoc291cmNlUGF0aCksXG4gIH0pO1xuXG4gIGNvbnN0IHdvcmtzcGFjZVBhdGggPSBwYXRoLmRpcm5hbWUocGFja2FnZUpzb25QYXRoKTtcblxuICBDQUNIRS5hZGQod29ya3NwYWNlUGF0aCk7XG5cbiAgcmV0dXJuIHdvcmtzcGFjZVBhdGg7XG59XG5cbmNvbnN0IE1BTklGRVNUX0NBQ0hFID0gbmV3IE1hcCgpO1xuXG4vKipcbiAqIHJldHVybnMgdGhlIHBhY2thZ2UuanNvbiNuYW1lIGZvciBhIGdpdmVuIHNvdXJjZVBhdGhcbiAqL1xuZnVuY3Rpb24gd29ya3NwYWNlUGFja2FnZU5hbWUoc291cmNlUGF0aCkge1xuICBjb25zdCB3b3Jrc3BhY2UgPSBmaW5kV29ya3NwYWNlUGF0aChzb3VyY2VQYXRoKTtcblxuICBsZXQgZXhpc3RpbmcgPSBNQU5JRkVTVF9DQUNIRS5nZXQod29ya3NwYWNlKTtcblxuICBpZiAoZXhpc3RpbmcpIHtcbiAgICByZXR1cm4gZXhpc3RpbmcubmFtZTtcbiAgfVxuXG4gIGxldCBidWZmZXIgPSBmc1N5bmMucmVhZEZpbGVTeW5jKHBhdGguam9pbih3b3Jrc3BhY2UsICdwYWNrYWdlLmpzb24nKSk7XG4gIGxldCBjb250ZW50ID0gYnVmZmVyLnRvU3RyaW5nKCk7XG4gIGxldCBqc29uID0gSlNPTi5wYXJzZShjb250ZW50KTtcblxuICBNQU5JRkVTVF9DQUNIRS5zZXQod29ya3NwYWNlLCBqc29uKTtcblxuICByZXR1cm4ganNvbi5uYW1lO1xufVxuIiwgImltcG9ydCBtZDUgZnJvbSAnYmx1ZWltcC1tZDUnO1xuXG4vKipcbiAqIFRoZSBpbnRlbnQgb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBnZW5lcmF0ZSB0aGUgc3VmZml4L3Bvc3RmaXggZm9yIHRoZVxuICogY3NzIGNsYXNzZXMsIGJhc2VkIG9uIHRoZSBtb2R1bGUtc2NvcGVkIHBhdGggbmFtZS5cbiAqXG4gKiBmb3IgZXhhbXBsZSxcbiAqICAgIGhhc2goJ215LWFwcC9jb21wb25lbnRzL2ZvbycpXG4gKiAgaW5zdGVhZCBvZlxuICogICAgaGFzaCgnYXBwL2NvbXBvbmVudHMvZm9vJylcbiAqXG4gKiAgKHVubGVzcyB5b3VyIGFwcCBuYW1lIGlzICdhcHAnKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtb2R1bGVQYXRoXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzaChtb2R1bGVQYXRoKSB7XG4gIHJldHVybiAnZScgKyBtZDUobW9kdWxlUGF0aCkuc3Vic3RyaW5nKDAsIDgpO1xufVxuXG5cbmV4cG9ydCBjb25zdCBoYXNoRnJvbU1vZHVsZVBhdGggPSBoYXNoO1xuIiwgImltcG9ydCB7IGhhc2ggfSBmcm9tICcuL2hhc2gtZnJvbS1tb2R1bGUtcGF0aC5qcyc7XG5pbXBvcnQgeyBhcHBQYXRoIH0gZnJvbSAnLi91dGlscy5qcyc7XG5cbmV4cG9ydCB7IGhhc2ggfSBmcm9tICcuL2hhc2gtZnJvbS1tb2R1bGUtcGF0aC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRnJvbUFic29sdXRlUGF0aChhYnNvbHV0ZVBhdGgpIHtcbiAgLyoqXG4gICAqIFRoZSB3aG9sZSBvZiBgYXBwUGF0aGAgdWx0aW1hdGVseSB0cmFuc2Zvcm1zIHRoZSBgYWJzb2x1dGVQYXRoYFxuICAgKiBpbnRvIHRoZSBleGFjdCBzdHJpbmcgdGhhdCBmb2xrcyB3aWxsIHBhc3MgdG8gYHJlbGF0aXZlUGF0aGBcbiAgICogYXQgcnVudGltZS5cbiAgICovXG4gIGNvbnN0IG1vZHVsZVBhdGggPSBhcHBQYXRoKGFic29sdXRlUGF0aCk7XG4gIGNvbnN0IHBvc3RmaXggPSBoYXNoKG1vZHVsZVBhdGgpO1xuXG4gIHJldHVybiBwb3N0Zml4O1xufVxuIiwgImltcG9ydCBwb3N0Y3NzIGZyb20gJ3Bvc3Rjc3MnO1xuaW1wb3J0IHBhcnNlciBmcm9tICdwb3N0Y3NzLXNlbGVjdG9yLXBhcnNlcic7XG5cbmltcG9ydCBpc0luc2lkZUdsb2JhbCBmcm9tICcuL2lzSW5zaWRlR2xvYmFsLmpzJztcblxuZnVuY3Rpb24gcmV3cml0ZVNlbGVjdG9yKHNlbCwgcG9zdGZpeCkge1xuICBjb25zdCB0cmFuc2Zvcm0gPSAoc2VsZWN0b3JzKSA9PiB7XG4gICAgc2VsZWN0b3JzLndhbGsoKHNlbGVjdG9yKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0b3IudHlwZSA9PT0gJ2NsYXNzJyAmJiAhaXNJbnNpZGVHbG9iYWwoc2VsZWN0b3IpKSB7XG4gICAgICAgIHNlbGVjdG9yLnZhbHVlICs9ICdfJyArIHBvc3RmaXg7XG4gICAgICB9IGVsc2UgaWYgKHNlbGVjdG9yLnR5cGUgPT09ICd0YWcnICYmICFpc0luc2lkZUdsb2JhbChzZWxlY3RvcikpIHtcbiAgICAgICAgc2VsZWN0b3IucmVwbGFjZVdpdGgoXG4gICAgICAgICAgcGFyc2VyLnRhZyh7IHZhbHVlOiBzZWxlY3Rvci52YWx1ZSB9KSxcbiAgICAgICAgICBwYXJzZXIuY2xhc3NOYW1lKHsgdmFsdWU6IHBvc3RmaXggfSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyByZW1vdmUgOmdsb2JhbFxuICAgIHNlbGVjdG9ycy53YWxrKChzZWxlY3RvcikgPT4ge1xuICAgICAgaWYgKHNlbGVjdG9yLnR5cGUgPT09ICdwc2V1ZG8nICYmIHNlbGVjdG9yLnZhbHVlID09PSAnOmdsb2JhbCcpIHtcbiAgICAgICAgc2VsZWN0b3IucmVwbGFjZVdpdGgoLi4uc2VsZWN0b3Iubm9kZXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICBjb25zdCB0cmFuc2Zvcm1lZCA9IHBhcnNlcih0cmFuc2Zvcm0pLnByb2Nlc3NTeW5jKHNlbCk7XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkO1xufVxuXG5mdW5jdGlvbiBpc0luc2lkZUtleWZyYW1lcyhub2RlKSB7XG4gIGNvbnN0IHBhcmVudCA9IG5vZGUucGFyZW50O1xuXG4gIGlmICghcGFyZW50KSByZXR1cm4gZmFsc2U7XG4gIGlmIChwYXJlbnQudHlwZSA9PT0gJ2F0cnVsZScgJiYgcGFyZW50Lm5hbWUgPT09ICdrZXlmcmFtZXMnKSByZXR1cm4gdHJ1ZTtcblxuICByZXR1cm4gaXNJbnNpZGVLZXlmcmFtZXMocGFyZW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmV3cml0ZUNzcyhjc3MsIHBvc3RmaXgsIGZpbGVOYW1lLCBsYXllck5hbWUpIHtcbiAgY29uc3QgbGF5ZXJOYW1lV2l0aERlZmF1bHQgPSBsYXllck5hbWUgPz8gJ2NvbXBvbmVudHMnO1xuICBjb25zdCBhc3QgPSBwb3N0Y3NzLnBhcnNlKGNzcyk7XG5cbiAgYXN0LndhbGsoKG5vZGUpID0+IHtcbiAgICBpZiAobm9kZS50eXBlID09PSAncnVsZScgJiYgIWlzSW5zaWRlS2V5ZnJhbWVzKG5vZGUpKSB7XG4gICAgICBub2RlLnNlbGVjdG9yID0gcmV3cml0ZVNlbGVjdG9yKG5vZGUuc2VsZWN0b3IsIHBvc3RmaXgpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgcmV3cml0dGVuQ3NzID0gYXN0LnRvU3RyaW5nKCk7XG5cbiAgaWYgKCFsYXllck5hbWVXaXRoRGVmYXVsdCkge1xuICAgIHJldHVybiBgLyogJHtmaWxlTmFtZX0gKi9cXG4ke3Jld3JpdHRlbkNzc31cXG5gO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICBgLyogJHtmaWxlTmFtZX0gKi9cXG5AbGF5ZXIgJHtsYXllck5hbWVXaXRoRGVmYXVsdH0ge1xcblxcbmAgK1xuICAgIHJld3JpdHRlbkNzcyArXG4gICAgJ1xcbn1cXG4nXG4gICk7XG59XG5cbiIsICJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpc0luc2lkZUdsb2JhbChub2RlLCBmdW5jKSB7XG4gIGNvbnN0IHBhcmVudCA9IG5vZGUucGFyZW50O1xuXG4gIGlmICghcGFyZW50KSByZXR1cm4gZmFsc2U7XG4gIGlmIChwYXJlbnQudHlwZSA9PT0gJ3BzZXVkbycgJiYgcGFyZW50LnZhbHVlID09PSAnOmdsb2JhbCcpIHJldHVybiB0cnVlO1xuXG4gIHJldHVybiBpc0luc2lkZUdsb2JhbChwYXJlbnQsIGZ1bmMpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBLElBQUFBLGtCQUEyQjtBQUMzQixJQUFBQyxvQkFBaUI7OztBQ0ZqQixxQkFBbUI7QUFDbkIsdUJBQWlCO0FBRWpCLHFCQUFtQjs7O0FDSG5CLHlCQUFnQjtBQWdCVCxTQUFTLEtBQUssWUFBWTtBQUMvQixTQUFPLFVBQU0sbUJBQUFDLFNBQUksVUFBVSxFQUFFLFVBQVUsR0FBRyxDQUFDO0FBQzdDO0FBR08sSUFBTSxxQkFBcUI7OztBQ2hCM0IsU0FBUyxxQkFBcUIsY0FBYztBQU1qRCxRQUFNLGFBQWEsUUFBUSxZQUFZO0FBQ3ZDLFFBQU0sVUFBVSxLQUFLLFVBQVU7QUFFL0IsU0FBTztBQUNUOzs7QUZHTyxTQUFTLFNBQVMsVUFBVTtBQUNqQyxNQUFJLFNBQVMsV0FBVyxHQUFHLEdBQUc7QUFDNUIsV0FBTyxxQkFBcUIsUUFBUTtBQUFBLEVBQ3RDO0FBRUEsU0FBTyxtQkFBbUIsUUFBUTtBQUNwQztBQTRDTyxTQUFTLGNBQWMsVUFBVTtBQUN0QyxNQUFJLFNBQVMsU0FBUyxjQUFjLEdBQUc7QUFDckMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxTQUFPLFNBQVMsU0FBUyxhQUFhLEtBQUssU0FBUyxTQUFTLGNB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QVUsS0FBSztBQUVyQixNQUFJLENBQUMsUUFBUSxXQUFXLEtBQUssV0FBVyxHQUFHO0FBQ3pDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxjQUFjLGtCQUFBQyxRQUFLLFNBQVMsT0FBTztBQUV6QyxRQUFNLFVBQVUsUUFBUSxRQUFRLFFBQVEsTUFBTTtBQUM5QyxRQUFNLFVBQVUsUUFBUSxRQUFRLFFBQVEsS0FBSztBQUM3QyxRQUFNLGdCQUFZLDRCQUFXLE9BQU87QUFDcEMsUUFBTSxnQkFBWSw0QkFBVyxPQUFPO0FBRXBDLE1BQUksYUFBYSxXQUFXO0FBQzFCLFVBQU0sVUFBVSxTQUFTLE9BQU87QUFDaEMsVUFBTSxlQUFlO0FBQUEsTUFDbkI7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0EsUUFBUTtBQUFBLElBQ1Y7QUFFQSxXQUFPO0FBQUEsRUFDVDtBQUVBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsiaW1wb3J0X25vZGVfZnMiLCAiaW1wb3J0X25vZGVfcGF0aCIsICJtZDUiLCAicGF0aCIsICJmaW5kVXAiLCAiZnNTeW5jIiwgInBhcnNlciIsICJwb3N0Y3NzIiwgInBhdGgiXQp9Cg==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/build/app-dependency-loader.js
|
|
21
|
+
var app_dependency_loader_exports = {};
|
|
22
|
+
__export(app_dependency_loader_exports, {
|
|
23
|
+
default: () => app_dependency_loader_default
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(app_dependency_loader_exports);
|
|
26
|
+
var import_node_fs = require("node:fs");
|
|
27
|
+
function app_dependency_loader_default(source) {
|
|
28
|
+
if (this.resourcePath.endsWith(".js")) {
|
|
29
|
+
const hbsExists = (0, import_node_fs.existsSync)(this.resourcePath.replace(/\.js/, ".hbs"));
|
|
30
|
+
if (hbsExists) {
|
|
31
|
+
return source;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const cssPath = this.resourcePath.replace(/(\.js)|(\.hbs)/, ".css");
|
|
35
|
+
const cssExists = (0, import_node_fs.existsSync)(cssPath);
|
|
36
|
+
if (cssExists) {
|
|
37
|
+
this.addDependency(cssPath);
|
|
38
|
+
}
|
|
39
|
+
return source;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2J1aWxkL2FwcC1kZXBlbmRlbmN5LWxvYWRlci5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgZXhpc3RzU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiAoc291cmNlKSB7XG4gIGlmICh0aGlzLnJlc291cmNlUGF0aC5lbmRzV2l0aCgnLmpzJykpIHtcbiAgICBjb25zdCBoYnNFeGlzdHMgPSBleGlzdHNTeW5jKHRoaXMucmVzb3VyY2VQYXRoLnJlcGxhY2UoL1xcLmpzLywgJy5oYnMnKSk7XG5cbiAgICBpZiAoaGJzRXhpc3RzKSB7XG4gICAgICByZXR1cm4gc291cmNlO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNzc1BhdGggPSB0aGlzLnJlc291cmNlUGF0aC5yZXBsYWNlKC8oXFwuanMpfChcXC5oYnMpLywgJy5jc3MnKTtcbiAgY29uc3QgY3NzRXhpc3RzID0gZXhpc3RzU3luYyhjc3NQYXRoKTtcblxuICBpZiAoY3NzRXhpc3RzKSB7XG4gICAgdGhpcy5hZGREZXBlbmRlbmN5KGNzc1BhdGgpO1xuICB9XG5cbiAgcmV0dXJuIHNvdXJjZTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUEyQjtBQUVaLFNBQVIsOEJBQWtCLFFBQVE7QUFDL0IsTUFBSSxLQUFLLGFBQWEsU0FBUyxLQUFLLEdBQUc7QUFDckMsVUFBTSxnQkFBWSwyQkFBVyxLQUFLLGFBQWEsUUFBUSxRQUFRLE1BQU0sQ0FBQztBQUV0RSxRQUFJLFdBQVc7QUFDYixhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFFQSxRQUFNLFVBQVUsS0FBSyxhQUFhLFFBQVEsa0JBQWtCLE1BQU07QUFDbEUsUUFBTSxnQkFBWSwyQkFBVyxPQUFPO0FBRXBDLE1BQUksV0FBVztBQUNiLFNBQUssY0FBYyxPQUFPO0FBQUEsRUFDNUI7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
|