@subsquid/openreader 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/lib/context.d.ts +5 -2
  2. package/lib/context.d.ts.map +1 -1
  3. package/lib/ir/args.d.ts +1 -1
  4. package/lib/ir/args.d.ts.map +1 -1
  5. package/lib/ir/connection.d.ts +3 -4
  6. package/lib/ir/connection.d.ts.map +1 -1
  7. package/lib/ir/connection.js.map +1 -1
  8. package/lib/ir/fields.d.ts +6 -2
  9. package/lib/ir/fields.d.ts.map +1 -1
  10. package/lib/ir/fields.js +15 -0
  11. package/lib/ir/fields.js.map +1 -1
  12. package/lib/limit.size.d.ts +7 -2
  13. package/lib/limit.size.d.ts.map +1 -1
  14. package/lib/limit.size.js +106 -12
  15. package/lib/limit.size.js.map +1 -1
  16. package/lib/main.js +6 -9
  17. package/lib/main.js.map +1 -1
  18. package/lib/model.d.ts +3 -1
  19. package/lib/model.d.ts.map +1 -1
  20. package/lib/model.schema.d.ts +2 -2
  21. package/lib/model.schema.d.ts.map +1 -1
  22. package/lib/model.schema.js +29 -7
  23. package/lib/model.schema.js.map +1 -1
  24. package/lib/model.tools.d.ts +6 -1
  25. package/lib/model.tools.d.ts.map +1 -1
  26. package/lib/model.tools.js +111 -8
  27. package/lib/model.tools.js.map +1 -1
  28. package/lib/opencrud/orderBy.d.ts +2 -2
  29. package/lib/opencrud/orderBy.d.ts.map +1 -1
  30. package/lib/opencrud/orderBy.js +13 -17
  31. package/lib/opencrud/orderBy.js.map +1 -1
  32. package/lib/opencrud/schema.d.ts +4 -4
  33. package/lib/opencrud/schema.d.ts.map +1 -1
  34. package/lib/opencrud/schema.js +60 -64
  35. package/lib/opencrud/schema.js.map +1 -1
  36. package/lib/opencrud/tree.d.ts +9 -7
  37. package/lib/opencrud/tree.d.ts.map +1 -1
  38. package/lib/opencrud/tree.js +32 -14
  39. package/lib/opencrud/tree.js.map +1 -1
  40. package/lib/server.d.ts +16 -12
  41. package/lib/server.d.ts.map +1 -1
  42. package/lib/server.js +29 -4
  43. package/lib/server.js.map +1 -1
  44. package/lib/sql/cursor.js +2 -2
  45. package/lib/sql/cursor.js.map +1 -1
  46. package/lib/sql/mapping.d.ts +3 -1
  47. package/lib/sql/mapping.d.ts.map +1 -1
  48. package/lib/sql/mapping.js +16 -1
  49. package/lib/sql/mapping.js.map +1 -1
  50. package/lib/sql/printer.d.ts +29 -11
  51. package/lib/sql/printer.d.ts.map +1 -1
  52. package/lib/sql/printer.js +106 -10
  53. package/lib/sql/printer.js.map +1 -1
  54. package/lib/sql/query.d.ts +11 -11
  55. package/lib/sql/query.d.ts.map +1 -1
  56. package/lib/sql/query.js +41 -19
  57. package/lib/sql/query.js.map +1 -1
  58. package/lib/test/limits.test.d.ts +2 -0
  59. package/lib/test/limits.test.d.ts.map +1 -0
  60. package/lib/test/limits.test.js +159 -0
  61. package/lib/test/limits.test.js.map +1 -0
  62. package/lib/test/queryable.test.d.ts +2 -0
  63. package/lib/test/queryable.test.d.ts.map +1 -0
  64. package/lib/test/queryable.test.js +255 -0
  65. package/lib/test/queryable.test.js.map +1 -0
  66. package/lib/test/setup.d.ts +2 -1
  67. package/lib/test/setup.d.ts.map +1 -1
  68. package/lib/test/setup.js +5 -2
  69. package/lib/test/setup.js.map +1 -1
  70. package/lib/util/execute.d.ts +5 -0
  71. package/lib/util/execute.d.ts.map +1 -0
  72. package/lib/util/execute.js +28 -0
  73. package/lib/util/execute.js.map +1 -0
  74. package/lib/util/limit.d.ts +11 -0
  75. package/lib/util/limit.d.ts.map +1 -0
  76. package/lib/util/limit.js +39 -0
  77. package/lib/util/limit.js.map +1 -0
  78. package/package.json +3 -3
  79. package/src/context.ts +5 -2
  80. package/src/ir/args.ts +1 -1
  81. package/src/ir/connection.ts +3 -4
  82. package/src/ir/fields.ts +22 -2
  83. package/src/limit.size.ts +122 -13
  84. package/src/main.ts +18 -20
  85. package/src/model.schema.ts +40 -13
  86. package/src/model.tools.ts +121 -8
  87. package/src/model.ts +3 -1
  88. package/src/opencrud/orderBy.ts +13 -17
  89. package/src/opencrud/schema.ts +86 -85
  90. package/src/opencrud/tree.ts +55 -26
  91. package/src/server.ts +66 -26
  92. package/src/sql/cursor.ts +2 -2
  93. package/src/sql/mapping.ts +18 -1
  94. package/src/sql/printer.ts +137 -21
  95. package/src/sql/query.ts +50 -30
  96. package/src/test/limits.test.ts +163 -0
  97. package/src/test/queryable.test.ts +258 -0
  98. package/src/test/setup.ts +6 -3
  99. package/src/util/execute.ts +53 -0
  100. package/src/util/limit.ts +34 -0
package/lib/sql/query.js CHANGED
@@ -3,29 +3,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EntityConnectionQuery = exports.EntityCountQuery = exports.EntityByIdQuery = exports.EntityListQuery = void 0;
6
+ exports.ConnectionQuery = exports.CountQuery = exports.EntityByIdQuery = exports.ListQuery = void 0;
7
7
  const util_internal_1 = require("@subsquid/util-internal");
8
8
  const assert_1 = __importDefault(require("assert"));
9
9
  const connection_1 = require("../ir/connection");
10
10
  const util_1 = require("../util/util");
11
11
  const mapping_1 = require("./mapping");
12
12
  const printer_1 = require("./printer");
13
- class EntityListQuery {
14
- constructor(model, dialect, entityName, fields, args) {
13
+ class ListQuery {
14
+ constructor(model, dialect, typeName, fields, args) {
15
15
  this.fields = fields;
16
16
  this.params = [];
17
- this.sql = new printer_1.EntityListQueryPrinter(model, dialect, entityName, this.params, args, fields).print();
17
+ if (model[typeName].kind == 'entity') {
18
+ (0, assert_1.default)(Array.isArray(fields));
19
+ this.sql = new printer_1.EntitySqlPrinter(model, dialect, typeName, this.params, args, fields).print();
20
+ }
21
+ else {
22
+ (0, assert_1.default)(!Array.isArray(fields));
23
+ this.sql = new printer_1.QueryableSqlPrinter(model, dialect, typeName, this.params, args, fields).print();
24
+ }
18
25
  }
19
26
  map(rows) {
20
- return (0, mapping_1.mapRows)(rows, this.fields);
27
+ if (Array.isArray(this.fields)) {
28
+ return (0, mapping_1.mapRows)(rows, this.fields);
29
+ }
30
+ else {
31
+ return (0, mapping_1.mapQueryableRows)(rows, this.fields);
32
+ }
21
33
  }
22
34
  }
23
- exports.EntityListQuery = EntityListQuery;
35
+ exports.ListQuery = ListQuery;
24
36
  class EntityByIdQuery {
25
37
  constructor(model, dialect, entityName, fields, id) {
26
38
  this.fields = fields;
27
39
  this.params = [];
28
- this.sql = new printer_1.EntityListQueryPrinter(model, dialect, entityName, this.params, { where: { op: 'eq', field: 'id', value: id } }, fields).print();
40
+ this.sql = new printer_1.EntitySqlPrinter(model, dialect, entityName, this.params, { where: { op: 'eq', field: 'id', value: id } }, fields).print();
29
41
  }
30
42
  map(rows) {
31
43
  (0, assert_1.default)(rows.length < 2);
@@ -33,18 +45,19 @@ class EntityByIdQuery {
33
45
  }
34
46
  }
35
47
  exports.EntityByIdQuery = EntityByIdQuery;
36
- class EntityCountQuery {
37
- constructor(model, dialect, entityName, where) {
48
+ class CountQuery {
49
+ constructor(model, dialect, typeName, where) {
38
50
  this.params = [];
39
- this.sql = 'SELECT count(*) ' + new printer_1.EntityListQueryPrinter(model, dialect, entityName, this.params, { where }).printFrom();
51
+ let Printer = model[typeName].kind == 'entity' ? printer_1.EntitySqlPrinter : printer_1.QueryableSqlPrinter;
52
+ this.sql = new Printer(model, dialect, typeName, this.params, { where }).printAsCount();
40
53
  }
41
54
  map(rows) {
42
55
  return toCount(rows);
43
56
  }
44
57
  }
45
- exports.EntityCountQuery = EntityCountQuery;
46
- class EntityConnectionQuery {
47
- constructor(model, dialect, entityName, req) {
58
+ exports.CountQuery = CountQuery;
59
+ class ConnectionQuery {
60
+ constructor(model, dialect, typeName, req) {
48
61
  this.params = [];
49
62
  this.offset = 0;
50
63
  this.limit = 100;
@@ -52,18 +65,27 @@ class EntityConnectionQuery {
52
65
  this.edgeCursor = req.edgeCursor;
53
66
  this.pageInfo = req.pageInfo;
54
67
  this.totalCount = req.totalCount;
55
- let printer = new printer_1.EntityListQueryPrinter(model, dialect, entityName, this.params, {
68
+ let args = {
56
69
  orderBy: req.orderBy,
57
70
  where: req.where,
58
71
  offset: this.offset,
59
72
  limit: this.limit + 1
60
- }, req.edgeNode);
61
- if (req.edgeNode?.length) {
73
+ };
74
+ let printer;
75
+ if (model[typeName].kind == 'entity') {
76
+ (0, assert_1.default)(req.edgeNode == null || Array.isArray(req.edgeNode));
77
+ printer = new printer_1.EntitySqlPrinter(model, dialect, typeName, this.params, args, req.edgeNode);
78
+ }
79
+ else {
80
+ (0, assert_1.default)(req.edgeNode == null || !Array.isArray(req.edgeNode));
81
+ printer = new printer_1.QueryableSqlPrinter(model, dialect, typeName, this.params, args, req.edgeNode);
82
+ }
83
+ if (req.edgeNode) {
62
84
  this.edgeNode = req.edgeNode;
63
85
  this.sql = printer.print();
64
86
  }
65
87
  else {
66
- this.sql = `SELECT count(*) FROM (SELECT true ${printer.printFrom()}) AS rows`;
88
+ this.sql = printer.printAsCount();
67
89
  }
68
90
  }
69
91
  setOffsetAndLimit(req) {
@@ -78,7 +100,7 @@ class EntityConnectionQuery {
78
100
  map(rows) {
79
101
  let res = {};
80
102
  if (this.edgeNode) {
81
- let nodes = (0, mapping_1.mapRows)(rows, this.edgeNode);
103
+ let nodes = Array.isArray(this.edgeNode) ? (0, mapping_1.mapRows)(rows, this.edgeNode) : (0, mapping_1.mapQueryableRows)(rows, this.edgeNode);
82
104
  let edges = new Array(Math.min(this.limit, nodes.length));
83
105
  for (let i = 0; i < edges.length; i++) {
84
106
  edges[i] = {
@@ -126,7 +148,7 @@ class EntityConnectionQuery {
126
148
  }
127
149
  }
128
150
  }
129
- exports.EntityConnectionQuery = EntityConnectionQuery;
151
+ exports.ConnectionQuery = ConnectionQuery;
130
152
  function toCount(rows) {
131
153
  (0, assert_1.default)(rows.length == 1);
132
154
  return (0, util_1.toSafeInteger)(rows[0][0]);
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/sql/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/sql/query.ts"],"names":[],"mappings":";;;;;;AAAA,2DAAqD;AACrD,oDAA2B;AAG3B,iDAOyB;AAGzB,uCAA0C;AAC1C,uCAAmD;AACnD,uCAA+D;AAU/D,MAAa,SAAS;IAIlB,YACI,KAAY,EACZ,OAAgB,EAChB,QAAgB,EACR,MAAiB,EACzB,IAAkB;QADV,WAAM,GAAN,MAAM,CAAW;QANb,WAAM,GAAc,EAAE,CAAA;QASlC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE;YAClC,IAAA,gBAAM,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YAC7B,IAAI,CAAC,GAAG,GAAG,IAAI,0BAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;SAC/F;aAAM;YACH,IAAA,gBAAM,EAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;YAC9B,IAAI,CAAC,GAAG,GAAG,IAAI,6BAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,CAAA;SAClG;IACL,CAAC;IAED,GAAG,CAAC,IAAa;QACb,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC5B,OAAO,IAAA,iBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;SACpC;aAAM;YACH,OAAO,IAAA,0BAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;SAC7C;IACL,CAAC;CACJ;AA3BD,8BA2BC;AAGD,MAAa,eAAe;IAIxB,YACI,KAAY,EACZ,OAAgB,EAChB,UAAkB,EACV,MAAsB,EAC9B,EAAU;QADF,WAAM,GAAN,MAAM,CAAgB;QANlB,WAAM,GAAc,EAAE,CAAA;QASlC,IAAI,CAAC,GAAG,GAAG,IAAI,0BAAgB,CAC3B,KAAK,EACL,OAAO,EACP,UAAU,EACV,IAAI,CAAC,MAAM,EACX,EAAC,KAAK,EAAE,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,EAAC,EAC3C,MAAM,CACT,CAAC,KAAK,EAAE,CAAA;IACb,CAAC;IAED,GAAG,CAAC,IAAa;QACb,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACvB,OAAO,IAAA,iBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;CACJ;AAzBD,0CAyBC;AAGD,MAAa,UAAU;IAInB,YACI,KAAY,EACZ,OAAgB,EAChB,QAAgB,EAChB,KAAa;QAND,WAAM,GAAc,EAAE,CAAA;QAQlC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,0BAAgB,CAAC,CAAC,CAAC,6BAAmB,CAAA;QACvF,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC,YAAY,EAAE,CAAA;IACzF,CAAC;IAED,GAAG,CAAC,IAAa;QACb,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;CACJ;AAjBD,gCAiBC;AAGD,MAAa,eAAe;IAUxB,YACI,KAAY,EACZ,OAAgB,EAChB,QAAgB,EAChB,GAAsC;QAZ1B,WAAM,GAAc,EAAE,CAAA;QAC9B,WAAM,GAAG,CAAC,CAAA;QACV,UAAK,GAAG,GAAG,CAAA;QAYf,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;QAC5B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAA;QAEhC,IAAI,IAAI,GAAG;YACP,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;SACxB,CAAA;QAED,IAAI,OAAO,CAAA;QACX,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,QAAQ,EAAE;YAClC,IAAA,gBAAM,EAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC3D,OAAO,GAAG,IAAI,0BAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;SAC5F;aAAM;YACH,IAAA,gBAAM,EAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,OAAO,GAAG,IAAI,6BAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;SAC/F;QAED,IAAI,GAAG,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAA;YAC5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;SAC7B;aAAM;YACH,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAA;SACpC;IACL,CAAC;IAEO,iBAAiB,CAAC,GAAoC;QAC1D,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;YACnB,IAAI,CAAC,MAAM,GAAG,IAAA,6BAAa,EAAC,IAAA,wCAA2B,EAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;SACtE;QACD,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,EAAE;YACnB,IAAA,gBAAM,EAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;YACtB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;SACzB;IACL,CAAC;IAED,GAAG,CAAC,IAAa;QACb,IAAI,GAAG,GAA4B,EAAE,CAAA;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,iBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAA,0BAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC/G,IAAI,KAAK,GAA0B,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,KAAK,CAAC,CAAC,CAAC,GAAG;oBACP,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,wCAA2B,EAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBACzF,CAAA;aACJ;YACD,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;YACjB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7C,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;SACpD;aAAM;YACH,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;YACzB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACvC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;wBACX,MAAM,EAAE,IAAA,wCAA2B,EAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;qBAC3D,CAAA;iBACJ;aACJ;YACD,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACtC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;SAC7C;QACD,OAAO,GAAG,CAAA;IACd,CAAC;IAEO,WAAW,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAM;QAC1B,OAAO;YACH,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK;YAC/B,eAAe,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAC7C,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,wCAA2B,EAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1E,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,wCAA2B,EAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;SACrG,CAAA;IACL,CAAC;IAEO,aAAa,CAAC,KAAa;QAC/B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAM;QAC5B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;YAClC,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;SAC7B;aAAM;YACH,OAAO,SAAS,CAAA;SACnB;IACL,CAAC;CACJ;AAvGD,0CAuGC;AAGD,SAAS,OAAO,CAAC,IAAa;IAC1B,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IACxB,OAAO,IAAA,oBAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=limits.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.test.d.ts","sourceRoot":"","sources":["../../src/test/limits.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const expect_1 = __importDefault(require("expect"));
7
+ const setup_1 = require("./setup");
8
+ describe('response size limits', function () {
9
+ (0, setup_1.useDatabase)([
10
+ `create table "order1" (id text primary key)`,
11
+ `create table item1 (id text primary key, order_id text, name text)`,
12
+ `create table "order2" (id text primary key)`,
13
+ `create table item2 (id text primary key, order_id text, name text)`,
14
+ `create table "order3" (id text primary key)`,
15
+ `create table item3 (id text primary key, order_id text, name text)`,
16
+ ]);
17
+ const client = (0, setup_1.useServer)(`
18
+ type Order1 @entity {
19
+ id: ID!
20
+ items: [Item1!]! @derivedFrom(field: "order")
21
+ }
22
+
23
+ type Item1 @entity {
24
+ id: ID!
25
+ order: Order1!
26
+ name: String
27
+ }
28
+
29
+ type Order2 @entity @cardinality(value: 10) {
30
+ id: ID!
31
+ items: [Item2!]! @derivedFrom(field: "order")
32
+ }
33
+
34
+ type Item2 @entity {
35
+ id: ID!
36
+ order: Order2!
37
+ name: String
38
+ }
39
+
40
+ type Order3 @entity {
41
+ id: ID!
42
+ items: [Item3!]! @derivedFrom(field: "order") @cardinality(value: 10)
43
+ }
44
+
45
+ type Item3 @entity {
46
+ id: ID!
47
+ order: Order3!
48
+ name: String @byteWeight(value: 10.0)
49
+ }
50
+ `, {
51
+ maxResponseNodes: 50,
52
+ maxRootFields: 3
53
+ });
54
+ it('unlimited requests fail', async function () {
55
+ let result = await client.query(`
56
+ query {
57
+ order1s {
58
+ id
59
+ }
60
+ }
61
+ `);
62
+ (0, expect_1.default)(result).toMatchObject({
63
+ data: null,
64
+ errors: [
65
+ expect_1.default.objectContaining({ message: 'response might exceed the size limit', path: ['order1s'] })
66
+ ]
67
+ });
68
+ });
69
+ it('limited requests work', function () {
70
+ return client.test(`
71
+ query {
72
+ order1s(limit: 10) {
73
+ items(limit: 2) {
74
+ id
75
+ }
76
+ }
77
+ }
78
+ `, {
79
+ order1s: []
80
+ });
81
+ });
82
+ it('entity level cardinalities are respected', function () {
83
+ return client.test(`
84
+ query {
85
+ order2s {
86
+ id
87
+ }
88
+ }
89
+ `, {
90
+ order2s: []
91
+ });
92
+ });
93
+ it('item cardinalities are respected', function () {
94
+ return client.test(`
95
+ query {
96
+ order3s(limit: 1) {
97
+ items { id }
98
+ }
99
+ }
100
+ `, {
101
+ order3s: []
102
+ });
103
+ });
104
+ it('@byteWeight annotations are respected', async function () {
105
+ let result = await client.query(`
106
+ query {
107
+ order3s(limit: 1) {
108
+ items(limit: 8) { name }
109
+ }
110
+ }
111
+ `);
112
+ (0, expect_1.default)(result).toEqual({
113
+ data: null,
114
+ errors: [
115
+ expect_1.default.objectContaining({
116
+ message: 'response might exceed the size limit',
117
+ path: ['order3s']
118
+ })
119
+ ]
120
+ });
121
+ await client.test(`
122
+ query {
123
+ order3s(limit: 1) {
124
+ items(limit: 4) { name }
125
+ }
126
+ }
127
+ `, {
128
+ order3s: []
129
+ });
130
+ });
131
+ it('id_in conditions are understood', function () {
132
+ return client.test(`
133
+ query {
134
+ order1s(where: {id_in: ["1", "2", "3"]}) {
135
+ id
136
+ }
137
+ }
138
+ `, {
139
+ order1s: []
140
+ });
141
+ });
142
+ it('root query fields limit', async function () {
143
+ return client.errorTest(`
144
+ query {
145
+ a: order1ById(id: "1") { id }
146
+ b: order1ById(id: "1") { id }
147
+ c: order1ById(id: "1") { id }
148
+ d: order1ById(id: "1") { id }
149
+ }
150
+ `, {
151
+ errors: [
152
+ expect_1.default.objectContaining({
153
+ message: 'only 3 root query fields allowed, but got 4'
154
+ })
155
+ ]
156
+ });
157
+ });
158
+ });
159
+ //# sourceMappingURL=limits.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.test.js","sourceRoot":"","sources":["../../src/test/limits.test.ts"],"names":[],"mappings":";;;;;AAAA,oDAA2B;AAC3B,mCAA8C;AAG9C,QAAQ,CAAC,sBAAsB,EAAE;IAC7B,IAAA,mBAAW,EAAC;QACR,6CAA6C;QAC7C,oEAAoE;QACpE,6CAA6C;QAC7C,oEAAoE;QACpE,6CAA6C;QAC7C,oEAAoE;KACvE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiCxB,EAAE;QACC,gBAAgB,EAAE,EAAE;QACpB,aAAa,EAAE,CAAC;KACnB,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK;QAC/B,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;;;;;;SAM/B,CAAC,CAAA;QACF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACJ,gBAAM,CAAC,gBAAgB,CAAC,EAAC,OAAO,EAAE,sCAAsC,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC;aAChG;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uBAAuB,EAAE;QACxB,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;SAQlB,EAAE;YACC,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;SAMlB,EAAE;YACC,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;SAMlB,EAAE;YACC,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK;QAC7C,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;;;;;;SAM/B,CAAC,CAAA;QACF,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE;gBACJ,gBAAM,CAAC,gBAAgB,CAAC;oBACpB,OAAO,EAAE,sCAAsC;oBAC/C,IAAI,EAAE,CAAC,SAAS,CAAC;iBACpB,CAAC;aACL;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,CAAC,IAAI,CAAC;;;;;;SAMjB,EAAE;YACC,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;SAMlB,EAAE;YACC,OAAO,EAAE,EAAE;SACd,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK;QAC/B,OAAO,MAAM,CAAC,SAAS,CAAC;;;;;;;SAOvB,EAAE;YACC,MAAM,EAAE;gBACJ,gBAAM,CAAC,gBAAgB,CAAC;oBACpB,OAAO,EAAE,6CAA6C;iBACzD,CAAC;aACL;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=queryable.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryable.test.d.ts","sourceRoot":"","sources":["../../src/test/queryable.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const setup_1 = require("./setup");
4
+ describe('queryable interfaces', function () {
5
+ (0, setup_1.useDatabase)([
6
+ `create table foo (id text primary key, name text, foo int)`,
7
+ `create table bar (id text primary key, name text, bar int)`,
8
+ `create table ref (id text primary key, name text, foo_id text not null unique references foo, bar_id text not null unique references bar)`,
9
+ `create table baz (id text primary key, name text, ref_id text references ref, baz int)`,
10
+ `insert into foo (id, name, foo) values ('foo-1', 'hello-foo-1', 1)`,
11
+ `insert into foo (id, name, foo) values ('foo-2', 'hello-foo-2', 2)`,
12
+ `insert into bar (id, name, bar) values ('bar-1', 'hello-bar-1', 10)`,
13
+ `insert into bar (id, name, bar) values ('bar-2', 'hello-bar-2', 20)`,
14
+ `insert into ref (id, name, foo_id, bar_id) values ('1', 'ref-1', 'foo-1', 'bar-2')`,
15
+ `insert into ref (id, name, foo_id, bar_id) values ('2', 'ref-2', 'foo-2', 'bar-1')`,
16
+ `insert into baz (id, name, baz, ref_id) values ('baz-1', 'hello-baz-1', 100, '1')`,
17
+ `create table one (id text primary key)`,
18
+ `create table two (id text primary key)`,
19
+ `create table relation (id text primary key, one_id text references one, two_id text references two)`,
20
+ `insert into one (id) values ('1-1')`,
21
+ `insert into one (id) values ('1-2')`,
22
+ `insert into two (id) values ('2-1')`,
23
+ `insert into two (id) values ('2-2')`,
24
+ `insert into relation (id, one_id, two_id) values ('r-1', '1-1', '2-1')`,
25
+ `insert into relation (id, one_id, two_id) values ('r-2', '1-2', '2-1')`,
26
+ ]);
27
+ const client = (0, setup_1.useServer)(`
28
+ interface Entity @query {
29
+ id: ID!
30
+ name: String
31
+ ref: Ref
32
+ }
33
+
34
+ type Ref @entity {
35
+ id: ID!
36
+ name: String
37
+ foo: Foo! @unique
38
+ bar: Bar! @unique
39
+ }
40
+
41
+ type Foo implements Entity @entity {
42
+ id: ID!
43
+ name: String
44
+ ref: Ref @derivedFrom(field: "foo")
45
+ foo: Int
46
+ }
47
+
48
+ type Bar implements Entity @entity {
49
+ id: ID!
50
+ name: String
51
+ ref: Ref @derivedFrom(field: "bar")
52
+ bar: Int
53
+ }
54
+
55
+ type Baz implements Entity @entity {
56
+ id: ID!
57
+ name: String
58
+ ref: Ref
59
+ baz: Int
60
+ }
61
+
62
+ interface Number @query {
63
+ id: ID!
64
+ relations: [Relation!]!
65
+ }
66
+
67
+ type One implements Number @entity {
68
+ id: ID!
69
+ relations: [Relation!]! @derivedFrom(field: "one")
70
+ }
71
+
72
+ type Two implements Number @entity {
73
+ id: ID!
74
+ relations: [Relation!]! @derivedFrom(field: "two")
75
+ }
76
+
77
+ type Relation @entity {
78
+ id: ID!
79
+ one: One
80
+ two: Two
81
+ }
82
+ `);
83
+ it('fetching', function () {
84
+ return client.test(`
85
+ query {
86
+ entities(orderBy: id_ASC) {
87
+ id
88
+ name
89
+ ref {
90
+ id
91
+ name
92
+ }
93
+ ... on Foo { foo }
94
+ ... on Bar { bar }
95
+ ... on Baz { baz }
96
+ }
97
+ }
98
+ `, {
99
+ entities: [
100
+ {
101
+ id: 'bar-1',
102
+ name: 'hello-bar-1',
103
+ ref: {
104
+ id: '2',
105
+ name: 'ref-2'
106
+ },
107
+ bar: 10
108
+ },
109
+ {
110
+ id: 'bar-2',
111
+ name: 'hello-bar-2',
112
+ ref: {
113
+ id: '1',
114
+ name: 'ref-1'
115
+ },
116
+ bar: 20
117
+ },
118
+ {
119
+ id: 'baz-1',
120
+ name: 'hello-baz-1',
121
+ ref: {
122
+ id: '1',
123
+ name: 'ref-1'
124
+ },
125
+ baz: 100
126
+ },
127
+ {
128
+ id: 'foo-1',
129
+ name: 'hello-foo-1',
130
+ ref: {
131
+ id: '1',
132
+ name: 'ref-1'
133
+ },
134
+ foo: 1
135
+ },
136
+ {
137
+ id: 'foo-2',
138
+ name: 'hello-foo-2',
139
+ ref: {
140
+ id: '2',
141
+ name: 'ref-2'
142
+ },
143
+ foo: 2
144
+ }
145
+ ]
146
+ });
147
+ });
148
+ it('sorting by entity type', function () {
149
+ return client.test(`
150
+ query {
151
+ entities(orderBy: [_type_DESC, id_ASC]) {
152
+ id
153
+ }
154
+ }
155
+ `, {
156
+ entities: [
157
+ { id: 'foo-1' },
158
+ { id: 'foo-2' },
159
+ { id: 'baz-1' },
160
+ { id: 'bar-1' },
161
+ { id: 'bar-2' }
162
+ ]
163
+ });
164
+ });
165
+ it('pagination', function () {
166
+ return client.test(`
167
+ query {
168
+ page1: entitiesConnection(orderBy: id_ASC, first: 2) {
169
+ ...fields
170
+ }
171
+ page2: entitiesConnection(orderBy: id_ASC, first: 2, after: "2") {
172
+ ...fields
173
+ }
174
+ page3: entitiesConnection(orderBy: id_ASC, first: 2, after: "4") {
175
+ ...fields
176
+ }
177
+ }
178
+
179
+ fragment fields on EntitiesConnection {
180
+ edges {
181
+ cursor
182
+ node {
183
+ ... on Foo { foo }
184
+ ... on Bar { bar }
185
+ }
186
+ }
187
+ pageInfo {
188
+ hasNextPage
189
+ hasPreviousPage
190
+ startCursor
191
+ endCursor
192
+ }
193
+ totalCount
194
+ }
195
+ `, {
196
+ page1: {
197
+ edges: [
198
+ { cursor: '1', node: { bar: 10 } },
199
+ { cursor: '2', node: { bar: 20 } },
200
+ ],
201
+ pageInfo: {
202
+ hasNextPage: true,
203
+ hasPreviousPage: false,
204
+ startCursor: '1',
205
+ endCursor: '2'
206
+ },
207
+ totalCount: 5
208
+ },
209
+ page2: {
210
+ edges: [
211
+ { cursor: '3', node: {} },
212
+ { cursor: '4', node: { foo: 1 } },
213
+ ],
214
+ pageInfo: {
215
+ hasNextPage: true,
216
+ hasPreviousPage: true,
217
+ startCursor: '3',
218
+ endCursor: '4'
219
+ },
220
+ totalCount: 5
221
+ },
222
+ page3: {
223
+ edges: [
224
+ { cursor: '5', node: { foo: 2 } },
225
+ ],
226
+ pageInfo: {
227
+ hasNextPage: false,
228
+ hasPreviousPage: true,
229
+ startCursor: '5',
230
+ endCursor: '5'
231
+ },
232
+ totalCount: 5
233
+ }
234
+ });
235
+ });
236
+ it('list lookup fields in interfaces', function () {
237
+ return client.test(`
238
+ query {
239
+ numbers(orderBy: id_ASC) {
240
+ id
241
+ relations { id }
242
+ __typename
243
+ }
244
+ }
245
+ `, {
246
+ numbers: [
247
+ { __typename: 'One', id: '1-1', relations: [{ id: 'r-1' }] },
248
+ { __typename: 'One', id: '1-2', relations: [{ id: 'r-2' }] },
249
+ { __typename: 'Two', id: '2-1', relations: [{ id: 'r-1' }, { id: 'r-2' }] },
250
+ { __typename: 'Two', id: '2-2', relations: [] }
251
+ ]
252
+ });
253
+ });
254
+ });
255
+ //# sourceMappingURL=queryable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryable.test.js","sourceRoot":"","sources":["../../src/test/queryable.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Client } from "gql-test-client";
2
2
  import { ClientBase } from "pg";
3
+ import { ServerOptions } from '../server';
3
4
  export declare function isCockroach(): boolean;
4
5
  export declare const db_config: {
5
6
  host: string;
@@ -12,5 +13,5 @@ export declare function withDatabase(block: (client: ClientBase) => Promise<void
12
13
  export declare function databaseExecute(sql: string[]): Promise<void>;
13
14
  export declare function databaseDelete(): Promise<void>;
14
15
  export declare function useDatabase(sql: string[]): void;
15
- export declare function useServer(schema: string): Client;
16
+ export declare function useServer(schema: string, options?: Partial<ServerOptions>): Client;
16
17
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAqB,UAAU,EAAO,MAAM,IAAI,CAAA;AAKvD,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAGD,eAAO,MAAM,SAAS;;;;;;CAQrB,CAAA;AAGD,wBAAsB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;AAGD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9C;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAK/C;AAGD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBhD"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAA;AAEtC,OAAO,EAAqB,UAAU,EAAO,MAAM,IAAI,CAAA;AAEvD,OAAO,EAAQ,aAAa,EAAC,MAAM,WAAW,CAAA;AAG9C,wBAAgB,WAAW,IAAI,OAAO,CAErC;AAGD,eAAO,MAAM,SAAS;;;;;;CAQrB,CAAA;AAGD,wBAAsB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9F;AAGD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;AAGD,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9C;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAK/C;AAGD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAoBlF"}
package/lib/test/setup.js CHANGED
@@ -51,7 +51,7 @@ function useDatabase(sql) {
51
51
  });
52
52
  }
53
53
  exports.useDatabase = useDatabase;
54
- function useServer(schema) {
54
+ function useServer(schema, options) {
55
55
  let client = new gql_test_client_1.Client('not defined');
56
56
  let db = new pg_1.Pool(exports.db_config);
57
57
  let info;
@@ -61,7 +61,10 @@ function useServer(schema) {
61
61
  model: (0, model_schema_1.buildModel)((0, model_schema_1.buildSchema)((0, graphql_1.parse)(schema))),
62
62
  port: 0,
63
63
  dialect: isCockroach() ? 'cockroach' : 'postgres',
64
- subscriptions: true
64
+ subscriptions: true,
65
+ subscriptionPollInterval: 500,
66
+ maxRootFields: 10,
67
+ ...options
65
68
  });
66
69
  client.endpoint = `http://localhost:${info.port}/graphql`;
67
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":";;;AAAA,2DAAqD;AAErD,qDAAsC;AACtC,qCAA6B;AAC7B,2BAAuD;AACvD,kDAAuD;AACvD,sCAA+B;AAG/B,SAAgB,WAAW;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,WAAW,CAAA;AAC7C,CAAC;AAFD,kCAEC;AAGY,QAAA,SAAS,GAAG;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,QAAQ,CAAC,IAAA,6BAAa,EACxB,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CACzE,CAAC;IACF,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,WAAW;CACxB,CAAA;AAGM,KAAK,UAAU,YAAY,CAAC,KAA4C;IAC3E,IAAI,MAAM,GAAG,IAAI,WAAQ,CAAC,iBAAS,CAAC,CAAA;IACpC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;IACtB,IAAI;QACA,MAAM,KAAK,CAAC,MAAM,CAAC,CAAA;KACtB;YAAS;QACN,MAAM,MAAM,CAAC,GAAG,EAAE,CAAA;KACrB;AACL,CAAC;AARD,oCAQC;AAGD,SAAgB,eAAe,CAAC,GAAa;IACzC,OAAO,YAAY,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;SAC7B;IACL,CAAC,CAAC,CAAA;AACN,CAAC;AAND,0CAMC;AAGD,SAAgB,cAAc;IAC1B,OAAO,YAAY,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE;QAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACxD,MAAM,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;IAC5C,CAAC,CAAC,CAAA;AACN,CAAC;AALD,wCAKC;AAGD,SAAgB,WAAW,CAAC,GAAa;IACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACd,MAAM,cAAc,EAAE,CAAA;QACtB,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC,CAAC,CAAA;AACN,CAAC;AALD,kCAKC;AAGD,SAAgB,SAAS,CAAC,MAAc;IACpC,IAAI,MAAM,GAAG,IAAI,wBAAM,CAAC,aAAa,CAAC,CAAA;IACtC,IAAI,EAAE,GAAG,IAAI,SAAI,CAAC,iBAAS,CAAC,CAAA;IAC5B,IAAI,IAAiC,CAAA;IACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACd,IAAI,GAAG,MAAM,IAAA,cAAK,EAAC;YACf,UAAU,EAAE,EAAE;YACd,KAAK,EAAE,IAAA,yBAAU,EAAC,IAAA,0BAAW,EAAC,IAAA,eAAK,EAAC,MAAM,CAAC,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;YACjD,aAAa,EAAE,IAAI;SACtB,CAAC,CAAA;QACF,MAAM,CAAC,QAAQ,GAAG,oBAAoB,IAAI,CAAC,IAAI,UAAU,CAAA;IAC7D,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1B,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IACrB,OAAO,MAAM,CAAA;AACjB,CAAC;AAjBD,8BAiBC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/test/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ExecutionResult } from 'graphql-ws';
2
+ import { ExecutionArgs } from 'graphql/execution/execute';
3
+ import { PromiseOrValue } from 'graphql/jsutils/PromiseOrValue';
4
+ export declare function executeWithLimit(maxQueries: number, args: ExecutionArgs): PromiseOrValue<ExecutionResult>;
5
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/util/execute.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAA;AAC1C,OAAO,EAKH,aAAa,EAEhB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAC,cAAc,EAAC,MAAM,gCAAgC,CAAA;AAG7D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,cAAc,CAAC,eAAe,CAAC,CAuCzG"}