@spinajs/configuration 2.0.482 → 2.0.484
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/lib/cjs/sources.d.ts +15 -0
- package/lib/cjs/sources.d.ts.map +1 -1
- package/lib/cjs/sources.js +67 -3
- package/lib/cjs/sources.js.map +1 -1
- package/lib/mjs/sources.d.ts +15 -0
- package/lib/mjs/sources.d.ts.map +1 -1
- package/lib/mjs/sources.js +67 -3
- package/lib/mjs/sources.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +7 -6
package/lib/cjs/sources.d.ts
CHANGED
|
@@ -11,6 +11,21 @@ export declare abstract class BaseFileSource extends ConfigurationSource {
|
|
|
11
11
|
protected CommonDirs: string[];
|
|
12
12
|
protected BasePath: string;
|
|
13
13
|
get Order(): number;
|
|
14
|
+
/**
|
|
15
|
+
* Walks from `startDir` up to the filesystem root, returning every directory that
|
|
16
|
+
* contains a `node_modules` folder, nearest first. Used to locate `@spinajs`
|
|
17
|
+
* package configs wherever the package manager happened to hoist them.
|
|
18
|
+
*/
|
|
19
|
+
protected static nodeModulesAncestors(startDir: string): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Nearest ancestor of `startDir` whose `node_modules/@spinajs` actually holds
|
|
22
|
+
* packages, i.e. where the package manager hoisted them to.
|
|
23
|
+
*
|
|
24
|
+
* The directory must be non-empty on purpose: a workspace member often has its own
|
|
25
|
+
* empty `node_modules/@spinajs` left over from linking, and picking that would be
|
|
26
|
+
* worse than picking nothing.
|
|
27
|
+
*/
|
|
28
|
+
protected static findHoistingRoot(startDir: string): string | null;
|
|
14
29
|
constructor(RunApp?: string | undefined, CustomConfigPaths?: string[] | undefined, appBaseDir?: string | undefined, Env?: string | undefined);
|
|
15
30
|
protected load(extension: string, callback: (file: string) => Promise<IConfigLike>): Promise<{}>;
|
|
16
31
|
protected getEnvironment(config: Configuration): string;
|
package/lib/cjs/sources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEhG,8BAAsB,cAAe,SAAQ,mBAAmB;
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEhG,8BAAsB,cAAe,SAAQ,mBAAmB;IA8D5D,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM;IACzB,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE;IACtC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM;IAC7B,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM;IAhExB;;OAEG;IACI,OAAO,SAAQ;IAEtB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,SAAS,CAAC,QAAQ,SAAM;IAExB,IAAW,KAAK,WAEf;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBjE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;gBAiBtD,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC5B,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,GAAG,CAAC,EAAE,MAAM,YAAA;cAyFR,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC;IA2BxF,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa;CAa/C;AAED,qBACa,YAAa,SAAQ,cAAc;IACjC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;CAgC/D;AAED,qBACa,cAAe,SAAQ,cAAc;IACnC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;CA2B/D"}
|
package/lib/cjs/sources.js
CHANGED
|
@@ -56,6 +56,47 @@ class BaseFileSource extends configuration_common_1.ConfigurationSource {
|
|
|
56
56
|
get Order() {
|
|
57
57
|
return 1;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Walks from `startDir` up to the filesystem root, returning every directory that
|
|
61
|
+
* contains a `node_modules` folder, nearest first. Used to locate `@spinajs`
|
|
62
|
+
* package configs wherever the package manager happened to hoist them.
|
|
63
|
+
*/
|
|
64
|
+
static nodeModulesAncestors(startDir) {
|
|
65
|
+
const found = [];
|
|
66
|
+
let current = startDir;
|
|
67
|
+
for (;;) {
|
|
68
|
+
if (fs.existsSync(path.join(current, 'node_modules'))) {
|
|
69
|
+
found.push(current);
|
|
70
|
+
}
|
|
71
|
+
const parent = path.dirname(current);
|
|
72
|
+
if (parent === current) {
|
|
73
|
+
return found;
|
|
74
|
+
}
|
|
75
|
+
current = parent;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Nearest ancestor of `startDir` whose `node_modules/@spinajs` actually holds
|
|
80
|
+
* packages, i.e. where the package manager hoisted them to.
|
|
81
|
+
*
|
|
82
|
+
* The directory must be non-empty on purpose: a workspace member often has its own
|
|
83
|
+
* empty `node_modules/@spinajs` left over from linking, and picking that would be
|
|
84
|
+
* worse than picking nothing.
|
|
85
|
+
*/
|
|
86
|
+
static findHoistingRoot(startDir) {
|
|
87
|
+
for (const dir of BaseFileSource.nodeModulesAncestors(startDir)) {
|
|
88
|
+
const scopeDir = path.join(dir, 'node_modules', '@spinajs');
|
|
89
|
+
try {
|
|
90
|
+
if (fs.readdirSync(scopeDir).length > 0) {
|
|
91
|
+
return dir;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// no @spinajs scope here - keep walking up
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
59
100
|
constructor(RunApp, CustomConfigPaths, appBaseDir, Env) {
|
|
60
101
|
super();
|
|
61
102
|
this.RunApp = RunApp;
|
|
@@ -69,13 +110,36 @@ class BaseFileSource extends configuration_common_1.ConfigurationSource {
|
|
|
69
110
|
this.CommonDirs = [];
|
|
70
111
|
this.BasePath = '';
|
|
71
112
|
const isESMMode = di_1.DI.get('__esmMode__');
|
|
113
|
+
// Package configs ( http, fs, rbac, templates, ... ) locate their own assets as
|
|
114
|
+
// `${WORKSPACE_ROOT_PATH ?? process.cwd()}/node_modules/@spinajs/<pkg>/lib/...`.
|
|
115
|
+
// In a workspace, cwd is the app package but the dependencies are hoisted to the
|
|
116
|
+
// repo root, so leaving this unset yields paths that do not exist - and an
|
|
117
|
+
// fsNative provider CREATES its basePath, leaving empty dirs that shadow the real
|
|
118
|
+
// package and break module resolution for everything importing it. Detect the
|
|
119
|
+
// root once here so every package config resolves correctly; an explicitly
|
|
120
|
+
// provided value always wins.
|
|
121
|
+
if (!process.env.WORKSPACE_ROOT_PATH) {
|
|
122
|
+
const hoistingRoot = BaseFileSource.findHoistingRoot((0, path_1.resolve)(process.cwd()));
|
|
123
|
+
if (hoistingRoot) {
|
|
124
|
+
internal_logger_1.InternalLogger.trace(`WORKSPACE_ROOT_PATH not set, detected hoisting root at ${hoistingRoot}`, 'Configuration');
|
|
125
|
+
process.env.WORKSPACE_ROOT_PATH = hoistingRoot;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const spinajsConfigGlob = isESMMode ? 'node_modules/@spinajs/*/lib/mjs/config' : 'node_modules/@spinajs/*/lib/cjs/config';
|
|
72
129
|
this.CommonDirs = [
|
|
73
130
|
// for tests, in src dir
|
|
74
131
|
(0, path_1.normalize)((0, path_1.join)((0, path_1.resolve)(process.cwd()), 'src', '/config')),
|
|
75
132
|
// other @spinajs modules paths
|
|
76
|
-
|
|
77
|
-
//
|
|
78
|
-
|
|
133
|
+
//
|
|
134
|
+
// Every ancestor that actually has a node_modules is searched, nearest first,
|
|
135
|
+
// mirroring how Node itself resolves. Checking only cwd and its parent broke
|
|
136
|
+
// npm/yarn workspaces: an app at <root>/packages/<app> has its dependencies
|
|
137
|
+
// hoisted to <root>/node_modules, two levels up, so none of the @spinajs
|
|
138
|
+
// package configs were ever found. That failed late and cryptically - the
|
|
139
|
+
// http config never loaded, so controllers could not resolve
|
|
140
|
+
// `__fs_controller_cache__` and the server never started - and it was only
|
|
141
|
+
// masked by setting WORKSPACE_ROOT_PATH by hand.
|
|
142
|
+
...BaseFileSource.nodeModulesAncestors((0, path_1.resolve)(process.cwd())).map((dir) => (0, path_1.normalize)((0, path_1.join)(dir, spinajsConfigGlob))),
|
|
79
143
|
];
|
|
80
144
|
if (process.env.WORKSPACE_ROOT_PATH) {
|
|
81
145
|
this.CommonDirs = this.CommonDirs.concat([
|
package/lib/cjs/sources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAA6C;AAC7C,gDAAwB;AACxB,oDAAsC;AACtC,+BAAgD;AAChD,uCAAsD;AACtD,uCAAyB;AACzB,2CAA6B;AAC7B,8DAA0D;AAC1D,wEAAgG;AAEhG,MAAsB,cAAe,SAAQ,0CAAmB;IAU9D,IAAW,KAAK;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IAED,YACY,MAAe,EACf,iBAA4B,EAC5B,UAAmB,EACnB,GAAY;QAEtB,KAAK,EAAE,CAAC;QALE,WAAM,GAAN,MAAM,CAAS;QACf,sBAAiB,GAAjB,iBAAiB,CAAW;QAC5B,eAAU,GAAV,UAAU,CAAS;QACnB,QAAG,GAAH,GAAG,CAAS;
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/sources.d.ts
CHANGED
|
@@ -11,6 +11,21 @@ export declare abstract class BaseFileSource extends ConfigurationSource {
|
|
|
11
11
|
protected CommonDirs: string[];
|
|
12
12
|
protected BasePath: string;
|
|
13
13
|
get Order(): number;
|
|
14
|
+
/**
|
|
15
|
+
* Walks from `startDir` up to the filesystem root, returning every directory that
|
|
16
|
+
* contains a `node_modules` folder, nearest first. Used to locate `@spinajs`
|
|
17
|
+
* package configs wherever the package manager happened to hoist them.
|
|
18
|
+
*/
|
|
19
|
+
protected static nodeModulesAncestors(startDir: string): string[];
|
|
20
|
+
/**
|
|
21
|
+
* Nearest ancestor of `startDir` whose `node_modules/@spinajs` actually holds
|
|
22
|
+
* packages, i.e. where the package manager hoisted them to.
|
|
23
|
+
*
|
|
24
|
+
* The directory must be non-empty on purpose: a workspace member often has its own
|
|
25
|
+
* empty `node_modules/@spinajs` left over from linking, and picking that would be
|
|
26
|
+
* worse than picking nothing.
|
|
27
|
+
*/
|
|
28
|
+
protected static findHoistingRoot(startDir: string): string | null;
|
|
14
29
|
constructor(RunApp?: string | undefined, CustomConfigPaths?: string[] | undefined, appBaseDir?: string | undefined, Env?: string | undefined);
|
|
15
30
|
protected load(extension: string, callback: (file: string) => Promise<IConfigLike>): Promise<{}>;
|
|
16
31
|
protected getEnvironment(config: Configuration): string;
|
package/lib/mjs/sources.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEhG,8BAAsB,cAAe,SAAQ,mBAAmB;
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEhG,8BAAsB,cAAe,SAAQ,mBAAmB;IA8D5D,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM;IACzB,SAAS,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE;IACtC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM;IAC7B,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM;IAhExB;;OAEG;IACI,OAAO,SAAQ;IAEtB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAEpC,SAAS,CAAC,QAAQ,SAAM;IAExB,IAAW,KAAK,WAEf;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBjE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;gBAiBtD,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,iBAAiB,CAAC,EAAE,MAAM,EAAE,YAAA,EAC5B,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,GAAG,CAAC,EAAE,MAAM,YAAA;cAyFR,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC;IA2BxF,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa;CAa/C;AAED,qBACa,YAAa,SAAQ,cAAc;IACjC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;CAgC/D;AAED,qBACa,cAAe,SAAQ,cAAc;IACnC,IAAI,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;CA2B/D"}
|
package/lib/mjs/sources.js
CHANGED
|
@@ -17,6 +17,47 @@ export class BaseFileSource extends ConfigurationSource {
|
|
|
17
17
|
get Order() {
|
|
18
18
|
return 1;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Walks from `startDir` up to the filesystem root, returning every directory that
|
|
22
|
+
* contains a `node_modules` folder, nearest first. Used to locate `@spinajs`
|
|
23
|
+
* package configs wherever the package manager happened to hoist them.
|
|
24
|
+
*/
|
|
25
|
+
static nodeModulesAncestors(startDir) {
|
|
26
|
+
const found = [];
|
|
27
|
+
let current = startDir;
|
|
28
|
+
for (;;) {
|
|
29
|
+
if (fs.existsSync(path.join(current, 'node_modules'))) {
|
|
30
|
+
found.push(current);
|
|
31
|
+
}
|
|
32
|
+
const parent = path.dirname(current);
|
|
33
|
+
if (parent === current) {
|
|
34
|
+
return found;
|
|
35
|
+
}
|
|
36
|
+
current = parent;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Nearest ancestor of `startDir` whose `node_modules/@spinajs` actually holds
|
|
41
|
+
* packages, i.e. where the package manager hoisted them to.
|
|
42
|
+
*
|
|
43
|
+
* The directory must be non-empty on purpose: a workspace member often has its own
|
|
44
|
+
* empty `node_modules/@spinajs` left over from linking, and picking that would be
|
|
45
|
+
* worse than picking nothing.
|
|
46
|
+
*/
|
|
47
|
+
static findHoistingRoot(startDir) {
|
|
48
|
+
for (const dir of BaseFileSource.nodeModulesAncestors(startDir)) {
|
|
49
|
+
const scopeDir = path.join(dir, 'node_modules', '@spinajs');
|
|
50
|
+
try {
|
|
51
|
+
if (fs.readdirSync(scopeDir).length > 0) {
|
|
52
|
+
return dir;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
// no @spinajs scope here - keep walking up
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
20
61
|
constructor(RunApp, CustomConfigPaths, appBaseDir, Env) {
|
|
21
62
|
super();
|
|
22
63
|
this.RunApp = RunApp;
|
|
@@ -30,13 +71,36 @@ export class BaseFileSource extends ConfigurationSource {
|
|
|
30
71
|
this.CommonDirs = [];
|
|
31
72
|
this.BasePath = '';
|
|
32
73
|
const isESMMode = DI.get('__esmMode__');
|
|
74
|
+
// Package configs ( http, fs, rbac, templates, ... ) locate their own assets as
|
|
75
|
+
// `${WORKSPACE_ROOT_PATH ?? process.cwd()}/node_modules/@spinajs/<pkg>/lib/...`.
|
|
76
|
+
// In a workspace, cwd is the app package but the dependencies are hoisted to the
|
|
77
|
+
// repo root, so leaving this unset yields paths that do not exist - and an
|
|
78
|
+
// fsNative provider CREATES its basePath, leaving empty dirs that shadow the real
|
|
79
|
+
// package and break module resolution for everything importing it. Detect the
|
|
80
|
+
// root once here so every package config resolves correctly; an explicitly
|
|
81
|
+
// provided value always wins.
|
|
82
|
+
if (!process.env.WORKSPACE_ROOT_PATH) {
|
|
83
|
+
const hoistingRoot = BaseFileSource.findHoistingRoot(resolve(process.cwd()));
|
|
84
|
+
if (hoistingRoot) {
|
|
85
|
+
InternalLogger.trace(`WORKSPACE_ROOT_PATH not set, detected hoisting root at ${hoistingRoot}`, 'Configuration');
|
|
86
|
+
process.env.WORKSPACE_ROOT_PATH = hoistingRoot;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const spinajsConfigGlob = isESMMode ? 'node_modules/@spinajs/*/lib/mjs/config' : 'node_modules/@spinajs/*/lib/cjs/config';
|
|
33
90
|
this.CommonDirs = [
|
|
34
91
|
// for tests, in src dir
|
|
35
92
|
normalize(join(resolve(process.cwd()), 'src', '/config')),
|
|
36
93
|
// other @spinajs modules paths
|
|
37
|
-
|
|
38
|
-
//
|
|
39
|
-
|
|
94
|
+
//
|
|
95
|
+
// Every ancestor that actually has a node_modules is searched, nearest first,
|
|
96
|
+
// mirroring how Node itself resolves. Checking only cwd and its parent broke
|
|
97
|
+
// npm/yarn workspaces: an app at <root>/packages/<app> has its dependencies
|
|
98
|
+
// hoisted to <root>/node_modules, two levels up, so none of the @spinajs
|
|
99
|
+
// package configs were ever found. That failed late and cryptically - the
|
|
100
|
+
// http config never loaded, so controllers could not resolve
|
|
101
|
+
// `__fs_controller_cache__` and the server never started - and it was only
|
|
102
|
+
// masked by setting WORKSPACE_ROOT_PATH by hand.
|
|
103
|
+
...BaseFileSource.nodeModulesAncestors(resolve(process.cwd())).map((dir) => normalize(join(dir, spinajsConfigGlob))),
|
|
40
104
|
];
|
|
41
105
|
if (process.env.WORKSPACE_ROOT_PATH) {
|
|
42
106
|
this.CommonDirs = this.CommonDirs.concat([
|
package/lib/mjs/sources.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAiB,mBAAmB,EAAe,MAAM,+BAA+B,CAAC;AAEhG,MAAM,OAAgB,cAAe,SAAQ,mBAAmB;IAU9D,IAAW,KAAK;QACd,OAAO,CAAC,CAAC;IACX,CAAC;IAED,YACY,MAAe,EACf,iBAA4B,EAC5B,UAAmB,EACnB,GAAY;QAEtB,KAAK,EAAE,CAAC;QALE,WAAM,GAAN,MAAM,CAAS;QACf,sBAAiB,GAAjB,iBAAiB,CAAW;QAC5B,eAAU,GAAV,UAAU,CAAS;QACnB,QAAG,GAAH,GAAG,CAAS;
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/sources.ts"],"names":[],"mappings":"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"}
|