@keetanetwork/anchor 0.0.21 → 0.0.23

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 (67) hide show
  1. package/config.d.ts +1 -1
  2. package/config.d.ts.map +1 -1
  3. package/config.js +1 -1
  4. package/config.js.map +1 -1
  5. package/lib/certificates.d.ts +4 -1
  6. package/lib/certificates.d.ts.map +1 -1
  7. package/lib/certificates.js +148 -14
  8. package/lib/certificates.js.map +1 -1
  9. package/lib/error.d.ts +35 -0
  10. package/lib/error.d.ts.map +1 -1
  11. package/lib/error.js +203 -7
  12. package/lib/error.js.map +1 -1
  13. package/lib/http-server/common.d.ts +6 -0
  14. package/lib/http-server/common.d.ts.map +1 -0
  15. package/lib/http-server/common.js +2 -0
  16. package/lib/http-server/common.js.map +1 -0
  17. package/lib/{http-server.d.ts → http-server/index.d.ts} +30 -12
  18. package/lib/http-server/index.d.ts.map +1 -0
  19. package/lib/{http-server.js → http-server/index.js} +107 -46
  20. package/lib/http-server/index.js.map +1 -0
  21. package/lib/resolver.d.ts +5 -2
  22. package/lib/resolver.d.ts.map +1 -1
  23. package/lib/resolver.js +15 -2
  24. package/lib/resolver.js.map +1 -1
  25. package/lib/utils/asn1.d.ts +0 -13
  26. package/lib/utils/asn1.d.ts.map +1 -1
  27. package/lib/utils/asn1.js +0 -1498
  28. package/lib/utils/asn1.js.map +1 -1
  29. package/lib/utils/external.d.ts.map +1 -1
  30. package/lib/utils/external.js +9 -2
  31. package/lib/utils/external.js.map +1 -1
  32. package/npm-shrinkwrap.json +5 -5
  33. package/package.json +2 -2
  34. package/services/asset-movement/client.d.ts +1 -0
  35. package/services/asset-movement/client.d.ts.map +1 -1
  36. package/services/asset-movement/client.js +13 -9
  37. package/services/asset-movement/client.js.map +1 -1
  38. package/services/asset-movement/common.d.ts +1 -1
  39. package/services/asset-movement/common.d.ts.map +1 -1
  40. package/services/asset-movement/common.js.map +1 -1
  41. package/services/asset-movement/server.d.ts +1 -1
  42. package/services/asset-movement/server.d.ts.map +1 -1
  43. package/services/asset-movement/server.js +1 -1
  44. package/services/asset-movement/server.js.map +1 -1
  45. package/services/fx/common.d.ts +15 -5
  46. package/services/fx/common.d.ts.map +1 -1
  47. package/services/fx/common.js +29 -0
  48. package/services/fx/common.js.map +1 -1
  49. package/services/fx/server.d.ts +12 -2
  50. package/services/fx/server.d.ts.map +1 -1
  51. package/services/fx/server.js +9 -2
  52. package/services/fx/server.js.map +1 -1
  53. package/services/kyc/common.d.ts +3 -5
  54. package/services/kyc/common.d.ts.map +1 -1
  55. package/services/kyc/common.generated.js +2 -2
  56. package/services/kyc/common.js +1 -0
  57. package/services/kyc/common.js.map +1 -1
  58. package/services/kyc/iso20022.generated.js +54 -54
  59. package/services/kyc/iso20022.generated.js.map +1 -1
  60. package/services/kyc/server.d.ts +1 -1
  61. package/services/kyc/server.d.ts.map +1 -1
  62. package/services/kyc/server.js +1 -1
  63. package/services/kyc/server.js.map +1 -1
  64. package/services/kyc/utils/generate-kyc-schema.js +34 -6
  65. package/services/kyc/utils/generate-kyc-schema.js.map +1 -1
  66. package/lib/http-server.d.ts.map +0 -1
  67. package/lib/http-server.js.map +0 -1
package/config.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import Resolver from './lib/resolver.js';
2
2
  import type { Client as KeetaNetClient, UserClient as KeetaNetUserClient } from '@keetanetwork/keetanet-client';
3
- import KeetaNet from '@keetanetwork/keetanet-client';
3
+ import * as KeetaNet from '@keetanetwork/keetanet-client';
4
4
  type KeetaNetNetworks = typeof KeetaNet.Client.Config.networksArray[number];
5
5
  type ResolverOptions = Partial<Omit<ConstructorParameters<typeof Resolver>[0], 'client'>> & {
6
6
  network?: bigint | KeetaNetNetworks | string | undefined;
package/config.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EACX,MAAM,IAAI,cAAc,EACxB,UAAU,IAAI,kBAAkB,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AAErD,KAAK,gBAAgB,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5E,KAAK,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG;IAE3F,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;CACzD,CAAC;AACF,KAAK,cAAc,GAAG,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAkCnI;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAIvH"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,KAAK,EACX,MAAM,IAAI,cAAc,EACxB,UAAU,IAAI,kBAAkB,EAChC,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAE1D,KAAK,gBAAgB,GAAG,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5E,KAAK,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,GAAG;IAE3F,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;CACzD,CAAC;AACF,KAAK,cAAc,GAAG,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAkCnI;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,kBAAkB,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAIvH"}
package/config.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import Resolver from './lib/resolver.js';
2
- import KeetaNet from '@keetanetwork/keetanet-client';
2
+ import * as KeetaNet from '@keetanetwork/keetanet-client';
3
3
  export function getDefaultResolverConfig(client, options = {}) {
4
4
  /**
5
5
  * The default Root account for the resolver is the network account, so
package/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAKzC,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AASrD,MAAM,UAAU,wBAAwB,CAAC,MAA2C,EAAE,UAA2B,EAAE;IAClH;;;OAGG;IACH,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAK,CAAC,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAK,CAAC,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5E,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;IACnC,CAAC;SAAM,CAAC;QACP,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAE9E,OAAM,CAAC;QACN,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,UAAU,EAAE,EAAE;QACd,GAAG,OAAO;KACV,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA2C,EAAE,UAA2B,EAAE;IAC5G,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjE,OAAM,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import Resolver from './lib/resolver.js';\nimport type {\n\tClient as KeetaNetClient,\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport KeetaNet from '@keetanetwork/keetanet-client';\n\ntype KeetaNetNetworks = typeof KeetaNet.Client.Config.networksArray[number];\ntype ResolverOptions = Partial<Omit<ConstructorParameters<typeof Resolver>[0], 'client'>> & {\n\t// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n\tnetwork?: bigint | KeetaNetNetworks | string | undefined;\n};\ntype ResolverConfig = ConstructorParameters<typeof Resolver>[0];\n\nexport function getDefaultResolverConfig(client: KeetaNetClient | KeetaNetUserClient, options: ResolverOptions = {}): ResolverConfig {\n\t/**\n\t * The default Root account for the resolver is the network account, so\n\t * we need to look it up from what the user provided.\n\t */\n\tif (options.network === undefined) {\n\t\tif ('network' in client && client.network !== undefined) {\n\t\t\toptions.network = client.network;\n\t\t}\n\t}\n\n\tif (options.network === undefined) {\n\t\tthrow(new Error('Network must be specified in options or a UserClient must be provided with a network'));\n\t}\n\n\tlet networkID: bigint;\n\tif (typeof options.network === 'string') {\n\t\tif (!KeetaNet.Client.Config.isNetwork(options.network)) {\n\t\t\tthrow(new Error(`Invalid network: ${options.network}`));\n\t\t}\n\t\tconst networkAlias = KeetaNet.Client.Config.getNetworkAlias(options.network);\n\t\tconst defaultConfig = KeetaNet.Client.Config.getDefaultConfig(networkAlias);\n\t\tnetworkID = defaultConfig.network;\n\t} else {\n\t\tnetworkID = options.network;\n\t}\n\tconst networkAccount = KeetaNet.lib.Account.generateNetworkAddress(networkID);\n\n\treturn({\n\t\tclient: client,\n\t\troot: networkAccount,\n\t\ttrustedCAs: [],\n\t\t...options\n\t});\n}\n\nexport function getDefaultResolver(client: KeetaNetClient | KeetaNetUserClient, options: ResolverOptions = {}): Resolver {\n\tconst resolverConfig = getDefaultResolverConfig(client, options);\n\n\treturn(new Resolver(resolverConfig));\n}\n"]}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAKzC,OAAO,KAAK,QAAQ,MAAM,+BAA+B,CAAC;AAS1D,MAAM,UAAU,wBAAwB,CAAC,MAA2C,EAAE,UAA2B,EAAE;IAClH;;;OAGG;IACH,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC;IACF,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAK,CAAC,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,SAAiB,CAAC;IACtB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAK,CAAC,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC5E,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC;IACnC,CAAC;SAAM,CAAC;QACP,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAE9E,OAAM,CAAC;QACN,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,cAAc;QACpB,UAAU,EAAE,EAAE;QACd,GAAG,OAAO;KACV,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAA2C,EAAE,UAA2B,EAAE;IAC5G,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjE,OAAM,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AACtC,CAAC","sourcesContent":["import Resolver from './lib/resolver.js';\nimport type {\n\tClient as KeetaNetClient,\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport * as KeetaNet from '@keetanetwork/keetanet-client';\n\ntype KeetaNetNetworks = typeof KeetaNet.Client.Config.networksArray[number];\ntype ResolverOptions = Partial<Omit<ConstructorParameters<typeof Resolver>[0], 'client'>> & {\n\t// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n\tnetwork?: bigint | KeetaNetNetworks | string | undefined;\n};\ntype ResolverConfig = ConstructorParameters<typeof Resolver>[0];\n\nexport function getDefaultResolverConfig(client: KeetaNetClient | KeetaNetUserClient, options: ResolverOptions = {}): ResolverConfig {\n\t/**\n\t * The default Root account for the resolver is the network account, so\n\t * we need to look it up from what the user provided.\n\t */\n\tif (options.network === undefined) {\n\t\tif ('network' in client && client.network !== undefined) {\n\t\t\toptions.network = client.network;\n\t\t}\n\t}\n\n\tif (options.network === undefined) {\n\t\tthrow(new Error('Network must be specified in options or a UserClient must be provided with a network'));\n\t}\n\n\tlet networkID: bigint;\n\tif (typeof options.network === 'string') {\n\t\tif (!KeetaNet.Client.Config.isNetwork(options.network)) {\n\t\t\tthrow(new Error(`Invalid network: ${options.network}`));\n\t\t}\n\t\tconst networkAlias = KeetaNet.Client.Config.getNetworkAlias(options.network);\n\t\tconst defaultConfig = KeetaNet.Client.Config.getDefaultConfig(networkAlias);\n\t\tnetworkID = defaultConfig.network;\n\t} else {\n\t\tnetworkID = options.network;\n\t}\n\tconst networkAccount = KeetaNet.lib.Account.generateNetworkAddress(networkID);\n\n\treturn({\n\t\tclient: client,\n\t\troot: networkAccount,\n\t\ttrustedCAs: [],\n\t\t...options\n\t});\n}\n\nexport function getDefaultResolver(client: KeetaNetClient | KeetaNetUserClient, options: ResolverOptions = {}): Resolver {\n\tconst resolverConfig = getDefaultResolverConfig(client, options);\n\n\treturn(new Resolver(resolverConfig));\n}\n"]}
@@ -2,12 +2,15 @@ import * as KeetaNetClient from '@keetanetwork/keetanet-client';
2
2
  import { Buffer } from './utils/buffer.js';
3
3
  import type { CertificateAttributeValue } from '../services/kyc/iso20022.generated.js';
4
4
  import { CertificateAttributeOIDDB } from '../services/kyc/iso20022.generated.js';
5
+ /**
6
+ * Short alias for the KeetaNetAccount type
7
+ */
8
+ declare const KeetaNetAccount: typeof KeetaNetClient.lib.Account;
5
9
  type AccountKeyAlgorithm = InstanceType<typeof KeetaNetClient.lib.Account>['keyType'];
6
10
  /**
7
11
  * An alias for the KeetaNetAccount type
8
12
  */
9
13
  type KeetaNetAccount = ReturnType<typeof KeetaNetClient.lib.Account.fromSeed<AccountKeyAlgorithm>>;
10
- declare const KeetaNetAccount: typeof KeetaNetClient.lib.Account;
11
14
  declare function assertCertificateAttributeNames(name: string): asserts name is CertificateAttributeNames;
12
15
  declare class SensitiveAttribute<T = ArrayBuffer> {
13
16
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"certificates.d.ts","sourceRoot":"","sources":["../../src/lib/certificates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"certificates.d.ts","sourceRoot":"","sources":["../../src/lib/certificates.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import * as KeetaNetClient from '@keetanetwork/keetanet-client';
2
2
  import * as oids from '../services/kyc/oids.generated.js';
3
3
  import * as ASN1 from './utils/asn1.js';
4
- import { ASN1toJS, contextualizeStructSchema, encodeValueBySchema, normalizeDecodedASN1 } from './utils/asn1.js';
5
4
  import { arrayBufferLikeToBuffer, arrayBufferToBuffer, Buffer, bufferToArrayBuffer } from './utils/buffer.js';
6
5
  import crypto from './utils/crypto.js';
7
6
  import { assertNever } from './utils/never.js';
@@ -15,7 +14,127 @@ import { checkHashWithOID } from './utils/external.js';
15
14
  * Short alias for printing a debug representation of an object
16
15
  */
17
16
  const DPO = KeetaNetClient.lib.Utils.Helper.debugPrintableObject.bind(KeetaNetClient.lib.Utils.Helper);
17
+ /**
18
+ * Short alias for the KeetaNetAccount type
19
+ */
18
20
  const KeetaNetAccount = KeetaNetClient.lib.Account;
21
+ function isPlainObject(value) {
22
+ return (typeof value === 'object' && value !== null && !Array.isArray(value));
23
+ }
24
+ /**
25
+ * Recursively normalize object properties
26
+ */
27
+ function normalizeDecodedASN1Object(obj, principals) {
28
+ const result = {};
29
+ for (const [key, value] of Object.entries(obj)) {
30
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
31
+ result[key] = normalizeDecodedASN1(value, principals);
32
+ }
33
+ return (result);
34
+ }
35
+ /**
36
+ * Post-process the output from toJavaScriptObject() to:
37
+ * 1. Unwrap any remaining ASN.1-like objects (from IsAnyString/IsAnyDate)
38
+ * 2. Add domain-specific $blob function to Reference objects
39
+ */
40
+ function normalizeDecodedASN1(input, principals) {
41
+ // Handle primitives
42
+ if (input === undefined || input === null || typeof input !== 'object') {
43
+ return (input);
44
+ }
45
+ if (input instanceof Date || Buffer.isBuffer(input) || input instanceof ArrayBuffer) {
46
+ return (input);
47
+ }
48
+ // Handle arrays
49
+ if (Array.isArray(input)) {
50
+ return (input.map(item => normalizeDecodedASN1(item, principals)));
51
+ }
52
+ // Unwrap ASN.1-like objects from ambiguous schemas (IsAnyString, IsAnyDate, IsBitString)
53
+ // These are plain objects like { type: 'string', kind: 'utf8', value: 'text' }
54
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
55
+ const obj = input;
56
+ if (obj.type === 'string' && 'value' in obj && typeof obj.value === 'string') {
57
+ return (obj.value);
58
+ }
59
+ if (obj.type === 'date' && 'value' in obj && obj.value instanceof Date) {
60
+ return (obj.value);
61
+ }
62
+ if (obj.type === 'bitstring' && 'value' in obj && Buffer.isBuffer(obj.value)) {
63
+ return (obj.value);
64
+ }
65
+ // Check if this is a Reference object (has external.url and digest fields)
66
+ if ('external' in obj && 'digest' in obj && isPlainObject(obj.external) && isPlainObject(obj.digest)) {
67
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
68
+ const ref = obj;
69
+ const url = ref.external.url;
70
+ const mimeType = ref.external.contentType;
71
+ // After toJavaScriptObject(), OIDs are strings, not {oid: string}
72
+ const encryptionAlgoOID = typeof ref.encryptionAlgorithm === 'string'
73
+ ? ref.encryptionAlgorithm
74
+ : ref.encryptionAlgorithm?.oid;
75
+ const digestInfo = ref.digest;
76
+ if (typeof url === 'string' && typeof mimeType === 'string' && digestInfo) {
77
+ let cachedValue = null;
78
+ return ({
79
+ ...normalizeDecodedASN1Object(obj, principals),
80
+ $blob: async function (additionalPrincipals) {
81
+ if (cachedValue) {
82
+ return (cachedValue);
83
+ }
84
+ const fetchResult = await fetch(url);
85
+ if (!fetchResult.ok) {
86
+ throw (new Error(`Failed to fetch remote data from ${url}: ${fetchResult.status} ${fetchResult.statusText}`));
87
+ }
88
+ const dataBlob = await fetchResult.blob();
89
+ let data = await dataBlob.arrayBuffer();
90
+ // Handle JSON base64 encoding
91
+ if (dataBlob.type === 'application/json') {
92
+ try {
93
+ const asJSON = JSON.parse(Buffer.from(data).toString('utf-8'));
94
+ if (isPlainObject(asJSON) && Object.keys(asJSON).length === 2) {
95
+ if ('data' in asJSON && typeof asJSON.data === 'string' && 'mimeType' in asJSON && typeof asJSON.mimeType === 'string') {
96
+ data = bufferToArrayBuffer(Buffer.from(asJSON.data, 'base64'));
97
+ }
98
+ }
99
+ }
100
+ catch {
101
+ /* Ignored */
102
+ }
103
+ }
104
+ // Decrypt if needed
105
+ if (encryptionAlgoOID) {
106
+ switch (encryptionAlgoOID) {
107
+ case '1.3.6.1.4.1.62675.2':
108
+ case 'KeetaEncryptedContainerV1': {
109
+ const container = EncryptedContainer.fromEncryptedBuffer(data, [
110
+ ...principals,
111
+ ...(additionalPrincipals ?? [])
112
+ ]);
113
+ data = await container.getPlaintext();
114
+ break;
115
+ }
116
+ default:
117
+ throw (new Error(`Unsupported encryption algorithm OID: ${encryptionAlgoOID}`));
118
+ }
119
+ }
120
+ // Verify hash (checkHashWithOID now accepts string OIDs directly)
121
+ if (!Buffer.isBuffer(digestInfo.digest)) {
122
+ throw (new TypeError('Digest value is not a buffer'));
123
+ }
124
+ const validHash = await checkHashWithOID(data, digestInfo);
125
+ if (validHash !== true) {
126
+ throw (validHash);
127
+ }
128
+ const blob = new Blob([data], { type: mimeType });
129
+ cachedValue = blob;
130
+ return (blob);
131
+ }
132
+ });
133
+ }
134
+ }
135
+ // Recursively process plain objects
136
+ return (normalizeDecodedASN1Object(obj, principals));
137
+ }
19
138
  function isBlob(input) {
20
139
  if (typeof input !== 'object' || input === null) {
21
140
  return (false);
@@ -135,12 +254,16 @@ function asCertificateAttributeNames(name) {
135
254
  assertCertificateAttributeNames(name);
136
255
  return (name);
137
256
  }
138
- function resolveSchema(name, schema) {
139
- return (contextualizeStructSchema(schema));
140
- }
141
257
  function encodeAttribute(name, value) {
142
- const schema = resolveSchema(name, CertificateAttributeSchema[name]);
143
- const encodedJS = encodeValueBySchema(schema, value, { attributeName: name });
258
+ const schema = CertificateAttributeSchema[name];
259
+ let encodedJS;
260
+ try {
261
+ encodedJS = new ASN1.ValidateASN1(schema).fromJavaScriptObject(value);
262
+ }
263
+ catch (err) {
264
+ const message = err instanceof Error ? err.message : String(err);
265
+ throw (new Error(`Attribute ${name}: ${message} (value: ${JSON.stringify(DPO(value))})`));
266
+ }
144
267
  if (encodedJS === undefined) {
145
268
  throw (new Error(`Unsupported attribute value for encoding: ${JSON.stringify(DPO(value))}`));
146
269
  }
@@ -176,11 +299,18 @@ function encodeForSensitive(name, value) {
176
299
  return (Buffer.from(String(value), 'utf-8'));
177
300
  }
178
301
  async function decodeAttribute(name, value, principals) {
179
- const schema = resolveSchema(name, CertificateAttributeSchema[name]);
302
+ const schema = CertificateAttributeSchema[name];
303
+ const decodedASN1 = new ASN1.BufferStorageASN1(value, schema).getASN1();
304
+ const validator = new ASN1.ValidateASN1(schema);
305
+ // XXX:TODO Fix depth issue
306
+ // @ts-expect-error
307
+ const plainObject = validator.toJavaScriptObject(decodedASN1);
308
+ // Post-process to:
309
+ // 1. Unwrap any remaining ASN.1-like objects
310
+ // 2. Add domain-specific $blob function to Reference objects
180
311
  // XXX:TODO Fix depth issue
181
- // @ts-ignore
182
- const decodedUnknown = new ASN1.BufferStorageASN1(value, schema).getASN1();
183
- const candidate = normalizeDecodedASN1(decodedUnknown, principals);
312
+ // @ts-expect-error
313
+ const candidate = normalizeDecodedASN1(plainObject, principals);
184
314
  return (asAttributeValue(name, candidate));
185
315
  }
186
316
  class SensitiveAttributeBuilder {
@@ -281,7 +411,7 @@ class SensitiveAttribute {
281
411
  decodedAttribute = dataObject.getASN1();
282
412
  }
283
413
  catch {
284
- const js = ASN1toJS(data);
414
+ const js = ASN1.ASN1toJS(data);
285
415
  throw (new Error(`SensitiveAttribute.decode: unexpected DER shape ${JSON.stringify(DPO(js))}`));
286
416
  }
287
417
  const decodedVersion = decodedAttribute[0] + 1n;
@@ -564,7 +694,7 @@ export class Certificate extends KeetaNetClient.lib.Utils.Certificate.Certificat
564
694
  /* Do nothing, we call the super method in the constructor */
565
695
  }
566
696
  setPlainAttribute(name, value) {
567
- // @ts-ignore
697
+ // @ts-expect-error
568
698
  this.attributes[name] = { sensitive: false, value };
569
699
  }
570
700
  setSensitiveAttribute(name, value) {
@@ -923,7 +1053,7 @@ export class SharableCertificateAttributes {
923
1053
  throw (new Error(`Missing reference value for ID ${referenceID}`));
924
1054
  }
925
1055
  const referenceData = Buffer.from(referenceValue, 'base64');
926
- const referenceDataAB = arrayBufferToBuffer(referenceData);
1056
+ const referenceDataAB = bufferToArrayBuffer(referenceData);
927
1057
  /* Verify the hash matches what was certified */
928
1058
  const checkHash = await checkHashWithOID(referenceData, parent.digest);
929
1059
  if (checkHash !== true) {
@@ -987,6 +1117,10 @@ Certificate.SharableAttributes = SharableCertificateAttributes;
987
1117
  /** @internal */
988
1118
  export const _Testing = {
989
1119
  SensitiveAttributeBuilder,
990
- SensitiveAttribute
1120
+ SensitiveAttribute,
1121
+ ValidateASN1: ASN1.ValidateASN1,
1122
+ BufferStorageASN1: ASN1.BufferStorageASN1,
1123
+ JStoASN1: ASN1.JStoASN1,
1124
+ normalizeDecodedASN1
991
1125
  };
992
1126
  //# sourceMappingURL=certificates.js.map