@api3/commons 0.9.0 → 0.10.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/README.md +10 -60
- package/dist/blockchain-utilities/derivation.d.ts.map +1 -1
- package/dist/blockchain-utilities/derivation.js +3 -3
- package/dist/blockchain-utilities/derivation.js.map +1 -1
- package/dist/blockchain-utilities/schema.js.map +1 -1
- package/dist/config-hash/index.js.map +1 -1
- package/dist/config-parsing/index.d.ts.map +1 -1
- package/dist/config-parsing/index.js +2 -2
- package/dist/config-parsing/index.js.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/logger/async-storage.d.ts +0 -1
- package/dist/logger/async-storage.d.ts.map +1 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +9 -1
- package/dist/logger/index.js.map +1 -1
- package/dist/node-index.d.ts.map +1 -1
- package/dist/node-index.js +0 -1
- package/dist/node-index.js.map +1 -1
- package/dist/processing/processing.d.ts.map +1 -1
- package/dist/processing/processing.js.map +1 -1
- package/dist/processing/unsafe-evaluate.d.ts.map +1 -1
- package/dist/processing/unsafe-evaluate.js +1 -3
- package/dist/processing/unsafe-evaluate.js.map +1 -1
- package/dist/processing/vm-timers.d.ts +0 -5
- package/dist/processing/vm-timers.d.ts.map +1 -1
- package/dist/processing/vm-timers.js.map +1 -1
- package/package.json +19 -36
- package/src/logger/index.test.ts +93 -83
- package/src/logger/index.ts +9 -1
- package/src/node-index.ts +0 -1
- package/src/processing/unsafe-evaluate.ts +0 -1
- package/dist/eslint/internal.d.ts +0 -15
- package/dist/eslint/internal.d.ts.map +0 -1
- package/dist/eslint/internal.js +0 -24
- package/dist/eslint/internal.js.map +0 -1
- package/dist/eslint/jest.d.ts +0 -29
- package/dist/eslint/jest.d.ts.map +0 -1
- package/dist/eslint/jest.js +0 -38
- package/dist/eslint/jest.js.map +0 -1
- package/dist/eslint/next-js.d.ts +0 -27
- package/dist/eslint/next-js.d.ts.map +0 -1
- package/dist/eslint/next-js.js +0 -33
- package/dist/eslint/next-js.js.map +0 -1
- package/dist/eslint/react.d.ts +0 -90
- package/dist/eslint/react.d.ts.map +0 -1
- package/dist/eslint/react.js +0 -85
- package/dist/eslint/react.js.map +0 -1
- package/dist/eslint/universal.d.ts +0 -173
- package/dist/eslint/universal.d.ts.map +0 -1
- package/dist/eslint/universal.js +0 -203
- package/dist/eslint/universal.js.map +0 -1
- package/src/eslint/README.md +0 -87
- package/src/eslint/internal.js +0 -24
- package/src/eslint/jest.js +0 -36
- package/src/eslint/next-js.js +0 -31
- package/src/eslint/react.js +0 -88
- package/src/eslint/universal.js +0 -209
package/src/logger/index.test.ts
CHANGED
|
@@ -16,114 +16,124 @@ const createTestLogger = (
|
|
|
16
16
|
return { baseLogger, logger };
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const { baseLogger, logger } = createTestLogger();
|
|
22
|
-
|
|
23
|
-
logger.runWithContext({ requestId: 'parent' }, () => {
|
|
24
|
-
logger.debug('parent start');
|
|
25
|
-
logger.runWithContext({ requestId: 'child' }, () => {
|
|
26
|
-
logger.debug('child');
|
|
27
|
-
});
|
|
19
|
+
test('works with sync functions', () => {
|
|
20
|
+
const { baseLogger, logger } = createTestLogger();
|
|
28
21
|
|
|
29
|
-
|
|
22
|
+
logger.runWithContext({ requestId: 'parent' }, () => {
|
|
23
|
+
logger.debug('parent start');
|
|
24
|
+
logger.runWithContext({ requestId: 'child' }, () => {
|
|
25
|
+
logger.debug('child');
|
|
30
26
|
});
|
|
31
27
|
|
|
32
|
-
|
|
33
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('child', { ctx: { requestId: 'child' } });
|
|
34
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('parent end', { ctx: { requestId: 'parent' } });
|
|
28
|
+
logger.debug('parent end');
|
|
35
29
|
});
|
|
36
30
|
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('parent start', { ctx: { requestId: 'parent' } });
|
|
32
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('child', { ctx: { requestId: 'child' } });
|
|
33
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('parent end', { ctx: { requestId: 'parent' } });
|
|
34
|
+
});
|
|
39
35
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
await logger.runWithContext({ requestId: 'child' }, async () => {
|
|
43
|
-
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
44
|
-
logger.debug('child');
|
|
45
|
-
});
|
|
36
|
+
test('works with async functions', async () => {
|
|
37
|
+
const { baseLogger, logger } = createTestLogger();
|
|
46
38
|
|
|
47
|
-
|
|
39
|
+
await logger.runWithContext({ requestId: 'parent' }, async () => {
|
|
40
|
+
logger.debug('parent start');
|
|
41
|
+
await logger.runWithContext({ requestId: 'child' }, async () => {
|
|
42
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
43
|
+
logger.debug('child');
|
|
48
44
|
});
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('parent start', { ctx: { requestId: 'parent' } });
|
|
52
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('child', { ctx: { requestId: 'child' } });
|
|
53
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('parent end', { ctx: { requestId: 'parent' } });
|
|
46
|
+
logger.debug('parent end');
|
|
54
47
|
});
|
|
55
48
|
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
expect(baseLogger.debug).toHaveBeenCalledTimes(3);
|
|
50
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('parent start', { ctx: { requestId: 'parent' } });
|
|
51
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('child', { ctx: { requestId: 'child' } });
|
|
52
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('parent end', { ctx: { requestId: 'parent' } });
|
|
53
|
+
});
|
|
58
54
|
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
test('works with deeply nested functions', async () => {
|
|
56
|
+
const { baseLogger, logger } = createTestLogger();
|
|
61
57
|
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
await logger.runWithContext({ parent: true }, async () => {
|
|
59
|
+
logger.debug('parent start');
|
|
64
60
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
setTimeout(() => logger.debug('D'), 50);
|
|
68
|
-
setTimeout(() => logger.debug('E'), 75);
|
|
61
|
+
await logger.runWithContext({ A: true }, async () => {
|
|
62
|
+
logger.debug('A start');
|
|
69
63
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
64
|
+
await logger.runWithContext({ B: true }, async () => {
|
|
65
|
+
setTimeout(() => logger.debug('C'), 25);
|
|
66
|
+
setTimeout(() => logger.debug('D'), 50);
|
|
67
|
+
setTimeout(() => logger.debug('E'), 75);
|
|
73
68
|
|
|
74
|
-
|
|
69
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
70
|
+
logger.debug('B end');
|
|
75
71
|
});
|
|
76
72
|
|
|
77
|
-
logger.debug('
|
|
73
|
+
logger.debug('A end');
|
|
78
74
|
});
|
|
79
75
|
|
|
80
|
-
|
|
81
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('parent start', { ctx: { parent: true } });
|
|
82
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('A start', { ctx: { parent: true, A: true } });
|
|
83
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('C', { ctx: { parent: true, A: true, B: true } });
|
|
84
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('D', { ctx: { parent: true, A: true, B: true } });
|
|
85
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('E', { ctx: { parent: true, A: true, B: true } });
|
|
86
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('B end', { ctx: { parent: true, A: true, B: true } });
|
|
87
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('A end', { ctx: { parent: true, A: true } });
|
|
88
|
-
expect(baseLogger.debug).toHaveBeenCalledWith('parent end', { ctx: { parent: true } });
|
|
76
|
+
logger.debug('parent end');
|
|
89
77
|
});
|
|
90
78
|
|
|
91
|
-
|
|
92
|
-
|
|
79
|
+
expect(baseLogger.debug).toHaveBeenCalledTimes(8);
|
|
80
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('parent start', { ctx: { parent: true } });
|
|
81
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('A start', { ctx: { parent: true, A: true } });
|
|
82
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('C', { ctx: { parent: true, A: true, B: true } });
|
|
83
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('D', { ctx: { parent: true, A: true, B: true } });
|
|
84
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('E', { ctx: { parent: true, A: true, B: true } });
|
|
85
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('B end', { ctx: { parent: true, A: true, B: true } });
|
|
86
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('A end', { ctx: { parent: true, A: true } });
|
|
87
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('parent end', { ctx: { parent: true } });
|
|
88
|
+
});
|
|
93
89
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
throw new Error('some-error');
|
|
97
|
-
})
|
|
98
|
-
).toThrow('some-error');
|
|
99
|
-
});
|
|
90
|
+
test('throws if the sync callback function throws', () => {
|
|
91
|
+
const { logger } = createTestLogger();
|
|
100
92
|
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
expect(() =>
|
|
94
|
+
logger.runWithContext({}, () => {
|
|
95
|
+
throw new Error('some-error');
|
|
96
|
+
})
|
|
97
|
+
).toThrow('some-error');
|
|
98
|
+
});
|
|
103
99
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
logger.runWithContext({}, async () => {
|
|
107
|
-
throw new Error('some-error');
|
|
108
|
-
})
|
|
109
|
-
).rejects.toThrow('some-error');
|
|
110
|
-
});
|
|
100
|
+
test('returns rejected promise if the async callback function rejects', async () => {
|
|
101
|
+
const { logger } = createTestLogger();
|
|
111
102
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
103
|
+
await expect(async () =>
|
|
104
|
+
logger.runWithContext({}, async () => {
|
|
105
|
+
throw new Error('some-error');
|
|
106
|
+
})
|
|
107
|
+
).rejects.toThrow('some-error');
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
test('can log using all variants of logger.error', () => {
|
|
111
|
+
const { baseLogger, logger } = createTestLogger();
|
|
112
|
+
|
|
113
|
+
logger.error('only message');
|
|
114
|
+
logger.error('message and context', { requestId: 'parent' });
|
|
115
|
+
logger.error('message and error', new Error('some-error'));
|
|
116
|
+
logger.error('message, error and context', new Error('some-error'), { requestId: 'parent' });
|
|
117
|
+
|
|
118
|
+
expect(baseLogger.error).toHaveBeenNthCalledWith(1, 'only message', undefined);
|
|
119
|
+
expect(baseLogger.error).toHaveBeenNthCalledWith(2, 'message and context', { ctx: { requestId: 'parent' } });
|
|
120
|
+
expect(baseLogger.error).toHaveBeenNthCalledWith(3, 'message and error', new Error('some-error'), undefined);
|
|
121
|
+
expect(baseLogger.error).toHaveBeenNthCalledWith(4, 'message, error and context', new Error('some-error'), {
|
|
122
|
+
ctx: {
|
|
123
|
+
requestId: 'parent',
|
|
124
|
+
},
|
|
128
125
|
});
|
|
129
126
|
});
|
|
127
|
+
|
|
128
|
+
test('logs an error when passed as context to non error level', () => {
|
|
129
|
+
const { baseLogger, logger } = createTestLogger();
|
|
130
|
+
const e = new Error('some-error');
|
|
131
|
+
|
|
132
|
+
logger.debug('debug message', e);
|
|
133
|
+
logger.info('info message', e);
|
|
134
|
+
logger.warn('warn message', e);
|
|
135
|
+
|
|
136
|
+
expect(baseLogger.debug).toHaveBeenCalledWith('debug message', { ctx: { error: 'some-error', name: 'Error' } });
|
|
137
|
+
expect(baseLogger.info).toHaveBeenCalledWith('info message', { ctx: { error: 'some-error', name: 'Error' } });
|
|
138
|
+
expect(baseLogger.warn).toHaveBeenCalledWith('warn message', { ctx: { error: 'some-error', name: 'Error' } });
|
|
139
|
+
});
|
package/src/logger/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import isError from 'lodash/isError';
|
|
1
2
|
import winston from 'winston';
|
|
2
3
|
import { consoleFormat } from 'winston-console-format';
|
|
3
4
|
|
|
@@ -87,10 +88,17 @@ export interface Logger {
|
|
|
87
88
|
child: (options: { name: string }) => Logger;
|
|
88
89
|
}
|
|
89
90
|
|
|
91
|
+
const parseLocalContext = (localContext: LogContext | undefined) => {
|
|
92
|
+
// Sometimes an error passed as a context, but when JS error has no own enumerable properties, so when it is spread
|
|
93
|
+
// (using ...) we get an empty object and lose all the context.
|
|
94
|
+
if (isError(localContext)) return { error: localContext.message, name: localContext.name };
|
|
95
|
+
return localContext;
|
|
96
|
+
};
|
|
97
|
+
|
|
90
98
|
const createFullContext = (localContext: LogContext | undefined) => {
|
|
91
99
|
const globalContext = getAsyncLocalStorage().getStore();
|
|
92
100
|
if (!globalContext && !localContext) return;
|
|
93
|
-
const fullContext = { ...globalContext, ...localContext };
|
|
101
|
+
const fullContext = { ...globalContext, ...parseLocalContext(localContext) };
|
|
94
102
|
|
|
95
103
|
// If the context contains a `name` or `message` field, it will override the `name` and `message` fields of the log
|
|
96
104
|
// entry. To avoid this, we return the context as a separate field.
|
package/src/node-index.ts
CHANGED
|
@@ -117,7 +117,6 @@ export const unsafeEvaluateV2 = async (code: string, payload: unknown, timeout:
|
|
|
117
117
|
const timers = createTimers();
|
|
118
118
|
|
|
119
119
|
const goEvaluate = await go<Promise<any>, GoWrappedError>(
|
|
120
|
-
// eslint-disable-next-line @typescript-eslint/require-await
|
|
121
120
|
async () =>
|
|
122
121
|
vm.runInNewContext(
|
|
123
122
|
`
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export namespace universalRestrictedImportsConfig {
|
|
2
|
-
let patterns: {
|
|
3
|
-
group: string[];
|
|
4
|
-
message: string;
|
|
5
|
-
}[];
|
|
6
|
-
}
|
|
7
|
-
export const universalImportOrderConfig: {
|
|
8
|
-
groups: string[];
|
|
9
|
-
'newlines-between': string;
|
|
10
|
-
alphabetize: {
|
|
11
|
-
order: string;
|
|
12
|
-
caseInsensitive: boolean;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/eslint/internal.js"],"names":[],"mappings":";;;;;;AAUA;;;;;;;EAQE"}
|
package/dist/eslint/internal.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const universalRestrictedImportsConfig = {
|
|
3
|
-
patterns: [
|
|
4
|
-
{
|
|
5
|
-
group: ['date-fns/*'],
|
|
6
|
-
// The date-fns library is tree-shakeable and it's more convenient to use named imports.
|
|
7
|
-
message: "Please use named imports from 'date-fns'.",
|
|
8
|
-
},
|
|
9
|
-
],
|
|
10
|
-
};
|
|
11
|
-
const universalImportOrderConfig = {
|
|
12
|
-
// https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md
|
|
13
|
-
groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'],
|
|
14
|
-
'newlines-between': 'always',
|
|
15
|
-
alphabetize: {
|
|
16
|
-
order: 'asc',
|
|
17
|
-
caseInsensitive: true,
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
module.exports = {
|
|
21
|
-
universalRestrictedImportsConfig,
|
|
22
|
-
universalImportOrderConfig,
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=internal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/eslint/internal.js"],"names":[],"mappings":";AAAA,MAAM,gCAAgC,GAAG;IACvC,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,wFAAwF;YACxF,OAAO,EAAE,2CAA2C;SACrD;KACF;CACF,CAAC;AAEF,MAAM,0BAA0B,GAAG;IACjC,oFAAoF;IACpF,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;IACzE,kBAAkB,EAAE,QAAQ;IAC5B,WAAW,EAAE;QACX,KAAK,EAAE,KAAK;QACZ,eAAe,EAAE,IAAI;KACtB;CACF,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG;IACf,gCAAgC;IAChC,0BAA0B;CAC3B,CAAC"}
|
package/dist/eslint/jest.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export let parser: string;
|
|
2
|
-
export namespace parserOptions {
|
|
3
|
-
let ecmaVersion: number;
|
|
4
|
-
let sourceType: string;
|
|
5
|
-
}
|
|
6
|
-
export namespace env {
|
|
7
|
-
let node: boolean;
|
|
8
|
-
let browser: boolean;
|
|
9
|
-
}
|
|
10
|
-
export let overrides: {
|
|
11
|
-
files: string[];
|
|
12
|
-
env: {
|
|
13
|
-
jest: boolean;
|
|
14
|
-
};
|
|
15
|
-
plugins: string[];
|
|
16
|
-
extends: string[];
|
|
17
|
-
rules: {
|
|
18
|
-
'jest/prefer-expect-assertions': string;
|
|
19
|
-
'jest/prefer-each': string;
|
|
20
|
-
'jest/require-top-level-describe': string;
|
|
21
|
-
'jest/max-expects': string;
|
|
22
|
-
'jest/valid-title': string;
|
|
23
|
-
'jest/no-hooks': (string | {
|
|
24
|
-
allow: string[];
|
|
25
|
-
})[];
|
|
26
|
-
'prefer-lowercase-title': string;
|
|
27
|
-
};
|
|
28
|
-
}[];
|
|
29
|
-
//# sourceMappingURL=jest.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jest.d.ts","sourceRoot":"","sources":["../../src/eslint/jest.js"],"names":[],"mappings":""}
|
package/dist/eslint/jest.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
module.exports = {
|
|
3
|
-
parser: '@typescript-eslint/parser',
|
|
4
|
-
parserOptions: {
|
|
5
|
-
ecmaVersion: 2022,
|
|
6
|
-
sourceType: 'module', // Enable the use of ES6 import/export syntax.
|
|
7
|
-
},
|
|
8
|
-
env: {
|
|
9
|
-
node: true,
|
|
10
|
-
browser: true,
|
|
11
|
-
},
|
|
12
|
-
// Configuration for specific files is done under 'overrides'.
|
|
13
|
-
overrides: [
|
|
14
|
-
{
|
|
15
|
-
files: ['**/*.test.ts', '**/*.test.tsx', '**/*.test.js', '**/*.test.jsx'],
|
|
16
|
-
env: {
|
|
17
|
-
jest: true,
|
|
18
|
-
},
|
|
19
|
-
plugins: ['jest'],
|
|
20
|
-
extends: ['plugin:jest/all', 'plugin:jest-formatting/recommended'],
|
|
21
|
-
rules: {
|
|
22
|
-
'jest/prefer-expect-assertions': 'off',
|
|
23
|
-
'jest/prefer-each': 'off',
|
|
24
|
-
'jest/require-top-level-describe': 'off',
|
|
25
|
-
'jest/max-expects': 'off',
|
|
26
|
-
'jest/valid-title': 'off',
|
|
27
|
-
'jest/no-hooks': [
|
|
28
|
-
'error',
|
|
29
|
-
{
|
|
30
|
-
allow: ['afterEach', 'afterAll'],
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
'prefer-lowercase-title': 'off', // Sometimes we want to start the test with a capital letter and some words are all uppercase (e.g. AWS).
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
],
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=jest.js.map
|
package/dist/eslint/jest.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jest.js","sourceRoot":"","sources":["../../src/eslint/jest.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,UAAU,EAAE,QAAQ,EAAE,8CAA8C;KACrE;IACD,GAAG,EAAE;QACH,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KACd;IACD,8DAA8D;IAC9D,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,CAAC;YACzE,GAAG,EAAE;gBACH,IAAI,EAAE,IAAI;aACX;YACD,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;YAClE,KAAK,EAAE;gBACL,+BAA+B,EAAE,KAAK;gBACtC,kBAAkB,EAAE,KAAK;gBACzB,iCAAiC,EAAE,KAAK;gBACxC,kBAAkB,EAAE,KAAK;gBACzB,kBAAkB,EAAE,KAAK;gBACzB,eAAe,EAAE;oBACf,OAAO;oBACP;wBACE,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;qBACjC;iBACF;gBACD,wBAAwB,EAAE,KAAK,EAAE,yGAAyG;aAC3I;SACF;KACF;CACF,CAAC"}
|
package/dist/eslint/next-js.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export declare let parser: string;
|
|
2
|
-
export declare namespace parserOptions {
|
|
3
|
-
let ecmaVersion: number;
|
|
4
|
-
namespace ecmaFeatures {
|
|
5
|
-
let jsx: boolean;
|
|
6
|
-
}
|
|
7
|
-
let sourceType: string;
|
|
8
|
-
}
|
|
9
|
-
export declare namespace settings {
|
|
10
|
-
namespace react {
|
|
11
|
-
let version: string;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export declare namespace env {
|
|
15
|
-
let node: boolean;
|
|
16
|
-
let browser: boolean;
|
|
17
|
-
}
|
|
18
|
-
declare let _extends: string[];
|
|
19
|
-
export { _extends as extends };
|
|
20
|
-
export declare let overrides: {
|
|
21
|
-
files: string[];
|
|
22
|
-
rules: {
|
|
23
|
-
'import/no-default-export': string;
|
|
24
|
-
'import/prefer-default-export': string;
|
|
25
|
-
};
|
|
26
|
-
}[];
|
|
27
|
-
//# sourceMappingURL=next-js.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"next-js.d.ts","sourceRoot":"","sources":["../../src/eslint/next-js.js"],"names":[],"mappings":""}
|
package/dist/eslint/next-js.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
module.exports = {
|
|
3
|
-
parser: '@typescript-eslint/parser',
|
|
4
|
-
parserOptions: {
|
|
5
|
-
ecmaVersion: 2022,
|
|
6
|
-
ecmaFeatures: {
|
|
7
|
-
jsx: true, // Support JSX syntax.
|
|
8
|
-
},
|
|
9
|
-
sourceType: 'module', // Enable ES6 import/export syntax.
|
|
10
|
-
},
|
|
11
|
-
settings: {
|
|
12
|
-
react: {
|
|
13
|
-
version: 'detect',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
env: {
|
|
17
|
-
node: true,
|
|
18
|
-
browser: true,
|
|
19
|
-
},
|
|
20
|
-
extends: [
|
|
21
|
-
'next/core-web-vitals', // Enforce Next.js performance best practices. See: https://nextjs.org/docs/basic-features/eslint.
|
|
22
|
-
],
|
|
23
|
-
overrides: [
|
|
24
|
-
{
|
|
25
|
-
files: ['pages/**/*'],
|
|
26
|
-
rules: {
|
|
27
|
-
'import/no-default-export': 'off',
|
|
28
|
-
'import/prefer-default-export': 'error', // Next.js expects default exports in the pages directory.
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=next-js.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"next-js.js","sourceRoot":"","sources":["../../src/eslint/next-js.js"],"names":[],"mappings":";AAAA,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE;YACZ,GAAG,EAAE,IAAI,EAAE,sBAAsB;SAClC;QACD,UAAU,EAAE,QAAQ,EAAE,mCAAmC;KAC1D;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,QAAQ;SAClB;KACF;IACD,GAAG,EAAE;QACH,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KACd;IACD,OAAO,EAAE;QACP,sBAAsB,EAAE,kGAAkG;KAC3H;IACD,SAAS,EAAE;QACT;YACE,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,KAAK,EAAE;gBACL,0BAA0B,EAAE,KAAK;gBACjC,8BAA8B,EAAE,OAAO,EAAE,0DAA0D;aACpG;SACF;KACF;CACF,CAAC"}
|
package/dist/eslint/react.d.ts
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
export declare let parser: string;
|
|
2
|
-
export declare namespace parserOptions {
|
|
3
|
-
let ecmaVersion: number;
|
|
4
|
-
namespace ecmaFeatures {
|
|
5
|
-
let jsx: boolean;
|
|
6
|
-
}
|
|
7
|
-
let sourceType: string;
|
|
8
|
-
}
|
|
9
|
-
export declare namespace settings {
|
|
10
|
-
namespace react {
|
|
11
|
-
let version: string;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export declare namespace env {
|
|
15
|
-
let node: boolean;
|
|
16
|
-
let browser: boolean;
|
|
17
|
-
}
|
|
18
|
-
declare let _extends: string[];
|
|
19
|
-
export { _extends as extends };
|
|
20
|
-
export declare let plugins: string[];
|
|
21
|
-
export declare let rules: {
|
|
22
|
-
'import/order': (string | ({
|
|
23
|
-
groups: string[];
|
|
24
|
-
'newlines-between': string;
|
|
25
|
-
alphabetize: {
|
|
26
|
-
order: string;
|
|
27
|
-
caseInsensitive: boolean;
|
|
28
|
-
};
|
|
29
|
-
} & {
|
|
30
|
-
pathGroups: {
|
|
31
|
-
pattern: string;
|
|
32
|
-
group: string;
|
|
33
|
-
position: string;
|
|
34
|
-
}[];
|
|
35
|
-
}))[];
|
|
36
|
-
'react/destructuring-assignment': (string | {
|
|
37
|
-
destructureInSignature: string;
|
|
38
|
-
})[];
|
|
39
|
-
'react/forbid-component-props': (string | {
|
|
40
|
-
forbid: never[];
|
|
41
|
-
})[];
|
|
42
|
-
'react/forbid-dom-props': (string | {
|
|
43
|
-
forbid: never[];
|
|
44
|
-
})[];
|
|
45
|
-
'react/jsx-curly-brace-presence': (string | {
|
|
46
|
-
props: string;
|
|
47
|
-
children: string;
|
|
48
|
-
propElementValues: string;
|
|
49
|
-
})[];
|
|
50
|
-
'react/jsx-curly-newline': string;
|
|
51
|
-
'react/jsx-filename-extension': string;
|
|
52
|
-
'react/jsx-handler-names': string;
|
|
53
|
-
'react/jsx-indent': string;
|
|
54
|
-
'react/jsx-indent-props': string;
|
|
55
|
-
'react/jsx-max-depth': string;
|
|
56
|
-
'react/jsx-max-props-per-line': string;
|
|
57
|
-
'react/jsx-newline': string;
|
|
58
|
-
'react/jsx-no-bind': string;
|
|
59
|
-
'react/jsx-no-leaked-render': string;
|
|
60
|
-
'react/jsx-no-literals': string;
|
|
61
|
-
'react/jsx-one-expression-per-line': string;
|
|
62
|
-
'react/jsx-props-no-spreading': string;
|
|
63
|
-
'react/jsx-sort-props': string;
|
|
64
|
-
'react/no-multi-comp': string;
|
|
65
|
-
'react/no-unescaped-entities': string;
|
|
66
|
-
'react/no-unused-prop-types': string;
|
|
67
|
-
'react/prefer-read-only-props': string;
|
|
68
|
-
'react/prop-types': string;
|
|
69
|
-
'react/react-in-jsx-scope': string;
|
|
70
|
-
'react/require-default-props': string;
|
|
71
|
-
'react/self-closing-comp': (string | {
|
|
72
|
-
component: boolean;
|
|
73
|
-
html: boolean;
|
|
74
|
-
})[];
|
|
75
|
-
'react/void-dom-elements-no-children': string;
|
|
76
|
-
'@typescript-eslint/no-restricted-imports': (string | ({
|
|
77
|
-
patterns: {
|
|
78
|
-
group: string[];
|
|
79
|
-
message: string;
|
|
80
|
-
}[];
|
|
81
|
-
} & {
|
|
82
|
-
paths: {
|
|
83
|
-
name: string;
|
|
84
|
-
importNames: string[];
|
|
85
|
-
message: string;
|
|
86
|
-
}[];
|
|
87
|
-
}))[];
|
|
88
|
-
'lodash/import-scope': string[];
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=react.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/eslint/react.js"],"names":[],"mappings":""}
|
package/dist/eslint/react.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires, lodash/import-scope
|
|
3
|
-
const { merge } = require('lodash');
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
5
|
-
const { universalRestrictedImportsConfig, universalImportOrderConfig } = require('./internal');
|
|
6
|
-
module.exports = {
|
|
7
|
-
parser: '@typescript-eslint/parser',
|
|
8
|
-
parserOptions: {
|
|
9
|
-
ecmaVersion: 2022,
|
|
10
|
-
ecmaFeatures: {
|
|
11
|
-
jsx: true, // Support JSX syntax.
|
|
12
|
-
},
|
|
13
|
-
sourceType: 'module', // Enable ES6 import/export syntax.
|
|
14
|
-
},
|
|
15
|
-
settings: {
|
|
16
|
-
react: {
|
|
17
|
-
version: 'detect', // Automatically detect the version of React.
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
env: {
|
|
21
|
-
node: true,
|
|
22
|
-
browser: true,
|
|
23
|
-
},
|
|
24
|
-
extends: ['plugin:react/all', 'plugin:react-hooks/recommended'],
|
|
25
|
-
plugins: ['react', '@typescript-eslint', 'import', 'lodash'],
|
|
26
|
-
rules: {
|
|
27
|
-
'import/order': [
|
|
28
|
-
'error',
|
|
29
|
-
merge({}, universalImportOrderConfig, {
|
|
30
|
-
// Prioritize react imports.
|
|
31
|
-
pathGroups: [
|
|
32
|
-
{
|
|
33
|
-
pattern: 'react',
|
|
34
|
-
group: 'builtin',
|
|
35
|
-
position: 'before',
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
}),
|
|
39
|
-
],
|
|
40
|
-
/* Overrides for "react" plugin */
|
|
41
|
-
'react/destructuring-assignment': ['error', 'always', { destructureInSignature: 'ignore' }],
|
|
42
|
-
'react/forbid-component-props': ['error', { forbid: [] }],
|
|
43
|
-
'react/forbid-dom-props': ['error', { forbid: [] }],
|
|
44
|
-
'react/jsx-curly-brace-presence': ['error', { props: 'never', children: 'never', propElementValues: 'always' }],
|
|
45
|
-
'react/jsx-curly-newline': 'off',
|
|
46
|
-
'react/jsx-filename-extension': 'off',
|
|
47
|
-
'react/jsx-handler-names': 'off',
|
|
48
|
-
'react/jsx-indent': 'off',
|
|
49
|
-
'react/jsx-indent-props': 'off',
|
|
50
|
-
'react/jsx-max-depth': 'off',
|
|
51
|
-
'react/jsx-max-props-per-line': 'off',
|
|
52
|
-
'react/jsx-newline': 'off',
|
|
53
|
-
'react/jsx-no-bind': 'off',
|
|
54
|
-
'react/jsx-no-leaked-render': 'off',
|
|
55
|
-
'react/jsx-no-literals': 'off',
|
|
56
|
-
'react/jsx-one-expression-per-line': 'off',
|
|
57
|
-
'react/jsx-props-no-spreading': 'off',
|
|
58
|
-
'react/jsx-sort-props': 'off',
|
|
59
|
-
'react/no-multi-comp': 'off',
|
|
60
|
-
'react/no-unescaped-entities': 'off',
|
|
61
|
-
'react/no-unused-prop-types': 'off',
|
|
62
|
-
'react/prefer-read-only-props': 'off',
|
|
63
|
-
'react/prop-types': 'off',
|
|
64
|
-
'react/react-in-jsx-scope': 'off',
|
|
65
|
-
'react/require-default-props': 'off',
|
|
66
|
-
'react/self-closing-comp': ['error', { component: true, html: true }],
|
|
67
|
-
'react/void-dom-elements-no-children': 'error',
|
|
68
|
-
/* Overrides for "@typescript-eslint" plugin */
|
|
69
|
-
'@typescript-eslint/no-restricted-imports': [
|
|
70
|
-
'error',
|
|
71
|
-
merge({}, universalRestrictedImportsConfig, {
|
|
72
|
-
paths: [
|
|
73
|
-
{
|
|
74
|
-
name: 'react',
|
|
75
|
-
importNames: ['default'],
|
|
76
|
-
message: 'Starting from React version 17, there is no need to globally import React. Use named imports for specific React APIs.',
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
}),
|
|
80
|
-
],
|
|
81
|
-
/* Overrides for "lodash" plugin */
|
|
82
|
-
'lodash/import-scope': ['error', 'method'],
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
//# sourceMappingURL=react.js.map
|
package/dist/eslint/react.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/eslint/react.js"],"names":[],"mappings":";AAAA,mFAAmF;AACnF,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEpC,8DAA8D;AAC9D,MAAM,EAAE,gCAAgC,EAAE,0BAA0B,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAE/F,MAAM,CAAC,OAAO,GAAG;IACf,MAAM,EAAE,2BAA2B;IACnC,aAAa,EAAE;QACb,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE;YACZ,GAAG,EAAE,IAAI,EAAE,sBAAsB;SAClC;QACD,UAAU,EAAE,QAAQ,EAAE,mCAAmC;KAC1D;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,QAAQ,EAAE,6CAA6C;SACjE;KACF;IACD,GAAG,EAAE;QACH,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;KACd;IACD,OAAO,EAAE,CAAC,kBAAkB,EAAE,gCAAgC,CAAC;IAC/D,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAC5D,KAAK,EAAE;QACL,cAAc,EAAE;YACd,OAAO;YACP,KAAK,CAAC,EAAE,EAAE,0BAA0B,EAAE;gBACpC,4BAA4B;gBAC5B,UAAU,EAAE;oBACV;wBACE,OAAO,EAAE,OAAO;wBAChB,KAAK,EAAE,SAAS;wBAChB,QAAQ,EAAE,QAAQ;qBACnB;iBACF;aACF,CAAC;SACH;QACD,kCAAkC;QAClC,gCAAgC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAAC;QAC3F,8BAA8B,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACzD,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACnD,gCAAgC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAC/G,yBAAyB,EAAE,KAAK;QAChC,8BAA8B,EAAE,KAAK;QACrC,yBAAyB,EAAE,KAAK;QAChC,kBAAkB,EAAE,KAAK;QACzB,wBAAwB,EAAE,KAAK;QAC/B,qBAAqB,EAAE,KAAK;QAC5B,8BAA8B,EAAE,KAAK;QACrC,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,KAAK;QAC1B,4BAA4B,EAAE,KAAK;QACnC,uBAAuB,EAAE,KAAK;QAC9B,mCAAmC,EAAE,KAAK;QAC1C,8BAA8B,EAAE,KAAK;QACrC,sBAAsB,EAAE,KAAK;QAC7B,qBAAqB,EAAE,KAAK;QAC5B,6BAA6B,EAAE,KAAK;QACpC,4BAA4B,EAAE,KAAK;QACnC,8BAA8B,EAAE,KAAK;QACrC,kBAAkB,EAAE,KAAK;QACzB,0BAA0B,EAAE,KAAK;QACjC,6BAA6B,EAAE,KAAK;QACpC,yBAAyB,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACrE,qCAAqC,EAAE,OAAO;QAE9C,+CAA+C;QAC/C,0CAA0C,EAAE;YAC1C,OAAO;YACP,KAAK,CAAC,EAAE,EAAE,gCAAgC,EAAE;gBAC1C,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,OAAO;wBACb,WAAW,EAAE,CAAC,SAAS,CAAC;wBACxB,OAAO,EACL,uHAAuH;qBAC1H;iBACF;aACF,CAAC;SACH;QAED,mCAAmC;QACnC,qBAAqB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC3C;CACF,CAAC"}
|