@subsquid/openreader 1.0.2 → 2.1.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 (295) hide show
  1. package/bin/main.js +1 -1
  2. package/lib/context.d.ts +14 -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 +8 -0
  27. package/lib/limit.size.d.ts.map +1 -0
  28. package/lib/limit.size.js +107 -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 +59 -0
  33. package/lib/main.js.map +1 -0
  34. package/{dist → lib}/model.d.ts +11 -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} +62 -8
  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 +527 -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 +42 -0
  83. package/lib/server.d.ts.map +1 -0
  84. package/lib/server.js +171 -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/lib/test/limits.test.d.ts +2 -0
  127. package/lib/test/limits.test.d.ts.map +1 -0
  128. package/lib/test/limits.test.js +159 -0
  129. package/lib/test/limits.test.js.map +1 -0
  130. package/{dist → lib}/test/lists.test.d.ts +0 -0
  131. package/{dist → lib}/test/lists.test.d.ts.map +0 -0
  132. package/{dist → lib}/test/lists.test.js +0 -0
  133. package/{dist → lib}/test/lists.test.js.map +0 -0
  134. package/{dist → lib}/test/lookup.test.d.ts +0 -0
  135. package/{dist → lib}/test/lookup.test.d.ts.map +0 -0
  136. package/{dist → lib}/test/lookup.test.js +0 -0
  137. package/{dist → lib}/test/lookup.test.js.map +0 -0
  138. package/{dist → lib}/test/regressions.test.d.ts +0 -0
  139. package/{dist → lib}/test/regressions.test.d.ts.map +0 -0
  140. package/{dist → lib}/test/regressions.test.js +0 -0
  141. package/{dist → lib}/test/regressions.test.js.map +0 -0
  142. package/{dist → lib}/test/scalars.test.d.ts +0 -0
  143. package/{dist → lib}/test/scalars.test.d.ts.map +0 -0
  144. package/{dist → lib}/test/scalars.test.js +0 -0
  145. package/{dist → lib}/test/scalars.test.js.map +0 -0
  146. package/lib/test/setup.d.ts +17 -0
  147. package/lib/test/setup.d.ts.map +1 -0
  148. package/{dist → lib}/test/setup.js +18 -13
  149. package/lib/test/setup.js.map +1 -0
  150. package/lib/test/subscription.test.d.ts +2 -0
  151. package/lib/test/subscription.test.d.ts.map +1 -0
  152. package/lib/test/subscription.test.js +99 -0
  153. package/lib/test/subscription.test.js.map +1 -0
  154. package/{dist → lib}/test/tools.test.d.ts +0 -0
  155. package/{dist → lib}/test/tools.test.d.ts.map +0 -0
  156. package/{dist → lib}/test/tools.test.js +0 -0
  157. package/{dist → lib}/test/tools.test.js.map +0 -0
  158. package/{dist → lib}/test/typed-json.test.d.ts +0 -0
  159. package/{dist → lib}/test/typed-json.test.d.ts.map +0 -0
  160. package/{dist → lib}/test/typed-json.test.js +0 -0
  161. package/{dist → lib}/test/typed-json.test.js.map +0 -0
  162. package/{dist → lib}/test/unions.test.d.ts +0 -0
  163. package/{dist → lib}/test/unions.test.d.ts.map +0 -0
  164. package/{dist → lib}/test/unions.test.js +0 -0
  165. package/{dist → lib}/test/unions.test.js.map +0 -0
  166. package/{dist → lib}/test/where.test.d.ts +0 -0
  167. package/{dist → lib}/test/where.test.d.ts.map +0 -0
  168. package/{dist → lib}/test/where.test.js +0 -0
  169. package/{dist → lib}/test/where.test.js.map +0 -0
  170. package/{dist → lib}/tools.d.ts +0 -0
  171. package/{dist → lib}/tools.d.ts.map +0 -0
  172. package/{dist → lib}/tools.js +3 -3
  173. package/{dist → lib}/tools.js.map +1 -1
  174. package/lib/util/error-handling.d.ts +11 -0
  175. package/lib/util/error-handling.d.ts.map +1 -0
  176. package/lib/util/error-handling.js +42 -0
  177. package/lib/util/error-handling.js.map +1 -0
  178. package/lib/util/execute.d.ts +5 -0
  179. package/lib/util/execute.d.ts.map +1 -0
  180. package/lib/util/execute.js +28 -0
  181. package/lib/util/execute.js.map +1 -0
  182. package/lib/util/lazy-transaction.d.ts +10 -0
  183. package/lib/util/lazy-transaction.d.ts.map +1 -0
  184. package/lib/util/lazy-transaction.js +43 -0
  185. package/lib/util/lazy-transaction.js.map +1 -0
  186. package/lib/util/limit.d.ts +11 -0
  187. package/lib/util/limit.d.ts.map +1 -0
  188. package/lib/util/limit.js +39 -0
  189. package/lib/util/limit.js.map +1 -0
  190. package/lib/util/resolve-tree.d.ts +14 -0
  191. package/lib/util/resolve-tree.d.ts.map +1 -0
  192. package/lib/util/resolve-tree.js +52 -0
  193. package/lib/util/resolve-tree.js.map +1 -0
  194. package/{dist → lib/util}/util.d.ts +2 -3
  195. package/lib/util/util.d.ts.map +1 -0
  196. package/{dist → lib/util}/util.js +9 -13
  197. package/lib/util/util.js.map +1 -0
  198. package/package.json +18 -10
  199. package/src/context.ts +17 -0
  200. package/src/db.ts +46 -57
  201. package/src/ir/args.ts +85 -0
  202. package/src/ir/connection.ts +48 -0
  203. package/src/ir/fields.ts +40 -0
  204. package/src/limit.size.ts +130 -0
  205. package/src/main.ts +74 -42
  206. package/src/{gql/schema.ts → model.schema.ts} +72 -9
  207. package/src/model.ts +13 -1
  208. package/src/{orderBy.ts → opencrud/orderBy.ts} +3 -10
  209. package/src/opencrud/schema.ts +639 -0
  210. package/src/opencrud/tree.ts +144 -0
  211. package/src/opencrud/where.ts +141 -0
  212. package/src/{gql/scalars → scalars}/BigInt.ts +1 -1
  213. package/src/{gql/scalars → scalars}/Bytes.ts +4 -4
  214. package/src/{gql/scalars → scalars}/DateTime.ts +1 -1
  215. package/src/{gql/scalars → scalars}/JSON.ts +0 -0
  216. package/src/{gql/scalars → scalars}/index.ts +0 -0
  217. package/src/server.ts +175 -55
  218. package/src/sql/cursor.ts +291 -0
  219. package/src/sql/mapping.ts +66 -0
  220. package/src/sql/printer.ts +328 -0
  221. package/src/sql/query.ts +194 -0
  222. package/src/sql/util.ts +89 -0
  223. package/src/subscription.ts +46 -0
  224. package/src/test/fts.test.ts +1 -1
  225. package/src/test/limits.test.ts +163 -0
  226. package/src/test/setup.ts +16 -11
  227. package/src/test/subscription.test.ts +98 -0
  228. package/src/tools.ts +1 -1
  229. package/src/util/error-handling.ts +40 -0
  230. package/src/util/execute.ts +53 -0
  231. package/src/util/lazy-transaction.ts +49 -0
  232. package/src/util/limit.ts +34 -0
  233. package/src/util/resolve-tree.ts +65 -0
  234. package/src/{util.ts → util/util.ts} +9 -14
  235. package/dist/db.d.ts +0 -28
  236. package/dist/db.d.ts.map +0 -1
  237. package/dist/db.js +0 -69
  238. package/dist/db.js.map +0 -1
  239. package/dist/gql/opencrud.d.ts +0 -6
  240. package/dist/gql/opencrud.d.ts.map +0 -1
  241. package/dist/gql/opencrud.js +0 -326
  242. package/dist/gql/opencrud.js.map +0 -1
  243. package/dist/gql/scalars/BigInt.d.ts.map +0 -1
  244. package/dist/gql/scalars/BigInt.js.map +0 -1
  245. package/dist/gql/scalars/Bytes.d.ts.map +0 -1
  246. package/dist/gql/scalars/Bytes.js.map +0 -1
  247. package/dist/gql/scalars/DateTime.d.ts.map +0 -1
  248. package/dist/gql/scalars/DateTime.js.map +0 -1
  249. package/dist/gql/scalars/JSON.d.ts.map +0 -1
  250. package/dist/gql/scalars/JSON.js.map +0 -1
  251. package/dist/gql/scalars/index.d.ts.map +0 -1
  252. package/dist/gql/scalars/index.js.map +0 -1
  253. package/dist/gql/schema.d.ts.map +0 -1
  254. package/dist/gql/schema.js.map +0 -1
  255. package/dist/main.js +0 -44
  256. package/dist/main.js.map +0 -1
  257. package/dist/model.d.ts.map +0 -1
  258. package/dist/orderBy.d.ts.map +0 -1
  259. package/dist/orderBy.js.map +0 -1
  260. package/dist/queryBuilder.d.ts +0 -56
  261. package/dist/queryBuilder.d.ts.map +0 -1
  262. package/dist/queryBuilder.js +0 -733
  263. package/dist/queryBuilder.js.map +0 -1
  264. package/dist/relayConnection.d.ts +0 -37
  265. package/dist/relayConnection.d.ts.map +0 -1
  266. package/dist/relayConnection.js +0 -43
  267. package/dist/relayConnection.js.map +0 -1
  268. package/dist/requestedFields.d.ts +0 -33
  269. package/dist/requestedFields.d.ts.map +0 -1
  270. package/dist/requestedFields.js +0 -179
  271. package/dist/requestedFields.js.map +0 -1
  272. package/dist/resolver.d.ts +0 -9
  273. package/dist/resolver.d.ts.map +0 -1
  274. package/dist/resolver.js +0 -158
  275. package/dist/resolver.js.map +0 -1
  276. package/dist/server.d.ts +0 -22
  277. package/dist/server.d.ts.map +0 -1
  278. package/dist/server.js +0 -96
  279. package/dist/server.js.map +0 -1
  280. package/dist/test/fts.test.js.map +0 -1
  281. package/dist/test/setup.d.ts +0 -14
  282. package/dist/test/setup.d.ts.map +0 -1
  283. package/dist/test/setup.js.map +0 -1
  284. package/dist/util.d.ts.map +0 -1
  285. package/dist/util.js.map +0 -1
  286. package/dist/where.d.ts +0 -9
  287. package/dist/where.d.ts.map +0 -1
  288. package/dist/where.js +0 -101
  289. package/dist/where.js.map +0 -1
  290. package/src/gql/opencrud.ts +0 -350
  291. package/src/queryBuilder.ts +0 -891
  292. package/src/relayConnection.ts +0 -80
  293. package/src/requestedFields.ts +0 -246
  294. package/src/resolver.ts +0 -201
  295. package/src/where.ts +0 -119
package/bin/main.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- require('../dist/main')()
3
+ require('../lib/main')
@@ -0,0 +1,14 @@
1
+ import { Dialect } from './dialect';
2
+ import { Query } from './sql/query';
3
+ import { Limit } from './util/limit';
4
+ export interface Context {
5
+ openreader: OpenreaderContext;
6
+ }
7
+ export interface OpenreaderContext {
8
+ dialect: Dialect;
9
+ executeQuery<T>(query: Query<T>): Promise<T>;
10
+ subscription<T>(query: Query<T>): AsyncIterable<T>;
11
+ responseSizeLimit?: Limit;
12
+ subscriptionResponseSizeLimit?: Limit;
13
+ }
14
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,cAAc,CAAA;AAGlC,MAAM,WAAW,OAAO;IACpB,UAAU,EAAE,iBAAiB,CAAA;CAChC;AAGD,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC5C,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,KAAK,CAAA;IACzB,6BAA6B,CAAC,EAAE,KAAK,CAAA;CACxC"}
package/lib/context.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":""}
package/lib/db.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import type { ClientBase, Pool } from "pg";
2
+ import { OpenreaderContext } from "./context";
3
+ import { Dialect } from "./dialect";
4
+ import { Query } from "./sql/query";
5
+ export interface Database {
6
+ query(sql: string, parameters?: any[]): Promise<any[][]>;
7
+ }
8
+ export declare class PgDatabase implements Database {
9
+ private client;
10
+ constructor(client: ClientBase);
11
+ query(sql: string, parameters?: any[]): Promise<any[][]>;
12
+ }
13
+ export declare class PoolOpenreaderContext implements OpenreaderContext {
14
+ readonly dialect: Dialect;
15
+ private subscriptionPollInterval;
16
+ private tx;
17
+ private subscriptionPool;
18
+ constructor(dialect: Dialect, pool: Pool, subscriptionPool?: Pool, subscriptionPollInterval?: number);
19
+ close(): Promise<void>;
20
+ executeQuery<T>(query: Query<T>): Promise<T>;
21
+ subscription<T>(query: Query<T>): AsyncIterable<T>;
22
+ }
23
+ //# sourceMappingURL=db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,IAAI,CAAA;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAA;AACjC,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAMjC,MAAM,WAAW,QAAQ;IACrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;CAC3D;AAGD,qBAAa,UAAW,YAAW,QAAQ;IAC3B,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;CAK3D;AAGD,qBAAa,qBAAsB,YAAW,iBAAiB;aAKvC,OAAO,EAAE,OAAO;IAGhC,OAAO,CAAC,wBAAwB;IAPpC,OAAO,CAAC,EAAE,CAA2B;IACrC,OAAO,CAAC,gBAAgB,CAAM;gBAGV,OAAO,EAAE,OAAO,EAChC,IAAI,EAAE,IAAI,EACV,gBAAgB,CAAC,EAAE,IAAI,EACf,wBAAwB,GAAE,MAAa;IAMnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAMlD,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;CAMrD"}
package/lib/db.js ADDED
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolOpenreaderContext = exports.PgDatabase = void 0;
4
+ const subscription_1 = require("./subscription");
5
+ const error_handling_1 = require("./util/error-handling");
6
+ const lazy_transaction_1 = require("./util/lazy-transaction");
7
+ class PgDatabase {
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ query(sql, parameters) {
12
+ return this.client.query({ text: sql, rowMode: 'array' }, parameters)
13
+ .then(result => result.rows)
14
+ .catch((0, error_handling_1.withErrorContext)({ sql, parameters }));
15
+ }
16
+ }
17
+ exports.PgDatabase = PgDatabase;
18
+ class PoolOpenreaderContext {
19
+ constructor(dialect, pool, subscriptionPool, subscriptionPollInterval = 1000) {
20
+ this.dialect = dialect;
21
+ this.subscriptionPollInterval = subscriptionPollInterval;
22
+ this.tx = new lazy_transaction_1.LazyTransaction(cb => transact(pool, cb));
23
+ this.subscriptionPool = subscriptionPool || pool;
24
+ }
25
+ close() {
26
+ return this.tx.close();
27
+ }
28
+ async executeQuery(query) {
29
+ let db = await this.tx.get();
30
+ let result = await db.query(query.sql, query.params);
31
+ return query.map(result);
32
+ }
33
+ subscription(query) {
34
+ return new subscription_1.Subscription(this.subscriptionPollInterval, () => transact(this.subscriptionPool, async (db) => {
35
+ let result = await db.query(query.sql, query.params);
36
+ return query.map(result);
37
+ }));
38
+ }
39
+ }
40
+ exports.PoolOpenreaderContext = PoolOpenreaderContext;
41
+ async function transact(pool, cb) {
42
+ let client = await pool.connect();
43
+ try {
44
+ await client.query('START TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY');
45
+ try {
46
+ let db = new PgDatabase(client);
47
+ return await cb(db);
48
+ }
49
+ finally {
50
+ await client.query('COMMIT').catch(() => { });
51
+ }
52
+ }
53
+ finally {
54
+ client.release();
55
+ }
56
+ }
57
+ //# sourceMappingURL=db.js.map
package/lib/db.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":";;;AAIA,iDAA2C;AAC3C,0DAAsD;AACtD,8DAAuD;AAQvD,MAAa,UAAU;IACnB,YAAoB,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAE1C,KAAK,CAAC,GAAW,EAAE,UAAkB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAC,EAAE,UAAU,CAAC;aAC9D,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC3B,KAAK,CAAC,IAAA,iCAAgB,EAAC,EAAC,GAAG,EAAE,UAAU,EAAC,CAAC,CAAC,CAAA;IACnD,CAAC;CACJ;AARD,gCAQC;AAGD,MAAa,qBAAqB;IAI9B,YACoB,OAAgB,EAChC,IAAU,EACV,gBAAuB,EACf,2BAAmC,IAAI;QAH/B,YAAO,GAAP,OAAO,CAAS;QAGxB,6BAAwB,GAAxB,wBAAwB,CAAe;QAE/C,IAAI,CAAC,EAAE,GAAG,IAAI,kCAAe,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAA;IACpD,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,YAAY,CAAI,KAAe;QACjC,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAA;QAC5B,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QACpD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,CAAC;IAED,YAAY,CAAI,KAAe;QAC3B,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAC,EAAE,EAAC,EAAE;YACpG,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YACpD,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAC,CAAA;IACP,CAAC;CACJ;AA9BD,sDA8BC;AAGD,KAAK,UAAU,QAAQ,CAAI,IAAU,EAAE,EAAgC;IACnE,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IACjC,IAAI;QACA,MAAM,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC9E,IAAI;YACA,IAAI,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/B,OAAO,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;SACtB;gBAAS;YACN,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;SAC/C;KACJ;YAAS;QACN,MAAM,CAAC,OAAO,EAAE,CAAA;KACnB;AACL,CAAC"}
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,47 @@
1
+ export interface EntityListArguments {
2
+ offset?: number;
3
+ limit?: number;
4
+ orderBy?: OrderBy;
5
+ where?: Where;
6
+ }
7
+ export declare type Where = AndCondition | OrCondition | InCondition | SetCondition | RefCondition | BinaryCondition | UnaryCondition;
8
+ export interface AndCondition {
9
+ op: 'AND';
10
+ args: Where[];
11
+ }
12
+ export interface OrCondition {
13
+ op: 'OR';
14
+ args: Where[];
15
+ }
16
+ export interface SetCondition {
17
+ op: 'some' | 'every' | 'none';
18
+ field: string;
19
+ where?: Where;
20
+ }
21
+ export interface RefCondition {
22
+ op: 'REF';
23
+ field: string;
24
+ where: Where;
25
+ }
26
+ export interface InCondition {
27
+ op: 'in' | 'not_in';
28
+ field: string;
29
+ values: unknown[];
30
+ }
31
+ export interface BinaryCondition {
32
+ op: BinaryOp;
33
+ field: string;
34
+ value: unknown;
35
+ }
36
+ export interface UnaryCondition {
37
+ op: UnaryOp;
38
+ field: string;
39
+ yes: boolean;
40
+ }
41
+ export declare type BinaryOp = 'eq' | 'not_eq' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'not_contains' | 'containsInsensitive' | 'not_containsInsensitive' | 'startsWith' | 'not_startsWith' | 'endsWith' | 'not_endsWith' | 'containsAll' | 'containsAny' | 'containsNone' | 'jsonContains' | 'jsonHasKey';
42
+ export declare type UnaryOp = 'isNull';
43
+ export interface OrderBy {
44
+ [field: string]: SortOrder | OrderBy;
45
+ }
46
+ export declare type SortOrder = "ASC" | "DESC";
47
+ //# sourceMappingURL=args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/ir/args.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,mBAAmB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,oBAAY,KAAK,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,CAAA;AAG7H,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,CAAA;IACR,IAAI,EAAE,KAAK,EAAE,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAA;CAChB;AAGD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,KAAK,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACf;AAGD,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,IAAI,GAAG,QAAQ,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,EAAE,CAAA;CACpB;AAGD,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAE,QAAQ,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACjB;AAGD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;CACf;AAGD,oBAAY,QAAQ,GAChB,IAAI,GACJ,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GAAG,cAAc,GAC3B,qBAAqB,GAAG,yBAAyB,GACjD,YAAY,GAAG,gBAAgB,GAC/B,UAAU,GAAG,cAAc,GAC3B,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,GACd,YAAY,CAAA;AAGhB,oBAAY,OAAO,GAAG,QAAQ,CAAA;AAG9B,MAAM,WAAW,OAAO;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;CACvC;AAGD,oBAAY,SAAS,GAAG,KAAK,GAAG,MAAM,CAAA"}
package/lib/ir/args.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/ir/args.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { OrderBy, Where } from "./args";
2
+ import { FieldRequest } from "./fields";
3
+ export interface RelayConnectionRequest {
4
+ orderBy: OrderBy;
5
+ where?: Where;
6
+ first?: number;
7
+ after?: string;
8
+ edgeNode?: FieldRequest[];
9
+ edgeCursor?: boolean;
10
+ pageInfo?: boolean;
11
+ totalCount?: boolean;
12
+ }
13
+ export interface RelayConnectionResponse {
14
+ edges?: RelayConnectionEdge[];
15
+ pageInfo?: Partial<RelayConnectionPageInfo>;
16
+ totalCount?: number;
17
+ }
18
+ export interface RelayConnectionEdge {
19
+ node?: unknown;
20
+ cursor?: string;
21
+ }
22
+ export interface RelayConnectionPageInfo {
23
+ hasNextPage: boolean;
24
+ hasPreviousPage: boolean;
25
+ startCursor: string;
26
+ endCursor: string;
27
+ }
28
+ export declare function decodeRelayConnectionCursor(cursor: string): number | undefined;
29
+ export declare function encodeRelayConnectionCursor(val: number): string;
30
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,KAAK,EAAC,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAC,YAAY,EAAC,MAAM,UAAU,CAAA;AAGrC,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB;AAGD,MAAM,WAAW,uBAAuB;IACpC,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAGD,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAGD,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CACpB;AAGD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK9E;AAGD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/D"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodeRelayConnectionCursor = exports.decodeRelayConnectionCursor = void 0;
4
+ function decodeRelayConnectionCursor(cursor) {
5
+ if (!/^\d+$/.test(cursor))
6
+ return undefined;
7
+ let val = parseInt(cursor, 10);
8
+ if (Number.isSafeInteger(val) && val > 0)
9
+ return val;
10
+ return undefined;
11
+ }
12
+ exports.decodeRelayConnectionCursor = decodeRelayConnectionCursor;
13
+ function encodeRelayConnectionCursor(val) {
14
+ return '' + val;
15
+ }
16
+ exports.encodeRelayConnectionCursor = encodeRelayConnectionCursor;
17
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/ir/connection.ts"],"names":[],"mappings":";;;AAqCA,SAAgB,2BAA2B,CAAC,MAAc;IACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IAC3C,IAAI,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAC9B,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,GAAG,CAAA;IACpD,OAAO,SAAS,CAAA;AACpB,CAAC;AALD,kEAKC;AAGD,SAAgB,2BAA2B,CAAC,GAAW;IACnD,OAAO,EAAE,GAAG,GAAG,CAAA;AACnB,CAAC;AAFD,kEAEC"}
@@ -0,0 +1,22 @@
1
+ import { EnumPropType, FkPropType, ListLookupPropType, ListPropType, LookupPropType, ObjectPropType, Prop, PropType, ScalarPropType, UnionPropType } from "../model";
2
+ import { EntityListArguments } from "./args";
3
+ export declare type FieldRequest = EntityListRequest | ObjectRequest | OpaqueRequest;
4
+ declare type Base<T> = T extends PropType ? {
5
+ field: string;
6
+ kind: T['kind'];
7
+ type: T;
8
+ prop: Prop;
9
+ aliases: string[];
10
+ ifType?: string;
11
+ index: number;
12
+ } : never;
13
+ export declare type EntityListRequest = Base<ListLookupPropType> & {
14
+ children: FieldRequest[];
15
+ args?: EntityListArguments;
16
+ };
17
+ export declare type ObjectRequest = Base<FkPropType | LookupPropType | ObjectPropType | UnionPropType> & {
18
+ children: FieldRequest[];
19
+ };
20
+ export declare type OpaqueRequest = Base<ScalarPropType | EnumPropType | ListPropType>;
21
+ export {};
22
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,cAAc,EAAE,IAAI,EACpB,QAAQ,EACR,cAAc,EACd,aAAa,EAChB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAC,mBAAmB,EAAC,MAAM,QAAQ,CAAA;AAG1C,oBAAY,YAAY,GAAG,iBAAiB,GAAG,aAAa,GAAG,aAAa,CAAA;AAG5E,aAAK,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,IAAI,EAAE,CAAC,CAAA;IACP,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CAChB,GAAG,KAAK,CAAA;AAGT,oBAAY,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG;IACvD,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,mBAAmB,CAAA;CAC7B,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC,GAAG;IAC7F,QAAQ,EAAE,YAAY,EAAE,CAAA;CAC3B,CAAA;AAGD,oBAAY,aAAa,GAAG,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/ir/fields.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { Where } from './ir/args';
2
+ import { RelayConnectionRequest } from './ir/connection';
3
+ import { FieldRequest } from './ir/fields';
4
+ import { Model } from './model';
5
+ export declare function getSize(model: Model, fields: FieldRequest[]): number;
6
+ export declare function getEntityListSize(model: Model, entityName: string, fields: FieldRequest[], limit?: number, where?: Where): number;
7
+ export declare function getRelaySize(model: Model, entityName: string, req: RelayConnectionRequest): number;
8
+ //# sourceMappingURL=limit.size.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.size.d.ts","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AACxC,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAI7B,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAWpE;AA6BD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,GACd,MAAM,CAWR;AAuCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,GAAG,MAAM,CAoBlG"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRelaySize = exports.getEntityListSize = exports.getSize = void 0;
4
+ const util_internal_1 = require("@subsquid/util-internal");
5
+ const model_tools_1 = require("./model.tools");
6
+ function getSize(model, fields) {
7
+ let total = 0;
8
+ for (let req of fields) {
9
+ let size = getFieldSize(model, req);
10
+ if (Number.isFinite(size)) {
11
+ total += size * req.aliases.length;
12
+ }
13
+ else {
14
+ return Infinity;
15
+ }
16
+ }
17
+ return total;
18
+ }
19
+ exports.getSize = getSize;
20
+ function getFieldSize(model, req) {
21
+ switch (req.kind) {
22
+ case "scalar":
23
+ case "list":
24
+ return req.prop.byteWeight || 1;
25
+ case "enum":
26
+ return 1;
27
+ case "object":
28
+ case "fk":
29
+ case "lookup":
30
+ case "union":
31
+ return getSize(model, req.children) + 1;
32
+ case "list-lookup":
33
+ return getEntityListSize(model, req.type.entity, req.children, Math.min(req.args?.limit ?? Infinity, req.prop.cardinality ?? Infinity), req.args?.where) + 1;
34
+ default:
35
+ throw (0, util_internal_1.unexpectedCase)();
36
+ }
37
+ }
38
+ function getEntityListSize(model, entityName, fields, limit, where) {
39
+ let cardinality = Math.min(getEntityCardinality(model, entityName), limit ?? Infinity, getWhereCardinality(where));
40
+ if (Number.isFinite(cardinality)) {
41
+ return cardinality * Math.max(getSize(model, fields), 1);
42
+ }
43
+ else {
44
+ return Infinity;
45
+ }
46
+ }
47
+ exports.getEntityListSize = getEntityListSize;
48
+ function getWhereCardinality(where) {
49
+ if (where == null)
50
+ return Infinity;
51
+ switch (where.op) {
52
+ case 'AND': {
53
+ let min = Infinity;
54
+ for (let co of where.args) {
55
+ min = Math.min(min, getWhereCardinality(co));
56
+ }
57
+ return min;
58
+ }
59
+ case 'OR': {
60
+ if (where.args.length == 0)
61
+ return Infinity;
62
+ let max = 0;
63
+ for (let co of where.args) {
64
+ max = Math.max(max, getWhereCardinality(co));
65
+ }
66
+ return max;
67
+ }
68
+ case 'eq':
69
+ if (where.field == 'id') {
70
+ return 1;
71
+ }
72
+ else {
73
+ return Infinity;
74
+ }
75
+ case 'in':
76
+ if (where.field == 'id') {
77
+ return where.values.length;
78
+ }
79
+ else {
80
+ return Infinity;
81
+ }
82
+ default:
83
+ return Infinity;
84
+ }
85
+ }
86
+ function getRelaySize(model, entityName, req) {
87
+ let total = 0;
88
+ let limit = Math.min(getEntityCardinality(model, entityName), req.first ?? 100, getWhereCardinality(req.where));
89
+ if (req.edgeNode) {
90
+ total += limit * Math.max(getSize(model, req.edgeNode), 1);
91
+ }
92
+ if (req.edgeCursor) {
93
+ total += limit;
94
+ }
95
+ if (req.pageInfo) {
96
+ total += 4;
97
+ }
98
+ if (req.totalCount) {
99
+ total += 1;
100
+ }
101
+ return total;
102
+ }
103
+ exports.getRelaySize = getRelaySize;
104
+ function getEntityCardinality(model, entityName) {
105
+ return (0, model_tools_1.getEntity)(model, entityName).cardinality ?? Infinity;
106
+ }
107
+ //# sourceMappingURL=limit.size.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limit.size.js","sourceRoot":"","sources":["../src/limit.size.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
package/lib/main.js ADDED
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const logger_1 = require("@subsquid/logger");
4
+ const util_internal_1 = require("@subsquid/util-internal");
5
+ const util_internal_commander_1 = require("@subsquid/util-internal-commander");
6
+ const util_internal_http_server_1 = require("@subsquid/util-internal-http-server");
7
+ const commander_1 = require("commander");
8
+ const pg_1 = require("pg");
9
+ const server_1 = require("./server");
10
+ const tools_1 = require("./tools");
11
+ const LOG = (0, logger_1.createLogger)('sqd:openreader');
12
+ (0, util_internal_1.runProgram)(async () => {
13
+ let program = new commander_1.Command();
14
+ program.description(`
15
+ GraphQL server for postgres-compatible databases
16
+ `.trim());
17
+ program.requiredOption('-s, --schema <file>', 'a path to a file or folder with database description');
18
+ program.requiredOption('-d, --db-url <url>', 'database connection string', (0, util_internal_commander_1.Url)(['postgres:']));
19
+ program.addOption(new commander_1.Option('-t, --db-type <type>', 'database type').choices(['postgres', 'cockroach']).default('postgres'));
20
+ program.option('-p, --port <number>', 'port to listen on', util_internal_commander_1.nat, 3000);
21
+ program.option('--max-request-size <kb>', 'max request size in kilobytes', util_internal_commander_1.nat, 256);
22
+ program.option('--max-root-fields <count>', 'max number of root fields in a query', util_internal_commander_1.nat);
23
+ program.option('--max-response-size <nodes>', 'max response size measured in nodes', util_internal_commander_1.nat);
24
+ program.option('--sql-statement-timeout <ms>', 'sql statement timeout in ms', util_internal_commander_1.nat);
25
+ program.option('--subscriptions', 'enable gql subscriptions');
26
+ program.option('--subscription-poll-interval <ms>', 'subscription poll interval in ms', util_internal_commander_1.nat, 1000);
27
+ program.option('--subscription-sql-statement-timeout <ms>', 'sql statement timeout for polling queries', util_internal_commander_1.nat);
28
+ program.option('--subscription-max-response-size <nodes>', 'max response size measured in nodes', util_internal_commander_1.nat);
29
+ let opts = program.parse().opts();
30
+ let model = (0, tools_1.loadModel)(opts.schema);
31
+ let connection = new pg_1.Pool({
32
+ connectionString: opts.dbUrl,
33
+ statement_timeout: opts.sqlStatementTimeout || undefined
34
+ });
35
+ let subscriptionConnection;
36
+ if (opts.subscriptions) {
37
+ subscriptionConnection = new pg_1.Pool({
38
+ connectionString: opts.dbUrl,
39
+ statement_timeout: opts.subscriptionSqlStatementTimeout || opts.sqlStatementTimeout || undefined
40
+ });
41
+ }
42
+ let server = await (0, server_1.serve)({
43
+ model,
44
+ dialect: opts.dbType,
45
+ connection,
46
+ port: opts.port,
47
+ log: LOG,
48
+ maxRequestSizeBytes: opts.maxRequestSize * 1024,
49
+ maxRootFields: opts.maxRootFields,
50
+ maxResponseNodes: opts.maxResponseSize,
51
+ subscriptions: opts.subscriptions,
52
+ subscriptionPollInterval: opts.subscriptionPollInterval,
53
+ subscriptionConnection,
54
+ subscriptionMaxResponseNodes: opts.subscriptionMaxResponseSize
55
+ });
56
+ LOG.info(`listening on port ${server.port}`);
57
+ return (0, util_internal_http_server_1.waitForInterruption)(server);
58
+ }, err => LOG.fatal(err));
59
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface Entity extends TypeMeta {
5
5
  properties: Record<Name, Prop>;
6
6
  interfaces?: Name[];
7
7
  indexes?: Index[];
8
+ cardinality?: number;
8
9
  }
9
10
  export interface JsonObject extends TypeMeta {
10
11
  kind: 'object';
@@ -34,12 +35,21 @@ export interface Prop {
34
35
  * Whether the values in the column must be unique. Applicable only to entities.
35
36
  */
36
37
  unique?: boolean;
38
+ /**
39
+ * Characteristic number of elements in a `list-lookup` or in a `list` of objects
40
+ */
41
+ cardinality?: number;
42
+ /**
43
+ * Relative byte size of a scalar value or scalar list
44
+ */
45
+ byteWeight?: number;
37
46
  }
38
47
  export declare type PropType = ScalarPropType | EnumPropType | ListPropType | ObjectPropType | UnionPropType | FkPropType | LookupPropType | ListLookupPropType;
39
48
  export interface ScalarPropType {
40
49
  kind: 'scalar';
41
- name: Name;
50
+ name: Scalar;
42
51
  }
52
+ export declare type Scalar = 'ID' | 'String' | 'Int' | 'Float' | 'Boolean' | 'DateTime' | 'BigInt' | 'JSON' | 'Bytes';
43
53
  export interface EnumPropType {
44
54
  kind: 'enum';
45
55
  name: Name;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
@@ -1,7 +1,7 @@
1
1
  import { DocumentNode, GraphQLSchema } from "graphql";
2
- import { Model } from "../model";
2
+ import { Model } from "./model";
3
3
  export declare function buildSchema(doc: DocumentNode): GraphQLSchema;
4
4
  export declare function buildModel(schema: GraphQLSchema): Model;
5
5
  export declare class SchemaError extends Error {
6
6
  }
7
- //# sourceMappingURL=schema.d.ts.map
7
+ //# sourceMappingURL=model.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.schema.d.ts","sourceRoot":"","sources":["../src/model.schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAEH,YAAY,EAWZ,aAAa,EAIhB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAQ,KAAK,EAAyB,MAAM,SAAS,CAAA;AAoB5D,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,aAAa,CAO5D;AAGD,wBAAgB,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAWvD;AAidD,qBAAa,WAAY,SAAQ,KAAK;CAAG"}