@squiz/dx-common-lib 1.2.1-alpha.100 → 1.2.1-alpha.102
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 +16 -0
- package/lib/assertions/index.d.ts +7 -0
- package/lib/assertions/index.js +26 -0
- package/lib/assertions/index.js.map +1 -0
- package/lib/error/BadRequestError.d.ts +4 -0
- package/lib/error/BadRequestError.js +11 -0
- package/lib/error/BadRequestError.js.map +1 -0
- package/lib/error/ErrorWithHttpStatusCode.d.ts +5 -0
- package/lib/error/ErrorWithHttpStatusCode.js +12 -0
- package/lib/error/ErrorWithHttpStatusCode.js.map +1 -0
- package/lib/error/InternalServerError.d.ts +4 -0
- package/lib/error/InternalServerError.js +11 -0
- package/lib/error/InternalServerError.js.map +1 -0
- package/lib/error/MethodNotImplementedError.d.ts +4 -0
- package/lib/error/MethodNotImplementedError.js +11 -0
- package/lib/error/MethodNotImplementedError.js.map +1 -0
- package/lib/error/ResourceNotFoundError.d.ts +4 -0
- package/lib/error/ResourceNotFoundError.js +11 -0
- package/lib/error/ResourceNotFoundError.js.map +1 -0
- package/lib/error/TimeoutError.d.ts +4 -0
- package/lib/error/TimeoutError.js +11 -0
- package/lib/error/TimeoutError.js.map +1 -0
- package/lib/error/index.d.ts +6 -0
- package/lib/error/index.js +23 -0
- package/lib/error/index.js.map +1 -0
- package/lib/index.d.ts +4 -7
- package/lib/index.js +4 -9
- package/lib/index.js.map +1 -1
- package/lib/util/getNodeEnv.d.ts +1 -0
- package/lib/util/getNodeEnv.js +14 -0
- package/lib/util/getNodeEnv.js.map +1 -0
- package/lib/util/getNodeEnv.spec.d.ts +1 -0
- package/lib/util/getNodeEnv.spec.js +22 -0
- package/lib/util/getNodeEnv.spec.js.map +1 -0
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.js +14 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/isPathTryingToAccessOutsideOfRoot.d.ts +1 -0
- package/lib/util/isPathTryingToAccessOutsideOfRoot.js +14 -0
- package/lib/util/isPathTryingToAccessOutsideOfRoot.js.map +1 -0
- package/lib/util/isPathTryingToAccessOutsideOfRoot.spec.d.ts +1 -0
- package/lib/util/isPathTryingToAccessOutsideOfRoot.spec.js +25 -0
- package/lib/util/isPathTryingToAccessOutsideOfRoot.spec.js.map +1 -0
- package/lib/util/joinAbsoluteUrlPath.d.ts +1 -0
- package/lib/util/joinAbsoluteUrlPath.js +26 -0
- package/lib/util/joinAbsoluteUrlPath.js.map +1 -0
- package/lib/util/joinAbsoluteUrlPath.spec.d.ts +1 -0
- package/lib/util/joinAbsoluteUrlPath.spec.js +43 -0
- package/lib/util/joinAbsoluteUrlPath.spec.js.map +1 -0
- package/lib/util/never.d.ts +1 -0
- package/lib/util/never.js +9 -0
- package/lib/util/never.js.map +1 -0
- package/lib/util/parseEnvVarForVar.d.ts +1 -0
- package/lib/util/parseEnvVarForVar.js +15 -0
- package/lib/util/parseEnvVarForVar.js.map +1 -0
- package/lib/util/parseEnvVarForVar.spec.d.ts +1 -0
- package/lib/util/parseEnvVarForVar.spec.js +20 -0
- package/lib/util/parseEnvVarForVar.spec.js.map +1 -0
- package/lib/zip/zipDirectory.d.ts +1 -0
- package/lib/zip/zipDirectory.js +32 -0
- package/lib/zip/zipDirectory.js.map +1 -0
- package/lib/zip/zipDirectory.spec.d.ts +1 -0
- package/lib/zip/zipDirectory.spec.js +25 -0
- package/lib/zip/zipDirectory.spec.js.map +1 -0
- package/package.json +8 -4
- package/src/assertions/index.ts +10 -0
- package/src/error/BadRequestError.ts +7 -0
- package/src/error/ErrorWithHttpStatusCode.ts +5 -0
- package/src/error/InternalServerError.ts +7 -0
- package/src/error/MethodNotImplementedError.ts +7 -0
- package/src/error/ResourceNotFoundError.ts +7 -0
- package/src/error/TimeoutError.ts +7 -0
- package/src/error/index.ts +6 -0
- package/src/index.ts +4 -9
- package/src/util/getNodeEnv.spec.ts +25 -0
- package/src/util/getNodeEnv.ts +11 -0
- package/src/util/index.ts +5 -0
- package/src/util/isPathTryingToAccessOutsideOfRoot.spec.ts +25 -0
- package/src/util/isPathTryingToAccessOutsideOfRoot.ts +8 -0
- package/src/util/joinAbsoluteUrlPath.spec.ts +62 -0
- package/src/util/joinAbsoluteUrlPath.ts +22 -0
- package/src/util/never.ts +4 -0
- package/src/util/parseEnvVarForVar.spec.ts +22 -0
- package/src/util/parseEnvVarForVar.ts +12 -0
- package/src/zip/zipDirectory.spec.ts +24 -0
- package/src/zip/zipDirectory.ts +31 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/jest.integration.config.ts +0 -26
@@ -0,0 +1,32 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.zipDirectory = void 0;
|
7
|
+
const path_1 = __importDefault(require("path"));
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
9
|
+
const archiver_1 = __importDefault(require("archiver"));
|
10
|
+
function zipDirectory(sourceDirectory, outputDirectory) {
|
11
|
+
return new Promise((resolve, reject) => {
|
12
|
+
const outputZipFile = path_1.default.join(outputDirectory, '/export.zip');
|
13
|
+
const output = fs_1.default.createWriteStream(outputZipFile);
|
14
|
+
const archive = (0, archiver_1.default)('zip', {
|
15
|
+
zlib: { level: 9 }, // Sets the compression level.
|
16
|
+
});
|
17
|
+
output.on('close', function () {
|
18
|
+
resolve(outputZipFile);
|
19
|
+
});
|
20
|
+
archive.on('warning', function (err) {
|
21
|
+
reject(err);
|
22
|
+
});
|
23
|
+
archive.on('error', function (err) {
|
24
|
+
reject(err);
|
25
|
+
});
|
26
|
+
archive.pipe(output);
|
27
|
+
archive.directory(sourceDirectory, false);
|
28
|
+
archive.finalize();
|
29
|
+
});
|
30
|
+
}
|
31
|
+
exports.zipDirectory = zipDirectory;
|
32
|
+
//# sourceMappingURL=zipDirectory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"zipDirectory.js","sourceRoot":"","sources":["../../src/zip/zipDirectory.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAEpB,wDAAgC;AAEhC,SAAgB,YAAY,CAAC,eAAuB,EAAE,eAAuB;IAC3E,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,YAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,KAAK,EAAE;YAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,8BAA8B;SACnD,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,aAAa,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,GAAG;YACjC,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC;AAzBD,oCAyBC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const path_1 = __importDefault(require("path"));
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
8
|
+
const zipDirectory_1 = require("./zipDirectory");
|
9
|
+
describe('zipDirectory', () => {
|
10
|
+
const inputDir = fs_1.default.mkdtempSync('zip-test');
|
11
|
+
const outDir = fs_1.default.mkdtempSync('zip-test-out');
|
12
|
+
beforeAll(() => {
|
13
|
+
fs_1.default.writeFileSync(path_1.default.join(inputDir, 'f1.txt'), '1');
|
14
|
+
fs_1.default.writeFileSync(path_1.default.join(inputDir, 'f2.txt'), '2');
|
15
|
+
});
|
16
|
+
afterAll(() => {
|
17
|
+
fs_1.default.rmSync(inputDir, { force: true, recursive: true });
|
18
|
+
fs_1.default.rmSync(outDir, { force: true, recursive: true });
|
19
|
+
});
|
20
|
+
it('should take an input path and an output path and create a export.zip', async () => {
|
21
|
+
await (0, zipDirectory_1.zipDirectory)(inputDir, outDir);
|
22
|
+
expect(fs_1.default.existsSync(path_1.default.join(outDir, 'export.zip'))).toEqual(true);
|
23
|
+
});
|
24
|
+
});
|
25
|
+
//# sourceMappingURL=zipDirectory.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"zipDirectory.spec.js","sourceRoot":"","sources":["../../src/zip/zipDirectory.spec.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,iDAA8C;AAE9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,MAAM,QAAQ,GAAG,YAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAE,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,GAAG,EAAE;QACZ,YAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,YAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,IAAA,2BAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAErC,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
{
|
2
2
|
"name": "@squiz/dx-common-lib",
|
3
|
-
"version": "1.2.1-alpha.
|
3
|
+
"version": "1.2.1-alpha.102",
|
4
4
|
"description": "",
|
5
5
|
"main": "lib/index.js",
|
6
6
|
"scripts": {
|
7
|
-
"start": "node ./lib/index.js",
|
8
7
|
"compile": "npx tsc",
|
9
8
|
"lint": "eslint ./src --ext .ts",
|
10
9
|
"test": "jest -c jest.config.ts",
|
11
|
-
"test:integration": "jest -c jest.integration.config.ts",
|
12
10
|
"test:update-snapshots": "jest -c jest.config.ts --updateSnapshot",
|
13
11
|
"clean": "rimraf \".tsbuildinfo\" \"./lib\""
|
14
12
|
},
|
15
13
|
"author": "",
|
16
14
|
"license": "ISC",
|
15
|
+
"dependencies": {
|
16
|
+
"@squiz/dx-logger-lib": "^1.2.1-alpha.102",
|
17
|
+
"archiver": "5.3.1"
|
18
|
+
},
|
17
19
|
"devDependencies": {
|
20
|
+
"@types/archiver": "5.3.1",
|
21
|
+
"@types/express": "4.17.13",
|
18
22
|
"@types/jest": "28.1.6",
|
19
23
|
"@types/node": "17.0.27",
|
20
24
|
"dotenv": "16.0.1",
|
@@ -26,5 +30,5 @@
|
|
26
30
|
"ts-node": "10.9.1",
|
27
31
|
"typescript": "4.7.4"
|
28
32
|
},
|
29
|
-
"gitHead": "
|
33
|
+
"gitHead": "4d9ba805bf0e888fc03fdb730452df8b8db6c506"
|
30
34
|
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
// Common Assertions
|
2
|
+
export * from './assertIsString';
|
3
|
+
export * from './assertIsDefined';
|
4
|
+
export * from './assertIsMapOfStringString';
|
5
|
+
export * from './assertIsObject';
|
6
|
+
export * from './assertIsNotAnEmptyString';
|
7
|
+
|
8
|
+
// Assert assign
|
9
|
+
export * from './assertAssignWithDefaultUndefinedValue';
|
10
|
+
export * from './assertAssign';
|
package/src/index.ts
CHANGED
@@ -1,10 +1,5 @@
|
|
1
|
-
|
2
|
-
export * from './
|
3
|
-
export * from './
|
4
|
-
export * from './assertions/assertIsMapOfStringString';
|
5
|
-
export * from './assertions/assertIsObject';
|
6
|
-
export * from './assertions/assertIsNotAnEmptyString';
|
1
|
+
export * from './assertions/';
|
2
|
+
export * from './error';
|
3
|
+
export * from './util';
|
7
4
|
|
8
|
-
|
9
|
-
export * from './assertions/assertAssignWithDefaultUndefinedValue';
|
10
|
-
export * from './assertions/assertAssign';
|
5
|
+
export * from './zip/zipDirectory';
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { getNodeEnv } from './getNodeEnv';
|
2
|
+
|
3
|
+
describe('getNodeEnv', () => {
|
4
|
+
it('should return production if NODE_ENV equals production', () => {
|
5
|
+
process.env.NODE_ENV = 'production';
|
6
|
+
expect(getNodeEnv()).toEqual('production');
|
7
|
+
});
|
8
|
+
|
9
|
+
it('should return development if NODE_ENV equals development', () => {
|
10
|
+
process.env.NODE_ENV = 'development';
|
11
|
+
expect(getNodeEnv()).toEqual('development');
|
12
|
+
});
|
13
|
+
|
14
|
+
it('should return development if NODE_ENV is not set', () => {
|
15
|
+
delete process.env.NODE_ENV;
|
16
|
+
expect(getNodeEnv()).toEqual('development');
|
17
|
+
});
|
18
|
+
|
19
|
+
it('should throw if NODE_ENV set to non valid environment', () => {
|
20
|
+
process.env.NODE_ENV = 'invalid';
|
21
|
+
expect(() => getNodeEnv()).toThrowError(
|
22
|
+
new Error('NODE_ENV env var can only be values "production" or "development"'),
|
23
|
+
);
|
24
|
+
});
|
25
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
export function getNodeEnv(): 'production' | 'development' {
|
2
|
+
if (process.env.NODE_ENV == 'production') {
|
3
|
+
return 'production';
|
4
|
+
}
|
5
|
+
|
6
|
+
if (process.env.NODE_ENV == 'development' || process.env.NODE_ENV === undefined) {
|
7
|
+
return 'development';
|
8
|
+
}
|
9
|
+
|
10
|
+
throw new Error('NODE_ENV env var can only be values "production" or "development"');
|
11
|
+
}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { getNodeEnv } from './getNodeEnv';
|
2
|
+
export { isPathTryingToAccessOutsideOfRoot } from './isPathTryingToAccessOutsideOfRoot';
|
3
|
+
export { joinAbsoluteUrlPath } from './joinAbsoluteUrlPath';
|
4
|
+
export { parseEnvVarForVar } from './parseEnvVarForVar';
|
5
|
+
export { never } from './never';
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { isPathTryingToAccessOutsideOfRoot } from './isPathTryingToAccessOutsideOfRoot';
|
2
|
+
|
3
|
+
describe('isPathTryingToAccessOutsideOfRoot', () => {
|
4
|
+
it("should return false if filepath doesn't try to access outside of root", () => {
|
5
|
+
expect(isPathTryingToAccessOutsideOfRoot('my-root/', 'hello')).toEqual(false);
|
6
|
+
expect(isPathTryingToAccessOutsideOfRoot('my-root/', './hello')).toEqual(false);
|
7
|
+
expect(isPathTryingToAccessOutsideOfRoot('my-root/', './hello/../')).toEqual(false);
|
8
|
+
});
|
9
|
+
|
10
|
+
it('should resolve a relative root path', () => {
|
11
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', 'hello')).toEqual(false);
|
12
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', 'hello/../world')).toEqual(false);
|
13
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', 'hello/world/..')).toEqual(false);
|
14
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', './')).toEqual(false);
|
15
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/something', './else')).toEqual(false);
|
16
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/something', './else/1/../../')).toEqual(false);
|
17
|
+
});
|
18
|
+
|
19
|
+
it('should return true if filepath does access outside of the root', () => {
|
20
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', '../')).toEqual(true);
|
21
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', '../../')).toEqual(true);
|
22
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', 'hello/../world/../../')).toEqual(true);
|
23
|
+
expect(isPathTryingToAccessOutsideOfRoot('./my-root/', 'hello/../../')).toEqual(true);
|
24
|
+
});
|
25
|
+
});
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
|
3
|
+
export function isPathTryingToAccessOutsideOfRoot(rootPath: string, filePath: string) {
|
4
|
+
const resolvedRoot = path.resolve(rootPath);
|
5
|
+
|
6
|
+
const joinedPath = path.join(resolvedRoot, filePath);
|
7
|
+
return !joinedPath.includes(resolvedRoot);
|
8
|
+
}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
import { joinAbsoluteUrlPath } from './joinAbsoluteUrlPath';
|
2
|
+
|
3
|
+
describe('joinAbsoluteUrlPath', () => {
|
4
|
+
it('should return a valid absolute url for protocol based inputs', () => {
|
5
|
+
expect(joinAbsoluteUrlPath('https://example.com', 'aaa', 'bbb')).toEqual('https://example.com/aaa/bbb');
|
6
|
+
expect(joinAbsoluteUrlPath('https://example.com/', '/aaa', 'bbb')).toEqual('https://example.com/aaa/bbb');
|
7
|
+
expect(joinAbsoluteUrlPath('https://example.com/', '/aaa/', '/bbb///')).toEqual('https://example.com/aaa/bbb');
|
8
|
+
expect(joinAbsoluteUrlPath('https://example.com/', './..///', '/bbb///')).toEqual('https://example.com/bbb');
|
9
|
+
expect(joinAbsoluteUrlPath('https://example.com/', './aaa/', '/bbb/')).toEqual('https://example.com/aaa/bbb');
|
10
|
+
expect(joinAbsoluteUrlPath('https://example.com/', '../aaa/', '/bbb')).toEqual('https://example.com/aaa/bbb');
|
11
|
+
|
12
|
+
expect(joinAbsoluteUrlPath('https://example.com/', 'ccc', '../aaa/', '/bbb')).toEqual(
|
13
|
+
'https://example.com/aaa/bbb',
|
14
|
+
);
|
15
|
+
expect(joinAbsoluteUrlPath('https://example.com/', 'ccc', '../../aaa/', '/bbb')).toEqual(
|
16
|
+
'https://example.com/aaa/bbb',
|
17
|
+
);
|
18
|
+
expect(joinAbsoluteUrlPath('https://example.com/', 'ccc', '/../../aaa/', '/bbb')).toEqual(
|
19
|
+
'https://example.com/aaa/bbb',
|
20
|
+
);
|
21
|
+
|
22
|
+
expect(joinAbsoluteUrlPath('https://example.com/', 'ddd', 'eee', 'ccc', '/../../aaa/', '/bbb')).toEqual(
|
23
|
+
'https://example.com/ddd/aaa/bbb',
|
24
|
+
);
|
25
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', 'aaa', 'bbb')).toEqual('http://localhost:3000/aaa/bbb');
|
26
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', '/aaa', 'bbb')).toEqual('http://localhost:3000/aaa/bbb');
|
27
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', '/aaa/', '/bbb///')).toEqual('http://localhost:3000/aaa/bbb');
|
28
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', './aaa/', '/bbb/')).toEqual('http://localhost:3000/aaa/bbb');
|
29
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', '../aaa/', '/bbb')).toEqual('http://localhost:3000/aaa/bbb');
|
30
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', 'ccc', '../aaa/', '/bbb')).toEqual(
|
31
|
+
'http://localhost:3000/aaa/bbb',
|
32
|
+
);
|
33
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', 'ccc', '../../aaa/', '/bbb')).toEqual(
|
34
|
+
'http://localhost:3000/aaa/bbb',
|
35
|
+
);
|
36
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000', 'ccc', '/../../aaa/', '/bbb')).toEqual(
|
37
|
+
'http://localhost:3000/aaa/bbb',
|
38
|
+
);
|
39
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000/', 'ddd', 'eee', 'ccc', '/../../aaa/', '/bbb')).toEqual(
|
40
|
+
'http://localhost:3000/ddd/aaa/bbb',
|
41
|
+
);
|
42
|
+
expect(joinAbsoluteUrlPath('http://localhost:3000/', 'localhost', 'eee', 'ccc', '/../../aaa/', '/bbb')).toEqual(
|
43
|
+
'http://localhost:3000/localhost/aaa/bbb',
|
44
|
+
);
|
45
|
+
});
|
46
|
+
|
47
|
+
it('should return a valid resolved path for inputs', () => {
|
48
|
+
expect(joinAbsoluteUrlPath('aaa', 'bbb')).toEqual('aaa/bbb');
|
49
|
+
expect(joinAbsoluteUrlPath('/aaa', 'bbb')).toEqual('aaa/bbb');
|
50
|
+
expect(joinAbsoluteUrlPath('/aaa/', '/bbb///')).toEqual('aaa/bbb');
|
51
|
+
expect(joinAbsoluteUrlPath('./aaa/', '/bbb/')).toEqual('aaa/bbb');
|
52
|
+
expect(joinAbsoluteUrlPath('../aaa/', '/bbb')).toEqual('aaa/bbb');
|
53
|
+
expect(joinAbsoluteUrlPath('ccc', '../aaa/', '/bbb')).toEqual('aaa/bbb');
|
54
|
+
expect(joinAbsoluteUrlPath('ccc', '../../aaa/', '/bbb')).toEqual('aaa/bbb');
|
55
|
+
expect(joinAbsoluteUrlPath('ccc', '/../../aaa/', '/bbb')).toEqual('aaa/bbb');
|
56
|
+
expect(joinAbsoluteUrlPath('ddd', 'eee', 'ccc', '/../../aaa/', '/bbb')).toEqual('ddd/aaa/bbb');
|
57
|
+
expect(joinAbsoluteUrlPath('http', 'ccc', '/aaa/', '/bbb')).toEqual('http/ccc/aaa/bbb');
|
58
|
+
expect(joinAbsoluteUrlPath('https', 'ccc', '/aaa/', '/bbb')).toEqual('https/ccc/aaa/bbb');
|
59
|
+
expect(joinAbsoluteUrlPath('https', '../ccc', '/aaa/', '/bbb')).toEqual('ccc/aaa/bbb');
|
60
|
+
expect(joinAbsoluteUrlPath('https', './ccc', '/aaa/', '/bbb')).toEqual('https/ccc/aaa/bbb');
|
61
|
+
});
|
62
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
export function joinAbsoluteUrlPath(...args: string[]) {
|
2
|
+
const [rootUrl] = args;
|
3
|
+
/**
|
4
|
+
* This method takes any form of input string and resolves them to make an absolute url
|
5
|
+
* Since these paths are web paths and not file paths, we are creating a URL object (https://nodejs.org/api/url.html). http://example.com has just been used as a dummy entry to create a valid url.
|
6
|
+
* Note: path.resolves gives you different output based on the OS node is running on. More reading here https://nodejs.org/api/path.html#windows-vs-posix.
|
7
|
+
*/
|
8
|
+
const url = new URL(getSanitisedString(args), 'http://example.com');
|
9
|
+
if (urlIsAbsolute(rootUrl)) {
|
10
|
+
return url.toString();
|
11
|
+
} else {
|
12
|
+
return url.pathname.replace(/(^\/|\/$)/g, '');
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
function getSanitisedString(subdirs: string[]) {
|
17
|
+
return subdirs.map((dir) => dir.replace(/(^\.\/+)|(^\/+|\/+$)/g, '')).join('/');
|
18
|
+
}
|
19
|
+
|
20
|
+
function urlIsAbsolute(url: string) {
|
21
|
+
return url.match(/^http(s?):\/\//);
|
22
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { parseEnvVarForVar } from './parseEnvVarForVar';
|
2
|
+
|
3
|
+
describe('parseEnvVarForVar', () => {
|
4
|
+
it('it should read an environment variable from process.env.*', () => {
|
5
|
+
process.env.MY_VAR = 'hello';
|
6
|
+
|
7
|
+
expect(parseEnvVarForVar('MY_VAR')).toEqual('hello');
|
8
|
+
});
|
9
|
+
|
10
|
+
it('it should throw an error if the variable is not available', () => {
|
11
|
+
expect(() => parseEnvVarForVar('DOESNT_EXIST')).toThrowError(new Error('env variable DOESNT_EXIST must be set'));
|
12
|
+
});
|
13
|
+
|
14
|
+
it('it should not throw an error if a default value is provided and env var doesnt exist', () => {
|
15
|
+
expect(parseEnvVarForVar('DOESNT_EXIST', 'default')).toEqual('default');
|
16
|
+
});
|
17
|
+
|
18
|
+
it('it should return env var if its set and a defualt value is set', () => {
|
19
|
+
process.env.MY_VAR = 'hello';
|
20
|
+
expect(parseEnvVarForVar('MY_VAR', 'default')).toEqual('hello');
|
21
|
+
});
|
22
|
+
});
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export function parseEnvVarForVar(varName: string, defaultValue: string | undefined = undefined): string {
|
2
|
+
if (process.env[varName] === undefined) {
|
3
|
+
if (defaultValue !== undefined) {
|
4
|
+
return defaultValue;
|
5
|
+
}
|
6
|
+
|
7
|
+
throw new Error(`env variable ${varName} must be set`);
|
8
|
+
}
|
9
|
+
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
11
|
+
return process.env[varName]!;
|
12
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
import fs from 'fs';
|
3
|
+
import { zipDirectory } from './zipDirectory';
|
4
|
+
|
5
|
+
describe('zipDirectory', () => {
|
6
|
+
const inputDir = fs.mkdtempSync('zip-test');
|
7
|
+
const outDir = fs.mkdtempSync('zip-test-out');
|
8
|
+
|
9
|
+
beforeAll(() => {
|
10
|
+
fs.writeFileSync(path.join(inputDir, 'f1.txt'), '1');
|
11
|
+
fs.writeFileSync(path.join(inputDir, 'f2.txt'), '2');
|
12
|
+
});
|
13
|
+
|
14
|
+
afterAll(() => {
|
15
|
+
fs.rmSync(inputDir, { force: true, recursive: true });
|
16
|
+
fs.rmSync(outDir, { force: true, recursive: true });
|
17
|
+
});
|
18
|
+
|
19
|
+
it('should take an input path and an output path and create a export.zip', async () => {
|
20
|
+
await zipDirectory(inputDir, outDir);
|
21
|
+
|
22
|
+
expect(fs.existsSync(path.join(outDir, 'export.zip'))).toEqual(true);
|
23
|
+
});
|
24
|
+
});
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import path from 'path';
|
2
|
+
import fs from 'fs';
|
3
|
+
|
4
|
+
import archiver from 'archiver';
|
5
|
+
|
6
|
+
export function zipDirectory(sourceDirectory: string, outputDirectory: string) {
|
7
|
+
return new Promise<string>((resolve, reject) => {
|
8
|
+
const outputZipFile = path.join(outputDirectory, '/export.zip');
|
9
|
+
const output = fs.createWriteStream(outputZipFile);
|
10
|
+
|
11
|
+
const archive = archiver('zip', {
|
12
|
+
zlib: { level: 9 }, // Sets the compression level.
|
13
|
+
});
|
14
|
+
|
15
|
+
output.on('close', function () {
|
16
|
+
resolve(outputZipFile);
|
17
|
+
});
|
18
|
+
|
19
|
+
archive.on('warning', function (err) {
|
20
|
+
reject(err);
|
21
|
+
});
|
22
|
+
|
23
|
+
archive.on('error', function (err) {
|
24
|
+
reject(err);
|
25
|
+
});
|
26
|
+
|
27
|
+
archive.pipe(output);
|
28
|
+
archive.directory(sourceDirectory, false);
|
29
|
+
archive.finalize();
|
30
|
+
});
|
31
|
+
}
|
package/tsconfig.tsbuildinfo
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2019.full.d.ts","./src/assertions/assertIsString.ts","./src/assertions/assertIsDefined.ts","./src/assertions/assertIsMapOfStringString.ts","./src/assertions/assertIsObject.ts","./src/assertions/assertIsNotAnEmptyString.ts","./src/assertions/assertAssign.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.ts","./src/index.ts","./src/assertions/assertAssign.spec.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.spec.ts","./src/assertions/assertIsDefined.spec.ts","./src/assertions/assertIsMapOfStringString.spec.ts","./src/assertions/assertIsNotAnEmptyString.spec.ts","./src/assertions/assertIsObject.spec.ts","./src/assertions/assertIsString.spec.ts","./node_modules/chalk/index.d.ts","./node_modules/@sinclair/typebox/typebox.d.ts","./node_modules/@jest/schemas/build/index.d.ts","./node_modules/pretty-format/build/index.d.ts","./node_modules/jest-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/@types/jest/index.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f",{"version":"92293014078d62704d990e36ff625a1f5035cf640c29df8bdaca950f7100b850","signature":"fc8bba36188f124c4a8f77cfee3c3866ab69681ae6242f3126db68f66e8dde79"},{"version":"4d7ef907074dd6d8fd9dfe483ed519ea1ea5ba34a7d9cc5780037ae55443cb04","signature":"4574b719c169a0403986def46ead96b1bea45a154c768c73de5f40e6052a2e7c"},{"version":"ca9675e9e23f5334cc287c42dcc147e098c11fe3eec42e621ac2877e33e11790","signature":"79d02ee26ac639c9ec0a64823fdb23cbf800610b33b2a5b833c8fd3fa8300b8c"},{"version":"d6a65dd0e4bac132b0865c36ee08293682cde9329bcd0f7cfa6cb7e8c1bf8201","signature":"83006a0b56727e71bba20e649e2e785b0d48c0b5747e7f6f8777ecc2ad543ba2"},{"version":"c24a63675f9e2be2608639e4b5693d765aaa6cbfd8c50bd894ba1ba82cf1e863","signature":"4dbabe74a0d5da407ca5792b0788deabb100e7575de1dd4343e004aa6f0f6c47"},{"version":"d3185c2498b4fa0d69126842650d30093d52f61eacf381ee73d09facdf0940a1","signature":"fedf134c6065fc7a0758fcb2719ae5e0ca4a2834280d06661c34eee12ed9e424"},{"version":"f3fddd1882e3d82e536628f7411e007d3397f544b855e7c067cd8c89fd373812","signature":"3dfca62c02f7a0afa0e2303e2b19db0b948b65e326604aea6f904a72b8779c13"},{"version":"142afc3467b3a968fa0e3d17cc3ea9be0e928eaa7055895458dd0579c21f68b5","signature":"f541e6fdee0d27aaf2646923014775d95a28da7396c9cdade080e1d8209f21f5"},{"version":"2d77ea3dec511eb6dfc846998a5fa03ea8534c6ffd0fb88df53d88790a8db76f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"068fd0e5004de5d10debf3e15d89d818295a50a8e208cc33a9991407b33d36ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"204d350d82eb67a520690dca145da112ab00b07436bab2af46fc22eb2a6ed9a3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c76cb7a210b42a3cd21f7e4da7fe48128c491e3e3fca30cf2c21683a3fc20551","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4b4e5f386a969632dda611befed2d8be5d96e939077dd8722247fbe251ef9de7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e90ff2a7146a4e2801bc50d2c36392296ca89c46cc0f53cba46e0506657c56ee","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7707bfb61f54d5f09ea4e80aff8465407a492c66ae81705e62e4185f779aad29","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d982cdd2610155b3cbcbfa62ccabcf2d2b739f821518ef113348d160ef0010d9","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"1de1ad6a1929317171d8cfcd55bb2732257680c1bf89bcd53e1d46a4d8dbda22","affectsGlobalScope":true},"0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8"],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[62,111],[111],[64,66,111],[68,111],[71,111],[72,77,111],[73,83,84,91,100,110,111],[73,74,83,91,111],[75,111],[76,77,84,92,111],[77,100,107,111],[78,80,83,91,111],[79,111],[80,81,111],[82,83,111],[83,111],[83,84,85,100,110,111],[83,84,85,100,111],[86,91,100,110,111],[83,84,86,87,91,100,107,110,111],[86,88,100,107,110,111],[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117],[83,89,111],[90,110,111],[80,83,91,100,111],[92,111],[93,111],[71,94,111],[95,109,111,115],[96,111],[97,111],[83,98,111],[98,99,111,113],[83,100,101,102,111],[100,102,111],[100,101,111],[103,111],[104,111],[83,105,106,111],[105,106,111],[77,91,100,107,111],[108,111],[91,109,111],[72,86,97,110,111],[77,111],[100,111,112],[111,113],[111,114],[72,77,83,85,94,100,110,111,113,115],[100,111,116],[64,111],[61,65,111],[63,111],[46,51,111],[46,49,52,111],[51,111],[47,111],[48,111],[50,111],[49,111],[46,111],[46,47,48,49,50,51,52,111],[46,47,48,49,50,51,52]],"referencedMap":[[63,1],[62,2],[67,3],[68,4],[69,4],[71,5],[72,6],[73,7],[74,8],[75,9],[76,10],[77,11],[78,12],[79,13],[80,14],[81,14],[82,15],[83,16],[84,17],[85,18],[70,2],[117,2],[86,19],[87,20],[88,21],[118,22],[89,23],[90,24],[91,25],[92,26],[93,27],[94,28],[95,29],[96,30],[97,31],[98,32],[99,33],[100,34],[102,35],[101,36],[103,37],[104,38],[105,39],[106,40],[107,41],[108,42],[109,43],[110,44],[111,45],[112,46],[113,47],[114,48],[115,49],[116,50],[61,2],[65,51],[66,52],[64,53],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[54,54],[51,4],[55,55],[52,56],[56,57],[47,4],[57,58],[48,4],[58,59],[50,4],[59,60],[49,4],[60,61],[46,4],[53,62]],"exportedModulesMap":[[63,1],[62,2],[67,3],[68,4],[69,4],[71,5],[72,6],[73,7],[74,8],[75,9],[76,10],[77,11],[78,12],[79,13],[80,14],[81,14],[82,15],[83,16],[84,17],[85,18],[70,2],[117,2],[86,19],[87,20],[88,21],[118,22],[89,23],[90,24],[91,25],[92,26],[93,27],[94,28],[95,29],[96,30],[97,31],[98,32],[99,33],[100,34],[102,35],[101,36],[103,37],[104,38],[105,39],[106,40],[107,41],[108,42],[109,43],[110,44],[111,45],[112,46],[113,47],[114,48],[115,49],[116,50],[61,2],[65,51],[66,52],[64,53],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[53,63]],"semanticDiagnosticsPerFile":[63,62,67,68,69,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,70,117,86,87,88,118,89,90,91,92,93,94,95,96,97,98,99,100,102,101,103,104,105,106,107,108,109,110,111,112,113,114,115,116,61,65,66,64,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,54,51,55,52,56,47,57,48,58,50,59,49,60,46,53]},"version":"4.7.4"}
|
1
|
+
{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.es2019.full.d.ts","./src/assertions/assertIsString.ts","./src/assertions/assertIsDefined.ts","./src/assertions/assertIsMapOfStringString.ts","./src/assertions/assertIsObject.ts","./src/assertions/assertIsNotAnEmptyString.ts","./src/assertions/assertAssign.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.ts","./src/assertions/index.ts","./src/error/ErrorWithHttpStatusCode.ts","./src/error/BadRequestError.ts","./src/error/InternalServerError.ts","./src/error/ResourceNotFoundError.ts","./src/error/TimeoutError.ts","./src/error/MethodNotImplementedError.ts","./src/error/index.ts","./src/util/getNodeEnv.ts","./src/util/isPathTryingToAccessOutsideOfRoot.ts","./src/util/joinAbsoluteUrlPath.ts","./src/util/parseEnvVarForVar.ts","./src/util/never.ts","./src/util/index.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/minimatch/index.d.ts","./node_modules/@types/glob/index.d.ts","./node_modules/@types/archiver/index.d.ts","./src/zip/zipDirectory.ts","./src/index.ts","./src/assertions/assertAssign.spec.ts","./src/assertions/assertAssignWithDefaultUndefinedValue.spec.ts","./src/assertions/assertIsDefined.spec.ts","./src/assertions/assertIsMapOfStringString.spec.ts","./src/assertions/assertIsNotAnEmptyString.spec.ts","./src/assertions/assertIsObject.spec.ts","./src/assertions/assertIsString.spec.ts","./src/util/getNodeEnv.spec.ts","./src/util/isPathTryingToAccessOutsideOfRoot.spec.ts","./src/util/joinAbsoluteUrlPath.spec.ts","./src/util/parseEnvVarForVar.spec.ts","./src/zip/zipDirectory.spec.ts","./node_modules/chalk/index.d.ts","./node_modules/@sinclair/typebox/typebox.d.ts","./node_modules/@jest/schemas/build/index.d.ts","./node_modules/pretty-format/build/index.d.ts","./node_modules/jest-diff/build/index.d.ts","./node_modules/jest-matcher-utils/build/index.d.ts","./node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"f5c28122bee592cfaf5c72ed7bcc47f453b79778ffa6e301f45d21a0970719d4","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3f149f903dd20dfeb7c80e228b659f0e436532de772469980dbd00702cc05cc1","affectsGlobalScope":true},{"version":"1272277fe7daa738e555eb6cc45ded42cc2d0f76c07294142283145d49e96186","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"cd483c056da900716879771893a3c9772b66c3c88f8943b4205aec738a94b1d0","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"c37f8a49593a0030eecb51bbfa270e709bec9d79a6cc3bb851ef348d4e6b26f8","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f",{"version":"92293014078d62704d990e36ff625a1f5035cf640c29df8bdaca950f7100b850","signature":"fc8bba36188f124c4a8f77cfee3c3866ab69681ae6242f3126db68f66e8dde79"},{"version":"4d7ef907074dd6d8fd9dfe483ed519ea1ea5ba34a7d9cc5780037ae55443cb04","signature":"4574b719c169a0403986def46ead96b1bea45a154c768c73de5f40e6052a2e7c"},{"version":"ca9675e9e23f5334cc287c42dcc147e098c11fe3eec42e621ac2877e33e11790","signature":"79d02ee26ac639c9ec0a64823fdb23cbf800610b33b2a5b833c8fd3fa8300b8c"},{"version":"d6a65dd0e4bac132b0865c36ee08293682cde9329bcd0f7cfa6cb7e8c1bf8201","signature":"83006a0b56727e71bba20e649e2e785b0d48c0b5747e7f6f8777ecc2ad543ba2"},{"version":"c24a63675f9e2be2608639e4b5693d765aaa6cbfd8c50bd894ba1ba82cf1e863","signature":"4dbabe74a0d5da407ca5792b0788deabb100e7575de1dd4343e004aa6f0f6c47"},{"version":"d3185c2498b4fa0d69126842650d30093d52f61eacf381ee73d09facdf0940a1","signature":"fedf134c6065fc7a0758fcb2719ae5e0ca4a2834280d06661c34eee12ed9e424"},{"version":"f3fddd1882e3d82e536628f7411e007d3397f544b855e7c067cd8c89fd373812","signature":"3dfca62c02f7a0afa0e2303e2b19db0b948b65e326604aea6f904a72b8779c13"},{"version":"9251bfdf27f051d2d5191f81337fec17047f74620aafa1d52acaa5a57ce320c9","signature":"7d1ff1e694ec1815a0c975d9d5f43989e33c20c5754ad08f7362194b76c3a486"},{"version":"0c8a4a7b206e45d177374cce96be04a8e38c5ffb829a7bce6b32eefb7574ec56","signature":"048c8482f35a0f3abd2ec8c86ba7b3c86af4906ebb7a12e4fbdc8d6896eb19dc"},{"version":"113e5ec8707933688f23511279e519e6ebdcc8661e51799ccd2fab8727a3d2da","signature":"69c97795fcaf5bf566a1efcc24e5a5bf2d8c261ad1851239b0504c9c4a9e9cc0"},{"version":"8c679e99a1fb34368098193ddaa7d71e53ca627c13e4506bbd71ab4275a816a4","signature":"9dfc364342a667c968f9be3ff7865abaf477df206a936b578b2a98eeaff0e318"},{"version":"d8e9caa427bdfa931d78abf06cfe0e385ed90e14d703aeb82b8e46c568935e38","signature":"56d6e24f71ed721db5a196fc6ab8523f0f469f7ae01b663ddea59981e0d82423"},{"version":"d4397be8204b154743da2d6884e35aec474bce802f6b8404d6e643f7d9a56ec2","signature":"0bccccdd597d8a14213654d62b6ec25f37925bcd9bf6b9470006867478d7f612"},{"version":"63ed4dd3280a017a7cb6562029c8cb95a0cea2595603705633de0bc1549653f0","signature":"527b2e684f504cc22b897df087cbe0d7226d1b780f727cabd0bff0b3c64787d7"},"bcf36e9e16ca4d20b335446cf916f4ecc33b17b12b8e5810ed56c677b5b23648",{"version":"207abcfecc54645a12e731392969b055bbfe0899479775a523c61d6133f7020e","signature":"87307be8e09e256fef6f626127e27cb03b10a9a488ebbaa0ec6ee748e9b14b78"},{"version":"679e3bbbdf343193fbe1453140abf18c396df602fa77bf0822ea02fee36153e8","signature":"02d39a917634d874c61968720d803fc08c236a5e5e22dfa910a8582a58d8f772"},{"version":"71271d56ce4e261c1237f4f79c9a7929d0f63ee4a87fb1b798cf6fb01dfdd970","signature":"4889ae7c801238c611fcc96216b4b0bcdf39f0da707c77ca19fe561371029d11"},{"version":"2bf9416ebde5f015048df868ecca9b79465107f39468fea39f1a7f1ef6a421b8","signature":"e5e691ae3d8407aace8fba0029a6092c58eabaeeacc1325fa9c26e44f2776d53"},{"version":"e1346e2082a89f3ee97481c0a2a84b6f66c3e77cd305d97f570c81bc0a0b1071","signature":"9ed4c2b43c27c6c5dddb57a494ff47196b85d8fcae576f6021850498bca5fc45"},"e3e9743b48adb6abe2696dbf22e798612211d7e4af8f263f9658e8abf21d8f50","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","918a76828d88a73924bb26fef58040a6eb8a9adb7e407ea7264175520dda9450","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"287b21dc1d1b9701c92e15e7dd673dfe6044b15812956377adffb6f08825b1bc","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","51440322bec180cf452ce474b4f69b993b4eb491fecf47abd958d3342747d6b0",{"version":"66d9b577e4fa0bd63d78023650dadd43443328469e69bc063ec710a8bec27bd7","signature":"558e0d1c797f78421be23db3c79a93db5b6c26a42a1e2b55a3efba037f26ab48"},{"version":"a36757545207c2e3b0f3ce527e0eec5e2fc5db2d0e0c613be6a83da1d39d0bd0","signature":"e078f390c355ceda76b758c96acf291a1ff32424f027c027751891cb992ea203"},{"version":"2d77ea3dec511eb6dfc846998a5fa03ea8534c6ffd0fb88df53d88790a8db76f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"068fd0e5004de5d10debf3e15d89d818295a50a8e208cc33a9991407b33d36ce","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"204d350d82eb67a520690dca145da112ab00b07436bab2af46fc22eb2a6ed9a3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"c76cb7a210b42a3cd21f7e4da7fe48128c491e3e3fca30cf2c21683a3fc20551","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4b4e5f386a969632dda611befed2d8be5d96e939077dd8722247fbe251ef9de7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e90ff2a7146a4e2801bc50d2c36392296ca89c46cc0f53cba46e0506657c56ee","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7707bfb61f54d5f09ea4e80aff8465407a492c66ae81705e62e4185f779aad29","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"dd5a03dd282f09ce955a4e975b3f86b64c1174666a35bb5bee1fc0d919a016fa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e424bc41a38235e4d25d44e2ba20d89f7f2fb199a8714592294c5e180b4f8716","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"aafc949cad635f9362b540b18158697557f0df0a731b472c0d4c3e86e0d86972","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e61d5bf38ceb4bdd862eb6d719794efed4a3e9db28fd1b2320b1377f386d88df","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"597f96c999f199aaf722ed76d5c8f95c72b895bc13a3d65f3c9072d4f8cb205e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d982cdd2610155b3cbcbfa62ccabcf2d2b739f821518ef113348d160ef0010d9","ffcc5500e77223169833fc6eb59b3a507944a1f89574e0a1276b0ea7fc22c4a4","22f13de9e2fe5f0f4724797abd3d34a1cdd6e47ef81fc4933fea3b8bf4ad524b","e3ba509d3dce019b3190ceb2f3fc88e2610ab717122dabd91a9efaa37804040d","cda0cb09b995489b7f4c57f168cd31b83dcbaa7aad49612734fb3c9c73f6e4f2",{"version":"1de1ad6a1929317171d8cfcd55bb2732257680c1bf89bcd53e1d46a4d8dbda22","affectsGlobalScope":true}],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":6},"fileIdsList":[[110,136],[110],[83,99,110,115,119],[82,83,110,117,118],[110,138,140],[67,110],[70,110],[71,76,110],[72,82,83,90,99,109,110],[72,73,82,90,110],[74,110],[75,76,83,91,110],[76,99,106,110],[77,79,82,90,110],[78,110],[79,80,110],[81,82,110],[82,110],[82,83,84,99,109,110],[82,83,84,99,110],[85,90,99,109,110],[82,83,85,86,90,99,106,109,110],[85,87,99,106,109,110],[67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],[82,88,110],[89,109,110],[79,82,90,99,110],[91,110],[92,110],[70,93,110],[94,108,110,114],[95,110],[96,110],[82,97,110],[97,98,110,112],[82,99,100,101,110],[99,101,110],[99,100,110],[102,110],[103,110],[82,104,105,110],[104,105,110],[76,90,99,106,110],[107,110],[90,108,110],[71,85,96,109,110],[76,110],[99,110,111],[110,112],[110,113],[71,76,82,84,93,99,109,110,112,114],[99,110,115],[110,138],[110,135,139],[110,137],[46,51,110],[46,49,52,110],[51,110],[47,110],[48,110],[50,110],[49,110],[46,110],[46,47,48,49,50,51,52,110],[54,110],[56,110],[54,55,56,57,58,59,110],[53,60,66,110,121],[61,110],[61,62,63,64,65,110],[62,110],[63,110],[64,110],[83,92,110,121],[83,92,110,120],[46,47,48,49,50,51,52],[54],[56],[53,60,66,121]],"referencedMap":[[137,1],[136,2],[120,3],[119,4],[141,5],[118,2],[67,6],[68,6],[70,7],[71,8],[72,9],[73,10],[74,11],[75,12],[76,13],[77,14],[78,15],[79,16],[80,16],[81,17],[82,18],[83,19],[84,20],[69,2],[116,2],[85,21],[86,22],[87,23],[117,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,34],[98,35],[99,36],[101,37],[100,38],[102,39],[103,40],[104,41],[105,42],[106,43],[107,44],[108,45],[109,46],[110,47],[111,48],[112,49],[113,50],[114,51],[115,52],[135,2],[139,53],[140,54],[138,55],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[123,56],[51,6],[124,57],[52,58],[125,59],[47,6],[126,60],[48,6],[127,61],[50,6],[128,62],[49,6],[129,63],[46,6],[53,64],[55,65],[54,2],[56,65],[59,66],[57,65],[58,65],[60,67],[122,68],[130,69],[61,2],[66,70],[131,71],[62,29],[132,72],[63,2],[65,2],[133,73],[64,2],[134,74],[121,75]],"exportedModulesMap":[[137,1],[136,2],[120,3],[119,4],[141,5],[118,2],[67,6],[68,6],[70,7],[71,8],[72,9],[73,10],[74,11],[75,12],[76,13],[77,14],[78,15],[79,16],[80,16],[81,17],[82,18],[83,19],[84,20],[69,2],[116,2],[85,21],[86,22],[87,23],[117,24],[88,25],[89,26],[90,27],[91,28],[92,29],[93,30],[94,31],[95,32],[96,33],[97,34],[98,35],[99,36],[101,37],[100,38],[102,39],[103,40],[104,41],[105,42],[106,43],[107,44],[108,45],[109,46],[110,47],[111,48],[112,49],[113,50],[114,51],[115,52],[135,2],[139,53],[140,54],[138,55],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[45,2],[33,2],[34,2],[35,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[44,2],[11,2],[10,2],[53,76],[55,77],[56,77],[59,78],[57,77],[58,77],[60,67],[122,79],[66,70]],"semanticDiagnosticsPerFile":[137,136,120,119,141,118,67,68,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,69,116,85,86,87,117,88,89,90,91,92,93,94,95,96,97,98,99,101,100,102,103,104,105,106,107,108,109,110,111,112,113,114,115,135,139,140,138,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,45,33,34,35,36,7,37,42,43,38,39,40,41,1,44,11,10,123,51,124,52,125,47,126,48,127,50,128,49,129,46,53,55,54,56,59,57,58,60,122,130,61,66,131,62,132,63,65,133,64,134,121]},"version":"4.7.4"}
|