@hashgraphonline/standards-sdk 0.0.199 → 0.0.200
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/hcs-14/sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACf,MAAM,SAAS,CAAC;AAGjB,OAAO,EAGL,cAAc,EAIf,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAc,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAA2B,MAAM,UAAU,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,OAAO,CAAiB;gBAEpB,OAAO,CAAC,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"sdk.d.ts","sourceRoot":"","sources":["../../../src/hcs-14/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ class HCS14Client {
|
|
|
21
21
|
this.registry = options?.registry ?? defaultResolverRegistry;
|
|
22
22
|
this.issuers = new IssuerRegistry();
|
|
23
23
|
this.registerHederaIssuer();
|
|
24
|
+
this.registerHederaResolver();
|
|
24
25
|
this.client = options?.client;
|
|
25
26
|
this.network = options?.network;
|
|
26
27
|
this.operatorId = options?.operatorId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es54.js","sources":["../../src/hcs-14/sdk.ts"],"sourcesContent":["import {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n} from './types';\nimport { canonicalizeAgentData } from './canonical';\nimport { createUaid as createUaidFn, parseHcs14Did } from './did';\nimport {\n isHederaNetwork,\n isHederaCaip10,\n toHederaCaip10,\n parseHederaCaip10,\n isEip155Caip10,\n toEip155Caip10,\n} from './caip';\nimport {\n ResolverRegistry,\n defaultResolverRegistry,\n} from './resolvers/registry';\nimport { HieroDidResolver } from './resolvers/hiero';\nimport { IssuerRegistry } from './issuers/registry';\nimport { HederaHieroIssuer } from './issuers/hiero';\nimport type { DidIssueRequest } from './issuers/types';\nimport { Client, PrivateKey } from '@hashgraph/sdk';\nimport { HCS11Client } from '../hcs-11/client';\nimport { NetworkType, detectKeyTypeFromString } from '../utils';\nimport { HederaMirrorNode } from '../services';\nimport { HCS10Client } from '../hcs-10/sdk';\n\n/**\n * HCS-14 SDK client - lightweight facade around AID/UAID helpers and resolver registry.\n */\nexport interface HCS14ClientOptions {\n client?: Client;\n network?: NetworkType;\n operatorId?: string;\n privateKey?: string;\n registry?: ResolverRegistry;\n hcs10Client?: HCS10Client;\n}\n\nexport class HCS14Client {\n private readonly registry: ResolverRegistry;\n private client?: Client;\n private network?: NetworkType;\n private operatorId?: string;\n private operatorPrivateKey?: string;\n private hcs10Client?: HCS10Client;\n private issuers: IssuerRegistry;\n\n constructor(options?: HCS14ClientOptions) {\n this.registry = options?.registry ?? defaultResolverRegistry;\n this.issuers = new IssuerRegistry();\n this.registerHederaIssuer();\n this.client = options?.client;\n this.network = options?.network;\n this.operatorId = options?.operatorId;\n if (\n !this.client &&\n options?.network &&\n options?.operatorId &&\n options?.privateKey\n ) {\n this.configureHederaClient(\n options.network,\n options.operatorId,\n options.privateKey,\n );\n }\n if (options?.privateKey) this.operatorPrivateKey = options.privateKey;\n if (options?.hcs10Client) this.hcs10Client = options.hcs10Client;\n }\n\n configureHederaClient(\n network: NetworkType,\n operatorId: string,\n privateKey: string,\n ): void {\n const client = Client.forName(network);\n const initial = detectKeyTypeFromString(privateKey);\n client.setOperator(operatorId, initial.privateKey);\n (async () => {\n try {\n const mirror = new HederaMirrorNode(network);\n const info = await mirror.requestAccount(operatorId);\n const keyType = info?.key?._type || '';\n const needsEcdsa = keyType.includes('ECDSA');\n const needsEd25519 = keyType.includes('ED25519');\n if (needsEcdsa && initial.detectedType !== 'ecdsa') {\n client.setOperator(\n operatorId,\n PrivateKey.fromStringECDSA(privateKey),\n );\n } else if (needsEd25519 && initial.detectedType !== 'ed25519') {\n client.setOperator(\n operatorId,\n PrivateKey.fromStringED25519(privateKey),\n );\n }\n } catch {}\n })();\n\n this.client = client;\n this.network = network;\n this.operatorId = operatorId;\n this.operatorPrivateKey = privateKey;\n }\n\n /**\n * DID issuance adapters\n */\n getIssuerRegistry(): IssuerRegistry {\n return this.issuers;\n }\n\n /** Convenience: list registered issuers with metadata. */\n listIssuers(): ReadonlyArray<import('./issuers/types').DidIssuer> {\n return this.issuers.list();\n }\n\n /** Convenience: list registered resolvers with metadata. */\n listResolvers(): ReadonlyArray<import('./resolvers/types').DidResolver> {\n return this.registry.list();\n }\n\n /** Convenience: filter issuers by DID method. */\n filterIssuersByMethod(method: string) {\n return this.issuers.filterByDidMethod(method);\n }\n\n /** Convenience: filter resolvers by DID method. */\n filterResolversByMethod(method: string) {\n return this.registry.filterByDidMethod(method);\n }\n\n registerHederaIssuer(): void {\n this.issuers.register(new HederaHieroIssuer());\n }\n\n async createDid(request: DidIssueRequest): Promise<string> {\n return this.issuers.issue(request);\n }\n\n canonicalizeAgentData(input: unknown): CanonicalizationResult {\n return canonicalizeAgentData(input);\n }\n\n createUaid(existingDid: string, params?: DidRoutingParams): string;\n createUaid(\n input: CanonicalAgentData | string,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n ): Promise<string> | string {\n if (typeof input === 'string') {\n return createUaidFn(input, params);\n }\n return createUaidFn(input, params, options);\n }\n\n parseHcs14Did(did: string): ParsedHcs14Did {\n return parseHcs14Did(did);\n }\n\n isHederaNetwork(value: string): boolean {\n return isHederaNetwork(value);\n }\n isHederaCaip10(value: string): boolean {\n return isHederaCaip10(value);\n }\n toHederaCaip10(\n network: Parameters<typeof toHederaCaip10>[0],\n accountId: string,\n ): string {\n return toHederaCaip10(network, accountId);\n }\n parseHederaCaip10(value: string): {\n network: Parameters<typeof toHederaCaip10>[0];\n accountId: string;\n } {\n return parseHederaCaip10(value);\n }\n isEip155Caip10(value: string): boolean {\n return isEip155Caip10(value);\n }\n toEip155Caip10(chainId: number | string, address: string): string {\n return toEip155Caip10(chainId, address);\n }\n\n getResolverRegistry(): ResolverRegistry {\n return this.registry;\n }\n\n registerHederaResolver(): void {\n this.registry.register(new HieroDidResolver());\n }\n\n /**\n * Issue a DID via adapters and immediately wrap as UAID with routing params.\n * For Hedera + proto=hcs-10, nativeId and uid are derived when possible.\n */\n async createDidWithUaid(options: {\n issue: DidIssueRequest;\n uid?: string;\n proto?: string;\n nativeId?: string;\n }): Promise<{ did: string; uaid: string; parsed: ParsedHcs14Did }> {\n const did = await this.createDid(options.issue);\n let uid = options.uid;\n const proto = options.proto;\n let nativeId = options.nativeId;\n\n const isHedera = options.issue.method === 'hedera';\n if (isHedera) {\n if (!nativeId) {\n if (!this.network || !this.operatorId) {\n throw new Error(\n 'nativeId not provided and network/operatorId are not configured',\n );\n }\n nativeId = toHederaCaip10(this.network, this.operatorId);\n }\n if (!uid && proto === 'hcs-10' && this.network && this.operatorId) {\n try {\n if (!this.hcs10Client && this.operatorPrivateKey) {\n this.hcs10Client = new HCS10Client({\n network: this.network,\n operatorId: this.operatorId,\n operatorPrivateKey: this.operatorPrivateKey,\n silent: true,\n });\n }\n if (this.hcs10Client) {\n uid = await this.hcs10Client.getOperatorId();\n } else {\n const h11 = new HCS11Client({\n network: this.network,\n auth: { operatorId: this.operatorId },\n silent: true,\n });\n const fetched = await h11.fetchProfileByAccountId(\n this.operatorId,\n this.network,\n );\n const inbound = fetched?.topicInfo?.inboundTopic;\n uid = inbound ? `${inbound}@${this.operatorId}` : this.operatorId;\n }\n } catch {\n uid = this.operatorId;\n }\n }\n }\n\n uid = uid ?? '0';\n const uaid = this.createUaid(did, {\n uid,\n proto,\n nativeId,\n });\n const parsed = parseHcs14Did(uaid);\n return { did, uaid, parsed };\n }\n}\n\nexport type {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n};\n"],"names":["createUaidFn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es54.js","sources":["../../src/hcs-14/sdk.ts"],"sourcesContent":["import {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n} from './types';\nimport { canonicalizeAgentData } from './canonical';\nimport { createUaid as createUaidFn, parseHcs14Did } from './did';\nimport {\n isHederaNetwork,\n isHederaCaip10,\n toHederaCaip10,\n parseHederaCaip10,\n isEip155Caip10,\n toEip155Caip10,\n} from './caip';\nimport {\n ResolverRegistry,\n defaultResolverRegistry,\n} from './resolvers/registry';\nimport { HieroDidResolver } from './resolvers/hiero';\nimport { IssuerRegistry } from './issuers/registry';\nimport { HederaHieroIssuer } from './issuers/hiero';\nimport type { DidIssueRequest } from './issuers/types';\nimport { Client, PrivateKey } from '@hashgraph/sdk';\nimport { HCS11Client } from '../hcs-11/client';\nimport { NetworkType, detectKeyTypeFromString } from '../utils';\nimport { HederaMirrorNode } from '../services';\nimport { HCS10Client } from '../hcs-10/sdk';\n\n/**\n * HCS-14 SDK client - lightweight facade around AID/UAID helpers and resolver registry.\n */\nexport interface HCS14ClientOptions {\n client?: Client;\n network?: NetworkType;\n operatorId?: string;\n privateKey?: string;\n registry?: ResolverRegistry;\n hcs10Client?: HCS10Client;\n}\n\nexport class HCS14Client {\n private readonly registry: ResolverRegistry;\n private client?: Client;\n private network?: NetworkType;\n private operatorId?: string;\n private operatorPrivateKey?: string;\n private hcs10Client?: HCS10Client;\n private issuers: IssuerRegistry;\n\n constructor(options?: HCS14ClientOptions) {\n this.registry = options?.registry ?? defaultResolverRegistry;\n this.issuers = new IssuerRegistry();\n this.registerHederaIssuer();\n // Auto-register Hedera resolver for convenience\n this.registerHederaResolver();\n this.client = options?.client;\n this.network = options?.network;\n this.operatorId = options?.operatorId;\n if (\n !this.client &&\n options?.network &&\n options?.operatorId &&\n options?.privateKey\n ) {\n this.configureHederaClient(\n options.network,\n options.operatorId,\n options.privateKey,\n );\n }\n if (options?.privateKey) this.operatorPrivateKey = options.privateKey;\n if (options?.hcs10Client) this.hcs10Client = options.hcs10Client;\n }\n\n configureHederaClient(\n network: NetworkType,\n operatorId: string,\n privateKey: string,\n ): void {\n const client = Client.forName(network);\n const initial = detectKeyTypeFromString(privateKey);\n client.setOperator(operatorId, initial.privateKey);\n (async () => {\n try {\n const mirror = new HederaMirrorNode(network);\n const info = await mirror.requestAccount(operatorId);\n const keyType = info?.key?._type || '';\n const needsEcdsa = keyType.includes('ECDSA');\n const needsEd25519 = keyType.includes('ED25519');\n if (needsEcdsa && initial.detectedType !== 'ecdsa') {\n client.setOperator(\n operatorId,\n PrivateKey.fromStringECDSA(privateKey),\n );\n } else if (needsEd25519 && initial.detectedType !== 'ed25519') {\n client.setOperator(\n operatorId,\n PrivateKey.fromStringED25519(privateKey),\n );\n }\n } catch {}\n })();\n\n this.client = client;\n this.network = network;\n this.operatorId = operatorId;\n this.operatorPrivateKey = privateKey;\n }\n\n /**\n * DID issuance adapters\n */\n getIssuerRegistry(): IssuerRegistry {\n return this.issuers;\n }\n\n /** Convenience: list registered issuers with metadata. */\n listIssuers(): ReadonlyArray<import('./issuers/types').DidIssuer> {\n return this.issuers.list();\n }\n\n /** Convenience: list registered resolvers with metadata. */\n listResolvers(): ReadonlyArray<import('./resolvers/types').DidResolver> {\n return this.registry.list();\n }\n\n /** Convenience: filter issuers by DID method. */\n filterIssuersByMethod(method: string) {\n return this.issuers.filterByDidMethod(method);\n }\n\n /** Convenience: filter resolvers by DID method. */\n filterResolversByMethod(method: string) {\n return this.registry.filterByDidMethod(method);\n }\n\n registerHederaIssuer(): void {\n this.issuers.register(new HederaHieroIssuer());\n }\n\n async createDid(request: DidIssueRequest): Promise<string> {\n return this.issuers.issue(request);\n }\n\n canonicalizeAgentData(input: unknown): CanonicalizationResult {\n return canonicalizeAgentData(input);\n }\n\n createUaid(existingDid: string, params?: DidRoutingParams): string;\n createUaid(\n input: CanonicalAgentData | string,\n params?: DidRoutingParams,\n options?: { includeParams?: boolean },\n ): Promise<string> | string {\n if (typeof input === 'string') {\n return createUaidFn(input, params);\n }\n return createUaidFn(input, params, options);\n }\n\n parseHcs14Did(did: string): ParsedHcs14Did {\n return parseHcs14Did(did);\n }\n\n isHederaNetwork(value: string): boolean {\n return isHederaNetwork(value);\n }\n isHederaCaip10(value: string): boolean {\n return isHederaCaip10(value);\n }\n toHederaCaip10(\n network: Parameters<typeof toHederaCaip10>[0],\n accountId: string,\n ): string {\n return toHederaCaip10(network, accountId);\n }\n parseHederaCaip10(value: string): {\n network: Parameters<typeof toHederaCaip10>[0];\n accountId: string;\n } {\n return parseHederaCaip10(value);\n }\n isEip155Caip10(value: string): boolean {\n return isEip155Caip10(value);\n }\n toEip155Caip10(chainId: number | string, address: string): string {\n return toEip155Caip10(chainId, address);\n }\n\n getResolverRegistry(): ResolverRegistry {\n return this.registry;\n }\n\n registerHederaResolver(): void {\n this.registry.register(new HieroDidResolver());\n }\n\n /**\n * Issue a DID via adapters and immediately wrap as UAID with routing params.\n * For Hedera + proto=hcs-10, nativeId and uid are derived when possible.\n */\n async createDidWithUaid(options: {\n issue: DidIssueRequest;\n uid?: string;\n proto?: string;\n nativeId?: string;\n }): Promise<{ did: string; uaid: string; parsed: ParsedHcs14Did }> {\n const did = await this.createDid(options.issue);\n let uid = options.uid;\n const proto = options.proto;\n let nativeId = options.nativeId;\n\n const isHedera = options.issue.method === 'hedera';\n if (isHedera) {\n if (!nativeId) {\n if (!this.network || !this.operatorId) {\n throw new Error(\n 'nativeId not provided and network/operatorId are not configured',\n );\n }\n nativeId = toHederaCaip10(this.network, this.operatorId);\n }\n if (!uid && proto === 'hcs-10' && this.network && this.operatorId) {\n try {\n if (!this.hcs10Client && this.operatorPrivateKey) {\n this.hcs10Client = new HCS10Client({\n network: this.network,\n operatorId: this.operatorId,\n operatorPrivateKey: this.operatorPrivateKey,\n silent: true,\n });\n }\n if (this.hcs10Client) {\n uid = await this.hcs10Client.getOperatorId();\n } else {\n const h11 = new HCS11Client({\n network: this.network,\n auth: { operatorId: this.operatorId },\n silent: true,\n });\n const fetched = await h11.fetchProfileByAccountId(\n this.operatorId,\n this.network,\n );\n const inbound = fetched?.topicInfo?.inboundTopic;\n uid = inbound ? `${inbound}@${this.operatorId}` : this.operatorId;\n }\n } catch {\n uid = this.operatorId;\n }\n }\n }\n\n uid = uid ?? '0';\n const uaid = this.createUaid(did, {\n uid,\n proto,\n nativeId,\n });\n const parsed = parseHcs14Did(uaid);\n return { did, uaid, parsed };\n }\n}\n\nexport type {\n CanonicalizationResult,\n CanonicalAgentData,\n DidRoutingParams,\n ParsedHcs14Did,\n};\n"],"names":["createUaidFn"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hashgraphonline/standards-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.200",
|
|
4
4
|
"description": "The Hashgraph Online Standards SDK provides a complete implementation of the Hashgraph Consensus Standards (HCS), giving developers all the tools needed to build applications on Hedera.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|