@basemaps/lambda-tiler 6.35.0 → 6.36.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/CHANGELOG.md +12 -0
- package/build/routes/__tests__/fonts.test.js +15 -11
- package/build/routes/__tests__/fonts.test.js.map +1 -1
- package/build/routes/__tests__/sprites.test.js +5 -10
- package/build/routes/__tests__/sprites.test.js.map +1 -1
- package/build/routes/fonts.js +1 -1
- package/build/routes/fonts.js.map +1 -1
- package/build/util/assets.provider.d.ts.map +1 -1
- package/build/util/assets.provider.js +2 -6
- package/build/util/assets.provider.js.map +1 -1
- package/build/util/config.loader.d.ts.map +1 -1
- package/build/util/config.loader.js +8 -1
- package/build/util/config.loader.js.map +1 -1
- package/dist/index.js +44 -44
- package/dist/node_modules/.package-lock.json +13 -10
- package/dist/node_modules/minimist/.eslintrc +54 -0
- package/dist/node_modules/minimist/.github/FUNDING.yml +12 -0
- package/dist/node_modules/minimist/.nycrc +14 -0
- package/dist/node_modules/minimist/CHANGELOG.md +212 -0
- package/dist/node_modules/minimist/{readme.markdown → README.md} +20 -1
- package/dist/node_modules/minimist/package.json +39 -9
- package/dist/node_modules/node-abi/abi_registry.json +8 -1
- package/dist/node_modules/node-abi/package.json +1 -1
- package/dist/node_modules/semver/classes/range.js +3 -0
- package/dist/node_modules/semver/index.js +81 -41
- package/dist/node_modules/semver/package.json +21 -10
- package/dist/package-lock.json +23 -20
- package/dist/package.json +1 -1
- package/package.json +4 -4
- package/src/routes/__tests__/fonts.test.ts +16 -16
- package/src/routes/__tests__/sprites.test.ts +6 -10
- package/src/routes/fonts.ts +1 -1
- package/src/util/assets.provider.ts +2 -5
- package/src/util/config.loader.ts +7 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/minimist/.travis.yml +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [6.36.0](https://github.com/linz/basemaps/compare/v6.35.0...v6.36.0) (2022-10-18)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Remove AssetLocation and using cb_lastest to get default assets. BM-693 ([#2527](https://github.com/linz/basemaps/issues/2527)) ([fce8607](https://github.com/linz/basemaps/commit/fce860786fb838a6fcbe65f35ca9ec6f12eeaf97))
|
|
12
|
+
* **lambda-tiler:** Fix the font.json api which should get from assests/fonts/fonts.json ([#2526](https://github.com/linz/basemaps/issues/2526)) ([174d95f](https://github.com/linz/basemaps/commit/174d95fff3fb76d14f17c174bfbc52ee199ba7c3))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
# [6.35.0](https://github.com/linz/basemaps/compare/v6.34.0...v6.35.0) (2022-09-14)
|
|
7
19
|
|
|
8
20
|
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { base58, ConfigProviderMemory } from '@basemaps/config';
|
|
2
|
-
import {
|
|
2
|
+
import { getDefaultConfig } from '@basemaps/shared';
|
|
3
3
|
import { fsa } from '@chunkd/fs';
|
|
4
4
|
import o from 'ospec';
|
|
5
|
+
import { createSandbox } from 'sinon';
|
|
5
6
|
import { handler } from '../../index.js';
|
|
6
7
|
import { CachedConfig } from '../../util/config.cache.js';
|
|
8
|
+
import { ConfigLoader } from '../../util/config.loader.js';
|
|
7
9
|
import { CoSources } from '../../util/source.cache.js';
|
|
8
10
|
import { Api, mockRequest, mockUrlRequest } from '../../__tests__/xyz.util.js';
|
|
9
11
|
import { fontList } from '../fonts.js';
|
|
10
12
|
import { FsMemory } from './memory.fs.js';
|
|
11
13
|
o.spec('/v1/fonts', () => {
|
|
12
14
|
const memory = new FsMemory();
|
|
15
|
+
const sandbox = createSandbox();
|
|
16
|
+
const config = new ConfigProviderMemory();
|
|
13
17
|
o.before(() => {
|
|
14
18
|
fsa.register('memory://', memory);
|
|
15
19
|
});
|
|
16
|
-
const assetLocation = process.env[Env.AssetLocation];
|
|
17
20
|
o.beforeEach(() => {
|
|
18
|
-
|
|
19
|
-
|
|
21
|
+
config.assets = 'memory://';
|
|
22
|
+
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
20
23
|
});
|
|
21
24
|
o.afterEach(() => {
|
|
22
|
-
|
|
25
|
+
sandbox.restore();
|
|
23
26
|
CachedConfig.cache.clear();
|
|
24
27
|
CoSources.cache.clear();
|
|
25
28
|
memory.files.clear();
|
|
@@ -30,7 +33,7 @@ o.spec('/v1/fonts', () => {
|
|
|
30
33
|
});
|
|
31
34
|
o('should return a list of fonts found', async () => {
|
|
32
35
|
var _a;
|
|
33
|
-
await fsa.write('memory://fonts.json', Buffer.from(JSON.stringify(['Roboto Black', 'Roboto Thin'])));
|
|
36
|
+
await fsa.write('memory://fonts/fonts.json', Buffer.from(JSON.stringify(['Roboto Black', 'Roboto Thin'])));
|
|
34
37
|
const res = await fontList(mockRequest('/v1/fonts.json'));
|
|
35
38
|
o(res.status).equals(200);
|
|
36
39
|
o(res.header('content-type')).equals('application/json');
|
|
@@ -63,11 +66,12 @@ o.spec('/v1/fonts', () => {
|
|
|
63
66
|
o(res.status).equals(404);
|
|
64
67
|
});
|
|
65
68
|
o('should get the correct utf8 font with default assets', async () => {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
getDefaultConfig().assets = undefined;
|
|
70
|
+
sandbox
|
|
71
|
+
.stub(config.ConfigBundle, 'get')
|
|
72
|
+
.resolves({ id: 'cb_latest', name: 'latest', path: 'latest', hash: 'hash', assets: 'memory://' });
|
|
73
|
+
await fsa.write('memory://fonts/Roboto Thin/0-255.pbf', Buffer.from(''));
|
|
74
|
+
const res255 = await handler.router.handle(mockRequest('/v1/fonts/Roboto Thin/0-255.pbf'));
|
|
71
75
|
o(res255.status).equals(200);
|
|
72
76
|
o(res255.header('content-type')).equals('application/x-protobuf');
|
|
73
77
|
o(res255.header('content-encoding')).equals(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/fonts.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fonts.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/fonts.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ConfigProviderMemory } from '@basemaps/config';
|
|
2
2
|
import { fsa } from '@chunkd/fs';
|
|
3
3
|
import o from 'ospec';
|
|
4
4
|
import { createSandbox } from 'sinon';
|
|
5
5
|
import { gunzipSync, gzipSync } from 'zlib';
|
|
6
6
|
import { handler } from '../../index.js';
|
|
7
|
+
import { ConfigLoader } from '../../util/config.loader.js';
|
|
7
8
|
import { mockRequest } from '../../__tests__/xyz.util.js';
|
|
8
9
|
import { FsMemory } from './memory.fs.js';
|
|
9
10
|
o.spec('/v1/sprites', () => {
|
|
10
11
|
const memory = new FsMemory();
|
|
11
12
|
const sandbox = createSandbox();
|
|
13
|
+
const config = new ConfigProviderMemory();
|
|
12
14
|
o.before(() => {
|
|
13
15
|
fsa.register('memory://', memory);
|
|
14
16
|
});
|
|
15
|
-
const assetLocation = process.env[Env.AssetLocation];
|
|
16
17
|
o.beforeEach(() => {
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
config.assets = 'memory://';
|
|
19
|
+
sandbox.stub(ConfigLoader, 'getDefaultConfig').resolves(config);
|
|
19
20
|
});
|
|
20
21
|
o.afterEach(() => {
|
|
21
|
-
getDefaultConfig().assets = assetLocation;
|
|
22
22
|
memory.files.clear();
|
|
23
23
|
sandbox.restore();
|
|
24
24
|
});
|
|
25
|
-
o('should return 404 if no assets defined', async () => {
|
|
26
|
-
delete process.env[Env.AssetLocation];
|
|
27
|
-
const res404 = await handler.router.handle(mockRequest('/v1/sprites/topographic.json'));
|
|
28
|
-
o(res404.status).equals(404);
|
|
29
|
-
});
|
|
30
25
|
o('should fetch a json document', async () => {
|
|
31
26
|
await Promise.all([
|
|
32
27
|
fsa.write('memory://sprites/topographic.json', Buffer.from(JSON.stringify({ test: true }))),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sprites.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/sprites.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sprites.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/sprites.test.ts"],"names":[],"mappings":"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"}
|
package/build/routes/fonts.js
CHANGED
|
@@ -5,6 +5,6 @@ export async function fontGet(req) {
|
|
|
5
5
|
return assetProvider.serve(req, targetFile, 'application/x-protobuf');
|
|
6
6
|
}
|
|
7
7
|
export async function fontList(req) {
|
|
8
|
-
return assetProvider.serve(req, 'fonts.json', 'application/json');
|
|
8
|
+
return assetProvider.serve(req, path.join('fonts', 'fonts.json'), 'application/json');
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=fonts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/routes/fonts.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAA+B;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACvF,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAsB;IACnD,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/routes/fonts.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM3D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAA+B;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IACvF,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,wBAAwB,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAsB;IACnD,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.provider.d.ts","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"assets.provider.d.ts","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAc,MAAM,gBAAgB,CAAC;AAOnF,qBAAa,aAAa;IACxB;;;;;;;OAOG;IAEG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAc3D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM1E;;;;;;OAMG;IACG,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAepG;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Env } from '@basemaps/shared';
|
|
2
1
|
import { fsa } from '@chunkd/fs';
|
|
3
2
|
import { LambdaHttpResponse, HttpHeader } from '@linzjs/lambda';
|
|
4
3
|
import { ConfigLoader } from './config.loader.js';
|
|
@@ -44,14 +43,11 @@ export class AssetProvider {
|
|
|
44
43
|
*/
|
|
45
44
|
async serve(req, file, contentType) {
|
|
46
45
|
const config = await ConfigLoader.load(req);
|
|
47
|
-
let assetLocation = Env.get(Env.AssetLocation);
|
|
48
46
|
if (config == null)
|
|
49
47
|
return NotFound();
|
|
50
|
-
if (config.assets
|
|
51
|
-
assetLocation = config.assets;
|
|
52
|
-
if (assetLocation == null)
|
|
48
|
+
if (config.assets == null)
|
|
53
49
|
return NotFound();
|
|
54
|
-
const buf = await assetProvider.get(
|
|
50
|
+
const buf = await assetProvider.get(config.assets, file);
|
|
55
51
|
if (buf == null)
|
|
56
52
|
return NotFound();
|
|
57
53
|
const cacheKey = Etag.key(buf);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.provider.js","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"assets.provider.js","sourceRoot":"","sources":["../../src/util/assets.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAqB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,OAAO,aAAa;IACxB;;;;;;;OAOG;IAEH,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,QAAgB;QACtC,6BAA6B;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE7E,gCAAgC;QAChC,IAAI;YACF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjC;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAgB;QAC/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,GAAsB,EAAE,IAAY,EAAE,WAAmB;QACnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC;YAAE,OAAO,WAAW,EAAE,CAAC;QAE5D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAClE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;QACjG,IAAI,MAAM,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACrE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.loader.d.ts","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,sBAAsB,EAAY,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD,qBAAa,YAAY;IACvB,0BAA0B;WACb,gBAAgB,IAAI,OAAO,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.loader.d.ts","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,sBAAsB,EAAY,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAQnD,qBAAa,YAAY;IACvB,0BAA0B;WACb,gBAAgB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAUhE,+EAA+E;IAC/E,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI;WAOxC,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAwB3E"}
|
|
@@ -9,7 +9,14 @@ const SafeProtocols = new Set(['s3', 'memory']);
|
|
|
9
9
|
export class ConfigLoader {
|
|
10
10
|
/** Exposed for testing */
|
|
11
11
|
static async getDefaultConfig() {
|
|
12
|
-
|
|
12
|
+
const config = getDefaultConfig();
|
|
13
|
+
if (config.assets == null) {
|
|
14
|
+
const cb = await config.ConfigBundle.get(config.ConfigBundle.id('latest'));
|
|
15
|
+
if (cb == null)
|
|
16
|
+
throw new LambdaHttpResponse(400, 'Unable to get lastest config bundle for asset.');
|
|
17
|
+
config.assets = cb.assets;
|
|
18
|
+
}
|
|
19
|
+
return config;
|
|
13
20
|
}
|
|
14
21
|
/** Lookup the config path from a request and return a standardized location */
|
|
15
22
|
static extract(req) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,gDAAgD;AAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC,CAAC;AAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhD,MAAM,OAAO,YAAY;IACvB,0BAA0B;IAC1B,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,
|
|
1
|
+
{"version":3,"file":"config.loader.js","sourceRoot":"","sources":["../../src/util/config.loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA0B,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,gDAAgD;AAChD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,yBAAyB,EAAE,eAAe,CAAC,CAAC,CAAC;AAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhD,MAAM,OAAO,YAAY;IACvB,0BAA0B;IAC1B,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;YACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3E,IAAI,EAAE,IAAI,IAAI;gBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;YACpG,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;SAC3B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,OAAO,CAAC,GAAsB;QACnC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,WAAW,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAsB;QACtC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,WAAW,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExD,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;QAEhH,MAAM,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAEnC,IAAI,CAAC,IAAI,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;YAClC,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5F;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,MAAM,oCAAoC,CAAC,CAAC;SAC7F;QAED,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC/B,OAAO,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACjD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,IAAI;gBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,cAAc,EAAE,CAAC,CAAC;YAC1F,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|