@checkdigit/eslint-plugin 7.18.0-PR.143-cf9d → 7.18.0-PR.143-7dcb
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/dist-mjs/athena/api-matcher.mjs +7 -7
- package/dist-mjs/athena/validate.mjs +5 -5
- package/dist-mjs/no-side-effects.mjs +3 -3
- package/dist-mjs/openapi/deref-schema.mjs +2 -2
- package/dist-mjs/openapi/generate-schema.mjs +4 -4
- package/dist-mjs/openapi/service-schema-generator.mjs +10 -10
- package/dist-mjs/require-ts-extension-imports-exports.mjs +3 -3
- package/dist-types/openapi/generate-schema.d.ts +1 -1
- package/package.json +1 -1
- package/src/athena/api-matcher.ts +14 -14
- package/src/athena/validate.ts +8 -8
- package/src/no-side-effects.ts +3 -3
- package/src/openapi/deref-schema.ts +1 -1
- package/src/openapi/generate-schema.ts +5 -5
- package/src/openapi/service-schema-generator.ts +13 -13
- package/src/require-ts-extension-imports-exports.ts +3 -3
|
@@ -23,7 +23,7 @@ function getColumnName(node) {
|
|
|
23
23
|
return typeof column === "string" ? column.toLowerCase() : void 0;
|
|
24
24
|
}
|
|
25
25
|
function getColumnTable(node) {
|
|
26
|
-
return getColumnRef(node)?.table;
|
|
26
|
+
return getColumnRef(node)?.table ?? void 0;
|
|
27
27
|
}
|
|
28
28
|
function getStringValue(node) {
|
|
29
29
|
const val = rec(node);
|
|
@@ -77,13 +77,13 @@ function getConditionTableQualifier(left) {
|
|
|
77
77
|
}
|
|
78
78
|
const splitArgs = getSplitUrlFunctionArgs(left, "split") ?? getSplitUrlFunctionArgs(left, "split_part");
|
|
79
79
|
if (splitArgs !== void 0) {
|
|
80
|
-
return getColumnTable(splitArgs[0])
|
|
80
|
+
return getColumnTable(splitArgs[0]);
|
|
81
81
|
}
|
|
82
82
|
if (isCardinalitySplitUrl(left)) {
|
|
83
83
|
const outerArgs = rec(left)?.["args"]?.value;
|
|
84
84
|
const splitFn = rec(outerArgs?.[0]);
|
|
85
85
|
const innerArgs = splitFn?.["args"]?.value;
|
|
86
|
-
return getColumnTable(innerArgs?.[0])
|
|
86
|
+
return getColumnTable(innerArgs?.[0]);
|
|
87
87
|
}
|
|
88
88
|
return void 0;
|
|
89
89
|
}
|
|
@@ -100,7 +100,7 @@ function buildLeafPredicate(node, tableAlias) {
|
|
|
100
100
|
}
|
|
101
101
|
const { left, right } = node;
|
|
102
102
|
const conditionTable = getConditionTableQualifier(left);
|
|
103
|
-
if (conditionTable !==
|
|
103
|
+
if (conditionTable !== void 0 && tableAlias !== void 0 && conditionTable !== tableAlias) {
|
|
104
104
|
return void 0;
|
|
105
105
|
}
|
|
106
106
|
if (getColumnName(left) === "method") {
|
|
@@ -164,8 +164,8 @@ function buildPredicate(expr, tableAlias) {
|
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
function matchApi(selectAST, tableAST, apiSchemas) {
|
|
167
|
-
const tableAlias = tableAST.as ??
|
|
168
|
-
const predicate = buildPredicate(selectAST.where
|
|
167
|
+
const tableAlias = tableAST.as ?? void 0;
|
|
168
|
+
const predicate = buildPredicate(selectAST.where, tableAlias);
|
|
169
169
|
const allOperations = apiSchemas.flatMap((apiSchema) => Object.entries(apiSchema.apis)).flatMap(
|
|
170
170
|
([path, operations]) => Object.entries(operations).map(([method, operationSchemas]) => ({
|
|
171
171
|
path,
|
|
@@ -191,4 +191,4 @@ function matchApi(selectAST, tableAST, apiSchemas) {
|
|
|
191
191
|
export {
|
|
192
192
|
matchApi
|
|
193
193
|
};
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS9hcGktbWF0Y2hlci50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFFQSxPQUFPLFdBQVc7QUFNbEIsSUFBTSxNQUFNLE1BQU0sa0NBQWtDO0FBa0JwRCxJQUFNLGNBQWtDLE1BQU07QUFJOUMsU0FBUyxJQUFJLE1BQW9EO0FBQy9ELFNBQU8sT0FBTyxTQUFTLFlBQVksU0FBUyxPQUFRLE9BQW1DO0FBQ3pGO0FBRUEsU0FBUyxnQkFBZ0IsTUFBbUM7QUFDMUQsUUFBTSxLQUFLLElBQUksSUFBSTtBQUNuQixNQUFJLEtBQUssTUFBTSxNQUFNLFlBQVk7QUFDL0IsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLE9BQU8sR0FBRyxNQUFNO0FBQ3RCLFFBQU0sWUFBWSxNQUFNLEtBQUssQ0FBQztBQUM5QixTQUFPLGNBQWMsU0FBWSxTQUFZLFVBQVUsTUFBTSxZQUFZO0FBQzNFO0FBRUEsU0FBUyxhQUFhLE1BQTBDO0FBQzlELFFBQU0sTUFBTSxJQUFJLElBQUk7QUFDcEIsU0FBTyxNQUFNLE1BQU0sTUFBTSxlQUFnQixPQUF5QjtBQUNwRTtBQUVBLFNBQVMsY0FBYyxNQUFtQztBQUN4RCxRQUFNLFNBQVMsYUFBYSxJQUFJLEdBQUc7QUFDbkMsU0FBTyxPQUFPLFdBQVcsV0FBVyxPQUFPLFlBQVksSUFBSTtBQUM3RDtBQUVBLFNBQVMsZUFBZSxNQUFtQztBQUN6RCxTQUFPLGFBQWEsSUFBSSxHQUFHLFNBQVM7QUFDdEM7QUFFQSxTQUFTLGVBQWUsTUFBbUM7QUFDekQsUUFBTSxNQUFNLElBQUksSUFBSTtBQUNwQixNQUFJLE1BQU0sTUFBTSxNQUFNLHlCQUF5QixNQUFNLE1BQU0sTUFBTSxVQUFVO0FBQ3pFLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxPQUFPLElBQUksT0FBTyxNQUFNLFdBQVcsSUFBSSxPQUFPLElBQUk7QUFDM0Q7QUFFQSxTQUFTLGVBQWUsTUFBbUM7QUFDekQsUUFBTSxNQUFNLElBQUksSUFBSTtBQUNw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
|
|
@@ -120,7 +120,7 @@ function fromItemTableNames(item) {
|
|
|
120
120
|
}
|
|
121
121
|
const unknownItem = item;
|
|
122
122
|
if (isStandaloneUnnest(unknownItem)) {
|
|
123
|
-
return aliasAsSingleton(getFunctionAliasName(unknownItem.as));
|
|
123
|
+
return aliasAsSingleton(getFunctionAliasName(unknownItem.as ?? void 0));
|
|
124
124
|
}
|
|
125
125
|
return [];
|
|
126
126
|
}
|
|
@@ -152,7 +152,7 @@ function resolveFromClause(select, ctx) {
|
|
|
152
152
|
for (const item of fromClauseItems(select)) {
|
|
153
153
|
const unknownItem = item;
|
|
154
154
|
if (isStandaloneUnnest(unknownItem)) {
|
|
155
|
-
const tableAlias = getFunctionAliasName(unknownItem.as);
|
|
155
|
+
const tableAlias = getFunctionAliasName(unknownItem.as ?? void 0);
|
|
156
156
|
if (tableAlias !== void 0) {
|
|
157
157
|
const columns = new Map(
|
|
158
158
|
(unknownItem.as?.args.value ?? []).map((columnRef) => {
|
|
@@ -198,7 +198,7 @@ function extractUnnestMappings(select) {
|
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
assert.ok(toColumns.length > 0, "UNNEST alias must have at least one column name");
|
|
201
|
-
const tableAlias = getFunctionAliasName(item.as);
|
|
201
|
+
const tableAlias = getFunctionAliasName(item.as ?? void 0);
|
|
202
202
|
mappings.push({
|
|
203
203
|
fromColumn,
|
|
204
204
|
toColumns,
|
|
@@ -432,7 +432,7 @@ function resolveSelectColumns(select, ctx) {
|
|
|
432
432
|
const columns = /* @__PURE__ */ new Map();
|
|
433
433
|
for (const [index, columnAST] of select.columns.entries()) {
|
|
434
434
|
log("resolving column", columnAST);
|
|
435
|
-
const columnAlias = columnAST.as ??
|
|
435
|
+
const columnAlias = columnAST.as ?? void 0;
|
|
436
436
|
const indexedName = `_col${String(index)}`;
|
|
437
437
|
const columnRefs = extractColumnRefs(columnAST);
|
|
438
438
|
if (columnRefs.length !== 1) {
|
|
@@ -513,4 +513,4 @@ export {
|
|
|
513
513
|
checkAthenaAst,
|
|
514
514
|
offsetToLoc
|
|
515
515
|
};
|
|
516
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS92YWxpZGF0ZS50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFVQSxTQUFTLFVBQVUsY0FBYztBQUVqQyxPQUFPLFdBQVc7QUFDbEIsU0FBUyxnQkFBZ0I7QUFJekIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUywwQkFBc0Y7QUFDL0YsU0FBUywwQkFBMEI7QUFDbkM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BRUs7QUFFQSxJQUFNLGdCQUFnQjtBQUN0QixJQUFNLGVBQWU7QUFFckIsSUFBTSxjQUFOLGNBQTBCLE1BQU07QUFBQSxFQUM5QjtBQUFBLEVBQ0E7QUFBQSxFQUNQLFlBQVksTUFBYyxTQUFpQixLQUFjO0FBQ3ZELFVBQU0sT0FBTztBQUNiLFNBQUssT0FBTztBQUNaLFNBQUssT0FBTztBQUNaLFFBQUksUUFBUSxRQUFXO0FBQ3JCLFdBQUssTUFBTTtBQUFBLElBQ2I7QUFBQSxFQUNGO0FBQ0Y7QUFHTyxTQUFTLFlBQVksTUFBYyxRQUFrRDtBQUMxRixRQUFNLFNBQVMsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUNuQyxRQUFNLFFBQVEsT0FBTyxNQUFNLElBQUk7QUFDL0IsU0FBTyxFQUFFLE1BQU0sTUFBTSxRQUFRLFFBQVEsTUFBTSxNQUFNLFNBQVMsQ0FBQyxHQUFHLFVBQVUsRUFBRTtBQUM1RTtBQUVBLElBQU0sTUFBTSxNQUFNLHNCQUFzQjtBQUN4QyxJQUFNLGtCQUFrQjtBQUN4QixJQUFNLGlCQUFpQjtBQU12QixTQUFTLFlBQVksTUFBYyxRQUFzQixLQUE4QjtBQUNyRixTQUFPLFFBQVEsU0FBWSxFQUFFLE1BQU0sUUFBUSxJQUFJLElBQUksRUFBRSxN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
|
|
516
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS92YWxpZGF0ZS50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFVQSxTQUFTLFVBQVUsY0FBYztBQUVqQyxPQUFPLFdBQVc7QUFDbEIsU0FBUyxnQkFBZ0I7QUFJekIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUIsU0FBUywwQkFBc0Y7QUFDL0YsU0FBUywwQkFBMEI7QUFDbkM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BRUs7QUFFQSxJQUFNLGdCQUFnQjtBQUN0QixJQUFNLGVBQWU7QUFFckIsSUFBTSxjQUFOLGNBQTBCLE1BQU07QUFBQSxFQUM5QjtBQUFBLEVBQ0E7QUFBQSxFQUNQLFlBQVksTUFBYyxTQUFpQixLQUFjO0FBQ3ZELFVBQU0sT0FBTztBQUNiLFNBQUssT0FBTztBQUNaLFNBQUssT0FBTztBQUNaLFFBQUksUUFBUSxRQUFXO0FBQ3JCLFdBQUssTUFBTTtBQUFBLElBQ2I7QUFBQSxFQUNGO0FBQ0Y7QUFHTyxTQUFTLFlBQVksTUFBYyxRQUFrRDtBQUMxRixRQUFNLFNBQVMsS0FBSyxNQUFNLEdBQUcsTUFBTTtBQUNuQyxRQUFNLFFBQVEsT0FBTyxNQUFNLElBQUk7QUFDL0IsU0FBTyxFQUFFLE1BQU0sTUFBTSxRQUFRLFFBQVEsTUFBTSxNQUFNLFNBQVMsQ0FBQyxHQUFHLFVBQVUsRUFBRTtBQUM1RTtBQUVBLElBQU0sTUFBTSxNQUFNLHNCQUFzQjtBQUN4QyxJQUFNLGtCQUFrQjtBQUN4QixJQUFNLGlCQUFpQjtBQU12QixTQUFTLFlBQVksTUFBYyxRQUFzQixLQUE4QjtBQUNyRixTQUFPLFFBQVEsU0FBWSxFQUFFLE1BQU0sUUFBUSxJQUFJLElBQUksRUFBRSxN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
|
|
@@ -79,7 +79,7 @@ var hasSideEffects = (statement, excludedIdentifiers) => {
|
|
|
79
79
|
if (isAssignmentExpression(statement)) {
|
|
80
80
|
return TSESTree.AST_NODE_TYPES.AssignmentExpression;
|
|
81
81
|
}
|
|
82
|
-
return
|
|
82
|
+
return void 0;
|
|
83
83
|
};
|
|
84
84
|
var createRule = ESLintUtils.RuleCreator(
|
|
85
85
|
(name) => getDocumentationUrl(name)
|
|
@@ -121,7 +121,7 @@ var rule = createRule({
|
|
|
121
121
|
}
|
|
122
122
|
node.body.forEach((statement) => {
|
|
123
123
|
const sideEffectType = hasSideEffects(statement, excludedIdentifiers);
|
|
124
|
-
if (sideEffectType !==
|
|
124
|
+
if (sideEffectType !== void 0) {
|
|
125
125
|
context.report({
|
|
126
126
|
node: statement,
|
|
127
127
|
messageId: NO_SIDE_EFFECTS,
|
|
@@ -140,4 +140,4 @@ export {
|
|
|
140
140
|
no_side_effects_default as default,
|
|
141
141
|
ruleId
|
|
142
142
|
};
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL25vLXNpZGUtZWZmZWN0cy50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLGdCQUFnQjtBQUN6QixPQUFPLHlCQUF5QjtBQU16QixJQUFNLFNBQVM7QUFDdEIsSUFBTSxrQkFBa0I7QUFLeEIsSUFBTSx3QkFBd0IsQ0FBQyxTQUM3QixLQUFLLFNBQVMsU0FBUyxlQUFlO0FBR3hDLElBQU0sb0JBQW9CLENBQUMsY0FDekIsc0JBQXNCLFNBQVMsS0FBSyxVQUFVLFdBQVcsU0FBUyxTQUFTLGVBQWU7QUFHNUYsSUFBTSx1Q0FBdUMsQ0FBQyxTQUM1QyxLQUFLLFNBQVMsU0FBUyxlQUFlLHVCQUN0QyxLQUFLLGFBQWEsU0FBUyxLQUMzQixLQUFLLGFBQWEsQ0FBQyxFQUFFLE1BQU0sU0FBUyxTQUFTLGVBQWU7QUFHOUQsSUFBTSxnQ0FBZ0MsQ0FBQyxTQUNyQyxLQUFLLFNBQVMsU0FBUyxlQUFlLHVCQUF1QixLQUFLLFNBQVMsV0FBVyxLQUFLLFNBQVM7QUFHdEcsSUFBTSx5QkFBeUIsQ0FBQyxTQUM5QjtBQUFBLEVBQ0UsU0FBUyxlQUFlO0FBQUEsRUFDeEIsU0FBUyxlQUFlO0FBQUEsRUFDeEIsU0FBUyxlQUFlO0FBQUEsRUFDeEIsU0FBUyxlQUFlO0FBQUEsRUFDeEIsU0FBUyxlQUFlO0FBQUEsRUFDeEIsU0FBUyxlQUFlO0FBQzFCLEVBQUUsU0FBUyxLQUFLLElBQUk7QUFHdEIsSUFBTSx5QkFBeUIsQ0FBQyxTQUM5QixLQUFLLFNBQVMsU0FBUyxlQUFlLHVCQUN0QyxLQUFLLFdBQVcsU0FBUyxTQUFTLGVBQWU7QUFLbkQsSUFBTSxxQkFBcUIsQ0FBQyxNQUErQix3QkFDekQsS0FBSyxPQUFPLFNBQVMsU0FBUyxlQUFlLGNBQWMsQ0FBQyxvQkFBb0IsU0FBUyxLQUFLLE9BQU8sSUFBSTtBQUczRyxJQUFNLDJCQUEyQixDQUFDLE1BQStCLHdCQUMvRCxLQUFLLE9BQU8sU0FBUyxTQUFTLGVB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
|
|
@@ -6,9 +6,9 @@ async function derefSchema(schemaFileName) {
|
|
|
6
6
|
const adjustedSchemaFileForDeref = schemaFile.replace(/"\$ref": ".*\/definitions\//gu, '"$ref": "#/definitions/');
|
|
7
7
|
const json = JSON.parse(adjustedSchemaFileForDeref);
|
|
8
8
|
const deref = await dereference(json);
|
|
9
|
-
await fs.writeFile(`${schemaFileName}.deref.json`, JSON.stringify(deref,
|
|
9
|
+
await fs.writeFile(`${schemaFileName}.deref.json`, JSON.stringify(deref, void 0, 2));
|
|
10
10
|
}
|
|
11
11
|
export {
|
|
12
12
|
derefSchema
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL29wZW5hcGkvZGVyZWYtc2NoZW1hLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsWUFBWSxVQUFVO0FBRS9CLFNBQVMsbUJBQW1CO0FBRTVCLGVBQXNCLFlBQVksZ0JBQXVDO0FBQ3ZFLFFBQU0sYUFBYSxNQUFNLEdBQUcsU0FBUyxHQUFHLGNBQWMsU0FBUyxPQUFPO0FBQ3RFLFFBQU0sNkJBQTZCLFdBQVcsUUFBUSxpQ0FBaUMseUJBQXlCO0FBRWhILFFBQU0sT0FBTyxLQUFLLE1BQU0sMEJBQTBCO0FBQ2xELFFBQU0sUUFBUSxNQUFNLFlBQVksSUFBSTtBQUNwQyxRQUFNLEdBQUcsVUFBVSxHQUFHLGNBQWMsZUFBZSxLQUFLLFVBQVUsT0FBTyxRQUFXLENBQUMsQ0FBQztBQUN4RjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -189,11 +189,11 @@ function getFirehoseLoggedExtension(obj) {
|
|
|
189
189
|
}
|
|
190
190
|
function buildApiSchemaFromDocument(document, organization, serviceName) {
|
|
191
191
|
if (document.paths === void 0) {
|
|
192
|
-
return
|
|
192
|
+
return void 0;
|
|
193
193
|
}
|
|
194
194
|
const serverUri = document.servers?.[0]?.url;
|
|
195
195
|
if (serverUri === void 0) {
|
|
196
|
-
return
|
|
196
|
+
return void 0;
|
|
197
197
|
}
|
|
198
198
|
const serverPathname = serverUri.startsWith("http") ? new URL(serverUri).pathname : serverUri;
|
|
199
199
|
const endpointSchemasBaseUri = `https://${serviceName}.${organization}${serverPathname}/schemas`;
|
|
@@ -247,7 +247,7 @@ async function generateEndpointSchemas(organization, serviceName, root, endpoint
|
|
|
247
247
|
const documentContents = await fs.readFile(`${root}/${endpoint}/swagger.yml`, "utf8");
|
|
248
248
|
const document = await jsYaml.load(documentContents);
|
|
249
249
|
const normalizedApiSchemas = buildApiSchemaFromDocument(document, organization, serviceName);
|
|
250
|
-
if (normalizedApiSchemas ===
|
|
250
|
+
if (normalizedApiSchemas === void 0) {
|
|
251
251
|
return;
|
|
252
252
|
}
|
|
253
253
|
const swaggerSchemaFilename = `${root}/${endpoint}/${SWAGGER_SCHEMA_FILENAME}`;
|
|
@@ -272,4 +272,4 @@ export {
|
|
|
272
272
|
generateSchemas,
|
|
273
273
|
generateSchemasForService
|
|
274
274
|
};
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL29wZW5hcGkvZ2VuZXJhdGUtc2NoZW1hLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsVUFBVSxjQUFjO0FBQ2pDLFNBQVMsWUFBWSxVQUFVO0FBRS9CLE9BQU8sV0FBVztBQUNsQixTQUFTLHVCQUF1QjtBQUNoQyxPQUFPLGFBQWE7QUFDcEIsT0FBTyxZQUFZO0FBS25CLFNBQVMsaUNBQWlDO0FBRG5DLElBQU0sY0FBYztBQUczQixJQUFNLE1BQU0sTUFBTSw2QkFBNkI7QUFFL0MsSUFBTSx3QkFBd0IsQ0FBQyxPQUFPLE9BQU8sUUFBUSxRQUFRLFNBQVMsU0FBUyxVQUFVLFNBQVM7QUFDbEcsSUFBTSw0QkFBNEI7QUFDbEMsSUFBTSxnREFBZ0Q7QUFDL0MsSUFBTSwwQkFBMEI7QUFrQ3ZDLFNBQVMscUJBQXFCLFFBQXlCO0FBQ3JELFNBQU8sQ0FBQyxRQUFRLE9BQU8sT0FBTyxFQUFFLFNBQVMsTUFBTTtBQUNqRDtBQUVBLFNBQVMsa0JBQWtCLFFBQWdEO0FBQ3pFLFNBQU8sT0FBTyxPQUFPLFFBQStCLE1BQU07QUFDNUQ7QUFFQSxTQUFTLFFBQVcsVUFBd0IsV0FBdUM7QUFDakYsTUFBSSxDQUFDLGtCQUFrQixTQUFTLEdBQUc7QUFDakMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLG1CQUFtQixVQUFVLEtBQUssTUFBTSxDQUFDO0FBQy9DLFFBQU0sb0JBQW9CLFFBQVEsSUFBSSxVQUFVLGdCQUFnQjtBQUNoRSxTQUFPLFFBQVEsVUFBVSxpQkFBaUI7QUFDNUM7QUFFQSxTQUFTLGNBQ1AsWUFDQSxVQUN1QjtBQUN2QixTQUFPLFdBQVcsSUFBSSxDQUFDLGNBQWMsUUFBUSxVQUFVLFNBQVMsQ0FBQztBQUNuRTtBQUVBLFNBQVMsMkJBQ1AsV0FDQSxlQUNBLFVBQzhCO0FBQzlCLE1BQUksVUFBVSxlQUFlLFFBQVc7QUFDdEM7QUFBQSxFQUNGO0FBRUEsUUFBTSxhQUFhLGNBQWMsVUFBVSxZQUFZLFFBQVEsRUFB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
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL29wZW5hcGkvZ2VuZXJhdGUtc2NoZW1hLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsVUFBVSxjQUFjO0FBQ2pDLFNBQVMsWUFBWSxVQUFVO0FBRS9CLE9BQU8sV0FBVztBQUNsQixTQUFTLHVCQUF1QjtBQUNoQyxPQUFPLGFBQWE7QUFDcEIsT0FBTyxZQUFZO0FBS25CLFNBQVMsaUNBQWlDO0FBRG5DLElBQU0sY0FBYztBQUczQixJQUFNLE1BQU0sTUFBTSw2QkFBNkI7QUFFL0MsSUFBTSx3QkFBd0IsQ0FBQyxPQUFPLE9BQU8sUUFBUSxRQUFRLFNBQVMsU0FBUyxVQUFVLFNBQVM7QUFDbEcsSUFBTSw0QkFBNEI7QUFDbEMsSUFBTSxnREFBZ0Q7QUFDL0MsSUFBTSwwQkFBMEI7QUFrQ3ZDLFNBQVMscUJBQXFCLFFBQXlCO0FBQ3JELFNBQU8sQ0FBQyxRQUFRLE9BQU8sT0FBTyxFQUFFLFNBQVMsTUFBTTtBQUNqRDtBQUVBLFNBQVMsa0JBQWtCLFFBQWdEO0FBQ3pFLFNBQU8sT0FBTyxPQUFPLFFBQStCLE1BQU07QUFDNUQ7QUFFQSxTQUFTLFFBQVcsVUFBd0IsV0FBdUM7QUFDakYsTUFBSSxDQUFDLGtCQUFrQixTQUFTLEdBQUc7QUFDakMsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLG1CQUFtQixVQUFVLEtBQUssTUFBTSxDQUFDO0FBQy9DLFFBQU0sb0JBQW9CLFFBQVEsSUFBSSxVQUFVLGdCQUFnQjtBQUNoRSxTQUFPLFFBQVEsVUFBVSxpQkFBaUI7QUFDNUM7QUFFQSxTQUFTLGNBQ1AsWUFDQSxVQUN1QjtBQUN2QixTQUFPLFdBQVcsSUFBSSxDQUFDLGNBQWMsUUFBUSxVQUFVLFNBQVMsQ0FBQztBQUNuRTtBQUVBLFNBQVMsMkJBQ1AsV0FDQSxlQUNBLFVBQzhCO0FBQzlCLE1BQUksVUFBVSxlQUFlLFFBQVc7QUFDdEM7QUFBQSxFQUNGO0FBRUEsUUFBTSxhQUFhLGNBQWMsVUFBVSxZQUFZLFFBQVEsRUFBRTtBQUFBLElBQy9ELENBQUMsY0FBYyxVQUFVLE9BQU87QUFBQSxFQUNsQztBQUNBLE1BQUksV0FBVyxXQUFXLEdBQUc7QUFDM0I7QUFBQSxFQUNGO0FBRUEsUUFBTSxtQkFBbUIsT0FBTztBQUFBLElBQzlCLFdBQVcsSUFBSSxDQUFDLGNBQWM7QUFBQSxNQUM1QixrQkFBa0IsV0FBVyxVQUFVLEtBQUssWUFBWSxJQUFJLFVBQVU7QUFBQSxNQUN0RSxVQUFVLFVBQVUsRUFBRSxNQUFNLFNBQWtCO0FBQUEsSUFDaEQsQ0FBQztBQUFBLEVBQ0g7QUFDQSxRQUFNLHlCQUF5QixXQUM1QixPQUFPLENBQUMsY0FBYyxVQUFVLGFBQWEsSUFBSSxFQUNqRCxJQUFJLENBQUMsY0FBYyxVQUFVLElBQUk7QUFDcEMsUUFBTSxTQUEyQjtBQUFBLElBQy9CLE1BQU07QUFBQTtBQUFBLElBRU4sc0JBQXNCLGtCQUFrQjtBQUFBLElBQ3hDLFlBQVk7QUFBQSxJQUNaLEdBQUksdUJBQXVCLFNBQVMsSUFBSSxFQUFFLFVBQVUsdUJBQXVCLElBQUksQ0FBQztBQUFBLEVBQ2xGO0FBQ0EsU0FBTztBQUNUO0FBRUEsU0FBUyxjQUFjLFVBQXlGO0FBQzlHLFFBQU0sU0FBUyxPQUFPLE9BQU8sWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUc7QUFDakQsU0FBTyxXQUFXLFVBQWEsT0FBTyxLQUFLLE1BQU0sRUFBRSxTQUFTLElBQUksU0FBUztBQUMzRTtBQUVBLFNBQVMscUJBQXFCLFdBQWdDLFVBQXdCO0FBQ3BGLE1BQUksQ0FBQyxPQUFPLE9BQU8sV0FBVyxhQUFhLEdBQUc7QUFDNUMsV0FBTztBQUFBLE1BQ0wsdUJBQXVCO0FBQUEsTUFDdkIsbUJBQW1CO0FBQUEsSUFDckI7QUFBQSxFQUNGO0FBRUEsUUFBTSxjQUFjLFFBQVEsVUFBVSxVQUFVLFdBQVc7QUFDM0QsU0FBTztBQUFBLElBQ0wsdUJBQXVCLGFBQWE7QUFBQSxJQUNwQyxtQkFBbUIsY0FBYyxhQUFhLE9BQU87QUFBQSxFQUN2RDtBQUNGO0FBRUEsU0FBUyx3QkFDUCxRQUNBLFdBQ0EsYUFDQSxVQUNBLG1CQUNBO0FBQ0EsUUFBTSw4QkFBOEIsMkJBQTJCLFdBQVcsUUFBUSxRQUFRO0FBQzFGLFFBQU0sK0JBQStCLDJCQUEyQixXQUFXLFNBQVMsUUFBUTtBQUM1RixRQUFNLHVCQUF1QiwyQkFBMkIsV0FBVyxVQUFVLFFBQVE7QUFFckYsUUFBTSxFQUFFLG1CQUFtQixzQkFBc0IsSUFBSSxxQkFBcUIsV0FBVyxRQUFRO0FBQzdGLE1BQUksc0JBQXNCLFVBQWEsQ0FBQyxxQkFBcUIsTUFBTSxHQUFHO0FBQ3BFLFVBQU0sSUFBSSxNQUFNLG1DQUFtQyxNQUFNLFNBQVM7QUFBQSxFQUNwRTtBQUVBLFFBQU0sNEJBQTRCLEdBQUcsV0FBVztBQUVoRCxRQUFNLHVCQUF1QjtBQUFBLElBQzNCLFNBQVM7QUFBQSxJQUNULEtBQUssR0FBRyxpQkFBaUIsSUFBSSx5QkFBeUI7QUFBQSxJQUN0RCxNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsTUFDVixHQUFJLDhCQUE4QixFQUFFLFFBQVEsNEJBQTRCLElBQUksQ0FBQztBQUFBLE1BQzdFLEdBQUksK0JBQStCLEVBQUUsUUFBUSw2QkFBNkIsSUFBSSxDQUFDO0FBQUEsTUFDL0UsU0FBUyx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsc0JBQXNCLEtBQUs7QUFBQSxNQUM5RSxHQUFJLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLElBQUksQ0FBQztBQUFBLElBQ3pEO0FBQUEsSUFDQSxVQUFVO0FBQUEsTUFDUixHQUFJLDZCQUE2QixXQUFXLENBQUMsUUFBUSxJQUFJLENBQUM7QUFBQSxNQUMxRCxHQUFJLDhCQUE4QixXQUFXLENBQUMsT0FBTyxJQUFJLENBQUM7QUFBQSxNQUMxRCxHQUFJLHNCQUFzQixXQUFXLENBQUMsU0FBUyxJQUFJLENBQUM7QUFBQSxNQUNwRCxHQUFJLDBCQUEwQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7QUFBQSxJQUNuRDtBQUFBLElBQ0Esc0JBQXNCO0FBQUEsRUFDeEI7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGtCQUFrQixRQUF3QjtBQUNqRCxTQUFPLFdBQVcsWUFBWSxZQUFZLGdCQUFnQixNQUFNLEVBQUUsV0FBVyxRQUFRLEVBQUU7QUFDekY7QUFFQSxTQUFTLHNCQUFzQixVQUE4QjtBQUMzRCxTQUFPLGNBQWMsU0FBUyxPQUFPO0FBQ3ZDO0FBRUEsU0FBUyx5QkFDUCxTQUNBLFVBQzhCO0FBQzlCLE1BQUksWUFBWSxVQUFhLE9BQU8sS0FBSyxPQUFPLEVBQUUsV0FBVyxHQUFHO0FBQzlELFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxrQkFBa0IsT0FBTztBQUFBLElBQzdCLE9BQU8sUUFBUSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxNQUFNLE1BQU0sQ0FBQyxLQUFLLFlBQVksR0FBRyxRQUFRLFVBQVUsTUFBTSxDQUFDLENBQUM7QUFBQSxFQUNqRztBQUNBLFFBQU0sd0JBQXdCLE9BQU87QUFBQSxJQUNuQyxPQUFPLFFBQVEsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sTUFBTSxNQUFNLENBQUMsTUFBTSxPQUFPLFVBQVUsRUFBRSxNQUFNLFNBQWtCLENBQUMsQ0FBQztBQUFBLEVBQzlHO0FBQ0EsUUFBTSxzQkFBc0IsT0FBTyxRQUFRLGVBQWUsRUFDdkQsT0FBTyxDQUFDLENBQUMsRUFBRSxNQUFNLE1BQU0sT0FBTyxhQUFhLElBQUksRUFDL0MsSUFBSSxDQUFDLENBQUMsSUFBSSxNQUFNLElBQUk7QUFDdkIsU0FBTztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sWUFBWTtBQUFBLElBQ1osR0FBSSxvQkFBb0IsV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsb0JBQW9CO0FBQUEsRUFDOUU7QUFDRjtBQUVBLFNBQVMsa0JBQ1AsUUFDQSxVQUNBLFVBQ0EsbUJBQ0EsYUFDQTtBQUNBLFFBQU0sbUJBQW1CLFFBQVEsVUFBVSxRQUFRO0FBQ25ELFFBQU0scUJBQXFCLHNCQUFzQixnQkFBZ0I7QUFDakUsUUFBTSx3QkFBd0IseUJBQXlCLGlCQUFpQixTQUFTLFFBQVE7QUFFekYsUUFBTSxhQUFhLEdBQUcsV0FBVyxXQUFXLGtCQUFrQixNQUFNLENBQUM7QUFDckUsU0FBTztBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1QsS0FBSyxHQUFHLGlCQUFpQixJQUFJLFVBQVU7QUFBQSxJQUN2QyxNQUFNO0FBQUEsSUFDTixZQUFZO0FBQUEsTUFDVixTQUFTLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxzQkFBc0IsS0FBSztBQUFBLE1BQy9FLEdBQUkscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsSUFBSSxDQUFDO0FBQUEsSUFDM0Q7QUFBQSxJQUNBLFVBQVU7QUFBQSxNQUNSLEdBQUksdUJBQXVCLGFBQWEsVUFBYSxzQkFBc0IsU0FBUyxTQUFTLElBQ3pGLENBQUMsU0FBUyxJQUNWLENBQUM7QUFBQSxNQUNMLEdBQUkscUJBQXFCLENBQUMsTUFBTSxJQUFJLENBQUM7QUFBQSxJQUN2QztBQUFBLElBQ0Esc0JBQXNCO0FBQUEsRUFDeEI7QUFDRjtBQUVBLFNBQVMsMEJBQ1AsV0FDQSxhQUNBLFVBQ0EsbUJBQ0E7QUFDQSxTQUFPLEdBQUcsVUFBVSxjQUFjLFFBQVcscUNBQXFDO0FBQ2xGLFNBQU8sT0FBTztBQUFBLElBQ1osT0FBTyxRQUFRLFVBQVUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsUUFBUSxNQUFNO0FBQUEsTUFDOUQsT0FBTyxZQUFZO0FBQUEsTUFDbkIsa0JBQWtCLE9BQU8sWUFBWSxHQUFHLFVBQVUsVUFBVSxtQkFBbUIsV0FBVztBQUFBLElBQzVGLENBQUM7QUFBQSxFQUNIO0FBQ0Y7QUFFQSxTQUFTLGVBQ1AsTUFDQSxRQUNBLFdBQ0EsY0FDUTtBQUNSLFFBQU0sa0JBQWtCLFVBQVUsZUFBZSxHQUFHLElBQUksSUFBSSxNQUFNO0FBQ2xFLFFBQU0sUUFBUSxnQkFBZ0IsTUFBTSxRQUFRO0FBRTVDLFFBQU0sY0FBYyxNQUNqQixPQUFPLENBQUMsU0FBUyxLQUFLLEtBQUssTUFBTSxNQUFNLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxFQUM1RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksS0FBSyxFQUFFLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQy9ELEtBQUssRUFBRTtBQUNWLE1BQUksQ0FBQyxhQUFhLElBQUksV0FBVyxHQUFHO0FBQ2xDLFdBQU87QUFBQSxFQUNUO0FBR0EsTUFBSSxtQkFBbUI7QUFDdkIsU0FBTyxhQUFhLElBQUksR0FBRyxXQUFXLEdBQUcsaUJBQWlCLFNBQVMsQ0FBQyxFQUFFLEdBQUc7QUFDdkUsd0JBQW9CO0FBQUEsRUFDdEI7QUFDQSxTQUFPLEdBQUcsV0FBVyxHQUFHLGlCQUFpQixTQUFTLENBQUM7QUFDckQ7QUFFQSxTQUFTLHlDQUNQLE9BQ0Esc0NBQ0EsS0FDUztBQUNULE1BQUksT0FBTyxVQUFVLFlBQVksUUFBUSxVQUFVLE1BQU0sV0FBVyw2Q0FBNkMsR0FBRztBQUNsSCxXQUFPLE1BQU0sUUFBUSwrQ0FBK0Msb0NBQW9DO0FBQUEsRUFDMUc7QUFFQSxNQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsV0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLHlDQUF5QyxNQUFNLG9DQUFvQyxDQUFDO0FBQUEsRUFDakg7QUFFQSxNQUFJLE9BQU8sVUFBVSxZQUFZLFVBQVUsTUFBTTtBQUMvQyxXQUFPLE9BQU87QUFBQSxNQUNaLE9BQU8sUUFBUSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsVUFBVSxVQUFVLE1BQU07QUFBQSxRQUNwRDtBQUFBLFFBQ0EseUNBQXlDLFlBQVksc0NBQXNDLFFBQVE7QUFBQSxNQUNyRyxDQUFDO0FBQUEsSUFDSDtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLDJCQUEyQixLQUFzQjtBQUN4RCxRQUFNLFNBQVM7QUFDZixTQUFPLE9BQU8sbUJBQW1CLEtBQUssT0FBTyxrQkFBa0I7QUFDakU7QUFFQSxTQUFTLDJCQUNQLFVBQ0EsY0FDQSxhQUN3QjtBQUN4QixNQUFJLFNBQVMsVUFBVSxRQUFXO0FBQ2hDLFdBQU87QUFBQSxFQUNUO0FBQ0EsUUFBTSxZQUFZLFNBQVMsVUFBVSxDQUFDLEdBQUc7QUFDekMsTUFBSSxjQUFjLFFBQVc7QUFDM0IsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLGlCQUFpQixVQUFVLFdBQVcsTUFBTSxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUUsV0FBVztBQUNwRixRQUFNLHlCQUF5QixXQUFXLFdBQVcsSUFBSSxZQUFZLEdBQUcsY0FBYztBQUN0RixRQUFNLG9CQUFvQixHQUFHLHNCQUFzQjtBQUNuRCxRQUFNLGFBQStELENBQUM7QUFDdEUsUUFBTSxhQUF5QixFQUFFLE1BQU0sV0FBVztBQUNsRCxRQUFNLGVBQWUsb0JBQUksSUFBWTtBQUNyQyxRQUFNLHlCQUF5QiwyQkFBMkIsUUFBUTtBQUNsRSxNQUFJLGtDQUFrQyxzQkFBc0I7QUFFNUQsYUFBVyxDQUFDLE1BQU0sU0FBUyxLQUFLLE9BQU8sUUFBUSxTQUFTLEtBQUssR0FBRztBQUU5RCxVQUFNLFVBQVUsS0FBSyxXQUFXLHlCQUF5QixXQUFXO0FBQ3BFLFVBQU0sY0FBZ0QsQ0FBQztBQUN2RCxlQUFXLEdBQUcsY0FBYyxHQUFHLE9BQU8sRUFBRSxJQUFJO0FBRTVDLGVBQVcsVUFBVSx1QkFBdUI7QUFDMUMsWUFBTSxZQUFZLFlBQVksTUFBTTtBQUNwQyxVQUFJLGNBQWMsUUFBVztBQUMzQixjQUFNLDBCQUEwQiwyQkFBMkIsU0FBUztBQUNwRSxZQUFJLG1DQUFtQyx1QkFBdUI7QUFDOUQsY0FBTSwwQkFBMEIsMkJBQTJCO0FBQzNELFlBQUksNEJBQTRCLE1BQU07QUFDcEM7QUFBQSxRQUNGO0FBQ0EsY0FBTSxjQUFjLGVBQWUsTUFBTSxRQUFRLFdBQVcsWUFBWTtBQUN4RSxxQkFBYSxJQUFJLFdBQVc7QUFDNUIsb0JBQVksTUFBTSxJQUFJO0FBQUEsVUFDcEIsU0FBUyx3QkFBd0IsUUFBUSxXQUFXLGFBQWEsVUFBVSxpQkFBaUI7QUFBQSxVQUM1RixXQUFXLDBCQUEwQixXQUFXLGFBQWEsVUFBVSxpQkFBaUI7QUFBQSxRQUMxRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUVBLE1BQUksU0FBUyxZQUFZLFlBQVksUUFBVztBQUM5QyxlQUFXLGNBQWMsT0FBTztBQUFBLE1BQzlCLE9BQU8sUUFBUSxTQUFTLFdBQVcsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sTUFBTSxNQUFNO0FBQUEsUUFDbEU7QUFBQSxRQUNBLEVBQUUsU0FBUywyQkFBMkIsS0FBSyxHQUFHLHNCQUFzQixnQkFBZ0IsSUFBSSxJQUFJLEdBQUcsT0FBTztBQUFBLE1BQ3hHLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUVBLFFBQU0sdUNBQXVDLEdBQUcsY0FBYztBQUM5RCxTQUFPO0FBQUEsSUFDTCxnQkFBZ0IsVUFBVTtBQUFBLElBQzFCO0FBQUEsRUFDRjtBQUNGO0FBRU8sU0FBUyx1QkFDZCxhQUNBLGNBQ0EsYUFDd0I7QUFFeEIsUUFBTSxXQUFXLE9BQU8sS0FBSyxXQUFXO0FBQ3hDLFNBQU8sMkJBQTJCLFVBQVUsY0FBYyxXQUFXO0FBQ3ZFO0FBRUEsZUFBZSx3QkFDYixjQUNBLGFBQ0EsTUFDQSxVQUNlO0FBQ2YsUUFBTSxtQkFBbUIsTUFBTSxHQUFHLFNBQVMsR0FBRyxJQUFJLElBQUksUUFBUSxnQkFBZ0IsTUFBTTtBQUVwRixRQUFNLFdBQVksTUFBTSxPQUFPLEtBQUssZ0JBQWdCO0FBQ3BELFFBQU0sdUJBQXVCLDJCQUEyQixVQUFVLGNBQWMsV0FBVztBQUMzRixNQUFJLHlCQUF5QixRQUFXO0FBQ3RDO0FBQUEsRUFDRjtBQUNBLFFBQU0sd0JBQXdCLEdBQUcsSUFBSSxJQUFJLFFBQVEsSUFBSSx1QkFBdUI7QUFDNUUsUUFBTSxHQUFHLFVBQVUsdUJBQXVCLEtBQUssVUFBVSxzQkFBc0IsUUFBVyxDQUFDLENBQUM7QUFDNUYsTUFBSSxvQkFBb0IscUJBQXFCLEVBQUU7QUFDakQ7QUFFQSxlQUFzQixrQkFBaUM7QUFDckQsUUFBTSx5QkFBeUIsTUFBTSxHQUFHLFNBQVMsa0JBQWtCLE1BQU07QUFDekUsUUFBTSxjQUFjLEtBQUssTUFBTSxzQkFBc0I7QUFXckQsUUFBTSxDQUFDLGNBQWMsV0FBVyxJQUFJLFlBQVksS0FBSyxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUc7QUFDdkUsU0FBTyxHQUFHLGlCQUFpQixVQUFhLGdCQUFnQixRQUFXLHNCQUFzQjtBQUV6RixRQUFNLFFBQVE7QUFBQSxJQUNaLFlBQVksUUFBUSxJQUFJLFVBQVU7QUFBQSxNQUFJLENBQUMsYUFDckMsd0JBQXdCLGNBQWMsYUFBYSxZQUFZLFFBQVEsSUFBSSxNQUFNLFFBQVE7QUFBQSxJQUMzRjtBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -40,15 +40,15 @@ function readServiceConfig(packageJsonContent, org, serviceName) {
|
|
|
40
40
|
const apiRoot = packageJson.service?.api?.root;
|
|
41
41
|
const apiEndpoints = packageJson.service?.api?.endpoints;
|
|
42
42
|
if (apiRoot === void 0 || apiEndpoints === void 0 || apiEndpoints.length === 0) {
|
|
43
|
-
return
|
|
43
|
+
return void 0;
|
|
44
44
|
}
|
|
45
45
|
const [pkgOrg = org, pkgServiceName = serviceName] = packageJson.name?.slice(1).split("/") ?? [];
|
|
46
46
|
return { organization: pkgOrg, serviceName: pkgServiceName, apiRoot, endpoints: apiEndpoints };
|
|
47
47
|
}
|
|
48
48
|
function findServiceLocally(serviceFolder, org, serviceName) {
|
|
49
49
|
const config = readServiceConfig(readFileSync(`${serviceFolder}/package.json`, "utf-8"), org, serviceName);
|
|
50
|
-
if (config ===
|
|
51
|
-
return
|
|
50
|
+
if (config === void 0) {
|
|
51
|
+
return void 0;
|
|
52
52
|
}
|
|
53
53
|
const endpoints = [];
|
|
54
54
|
for (const endpoint of config.endpoints) {
|
|
@@ -60,13 +60,13 @@ function findServiceLocally(serviceFolder, org, serviceName) {
|
|
|
60
60
|
if (endpoints.length > 0) {
|
|
61
61
|
return { organization: config.organization, serviceName: config.serviceName, endpoints };
|
|
62
62
|
}
|
|
63
|
-
return
|
|
63
|
+
return void 0;
|
|
64
64
|
}
|
|
65
65
|
function findServiceInProject(serviceName) {
|
|
66
66
|
const packageJson = JSON.parse(readFileSync("./package.json", "utf-8"));
|
|
67
67
|
const [org, projectName] = (packageJson.name ?? "").slice(1).split("/");
|
|
68
68
|
if (org === void 0 || projectName !== serviceName) {
|
|
69
|
-
return
|
|
69
|
+
return void 0;
|
|
70
70
|
}
|
|
71
71
|
log(`[schema-generator] '${serviceName}' is the current project, reading local swagger files`);
|
|
72
72
|
return findServiceLocally(".", org, serviceName);
|
|
@@ -81,7 +81,7 @@ function findServiceInNodeModules(serviceName) {
|
|
|
81
81
|
try {
|
|
82
82
|
log(`[schema-generator] found in node_modules: @${org}/${serviceName}, reading swagger files`);
|
|
83
83
|
const source = findServiceLocally(serviceFolder, org, serviceName);
|
|
84
|
-
if (source !==
|
|
84
|
+
if (source !== void 0) {
|
|
85
85
|
return source;
|
|
86
86
|
}
|
|
87
87
|
log(`[schema-generator] no swagger schema inside node_modules/@${org}/${serviceName}`);
|
|
@@ -89,12 +89,12 @@ function findServiceInNodeModules(serviceName) {
|
|
|
89
89
|
log(`[schema-generator] error reading node_modules/@${org}/${serviceName}: ${errorMessageFromError(error)}`);
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
|
-
return
|
|
92
|
+
return void 0;
|
|
93
93
|
}
|
|
94
94
|
function generateSchemasForService(serviceName, outputDir) {
|
|
95
95
|
log(`[schema-generator] locating service '${serviceName}'`);
|
|
96
96
|
const source = findServiceInProject(serviceName) ?? findServiceInNodeModules(serviceName);
|
|
97
|
-
if (source ===
|
|
97
|
+
if (source === void 0) {
|
|
98
98
|
log(
|
|
99
99
|
`[schema-generator] '${serviceName}' not found \u2014 ensure it is listed as a devDependency or the repo is accessible via git`
|
|
100
100
|
);
|
|
@@ -105,7 +105,7 @@ function generateSchemasForService(serviceName, outputDir) {
|
|
|
105
105
|
for (const { path: endpoint, yamlContent } of source.endpoints) {
|
|
106
106
|
try {
|
|
107
107
|
const rawSchema = buildApiSchemaFromYaml(yamlContent, source.organization, source.serviceName);
|
|
108
|
-
if (rawSchema ===
|
|
108
|
+
if (rawSchema === void 0) {
|
|
109
109
|
continue;
|
|
110
110
|
}
|
|
111
111
|
const schema = derefApiSchemas(rawSchema);
|
|
@@ -126,4 +126,4 @@ function generateSchemasForService(serviceName, outputDir) {
|
|
|
126
126
|
export {
|
|
127
127
|
generateSchemasForService
|
|
128
128
|
};
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL29wZW5hcGkvc2VydmljZS1zY2hlbWEtZ2VuZXJhdG9yLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsWUFBWSxXQUFXLGNBQWMscUJBQXFCO0FBRW5FLE9BQU8sV0FBVztBQUVsQixTQUEwQiw4QkFBOEI7QUFFeEQsSUFBTSxNQUFNLE1BQU0sK0NBQStDO0FBRWpFLElBQU0sdUJBQXVCLENBQUMsY0FBYyxtQkFBbUI7QUFDL0QsSUFBTSxnQ0FBZ0M7QUFFdEMsU0FBUyxzQkFBc0IsT0FBd0I7QUFDckQsU0FBTyxpQkFBaUIsUUFBUSxNQUFNLFVBQVUsT0FBTyxLQUFLO0FBQzlEO0FBYUEsU0FBUyxnQkFBZ0IsU0FBaUM7QUFDeEQsUUFBTSxjQUFjLFFBQVEsZUFBZSxDQUFDO0FBRTVDLFdBQVMsV0FBVyxPQUFnQixZQUF5QixvQkFBSSxJQUFZLEdBQVk7QUFDdkYsUUFBSSxVQUFVLFFBQVEsT0FBTyxVQUFVLFVBQVU7QUFDL0MsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsYUFBTyxNQUFNLElBQUksQ0FBQyxTQUFTLFdBQVcsTUFBTSxTQUFTLENBQUM7QUFBQSxJQUN4RDtBQUNBLFVBQU0sTUFBTTtBQUNaLFFBQUksT0FBTyxJQUFJLE1BQU0sTUFBTSxVQUFVO0FBQ25DLFlBQU0sVUFBVSxrQ0FBa0MsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLFNBQVMsTUFBTTtBQUNwRixVQUFJLFlBQVksVUFBYSxDQUFDLFVBQVUsSUFBSSxPQUFPLEdBQUc7QUFDcEQsZUFBTyxXQUFXLFlBQVksT0FBTyxHQUFHLG9CQUFJLElBQVksQ0FBQyxHQUFHLFdBQVcsT0FBTyxDQUFDLENBQUM7QUFBQSxNQUNsRjtBQUFBLElBQ0Y7QUFDQSxXQUFPLE9BQU8sWUFBWSxPQUFPLFFBQVEsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxXQUFXLEtB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
|
|
@@ -20,7 +20,7 @@ var checkPath = (filename, filePath) => {
|
|
|
20
20
|
return { fixedPath, isFixNeeded: true };
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
return { fixedPath:
|
|
23
|
+
return { fixedPath: void 0, isFixNeeded: false };
|
|
24
24
|
};
|
|
25
25
|
var rule = createRule({
|
|
26
26
|
name: ruleId,
|
|
@@ -43,7 +43,7 @@ var rule = createRule({
|
|
|
43
43
|
if (node.source !== null) {
|
|
44
44
|
const importPath = node.source.value;
|
|
45
45
|
const { fixedPath, isFixNeeded } = checkPath(filename, importPath);
|
|
46
|
-
if (isFixNeeded && fixedPath !==
|
|
46
|
+
if (isFixNeeded && fixedPath !== void 0) {
|
|
47
47
|
context.report({
|
|
48
48
|
loc: node.source.loc,
|
|
49
49
|
messageId: node.type === TSESTree.AST_NODE_TYPES.ImportDeclaration ? REQUIRE_TS_EXTENSION_IMPORTS : REQUIRE_TS_EXTENSION_EXPORTS,
|
|
@@ -72,4 +72,4 @@ export {
|
|
|
72
72
|
require_ts_extension_imports_exports_default as default,
|
|
73
73
|
ruleId
|
|
74
74
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3JlcXVpcmUtdHMtZXh0ZW5zaW9uLWltcG9ydHMtZXhwb3J0cy50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFRQSxPQUFPLFVBQVU7QUFDakIsT0FBTyxRQUFRO0FBQ2YsU0FBUyxtQkFBNkI7QUFDdEMsU0FBUyxnQkFBZ0I7QUFDekIsT0FBTyx5QkFBeUI7QUFFekIsSUFBTSxTQUFTO0FBQ3RCLElBQU0sK0JBQStCO0FBQ3JDLElBQU0sK0JBQStCO0FBRXJDLElBQU0sYUFBYSxZQUFZLFlBQVksQ0FBQyxTQUFTLG9CQUFvQixJQUFJLENBQUM7QUFFOUUsSUFBTSxZQUFZLENBQUMsVUFBa0IsYUFBOEU7QUFDakgsTUFBSSxTQUFTLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxTQUFTLEtBQUssS0FBSyxDQUFDLFNBQVMsU0FBUyxPQUFPLEdBQUc7QUFDeEYsVUFBTSxlQUFlLEtBQUssUUFBUSxLQUFLLFFBQVEsUUFBUSxHQUFHLFFBQVE7QUFDbEUsVUFBTSxTQUFTLEdBQUcsWUFBWTtBQUM5QixVQUFNLGFBQWEsQ0FBQyxjQUFjLE1BQU0sRUFBRSxLQUFLLEdBQUcsVUFBVTtBQUM1RCxRQUFJLGVBQWUsUUFBVztBQUM1QixZQUFNLFFBQVEsR0FBRyxTQUFTLFVBQVU7QUFDcEMsWUFBTSxjQUFjLE1BQU0sWUFBWTtBQUN0QyxZQUFNLFlBQVksY0FBYyxHQUFHLFFBQVEsY0FBYyxHQUFHLFFBQVE7QUFDcEUsYUFBTyxFQUFFLFdBQVcsYUFBYSxLQUFLO0FBQUEsSUFDeEM7QUFBQSxFQUNGO0FBQ0EsU0FBTyxFQUFFLFdBQVcsUUFBVyxhQUFhLE1BQU07QUFDcEQ7QUFFQSxJQUFNLE9BQStDLFdBQVc7QUFBQSxFQUM5RCxNQUFNO0FBQUEsRUFDTixNQUFNO0FBQUEsSUFDSixNQUFNO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsU0FBUztBQUFBLElBQ1QsUUFBUSxDQUFDO0FBQUEsSUFDVCxVQUFVO0FBQUEsTUFDUixDQUFDLDRCQUE0QixHQUFHO0FBQUEsTUFDaEMsQ0FBQyw0QkFBNEIsR0FBRztBQUFBLElBQ2xDO0FBQUEsRUFDRjtBQUFBLEVBQ0EsZ0JBQWdCLENBQUM7QUFBQSxFQUNqQixPQUFPLFNBQVM7QUFDZCxVQUFNLFdBQVcsUUFBUTtBQUV6QixVQUFNLG9CQUFvQixDQUN4QixTQUNHO0FBQ0gsVUFBSSxLQUFLLFdBQVcsTUFBTTtBQUN4QixjQUFNLGFBQWEsS0FBSyxPQUFPO0FBQy9CLGNBQU0sRUFBRSxXQUFXLFlBQVksSUFBSSxVQUFVLFVBQVUsVUFBVTtBQUNqRSxZQUFJLGVBQWUsY0FBYyxRQUFXO0FBQzFDLGtCQUFRLE9BQU87QUFBQSxZQUNiLEtBQUssS0FBSyxPQUFPO0FBQUEsWUFDakIsV0FDRSxLQUFLLFNBQVMsU0FBUyxlQUFlLG9CQUNsQywrQkFDQTtBQUFBLFlBQ04sQ0FBQyxJQUFJLE9BQU87QUFDVixvQkFBTSxNQUFNLFlBQVksS0FBSyxRQUFRLElBQUksU0FBUyxHQUFHO0FBQUEsWUFDdkQ7QUFBQSxVQUNGLENBQUM7QUFBQSxRQUNIO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFFQSxXQUFPO0FBQUEsTUFDTCxrQkFBa0IsTUFBTTtBQUN0QiwwQkFBa0IsSUFBSTtBQUFBLE1BQ3hCO0FBQUEsTUFDQSx1QkFBdUIsTUFBTTtBQUMzQiwwQkFBa0IsSUFBSTtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxxQkFBcUIsTUFBTTtBQUN6QiwwQkFBa0IsSUFBSTtBQUFBLE1BQ3hCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBRUQsSUFBTywrQ0FBUTsiLAogICJuYW1lcyI6IFtdCn0K
|
|
@@ -29,5 +29,5 @@ export interface ApiSchemas {
|
|
|
29
29
|
apis: Record<string, Record<string, OperationSchemas>>;
|
|
30
30
|
definitions?: Record<string, SchemaObject>;
|
|
31
31
|
}
|
|
32
|
-
export declare function buildApiSchemaFromYaml(yamlContent: string, organization: string, serviceName: string): ApiSchemas |
|
|
32
|
+
export declare function buildApiSchemaFromYaml(yamlContent: string, organization: string, serviceName: string): ApiSchemas | undefined;
|
|
33
33
|
export declare function generateSchemas(): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@checkdigit/eslint-plugin","version":"7.18.0-PR.143-
|
|
1
|
+
{"name":"@checkdigit/eslint-plugin","version":"7.18.0-PR.143-7dcb","description":"Check Digit eslint plugins","keywords":["eslint","eslintplugin"],"homepage":"https://github.com/checkdigit/eslint-plugin#readme","bugs":{"url":"https://github.com/checkdigit/eslint-plugin/issues"},"repository":{"type":"git","url":"https://github.com/checkdigit/eslint-plugin"},"license":"MIT","author":"Check Digit, LLC","sideEffects":false,"type":"module","exports":{".":{"types":"./dist-types/index.d.ts","import":"./dist-mjs/index.mjs","default":"./dist-mjs/index.mjs"}},"files":["src","dist-types","dist-mjs","!src/**/test/**","!src/**/*.test.ts","!src/**/*.spec.ts","!dist-types/**/test/**","!dist-types/**/*.test.d.ts","!dist-types/**/*.spec.d.ts","!dist-mjs/**/test/**","!dist-mjs/**/*.test.mjs","!dist-mjs/**/*.spec.mjs","SECURITY.md"],"scripts":{"build:dist-mjs":"rimraf dist-mjs && npx builder --type=module --sourceMap --outDir=dist-mjs && node dist-mjs/index.mjs","build:dist-types":"rimraf dist-types && npx builder --type=types --outDir=dist-types","ci:compile":"tsc --noEmit","ci:coverage":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=true","ci:lint":"npm run lint","ci:style":"npm run prettier","ci:test":"NODE_OPTIONS=\"--disable-warning ExperimentalWarning --experimental-vm-modules\" jest --coverage=false","lint":"eslint --max-warnings 0 .","lint:fix":"eslint --max-warnings 0 --fix .","peggy":"for file in ./src/peggy/*.peggy; do peggy \"$file\" --format es --output \"${file%.peggy}-peggy.ts\"; done","peggy-watch":"for file in ./src/peggy/*.peggy; do peggy \"$file\" --format=es --watch --output=\"${file%.peggy}-peggy.ts\"; done","prepare":"","prepublishOnly":"npm run build:dist-types && npm run build:dist-mjs","prettier":"prettier --ignore-path .gitignore --list-different .","prettier:fix":"prettier --ignore-path .gitignore --write .","test":"npm run ci:compile && npm run ci:test && npm run ci:lint && npm run ci:style"},"prettier":"@checkdigit/prettier-config","jest":{"preset":"@checkdigit/jest-config"},"dependencies":{"@apidevtools/json-schema-ref-parser":"^15.3.5","@typescript-eslint/type-utils":"^8.60.1","@typescript-eslint/utils":"^8.60.1","ajv":"^8.20.0","debug":"^4.4.3","glob":"^13.0.6","http-status-codes":"^2.3.0","js-yaml":"^4.2.0","json-pointer":"^0.6.2","jsonpath-plus":"^10.4.0","ts-api-utils":"^2.5.0"},"devDependencies":{"@checkdigit/jest-config":"^6.0.2","@checkdigit/prettier-config":"^6.1.0","@checkdigit/typescript-config":"10.0.0","@eslint/js":"^9.37.0","@types/debug":"^4.1.13","@types/eslint":"^9.6.1","@types/eslint-config-prettier":"^6.11.3","@types/js-yaml":"^4.0.9","@types/json-pointer":"^1.0.34","@typescript-eslint/parser":"^8.60.1","@typescript-eslint/rule-tester":"^8.60.1","eslint":"^9.37.0","eslint-config-prettier":"^10.1.8","eslint-import-resolver-typescript":"^4.4.5","eslint-plugin-eslint-plugin":"^6.4.0","eslint-plugin-import":"^2.32.0","eslint-plugin-no-only-tests":"^3.4.0","eslint-plugin-no-secrets":"^2.3.3","eslint-plugin-node":"^11.1.0","eslint-plugin-sonarjs":"^1.0.4","openapi-types":"^12.1.3","peggy":"^4.2.0","rimraf":"^6.1.3","typescript-eslint":"^8.60.1"},"peerDependencies":{"eslint":">=9 <10"},"engines":{"node":">=24.14.1"},"service":{"api":{"root":"src","endpoints":["api/v1"]}}}
|
|
@@ -52,8 +52,8 @@ function getColumnName(node: unknown): string | undefined {
|
|
|
52
52
|
return typeof column === 'string' ? column.toLowerCase() : undefined;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
function getColumnTable(node: unknown): string |
|
|
56
|
-
return getColumnRef(node)?.table;
|
|
55
|
+
function getColumnTable(node: unknown): string | undefined {
|
|
56
|
+
return getColumnRef(node)?.table ?? undefined;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
function getStringValue(node: unknown): string | undefined {
|
|
@@ -115,8 +115,8 @@ function isCardinalitySplitUrl(node: unknown): node is SqlFunction {
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
// Returns the table qualifier of the left-hand side of a matchable binary condition.
|
|
118
|
-
//
|
|
119
|
-
function getConditionTableQualifier(left: unknown): string |
|
|
118
|
+
// undefined means either unqualified (applies to every table) or indeterminate.
|
|
119
|
+
function getConditionTableQualifier(left: unknown): string | undefined {
|
|
120
120
|
const colName = getColumnName(left);
|
|
121
121
|
if (colName !== undefined) {
|
|
122
122
|
return getColumnTable(left);
|
|
@@ -124,13 +124,13 @@ function getConditionTableQualifier(left: unknown): string | null | undefined {
|
|
|
124
124
|
|
|
125
125
|
const splitArgs = getSplitUrlFunctionArgs(left, 'split') ?? getSplitUrlFunctionArgs(left, 'split_part');
|
|
126
126
|
if (splitArgs !== undefined) {
|
|
127
|
-
return getColumnTable(splitArgs[0])
|
|
127
|
+
return getColumnTable(splitArgs[0]);
|
|
128
128
|
}
|
|
129
129
|
if (isCardinalitySplitUrl(left)) {
|
|
130
130
|
const outerArgs = (rec(left)?.['args'] as { value?: unknown[] } | undefined)?.value;
|
|
131
131
|
const splitFn = rec(outerArgs?.[0]);
|
|
132
132
|
const innerArgs = (splitFn?.['args'] as { value?: unknown[] } | undefined)?.value;
|
|
133
|
-
return getColumnTable(innerArgs?.[0])
|
|
133
|
+
return getColumnTable(innerArgs?.[0]);
|
|
134
134
|
}
|
|
135
135
|
return undefined;
|
|
136
136
|
}
|
|
@@ -147,18 +147,18 @@ function buildPathSegmentPredicate(index: number, value: string): OperationPredi
|
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
149
|
|
|
150
|
-
// tableAlias: the alias (or
|
|
150
|
+
// tableAlias: the alias (or undefined if none) of the FROM-clause item we are currently matching.
|
|
151
151
|
// Conditions that explicitly reference a different alias are skipped (treated as ALWAYS_TRUE).
|
|
152
|
-
function buildLeafPredicate(node: Binary, tableAlias: string |
|
|
152
|
+
function buildLeafPredicate(node: Binary, tableAlias: string | undefined): OperationPredicate | undefined {
|
|
153
153
|
if (node.operator !== '=') {
|
|
154
154
|
return undefined;
|
|
155
155
|
}
|
|
156
156
|
const { left, right } = node;
|
|
157
157
|
|
|
158
158
|
const conditionTable = getConditionTableQualifier(left);
|
|
159
|
-
// conditionTable ===
|
|
160
|
-
// conditionTable === string
|
|
161
|
-
if (conditionTable !==
|
|
159
|
+
// conditionTable === undefined → unqualified or indeterminate, applies to all tables
|
|
160
|
+
// conditionTable === string → qualified; skip if it names a different alias
|
|
161
|
+
if (conditionTable !== undefined && tableAlias !== undefined && conditionTable !== tableAlias) {
|
|
162
162
|
return undefined;
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -207,7 +207,7 @@ function buildLeafPredicate(node: Binary, tableAlias: string | null): OperationP
|
|
|
207
207
|
return undefined;
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
-
function buildPredicate(expr: unknown, tableAlias: string |
|
|
210
|
+
function buildPredicate(expr: unknown, tableAlias: string | undefined): OperationPredicate {
|
|
211
211
|
const node = rec(expr);
|
|
212
212
|
if (node?.['type'] !== 'binary_expr') {
|
|
213
213
|
return ALWAYS_TRUE;
|
|
@@ -241,8 +241,8 @@ export function matchApi(
|
|
|
241
241
|
tableAST: object,
|
|
242
242
|
apiSchemas: ApiSchemas[],
|
|
243
243
|
): MatchedOperation[] | undefined {
|
|
244
|
-
const tableAlias = (tableAST as { as?: string | null }).as ??
|
|
245
|
-
const predicate = buildPredicate((selectAST as { where?: unknown }).where
|
|
244
|
+
const tableAlias = (tableAST as { as?: string | null }).as ?? undefined;
|
|
245
|
+
const predicate = buildPredicate((selectAST as { where?: unknown }).where, tableAlias);
|
|
246
246
|
|
|
247
247
|
const allOperations: OperationToMatch[] = apiSchemas
|
|
248
248
|
.flatMap((apiSchema) => Object.entries(apiSchema.apis))
|
package/src/athena/validate.ts
CHANGED
|
@@ -134,7 +134,7 @@ function resolveServiceTable(select: Select, item: BaseFrom, ctx: VisitContext,
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
// Returns the alias name for a ValuesFrom or a standalone UnnestFrom (UNNEST(fn(...))).
|
|
137
|
-
function getFunctionAliasName(as: { name: { name: { value: string }[] } } |
|
|
137
|
+
function getFunctionAliasName(as: { name: { name: { value: string }[] } } | undefined): string | undefined {
|
|
138
138
|
return as?.name.name[0]?.value;
|
|
139
139
|
}
|
|
140
140
|
|
|
@@ -179,7 +179,7 @@ function fromItemTableNames(item: From): string[] {
|
|
|
179
179
|
}
|
|
180
180
|
const unknownItem = item as unknown;
|
|
181
181
|
if (isStandaloneUnnest(unknownItem)) {
|
|
182
|
-
return aliasAsSingleton(getFunctionAliasName(unknownItem.as));
|
|
182
|
+
return aliasAsSingleton(getFunctionAliasName(unknownItem.as ?? undefined));
|
|
183
183
|
}
|
|
184
184
|
return [];
|
|
185
185
|
}
|
|
@@ -219,7 +219,7 @@ function resolveFromClause(select: Select, ctx: VisitContext): void {
|
|
|
219
219
|
const unknownItem = item as unknown;
|
|
220
220
|
if (isStandaloneUnnest(unknownItem)) {
|
|
221
221
|
// Standalone UNNEST(fn()) — register alias with declared column names (schema unknown).
|
|
222
|
-
const tableAlias = getFunctionAliasName(unknownItem.as);
|
|
222
|
+
const tableAlias = getFunctionAliasName(unknownItem.as ?? undefined);
|
|
223
223
|
if (tableAlias !== undefined) {
|
|
224
224
|
const columns = new Map(
|
|
225
225
|
(unknownItem.as?.args.value ?? []).map((columnRef) => {
|
|
@@ -287,7 +287,7 @@ function extractUnnestMappings(select: Select): UnnestMapping[] {
|
|
|
287
287
|
}
|
|
288
288
|
assert.ok(toColumns.length > 0, 'UNNEST alias must have at least one column name');
|
|
289
289
|
|
|
290
|
-
const tableAlias = getFunctionAliasName(item.as);
|
|
290
|
+
const tableAlias = getFunctionAliasName(item.as ?? undefined);
|
|
291
291
|
mappings.push({
|
|
292
292
|
fromColumn,
|
|
293
293
|
toColumns,
|
|
@@ -396,7 +396,7 @@ function applyUnnestPost(mappings: UnnestMapping[], columns: Map<string, Resolve
|
|
|
396
396
|
// ---------------------------------------------------------------------------
|
|
397
397
|
|
|
398
398
|
function resolveDefaultSchemaColumn(
|
|
399
|
-
columnAlias: string |
|
|
399
|
+
columnAlias: string | undefined,
|
|
400
400
|
indexedName: string,
|
|
401
401
|
columnAST: unknown,
|
|
402
402
|
columns: Map<string, ResolvedColumn[]>,
|
|
@@ -549,7 +549,7 @@ function validateComplexColumnExpression(columnAST: unknown, allTables: Resolved
|
|
|
549
549
|
|
|
550
550
|
function resolveSingleColumnRef(
|
|
551
551
|
columnAST: unknown,
|
|
552
|
-
columnAlias: string |
|
|
552
|
+
columnAlias: string | undefined,
|
|
553
553
|
indexedName: string,
|
|
554
554
|
ref: NonNullable<ReturnType<typeof extractColumnRefs>[number]>,
|
|
555
555
|
allTables: ResolvedTable[],
|
|
@@ -584,7 +584,7 @@ function resolveSingleColumnRef(
|
|
|
584
584
|
|
|
585
585
|
function applySchemaTypeOverride(
|
|
586
586
|
columnAST: unknown,
|
|
587
|
-
columnAlias: string |
|
|
587
|
+
columnAlias: string | undefined,
|
|
588
588
|
indexedName: string,
|
|
589
589
|
columns: Map<string, ResolvedColumn[]>,
|
|
590
590
|
predicate: (expression: unknown) => boolean,
|
|
@@ -620,7 +620,7 @@ function resolveSelectColumns(select: Select, ctx: VisitContext): Map<string, Re
|
|
|
620
620
|
for (const [index, columnAST] of select.columns.entries()) {
|
|
621
621
|
log('resolving column', columnAST);
|
|
622
622
|
|
|
623
|
-
const columnAlias = (columnAST as { as?: string | null }).as ??
|
|
623
|
+
const columnAlias = (columnAST as { as?: string | null }).as ?? undefined;
|
|
624
624
|
const indexedName = `_col${String(index)}`;
|
|
625
625
|
const columnRefs = extractColumnRefs(columnAST);
|
|
626
626
|
|
package/src/no-side-effects.ts
CHANGED
|
@@ -140,7 +140,7 @@ const isVariableDeclarationNewExpression = (node: TSESTree.Node): boolean => {
|
|
|
140
140
|
};
|
|
141
141
|
|
|
142
142
|
// Update the hasSideEffects function to return a string indicating the type of side effect
|
|
143
|
-
const hasSideEffects = (statement: TSESTree.Node, excludedIdentifiers: string[]): string |
|
|
143
|
+
const hasSideEffects = (statement: TSESTree.Node, excludedIdentifiers: string[]): string | undefined => {
|
|
144
144
|
if (isAwaitExpression(statement)) {
|
|
145
145
|
return TSESTree.AST_NODE_TYPES.AwaitExpression;
|
|
146
146
|
}
|
|
@@ -171,7 +171,7 @@ const hasSideEffects = (statement: TSESTree.Node, excludedIdentifiers: string[])
|
|
|
171
171
|
if (isAssignmentExpression(statement)) {
|
|
172
172
|
return TSESTree.AST_NODE_TYPES.AssignmentExpression;
|
|
173
173
|
}
|
|
174
|
-
return
|
|
174
|
+
return undefined;
|
|
175
175
|
};
|
|
176
176
|
|
|
177
177
|
const createRule: ReturnType<typeof ESLintUtils.RuleCreator> = ESLintUtils.RuleCreator((name) =>
|
|
@@ -220,7 +220,7 @@ const rule: ReturnType<typeof createRule> = createRule({
|
|
|
220
220
|
|
|
221
221
|
node.body.forEach((statement: TSESTree.Node) => {
|
|
222
222
|
const sideEffectType = hasSideEffects(statement, excludedIdentifiers);
|
|
223
|
-
if (sideEffectType !==
|
|
223
|
+
if (sideEffectType !== undefined) {
|
|
224
224
|
context.report({
|
|
225
225
|
node: statement,
|
|
226
226
|
messageId: NO_SIDE_EFFECTS,
|
|
@@ -10,5 +10,5 @@ export async function derefSchema(schemaFileName: string): Promise<void> {
|
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
11
11
|
const json = JSON.parse(adjustedSchemaFileForDeref);
|
|
12
12
|
const deref = await dereference(json);
|
|
13
|
-
await fs.writeFile(`${schemaFileName}.deref.json`, JSON.stringify(deref,
|
|
13
|
+
await fs.writeFile(`${schemaFileName}.deref.json`, JSON.stringify(deref, undefined, 2));
|
|
14
14
|
}
|
|
@@ -308,13 +308,13 @@ function buildApiSchemaFromDocument(
|
|
|
308
308
|
document: v31.Document,
|
|
309
309
|
organization: string,
|
|
310
310
|
serviceName: string,
|
|
311
|
-
): ApiSchemas |
|
|
311
|
+
): ApiSchemas | undefined {
|
|
312
312
|
if (document.paths === undefined) {
|
|
313
|
-
return
|
|
313
|
+
return undefined;
|
|
314
314
|
}
|
|
315
315
|
const serverUri = document.servers?.[0]?.url;
|
|
316
316
|
if (serverUri === undefined) {
|
|
317
|
-
return
|
|
317
|
+
return undefined;
|
|
318
318
|
}
|
|
319
319
|
const serverPathname = serverUri.startsWith('http') ? new URL(serverUri).pathname : serverUri;
|
|
320
320
|
const endpointSchemasBaseUri = `https://${serviceName}.${organization}${serverPathname}/schemas`;
|
|
@@ -370,7 +370,7 @@ export function buildApiSchemaFromYaml(
|
|
|
370
370
|
yamlContent: string,
|
|
371
371
|
organization: string,
|
|
372
372
|
serviceName: string,
|
|
373
|
-
): ApiSchemas |
|
|
373
|
+
): ApiSchemas | undefined {
|
|
374
374
|
// eslint-disable-next-line import/no-named-as-default-member
|
|
375
375
|
const document = jsYaml.load(yamlContent) as v31.Document;
|
|
376
376
|
return buildApiSchemaFromDocument(document, organization, serviceName);
|
|
@@ -386,7 +386,7 @@ async function generateEndpointSchemas(
|
|
|
386
386
|
// eslint-disable-next-line import/no-named-as-default-member
|
|
387
387
|
const document = (await jsYaml.load(documentContents)) as v31.Document;
|
|
388
388
|
const normalizedApiSchemas = buildApiSchemaFromDocument(document, organization, serviceName);
|
|
389
|
-
if (normalizedApiSchemas ===
|
|
389
|
+
if (normalizedApiSchemas === undefined) {
|
|
390
390
|
return;
|
|
391
391
|
}
|
|
392
392
|
const swaggerSchemaFilename = `${root}/${endpoint}/${SWAGGER_SCHEMA_FILENAME}`;
|
|
@@ -60,7 +60,7 @@ function readServiceConfig(
|
|
|
60
60
|
packageJsonContent: string,
|
|
61
61
|
org: string,
|
|
62
62
|
serviceName: string,
|
|
63
|
-
): { organization: string; serviceName: string; apiRoot: string; endpoints: string[] } |
|
|
63
|
+
): { organization: string; serviceName: string; apiRoot: string; endpoints: string[] } | undefined {
|
|
64
64
|
const packageJson = JSON.parse(packageJsonContent) as {
|
|
65
65
|
name?: string;
|
|
66
66
|
service?: { api?: { root?: string; endpoints?: string[] } };
|
|
@@ -68,16 +68,16 @@ function readServiceConfig(
|
|
|
68
68
|
const apiRoot = packageJson.service?.api?.root;
|
|
69
69
|
const apiEndpoints = packageJson.service?.api?.endpoints;
|
|
70
70
|
if (apiRoot === undefined || apiEndpoints === undefined || apiEndpoints.length === 0) {
|
|
71
|
-
return
|
|
71
|
+
return undefined;
|
|
72
72
|
}
|
|
73
73
|
const [pkgOrg = org, pkgServiceName = serviceName] = packageJson.name?.slice(1).split('/') ?? [];
|
|
74
74
|
return { organization: pkgOrg, serviceName: pkgServiceName, apiRoot, endpoints: apiEndpoints };
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
function findServiceLocally(serviceFolder: string, org: string, serviceName: string): ServiceSource |
|
|
77
|
+
function findServiceLocally(serviceFolder: string, org: string, serviceName: string): ServiceSource | undefined {
|
|
78
78
|
const config = readServiceConfig(readFileSync(`${serviceFolder}/package.json`, 'utf-8'), org, serviceName);
|
|
79
|
-
if (config ===
|
|
80
|
-
return
|
|
79
|
+
if (config === undefined) {
|
|
80
|
+
return undefined;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
const endpoints: ServiceEndpoint[] = [];
|
|
@@ -91,20 +91,20 @@ function findServiceLocally(serviceFolder: string, org: string, serviceName: str
|
|
|
91
91
|
if (endpoints.length > 0) {
|
|
92
92
|
return { organization: config.organization, serviceName: config.serviceName, endpoints };
|
|
93
93
|
}
|
|
94
|
-
return
|
|
94
|
+
return undefined;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
function findServiceInProject(serviceName: string): ServiceSource |
|
|
97
|
+
function findServiceInProject(serviceName: string): ServiceSource | undefined {
|
|
98
98
|
const packageJson = JSON.parse(readFileSync('./package.json', 'utf-8')) as { name?: string };
|
|
99
99
|
const [org, projectName] = (packageJson.name ?? '').slice(1).split('/');
|
|
100
100
|
if (org === undefined || projectName !== serviceName) {
|
|
101
|
-
return
|
|
101
|
+
return undefined;
|
|
102
102
|
}
|
|
103
103
|
log(`[schema-generator] '${serviceName}' is the current project, reading local swagger files`);
|
|
104
104
|
return findServiceLocally('.', org, serviceName);
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
function findServiceInNodeModules(serviceName: string): ServiceSource |
|
|
107
|
+
function findServiceInNodeModules(serviceName: string): ServiceSource | undefined {
|
|
108
108
|
for (const org of GITHUB_ORGANIZATIONS) {
|
|
109
109
|
const serviceFolder = `node_modules/@${org}/${serviceName}`;
|
|
110
110
|
if (!existsSync(serviceFolder)) {
|
|
@@ -114,7 +114,7 @@ function findServiceInNodeModules(serviceName: string): ServiceSource | null {
|
|
|
114
114
|
try {
|
|
115
115
|
log(`[schema-generator] found in node_modules: @${org}/${serviceName}, reading swagger files`);
|
|
116
116
|
const source = findServiceLocally(serviceFolder, org, serviceName);
|
|
117
|
-
if (source !==
|
|
117
|
+
if (source !== undefined) {
|
|
118
118
|
return source;
|
|
119
119
|
}
|
|
120
120
|
log(`[schema-generator] no swagger schema inside node_modules/@${org}/${serviceName}`);
|
|
@@ -122,7 +122,7 @@ function findServiceInNodeModules(serviceName: string): ServiceSource | null {
|
|
|
122
122
|
log(`[schema-generator] error reading node_modules/@${org}/${serviceName}: ${errorMessageFromError(error)}`);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
|
-
return
|
|
125
|
+
return undefined;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
export function generateSchemasForService(
|
|
@@ -132,7 +132,7 @@ export function generateSchemasForService(
|
|
|
132
132
|
log(`[schema-generator] locating service '${serviceName}'`);
|
|
133
133
|
|
|
134
134
|
const source = findServiceInProject(serviceName) ?? findServiceInNodeModules(serviceName);
|
|
135
|
-
if (source ===
|
|
135
|
+
if (source === undefined) {
|
|
136
136
|
log(
|
|
137
137
|
`[schema-generator] '${serviceName}' not found — ensure it is listed as a devDependency or the repo is accessible via git`,
|
|
138
138
|
);
|
|
@@ -145,7 +145,7 @@ export function generateSchemasForService(
|
|
|
145
145
|
for (const { path: endpoint, yamlContent } of source.endpoints) {
|
|
146
146
|
try {
|
|
147
147
|
const rawSchema = buildApiSchemaFromYaml(yamlContent, source.organization, source.serviceName);
|
|
148
|
-
if (rawSchema ===
|
|
148
|
+
if (rawSchema === undefined) {
|
|
149
149
|
continue;
|
|
150
150
|
}
|
|
151
151
|
const schema = derefApiSchemas(rawSchema);
|
|
@@ -18,7 +18,7 @@ const REQUIRE_TS_EXTENSION_EXPORTS = 'REQUIRE-TS-EXTENSION-EXPORTS';
|
|
|
18
18
|
|
|
19
19
|
const createRule = ESLintUtils.RuleCreator((name) => getDocumentationUrl(name));
|
|
20
20
|
|
|
21
|
-
const checkPath = (filename: string, filePath: string): { fixedPath: string |
|
|
21
|
+
const checkPath = (filename: string, filePath: string): { fixedPath: string | undefined; isFixNeeded: boolean } => {
|
|
22
22
|
if (filePath.startsWith('.') && !filePath.endsWith('.ts') && !filePath.endsWith('.json')) {
|
|
23
23
|
const absolutePath = path.resolve(path.dirname(filename), filePath);
|
|
24
24
|
const tsPath = `${absolutePath}.ts`;
|
|
@@ -30,7 +30,7 @@ const checkPath = (filename: string, filePath: string): { fixedPath: string | nu
|
|
|
30
30
|
return { fixedPath, isFixNeeded: true };
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
return { fixedPath:
|
|
33
|
+
return { fixedPath: undefined, isFixNeeded: false };
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
const rule: TSESLint.RuleModule<string, unknown[]> = createRule({
|
|
@@ -57,7 +57,7 @@ const rule: TSESLint.RuleModule<string, unknown[]> = createRule({
|
|
|
57
57
|
if (node.source !== null) {
|
|
58
58
|
const importPath = node.source.value;
|
|
59
59
|
const { fixedPath, isFixNeeded } = checkPath(filename, importPath);
|
|
60
|
-
if (isFixNeeded && fixedPath !==
|
|
60
|
+
if (isFixNeeded && fixedPath !== undefined) {
|
|
61
61
|
context.report({
|
|
62
62
|
loc: node.source.loc,
|
|
63
63
|
messageId:
|