@hashgraphonline/standards-sdk 0.1.146-chore-jsr-improvements.canary.6bc8731.90 → 0.1.146-chore-jsr-improvements.canary.01d3174.92

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 (142) hide show
  1. package/dist/cjs/jsr-entry.d.ts +30 -10
  2. package/dist/cjs/jsr-entry.d.ts.map +1 -1
  3. package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
  4. package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
  5. package/dist/cjs/services/registry-broker/client/search-helpers.d.ts +16 -0
  6. package/dist/cjs/services/registry-broker/client/search-helpers.d.ts.map +1 -0
  7. package/dist/cjs/services/registry-broker/client/search.d.ts +5 -18
  8. package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -1
  9. package/dist/cjs/standards-sdk.cjs +1 -1
  10. package/dist/cjs/standards-sdk.cjs.map +1 -1
  11. package/dist/es/jsr-entry.d.ts +30 -10
  12. package/dist/es/jsr-entry.d.ts.map +1 -1
  13. package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
  14. package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
  15. package/dist/es/services/registry-broker/client/search-helpers.d.ts +16 -0
  16. package/dist/es/services/registry-broker/client/search-helpers.d.ts.map +1 -0
  17. package/dist/es/services/registry-broker/client/search.d.ts +5 -18
  18. package/dist/es/services/registry-broker/client/search.d.ts.map +1 -1
  19. package/dist/es/standards-sdk.es.js +9 -10
  20. package/dist/es/standards-sdk.es.js.map +1 -1
  21. package/dist/es/standards-sdk.es101.js +1 -1
  22. package/dist/es/standards-sdk.es103.js +1 -1
  23. package/dist/es/standards-sdk.es109.js +2 -3
  24. package/dist/es/standards-sdk.es109.js.map +1 -1
  25. package/dist/es/standards-sdk.es11.js +1 -1
  26. package/dist/es/standards-sdk.es110.js +5 -5
  27. package/dist/es/standards-sdk.es12.js +1 -1
  28. package/dist/es/standards-sdk.es120.js +1 -1
  29. package/dist/es/standards-sdk.es121.js +1 -1
  30. package/dist/es/standards-sdk.es122.js +5 -5
  31. package/dist/es/standards-sdk.es124.js +1 -1
  32. package/dist/es/standards-sdk.es125.js +1 -1
  33. package/dist/es/standards-sdk.es127.js +3 -3
  34. package/dist/es/standards-sdk.es128.js +61 -164
  35. package/dist/es/standards-sdk.es128.js.map +1 -1
  36. package/dist/es/standards-sdk.es129.js +102 -85
  37. package/dist/es/standards-sdk.es129.js.map +1 -1
  38. package/dist/es/standards-sdk.es130.js +222 -96
  39. package/dist/es/standards-sdk.es130.js.map +1 -1
  40. package/dist/es/standards-sdk.es131.js +153 -220
  41. package/dist/es/standards-sdk.es131.js.map +1 -1
  42. package/dist/es/standards-sdk.es132.js +104 -162
  43. package/dist/es/standards-sdk.es132.js.map +1 -1
  44. package/dist/es/standards-sdk.es133.js +296 -92
  45. package/dist/es/standards-sdk.es133.js.map +1 -1
  46. package/dist/es/standards-sdk.es134.js +587 -288
  47. package/dist/es/standards-sdk.es134.js.map +1 -1
  48. package/dist/es/standards-sdk.es135.js +14 -461
  49. package/dist/es/standards-sdk.es135.js.map +1 -1
  50. package/dist/es/standards-sdk.es136.js +79 -15
  51. package/dist/es/standards-sdk.es136.js.map +1 -1
  52. package/dist/es/standards-sdk.es137.js +77 -71
  53. package/dist/es/standards-sdk.es137.js.map +1 -1
  54. package/dist/es/standards-sdk.es138.js +53 -80
  55. package/dist/es/standards-sdk.es138.js.map +1 -1
  56. package/dist/es/standards-sdk.es139.js +152 -53
  57. package/dist/es/standards-sdk.es139.js.map +1 -1
  58. package/dist/es/standards-sdk.es140.js +7 -159
  59. package/dist/es/standards-sdk.es140.js.map +1 -1
  60. package/dist/es/standards-sdk.es141.js +86 -7
  61. package/dist/es/standards-sdk.es141.js.map +1 -1
  62. package/dist/es/standards-sdk.es142.js +43 -64
  63. package/dist/es/standards-sdk.es142.js.map +1 -1
  64. package/dist/es/standards-sdk.es143.js +30 -65
  65. package/dist/es/standards-sdk.es143.js.map +1 -1
  66. package/dist/es/standards-sdk.es144.js +34 -30
  67. package/dist/es/standards-sdk.es144.js.map +1 -1
  68. package/dist/es/standards-sdk.es145.js +28 -34
  69. package/dist/es/standards-sdk.es145.js.map +1 -1
  70. package/dist/es/standards-sdk.es146.js +138 -28
  71. package/dist/es/standards-sdk.es146.js.map +1 -1
  72. package/dist/es/standards-sdk.es147.js +34 -12281
  73. package/dist/es/standards-sdk.es147.js.map +1 -1
  74. package/dist/es/standards-sdk.es148.js +17 -959
  75. package/dist/es/standards-sdk.es148.js.map +1 -1
  76. package/dist/es/standards-sdk.es149.js +12256 -105
  77. package/dist/es/standards-sdk.es149.js.map +1 -1
  78. package/dist/es/standards-sdk.es150.js +959 -42
  79. package/dist/es/standards-sdk.es150.js.map +1 -1
  80. package/dist/es/standards-sdk.es151.js +54 -15
  81. package/dist/es/standards-sdk.es151.js.map +1 -1
  82. package/dist/es/standards-sdk.es152.js +76 -48
  83. package/dist/es/standards-sdk.es152.js.map +1 -1
  84. package/dist/es/standards-sdk.es153.js +160 -72
  85. package/dist/es/standards-sdk.es153.js.map +1 -1
  86. package/dist/es/standards-sdk.es154.js +289 -139
  87. package/dist/es/standards-sdk.es154.js.map +1 -1
  88. package/dist/es/standards-sdk.es155.js +298 -274
  89. package/dist/es/standards-sdk.es155.js.map +1 -1
  90. package/dist/es/standards-sdk.es156.js +369 -262
  91. package/dist/es/standards-sdk.es156.js.map +1 -1
  92. package/dist/es/standards-sdk.es157.js +194 -316
  93. package/dist/es/standards-sdk.es157.js.map +1 -1
  94. package/dist/es/standards-sdk.es158.js +64 -319
  95. package/dist/es/standards-sdk.es158.js.map +1 -1
  96. package/dist/es/standards-sdk.es159.js +231 -68
  97. package/dist/es/standards-sdk.es159.js.map +1 -1
  98. package/dist/es/standards-sdk.es16.js +2 -3
  99. package/dist/es/standards-sdk.es16.js.map +1 -1
  100. package/dist/es/standards-sdk.es160.js +223 -218
  101. package/dist/es/standards-sdk.es160.js.map +1 -1
  102. package/dist/es/standards-sdk.es18.js +5 -6
  103. package/dist/es/standards-sdk.es18.js.map +1 -1
  104. package/dist/es/standards-sdk.es19.js +3 -4
  105. package/dist/es/standards-sdk.es19.js.map +1 -1
  106. package/dist/es/standards-sdk.es22.js +1 -1
  107. package/dist/es/standards-sdk.es27.js +5 -6
  108. package/dist/es/standards-sdk.es27.js.map +1 -1
  109. package/dist/es/standards-sdk.es30.js +1 -1
  110. package/dist/es/standards-sdk.es31.js +1 -1
  111. package/dist/es/standards-sdk.es35.js +3 -4
  112. package/dist/es/standards-sdk.es35.js.map +1 -1
  113. package/dist/es/standards-sdk.es36.js +3 -3
  114. package/dist/es/standards-sdk.es37.js +1 -1
  115. package/dist/es/standards-sdk.es4.js +1 -1
  116. package/dist/es/standards-sdk.es53.js +1 -1
  117. package/dist/es/standards-sdk.es56.js +1 -1
  118. package/dist/es/standards-sdk.es58.js +1 -1
  119. package/dist/es/standards-sdk.es59.js +1 -1
  120. package/dist/es/standards-sdk.es60.js +3 -4
  121. package/dist/es/standards-sdk.es60.js.map +1 -1
  122. package/dist/es/standards-sdk.es62.js +1 -1
  123. package/dist/es/standards-sdk.es64.js +1 -1
  124. package/dist/es/standards-sdk.es65.js +2 -2
  125. package/dist/es/standards-sdk.es68.js +2 -2
  126. package/dist/es/standards-sdk.es69.js +1 -1
  127. package/dist/es/standards-sdk.es7.js +1 -1
  128. package/dist/es/standards-sdk.es71.js +1 -1
  129. package/dist/es/standards-sdk.es76.js +1 -1
  130. package/dist/es/standards-sdk.es77.js +2 -3
  131. package/dist/es/standards-sdk.es77.js.map +1 -1
  132. package/dist/es/standards-sdk.es78.js +1 -1
  133. package/dist/es/standards-sdk.es81.js +1 -1
  134. package/dist/es/standards-sdk.es83.js +1 -1
  135. package/dist/es/standards-sdk.es87.js +3 -3
  136. package/dist/es/standards-sdk.es91.js +1 -1
  137. package/dist/es/standards-sdk.es92.js +1 -1
  138. package/dist/es/standards-sdk.es97.js +1 -1
  139. package/dist/es/standards-sdk.es99.js +1 -1
  140. package/package.json +1 -1
  141. package/dist/es/standards-sdk.es161.js +0 -247
  142. package/dist/es/standards-sdk.es161.js.map +0 -1
@@ -1,89 +1,68 @@
1
1
  import { Logger } from "./standards-sdk.es105.js";
2
- class ContentResolverRegistryImpl {
2
+ const REFERENCE_THRESHOLD = 50 * 1024;
3
+ class ContentStoreServiceImpl {
3
4
  constructor() {
4
- this.resolver = null;
5
- this.onUnavailableCallbacks = [];
6
- this.logger = Logger.getInstance({ module: "ContentResolverRegistry" });
5
+ this.contentStore = null;
6
+ this.logger = Logger.getInstance({ module: "ContentStoreService" });
7
7
  }
8
8
  static getInstance() {
9
- if (!ContentResolverRegistryImpl._instance) {
10
- ContentResolverRegistryImpl._instance = new ContentResolverRegistryImpl();
9
+ if (!ContentStoreServiceImpl._instance) {
10
+ ContentStoreServiceImpl._instance = new ContentStoreServiceImpl();
11
11
  }
12
- return ContentResolverRegistryImpl._instance;
12
+ return ContentStoreServiceImpl._instance;
13
13
  }
14
14
  /**
15
- * Register a content resolver (typically called by ContentStoreManager)
15
+ * Set the content store instance
16
16
  */
17
- register(resolver) {
18
- if (this.resolver) {
19
- this.logger.warn("Resolver already registered, replacing existing");
17
+ async setInstance(store) {
18
+ if (this.contentStore) {
19
+ this.logger.warn("Content store already set, replacing");
20
20
  }
21
- this.resolver = resolver;
22
- this.logger.info("Content resolver registered");
21
+ this.contentStore = store;
22
+ this.logger.info("Content store instance set");
23
23
  }
24
24
  /**
25
- * Get the registered content resolver
25
+ * Get the content store instance
26
26
  */
27
- getResolver() {
28
- return this.resolver;
27
+ getInstance() {
28
+ return this.contentStore;
29
29
  }
30
30
  /**
31
- * Check if a resolver is available
31
+ * Clear the content store instance
32
32
  */
33
- isAvailable() {
34
- return this.resolver !== null;
33
+ dispose() {
34
+ this.contentStore = null;
35
+ this.logger.info("Content store disposed");
35
36
  }
36
37
  /**
37
- * Unregister the current resolver
38
+ * Check if content store is available
38
39
  */
39
- unregister() {
40
- if (this.resolver) {
41
- this.resolver = null;
42
- this.logger.info("Content resolver unregistered");
43
- this.onUnavailableCallbacks.forEach((callback) => {
44
- try {
45
- callback();
46
- } catch (error) {
47
- this.logger.error("Error in unavailable callback:", error);
48
- }
49
- });
50
- }
51
- }
52
- /**
53
- * Register callback for when resolver becomes unavailable
54
- */
55
- onUnavailable(callback) {
56
- this.onUnavailableCallbacks.push(callback);
40
+ isAvailable() {
41
+ return this.contentStore !== null;
57
42
  }
58
- /**
59
- * Remove unavailable callback
60
- */
61
- offUnavailable(callback) {
62
- const index = this.onUnavailableCallbacks.indexOf(callback);
63
- if (index !== -1) {
64
- this.onUnavailableCallbacks.splice(index, 1);
65
- }
43
+ }
44
+ function extractReferenceId(input) {
45
+ const trimmed = input.trim();
46
+ const exactMatch = trimmed.match(/^content-ref:([a-f0-9]+)$/);
47
+ if (exactMatch) {
48
+ return exactMatch[1];
66
49
  }
67
- /**
68
- * Execute operation with resolver or fallback
69
- */
70
- async withResolver(operation, fallback) {
71
- if (this.resolver) {
72
- try {
73
- return await operation(this.resolver);
74
- } catch (error) {
75
- this.logger.warn("Resolver operation failed, using fallback:", error);
76
- return await fallback();
77
- }
78
- } else {
79
- this.logger.warn("No resolver available, using fallback");
80
- return await fallback();
81
- }
50
+ const embeddedMatch = trimmed.match(/content-ref:([a-f0-9]+)/);
51
+ if (embeddedMatch) {
52
+ return embeddedMatch[1];
82
53
  }
54
+ return null;
55
+ }
56
+ function shouldUseReference(content) {
57
+ const size = typeof content === "string" ? Buffer.byteLength(content, "utf8") : content.length;
58
+ return size > REFERENCE_THRESHOLD;
83
59
  }
84
- const ContentResolverRegistry = ContentResolverRegistryImpl.getInstance();
60
+ const ContentStoreService = ContentStoreServiceImpl.getInstance();
85
61
  export {
86
- ContentResolverRegistry,
87
- ContentResolverRegistryImpl
62
+ ContentStoreService,
63
+ ContentStoreServiceImpl,
64
+ REFERENCE_THRESHOLD,
65
+ extractReferenceId,
66
+ shouldUseReference
88
67
  };
89
68
  //# sourceMappingURL=standards-sdk.es142.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es142.js","sources":["../../src/content-store/ContentResolverRegistry.ts"],"sourcesContent":["/**\n * Content Resolver Registry\n *\n * Dependency injection registry for content resolvers.\n * Allows tools to access content resolution without circular dependencies.\n */\n\nimport type { ContentResolverInterface } from './types';\nimport { Logger } from '../utils/logger';\n\nexport class ContentResolverRegistryImpl {\n private static _instance: ContentResolverRegistryImpl;\n private resolver: ContentResolverInterface | null = null;\n private onUnavailableCallbacks: (() => void)[] = [];\n private logger = Logger.getInstance({ module: 'ContentResolverRegistry' });\n\n static getInstance(): ContentResolverRegistryImpl {\n if (!ContentResolverRegistryImpl._instance) {\n ContentResolverRegistryImpl._instance = new ContentResolverRegistryImpl();\n }\n return ContentResolverRegistryImpl._instance;\n }\n\n /**\n * Register a content resolver (typically called by ContentStoreManager)\n */\n register(resolver: ContentResolverInterface): void {\n if (this.resolver) {\n this.logger.warn('Resolver already registered, replacing existing');\n }\n this.resolver = resolver;\n this.logger.info('Content resolver registered');\n }\n\n /**\n * Get the registered content resolver\n */\n getResolver(): ContentResolverInterface | null {\n return this.resolver;\n }\n\n /**\n * Check if a resolver is available\n */\n isAvailable(): boolean {\n return this.resolver !== null;\n }\n\n /**\n * Unregister the current resolver\n */\n unregister(): void {\n if (this.resolver) {\n this.resolver = null;\n this.logger.info('Content resolver unregistered');\n this.onUnavailableCallbacks.forEach(callback => {\n try {\n callback();\n } catch (error) {\n this.logger.error('Error in unavailable callback:', error);\n }\n });\n }\n }\n\n /**\n * Register callback for when resolver becomes unavailable\n */\n onUnavailable(callback: () => void): void {\n this.onUnavailableCallbacks.push(callback);\n }\n\n /**\n * Remove unavailable callback\n */\n offUnavailable(callback: () => void): void {\n const index = this.onUnavailableCallbacks.indexOf(callback);\n if (index !== -1) {\n this.onUnavailableCallbacks.splice(index, 1);\n }\n }\n\n /**\n * Execute operation with resolver or fallback\n */\n async withResolver<T>(\n operation: (resolver: ContentResolverInterface) => Promise<T>,\n fallback: () => Promise<T>,\n ): Promise<T> {\n if (this.resolver) {\n try {\n return await operation(this.resolver);\n } catch (error) {\n this.logger.warn('Resolver operation failed, using fallback:', error);\n return await fallback();\n }\n } else {\n this.logger.warn('No resolver available, using fallback');\n return await fallback();\n }\n }\n}\n\nexport const ContentResolverRegistry =\n ContentResolverRegistryImpl.getInstance();\n"],"names":[],"mappings":";AAUO,MAAM,4BAA4B;AAAA,EAAlC,cAAA;AAEL,SAAQ,WAA4C;AACpD,SAAQ,yBAAyC,CAAA;AACjD,SAAQ,SAAS,OAAO,YAAY,EAAE,QAAQ,2BAA2B;AAAA,EAAA;AAAA,EAEzE,OAAO,cAA2C;AAChD,QAAI,CAAC,4BAA4B,WAAW;AAC1C,kCAA4B,YAAY,IAAI,4BAAA;AAAA,IAC9C;AACA,WAAO,4BAA4B;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,UAA0C;AACjD,QAAI,KAAK,UAAU;AACjB,WAAK,OAAO,KAAK,iDAAiD;AAAA,IACpE;AACA,SAAK,WAAW;AAChB,SAAK,OAAO,KAAK,6BAA6B;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,cAA+C;AAC7C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,cAAuB;AACrB,WAAO,KAAK,aAAa;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,QAAI,KAAK,UAAU;AACjB,WAAK,WAAW;AAChB,WAAK,OAAO,KAAK,+BAA+B;AAChD,WAAK,uBAAuB,QAAQ,CAAA,aAAY;AAC9C,YAAI;AACF,mBAAA;AAAA,QACF,SAAS,OAAO;AACd,eAAK,OAAO,MAAM,kCAAkC,KAAK;AAAA,QAC3D;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,UAA4B;AACxC,SAAK,uBAAuB,KAAK,QAAQ;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,UAA4B;AACzC,UAAM,QAAQ,KAAK,uBAAuB,QAAQ,QAAQ;AAC1D,QAAI,UAAU,IAAI;AAChB,WAAK,uBAAuB,OAAO,OAAO,CAAC;AAAA,IAC7C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,aACJ,WACA,UACY;AACZ,QAAI,KAAK,UAAU;AACjB,UAAI;AACF,eAAO,MAAM,UAAU,KAAK,QAAQ;AAAA,MACtC,SAAS,OAAO;AACd,aAAK,OAAO,KAAK,8CAA8C,KAAK;AACpE,eAAO,MAAM,SAAA;AAAA,MACf;AAAA,IACF,OAAO;AACL,WAAK,OAAO,KAAK,uCAAuC;AACxD,aAAO,MAAM,SAAA;AAAA,IACf;AAAA,EACF;AACF;AAEO,MAAM,0BACX,4BAA4B,YAAA;"}
1
+ {"version":3,"file":"standards-sdk.es142.js","sources":["../../src/content-store/ContentStoreService.ts"],"sourcesContent":["/**\n * Content Store Service\n *\n * Provides utility functions for content storage and reference handling.\n */\n\nimport type { ContentStoreInterface } from './types';\nimport { Logger } from '../utils/logger';\n\n/**\n * Maximum content size before using references (50KB)\n */\nexport const REFERENCE_THRESHOLD = 50 * 1024;\n\n/**\n * Content store service for managing large content\n */\nexport class ContentStoreServiceImpl {\n private static _instance: ContentStoreServiceImpl;\n private contentStore: ContentStoreInterface | null = null;\n private logger = Logger.getInstance({ module: 'ContentStoreService' });\n\n static getInstance(): ContentStoreServiceImpl {\n if (!ContentStoreServiceImpl._instance) {\n ContentStoreServiceImpl._instance = new ContentStoreServiceImpl();\n }\n return ContentStoreServiceImpl._instance;\n }\n\n /**\n * Set the content store instance\n */\n async setInstance(store: ContentStoreInterface): Promise<void> {\n if (this.contentStore) {\n this.logger.warn('Content store already set, replacing');\n }\n this.contentStore = store;\n this.logger.info('Content store instance set');\n }\n\n /**\n * Get the content store instance\n */\n getInstance(): ContentStoreInterface | null {\n return this.contentStore;\n }\n\n /**\n * Clear the content store instance\n */\n dispose(): void {\n this.contentStore = null;\n this.logger.info('Content store disposed');\n }\n\n /**\n * Check if content store is available\n */\n isAvailable(): boolean {\n return this.contentStore !== null;\n }\n}\n\n/**\n * Extract reference ID from input string\n */\nexport function extractReferenceId(input: string): string | null {\n const trimmed = input.trim();\n\n const exactMatch = trimmed.match(/^content-ref:([a-f0-9]+)$/);\n if (exactMatch) {\n return exactMatch[1];\n }\n\n const embeddedMatch = trimmed.match(/content-ref:([a-f0-9]+)/);\n if (embeddedMatch) {\n return embeddedMatch[1];\n }\n\n return null;\n}\n\n/**\n * Check if content should use reference based on size\n */\nexport function shouldUseReference(content: string | Buffer): boolean {\n const size =\n typeof content === 'string'\n ? Buffer.byteLength(content, 'utf8')\n : content.length;\n\n return size > REFERENCE_THRESHOLD;\n}\n\nexport const ContentStoreService = ContentStoreServiceImpl.getInstance();\n"],"names":[],"mappings":";AAYO,MAAM,sBAAsB,KAAK;AAKjC,MAAM,wBAAwB;AAAA,EAA9B,cAAA;AAEL,SAAQ,eAA6C;AACrD,SAAQ,SAAS,OAAO,YAAY,EAAE,QAAQ,uBAAuB;AAAA,EAAA;AAAA,EAErE,OAAO,cAAuC;AAC5C,QAAI,CAAC,wBAAwB,WAAW;AACtC,8BAAwB,YAAY,IAAI,wBAAA;AAAA,IAC1C;AACA,WAAO,wBAAwB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAY,OAA6C;AAC7D,QAAI,KAAK,cAAc;AACrB,WAAK,OAAO,KAAK,sCAAsC;AAAA,IACzD;AACA,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,4BAA4B;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,cAA4C;AAC1C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,UAAgB;AACd,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,wBAAwB;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,cAAuB;AACrB,WAAO,KAAK,iBAAiB;AAAA,EAC/B;AACF;AAKO,SAAS,mBAAmB,OAA8B;AAC/D,QAAM,UAAU,MAAM,KAAA;AAEtB,QAAM,aAAa,QAAQ,MAAM,2BAA2B;AAC5D,MAAI,YAAY;AACd,WAAO,WAAW,CAAC;AAAA,EACrB;AAEA,QAAM,gBAAgB,QAAQ,MAAM,yBAAyB;AAC7D,MAAI,eAAe;AACjB,WAAO,cAAc,CAAC;AAAA,EACxB;AAEA,SAAO;AACT;AAKO,SAAS,mBAAmB,SAAmC;AACpE,QAAM,OACJ,OAAO,YAAY,WACf,OAAO,WAAW,SAAS,MAAM,IACjC,QAAQ;AAEd,SAAO,OAAO;AAChB;AAEO,MAAM,sBAAsB,wBAAwB,YAAA;"}
@@ -1,68 +1,33 @@
1
- import { Logger } from "./standards-sdk.es105.js";
2
- const REFERENCE_THRESHOLD = 50 * 1024;
3
- class ContentStoreServiceImpl {
4
- constructor() {
5
- this.contentStore = null;
6
- this.logger = Logger.getInstance({ module: "ContentStoreService" });
7
- }
8
- static getInstance() {
9
- if (!ContentStoreServiceImpl._instance) {
10
- ContentStoreServiceImpl._instance = new ContentStoreServiceImpl();
11
- }
12
- return ContentStoreServiceImpl._instance;
13
- }
14
- /**
15
- * Set the content store instance
16
- */
17
- async setInstance(store) {
18
- if (this.contentStore) {
19
- this.logger.warn("Content store already set, replacing");
20
- }
21
- this.contentStore = store;
22
- this.logger.info("Content store instance set");
23
- }
24
- /**
25
- * Get the content store instance
26
- */
27
- getInstance() {
28
- return this.contentStore;
29
- }
30
- /**
31
- * Clear the content store instance
32
- */
33
- dispose() {
34
- this.contentStore = null;
35
- this.logger.info("Content store disposed");
36
- }
37
- /**
38
- * Check if content store is available
39
- */
40
- isAvailable() {
41
- return this.contentStore !== null;
42
- }
43
- }
44
- function extractReferenceId(input) {
45
- const trimmed = input.trim();
46
- const exactMatch = trimmed.match(/^content-ref:([a-f0-9]+)$/);
47
- if (exactMatch) {
48
- return exactMatch[1];
49
- }
50
- const embeddedMatch = trimmed.match(/content-ref:([a-f0-9]+)/);
51
- if (embeddedMatch) {
52
- return embeddedMatch[1];
53
- }
54
- return null;
55
- }
56
- function shouldUseReference(content) {
57
- const size = typeof content === "string" ? Buffer.byteLength(content, "utf8") : content.length;
58
- return size > REFERENCE_THRESHOLD;
59
- }
60
- const ContentStoreService = ContentStoreServiceImpl.getInstance();
1
+ import { HCS10BaseClient, HCS10Cache, Hcs10MemoType } from "./standards-sdk.es16.js";
2
+ import { AccountCreationError, ConnectionConfirmationError, PayloadSizeError, TopicCreationError } from "./standards-sdk.es17.js";
3
+ import { HCS10Client } from "./standards-sdk.es18.js";
4
+ import { BrowserHCSClient } from "./standards-sdk.es19.js";
5
+ import { Registration } from "./standards-sdk.es20.js";
6
+ import { ConnectionsManager } from "./standards-sdk.es21.js";
7
+ import { buildHcs10ConfirmConnectionTx, buildHcs10CreateConnectionTopicTx, buildHcs10CreateInboundTopicTx, buildHcs10CreateOutboundTopicTx, buildHcs10CreateRegistryTopicTx, buildHcs10OutboundConnectionCreatedRecordTx, buildHcs10OutboundConnectionRequestRecordTx, buildHcs10RegistryDeleteTx, buildHcs10RegistryMigrateTx, buildHcs10RegistryRegisterTx, buildHcs10SendMessageTx, buildHcs10SubmitConnectionRequestTx } from "./standards-sdk.es22.js";
61
8
  export {
62
- ContentStoreService,
63
- ContentStoreServiceImpl,
64
- REFERENCE_THRESHOLD,
65
- extractReferenceId,
66
- shouldUseReference
9
+ AccountCreationError,
10
+ BrowserHCSClient,
11
+ ConnectionConfirmationError,
12
+ ConnectionsManager,
13
+ HCS10BaseClient,
14
+ HCS10Cache,
15
+ HCS10Client,
16
+ Hcs10MemoType,
17
+ PayloadSizeError,
18
+ Registration,
19
+ TopicCreationError,
20
+ buildHcs10ConfirmConnectionTx,
21
+ buildHcs10CreateConnectionTopicTx,
22
+ buildHcs10CreateInboundTopicTx,
23
+ buildHcs10CreateOutboundTopicTx,
24
+ buildHcs10CreateRegistryTopicTx,
25
+ buildHcs10OutboundConnectionCreatedRecordTx,
26
+ buildHcs10OutboundConnectionRequestRecordTx,
27
+ buildHcs10RegistryDeleteTx,
28
+ buildHcs10RegistryMigrateTx,
29
+ buildHcs10RegistryRegisterTx,
30
+ buildHcs10SendMessageTx,
31
+ buildHcs10SubmitConnectionRequestTx
67
32
  };
68
33
  //# sourceMappingURL=standards-sdk.es143.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es143.js","sources":["../../src/content-store/ContentStoreService.ts"],"sourcesContent":["/**\n * Content Store Service\n *\n * Provides utility functions for content storage and reference handling.\n */\n\nimport type { ContentStoreInterface } from './types';\nimport { Logger } from '../utils/logger';\n\n/**\n * Maximum content size before using references (50KB)\n */\nexport const REFERENCE_THRESHOLD = 50 * 1024;\n\n/**\n * Content store service for managing large content\n */\nexport class ContentStoreServiceImpl {\n private static _instance: ContentStoreServiceImpl;\n private contentStore: ContentStoreInterface | null = null;\n private logger = Logger.getInstance({ module: 'ContentStoreService' });\n\n static getInstance(): ContentStoreServiceImpl {\n if (!ContentStoreServiceImpl._instance) {\n ContentStoreServiceImpl._instance = new ContentStoreServiceImpl();\n }\n return ContentStoreServiceImpl._instance;\n }\n\n /**\n * Set the content store instance\n */\n async setInstance(store: ContentStoreInterface): Promise<void> {\n if (this.contentStore) {\n this.logger.warn('Content store already set, replacing');\n }\n this.contentStore = store;\n this.logger.info('Content store instance set');\n }\n\n /**\n * Get the content store instance\n */\n getInstance(): ContentStoreInterface | null {\n return this.contentStore;\n }\n\n /**\n * Clear the content store instance\n */\n dispose(): void {\n this.contentStore = null;\n this.logger.info('Content store disposed');\n }\n\n /**\n * Check if content store is available\n */\n isAvailable(): boolean {\n return this.contentStore !== null;\n }\n}\n\n/**\n * Extract reference ID from input string\n */\nexport function extractReferenceId(input: string): string | null {\n const trimmed = input.trim();\n\n const exactMatch = trimmed.match(/^content-ref:([a-f0-9]+)$/);\n if (exactMatch) {\n return exactMatch[1];\n }\n\n const embeddedMatch = trimmed.match(/content-ref:([a-f0-9]+)/);\n if (embeddedMatch) {\n return embeddedMatch[1];\n }\n\n return null;\n}\n\n/**\n * Check if content should use reference based on size\n */\nexport function shouldUseReference(content: string | Buffer): boolean {\n const size =\n typeof content === 'string'\n ? Buffer.byteLength(content, 'utf8')\n : content.length;\n\n return size > REFERENCE_THRESHOLD;\n}\n\nexport const ContentStoreService = ContentStoreServiceImpl.getInstance();\n"],"names":[],"mappings":";AAYO,MAAM,sBAAsB,KAAK;AAKjC,MAAM,wBAAwB;AAAA,EAA9B,cAAA;AAEL,SAAQ,eAA6C;AACrD,SAAQ,SAAS,OAAO,YAAY,EAAE,QAAQ,uBAAuB;AAAA,EAAA;AAAA,EAErE,OAAO,cAAuC;AAC5C,QAAI,CAAC,wBAAwB,WAAW;AACtC,8BAAwB,YAAY,IAAI,wBAAA;AAAA,IAC1C;AACA,WAAO,wBAAwB;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAY,OAA6C;AAC7D,QAAI,KAAK,cAAc;AACrB,WAAK,OAAO,KAAK,sCAAsC;AAAA,IACzD;AACA,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,4BAA4B;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,cAA4C;AAC1C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,UAAgB;AACd,SAAK,eAAe;AACpB,SAAK,OAAO,KAAK,wBAAwB;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,cAAuB;AACrB,WAAO,KAAK,iBAAiB;AAAA,EAC/B;AACF;AAKO,SAAS,mBAAmB,OAA8B;AAC/D,QAAM,UAAU,MAAM,KAAA;AAEtB,QAAM,aAAa,QAAQ,MAAM,2BAA2B;AAC5D,MAAI,YAAY;AACd,WAAO,WAAW,CAAC;AAAA,EACrB;AAEA,QAAM,gBAAgB,QAAQ,MAAM,yBAAyB;AAC7D,MAAI,eAAe;AACjB,WAAO,cAAc,CAAC;AAAA,EACxB;AAEA,SAAO;AACT;AAKO,SAAS,mBAAmB,SAAmC;AACpE,QAAM,OACJ,OAAO,YAAY,WACf,OAAO,WAAW,SAAS,MAAM,IACjC,QAAQ;AAEd,SAAO,OAAO;AAChB;AAEO,MAAM,sBAAsB,wBAAwB,YAAA;"}
1
+ {"version":3,"file":"standards-sdk.es143.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,33 +1,37 @@
1
- import { HCS10BaseClient, HCS10Cache, Hcs10MemoType } from "./standards-sdk.es16.js";
2
- import { AccountCreationError, ConnectionConfirmationError, PayloadSizeError, TopicCreationError } from "./standards-sdk.es17.js";
3
- import { HCS10Client } from "./standards-sdk.es18.js";
4
- import { BrowserHCSClient } from "./standards-sdk.es19.js";
5
- import { Registration } from "./standards-sdk.es20.js";
6
- import { ConnectionsManager } from "./standards-sdk.es21.js";
7
- import { buildHcs10ConfirmConnectionTx, buildHcs10CreateConnectionTopicTx, buildHcs10CreateInboundTopicTx, buildHcs10CreateOutboundTopicTx, buildHcs10CreateRegistryTopicTx, buildHcs10OutboundConnectionCreatedRecordTx, buildHcs10OutboundConnectionRequestRecordTx, buildHcs10RegistryDeleteTx, buildHcs10RegistryMigrateTx, buildHcs10RegistryRegisterTx, buildHcs10SendMessageTx, buildHcs10SubmitConnectionRequestTx } from "./standards-sdk.es22.js";
1
+ import { AgentBuilder } from "./standards-sdk.es23.js";
2
+ import { PersonBuilder } from "./standards-sdk.es24.js";
3
+ import { MCPServerBuilder } from "./standards-sdk.es25.js";
4
+ import { FloraBuilder } from "./standards-sdk.es26.js";
5
+ import { AIAgentDetailsSchema, AIAgentProfileSchema, BaseProfileSchema, HCS11Client, HCS11ProfileSchema, MCPServerConnectionInfoSchema, MCPServerDetailsSchema, MCPServerHostSchema, MCPServerProfileSchema, MCPServerResourceSchema, MCPServerToolSchema, MCPServerVerificationSchema, PersonalProfileSchema, SocialLinkSchema } from "./standards-sdk.es27.js";
6
+ import { AIAgentCapability, AIAgentType, EndpointType, InboundTopicType, MCPServerCapability, ProfileType, SUPPORTED_SOCIAL_PLATFORMS, VerificationType, capabilityNameToCapabilityMap, mcpServiceNameToCapabilityMap } from "./standards-sdk.es28.js";
8
7
  export {
9
- AccountCreationError,
10
- BrowserHCSClient,
11
- ConnectionConfirmationError,
12
- ConnectionsManager,
13
- HCS10BaseClient,
14
- HCS10Cache,
15
- HCS10Client,
16
- Hcs10MemoType,
17
- PayloadSizeError,
18
- Registration,
19
- TopicCreationError,
20
- buildHcs10ConfirmConnectionTx,
21
- buildHcs10CreateConnectionTopicTx,
22
- buildHcs10CreateInboundTopicTx,
23
- buildHcs10CreateOutboundTopicTx,
24
- buildHcs10CreateRegistryTopicTx,
25
- buildHcs10OutboundConnectionCreatedRecordTx,
26
- buildHcs10OutboundConnectionRequestRecordTx,
27
- buildHcs10RegistryDeleteTx,
28
- buildHcs10RegistryMigrateTx,
29
- buildHcs10RegistryRegisterTx,
30
- buildHcs10SendMessageTx,
31
- buildHcs10SubmitConnectionRequestTx
8
+ AIAgentCapability,
9
+ AIAgentDetailsSchema,
10
+ AIAgentProfileSchema,
11
+ AIAgentType,
12
+ AgentBuilder,
13
+ BaseProfileSchema,
14
+ EndpointType,
15
+ FloraBuilder,
16
+ HCS11Client,
17
+ HCS11ProfileSchema,
18
+ InboundTopicType,
19
+ MCPServerBuilder,
20
+ MCPServerCapability,
21
+ MCPServerConnectionInfoSchema,
22
+ MCPServerDetailsSchema,
23
+ MCPServerHostSchema,
24
+ MCPServerProfileSchema,
25
+ MCPServerResourceSchema,
26
+ MCPServerToolSchema,
27
+ MCPServerVerificationSchema,
28
+ PersonBuilder,
29
+ PersonalProfileSchema,
30
+ ProfileType,
31
+ SUPPORTED_SOCIAL_PLATFORMS,
32
+ SocialLinkSchema,
33
+ VerificationType,
34
+ capabilityNameToCapabilityMap,
35
+ mcpServiceNameToCapabilityMap
32
36
  };
33
37
  //# sourceMappingURL=standards-sdk.es144.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es144.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"standards-sdk.es144.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,37 +1,31 @@
1
- import { AgentBuilder } from "./standards-sdk.es23.js";
2
- import { PersonBuilder } from "./standards-sdk.es24.js";
3
- import { MCPServerBuilder } from "./standards-sdk.es25.js";
4
- import { FloraBuilder } from "./standards-sdk.es26.js";
5
- import { AIAgentDetailsSchema, AIAgentProfileSchema, BaseProfileSchema, HCS11Client, HCS11ProfileSchema, MCPServerConnectionInfoSchema, MCPServerDetailsSchema, MCPServerHostSchema, MCPServerProfileSchema, MCPServerResourceSchema, MCPServerToolSchema, MCPServerVerificationSchema, PersonalProfileSchema, SocialLinkSchema } from "./standards-sdk.es27.js";
6
- import { AIAgentCapability, AIAgentType, EndpointType, InboundTopicType, MCPServerCapability, ProfileType, SUPPORTED_SOCIAL_PLATFORMS, VerificationType, capabilityNameToCapabilityMap, mcpServiceNameToCapabilityMap } from "./standards-sdk.es28.js";
1
+ import { CanonicalAgentDataSchema, HCS14_PROTOCOL_REGEX } from "./standards-sdk.es54.js";
2
+ import { canonicalizeAgentData } from "./standards-sdk.es55.js";
3
+ import { createUaid, parseHcs14Did } from "./standards-sdk.es56.js";
4
+ import { isEip155Caip10, isHederaCaip10, isHederaNetwork, parseHederaCaip10, toEip155Caip10, toHederaCaip10 } from "./standards-sdk.es57.js";
5
+ import { ResolverRegistry, defaultResolverRegistry, registerDefaultResolvers } from "./standards-sdk.es58.js";
6
+ import { HieroDidResolver } from "./standards-sdk.es59.js";
7
+ import { HCS14Client } from "./standards-sdk.es60.js";
8
+ import { IssuerRegistry, defaultIssuerRegistry } from "./standards-sdk.es61.js";
9
+ import { HederaHieroIssuer } from "./standards-sdk.es62.js";
7
10
  export {
8
- AIAgentCapability,
9
- AIAgentDetailsSchema,
10
- AIAgentProfileSchema,
11
- AIAgentType,
12
- AgentBuilder,
13
- BaseProfileSchema,
14
- EndpointType,
15
- FloraBuilder,
16
- HCS11Client,
17
- HCS11ProfileSchema,
18
- InboundTopicType,
19
- MCPServerBuilder,
20
- MCPServerCapability,
21
- MCPServerConnectionInfoSchema,
22
- MCPServerDetailsSchema,
23
- MCPServerHostSchema,
24
- MCPServerProfileSchema,
25
- MCPServerResourceSchema,
26
- MCPServerToolSchema,
27
- MCPServerVerificationSchema,
28
- PersonBuilder,
29
- PersonalProfileSchema,
30
- ProfileType,
31
- SUPPORTED_SOCIAL_PLATFORMS,
32
- SocialLinkSchema,
33
- VerificationType,
34
- capabilityNameToCapabilityMap,
35
- mcpServiceNameToCapabilityMap
11
+ CanonicalAgentDataSchema,
12
+ HCS14Client,
13
+ HCS14_PROTOCOL_REGEX,
14
+ HederaHieroIssuer,
15
+ HieroDidResolver,
16
+ IssuerRegistry,
17
+ ResolverRegistry,
18
+ canonicalizeAgentData,
19
+ createUaid,
20
+ defaultIssuerRegistry,
21
+ defaultResolverRegistry,
22
+ isEip155Caip10,
23
+ isHederaCaip10,
24
+ isHederaNetwork,
25
+ parseHcs14Did,
26
+ parseHederaCaip10,
27
+ registerDefaultResolvers,
28
+ toEip155Caip10,
29
+ toHederaCaip10
36
30
  };
37
31
  //# sourceMappingURL=standards-sdk.es145.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es145.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"standards-sdk.es145.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -1,31 +1,141 @@
1
- import { CanonicalAgentDataSchema, HCS14_PROTOCOL_REGEX } from "./standards-sdk.es54.js";
2
- import { canonicalizeAgentData } from "./standards-sdk.es55.js";
3
- import { createUaid, parseHcs14Did } from "./standards-sdk.es56.js";
4
- import { isEip155Caip10, isHederaCaip10, isHederaNetwork, parseHederaCaip10, toEip155Caip10, toHederaCaip10 } from "./standards-sdk.es57.js";
5
- import { ResolverRegistry, defaultResolverRegistry, registerDefaultResolvers } from "./standards-sdk.es58.js";
6
- import { HieroDidResolver } from "./standards-sdk.es59.js";
7
- import { HCS14Client } from "./standards-sdk.es60.js";
8
- import { IssuerRegistry, defaultIssuerRegistry } from "./standards-sdk.es61.js";
9
- import { HederaHieroIssuer } from "./standards-sdk.es62.js";
1
+ import { AccountId, Client, PrivateKey } from "@hashgraph/sdk";
2
+ import { detectKeyTypeFromString } from "./standards-sdk.es113.js";
3
+ class NodeOperatorResolver {
4
+ constructor(params) {
5
+ this.mirror = params.mirrorNode;
6
+ this.logger = params.logger;
7
+ }
8
+ /**
9
+ * Best-guess parsing for an operator key without network calls.
10
+ * - If PrivateKey: returns immediately with provided or fallback type.
11
+ * - If string with explicitType: parse directly.
12
+ * - If string without type: detect format; fallback to ECDSA.
13
+ */
14
+ bestGuessOperatorKey(operatorKeyInput, explicitType) {
15
+ if (typeof operatorKeyInput !== "string") {
16
+ return { keyType: explicitType || "ecdsa", privateKey: operatorKeyInput };
17
+ }
18
+ if (explicitType) {
19
+ const pk = explicitType === "ed25519" ? PrivateKey.fromStringED25519(operatorKeyInput) : PrivateKey.fromStringECDSA(operatorKeyInput);
20
+ return { keyType: explicitType, privateKey: pk };
21
+ }
22
+ try {
23
+ const detected = detectKeyTypeFromString(operatorKeyInput);
24
+ return {
25
+ keyType: detected.detectedType,
26
+ privateKey: detected.privateKey
27
+ };
28
+ } catch {
29
+ return {
30
+ keyType: "ecdsa",
31
+ privateKey: PrivateKey.fromStringECDSA(operatorKeyInput)
32
+ };
33
+ }
34
+ }
35
+ /**
36
+ * Resolve an operator key using Mirror Node for key type when possible.
37
+ * - If PrivateKey: return immediately.
38
+ * - If explicitType: parse directly.
39
+ * - Else: query Mirror Node; fallback to local detection.
40
+ */
41
+ async resolveOperatorKey(operatorId, operatorKeyInput, explicitType) {
42
+ if (typeof operatorKeyInput !== "string") {
43
+ return { keyType: explicitType || "ecdsa", privateKey: operatorKeyInput };
44
+ }
45
+ if (explicitType) {
46
+ const pk = explicitType === "ed25519" ? PrivateKey.fromStringED25519(operatorKeyInput) : PrivateKey.fromStringECDSA(operatorKeyInput);
47
+ return { keyType: explicitType, privateKey: pk };
48
+ }
49
+ const account = typeof operatorId === "string" ? operatorId : operatorId.toString();
50
+ try {
51
+ const info = await this.mirror.requestAccount(account);
52
+ const t = info?.key?._type || "";
53
+ const keyType = t.includes("ED25519") ? "ed25519" : "ecdsa";
54
+ const privateKey = keyType === "ed25519" ? PrivateKey.fromStringED25519(operatorKeyInput) : PrivateKey.fromStringECDSA(operatorKeyInput);
55
+ return { keyType, privateKey };
56
+ } catch {
57
+ this.logger.warn(
58
+ "Mirror node key detection failed; using local detection or default ECDSA"
59
+ );
60
+ return this.bestGuessOperatorKey(operatorKeyInput);
61
+ }
62
+ }
63
+ /**
64
+ * Resolve a supply key for the given token using Mirror Node token supply_key._type when possible.
65
+ */
66
+ async resolveSupplyKey(tokenId, keyInput, fallbackType, explicitType) {
67
+ try {
68
+ const info = await this.mirror.getTokenInfo(tokenId);
69
+ const t = info?.supply_key?._type || "";
70
+ if (typeof keyInput !== "string") {
71
+ return keyInput;
72
+ }
73
+ if (explicitType) {
74
+ return explicitType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
75
+ }
76
+ if (t.includes("ED25519")) {
77
+ return PrivateKey.fromStringED25519(keyInput);
78
+ }
79
+ if (t.includes("ECDSA")) {
80
+ return PrivateKey.fromStringECDSA(keyInput);
81
+ }
82
+ return fallbackType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
83
+ } catch {
84
+ if (typeof keyInput !== "string") {
85
+ return keyInput;
86
+ }
87
+ if (explicitType) {
88
+ return explicitType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
89
+ }
90
+ return fallbackType === "ed25519" ? PrivateKey.fromStringED25519(keyInput) : PrivateKey.fromStringECDSA(keyInput);
91
+ }
92
+ }
93
+ }
94
+ function createNodeOperatorContext(params) {
95
+ const operatorId = typeof params.operatorId === "string" ? AccountId.fromString(params.operatorId) : params.operatorId;
96
+ const client = params.client ? params.client : params.network === "mainnet" ? Client.forMainnet() : Client.forTestnet();
97
+ const resolver = new NodeOperatorResolver({
98
+ mirrorNode: params.mirrorNode,
99
+ logger: params.logger
100
+ });
101
+ let currentKeyType;
102
+ let currentPrivateKey;
103
+ const guess = resolver.bestGuessOperatorKey(
104
+ params.operatorKey,
105
+ params.keyType
106
+ );
107
+ currentKeyType = guess.keyType;
108
+ currentPrivateKey = guess.privateKey;
109
+ client.setOperator(operatorId.toString(), currentPrivateKey);
110
+ const initPromise = (async () => {
111
+ try {
112
+ const resolved = await resolver.resolveOperatorKey(
113
+ operatorId,
114
+ params.operatorKey,
115
+ params.keyType
116
+ );
117
+ currentKeyType = resolved.keyType;
118
+ currentPrivateKey = resolved.privateKey;
119
+ client.setOperator(operatorId.toString(), currentPrivateKey);
120
+ } catch {
121
+ }
122
+ })();
123
+ return {
124
+ client,
125
+ operatorId,
126
+ get operatorKey() {
127
+ return currentPrivateKey;
128
+ },
129
+ get keyType() {
130
+ return currentKeyType;
131
+ },
132
+ ensureInitialized: async () => {
133
+ await initPromise;
134
+ }
135
+ };
136
+ }
10
137
  export {
11
- CanonicalAgentDataSchema,
12
- HCS14Client,
13
- HCS14_PROTOCOL_REGEX,
14
- HederaHieroIssuer,
15
- HieroDidResolver,
16
- IssuerRegistry,
17
- ResolverRegistry,
18
- canonicalizeAgentData,
19
- createUaid,
20
- defaultIssuerRegistry,
21
- defaultResolverRegistry,
22
- isEip155Caip10,
23
- isHederaCaip10,
24
- isHederaNetwork,
25
- parseHcs14Did,
26
- parseHederaCaip10,
27
- registerDefaultResolvers,
28
- toEip155Caip10,
29
- toHederaCaip10
138
+ NodeOperatorResolver,
139
+ createNodeOperatorContext
30
140
  };
31
141
  //# sourceMappingURL=standards-sdk.es146.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es146.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"standards-sdk.es146.js","sources":["../../src/common/node-operator-resolver.ts"],"sourcesContent":["import { AccountId, Client, PrivateKey } from '@hashgraph/sdk';\nimport { HederaMirrorNode } from '../services/mirror-node';\nimport { ILogger } from '../utils/logger';\nimport { detectKeyTypeFromString } from '../utils/key-type-detector';\nimport { NetworkType } from '../utils/types';\n\n/**\n * Resolves operator and supply private keys using Mirror Node as source of truth\n * with format-detection fallbacks for string keys.\n */\nexport class NodeOperatorResolver {\n private readonly mirror: HederaMirrorNode;\n private readonly logger: ILogger;\n\n constructor(params: { mirrorNode: HederaMirrorNode; logger: ILogger }) {\n this.mirror = params.mirrorNode;\n this.logger = params.logger;\n }\n\n /**\n * Best-guess parsing for an operator key without network calls.\n * - If PrivateKey: returns immediately with provided or fallback type.\n * - If string with explicitType: parse directly.\n * - If string without type: detect format; fallback to ECDSA.\n */\n bestGuessOperatorKey(\n operatorKeyInput: string | PrivateKey,\n explicitType?: 'ed25519' | 'ecdsa',\n ): { keyType: 'ed25519' | 'ecdsa'; privateKey: PrivateKey } {\n if (typeof operatorKeyInput !== 'string') {\n return { keyType: explicitType || 'ecdsa', privateKey: operatorKeyInput };\n }\n if (explicitType) {\n const pk =\n explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(operatorKeyInput)\n : PrivateKey.fromStringECDSA(operatorKeyInput);\n return { keyType: explicitType, privateKey: pk };\n }\n try {\n const detected = detectKeyTypeFromString(operatorKeyInput);\n return {\n keyType: detected.detectedType,\n privateKey: detected.privateKey,\n };\n } catch {\n return {\n keyType: 'ecdsa',\n privateKey: PrivateKey.fromStringECDSA(operatorKeyInput),\n };\n }\n }\n\n /**\n * Resolve an operator key using Mirror Node for key type when possible.\n * - If PrivateKey: return immediately.\n * - If explicitType: parse directly.\n * - Else: query Mirror Node; fallback to local detection.\n */\n async resolveOperatorKey(\n operatorId: string | AccountId,\n operatorKeyInput: string | PrivateKey,\n explicitType?: 'ed25519' | 'ecdsa',\n ): Promise<{ keyType: 'ed25519' | 'ecdsa'; privateKey: PrivateKey }> {\n if (typeof operatorKeyInput !== 'string') {\n return { keyType: explicitType || 'ecdsa', privateKey: operatorKeyInput };\n }\n if (explicitType) {\n const pk =\n explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(operatorKeyInput)\n : PrivateKey.fromStringECDSA(operatorKeyInput);\n return { keyType: explicitType, privateKey: pk };\n }\n const account =\n typeof operatorId === 'string' ? operatorId : operatorId.toString();\n try {\n const info = await this.mirror.requestAccount(account);\n const t = info?.key?._type || '';\n const keyType: 'ed25519' | 'ecdsa' = t.includes('ED25519')\n ? 'ed25519'\n : 'ecdsa';\n const privateKey =\n keyType === 'ed25519'\n ? PrivateKey.fromStringED25519(operatorKeyInput)\n : PrivateKey.fromStringECDSA(operatorKeyInput);\n return { keyType, privateKey };\n } catch {\n this.logger.warn(\n 'Mirror node key detection failed; using local detection or default ECDSA',\n );\n return this.bestGuessOperatorKey(operatorKeyInput);\n }\n }\n\n /**\n * Resolve a supply key for the given token using Mirror Node token supply_key._type when possible.\n */\n async resolveSupplyKey(\n tokenId: string,\n keyInput: string | PrivateKey,\n fallbackType: 'ed25519' | 'ecdsa',\n explicitType?: 'ed25519' | 'ecdsa',\n ): Promise<PrivateKey> {\n try {\n const info = await this.mirror.getTokenInfo(tokenId);\n const t = info?.supply_key?._type || '';\n if (typeof keyInput !== 'string') {\n return keyInput;\n }\n if (explicitType) {\n return explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n }\n if (t.includes('ED25519')) {\n return PrivateKey.fromStringED25519(keyInput);\n }\n if (t.includes('ECDSA')) {\n return PrivateKey.fromStringECDSA(keyInput);\n }\n return fallbackType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n } catch {\n if (typeof keyInput !== 'string') {\n return keyInput;\n }\n if (explicitType) {\n return explicitType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n }\n return fallbackType === 'ed25519'\n ? PrivateKey.fromStringED25519(keyInput)\n : PrivateKey.fromStringECDSA(keyInput);\n }\n }\n}\n\nexport interface NodeOperatorInitParams {\n network: NetworkType;\n operatorId: string | AccountId;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n mirrorNode: HederaMirrorNode;\n logger: ILogger;\n client?: Client;\n}\n\nexport interface NodeOperatorContext {\n client: Client;\n operatorId: AccountId;\n readonly operatorKey: PrivateKey;\n readonly keyType: 'ed25519' | 'ecdsa';\n ensureInitialized(): Promise<void>;\n}\n\nexport function createNodeOperatorContext(\n params: NodeOperatorInitParams,\n): NodeOperatorContext {\n const operatorId: AccountId =\n typeof params.operatorId === 'string'\n ? AccountId.fromString(params.operatorId)\n : params.operatorId;\n\n const client: Client = params.client\n ? params.client\n : params.network === 'mainnet'\n ? Client.forMainnet()\n : Client.forTestnet();\n\n const resolver = new NodeOperatorResolver({\n mirrorNode: params.mirrorNode,\n logger: params.logger,\n });\n\n let currentKeyType: 'ed25519' | 'ecdsa';\n let currentPrivateKey: PrivateKey;\n\n const guess = resolver.bestGuessOperatorKey(\n params.operatorKey,\n params.keyType,\n );\n currentKeyType = guess.keyType;\n currentPrivateKey = guess.privateKey;\n client.setOperator(operatorId.toString(), currentPrivateKey);\n\n const initPromise = (async () => {\n try {\n const resolved = await resolver.resolveOperatorKey(\n operatorId,\n params.operatorKey,\n params.keyType,\n );\n currentKeyType = resolved.keyType;\n currentPrivateKey = resolved.privateKey;\n client.setOperator(operatorId.toString(), currentPrivateKey);\n } catch {}\n })();\n\n return {\n client,\n operatorId,\n get operatorKey() {\n return currentPrivateKey;\n },\n get keyType() {\n return currentKeyType;\n },\n ensureInitialized: async () => {\n await initPromise;\n },\n };\n}\n"],"names":[],"mappings":"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"}