@subsquid/openreader 1.0.3 → 2.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 (279) hide show
  1. package/bin/main.js +1 -1
  2. package/lib/context.d.ts +11 -0
  3. package/lib/context.d.ts.map +1 -0
  4. package/lib/context.js +3 -0
  5. package/lib/context.js.map +1 -0
  6. package/lib/db.d.ts +23 -0
  7. package/lib/db.d.ts.map +1 -0
  8. package/lib/db.js +57 -0
  9. package/lib/db.js.map +1 -0
  10. package/{dist → lib}/dialect.d.ts +0 -0
  11. package/{dist → lib}/dialect.d.ts.map +0 -0
  12. package/{dist → lib}/dialect.js +0 -0
  13. package/{dist → lib}/dialect.js.map +0 -0
  14. package/lib/ir/args.d.ts +47 -0
  15. package/lib/ir/args.d.ts.map +1 -0
  16. package/lib/ir/args.js +3 -0
  17. package/lib/ir/args.js.map +1 -0
  18. package/lib/ir/connection.d.ts +30 -0
  19. package/lib/ir/connection.d.ts.map +1 -0
  20. package/lib/ir/connection.js +17 -0
  21. package/lib/ir/connection.js.map +1 -0
  22. package/lib/ir/fields.d.ts +22 -0
  23. package/lib/ir/fields.d.ts.map +1 -0
  24. package/lib/ir/fields.js +3 -0
  25. package/lib/ir/fields.js.map +1 -0
  26. package/lib/limit.size.d.ts +3 -0
  27. package/lib/limit.size.d.ts.map +1 -0
  28. package/lib/limit.size.js +44 -0
  29. package/lib/limit.size.js.map +1 -0
  30. package/{dist → lib}/main.d.ts +0 -0
  31. package/{dist → lib}/main.d.ts.map +0 -0
  32. package/lib/main.js +53 -0
  33. package/lib/main.js.map +1 -0
  34. package/{dist → lib}/model.d.ts +10 -1
  35. package/lib/model.d.ts.map +1 -0
  36. package/{dist → lib}/model.js +0 -0
  37. package/{dist → lib}/model.js.map +0 -0
  38. package/{dist/gql/schema.d.ts → lib/model.schema.d.ts} +2 -2
  39. package/lib/model.schema.d.ts.map +1 -0
  40. package/{dist/gql/schema.js → lib/model.schema.js} +44 -7
  41. package/lib/model.schema.js.map +1 -0
  42. package/{dist → lib}/model.tools.d.ts +0 -0
  43. package/{dist → lib}/model.tools.d.ts.map +0 -0
  44. package/{dist → lib}/model.tools.js +0 -0
  45. package/{dist → lib}/model.tools.js.map +0 -0
  46. package/{dist → lib/opencrud}/orderBy.d.ts +2 -5
  47. package/lib/opencrud/orderBy.d.ts.map +1 -0
  48. package/{dist → lib/opencrud}/orderBy.js +1 -1
  49. package/lib/opencrud/orderBy.js.map +1 -0
  50. package/lib/opencrud/schema.d.ts +31 -0
  51. package/lib/opencrud/schema.d.ts.map +1 -0
  52. package/lib/opencrud/schema.js +522 -0
  53. package/lib/opencrud/schema.js.map +1 -0
  54. package/lib/opencrud/tree.d.ts +8 -0
  55. package/lib/opencrud/tree.d.ts.map +1 -0
  56. package/lib/opencrud/tree.js +131 -0
  57. package/lib/opencrud/tree.js.map +1 -0
  58. package/lib/opencrud/where.d.ts +7 -0
  59. package/lib/opencrud/where.d.ts.map +1 -0
  60. package/lib/opencrud/where.js +141 -0
  61. package/lib/opencrud/where.js.map +1 -0
  62. package/{dist/gql → lib}/scalars/BigInt.d.ts +0 -0
  63. package/lib/scalars/BigInt.d.ts.map +1 -0
  64. package/{dist/gql → lib}/scalars/BigInt.js +1 -1
  65. package/lib/scalars/BigInt.js.map +1 -0
  66. package/{dist/gql → lib}/scalars/Bytes.d.ts +0 -0
  67. package/lib/scalars/Bytes.d.ts.map +1 -0
  68. package/{dist/gql → lib}/scalars/Bytes.js +2 -2
  69. package/lib/scalars/Bytes.js.map +1 -0
  70. package/{dist/gql → lib}/scalars/DateTime.d.ts +0 -0
  71. package/lib/scalars/DateTime.d.ts.map +1 -0
  72. package/{dist/gql → lib}/scalars/DateTime.js +1 -1
  73. package/lib/scalars/DateTime.js.map +1 -0
  74. package/{dist/gql → lib}/scalars/JSON.d.ts +0 -0
  75. package/lib/scalars/JSON.d.ts.map +1 -0
  76. package/{dist/gql → lib}/scalars/JSON.js +0 -0
  77. package/lib/scalars/JSON.js.map +1 -0
  78. package/{dist/gql → lib}/scalars/index.d.ts +0 -0
  79. package/lib/scalars/index.d.ts.map +1 -0
  80. package/{dist/gql → lib}/scalars/index.js +0 -0
  81. package/lib/scalars/index.js.map +1 -0
  82. package/lib/server.d.ts +38 -0
  83. package/lib/server.d.ts.map +1 -0
  84. package/lib/server.js +146 -0
  85. package/lib/server.js.map +1 -0
  86. package/lib/sql/cursor.d.ts +52 -0
  87. package/lib/sql/cursor.d.ts.map +1 -0
  88. package/lib/sql/cursor.js +234 -0
  89. package/lib/sql/cursor.js.map +1 -0
  90. package/lib/sql/mapping.d.ts +4 -0
  91. package/lib/sql/mapping.d.ts.map +1 -0
  92. package/lib/sql/mapping.js +71 -0
  93. package/lib/sql/mapping.js.map +1 -0
  94. package/lib/sql/printer.d.ts +37 -0
  95. package/lib/sql/printer.d.ts.map +1 -0
  96. package/lib/sql/printer.js +311 -0
  97. package/lib/sql/printer.js.map +1 -0
  98. package/lib/sql/query.d.ts +46 -0
  99. package/lib/sql/query.d.ts.map +1 -0
  100. package/lib/sql/query.js +134 -0
  101. package/lib/sql/query.js.map +1 -0
  102. package/lib/sql/util.d.ts +30 -0
  103. package/lib/sql/util.d.ts.map +1 -0
  104. package/lib/sql/util.js +75 -0
  105. package/lib/sql/util.js.map +1 -0
  106. package/lib/subscription.d.ts +18 -0
  107. package/lib/subscription.d.ts.map +1 -0
  108. package/lib/subscription.js +47 -0
  109. package/lib/subscription.js.map +1 -0
  110. package/{dist → lib}/test/basic.test.d.ts +0 -0
  111. package/{dist → lib}/test/basic.test.d.ts.map +0 -0
  112. package/{dist → lib}/test/basic.test.js +0 -0
  113. package/{dist → lib}/test/basic.test.js.map +0 -0
  114. package/{dist → lib}/test/connection.test.d.ts +0 -0
  115. package/{dist → lib}/test/connection.test.d.ts.map +0 -0
  116. package/{dist → lib}/test/connection.test.js +0 -0
  117. package/{dist → lib}/test/connection.test.js.map +0 -0
  118. package/{dist → lib}/test/fts.test.d.ts +0 -0
  119. package/{dist → lib}/test/fts.test.d.ts.map +0 -0
  120. package/{dist → lib}/test/fts.test.js +1 -1
  121. package/lib/test/fts.test.js.map +1 -0
  122. package/{dist → lib}/test/isNull.test.d.ts +0 -0
  123. package/{dist → lib}/test/isNull.test.d.ts.map +0 -0
  124. package/{dist → lib}/test/isNull.test.js +0 -0
  125. package/{dist → lib}/test/isNull.test.js.map +0 -0
  126. package/{dist → lib}/test/lists.test.d.ts +0 -0
  127. package/{dist → lib}/test/lists.test.d.ts.map +0 -0
  128. package/{dist → lib}/test/lists.test.js +0 -0
  129. package/{dist → lib}/test/lists.test.js.map +0 -0
  130. package/{dist → lib}/test/lookup.test.d.ts +0 -0
  131. package/{dist → lib}/test/lookup.test.d.ts.map +0 -0
  132. package/{dist → lib}/test/lookup.test.js +0 -0
  133. package/{dist → lib}/test/lookup.test.js.map +0 -0
  134. package/{dist → lib}/test/regressions.test.d.ts +0 -0
  135. package/{dist → lib}/test/regressions.test.d.ts.map +0 -0
  136. package/{dist → lib}/test/regressions.test.js +0 -0
  137. package/{dist → lib}/test/regressions.test.js.map +0 -0
  138. package/{dist → lib}/test/scalars.test.d.ts +0 -0
  139. package/{dist → lib}/test/scalars.test.d.ts.map +0 -0
  140. package/{dist → lib}/test/scalars.test.js +0 -0
  141. package/{dist → lib}/test/scalars.test.js.map +0 -0
  142. package/{dist → lib}/test/setup.d.ts +3 -1
  143. package/lib/test/setup.d.ts.map +1 -0
  144. package/{dist → lib}/test/setup.js +14 -12
  145. package/lib/test/setup.js.map +1 -0
  146. package/lib/test/subscription.test.d.ts +2 -0
  147. package/lib/test/subscription.test.d.ts.map +1 -0
  148. package/lib/test/subscription.test.js +99 -0
  149. package/lib/test/subscription.test.js.map +1 -0
  150. package/{dist → lib}/test/tools.test.d.ts +0 -0
  151. package/{dist → lib}/test/tools.test.d.ts.map +0 -0
  152. package/{dist → lib}/test/tools.test.js +0 -0
  153. package/{dist → lib}/test/tools.test.js.map +0 -0
  154. package/{dist → lib}/test/typed-json.test.d.ts +0 -0
  155. package/{dist → lib}/test/typed-json.test.d.ts.map +0 -0
  156. package/{dist → lib}/test/typed-json.test.js +0 -0
  157. package/{dist → lib}/test/typed-json.test.js.map +0 -0
  158. package/{dist → lib}/test/unions.test.d.ts +0 -0
  159. package/{dist → lib}/test/unions.test.d.ts.map +0 -0
  160. package/{dist → lib}/test/unions.test.js +0 -0
  161. package/{dist → lib}/test/unions.test.js.map +0 -0
  162. package/{dist → lib}/test/where.test.d.ts +0 -0
  163. package/{dist → lib}/test/where.test.d.ts.map +0 -0
  164. package/{dist → lib}/test/where.test.js +0 -0
  165. package/{dist → lib}/test/where.test.js.map +0 -0
  166. package/{dist → lib}/tools.d.ts +0 -0
  167. package/{dist → lib}/tools.d.ts.map +0 -0
  168. package/{dist → lib}/tools.js +3 -3
  169. package/{dist → lib}/tools.js.map +1 -1
  170. package/lib/util/error-handling.d.ts +11 -0
  171. package/lib/util/error-handling.d.ts.map +1 -0
  172. package/lib/util/error-handling.js +42 -0
  173. package/lib/util/error-handling.js.map +1 -0
  174. package/lib/util/lazy-transaction.d.ts +10 -0
  175. package/lib/util/lazy-transaction.d.ts.map +1 -0
  176. package/lib/util/lazy-transaction.js +43 -0
  177. package/lib/util/lazy-transaction.js.map +1 -0
  178. package/lib/util/resolve-tree.d.ts +14 -0
  179. package/lib/util/resolve-tree.d.ts.map +1 -0
  180. package/lib/util/resolve-tree.js +52 -0
  181. package/lib/util/resolve-tree.js.map +1 -0
  182. package/{dist → lib/util}/util.d.ts +2 -3
  183. package/lib/util/util.d.ts.map +1 -0
  184. package/{dist → lib/util}/util.js +9 -13
  185. package/lib/util/util.js.map +1 -0
  186. package/package.json +17 -9
  187. package/src/context.ts +14 -0
  188. package/src/db.ts +46 -57
  189. package/src/ir/args.ts +85 -0
  190. package/src/ir/connection.ts +48 -0
  191. package/src/ir/fields.ts +40 -0
  192. package/src/limit.size.ts +46 -0
  193. package/src/main.ts +61 -38
  194. package/src/{gql/schema.ts → model.schema.ts} +51 -8
  195. package/src/model.ts +12 -1
  196. package/src/{orderBy.ts → opencrud/orderBy.ts} +3 -10
  197. package/src/opencrud/schema.ts +632 -0
  198. package/src/opencrud/tree.ts +144 -0
  199. package/src/opencrud/where.ts +141 -0
  200. package/src/{gql/scalars → scalars}/BigInt.ts +1 -1
  201. package/src/{gql/scalars → scalars}/Bytes.ts +4 -4
  202. package/src/{gql/scalars → scalars}/DateTime.ts +1 -1
  203. package/src/{gql/scalars → scalars}/JSON.ts +0 -0
  204. package/src/{gql/scalars → scalars}/index.ts +0 -0
  205. package/src/server.ts +128 -48
  206. package/src/sql/cursor.ts +291 -0
  207. package/src/sql/mapping.ts +66 -0
  208. package/src/sql/printer.ts +328 -0
  209. package/src/sql/query.ts +194 -0
  210. package/src/sql/util.ts +89 -0
  211. package/src/subscription.ts +46 -0
  212. package/src/test/fts.test.ts +1 -1
  213. package/src/test/setup.ts +12 -10
  214. package/src/test/subscription.test.ts +98 -0
  215. package/src/tools.ts +1 -1
  216. package/src/util/error-handling.ts +40 -0
  217. package/src/util/lazy-transaction.ts +49 -0
  218. package/src/util/resolve-tree.ts +65 -0
  219. package/src/{util.ts → util/util.ts} +9 -14
  220. package/dist/db.d.ts +0 -28
  221. package/dist/db.d.ts.map +0 -1
  222. package/dist/db.js +0 -69
  223. package/dist/db.js.map +0 -1
  224. package/dist/gql/opencrud.d.ts +0 -6
  225. package/dist/gql/opencrud.d.ts.map +0 -1
  226. package/dist/gql/opencrud.js +0 -326
  227. package/dist/gql/opencrud.js.map +0 -1
  228. package/dist/gql/scalars/BigInt.d.ts.map +0 -1
  229. package/dist/gql/scalars/BigInt.js.map +0 -1
  230. package/dist/gql/scalars/Bytes.d.ts.map +0 -1
  231. package/dist/gql/scalars/Bytes.js.map +0 -1
  232. package/dist/gql/scalars/DateTime.d.ts.map +0 -1
  233. package/dist/gql/scalars/DateTime.js.map +0 -1
  234. package/dist/gql/scalars/JSON.d.ts.map +0 -1
  235. package/dist/gql/scalars/JSON.js.map +0 -1
  236. package/dist/gql/scalars/index.d.ts.map +0 -1
  237. package/dist/gql/scalars/index.js.map +0 -1
  238. package/dist/gql/schema.d.ts.map +0 -1
  239. package/dist/gql/schema.js.map +0 -1
  240. package/dist/main.js +0 -44
  241. package/dist/main.js.map +0 -1
  242. package/dist/model.d.ts.map +0 -1
  243. package/dist/orderBy.d.ts.map +0 -1
  244. package/dist/orderBy.js.map +0 -1
  245. package/dist/queryBuilder.d.ts +0 -56
  246. package/dist/queryBuilder.d.ts.map +0 -1
  247. package/dist/queryBuilder.js +0 -733
  248. package/dist/queryBuilder.js.map +0 -1
  249. package/dist/relayConnection.d.ts +0 -37
  250. package/dist/relayConnection.d.ts.map +0 -1
  251. package/dist/relayConnection.js +0 -43
  252. package/dist/relayConnection.js.map +0 -1
  253. package/dist/requestedFields.d.ts +0 -33
  254. package/dist/requestedFields.d.ts.map +0 -1
  255. package/dist/requestedFields.js +0 -179
  256. package/dist/requestedFields.js.map +0 -1
  257. package/dist/resolver.d.ts +0 -9
  258. package/dist/resolver.d.ts.map +0 -1
  259. package/dist/resolver.js +0 -158
  260. package/dist/resolver.js.map +0 -1
  261. package/dist/server.d.ts +0 -22
  262. package/dist/server.d.ts.map +0 -1
  263. package/dist/server.js +0 -96
  264. package/dist/server.js.map +0 -1
  265. package/dist/test/fts.test.js.map +0 -1
  266. package/dist/test/setup.d.ts.map +0 -1
  267. package/dist/test/setup.js.map +0 -1
  268. package/dist/util.d.ts.map +0 -1
  269. package/dist/util.js.map +0 -1
  270. package/dist/where.d.ts +0 -9
  271. package/dist/where.d.ts.map +0 -1
  272. package/dist/where.js +0 -101
  273. package/dist/where.js.map +0 -1
  274. package/src/gql/opencrud.ts +0 -350
  275. package/src/queryBuilder.ts +0 -891
  276. package/src/relayConnection.ts +0 -80
  277. package/src/requestedFields.ts +0 -246
  278. package/src/resolver.ts +0 -201
  279. package/src/where.ts +0 -119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;IAK1D,OAAO,CAAC,QAAQ;IAAU,OAAO,CAAC,IAAI;IAJlD,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAG;IAChB,OAAO,CAAC,QAAQ,CAAO;gBAEH,QAAQ,EAAE,MAAM,EAAU,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAEpE,CAAC,MAAM,CAAC,aAAa,CAAC;IAIhB,IAAI;;;;IAgBJ,MAAM;;;;CAOf"}
@@ -0,0 +1,47 @@
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
+ exports.Subscription = void 0;
7
+ const deep_equal_1 = __importDefault(require("deep-equal"));
8
+ class Subscription {
9
+ constructor(interval, poll) {
10
+ this.interval = interval;
11
+ this.poll = poll;
12
+ this.hasNoVal = true;
13
+ }
14
+ [Symbol.asyncIterator]() {
15
+ return this;
16
+ }
17
+ async next() {
18
+ if (this.hasNoVal) {
19
+ this.prev = await this.poll();
20
+ this.hasNoVal = false;
21
+ }
22
+ let value;
23
+ do {
24
+ await new Promise(resolve => {
25
+ this.timer = setTimeout(resolve, this.interval);
26
+ });
27
+ value = await this.poll();
28
+ } while ((0, deep_equal_1.default)(this.prev, value));
29
+ this.prev = value;
30
+ return { done: false, value };
31
+ }
32
+ async return() {
33
+ if (this.timer != null) {
34
+ clearTimeout(this.timer);
35
+ this.timer = undefined;
36
+ }
37
+ return EOS;
38
+ }
39
+ }
40
+ exports.Subscription = Subscription;
41
+ const EOS = {
42
+ done: true,
43
+ get value() {
44
+ throw new Error('Unexpected value access');
45
+ }
46
+ };
47
+ //# sourceMappingURL=subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAkC;AAGlC,MAAa,YAAY;IAKrB,YAAoB,QAAgB,EAAU,IAAsB;QAAhD,aAAQ,GAAR,QAAQ,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAkB;QAF5D,aAAQ,GAAG,IAAI,CAAA;IAEgD,CAAC;IAExE,CAAC,MAAM,CAAC,aAAa,CAAC;QAClB,OAAO,IAAI,CAAA;IACf,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;SACxB;QACD,IAAI,KAAK,CAAA;QACT,GAAG;YACC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACxB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnD,CAAC,CAAC,CAAA;YACF,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;SAC5B,QAAQ,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAC;QACrC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAA;QACjB,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;SACzB;QACD,OAAO,GAAG,CAAA;IACd,CAAC;CACJ;AAlCD,oCAkCC;AAGD,MAAM,GAAG,GAAG;IACR,IAAI,EAAE,IAAI;IACV,IAAI,KAAK;QACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;CACJ,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -4,7 +4,7 @@ const setup_1 = require("./setup");
4
4
  function tsvector(columns) {
5
5
  return columns.map(col => `setweight(to_tsvector('english', coalesce(${col}, '')), 'A')`).join(' || ');
6
6
  }
7
- (0, setup_1.isCockroach)() || describe('full text search', function () {
7
+ (0, setup_1.isCockroach)() || describe.skip('full text search', function () {
8
8
  (0, setup_1.useDatabase)([
9
9
  `create table foo (
10
10
  id text primary key,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts.test.js","sourceRoot":"","sources":["../../src/test/fts.test.ts"],"names":[],"mappings":";;AAAA,mCAA2D;AAG3D,SAAS,QAAQ,CAAC,OAAiB;IAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,6CAA6C,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC1G,CAAC;AAGD,IAAA,mBAAW,GAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE;IAC/C,IAAA,mBAAW,EAAC;QACR;;;;wDAIgD,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;UACnE;QACF;;;;wDAIgD,QAAQ,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;UAC9E;QACF,sFAAsF;QACtF,gHAAgH;QAChH,kFAAkF;QAClF,0GAA0G;QAC1G,kGAAkG;KACrG,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;KAYxB,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE;QACjE,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE,CAAC;oBACL,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC;oBACvB,SAAS,EAAE,uCAAuC;iBACrD,CAAC;SACL,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uEAAuE,EAAE;QACxE,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE,CAAC;oBACL,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,oCAAoC,EAAC;oBAC1D,SAAS,EAAE,0DAA0D;iBACxE,CAAC;SACL,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE;gBACJ,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,EAAC;gBAC7B,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,oCAAoC,EAAC,EAAC;gBAC5D,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC,EAAC;aAC5B;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;SASlB,EAAE;YACC,MAAM,EAAE;gBACJ,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAC,EAAC;gBAC7B,EAAC,IAAI,EAAE,EAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAC,EAAC;aAC5B;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,4 +1,5 @@
1
1
  import { Client } from "gql-test-client";
2
+ import { ClientBase } from "pg";
2
3
  export declare function isCockroach(): boolean;
3
4
  export declare const db_config: {
4
5
  host: string;
@@ -7,7 +8,8 @@ export declare const db_config: {
7
8
  password: string;
8
9
  database: string;
9
10
  };
10
- export declare function databaseInit(sql: string[]): Promise<void>;
11
+ export declare function withDatabase(block: (client: ClientBase) => Promise<void>): Promise<void>;
12
+ export declare function databaseExecute(sql: string[]): Promise<void>;
11
13
  export declare function databaseDelete(): Promise<void>;
12
14
  export declare function useDatabase(sql: string[]): void;
13
15
  export declare function useServer(schema: string): Client;
@@ -0,0 +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,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useServer = exports.useDatabase = exports.databaseDelete = exports.databaseInit = exports.db_config = exports.isCockroach = void 0;
3
+ exports.useServer = exports.useDatabase = exports.databaseDelete = exports.databaseExecute = exports.withDatabase = exports.db_config = exports.isCockroach = void 0;
4
4
  const util_internal_1 = require("@subsquid/util-internal");
5
5
  const gql_test_client_1 = require("gql-test-client");
6
6
  const graphql_1 = require("graphql");
7
7
  const pg_1 = require("pg");
8
- const schema_1 = require("../gql/schema");
8
+ const model_schema_1 = require("../model.schema");
9
9
  const server_1 = require("../server");
10
10
  function isCockroach() {
11
11
  return process.env.DB_TYPE == 'cockroach';
@@ -18,7 +18,7 @@ exports.db_config = {
18
18
  password: 'root',
19
19
  database: 'defaultdb'
20
20
  };
21
- async function withClient(block) {
21
+ async function withDatabase(block) {
22
22
  let client = new pg_1.Client(exports.db_config);
23
23
  await client.connect();
24
24
  try {
@@ -28,16 +28,17 @@ async function withClient(block) {
28
28
  await client.end();
29
29
  }
30
30
  }
31
- function databaseInit(sql) {
32
- return withClient(async (client) => {
31
+ exports.withDatabase = withDatabase;
32
+ function databaseExecute(sql) {
33
+ return withDatabase(async (client) => {
33
34
  for (let i = 0; i < sql.length; i++) {
34
35
  await client.query(sql[i]);
35
36
  }
36
37
  });
37
38
  }
38
- exports.databaseInit = databaseInit;
39
+ exports.databaseExecute = databaseExecute;
39
40
  function databaseDelete() {
40
- return withClient(async (client) => {
41
+ return withDatabase(async (client) => {
41
42
  await client.query(`DROP SCHEMA IF EXISTS root CASCADE`);
42
43
  await client.query(`CREATE SCHEMA root`);
43
44
  });
@@ -46,7 +47,7 @@ exports.databaseDelete = databaseDelete;
46
47
  function useDatabase(sql) {
47
48
  before(async () => {
48
49
  await databaseDelete();
49
- await databaseInit(sql);
50
+ await databaseExecute(sql);
50
51
  });
51
52
  }
52
53
  exports.useDatabase = useDatabase;
@@ -56,14 +57,15 @@ function useServer(schema) {
56
57
  let info;
57
58
  before(async () => {
58
59
  info = await (0, server_1.serve)({
59
- db,
60
- model: (0, schema_1.buildModel)((0, schema_1.buildSchema)((0, graphql_1.parse)(schema))),
60
+ connection: db,
61
+ model: (0, model_schema_1.buildModel)((0, model_schema_1.buildSchema)((0, graphql_1.parse)(schema))),
61
62
  port: 0,
62
- dialect: isCockroach() ? 'cockroach' : 'postgres'
63
+ dialect: isCockroach() ? 'cockroach' : 'postgres',
64
+ subscriptions: true
63
65
  });
64
66
  client.endpoint = `http://localhost:${info.port}/graphql`;
65
67
  });
66
- after(() => info?.stop());
68
+ after(() => info?.close());
67
69
  after(() => db.end());
68
70
  return client;
69
71
  }
@@ -0,0 +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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=subscription.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.test.d.ts","sourceRoot":"","sources":["../../src/test/subscription.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
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 util_internal_1 = require("@subsquid/util-internal");
7
+ const expect_1 = __importDefault(require("expect"));
8
+ const setup_1 = require("./setup");
9
+ describe("subscriptions", function () {
10
+ (0, setup_1.useDatabase)([
11
+ `create table "order" (id text primary key, kind text not null, name text)`,
12
+ `create table item (id text primary key, order_id text, name text)`,
13
+ ]);
14
+ const client = (0, setup_1.useServer)(`
15
+ type Order @entity {
16
+ id: ID!
17
+ kind: String!
18
+ name: String
19
+ items: [Item!]! @derivedFrom(field: "order")
20
+ }
21
+
22
+ type Item @entity {
23
+ id: ID!
24
+ order: Order
25
+ name: String
26
+ }
27
+ `);
28
+ it("entity list", function () {
29
+ return client.subscriptionTest(`
30
+ subscription {
31
+ orders(where: {kind_eq: "list"}, orderBy: id_ASC) {
32
+ id
33
+ name
34
+ items(orderBy: id_ASC) {
35
+ name
36
+ }
37
+ }
38
+ }
39
+ `, async (take) => {
40
+ await (0, util_internal_1.wait)(1000);
41
+ await (0, setup_1.databaseExecute)([
42
+ `insert into "order" (id, kind) values ('1', 'list')`,
43
+ `insert into "order" (id, kind) values ('2', 'foo')`,
44
+ ]);
45
+ (0, expect_1.default)(await take()).toEqual({
46
+ data: {
47
+ orders: [{ id: '1', name: null, items: [] }]
48
+ }
49
+ });
50
+ await (0, setup_1.databaseExecute)([`
51
+ update "order" set name = 'hello' where id in ('1', '2');
52
+ insert into item (id, "order_id", name) values ('1-1', '1', '123')
53
+ `]);
54
+ (0, expect_1.default)(await take()).toEqual({
55
+ data: {
56
+ orders: [
57
+ { id: '1', name: 'hello', items: [{ name: '123' }] }
58
+ ]
59
+ }
60
+ });
61
+ });
62
+ });
63
+ it("entity by id", async function () {
64
+ await (0, setup_1.databaseExecute)([
65
+ `insert into "order" (id, kind) values ('3', 'by id')`,
66
+ `insert into item (id, "order_id", name) values ('3-1', '3', 'hello')`
67
+ ]);
68
+ await client.subscriptionTest(`
69
+ subscription {
70
+ third: orderById(id: "3") {
71
+ name
72
+ items(orderBy: id_ASC) {
73
+ name
74
+ }
75
+ }
76
+ }
77
+ `, async (take) => {
78
+ await (0, util_internal_1.wait)(1000);
79
+ await (0, setup_1.databaseExecute)([`
80
+ start transaction;
81
+ update "order" set name = 'foo' where id = '3';
82
+ insert into item (id, "order_id", name) values ('3-2', '3', 'world');
83
+ commit;
84
+ `]);
85
+ (0, expect_1.default)(await take()).toEqual({
86
+ data: {
87
+ third: {
88
+ name: 'foo',
89
+ items: [
90
+ { name: 'hello' },
91
+ { name: 'world' }
92
+ ]
93
+ }
94
+ }
95
+ });
96
+ });
97
+ });
98
+ });
99
+ //# sourceMappingURL=subscription.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.test.js","sourceRoot":"","sources":["../../src/test/subscription.test.ts"],"names":[],"mappings":";;;;;AAAA,2DAA4C;AAC5C,oDAA2B;AAC3B,mCAA+D;AAG/D,QAAQ,CAAC,eAAe,EAAE;IACtB,IAAA,mBAAW,EAAC;QACR,2EAA2E;QAC3E,mEAAmE;KACtE,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;;KAaxB,CAAC,CAAA;IAEF,EAAE,CAAC,aAAa,EAAE;QACd,OAAO,MAAM,CAAC,gBAAgB,CAAC;;;;;;;;;;SAU9B,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACZ,MAAM,IAAA,oBAAI,EAAC,IAAI,CAAC,CAAA;YAChB,MAAM,IAAA,uBAAe,EAAC;gBAClB,qDAAqD;gBACrD,oDAAoD;aACvD,CAAC,CAAA;YACF,IAAA,gBAAM,EAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;gBACzB,IAAI,EAAE;oBACF,MAAM,EAAE,CAAC,EAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;iBAC7C;aACJ,CAAC,CAAA;YACF,MAAM,IAAA,uBAAe,EAAC,CAAC;;;aAGtB,CAAC,CAAC,CAAA;YACH,IAAA,gBAAM,EAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;gBACzB,IAAI,EAAE;oBACF,MAAM,EAAE;wBACJ,EAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,EAAC;qBACnD;iBACJ;aACJ,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,cAAc,EAAE,KAAK;QACpB,MAAM,IAAA,uBAAe,EAAC;YAClB,sDAAsD;YACtD,sEAAsE;SACzE,CAAC,CAAA;QACF,MAAM,MAAM,CAAC,gBAAgB,CAAC;;;;;;;;;SAS7B,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;YACZ,MAAM,IAAA,oBAAI,EAAC,IAAI,CAAC,CAAA;YAChB,MAAM,IAAA,uBAAe,EAAC,CAAC;;;;;aAKtB,CAAC,CAAC,CAAA;YACH,IAAA,gBAAM,EAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;gBACzB,IAAI,EAAE;oBACF,KAAK,EAAE;wBACH,IAAI,EAAE,KAAK;wBACX,KAAK,EAAE;4BACH,EAAC,IAAI,EAAE,OAAO,EAAC;4BACf,EAAC,IAAI,EAAE,OAAO,EAAC;yBAClB;qBACJ;iBACJ;aACJ,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -32,7 +32,7 @@ const fs = __importStar(require("fs"));
32
32
  const path = __importStar(require("path"));
33
33
  const graphql_1 = require("graphql");
34
34
  const process_1 = __importDefault(require("process"));
35
- const schema_1 = require("./gql/schema");
35
+ const model_schema_1 = require("./model.schema");
36
36
  function loadModel(schemaFile) {
37
37
  let files = [];
38
38
  if (fs.statSync(schemaFile).isDirectory()) {
@@ -52,8 +52,8 @@ function loadModel(schemaFile) {
52
52
  if (docs.length == 0)
53
53
  return {};
54
54
  let doc = docs.length == 1 ? docs[0] : (0, merge_1.mergeTypeDefs)(docs);
55
- let schema = (0, schema_1.buildSchema)(doc);
56
- return (0, schema_1.buildModel)(schema);
55
+ let schema = (0, model_schema_1.buildSchema)(doc);
56
+ return (0, model_schema_1.buildModel)(schema);
57
57
  }
58
58
  exports.loadModel = loadModel;
59
59
  function resolveGraphqlSchema(projectDir) {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAClD,uCAAwB;AACxB,2CAA4B;AAC5B,qCAAqC;AACrC,sDAA6B;AAC7B,yCAAoD;AAIpD,SAAgB,SAAS,CAAC,UAAkB;IACxC,IAAI,KAAK,GAAa,EAAE,CAAA;IACxB,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE;QACvC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;gBACjF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/C;QACL,CAAC,CAAC,CAAA;KACL;SAAM;QACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACzB;IAED,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACrB,IAAI,GAAG,GAAG,IAAI,gBAAM,CAChB,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,EAC3B,CAAC,CACJ,CAAA;QACD,OAAO,IAAA,eAAK,EAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAA;IAC1D,IAAI,MAAM,GAAG,IAAA,oBAAW,EAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAxBD,8BAwBC;AAGD,SAAgB,oBAAoB,CAAC,UAAmB;IACpD,IAAI,GAAG,GAAG,UAAU,IAAI,iBAAO,CAAC,GAAG,EAAE,CAAA;IACrC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAClC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACjC,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAAA;IACpD,IAAI,IAAI,EAAE,WAAW,EAAE,EAAE;QACrB,IAAI,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACrG,IAAI,UAAU;YAAE,OAAO,GAAG,CAAA;KAC7B;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAA;AAChE,CAAC;AAXD,oDAWC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkD;AAClD,uCAAwB;AACxB,2CAA4B;AAC5B,qCAAqC;AACrC,sDAA6B;AAC7B,iDAAsD;AAItD,SAAgB,SAAS,CAAC,UAAkB;IACxC,IAAI,KAAK,GAAa,EAAE,CAAA;IACxB,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE;QACvC,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC7D,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;gBACjF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/C;QACL,CAAC,CAAC,CAAA;KACL;SAAM;QACH,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACzB;IAED,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACrB,IAAI,GAAG,GAAG,IAAI,gBAAM,CAChB,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,EAC3B,CAAC,CACJ,CAAA;QACD,OAAO,IAAA,eAAK,EAAC,GAAG,CAAC,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAA;IAC1D,IAAI,MAAM,GAAG,IAAA,0BAAW,EAAC,GAAG,CAAC,CAAA;IAC7B,OAAO,IAAA,yBAAU,EAAC,MAAM,CAAC,CAAA;AAC7B,CAAC;AAxBD,8BAwBC;AAGD,SAAgB,oBAAoB,CAAC,UAAmB;IACpD,IAAI,GAAG,GAAG,UAAU,IAAI,iBAAO,CAAC,GAAG,EAAE,CAAA;IACrC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IAC7C,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IAClC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;IACjC,IAAI,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAC,cAAc,EAAE,KAAK,EAAC,CAAC,CAAA;IACpD,IAAI,IAAI,EAAE,WAAW,EAAE,EAAE;QACrB,IAAI,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACrG,IAAI,UAAU;YAAE,OAAO,GAAG,CAAA;KAC7B;IACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAA;AAChE,CAAC;AAXD,oDAWC"}
@@ -0,0 +1,11 @@
1
+ import { Logger, LogLevel } from "@subsquid/logger";
2
+ import { GraphQLError } from "graphql";
3
+ export declare function logGraphQLError(log: Logger, err: GraphQLError, level?: LogLevel): void;
4
+ export declare function withErrorContext(ctx: object): (err: unknown) => never;
5
+ export declare function addErrorContext(error: unknown, ctx: object): Error;
6
+ export declare function ensureError(err: unknown): Error;
7
+ export declare class NonErrorThrown extends Error {
8
+ readonly value: unknown;
9
+ constructor(value: unknown);
10
+ }
11
+ //# sourceMappingURL=error-handling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.d.ts","sourceRoot":"","sources":["../../src/util/error-handling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAC,YAAY,EAAa,MAAM,SAAS,CAAA;AAGhD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,GAAE,QAAyB,GAAG,IAAI,CAQtG;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,KAAK,CAIrE;AAGD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAIlE;AAGD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAG/C;AAGD,qBAAa,cAAe,SAAQ,KAAK;aACT,KAAK,EAAE,OAAO;gBAAd,KAAK,EAAE,OAAO;CAG7C"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NonErrorThrown = exports.ensureError = exports.addErrorContext = exports.withErrorContext = exports.logGraphQLError = void 0;
4
+ const logger_1 = require("@subsquid/logger");
5
+ const graphql_1 = require("graphql");
6
+ function logGraphQLError(log, err, level = logger_1.LogLevel.ERROR) {
7
+ if (log.level > level)
8
+ return;
9
+ let msg = (0, graphql_1.printError)(err) + '\n';
10
+ log.write(level, {
11
+ graphqlOriginalError: err.originalError,
12
+ graphqlPath: err.path?.join('.'),
13
+ graphqlQuery: err.source?.body,
14
+ }, msg);
15
+ }
16
+ exports.logGraphQLError = logGraphQLError;
17
+ function withErrorContext(ctx) {
18
+ return function (err) {
19
+ throw addErrorContext(err, ctx);
20
+ };
21
+ }
22
+ exports.withErrorContext = withErrorContext;
23
+ function addErrorContext(error, ctx) {
24
+ let e = ensureError(error);
25
+ Object.assign(e, ctx);
26
+ return e;
27
+ }
28
+ exports.addErrorContext = addErrorContext;
29
+ function ensureError(err) {
30
+ if (err instanceof Error)
31
+ return err;
32
+ return new NonErrorThrown(err);
33
+ }
34
+ exports.ensureError = ensureError;
35
+ class NonErrorThrown extends Error {
36
+ constructor(value) {
37
+ super('Non error object thrown');
38
+ this.value = value;
39
+ }
40
+ }
41
+ exports.NonErrorThrown = NonErrorThrown;
42
+ //# sourceMappingURL=error-handling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handling.js","sourceRoot":"","sources":["../../src/util/error-handling.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AACjD,qCAAgD;AAGhD,SAAgB,eAAe,CAAC,GAAW,EAAE,GAAiB,EAAE,QAAkB,iBAAQ,CAAC,KAAK;IAC5F,IAAI,GAAG,CAAC,KAAK,GAAG,KAAK;QAAE,OAAM;IAC7B,IAAI,GAAG,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAChC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE;QACb,oBAAoB,EAAE,GAAG,CAAC,aAAa;QACvC,WAAW,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QAChC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI;KACjC,EAAE,GAAG,CAAC,CAAA;AACX,CAAC;AARD,0CAQC;AAGD,SAAgB,gBAAgB,CAAC,GAAW;IACxC,OAAO,UAAS,GAAG;QACf,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC,CAAA;AACL,CAAC;AAJD,4CAIC;AAGD,SAAgB,eAAe,CAAC,KAAc,EAAE,GAAW;IACvD,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;IAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,CAAA;AACZ,CAAC;AAJD,0CAIC;AAGD,SAAgB,WAAW,CAAC,GAAY;IACpC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAA;IACpC,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,CAAA;AAClC,CAAC;AAHD,kCAGC;AAGD,MAAa,cAAe,SAAQ,KAAK;IACrC,YAA4B,KAAc;QACtC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QADR,UAAK,GAAL,KAAK,CAAS;IAE1C,CAAC;CACJ;AAJD,wCAIC"}
@@ -0,0 +1,10 @@
1
+ export declare class LazyTransaction<T> {
2
+ private transact;
3
+ private closed;
4
+ private tx?;
5
+ constructor(transact: (f: (ctx: T) => Promise<void>) => Promise<void>);
6
+ get(): Promise<T>;
7
+ private startTransaction;
8
+ close(): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=lazy-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-transaction.d.ts","sourceRoot":"","sources":["../../src/util/lazy-transaction.ts"],"names":[],"mappings":"AAMA,qBAAa,eAAe,CAAC,CAAC;IAKd,OAAO,CAAC,QAAQ;IAJ5B,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,EAAE,CAAC,CAAgB;gBAEP,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC;IAGvE,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;YAST,gBAAgB;IAiBxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LazyTransaction = void 0;
4
+ class LazyTransaction {
5
+ constructor(transact) {
6
+ this.transact = transact;
7
+ this.closed = false;
8
+ }
9
+ async get() {
10
+ if (this.closed) {
11
+ throw new Error("Too late to request transaction");
12
+ }
13
+ this.tx = this.tx || this.startTransaction();
14
+ let { ctx } = await this.tx;
15
+ return ctx;
16
+ }
17
+ async startTransaction() {
18
+ return new Promise((resolve, reject) => {
19
+ let promise = this.transact(ctx => {
20
+ return new Promise(close => {
21
+ resolve({
22
+ ctx,
23
+ close: () => {
24
+ close();
25
+ return promise;
26
+ }
27
+ });
28
+ });
29
+ });
30
+ promise.catch(err => reject(err));
31
+ });
32
+ }
33
+ async close() {
34
+ this.closed = true;
35
+ if (this.tx) {
36
+ let tx = this.tx;
37
+ this.tx = undefined;
38
+ await tx.then(tx => tx.close());
39
+ }
40
+ }
41
+ }
42
+ exports.LazyTransaction = LazyTransaction;
43
+ //# sourceMappingURL=lazy-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-transaction.js","sourceRoot":"","sources":["../../src/util/lazy-transaction.ts"],"names":[],"mappings":";;;AAMA,MAAa,eAAe;IAKxB,YAAoB,QAAyD;QAAzD,aAAQ,GAAR,QAAQ,CAAiD;QAJrE,WAAM,GAAG,KAAK,CAAA;IAKtB,CAAC;IAED,KAAK,CAAC,GAAG;QACL,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;SACrD;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC5C,IAAI,EAAC,GAAG,EAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAA;QACzB,OAAO,GAAG,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC9B,OAAO,IAAI,OAAO,CAAO,KAAK,CAAC,EAAE;oBAC7B,OAAO,CAAC;wBACJ,GAAG;wBACH,KAAK,EAAE,GAAG,EAAE;4BACR,KAAK,EAAE,CAAA;4BACP,OAAO,OAAO,CAAA;wBAClB,CAAC;qBACJ,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;YACF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;YAChB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;SAClC;IACL,CAAC;CACJ;AA1CD,0CA0CC"}
@@ -0,0 +1,14 @@
1
+ import { GraphQLResolveInfo, GraphQLSchema } from "graphql";
2
+ import { ResolveTree } from "graphql-parse-resolve-info";
3
+ export declare type ResolveTreeFields = {
4
+ [alias: string]: ResolveTree;
5
+ };
6
+ export interface ResolveTreeWithFields extends ResolveTree {
7
+ fields: ResolveTreeFields;
8
+ }
9
+ export declare function simplifyResolveTree(schema: GraphQLSchema, tree: ResolveTree, typeName: string): ResolveTreeWithFields;
10
+ export declare function getResolveTree(info: GraphQLResolveInfo): ResolveTree;
11
+ export declare function getResolveTree(info: GraphQLResolveInfo, typeName: string): ResolveTreeWithFields;
12
+ export declare function getTreeRequest(treeFields: ResolveTreeFields, fieldName: string): ResolveTree | undefined;
13
+ export declare function hasTreeRequest(treeFields: ResolveTreeFields, fieldName: string): boolean;
14
+ //# sourceMappingURL=resolve-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-tree.d.ts","sourceRoot":"","sources":["../../src/util/resolve-tree.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,SAAS,CAAA;AACzD,OAAO,EAGH,WAAW,EAEd,MAAM,4BAA4B,CAAA;AAGnC,oBAAY,iBAAiB,GAAG;IAC5B,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAA;CAC/B,CAAA;AAGD,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACtD,MAAM,EAAE,iBAAiB,CAAA;CAC5B;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAIrH;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAAA;AACrE,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAAA;AAiBjG,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CASxG;AAGD,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAMxF"}