@coherentglobal/wasm-runner 0.0.85 → 0.0.91
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/.github/workflows/build-publish-public.yml +104 -0
- package/.github/workflows/build-publish.yml +13 -7
- package/.github/workflows/code-quality.yml +103 -0
- package/.github/workflows/pull-request.yml +14 -0
- package/.github/workflows/test-multple-browsers.yml +88 -0
- package/.github/workflows/test-mutiple-os.yml +54 -0
- package/dist/browser/template/worker.template.js +23 -5
- package/dist/browser/template/worker.template.js.map +1 -1
- package/dist/browser/template.js +1 -1
- package/dist/browser.d.ts +1 -0
- package/dist/browser.js +9 -2
- package/dist/browser.js.map +1 -1
- package/dist/node/logger.js +1 -0
- package/dist/node/logger.js.map +1 -1
- package/dist/node/logger.ts +2 -0
- package/dist/node/mockLogger.d.ts +1 -0
- package/dist/node/mockLogger.js +11 -0
- package/dist/node/mockLogger.js.map +1 -0
- package/dist/node/template/main.template.ejs +23 -11
- package/dist/node.d.ts +1 -0
- package/dist/node.js +22 -5
- package/dist/node.js.map +1 -1
- package/dist/serializer/columnarSerializer.d.ts +12 -0
- package/dist/serializer/columnarSerializer.js +156 -0
- package/dist/serializer/columnarSerializer.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/utils.js +10 -0
- package/dist/utils.js.map +1 -1
- package/package.json +26 -30
- package/selenium/headless.test.js +83 -0
- package/sonar-project.properties +11 -0
- package/tsconfig.json +12 -4
package/dist/utils.js
CHANGED
|
@@ -32,6 +32,7 @@ function isPath(str) {
|
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
exports.isPath = isPath;
|
|
35
|
+
/* istanbul ignore next */
|
|
35
36
|
function isHttpURL(str) {
|
|
36
37
|
let urlInstance;
|
|
37
38
|
try {
|
|
@@ -48,11 +49,13 @@ function isHttpURL(str) {
|
|
|
48
49
|
return urlInstance.protocol === "http:" || urlInstance.protocol === "https:";
|
|
49
50
|
}
|
|
50
51
|
exports.isHttpURL = isHttpURL;
|
|
52
|
+
/* istanbul ignore next */
|
|
51
53
|
function isFilePath(str, ext) {
|
|
52
54
|
const idx = str.indexOf(`.${ext}`);
|
|
53
55
|
return idx > -1 && idx === str.length - `.${ext}`.length;
|
|
54
56
|
}
|
|
55
57
|
exports.isFilePath = isFilePath;
|
|
58
|
+
/* istanbul ignore next */
|
|
56
59
|
function isBrowser() {
|
|
57
60
|
try {
|
|
58
61
|
// eslint-disable-next-line no-undef
|
|
@@ -63,6 +66,7 @@ function isBrowser() {
|
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
68
|
exports.isBrowser = isBrowser;
|
|
69
|
+
/* istanbul ignore next */
|
|
66
70
|
function isWasmSupported() {
|
|
67
71
|
try {
|
|
68
72
|
if (typeof WebAssembly === "object" &&
|
|
@@ -81,11 +85,13 @@ function isWasmSupported() {
|
|
|
81
85
|
return false;
|
|
82
86
|
}
|
|
83
87
|
exports.isWasmSupported = isWasmSupported;
|
|
88
|
+
/* istanbul ignore next */
|
|
84
89
|
function isWorkerSupported() {
|
|
85
90
|
// eslint-disable-next-line no-undef
|
|
86
91
|
return window.Worker;
|
|
87
92
|
}
|
|
88
93
|
exports.isWorkerSupported = isWorkerSupported;
|
|
94
|
+
/* istanbul ignore next */
|
|
89
95
|
function isCompatible() {
|
|
90
96
|
if (!isBrowser()) {
|
|
91
97
|
throw new error_1.default.NotSupportedError("Javascript Browser Environment");
|
|
@@ -98,6 +104,7 @@ function isCompatible() {
|
|
|
98
104
|
}
|
|
99
105
|
}
|
|
100
106
|
exports.isCompatible = isCompatible;
|
|
107
|
+
/* istanbul ignore next */
|
|
101
108
|
function jsString2workerURL(str) {
|
|
102
109
|
// eslint-disable-next-line no-undef
|
|
103
110
|
const blob = new Blob([str], { type: "text/javascript" });
|
|
@@ -112,9 +119,11 @@ function fn2workerURL(fn) {
|
|
|
112
119
|
return URL.createObjectURL(blob);
|
|
113
120
|
}
|
|
114
121
|
exports.fn2workerURL = fn2workerURL;
|
|
122
|
+
/* istanbul ignore next */
|
|
115
123
|
const isEmpty = (obj) => [Object, Array].includes((obj || {}).constructor) &&
|
|
116
124
|
!Object.entries(obj || {}).length;
|
|
117
125
|
exports.isEmpty = isEmpty;
|
|
126
|
+
/* istanbul ignore next */
|
|
118
127
|
function addScript(src) {
|
|
119
128
|
// eslint-disable-next-line no-undef
|
|
120
129
|
const s = document.createElement("script");
|
|
@@ -124,6 +133,7 @@ function addScript(src) {
|
|
|
124
133
|
document.body.appendChild(s);
|
|
125
134
|
}
|
|
126
135
|
exports.addScript = addScript;
|
|
136
|
+
/* istanbul ignore next */
|
|
127
137
|
function last(arr) {
|
|
128
138
|
if (!Array.isArray(arr)) {
|
|
129
139
|
throw new Error("Argument is not array");
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,8CAAsB;AACtB,oDAAuC;AAE1B,QAAA,kBAAkB,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC;AAChD,QAAA,mBAAmB,GAC9B,OAAO,OAAO,KAAK,QAAQ;IAC3B,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;IACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC;AAE5C,SAAsB,MAAM,CAAC,GAAW;;QACtC,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;SACvB;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,KAAK,CAAC;SACd;IACH,CAAC;CAAA;AAPD,wBAOC;AAED,SAAgB,SAAS,CAAC,GAAW;IACnC,IAAI,WAAW,CAAC;IAEhB,IAAI;QACF,IAAI,2BAAmB,EAAE;YACvB,WAAW,GAAG,IAAI,aAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAChC;QACD,IAAI,0BAAkB,EAAE;YACtB,WAAW,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SAC5B;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,KAAK,CAAC;KACd;IAED,OAAO,WAAW,CAAC,QAAQ,KAAK,OAAO,IAAI,WAAW,CAAC,QAAQ,KAAK,QAAQ,CAAC;AAC/E,CAAC;AAfD,8BAeC;AAED,SAAgB,UAAU,CAAC,GAAG,EAAE,GAAG;IACjC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,OAAO,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC;AAC3D,CAAC;AAHD,gCAGC;AAED,SAAgB,SAAS;IACvB,IAAI;QACF,oCAAoC;QACpC,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAPD,8BAOC;AAED,SAAgB,eAAe;IAC7B,IAAI;QACF,IACE,OAAO,WAAW,KAAK,QAAQ;YAC/B,oCAAoC;YACpC,OAAO,WAAW,CAAC,WAAW,KAAK,UAAU,EAC7C;YACA,oCAAoC;YACpC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CACnC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAC7D,CAAC;YACF,oCAAoC;YACpC,IAAI,MAAM,YAAY,WAAW,CAAC,MAAM;gBACtC,oCAAoC;gBACpC,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,WAAW,CAAC,QAAQ,CAAC;SAC3E;QACD,oCAAoC;KACrC;IAAC,OAAO,CAAC,EAAE,GAAE;IACd,OAAO,KAAK,CAAC;AACf,CAAC;AAnBD,0CAmBC;AAED,SAAgB,iBAAiB;IAC/B,oCAAoC;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAHD,8CAGC;AAED,SAAgB,YAAY;IAC1B,IAAI,CAAC,SAAS,EAAE,EAAE;QAChB,MAAM,IAAI,eAAgB,CAAC,iBAAiB,CAC1C,gCAAgC,CACjC,CAAC;KACH;IAED,IAAI,CAAC,eAAe,EAAE,EAAE;QACtB,MAAM,IAAI,eAAgB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;KAC7D;IAED,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,eAAgB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;KAC5D;AACH,CAAC;AAdD,oCAcC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,oCAAoC;IACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1D,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAJD,gDAIC;AAED,SAAgB,YAAY,CAAC,EAAE;IAC7B,oCAAoC;IACpC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;QAC9C,IAAI,EAAE,iBAAiB;KACxB,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAND,oCAMC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coherentglobal/wasm-runner",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.91",
|
|
4
4
|
"description": "Coherent WASM runner for Javascript and Node.js",
|
|
5
5
|
"main": "dist/node.js",
|
|
6
6
|
"browser": "dist/browser.js",
|
|
@@ -23,11 +23,23 @@
|
|
|
23
23
|
"bundle:full": "browserify src/browser.ts --standalone CoherentGlobal -p [ tsify ] > lib/wasmrunner.js",
|
|
24
24
|
"bundle:min": "browserify src/browser.ts --standalone CoherentGlobal -p [ tsify ] | terser --compress --mangle --comments false > lib/wasmrunner.min.js",
|
|
25
25
|
"prep:samples:simple-html": "yarn bundle && cp ./lib/wasmrunner.js example/simple-html/ && cp ./lib/wasmrunner.min.js example/simple-html/",
|
|
26
|
-
"test:lcov": "nyc --check-coverage --lines
|
|
27
|
-
"test:reporter": "mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000
|
|
28
|
-
"
|
|
29
|
-
"test": "mocha
|
|
30
|
-
"test:
|
|
26
|
+
"test:lcov": "nyc --check-coverage --reporter=lcov --lines 30 npm run test",
|
|
27
|
+
"test:reporter": "NODE_ENV=test mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000 --reporter mocha-sonarqube-reporter tests --reporter-options output=./reports/test-reporter.xml",
|
|
28
|
+
"cover": "yarn test:lcov && yarn test:reporter",
|
|
29
|
+
"test": "cross-env NODE_ENV=test mocha -r ts-node/register tests/**/*.test.ts --bail --exit --recursive --timeout 100000 ",
|
|
30
|
+
"test:chrome": "cross-env BROWSER=chrome MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
|
|
31
|
+
"test:firefox": "cross-env BROWSER=firefox MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
|
|
32
|
+
"test:edge": "cross-env BROWSER=edge MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
|
|
33
|
+
"test:safari": "cross-env BROWSER=safari MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000",
|
|
34
|
+
"test:opera": "cross-env BROWSER=opera MODE=headless NODE_ENV=test mocha -r ts-node/register selenium/headless.test.js --bail --exit --recursive --timeout 100000"
|
|
35
|
+
},
|
|
36
|
+
"nyc": {
|
|
37
|
+
"exclude": [
|
|
38
|
+
"dist/",
|
|
39
|
+
"src/browser/logger.js",
|
|
40
|
+
"src/browser/template.js",
|
|
41
|
+
"src/error.ts"
|
|
42
|
+
]
|
|
31
43
|
},
|
|
32
44
|
"devDependencies": {
|
|
33
45
|
"@babel/cli": "^7.20.7",
|
|
@@ -46,6 +58,7 @@
|
|
|
46
58
|
"babelify": "^10.0.0",
|
|
47
59
|
"browserify": "^17.0.0",
|
|
48
60
|
"cross-blob": "^3.0.2",
|
|
61
|
+
"cross-env": "^7.0.3",
|
|
49
62
|
"eslint": "^8.32.0",
|
|
50
63
|
"eslint-config-airbnb": "19.0.4",
|
|
51
64
|
"eslint-config-node": "^4.1.0",
|
|
@@ -71,7 +84,7 @@
|
|
|
71
84
|
"supertest": "^6.3.3",
|
|
72
85
|
"terser": "^5.16.1",
|
|
73
86
|
"ts-node": "^10.9.1",
|
|
74
|
-
"typescript": "
|
|
87
|
+
"typescript": "^5.0.4"
|
|
75
88
|
},
|
|
76
89
|
"dependencies": {
|
|
77
90
|
"@babel/runtime": "^7.20.13",
|
|
@@ -82,12 +95,18 @@
|
|
|
82
95
|
"@types/tmp": "^0.2.3",
|
|
83
96
|
"@types/unzipper": "^0.10.5",
|
|
84
97
|
"@types/worker-threads-pool": "^2.0.1",
|
|
98
|
+
"chai": "^4.3.7",
|
|
99
|
+
"chromedriver": "^113.0.0",
|
|
85
100
|
"cuid": "^2.1.8",
|
|
101
|
+
"edgedriver": "^5.2.1",
|
|
86
102
|
"ejs": "^3.1.8",
|
|
103
|
+
"geckodriver": "^4.0.1",
|
|
87
104
|
"got": "11.8.6",
|
|
88
105
|
"is-buffer": "^2.0.5",
|
|
106
|
+
"memoizerific": "^1.11.3",
|
|
89
107
|
"node-worker-threads-pool": "^1.5.1",
|
|
90
108
|
"pino": "^8.11.0",
|
|
109
|
+
"selenium-webdriver": "^4.9.2",
|
|
91
110
|
"tmp": "^0.2.1",
|
|
92
111
|
"tsify": "^5.0.4",
|
|
93
112
|
"unzipit": "^1.4.2",
|
|
@@ -112,28 +131,5 @@
|
|
|
112
131
|
}
|
|
113
132
|
]
|
|
114
133
|
]
|
|
115
|
-
},
|
|
116
|
-
"nyc": {
|
|
117
|
-
"extends": "@istanbuljs/nyc-config-typescript",
|
|
118
|
-
"check-coverage": true,
|
|
119
|
-
"extension": [
|
|
120
|
-
".ts"
|
|
121
|
-
],
|
|
122
|
-
"all": true,
|
|
123
|
-
"include": [
|
|
124
|
-
"src/**/*.ts",
|
|
125
|
-
"tests/**/*.test.ts"
|
|
126
|
-
],
|
|
127
|
-
"exclude": [
|
|
128
|
-
"tests/**/*.test.js"
|
|
129
|
-
],
|
|
130
|
-
"reporter": [
|
|
131
|
-
"lcov",
|
|
132
|
-
"text-summary"
|
|
133
|
-
],
|
|
134
|
-
"report-dir": "coverage",
|
|
135
|
-
"require": [
|
|
136
|
-
"ts-node/register"
|
|
137
|
-
]
|
|
138
134
|
}
|
|
139
135
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Builder, By, until } from 'selenium-webdriver';
|
|
2
|
+
import { Options as ChromeOptions } from 'selenium-webdriver/chrome';
|
|
3
|
+
import { Options as FirefoxOptions } from 'selenium-webdriver/firefox';
|
|
4
|
+
import { Options as EdgeOptions } from 'selenium-webdriver/edge';
|
|
5
|
+
import { Options as SafariOptions } from 'selenium-webdriver/safari';
|
|
6
|
+
import { assert } from 'chai';
|
|
7
|
+
|
|
8
|
+
let driver;
|
|
9
|
+
|
|
10
|
+
before(async function () {
|
|
11
|
+
this.timeout(10000);
|
|
12
|
+
const builder = new Builder();
|
|
13
|
+
|
|
14
|
+
const chromeOptions = new ChromeOptions();
|
|
15
|
+
chromeOptions.addArguments(
|
|
16
|
+
'--no-sandbox',
|
|
17
|
+
'--disable-dev-shm-usage',
|
|
18
|
+
'--disable-gpu',
|
|
19
|
+
'--headless',
|
|
20
|
+
'--remote-debugging-port=9222'
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
switch (process.env.BROWSER) {
|
|
24
|
+
case 'chrome':
|
|
25
|
+
builder
|
|
26
|
+
.forBrowser('chrome')
|
|
27
|
+
.setChromeOptions(chromeOptions);
|
|
28
|
+
break;
|
|
29
|
+
|
|
30
|
+
case 'firefox':
|
|
31
|
+
const firefoxOptions = new FirefoxOptions();
|
|
32
|
+
firefoxOptions.headless();
|
|
33
|
+
builder.forBrowser('firefox')
|
|
34
|
+
.setFirefoxOptions(firefoxOptions);
|
|
35
|
+
break;
|
|
36
|
+
|
|
37
|
+
case 'edge':
|
|
38
|
+
const edgeOptions = new EdgeOptions();
|
|
39
|
+
edgeOptions.headless();
|
|
40
|
+
builder.forBrowser('MicrosoftEdge')
|
|
41
|
+
.setEdgeOptions(edgeOptions);
|
|
42
|
+
break;
|
|
43
|
+
|
|
44
|
+
case 'safari':
|
|
45
|
+
builder.forBrowser('safari');
|
|
46
|
+
break;
|
|
47
|
+
|
|
48
|
+
case 'opera':
|
|
49
|
+
const operaOptions = new ChromeOptions();
|
|
50
|
+
operaOptions.addArguments("--headless", "--disable-gpu", "--binary=/usr/bin/opera");
|
|
51
|
+
builder.forBrowser('chrome').setChromeOptions(operaOptions);
|
|
52
|
+
break;
|
|
53
|
+
|
|
54
|
+
default:
|
|
55
|
+
throw new Error(`Unknown browser: ${process.env.BROWSER}`);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
driver = builder.build();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
after(async function () {
|
|
62
|
+
await driver.quit();
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
describe('Run Initialize and Run Calc', function () {
|
|
66
|
+
it('should run the scripts and check if "responseP" has a response', async function () {
|
|
67
|
+
this.timeout(30000); // Increase timeout if needed
|
|
68
|
+
await driver.get('http://localhost:5500/example/simple-html/index.html');
|
|
69
|
+
await driver.wait(async () => {
|
|
70
|
+
return await driver.executeScript('return typeof handleInitialization === "function" && typeof handleSubmit === "function";')
|
|
71
|
+
}, 10000, 'Waiting for handleInitialization and handleSubmit to be defined');
|
|
72
|
+
await driver.executeScript('handleInitialization()');
|
|
73
|
+
// Add a delay if handleSubmit depends on the results of handleInitialization
|
|
74
|
+
await new Promise(resolve => setTimeout(resolve, 5000)); // Wait for 5 seconds
|
|
75
|
+
await driver.executeScript('handleSubmit()');
|
|
76
|
+
// Wait until the responseP element contains text
|
|
77
|
+
await driver.wait(until.elementLocated(By.id('responseP')));
|
|
78
|
+
await driver.wait(until.elementTextMatches(await driver.findElement(By.id('responseP')), /\S+/), 10000, 'Waiting for responseP to contain text');
|
|
79
|
+
let responseP = await driver.findElement({ id: 'responseP' });
|
|
80
|
+
let responsePText = await responseP.getText();
|
|
81
|
+
assert.isNotEmpty(responsePText, "responseP element doesn't contain any text");
|
|
82
|
+
});
|
|
83
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
sonar.projectName=Wasm Runner JS
|
|
2
|
+
sonar.projectKey=wasm-runner-js
|
|
3
|
+
sonar.sources=src,package.json
|
|
4
|
+
sonar.sourceEncoding=UTF-8
|
|
5
|
+
sonar.tests=src
|
|
6
|
+
sonar.test.inclusions=**/*.test.ts,**/*.test.tsx,**/sc-global.ts
|
|
7
|
+
sonar.language=js
|
|
8
|
+
sonar.javascript.coveragePlugin=lcov
|
|
9
|
+
sonar.javascript.lcov.reportPaths=coverage/lcov.info
|
|
10
|
+
sonar.typescript.tsconfigPath=tsconfig.json
|
|
11
|
+
sonar.testExecutionReportPaths=reports/test-reporter.xml
|
package/tsconfig.json
CHANGED
|
@@ -6,16 +6,24 @@
|
|
|
6
6
|
"allowSyntheticDefaultImports": true,
|
|
7
7
|
"noImplicitAny": false,
|
|
8
8
|
"moduleResolution": "node",
|
|
9
|
+
"forceConsistentCasingInFileNames": false,
|
|
9
10
|
"sourceMap": true,
|
|
10
11
|
"outDir": "dist",
|
|
11
12
|
"allowJs": true,
|
|
12
13
|
"baseUrl": ".",
|
|
14
|
+
"forceConsistentCasingInFileNames": false,
|
|
13
15
|
"paths": {
|
|
14
|
-
"*": [
|
|
16
|
+
"*": [
|
|
17
|
+
"node_modules/*"
|
|
18
|
+
]
|
|
15
19
|
},
|
|
16
20
|
"resolveJsonModule": true,
|
|
17
21
|
"skipLibCheck": true
|
|
18
22
|
},
|
|
19
|
-
"include": [
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
"include": [
|
|
24
|
+
"src"
|
|
25
|
+
],
|
|
26
|
+
"exclude": [
|
|
27
|
+
"tests/**/*.test.ts"
|
|
28
|
+
]
|
|
29
|
+
}
|