@hashgraphonline/standards-sdk 0.1.136 → 0.1.137

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 (52) hide show
  1. package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
  2. package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
  3. package/dist/cjs/standards-sdk.cjs +2 -2
  4. package/dist/cjs/standards-sdk.cjs.map +1 -1
  5. package/dist/es/services/registry-broker/client.d.ts.map +1 -1
  6. package/dist/es/services/registry-broker/types.d.ts.map +1 -1
  7. package/dist/es/standards-sdk.es103.js +1 -1
  8. package/dist/es/standards-sdk.es104.js +5 -5
  9. package/dist/es/standards-sdk.es114.js +1 -1
  10. package/dist/es/standards-sdk.es115.js +1 -1
  11. package/dist/es/standards-sdk.es116.js +5 -5
  12. package/dist/es/standards-sdk.es121.js +9 -32
  13. package/dist/es/standards-sdk.es121.js.map +1 -1
  14. package/dist/es/standards-sdk.es131.js +17 -694
  15. package/dist/es/standards-sdk.es131.js.map +1 -1
  16. package/dist/es/standards-sdk.es132.js.map +1 -1
  17. package/dist/es/standards-sdk.es133.js +694 -17
  18. package/dist/es/standards-sdk.es133.js.map +1 -1
  19. package/dist/es/standards-sdk.es134.js +167 -51
  20. package/dist/es/standards-sdk.es134.js.map +1 -1
  21. package/dist/es/standards-sdk.es135.js +311 -53
  22. package/dist/es/standards-sdk.es135.js.map +1 -1
  23. package/dist/es/standards-sdk.es136.js +294 -120
  24. package/dist/es/standards-sdk.es136.js.map +1 -1
  25. package/dist/es/standards-sdk.es137.js +322 -191
  26. package/dist/es/standards-sdk.es137.js.map +1 -1
  27. package/dist/es/standards-sdk.es138.js +279 -294
  28. package/dist/es/standards-sdk.es138.js.map +1 -1
  29. package/dist/es/standards-sdk.es139.js +63 -440
  30. package/dist/es/standards-sdk.es139.js.map +1 -1
  31. package/dist/es/standards-sdk.es140.js +55 -330
  32. package/dist/es/standards-sdk.es140.js.map +1 -1
  33. package/dist/es/standards-sdk.es141.js +50 -62
  34. package/dist/es/standards-sdk.es141.js.map +1 -1
  35. package/dist/es/standards-sdk.es16.js +16 -11
  36. package/dist/es/standards-sdk.es16.js.map +1 -1
  37. package/dist/es/standards-sdk.es17.js +1 -1
  38. package/dist/es/standards-sdk.es19.js +1 -1
  39. package/dist/es/standards-sdk.es19.js.map +1 -1
  40. package/dist/es/standards-sdk.es2.js.map +1 -1
  41. package/dist/es/standards-sdk.es20.js +1 -1
  42. package/dist/es/standards-sdk.es28.js +1 -1
  43. package/dist/es/standards-sdk.es36.js +1 -1
  44. package/dist/es/standards-sdk.es57.js +1 -1
  45. package/dist/es/standards-sdk.es59.js +1 -1
  46. package/dist/es/standards-sdk.es60.js +1 -1
  47. package/dist/es/standards-sdk.es61.js +1 -1
  48. package/dist/es/standards-sdk.es63.js +1 -1
  49. package/dist/es/standards-sdk.es65.js +1 -1
  50. package/dist/es/standards-sdk.es66.js +1 -1
  51. package/dist/es/standards-sdk.es78.js +1 -1
  52. package/package.json +59 -61
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es141.js","sources":["../../src/utils/parsers/parser-utils.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Transaction } from '@hashgraph/sdk';\nimport { Buffer } from 'buffer';\n\nexport function parseKey(\n key: proto.IKey | null | undefined,\n): string | undefined {\n if (!key) {\n return undefined;\n }\n\n if (key.contractID) {\n return `ContractID: ${new ContractId(\n key.contractID.shardNum ?? 0,\n key.contractID.realmNum ?? 0,\n key.contractID.contractNum ?? 0,\n ).toString()}`;\n }\n if (key.ed25519) {\n return `ED25519: ${Buffer.from(key.ed25519).toString('hex')}`;\n }\n if (key.ECDSASecp256k1) {\n return `ECDSA_secp256k1: ${Buffer.from(key.ECDSASecp256k1).toString(\n 'hex',\n )}`;\n }\n if (key?.keyList?.keys?.length > 0) {\n const keys = key.keyList.keys.map(k => parseKey(k)).filter(Boolean);\n return `KeyList (${keys.length} keys): [${keys.join(', ')}]`;\n }\n if (key?.thresholdKey?.keys?.keys?.length > 0) {\n const keys = key.thresholdKey.keys.keys\n .map(k => parseKey(k))\n .filter(Boolean);\n return `ThresholdKey (${key.thresholdKey.threshold} of ${\n keys.length\n }): [${keys.join(', ')}]`;\n }\n if (key.delegatableContractId) {\n return `DelegatableContractID: ${new ContractId(\n key.delegatableContractId.shardNum ?? 0,\n key.delegatableContractId.realmNum ?? 0,\n key.delegatableContractId.contractNum ?? 0,\n ).toString()}`;\n }\n if (Object.keys(key).length === 0) {\n return 'Empty Key Structure';\n }\n\n return 'Unknown or Unset Key Type';\n}\n\n/**\n * Extract TransactionBody from Transaction object using protobuf parsing\n * This replaces fragile constructor name checking with reliable protobuf data\n */\nexport function extractTransactionBody(\n transaction: Transaction,\n): proto.ITransactionBody | null {\n try {\n const bytes = transaction.toBytes ? transaction.toBytes() : undefined;\n if (!bytes) {\n return null;\n }\n\n const decoded = proto.TransactionList.decode(bytes);\n if (!decoded.transactionList || decoded.transactionList.length === 0) {\n return null;\n }\n\n const tx = decoded.transactionList[0];\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n return proto.TransactionBody.decode(tx.bodyBytes);\n }\n\n if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n return proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n return null;\n } catch (error) {\n return null;\n }\n}\n\n/**\n * Check if transaction has specific transaction type using protobuf data\n * This replaces constructor name checking with reliable protobuf field detection\n */\nexport function hasTransactionType(\n transaction: Transaction,\n transactionField: keyof proto.ITransactionBody,\n): boolean {\n const txBody = extractTransactionBody(transaction);\n return !!(txBody && txBody[transactionField]);\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,SACd,KACoB;AACpB,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,YAAY;AAClB,WAAO,eAAe,IAAI;AAAA,MACxB,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,eAAe;AAAA,IAAA,EAC9B,UAAU;AAAA,EACd;AACA,MAAI,IAAI,SAAS;AACf,WAAO,YAAY,OAAO,KAAK,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC;AAAA,EAC7D;AACA,MAAI,IAAI,gBAAgB;AACtB,WAAO,oBAAoB,OAAO,KAAK,IAAI,cAAc,EAAE;AAAA,MACzD;AAAA,IAAA,CACD;AAAA,EACH;AACA,MAAI,KAAK,SAAS,MAAM,SAAS,GAAG;AAClC,UAAM,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EAAE,OAAO,OAAO;AAClE,WAAO,YAAY,KAAK,MAAM,YAAY,KAAK,KAAK,IAAI,CAAC;AAAA,EAC3D;AACA,MAAI,KAAK,cAAc,MAAM,MAAM,SAAS,GAAG;AAC7C,UAAM,OAAO,IAAI,aAAa,KAAK,KAChC,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EACpB,OAAO,OAAO;AACjB,WAAO,iBAAiB,IAAI,aAAa,SAAS,OAChD,KAAK,MACP,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,EACxB;AACA,MAAI,IAAI,uBAAuB;AAC7B,WAAO,0BAA0B,IAAI;AAAA,MACnC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,eAAe;AAAA,IAAA,EACzC,UAAU;AAAA,EACd;AACA,MAAI,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMO,SAAS,uBACd,aAC+B;AAC/B,MAAI;AACF,UAAM,QAAQ,YAAY,UAAU,YAAY,YAAY;AAC5D,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,MAAM,gBAAgB,OAAO,KAAK;AAClD,QAAI,CAAC,QAAQ,mBAAmB,QAAQ,gBAAgB,WAAW,GAAG;AACpE,aAAO;AAAA,IACT;AAEA,UAAM,KAAK,QAAQ,gBAAgB,CAAC;AAEpC,QAAI,GAAG,aAAa,GAAG,UAAU,SAAS,GAAG;AAC3C,aAAO,MAAM,gBAAgB,OAAO,GAAG,SAAS;AAAA,IAClD;AAEA,QAAI,GAAG,0BAA0B,GAAG,uBAAuB,SAAS,GAAG;AACrE,YAAM,WAAW,MAAM,kBAAkB;AAAA,QACvC,GAAG;AAAA,MAAA;AAEL,UAAI,SAAS,WAAW;AACtB,eAAO,MAAM,gBAAgB,OAAO,SAAS,SAAS;AAAA,MACxD;AAAA,IACF;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAMO,SAAS,mBACd,aACA,kBACS;AACT,QAAM,SAAS,uBAAuB,WAAW;AACjD,SAAO,CAAC,EAAE,UAAU,OAAO,gBAAgB;AAC7C;"}
1
+ {"version":3,"file":"standards-sdk.es141.js","sources":["../../src/utils/dynamic-import.ts"],"sourcesContent":["import { isBrowser } from './is-browser';\n\nlet nodeRequire: NodeRequire | null | undefined;\n\nfunction isModuleNotFound(specifier: string, error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n const code = Reflect.get(error, 'code');\n const message = Reflect.get(error, 'message');\n const messageText = typeof message === 'string' ? message : '';\n\n if (typeof code === 'string' && code.includes('MODULE_NOT_FOUND')) {\n return messageText.includes(specifier);\n }\n\n if (messageText) {\n const lowered = messageText.toLowerCase();\n if (\n lowered.includes('cannot find module') ||\n lowered.includes('module not found') ||\n lowered.includes('cannot find package')\n ) {\n return lowered.includes(specifier.toLowerCase());\n }\n }\n\n return false;\n}\n\nasync function resolveNodeRequire(): Promise<NodeRequire | null> {\n if (nodeRequire !== undefined) {\n return nodeRequire;\n }\n\n if (isBrowser) {\n nodeRequire = null;\n return nodeRequire;\n }\n\n try {\n const globalObject =\n typeof global !== 'undefined'\n ? (global as typeof globalThis)\n : globalThis;\n const req =\n globalObject.process?.mainModule?.require ??\n (globalObject as { require?: NodeRequire }).require;\n\n nodeRequire =\n typeof req === 'function' &&\n typeof (req as NodeRequire).resolve === 'function'\n ? (req as NodeRequire)\n : null;\n } catch {\n nodeRequire = null;\n }\n\n return nodeRequire;\n}\n\nasync function dynamicImport<T>(specifier: string): Promise<T | null> {\n try {\n return (await import(specifier)) as T;\n } catch (error) {\n if (isModuleNotFound(specifier, error)) {\n return null;\n }\n throw error as Error;\n }\n}\n\nexport async function optionalImport<T>(specifier: string): Promise<T | null> {\n if (isBrowser) {\n return dynamicImport<T>(specifier);\n }\n\n const requireFn = await resolveNodeRequire();\n if (requireFn) {\n try {\n return requireFn(specifier) as T;\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n }\n\n return dynamicImport<T>(specifier);\n}\n"],"names":[],"mappings":";AAEA,IAAI;AAEJ,SAAS,iBAAiB,WAAmB,OAAyB;AACpE,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,WAAO;AAAA,EACT;AACA,QAAM,OAAO,QAAQ,IAAI,OAAO,MAAM;AACtC,QAAM,UAAU,QAAQ,IAAI,OAAO,SAAS;AAC5C,QAAM,cAAc,OAAO,YAAY,WAAW,UAAU;AAE5D,MAAI,OAAO,SAAS,YAAY,KAAK,SAAS,kBAAkB,GAAG;AACjE,WAAO,YAAY,SAAS,SAAS;AAAA,EACvC;AAEA,MAAI,aAAa;AACf,UAAM,UAAU,YAAY,YAAA;AAC5B,QACE,QAAQ,SAAS,oBAAoB,KACrC,QAAQ,SAAS,kBAAkB,KACnC,QAAQ,SAAS,qBAAqB,GACtC;AACA,aAAO,QAAQ,SAAS,UAAU,YAAA,CAAa;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AACT;AAEA,eAAe,qBAAkD;AAC/D,MAAI,gBAAgB,QAAW;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,WAAW;AACb,kBAAc;AACd,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,eACJ,OAAO,WAAW,cACb,SACD;AACN,UAAM,MACJ,aAAa,SAAS,YAAY,WACjC,aAA2C;AAE9C,kBACE,OAAO,QAAQ,cACf,OAAQ,IAAoB,YAAY,aACnC,MACD;AAAA,EACR,QAAQ;AACN,kBAAc;AAAA,EAChB;AAEA,SAAO;AACT;AAEA,eAAe,cAAiB,WAAsC;AACpE,MAAI;AACF,WAAQ,MAAM,OAAO;AAAA,EACvB,SAAS,OAAO;AACd,QAAI,iBAAiB,WAAW,KAAK,GAAG;AACtC,aAAO;AAAA,IACT;AACA,UAAM;AAAA,EACR;AACF;AAEA,eAAsB,eAAkB,WAAsC;AAC5E,MAAI,WAAW;AACb,WAAO,cAAiB,SAAS;AAAA,EACnC;AAEA,QAAM,YAAY,MAAM,mBAAA;AACxB,MAAI,WAAW;AACb,QAAI;AACF,aAAO,UAAU,SAAS;AAAA,IAC5B,SAAS,OAAO;AACd,UAAI,CAAC,iBAAiB,WAAW,KAAK,GAAG;AACvC,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAiB,SAAS;AACnC;"}
@@ -2,17 +2,17 @@ import { Logger } from "./standards-sdk.es99.js";
2
2
  class RedisCache {
3
3
  constructor(config = {}) {
4
4
  const {
5
- host: host2 = "localhost",
6
- port: port2 = 6379,
7
- password: password2,
8
- db: db2 = 0,
9
- keyPrefix: keyPrefix2 = "",
5
+ host = "localhost",
6
+ port = 6379,
7
+ password,
8
+ db = 0,
9
+ keyPrefix = "",
10
10
  tls = false,
11
11
  connectTimeout = 5e3,
12
12
  retryStrategy,
13
13
  logLevel = "info"
14
14
  } = config;
15
- this.prefix = keyPrefix2;
15
+ this.prefix = keyPrefix;
16
16
  this.logger = Logger.getInstance({
17
17
  level: logLevel,
18
18
  module: "RedisCache"
@@ -20,7 +20,12 @@ class RedisCache {
20
20
  this.client = createRedisClient(
21
21
  this.logger,
22
22
  {
23
+ host,
24
+ port,
25
+ password,
26
+ db,
23
27
  tls: tls ? {} : void 0,
28
+ keyPrefix,
24
29
  connectTimeout,
25
30
  retryStrategy: retryStrategy || ((times) => {
26
31
  const delay = Math.min(times * 50, 2e3);
@@ -90,12 +95,12 @@ function createRedisClient(logger, options, logConnectEvents) {
90
95
  return createInMemoryRedisClient();
91
96
  }
92
97
  const client = new Redis({
93
- host,
94
- port,
95
- password,
96
- db,
98
+ host: options.host,
99
+ port: options.port,
100
+ password: options.password,
101
+ db: options.db,
97
102
  tls: options.tls,
98
- keyPrefix,
103
+ keyPrefix: options.keyPrefix,
99
104
  connectTimeout: options.connectTimeout,
100
105
  retryStrategy: options.retryStrategy,
101
106
  maxRetriesPerRequest: options.maxRetriesPerRequest
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es16.js","sources":["../../src/hcs-7/redis-cache.ts"],"sourcesContent":["import { EVMCache } from './evm-bridge';\nimport { Logger, ILogger } from '../utils/logger';\n\ntype RedisOptions = {\n host: string;\n port: number;\n password?: string;\n db: number;\n tls?: Record<string, unknown>;\n keyPrefix?: string;\n connectTimeout: number;\n retryStrategy?: (times: number) => number | void;\n maxRetriesPerRequest: number;\n};\n\ntype RedisClient = {\n get(key: string): Promise<string | null>;\n set(key: string, value: string): Promise<string | null>;\n setex(key: string, seconds: number, value: string): Promise<string | null>;\n del(...keys: string[]): Promise<number>;\n keys(pattern: string): Promise<string[]>;\n quit(): Promise<void>;\n on(event: 'error' | 'connect', listener: (error?: Error) => void): void;\n};\n\ntype RedisConstructor = new (options: RedisOptions) => RedisClient;\n\ntype NodeRequire = (id: string) => unknown;\n\ndeclare const require: NodeRequire | undefined;\n\nexport interface RedisConfig {\n host?: string;\n port?: number;\n password?: string;\n db?: number;\n keyPrefix?: string;\n tls?: boolean;\n connectTimeout?: number;\n retryStrategy?: (times: number) => number | void;\n logLevel?: 'debug' | 'info' | 'warn' | 'error';\n}\n\nexport class RedisCache implements EVMCache {\n private client: RedisClient;\n private prefix: string;\n private logger: ILogger;\n\n constructor(config: RedisConfig = {}) {\n const {\n host = 'localhost',\n port = 6379,\n password,\n db = 0,\n keyPrefix = '',\n tls = false,\n connectTimeout = 5000,\n retryStrategy,\n logLevel = 'info',\n } = config;\n\n this.prefix = keyPrefix;\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'RedisCache',\n });\n\n this.client = createRedisClient(\n this.logger,\n {\n host,\n port,\n password,\n db,\n tls: tls ? {} : undefined,\n keyPrefix,\n connectTimeout,\n retryStrategy:\n retryStrategy ||\n (times => {\n const delay = Math.min(times * 50, 2000);\n return delay;\n }),\n maxRetriesPerRequest: 3,\n },\n true,\n );\n }\n\n private getKey(key: string): string {\n return `${this.prefix}${key}`;\n }\n\n async get(key: string): Promise<string | undefined> {\n try {\n const value = await this.client.get(this.getKey(key));\n return value || undefined;\n } catch (error: unknown) {\n this.logger.error('Redis get error:', error);\n throw error;\n }\n }\n\n async set(key: string, value: string, ttlSeconds?: number): Promise<void> {\n try {\n const fullKey = this.getKey(key);\n if (ttlSeconds) {\n await this.client.setex(fullKey, ttlSeconds, value);\n } else {\n await this.client.set(fullKey, value);\n }\n } catch (error: unknown) {\n this.logger.error('Redis set error:', error);\n throw error;\n }\n }\n\n async delete(key: string): Promise<void> {\n try {\n await this.client.del(this.getKey(key));\n } catch (error: unknown) {\n this.logger.error('Redis delete error:', error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n try {\n const keys = await this.client.keys(`${this.prefix}*`);\n if (keys.length > 0) {\n await this.client.del(...keys);\n }\n } catch (error: unknown) {\n this.logger.error('Redis clear error:', error);\n throw error;\n }\n }\n\n async disconnect(): Promise<void> {\n await this.client.quit();\n }\n\n setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n this.logger.setLogLevel(level);\n }\n}\n\nfunction createRedisClient(\n logger: ILogger,\n options: RedisOptions,\n logConnectEvents: boolean,\n): RedisClient {\n const Redis = getRedisConstructor();\n\n if (!Redis) {\n logger.warn(\n 'ioredis is not installed; RedisCache will use an in-memory cache instead',\n );\n\n return createInMemoryRedisClient();\n }\n\n const client = new Redis({\n host,\n port,\n password,\n db,\n tls: options.tls,\n keyPrefix,\n connectTimeout: options.connectTimeout,\n retryStrategy: options.retryStrategy,\n maxRetriesPerRequest: options.maxRetriesPerRequest,\n });\n\n if (logConnectEvents) {\n client.on('error', (error: Error) => {\n logger.error('Redis connection error:', error);\n });\n\n client.on('connect', () => {\n logger.debug('Redis connected');\n });\n }\n\n return client;\n}\n\nfunction getRedisConstructor(): RedisConstructor | null {\n if (typeof require !== 'function') {\n return null;\n }\n\n try {\n const loaded = require('ioredis') as\n | RedisConstructor\n | { default: RedisConstructor };\n\n if (typeof (loaded as RedisConstructor) === 'function') {\n return loaded as RedisConstructor;\n }\n\n if (\n typeof (loaded as { default?: RedisConstructor }).default === 'function'\n ) {\n return (loaded as { default: RedisConstructor }).default;\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nfunction createInMemoryRedisClient(): RedisClient {\n const store = new Map<string, string>();\n\n return {\n async get(key: string): Promise<string | null> {\n return store.get(key) ?? null;\n },\n async set(key: string, value: string): Promise<string | null> {\n store.set(key, value);\n return 'OK';\n },\n async setex(\n key: string,\n _seconds: number,\n value: string,\n ): Promise<string | null> {\n store.set(key, value);\n return 'OK';\n },\n async del(...keys: string[]): Promise<number> {\n let deleted = 0;\n for (const key of keys) {\n if (store.delete(key)) {\n deleted += 1;\n }\n }\n return deleted;\n },\n async keys(pattern: string): Promise<string[]> {\n if (pattern.endsWith('*')) {\n const prefix = pattern.slice(0, -1);\n return Array.from(store.keys()).filter(key => key.startsWith(prefix));\n }\n return store.has(pattern) ? [pattern] : [];\n },\n async quit(): Promise<void> {\n store.clear();\n },\n on(): void {\n return;\n },\n };\n}\n"],"names":["host","port","password","db","keyPrefix"],"mappings":";AA2CO,MAAM,WAA+B;AAAA,EAK1C,YAAY,SAAsB,IAAI;AACpC,UAAM;AAAA,MACJ,MAAAA,QAAO;AAAA,MACP,MAAAC,QAAO;AAAA,MACP,UAAAC;AAAAA,MACA,IAAAC,MAAK;AAAA,MACL,WAAAC,aAAY;AAAA,MACZ,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB;AAAA,MACA,WAAW;AAAA,IAAA,IACT;AAEJ,SAAK,SAASA;AACd,SAAK,SAAS,OAAO,YAAY;AAAA,MAC/B,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,CACT;AAED,SAAK,SAAS;AAAA,MACZ,KAAK;AAAA,MACL;AAAA,QAKE,KAAK,MAAM,CAAA,IAAK;AAAA,QAEhB;AAAA,QACA,eACE,kBACC,CAAA,UAAS;AACR,gBAAM,QAAQ,KAAK,IAAI,QAAQ,IAAI,GAAI;AACvC,iBAAO;AAAA,QACT;AAAA,QACF,sBAAsB;AAAA,MAAA;AAAA,IAG1B;AAAA,EACF;AAAA,EAEQ,OAAO,KAAqB;AAClC,WAAO,GAAG,KAAK,MAAM,GAAG,GAAG;AAAA,EAC7B;AAAA,EAEA,MAAM,IAAI,KAA0C;AAClD,QAAI;AACF,YAAM,QAAQ,MAAM,KAAK,OAAO,IAAI,KAAK,OAAO,GAAG,CAAC;AACpD,aAAO,SAAS;AAAA,IAClB,SAAS,OAAgB;AACvB,WAAK,OAAO,MAAM,oBAAoB,KAAK;AAC3C,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,IAAI,KAAa,OAAe,YAAoC;AACxE,QAAI;AACF,YAAM,UAAU,KAAK,OAAO,GAAG;AAC/B,UAAI,YAAY;AACd,cAAM,KAAK,OAAO,MAAM,SAAS,YAAY,KAAK;AAAA,MACpD,OAAO;AACL,cAAM,KAAK,OAAO,IAAI,SAAS,KAAK;AAAA,MACtC;AAAA,IACF,SAAS,OAAgB;AACvB,WAAK,OAAO,MAAM,oBAAoB,KAAK;AAC3C,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,OAAO,KAA4B;AACvC,QAAI;AACF,YAAM,KAAK,OAAO,IAAI,KAAK,OAAO,GAAG,CAAC;AAAA,IACxC,SAAS,OAAgB;AACvB,WAAK,OAAO,MAAM,uBAAuB,KAAK;AAC9C,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI;AACF,YAAM,OAAO,MAAM,KAAK,OAAO,KAAK,GAAG,KAAK,MAAM,GAAG;AACrD,UAAI,KAAK,SAAS,GAAG;AACnB,cAAM,KAAK,OAAO,IAAI,GAAG,IAAI;AAAA,MAC/B;AAAA,IACF,SAAS,OAAgB;AACvB,WAAK,OAAO,MAAM,sBAAsB,KAAK;AAC7C,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,MAAM,aAA4B;AAChC,UAAM,KAAK,OAAO,KAAA;AAAA,EACpB;AAAA,EAEA,YAAY,OAAkD;AAC5D,SAAK,OAAO,YAAY,KAAK;AAAA,EAC/B;AACF;AAEA,SAAS,kBACP,QACA,SACA,kBACa;AACb,QAAM,QAAQ,oBAAA;AAEd,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,MACL;AAAA,IAAA;AAGF,WAAO,0BAAA;AAAA,EACT;AAEA,QAAM,SAAS,IAAI,MAAM;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,QAAQ;AAAA,IACb;AAAA,IACA,gBAAgB,QAAQ;AAAA,IACxB,eAAe,QAAQ;AAAA,IACvB,sBAAsB,QAAQ;AAAA,EAAA,CAC/B;AAEqB;AACpB,WAAO,GAAG,SAAS,CAAC,UAAiB;AACnC,aAAO,MAAM,2BAA2B,KAAK;AAAA,IAC/C,CAAC;AAED,WAAO,GAAG,WAAW,MAAM;AACzB,aAAO,MAAM,iBAAiB;AAAA,IAChC,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEA,SAAS,sBAA+C;AACtD,MAAI,OAAO,YAAY,YAAY;AACjC,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,SAAS,QAAQ,SAAS;AAIhC,QAAI,OAAQ,WAAgC,YAAY;AACtD,aAAO;AAAA,IACT;AAEA,QACE,OAAQ,OAA0C,YAAY,YAC9D;AACA,aAAQ,OAAyC;AAAA,IACnD;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,4BAAyC;AAChD,QAAM,4BAAY,IAAA;AAElB,SAAO;AAAA,IACL,MAAM,IAAI,KAAqC;AAC7C,aAAO,MAAM,IAAI,GAAG,KAAK;AAAA,IAC3B;AAAA,IACA,MAAM,IAAI,KAAa,OAAuC;AAC5D,YAAM,IAAI,KAAK,KAAK;AACpB,aAAO;AAAA,IACT;AAAA,IACA,MAAM,MACJ,KACA,UACA,OACwB;AACxB,YAAM,IAAI,KAAK,KAAK;AACpB,aAAO;AAAA,IACT;AAAA,IACA,MAAM,OAAO,MAAiC;AAC5C,UAAI,UAAU;AACd,iBAAW,OAAO,MAAM;AACtB,YAAI,MAAM,OAAO,GAAG,GAAG;AACrB,qBAAW;AAAA,QACb;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,IACA,MAAM,KAAK,SAAoC;AAC7C,UAAI,QAAQ,SAAS,GAAG,GAAG;AACzB,cAAM,SAAS,QAAQ,MAAM,GAAG,EAAE;AAClC,eAAO,MAAM,KAAK,MAAM,KAAA,CAAM,EAAE,OAAO,CAAA,QAAO,IAAI,WAAW,MAAM,CAAC;AAAA,MACtE;AACA,aAAO,MAAM,IAAI,OAAO,IAAI,CAAC,OAAO,IAAI,CAAA;AAAA,IAC1C;AAAA,IACA,MAAM,OAAsB;AAC1B,YAAM,MAAA;AAAA,IACR;AAAA,IACA,KAAW;AACT;AAAA,IACF;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"standards-sdk.es16.js","sources":["../../src/hcs-7/redis-cache.ts"],"sourcesContent":["import { EVMCache } from './evm-bridge';\nimport { Logger, ILogger } from '../utils/logger';\n\ntype RedisOptions = {\n host: string;\n port: number;\n password?: string;\n db: number;\n tls?: Record<string, unknown>;\n keyPrefix?: string;\n connectTimeout: number;\n retryStrategy?: (times: number) => number | void;\n maxRetriesPerRequest: number;\n};\n\ntype RedisClient = {\n get(key: string): Promise<string | null>;\n set(key: string, value: string): Promise<string | null>;\n setex(key: string, seconds: number, value: string): Promise<string | null>;\n del(...keys: string[]): Promise<number>;\n keys(pattern: string): Promise<string[]>;\n quit(): Promise<void>;\n on(event: 'error' | 'connect', listener: (error?: Error) => void): void;\n};\n\ntype RedisConstructor = new (options: RedisOptions) => RedisClient;\n\ntype NodeRequire = (id: string) => unknown;\n\ndeclare const require: NodeRequire | undefined;\n\nexport interface RedisConfig {\n host?: string;\n port?: number;\n password?: string;\n db?: number;\n keyPrefix?: string;\n tls?: boolean;\n connectTimeout?: number;\n retryStrategy?: (times: number) => number | void;\n logLevel?: 'debug' | 'info' | 'warn' | 'error';\n}\n\nexport class RedisCache implements EVMCache {\n private client: RedisClient;\n private prefix: string;\n private logger: ILogger;\n\n constructor(config: RedisConfig = {}) {\n const {\n host = 'localhost',\n port = 6379,\n password,\n db = 0,\n keyPrefix = '',\n tls = false,\n connectTimeout = 5000,\n retryStrategy,\n logLevel = 'info',\n } = config;\n\n this.prefix = keyPrefix;\n this.logger = Logger.getInstance({\n level: logLevel,\n module: 'RedisCache',\n });\n\n this.client = createRedisClient(\n this.logger,\n {\n host,\n port,\n password,\n db,\n tls: tls ? {} : undefined,\n keyPrefix,\n connectTimeout,\n retryStrategy:\n retryStrategy ||\n (times => {\n const delay = Math.min(times * 50, 2000);\n return delay;\n }),\n maxRetriesPerRequest: 3,\n },\n true,\n );\n }\n\n private getKey(key: string): string {\n return `${this.prefix}${key}`;\n }\n\n async get(key: string): Promise<string | undefined> {\n try {\n const value = await this.client.get(this.getKey(key));\n return value || undefined;\n } catch (error: unknown) {\n this.logger.error('Redis get error:', error);\n throw error;\n }\n }\n\n async set(key: string, value: string, ttlSeconds?: number): Promise<void> {\n try {\n const fullKey = this.getKey(key);\n if (ttlSeconds) {\n await this.client.setex(fullKey, ttlSeconds, value);\n } else {\n await this.client.set(fullKey, value);\n }\n } catch (error: unknown) {\n this.logger.error('Redis set error:', error);\n throw error;\n }\n }\n\n async delete(key: string): Promise<void> {\n try {\n await this.client.del(this.getKey(key));\n } catch (error: unknown) {\n this.logger.error('Redis delete error:', error);\n throw error;\n }\n }\n\n async clear(): Promise<void> {\n try {\n const keys = await this.client.keys(`${this.prefix}*`);\n if (keys.length > 0) {\n await this.client.del(...keys);\n }\n } catch (error: unknown) {\n this.logger.error('Redis clear error:', error);\n throw error;\n }\n }\n\n async disconnect(): Promise<void> {\n await this.client.quit();\n }\n\n setLogLevel(level: 'debug' | 'info' | 'warn' | 'error'): void {\n this.logger.setLogLevel(level);\n }\n}\n\nfunction createRedisClient(\n logger: ILogger,\n options: RedisOptions,\n logConnectEvents: boolean,\n): RedisClient {\n const Redis = getRedisConstructor();\n\n if (!Redis) {\n logger.warn(\n 'ioredis is not installed; RedisCache will use an in-memory cache instead',\n );\n\n return createInMemoryRedisClient();\n }\n\n const client = new Redis({\n host: options.host,\n port: options.port,\n password: options.password,\n db: options.db,\n tls: options.tls,\n keyPrefix: options.keyPrefix,\n connectTimeout: options.connectTimeout,\n retryStrategy: options.retryStrategy,\n maxRetriesPerRequest: options.maxRetriesPerRequest,\n });\n\n if (logConnectEvents) {\n client.on('error', (error: Error) => {\n logger.error('Redis connection error:', error);\n });\n\n client.on('connect', () => {\n logger.debug('Redis connected');\n });\n }\n\n return client;\n}\n\nfunction getRedisConstructor(): RedisConstructor | null {\n if (typeof require !== 'function') {\n return null;\n }\n\n try {\n const loaded = require('ioredis') as\n | RedisConstructor\n | { default: RedisConstructor };\n\n if (typeof (loaded as RedisConstructor) === 'function') {\n return loaded as RedisConstructor;\n }\n\n if (\n typeof (loaded as { default?: RedisConstructor }).default === 'function'\n ) {\n return (loaded as { default: RedisConstructor }).default;\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nfunction createInMemoryRedisClient(): RedisClient {\n const store = new Map<string, string>();\n\n return {\n async get(key: string): Promise<string | null> {\n return store.get(key) ?? null;\n },\n async set(key: string, value: string): Promise<string | null> {\n store.set(key, value);\n return 'OK';\n },\n async setex(\n key: string,\n _seconds: number,\n value: string,\n ): Promise<string | null> {\n store.set(key, value);\n return 'OK';\n },\n async del(...keys: string[]): Promise<number> {\n let deleted = 0;\n for (const key of keys) {\n if (store.delete(key)) {\n deleted += 1;\n }\n }\n return deleted;\n },\n async keys(pattern: string): Promise<string[]> {\n if (pattern.endsWith('*')) {\n const prefix = pattern.slice(0, -1);\n return Array.from(store.keys()).filter(key => key.startsWith(prefix));\n }\n return store.has(pattern) ? [pattern] : [];\n },\n async quit(): Promise<void> {\n store.clear();\n },\n on(): void {\n return;\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ import "viem/accounts";
13
13
  import "viem/chains";
14
14
  import "x402-axios";
15
15
  import "x402/types";
16
- import "./standards-sdk.es131.js";
16
+ import "./standards-sdk.es133.js";
17
17
  import "zod";
18
18
  import { buildHcs10SubmitConnectionRequestTx, buildHcs10OutboundConnectionRequestRecordTx, buildHcs10OutboundConnectionCreatedRecordTx } from "./standards-sdk.es23.js";
19
19
  import { HRLResolver } from "./standards-sdk.es103.js";
@@ -16,7 +16,7 @@ import "viem/accounts";
16
16
  import "viem/chains";
17
17
  import "x402-axios";
18
18
  import "x402/types";
19
- import "./standards-sdk.es131.js";
19
+ import "./standards-sdk.es133.js";
20
20
  import "zod";
21
21
  import "buffer";
22
22
  import "ethers";