@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.
Files changed (49) hide show
  1. package/README.md +1 -0
  2. package/dist/chains/index.d.cts +25 -25
  3. package/dist/chains/index.d.cts.map +1 -1
  4. package/dist/chains/index.d.ts +25 -25
  5. package/dist/{entity-o4fwHXKf.d.ts → entity-0JJeFAgO.d.cts} +7 -5
  6. package/dist/entity-0JJeFAgO.d.cts.map +1 -0
  7. package/dist/{entity-OY78HYxA.d.cts → entity-BG8YycYJ.d.ts} +7 -5
  8. package/dist/entity-BG8YycYJ.d.ts.map +1 -0
  9. package/dist/index.cjs +11 -34
  10. package/dist/index.d.cts +40 -38
  11. package/dist/index.d.cts.map +1 -1
  12. package/dist/index.d.ts +40 -38
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +27 -24
  15. package/dist/index.js.map +1 -1
  16. package/dist/query/index.cjs +3 -1
  17. package/dist/query/index.d.cts +3 -3
  18. package/dist/query/index.d.ts +3 -3
  19. package/dist/query/index.js +2 -2
  20. package/dist/{queryBuilder-CboWSREN.d.ts → queryBuilder-BNhnpewa.d.ts} +56 -3
  21. package/dist/queryBuilder-BNhnpewa.d.ts.map +1 -0
  22. package/dist/{queryBuilder-BueP5de6.js → queryBuilder-CAQ7TDMZ.js} +60 -4
  23. package/dist/queryBuilder-CAQ7TDMZ.js.map +1 -0
  24. package/dist/{queryBuilder-n9ocnT4P.cjs → queryBuilder-DEkfSiCF.cjs} +70 -2
  25. package/dist/{queryBuilder-Bm1zGqKA.d.cts → queryBuilder-Dc_ii8LH.d.cts} +56 -3
  26. package/dist/queryBuilder-Dc_ii8LH.d.cts.map +1 -0
  27. package/dist/types/index.cjs +1 -0
  28. package/dist/types/index.d.cts +1 -1
  29. package/dist/types/index.d.ts +1 -1
  30. package/dist/types/index.js +1 -0
  31. package/dist/types-CBTc19th.cjs +0 -0
  32. package/dist/types-Cv8NMtbo.js +0 -0
  33. package/dist/utils/index.d.cts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/clients/createPublicClient.ts +2 -2
  36. package/src/clients/createWalletClient.ts +2 -2
  37. package/src/clients/decorators/arkivPublic.ts +2 -2
  38. package/src/clients/decorators/arkivWallet.ts +12 -11
  39. package/src/index.ts +3 -34
  40. package/src/query/engine.test.ts +69 -0
  41. package/src/query/engine.ts +8 -3
  42. package/src/query/queryBuilder.test.ts +76 -1
  43. package/src/query/queryBuilder.ts +103 -0
  44. package/src/types/rpcSchema.ts +7 -5
  45. package/dist/entity-OY78HYxA.d.cts.map +0 -1
  46. package/dist/entity-o4fwHXKf.d.ts.map +0 -1
  47. package/dist/queryBuilder-Bm1zGqKA.d.cts.map +0 -1
  48. package/dist/queryBuilder-BueP5de6.js.map +0 -1
  49. 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,
@@ -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"}