@arkiv-network/sdk 0.6.2-dev.2 → 0.6.2-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 (37) hide show
  1. package/dist/chains/index.d.cts +41 -41
  2. package/dist/chains/index.d.cts.map +1 -1
  3. package/dist/chains/index.d.ts +41 -41
  4. package/dist/chains/index.d.ts.map +1 -1
  5. package/dist/index.cjs +3 -1
  6. package/dist/index.d.cts +2 -2
  7. package/dist/index.d.ts +2 -2
  8. package/dist/index.js +3 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/query/index.cjs +1 -1
  11. package/dist/query/index.d.cts +2 -2
  12. package/dist/query/index.d.ts +2 -2
  13. package/dist/query/index.js +1 -1
  14. package/dist/{query-fCVivD9L.d.cts → query-BeKsGPR3.d.cts} +5 -2
  15. package/dist/query-BeKsGPR3.d.cts.map +1 -0
  16. package/dist/{query-BOF-ysxw.d.ts → query-DnKI7Fry.d.ts} +5 -2
  17. package/dist/query-DnKI7Fry.d.ts.map +1 -0
  18. package/dist/{queryBuilder-EbutFwI6.cjs → queryBuilder-Ba4YtfY4.cjs} +5 -2
  19. package/dist/{queryBuilder-C0qPebqD.js → queryBuilder-C22NdvTJ.js} +6 -3
  20. package/dist/queryBuilder-C22NdvTJ.js.map +1 -0
  21. package/dist/{queryBuilder-DFaMq3oN.d.ts → queryBuilder-C24NWMmN.d.ts} +2 -2
  22. package/dist/{queryBuilder-DFaMq3oN.d.ts.map → queryBuilder-C24NWMmN.d.ts.map} +1 -1
  23. package/dist/{queryBuilder-D5eEPVnU.d.cts → queryBuilder-CqSuICrM.d.cts} +2 -2
  24. package/dist/{queryBuilder-D5eEPVnU.d.cts.map → queryBuilder-CqSuICrM.d.cts.map} +1 -1
  25. package/dist/types/index.d.cts +1 -1
  26. package/dist/types/index.d.ts +1 -1
  27. package/package.json +1 -1
  28. package/src/actions/public/getEntity.ts +1 -0
  29. package/src/actions/public/query.ts +1 -0
  30. package/src/query/engine.test.ts +13 -0
  31. package/src/query/engine.ts +1 -0
  32. package/src/types/entity.ts +3 -0
  33. package/src/types/rpcSchema.ts +2 -0
  34. package/src/utils/entities.ts +1 -0
  35. package/dist/query-BOF-ysxw.d.ts.map +0 -1
  36. package/dist/query-fCVivD9L.d.cts.map +0 -1
  37. package/dist/queryBuilder-C0qPebqD.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryBuilder-C22NdvTJ.js","names":["enabledNamespaces: Set<string>","disabledNamespaces: Set<string>","logger","logger","predicate","queryOptions: RpcQueryOptions","order"],"sources":["../src/utils/logger.ts","../src/errors.ts","../src/types/entity.ts","../src/utils/entities.ts","../src/query/engine.ts","../src/query/queryResult.ts","../src/query/queryBuilder.ts"],"sourcesContent":["const ROOT_NAMESPACE = \"arkiv\"\n\n// Debug logger type - returns a function that can be called to log messages\ntype DebugLogger = (...args: unknown[]) => void\n\n// Get DEBUG environment variable (works in both Node.js and browser)\nfunction getDebugEnv(): string {\n if (typeof process !== \"undefined\") {\n const debugEnv = process?.env?.DEBUG\n if (debugEnv) {\n return debugEnv\n }\n }\n // Browser: check localStorage\n if (typeof globalThis !== \"undefined\" && \"localStorage\" in globalThis) {\n try {\n const storage = (globalThis as { localStorage?: Storage }).localStorage\n return storage?.getItem(\"DEBUG\") || \"\"\n } catch {\n // localStorage might not be available\n }\n }\n return \"\"\n}\n\n// Parse debug patterns and check if a namespace matches\nfunction matchesPattern(namespace: string, pattern: string): boolean {\n // Exact match\n if (pattern === namespace) return true\n\n // Wildcard match: \"arkiv:*\" matches \"arkiv:query\", \"arkiv:rpc\", etc.\n if (pattern.endsWith(\"*\")) {\n const prefix = pattern.slice(0, -1)\n return namespace.startsWith(prefix)\n }\n\n // Negative match: \"-arkiv:query\" excludes \"arkiv:query\"\n if (pattern.startsWith(\"-\")) {\n const excludePattern = pattern.slice(1)\n return !matchesPattern(namespace, excludePattern)\n }\n\n return false\n}\n\n// Check if a namespace is enabled for debugging\nfunction isEnabled(namespace: string): boolean {\n const debugEnv = getDebugEnv()\n if (!debugEnv) return false\n\n // Split by comma/space and check each pattern\n const patterns = debugEnv.split(/[\\s,]+/).filter((p) => p.length > 0)\n\n // If no patterns, nothing is enabled\n if (patterns.length === 0) return false\n\n // Check if any pattern matches (or if explicitly excluded)\n let enabled = false\n for (const pattern of patterns) {\n if (pattern.startsWith(\"-\")) {\n // Exclude pattern - if it matches, disable\n if (matchesPattern(namespace, pattern)) {\n return false\n }\n } else if (matchesPattern(namespace, pattern)) {\n enabled = true\n }\n }\n\n return enabled\n}\n\n// Store enabled namespaces (for programmatic enable/disable)\nconst enabledNamespaces: Set<string> = new Set()\nconst disabledNamespaces: Set<string> = new Set()\n\n// Color palette for namespace coloring (distinct, readable colors)\nconst COLOR_PALETTE = [\n \"#0000FF\", // blue\n \"#008000\", // green\n \"#FF0000\", // red\n \"#FF00FF\", // magenta\n \"#FFA500\", // orange\n \"#800080\", // purple\n \"#00CED1\", // dark turquoise\n \"#FF1493\", // deep pink\n \"#32CD32\", // lime green\n \"#1E90FF\", // dodger blue\n \"#FF4500\", // orange red\n \"#9370DB\", // medium purple\n \"#00FA9A\", // medium spring green\n \"#FFD700\", // gold\n \"#DC143C\", // crimson\n \"#00BFFF\", // deep sky blue\n \"#FF69B4\", // hot pink\n \"#20B2AA\", // light sea green\n \"#DA70D6\", // orchid\n \"#4682B4\", // steel blue\n]\n\n// Detect if we're in Node.js (for ANSI colors) or browser (for CSS colors)\nconst isNode = typeof process !== \"undefined\" && process.versions?.node != null\n\n// ANSI color codes for Node.js (bright, distinct colors)\nconst ANSI_COLORS = [\n \"\\x1b[94m\", // bright blue\n \"\\x1b[92m\", // bright green\n \"\\x1b[91m\", // bright red\n \"\\x1b[95m\", // bright magenta\n \"\\x1b[93m\", // bright yellow\n \"\\x1b[96m\", // bright cyan\n \"\\x1b[35m\", // magenta\n \"\\x1b[36m\", // cyan\n \"\\x1b[32m\", // green\n \"\\x1b[34m\", // blue\n \"\\x1b[33m\", // yellow\n \"\\x1b[31m\", // red\n \"\\x1b[90m\", // bright black (gray)\n \"\\x1b[37m\", // white\n \"\\x1b[1m\", // bold (as a color option)\n]\n\nconst ANSI_RESET = \"\\x1b[0m\"\nconst ANSI_BOLD = \"\\x1b[1m\"\n\n// Cache colors for namespaces (same namespace = same color)\nconst namespaceColors = new Map<string, { css: string; ansi: string }>()\n\n// Generate a consistent color for a namespace based on its hash\nfunction getColorForNamespace(namespace: string): { css: string; ansi: string } {\n // Check cache first\n const cachedColor = namespaceColors.get(namespace)\n if (cachedColor) {\n return cachedColor\n }\n\n // Simple hash function to convert string to number\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n const char = namespace.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash = hash & hash // Convert to 32-bit integer\n }\n\n // Use absolute value and modulo to get index\n const colorIndex = Math.abs(hash) % COLOR_PALETTE.length\n const cssColor = COLOR_PALETTE[colorIndex]\n const ansiColor = ANSI_COLORS[colorIndex % ANSI_COLORS.length]\n\n const color = { css: cssColor, ansi: ansiColor }\n\n // Cache the color\n namespaceColors.set(namespace, color)\n\n return color\n}\n\n// Create a debug logger function\nfunction createDebugLogger(namespace: string): DebugLogger {\n // Get the color for this namespace (consistent across calls)\n const colors = getColorForNamespace(namespace)\n\n return (...args: unknown[]) => {\n // Check if enabled via environment variable or programmatically\n const envEnabled = isEnabled(namespace)\n const progEnabled = enabledNamespaces.has(namespace) && !disabledNamespaces.has(namespace)\n\n if (envEnabled || progEnabled) {\n if (isNode) {\n // Node.js: use ANSI color codes\n const coloredNamespace = `${ANSI_BOLD}${colors.ansi}${namespace}${ANSI_RESET}`\n console.log(coloredNamespace, ...args)\n } else {\n // Browser: use CSS styling with %c\n // The format is: console.log(\"%cstyled%cnormal\", style1, style2, ...args)\n // This colors the namespace, then resets for the rest\n const style1 = `color: ${colors.css}; font-weight: bold`\n const style2 = \"color: inherit; font-weight: normal\"\n // Combine namespace with a space, then log with styles\n console.log(`%c${namespace}%c`, style1, style2, ...args)\n }\n }\n }\n}\n\nexport const getLogger = (scope: string): DebugLogger => {\n const namespace = `${ROOT_NAMESPACE}:${scope}`\n return createDebugLogger(namespace)\n}\n\nexport const enableDebug = (namespaces: string): void => {\n // Parse and add namespaces to enabled set\n const patterns = namespaces.split(/[\\s,]+/).filter((p) => p.length > 0)\n for (const pattern of patterns) {\n if (pattern.startsWith(\"-\")) {\n // Remove from enabled, add to disabled\n const namespace = pattern.slice(1)\n enabledNamespaces.delete(namespace)\n disabledNamespaces.add(namespace)\n } else {\n enabledNamespaces.add(pattern)\n disabledNamespaces.delete(pattern)\n }\n }\n}\n\nexport const disableDebug = (): void => {\n enabledNamespaces.clear()\n disabledNamespaces.clear()\n}\n","export class EntityMutationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = \"EntityMutationError\"\n }\n}\n\nexport class NoMoreResultsError extends Error {\n constructor() {\n super(\"No more results\")\n this.name = \"NoMoreResultsError\"\n }\n}\n\nexport class NoCursorOrLimitError extends Error {\n constructor() {\n super(\"Cursor and limit must be defined to fetch next\")\n this.name = \"NoCursorOrLimitError\"\n }\n}\n\nexport class NoEntityFoundError extends Error {\n constructor() {\n super(\"No entity found\")\n this.name = \"NoEntityFoundError\"\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 contentType: MimeType | undefined\n owner: Hex | undefined\n creator: Hex | undefined\n expiresAtBlock: bigint | undefined\n createdAtBlock: bigint | undefined\n lastModifiedAtBlock: bigint | undefined\n transactionIndexInBlock: bigint | undefined\n operationIndexInTransaction: bigint | undefined\n payload: Uint8Array | undefined\n attributes: Attribute[]\n\n constructor(\n key: Hex,\n contentType: MimeType | undefined = undefined,\n owner: Hex | undefined = undefined,\n creator: Hex | undefined = undefined,\n expiresAtBlock: bigint | undefined = undefined,\n createdAtBlock: bigint | undefined = undefined,\n lastModifiedAtBlock: bigint | undefined = undefined,\n transactionIndexInBlock: bigint | undefined = undefined,\n operationIndexInTransaction: bigint | undefined = undefined,\n payload: Uint8Array | undefined = undefined,\n attributes: Attribute[],\n ) {\n this.key = key\n this.owner = owner\n this.creator = creator\n this.expiresAtBlock = expiresAtBlock\n this.createdAtBlock = createdAtBlock\n this.lastModifiedAtBlock = lastModifiedAtBlock\n this.transactionIndexInBlock = transactionIndexInBlock\n this.operationIndexInTransaction = operationIndexInTransaction\n this.payload = payload\n this.attributes = attributes\n this.contentType = contentType\n }\n\n toText(): string {\n return this.payload ? bytesToString(this.payload) : \"\"\n }\n\n toJson(): any {\n return this.payload ? JSON.parse(bytesToString(this.payload)) : {}\n }\n}\n","import { toBytes } from \"viem\"\nimport { Entity } from \"../types/entity\"\nimport type { RpcEntity } from \"../types/rpcSchema\"\nimport { getLogger } from \"./logger\"\n\nconst logger = getLogger(\"utils:entities\")\n\nexport async function entityFromRpcResult(rpcEntity: RpcEntity) {\n logger(\"entityFromRpcResult %o\", rpcEntity)\n\n return new Entity(\n rpcEntity.key,\n rpcEntity.contentType,\n rpcEntity.owner,\n rpcEntity.creator,\n rpcEntity.expiresAt !== undefined ? BigInt(rpcEntity.expiresAt) : undefined,\n rpcEntity.createdAtBlock !== undefined ? BigInt(rpcEntity.createdAtBlock) : undefined,\n rpcEntity.lastModifiedAtBlock !== undefined ? BigInt(rpcEntity.lastModifiedAtBlock) : undefined,\n rpcEntity.transactionIndexInBlock !== undefined\n ? BigInt(rpcEntity.transactionIndexInBlock)\n : undefined,\n rpcEntity.operationIndexInTransaction !== undefined\n ? BigInt(rpcEntity.operationIndexInTransaction)\n : undefined,\n rpcEntity.value !== undefined ? toBytes(rpcEntity.value) : undefined,\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 { hexToNumber, numberToHex } from \"viem\"\nimport type { ArkivClient } from \"../clients/baseClient\"\nimport type { RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions } from \"../types/rpcSchema\"\nimport { getLogger } from \"../utils/logger\"\nimport type { Predicate } from \"./predicate\"\n\nconst logger = getLogger(\"query:engine\")\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 createdBy: Hex | undefined\n orderBy: RpcOrderByAttribute[] | 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 createdBy,\n orderBy,\n validAtBlock,\n withAttributes,\n withMetadata,\n withPayload,\n } = queryParams\n\n logger(\"Processing query with params %o\", {\n predicates,\n cursor,\n limit,\n ownedBy,\n createdBy,\n orderBy,\n validAtBlock,\n withAttributes,\n withMetadata,\n withPayload,\n })\n\n let query = processPredicates(predicates)\n if (ownedBy) {\n query += ` && $owner=${ownedBy}`\n }\n if (createdBy) {\n query += ` && $creator=${createdBy}`\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 creator: withMetadata ?? false,\n createdAtBlock: withMetadata ?? false,\n lastModifiedAtBlock: withMetadata ?? false,\n transactionIndexInBlock: withMetadata ?? false,\n operationIndexInTransaction: withMetadata ?? false,\n } as RpcIncludeData,\n }\n\n if (validAtBlock !== undefined) {\n queryOptions.atBlock = numberToHex(validAtBlock)\n }\n if (limit !== undefined) {\n queryOptions.resultsPerPage = numberToHex(limit)\n }\n if (cursor !== undefined) {\n queryOptions.cursor = cursor\n }\n if (orderBy !== undefined) {\n queryOptions.orderBy = orderBy\n }\n\n logger(\"Built query to send %s %o\", query, {\n includeData: queryOptions.includeData,\n atBlock: queryOptions.atBlock ? hexToNumber(queryOptions.atBlock) : undefined,\n orderBy: queryOptions.orderBy,\n resultsPerPage: queryOptions.resultsPerPage,\n cursor: queryOptions.cursor,\n })\n\n const result = await client.request({\n method: \"arkiv_query\",\n params: [query, queryOptions],\n })\n logger(\"Raw result from query %o\", result)\n\n return result\n}\n","import { NoCursorOrLimitError, NoMoreResultsError } from \"../errors\"\nimport type { Entity } from \"../types/entity\"\nimport { getLogger } from \"../utils/logger\"\nimport type { QueryBuilder } from \"./queryBuilder\"\n\nconst logger = getLogger(\"query:result\")\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 logger(\"Current block height for next page %s\", this._validAtBlock?.toString() ?? \"unknown\")\n }\n\n hasNextPage() {\n return !this._endOfIteration\n }\n}\n","import type { Hex } from \"viem\"\nimport type { ArkivClient } from \"../clients/baseClient\"\nimport type { RpcOrderByAttribute } from \"../types/rpcSchema\"\nimport { entityFromRpcResult } from \"../utils/entities\"\nimport { processQuery } from \"./engine\"\nimport type { Predicate } from \"./predicate\"\nimport { QueryResult } from \"./queryResult\"\n\nexport type OrderByAttribute = {\n name: string\n type: \"string\" | \"number\"\n order: \"asc\" | \"desc\"\n}\n\n/**\n * Helper function to create an ascending order by attribute\n * @param attributeName - The name of the attribute to order by\n * @param attributeType - The type of the attribute to order by (string or number)\n * @returns Input for orderBy method\n *\n * @example\n * const ascAttribute = asc(\"name\", \"string\")\n */\nexport function asc(attributeName: string, attributeType: \"string\" | \"number\"): OrderByAttribute {\n return {\n name: attributeName,\n type: attributeType,\n order: \"asc\",\n }\n}\n\n/**\n * Helper function to create a descending order by attribute\n * @param attributeName - The name of the attribute to order by\n * @param attributeType - The type of the attribute to order by (string or number)\n * @returns Input for orderBy method\n *\n * @example\n * const descAttribute = desc(\"name\", \"string\")\n */\nexport function desc(attributeName: string, attributeType: \"string\" | \"number\"): OrderByAttribute {\n return {\n name: attributeName,\n type: attributeType,\n order: \"desc\",\n }\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 _createdBy: Hex | undefined\n private _orderBy: RpcOrderByAttribute[] | 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 createdBy filter\n * @param createdBy - The address of the creator\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.createdBy(\"0x1234567890123456789012345678901234567890\")\n */\n createdBy(createdBy: Hex) {\n this._createdBy = createdBy\n return this\n }\n\n /**\n * Sets the orderBy for the query.\n * It can be called multiple times to order by multiple attributes.\n * The order of the attributes is important. The first attribute is the primary order by attribute.\n * You can use the helper functions asc() and desc() as input for this method.\n * @param attributeName - The name of the attribute to order by\n * @param attributeType - The type of the attribute to order by (string or number)\n * @param order - The order to set the order by (asc or desc)\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = client.buildQuery()\n * builder.orderBy(\"name\", \"string\", \"desc\")\n * builder.orderBy(asc(\"name\", \"string\"))\n * builder.orderBy(desc(\"name\", \"string\"))\n */\n orderBy(attributeName: string, attributeType: \"string\" | \"number\", order?: \"asc\" | \"desc\"): this\n /**\n * Sets the orderBy for the query.\n * This method takes the OrderByAttribute object as an argument and is mainly\n * used to use the helper functions asc() and desc() to create the OrderByAttribute instances.\n * @param orderByAttribute - The OrderByAttribute instance to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.orderBy(asc(\"name\", \"string\"))\n * builder.orderBy(desc(\"name\", \"string\"))\n */\n orderBy(orderByAttribute: OrderByAttribute): this\n orderBy(\n attributeNameOrOrderByAttribute: string | OrderByAttribute,\n attributeType?: \"string\" | \"number\",\n order: \"asc\" | \"desc\" = \"asc\",\n ) {\n if (!this._orderBy) {\n this._orderBy = []\n }\n\n const pushOrderByAttribute = ({ name, type, order }: OrderByAttribute) => {\n this._orderBy?.push({\n name,\n type: type === \"number\" ? \"numeric\" : type,\n desc: order === \"desc\",\n })\n }\n\n if (typeof attributeNameOrOrderByAttribute === \"string\") {\n if (!attributeType) {\n throw new Error(\"attributeType is required when using positional orderBy arguments\")\n }\n pushOrderByAttribute({\n name: attributeNameOrOrderByAttribute,\n type: attributeType,\n order,\n })\n } else {\n pushOrderByAttribute(attributeNameOrOrderByAttribute)\n }\n\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 createdBy: this._createdBy,\n orderBy: this._orderBy,\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(BigInt(queryResult.blockNumber ?? 0))\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 createdBy: this._createdBy,\n orderBy: undefined,\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,4 +1,4 @@
1
- import { D as ArkivClient, a as Entity } from "./query-BOF-ysxw.js";
1
+ import { D as ArkivClient, a as Entity } from "./query-DnKI7Fry.js";
2
2
  import { Hex } from "viem";
3
3
 
4
4
  //#region src/query/predicate.d.ts
@@ -325,4 +325,4 @@ declare class QueryBuilder {
325
325
  }
326
326
  //#endregion
327
327
  export { or as _, QueryResult as a, PredicateType as c, gt as d, gte as f, not as g, neq as h, desc as i, and as l, lte as m, QueryBuilder as n, Predicate as o, lt as p, asc as r, PredicateContainerType as s, OrderByAttribute as t, eq as u };
328
- //# sourceMappingURL=queryBuilder-DFaMq3oN.d.ts.map
328
+ //# sourceMappingURL=queryBuilder-C24NWMmN.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryBuilder-DFaMq3oN.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;;AClB7C;;;;;;;;;;ACCY,iBFgCI,GAAA,CEhCY,UAAA,EFgCI,SEhCJ,EAAA,CAAA,EFgCkB,SEhClB;AAe5B;AAiBA;AAaA;;;;;;;;AAqOa,iBFpOG,EAAA,CEoOH,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,GAAA,MAAA,CAAA,EFpO4C,SEoO5C;;;;;;;;;;;iBFtNG,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;iBAa1C,GAAA,eAAkB;;;cClIrB,WAAA;YACD;EDRA,QAAA,eAAa;EACb,QAAA,OAAA;EAEA,QAAA,MAAS;EAET,QAAA,aAAA;EAKA,QAAA,aAAA;EACM,IAAA,YAAA,CAAA,CAAA,ECKI,YDLJ;EAAS,IAAA,MAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAcX,WAAE,CAAA,QAAa,ECAjB,MDA+B,EAAA,EAAA,YAAS,ECCpC,YDDoC,EAAA,MAAA,EAAA,MAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,YAAA,EAAA,MAAA,GAAA,SAAA;EAetC,IAAA,CAAA,CAAG,ECDP,ODCO,CAAA,IAAa,CAAA;EAchB,WAAE,CAAA,CAAA,EAAA,OAAuC;AAczD;;;AApEY,KEQA,gBAAA,GFRa;EACb,IAAA,EAAA,MAAA;EAEA,IAAA,EAAA,QAAS,GAAA,QAAA;EAET,KAAA,EAAA,KAAA,GAAA,MAAA;CAKA;;;AAeZ;AAeA;AAcA;AAcA;AAcA;AAcA;AAcA;AAcgB,iBErGA,GAAA,CFqG0C,aAAS,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,EErGa,gBFqGb;AAanE;;;;AClIA;;;;;AAgCY,iBCCI,IAAA,CDDJ,aAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,ECCqE,gBDDrE;;;;;AC/BZ;AAeA;AAiBgB,cAaH,YAAA,CAboE;EAapE,QAAA,OAAY;EAaH,QAAA,QAAA;EAcH,QAAA,UAAA;EAcI,QAAA,QAAA;EAkCK,QAAA,aAAA;EAuIR,QAAA,eAAA;EAAc,QAAA,aAAA;EAmBrB,QAAA,YAAA;EAAA,QAAA,MAAA;EAiCA,QAAA,OAAA;EAAA,QAAA,WAAA;sBAzPS;;;;;;;;;;mBAcH;;;;;;;;;;uBAcI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuIR,cAAc;;;;;;;;;;;WAmBrB,QAAA;;;;;;;;;;WAiCA"}
1
+ {"version":3,"file":"queryBuilder-C24NWMmN.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;;AClB7C;;;;;;;;;;ACCY,iBFgCI,GAAA,CEhCY,UAAA,EFgCI,SEhCJ,EAAA,CAAA,EFgCkB,SEhClB;AAe5B;AAiBA;AAaA;;;;;;;;AAqOa,iBFpOG,EAAA,CEoOH,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,GAAA,MAAA,CAAA,EFpO4C,SEoO5C;;;;;;;;;;;iBFtNG,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;iBAa1C,GAAA,eAAkB;;;cClIrB,WAAA;YACD;EDRA,QAAA,eAAa;EACb,QAAA,OAAA;EAEA,QAAA,MAAS;EAET,QAAA,aAAA;EAKA,QAAA,aAAA;EACM,IAAA,YAAA,CAAA,CAAA,ECKI,YDLJ;EAAS,IAAA,MAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAcX,WAAE,CAAA,QAAa,ECAjB,MDA+B,EAAA,EAAA,YAAS,ECCpC,YDDoC,EAAA,MAAA,EAAA,MAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,YAAA,EAAA,MAAA,GAAA,SAAA;EAetC,IAAA,CAAA,CAAG,ECDP,ODCO,CAAA,IAAa,CAAA;EAchB,WAAE,CAAA,CAAA,EAAA,OAAuC;AAczD;;;AApEY,KEQA,gBAAA,GFRa;EACb,IAAA,EAAA,MAAA;EAEA,IAAA,EAAA,QAAS,GAAA,QAAA;EAET,KAAA,EAAA,KAAA,GAAA,MAAA;CAKA;;;AAeZ;AAeA;AAcA;AAcA;AAcA;AAcA;AAcA;AAcgB,iBErGA,GAAA,CFqG0C,aAAS,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,EErGa,gBFqGb;AAanE;;;;AClIA;;;;;AAgCY,iBCCI,IAAA,CDDJ,aAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,ECCqE,gBDDrE;;;;;AC/BZ;AAeA;AAiBgB,cAaH,YAAA,CAboE;EAapE,QAAA,OAAY;EAaH,QAAA,QAAA;EAcH,QAAA,UAAA;EAcI,QAAA,QAAA;EAkCK,QAAA,aAAA;EAuIR,QAAA,eAAA;EAAc,QAAA,aAAA;EAmBrB,QAAA,YAAA;EAAA,QAAA,MAAA;EAiCA,QAAA,OAAA;EAAA,QAAA,WAAA;sBAzPS;;;;;;;;;;mBAcH;;;;;;;;;;uBAcI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuIR,cAAc;;;;;;;;;;;WAmBrB,QAAA;;;;;;;;;;WAiCA"}
@@ -1,4 +1,4 @@
1
- import { D as ArkivClient, a as Entity } from "./query-fCVivD9L.cjs";
1
+ import { D as ArkivClient, a as Entity } from "./query-BeKsGPR3.cjs";
2
2
  import { Hex } from "viem";
3
3
 
4
4
  //#region src/query/predicate.d.ts
@@ -325,4 +325,4 @@ declare class QueryBuilder {
325
325
  }
326
326
  //#endregion
327
327
  export { or as _, QueryResult as a, PredicateType as c, gt as d, gte as f, not as g, neq as h, desc as i, and as l, lte as m, QueryBuilder as n, Predicate as o, lt as p, asc as r, PredicateContainerType as s, OrderByAttribute as t, eq as u };
328
- //# sourceMappingURL=queryBuilder-D5eEPVnU.d.cts.map
328
+ //# sourceMappingURL=queryBuilder-CqSuICrM.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryBuilder-D5eEPVnU.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;;AClB7C;;;;;;;;;;ACCY,iBFgCI,GAAA,CEhCY,UAAA,EFgCI,SEhCJ,EAAA,CAAA,EFgCkB,SEhClB;AAe5B;AAiBA;AAaA;;;;;;;;AAqOa,iBFpOG,EAAA,CEoOH,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,GAAA,MAAA,CAAA,EFpO4C,SEoO5C;;;;;;;;;;;iBFtNG,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;iBAa1C,GAAA,eAAkB;;;cClIrB,WAAA;YACD;EDRA,QAAA,eAAa;EACb,QAAA,OAAA;EAEA,QAAA,MAAS;EAET,QAAA,aAAA;EAKA,QAAA,aAAA;EACM,IAAA,YAAA,CAAA,CAAA,ECKI,YDLJ;EAAS,IAAA,MAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAcX,WAAE,CAAA,QAAa,ECAjB,MDA+B,EAAA,EAAA,YAAS,ECCpC,YDDoC,EAAA,MAAA,EAAA,MAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,YAAA,EAAA,MAAA,GAAA,SAAA;EAetC,IAAA,CAAA,CAAG,ECDP,ODCO,CAAA,IAAa,CAAA;EAchB,WAAE,CAAA,CAAA,EAAA,OAAuC;AAczD;;;AApEY,KEQA,gBAAA,GFRa;EACb,IAAA,EAAA,MAAA;EAEA,IAAA,EAAA,QAAS,GAAA,QAAA;EAET,KAAA,EAAA,KAAA,GAAA,MAAA;CAKA;;;AAeZ;AAeA;AAcA;AAcA;AAcA;AAcA;AAcA;AAcgB,iBErGA,GAAA,CFqG0C,aAAS,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,EErGa,gBFqGb;AAanE;;;;AClIA;;;;;AAgCY,iBCCI,IAAA,CDDJ,aAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,ECCqE,gBDDrE;;;;;AC/BZ;AAeA;AAiBgB,cAaH,YAAA,CAboE;EAapE,QAAA,OAAY;EAaH,QAAA,QAAA;EAcH,QAAA,UAAA;EAcI,QAAA,QAAA;EAkCK,QAAA,aAAA;EAuIR,QAAA,eAAA;EAAc,QAAA,aAAA;EAmBrB,QAAA,YAAA;EAAA,QAAA,MAAA;EAiCA,QAAA,OAAA;EAAA,QAAA,WAAA;sBAzPS;;;;;;;;;;mBAcH;;;;;;;;;;uBAcI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuIR,cAAc;;;;;;;;;;;WAmBrB,QAAA;;;;;;;;;;WAiCA"}
1
+ {"version":3,"file":"queryBuilder-CqSuICrM.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;;AClB7C;;;;;;;;;;ACCY,iBFgCI,GAAA,CEhCY,UAAA,EFgCI,SEhCJ,EAAA,CAAA,EFgCkB,SEhClB;AAe5B;AAiBA;AAaA;;;;;;;;AAqOa,iBFpOG,EAAA,CEoOH,GAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,GAAA,MAAA,CAAA,EFpO4C,SEoO5C;;;;;;;;;;;iBFtNG,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;;iBAc1C,EAAA,uCAAyC;;;;;;;;;;;iBAczC,GAAA,uCAA0C;;;;;;;;;;iBAa1C,GAAA,eAAkB;;;cClIrB,WAAA;YACD;EDRA,QAAA,eAAa;EACb,QAAA,OAAA;EAEA,QAAA,MAAS;EAET,QAAA,aAAA;EAKA,QAAA,aAAA;EACM,IAAA,YAAA,CAAA,CAAA,ECKI,YDLJ;EAAS,IAAA,MAAA,CAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAcX,WAAE,CAAA,QAAa,ECAjB,MDA+B,EAAA,EAAA,YAAS,ECCpC,YDDoC,EAAA,MAAA,EAAA,MAAA,GAAA,SAAA,EAAA,KAAA,EAAA,MAAA,GAAA,SAAA,EAAA,YAAA,EAAA,MAAA,GAAA,SAAA;EAetC,IAAA,CAAA,CAAG,ECDP,ODCO,CAAA,IAAa,CAAA;EAchB,WAAE,CAAA,CAAA,EAAA,OAAuC;AAczD;;;AApEY,KEQA,gBAAA,GFRa;EACb,IAAA,EAAA,MAAA;EAEA,IAAA,EAAA,QAAS,GAAA,QAAA;EAET,KAAA,EAAA,KAAA,GAAA,MAAA;CAKA;;;AAeZ;AAeA;AAcA;AAcA;AAcA;AAcA;AAcA;AAcgB,iBErGA,GAAA,CFqG0C,aAAS,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,EErGa,gBFqGb;AAanE;;;;AClIA;;;;;AAgCY,iBCCI,IAAA,CDDJ,aAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,GAAA,QAAA,CAAA,ECCqE,gBDDrE;;;;;AC/BZ;AAeA;AAiBgB,cAaH,YAAA,CAboE;EAapE,QAAA,OAAY;EAaH,QAAA,QAAA;EAcH,QAAA,UAAA;EAcI,QAAA,QAAA;EAkCK,QAAA,aAAA;EAuIR,QAAA,eAAA;EAAc,QAAA,aAAA;EAmBrB,QAAA,YAAA;EAAA,QAAA,MAAA;EAiCA,QAAA,OAAA;EAAA,QAAA,WAAA;sBAzPS;;;;;;;;;;mBAcH;;;;;;;;;;uBAcI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAkCK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAuIR,cAAc;;;;;;;;;;;WAmBrB,QAAA;;;;;;;;;;WAiCA"}
@@ -1,2 +1,2 @@
1
- import { A as RpcIncludeData, C as CreateEntityReturnType, 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-fCVivD9L.cjs";
1
+ import { A as RpcIncludeData, C as CreateEntityReturnType, 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-BeKsGPR3.cjs";
2
2
  export { ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType };
@@ -1,2 +1,2 @@
1
- import { A as RpcIncludeData, C as CreateEntityReturnType, 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-BOF-ysxw.js";
1
+ import { A as RpcIncludeData, C as CreateEntityReturnType, 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-DnKI7Fry.js";
2
2
  export { ArkivRpcSchema, Attribute, ChangeOwnershipParameters, ChangeOwnershipReturnType, CreateEntityParameters, CreateEntityReturnType, DeleteEntityParameters, DeleteEntityReturnType, Entity, ExtendEntityParameters, ExtendEntityReturnType, GetBlockTimingReturnType, MimeType, MutateEntitiesParameters, MutateEntitiesReturnType, OnEntityCreatedEvent, OnEntityDeletedEvent, OnEntityExpiredEvent, OnEntityExpiresInExtendedEvent, OnEntityOwnerChangedEvent, OnEntityUpdatedEvent, QueryOptions, QueryOptionsIncludeData, QueryOptionsOrderBy, QueryReturnType, RpcEntity, RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions, TxParams, UpdateEntityParameters, UpdateEntityReturnType };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkiv-network/sdk",
3
- "version": "0.6.2-dev.2",
3
+ "version": "0.6.2-dev.3",
4
4
  "description": "TypeScript client library for Arkiv's blockchains interactions",
5
5
  "type": "module",
6
6
  "target": "esnext",
@@ -32,6 +32,7 @@ export async function getEntity(client: ArkivClient, key: Hex) {
32
32
  contentType: true,
33
33
  expiration: true,
34
34
  owner: true,
35
+ creator: true,
35
36
  createdAtBlock: true,
36
37
  lastModifiedAtBlock: true,
37
38
  transactionIndexInBlock: true,
@@ -38,6 +38,7 @@ export async function query(client: ArkivClient, query: string, queryOptions?: Q
38
38
  contentType: queryOptions?.includeData?.metadata ?? false,
39
39
  expiration: queryOptions?.includeData?.metadata ?? false,
40
40
  owner: queryOptions?.includeData?.metadata ?? false,
41
+ creator: queryOptions?.includeData?.metadata ?? false,
41
42
  createdAtBlock: queryOptions?.includeData?.metadata ?? false,
42
43
  lastModifiedAtBlock: queryOptions?.includeData?.metadata ?? false,
43
44
  transactionIndexInBlock: queryOptions?.includeData?.metadata ?? false,
@@ -36,6 +36,7 @@ describe("processQuery tests", () => {
36
36
  payload: false,
37
37
  expiration: false,
38
38
  owner: false,
39
+ creator: false,
39
40
  createdAtBlock: false,
40
41
  lastModifiedAtBlock: false,
41
42
  transactionIndexInBlock: false,
@@ -79,6 +80,7 @@ describe("processQuery tests", () => {
79
80
  payload: false,
80
81
  expiration: false,
81
82
  owner: false,
83
+ creator: false,
82
84
  createdAtBlock: false,
83
85
  lastModifiedAtBlock: false,
84
86
  transactionIndexInBlock: false,
@@ -124,6 +126,7 @@ describe("processQuery tests", () => {
124
126
  payload: false,
125
127
  expiration: false,
126
128
  owner: false,
129
+ creator: false,
127
130
  createdAtBlock: false,
128
131
  lastModifiedAtBlock: false,
129
132
  transactionIndexInBlock: false,
@@ -169,6 +172,7 @@ describe("processQuery tests", () => {
169
172
  payload: false,
170
173
  expiration: false,
171
174
  owner: false,
175
+ creator: false,
172
176
  createdAtBlock: false,
173
177
  lastModifiedAtBlock: false,
174
178
  transactionIndexInBlock: false,
@@ -220,6 +224,7 @@ describe("processQuery tests", () => {
220
224
  payload: false,
221
225
  expiration: false,
222
226
  owner: false,
227
+ creator: false,
223
228
  createdAtBlock: false,
224
229
  lastModifiedAtBlock: false,
225
230
  transactionIndexInBlock: false,
@@ -253,6 +258,7 @@ describe("processQuery tests", () => {
253
258
  payload: false,
254
259
  expiration: false,
255
260
  owner: false,
261
+ creator: false,
256
262
  createdAtBlock: false,
257
263
  lastModifiedAtBlock: false,
258
264
  transactionIndexInBlock: false,
@@ -289,6 +295,7 @@ describe("processQuery tests", () => {
289
295
  payload: false,
290
296
  expiration: false,
291
297
  owner: false,
298
+ creator: false,
292
299
  createdAtBlock: false,
293
300
  lastModifiedAtBlock: false,
294
301
  transactionIndexInBlock: false,
@@ -322,6 +329,7 @@ describe("processQuery tests", () => {
322
329
  payload: false,
323
330
  expiration: false,
324
331
  owner: false,
332
+ creator: false,
325
333
  createdAtBlock: false,
326
334
  lastModifiedAtBlock: false,
327
335
  transactionIndexInBlock: false,
@@ -358,6 +366,7 @@ describe("processQuery tests", () => {
358
366
  payload: false,
359
367
  expiration: false,
360
368
  owner: false,
369
+ creator: false,
361
370
  createdAtBlock: false,
362
371
  lastModifiedAtBlock: false,
363
372
  transactionIndexInBlock: false,
@@ -392,6 +401,7 @@ describe("processQuery tests", () => {
392
401
  payload: false,
393
402
  expiration: false,
394
403
  owner: false,
404
+ creator: false,
395
405
  createdAtBlock: false,
396
406
  lastModifiedAtBlock: false,
397
407
  transactionIndexInBlock: false,
@@ -429,6 +439,7 @@ describe("processQuery tests", () => {
429
439
  payload: false,
430
440
  expiration: false,
431
441
  owner: false,
442
+ creator: false,
432
443
  createdAtBlock: false,
433
444
  lastModifiedAtBlock: false,
434
445
  transactionIndexInBlock: false,
@@ -465,6 +476,7 @@ describe("processQuery tests", () => {
465
476
  payload: false,
466
477
  expiration: false,
467
478
  owner: false,
479
+ creator: false,
468
480
  createdAtBlock: false,
469
481
  lastModifiedAtBlock: false,
470
482
  transactionIndexInBlock: false,
@@ -501,6 +513,7 @@ describe("processQuery tests", () => {
501
513
  payload: false,
502
514
  expiration: true,
503
515
  owner: true,
516
+ creator: true,
504
517
  createdAtBlock: true,
505
518
  lastModifiedAtBlock: true,
506
519
  transactionIndexInBlock: true,
@@ -105,6 +105,7 @@ export async function processQuery(
105
105
  contentType: withMetadata ?? false,
106
106
  expiration: withMetadata ?? false,
107
107
  owner: withMetadata ?? false,
108
+ creator: withMetadata ?? false,
108
109
  createdAtBlock: withMetadata ?? false,
109
110
  lastModifiedAtBlock: withMetadata ?? false,
110
111
  transactionIndexInBlock: withMetadata ?? false,
@@ -6,6 +6,7 @@ export class Entity {
6
6
  key: Hex
7
7
  contentType: MimeType | undefined
8
8
  owner: Hex | undefined
9
+ creator: Hex | undefined
9
10
  expiresAtBlock: bigint | undefined
10
11
  createdAtBlock: bigint | undefined
11
12
  lastModifiedAtBlock: bigint | undefined
@@ -18,6 +19,7 @@ export class Entity {
18
19
  key: Hex,
19
20
  contentType: MimeType | undefined = undefined,
20
21
  owner: Hex | undefined = undefined,
22
+ creator: Hex | undefined = undefined,
21
23
  expiresAtBlock: bigint | undefined = undefined,
22
24
  createdAtBlock: bigint | undefined = undefined,
23
25
  lastModifiedAtBlock: bigint | undefined = undefined,
@@ -28,6 +30,7 @@ export class Entity {
28
30
  ) {
29
31
  this.key = key
30
32
  this.owner = owner
33
+ this.creator = creator
31
34
  this.expiresAtBlock = expiresAtBlock
32
35
  this.createdAtBlock = createdAtBlock
33
36
  this.lastModifiedAtBlock = lastModifiedAtBlock
@@ -11,6 +11,7 @@ export type RpcEntity = {
11
11
  transactionIndexInBlock: Hex
12
12
  operationIndexInTransaction: Hex
13
13
  owner: Hex
14
+ creator: Hex
14
15
  stringAttributes?: [{ key: string; value: string }]
15
16
  numericAttributes?: [{ key: string; value: Hex }]
16
17
  }
@@ -36,6 +37,7 @@ export type RpcIncludeData = {
36
37
  contentType?: boolean
37
38
  expiration?: boolean
38
39
  owner?: boolean
40
+ creator?: boolean
39
41
  createdAtBlock?: boolean
40
42
  lastModifiedAtBlock?: boolean
41
43
  transactionIndexInBlock?: boolean
@@ -12,6 +12,7 @@ export async function entityFromRpcResult(rpcEntity: RpcEntity) {
12
12
  rpcEntity.key,
13
13
  rpcEntity.contentType,
14
14
  rpcEntity.owner,
15
+ rpcEntity.creator,
15
16
  rpcEntity.expiresAt !== undefined ? BigInt(rpcEntity.expiresAt) : undefined,
16
17
  rpcEntity.createdAtBlock !== undefined ? BigInt(rpcEntity.createdAtBlock) : undefined,
17
18
  rpcEntity.lastModifiedAtBlock !== undefined ? BigInt(rpcEntity.lastModifiedAtBlock) : undefined,
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-BOF-ysxw.d.ts","names":[],"sources":["../src/types/mimeTypes.ts","../src/types/rpcSchema.ts","../src/clients/baseClient.ts","../src/actions/public/getBlockTiming.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/events.ts","../src/types/txParams.ts","../src/types/entity.ts","../src/actions/public/query.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-fCVivD9L.d.cts","names":[],"sources":["../src/types/mimeTypes.ts","../src/types/rpcSchema.ts","../src/clients/baseClient.ts","../src/actions/public/getBlockTiming.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/events.ts","../src/types/txParams.ts","../src/types/entity.ts","../src/actions/public/query.ts"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queryBuilder-C0qPebqD.js","names":["enabledNamespaces: Set<string>","disabledNamespaces: Set<string>","logger","logger","predicate","queryOptions: RpcQueryOptions","order"],"sources":["../src/utils/logger.ts","../src/errors.ts","../src/types/entity.ts","../src/utils/entities.ts","../src/query/engine.ts","../src/query/queryResult.ts","../src/query/queryBuilder.ts"],"sourcesContent":["const ROOT_NAMESPACE = \"arkiv\"\n\n// Debug logger type - returns a function that can be called to log messages\ntype DebugLogger = (...args: unknown[]) => void\n\n// Get DEBUG environment variable (works in both Node.js and browser)\nfunction getDebugEnv(): string {\n if (typeof process !== \"undefined\") {\n const debugEnv = process?.env?.DEBUG\n if (debugEnv) {\n return debugEnv\n }\n }\n // Browser: check localStorage\n if (typeof globalThis !== \"undefined\" && \"localStorage\" in globalThis) {\n try {\n const storage = (globalThis as { localStorage?: Storage }).localStorage\n return storage?.getItem(\"DEBUG\") || \"\"\n } catch {\n // localStorage might not be available\n }\n }\n return \"\"\n}\n\n// Parse debug patterns and check if a namespace matches\nfunction matchesPattern(namespace: string, pattern: string): boolean {\n // Exact match\n if (pattern === namespace) return true\n\n // Wildcard match: \"arkiv:*\" matches \"arkiv:query\", \"arkiv:rpc\", etc.\n if (pattern.endsWith(\"*\")) {\n const prefix = pattern.slice(0, -1)\n return namespace.startsWith(prefix)\n }\n\n // Negative match: \"-arkiv:query\" excludes \"arkiv:query\"\n if (pattern.startsWith(\"-\")) {\n const excludePattern = pattern.slice(1)\n return !matchesPattern(namespace, excludePattern)\n }\n\n return false\n}\n\n// Check if a namespace is enabled for debugging\nfunction isEnabled(namespace: string): boolean {\n const debugEnv = getDebugEnv()\n if (!debugEnv) return false\n\n // Split by comma/space and check each pattern\n const patterns = debugEnv.split(/[\\s,]+/).filter((p) => p.length > 0)\n\n // If no patterns, nothing is enabled\n if (patterns.length === 0) return false\n\n // Check if any pattern matches (or if explicitly excluded)\n let enabled = false\n for (const pattern of patterns) {\n if (pattern.startsWith(\"-\")) {\n // Exclude pattern - if it matches, disable\n if (matchesPattern(namespace, pattern)) {\n return false\n }\n } else if (matchesPattern(namespace, pattern)) {\n enabled = true\n }\n }\n\n return enabled\n}\n\n// Store enabled namespaces (for programmatic enable/disable)\nconst enabledNamespaces: Set<string> = new Set()\nconst disabledNamespaces: Set<string> = new Set()\n\n// Color palette for namespace coloring (distinct, readable colors)\nconst COLOR_PALETTE = [\n \"#0000FF\", // blue\n \"#008000\", // green\n \"#FF0000\", // red\n \"#FF00FF\", // magenta\n \"#FFA500\", // orange\n \"#800080\", // purple\n \"#00CED1\", // dark turquoise\n \"#FF1493\", // deep pink\n \"#32CD32\", // lime green\n \"#1E90FF\", // dodger blue\n \"#FF4500\", // orange red\n \"#9370DB\", // medium purple\n \"#00FA9A\", // medium spring green\n \"#FFD700\", // gold\n \"#DC143C\", // crimson\n \"#00BFFF\", // deep sky blue\n \"#FF69B4\", // hot pink\n \"#20B2AA\", // light sea green\n \"#DA70D6\", // orchid\n \"#4682B4\", // steel blue\n]\n\n// Detect if we're in Node.js (for ANSI colors) or browser (for CSS colors)\nconst isNode = typeof process !== \"undefined\" && process.versions?.node != null\n\n// ANSI color codes for Node.js (bright, distinct colors)\nconst ANSI_COLORS = [\n \"\\x1b[94m\", // bright blue\n \"\\x1b[92m\", // bright green\n \"\\x1b[91m\", // bright red\n \"\\x1b[95m\", // bright magenta\n \"\\x1b[93m\", // bright yellow\n \"\\x1b[96m\", // bright cyan\n \"\\x1b[35m\", // magenta\n \"\\x1b[36m\", // cyan\n \"\\x1b[32m\", // green\n \"\\x1b[34m\", // blue\n \"\\x1b[33m\", // yellow\n \"\\x1b[31m\", // red\n \"\\x1b[90m\", // bright black (gray)\n \"\\x1b[37m\", // white\n \"\\x1b[1m\", // bold (as a color option)\n]\n\nconst ANSI_RESET = \"\\x1b[0m\"\nconst ANSI_BOLD = \"\\x1b[1m\"\n\n// Cache colors for namespaces (same namespace = same color)\nconst namespaceColors = new Map<string, { css: string; ansi: string }>()\n\n// Generate a consistent color for a namespace based on its hash\nfunction getColorForNamespace(namespace: string): { css: string; ansi: string } {\n // Check cache first\n const cachedColor = namespaceColors.get(namespace)\n if (cachedColor) {\n return cachedColor\n }\n\n // Simple hash function to convert string to number\n let hash = 0\n for (let i = 0; i < namespace.length; i++) {\n const char = namespace.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash = hash & hash // Convert to 32-bit integer\n }\n\n // Use absolute value and modulo to get index\n const colorIndex = Math.abs(hash) % COLOR_PALETTE.length\n const cssColor = COLOR_PALETTE[colorIndex]\n const ansiColor = ANSI_COLORS[colorIndex % ANSI_COLORS.length]\n\n const color = { css: cssColor, ansi: ansiColor }\n\n // Cache the color\n namespaceColors.set(namespace, color)\n\n return color\n}\n\n// Create a debug logger function\nfunction createDebugLogger(namespace: string): DebugLogger {\n // Get the color for this namespace (consistent across calls)\n const colors = getColorForNamespace(namespace)\n\n return (...args: unknown[]) => {\n // Check if enabled via environment variable or programmatically\n const envEnabled = isEnabled(namespace)\n const progEnabled = enabledNamespaces.has(namespace) && !disabledNamespaces.has(namespace)\n\n if (envEnabled || progEnabled) {\n if (isNode) {\n // Node.js: use ANSI color codes\n const coloredNamespace = `${ANSI_BOLD}${colors.ansi}${namespace}${ANSI_RESET}`\n console.log(coloredNamespace, ...args)\n } else {\n // Browser: use CSS styling with %c\n // The format is: console.log(\"%cstyled%cnormal\", style1, style2, ...args)\n // This colors the namespace, then resets for the rest\n const style1 = `color: ${colors.css}; font-weight: bold`\n const style2 = \"color: inherit; font-weight: normal\"\n // Combine namespace with a space, then log with styles\n console.log(`%c${namespace}%c`, style1, style2, ...args)\n }\n }\n }\n}\n\nexport const getLogger = (scope: string): DebugLogger => {\n const namespace = `${ROOT_NAMESPACE}:${scope}`\n return createDebugLogger(namespace)\n}\n\nexport const enableDebug = (namespaces: string): void => {\n // Parse and add namespaces to enabled set\n const patterns = namespaces.split(/[\\s,]+/).filter((p) => p.length > 0)\n for (const pattern of patterns) {\n if (pattern.startsWith(\"-\")) {\n // Remove from enabled, add to disabled\n const namespace = pattern.slice(1)\n enabledNamespaces.delete(namespace)\n disabledNamespaces.add(namespace)\n } else {\n enabledNamespaces.add(pattern)\n disabledNamespaces.delete(pattern)\n }\n }\n}\n\nexport const disableDebug = (): void => {\n enabledNamespaces.clear()\n disabledNamespaces.clear()\n}\n","export class EntityMutationError extends Error {\n constructor(message: string) {\n super(message)\n this.name = \"EntityMutationError\"\n }\n}\n\nexport class NoMoreResultsError extends Error {\n constructor() {\n super(\"No more results\")\n this.name = \"NoMoreResultsError\"\n }\n}\n\nexport class NoCursorOrLimitError extends Error {\n constructor() {\n super(\"Cursor and limit must be defined to fetch next\")\n this.name = \"NoCursorOrLimitError\"\n }\n}\n\nexport class NoEntityFoundError extends Error {\n constructor() {\n super(\"No entity found\")\n this.name = \"NoEntityFoundError\"\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 contentType: MimeType | undefined\n owner: Hex | undefined\n expiresAtBlock: bigint | undefined\n createdAtBlock: bigint | undefined\n lastModifiedAtBlock: bigint | undefined\n transactionIndexInBlock: bigint | undefined\n operationIndexInTransaction: bigint | undefined\n payload: Uint8Array | undefined\n attributes: Attribute[]\n\n constructor(\n key: Hex,\n contentType: MimeType | undefined = undefined,\n owner: Hex | undefined = undefined,\n expiresAtBlock: bigint | undefined = undefined,\n createdAtBlock: bigint | undefined = undefined,\n lastModifiedAtBlock: bigint | undefined = undefined,\n transactionIndexInBlock: bigint | undefined = undefined,\n operationIndexInTransaction: bigint | undefined = undefined,\n payload: Uint8Array | undefined = undefined,\n attributes: Attribute[],\n ) {\n this.key = key\n this.owner = owner\n this.expiresAtBlock = expiresAtBlock\n this.createdAtBlock = createdAtBlock\n this.lastModifiedAtBlock = lastModifiedAtBlock\n this.transactionIndexInBlock = transactionIndexInBlock\n this.operationIndexInTransaction = operationIndexInTransaction\n this.payload = payload\n this.attributes = attributes\n this.contentType = contentType\n }\n\n toText(): string {\n return this.payload ? bytesToString(this.payload) : \"\"\n }\n\n toJson(): any {\n return this.payload ? JSON.parse(bytesToString(this.payload)) : {}\n }\n}\n","import { toBytes } from \"viem\"\nimport { Entity } from \"../types/entity\"\nimport type { RpcEntity } from \"../types/rpcSchema\"\nimport { getLogger } from \"./logger\"\n\nconst logger = getLogger(\"utils:entities\")\n\nexport async function entityFromRpcResult(rpcEntity: RpcEntity) {\n logger(\"entityFromRpcResult %o\", rpcEntity)\n\n return new Entity(\n rpcEntity.key,\n rpcEntity.contentType,\n rpcEntity.owner,\n rpcEntity.expiresAt !== undefined ? BigInt(rpcEntity.expiresAt) : undefined,\n rpcEntity.createdAtBlock !== undefined ? BigInt(rpcEntity.createdAtBlock) : undefined,\n rpcEntity.lastModifiedAtBlock !== undefined ? BigInt(rpcEntity.lastModifiedAtBlock) : undefined,\n rpcEntity.transactionIndexInBlock !== undefined\n ? BigInt(rpcEntity.transactionIndexInBlock)\n : undefined,\n rpcEntity.operationIndexInTransaction !== undefined\n ? BigInt(rpcEntity.operationIndexInTransaction)\n : undefined,\n rpcEntity.value !== undefined ? toBytes(rpcEntity.value) : undefined,\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 { hexToNumber, numberToHex } from \"viem\"\nimport type { ArkivClient } from \"../clients/baseClient\"\nimport type { RpcIncludeData, RpcOrderByAttribute, RpcQueryOptions } from \"../types/rpcSchema\"\nimport { getLogger } from \"../utils/logger\"\nimport type { Predicate } from \"./predicate\"\n\nconst logger = getLogger(\"query:engine\")\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 createdBy: Hex | undefined\n orderBy: RpcOrderByAttribute[] | 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 createdBy,\n orderBy,\n validAtBlock,\n withAttributes,\n withMetadata,\n withPayload,\n } = queryParams\n\n logger(\"Processing query with params %o\", {\n predicates,\n cursor,\n limit,\n ownedBy,\n createdBy,\n orderBy,\n validAtBlock,\n withAttributes,\n withMetadata,\n withPayload,\n })\n\n let query = processPredicates(predicates)\n if (ownedBy) {\n query += ` && $owner=${ownedBy}`\n }\n if (createdBy) {\n query += ` && $creator=${createdBy}`\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 createdAtBlock: withMetadata ?? false,\n lastModifiedAtBlock: withMetadata ?? false,\n transactionIndexInBlock: withMetadata ?? false,\n operationIndexInTransaction: withMetadata ?? false,\n } as RpcIncludeData,\n }\n\n if (validAtBlock !== undefined) {\n queryOptions.atBlock = numberToHex(validAtBlock)\n }\n if (limit !== undefined) {\n queryOptions.resultsPerPage = numberToHex(limit)\n }\n if (cursor !== undefined) {\n queryOptions.cursor = cursor\n }\n if (orderBy !== undefined) {\n queryOptions.orderBy = orderBy\n }\n\n logger(\"Built query to send %s %o\", query, {\n includeData: queryOptions.includeData,\n atBlock: queryOptions.atBlock ? hexToNumber(queryOptions.atBlock) : undefined,\n orderBy: queryOptions.orderBy,\n resultsPerPage: queryOptions.resultsPerPage,\n cursor: queryOptions.cursor,\n })\n\n const result = await client.request({\n method: \"arkiv_query\",\n params: [query, queryOptions],\n })\n logger(\"Raw result from query %o\", result)\n\n return result\n}\n","import { NoCursorOrLimitError, NoMoreResultsError } from \"../errors\"\nimport type { Entity } from \"../types/entity\"\nimport { getLogger } from \"../utils/logger\"\nimport type { QueryBuilder } from \"./queryBuilder\"\n\nconst logger = getLogger(\"query:result\")\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 logger(\"Current block height for next page %s\", this._validAtBlock?.toString() ?? \"unknown\")\n }\n\n hasNextPage() {\n return !this._endOfIteration\n }\n}\n","import type { Hex } from \"viem\"\nimport type { ArkivClient } from \"../clients/baseClient\"\nimport type { RpcOrderByAttribute } from \"../types/rpcSchema\"\nimport { entityFromRpcResult } from \"../utils/entities\"\nimport { processQuery } from \"./engine\"\nimport type { Predicate } from \"./predicate\"\nimport { QueryResult } from \"./queryResult\"\n\nexport type OrderByAttribute = {\n name: string\n type: \"string\" | \"number\"\n order: \"asc\" | \"desc\"\n}\n\n/**\n * Helper function to create an ascending order by attribute\n * @param attributeName - The name of the attribute to order by\n * @param attributeType - The type of the attribute to order by (string or number)\n * @returns Input for orderBy method\n *\n * @example\n * const ascAttribute = asc(\"name\", \"string\")\n */\nexport function asc(attributeName: string, attributeType: \"string\" | \"number\"): OrderByAttribute {\n return {\n name: attributeName,\n type: attributeType,\n order: \"asc\",\n }\n}\n\n/**\n * Helper function to create a descending order by attribute\n * @param attributeName - The name of the attribute to order by\n * @param attributeType - The type of the attribute to order by (string or number)\n * @returns Input for orderBy method\n *\n * @example\n * const descAttribute = desc(\"name\", \"string\")\n */\nexport function desc(attributeName: string, attributeType: \"string\" | \"number\"): OrderByAttribute {\n return {\n name: attributeName,\n type: attributeType,\n order: \"desc\",\n }\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 _createdBy: Hex | undefined\n private _orderBy: RpcOrderByAttribute[] | 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 createdBy filter\n * @param createdBy - The address of the creator\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.createdBy(\"0x1234567890123456789012345678901234567890\")\n */\n createdBy(createdBy: Hex) {\n this._createdBy = createdBy\n return this\n }\n\n /**\n * Sets the orderBy for the query.\n * It can be called multiple times to order by multiple attributes.\n * The order of the attributes is important. The first attribute is the primary order by attribute.\n * You can use the helper functions asc() and desc() as input for this method.\n * @param attributeName - The name of the attribute to order by\n * @param attributeType - The type of the attribute to order by (string or number)\n * @param order - The order to set the order by (asc or desc)\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = client.buildQuery()\n * builder.orderBy(\"name\", \"string\", \"desc\")\n * builder.orderBy(asc(\"name\", \"string\"))\n * builder.orderBy(desc(\"name\", \"string\"))\n */\n orderBy(attributeName: string, attributeType: \"string\" | \"number\", order?: \"asc\" | \"desc\"): this\n /**\n * Sets the orderBy for the query.\n * This method takes the OrderByAttribute object as an argument and is mainly\n * used to use the helper functions asc() and desc() to create the OrderByAttribute instances.\n * @param orderByAttribute - The OrderByAttribute instance to set\n * @returns The QueryBuilder instance\n *\n * @example\n * const builder = new QueryBuilder(client)\n * builder.orderBy(asc(\"name\", \"string\"))\n * builder.orderBy(desc(\"name\", \"string\"))\n */\n orderBy(orderByAttribute: OrderByAttribute): this\n orderBy(\n attributeNameOrOrderByAttribute: string | OrderByAttribute,\n attributeType?: \"string\" | \"number\",\n order: \"asc\" | \"desc\" = \"asc\",\n ) {\n if (!this._orderBy) {\n this._orderBy = []\n }\n\n const pushOrderByAttribute = ({ name, type, order }: OrderByAttribute) => {\n this._orderBy?.push({\n name,\n type: type === \"number\" ? \"numeric\" : type,\n desc: order === \"desc\",\n })\n }\n\n if (typeof attributeNameOrOrderByAttribute === \"string\") {\n if (!attributeType) {\n throw new Error(\"attributeType is required when using positional orderBy arguments\")\n }\n pushOrderByAttribute({\n name: attributeNameOrOrderByAttribute,\n type: attributeType,\n order,\n })\n } else {\n pushOrderByAttribute(attributeNameOrOrderByAttribute)\n }\n\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 createdBy: this._createdBy,\n orderBy: this._orderBy,\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(BigInt(queryResult.blockNumber ?? 0))\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 createdBy: this._createdBy,\n orderBy: undefined,\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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"}