@checkdigit/eslint-plugin 7.18.0-PR.143-b064 → 7.18.0-PR.143-b6d4

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.
Files changed (40) hide show
  1. package/dist-mjs/athena/athena.mjs +82 -36
  2. package/dist-mjs/athena/visitor.mjs +27 -1
  3. package/dist-mjs/openapi/service-schema-generator.mjs +26 -64
  4. package/dist-types/athena/visitor.d.ts +4 -0
  5. package/package.json +1 -1
  6. package/src/athena/athena.ts +93 -43
  7. package/src/athena/visitor.ts +28 -0
  8. package/src/openapi/service-schema-generator.ts +26 -74
  9. package/src/services/interchange/v1/swagger.schema.deref.json +16 -15
  10. package/src/services/ledger/v1/swagger.schema.deref.json +81 -81
  11. package/src/services/ledger/v2/swagger.schema.deref.json +4119 -0
  12. package/src/services/link/v1/swagger.schema.deref.json +13 -12
  13. package/src/services/link/{v1/swagger.schema.json → v2/swagger.schema.deref.json} +98 -28
  14. package/src/services/message/v1/swagger.schema.deref.json +731 -731
  15. package/src/services/message/v2/swagger.schema.deref.json +1017 -1017
  16. package/src/services/paymentCard/v1/swagger.schema.deref.json +248 -238
  17. package/src/services/paymentCard/v2/swagger.schema.deref.json +257 -274
  18. package/src/services/paymentCard/v3/swagger.schema.deref.json +2843 -0
  19. package/src/services/person/v1/swagger.schema.deref.json +111 -96
  20. package/src/services/person/v2/swagger.schema.deref.json +4931 -0
  21. package/src/services/teampayApproval/v1/swagger.schema.deref.json +2 -165
  22. package/src/services/teampayCardManagement/v1/swagger.schema.deref.json +220 -1768
  23. package/src/services/teampayClientManagement/v1/swagger.schema.deref.json +217 -217
  24. package/src/services/interchange/v1/swagger.schema.json +0 -423
  25. package/src/services/interchange/v1/swagger.yml +0 -414
  26. package/src/services/ledger/v1/swagger.schema.json +0 -1048
  27. package/src/services/ledger/v1/swagger.yml +0 -1094
  28. package/src/services/link/v1/swagger.yml +0 -343
  29. package/src/services/message/v1/swagger.schema.json +0 -2944
  30. package/src/services/message/v1/swagger.yml +0 -2798
  31. package/src/services/message/v2/swagger.schema.json +0 -3040
  32. package/src/services/message/v2/swagger.yml +0 -3009
  33. package/src/services/paymentCard/v1/swagger.schema.json +0 -1687
  34. package/src/services/paymentCard/v1/swagger.yml +0 -1161
  35. package/src/services/paymentCard/v2/swagger.schema.json +0 -1649
  36. package/src/services/paymentCard/v2/swagger.yml +0 -1149
  37. package/src/services/person/v1/swagger.schema.json +0 -979
  38. package/src/services/person/v1/swagger.yml +0 -1157
  39. package/src/services/teampayClientManagement/v1/swagger.schema.json +0 -1598
  40. package/src/services/teampayClientManagement/v1/swagger.yml +0 -1376
@@ -12,6 +12,8 @@ import {
12
12
  } from "./context.mjs";
13
13
  import { buildServiceTables } from "./service-table.mjs";
14
14
  import {
15
+ containsCastToArray,
16
+ containsCastToMap,
15
17
  containsLambda,
16
18
  extractBracketAccessorPath,
17
19
  extractColumnRefs,
@@ -166,48 +168,96 @@ function extractUnnestMappings(select) {
166
168
  }
167
169
  const fromColumn = typeof item.expr.column === "string" ? item.expr.column : void 0;
168
170
  assert.ok(fromColumn !== void 0, "UNNEST expr must be a column_ref with a string column name");
169
- const toColumn = item.as?.args.value[0];
170
- const toColName = toColumn !== void 0 && typeof toColumn.column === "string" ? toColumn.column : void 0;
171
- assert.ok(toColName !== void 0, "UNNEST alias must be a column_ref with a string column name");
172
- mappings.push({ fromColumn, toColumn: toColName, ast: item.expr });
171
+ const aliasArgs = item.as?.args.value ?? [];
172
+ const toColumns = [];
173
+ for (const col of aliasArgs) {
174
+ if (typeof col.column === "string") {
175
+ toColumns.push(col.column);
176
+ }
177
+ }
178
+ assert.ok(toColumns.length > 0, "UNNEST alias must have at least one column name");
179
+ mappings.push({ fromColumn, toColumns, ast: item.expr });
173
180
  }
174
181
  return mappings;
175
182
  }
176
183
  function applyUnnestPre(mappings, ctx) {
177
184
  const deferred = [];
178
- for (const { fromColumn, toColumn, ast } of mappings) {
185
+ for (const { fromColumn, toColumns, ast } of mappings) {
179
186
  const ownerTable = [...ctx.tables.values()].flat().find((table) => table.columns.has(fromColumn));
180
187
  if (ownerTable === void 0) {
181
- deferred.push({ fromColumn, toColumn, ast });
188
+ deferred.push({ fromColumn, toColumns, ast });
182
189
  continue;
183
190
  }
184
191
  const sourceColumns = ownerTable.columns.get(fromColumn) ?? [];
185
192
  const sourceSchema = sourceColumns[0]?.schema;
186
- if (sourceSchema?.type !== "array") {
187
- throw new AthenaError(ATHENA_ERROR, `UNNEST source column '${fromColumn}' must resolve to an array schema`, ast);
188
- }
189
193
  const unnestTableName = `${ownerTable.name ?? "<anonymous>"}:<unnested>`;
190
- ctx.tables.set(unnestTableName, [
191
- {
192
- name: unnestTableName,
193
- ...ownerTable.apiOperation !== void 0 ? { apiOperation: ownerTable.apiOperation } : {},
194
- columns: /* @__PURE__ */ new Map([[toColumn, [resolvedCol(toColumn, sourceSchema.items, sourceColumns[0]?.ast)]]])
195
- }
196
- ]);
194
+ const apiOperation = ownerTable.apiOperation !== void 0 ? { apiOperation: ownerTable.apiOperation } : {};
195
+ if (sourceSchema?.type === "array") {
196
+ const [toColumn] = toColumns;
197
+ assert.ok(toColumn !== void 0);
198
+ ctx.tables.set(unnestTableName, [
199
+ {
200
+ name: unnestTableName,
201
+ ...apiOperation,
202
+ columns: /* @__PURE__ */ new Map([[toColumn, [resolvedCol(toColumn, sourceSchema.items, sourceColumns[0]?.ast)]]])
203
+ }
204
+ ]);
205
+ } else if (sourceSchema?.type === "object") {
206
+ const [keyColumn, valueColumn] = toColumns;
207
+ assert.ok(
208
+ keyColumn !== void 0 && valueColumn !== void 0,
209
+ `UNNEST of map column '${fromColumn}' requires exactly two alias columns (key, value)`
210
+ );
211
+ const addlProps = sourceSchema["additionalProperties"];
212
+ const valueSchema = typeof addlProps === "object" && addlProps !== null ? addlProps : { type: "string" };
213
+ ctx.tables.set(unnestTableName, [
214
+ {
215
+ name: unnestTableName,
216
+ ...apiOperation,
217
+ columns: /* @__PURE__ */ new Map([
218
+ [keyColumn, [resolvedCol(keyColumn, { type: "string" }, sourceColumns[0]?.ast)]],
219
+ [valueColumn, [resolvedCol(valueColumn, valueSchema, sourceColumns[0]?.ast)]]
220
+ ])
221
+ }
222
+ ]);
223
+ } else {
224
+ throw new AthenaError(
225
+ ATHENA_ERROR,
226
+ `UNNEST source column '${fromColumn}' must resolve to an array or map schema`,
227
+ ast
228
+ );
229
+ }
197
230
  }
198
231
  return deferred;
199
232
  }
200
233
  function applyUnnestPost(mappings, columns) {
201
- for (const { fromColumn, toColumn, ast } of mappings) {
234
+ for (const { fromColumn, toColumns, ast } of mappings) {
202
235
  const sourceColumns = columns.get(fromColumn);
203
236
  if (sourceColumns === void 0) {
204
237
  throw new AthenaError(ATHENA_ERROR, `UNNEST source column '${fromColumn}' not found in SELECT`, ast);
205
238
  }
206
239
  const sourceSchema = sourceColumns[0]?.schema;
207
- if (sourceSchema?.type !== "array") {
208
- throw new AthenaError(ATHENA_ERROR, `UNNEST source column '${fromColumn}' must resolve to an array schema`, ast);
240
+ if (sourceSchema?.type === "array") {
241
+ const [toColumn] = toColumns;
242
+ assert.ok(toColumn !== void 0);
243
+ columns.set(toColumn, [resolvedCol(toColumn, sourceSchema.items, sourceColumns[0]?.ast)]);
244
+ } else if (sourceSchema?.type === "object") {
245
+ const [keyColumn, valueColumn] = toColumns;
246
+ assert.ok(
247
+ keyColumn !== void 0 && valueColumn !== void 0,
248
+ `UNNEST of map column '${fromColumn}' requires exactly two alias columns (key, value)`
249
+ );
250
+ const addlProps = sourceSchema["additionalProperties"];
251
+ const valueSchema = typeof addlProps === "object" && addlProps !== null ? addlProps : { type: "string" };
252
+ columns.set(keyColumn, [resolvedCol(keyColumn, { type: "string" }, sourceColumns[0]?.ast)]);
253
+ columns.set(valueColumn, [resolvedCol(valueColumn, valueSchema, sourceColumns[0]?.ast)]);
254
+ } else {
255
+ throw new AthenaError(
256
+ ATHENA_ERROR,
257
+ `UNNEST source column '${fromColumn}' must resolve to an array or map schema`,
258
+ ast
259
+ );
209
260
  }
210
- columns.set(toColumn, [resolvedCol(toColumn, sourceSchema.items, sourceColumns[0]?.ast)]);
211
261
  }
212
262
  }
213
263
  function resolveDefaultSchemaColumn(columnAlias, indexedName, columnAST, columns) {
@@ -347,20 +397,6 @@ function resolveSingleColumnRef(columnAST, columnAlias, indexedName, ref, allTab
347
397
  resolvedColumns.map((col) => resolvedCol(colName, col.schema, columnAST))
348
398
  );
349
399
  }
350
- function isCastToArray(node) {
351
- if (typeof node !== "object" || node === null) {
352
- return false;
353
- }
354
- const typed = node;
355
- if (typed["type"] === "cast") {
356
- const target = typed["target"]?.[0];
357
- return target?.dataType === "ARRAY";
358
- }
359
- if (typed["type"] === "expr") {
360
- return isCastToArray(typed["expr"]);
361
- }
362
- return false;
363
- }
364
400
  function resolveSelectColumns(select, ctx) {
365
401
  const allTables = [...ctx.tables.values()].flat();
366
402
  const columns = /* @__PURE__ */ new Map();
@@ -378,7 +414,7 @@ function resolveSelectColumns(select, ctx) {
378
414
  assert.ok(ref !== void 0);
379
415
  resolveSingleColumnRef(columnAST, columnAlias, indexedName, ref, allTables, ctx, columns);
380
416
  }
381
- if (isCastToArray(columnAST)) {
417
+ if (containsCastToArray(columnAST)) {
382
418
  const colName = columnAlias ?? indexedName;
383
419
  const existing = columns.get(colName);
384
420
  if (existing !== void 0 && existing[0]?.schema.type !== "array") {
@@ -388,6 +424,16 @@ function resolveSelectColumns(select, ctx) {
388
424
  );
389
425
  }
390
426
  }
427
+ if (containsCastToMap(columnAST)) {
428
+ const colName = columnAlias ?? indexedName;
429
+ const existing = columns.get(colName);
430
+ if (existing !== void 0 && existing[0]?.schema.type !== "object") {
431
+ columns.set(
432
+ colName,
433
+ existing.map((col) => resolvedCol(col.name, { type: "object" }, col.ast))
434
+ );
435
+ }
436
+ }
391
437
  }
392
438
  return columns;
393
439
  }
@@ -557,4 +603,4 @@ export {
557
603
  athena_default as default,
558
604
  ruleId
559
605
  };
560
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS9hdGhlbmEudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBVUEsU0FBUyxVQUFVLGNBQWM7QUFFakMsT0FBTyxXQUFXO0FBQ2xCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsZ0JBQWdCLG1CQUFrQztBQUczRCxTQUFTLGFBQWE7QUFFdEIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BSUs7QUFDUCxTQUFTLDBCQUEwQjtBQUNuQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBRUEsSUFBTSxTQUFTO0FBRXRCLElBQU0sTUFBTSxNQUFNLHNCQUFzQjtBQUN4QyxJQUFNLGFBQWEsWUFBWSxZQUFZLENBQUMsU0FBUyxJQUFJO0FBRXpELElBQU0sZ0JBQWdCO0FBQ3RCLElBQU0sZUFBZTtBQUVyQixJQUFNLGNBQU4sY0FBMEIsTUFBTTtBQUFBLEVBQ3ZCO0FBQUEsRUFDQTtBQUFBLEVBQ1AsWUFBWSxNQUFjLFNBQWlCLEtBQWM7QUFDdkQsVUFBTSxPQUFPO0FBQ2IsU0FBSyxPQUFPO0FBQ1osU0FBSyxPQUFPO0FBQ1osUUFBSSxRQUFRLFFBQVc7QUFDckIsV0FBSyxNQUFNO0FBQUEsSUFDYjtBQUFBLEVBQ0Y7QUFDRjtBQUdBLFNBQVMsWUFBWSxNQUFjLFFBQWtEO0FBQ25GLFFBQU0sU0FBUyxLQUFLLE1BQU0sR0FBRyxNQUFNO0FBQ25DLFFBQU0sUUFBUSxPQUFPLE1BQU0sSUFBSTtBQUMvQixTQUFPLEVBQUUsTUFBTSxNQUFNLFFBQVEsUUFBUSxNQUFNLE1BQU0sU0FBUyxDQUFDLEdBQUcsVUFBVSxFQUFFO0FBQzVFO0FBV0EsU0FBUyxnQkFBZ0IsU0FBNEM7QUFDbkUsTUFBSSxRQUFRLFNBQVMsZUFB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QUssU0FBUztBQUFBLE1BQzdELFNBQVMsT0FBTztBQUNkLFlBQUksNkJBQTZCLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDL0MsWUFBSSxpQkFBaUIsYUFBYTtBQUNoQyxnQkFBTSxTQUFVLE1BQU0sS0FDbEI7QUFDSixjQUFJLFdBQVcsUUFBVztBQUN4QixrQkFBTSxhQUFhLFFBQVEsV0FBVyxRQUFRO0FBQzlDLG9CQUFRLE9BQU87QUFBQSxjQUNiLEtBQUs7QUFBQSxnQkFDSCxPQUFPLFlBQVksWUFBWSxrQkFBa0IsT0FBTyxNQUFNLFFBQVEsVUFBVSxDQUFDO0FBQUEsZ0JBQ2pGLEtBQUssWUFBWSxZQUFZLGtCQUFrQixPQUFPLElBQUksUUFBUSxVQUFVLENBQUM7QUFBQSxjQUMvRTtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1gsTUFBTSxFQUFFLGNBQWMsTUFBTSxRQUFRO0FBQUEsWUFDdEMsQ0FBQztBQUFBLFVBQ0gsT0FBTztBQUNMLG9CQUFRLE9BQU87QUFBQSxjQUNiLE1BQU07QUFBQSxjQUNOLFdBQVc7QUFBQSxjQUNYLE1BQU0sRUFBRSxjQUFjLE1BQU0sUUFBUTtBQUFBLFlBQ3RDLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRixPQUFPO0FBRUwsa0JBQVEsTUFBTSxtQkFBbUIsTUFBTSxjQUFjLFFBQVEsUUFBUSxNQUFNLEtBQUs7QUFDaEYsa0JBQVEsT0FBTztBQUFBLFlBQ2IsTUFBTTtBQUFBLFlBQ04sV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osY0FBYyxpQkFBaUIsUUFBUSxPQUFPLEtBQUssSUFBSSxLQUFLLFVBQVUsT0FBTyxRQUFXLENBQUM7QUFBQSxZQUMzRjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLFdBQU87QUFBQSxNQUNMLGdCQUFnQixTQUFTO0FBQ3ZCLGNBQU0sTUFBTSxRQUFRLE9BQ2pCLElBQUksQ0FBQyxVQUFVLE1BQU0sTUFBTSxNQUFNLEVBQ2pDLEtBQUssRUFBRSxFQUNQLEtBQUs7QUFDUixpQkFBUyxLQUFLLE9BQU87QUFBQSxNQUN2QjtBQUFBLE1BQ0EsUUFBUSxTQUFTO0FBQ2YsWUFBSSxPQUFPLFFBQVEsVUFBVSxVQUFVO0FBQ3JDO0FBQUEsUUFDRjtBQUNBLGlCQUFTLFFBQVEsT0FBTyxPQUFPO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFFRCxJQUFPLGlCQUFROyIsCiAgIm5hbWVzIjogWyJhbGlhcyIsICJ0YWJsZU5hbWUiXQp9Cg==
606
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS9hdGhlbmEudHMiXSwKICAibWFwcGluZ3MiOiAiO0FBVUEsU0FBUyxVQUFVLGNBQWM7QUFFakMsT0FBTyxXQUFXO0FBQ2xCLFNBQVMsZ0JBQWdCO0FBQ3pCLFNBQVMsZ0JBQWdCLG1CQUFrQztBQUczRCxTQUFTLGFBQWE7QUFFdEIsU0FBUyxnQkFBZ0I7QUFDekIsU0FBUyxpQkFBaUI7QUFDMUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BSUs7QUFDUCxTQUFTLDBCQUEwQjtBQUNuQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFFQSxJQUFNLFNBQVM7QUFFdEIsSUFBTSxNQUFNLE1BQU0sc0JBQXNCO0FBQ3hDLElBQU0sYUFBYSxZQUFZLFlBQVksQ0FBQyxTQUFTLElBQUk7QUFFekQsSUFBTSxnQkFBZ0I7QUFDdEIsSUFBTSxlQUFlO0FBRXJCLElBQU0sY0FBTixjQUEwQixNQUFNO0FBQUEsRUFDdkI7QUFBQSxFQUNBO0FBQUEsRUFDUCxZQUFZLE1BQWMsU0FBaUIsS0FBYztBQUN2RCxVQUFNLE9BQU87QUFDYixTQUFLLE9BQU87QUFDWixTQUFLLE9BQU87QUFDWixRQUFJLFFBQVEsUUFBVztBQUNyQixXQUFLLE1BQU07QUFBQSxJQUNiO0FBQUEsRUFDRjtBQUNGO0FBR0EsU0FBUyxZQUFZLE1BQWMsUUFBa0Q7QUFDbkYsUUFBTSxTQUFTLEtBQUssTUFBTSxHQUFHLE1BQU07QUFDbkMsUUFBTSxRQUFRLE9BQU8sTUFBTSxJQUFJO0FBQy9CLFNBQU8sRUFBRSxNQUFNLE1BQU0sUUFBUSxRQUFRLE1BQU0sTUFBTSxTQUFTLENBQUMsR0FBRyxVQUFVLEVBQUU7QUFDNUU7QUFXQSxTQUFTLGdCQUFnQixTQUE0QztBQUNuRSxNQUFJLFFBQVEsU0FBUyxlQUFlLGlCQUFpQjtBQUVuRCxXQUFPLENBQUMsRUFBRSxVQUFVLEdBQUcsVUFBVSxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUFBLEVBQ3pEO0FBQ0EsUUFBTSxTQUFTLFFBQVEsT0FBTyxJQUFJLENBQUMsVUFBVSxNQUFNLE1BQU0sVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFO0FBQzlFLFFBQU0sWUFBWSxPQUFPLFNBQVMsT0FBTyxVQUFVLEVBQUU7QUFDckQsUUFBTSxXQUErQixDQUFDO0FBQ3RDLE1BQUksWUFBWTtBQUNoQixhQUFXLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxPQUFPLFFBQVEsR0FBRztBQUNyRCxVQUFNLFNBQVMsTUFBTSxNQUFNLFVBQVU7QUFDckMsVUFBTSxZQUFZLFVBQVUsSUFBSSxZQUFZO0FBRTVDLGFBQVMsS0FBSyxFQUFFLFVBQVUsV0FBVyxVQUFVLE1BQU0sTUFBTSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUM7QUFDL0UsaUJBQWEsT0FBTyxTQUFTO0FBQUEsRUFDL0I7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGtCQUFrQixXQUFtQixVQUFzQztBQUNsRixXQUFTLFFBQVEsU0FBUyxTQUFTLEdBQUcsU0FBUyxHQUFHLFNBQVM7QUFDekQsVUFBTSxNQUFNLFNBQVMsS0FBSztBQUMxQixRQUFJLFFBQVEsVUFBYSxhQUFhLElBQUksVUFBVTtBQUNsRCxhQUFPLElBQUksWUFBWSxZQUFZLElBQUk7QUFBQSxJQUN6QztBQUFBLEVBQ0Y7QUFDQSxTQUFPLFNBQVMsQ0FBQyxHQUFHLFlBQVk7QUFDbEM7QUFNQSxTQUFTLFlBQVksTUFBYyxRQUFzQixLQUE4QjtBQUNyRixTQUFPLFFBQVEsU0FBWSxFQUFFLE1BQU0sUUFBUSxJQUFJLElBQUksRUFBRSxNQUFNLE9BQU87QUFDcEU7QUFHQSxTQUFTLGNBQWMsYUFBcUIsS0FBbUI7QUFDN0QsTUFBSSxVQUFVLElBQUksV0FBVyxJQUFJLFdBQVc7QUFDNUMsTUFBSSxZQUFZLFFBQVc7QUFDekIsY0FBVSxVQUFVLFdBQVc7QUFDL0IsUUFBSSxXQUFXLElBQUksYUFBYSxPQUFPO0FBQUEsRUFDekM7QUFDQSxTQUFPO0FBQ1Q7QUFHQSxTQUFTLGFBQWEsYUFBcUIsS0FBb0M7QUFDN0UsUUFBTSxZQUFZLElBQUksUUFBUSxJQUFJLFdBQVcsS0FBSztBQUNsRCxTQUFPLElBQUksT0FBTyxJQUFJLFNBQVMsS0FBSyxDQUFDO0FBQ3ZDO0FBR0EsU0FBUyxnQkFBZ0IsUUFBd0I7QUFDL0MsTUFBSSxNQUFNLFFBQVEsT0FBTyxJQUFJLEdBQUc7QUFDOUIsV0FBTyxPQUFPO0FBQUEsRUFDaEI7QUFDQSxNQUFJLE9BQU8sU0FBUyxNQUFNO0FBQ3hCLFdBQU8sQ0FBQyxPQUFPLElBQUk7QUFBQSxFQUNyQjtBQUNBLFNBQU8sQ0FBQztBQUNWO0FBTUEsU0FBUyxvQkFBb0IsUUFBZ0IsTUFBZ0IsS0FBeUI7QUFDcEYsUUFBTSxFQUFFLE9BQU8sVUFBVSxJQUFJO0FBQzdCLE1BQUk7QUFDRixVQUFNLGFBQWEsY0FBYyxXQUFXLEdBQUc7QUFDL0MsUUFBSSxXQUFXLFdBQVcsR0FBRztBQUMzQixZQUFNLElBQUksWUFBWSxjQUFjLHVCQUF1QixTQUFTLGlDQUFpQyxJQUFJO0FBQUEsSUFDM0c7QUFDQSxVQUFNLGFBQWEsU0FBUyxRQUFRLE1BQU0sVUFBVSxLQUFLLENBQUM7QUFDMUQsUUFBSSxPQUFPLElBQUksV0FBVyxtQkFBbUIsV0FBVyxVQUFVLENBQUM7QUFBQSxFQUNyRSxTQUFTLE9BQU87QUFDZCxRQUFJLGlCQUFpQixhQUFhO0FBQ2hDLFlBQU07QUFBQSxJQUNSO0FBQ0EsVUFBTSxJQUFJLFlBQVksY0FBYyxpQkFBaUIsUUFBUSxNQUFNLFVBQVUsT0FBTyxLQUFLLEdBQUcsSUFBSTtBQUFBLEVBQ2xHO0FBQ0Y7QUFHQSxTQUFTLHFCQUFxQixRQUFnQixLQUF5QjtBQUNyRSxRQUFNLFlBQVksb0JBQUksSUFBWTtBQUNsQyxhQUFXLFFBQVEsZ0JBQWdCLE1BQU0sR0FBRztBQUMxQyxRQUFJLFdBQVcsSUFBSSxLQUFLLE9BQU8sSUFBSSxHQUFHO0FBQ3BDLGdCQUFVLElBQUksS0FBSyxLQUFLO0FBQUEsSUFDMUIsV0FBVyxZQUFZLElBQUksR0FBRztBQUM1QixnQkFBVSxJQUFJLE9BQU8sS0FBSyxPQUFPLFdBQVcsS0FBSyxLQUFLLFlBQVk7QUFBQSxJQUNwRTtBQUFBLEVBQ0Y7QUFDQSxhQUFXLFFBQVEsQ0FBQyxHQUFHLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRztBQUN6QyxRQUFJLENBQUMsVUFBVSxJQUFJLElBQUksR0FBRztBQUN4QixVQUFJLE9BQU8sT0FBTyxJQUFJO0FBQUEsSUFDeEI7QUFBQSxFQUNGO0FBQ0Y7QUFFQSxTQUFTLGtCQUFrQixRQUFnQixLQUF5QjtBQUNsRSxhQUFXLFFBQVEsZ0JBQWdCLE1BQU0sR0FBRztBQUMxQyxRQUFJLGFBQWEsSUFBSSxHQUFHO0FBQ3RCO0FBQUEsSUFDRjtBQUVBLFFBQUksWUFBWSxJQUFJLEdBQUc7QUFDckIsWUFBTUEsU0FBUSxPQUFPLEtBQUssT0FBTyxXQUFXLEtBQUssS0FBSztBQUV0RCxrQkFBWSxLQUFLLEtBQUssS0FBSyxLQUFLQSxNQUFLO0FBQ3JDO0FBQUEsSUFDRjtBQUVBLFFBQUksT0FBTyxJQUFJLEdBQUc7QUFDaEIsWUFBTSxFQUFFLE9BQU9DLFlBQVcsSUFBSUQsT0FBTSxJQUFJO0FBQ3hDLFVBQUlBLFdBQVUsTUFBTTtBQUNsQixZQUFJLFFBQVEsSUFBSUEsUUFBT0MsVUFBUztBQUFBLE1BQ2xDO0FBQ0EsVUFBSSxDQUFDLElBQUksT0FBTyxJQUFJQSxVQUFTLEdBQUc7QUFDOUIsNEJBQW9CLFFBQVEsTUFBTSxHQUFHO0FBQUEsTUFDdkM7QUFDQTtBQUFBLElBQ0Y7QUFFQSxRQUFJLENBQUMsV0FBVyxJQUFJLEdBQUc7QUFDckI7QUFBQSxJQUNGO0FBRUEsVUFBTSxFQUFFLE9BQU8sV0FBVyxJQUFJLE1BQU0sSUFBSTtBQUV4QyxRQUFJLFVBQVUsTUFBTTtBQUNsQixVQUFJLFFBQVEsSUFBSSxPQUFPLFNBQVM7QUFBQSxJQUNsQztBQUVBLFFBQUksSUFBSSxPQUFPLElBQUksU0FBUyxHQUFHO0FBQzdCO0FBQUEsSUFDRjtBQUVBLHdCQUFvQixRQUFRLE1BQU0sR0FBRztBQUFBLEVBQ3ZDO0FBQ0Y7QUFhQSxTQUFTLHNCQUFzQixRQUFpQztBQUM5RCxRQUFNLFdBQTRCLENBQUM7QUFFbkMsYUFBVyxRQUFRLGdCQUFnQixNQUFNLEdBQUc7QUFDMUMsUUFBSSxDQUFDLGFBQWEsSUFBSSxHQUFHO0FBQ3ZCO0FBQUEsSUFDRjtBQUVBLFVBQU0sYUFBYSxPQUFPLEtBQUssS0FBSyxXQUFXLFdBQVcsS0FBSyxLQUFLLFNBQVM7QUFDN0UsV0FBTyxHQUFHLGVBQWUsUUFBVyw0REFBNEQ7QUFHaEcsVUFBTSxZQUFZLEtBQUssSUFBSSxLQUFLLFNBQVMsQ0FBQztBQUMxQyxVQUFNLFlBQXNCLENBQUM7QUFDN0IsZUFBVyxPQUFPLFdBQVc7QUFDM0IsVUFBSSxPQUFRLElBQTZCLFdBQVcsVUFBVTtBQUM1RCxrQkFBVSxLQUFNLElBQTJCLE1BQU07QUFBQSxNQUNuRDtBQUFBLElBQ0Y7QUFDQSxXQUFPLEdBQUcsVUFBVSxTQUFTLEdBQUcsaURBQWlEO0FBRWpGLGFBQVMsS0FBSyxFQUFFLFlBQVksV0FBVyxLQUFLLEtBQUssS0FBSyxDQUFDO0FBQUEsRUFDekQ7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGVBQWUsVUFBMkIsS0FBb0M7QUFDckYsUUFBTSxXQUE0QixDQUFDO0FBRW5DLGFBQVcsRUFBRSxZQUFZLFdBQVcsSUFBSSxLQUFLLFVBQVU7QUFFckQsVUFBTSxhQUFhLENBQUMsR0FBRyxJQUFJLE9BQU8sT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLE1BQU0sUUFBUSxJQUFJLFVBQVUsQ0FBQztBQUVoRyxRQUFJLGVBQWUsUUFBVztBQUM1QixlQUFTLEtBQUssRUFBRSxZQUFZLFdBQVcsSUFBSSxDQUFDO0FBQzVDO0FBQUEsSUFDRjtBQUVBLFVBQU0sZ0JBQWdCLFdBQVcsUUFBUSxJQUFJLFVBQVUsS0FBSyxDQUFDO0FBQzdELFVBQU0sZUFBZSxjQUFjLENBQUMsR0FBRztBQUN2QyxVQUFNLGtCQUFrQixHQUFHLFdBQVcsUUFBUSxhQUFhO0FBQzNELFVBQU0sZUFBZSxXQUFXLGlCQUFpQixTQUFZLEVBQUUsY0FBYyxXQUFXLGFBQWEsSUFBSSxDQUFDO0FBRTFHLFFBQUksY0FBYyxTQUFTLFNBQVM7QUFDbEMsWUFBTSxDQUFDLFFBQVEsSUFBSTtBQUNuQixhQUFPLEdBQUcsYUFBYSxNQUFTO0FBQ2hDLFVBQUksT0FBTyxJQUFJLGlCQUFpQjtBQUFBLFFBQzlCO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixHQUFHO0FBQUEsVUFDSCxTQUFTLG9CQUFJLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLFVBQVUsYUFBYSxPQUFPLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUFBLFFBQ25HO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSCxXQUFXLGNBQWMsU0FBUyxVQUFVO0FBRTFDLFlBQU0sQ0FBQyxXQUFXLFdBQVcsSUFBSTtBQUNqQyxhQUFPO0FBQUEsUUFDTCxjQUFjLFVBQWEsZ0JBQWdCO0FBQUEsUUFDM0MseUJBQXlCLFVBQVU7QUFBQSxNQUNyQztBQUNBLFlBQU0sWUFBYSxhQUE4QixzQkFBc0I7QUFDdkUsWUFBTSxjQUNKLE9BQU8sY0FBYyxZQUFZLGNBQWMsT0FBTyxZQUFZLEVBQUUsTUFBTSxTQUFTO0FBQ3JGLFVBQUksT0FBTyxJQUFJLGlCQUFpQjtBQUFBLFFBQzlCO0FBQUEsVUFDRSxNQUFNO0FBQUEsVUFDTixHQUFHO0FBQUEsVUFDSCxTQUFTLG9CQUFJLElBQUk7QUFBQSxZQUNmLENBQUMsV0FBVyxDQUFDLFlBQVksV0FBVyxFQUFFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQUEsWUFDL0UsQ0FBQyxhQUFhLENBQUMsWUFBWSxhQUFhLGFBQWEsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFBQSxVQUM5RSxDQUFDO0FBQUEsUUFDSDtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0gsT0FBTztBQUNMLFlBQU0sSUFBSTtBQUFBLFFBQ1I7QUFBQSxRQUNBLHlCQUF5QixVQUFVO0FBQUEsUUFDbkM7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLGdCQUFnQixVQUEyQixTQUE4QztBQUNoRyxhQUFXLEVBQUUsWUFBWSxXQUFXLElBQUksS0FBSyxVQUFVO0FBQ3JELFVBQU0sZ0JBQWdCLFFBQVEsSUFBSSxVQUFVO0FBQzVDLFFBQUksa0JBQWtCLFFBQVc7QUFDL0IsWUFBTSxJQUFJLFlBQVksY0FBYyx5QkFBeUIsVUFBVSx5QkFBeUIsR0FBRztBQUFBLElBQ3JHO0FBQ0EsVUFBTSxlQUFlLGNBQWMsQ0FBQyxHQUFHO0FBRXZDLFFBQUksY0FBYyxTQUFTLFNBQVM7QUFDbEMsWUFBTSxDQUFDLFFBQVEsSUFBSTtBQUNuQixhQUFPLEdBQUcsYUFBYSxNQUFTO0FBQ2hDLGNBQVEsSUFBSSxVQUFVLENBQUMsWUFBWSxVQUFVLGFBQWEsT0FBTyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUFBLElBQzFGLFdBQVcsY0FBYyxTQUFTLFVBQVU7QUFFMUMsWUFBTSxDQUFDLFdBQVcsV0FBVyxJQUFJO0FBQ2pDLGFBQU87QUFBQSxRQUNMLGNBQWMsVUFBYSxnQkFBZ0I7QUFBQSxRQUMzQyx5QkFBeUIsVUFBVTtBQUFBLE1BQ3JDO0FBQ0EsWUFBTSxZQUFhLGFBQThCLHNCQUFzQjtBQUN2RSxZQUFNLGNBQ0osT0FBTyxjQUFjLFlBQVksY0FBYyxPQUFPLFlBQVksRUFBRSxNQUFNLFNBQVM7QUFDckYsY0FBUSxJQUFJLFdBQVcsQ0FBQyxZQUFZLFdBQVcsRUFBRSxNQUFNLFNBQVMsR0FBRyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUMxRixjQUFRLElBQUksYUFBYSxDQUFDLFlBQVksYUFBYSxhQUFhLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQUEsSUFDekYsT0FBTztBQUNMLFlBQU0sSUFBSTtBQUFBLFFBQ1I7QUFBQSxRQUNBLHlCQUF5QixVQUFVO0FBQUEsUUFDbkM7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQU1BLFNBQVMsMkJBQ1AsYUFDQSxhQUNBLFdBQ0EsU0FDTTtBQUNOLFFBQU0sT0FBTyxlQUFlO0FBQzVCLFVBQVEsSUFBSSxNQUFNLENBQUMsWUFBWSxNQUFNLEVBQUUsTUFBTSxTQUFTLEdBQUcsU0FBbUIsQ0FBQyxDQUFDO0FBQ2hGO0FBRUEsU0FBUyxlQUFlLGtCQUFtQyxTQUE4QztBQUN2RyxhQUFXLFNBQVMsa0JBQWtCO0FBQ3BDLGVBQVcsQ0FBQyxTQUFTLElBQUksS0FBSyxNQUFNLFNBQVM7QUFDM0MsY0FBUSxJQUFJLFNBQVMsSUFBSTtBQUFBLElBQzNCO0FBQUEsRUFDRjtBQUNGO0FBSUEsU0FBUyxtQkFBbUIsaUJBQTJDO0FBQ3JFLE1BQUksZ0JBQWdCLFdBQVcsR0FBRztBQUNoQyxXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sUUFBUSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsR0FBRyxNQUFNO0FBQ3ZELE1BQUksQ0FBQyxnQkFBZ0IsTUFBTSxDQUFDLFFBQVEsS0FBSyxVQUFVLElBQUksTUFBTSxNQUFNLEtBQUssR0FBRztBQUN6RSxXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sU0FBUyxnQkFBZ0IsQ0FBQyxHQUFHO0FBQ25DLE1BQUksUUFBUSxTQUFTLFVBQVU7QUFDN0IsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLGFBQWEsT0FBTztBQUMxQixNQUFJLGVBQWUsUUFBVztBQUM1QixXQUFPO0FBQUEsRUFDVDtBQUNBLFFBQU0sWUFBWSxPQUFPLEtBQUssVUFBVTtBQUN4QyxTQUFPLFVBQVUsU0FBUyxJQUFJLDJCQUEyQixVQUFVLEtBQUssSUFBSSxDQUFDLEtBQUs7QUFDcEY7QUFFQSxTQUFTLG9CQUNQLFFBQ0Esa0JBQ0EsaUJBQ0EsS0FDZ0I7QUFHaEIsUUFBTSxlQUFlLEtBQUssaUJBQWlCLFVBQVUsQ0FBQyxFQUFFLFFBQVEsYUFBYSxnQkFBZ0IsQ0FBQztBQUM5RixNQUFJLGlCQUFpQixZQUFZO0FBRWpDLFFBQU0sbUJBQW1CLGdCQUFnQjtBQUFBLElBQVEsQ0FBQyxRQUNoRCxTQUF5QixFQUFFLE1BQU0sSUFBSSxRQUFRLE1BQU0sYUFBYSxDQUFDO0FBQUEsRUFDbkU7QUFDQSxNQUFJLHFCQUFxQixnQkFBZ0I7QUFFekMsTUFBSSxpQkFBaUIsV0FBVyxHQUFHO0FBQ2pDLFVBQU0sSUFBSTtBQUFBLE1BQ1I7QUFBQSxNQUNBLHNCQUFzQixNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLGVBQWUsQ0FBQztBQUFBLE1BQ3hGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDQSxTQUFPO0FBQ1Q7QUFFQSxTQUFTLG1CQUNQLFFBQ0Esa0JBQ0EsaUJBQ0EsU0FDQSxXQUNBLFNBQ007QUFFTixRQUFNLFdBQVksd0JBQXdCLFNBQVMsRUFBRSxDQUFDLEdBQUcsVUFBVTtBQUNuRSxRQUFNLG1CQUFtQixvQkFBb0IsUUFBUSxrQkFBa0IsaUJBQWlCLFFBQVE7QUFDaEcsVUFBUTtBQUFBLElBQ047QUFBQSxJQUNBLGlCQUFpQixJQUFJLENBQUMsV0FBVyxZQUFZLFNBQVMsUUFBUSxTQUFtQixDQUFDO0FBQUEsRUFDcEY7QUFDRjtBQU9BLFNBQVMsb0JBQW9CLFFBQWdCLEtBQWEsa0JBQXFEO0FBQzdHLFFBQU0sa0JBQWtCLGlCQUFpQixRQUFRLENBQUMsVUFBVSxNQUFNLFFBQVEsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO0FBQzNGLE1BQUksZ0JBQWdCLFdBQVcsR0FBRztBQUNoQyxVQUFNLGFBQWE7QUFBQSxNQUNqQixHQUFHLElBQUksSUFBSSxpQkFBaUIsSUFBSSxDQUFDLG1CQUFtQixlQUFlLFFBQVEsYUFBYSxDQUFDO0FBQUEsSUFDM0YsRUFBRSxLQUFLLElBQUk7QUFDWCxVQUFNLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxJQUFJLGlCQUFpQixRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSTtBQUM1RyxVQUFNLElBQUk7QUFBQSxNQUNSO0FBQUEsTUFDQSxzQkFBc0IsTUFBTSxlQUFlLFVBQVUsd0JBQXdCLGFBQWE7QUFBQSxNQUMxRjtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQ0EsU0FBTztBQUNUO0FBR0EsU0FBUyxxQkFDUCxLQUNBLFdBQ0EsS0FDQSxlQUNNO0FBQ04sTUFBSSxlQUFlLEdBQUcsR0FBRztBQUN2QjtBQUFBLEVBQ0Y7QUFDQSxhQUFXLE9BQU8sa0JBQWtCLEdBQUcsR0FBRztBQUN4QyxVQUFNLFNBQVMsT0FBTyxJQUFJLFdBQVcsV0FBVyxJQUFJLFNBQVM7QUFDN0QsUUFBSSxXQUFXLFVBQWEsV0FBVyxLQUFLO0FBQzFDO0FBQUEsSUFDRjtBQUNBLFVBQU0sV0FBVyxJQUFJLFNBQVM7QUFDOUIsUUFBSSxhQUFhLFVBQWEsZUFBZSxJQUFJLE1BQU0sTUFBTSxNQUFNO0FBQ2pFO0FBQUEsSUFDRjtBQUNBLFVBQU0sbUJBQW1CLGFBQWEsU0FBWSxhQUFhLFVBQVUsR0FBRyxJQUFJO0FBQ2hGLFFBQUksaUJBQWlCLFdBQVcsR0FBRztBQUNqQyxZQUFNLElBQUk7QUFBQSxRQUNSO0FBQUEsUUFDQSwyQkFBMkIsWUFBWSxNQUFNLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxPQUFPLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDO0FBQUEsUUFDbEc7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUNBLHdCQUFvQixRQUFRLEtBQUssZ0JBQWdCO0FBQUEsRUFDbkQ7QUFDRjtBQUdBLFNBQVMsZ0NBQWdDLFdBQW9CLFdBQTRCLEtBQXlCO0FBQ2hILGFBQVcsRUFBRSxLQUFLLE1BQU0sT0FBTyxLQUFLLHdCQUF3QixTQUFTLEdBQUc7QUFDdEUsVUFBTSxXQUFXLElBQUksU0FBUztBQUM5QixVQUFNLFNBQVMsT0FBTyxJQUFJLFdBQVcsV0FBVyxJQUFJLFNBQVM7QUFDN0QsUUFBSSxXQUFXLFFBQVc7QUFDeEI7QUFBQSxJQUNGO0FBQ0EsVUFBTSxtQkFBbUIsYUFBYSxTQUFZLGFBQWEsVUFBVSxHQUFHLElBQUk7QUFDaEYsVUFBTSxrQkFBa0IsaUJBQWlCLFFBQVEsQ0FBQyxVQUFVLE1BQU0sUUFBUSxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7QUFDM0YsUUFBSSxnQkFBZ0IsU0FBUyxHQUFHO0FBQzlCLDBCQUFvQixRQUFRLE1BQU0saUJBQWlCLE1BQU07QUFBQSxJQUMzRDtBQUFBLEVBQ0Y7QUFDRjtBQUdBLFNBQVMsdUJBQ1AsV0FDQSxhQUNBLGFBQ0EsS0FDQSxXQUNBLEtBQ0EsU0FDTTtBQUNOLFFBQU0sV0FBVyxJQUFJLFNBQVM7QUFDOUIsUUFBTSxTQUFTLE9BQU8sSUFBSSxXQUFXLFdBQVcsSUFBSSxTQUFTO0FBQzdELFNBQU8sR0FBRyxXQUFXLFFBQVcsMkNBQTJDO0FBRTNFLFFBQU0sbUJBQW1CLGFBQWEsU0FBWSxhQUFhLFVBQVUsR0FBRyxJQUFJO0FBQ2hGLE1BQUksaUJBQWlCLFdBQVcsR0FBRztBQUNqQyxVQUFNLGFBQWEsQ0FBQyxHQUFHLElBQUksT0FBTyxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUk7QUFDbkQsVUFBTSxJQUFJO0FBQUEsTUFDUjtBQUFBLE1BQ0EsMkJBQTJCLFlBQVksTUFBTSxvQkFBb0IsVUFBVTtBQUFBLE1BQzNFO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxNQUFJLFdBQVcsS0FBSztBQUNsQixtQkFBZSxrQkFBa0IsT0FBTztBQUN4QztBQUFBLEVBQ0Y7QUFFQSxRQUFNLGdCQUFnQixpQkFBaUIsU0FBUztBQUNoRCxRQUFNLFVBQVUsZ0JBQWdCLGdCQUFnQixjQUFjO0FBQzlELFFBQU0sa0JBQWtCLG9CQUFvQixRQUFRLEtBQUssZ0JBQWdCO0FBRXpFLFFBQU0sbUJBQW1CLHVCQUF1QixTQUFTLEtBQUssMkJBQTJCLFNBQVM7QUFDbEcsTUFBSSxxQkFBcUIsUUFBVztBQUNsQyx1QkFBbUIsUUFBUSxrQkFBa0IsaUJBQWlCLFNBQVMsV0FBVyxPQUFPO0FBQ3pGO0FBQUEsRUFDRjtBQUVBLFVBQVE7QUFBQSxJQUNOO0FBQUEsSUFDQSxnQkFBZ0IsSUFBSSxDQUFDLFFBQVEsWUFBWSxTQUFTLElBQUksUUFBUSxTQUFtQixDQUFDO0FBQUEsRUFDcEY7QUFDRjtBQUVBLFNBQVMscUJBQXFCLFFBQWdCLEtBQWtEO0FBQzlGLFFBQU0sWUFBWSxDQUFDLEdBQUcsSUFBSSxPQUFPLE9BQU8sQ0FBQyxFQUFFLEtBQUs7QUFDaEQsUUFBTSxVQUFVLG9CQUFJLElBQThCO0FBRWxELGFBQVcsQ0FBQyxPQUFPLFNBQVMsS0FBSyxPQUFPLFFBQVEsUUFBUSxHQUFHO0FBQ3pELFFBQUksb0JBQW9CLFNBQVM7QUFFakMsVUFBTSxjQUFlLFVBQXFDLE1BQU07QUFDaEUsVUFBTSxjQUFjLE9BQU8sT0FBTyxLQUFLLENBQUM7QUFDeEMsVUFBTSxhQUFhLGtCQUFrQixTQUFTO0FBRTlDLFFBQUksV0FBVyxXQUFXLEdBQUc7QUFDM0IsMkJBQXFCLFdBQVcsV0FBVyxHQUFHO0FBQzlDLHNDQUFnQyxXQUFXLFdBQVcsR0FBRztBQUN6RCxpQ0FBMkIsYUFBYSxhQUFhLFdBQVcsT0FBTztBQUFBLElBQ3pFLE9BQU87QUFDTCxZQUFNLENBQUMsR0FBRyxJQUFJO0FBQ2QsYUFBTyxHQUFHLFFBQVEsTUFBUztBQUMzQiw2QkFBdUIsV0FBVyxhQUFhLGFBQWEsS0FBSyxXQUFXLEtBQUssT0FBTztBQUFBLElBQzFGO0FBT0EsUUFBSSxvQkFBb0IsU0FBUyxHQUFHO0FBQ2xDLFlBQU0sVUFBVSxlQUFlO0FBQy9CLFlBQU0sV0FBVyxRQUFRLElBQUksT0FBTztBQUNwQyxVQUFJLGFBQWEsVUFBYSxTQUFTLENBQUMsR0FBRyxPQUFPLFNBQVMsU0FBUztBQUNsRSxnQkFBUTtBQUFBLFVBQ047QUFBQSxVQUNBLFNBQVMsSUFBSSxDQUFDLFFBQVEsWUFBWSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQztBQUFBLFFBQ3pFO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFLQSxRQUFJLGtCQUFrQixTQUFTLEdBQUc7QUFDaEMsWUFBTSxVQUFVLGVBQWU7QUFDL0IsWUFBTSxXQUFXLFFBQVEsSUFBSSxPQUFPO0FBQ3BDLFVBQUksYUFBYSxVQUFhLFNBQVMsQ0FBQyxHQUFHLE9BQU8sU0FBUyxVQUFVO0FBQ25FLGdCQUFRO0FBQUEsVUFDTjtBQUFBLFVBQ0EsU0FBUyxJQUFJLENBQUMsUUFBUSxZQUFZLElBQUksTUFBTSxFQUFFLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDO0FBQUEsUUFDMUU7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPO0FBQ1Q7QUFNQSxTQUFTLFlBQ1AsV0FDQSxLQUNBLGVBQytCO0FBRS9CLFFBQU0sU0FBUyxVQUFVLFlBQVksVUFBVSxLQUFLLE1BQU07QUFHMUQsUUFBTSxZQUFZLG1CQUFtQixHQUFHO0FBR3hDLG9CQUFrQixRQUFRLFNBQVM7QUFFbkMsdUJBQXFCLFFBQVEsU0FBUztBQUd0QyxRQUFNLGlCQUFpQixzQkFBc0IsTUFBTTtBQUNuRCxRQUFNLGlCQUFpQixlQUFlLGdCQUFnQixTQUFTO0FBRy9ELFFBQU0sVUFBVSxxQkFBcUIsUUFBUSxTQUFTO0FBR3RELGtCQUFnQixnQkFBZ0IsT0FBTztBQUV2QyxNQUFJLG9CQUFvQixDQUFDLEdBQUcsUUFBUSxLQUFLLENBQUMsQ0FBQztBQUczQyxRQUFNLFlBQVksQ0FBQyxHQUFHLFVBQVUsT0FBTyxPQUFPLENBQUMsRUFBRSxLQUFLO0FBQ3RELGFBQVcsUUFBUSxnQkFBZ0IsTUFBTSxHQUFHO0FBQzFDLFVBQU0sU0FBVSxLQUEwQjtBQUMxQyxRQUFJLFdBQVcsUUFBVztBQUN4QiwyQkFBcUIsUUFBUSxXQUFXLFNBQVM7QUFDakQsc0NBQWdDLFFBQVEsV0FBVyxTQUFTO0FBQUEsSUFDOUQ7QUFBQSxFQUNGO0FBQ0EsTUFBSSxPQUFPLFVBQVUsTUFBTTtBQUN6Qix5QkFBcUIsT0FBTyxPQUFPLFdBQVcsU0FBUztBQUN2RCxvQ0FBZ0MsT0FBTyxPQUFPLFdBQVcsU0FBUztBQUFBLEVBQ3BFO0FBQ0EsTUFBSSxPQUFPLFdBQVcsTUFBTTtBQUMxQix5QkFBcUIsT0FBTyxRQUFRLFdBQVcsV0FBVyxPQUFPO0FBQ2pFLG9DQUFnQyxPQUFPLFFBQVEsV0FBVyxTQUFTO0FBQUEsRUFDckU7QUFDQSxhQUFXLGFBQWEsT0FBTyxXQUFXLENBQUMsR0FBRztBQUM1Qyx5QkFBcUIsVUFBVSxNQUFNLFdBQVcsV0FBVyxPQUFPO0FBQ2xFLG9DQUFnQyxVQUFVLE1BQU0sV0FBVyxTQUFTO0FBQUEsRUFDdEU7QUFDQSxNQUFJLE9BQU8sU0FBUyxZQUFZLFFBQVc7QUFDekMsZUFBVyxZQUFZLE9BQU8sUUFBUSxTQUFTO0FBQzdDLDJCQUFxQixVQUFVLFdBQVcsV0FBVyxPQUFPO0FBQzVELHNDQUFnQyxVQUFVLFdBQVcsU0FBUztBQUFBLElBQ2hFO0FBQUEsRUFDRjtBQUdBLE1BQUksT0FBTyxVQUFVLFFBQVc7QUFDOUIsVUFBTSxjQUFjLFlBQVksT0FBTyxPQUFPLEtBQUssYUFBYTtBQUNoRSxVQUFNLHNCQUFzQixRQUFRO0FBQ3BDLFVBQU0sbUJBQW1CLFlBQVk7QUFDckMsUUFBSSx3QkFBd0Isa0JBQWtCO0FBQzVDLFlBQU0sSUFBSTtBQUFBLFFBQ1I7QUFBQSxRQUNBLHFEQUFxRCxvQkFBb0IsU0FBUyxDQUFDLE9BQU8saUJBQWlCLFNBQVMsQ0FBQztBQUFBLFFBQ3JILE9BQU87QUFBQSxNQUNUO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFHQSxNQUFJLGtCQUFrQixRQUFXO0FBQy9CLFVBQU0sZ0JBQStCLEVBQUUsTUFBTSxlQUFlLFFBQVE7QUFDcEUsUUFBSSxPQUFPLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBQztBQUFBLEVBQy9DO0FBRUEsU0FBTztBQUNUO0FBRUEsU0FBUyxlQUFlLEtBQVUsS0FBeUI7QUFDekQsU0FBTyxHQUFHLElBQUksU0FBUyxRQUFRO0FBQy9CLFFBQU0sU0FBUztBQUVmLE1BQUksT0FBTyxTQUFTLE1BQU07QUFDeEIsZUFBVyxZQUFZLE9BQU8sTUFBTTtBQUNsQyxrQkFBWSxTQUFTLEtBQUssS0FBSyxLQUFLLFNBQVMsS0FBSyxLQUFLO0FBQUEsSUFDekQ7QUFDQSxXQUFPLE9BQU87QUFBQSxFQUNoQjtBQUVBLGNBQVksUUFBUSxHQUFHO0FBQ3pCO0FBTUEsSUFBTSxPQUEyRSxXQUFXO0FBQUEsRUFDMUYsTUFBTTtBQUFBLEVBQ04sTUFBTTtBQUFBLElBQ0osTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLFFBQVEsQ0FBQztBQUFBLElBQ1QsVUFBVTtBQUFBLE1BQ1IsQ0FBQyxhQUFhLEdBQUc7QUFBQSxNQUNqQixDQUFDLFlBQVksR0FBRztBQUFBLElBQ2xCO0FBQUEsRUFDRjtBQUFBLEVBQ0EsZ0JBQWdCLENBQUM7QUFBQSxFQUNqQixPQUFPLFNBQVM7QUFDZCxhQUFTLFNBQVMsS0FBYSxTQUF3QjtBQUNyRCxVQUFJLENBQUMscUVBQXFFLEtBQUssR0FBRyxHQUFHO0FBQ25GLFlBQUksa0NBQWtDLEVBQUUsSUFBSSxDQUFDO0FBQzdDO0FBQUEsTUFDRjtBQUVBLFlBQU0sYUFBYSxnQkFBZ0IsT0FBTztBQUMxQyxVQUFJO0FBQ0osVUFBSTtBQUVGLFNBQUMsRUFBRSxJQUFJLElBQUksTUFBTSxLQUFLLEVBQUUsa0JBQWtCLEtBQUssQ0FBQztBQUFBLE1BQ2xELFNBQVMsT0FBTztBQUNkLFlBQUksNEJBQTRCLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDOUMsY0FBTSxTQUFVLE1BQWdGO0FBQ2hHLFlBQUksV0FBVyxRQUFXO0FBQ3hCLGdCQUFNLGFBQWEsUUFBUSxXQUFXLFFBQVE7QUFDOUMsa0JBQVEsT0FBTztBQUFBLFlBQ2IsS0FBSztBQUFBLGNBQ0gsT0FBTyxZQUFZLFlBQVksa0JBQWtCLE9BQU8sTUFBTSxRQUFRLFVBQVUsQ0FBQztBQUFBLGNBQ2pGLEtBQUssWUFBWSxZQUFZLGtCQUFrQixPQUFPLElBQUksUUFBUSxVQUFVLENBQUM7QUFBQSxZQUMvRTtBQUFBLFlBQ0EsV0FBVztBQUFBLFlBQ1gsTUFBTSxFQUFFLGNBQWUsTUFBZ0IsUUFBUTtBQUFBLFVBQ2pELENBQUM7QUFBQSxRQUNILE9BQU87QUFDTCxrQkFBUSxPQUFPO0FBQUEsWUFDYixNQUFNO0FBQUEsWUFDTixXQUFXO0FBQUEsWUFDWCxNQUFNLEVBQUUsY0FBZSxNQUFnQixRQUFRO0FBQUEsVUFDakQsQ0FBQztBQUFBLFFBQ0g7QUFDQTtBQUFBLE1BQ0Y7QUFDQSxZQUFNLFlBQVksa0JBQWtCO0FBQ3BDLFVBQUk7QUFFRix1QkFBZSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUztBQUFBLE1BQzdELFNBQVMsT0FBTztBQUNkLFlBQUksNkJBQTZCLEVBQUUsT0FBTyxJQUFJLENBQUM7QUFDL0MsWUFBSSxpQkFBaUIsYUFBYTtBQUNoQyxnQkFBTSxTQUFVLE1BQU0sS0FDbEI7QUFDSixjQUFJLFdBQVcsUUFBVztBQUN4QixrQkFBTSxhQUFhLFFBQVEsV0FBVyxRQUFRO0FBQzlDLG9CQUFRLE9BQU87QUFBQSxjQUNiLEtBQUs7QUFBQSxnQkFDSCxPQUFPLFlBQVksWUFBWSxrQkFBa0IsT0FBTyxNQUFNLFFBQVEsVUFBVSxDQUFDO0FBQUEsZ0JBQ2pGLEtBQUssWUFBWSxZQUFZLGtCQUFrQixPQUFPLElBQUksUUFBUSxVQUFVLENBQUM7QUFBQSxjQUMvRTtBQUFBLGNBQ0EsV0FBVztBQUFBLGNBQ1gsTUFBTSxFQUFFLGNBQWMsTUFBTSxRQUFRO0FBQUEsWUFDdEMsQ0FBQztBQUFBLFVBQ0gsT0FBTztBQUNMLG9CQUFRLE9BQU87QUFBQSxjQUNiLE1BQU07QUFBQSxjQUNOLFdBQVc7QUFBQSxjQUNYLE1BQU0sRUFBRSxjQUFjLE1BQU0sUUFBUTtBQUFBLFlBQ3RDLENBQUM7QUFBQSxVQUNIO0FBQUEsUUFDRixPQUFPO0FBRUwsa0JBQVEsTUFBTSxtQkFBbUIsTUFBTSxjQUFjLFFBQVEsUUFBUSxNQUFNLEtBQUs7QUFDaEYsa0JBQVEsT0FBTztBQUFBLFlBQ2IsTUFBTTtBQUFBLFlBQ04sV0FBVztBQUFBLFlBQ1gsTUFBTTtBQUFBLGNBQ0osY0FBYyxpQkFBaUIsUUFBUSxPQUFPLEtBQUssSUFBSSxLQUFLLFVBQVUsT0FBTyxRQUFXLENBQUM7QUFBQSxZQUMzRjtBQUFBLFVBQ0YsQ0FBQztBQUFBLFFBQ0g7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUVBLFdBQU87QUFBQSxNQUNMLGdCQUFnQixTQUFTO0FBQ3ZCLGNBQU0sTUFBTSxRQUFRLE9BQ2pCLElBQUksQ0FBQyxVQUFVLE1BQU0sTUFBTSxNQUFNLEVBQ2pDLEtBQUssRUFBRSxFQUNQLEtBQUs7QUFDUixpQkFBUyxLQUFLLE9BQU87QUFBQSxNQUN2QjtBQUFBLE1BQ0EsUUFBUSxTQUFTO0FBQ2YsWUFBSSxPQUFPLFFBQVEsVUFBVSxVQUFVO0FBQ3JDO0FBQUEsUUFDRjtBQUNBLGlCQUFTLFFBQVEsT0FBTyxPQUFPO0FBQUEsTUFDakM7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUNGLENBQUM7QUFFRCxJQUFPLGlCQUFROyIsCiAgIm5hbWVzIjogWyJhbGlhcyIsICJ0YWJsZU5hbWUiXQp9Cg==
@@ -256,7 +256,33 @@ function hasFunctionCalls(expr) {
256
256
  });
257
257
  return found;
258
258
  }
259
+ function containsCastToArray(expr) {
260
+ let found = false;
261
+ walkExpr(expr, {
262
+ visitCast(node) {
263
+ const target = node.target?.[0];
264
+ if (target?.dataType === "ARRAY") {
265
+ found = true;
266
+ }
267
+ }
268
+ });
269
+ return found;
270
+ }
271
+ function containsCastToMap(expr) {
272
+ let found = false;
273
+ walkExpr(expr, {
274
+ visitCast(node) {
275
+ const target = node.target?.[0];
276
+ if (target?.dataType === "MAP") {
277
+ found = true;
278
+ }
279
+ }
280
+ });
281
+ return found;
282
+ }
259
283
  export {
284
+ containsCastToArray,
285
+ containsCastToMap,
260
286
  containsLambda,
261
287
  extractBracketAccessorPath,
262
288
  extractColumnRefs,
@@ -271,4 +297,4 @@ export {
271
297
  isUnnestFrom,
272
298
  walk
273
299
  };
274
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS92aXNpdG9yLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLE9BQU8sV0FBVztBQUVsQixJQUFNLE1BQU0sTUFBTSxnQkFBZ0I7QUFpRTNCLFNBQVMsYUFBYSxNQUFtQztBQUM5RCxTQUFPLE9BQU8sU0FBUyxZQUFZLFNBQVMsUUFBUyxLQUE0QixTQUFTO0FBQzVGO0FBRU8sU0FBUyxPQUFPLE1BQTZCO0FBQ2xELFNBQU8sT0FBTyxTQUFTLFlBQVksU0FBUyxRQUFTLEtBQTRCLFNBQVM7QUFDNUY7QUFFTyxTQUFTLFlBQVksTUFBa0M7QUFDNUQsTUFBSSxPQUFPLFNBQVMsWUFBWSxTQUFTLE1BQU07QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLE9BQVEsS0FBNEI7QUFDMUMsU0FBTyxPQUFPLFNBQVMsWUFBWSxTQUFTLFFBQVEsU0FBUztBQUMvRDtBQUVPLFNBQVMsT0FBTyxNQUE2QjtBQUNsRCxTQUNFLENBQUMsYUFBYSxJQUFJLEtBQ2xCLENBQUMsT0FBTyxJQUFJLEtBQ1osQ0FBQyxZQUFZLElBQUksS0FDakIsT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxVQUFVO0FBRWQ7QUFFTyxTQUFTLFdBQVcsTUFBaUM7QUFDMUQsU0FDRSxDQUFDLGFBQWEsSUFBSSxLQUNsQixDQUFDLE9BQU8sSUFBSSxLQUNaLENBQUMsWUFBWSxJQUFJLEtBQ2pCLENBQUMsT0FBTyxJQUFJLEtBQ1osT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxXQUFXO0FBRWY7QUFFTyxTQUFTLGNBQWMsTUFBaUQ7QUFDN0UsUUFBTSxRQUFRO0FBQ2QsU0FBTyxNQUFNLFFBQVEsTUFBTSxXQUFXLEtBQUssTUFBTSxZQUFZLFNBQVM7QUFDeEU7QUFPQSxTQUFTLFNBQVMsTUFBZSxTQUEyQjtBQUMxRCxNQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsTUFBTTtBQUM3QztBQUFBLEVBQ0Y7QUFDQSxRQUFNLFFBQVE7QUFFZCxVQUFRLE1BQU0s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
300
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2F0aGVuYS92aXNpdG9yLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLE9BQU8sV0FBVztBQUVsQixJQUFNLE1BQU0sTUFBTSxnQkFBZ0I7QUFpRTNCLFNBQVMsYUFBYSxNQUFtQztBQUM5RCxTQUFPLE9BQU8sU0FBUyxZQUFZLFNBQVMsUUFBUyxLQUE0QixTQUFTO0FBQzVGO0FBRU8sU0FBUyxPQUFPLE1BQTZCO0FBQ2xELFNBQU8sT0FBTyxTQUFTLFlBQVksU0FBUyxRQUFTLEtBQTRCLFNBQVM7QUFDNUY7QUFFTyxTQUFTLFlBQVksTUFBa0M7QUFDNUQsTUFBSSxPQUFPLFNBQVMsWUFBWSxTQUFTLE1BQU07QUFDN0MsV0FBTztBQUFBLEVBQ1Q7QUFDQSxRQUFNLE9BQVEsS0FBNEI7QUFDMUMsU0FBTyxPQUFPLFNBQVMsWUFBWSxTQUFTLFFBQVEsU0FBUztBQUMvRDtBQUVPLFNBQVMsT0FBTyxNQUE2QjtBQUNsRCxTQUNFLENBQUMsYUFBYSxJQUFJLEtBQ2xCLENBQUMsT0FBTyxJQUFJLEtBQ1osQ0FBQyxZQUFZLElBQUksS0FDakIsT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxVQUFVO0FBRWQ7QUFFTyxTQUFTLFdBQVcsTUFBaUM7QUFDMUQsU0FDRSxDQUFDLGFBQWEsSUFBSSxLQUNsQixDQUFDLE9BQU8sSUFBSSxLQUNaLENBQUMsWUFBWSxJQUFJLEtBQ2pCLENBQUMsT0FBTyxJQUFJLEtBQ1osT0FBTyxTQUFTLFlBQ2hCLFNBQVMsUUFDVCxXQUFXO0FBRWY7QUFFTyxTQUFTLGNBQWMsTUFBaUQ7QUFDN0UsUUFBTSxRQUFRO0FBQ2QsU0FBTyxNQUFNLFFBQVEsTUFBTSxXQUFXLEtBQUssTUFBTSxZQUFZLFNBQVM7QUFDeEU7QUFPQSxTQUFTLFNBQVMsTUFBZSxTQUEyQjtBQUMxRCxNQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsTUFBTTtBQUM3QztBQUFBLEVBQ0Y7QUFDQSxRQUFNLFFBQVE7QUFFZCxVQUFRLE1BQU0s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
@@ -1,5 +1,4 @@
1
1
  // src/openapi/service-schema-generator.ts
2
- import { execFileSync } from "node:child_process";
3
2
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
4
3
  import debug from "debug";
5
4
  import { buildApiSchemaFromYaml } from "./generate-schema.mjs";
@@ -33,17 +32,6 @@ function derefApiSchemas(schemas) {
33
32
  }
34
33
  return { apis: resolvedApis };
35
34
  }
36
- function fetchUrlSync(url) {
37
- try {
38
- return execFileSync(process.execPath, ["--input-type=module"], {
39
- input: `const r=await fetch(${JSON.stringify(url)});if(!r.ok)process.exit(1);process.stdout.write(await r.text());`,
40
- encoding: "utf-8",
41
- timeout: 15e3
42
- });
43
- } catch {
44
- return null;
45
- }
46
- }
47
35
  function readServiceConfig(packageJsonContent, org, serviceName) {
48
36
  const packageJson = JSON.parse(packageJsonContent);
49
37
  const apiRoot = packageJson.service?.api?.root;
@@ -73,74 +61,46 @@ function findServiceLocally(serviceFolder, org, serviceName) {
73
61
  return null;
74
62
  }
75
63
  function findServiceInProject(serviceName) {
76
- const packageJsonString = readFileSync(`./package.json`, "utf-8");
77
- const packageJson = JSON.parse(packageJsonString);
78
- const [org, projectName] = packageJson.name.slice(1).split("/");
79
- if (org === void 0) {
64
+ const packageJson = JSON.parse(readFileSync("./package.json", "utf-8"));
65
+ const [org, projectName] = (packageJson.name ?? "").slice(1).split("/");
66
+ if (org === void 0 || projectName !== serviceName) {
80
67
  return null;
81
68
  }
82
- if (projectName === serviceName) {
83
- log("service is the current project, looking for API schemas locally", serviceName);
84
- const serviceSource = findServiceLocally(".", org, serviceName);
85
- if (serviceSource !== null) {
86
- return serviceSource;
87
- }
88
- }
89
- return null;
69
+ log(`[schema-generator] '${serviceName}' is the current project, reading local swagger files`);
70
+ return findServiceLocally(".", org, serviceName);
90
71
  }
91
72
  function findServiceInNodeModules(serviceName) {
92
73
  for (const org of GITHUB_ORGANIZATIONS) {
93
74
  const serviceFolder = `node_modules/@${org}/${serviceName}`;
94
75
  if (!existsSync(serviceFolder)) {
76
+ log(`[schema-generator] not found in node_modules: @${org}/${serviceName}`);
95
77
  continue;
96
78
  }
97
79
  try {
98
- const serviceSource = findServiceLocally(serviceFolder, org, serviceName);
99
- if (serviceSource !== null) {
100
- return serviceSource;
80
+ log(`[schema-generator] found in node_modules: @${org}/${serviceName}, reading swagger files`);
81
+ const source = findServiceLocally(serviceFolder, org, serviceName);
82
+ if (source !== null) {
83
+ return source;
101
84
  }
102
- } catch {
103
- }
104
- }
105
- return null;
106
- }
107
- function findServiceOnGitHub(serviceName) {
108
- for (const org of GITHUB_ORGANIZATIONS) {
109
- const pkgUrl = `https://raw.githubusercontent.com/${org}/${serviceName}/main/package.json`;
110
- log(`fetching package.json from ${pkgUrl}`);
111
- const pkgContent = fetchUrlSync(pkgUrl);
112
- if (pkgContent === null) {
113
- continue;
114
- }
115
- try {
116
- const config = readServiceConfig(pkgContent, org, serviceName);
117
- if (config === null) {
118
- continue;
119
- }
120
- const endpoints = [];
121
- for (const endpoint of config.endpoints) {
122
- const swaggerUrl = `https://raw.githubusercontent.com/${org}/${serviceName}/main/${config.apiRoot}/${endpoint}/swagger.yml`;
123
- log(`fetching swagger.yml from ${swaggerUrl}`);
124
- const yamlContent = fetchUrlSync(swaggerUrl);
125
- if (yamlContent !== null) {
126
- endpoints.push({ path: endpoint, yamlContent });
127
- }
128
- }
129
- if (endpoints.length > 0) {
130
- return { organization: config.organization, serviceName: config.serviceName, endpoints };
131
- }
132
- } catch {
85
+ log(`[schema-generator] no swagger schema inside node_modules/@${org}/${serviceName}`);
86
+ } catch (error) {
87
+ log(
88
+ `[schema-generator] error reading node_modules/@${org}/${serviceName}: ${error instanceof Error ? error.message : String(error)}`
89
+ );
133
90
  }
134
91
  }
135
92
  return null;
136
93
  }
137
94
  function generateSchemasForService(serviceName, outputDir) {
138
- log("generating schemas for service", serviceName);
139
- const source = findServiceInProject(serviceName) ?? findServiceInNodeModules(serviceName) ?? findServiceOnGitHub(serviceName);
95
+ log(`[schema-generator] locating service '${serviceName}'`);
96
+ const source = findServiceInProject(serviceName) ?? findServiceInNodeModules(serviceName);
140
97
  if (source === null) {
141
- log("no swagger source found for service", serviceName);
98
+ log(
99
+ `[schema-generator] '${serviceName}' not found \u2014 ensure it is listed as a devDependency or the repo is accessible via git`
100
+ );
142
101
  return [];
143
102
  }
103
+ log(`[schema-generator] found '${serviceName}' (${source.endpoints.length.toString()} endpoint(s))`);
144
104
  const results = [];
145
105
  for (const { path: endpoint, yamlContent } of source.endpoints) {
146
106
  try {
@@ -155,10 +115,12 @@ function generateSchemasForService(serviceName, outputDir) {
155
115
  const dir = `${outputDir}/${versionFolder}`;
156
116
  mkdirSync(dir, { recursive: true });
157
117
  writeFileSync(`${dir}/${SWAGGER_SCHEMA_DEREF_FILENAME}`, JSON.stringify(schema, void 0, 2));
158
- log(`cached schema to ${dir}/${SWAGGER_SCHEMA_DEREF_FILENAME}`);
118
+ log(`[schema-generator] cached schema to ${dir}/${SWAGGER_SCHEMA_DEREF_FILENAME}`);
159
119
  }
160
120
  } catch (error) {
161
- log("error generating schema for endpoint", endpoint, error);
121
+ log(
122
+ `[schema-generator] error processing endpoint ${endpoint}: ${error instanceof Error ? error.message : String(error)}`
123
+ );
162
124
  }
163
125
  }
164
126
  return results;
@@ -166,4 +128,4 @@ function generateSchemasForService(serviceName, outputDir) {
166
128
  export {
167
129
  generateSchemasForService
168
130
  };
169
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL29wZW5hcGkvc2VydmljZS1zY2hlbWEtZ2VuZXJhdG9yLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsWUFBWSxXQUFXLGNBQWMscUJBQXFCO0FBRW5FLE9BQU8sV0FBVztBQUVsQixTQUEwQiw4QkFBOEI7QUFFeEQsSUFBTSxNQUFNLE1BQU0sK0NBQStDO0FBRWpFLElBQU0sdUJBQXVCLENBQUMsY0FBYyxtQkFBbUI7QUFDL0QsSUFBTSxnQ0FBZ0M7QUFhdEMsU0FBUyxnQkFBZ0IsU0FBaUM7QUFDeEQsUUFBTSxjQUFjLFFBQVEsZUFBZSxDQUFDO0FBRTVDLFdBQVMsV0FBVyxPQUFnQixZQUF5QixvQkFBSSxJQUFZLEdBQVk7QUFDdkYsUUFBSSxVQUFVLFFBQVEsT0FBTyxVQUFVLFVBQVU7QUFDL0MsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsYUFBTyxNQUFNLElBQUksQ0FBQyxTQUFTLFdBQVcsTUFBTSxTQUFTLENBQUM7QUFBQSxJQUN4RDtBQUNBLFVBQU0sTUFBTTtBQUNaLFFBQUksT0FBTyxJQUFJLE1BQU0sTUFBTSxVQUFVO0FBQ25DLFlBQU0sVUFBVSxrQ0FBa0MsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLFNBQVMsTUFBTTtBQUNwRixVQUFJLFlBQVksVUFBYSxDQUFDLFVBQVUsSUFBSSxPQUFPLEdBQUc7QUFDcEQsZUFBTyxXQUFXLFlBQVksT0FBTyxHQUFHLG9CQUFJLElBQVksQ0FBQyxHQUFHLFdBQVcsT0FBTyxDQUFDLENBQUM7QUFBQSxNQUNsRjtBQUFBLElBQ0Y7QUFDQSxXQUFPLE9BQU8sWUFBWSxPQUFPLFFBQVEsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztBQUFBLEVBQ3RHO0FBRUEsUUFBTSxlQUFlLFdBQVcs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
131
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL29wZW5hcGkvc2VydmljZS1zY2hlbWEtZ2VuZXJhdG9yLnRzIl0sCiAgIm1hcHBpbmdzIjogIjtBQUVBLFNBQVMsWUFBWSxXQUFXLGNBQWMscUJBQXFCO0FBRW5FLE9BQU8sV0FBVztBQUVsQixTQUEwQiw4QkFBOEI7QUFFeEQsSUFBTSxNQUFNLE1BQU0sK0NBQStDO0FBRWpFLElBQU0sdUJBQXVCLENBQUMsY0FBYyxtQkFBbUI7QUFDL0QsSUFBTSxnQ0FBZ0M7QUFhdEMsU0FBUyxnQkFBZ0IsU0FBaUM7QUFDeEQsUUFBTSxjQUFjLFFBQVEsZUFBZSxDQUFDO0FBRTVDLFdBQVMsV0FBVyxPQUFnQixZQUF5QixvQkFBSSxJQUFZLEdBQVk7QUFDdkYsUUFBSSxVQUFVLFFBQVEsT0FBTyxVQUFVLFVBQVU7QUFDL0MsYUFBTztBQUFBLElBQ1Q7QUFDQSxRQUFJLE1BQU0sUUFBUSxLQUFLLEdBQUc7QUFDeEIsYUFBTyxNQUFNLElBQUksQ0FBQyxTQUFTLFdBQVcsTUFBTSxTQUFTLENBQUM7QUFBQSxJQUN4RDtBQUNBLFVBQU0sTUFBTTtBQUNaLFFBQUksT0FBTyxJQUFJLE1BQU0sTUFBTSxVQUFVO0FBQ25DLFlBQU0sVUFBVSxrQ0FBa0MsS0FBSyxJQUFJLE1BQU0sQ0FBQyxHQUFHLFNBQVMsTUFBTTtBQUNwRixVQUFJLFlBQVksVUFBYSxDQUFDLFVBQVUsSUFBSSxPQUFPLEdBQUc7QUFDcEQsZUFBTyxXQUFXLFlBQVksT0FBTyxHQUFHLG9CQUFJLElBQVksQ0FBQyxHQUFHLFdBQVcsT0FBTyxDQUFDLENBQUM7QUFBQSxNQUNsRjtBQUFBLElBQ0Y7QUFDQSxXQUFPLE9BQU8sWUFBWSxPQUFPLFFBQVEsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztBQUFBLEVBQ3RHO0FBRUEsUUFBTSxlQUFlLFdBQVcsUUFBUSxJQUFJO0FBQzVDLE1B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
@@ -64,3 +64,7 @@ export declare function extractJsonExtractCalls(expr: unknown): JsonExtractCall[
64
64
  export declare function extractBracketAccessorPath(expr: unknown): string | undefined;
65
65
  /** Return true if the expression tree contains any function or aggregate call. */
66
66
  export declare function hasFunctionCalls(expr: unknown): boolean;
67
+ /** Return true when the expression tree contains any CAST / TRY_CAST to ARRAY<…>. */
68
+ export declare function containsCastToArray(expr: unknown): boolean;
69
+ /** Return true when the expression tree contains any CAST / TRY_CAST to MAP<…>. */
70
+ export declare function containsCastToMap(expr: unknown): boolean;
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@checkdigit/eslint-plugin","version":"7.18.0-PR.143-b064","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":">=22.18"},"service":{"api":{"root":"src","endpoints":["api/v1"]}}}
1
+ {"name":"@checkdigit/eslint-plugin","version":"7.18.0-PR.143-b6d4","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":">=22.18"},"service":{"api":{"root":"src","endpoints":["api/v1"]}}}