@squiz/dx-common-lib 1.2.1-alpha.100
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/jest.config.ts +20 -0
- package/jest.integration.config.ts +26 -0
- package/lib/assertions/assertAssign.d.ts +4 -0
- package/lib/assertions/assertAssign.js +23 -0
- package/lib/assertions/assertAssign.js.map +1 -0
- package/lib/assertions/assertAssign.spec.d.ts +1 -0
- package/lib/assertions/assertAssign.spec.js +16 -0
- package/lib/assertions/assertAssign.spec.js.map +1 -0
- package/lib/assertions/assertAssignWithDefaultUndefinedValue.d.ts +4 -0
- package/lib/assertions/assertAssignWithDefaultUndefinedValue.js +15 -0
- package/lib/assertions/assertAssignWithDefaultUndefinedValue.js.map +1 -0
- package/lib/assertions/assertAssignWithDefaultUndefinedValue.spec.d.ts +1 -0
- package/lib/assertions/assertAssignWithDefaultUndefinedValue.spec.js +25 -0
- package/lib/assertions/assertAssignWithDefaultUndefinedValue.spec.js.map +1 -0
- package/lib/assertions/assertIsDefined.d.ts +1 -0
- package/lib/assertions/assertIsDefined.js +11 -0
- package/lib/assertions/assertIsDefined.js.map +1 -0
- package/lib/assertions/assertIsDefined.spec.d.ts +1 -0
- package/lib/assertions/assertIsDefined.spec.js +15 -0
- package/lib/assertions/assertIsDefined.spec.js.map +1 -0
- package/lib/assertions/assertIsMapOfStringString.d.ts +3 -0
- package/lib/assertions/assertIsMapOfStringString.js +31 -0
- package/lib/assertions/assertIsMapOfStringString.js.map +1 -0
- package/lib/assertions/assertIsMapOfStringString.spec.d.ts +1 -0
- package/lib/assertions/assertIsMapOfStringString.spec.js +19 -0
- package/lib/assertions/assertIsMapOfStringString.spec.js.map +1 -0
- package/lib/assertions/assertIsNotAnEmptyString.d.ts +1 -0
- package/lib/assertions/assertIsNotAnEmptyString.js +20 -0
- package/lib/assertions/assertIsNotAnEmptyString.js.map +1 -0
- package/lib/assertions/assertIsNotAnEmptyString.spec.d.ts +1 -0
- package/lib/assertions/assertIsNotAnEmptyString.spec.js +24 -0
- package/lib/assertions/assertIsNotAnEmptyString.spec.js.map +1 -0
- package/lib/assertions/assertIsObject.d.ts +1 -0
- package/lib/assertions/assertIsObject.js +15 -0
- package/lib/assertions/assertIsObject.js.map +1 -0
- package/lib/assertions/assertIsObject.spec.d.ts +1 -0
- package/lib/assertions/assertIsObject.spec.js +18 -0
- package/lib/assertions/assertIsObject.spec.js.map +1 -0
- package/lib/assertions/assertIsString.d.ts +1 -0
- package/lib/assertions/assertIsString.js +15 -0
- package/lib/assertions/assertIsString.js.map +1 -0
- package/lib/assertions/assertIsString.spec.d.ts +1 -0
- package/lib/assertions/assertIsString.spec.js +17 -0
- package/lib/assertions/assertIsString.spec.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +26 -0
- package/lib/index.js.map +1 -0
- package/package.json +30 -0
- package/src/assertions/assertAssign.spec.ts +18 -0
- package/src/assertions/assertAssign.ts +22 -0
- package/src/assertions/assertAssignWithDefaultUndefinedValue.spec.ts +31 -0
- package/src/assertions/assertAssignWithDefaultUndefinedValue.ts +17 -0
- package/src/assertions/assertIsDefined.spec.ts +19 -0
- package/src/assertions/assertIsDefined.ts +7 -0
- package/src/assertions/assertIsMapOfStringString.spec.ts +23 -0
- package/src/assertions/assertIsMapOfStringString.ts +29 -0
- package/src/assertions/assertIsNotAnEmptyString.spec.ts +25 -0
- package/src/assertions/assertIsNotAnEmptyString.ts +17 -0
- package/src/assertions/assertIsObject.spec.ts +17 -0
- package/src/assertions/assertIsObject.ts +11 -0
- package/src/assertions/assertIsString.spec.ts +16 -0
- package/src/assertions/assertIsString.ts +11 -0
- package/src/index.ts +10 -0
- package/tsconfig.json +16 -0
- package/tsconfig.tsbuildinfo +1 -0
package/CHANGELOG.md
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
All notable changes to this project will be documented in this file.
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
|
+
|
6
|
+
## [1.2.1-alpha.100](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.90...v1.2.1-alpha.100) (2022-08-18)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @squiz/dx-common-lib
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## [1.2.1-alpha.99](https://gitlab.squiz.net/developer-experience/cmp/compare/v1.2.1-alpha.90...v1.2.1-alpha.99) (2022-08-18)
|
15
|
+
|
16
|
+
**Note:** Version bump only for package @squiz/dx-common-lib
|
package/jest.config.ts
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
import type { Config } from 'jest';
|
2
|
+
|
3
|
+
import { config as configFunc } from 'dotenv';
|
4
|
+
configFunc();
|
5
|
+
|
6
|
+
// Sync object
|
7
|
+
const config: Config = {
|
8
|
+
preset: 'ts-jest',
|
9
|
+
testEnvironment: 'node',
|
10
|
+
testPathIgnorePatterns: [
|
11
|
+
'<rootDir>/lib/',
|
12
|
+
'<rootDir>/cdk.out/',
|
13
|
+
'test.ts',
|
14
|
+
'/integration-tests/',
|
15
|
+
'.*\\.integration\\.spec\\.ts$',
|
16
|
+
],
|
17
|
+
maxWorkers: '80%',
|
18
|
+
};
|
19
|
+
|
20
|
+
export default config;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import type { Config } from 'jest';
|
2
|
+
import { config as dotEnvConfig } from 'dotenv';
|
3
|
+
|
4
|
+
dotEnvConfig();
|
5
|
+
|
6
|
+
process.env.NODE_ENV = 'development';
|
7
|
+
|
8
|
+
// Sync object
|
9
|
+
const config: Config = {
|
10
|
+
preset: 'ts-jest',
|
11
|
+
testEnvironment: 'node',
|
12
|
+
testPathIgnorePatterns: ['<rootDir>/lib/', '<rootDir>/cdk.out/', 'test.ts'],
|
13
|
+
maxWorkers: '80%',
|
14
|
+
detectOpenHandles: true,
|
15
|
+
|
16
|
+
testRegex: '.*\\.integration\\.spec\\.ts$',
|
17
|
+
|
18
|
+
globals: {
|
19
|
+
BUILD_VERSION: 'undefined',
|
20
|
+
BUILD_BRANCH: 'undefined',
|
21
|
+
},
|
22
|
+
|
23
|
+
testTimeout: 30_000,
|
24
|
+
};
|
25
|
+
|
26
|
+
export default config;
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertAssign = void 0;
|
4
|
+
const assert_1 = require("assert");
|
5
|
+
/**
|
6
|
+
* Assert and return unknown value as known type
|
7
|
+
*/
|
8
|
+
function assertAssign(value, assertionFunc, errorMessage) {
|
9
|
+
try {
|
10
|
+
assertionFunc(value);
|
11
|
+
}
|
12
|
+
catch (e) {
|
13
|
+
if (errorMessage) {
|
14
|
+
throw new assert_1.AssertionError({ message: errorMessage });
|
15
|
+
}
|
16
|
+
else {
|
17
|
+
throw e;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
return value;
|
21
|
+
}
|
22
|
+
exports.assertAssign = assertAssign;
|
23
|
+
//# sourceMappingURL=assertAssign.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertAssign.js","sourceRoot":"","sources":["../../src/assertions/assertAssign.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAc,EACd,aAAiD,EACjD,YAAqB;IAErB,IAAI;QACF,aAAa,CAAC,KAAK,CAAC,CAAC;KACtB;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,YAAY,EAAE;YAChB,MAAM,IAAI,uBAAc,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;SACrD;aAAM;YACL,MAAM,CAAC,CAAC;SACT;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAhBD,oCAgBC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertAssign_1 = require("./assertAssign");
|
4
|
+
const assertIsString_1 = require("./assertIsString");
|
5
|
+
describe('assertAssign', () => {
|
6
|
+
it('should assert the input meets an assertion function and return if valid', () => {
|
7
|
+
expect((0, assertAssign_1.assertAssign)('123', assertIsString_1.assertIsString)).toEqual('123');
|
8
|
+
});
|
9
|
+
it('should assert the input meets an assertion function and throw if not valid', () => {
|
10
|
+
expect(() => (0, assertAssign_1.assertAssign)(123, assertIsString_1.assertIsString)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
11
|
+
});
|
12
|
+
it('should allow custom error message', () => {
|
13
|
+
expect(() => (0, assertAssign_1.assertAssign)(123, assertIsString_1.assertIsString, 'custom error')).toThrowErrorMatchingInlineSnapshot(`"custom error"`);
|
14
|
+
});
|
15
|
+
});
|
16
|
+
//# sourceMappingURL=assertAssign.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertAssign.spec.js","sourceRoot":"","sources":["../../src/assertions/assertAssign.spec.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,qDAAkD;AAElD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,IAAA,2BAAY,EAAC,KAAK,EAAE,+BAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,2BAAY,EAAC,GAAG,EAAE,+BAAc,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;IAChH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,2BAAY,EAAC,GAAG,EAAE,+BAAc,EAAE,cAAc,CAAC,CAAC,CAAC,kCAAkC,CAChG,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/**
|
2
|
+
* If value is undefined, return default value otherwise assert it meets assertion rule
|
3
|
+
*/
|
4
|
+
export declare function assertAssignWithDefaultUndefinedValue<T>(value: unknown, assertionFunc: (val: unknown) => asserts val is T, defaultValue: T, errorMessage?: string): T;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertAssignWithDefaultUndefinedValue = void 0;
|
4
|
+
const assertAssign_1 = require("./assertAssign");
|
5
|
+
/**
|
6
|
+
* If value is undefined, return default value otherwise assert it meets assertion rule
|
7
|
+
*/
|
8
|
+
function assertAssignWithDefaultUndefinedValue(value, assertionFunc, defaultValue, errorMessage) {
|
9
|
+
if (value === undefined || value === null) {
|
10
|
+
return defaultValue;
|
11
|
+
}
|
12
|
+
return (0, assertAssign_1.assertAssign)(value, assertionFunc, errorMessage);
|
13
|
+
}
|
14
|
+
exports.assertAssignWithDefaultUndefinedValue = assertAssignWithDefaultUndefinedValue;
|
15
|
+
//# sourceMappingURL=assertAssignWithDefaultUndefinedValue.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertAssignWithDefaultUndefinedValue.js","sourceRoot":"","sources":["../../src/assertions/assertAssignWithDefaultUndefinedValue.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C;;GAEG;AACH,SAAgB,qCAAqC,CACnD,KAAc,EACd,aAAiD,EACjD,YAAe,EACf,YAAqB;IAErB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;QACzC,OAAO,YAAY,CAAC;KACrB;IAED,OAAO,IAAA,2BAAY,EAAC,KAAK,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAXD,sFAWC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertAssignWithDefaultUndefinedValue_1 = require("./assertAssignWithDefaultUndefinedValue");
|
4
|
+
const assertIsObject_1 = require("./assertIsObject");
|
5
|
+
const assertIsString_1 = require("./assertIsString");
|
6
|
+
describe('assertAssignWithDefaultUndefinedValue', () => {
|
7
|
+
it('should assert the input meets an assertion function and return if valid', () => {
|
8
|
+
expect((0, assertAssignWithDefaultUndefinedValue_1.assertAssignWithDefaultUndefinedValue)('123', assertIsString_1.assertIsString, 'xx')).toEqual('123');
|
9
|
+
});
|
10
|
+
it('should return default value if input is undefined', () => {
|
11
|
+
expect((0, assertAssignWithDefaultUndefinedValue_1.assertAssignWithDefaultUndefinedValue)(undefined, assertIsString_1.assertIsString, 'xx')).toEqual('xx');
|
12
|
+
});
|
13
|
+
it('should handle different types of type assertions', () => {
|
14
|
+
expect((0, assertAssignWithDefaultUndefinedValue_1.assertAssignWithDefaultUndefinedValue)(undefined, assertIsObject_1.assertIsObject, { default: 'hello' })).toEqual({
|
15
|
+
default: 'hello',
|
16
|
+
});
|
17
|
+
});
|
18
|
+
it('should assert the input meets an assertion function and throw if not valid', () => {
|
19
|
+
expect(() => (0, assertAssignWithDefaultUndefinedValue_1.assertAssignWithDefaultUndefinedValue)(123, assertIsString_1.assertIsString, 'xx')).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
20
|
+
});
|
21
|
+
it('should allow custom error message', () => {
|
22
|
+
expect(() => (0, assertAssignWithDefaultUndefinedValue_1.assertAssignWithDefaultUndefinedValue)(123, assertIsString_1.assertIsString, 'xx', 'custom error')).toThrowErrorMatchingInlineSnapshot(`"custom error"`);
|
23
|
+
});
|
24
|
+
});
|
25
|
+
//# sourceMappingURL=assertAssignWithDefaultUndefinedValue.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertAssignWithDefaultUndefinedValue.spec.js","sourceRoot":"","sources":["../../src/assertions/assertAssignWithDefaultUndefinedValue.spec.ts"],"names":[],"mappings":";;AAAA,mGAAgG;AAChG,qDAAkD;AAClD,qDAAkD;AAElD,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,CAAC,IAAA,6EAAqC,EAAC,KAAK,EAAE,+BAAc,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,CAAC,IAAA,6EAAqC,EAAC,SAAS,EAAE,+BAAc,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,IAAA,6EAAqC,EAAC,SAAS,EAAE,+BAAc,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACrG,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,6EAAqC,EAAC,GAAG,EAAE,+BAAc,EAAE,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAC/G,yBAAyB,CAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,CACV,IAAA,6EAAqC,EAAC,GAAG,EAAE,+BAAc,EAAE,IAAI,EAAE,cAAc,CAAC,CACjF,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function assertIsDefined<T>(value: T): asserts value is NonNullable<T>;
|
@@ -0,0 +1,11 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertIsDefined = void 0;
|
4
|
+
const assert_1 = require("assert");
|
5
|
+
function assertIsDefined(value) {
|
6
|
+
if (value === undefined || value === null) {
|
7
|
+
throw new assert_1.AssertionError({ message: `Expected 'val' to be defined, but received ${value}` });
|
8
|
+
}
|
9
|
+
}
|
10
|
+
exports.assertIsDefined = assertIsDefined;
|
11
|
+
//# sourceMappingURL=assertIsDefined.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsDefined.js","sourceRoot":"","sources":["../../src/assertions/assertIsDefined.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,SAAgB,eAAe,CAAI,KAAQ;IACzC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;QACzC,MAAM,IAAI,uBAAc,CAAC,EAAE,OAAO,EAAE,8CAA8C,KAAK,EAAE,EAAE,CAAC,CAAC;KAC9F;AACH,CAAC;AAJD,0CAIC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertIsDefined_1 = require("./assertIsDefined");
|
4
|
+
describe('assertIsDefined', () => {
|
5
|
+
it('should throw an assertion error if input is undefined', () => {
|
6
|
+
expect(() => (0, assertIsDefined_1.assertIsDefined)(undefined)).toThrowErrorMatchingInlineSnapshot(`"Expected 'val' to be defined, but received undefined"`);
|
7
|
+
});
|
8
|
+
it('should throw an assertion error if input is null', () => {
|
9
|
+
expect(() => (0, assertIsDefined_1.assertIsDefined)(null)).toThrowErrorMatchingInlineSnapshot(`"Expected 'val' to be defined, but received null"`);
|
10
|
+
});
|
11
|
+
it('should return "void" or undefined if valid', () => {
|
12
|
+
expect((0, assertIsDefined_1.assertIsDefined)(123)).toBeUndefined();
|
13
|
+
});
|
14
|
+
});
|
15
|
+
//# sourceMappingURL=assertIsDefined.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsDefined.spec.js","sourceRoot":"","sources":["../../src/assertions/assertIsDefined.spec.ts"],"names":[],"mappings":";;AAAA,uDAAoD;AAEpD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAAe,EAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CACzE,wDAAwD,CACzD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,iCAAe,EAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CACpE,mDAAmD,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,IAAA,iCAAe,EAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertIsMapOfStringString = void 0;
|
4
|
+
const assert_1 = require("assert");
|
5
|
+
function assertIsMapOfStringString(value) {
|
6
|
+
if (!value) {
|
7
|
+
throw new assert_1.AssertionError({
|
8
|
+
actual: value,
|
9
|
+
expected: 'not null',
|
10
|
+
message: 'value cannot be null or undefined',
|
11
|
+
});
|
12
|
+
}
|
13
|
+
if (typeof value !== 'object') {
|
14
|
+
throw new assert_1.AssertionError({
|
15
|
+
actual: value,
|
16
|
+
expected: 'string',
|
17
|
+
message: 'value is not a string',
|
18
|
+
});
|
19
|
+
}
|
20
|
+
for (const [key, propValue] of Object.entries(value)) {
|
21
|
+
if (typeof propValue !== 'string') {
|
22
|
+
throw new assert_1.AssertionError({
|
23
|
+
actual: typeof propValue,
|
24
|
+
expected: 'string',
|
25
|
+
message: `property ${key} is not type of string`,
|
26
|
+
});
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
exports.assertIsMapOfStringString = assertIsMapOfStringString;
|
31
|
+
//# sourceMappingURL=assertIsMapOfStringString.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsMapOfStringString.js","sourceRoot":"","sources":["../../src/assertions/assertIsMapOfStringString.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,SAAgB,yBAAyB,CAAC,KAAc;IACtD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,uBAAc,CAAC;YACvB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,mCAAmC;SAC7C,CAAC,CAAC;KACJ;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,IAAI,uBAAc,CAAC;YACvB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;KACJ;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,MAAM,IAAI,uBAAc,CAAC;gBACvB,MAAM,EAAE,OAAO,SAAS;gBACxB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,YAAY,GAAG,wBAAwB;aACjD,CAAC,CAAC;SACJ;KACF;AACH,CAAC;AA1BD,8DA0BC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertIsMapOfStringString_1 = require("./assertIsMapOfStringString");
|
4
|
+
describe('assertIsMapOfStringString', () => {
|
5
|
+
it('should not throw if input is an object with only string values', () => {
|
6
|
+
expect((0, assertIsMapOfStringString_1.assertIsMapOfStringString)({ prop: 'aa' })).toBeUndefined();
|
7
|
+
});
|
8
|
+
it('should not throw if input is an empty object', () => {
|
9
|
+
expect((0, assertIsMapOfStringString_1.assertIsMapOfStringString)({})).toBeUndefined();
|
10
|
+
});
|
11
|
+
it("should throw if object property isn't a string", () => {
|
12
|
+
expect(() => (0, assertIsMapOfStringString_1.assertIsMapOfStringString)({ prop: 123 })).toThrowErrorMatchingInlineSnapshot(`"property prop is not type of string"`);
|
13
|
+
});
|
14
|
+
it('should throw if input is not an object', () => {
|
15
|
+
expect(() => (0, assertIsMapOfStringString_1.assertIsMapOfStringString)(123)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
16
|
+
expect(() => (0, assertIsMapOfStringString_1.assertIsMapOfStringString)(undefined)).toThrowErrorMatchingInlineSnapshot(`"value cannot be null or undefined"`);
|
17
|
+
});
|
18
|
+
});
|
19
|
+
//# sourceMappingURL=assertIsMapOfStringString.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsMapOfStringString.spec.js","sourceRoot":"","sources":["../../src/assertions/assertIsMapOfStringString.spec.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AAExE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,IAAA,qDAAyB,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,IAAA,qDAAyB,EAAC,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qDAAyB,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,kCAAkC,CACvF,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qDAAyB,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAC3G,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,qDAAyB,EAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CACnF,qCAAqC,CACtC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function assertIsNotAnEmptyString(val: any): asserts val is string;
|
@@ -0,0 +1,20 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertIsNotAnEmptyString = void 0;
|
4
|
+
const assert_1 = require("assert");
|
5
|
+
function assertIsNotAnEmptyString(val) {
|
6
|
+
if (typeof val !== 'string') {
|
7
|
+
throw new assert_1.AssertionError({
|
8
|
+
actual: typeof val,
|
9
|
+
expected: 'string',
|
10
|
+
message: 'value is not a string',
|
11
|
+
});
|
12
|
+
}
|
13
|
+
if (val.trim().length === 0) {
|
14
|
+
throw new assert_1.AssertionError({
|
15
|
+
message: 'string cannot be empty',
|
16
|
+
});
|
17
|
+
}
|
18
|
+
}
|
19
|
+
exports.assertIsNotAnEmptyString = assertIsNotAnEmptyString;
|
20
|
+
//# sourceMappingURL=assertIsNotAnEmptyString.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsNotAnEmptyString.js","sourceRoot":"","sources":["../../src/assertions/assertIsNotAnEmptyString.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,SAAgB,wBAAwB,CAAC,GAAQ;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,IAAI,uBAAc,CAAC;YACvB,MAAM,EAAE,OAAO,GAAG;YAClB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;KACJ;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,uBAAc,CAAC;YACvB,OAAO,EAAE,wBAAwB;SAClC,CAAC,CAAC;KACJ;AACH,CAAC;AAdD,4DAcC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertIsNotAnEmptyString_1 = require("./assertIsNotAnEmptyString");
|
4
|
+
describe('assertIsNotAnEmptyString', () => {
|
5
|
+
it('should throw if input value is not a string', () => {
|
6
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)(null)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
7
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)(undefined)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
8
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)(132)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
9
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)({})).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
10
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)(['aa'])).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
11
|
+
});
|
12
|
+
it('should throw if input is empty string', () => {
|
13
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)('')).toThrowErrorMatchingInlineSnapshot(`"string cannot be empty"`);
|
14
|
+
});
|
15
|
+
it('should throw if input is whitespace string', () => {
|
16
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)(' ')).toThrowErrorMatchingInlineSnapshot(`"string cannot be empty"`);
|
17
|
+
expect(() => (0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)(' ')).toThrowErrorMatchingInlineSnapshot(`"string cannot be empty"`);
|
18
|
+
});
|
19
|
+
it('should not throw if string of length >= 1 is passed in', () => {
|
20
|
+
expect((0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)('1')).toBeUndefined();
|
21
|
+
expect((0, assertIsNotAnEmptyString_1.assertIsNotAnEmptyString)('11111')).toBeUndefined();
|
22
|
+
});
|
23
|
+
});
|
24
|
+
//# sourceMappingURL=assertIsNotAnEmptyString.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsNotAnEmptyString.spec.js","sourceRoot":"","sources":["../../src/assertions/assertIsNotAnEmptyString.spec.ts"],"names":[],"mappings":";;AAAA,yEAAsE;AAEtE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAC3G,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAChH,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAC1G,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QACzG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;IAC/G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;IAC5G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QAC3G,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,IAAA,mDAAwB,EAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,CAAC,IAAA,mDAAwB,EAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function assertIsObject(val: any): asserts val is object;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertIsObject = void 0;
|
4
|
+
const assert_1 = require("assert");
|
5
|
+
function assertIsObject(val) {
|
6
|
+
if (Object.prototype.toString.call(val) !== '[object Object]') {
|
7
|
+
throw new assert_1.AssertionError({
|
8
|
+
actual: Object.prototype.toString.call(val),
|
9
|
+
expected: 'object',
|
10
|
+
message: 'value is not an object',
|
11
|
+
});
|
12
|
+
}
|
13
|
+
}
|
14
|
+
exports.assertIsObject = assertIsObject;
|
15
|
+
//# sourceMappingURL=assertIsObject.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsObject.js","sourceRoot":"","sources":["../../src/assertions/assertIsObject.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,SAAgB,cAAc,CAAC,GAAQ;IACrC,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,EAAE;QAC7D,MAAM,IAAI,uBAAc,CAAC;YACvB,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;YAC3C,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,wBAAwB;SAClC,CAAC,CAAC;KACJ;AACH,CAAC;AARD,wCAQC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertIsObject_1 = require("./assertIsObject");
|
4
|
+
describe('assertIsObject', () => {
|
5
|
+
it('should not throw if input is an object', () => {
|
6
|
+
expect((0, assertIsObject_1.assertIsObject)({ hello: 123 })).toBeUndefined();
|
7
|
+
});
|
8
|
+
it("should throw if input isn't an object", () => {
|
9
|
+
expect(() => (0, assertIsObject_1.assertIsObject)(undefined)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
10
|
+
expect(() => (0, assertIsObject_1.assertIsObject)(null)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
11
|
+
expect(() => (0, assertIsObject_1.assertIsObject)('my string')).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
12
|
+
expect(() => (0, assertIsObject_1.assertIsObject)(123)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
13
|
+
expect(() => (0, assertIsObject_1.assertIsObject)([])).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
14
|
+
expect(() => (0, assertIsObject_1.assertIsObject)(NaN)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
15
|
+
expect(() => (0, assertIsObject_1.assertIsObject)(Infinity)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
16
|
+
});
|
17
|
+
});
|
18
|
+
//# sourceMappingURL=assertIsObject.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsObject.spec.js","sourceRoot":"","sources":["../../src/assertions/assertIsObject.spec.ts"],"names":[],"mappings":";;AAAA,qDAAkD;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,IAAA,+BAAc,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QACvG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QAClG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,WAAW,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QACzG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QACjG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QAChG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;QACjG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function assertIsString(val: any): asserts val is string;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.assertIsString = void 0;
|
4
|
+
const assert_1 = require("assert");
|
5
|
+
function assertIsString(val) {
|
6
|
+
if (typeof val !== 'string') {
|
7
|
+
throw new assert_1.AssertionError({
|
8
|
+
actual: val,
|
9
|
+
expected: 'string',
|
10
|
+
message: 'value is not a string',
|
11
|
+
});
|
12
|
+
}
|
13
|
+
}
|
14
|
+
exports.assertIsString = assertIsString;
|
15
|
+
//# sourceMappingURL=assertIsString.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsString.js","sourceRoot":"","sources":["../../src/assertions/assertIsString.ts"],"names":[],"mappings":";;;AAAA,mCAAwC;AAExC,SAAgB,cAAc,CAAC,GAAQ;IACrC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,MAAM,IAAI,uBAAc,CAAC;YACvB,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,uBAAuB;SACjC,CAAC,CAAC;KACJ;AACH,CAAC;AARD,wCAQC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const assertIsString_1 = require("./assertIsString");
|
4
|
+
describe('assertIsString', () => {
|
5
|
+
it('should not throw if input is a string', () => {
|
6
|
+
expect((0, assertIsString_1.assertIsString)('hello')).toBeUndefined();
|
7
|
+
});
|
8
|
+
it('should not throw if input is not a string', () => {
|
9
|
+
expect(() => (0, assertIsString_1.assertIsString)(undefined)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
10
|
+
expect(() => (0, assertIsString_1.assertIsString)(null)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
11
|
+
expect(() => (0, assertIsString_1.assertIsString)(123)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
12
|
+
expect(() => (0, assertIsString_1.assertIsString)([])).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
13
|
+
expect(() => (0, assertIsString_1.assertIsString)(NaN)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
14
|
+
expect(() => (0, assertIsString_1.assertIsString)(Infinity)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
15
|
+
});
|
16
|
+
});
|
17
|
+
//# sourceMappingURL=assertIsString.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"assertIsString.spec.js","sourceRoot":"","sources":["../../src/assertions/assertIsString.spec.ts"],"names":[],"mappings":";;AAAA,qDAAkD;AAElD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,IAAA,+BAAc,EAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QACtG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QACjG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAChG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,EAAE,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAC/F,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;QAChG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,+BAAc,EAAC,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;IACvG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/lib/index.d.ts
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
export * from './assertions/assertIsString';
|
2
|
+
export * from './assertions/assertIsDefined';
|
3
|
+
export * from './assertions/assertIsMapOfStringString';
|
4
|
+
export * from './assertions/assertIsObject';
|
5
|
+
export * from './assertions/assertIsNotAnEmptyString';
|
6
|
+
export * from './assertions/assertAssignWithDefaultUndefinedValue';
|
7
|
+
export * from './assertions/assertAssign';
|
package/lib/index.js
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
// Common Assertions
|
18
|
+
__exportStar(require("./assertions/assertIsString"), exports);
|
19
|
+
__exportStar(require("./assertions/assertIsDefined"), exports);
|
20
|
+
__exportStar(require("./assertions/assertIsMapOfStringString"), exports);
|
21
|
+
__exportStar(require("./assertions/assertIsObject"), exports);
|
22
|
+
__exportStar(require("./assertions/assertIsNotAnEmptyString"), exports);
|
23
|
+
// Assert assign
|
24
|
+
__exportStar(require("./assertions/assertAssignWithDefaultUndefinedValue"), exports);
|
25
|
+
__exportStar(require("./assertions/assertAssign"), exports);
|
26
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oBAAoB;AACpB,8DAA4C;AAC5C,+DAA6C;AAC7C,yEAAuD;AACvD,8DAA4C;AAC5C,wEAAsD;AAEtD,gBAAgB;AAChB,qFAAmE;AACnE,4DAA0C"}
|
package/package.json
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"name": "@squiz/dx-common-lib",
|
3
|
+
"version": "1.2.1-alpha.100",
|
4
|
+
"description": "",
|
5
|
+
"main": "lib/index.js",
|
6
|
+
"scripts": {
|
7
|
+
"start": "node ./lib/index.js",
|
8
|
+
"compile": "npx tsc",
|
9
|
+
"lint": "eslint ./src --ext .ts",
|
10
|
+
"test": "jest -c jest.config.ts",
|
11
|
+
"test:integration": "jest -c jest.integration.config.ts",
|
12
|
+
"test:update-snapshots": "jest -c jest.config.ts --updateSnapshot",
|
13
|
+
"clean": "rimraf \".tsbuildinfo\" \"./lib\""
|
14
|
+
},
|
15
|
+
"author": "",
|
16
|
+
"license": "ISC",
|
17
|
+
"devDependencies": {
|
18
|
+
"@types/jest": "28.1.6",
|
19
|
+
"@types/node": "17.0.27",
|
20
|
+
"dotenv": "16.0.1",
|
21
|
+
"eslint": "8.22.0",
|
22
|
+
"jest": "28.1.3",
|
23
|
+
"rimraf": "3.0.2",
|
24
|
+
"ts-jest": "28.0.7",
|
25
|
+
"ts-loader": "9.3.1",
|
26
|
+
"ts-node": "10.9.1",
|
27
|
+
"typescript": "4.7.4"
|
28
|
+
},
|
29
|
+
"gitHead": "909ab48128b72579f5f1390b7f045a3a41958795"
|
30
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import { assertAssign } from './assertAssign';
|
2
|
+
import { assertIsString } from './assertIsString';
|
3
|
+
|
4
|
+
describe('assertAssign', () => {
|
5
|
+
it('should assert the input meets an assertion function and return if valid', () => {
|
6
|
+
expect(assertAssign('123', assertIsString)).toEqual('123');
|
7
|
+
});
|
8
|
+
|
9
|
+
it('should assert the input meets an assertion function and throw if not valid', () => {
|
10
|
+
expect(() => assertAssign(123, assertIsString)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
11
|
+
});
|
12
|
+
|
13
|
+
it('should allow custom error message', () => {
|
14
|
+
expect(() => assertAssign(123, assertIsString, 'custom error')).toThrowErrorMatchingInlineSnapshot(
|
15
|
+
`"custom error"`,
|
16
|
+
);
|
17
|
+
});
|
18
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { AssertionError } from 'assert';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Assert and return unknown value as known type
|
5
|
+
*/
|
6
|
+
export function assertAssign<T>(
|
7
|
+
value: unknown,
|
8
|
+
assertionFunc: (val: unknown) => asserts val is T,
|
9
|
+
errorMessage?: string,
|
10
|
+
): T {
|
11
|
+
try {
|
12
|
+
assertionFunc(value);
|
13
|
+
} catch (e) {
|
14
|
+
if (errorMessage) {
|
15
|
+
throw new AssertionError({ message: errorMessage });
|
16
|
+
} else {
|
17
|
+
throw e;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
return value;
|
22
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { assertAssignWithDefaultUndefinedValue } from './assertAssignWithDefaultUndefinedValue';
|
2
|
+
import { assertIsObject } from './assertIsObject';
|
3
|
+
import { assertIsString } from './assertIsString';
|
4
|
+
|
5
|
+
describe('assertAssignWithDefaultUndefinedValue', () => {
|
6
|
+
it('should assert the input meets an assertion function and return if valid', () => {
|
7
|
+
expect(assertAssignWithDefaultUndefinedValue('123', assertIsString, 'xx')).toEqual('123');
|
8
|
+
});
|
9
|
+
|
10
|
+
it('should return default value if input is undefined', () => {
|
11
|
+
expect(assertAssignWithDefaultUndefinedValue(undefined, assertIsString, 'xx')).toEqual('xx');
|
12
|
+
});
|
13
|
+
|
14
|
+
it('should handle different types of type assertions', () => {
|
15
|
+
expect(assertAssignWithDefaultUndefinedValue(undefined, assertIsObject, { default: 'hello' })).toEqual({
|
16
|
+
default: 'hello',
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
20
|
+
it('should assert the input meets an assertion function and throw if not valid', () => {
|
21
|
+
expect(() => assertAssignWithDefaultUndefinedValue(123, assertIsString, 'xx')).toThrowErrorMatchingInlineSnapshot(
|
22
|
+
`"value is not a string"`,
|
23
|
+
);
|
24
|
+
});
|
25
|
+
|
26
|
+
it('should allow custom error message', () => {
|
27
|
+
expect(() =>
|
28
|
+
assertAssignWithDefaultUndefinedValue(123, assertIsString, 'xx', 'custom error'),
|
29
|
+
).toThrowErrorMatchingInlineSnapshot(`"custom error"`);
|
30
|
+
});
|
31
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { assertAssign } from './assertAssign';
|
2
|
+
|
3
|
+
/**
|
4
|
+
* If value is undefined, return default value otherwise assert it meets assertion rule
|
5
|
+
*/
|
6
|
+
export function assertAssignWithDefaultUndefinedValue<T>(
|
7
|
+
value: unknown,
|
8
|
+
assertionFunc: (val: unknown) => asserts val is T,
|
9
|
+
defaultValue: T,
|
10
|
+
errorMessage?: string,
|
11
|
+
): T {
|
12
|
+
if (value === undefined || value === null) {
|
13
|
+
return defaultValue;
|
14
|
+
}
|
15
|
+
|
16
|
+
return assertAssign(value, assertionFunc, errorMessage);
|
17
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { assertIsDefined } from './assertIsDefined';
|
2
|
+
|
3
|
+
describe('assertIsDefined', () => {
|
4
|
+
it('should throw an assertion error if input is undefined', () => {
|
5
|
+
expect(() => assertIsDefined(undefined)).toThrowErrorMatchingInlineSnapshot(
|
6
|
+
`"Expected 'val' to be defined, but received undefined"`,
|
7
|
+
);
|
8
|
+
});
|
9
|
+
|
10
|
+
it('should throw an assertion error if input is null', () => {
|
11
|
+
expect(() => assertIsDefined(null)).toThrowErrorMatchingInlineSnapshot(
|
12
|
+
`"Expected 'val' to be defined, but received null"`,
|
13
|
+
);
|
14
|
+
});
|
15
|
+
|
16
|
+
it('should return "void" or undefined if valid', () => {
|
17
|
+
expect(assertIsDefined(123)).toBeUndefined();
|
18
|
+
});
|
19
|
+
});
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { AssertionError } from 'assert';
|
2
|
+
|
3
|
+
export function assertIsDefined<T>(value: T): asserts value is NonNullable<T> {
|
4
|
+
if (value === undefined || value === null) {
|
5
|
+
throw new AssertionError({ message: `Expected 'val' to be defined, but received ${value}` });
|
6
|
+
}
|
7
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { assertIsMapOfStringString } from './assertIsMapOfStringString';
|
2
|
+
|
3
|
+
describe('assertIsMapOfStringString', () => {
|
4
|
+
it('should not throw if input is an object with only string values', () => {
|
5
|
+
expect(assertIsMapOfStringString({ prop: 'aa' })).toBeUndefined();
|
6
|
+
});
|
7
|
+
it('should not throw if input is an empty object', () => {
|
8
|
+
expect(assertIsMapOfStringString({})).toBeUndefined();
|
9
|
+
});
|
10
|
+
|
11
|
+
it("should throw if object property isn't a string", () => {
|
12
|
+
expect(() => assertIsMapOfStringString({ prop: 123 })).toThrowErrorMatchingInlineSnapshot(
|
13
|
+
`"property prop is not type of string"`,
|
14
|
+
);
|
15
|
+
});
|
16
|
+
|
17
|
+
it('should throw if input is not an object', () => {
|
18
|
+
expect(() => assertIsMapOfStringString(123)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
19
|
+
expect(() => assertIsMapOfStringString(undefined)).toThrowErrorMatchingInlineSnapshot(
|
20
|
+
`"value cannot be null or undefined"`,
|
21
|
+
);
|
22
|
+
});
|
23
|
+
});
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { AssertionError } from 'assert';
|
2
|
+
|
3
|
+
export function assertIsMapOfStringString(value: unknown): asserts value is { [key: string]: string } {
|
4
|
+
if (!value) {
|
5
|
+
throw new AssertionError({
|
6
|
+
actual: value,
|
7
|
+
expected: 'not null',
|
8
|
+
message: 'value cannot be null or undefined',
|
9
|
+
});
|
10
|
+
}
|
11
|
+
|
12
|
+
if (typeof value !== 'object') {
|
13
|
+
throw new AssertionError({
|
14
|
+
actual: value,
|
15
|
+
expected: 'string',
|
16
|
+
message: 'value is not a string',
|
17
|
+
});
|
18
|
+
}
|
19
|
+
|
20
|
+
for (const [key, propValue] of Object.entries(value)) {
|
21
|
+
if (typeof propValue !== 'string') {
|
22
|
+
throw new AssertionError({
|
23
|
+
actual: typeof propValue,
|
24
|
+
expected: 'string',
|
25
|
+
message: `property ${key} is not type of string`,
|
26
|
+
});
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { assertIsNotAnEmptyString } from './assertIsNotAnEmptyString';
|
2
|
+
|
3
|
+
describe('assertIsNotAnEmptyString', () => {
|
4
|
+
it('should throw if input value is not a string', () => {
|
5
|
+
expect(() => assertIsNotAnEmptyString(null)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
6
|
+
expect(() => assertIsNotAnEmptyString(undefined)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
7
|
+
expect(() => assertIsNotAnEmptyString(132)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
8
|
+
expect(() => assertIsNotAnEmptyString({})).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
9
|
+
expect(() => assertIsNotAnEmptyString(['aa'])).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
10
|
+
});
|
11
|
+
|
12
|
+
it('should throw if input is empty string', () => {
|
13
|
+
expect(() => assertIsNotAnEmptyString('')).toThrowErrorMatchingInlineSnapshot(`"string cannot be empty"`);
|
14
|
+
});
|
15
|
+
|
16
|
+
it('should throw if input is whitespace string', () => {
|
17
|
+
expect(() => assertIsNotAnEmptyString(' ')).toThrowErrorMatchingInlineSnapshot(`"string cannot be empty"`);
|
18
|
+
expect(() => assertIsNotAnEmptyString(' ')).toThrowErrorMatchingInlineSnapshot(`"string cannot be empty"`);
|
19
|
+
});
|
20
|
+
|
21
|
+
it('should not throw if string of length >= 1 is passed in', () => {
|
22
|
+
expect(assertIsNotAnEmptyString('1')).toBeUndefined();
|
23
|
+
expect(assertIsNotAnEmptyString('11111')).toBeUndefined();
|
24
|
+
});
|
25
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { AssertionError } from 'assert';
|
2
|
+
|
3
|
+
export function assertIsNotAnEmptyString(val: any): asserts val is string {
|
4
|
+
if (typeof val !== 'string') {
|
5
|
+
throw new AssertionError({
|
6
|
+
actual: typeof val,
|
7
|
+
expected: 'string',
|
8
|
+
message: 'value is not a string',
|
9
|
+
});
|
10
|
+
}
|
11
|
+
|
12
|
+
if (val.trim().length === 0) {
|
13
|
+
throw new AssertionError({
|
14
|
+
message: 'string cannot be empty',
|
15
|
+
});
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { assertIsObject } from './assertIsObject';
|
2
|
+
|
3
|
+
describe('assertIsObject', () => {
|
4
|
+
it('should not throw if input is an object', () => {
|
5
|
+
expect(assertIsObject({ hello: 123 })).toBeUndefined();
|
6
|
+
});
|
7
|
+
|
8
|
+
it("should throw if input isn't an object", () => {
|
9
|
+
expect(() => assertIsObject(undefined)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
10
|
+
expect(() => assertIsObject(null)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
11
|
+
expect(() => assertIsObject('my string')).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
12
|
+
expect(() => assertIsObject(123)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
13
|
+
expect(() => assertIsObject([])).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
14
|
+
expect(() => assertIsObject(NaN)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
15
|
+
expect(() => assertIsObject(Infinity)).toThrowErrorMatchingInlineSnapshot(`"value is not an object"`);
|
16
|
+
});
|
17
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { AssertionError } from 'assert';
|
2
|
+
|
3
|
+
export function assertIsObject(val: any): asserts val is object {
|
4
|
+
if (Object.prototype.toString.call(val) !== '[object Object]') {
|
5
|
+
throw new AssertionError({
|
6
|
+
actual: Object.prototype.toString.call(val),
|
7
|
+
expected: 'object',
|
8
|
+
message: 'value is not an object',
|
9
|
+
});
|
10
|
+
}
|
11
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { assertIsString } from './assertIsString';
|
2
|
+
|
3
|
+
describe('assertIsString', () => {
|
4
|
+
it('should not throw if input is a string', () => {
|
5
|
+
expect(assertIsString('hello')).toBeUndefined();
|
6
|
+
});
|
7
|
+
|
8
|
+
it('should not throw if input is not a string', () => {
|
9
|
+
expect(() => assertIsString(undefined)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
10
|
+
expect(() => assertIsString(null)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
11
|
+
expect(() => assertIsString(123)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
12
|
+
expect(() => assertIsString([])).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
13
|
+
expect(() => assertIsString(NaN)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
14
|
+
expect(() => assertIsString(Infinity)).toThrowErrorMatchingInlineSnapshot(`"value is not a string"`);
|
15
|
+
});
|
16
|
+
});
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { AssertionError } from 'assert';
|
2
|
+
|
3
|
+
export function assertIsString(val: any): asserts val is string {
|
4
|
+
if (typeof val !== 'string') {
|
5
|
+
throw new AssertionError({
|
6
|
+
actual: val,
|
7
|
+
expected: 'string',
|
8
|
+
message: 'value is not a string',
|
9
|
+
});
|
10
|
+
}
|
11
|
+
}
|
package/src/index.ts
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
// Common Assertions
|
2
|
+
export * from './assertions/assertIsString';
|
3
|
+
export * from './assertions/assertIsDefined';
|
4
|
+
export * from './assertions/assertIsMapOfStringString';
|
5
|
+
export * from './assertions/assertIsObject';
|
6
|
+
export * from './assertions/assertIsNotAnEmptyString';
|
7
|
+
|
8
|
+
// Assert assign
|
9
|
+
export * from './assertions/assertAssignWithDefaultUndefinedValue';
|
10
|
+
export * from './assertions/assertAssign';
|
package/tsconfig.json
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"extends": "../../tsconfig.json",
|
3
|
+
|
4
|
+
"compilerOptions": {
|
5
|
+
"outDir": "lib/",
|
6
|
+
"resolveJsonModule": true,
|
7
|
+
"composite": true,
|
8
|
+
"rootDir": "./src",
|
9
|
+
"sourceMap": true
|
10
|
+
},
|
11
|
+
|
12
|
+
"references": [],
|
13
|
+
|
14
|
+
"include": ["src/**/*.ts", "src/**/*.json"],
|
15
|
+
"exclude": ["jest.config.ts"]
|
16
|
+
}
|
@@ -0,0 +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"}
|