@subsquid/openreader 0.3.1 → 0.4.1

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 (108) hide show
  1. package/dist/db.d.ts +1 -0
  2. package/dist/db.d.ts.map +1 -0
  3. package/dist/gql/opencrud.d.ts +1 -0
  4. package/dist/gql/opencrud.d.ts.map +1 -0
  5. package/dist/gql/schema.d.ts +1 -0
  6. package/dist/gql/schema.d.ts.map +1 -0
  7. package/dist/gql/schema.js +116 -17
  8. package/dist/gql/schema.js.map +1 -1
  9. package/dist/main.d.ts +1 -0
  10. package/dist/main.d.ts.map +1 -0
  11. package/dist/model.d.ts +9 -0
  12. package/dist/model.d.ts.map +1 -0
  13. package/dist/model.tools.d.ts +2 -0
  14. package/dist/model.tools.d.ts.map +1 -0
  15. package/dist/model.tools.js +27 -1
  16. package/dist/model.tools.js.map +1 -1
  17. package/dist/orderBy.d.ts +1 -0
  18. package/dist/orderBy.d.ts.map +1 -0
  19. package/dist/queryBuilder.d.ts +1 -0
  20. package/dist/queryBuilder.d.ts.map +1 -0
  21. package/dist/relayConnection.d.ts +1 -0
  22. package/dist/relayConnection.d.ts.map +1 -0
  23. package/dist/requestedFields.d.ts +1 -0
  24. package/dist/requestedFields.d.ts.map +1 -0
  25. package/dist/resolver.d.ts +1 -0
  26. package/dist/resolver.d.ts.map +1 -0
  27. package/dist/scalars.d.ts +1 -0
  28. package/dist/scalars.d.ts.map +1 -0
  29. package/dist/server.d.ts +1 -0
  30. package/dist/server.d.ts.map +1 -0
  31. package/dist/test/basic.test.d.ts +2 -0
  32. package/dist/test/basic.test.d.ts.map +1 -0
  33. package/dist/test/basic.test.js +286 -0
  34. package/dist/test/basic.test.js.map +1 -0
  35. package/dist/test/connection.test.d.ts +2 -0
  36. package/dist/test/connection.test.d.ts.map +1 -0
  37. package/dist/test/connection.test.js +193 -0
  38. package/dist/test/connection.test.js.map +1 -0
  39. package/dist/test/fts.test.d.ts +2 -0
  40. package/dist/test/fts.test.d.ts.map +1 -0
  41. package/dist/test/fts.test.js +110 -0
  42. package/dist/test/fts.test.js.map +1 -0
  43. package/dist/test/lists.test.d.ts +2 -0
  44. package/dist/test/lists.test.d.ts.map +1 -0
  45. package/dist/test/lists.test.js +266 -0
  46. package/dist/test/lists.test.js.map +1 -0
  47. package/dist/test/lookup.test.d.ts +2 -0
  48. package/dist/test/lookup.test.d.ts.map +1 -0
  49. package/dist/test/lookup.test.js +109 -0
  50. package/dist/test/lookup.test.js.map +1 -0
  51. package/dist/test/scalars.test.d.ts +2 -0
  52. package/dist/test/scalars.test.d.ts.map +1 -0
  53. package/dist/test/scalars.test.js +303 -0
  54. package/dist/test/scalars.test.js.map +1 -0
  55. package/dist/test/tools.test.d.ts +2 -0
  56. package/dist/test/tools.test.d.ts.map +1 -0
  57. package/dist/test/tools.test.js +49 -0
  58. package/dist/test/tools.test.js.map +1 -0
  59. package/dist/test/typed-json.test.d.ts +2 -0
  60. package/dist/test/typed-json.test.d.ts.map +1 -0
  61. package/dist/test/typed-json.test.js +75 -0
  62. package/dist/test/typed-json.test.js.map +1 -0
  63. package/dist/test/unions.test.d.ts +2 -0
  64. package/dist/test/unions.test.d.ts.map +1 -0
  65. package/dist/test/unions.test.js +84 -0
  66. package/dist/test/unions.test.js.map +1 -0
  67. package/dist/test/util/setup.d.ts +7 -0
  68. package/dist/test/util/setup.d.ts.map +1 -0
  69. package/dist/test/util/setup.js +60 -0
  70. package/dist/test/util/setup.js.map +1 -0
  71. package/dist/test/where.test.d.ts +2 -0
  72. package/dist/test/where.test.d.ts.map +1 -0
  73. package/dist/test/where.test.js +127 -0
  74. package/dist/test/where.test.js.map +1 -0
  75. package/dist/tools.d.ts +1 -0
  76. package/dist/tools.d.ts.map +1 -0
  77. package/dist/util.d.ts +1 -0
  78. package/dist/util.d.ts.map +1 -0
  79. package/dist/where.d.ts +1 -0
  80. package/dist/where.d.ts.map +1 -0
  81. package/package.json +15 -13
  82. package/src/db.ts +83 -0
  83. package/src/gql/opencrud.ts +328 -0
  84. package/src/gql/schema.ts +463 -0
  85. package/src/main.ts +51 -0
  86. package/src/model.tools.ts +201 -0
  87. package/src/model.ts +137 -0
  88. package/src/orderBy.ts +105 -0
  89. package/src/queryBuilder.ts +785 -0
  90. package/src/relayConnection.ts +80 -0
  91. package/src/requestedFields.ts +246 -0
  92. package/src/resolver.ts +199 -0
  93. package/src/scalars.ts +247 -0
  94. package/src/server.ts +115 -0
  95. package/src/test/basic.test.ts +339 -0
  96. package/src/test/connection.test.ts +195 -0
  97. package/src/test/fts.test.ts +114 -0
  98. package/src/test/lists.test.ts +278 -0
  99. package/src/test/lookup.test.ts +111 -0
  100. package/src/test/scalars.test.ts +316 -0
  101. package/src/test/tools.test.ts +27 -0
  102. package/src/test/typed-json.test.ts +76 -0
  103. package/src/test/unions.test.ts +85 -0
  104. package/src/test/util/setup.ts +63 -0
  105. package/src/test/where.test.ts +135 -0
  106. package/src/tools.ts +33 -0
  107. package/src/util.ts +39 -0
  108. package/src/where.ts +110 -0
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const setup_1 = require("./util/setup");
4
+ describe('lists', function () {
5
+ (0, setup_1.useDatabase)([
6
+ `create table lists (
7
+ id text primary key,
8
+ int_array integer[],
9
+ bigint_array numeric[],
10
+ enum_array text[],
11
+ datetime_array timestamptz[],
12
+ bytes_array bytea[],
13
+ list_of_list_of_int jsonb,
14
+ list_of_json_objects jsonb
15
+ )`,
16
+ `insert into lists (id, int_array) values ('1', '{1, 2, 3}')`,
17
+ `insert into lists (id, int_array) values ('2', '{4, 5, 6}')`,
18
+ `insert into lists (id, int_array) values ('20', '{7, 8}')`,
19
+ `insert into lists (id, bigint_array) values ('3', '{1000000000000000000000000000, 2000000000000000000000000000}')`,
20
+ `insert into lists (id, bigint_array) values ('4', '{3000000000000000000000000000, 4000000000000000000000000000}')`,
21
+ `insert into lists (id, list_of_list_of_int) values ('5', '[[1, 2], [3, 4], [5]]'::jsonb)`,
22
+ `insert into lists (id, list_of_json_objects) values ('6', '[{"foo": 1, "bar": 2}, {"foo": 3, "bar": 4}]'::jsonb)`,
23
+ `insert into lists (id, datetime_array) values ('7', array['2020-01-01T00:00:00Z', '2021-01-01T00:00:00Z']::timestamptz[])`,
24
+ `insert into lists (id, datetime_array) values ('70', array['2020-01-01T00:00:00Z', '2022-01-01T00:00:00Z']::timestamptz[])`,
25
+ `insert into lists (id, bytes_array) values ('8', array['hello', 'world']::bytea[])`,
26
+ `insert into lists (id, bytes_array) values ('9', array['hello', 'big', 'world']::bytea[])`,
27
+ `insert into lists (id, enum_array) values ('10', array['A', 'B', 'C'])`,
28
+ `insert into lists (id, enum_array) values ('11', array['C', 'D'])`,
29
+ `insert into lists (id, enum_array) values ('12', array['A', 'D'])`,
30
+ ]);
31
+ const client = (0, setup_1.useServer)(`
32
+ type Lists @entity {
33
+ intArray: [Int!]
34
+ enumArray: [Enum!]
35
+ bigintArray: [BigInt!]
36
+ datetimeArray: [DateTime!]
37
+ bytesArray: [Bytes!]
38
+ listOfListOfInt: [[Int]]
39
+ listOfJsonObjects: [Foo!]
40
+ }
41
+
42
+ enum Enum {
43
+ A B C D E F
44
+ }
45
+
46
+ type Foo {
47
+ foo: Int
48
+ bar: Int
49
+ }
50
+ `);
51
+ describe('integer arrays', function () {
52
+ it('outputs correctly', function () {
53
+ return client.test(`
54
+ query {
55
+ lists(where: {id_in: ["1", "2"]} orderBy: id_ASC) {
56
+ intArray
57
+ }
58
+ }
59
+ `, {
60
+ lists: [
61
+ { intArray: [1, 2, 3] },
62
+ { intArray: [4, 5, 6] }
63
+ ]
64
+ });
65
+ });
66
+ it('support where conditions', function () {
67
+ return client.test(`
68
+ query {
69
+ all: lists(where: {intArray_containsAll: [1, 3]} orderBy: id_ASC) {
70
+ id
71
+ }
72
+ any: lists(where: {intArray_containsAny: [4, 7]} orderBy: id_ASC) {
73
+ id
74
+ }
75
+ none: lists(where: {intArray_containsNone: 5} orderBy: id_ASC) {
76
+ id
77
+ }
78
+ nothing: lists(where: {intArray_containsNone: [1, 4, 7]} orderBy: id_ASC) {
79
+ id
80
+ }
81
+ }
82
+ `, {
83
+ all: [{ id: '1' }],
84
+ any: [{ id: '2' }, { id: '20' }],
85
+ none: [{ id: '1' }, { id: '20' }],
86
+ nothing: []
87
+ });
88
+ });
89
+ });
90
+ describe('enum arrays', function () {
91
+ it('outputs correctly', function () {
92
+ return client.test(`
93
+ query {
94
+ lists(where: {id_in: ["10", "11", "12"]} orderBy: id_ASC) {
95
+ id
96
+ enumArray
97
+ }
98
+ }
99
+ `, {
100
+ lists: [
101
+ { id: '10', enumArray: ['A', 'B', 'C'] },
102
+ { id: '11', enumArray: ['C', 'D'] },
103
+ { id: '12', enumArray: ['A', 'D'] }
104
+ ]
105
+ });
106
+ });
107
+ it('supports where conditions', function () {
108
+ return client.test(`
109
+ query {
110
+ all : lists(where: {enumArray_containsAll: [A, B]} orderBy: id_ASC) { id }
111
+ any : lists(where: {enumArray_containsAny: D} orderBy: id_ASC) { id }
112
+ none: lists(where: {enumArray_containsNone: A} orderBy: id_ASC) { id }
113
+ }
114
+ `, {
115
+ all: [{ id: '10' }],
116
+ any: [{ id: '11' }, { id: '12' }],
117
+ none: [{ id: '11' }],
118
+ });
119
+ });
120
+ });
121
+ describe('big integer arrays', function () {
122
+ it('outputs correctly', function () {
123
+ return client.test(`
124
+ query {
125
+ lists(where: {id_in: ["3", "4"]} orderBy: id_ASC) {
126
+ bigintArray
127
+ }
128
+ }
129
+ `, {
130
+ lists: [
131
+ { bigintArray: ['1000000000000000000000000000', '2000000000000000000000000000'] },
132
+ { bigintArray: ['3000000000000000000000000000', '4000000000000000000000000000'] }
133
+ ]
134
+ });
135
+ });
136
+ it('supports where conditions', function () {
137
+ return client.test(`
138
+ query {
139
+ all: lists(where: {bigintArray_containsAll: 1000000000000000000000000000} orderBy: id_ASC) {
140
+ id
141
+ }
142
+ any: lists(where: {bigintArray_containsAny: [3000000000000000000000000000, 2000000000000000000000000000]} orderBy: id_ASC) {
143
+ id
144
+ }
145
+ none: lists(where: {bigintArray_containsNone: "2000000000000000000000000000"} orderBy: id_ASC) {
146
+ id
147
+ }
148
+ }
149
+ `, {
150
+ all: [{ id: '3' }],
151
+ any: [{ id: '3' }, { id: '4' }],
152
+ none: [{ id: '4' }]
153
+ });
154
+ });
155
+ });
156
+ describe('date-time arrays', function () {
157
+ it('outputs correctly', function () {
158
+ return client.test(`
159
+ query {
160
+ lists(where: {id_eq: "7"}) {
161
+ datetimeArray
162
+ }
163
+ }
164
+ `, {
165
+ lists: [{
166
+ datetimeArray: [
167
+ '2020-01-01T00:00:00.000Z',
168
+ '2021-01-01T00:00:00.000Z'
169
+ ]
170
+ }]
171
+ });
172
+ });
173
+ it('supports where conditions', function () {
174
+ return client.test(`
175
+ query {
176
+ all: lists(where: {datetimeArray_containsAll: ["2020-01-01T00:00:00Z", "2022-01-01T00:00:00Z"]} orderBy: id_ASC) {
177
+ id
178
+ }
179
+ any: lists(where: {datetimeArray_containsAny: ["2020-01-01T00:00:00Z", "2022-01-01T00:00:00Z"]} orderBy: id_ASC) {
180
+ id
181
+ }
182
+ none: lists(where: {datetimeArray_containsNone: ["2024-01-01T00:00:00Z", "2022-01-01T00:00:00Z"]} orderBy: id_ASC) {
183
+ id
184
+ }
185
+ }
186
+ `, {
187
+ all: [{ id: '70' }],
188
+ any: [{ id: '7' }, { id: '70' }],
189
+ none: [{ id: '7' }]
190
+ });
191
+ });
192
+ });
193
+ describe('bytes array', function () {
194
+ it('outputs correctly', function () {
195
+ return client.test(`
196
+ query {
197
+ lists(where: {id_eq: "8"}) {
198
+ bytesArray
199
+ }
200
+ }
201
+ `, {
202
+ lists: [{
203
+ bytesArray: [
204
+ '0x68656c6c6f',
205
+ '0x776f726c64'
206
+ ]
207
+ }]
208
+ });
209
+ });
210
+ it('supports where conditions', function () {
211
+ return client.test(`
212
+ query {
213
+ all: lists(where: {bytesArray_containsAll: ["0x68656c6c6f", "0x626967"]} orderBy: id_ASC) {
214
+ id
215
+ }
216
+ any: lists(where: {bytesArray_containsAny: "0x776f726c64"} orderBy: id_ASC) {
217
+ id
218
+ }
219
+ none: lists(where: {bytesArray_containsNone: ["0x626967", "0xaa"]} orderBy: id_ASC) {
220
+ id
221
+ }
222
+ }
223
+ `, {
224
+ all: [{ id: '9' }],
225
+ any: [{ id: '8' }, { id: '9' }],
226
+ none: [{ id: '8' }],
227
+ });
228
+ });
229
+ });
230
+ describe('json lists', function () {
231
+ it('outputs list of list of integers', function () {
232
+ return client.test(`
233
+ query {
234
+ lists(where: {id_eq: "5"}) {
235
+ listOfListOfInt
236
+ }
237
+ }
238
+ `, {
239
+ lists: [
240
+ { listOfListOfInt: [[1, 2], [3, 4], [5]] }
241
+ ]
242
+ });
243
+ });
244
+ it('outputs list of json objects', function () {
245
+ return client.test(`
246
+ query {
247
+ lists(where: {id_eq: "6"}) {
248
+ listOfJsonObjects {
249
+ foo
250
+ }
251
+ }
252
+ }
253
+ `, {
254
+ lists: [
255
+ {
256
+ listOfJsonObjects: [
257
+ { foo: 1 },
258
+ { foo: 3 }
259
+ ]
260
+ }
261
+ ]
262
+ });
263
+ });
264
+ });
265
+ });
266
+ //# sourceMappingURL=lists.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.test.js","sourceRoot":"","sources":["../../src/test/lists.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lookup.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup.test.d.ts","sourceRoot":"","sources":["../../src/test/lookup.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const setup_1 = require("./util/setup");
4
+ describe('lookup test', function () {
5
+ (0, setup_1.useDatabase)([
6
+ `create table issue (id text primary key)`,
7
+ `create table issue_payment (id text primary key, issue_id text not null unique, amount numeric)`,
8
+ `create table issue_cancellation (id text primary key, issue_id text not null unique, height int)`,
9
+ `insert into issue (id) values ('1')`,
10
+ `insert into issue (id) values ('2')`,
11
+ `insert into issue (id) values ('3')`,
12
+ `insert into issue_payment (id, issue_id, amount) values ('1', '1', 2)`,
13
+ `insert into issue_payment (id, issue_id, amount) values ('2', '2', 1)`,
14
+ `insert into issue_cancellation (id, issue_id, height) values ('3', '3', 10)`,
15
+ ]);
16
+ const client = (0, setup_1.useServer)(`
17
+ type Issue @entity {
18
+ id: ID!
19
+ payment: IssuePayment @derivedFrom(field: "issue")
20
+ cancellation: IssueCancellation @derivedFrom(field: "issue")
21
+ }
22
+
23
+ type IssuePayment @entity {
24
+ id: ID!
25
+ issue: Issue! @unique
26
+ amount: Int!
27
+ }
28
+
29
+ type IssueCancellation @entity {
30
+ id: ID!
31
+ issue: Issue! @unique
32
+ height: Int!
33
+ }
34
+ `);
35
+ it('fetches correctly', function () {
36
+ return client.test(`
37
+ query {
38
+ issues(orderBy: [id_ASC]) {
39
+ id
40
+ payment {
41
+ amount
42
+ }
43
+ cancellation {
44
+ height
45
+ issue {
46
+ cancellation {
47
+ id
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ `, {
54
+ issues: [
55
+ {
56
+ id: '1',
57
+ payment: { amount: 2 },
58
+ cancellation: null
59
+ },
60
+ {
61
+ id: '2',
62
+ payment: { amount: 1 },
63
+ cancellation: null
64
+ },
65
+ {
66
+ id: '3',
67
+ payment: null,
68
+ cancellation: {
69
+ height: 10,
70
+ issue: {
71
+ cancellation: {
72
+ id: '3'
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ]
78
+ });
79
+ });
80
+ it('supports sorting on lookup fields', function () {
81
+ return client.test(`
82
+ query {
83
+ issues(orderBy: [payment_amount_DESC]) {
84
+ id
85
+ }
86
+ }
87
+ `, {
88
+ issues: [
89
+ { id: '3' },
90
+ { id: '1' },
91
+ { id: '2' }
92
+ ]
93
+ });
94
+ });
95
+ it('supports where conditions', function () {
96
+ return client.test(`
97
+ query {
98
+ issues(where: {payment: {amount_gt: 1}}) {
99
+ id
100
+ }
101
+ }
102
+ `, {
103
+ issues: [
104
+ { id: '1' }
105
+ ]
106
+ });
107
+ });
108
+ });
109
+ //# sourceMappingURL=lookup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookup.test.js","sourceRoot":"","sources":["../../src/test/lookup.test.ts"],"names":[],"mappings":";;AAAA,wCAAmD;AAEnD,QAAQ,CAAC,aAAa,EAAE;IACpB,IAAA,mBAAW,EAAC;QACR,0CAA0C;QAC1C,iGAAiG;QACjG,kGAAkG;QAClG,qCAAqC;QACrC,qCAAqC;QACrC,qCAAqC;QACrC,uEAAuE;QACvE,uEAAuE;QACvE,6EAA6E;KAChF,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC;;;;;;;;;;;;;;;;;;KAkBxB,CAAC,CAAA;IAEF,EAAE,CAAC,mBAAmB,EAAE;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;SAiBlB,EAAE;YACC,MAAM,EAAE;gBACJ;oBACI,EAAE,EAAE,GAAG;oBACP,OAAO,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC;oBACpB,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,EAAE,EAAE,GAAG;oBACP,OAAO,EAAE,EAAC,MAAM,EAAE,CAAC,EAAC;oBACpB,YAAY,EAAE,IAAI;iBACrB;gBACD;oBACI,EAAE,EAAE,GAAG;oBACP,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE;wBACV,MAAM,EAAE,EAAE;wBACV,KAAK,EAAE;4BACH,YAAY,EAAE;gCACV,EAAE,EAAE,GAAG;6BACV;yBACJ;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;SAMlB,EAAE;YACC,MAAM,EAAE;gBACJ,EAAC,EAAE,EAAE,GAAG,EAAC;gBACT,EAAC,EAAE,EAAE,GAAG,EAAC;gBACT,EAAC,EAAE,EAAE,GAAG,EAAC;aACZ;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;SAMlB,EAAE;YACC,MAAM,EAAE;gBACJ,EAAC,EAAE,EAAE,GAAG,EAAC;aACZ;SACJ,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=scalars.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scalars.test.d.ts","sourceRoot":"","sources":["../../src/test/scalars.test.ts"],"names":[],"mappings":""}