on-zero 0.16.9 → 0.16.10

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 (46) hide show
  1. package/dist/cjs/generate-layout.cjs +53 -0
  2. package/dist/cjs/generate-layout.native.js +179 -42
  3. package/dist/cjs/generate-layout.native.js.map +1 -1
  4. package/dist/cjs/generate-lite.cjs +18 -0
  5. package/dist/cjs/generate-lite.native.js +339 -281
  6. package/dist/cjs/generate-lite.native.js.map +1 -1
  7. package/dist/cjs/generate-lite.test.cjs +37 -0
  8. package/dist/cjs/generate-lite.test.native.js +38 -0
  9. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  10. package/dist/cjs/generate.test.cjs +25 -0
  11. package/dist/cjs/generate.test.native.js +25 -0
  12. package/dist/cjs/generate.test.native.js.map +1 -1
  13. package/dist/cjs/useQuery.aggregate.zero.test.cjs +117 -0
  14. package/dist/cjs/useQuery.aggregate.zero.test.native.js +133 -0
  15. package/dist/cjs/useQuery.aggregate.zero.test.native.js.map +1 -0
  16. package/dist/esm/generate-layout.mjs +53 -0
  17. package/dist/esm/generate-layout.mjs.map +1 -1
  18. package/dist/esm/generate-layout.native.js +179 -42
  19. package/dist/esm/generate-layout.native.js.map +1 -1
  20. package/dist/esm/generate-lite.mjs +18 -0
  21. package/dist/esm/generate-lite.mjs.map +1 -1
  22. package/dist/esm/generate-lite.native.js +339 -281
  23. package/dist/esm/generate-lite.native.js.map +1 -1
  24. package/dist/esm/generate-lite.test.mjs +37 -0
  25. package/dist/esm/generate-lite.test.mjs.map +1 -1
  26. package/dist/esm/generate-lite.test.native.js +38 -0
  27. package/dist/esm/generate-lite.test.native.js.map +1 -1
  28. package/dist/esm/generate.test.mjs +25 -0
  29. package/dist/esm/generate.test.mjs.map +1 -1
  30. package/dist/esm/generate.test.native.js +25 -0
  31. package/dist/esm/generate.test.native.js.map +1 -1
  32. package/dist/esm/useQuery.aggregate.zero.test.mjs +118 -0
  33. package/dist/esm/useQuery.aggregate.zero.test.mjs.map +1 -0
  34. package/dist/esm/useQuery.aggregate.zero.test.native.js +131 -0
  35. package/dist/esm/useQuery.aggregate.zero.test.native.js.map +1 -0
  36. package/package.json +2 -2
  37. package/src/generate-layout.ts +89 -0
  38. package/src/generate-lite.test.ts +35 -0
  39. package/src/generate-lite.ts +25 -0
  40. package/src/generate.test.ts +31 -0
  41. package/src/useQuery.aggregate.zero.test.tsx +115 -0
  42. package/types/generate-layout.d.ts.map +1 -1
  43. package/types/generate-lite.d.ts +1 -0
  44. package/types/generate-lite.d.ts.map +1 -1
  45. package/types/useQuery.aggregate.zero.test.d.ts +5 -0
  46. package/types/useQuery.aggregate.zero.test.d.ts.map +1 -0
@@ -462,6 +462,50 @@ function queriedTables(ts, namespace, relations) {
462
462
  }
463
463
  return reached;
464
464
  }
465
+ function aggregateTables(ts, namespace) {
466
+ if (!namespace.aggregatePath) return [];
467
+ const source = ts.createSourceFile(namespace.aggregatePath, readFileSync(namespace.aggregatePath, "utf8"), ts.ScriptTarget.Latest, true);
468
+ const unwrap = node => {
469
+ let current = node;
470
+ while (ts.isSatisfiesExpression(current) || ts.isAsExpression(current) || ts.isParenthesizedExpression(current)) {
471
+ current = current.expression;
472
+ }
473
+ return current;
474
+ };
475
+ const tables = /* @__PURE__ */new Set();
476
+ for (const statement of source.statements) {
477
+ if (!ts.isVariableStatement(statement)) continue;
478
+ if (!statement.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.ExportKeyword)) {
479
+ continue;
480
+ }
481
+ for (const declaration of statement.declarationList.declarations) {
482
+ if (!ts.isIdentifier(declaration.name) || declaration.name.text !== "aggregates" || !declaration.initializer) {
483
+ continue;
484
+ }
485
+ const definitions = unwrap(declaration.initializer);
486
+ if (!ts.isObjectLiteralExpression(definitions)) {
487
+ throw new Error(`[on-zero] ${namespace.aggregatePath} must export aggregates as an object literal`);
488
+ }
489
+ for (const property of definitions.properties) {
490
+ if (!ts.isPropertyAssignment(property)) {
491
+ throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate definitions must use explicit properties`);
492
+ }
493
+ const definition = unwrap(property.initializer);
494
+ if (!ts.isObjectLiteralExpression(definition)) {
495
+ throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} must be an object literal`);
496
+ }
497
+ for (const fieldName of ["source", "target"]) {
498
+ const field = definition.properties.find(candidate => ts.isPropertyAssignment(candidate) && propertyName(ts, candidate.name) === fieldName);
499
+ if (!field || !ts.isStringLiteralLike(unwrap(field.initializer))) {
500
+ throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} ${fieldName} must be a string literal`);
501
+ }
502
+ tables.add(unwrap(field.initializer).text);
503
+ }
504
+ }
505
+ }
506
+ }
507
+ return [...tables].sort();
508
+ }
465
509
  function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
466
510
  if (!namespace.modelPath) return [];
467
511
  const tables = /* @__PURE__ */new Set();
@@ -591,6 +635,15 @@ function discoverDataLayout(ts, baseDir, configPath) {
591
635
  const tables = new Set(instance.namespaces.map(namespace => namespace.table).filter(table => table !== null));
592
636
  const syncTables = new Set(tables);
593
637
  for (const namespace of instance.namespaces) {
638
+ for (const table of aggregateTables(ts, namespace)) {
639
+ const owner = tableOwners.get(table) ?? relatedOwners.get(table);
640
+ if (owner && owner !== instance.name) {
641
+ throw new Error(`[on-zero] ${namespace.name} aggregates in instance '${instance.name}' reach table '${table}' owned by instance '${owner}'`);
642
+ }
643
+ relatedOwners.set(table, instance.name);
644
+ tables.add(table);
645
+ syncTables.add(table);
646
+ }
594
647
  for (const reached of queriedTables(ts, namespace, relations)) {
595
648
  const owner = tableOwners.get(reached.table) ?? relatedOwners.get(reached.table);
596
649
  if (owner && owner !== instance.name) {
@@ -1 +1 @@
1
- {"version":3,"names":["existsSync","readFileSync","readdirSync","statSync","basename","dirname","relative","resolve","sep","isSourceFile","name","endsWith","toImportPath","baseDir","path","split","join","replace","isWithin","root","child","startsWith","propertyName","ts","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","configPath","Error","source","createSourceFile","ScriptTarget","Latest","hasParseErrors","config","statement","statements","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","value","arguments","isObjectLiteralExpression","rootOptions","Map","option","properties","isPropertyAssignment","has","set","initializer","keys","instancesNode","get","instances","property","some","instance","dir","scope","supportTables","seen","Set","optionName","add","isArrayLiteralExpression","table","elements","push","isDirectory","length","duplicate","find","candidate","Boolean","parseDiagnostics","namespaceExportKinds","none","model","query","displayPath","console","warn","functions","exported","isVariableStatement","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","visiting","reachesQuery","node","isPropertyAccessExpression","helper","found","delete","forEachChild","mutationTable","namespace","schemaTable","firstArgument","isStringLiteralLike","visit","discoverNamespaces","instanceDirs","namespaces","entry","withFileTypes","sort","a","b","localeCompare","isFile","kinds","queryPath","modelPath","aggregatePath","sourcePaths","folder","hasQueries","hasMutations","hasAggregates","includes","filter","metadataPaths","paths","relations","databaseDir","relationTargets","path2","factory","isParenthesizedExpression","tableProperty","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","isVariableDeclaration","tableNames","foundColumns","inspect","argument","test","names","map","tableName","queriedTables","reached","rootTable","match","currentTable","nameArg","sourceTable","target","callback","key","helperRoot","queryRoot","mutationSupportTables","sourceRoots","tables","visited","scan","transaction","isImportDeclaration","isExportDeclaration","moduleSpecifier","specifier","unresolved","slice","assertNoInstanceFiles","roots","walk","assertNoUnclaimedNamespaces","instanceDir","discoverDataLayout","configured","syncTables","declaredSupportTables","namespaceOwners","owner","tableOwners","metadata","relatedOwners","namespaceImportPath"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["existsSync","readFileSync","readdirSync","statSync","basename","dirname","relative","resolve","sep","isSourceFile","name","endsWith","toImportPath","baseDir","path","split","join","replace","isWithin","root","child","startsWith","propertyName","ts","isIdentifier","isStringLiteral","isNumericLiteral","text","readDataConfig","configPath","Error","source","createSourceFile","ScriptTarget","Latest","hasParseErrors","config","statement","statements","isExportAssignment","isExportEquals","call","expression","isCallExpression","getText","value","arguments","isObjectLiteralExpression","rootOptions","Map","option","properties","isPropertyAssignment","has","set","initializer","keys","instancesNode","get","instances","property","some","instance","dir","scope","supportTables","seen","Set","optionName","add","isArrayLiteralExpression","table","elements","push","isDirectory","length","duplicate","find","candidate","Boolean","parseDiagnostics","namespaceExportKinds","none","model","query","displayPath","console","warn","functions","exported","isVariableStatement","isExported","modifiers","modifier","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","initializerText","isArrowFunction","isFunctionExpression","body","isFunctionDeclaration","visiting","reachesQuery","node","isPropertyAccessExpression","helper","found","delete","forEachChild","mutationTable","namespace","schemaTable","firstArgument","isStringLiteralLike","visit","discoverNamespaces","instanceDirs","namespaces","entry","withFileTypes","sort","a","b","localeCompare","isFile","kinds","queryPath","modelPath","aggregatePath","sourcePaths","folder","hasQueries","hasMutations","hasAggregates","includes","filter","metadataPaths","paths","relations","databaseDir","relationTargets","path2","factory","isParenthesizedExpression","tableProperty","tableRelations","relationProperty","tableColumns","columns","sources","flatMap","isVariableDeclaration","tableNames","foundColumns","inspect","argument","test","names","map","tableName","queriedTables","reached","rootTable","match","currentTable","nameArg","sourceTable","target","callback","key","helperRoot","queryRoot","aggregateTables","unwrap","current","isSatisfiesExpression","isAsExpression","tables","definitions","definition","fieldName","field","mutationSupportTables","sourceRoots","visited","scan","transaction","isImportDeclaration","isExportDeclaration","moduleSpecifier","specifier","unresolved","slice","assertNoInstanceFiles","roots","walk","assertNoUnclaimedNamespaces","instanceDir","discoverDataLayout","configured","syncTables","declaredSupportTables","namespaceOwners","owner","tableOwners","metadata","relatedOwners","namespaceImportPath"],"sources":["../../src/generate-layout.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -943,6 +943,114 @@ function queriedTables(ts, namespace, relations) {
943
943
  }
944
944
  return reached;
945
945
  }
946
+ function aggregateTables(ts, namespace) {
947
+ if (!namespace.aggregatePath) return [];
948
+ var source = ts.createSourceFile(namespace.aggregatePath, readFileSync(namespace.aggregatePath, "utf8"), ts.ScriptTarget.Latest, true);
949
+ var unwrap = function unwrap2(node) {
950
+ var current = node;
951
+ while (ts.isSatisfiesExpression(current) || ts.isAsExpression(current) || ts.isParenthesizedExpression(current)) {
952
+ current = current.expression;
953
+ }
954
+ return current;
955
+ };
956
+ var tables = /* @__PURE__ */new Set();
957
+ var _iteratorNormalCompletion = true,
958
+ _didIteratorError = false,
959
+ _iteratorError = void 0;
960
+ try {
961
+ for (var _iterator = source.statements[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
962
+ var statement = _step.value;
963
+ var _statement_modifiers;
964
+ if (!ts.isVariableStatement(statement)) continue;
965
+ if (!((_statement_modifiers = statement.modifiers) === null || _statement_modifiers === void 0 ? void 0 : _statement_modifiers.some(function (modifier) {
966
+ return modifier.kind === ts.SyntaxKind.ExportKeyword;
967
+ }))) {
968
+ continue;
969
+ }
970
+ var _iteratorNormalCompletion1 = true,
971
+ _didIteratorError1 = false,
972
+ _iteratorError1 = void 0;
973
+ try {
974
+ for (var _iterator1 = statement.declarationList.declarations[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
975
+ var declaration = _step1.value;
976
+ if (!ts.isIdentifier(declaration.name) || declaration.name.text !== "aggregates" || !declaration.initializer) {
977
+ continue;
978
+ }
979
+ var definitions = unwrap(declaration.initializer);
980
+ if (!ts.isObjectLiteralExpression(definitions)) {
981
+ throw new Error(`[on-zero] ${namespace.aggregatePath} must export aggregates as an object literal`);
982
+ }
983
+ var _iteratorNormalCompletion2 = true,
984
+ _didIteratorError2 = false,
985
+ _iteratorError2 = void 0;
986
+ try {
987
+ for (var _iterator2 = definitions.properties[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
988
+ var _loop = function (_i2, _iter2) {
989
+ var fieldName = _iter2[_i2];
990
+ var field = definition.properties.find(function (candidate) {
991
+ return ts.isPropertyAssignment(candidate) && propertyName(ts, candidate.name) === fieldName;
992
+ });
993
+ if (!field || !ts.isStringLiteralLike(unwrap(field.initializer))) {
994
+ throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} ${fieldName} must be a string literal`);
995
+ }
996
+ tables.add(unwrap(field.initializer).text);
997
+ };
998
+ var property = _step2.value;
999
+ if (!ts.isPropertyAssignment(property)) {
1000
+ throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate definitions must use explicit properties`);
1001
+ }
1002
+ var definition = unwrap(property.initializer);
1003
+ if (!ts.isObjectLiteralExpression(definition)) {
1004
+ throw new Error(`[on-zero] ${namespace.aggregatePath} aggregate ${property.name.getText(source)} must be an object literal`);
1005
+ }
1006
+ for (var _i = 0, _iter = ["source", "target"]; _i < _iter.length; _i++) _loop(_i, _iter);
1007
+ }
1008
+ } catch (err) {
1009
+ _didIteratorError2 = true;
1010
+ _iteratorError2 = err;
1011
+ } finally {
1012
+ try {
1013
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
1014
+ _iterator2.return();
1015
+ }
1016
+ } finally {
1017
+ if (_didIteratorError2) {
1018
+ throw _iteratorError2;
1019
+ }
1020
+ }
1021
+ }
1022
+ }
1023
+ } catch (err) {
1024
+ _didIteratorError1 = true;
1025
+ _iteratorError1 = err;
1026
+ } finally {
1027
+ try {
1028
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
1029
+ _iterator1.return();
1030
+ }
1031
+ } finally {
1032
+ if (_didIteratorError1) {
1033
+ throw _iteratorError1;
1034
+ }
1035
+ }
1036
+ }
1037
+ }
1038
+ } catch (err) {
1039
+ _didIteratorError = true;
1040
+ _iteratorError = err;
1041
+ } finally {
1042
+ try {
1043
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1044
+ _iterator.return();
1045
+ }
1046
+ } finally {
1047
+ if (_didIteratorError) {
1048
+ throw _iteratorError;
1049
+ }
1050
+ }
1051
+ }
1052
+ return [...tables].sort();
1053
+ }
946
1054
  function mutationSupportTables(ts, baseDir, sourceRoots, namespace) {
947
1055
  if (!namespace.modelPath) return [];
948
1056
  var tables = /* @__PURE__ */new Set();
@@ -1226,16 +1334,16 @@ function discoverDataLayout(ts, baseDir, configPath) {
1226
1334
  _didIteratorError5 = false,
1227
1335
  _iteratorError5 = void 0;
1228
1336
  try {
1229
- for (var _iterator5 = queriedTables(ts, namespace2, relations)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
1230
- var reached = _step5.value;
1337
+ for (var _iterator5 = aggregateTables(ts, namespace2)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
1338
+ var table = _step5.value;
1231
1339
  var _tableOwners_get;
1232
- var owner2 = (_tableOwners_get = tableOwners.get(reached.table)) !== null && _tableOwners_get !== void 0 ? _tableOwners_get : relatedOwners.get(reached.table);
1340
+ var owner2 = (_tableOwners_get = tableOwners.get(table)) !== null && _tableOwners_get !== void 0 ? _tableOwners_get : relatedOwners.get(table);
1233
1341
  if (owner2 && owner2 !== instance1.name) {
1234
- throw new Error(`[on-zero] ${namespace2.name}.${reached.query} in instance '${instance1.name}' reaches table '${reached.table}' owned by instance '${owner2}'`);
1342
+ throw new Error(`[on-zero] ${namespace2.name} aggregates in instance '${instance1.name}' reach table '${table}' owned by instance '${owner2}'`);
1235
1343
  }
1236
- relatedOwners.set(reached.table, instance1.name);
1237
- if (reached.root) tables.add(reached.table);
1238
- syncTables.add(reached.table);
1344
+ relatedOwners.set(table, instance1.name);
1345
+ tables.add(table);
1346
+ syncTables.add(table);
1239
1347
  }
1240
1348
  } catch (err) {
1241
1349
  _didIteratorError5 = true;
@@ -1251,6 +1359,35 @@ function discoverDataLayout(ts, baseDir, configPath) {
1251
1359
  }
1252
1360
  }
1253
1361
  }
1362
+ var _iteratorNormalCompletion6 = true,
1363
+ _didIteratorError6 = false,
1364
+ _iteratorError6 = void 0;
1365
+ try {
1366
+ for (var _iterator6 = queriedTables(ts, namespace2, relations)[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
1367
+ var reached = _step6.value;
1368
+ var _tableOwners_get1;
1369
+ var owner3 = (_tableOwners_get1 = tableOwners.get(reached.table)) !== null && _tableOwners_get1 !== void 0 ? _tableOwners_get1 : relatedOwners.get(reached.table);
1370
+ if (owner3 && owner3 !== instance1.name) {
1371
+ throw new Error(`[on-zero] ${namespace2.name}.${reached.query} in instance '${instance1.name}' reaches table '${reached.table}' owned by instance '${owner3}'`);
1372
+ }
1373
+ relatedOwners.set(reached.table, instance1.name);
1374
+ if (reached.root) tables.add(reached.table);
1375
+ syncTables.add(reached.table);
1376
+ }
1377
+ } catch (err) {
1378
+ _didIteratorError6 = true;
1379
+ _iteratorError6 = err;
1380
+ } finally {
1381
+ try {
1382
+ if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
1383
+ _iterator6.return();
1384
+ }
1385
+ } finally {
1386
+ if (_didIteratorError6) {
1387
+ throw _iteratorError6;
1388
+ }
1389
+ }
1390
+ }
1254
1391
  }
1255
1392
  } catch (err) {
1256
1393
  _didIteratorError4 = true;
@@ -1269,28 +1406,28 @@ function discoverDataLayout(ts, baseDir, configPath) {
1269
1406
  instance1.tables = [...tables].sort();
1270
1407
  instance1.syncTables = [...syncTables].sort();
1271
1408
  if (instance1.scope) {
1272
- var _iteratorNormalCompletion6 = true,
1273
- _didIteratorError6 = false,
1274
- _iteratorError6 = void 0;
1409
+ var _iteratorNormalCompletion7 = true,
1410
+ _didIteratorError7 = false,
1411
+ _iteratorError7 = void 0;
1275
1412
  try {
1276
- for (var _iterator6 = instance1.syncTables[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
1277
- var table = _step6.value;
1413
+ for (var _iterator7 = instance1.syncTables[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
1414
+ var table1 = _step7.value;
1278
1415
  var _columns_get;
1279
- if (!((_columns_get = columns.get(table)) === null || _columns_get === void 0 ? void 0 : _columns_get.has(instance1.scope))) {
1280
- throw new Error(`[on-zero] table '${table}' in instance '${instance1.name}' is missing scope column '${instance1.scope}'`);
1416
+ if (!((_columns_get = columns.get(table1)) === null || _columns_get === void 0 ? void 0 : _columns_get.has(instance1.scope))) {
1417
+ throw new Error(`[on-zero] table '${table1}' in instance '${instance1.name}' is missing scope column '${instance1.scope}'`);
1281
1418
  }
1282
1419
  }
1283
1420
  } catch (err) {
1284
- _didIteratorError6 = true;
1285
- _iteratorError6 = err;
1421
+ _didIteratorError7 = true;
1422
+ _iteratorError7 = err;
1286
1423
  } finally {
1287
1424
  try {
1288
- if (!_iteratorNormalCompletion6 && _iterator6.return != null) {
1289
- _iterator6.return();
1425
+ if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
1426
+ _iterator7.return();
1290
1427
  }
1291
1428
  } finally {
1292
- if (_didIteratorError6) {
1293
- throw _iteratorError6;
1429
+ if (_didIteratorError7) {
1430
+ throw _iteratorError7;
1294
1431
  }
1295
1432
  }
1296
1433
  }
@@ -1310,19 +1447,19 @@ function discoverDataLayout(ts, baseDir, configPath) {
1310
1447
  }
1311
1448
  }
1312
1449
  }
1313
- var _iteratorNormalCompletion7 = true,
1314
- _didIteratorError7 = false,
1315
- _iteratorError7 = void 0;
1450
+ var _iteratorNormalCompletion8 = true,
1451
+ _didIteratorError8 = false,
1452
+ _iteratorError8 = void 0;
1316
1453
  try {
1317
1454
  var _loop = function () {
1318
- var instance2 = _step7.value;
1455
+ var instance2 = _step8.value;
1319
1456
  var supportTables = new Set(instance2.declaredSupportTables);
1320
- var _iteratorNormalCompletion8 = true,
1321
- _didIteratorError8 = false,
1322
- _iteratorError8 = void 0;
1457
+ var _iteratorNormalCompletion9 = true,
1458
+ _didIteratorError9 = false,
1459
+ _iteratorError9 = void 0;
1323
1460
  try {
1324
- for (var _iterator8 = instance2.namespaces[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {
1325
- var namespace3 = _step8.value;
1461
+ for (var _iterator9 = instance2.namespaces[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {
1462
+ var namespace3 = _step9.value;
1326
1463
  var _iteratorNormalCompletion12 = true,
1327
1464
  _didIteratorError12 = false,
1328
1465
  _iteratorError12 = void 0;
@@ -1350,16 +1487,16 @@ function discoverDataLayout(ts, baseDir, configPath) {
1350
1487
  }
1351
1488
  }
1352
1489
  } catch (err) {
1353
- _didIteratorError8 = true;
1354
- _iteratorError8 = err;
1490
+ _didIteratorError9 = true;
1491
+ _iteratorError9 = err;
1355
1492
  } finally {
1356
1493
  try {
1357
- if (!_iteratorNormalCompletion8 && _iterator8.return != null) {
1358
- _iterator8.return();
1494
+ if (!_iteratorNormalCompletion9 && _iterator9.return != null) {
1495
+ _iterator9.return();
1359
1496
  }
1360
1497
  } finally {
1361
- if (_didIteratorError8) {
1362
- throw _iteratorError8;
1498
+ if (_didIteratorError9) {
1499
+ throw _iteratorError9;
1363
1500
  }
1364
1501
  }
1365
1502
  }
@@ -1367,18 +1504,18 @@ function discoverDataLayout(ts, baseDir, configPath) {
1367
1504
  return !instance2.syncTables.includes(table3);
1368
1505
  }).sort();
1369
1506
  };
1370
- for (var _iterator7 = instances[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) _loop();
1507
+ for (var _iterator8 = instances[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) _loop();
1371
1508
  } catch (err) {
1372
- _didIteratorError7 = true;
1373
- _iteratorError7 = err;
1509
+ _didIteratorError8 = true;
1510
+ _iteratorError8 = err;
1374
1511
  } finally {
1375
1512
  try {
1376
- if (!_iteratorNormalCompletion7 && _iterator7.return != null) {
1377
- _iterator7.return();
1513
+ if (!_iteratorNormalCompletion8 && _iterator8.return != null) {
1514
+ _iterator8.return();
1378
1515
  }
1379
1516
  } finally {
1380
- if (_didIteratorError7) {
1381
- throw _iteratorError7;
1517
+ if (_didIteratorError8) {
1518
+ throw _iteratorError8;
1382
1519
  }
1383
1520
  }
1384
1521
  }