@nlabs/lex 1.39.1 → 1.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +1 -0
- package/.vscode/settings.json +1 -1
- package/babel.config.json +13 -0
- package/dist/LexConfig.js +30 -26
- package/dist/commands/build.js +95 -49
- package/dist/commands/bulid.test.js +314 -5
- package/dist/commands/clean.js +4 -4
- package/dist/commands/clean.test.js +63 -0
- package/dist/commands/compile.js +27 -30
- package/dist/commands/compile.test.js +93 -0
- package/dist/commands/config.js +2 -2
- package/dist/commands/copy.js +1 -1
- package/dist/commands/create.js +4 -4
- package/dist/commands/dev.js +7 -7
- package/dist/commands/init.js +13 -13
- package/dist/commands/link.js +3 -3
- package/dist/commands/lint.js +50 -36
- package/dist/commands/migrate.js +4 -4
- package/dist/commands/publish.js +7 -7
- package/dist/commands/test.js +9 -9
- package/dist/commands/update.js +10 -10
- package/dist/commands/upgrade.js +7 -7
- package/dist/commands/versions.js +8 -9
- package/dist/commands/versions.test.js +49 -0
- package/dist/create/changelog.js +1 -1
- package/dist/lex.js +16 -16
- package/dist/lint.js +8 -0
- package/dist/utils/app.js +1 -1
- package/dist/utils/file.js +4 -4
- package/jest.config.cjs +55 -0
- package/jest.config.lex.js +27 -28
- package/jest.setup.ts +3 -0
- package/package.json +76 -71
- package/resolver.cjs +86 -0
- package/test/javascript.js +6 -0
- package/test/typescript.ts +6 -0
- package/tsconfig.build.json +1 -1
- package/tsconfig.json +1 -1
- package/tsconfig.template.json +5 -5
- package/webpack.config.js +78 -65
- package/dist/resolver.js +0 -70
- package/jest.config.js +0 -14
- package/jest.setup.js +0 -3
package/tsconfig.template.json
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"allowJs": false,
|
|
4
4
|
"allowSyntheticDefaultImports": true,
|
|
5
|
-
"
|
|
5
|
+
"emitDeclarationOnly": true,
|
|
6
6
|
"esModuleInterop": true,
|
|
7
7
|
"inlineSourceMap": true,
|
|
8
8
|
"jsx": "react-jsx",
|
|
9
9
|
"lib": [
|
|
10
10
|
"es6",
|
|
11
11
|
"es7",
|
|
12
|
-
"
|
|
12
|
+
"ESNext",
|
|
13
13
|
"dom"
|
|
14
14
|
],
|
|
15
|
-
"module": "
|
|
16
|
-
"moduleResolution": "
|
|
15
|
+
"module": "ESNext",
|
|
16
|
+
"moduleResolution": "Node",
|
|
17
17
|
"noFallthroughCasesInSwitch": true,
|
|
18
18
|
"noImplicitReturns": true,
|
|
19
19
|
"noImplicitThis": true,
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"pretty": true,
|
|
22
22
|
"removeComments": true,
|
|
23
23
|
"skipLibCheck": true,
|
|
24
|
-
"target": "
|
|
24
|
+
"target": "ESNext",
|
|
25
25
|
"types": [
|
|
26
26
|
"jest",
|
|
27
27
|
"node"
|
package/webpack.config.js
CHANGED
|
@@ -2,28 +2,41 @@
|
|
|
2
2
|
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
3
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
5
|
+
import {StaticSitePlugin} from '@nlabs/webpack-plugin-static-site';
|
|
6
|
+
import autoprefixer from 'autoprefixer';
|
|
7
|
+
import CompressionWebpackPlugin from 'compression-webpack-plugin';
|
|
8
|
+
import CopyWebpackPlugin from 'copy-webpack-plugin';
|
|
9
|
+
import cssnano from 'cssnano';
|
|
10
|
+
import DotenvPlugin from 'dotenv-webpack';
|
|
11
|
+
import {EsbuildPlugin} from 'esbuild-loader';
|
|
12
|
+
import FaviconsWebpackPlugin from 'favicons-webpack-plugin';
|
|
13
|
+
import {existsSync} from 'fs';
|
|
14
|
+
import {sync as globSync} from 'glob';
|
|
15
|
+
import HtmlWebPackPlugin from 'html-webpack-plugin';
|
|
16
|
+
import isEmpty from 'lodash/isEmpty.js';
|
|
17
|
+
import {resolve as pathResolve} from 'path';
|
|
18
|
+
import postcssBrowserReporter from 'postcss-browser-reporter';
|
|
19
|
+
import postcssCustomProperties from 'postcss-custom-properties';
|
|
20
|
+
import postcssFlexbugsFixes from 'postcss-flexbugs-fixes';
|
|
21
|
+
import postcssFor from 'postcss-for';
|
|
22
|
+
import postcssImport from 'postcss-import';
|
|
23
|
+
import postcssNesting from 'postcss-nesting';
|
|
24
|
+
import postcssPercentage from 'postcss-percentage';
|
|
25
|
+
import postcssPresetEnv from 'postcss-preset-env';
|
|
26
|
+
import postcssUrl from 'postcss-url';
|
|
27
|
+
import SVGSpritemapPlugin from 'svg-spritemap-webpack-plugin';
|
|
28
|
+
import {URL} from 'url';
|
|
29
|
+
import {default as webpack} from 'webpack';
|
|
30
|
+
import {BundleAnalyzerPlugin} from 'webpack-bundle-analyzer';
|
|
31
|
+
import {merge} from 'webpack-merge';
|
|
32
|
+
import {WebpackPluginServe} from 'webpack-plugin-serve';
|
|
21
33
|
|
|
22
|
-
|
|
34
|
+
import {relativeFilePath, relativeNodePath} from './dist/utils/file.js';
|
|
23
35
|
|
|
24
36
|
const {ProgressPlugin, ProvidePlugin} = webpack;
|
|
25
37
|
const isProduction = process.env.NODE_ENV === 'production';
|
|
26
38
|
const lexConfig = JSON.parse(process.env.LEX_CONFIG) || {};
|
|
39
|
+
const dirName = new URL('.', import.meta.url).pathname;
|
|
27
40
|
|
|
28
41
|
const {
|
|
29
42
|
isStatic,
|
|
@@ -47,7 +60,7 @@ const plugins = [
|
|
|
47
60
|
dependencies: true,
|
|
48
61
|
percentBy: null
|
|
49
62
|
}),
|
|
50
|
-
new DotenvPlugin({path:
|
|
63
|
+
new DotenvPlugin({path: pathResolve(process.cwd(), '.env'), systemvars: false})
|
|
51
64
|
];
|
|
52
65
|
|
|
53
66
|
const isWeb = (preset || targetEnvironment) === 'web';
|
|
@@ -58,7 +71,7 @@ if(isWeb) {
|
|
|
58
71
|
new CompressionWebpackPlugin({algorithm: 'gzip'}),
|
|
59
72
|
new ProvidePlugin({
|
|
60
73
|
process: 'process/browser',
|
|
61
|
-
React:
|
|
74
|
+
React: pathResolve(dirName, './node_modules/react')
|
|
62
75
|
})
|
|
63
76
|
);
|
|
64
77
|
}
|
|
@@ -73,7 +86,7 @@ const globOptions = {
|
|
|
73
86
|
|
|
74
87
|
const svgPaths = `${sourceFullPath}/icons/**/**.svg`;
|
|
75
88
|
|
|
76
|
-
if(
|
|
89
|
+
if(globSync(svgPaths, globOptions).length) {
|
|
77
90
|
plugins.push(new SVGSpritemapPlugin(svgPaths, {
|
|
78
91
|
input: {
|
|
79
92
|
allowDuplicates: false
|
|
@@ -95,17 +108,17 @@ const imagePath = `${sourceFullPath}/images/`;
|
|
|
95
108
|
const fontPath = `${sourceFullPath}/fonts/`;
|
|
96
109
|
const docPath = `${sourceFullPath}/docs/`;
|
|
97
110
|
|
|
98
|
-
if(
|
|
111
|
+
if(existsSync(imagePath)) {
|
|
99
112
|
staticPaths.push({from: imagePath, to: './images/'});
|
|
100
113
|
watchIgnorePaths.push(imagePath);
|
|
101
114
|
}
|
|
102
115
|
|
|
103
|
-
if(
|
|
116
|
+
if(existsSync(fontPath)) {
|
|
104
117
|
staticPaths.push({from: fontPath, to: './fonts/'});
|
|
105
118
|
watchIgnorePaths.push(fontPath);
|
|
106
119
|
}
|
|
107
120
|
|
|
108
|
-
if(
|
|
121
|
+
if(existsSync(docPath)) {
|
|
109
122
|
staticPaths.push({from: docPath, to: './docs/'});
|
|
110
123
|
}
|
|
111
124
|
|
|
@@ -113,7 +126,7 @@ if(staticPaths.length) {
|
|
|
113
126
|
plugins.push(new CopyWebpackPlugin({patterns: staticPaths}));
|
|
114
127
|
}
|
|
115
128
|
|
|
116
|
-
if(
|
|
129
|
+
if(existsSync(`${sourceFullPath}/${lexConfig.entryHTML}`)) {
|
|
117
130
|
plugins.push(new HtmlWebPackPlugin({
|
|
118
131
|
filename: './index.html',
|
|
119
132
|
minify: isProduction,
|
|
@@ -134,26 +147,26 @@ if(outputFile) {
|
|
|
134
147
|
}
|
|
135
148
|
|
|
136
149
|
// Loader paths
|
|
137
|
-
const esbuildLoaderPath =
|
|
138
|
-
const cssLoaderPath =
|
|
139
|
-
const fileLoaderPath =
|
|
140
|
-
const graphqlLoaderPath =
|
|
141
|
-
const htmlLoaderPath =
|
|
142
|
-
const jsonLoaderPath =
|
|
143
|
-
const postcssLoaderPath =
|
|
144
|
-
const sourceMapLoaderPath =
|
|
145
|
-
const styleLoaderPath =
|
|
146
|
-
const webpackPath =
|
|
150
|
+
const esbuildLoaderPath = relativeNodePath('esbuild-loader', dirName);
|
|
151
|
+
const cssLoaderPath = relativeNodePath('css-loader', dirName);
|
|
152
|
+
const fileLoaderPath = relativeNodePath('file-loader', dirName);
|
|
153
|
+
const graphqlLoaderPath = relativeNodePath('graphql-tag/loader', dirName);
|
|
154
|
+
const htmlLoaderPath = relativeNodePath('html-loader', dirName);
|
|
155
|
+
const jsonLoaderPath = relativeNodePath('json-loader', dirName);
|
|
156
|
+
const postcssLoaderPath = relativeNodePath('postcss-loader', dirName);
|
|
157
|
+
const sourceMapLoaderPath = relativeNodePath('source-map-loader', dirName);
|
|
158
|
+
const styleLoaderPath = relativeNodePath('style-loader', dirName);
|
|
159
|
+
const webpackPath = relativeNodePath('webpack', dirName);
|
|
147
160
|
|
|
148
161
|
// Aliases
|
|
149
162
|
const aliasPaths = {
|
|
150
|
-
'@nlabs/arkhamjs':
|
|
151
|
-
'@nlabs/arkhamjs-utils-react':
|
|
152
|
-
'core-js':
|
|
153
|
-
process:
|
|
154
|
-
react:
|
|
155
|
-
'react-dom':
|
|
156
|
-
'regenerator-runtime':
|
|
163
|
+
'@nlabs/arkhamjs': relativeNodePath('@nlabs/arkhamjs', process.cwd()),
|
|
164
|
+
'@nlabs/arkhamjs-utils-react': relativeNodePath('@nlabs/arkhamjs-utils-react', process.cwd()),
|
|
165
|
+
'core-js': relativeNodePath('core-js', dirName),
|
|
166
|
+
process: relativeNodePath('process', dirName),
|
|
167
|
+
react: relativeNodePath('react', process.cwd()),
|
|
168
|
+
'react-dom': relativeNodePath('react-dom', process.cwd()),
|
|
169
|
+
'regenerator-runtime': relativeNodePath('regenerator-runtime', dirName)
|
|
157
170
|
};
|
|
158
171
|
const aliasKeys = Object.keys(aliasPaths);
|
|
159
172
|
const alias = aliasKeys.reduce((aliases, key) => {
|
|
@@ -165,7 +178,7 @@ const alias = aliasKeys.reduce((aliases, key) => {
|
|
|
165
178
|
}, {});
|
|
166
179
|
|
|
167
180
|
// Webpack config
|
|
168
|
-
|
|
181
|
+
export default (webpackEnv, webpackOptions) => {
|
|
169
182
|
const {bundleAnalyzer, watch} = webpackOptions;
|
|
170
183
|
const webpackConfig = {
|
|
171
184
|
bail: true,
|
|
@@ -235,27 +248,27 @@ module.exports = (webpackEnv, webpackOptions) => {
|
|
|
235
248
|
options: {
|
|
236
249
|
postcssOptions: {
|
|
237
250
|
plugins: [
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
251
|
+
postcssImport({addDependencyTo: webpack}),
|
|
252
|
+
postcssUrl,
|
|
253
|
+
postcssFor,
|
|
254
|
+
postcssPercentage({
|
|
242
255
|
floor: true,
|
|
243
256
|
precision: 9,
|
|
244
257
|
trimTrailingZero: true
|
|
245
258
|
}),
|
|
246
|
-
|
|
259
|
+
postcssCustomProperties({
|
|
247
260
|
preserve: false,
|
|
248
261
|
strict: false,
|
|
249
262
|
warnings: false
|
|
250
263
|
}),
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
264
|
+
autoprefixer,
|
|
265
|
+
postcssNesting,
|
|
266
|
+
postcssFlexbugsFixes,
|
|
267
|
+
postcssPresetEnv({
|
|
255
268
|
stage: 0
|
|
256
269
|
}),
|
|
257
|
-
|
|
258
|
-
|
|
270
|
+
cssnano({autoprefixer: false}),
|
|
271
|
+
postcssBrowserReporter
|
|
259
272
|
]
|
|
260
273
|
}
|
|
261
274
|
}
|
|
@@ -291,7 +304,7 @@ module.exports = (webpackEnv, webpackOptions) => {
|
|
|
291
304
|
},
|
|
292
305
|
optimization: (isProduction && isWeb) ? {
|
|
293
306
|
minimizer: [
|
|
294
|
-
new
|
|
307
|
+
new EsbuildPlugin({
|
|
295
308
|
css: true,
|
|
296
309
|
target: targetEnvironment
|
|
297
310
|
})
|
|
@@ -322,15 +335,15 @@ module.exports = (webpackEnv, webpackOptions) => {
|
|
|
322
335
|
alias,
|
|
323
336
|
extensions: ['*', '.mjs', '.js', '.ts', '.tsx', '.jsx', '.json', '.gql', '.graphql'],
|
|
324
337
|
fallback: {
|
|
325
|
-
assert:
|
|
326
|
-
crypto:
|
|
327
|
-
http:
|
|
328
|
-
https:
|
|
329
|
-
os:
|
|
330
|
-
path:
|
|
331
|
-
process:
|
|
332
|
-
stream:
|
|
333
|
-
util:
|
|
338
|
+
assert: relativeNodePath('assert', dirName),
|
|
339
|
+
crypto: relativeNodePath('crypto-browserify', dirName),
|
|
340
|
+
http: relativeNodePath('stream-http', dirName),
|
|
341
|
+
https: relativeNodePath('https-browserify', dirName),
|
|
342
|
+
os: relativeNodePath('os-browserify/browser.js', dirName),
|
|
343
|
+
path: relativeNodePath('path-browserify', dirName),
|
|
344
|
+
process: relativeNodePath('process/browser.js', dirName),
|
|
345
|
+
stream: relativeNodePath('stream-browserify', dirName),
|
|
346
|
+
util: relativeNodePath('util', dirName)
|
|
334
347
|
},
|
|
335
348
|
mainFiles: ['index'],
|
|
336
349
|
modules: [sourceFullPath, 'node_modules'],
|
|
@@ -348,7 +361,7 @@ module.exports = (webpackEnv, webpackOptions) => {
|
|
|
348
361
|
webpack: webpackPath
|
|
349
362
|
};
|
|
350
363
|
webpackConfig.optimization = {minimize: false};
|
|
351
|
-
webpackConfig.entry.wps =
|
|
364
|
+
webpackConfig.entry.wps = relativeNodePath('webpack-plugin-serve/client.js', dirName);
|
|
352
365
|
webpackConfig.stats = {errorDetails: true};
|
|
353
366
|
webpackConfig.plugins.push(
|
|
354
367
|
new WebpackPluginServe({
|
|
@@ -418,7 +431,7 @@ module.exports = (webpackEnv, webpackOptions) => {
|
|
|
418
431
|
// Create site ico files
|
|
419
432
|
const siteLogo = `${sourceFullPath}/images/logo.png`;
|
|
420
433
|
|
|
421
|
-
if(
|
|
434
|
+
if(existsSync(siteLogo)) {
|
|
422
435
|
plugins.push(new FaviconsWebpackPlugin({
|
|
423
436
|
icons: {
|
|
424
437
|
android: true,
|
package/dist/resolver.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { existsSync } from "fs";
|
|
2
|
-
import { extname as pathExtname, resolve as pathResolve } from "path";
|
|
3
|
-
import resolveSync from "resolve/sync";
|
|
4
|
-
import { fileURLToPath } from "url";
|
|
5
|
-
const getFullPath = (basedir, name, extensions) => {
|
|
6
|
-
let fileName = name;
|
|
7
|
-
extensions.some((ext) => {
|
|
8
|
-
if (fileName !== "..") {
|
|
9
|
-
const fullPath = pathResolve(`${basedir}/${fileName}${ext}`);
|
|
10
|
-
if (existsSync(fullPath)) {
|
|
11
|
-
fileName = fullPath;
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
if (fileName !== "index") {
|
|
16
|
-
const indexFile = pathResolve(`${basedir}/${fileName}/index${ext}`);
|
|
17
|
-
if (existsSync(indexFile)) {
|
|
18
|
-
fileName = indexFile;
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return false;
|
|
23
|
-
});
|
|
24
|
-
return fileName;
|
|
25
|
-
};
|
|
26
|
-
const resolver = (value, options) => {
|
|
27
|
-
let fileName = value;
|
|
28
|
-
if (fileName === "") {
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
31
|
-
const isSequencer = fileName.startsWith("jest-sequencer-");
|
|
32
|
-
if (isSequencer) {
|
|
33
|
-
fileName = fileName.replace("jest-sequencer-", "");
|
|
34
|
-
}
|
|
35
|
-
const { basedir, extensions = [".js", ".ts"] } = options;
|
|
36
|
-
const existingExt = pathExtname(fileName) || "";
|
|
37
|
-
const hasExtension = existingExt !== "" && extensions.includes(existingExt);
|
|
38
|
-
const isAbsolute = fileName.indexOf("/") === 0;
|
|
39
|
-
if (isAbsolute) {
|
|
40
|
-
if (hasExtension) {
|
|
41
|
-
return existsSync(fileName) ? fileName : null;
|
|
42
|
-
}
|
|
43
|
-
return getFullPath(fileName, "index", extensions);
|
|
44
|
-
}
|
|
45
|
-
if (fileName === "..") {
|
|
46
|
-
return getFullPath(basedir, "..", extensions);
|
|
47
|
-
}
|
|
48
|
-
const hasBase = fileName.indexOf("./") >= 0 || fileName.indexOf("../") >= 0;
|
|
49
|
-
if (hasBase) {
|
|
50
|
-
if (hasExtension) {
|
|
51
|
-
return pathResolve(`${basedir}/${fileName}`);
|
|
52
|
-
}
|
|
53
|
-
return getFullPath(basedir, fileName, extensions);
|
|
54
|
-
}
|
|
55
|
-
try {
|
|
56
|
-
const dirName = fileURLToPath(new URL(".", import.meta.url));
|
|
57
|
-
return resolveSync(fileName, { basedir: `${dirName}/../`, extensions });
|
|
58
|
-
} catch (error) {
|
|
59
|
-
try {
|
|
60
|
-
return resolveSync(fileName, { basedir: process.cwd(), extensions });
|
|
61
|
-
} catch (error2) {
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
var resolver_default = resolver;
|
|
67
|
-
export {
|
|
68
|
-
resolver_default as default
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3Jlc29sdmVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOC1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtleGlzdHNTeW5jfSBmcm9tICdmcyc7XG5pbXBvcnQge2V4dG5hbWUgYXMgcGF0aEV4dG5hbWUsIHJlc29sdmUgYXMgcGF0aFJlc29sdmV9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHJlc29sdmVTeW5jIGZyb20gJ3Jlc29sdmUvc3luYyc7XG5pbXBvcnQge2ZpbGVVUkxUb1BhdGh9IGZyb20gJ3VybCc7XG5cbmNvbnN0IGdldEZ1bGxQYXRoID0gKGJhc2VkaXI6IHN0cmluZywgbmFtZTogc3RyaW5nLCBleHRlbnNpb25zOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG4gIGxldCBmaWxlTmFtZSA9IG5hbWU7XG5cbiAgZXh0ZW5zaW9ucy5zb21lKChleHQpID0+IHtcbiAgICBpZihmaWxlTmFtZSAhPT0gJy4uJykge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoUmVzb2x2ZShgJHtiYXNlZGlyfS8ke2ZpbGVOYW1lfSR7ZXh0fWApO1xuXG4gICAgICBpZihleGlzdHNTeW5jKGZ1bGxQYXRoKSkge1xuICAgICAgICBmaWxlTmFtZSA9IGZ1bGxQYXRoO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZihmaWxlTmFtZSAhPT0gJ2luZGV4Jykge1xuICAgICAgY29uc3QgaW5kZXhGaWxlID0gcGF0aFJlc29sdmUoYCR7YmFzZWRpcn0vJHtmaWxlTmFtZX0vaW5kZXgke2V4dH1gKTtcblxuICAgICAgaWYoZXhpc3RzU3luYyhpbmRleEZpbGUpKSB7XG4gICAgICAgIGZpbGVOYW1lID0gaW5kZXhGaWxlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xuXG4gIHJldHVybiBmaWxlTmFtZTtcbn07XG5cbmNvbnN0IHJlc29sdmVyID0gKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gIGxldCBmaWxlTmFtZSA9IHZhbHVlO1xuXG4gIGlmKGZpbGVOYW1lID09PSAnJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgaXNTZXF1ZW5jZXIgPSBmaWxlTmFtZS5zdGFydHNXaXRoKCdqZXN0LXNlcXVlbmNlci0nKTtcblxuICBpZihpc1NlcXVlbmNlcikge1xuICAgIGZpbGVOYW1lID0gZmlsZU5hbWUucmVwbGFjZSgnamVzdC1zZXF1ZW5jZXItJywgJycpO1xuICB9XG5cbiAgY29uc3Qge2Jhc2VkaXIsIGV4dGVuc2lvbnMgPSBbJy5qcycsICcudHMnXX0gPSBvcHRpb25zO1xuICBjb25zdCBleGlzdGluZ0V4dCA9IHBhdGhFeHRuYW1lKGZpbGVOYW1lKSB8fCAnJztcbiAgY29uc3QgaGFzRXh0ZW5zaW9uID0gZXhpc3RpbmdFeHQgIT09ICcnICYmIGV4dGVuc2lvbnMuaW5jbHVkZXMoZXhpc3RpbmdFeHQpO1xuICBjb25zdCBpc0Fic29sdXRlID0gZmlsZU5hbWUuaW5kZXhPZignLycpID09PSAwO1xuXG4gIGlmKGlzQWJzb2x1dGUpIHtcbiAgICBpZihoYXNFeHRlbnNpb24pIHtcbiAgICAgIHJldHVybiBleGlzdHNTeW5jKGZpbGVOYW1lKSA/IGZpbGVOYW1lIDogbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoZmlsZU5hbWUsICdpbmRleCcsIGV4dGVuc2lvbnMpO1xuICB9XG5cbiAgaWYoZmlsZU5hbWUgPT09ICcuLicpIHtcbiAgICByZXR1cm4gZ2V0RnVsbFBhdGgoYmFzZWRpciwgJy4uJywgZXh0ZW5zaW9ucyk7XG4gIH1cblxuICBjb25zdCBoYXNCYXNlID0gZmlsZU5hbWUuaW5kZXhPZignLi8nKSA+PSAwIHx8IGZpbGVOYW1lLmluZGV4T2YoJy4uLycpID49IDA7XG5cbiAgaWYoaGFzQmFzZSkge1xuICAgIGlmKGhhc0V4dGVuc2lvbikge1xuICAgICAgcmV0dXJuIHBhdGhSZXNvbHZlKGAke2Jhc2VkaXJ9LyR7ZmlsZU5hbWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldEZ1bGxQYXRoKGJhc2VkaXIsIGZpbGVOYW1lLCBleHRlbnNpb25zKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgZGlyTmFtZSA9IGZpbGVVUkxUb1BhdGgobmV3IFVSTCgnLicsIGltcG9ydC5tZXRhLnVybCkpO1xuICAgIHJldHVybiByZXNvbHZlU3luYyhmaWxlTmFtZSwge2Jhc2VkaXI6IGAke2Rpck5hbWV9Ly4uL2AsIGV4dGVuc2lvbnN9KTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZVN5bmMoZmlsZU5hbWUsIHtiYXNlZGlyOiBwcm9jZXNzLmN3ZCgpLCBleHRlbnNpb25zfSk7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCByZXNvbHZlcjsiXSwKICAibWFwcGluZ3MiOiAiQUFJQSxTQUFRLGtCQUFpQjtBQUN6QixTQUFRLFdBQVcsYUFBYSxXQUFXLG1CQUFrQjtBQUM3RCxPQUFPLGlCQUFpQjtBQUN4QixTQUFRLHFCQUFvQjtBQUU1QixNQUFNLGNBQWMsQ0FBQyxTQUFpQixNQUFjLGVBQWlDO0FBQ25GLE1BQUksV0FBVztBQUVmLGFBQVcsS0FBSyxDQUFDLFFBQVE7QUFDdkIsUUFBRyxhQUFhLE1BQU07QUFDcEIsWUFBTSxXQUFXLFlBQVksR0FBRyxXQUFXLFdBQVcsS0FBSztBQUUzRCxVQUFHLFdBQVcsUUFBUSxHQUFHO0FBQ3ZCLG1CQUFXO0FBQ1gsZUFBTztBQUFBLE1BQ1Q7QUFBQSxJQUNGO0FBRUEsUUFBRyxhQUFhLFNBQVM7QUFDdkIsWUFBTSxZQUFZLFlBQVksR0FBRyxXQUFXLGlCQUFpQixLQUFLO0FBRWxFLFVBQUcsV0FBVyxTQUFTLEdBQUc7QUFDeEIsbUJBQVc7QUFDWCxlQUFPO0FBQUEsTUFDVDtBQUFBLElBQ0Y7QUFFQSxXQUFPO0FBQUEsRUFDVCxDQUFDO0FBRUQsU0FBTztBQUNUO0FBRUEsTUFBTSxXQUFXLENBQUMsT0FBTyxZQUFZO0FBQ25DLE1BQUksV0FBVztBQUVmLE1BQUcsYUFBYSxJQUFJO0FBQ2xCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxjQUFjLFNBQVMsV0FBVyxpQkFBaUI7QUFFekQsTUFBRyxhQUFhO0FBQ2QsZUFBVyxTQUFTLFFBQVEsbUJBQW1CLEVBQUU7QUFBQSxFQUNuRDtBQUVBLFFBQU0sRUFBQyxTQUFTLGFBQWEsQ0FBQyxPQUFPLEtBQUssRUFBQyxJQUFJO0FBQy9DLFFBQU0sY0FBYyxZQUFZLFFBQVEsS0FBSztBQUM3QyxRQUFNLGVBQWUsZ0JBQWdCLE1BQU0sV0FBVyxTQUFTLFdBQVc7QUFDMUUsUUFBTSxhQUFhLFNBQVMsUUFBUSxHQUFHLE1BQU07QUFFN0MsTUFBRyxZQUFZO0FBQ2IsUUFBRyxjQUFjO0FBQ2YsYUFBTyxXQUFXLFFBQVEsSUFBSSxXQUFXO0FBQUEsSUFDM0M7QUFFQSxXQUFPLFlBQVksVUFBVSxTQUFTLFVBQVU7QUFBQSxFQUNsRDtBQUVBLE1BQUcsYUFBYSxNQUFNO0FBQ3BCLFdBQU8sWUFBWSxTQUFTLE1BQU0sVUFBVTtBQUFBLEVBQzlDO0FBRUEsUUFBTSxVQUFVLFNBQVMsUUFBUSxJQUFJLEtBQUssS0FBSyxTQUFTLFFBQVEsS0FBSyxLQUFLO0FBRTFFLE1BQUcsU0FBUztBQUNWLFFBQUcsY0FBYztBQUNmLGFBQU8sWUFBWSxHQUFHLFdBQVcsVUFBVTtBQUFBLElBQzdDO0FBRUEsV0FBTyxZQUFZLFNBQVMsVUFBVSxVQUFVO0FBQUEsRUFDbEQ7QUFFQSxNQUFJO0FBQ0YsVUFBTSxVQUFVLGNBQWMsSUFBSSxJQUFJLEtBQUssWUFBWSxHQUFHLENBQUM7QUFDM0QsV0FBTyxZQUFZLFVBQVUsRUFBQyxTQUFTLEdBQUcsZUFBZSxXQUFVLENBQUM7QUFBQSxFQUN0RSxTQUFRLE9BQU47QUFDQSxRQUFJO0FBQ0YsYUFBTyxZQUFZLFVBQVUsRUFBQyxTQUFTLFFBQVEsSUFBSSxHQUFHLFdBQVUsQ0FBQztBQUFBLElBQ25FLFNBQVFBLFFBQU47QUFDQSxhQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFDRjtBQUVBLElBQU8sbUJBQVE7IiwKICAibmFtZXMiOiBbImVycm9yIl0KfQo=
|
package/jest.config.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
|
|
3
|
-
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
|
|
4
|
-
*/
|
|
5
|
-
const base = require('../../jest.config.base');
|
|
6
|
-
const pack = require('./package.json');
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
9
|
-
...base,
|
|
10
|
-
displayName: pack.name,
|
|
11
|
-
rootDir: '../..',
|
|
12
|
-
setupFiles: ['<rootDir>/packages/lex/jest.setup.js'],
|
|
13
|
-
testMatch: ['<rootDir>/packages/lex/**/*.test.ts']
|
|
14
|
-
};
|
package/jest.setup.js
DELETED