@arkiv-network/sdk 0.6.8-dev.1 → 0.6.8-dev.3

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 (79) hide show
  1. package/README.md +52 -16
  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/consts-AUoL-v42.cjs +18 -0
  6. package/dist/consts-BV4PR-de.js +7 -0
  7. package/dist/consts-BV4PR-de.js.map +1 -0
  8. package/dist/{query-CO6f35AE.d.cts → entity-BSU5-vyY.d.cts} +68 -31
  9. package/dist/entity-BSU5-vyY.d.cts.map +1 -0
  10. package/dist/{query-BhdmAzYg.d.ts → entity-CHiZ2Qu1.d.ts} +68 -31
  11. package/dist/entity-CHiZ2Qu1.d.ts.map +1 -0
  12. package/dist/{queryBuilder-BvoQXa_u.d.ts → index-CzqHiUAo.d.ts} +202 -74
  13. package/dist/index-CzqHiUAo.d.ts.map +1 -0
  14. package/dist/{queryBuilder-zTsKXctT.d.cts → index-gj33r3rd.d.cts} +202 -74
  15. package/dist/index-gj33r3rd.d.cts.map +1 -0
  16. package/dist/index.cjs +63 -28
  17. package/dist/index.d.cts +90 -4
  18. package/dist/index.d.cts.map +1 -1
  19. package/dist/index.d.ts +91 -5
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +58 -21
  22. package/dist/index.js.map +1 -1
  23. package/dist/{payload-Da9gJMG5.d.ts → payload-B2kFJyah.d.ts} +1 -1
  24. package/dist/{payload-Da9gJMG5.d.ts.map → payload-B2kFJyah.d.ts.map} +1 -1
  25. package/dist/payload-Claf2jUO.js +13 -0
  26. package/dist/payload-Claf2jUO.js.map +1 -0
  27. package/dist/{payload-vwU3Rc6P.cjs → payload-DpA5PA-w.cjs} +0 -17
  28. package/dist/query/index.cjs +6 -2
  29. package/dist/query/index.d.cts +3 -3
  30. package/dist/query/index.d.ts +3 -3
  31. package/dist/query/index.js +3 -2
  32. package/dist/query/index.js.map +1 -1
  33. package/dist/{queryBuilder-DM-YO1Y7.cjs → queryBuilder-CTPwve9u.cjs} +229 -70
  34. package/dist/{queryBuilder-DonAg1aq.js → queryBuilder-D-ACo-g_.js} +201 -72
  35. package/dist/queryBuilder-D-ACo-g_.js.map +1 -0
  36. package/dist/types/index.d.cts +1 -1
  37. package/dist/types/index.d.ts +1 -1
  38. package/dist/utils/index.cjs +4 -10
  39. package/dist/utils/index.d.cts +0 -1
  40. package/dist/utils/index.d.cts.map +1 -1
  41. package/dist/utils/index.d.ts +1 -2
  42. package/dist/utils/index.d.ts.map +1 -1
  43. package/dist/utils/index.js +2 -3
  44. package/dist/utils/index.js.map +1 -1
  45. package/package.json +11 -15
  46. package/src/actions/public/buildQuery.ts +4 -0
  47. package/src/actions/wallet/createEntity.ts +12 -2
  48. package/src/actions/wallet/extendEntity.ts +6 -1
  49. package/src/actions/wallet/updateEntity.ts +12 -2
  50. package/src/clients/createPublicClient.test.ts +2 -0
  51. package/src/clients/decorators/arkivPublic.ts +67 -1
  52. package/src/clients/decorators/arkivWallet.ts +18 -0
  53. package/src/errors.ts +18 -0
  54. package/src/index.ts +0 -3
  55. package/src/query/engine.ts +22 -13
  56. package/src/query/index.ts +1 -0
  57. package/src/query/queryBuilder.ts +189 -94
  58. package/src/query/queryResult.ts +13 -7
  59. package/src/query/selectQueryBuilder.test.ts +210 -0
  60. package/src/query/selection.test.ts +120 -0
  61. package/src/query/selection.ts +116 -0
  62. package/src/types/attributes.ts +12 -0
  63. package/src/utils/arkivTransactions.test.ts +62 -0
  64. package/src/utils/arkivTransactions.ts +36 -27
  65. package/src/utils/index.ts +0 -1
  66. package/src/utils/validation.test.ts +60 -0
  67. package/src/utils/validation.ts +32 -0
  68. package/dist/accounts/index.cjs +0 -9
  69. package/dist/accounts/index.d.cts +0 -1
  70. package/dist/accounts/index.d.ts +0 -1
  71. package/dist/accounts/index.js +0 -1
  72. package/dist/payload-DKBYYjeA.js +0 -18
  73. package/dist/payload-DKBYYjeA.js.map +0 -1
  74. package/dist/query-BhdmAzYg.d.ts.map +0 -1
  75. package/dist/query-CO6f35AE.d.cts.map +0 -1
  76. package/dist/queryBuilder-BvoQXa_u.d.ts.map +0 -1
  77. package/dist/queryBuilder-DonAg1aq.js.map +0 -1
  78. package/dist/queryBuilder-zTsKXctT.d.cts.map +0 -1
  79. package/src/accounts/index.ts +0 -1
package/dist/index.d.cts CHANGED
@@ -1,8 +1,7 @@
1
- import { A as RpcIncludeData, C as CreateEntityReturnType, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as CreateEntityParameters, T as ChangeOwnershipReturnType, _ as UpdateEntityReturnType, a as Entity, b as DeleteEntityParameters, c as OnEntityDeletedEvent, d as OnEntityOwnerChangedEvent, f as OnEntityUpdatedEvent, g as UpdateEntityParameters, h as MutateEntitiesReturnType, i as QueryReturnType, j as RpcOrderByAttribute, k as RpcEntity, l as OnEntityExpiredEvent, m as MutateEntitiesParameters, n as QueryOptionsIncludeData, o as TxParams, p as Attribute, r as QueryOptionsOrderBy, s as OnEntityCreatedEvent, t as QueryOptions, u as OnEntityExpiresInExtendedEvent, v as ExtendEntityParameters, w as ChangeOwnershipParameters, x as DeleteEntityReturnType, y as ExtendEntityReturnType } from "./query-CO6f35AE.cjs";
2
- import { n as QueryBuilder } from "./queryBuilder-zTsKXctT.cjs";
1
+ import { A as RpcIncludeData, C as QueryOptionsIncludeData, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as QueryOptions, T as QueryReturnType, _ as DeleteEntityReturnType, a as OnEntityExpiredEvent, b as ChangeOwnershipParameters, c as OnEntityUpdatedEvent, d as MutateEntitiesReturnType, f as UpdateEntityParameters, g as DeleteEntityParameters, h as ExtendEntityReturnType, i as OnEntityDeletedEvent, j as RpcOrderByAttribute, k as RpcEntity, l as Attribute, m as ExtendEntityParameters, n as TxParams, o as OnEntityExpiresInExtendedEvent, p as UpdateEntityReturnType, r as OnEntityCreatedEvent, s as OnEntityOwnerChangedEvent, t as Entity, u as MutateEntitiesParameters, v as CreateEntityParameters, w as QueryOptionsOrderBy, x as ChangeOwnershipReturnType, y as CreateEntityReturnType } from "./entity-BSU5-vyY.cjs";
2
+ import { c as FullEntity, i as SelectQueryBuilder, l as ProjectedEntity, r as QueryBuilder, s as EntitySelection, u as SelectArg } from "./index-gj33r3rd.cjs";
3
3
  import { n as stringToPayload, t as jsonToPayload } from "./payload-CJN8fTvX.cjs";
4
4
  import { Account, Address, Chain, Client, Hex, ParseAccount, Prettify, PublicActions, PublicClientConfig, RpcSchema, Transport, WalletActions, WalletClientConfig } from "viem";
5
- export * from "viem";
6
5
 
7
6
  //#region src/clients/decorators/arkivPublic.d.ts
8
7
  type PublicArkivActions<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = Pick<PublicActions<transport, chain, account>, "getBalance" | "getBlock" | "getBlockNumber" | "getChainId" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "waitForTransactionReceipt" | "watchEvent"> & {
@@ -29,12 +28,75 @@ type PublicArkivActions<transport extends Transport = Transport, chain extends C
29
28
  * // }
30
29
  */
31
30
  getEntity: (key: Hex) => Promise<Entity>;
31
+ /**
32
+ * Returns a SelectQueryBuilder for building and executing queries — the recommended way to
33
+ * read entities. You declare up front which parts of an entity you want returned, so results
34
+ * always contain exactly the data you asked for.
35
+ *
36
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/public/query
37
+ *
38
+ * @param selection - What to include in the results. Omit it (or pass `"*"`) to select everything,
39
+ * or pass an object to select specific parts (at least one field is required). Every part is
40
+ * opt-in, including the `key`. The selection is flat — each field maps to an entity field.
41
+ * {@link SelectArg}
42
+ * @returns A SelectQueryBuilder instance for building and executing queries. {@link SelectQueryBuilder}
43
+ *
44
+ * @example
45
+ * import { createPublicClient, http } from 'arkiv'
46
+ * import { braga } from 'arkiv/chains'
47
+ * import { eq } from 'arkiv/query'
48
+ *
49
+ * const client = createPublicClient({
50
+ * chain: braga,
51
+ * transport: http(),
52
+ * })
53
+ * // select everything
54
+ * await client.select().where(eq("category", "docs")).fetch()
55
+ * await client.select("*").where(eq("category", "docs")).fetch()
56
+ * // only the key
57
+ * await client.select({ key: true }).where(eq("category", "docs")).fetch()
58
+ * // select specific fields — result typed { owner: Hex; attributes: Attribute[] }
59
+ * await client.select({ owner: true, attributes: true }).fetch()
60
+ * // a single field — result typed { owner: Hex }
61
+ * await client.select({ owner: true }).fetch()
62
+ */
63
+ select: {
64
+ /** Select every field. Pass nothing or `"*"`; the returned entities contain all fields. */
65
+ (selection?: "*"): SelectQueryBuilder<FullEntity>;
66
+ /**
67
+ * Pick the entity fields to return. Set the ones you want to `true` (at least one is required);
68
+ * the result is typed to exactly those fields, so reading anything else is a compile error.
69
+ *
70
+ * Available fields: `key`, `owner`, `creator`, `contentType`, `payload`, `attributes`,
71
+ * `expiresAtBlock`, `createdAtBlock`, `lastModifiedAtBlock`, `transactionIndexInBlock`,
72
+ * `operationIndexInTransaction`.
73
+ *
74
+ * Pass the selection inline so its fields stay literal `true`. A selection stored in a `let`/
75
+ * `const` variable widens to `boolean` and the result type can no longer be narrowed — annotate
76
+ * it `as const` (e.g. `const sel = { owner: true } as const`) in that case.
77
+ *
78
+ * @example
79
+ * client.select({ owner: true, attributes: true }) // entities typed { owner, attributes }
80
+ * client.select({ key: true, payload: true }) // includes payload → toText()/toJson() too
81
+ */
82
+ <const S extends EntitySelection>(selection: S): SelectQueryBuilder<ProjectedEntity<S>>;
83
+ /**
84
+ * Dynamic selection: accepts a value typed {@link SelectArg} (e.g. built at runtime). The
85
+ * result cannot be narrowed in this case, so the entities are typed as the full entity.
86
+ */
87
+ (selection: SelectArg): SelectQueryBuilder<FullEntity>;
88
+ };
32
89
  /**
33
90
  * Returns a QueryBuilder instance for building and executing queries.
34
91
  * The QueryBuilder object follows the Builder pattern, allowing you to chain methods to build a query and then execute it.
35
92
  *
36
93
  * - Docs: https://docs.arkiv.network/ts-sdk/actions/public/query
37
94
  *
95
+ * @deprecated Use {@link select} instead. `buildQuery()` returns only the entity `key` unless
96
+ * you remember to opt in to data with `withAttributes()`/`withMetadata()`/`withPayload()`, which
97
+ * is an easy mistake. `select()` makes the selection explicit. This method remains for backwards
98
+ * compatibility and will be removed in a future release.
99
+ *
38
100
  * @returns A QueryBuilder instance for building and executing queries. {@link QueryBuilder}
39
101
  *
40
102
  * @example
@@ -192,6 +254,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
192
254
  * @param txParams - Optional transaction parameters
193
255
  * @returns The created entity with transaction hash
194
256
  *
257
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
258
+ * that is a multiple of the block time (2 seconds).
259
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
260
+ * integer.
261
+ *
195
262
  * @example
196
263
  * import { createPublicClient, http } from 'arkiv'
197
264
  * import { braga } from 'arkiv/chains'
@@ -223,6 +290,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
223
290
  * @param txParams - Optional transaction parameters
224
291
  * @returns The updated entity with transaction hash
225
292
  *
293
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
294
+ * that is a multiple of the block time (2 seconds).
295
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
296
+ * integer.
297
+ *
226
298
  * @example
227
299
  * import { createWalletClient, http } from 'arkiv'
228
300
  * import { braga } from 'arkiv/chains'
@@ -270,6 +342,9 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
270
342
  * @param txParams - Optional transaction parameters
271
343
  * @returns The updated entity with transaction hash
272
344
  *
345
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
346
+ * that is a multiple of the block time (2 seconds).
347
+ *
273
348
  * @example
274
349
  * import { createWalletClient, http } from 'arkiv'
275
350
  * import { braga } from 'arkiv/chains'
@@ -310,6 +385,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
310
385
  * @param txParams - Optional transaction parameters
311
386
  * @returns The mutation result with transaction hash
312
387
  *
388
+ * @throws {InvalidExpirationError} If any create/update/extension `expiresIn`
389
+ * is not a positive integer that is a multiple of the block time (2 seconds).
390
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
391
+ * integer.
392
+ *
313
393
  * @example
314
394
  * import { createWalletClient, http } from 'arkiv'
315
395
  * import { braga } from 'arkiv/chains'
@@ -375,6 +455,12 @@ declare function createWalletClient<transport extends Transport, chain extends C
375
455
  declare class EntityMutationError extends Error {
376
456
  constructor(message: string);
377
457
  }
458
+ declare class InvalidExpirationError extends Error {
459
+ constructor(expiresIn: unknown);
460
+ }
461
+ declare class InvalidAttributeError extends Error {
462
+ constructor(key: string, value: number);
463
+ }
378
464
  declare class NoMoreResultsError extends Error {
379
465
  constructor();
380
466
  }
@@ -394,5 +480,5 @@ declare class NoEntityFoundError extends Error {
394
480
  */
395
481
  declare function chainFromName(name: string): Chain;
396
482
  //#endregion
397
- export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
483
+ export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, InvalidAttributeError, InvalidExpirationError, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
398
484
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,7 @@
1
- import { A as RpcIncludeData, C as CreateEntityReturnType, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as CreateEntityParameters, T as ChangeOwnershipReturnType, _ as UpdateEntityReturnType, a as Entity, b as DeleteEntityParameters, c as OnEntityDeletedEvent, d as OnEntityOwnerChangedEvent, f as OnEntityUpdatedEvent, g as UpdateEntityParameters, h as MutateEntitiesReturnType, i as QueryReturnType, j as RpcOrderByAttribute, k as RpcEntity, l as OnEntityExpiredEvent, m as MutateEntitiesParameters, n as QueryOptionsIncludeData, o as TxParams, p as Attribute, r as QueryOptionsOrderBy, s as OnEntityCreatedEvent, t as QueryOptions, u as OnEntityExpiresInExtendedEvent, v as ExtendEntityParameters, w as ChangeOwnershipParameters, x as DeleteEntityReturnType, y as ExtendEntityReturnType } from "./query-BhdmAzYg.js";
2
- import { n as QueryBuilder } from "./queryBuilder-BvoQXa_u.js";
3
- import { n as stringToPayload, t as jsonToPayload } from "./payload-Da9gJMG5.js";
1
+ import { A as RpcIncludeData, C as QueryOptionsIncludeData, D as ArkivClient, E as GetBlockTimingReturnType, M as RpcQueryOptions, N as MimeType, O as ArkivRpcSchema, S as QueryOptions, T as QueryReturnType, _ as DeleteEntityReturnType, a as OnEntityExpiredEvent, b as ChangeOwnershipParameters, c as OnEntityUpdatedEvent, d as MutateEntitiesReturnType, f as UpdateEntityParameters, g as DeleteEntityParameters, h as ExtendEntityReturnType, i as OnEntityDeletedEvent, j as RpcOrderByAttribute, k as RpcEntity, l as Attribute, m as ExtendEntityParameters, n as TxParams, o as OnEntityExpiresInExtendedEvent, p as UpdateEntityReturnType, r as OnEntityCreatedEvent, s as OnEntityOwnerChangedEvent, t as Entity, u as MutateEntitiesParameters, v as CreateEntityParameters, w as QueryOptionsOrderBy, x as ChangeOwnershipReturnType, y as CreateEntityReturnType } from "./entity-CHiZ2Qu1.js";
2
+ import { c as FullEntity, i as SelectQueryBuilder, l as ProjectedEntity, r as QueryBuilder, s as EntitySelection, u as SelectArg } from "./index-CzqHiUAo.js";
3
+ import { n as stringToPayload, t as jsonToPayload } from "./payload-B2kFJyah.js";
4
4
  import { Account, Address, Chain, Client, Hex, ParseAccount, Prettify, PublicActions, PublicClientConfig, RpcSchema, Transport, WalletActions, WalletClientConfig } from "viem";
5
- export * from "viem";
6
5
 
7
6
  //#region src/clients/decorators/arkivPublic.d.ts
8
7
  type PublicArkivActions<transport extends Transport = Transport, chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = Pick<PublicActions<transport, chain, account>, "getBalance" | "getBlock" | "getBlockNumber" | "getChainId" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "waitForTransactionReceipt" | "watchEvent"> & {
@@ -29,12 +28,75 @@ type PublicArkivActions<transport extends Transport = Transport, chain extends C
29
28
  * // }
30
29
  */
31
30
  getEntity: (key: Hex) => Promise<Entity>;
31
+ /**
32
+ * Returns a SelectQueryBuilder for building and executing queries — the recommended way to
33
+ * read entities. You declare up front which parts of an entity you want returned, so results
34
+ * always contain exactly the data you asked for.
35
+ *
36
+ * - Docs: https://docs.arkiv.network/ts-sdk/actions/public/query
37
+ *
38
+ * @param selection - What to include in the results. Omit it (or pass `"*"`) to select everything,
39
+ * or pass an object to select specific parts (at least one field is required). Every part is
40
+ * opt-in, including the `key`. The selection is flat — each field maps to an entity field.
41
+ * {@link SelectArg}
42
+ * @returns A SelectQueryBuilder instance for building and executing queries. {@link SelectQueryBuilder}
43
+ *
44
+ * @example
45
+ * import { createPublicClient, http } from 'arkiv'
46
+ * import { braga } from 'arkiv/chains'
47
+ * import { eq } from 'arkiv/query'
48
+ *
49
+ * const client = createPublicClient({
50
+ * chain: braga,
51
+ * transport: http(),
52
+ * })
53
+ * // select everything
54
+ * await client.select().where(eq("category", "docs")).fetch()
55
+ * await client.select("*").where(eq("category", "docs")).fetch()
56
+ * // only the key
57
+ * await client.select({ key: true }).where(eq("category", "docs")).fetch()
58
+ * // select specific fields — result typed { owner: Hex; attributes: Attribute[] }
59
+ * await client.select({ owner: true, attributes: true }).fetch()
60
+ * // a single field — result typed { owner: Hex }
61
+ * await client.select({ owner: true }).fetch()
62
+ */
63
+ select: {
64
+ /** Select every field. Pass nothing or `"*"`; the returned entities contain all fields. */
65
+ (selection?: "*"): SelectQueryBuilder<FullEntity>;
66
+ /**
67
+ * Pick the entity fields to return. Set the ones you want to `true` (at least one is required);
68
+ * the result is typed to exactly those fields, so reading anything else is a compile error.
69
+ *
70
+ * Available fields: `key`, `owner`, `creator`, `contentType`, `payload`, `attributes`,
71
+ * `expiresAtBlock`, `createdAtBlock`, `lastModifiedAtBlock`, `transactionIndexInBlock`,
72
+ * `operationIndexInTransaction`.
73
+ *
74
+ * Pass the selection inline so its fields stay literal `true`. A selection stored in a `let`/
75
+ * `const` variable widens to `boolean` and the result type can no longer be narrowed — annotate
76
+ * it `as const` (e.g. `const sel = { owner: true } as const`) in that case.
77
+ *
78
+ * @example
79
+ * client.select({ owner: true, attributes: true }) // entities typed { owner, attributes }
80
+ * client.select({ key: true, payload: true }) // includes payload → toText()/toJson() too
81
+ */
82
+ <const S extends EntitySelection>(selection: S): SelectQueryBuilder<ProjectedEntity<S>>;
83
+ /**
84
+ * Dynamic selection: accepts a value typed {@link SelectArg} (e.g. built at runtime). The
85
+ * result cannot be narrowed in this case, so the entities are typed as the full entity.
86
+ */
87
+ (selection: SelectArg): SelectQueryBuilder<FullEntity>;
88
+ };
32
89
  /**
33
90
  * Returns a QueryBuilder instance for building and executing queries.
34
91
  * The QueryBuilder object follows the Builder pattern, allowing you to chain methods to build a query and then execute it.
35
92
  *
36
93
  * - Docs: https://docs.arkiv.network/ts-sdk/actions/public/query
37
94
  *
95
+ * @deprecated Use {@link select} instead. `buildQuery()` returns only the entity `key` unless
96
+ * you remember to opt in to data with `withAttributes()`/`withMetadata()`/`withPayload()`, which
97
+ * is an easy mistake. `select()` makes the selection explicit. This method remains for backwards
98
+ * compatibility and will be removed in a future release.
99
+ *
38
100
  * @returns A QueryBuilder instance for building and executing queries. {@link QueryBuilder}
39
101
  *
40
102
  * @example
@@ -192,6 +254,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
192
254
  * @param txParams - Optional transaction parameters
193
255
  * @returns The created entity with transaction hash
194
256
  *
257
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
258
+ * that is a multiple of the block time (2 seconds).
259
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
260
+ * integer.
261
+ *
195
262
  * @example
196
263
  * import { createPublicClient, http } from 'arkiv'
197
264
  * import { braga } from 'arkiv/chains'
@@ -223,6 +290,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
223
290
  * @param txParams - Optional transaction parameters
224
291
  * @returns The updated entity with transaction hash
225
292
  *
293
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
294
+ * that is a multiple of the block time (2 seconds).
295
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
296
+ * integer.
297
+ *
226
298
  * @example
227
299
  * import { createWalletClient, http } from 'arkiv'
228
300
  * import { braga } from 'arkiv/chains'
@@ -270,6 +342,9 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
270
342
  * @param txParams - Optional transaction parameters
271
343
  * @returns The updated entity with transaction hash
272
344
  *
345
+ * @throws {InvalidExpirationError} If `expiresIn` is not a positive integer
346
+ * that is a multiple of the block time (2 seconds).
347
+ *
273
348
  * @example
274
349
  * import { createWalletClient, http } from 'arkiv'
275
350
  * import { braga } from 'arkiv/chains'
@@ -310,6 +385,11 @@ type WalletArkivActions<transport extends Transport = Transport, chain extends C
310
385
  * @param txParams - Optional transaction parameters
311
386
  * @returns The mutation result with transaction hash
312
387
  *
388
+ * @throws {InvalidExpirationError} If any create/update/extension `expiresIn`
389
+ * is not a positive integer that is a multiple of the block time (2 seconds).
390
+ * @throws {InvalidAttributeError} If a numeric attribute value is not an
391
+ * integer.
392
+ *
313
393
  * @example
314
394
  * import { createWalletClient, http } from 'arkiv'
315
395
  * import { braga } from 'arkiv/chains'
@@ -375,6 +455,12 @@ declare function createWalletClient<transport extends Transport, chain extends C
375
455
  declare class EntityMutationError extends Error {
376
456
  constructor(message: string);
377
457
  }
458
+ declare class InvalidExpirationError extends Error {
459
+ constructor(expiresIn: unknown);
460
+ }
461
+ declare class InvalidAttributeError extends Error {
462
+ constructor(key: string, value: number);
463
+ }
378
464
  declare class NoMoreResultsError extends Error {
379
465
  constructor();
380
466
  }
@@ -394,5 +480,5 @@ declare class NoEntityFoundError extends Error {
394
480
  */
395
481
  declare function chainFromName(name: string): Chain;
396
482
  //#endregion
397
- export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
483
+ export { type ArkivClient, ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, EntityMutationError, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, InvalidAttributeError, InvalidExpirationError, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, type PublicArkivActions, type PublicArkivClient, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType, type WalletArkivActions, type WalletArkivClient, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
398
484
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/clients/decorators/arkivPublic.ts","../src/clients/createPublicClient.ts","../src/clients/decorators/arkivWallet.ts","../src/clients/createWalletClient.ts","../src/errors.ts","../src/utils/chains.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,11 +1,10 @@
1
1
  import { t as chains_exports } from "./chains-CrtkVbBh.js";
2
- import { a as entityFromRpcResult, c as NoEntityFoundError, l as NoMoreResultsError, o as EntityMutationError, s as NoCursorOrLimitError, t as QueryBuilder, u as getLogger } from "./queryBuilder-DonAg1aq.js";
3
- import { i as BLOCK_TIME, n as stringToPayload, r as ARKIV_ADDRESS, t as jsonToPayload } from "./payload-DKBYYjeA.js";
2
+ import { c as entityFromRpcResult, d as InvalidExpirationError, f as NoCursorOrLimitError, h as getLogger, l as EntityMutationError, m as NoMoreResultsError, n as QueryBuilder, p as NoEntityFoundError, r as SelectQueryBuilder, u as InvalidAttributeError } from "./queryBuilder-D-ACo-g_.js";
3
+ import { n as BLOCK_TIME, t as ARKIV_ADDRESS } from "./consts-BV4PR-de.js";
4
4
  import "./types-H-TSmRpm.js";
5
+ import { n as stringToPayload, t as jsonToPayload } from "./payload-Claf2jUO.js";
5
6
  import { TransactionExecutionError, bytesToHex, createClient, decodeEventLog, hexToBytes, hexToString, numberToHex, parseAbi, publicActions, toBytes, toHex, toRlp, walletActions } from "viem";
6
7
 
7
- export * from "viem"
8
-
9
8
  //#region src/actions/public/getBlockTiming.ts
10
9
  const logger$9 = getLogger("actions:public:get-block-timing");
11
10
  async function getBlockTiming(client) {
@@ -189,6 +188,7 @@ function publicArkivActions(client) {
189
188
  getEntity: (key) => getEntity(client, key),
190
189
  query: (rawQuery, queryOptions) => query(client, rawQuery, queryOptions),
191
190
  buildQuery: () => new QueryBuilder(client),
191
+ select: (selection) => new SelectQueryBuilder(client, selection),
192
192
  getBlockTiming: () => getBlockTiming(client),
193
193
  getEntityCount: () => getEntityCount(client),
194
194
  subscribeEntityEvents: ({ onError, onEntityCreated, onEntityUpdated, onEntityDeleted, onEntityExpired, onEntityExpiresInExtended }, pollingInterval, fromBlock) => subscribeEntityEvents(client, {
@@ -283,6 +283,32 @@ async function compress(data) {
283
283
  return brotliCompressed;
284
284
  }
285
285
 
286
+ //#endregion
287
+ //#region src/utils/validation.ts
288
+ /**
289
+ * Expiration on Arkiv is measured in blocks (1 block =
290
+ * 2 seconds), so the value must be a positive integer that is
291
+ * a multiple of the block time.
292
+ *
293
+ * @param expiresIn - The expiration in seconds.
294
+ * @throws {InvalidExpirationError} If the value is not a positive integer that
295
+ * is a multiple of the block time.
296
+ */
297
+ function validateExpiresIn(expiresIn) {
298
+ if (!Number.isInteger(expiresIn) || expiresIn <= 0 || expiresIn % BLOCK_TIME !== 0) throw new InvalidExpirationError(expiresIn);
299
+ }
300
+ /**
301
+ * Validates a single attribute. Arkiv supports string and number attribute
302
+ * values, but numeric values must be integers.
303
+ *
304
+ * @param attribute - The attribute to validate.
305
+ * @throws {InvalidAttributeError} If the attribute has a non-integer numeric
306
+ * value.
307
+ */
308
+ function validateAttribute(attribute) {
309
+ if (typeof attribute.value === "number" && !Number.isInteger(attribute.value)) throw new InvalidAttributeError(attribute.key, attribute.value);
310
+ }
311
+
286
312
  //#endregion
287
313
  //#region src/utils/arkivTransactions.ts
288
314
  const logger$6 = getLogger("utils:arkiv-transactions");
@@ -291,23 +317,34 @@ function opsToTxData({ creates, updates, deletes, extensions, ownershipChanges }
291
317
  return [toHex(attribute.key), toHex(typeof attribute.value === "number" && attribute.value === 0 ? "" : attribute.value)];
292
318
  }
293
319
  const payload = [
294
- (creates ?? []).map((item) => [
295
- toHex(Math.ceil(item.expiresIn / BLOCK_TIME)),
296
- toHex(item.contentType),
297
- toHex(item.payload),
298
- item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
299
- item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
300
- ]),
301
- (updates ?? []).map((item) => [
302
- item.entityKey,
303
- toHex(item.contentType),
304
- toHex(Math.ceil(item.expiresIn / BLOCK_TIME)),
305
- toHex(item.payload),
306
- item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
307
- item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
308
- ]),
320
+ (creates ?? []).map((item) => {
321
+ validateExpiresIn(item.expiresIn);
322
+ item.attributes.forEach(validateAttribute);
323
+ return [
324
+ toHex(item.expiresIn / BLOCK_TIME),
325
+ toHex(item.contentType),
326
+ toHex(item.payload),
327
+ item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
328
+ item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
329
+ ];
330
+ }),
331
+ (updates ?? []).map((item) => {
332
+ validateExpiresIn(item.expiresIn);
333
+ item.attributes.forEach(validateAttribute);
334
+ return [
335
+ item.entityKey,
336
+ toHex(item.contentType),
337
+ toHex(item.expiresIn / BLOCK_TIME),
338
+ toHex(item.payload),
339
+ item.attributes.filter((attribute) => typeof attribute.value === "string").map(formatAttributes),
340
+ item.attributes.filter((attribute) => typeof attribute.value === "number").map(formatAttributes)
341
+ ];
342
+ }),
309
343
  (deletes ?? []).map((item) => item.entityKey),
310
- (extensions ?? []).map((item) => [item.entityKey, toHex(Math.ceil(item.expiresIn / BLOCK_TIME))]),
344
+ (extensions ?? []).map((item) => {
345
+ validateExpiresIn(item.expiresIn);
346
+ return [item.entityKey, toHex(item.expiresIn / BLOCK_TIME)];
347
+ }),
311
348
  (ownershipChanges ?? []).map((item) => [item.entityKey, item.newOwner])
312
349
  ];
313
350
  logger$6("txData to send as RLP %o length %d", payload, payload.length);
@@ -535,5 +572,5 @@ function chainFromName(name) {
535
572
  }
536
573
 
537
574
  //#endregion
538
- export { EntityMutationError, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
575
+ export { EntityMutationError, InvalidAttributeError, InvalidExpirationError, NoCursorOrLimitError, NoEntityFoundError, NoMoreResultsError, chainFromName, createPublicClient, createWalletClient, jsonToPayload, stringToPayload };
539
576
  //# sourceMappingURL=index.js.map