@arkiv-network/sdk 0.3.2-dev.0 → 0.3.2-dev.2
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.
- package/README.md +1 -0
- package/dist/chains/index.d.cts +25 -25
- package/dist/chains/index.d.cts.map +1 -1
- package/dist/chains/index.d.ts +25 -25
- package/dist/{entity-o4fwHXKf.d.ts → entity-0JJeFAgO.d.cts} +7 -5
- package/dist/entity-0JJeFAgO.d.cts.map +1 -0
- package/dist/{entity-OY78HYxA.d.cts → entity-BG8YycYJ.d.ts} +7 -5
- package/dist/entity-BG8YycYJ.d.ts.map +1 -0
- package/dist/index.cjs +11 -34
- package/dist/index.d.cts +40 -38
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +40 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -24
- package/dist/index.js.map +1 -1
- package/dist/query/index.cjs +3 -1
- package/dist/query/index.d.cts +3 -3
- package/dist/query/index.d.ts +3 -3
- package/dist/query/index.js +2 -2
- package/dist/{queryBuilder-CboWSREN.d.ts → queryBuilder-BNhnpewa.d.ts} +56 -3
- package/dist/queryBuilder-BNhnpewa.d.ts.map +1 -0
- package/dist/{queryBuilder-BueP5de6.js → queryBuilder-CAQ7TDMZ.js} +60 -4
- package/dist/queryBuilder-CAQ7TDMZ.js.map +1 -0
- package/dist/{queryBuilder-n9ocnT4P.cjs → queryBuilder-DEkfSiCF.cjs} +70 -2
- package/dist/{queryBuilder-Bm1zGqKA.d.cts → queryBuilder-Dc_ii8LH.d.cts} +56 -3
- package/dist/queryBuilder-Dc_ii8LH.d.cts.map +1 -0
- package/dist/types/index.cjs +1 -0
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types-CBTc19th.cjs +0 -0
- package/dist/types-Cv8NMtbo.js +0 -0
- package/dist/utils/index.d.cts.map +1 -1
- package/package.json +1 -1
- package/src/clients/createPublicClient.ts +2 -2
- package/src/clients/createWalletClient.ts +2 -2
- package/src/clients/decorators/arkivPublic.ts +2 -2
- package/src/clients/decorators/arkivWallet.ts +12 -11
- package/src/index.ts +3 -34
- package/src/query/engine.test.ts +69 -0
- package/src/query/engine.ts +8 -3
- package/src/query/queryBuilder.test.ts +76 -1
- package/src/query/queryBuilder.ts +103 -0
- package/src/types/rpcSchema.ts +7 -5
- package/dist/entity-OY78HYxA.d.cts.map +0 -1
- package/dist/entity-o4fwHXKf.d.ts.map +0 -1
- package/dist/queryBuilder-Bm1zGqKA.d.cts.map +0 -1
- package/dist/queryBuilder-BueP5de6.js.map +0 -1
- package/dist/queryBuilder-CboWSREN.d.ts.map +0 -1
|
@@ -4,7 +4,7 @@ import { Entity } from "../types/entity"
|
|
|
4
4
|
import * as entitiesUtils from "../utils/entities"
|
|
5
5
|
import * as engine from "./engine"
|
|
6
6
|
import { and, eq, gt, gte, neq, or } from "./predicate"
|
|
7
|
-
import { QueryBuilder } from "./queryBuilder"
|
|
7
|
+
import { asc, QueryBuilder } from "./queryBuilder"
|
|
8
8
|
|
|
9
9
|
describe("QueryBuilder", () => {
|
|
10
10
|
let mockClient: ArkivClient
|
|
@@ -46,6 +46,7 @@ describe("QueryBuilder", () => {
|
|
|
46
46
|
limit: undefined,
|
|
47
47
|
offset: undefined,
|
|
48
48
|
ownedBy: undefined,
|
|
49
|
+
orderBy: undefined,
|
|
49
50
|
validBeforeBlock: undefined,
|
|
50
51
|
withAttributes: undefined,
|
|
51
52
|
withMetadata: undefined,
|
|
@@ -67,6 +68,7 @@ describe("QueryBuilder", () => {
|
|
|
67
68
|
limit: undefined,
|
|
68
69
|
offset: undefined,
|
|
69
70
|
ownedBy: undefined,
|
|
71
|
+
orderBy: undefined,
|
|
70
72
|
validBeforeBlock: undefined,
|
|
71
73
|
withAttributes: undefined,
|
|
72
74
|
withMetadata: undefined,
|
|
@@ -96,6 +98,7 @@ describe("QueryBuilder", () => {
|
|
|
96
98
|
limit: undefined,
|
|
97
99
|
offset: undefined,
|
|
98
100
|
ownedBy: undefined,
|
|
101
|
+
orderBy: undefined,
|
|
99
102
|
validBeforeBlock: undefined,
|
|
100
103
|
withAttributes: undefined,
|
|
101
104
|
withMetadata: undefined,
|
|
@@ -117,6 +120,7 @@ describe("QueryBuilder", () => {
|
|
|
117
120
|
limit: undefined,
|
|
118
121
|
offset: undefined,
|
|
119
122
|
ownedBy: undefined,
|
|
123
|
+
orderBy: undefined,
|
|
120
124
|
validBeforeBlock: undefined,
|
|
121
125
|
withAttributes: undefined,
|
|
122
126
|
withMetadata: undefined,
|
|
@@ -141,6 +145,7 @@ describe("QueryBuilder", () => {
|
|
|
141
145
|
limit: undefined,
|
|
142
146
|
offset: undefined,
|
|
143
147
|
ownedBy: undefined,
|
|
148
|
+
orderBy: undefined,
|
|
144
149
|
validBeforeBlock: undefined,
|
|
145
150
|
withAttributes: undefined,
|
|
146
151
|
withMetadata: undefined,
|
|
@@ -164,6 +169,7 @@ describe("QueryBuilder", () => {
|
|
|
164
169
|
limit: undefined,
|
|
165
170
|
offset: undefined,
|
|
166
171
|
ownedBy: owner,
|
|
172
|
+
orderBy: undefined,
|
|
167
173
|
validBeforeBlock: undefined,
|
|
168
174
|
withAttributes: undefined,
|
|
169
175
|
withMetadata: undefined,
|
|
@@ -171,6 +177,68 @@ describe("QueryBuilder", () => {
|
|
|
171
177
|
})
|
|
172
178
|
})
|
|
173
179
|
|
|
180
|
+
test("orderBy() sets orderBy ascending", async () => {
|
|
181
|
+
mockProcessQuery.mockResolvedValue({
|
|
182
|
+
data: [],
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
const builder = new QueryBuilder(mockClient)
|
|
186
|
+
await builder.orderBy("name", "string", "asc").fetch()
|
|
187
|
+
|
|
188
|
+
expect(mockProcessQuery).toHaveBeenCalledWith(mockClient, {
|
|
189
|
+
predicates: [],
|
|
190
|
+
limit: undefined,
|
|
191
|
+
offset: undefined,
|
|
192
|
+
ownedBy: undefined,
|
|
193
|
+
orderBy: [{ name: "name", type: "string", desc: false }],
|
|
194
|
+
validAtBlock: undefined,
|
|
195
|
+
withAttributes: undefined,
|
|
196
|
+
withMetadata: undefined,
|
|
197
|
+
withPayload: undefined,
|
|
198
|
+
})
|
|
199
|
+
})
|
|
200
|
+
|
|
201
|
+
test("orderBy() sets orderBy descending", async () => {
|
|
202
|
+
mockProcessQuery.mockResolvedValue({
|
|
203
|
+
data: [],
|
|
204
|
+
})
|
|
205
|
+
|
|
206
|
+
const builder = new QueryBuilder(mockClient)
|
|
207
|
+
await builder.orderBy("name", "string", "desc").fetch()
|
|
208
|
+
|
|
209
|
+
expect(mockProcessQuery).toHaveBeenCalledWith(mockClient, {
|
|
210
|
+
predicates: [],
|
|
211
|
+
limit: undefined,
|
|
212
|
+
offset: undefined,
|
|
213
|
+
ownedBy: undefined,
|
|
214
|
+
orderBy: [{ name: "name", type: "string", desc: true }],
|
|
215
|
+
validAtBlock: undefined,
|
|
216
|
+
withAttributes: undefined,
|
|
217
|
+
withMetadata: undefined,
|
|
218
|
+
withPayload: undefined,
|
|
219
|
+
})
|
|
220
|
+
})
|
|
221
|
+
|
|
222
|
+
test("orderBy() with helper function", async () => {
|
|
223
|
+
mockProcessQuery.mockResolvedValue({
|
|
224
|
+
data: [],
|
|
225
|
+
})
|
|
226
|
+
|
|
227
|
+
const builder = new QueryBuilder(mockClient)
|
|
228
|
+
await builder.orderBy(asc("name", "string")).fetch()
|
|
229
|
+
|
|
230
|
+
expect(mockProcessQuery).toHaveBeenCalledWith(mockClient, {
|
|
231
|
+
predicates: [],
|
|
232
|
+
limit: undefined,
|
|
233
|
+
offset: undefined,
|
|
234
|
+
ownedBy: undefined,
|
|
235
|
+
orderBy: [{ name: "name", type: "string", desc: false }],
|
|
236
|
+
validAtBlock: undefined,
|
|
237
|
+
withAttributes: undefined,
|
|
238
|
+
withMetadata: undefined,
|
|
239
|
+
withPayload: undefined,
|
|
240
|
+
})
|
|
241
|
+
})
|
|
174
242
|
test("limit() sets limit", async () => {
|
|
175
243
|
mockProcessQuery.mockResolvedValue({
|
|
176
244
|
data: [],
|
|
@@ -184,6 +252,7 @@ describe("QueryBuilder", () => {
|
|
|
184
252
|
limit: 10,
|
|
185
253
|
offset: undefined,
|
|
186
254
|
ownedBy: undefined,
|
|
255
|
+
orderBy: undefined,
|
|
187
256
|
validBeforeBlock: undefined,
|
|
188
257
|
withAttributes: undefined,
|
|
189
258
|
withMetadata: undefined,
|
|
@@ -204,6 +273,7 @@ describe("QueryBuilder", () => {
|
|
|
204
273
|
limit: undefined,
|
|
205
274
|
cursor: "0xABC123",
|
|
206
275
|
ownedBy: undefined,
|
|
276
|
+
orderBy: undefined,
|
|
207
277
|
validAtBlock: undefined,
|
|
208
278
|
withAttributes: undefined,
|
|
209
279
|
withMetadata: undefined,
|
|
@@ -224,6 +294,7 @@ describe("QueryBuilder", () => {
|
|
|
224
294
|
limit: undefined,
|
|
225
295
|
offset: undefined,
|
|
226
296
|
ownedBy: undefined,
|
|
297
|
+
orderBy: undefined,
|
|
227
298
|
validBeforeBlock: undefined,
|
|
228
299
|
withAttributes: true,
|
|
229
300
|
withMetadata: undefined,
|
|
@@ -244,6 +315,7 @@ describe("QueryBuilder", () => {
|
|
|
244
315
|
limit: undefined,
|
|
245
316
|
cursor: undefined,
|
|
246
317
|
ownedBy: undefined,
|
|
318
|
+
orderBy: undefined,
|
|
247
319
|
validBeforeBlock: undefined,
|
|
248
320
|
withAttributes: false,
|
|
249
321
|
withMetadata: undefined,
|
|
@@ -264,6 +336,7 @@ describe("QueryBuilder", () => {
|
|
|
264
336
|
limit: undefined,
|
|
265
337
|
cursor: undefined,
|
|
266
338
|
ownedBy: undefined,
|
|
339
|
+
orderBy: undefined,
|
|
267
340
|
validAtBlock: undefined,
|
|
268
341
|
withAttributes: undefined,
|
|
269
342
|
withMetadata: true,
|
|
@@ -284,6 +357,7 @@ describe("QueryBuilder", () => {
|
|
|
284
357
|
limit: undefined,
|
|
285
358
|
cursor: undefined,
|
|
286
359
|
ownedBy: undefined,
|
|
360
|
+
orderBy: undefined,
|
|
287
361
|
validAtBlock: undefined,
|
|
288
362
|
withAttributes: undefined,
|
|
289
363
|
withMetadata: false,
|
|
@@ -304,6 +378,7 @@ describe("QueryBuilder", () => {
|
|
|
304
378
|
limit: undefined,
|
|
305
379
|
cursor: undefined,
|
|
306
380
|
ownedBy: undefined,
|
|
381
|
+
orderBy: undefined,
|
|
307
382
|
validAtBlock: undefined,
|
|
308
383
|
withAttributes: undefined,
|
|
309
384
|
withMetadata: undefined,
|
|
@@ -1,10 +1,50 @@
|
|
|
1
1
|
import type { Hex } from "viem"
|
|
2
2
|
import type { ArkivClient } from "../clients/baseClient"
|
|
3
|
+
import type { RpcOrderByAttribute } from "../types/rpcSchema"
|
|
3
4
|
import { entityFromRpcResult } from "../utils/entities"
|
|
4
5
|
import { processQuery } from "./engine"
|
|
5
6
|
import type { Predicate } from "./predicate"
|
|
6
7
|
import { QueryResult } from "./queryResult"
|
|
7
8
|
|
|
9
|
+
type OrderByAttribute = {
|
|
10
|
+
name: string
|
|
11
|
+
type: "string" | "number"
|
|
12
|
+
order: "asc" | "desc"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Helper function to create an ascending order by attribute
|
|
17
|
+
* @param attributeName - The name of the attribute to order by
|
|
18
|
+
* @param attributeType - The type of the attribute to order by (string or number)
|
|
19
|
+
* @returns The OrderByAttribute instance
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* const ascAttribute = asc("name", "string")
|
|
23
|
+
*/
|
|
24
|
+
export function asc(attributeName: string, attributeType: "string" | "number"): OrderByAttribute {
|
|
25
|
+
return {
|
|
26
|
+
name: attributeName,
|
|
27
|
+
type: attributeType,
|
|
28
|
+
order: "asc",
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Helper function to create a descending order by attribute
|
|
34
|
+
* @param attributeName - The name of the attribute to order by
|
|
35
|
+
* @param attributeType - The type of the attribute to order by (string or number)
|
|
36
|
+
* @returns The OrderByAttribute instance
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* const descAttribute = desc("name", "string")
|
|
40
|
+
*/
|
|
41
|
+
export function desc(attributeName: string, attributeType: "string" | "number"): OrderByAttribute {
|
|
42
|
+
return {
|
|
43
|
+
name: attributeName,
|
|
44
|
+
type: attributeType,
|
|
45
|
+
order: "desc",
|
|
46
|
+
}
|
|
47
|
+
}
|
|
8
48
|
/**
|
|
9
49
|
* QueryBuilder is a helper class to build queries to the Arkiv DBChains.
|
|
10
50
|
* It can be used to fetch entities from the Arkiv DBChains. It follows the Builder pattern allowing chaining of methods.
|
|
@@ -14,6 +54,7 @@ import { QueryResult } from "./queryResult"
|
|
|
14
54
|
export class QueryBuilder {
|
|
15
55
|
private _client: ArkivClient
|
|
16
56
|
private _ownedBy: Hex | undefined
|
|
57
|
+
private _orderBy: RpcOrderByAttribute[] | undefined
|
|
17
58
|
private _validAtBlock: bigint | undefined
|
|
18
59
|
private _withAttributes: boolean | undefined
|
|
19
60
|
private _withMetadata: boolean | undefined
|
|
@@ -41,6 +82,66 @@ export class QueryBuilder {
|
|
|
41
82
|
return this
|
|
42
83
|
}
|
|
43
84
|
|
|
85
|
+
/**
|
|
86
|
+
* Sets the orderBy for the query.
|
|
87
|
+
* It can be called multiple times to order by multiple attributes.
|
|
88
|
+
* The order of the attributes is important. The first attribute is the primary order by attribute.
|
|
89
|
+
* @param attributeName - The name of the attribute to order by
|
|
90
|
+
* @param attributeType - The type of the attribute to order by (string or number)
|
|
91
|
+
* @param order - The order to set the order by (asc or desc)
|
|
92
|
+
* @returns The QueryBuilder instance
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* const builder = new QueryBuilder(client)
|
|
96
|
+
* builder.orderBy("name", "string", "desc")
|
|
97
|
+
*/
|
|
98
|
+
orderBy(attributeName: string, attributeType: "string" | "number", order?: "asc" | "desc"): this
|
|
99
|
+
/**
|
|
100
|
+
* Sets the orderBy for the query.
|
|
101
|
+
* This method takes the OrderByAttribute object as an argument and is mainly
|
|
102
|
+
* used to use the helper functions asc() and desc() to create the OrderByAttribute instances.
|
|
103
|
+
* @param orderByAttribute - The OrderByAttribute instance to set
|
|
104
|
+
* @returns The QueryBuilder instance
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* const builder = new QueryBuilder(client)
|
|
108
|
+
* builder.orderBy(asc("name", "string"))
|
|
109
|
+
* builder.orderBy(desc("name", "string"))
|
|
110
|
+
*/
|
|
111
|
+
orderBy(orderByAttribute: OrderByAttribute): this
|
|
112
|
+
orderBy(
|
|
113
|
+
attributeNameOrOrderByAttribute: string | OrderByAttribute,
|
|
114
|
+
attributeType?: "string" | "number",
|
|
115
|
+
order: "asc" | "desc" = "asc",
|
|
116
|
+
) {
|
|
117
|
+
if (!this._orderBy) {
|
|
118
|
+
this._orderBy = []
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const pushOrderByAttribute = ({ name, type, order }: OrderByAttribute) => {
|
|
122
|
+
this._orderBy?.push({
|
|
123
|
+
name,
|
|
124
|
+
type: type === "number" ? "numeric" : type,
|
|
125
|
+
desc: order === "desc",
|
|
126
|
+
})
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (typeof attributeNameOrOrderByAttribute === "string") {
|
|
130
|
+
if (!attributeType) {
|
|
131
|
+
throw new Error("attributeType is required when using positional orderBy arguments")
|
|
132
|
+
}
|
|
133
|
+
pushOrderByAttribute({
|
|
134
|
+
name: attributeNameOrOrderByAttribute,
|
|
135
|
+
type: attributeType,
|
|
136
|
+
order,
|
|
137
|
+
})
|
|
138
|
+
} else {
|
|
139
|
+
pushOrderByAttribute(attributeNameOrOrderByAttribute)
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return this
|
|
143
|
+
}
|
|
144
|
+
|
|
44
145
|
/**
|
|
45
146
|
* Sets the withAttributes flag which will return the attributes for the entities if true
|
|
46
147
|
* @param withAttributes - The boolean value to set
|
|
@@ -167,6 +268,7 @@ export class QueryBuilder {
|
|
|
167
268
|
limit: this._limit,
|
|
168
269
|
cursor: this._cursor,
|
|
169
270
|
ownedBy: this._ownedBy,
|
|
271
|
+
orderBy: this._orderBy,
|
|
170
272
|
validAtBlock: this._validAtBlock,
|
|
171
273
|
withAttributes: this._withAttributes,
|
|
172
274
|
withMetadata: this._withMetadata,
|
|
@@ -198,6 +300,7 @@ export class QueryBuilder {
|
|
|
198
300
|
limit: this._limit,
|
|
199
301
|
cursor: this._cursor,
|
|
200
302
|
ownedBy: this._ownedBy,
|
|
303
|
+
orderBy: undefined,
|
|
201
304
|
validAtBlock: this._validAtBlock,
|
|
202
305
|
withAttributes: false,
|
|
203
306
|
withMetadata: false,
|
package/src/types/rpcSchema.ts
CHANGED
|
@@ -11,9 +11,16 @@ export type RpcEntity = {
|
|
|
11
11
|
numericAttributes?: [{ key: string; value: number }]
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
export type RpcOrderByAttribute = {
|
|
15
|
+
name: string
|
|
16
|
+
type: "string" | "numeric"
|
|
17
|
+
desc: boolean
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
export type RpcQueryOptions = {
|
|
15
21
|
atBlock?: number
|
|
16
22
|
includeData?: RpcIncludeData
|
|
23
|
+
orderBy?: RpcOrderByAttribute[]
|
|
17
24
|
resultsPerPage?: number
|
|
18
25
|
cursor?: string
|
|
19
26
|
}
|
|
@@ -28,11 +35,6 @@ export type RpcIncludeData = {
|
|
|
28
35
|
}
|
|
29
36
|
|
|
30
37
|
export type ArkivRpcSchema = [
|
|
31
|
-
{
|
|
32
|
-
Method: "golembase_getStorageValue"
|
|
33
|
-
Parameters?: [entityId: Hex]
|
|
34
|
-
ReturnType: string
|
|
35
|
-
},
|
|
36
38
|
{
|
|
37
39
|
Method: "arkiv_query"
|
|
38
40
|
Parameters?: [query: string, queryOptions?: RpcQueryOptions]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-OY78HYxA.d.cts","names":[],"sources":["../src/types/mimeTypes.ts","../src/types/rpcSchema.ts","../src/clients/baseClient.ts","../src/actions/wallet/changeOwnership.ts","../src/actions/wallet/createEntity.ts","../src/actions/wallet/deleteEntity.ts","../src/actions/wallet/extendEntity.ts","../src/actions/wallet/updateEntity.ts","../src/actions/wallet/mutateEntities.ts","../src/types/attributes.ts","../src/types/txParams.ts","../src/types/entity.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity-o4fwHXKf.d.ts","names":[],"sources":["../src/types/mimeTypes.ts","../src/types/rpcSchema.ts","../src/clients/baseClient.ts","../src/actions/wallet/changeOwnership.ts","../src/actions/wallet/createEntity.ts","../src/actions/wallet/deleteEntity.ts","../src/actions/wallet/extendEntity.ts","../src/actions/wallet/updateEntity.ts","../src/actions/wallet/mutateEntities.ts","../src/types/attributes.ts","../src/types/txParams.ts","../src/types/entity.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryBuilder-Bm1zGqKA.d.cts","names":[],"sources":["../src/query/predicate.ts","../src/query/queryResult.ts","../src/query/queryBuilder.ts"],"sourcesContent":[],"mappings":";;;;KAAY,aAAA;KACA,sBAAA;KAEA,SAAA;QAEA;EALA,GAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,MAAA;AAEZ,CAAA,GAAY;EAEA,IAAA,EAKA,sBALA;EAKA,UAAA,EACM,SADN,EAAA;CACM;;AAclB;AAeA;AAcA;AAcA;AAcA;AAcA;AAcA;AAcA;AAaA;;iBAhHgB,EAAA,aAAe,cAAc;;ACrB7C;;;;;;;;;;ACSa,iBF2BG,GAAA,CE3BS,UAAA,EF2BO,SE3BP,EAAA,CAAA,EF2BqB,SE3BrB;;;;;;;;;;;iBFyCT,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;iBAa1C,GAAA,eAAkB;;;cCrIrB,WAAA;YACD;EDLA,QAAA,eAAa;EACb,QAAA,OAAA;EAEA,QAAA,MAAS;EAET,QAAA,aAAA;EAKA,QAAA,aAAA;EACM,IAAA,YAAA,CAAA,CAAA,ECEI,YDFJ;EAAS,IAAA,MAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAcX,WAAE,CAAA,QAAa,ECHjB,MDG+B,EAAA,EAAA,YAAS,ECFpC,YDEoC,EAAA,MAAA,EAAA,MAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,YAAA,EAAA,MAAA,GAAA,SAAA;EAetC,IAAA,CAAA,CAAG,ECJP,ODIO,CAAA,IAAa,CAAA;EAchB,WAAE,CAAA,CAAA,EAAA,OAAuC;AAczD;;;AApEA;AACA;AAEA;;;;AAQ2B,cEEd,YAAA,CFFc;EAcX,QAAE,OAAA;EAeF,QAAG,QAAA;EAcH,QAAE,aAAuC;EAczC,QAAG,eAAuC;EAc1C,QAAE,aAAuC;EAczC,QAAG,YAAuC;EAc1C,QAAE,MAAA;EAcF,QAAG,OAAA;EAaH,QAAG,WAAe;sBEjHZ;;;ADpBtB;;;;;;;mBCkCmB;;;AAzBnB;;;;;;;EAqLa,cAAA,CAAA,cAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAlDO,cAAc;;;;;;;;;;;WAmBrB,QAAA;;;;;;;;;;WA+BA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryBuilder-BueP5de6.js","names":["predicate","queryOptions: RpcQueryOptions"],"sources":["../src/query/errors.ts","../src/types/entity.ts","../src/utils/entities.ts","../src/query/engine.ts","../src/query/queryResult.ts","../src/query/queryBuilder.ts"],"sourcesContent":["export class NoMoreResultsError extends Error {\n constructor() {\n super(\"No more results\")\n }\n}\n\nexport class NoCursorOrLimitError extends Error {\n constructor() {\n super(\"Cursor and limit must be defined to fetch next\")\n }\n}\n\nexport class OffsetCannotBeLessThanZeroError extends Error {\n constructor() {\n super(\"Offset cannot be less than 0\")\n }\n}\n\nexport class NoEntityFoundError extends Error {\n constructor() {\n super(\"No entity found\")\n }\n}\n","import { bytesToString, type Hex } from \"viem\"\nimport type { MimeType } from \"../types\"\nimport type { Attribute } from \"./attributes\"\n\nexport class Entity {\n key: Hex\n owner: Hex\n expiresAtBlock: bigint\n payload: Uint8Array\n attributes: Attribute[]\n contentType: MimeType\n\n constructor(\n key: Hex,\n contentType: MimeType,\n owner: Hex,\n expiresAtBlock: bigint,\n payload: Uint8Array,\n attributes: Attribute[],\n ) {\n this.key = key\n this.owner = owner\n this.expiresAtBlock = expiresAtBlock\n this.payload = payload\n this.attributes = attributes\n this.contentType = contentType\n }\n\n toText(): string {\n return bytesToString(this.payload)\n }\n\n toJson(): any {\n return JSON.parse(bytesToString(this.payload))\n }\n}\n","import { toBytes } from \"viem\"\nimport { Entity } from \"../types/entity\"\nimport type { RpcEntity } from \"../types/rpcSchema\"\n\nexport async function entityFromRpcResult(rpcEntity: RpcEntity) {\n return new Entity(\n rpcEntity.key,\n rpcEntity.contentType,\n rpcEntity.owner,\n rpcEntity.expiresAt,\n toBytes(rpcEntity.value),\n [\n ...(rpcEntity.stringAttributes ?? []).map(({ key, value }) => ({\n key,\n value,\n })),\n ...(rpcEntity.numericAttributes ?? []).map(({ key, value }) => ({\n key,\n value: Number(value),\n })),\n ],\n )\n}\n","import type { Hex } from \"viem\"\nimport type { ArkivClient } from \"../clients/baseClient\"\nimport type { RpcQueryOptions } from \"../types/rpcSchema\"\nimport type { Predicate } from \"./predicate\"\n\nfunction processPredicates(predicates: Predicate[]): string {\n const processValue = (value: string | number) => {\n if (typeof value === \"string\") {\n return `\"${value}\"`\n }\n return value\n }\n return predicates\n .map((predicate) => {\n switch (predicate.type) {\n case \"eq\":\n return `${predicate.key} = ${processValue(predicate.value)}`\n case \"neq\":\n return `${predicate.key} != ${processValue(predicate.value)}`\n case \"gt\":\n return `${predicate.key} > ${processValue(predicate.value)}`\n case \"gte\":\n return `${predicate.key} >= ${processValue(predicate.value)}`\n case \"lt\":\n return `${predicate.key} < ${processValue(predicate.value)}`\n case \"lte\":\n return `${predicate.key} <= ${processValue(predicate.value)}`\n case \"not\":\n return `!${predicate.key}`\n case \"or\":\n return `(${predicate.predicates.map((predicate) => processPredicates([predicate])).join(\" || \")})`\n case \"and\":\n return `(${predicate.predicates.map((predicate) => processPredicates([predicate])).join(\" && \")})`\n default:\n return \"\"\n }\n })\n .join(\" && \")\n}\n\nexport async function processQuery(\n client: ArkivClient,\n queryParams: {\n predicates: Predicate[]\n limit: number | undefined\n cursor: string | undefined\n ownedBy: Hex | undefined\n validAtBlock?: bigint | undefined\n withAttributes?: boolean | undefined\n withMetadata?: boolean | undefined\n withPayload?: boolean | undefined\n },\n) {\n const {\n predicates,\n limit,\n cursor,\n ownedBy,\n validAtBlock,\n withAttributes,\n withMetadata,\n withPayload,\n } = queryParams\n\n console.debug(\n `Processing query with params: predicates: ${predicates}, cursor: ${cursor}, limit: ${limit}, ownedBy: ${ownedBy}, validAtBlock: ${validAtBlock}, withAttributes: ${withAttributes}, withMetadata: ${withMetadata}, withPayload: ${withPayload}`,\n )\n\n let query = processPredicates(predicates)\n if (ownedBy) {\n query += ` && $owner=${ownedBy}`\n }\n\n // remove leading and trailing spaces and leading &&\n query = query.trim()\n if (query.startsWith(\"&& \")) {\n query = query.slice(3)\n }\n\n const queryOptions: RpcQueryOptions = {\n includeData: {\n key: true,\n attributes: withAttributes ?? false,\n payload: withPayload ?? false,\n contentType: withMetadata ?? false,\n expiration: withMetadata ?? false,\n owner: withMetadata ?? false,\n },\n }\n\n if (validAtBlock !== undefined) {\n queryOptions.atBlock = Number(validAtBlock)\n }\n if (limit !== undefined) {\n queryOptions.resultsPerPage = limit\n }\n if (cursor !== undefined) {\n queryOptions.cursor = cursor\n }\n\n console.debug(\n `Built query to send: ${query}, queryOptions: ${JSON.stringify({ includeData: queryOptions.includeData, atBlock: queryOptions.atBlock?.toString(), resultsPerPage: queryOptions.resultsPerPage, cursor: queryOptions.cursor })}`,\n )\n\n const result = await client.request({\n method: \"arkiv_query\",\n params: [query, queryOptions],\n })\n console.debug(\"Raw result from query: \", result)\n\n return result\n}\n","import type { Entity } from \"../types/entity\"\nimport { NoCursorOrLimitError, NoMoreResultsError } from \"./errors\"\nimport type { QueryBuilder } from \"./queryBuilder\"\n\nexport class QueryResult {\n entities: Entity[]\n private _endOfIteration: boolean\n private _cursor: string | undefined\n private _limit: number | undefined\n private _validAtBlock: bigint | undefined\n private _queryBuilder: QueryBuilder\n\n // Public getters for internal state\n get queryBuilder(): QueryBuilder {\n return this._queryBuilder\n }\n\n get cursor(): string | undefined {\n return this._cursor\n }\n\n constructor(\n entities: Entity[],\n queryBuilder: QueryBuilder,\n cursor: string | undefined,\n limit: number | undefined,\n validAtBlock: bigint | undefined,\n ) {\n this.entities = entities\n this._queryBuilder = queryBuilder\n this._endOfIteration = !limit || entities.length < limit\n this._cursor = cursor\n this._limit = limit\n this._validAtBlock = validAtBlock\n }\n\n async next() {\n if (this._cursor === undefined || this._limit === undefined) {\n throw new NoCursorOrLimitError()\n }\n if (this._endOfIteration) {\n throw new NoMoreResultsError()\n }\n this._queryBuilder.cursor(this._cursor)\n const result = await this._queryBuilder.fetch()\n this.entities = result.entities\n // Update the query builder reference\n this._queryBuilder = result.queryBuilder\n // Check if we've reached the end (no more cursor or we got fewer entities than limit)\n this._endOfIteration = !result.cursor || result.entities.length < this._limit\n // Update the cursor\n this._cursor = result.cursor\n\n // TODO check current block height and if it is not too old\n console.debug(\"Current block height for next page: \", this._validAtBlock)\n }\n\n hasNextPage() {\n return !this._endOfIteration\n }\n}\n","import type { Hex } from \"viem\"\nimport type { ArkivClient } from \"../clients/baseClient\"\nimport { entityFromRpcResult } from \"../utils/entities\"\nimport { processQuery } from \"./engine\"\nimport type { Predicate } from \"./predicate\"\nimport { QueryResult } from \"./queryResult\"\n\n/**\n * QueryBuilder is a helper class to build queries to the Arkiv DBChains.\n * It can be used to fetch entities from the Arkiv DBChains. It follows the Builder pattern allowing chaining of methods.\n * @param client - The Arkiv client\n * @returns The QueryBuilder instance {@link QueryBuilder}\n */\nexport class QueryBuilder {\n private _client: ArkivClient\n private _ownedBy: Hex | undefined\n private _validAtBlock: bigint | undefined\n private _withAttributes: boolean | undefined\n private _withMetadata: boolean | undefined\n private _withPayload: boolean | undefined\n private _limit: number | undefined\n private _cursor: string | undefined\n private _predicates: Predicate[]\n\n constructor(client: ArkivClient) {\n this._client = client\n this._predicates = []\n }\n\n /**\n * Sets the ownedBy filter\n * @param ownedBy - The address of the owner\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.ownedBy(\"0x1234567890123456789012345678901234567890\")\n */\n ownedBy(ownedBy: Hex) {\n this._ownedBy = ownedBy\n return this\n }\n\n /**\n * Sets the withAttributes flag which will return the attributes for the entities if true\n * @param withAttributes - The boolean value to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.withAttributes(true)\n */\n withAttributes(withAttributes: boolean = true) {\n this._withAttributes = withAttributes\n return this\n }\n\n /**\n * Sets the withMetadata flag which will return the metadata (like owner, expiredAt, etc.) for the entities if true\n * @param withMetadata - The boolean value to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.withMetadata(true)\n */\n withMetadata(withMetadata: boolean = true) {\n this._withMetadata = withMetadata\n return this\n }\n\n /**\n * Sets the withPayload flag which will return the payload for the entities if true\n * @param withPayload - The boolean value to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.withPayload(true)\n */\n withPayload(withPayload: boolean = true) {\n this._withPayload = withPayload\n return this\n }\n\n /**\n * Sets the limit for the query\n * @param limit - The number of entities to return\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.limit(10)\n */\n limit(limit: number) {\n this._limit = limit\n return this\n }\n\n /**\n * Sets the cursor for the query - it is advances setting which rather shouldn't be used manually but it is provided from query result if limit is used (pagination).\n * @param cursor - The cursor to set which tells to RPC Query server where to start or continue the query.\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.offset(10)\n */\n cursor(cursor: string) {\n this._cursor = cursor\n return this\n }\n\n /**\n * Sets the validAtBlock for the query which tells at which block height the state we are intested.\n * If not set, the latest block is used.\n * @param validAtBlock - The block number to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.validAtBlock(10000)\n */\n validAtBlock(validAtBlock: bigint) {\n this._validAtBlock = validAtBlock\n return this\n }\n\n /**\n * Sets the predicates for the query limiting the results. It can be a single predicate or an array of predicates combined with 'and'.\n * Predicates can be nested using 'or' and 'and' predicates.\n * @param predicates - The predicates to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.where(eq(\"name\", \"John\"))\n * builder.where([eq(\"name\", \"John\"), eq(\"age\", 30)])\n * builder.where([eq(\"name\", \"John\"), or([eq(\"age\", 30), eq(\"age\", 31)])])\n * builder.where([eq(\"name\", \"John\"), and([eq(\"age\", 30), eq(\"age\", 31)])])\n * builder.where([eq(\"name\", \"John\"), or([eq(\"age\", 30), and([eq(\"age\", 31), eq(\"age\", 32)])])])\n * builder.where([eq(\"name\", \"John\"), and([eq(\"age\", 30), or([eq(\"age\", 31), eq(\"age\", 32)])])])\n * builder.where([eq(\"name\", \"John\"), and([eq(\"age\", 30), or([eq(\"age\", 31), and([eq(\"age\", 32), eq(\"age\", 33)])])])])\n */\n where(predicates: Predicate[] | Predicate) {\n if (Array.isArray(predicates)) {\n this._predicates.push(...predicates)\n } else {\n this._predicates.push(predicates)\n }\n return this\n }\n\n /**\n * Fetches the entities from the query. Re\n * It will return a QueryResult instance which can be used to fetch the next and previous pages.\n * @returns The QueryResult instance {@link QueryResult}\n *\n * @example\n * const builder = new QueryBuilder(client)\n * const result = await builder.where(eq(\"name\", \"John\")).fetch()\n * // result = { entities: [Entity, Entity, Entity], next: async () => QueryResult, previous: async () => QueryResult }\n */\n async fetch() {\n const queryResult = await processQuery(this._client, {\n predicates: this._predicates,\n limit: this._limit,\n cursor: this._cursor,\n ownedBy: this._ownedBy,\n validAtBlock: this._validAtBlock,\n withAttributes: this._withAttributes,\n withMetadata: this._withMetadata,\n withPayload: this._withPayload,\n })\n\n const entities = await Promise.all(\n queryResult.data.map((entity) => entityFromRpcResult(entity)),\n )\n\n this.cursor(queryResult.cursor)\n this.validAtBlock(queryResult.blockNumber)\n\n return new QueryResult(entities, this, this._cursor, this._limit, this._validAtBlock)\n }\n\n /**\n * Counts the entities from the query.\n * @returns The number of entities\n *\n * @example\n * const builder = new QueryBuilder(client)\n * const result = await builder.where(eq(\"name\", \"John\")).count()\n * // result = 10\n */\n async count() {\n const queryResult = await processQuery(this._client, {\n predicates: this._predicates,\n limit: this._limit,\n cursor: this._cursor,\n ownedBy: this._ownedBy,\n validAtBlock: this._validAtBlock,\n withAttributes: false,\n withMetadata: false,\n withPayload: false,\n })\n\n return queryResult.data.length ?? 0\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryBuilder-CboWSREN.d.ts","names":[],"sources":["../src/query/predicate.ts","../src/query/queryResult.ts","../src/query/queryBuilder.ts"],"sourcesContent":[],"mappings":";;;;KAAY,aAAA;KACA,sBAAA;KAEA,SAAA;QAEA;EALA,GAAA,EAAA,MAAA;EACA,KAAA,EAAA,MAAA,GAAA,MAAA;AAEZ,CAAA,GAAY;EAEA,IAAA,EAKA,sBALA;EAKA,UAAA,EACM,SADN,EAAA;CACM;;AAclB;AAeA;AAcA;AAcA;AAcA;AAcA;AAcA;AAcA;AAaA;;iBAhHgB,EAAA,aAAe,cAAc;;ACrB7C;;;;;;;;;;ACSa,iBF2BG,GAAA,CE3BS,UAAA,EF2BO,SE3BP,EAAA,CAAA,EF2BqB,SE3BrB;;;;;;;;;;;iBFyCT,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;iBAa1C,GAAA,eAAkB;;;cCrIrB,WAAA;YACD;EDLA,QAAA,eAAa;EACb,QAAA,OAAA;EAEA,QAAA,MAAS;EAET,QAAA,aAAA;EAKA,QAAA,aAAA;EACM,IAAA,YAAA,CAAA,CAAA,ECEI,YDFJ;EAAS,IAAA,MAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAcX,WAAE,CAAA,QAAa,ECHjB,MDG+B,EAAA,EAAA,YAAS,ECFpC,YDEoC,EAAA,MAAA,EAAA,MAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,YAAA,EAAA,MAAA,GAAA,SAAA;EAetC,IAAA,CAAA,CAAG,ECJP,ODIO,CAAA,IAAa,CAAA;EAchB,WAAE,CAAA,CAAA,EAAA,OAAuC;AAczD;;;AApEA;AACA;AAEA;;;;AAQ2B,cEEd,YAAA,CFFc;EAcX,QAAE,OAAA;EAeF,QAAG,QAAA;EAcH,QAAE,aAAuC;EAczC,QAAG,eAAuC;EAc1C,QAAE,aAAuC;EAczC,QAAG,YAAuC;EAc1C,QAAE,MAAA;EAcF,QAAG,OAAA;EAaH,QAAG,WAAe;sBEjHZ;;;ADpBtB;;;;;;;mBCkCmB;;;AAzBnB;;;;;;;EAqLa,cAAA,CAAA,cAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAlDO,cAAc;;;;;;;;;;;WAmBrB,QAAA;;;;;;;;;;WA+BA"}
|