@agent-network-protocol/anp-identity 0.2.5 → 0.2.6

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.
package/README.md CHANGED
@@ -34,6 +34,83 @@ const signature = await identity.sign({
34
34
  })
35
35
  ```
36
36
 
37
+ ## Local OAuth and PAP signing
38
+
39
+ `oauthPublicJwk(kid?)` exports an Ed25519/EdDSA `request_signing` key or a
40
+ P-256/ES256 `oauth_authentication` key. EC JWKs contain canonical 32-byte x/y
41
+ coordinates. With multiple eligible keys, pass an explicit kid. Existing ANP,
42
+ root/device and E2EE keys retain their existing purpose restrictions.
43
+ `signOAuthClientAssertion` accepts `{ client_id, audience, key }`, where key is
44
+ `'default'` or `{ kid }`. HTTPS identifiers are exact; the native layer fixes
45
+ `iss=sub=client_id`, a 60-second lifetime and fresh 256-bit jti. ES256 output is
46
+ 64-byte R||S, never DER. Arbitrary claims/headers/lifetimes are rejected.
47
+
48
+ `prepareOAuthKeyChange({fragment,operation_id,expected_revision})` returns an
49
+ existing publication/reconcile session. `exportCandidateOAuthPublicJwk(kid)`
50
+ reads pending material only. Every session candidate carries `baseEvidence`
51
+ (documentVersion, registryVersion, documentDigest) frozen from the same local
52
+ verified checkpoint when prepared; resume preserves that baseline, and later
53
+ commit does not change the candidate field. Host publishers must use this evidence
54
+ for CAS and reject a conflicting live Registry instead of assigning its newest
55
+ checkpoint to an older candidate. `oauthPublicJwk` and signing reject the key until
56
+ verified DID publication commits it. The Host separately confirms CIMD/JWKS and
57
+ ANPCIMD publication before granting external OAuth use. E1 rootless instances
58
+ return `capability_unavailable`; no private-key export/import is initiated.
59
+
60
+ Only the Host-only `./provider` entry exposes local PAP custody. Call
61
+ `lease.providerCapabilities()` and require `api_version:2` plus needed features.
62
+ `createDelegatedKey` / `createDpopKey` use `{operation_id,scope}` and return
63
+ `{handle,purpose,generation,public_jwk,thumbprint}`. Scope contains owner,
64
+ company_id, user_id and optional account_slot; owner must equal the lease consumer.
65
+ Company identifiers are exact HTTPS identifiers. Purpose and scope are bound into
66
+ the encrypted key reference. Retries of one operation return the same active key;
67
+ reusing it with a different scope/purpose fails. Keys never enter identity JWKS.
68
+ The current limit is 1024 records per identity, including retired tombstones.
69
+ Tombstones preserve operation replay safety; no garbage-collection policy is
70
+ implemented. At capacity, creation returns `key_unavailable`. This bounded first
71
+ implementation does not establish indefinite high-frequency rotation capacity.
72
+
73
+ `issuePapDelegation` accepts client_id, the selected identity key, delegated_key
74
+ (handle/generation), scope and ttl_seconds (1..86400). It signs ES256
75
+ `poppy-delegation+jwt` with only iss/cnf.jwk/iat/exp/jti. Session signing accepts a
76
+ local delegated handle and generation, scope, complete delegation, client_id,
77
+ sid, sub, optional agent_id and exact http_method/http_uri/access_token. Native
78
+ verification checks the delegation signature, active identity key, lifetime and
79
+ matching cnf before signing `poppy-session+jwt`; sub must equal scope.user_id.
80
+ The input Delegation is expected to be the output of this local typed issuer,
81
+ signed by the current identity OAuth key. The verifier uses serde JSON value
82
+ parsing and does not independently reject duplicate JSON members in an otherwise
83
+ validly signed external Delegation; it is not a general untrusted JOSE decoder.
84
+ URI query/fragment are omitted from htu. Without access_token, ath is omitted.
85
+ `signDpopProof` uses the separate DPoP handle and optional nonce/access_token.
86
+
87
+ `describeTemporaryKey` revalidates purpose, scope, generation and encrypted
88
+ material for restart recovery. It grants no permission. `retireTemporaryKey`
89
+ requires lifecycle capability; old generations cannot sign after retirement.
90
+ Provider calls recheck leases before returning. `IDENTITY_PAP_SESSION` and
91
+ `IDENTITY_PAP_DPOP` are distinct capabilities; Delegation additionally requires
92
+ `IDENTITY_SIGN`. C/Host owns approved caller/target/publication/permission policy.
93
+ A low-level handle or public JWK never replaces that policy.
94
+
95
+ `signManagementProof(reference,{key,method,params,audience?})` uses an active
96
+ Ed25519 device key and the existing AWiki DeviceProof JCS format. The method is
97
+ allowlisted; purpose, type, timestamps, TTL and nonce are constructed internally.
98
+ CIMD device actions require exact server path and target DID in params. Web
99
+ requires the configured opaque, exact audience; E1 omits it. This is distinct
100
+ from ANP Data Integrity object proof. `signWebRegistrationProof` separately binds
101
+ the complete `awiki.register.web.v1` business_projection to the current local
102
+ Web document, its unique device Manifest, document hash and selected device key.
103
+ The native layer hashes that projection and creates the fixed register transcript;
104
+ it never accepts an arbitrary request hash. Bootstrap requires only the managed
105
+ device signing/agreement pair; enroll OAuth later through its restricted path.
106
+ Exact types are in `provider.d.ts`.
107
+
108
+ The public fixture `test/fixtures/local-signer-v2-vector.json` contains no secrets.
109
+ Regenerate it with `node ../../scripts/generate-local-signer-vector.cjs <output>`;
110
+ its request.now freezes the intended verification time. The generator removes its
111
+ temporary encrypted Store. Node/OpenSSL independently verifies all four JWT forms
112
+ in `test/local-signer-v2.test.cjs`.
113
+
37
114
  ## Trusted DSH Provider entry
38
115
 
39
116
  `@agent-network-protocol/anp-identity/provider` is a separate Host-only entry
@@ -60,6 +137,16 @@ and an injected 32-byte key. An injected key `Buffer` is consumed and
60
137
  overwritten, including validation-error paths. Pass a disposable buffer
61
138
  containing uniformly random bytes, not a password, and do not reuse it.
62
139
 
140
+ `local_private_file` remains an explicit supported mode: Unix creates `root-key.b64u`
141
+ with `0600` permissions and stores private-key records as authenticated ciphertext.
142
+ No keyring service is required for that mode. `info().backendAvailable` is a required
143
+ boolean distinct from structural `health: 'ready'`. For an OS-keyring Store, locked,
144
+ missing or unreadable backend material blocks existing managers and Provider leases
145
+ with `provider_unavailable`; `info()` remains available and reports `false`. Linux
146
+ checks are read-only and never unlock, create a replacement key or fall back.
147
+ Unlocking the same backend restores the existing Provider. Other configured key
148
+ sources retain their prior opened-Store semantics.
149
+
63
150
  Environment-backed keys are unpadded base64url values read from the explicitly
64
151
  configured variable. Local private files protect against accidental disclosure,
65
152
  but copying both that file and the encrypted Store permits offline decryption.
@@ -76,3 +163,13 @@ ownership.
76
163
  The package is supported on a platform only after its native build and tests
77
164
  pass there. Declaring a target in the build configuration alone is not a support
78
165
  guarantee.
166
+
167
+
168
+ For DID-backed publication, `prepareDocumentChange` accepts
169
+ `{ change: 'bind_oauth_client', clientId, kid, metadataSha256 }`. This prepares a
170
+ signed candidate containing one `ANPCIMD` service, preserves unrelated services,
171
+ and uses the existing publication/reconcile session. The key must be an active
172
+ managed authentication runtime key and the digest must be 64 lowercase hex
173
+ characters. Once bound, the exact main client URL cannot silently change through
174
+ this operation. Publication uncertainty still requires reconciliation; this
175
+ operation does not publish anything by itself or bypass remote device/root proof.
package/SOURCE.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Corresponding Source
2
2
 
3
3
  Repository: https://github.com/agent-network-protocol/anp-identity
4
- Commit: deb629c1c0d9f7bedcd47e3adf06e3c339626117
4
+ Commit: 57d5c6263070b67bbe7beb5ab8c0667d9b8d3dff
5
5
  Target: platform-independent-wrapper
package/checksums.json CHANGED
@@ -3,11 +3,11 @@
3
3
  "files": [
4
4
  {
5
5
  "path": "index.d.ts",
6
- "sha256": "d745a3550f2d12ccd0ab972ca16688812f842fc41270cb9ff983cce45b07f1ce"
6
+ "sha256": "96275cb3f013b527bf559315cfb3f57c04f753b5dc19415e030c5a5c1c339147"
7
7
  },
8
8
  {
9
9
  "path": "index.js",
10
- "sha256": "52134f08f47be2a90cb86328f5a1ba58017ef3512155d4cd3d83c493231d4058"
10
+ "sha256": "a31e876098065df9a54f7dd90118d118366e53be7a98adcf7c80c07f70844c02"
11
11
  },
12
12
  {
13
13
  "path": "LICENSE",
@@ -15,7 +15,7 @@
15
15
  },
16
16
  {
17
17
  "path": "native.cjs",
18
- "sha256": "e1152f92a467ddce339ba410b59a2e504c8535f8b79279de033098715df1fe50"
18
+ "sha256": "6b69018c8546b4a94b1c7aad3489190b5d7c1b01761e2977e373d7e9e4e25c33"
19
19
  },
20
20
  {
21
21
  "path": "NOTICE.md",
@@ -23,31 +23,31 @@
23
23
  },
24
24
  {
25
25
  "path": "package.json",
26
- "sha256": "21f302945b4befee8b8903f7dd8445edf97073289318b822dde3478ce98351f2"
26
+ "sha256": "248a52326d7292d3efb3e76a0f2d65ef703bb9fc7031f1f76dd5bf189e550e97"
27
27
  },
28
28
  {
29
29
  "path": "provenance.json",
30
- "sha256": "4a327bec3c8687e21cbbf06cc5311e1b701d602504f926fe9c0da4b5225793d7"
30
+ "sha256": "80ee9b716aa63cecf2f39a8469c7d6c95042658cad83540346788a3a0ac60e32"
31
31
  },
32
32
  {
33
33
  "path": "provider.d.ts",
34
- "sha256": "3843006e81bbbf7673ce74f66b4dce20a63382fc2b371bbf54844f8e9f5b5efe"
34
+ "sha256": "b9a1195c974cf3145f8071effd2c5d7ba37ea9221472e93f20d881fd8995b24b"
35
35
  },
36
36
  {
37
37
  "path": "provider.js",
38
- "sha256": "29b79d349c60b01d5b2a2df165457967feab4dd3f0160ac0694ad0c77e9ecb99"
38
+ "sha256": "aad723d4c8d320292f39dc8e48710bc8e6593893bc561895e276d807b63ad6ef"
39
39
  },
40
40
  {
41
41
  "path": "README.md",
42
- "sha256": "f791508f9a18010c1921091d18331097c2232220073e2b687d526d875045ae27"
42
+ "sha256": "34fefc80776e6e1cfd6b710ac3b45664c7d078d134321ee2ad940ea52fed4414"
43
43
  },
44
44
  {
45
45
  "path": "sbom.cdx.json",
46
- "sha256": "1498a3aa064702880b57b6e3738d1a1875d8f1e11eb468749bd34e663ecd919c"
46
+ "sha256": "24102aee329741382d08032259d4a9b8918d8be37012c0041b0a22a23d284e82"
47
47
  },
48
48
  {
49
49
  "path": "SOURCE.md",
50
- "sha256": "5ff2bfd5109cb67e072079041998a4abc48f0a46115d81bc3f1382744c943a99"
50
+ "sha256": "c778d3afc584c2a66b4961059ca09f1070b2acf960f146fe9434c75707ea0ea7"
51
51
  }
52
52
  ]
53
53
  }
package/index.d.ts CHANGED
@@ -1,7 +1,20 @@
1
+ /** Host-approved client identity and audience; arbitrary JWT claims are rejected. */
2
+ export interface OAuthClientAssertionRequest {
3
+ client_id: string
4
+ audience: string
5
+ key: 'default' | { kid: string }
6
+ }
7
+ export type OAuthPublicJwk =
8
+ | { kty: 'OKP'; crv: 'Ed25519'; x: string; kid: string; alg: 'EdDSA'; use: 'sig' }
9
+ | { kty: 'EC'; crv: 'P-256'; x: string; y: string; kid: string; alg: 'ES256'; use: 'sig' }
10
+
11
+
12
+ export interface OAuthKeyChangeRequest { fragment: string; operation_id: string; expected_revision: number }
13
+
1
14
  export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue }
2
15
 
3
16
  export type IdentityState = 'enrolling' | 'active' | 'revoked'
4
- export type KeyAlgorithm = 'ed25519' | 'x25519'
17
+ export type KeyAlgorithm = 'ed25519' | 'x25519' | 'p256'
5
18
  export type KeyPurpose =
6
19
  | 'root_control'
7
20
  | 'authentication'
@@ -12,6 +25,7 @@ export type KeyRole =
12
25
  | 'root_control'
13
26
  | 'device_signing'
14
27
  | 'request_signing'
28
+ | 'oauth_authentication'
15
29
  | 'e2ee_signing'
16
30
  | 'e2ee_agreement'
17
31
 
@@ -26,6 +40,8 @@ export interface StoreInfo {
26
40
  schemaCompatible: boolean
27
41
  identityCount: number
28
42
  health: 'ready'
43
+ /** Current read-only availability of the Store's pinned key backend. */
44
+ backendAvailable: boolean
29
45
  }
30
46
 
31
47
  export interface RecoveryReport {
@@ -82,7 +98,7 @@ export type ExternalPublicKeyMaterial =
82
98
 
83
99
  export interface ExternalPublicKeySpec {
84
100
  kid: string
85
- role: Exclude<KeyRole, 'root_control'>
101
+ role: Exclude<KeyRole, 'root_control' | 'oauth_authentication'>
86
102
  material: ExternalPublicKeyMaterial
87
103
  }
88
104
 
@@ -160,6 +176,7 @@ export interface PublicKeyInput {
160
176
  }
161
177
 
162
178
  export type DocumentChange =
179
+ | { change: 'bind_oauth_client'; clientId: string; kid: string; metadataSha256: string }
163
180
  | { change: 'rotate_signing_key'; oldKid: string; newFragment: string }
164
181
  | { change: 'add_authentication_key'; key: PublicKeyInput }
165
182
  | { change: 'remove_authentication_key'; kid: string }
@@ -180,6 +197,7 @@ export interface DocumentChangeRequest {
180
197
  }
181
198
 
182
199
  export interface PreparedDocumentChange {
200
+ baseEvidence: VerifiedPublicationEvidence
183
201
  operationId: string
184
202
  candidateDocument: JsonValue
185
203
  candidateDigest: string
@@ -313,6 +331,10 @@ export class ManagedIdentity {
313
331
  private constructor()
314
332
  reference(): Promise<IdentityReference>
315
333
  publicIdentity(): Promise<PublicIdentity>
334
+ prepareOAuthKeyChange(request: OAuthKeyChangeRequest): Promise<DocumentChangeSession>
335
+ exportCandidateOAuthPublicJwk(kid: string): Promise<OAuthPublicJwk>
336
+ oauthPublicJwk(kid?: string): Promise<OAuthPublicJwk>
337
+ signOAuthClientAssertion(request: OAuthClientAssertionRequest): Promise<string>
316
338
  sign(request: SignRequest): Promise<Signature>
317
339
  verify(request: VerifyRequest): Promise<'valid' | 'invalid'>
318
340
  signOriginProof(request: OriginProofRequest): Promise<SignedOriginProof>
package/index.js CHANGED
@@ -37,6 +37,7 @@ class IdentityManager {
37
37
  schemaCompatible: value.schema_compatible,
38
38
  identityCount: value.identity_count,
39
39
  health: value.health,
40
+ backendAvailable: value.backend_available,
40
41
  }
41
42
  }
42
43
 
@@ -88,6 +89,22 @@ class ManagedIdentity {
88
89
  return publicIdentity(await call(this.#inner.publicIdentity()))
89
90
  }
90
91
 
92
+ async prepareOAuthKeyChange(request) {
93
+ return new DocumentChangeSession(await call(this.#inner.prepareOauthKeyChange(request)))
94
+ }
95
+
96
+ exportCandidateOAuthPublicJwk(kid) {
97
+ return call(this.#inner.exportCandidateOauthPublicJwk(kid))
98
+ }
99
+
100
+ oauthPublicJwk(kid) {
101
+ return call(this.#inner.oauthPublicJwk(kid))
102
+ }
103
+
104
+ signOAuthClientAssertion(request) {
105
+ return call(this.#inner.signOauthClientAssertion(request))
106
+ }
107
+
91
108
  sign(request) {
92
109
  return call(this.#inner.sign(request))
93
110
  }
@@ -222,6 +239,8 @@ function documentChangeRequest(value) {
222
239
  return {
223
240
  changes: value.changes.map((entry) => {
224
241
  switch (entry.change) {
242
+ case 'bind_oauth_client':
243
+ return { change: entry.change, client_id: entry.clientId, kid: entry.kid, metadata_sha256: entry.metadataSha256 }
225
244
  case 'rotate_signing_key':
226
245
  return { change: entry.change, old_kid: entry.oldKid, new_fragment: entry.newFragment }
227
246
  case 'add_authentication_key':
@@ -302,6 +321,7 @@ function publicIdentity(value) {
302
321
  function preparedChange(value) {
303
322
  return {
304
323
  operationId: value.operation_id,
324
+ baseEvidence: { documentVersion: value.base_evidence.document_version, registryVersion: value.base_evidence.registry_version, documentDigest: value.base_evidence.document_digest },
305
325
  candidateDocument: value.candidate_document,
306
326
  candidateDigest: value.candidate_digest,
307
327
  }
package/native.cjs CHANGED
@@ -77,8 +77,8 @@ function requireNative() {
77
77
  try {
78
78
  const binding = require('@agent-network-protocol/anp-identity-android-arm64')
79
79
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-android-arm64/package.json').version
80
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
81
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
80
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
81
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
82
82
  }
83
83
  return binding
84
84
  } catch (e) {
@@ -93,8 +93,8 @@ function requireNative() {
93
93
  try {
94
94
  const binding = require('@agent-network-protocol/anp-identity-android-arm-eabi')
95
95
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-android-arm-eabi/package.json').version
96
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
97
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
96
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
97
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
98
98
  }
99
99
  return binding
100
100
  } catch (e) {
@@ -114,8 +114,8 @@ function requireNative() {
114
114
  try {
115
115
  const binding = require('@agent-network-protocol/anp-identity-win32-x64-gnu')
116
116
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-win32-x64-gnu/package.json').version
117
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
118
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
117
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
118
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
119
119
  }
120
120
  return binding
121
121
  } catch (e) {
@@ -130,8 +130,8 @@ function requireNative() {
130
130
  try {
131
131
  const binding = require('@agent-network-protocol/anp-identity-win32-x64-msvc')
132
132
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-win32-x64-msvc/package.json').version
133
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
134
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
133
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
134
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
135
135
  }
136
136
  return binding
137
137
  } catch (e) {
@@ -147,8 +147,8 @@ function requireNative() {
147
147
  try {
148
148
  const binding = require('@agent-network-protocol/anp-identity-win32-ia32-msvc')
149
149
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-win32-ia32-msvc/package.json').version
150
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
151
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
150
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
151
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
152
152
  }
153
153
  return binding
154
154
  } catch (e) {
@@ -163,8 +163,8 @@ function requireNative() {
163
163
  try {
164
164
  const binding = require('@agent-network-protocol/anp-identity-win32-arm64-msvc')
165
165
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-win32-arm64-msvc/package.json').version
166
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
167
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
166
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
167
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
168
168
  }
169
169
  return binding
170
170
  } catch (e) {
@@ -182,8 +182,8 @@ function requireNative() {
182
182
  try {
183
183
  const binding = require('@agent-network-protocol/anp-identity-darwin-universal')
184
184
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-darwin-universal/package.json').version
185
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
186
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
185
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
186
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
187
187
  }
188
188
  return binding
189
189
  } catch (e) {
@@ -198,8 +198,8 @@ function requireNative() {
198
198
  try {
199
199
  const binding = require('@agent-network-protocol/anp-identity-darwin-x64')
200
200
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-darwin-x64/package.json').version
201
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
202
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
201
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
202
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
203
203
  }
204
204
  return binding
205
205
  } catch (e) {
@@ -214,8 +214,8 @@ function requireNative() {
214
214
  try {
215
215
  const binding = require('@agent-network-protocol/anp-identity-darwin-arm64')
216
216
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-darwin-arm64/package.json').version
217
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
218
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
217
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
218
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
219
219
  }
220
220
  return binding
221
221
  } catch (e) {
@@ -234,8 +234,8 @@ function requireNative() {
234
234
  try {
235
235
  const binding = require('@agent-network-protocol/anp-identity-freebsd-x64')
236
236
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-freebsd-x64/package.json').version
237
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
238
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
237
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
238
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
239
239
  }
240
240
  return binding
241
241
  } catch (e) {
@@ -250,8 +250,8 @@ function requireNative() {
250
250
  try {
251
251
  const binding = require('@agent-network-protocol/anp-identity-freebsd-arm64')
252
252
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-freebsd-arm64/package.json').version
253
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
254
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
253
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
254
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
255
255
  }
256
256
  return binding
257
257
  } catch (e) {
@@ -271,8 +271,8 @@ function requireNative() {
271
271
  try {
272
272
  const binding = require('@agent-network-protocol/anp-identity-linux-x64-musl')
273
273
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-x64-musl/package.json').version
274
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
275
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
274
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
275
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
276
276
  }
277
277
  return binding
278
278
  } catch (e) {
@@ -287,8 +287,8 @@ function requireNative() {
287
287
  try {
288
288
  const binding = require('@agent-network-protocol/anp-identity-linux-x64-gnu')
289
289
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-x64-gnu/package.json').version
290
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
291
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
290
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
291
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
292
292
  }
293
293
  return binding
294
294
  } catch (e) {
@@ -305,8 +305,8 @@ function requireNative() {
305
305
  try {
306
306
  const binding = require('@agent-network-protocol/anp-identity-linux-arm64-musl')
307
307
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-arm64-musl/package.json').version
308
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
309
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
308
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
309
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
310
310
  }
311
311
  return binding
312
312
  } catch (e) {
@@ -321,8 +321,8 @@ function requireNative() {
321
321
  try {
322
322
  const binding = require('@agent-network-protocol/anp-identity-linux-arm64-gnu')
323
323
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-arm64-gnu/package.json').version
324
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
325
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
324
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
325
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
326
326
  }
327
327
  return binding
328
328
  } catch (e) {
@@ -339,8 +339,8 @@ function requireNative() {
339
339
  try {
340
340
  const binding = require('@agent-network-protocol/anp-identity-linux-arm-musleabihf')
341
341
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-arm-musleabihf/package.json').version
342
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
343
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
342
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
343
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
344
344
  }
345
345
  return binding
346
346
  } catch (e) {
@@ -355,8 +355,8 @@ function requireNative() {
355
355
  try {
356
356
  const binding = require('@agent-network-protocol/anp-identity-linux-arm-gnueabihf')
357
357
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-arm-gnueabihf/package.json').version
358
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
359
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
358
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
359
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
360
360
  }
361
361
  return binding
362
362
  } catch (e) {
@@ -373,8 +373,8 @@ function requireNative() {
373
373
  try {
374
374
  const binding = require('@agent-network-protocol/anp-identity-linux-loong64-musl')
375
375
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-loong64-musl/package.json').version
376
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
377
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
376
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
377
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
378
378
  }
379
379
  return binding
380
380
  } catch (e) {
@@ -389,8 +389,8 @@ function requireNative() {
389
389
  try {
390
390
  const binding = require('@agent-network-protocol/anp-identity-linux-loong64-gnu')
391
391
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-loong64-gnu/package.json').version
392
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
393
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
392
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
393
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
394
394
  }
395
395
  return binding
396
396
  } catch (e) {
@@ -407,8 +407,8 @@ function requireNative() {
407
407
  try {
408
408
  const binding = require('@agent-network-protocol/anp-identity-linux-riscv64-musl')
409
409
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-riscv64-musl/package.json').version
410
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
411
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
410
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
411
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
412
412
  }
413
413
  return binding
414
414
  } catch (e) {
@@ -423,8 +423,8 @@ function requireNative() {
423
423
  try {
424
424
  const binding = require('@agent-network-protocol/anp-identity-linux-riscv64-gnu')
425
425
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-riscv64-gnu/package.json').version
426
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
427
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
426
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
427
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
428
428
  }
429
429
  return binding
430
430
  } catch (e) {
@@ -440,8 +440,8 @@ function requireNative() {
440
440
  try {
441
441
  const binding = require('@agent-network-protocol/anp-identity-linux-ppc64-gnu')
442
442
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-ppc64-gnu/package.json').version
443
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
444
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
443
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
444
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
445
445
  }
446
446
  return binding
447
447
  } catch (e) {
@@ -456,8 +456,8 @@ function requireNative() {
456
456
  try {
457
457
  const binding = require('@agent-network-protocol/anp-identity-linux-s390x-gnu')
458
458
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-linux-s390x-gnu/package.json').version
459
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
460
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
459
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
460
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
461
461
  }
462
462
  return binding
463
463
  } catch (e) {
@@ -476,8 +476,8 @@ function requireNative() {
476
476
  try {
477
477
  const binding = require('@agent-network-protocol/anp-identity-openharmony-arm64')
478
478
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-openharmony-arm64/package.json').version
479
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
480
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
479
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
480
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
481
481
  }
482
482
  return binding
483
483
  } catch (e) {
@@ -492,8 +492,8 @@ function requireNative() {
492
492
  try {
493
493
  const binding = require('@agent-network-protocol/anp-identity-openharmony-x64')
494
494
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-openharmony-x64/package.json').version
495
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
496
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
495
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
496
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
497
497
  }
498
498
  return binding
499
499
  } catch (e) {
@@ -508,8 +508,8 @@ function requireNative() {
508
508
  try {
509
509
  const binding = require('@agent-network-protocol/anp-identity-openharmony-arm')
510
510
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-openharmony-arm/package.json').version
511
- if (bindingPackageVersion !== '0.2.2' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
512
- throw new Error(`Native binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
511
+ if (bindingPackageVersion !== '0.2.5' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
512
+ throw new Error(`Native binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
513
513
  }
514
514
  return binding
515
515
  } catch (e) {
@@ -648,8 +648,8 @@ if (!nativeBinding || forceWasi) {
648
648
  if (!candidateFailed) {
649
649
  if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
650
650
  const bindingPackageVersion = require('@agent-network-protocol/anp-identity-wasm32-wasi/package.json').version
651
- if (bindingPackageVersion !== '0.2.2') {
652
- throw new Error(`WASI binding package version mismatch, expected 0.2.2 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
651
+ if (bindingPackageVersion !== '0.2.5') {
652
+ throw new Error(`WASI binding package version mismatch, expected 0.2.5 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
653
653
  }
654
654
  }
655
655
  wasiBinding = require('@agent-network-protocol/anp-identity-wasm32-wasi')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-network-protocol/anp-identity",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Secure E1 DID identity custody and lifecycle management for ANP",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {
@@ -53,11 +53,11 @@
53
53
  ]
54
54
  },
55
55
  "optionalDependencies": {
56
- "@agent-network-protocol/anp-identity-darwin-arm64": "0.2.5",
57
- "@agent-network-protocol/anp-identity-darwin-x64": "0.2.5",
58
- "@agent-network-protocol/anp-identity-linux-arm64-gnu": "0.2.5",
59
- "@agent-network-protocol/anp-identity-linux-x64-gnu": "0.2.5",
60
- "@agent-network-protocol/anp-identity-win32-x64-msvc": "0.2.5"
56
+ "@agent-network-protocol/anp-identity-darwin-arm64": "0.2.6",
57
+ "@agent-network-protocol/anp-identity-darwin-x64": "0.2.6",
58
+ "@agent-network-protocol/anp-identity-linux-arm64-gnu": "0.2.6",
59
+ "@agent-network-protocol/anp-identity-linux-x64-gnu": "0.2.6",
60
+ "@agent-network-protocol/anp-identity-win32-x64-msvc": "0.2.6"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@napi-rs/cli": "3.8.6",
package/provenance.json CHANGED
@@ -2,13 +2,13 @@
2
2
  "schemaVersion": 1,
3
3
  "package": {
4
4
  "name": "@agent-network-protocol/anp-identity",
5
- "version": "0.2.5"
5
+ "version": "0.2.6"
6
6
  },
7
7
  "target": "platform-independent-wrapper",
8
8
  "source": {
9
9
  "repository": "https://github.com/agent-network-protocol/anp-identity",
10
- "commit": "deb629c1c0d9f7bedcd47e3adf06e3c339626117",
11
- "committedAt": "2026-10-22T13:23:15+08:00",
10
+ "commit": "57d5c6263070b67bbe7beb5ab8c0667d9b8d3dff",
11
+ "committedAt": "2026-11-08T14:07:55+08:00",
12
12
  "dirty": false
13
13
  },
14
14
  "dependencyResolution": {
package/provider.d.ts CHANGED
@@ -12,6 +12,9 @@ import type {
12
12
  IdentityReference,
13
13
  JsonValue,
14
14
  OriginProofRequest,
15
+ OAuthClientAssertionRequest,
16
+ OAuthPublicJwk,
17
+ OAuthKeyChangeRequest,
15
18
  PreparedDocumentChange,
16
19
  PreparedIdentityTransition,
17
20
  PublicIdentity,
@@ -32,6 +35,8 @@ export type ProviderCapability =
32
35
  | 'IDENTITY_CREATE'
33
36
  | 'IDENTITY_IMPORT'
34
37
  | 'IDENTITY_SIGN'
38
+ | 'IDENTITY_PAP_SESSION'
39
+ | 'IDENTITY_PAP_DPOP'
35
40
  | 'IDENTITY_ECDH_SEALED'
36
41
  | 'IDENTITY_DOCUMENT_UPDATE'
37
42
  | 'IDENTITY_KEY_LIFECYCLE'
@@ -291,12 +296,26 @@ export interface ProviderLease {
291
296
  recoverIdentity(reference: IdentityReference): Promise<void>
292
297
  create(request: CreateIdentityRequest): Promise<PublicIdentity>
293
298
  delete(reference: IdentityReference): Promise<void>
299
+ providerCapabilities(): Promise<LocalSignerCapabilities>
300
+ prepareOAuthKeyChange(reference: IdentityReference, request: OAuthKeyChangeRequest): Promise<ProviderDocumentChangeSession>
301
+ exportCandidateOAuthPublicJwk(reference: IdentityReference, kid: string): Promise<OAuthPublicJwk>
302
+ createDelegatedKey(reference: IdentityReference, request: CreateTemporaryKeyRequest): Promise<TemporaryKey>
303
+ createDpopKey(reference: IdentityReference, request: CreateTemporaryKeyRequest): Promise<TemporaryKey>
304
+ describeTemporaryKey(reference: IdentityReference, request: DescribeTemporaryKeyRequest): Promise<TemporaryKey>
305
+ issuePapDelegation(reference: IdentityReference, request: PapDelegationRequest): Promise<string>
306
+ signPapSessionRequest(reference: IdentityReference, request: PapSessionRequest): Promise<string>
307
+ signDpopProof(reference: IdentityReference, request: DpopProofRequest): Promise<string>
308
+ retireTemporaryKey(reference: IdentityReference, request: RetireTemporaryKeyRequest): Promise<void>
309
+ oauthPublicJwk(reference: IdentityReference, kid?: string): Promise<OAuthPublicJwk>
310
+ signOAuthClientAssertion(reference: IdentityReference, request: OAuthClientAssertionRequest): Promise<string>
294
311
  sign(reference: IdentityReference, request: SignRequest): Promise<Signature>
295
312
  verify(reference: IdentityReference, request: VerifyRequest): Promise<'valid' | 'invalid'>
296
313
  signOriginProof(
297
314
  reference: IdentityReference,
298
315
  request: OriginProofRequest,
299
316
  ): Promise<SignedOriginProof>
317
+ signWebRegistrationProof(reference: IdentityReference, request: WebRegistrationProofRequest): Promise<ManagementProof>
318
+ signManagementProof(reference: IdentityReference, request: ManagementProofRequest): Promise<ManagementProof>
300
319
  signObjectProof(reference: IdentityReference, request: ObjectProofRequest): Promise<JsonValue>
301
320
  signDocumentProof(reference: IdentityReference, request: DocumentProofRequest): Promise<JsonValue>
302
321
  prepareHttpSignature(request: ExactHttpSigningRequest): Promise<PreparedHttpSignatureAttempt>
@@ -387,3 +406,22 @@ export interface PreparedIdentityMaterialImport {
387
406
  offer(): SealedIdentityMaterialImportOffer
388
407
  complete(token: string, envelopes: SealedSecretEnvelope[]): Promise<PublicIdentity>
389
408
  }
409
+
410
+ /** Host-only local custody API version 2. The owner must equal the lease consumer. */
411
+ export interface LocalSignerCapabilities { api_version: 2; algorithms: ('EdDSA' | 'ES256')[]; features: string[] }
412
+ export interface P256PublicJwk { kty: 'EC'; crv: 'P-256'; x: string; y: string }
413
+ export interface TemporaryKeyScope { owner: string; company_id: string; user_id: string; account_slot?: string }
414
+ export type TemporaryKeyPurpose = 'pap_session' | 'pap_dpop'
415
+ export interface TemporaryKeyReference { handle: string; generation: number }
416
+ export interface TemporaryKey extends TemporaryKeyReference { purpose: TemporaryKeyPurpose; public_jwk: P256PublicJwk; thumbprint: string }
417
+ export interface CreateTemporaryKeyRequest { operation_id: string; scope: TemporaryKeyScope }
418
+ export interface RetireTemporaryKeyRequest extends TemporaryKeyReference { scope: TemporaryKeyScope }
419
+ export interface DescribeTemporaryKeyRequest extends RetireTemporaryKeyRequest { purpose: TemporaryKeyPurpose }
420
+ export interface PapDelegationRequest { client_id: string; key: 'default' | { kid: string }; delegated_key: TemporaryKeyReference; scope: TemporaryKeyScope; ttl_seconds: number }
421
+ export interface PapSessionRequest extends RetireTemporaryKeyRequest { delegation: string; client_id: string; sid: string; sub: string; agent_id?: string; http_method: string; http_uri: string; access_token?: string }
422
+ export interface DpopProofRequest extends RetireTemporaryKeyRequest { http_method: string; http_uri: string; access_token?: string; nonce?: string }
423
+
424
+ export interface ManagementProofRequest { key: 'default' | { kid: string }; method: 'agent_client_prepare' | 'agent_client_activate' | 'agent_client_status' | 'agent_client_resolve' | 'agent_client_pap_callback_register' | 'agent_client_pap_callback_claim' | 'device_oauth_keys_update' | 'device_document_update'; params: JsonValue; audience?: string }
425
+ export interface ManagementProof { type: 'awiki-device-signature-v1'; key_id: string; created_at: string; expires_at: string; nonce: string; signature: string }
426
+
427
+ export interface WebRegistrationProofRequest { key: 'default' | { kid: string }; business_projection: JsonValue }
package/provider.js CHANGED
@@ -66,6 +66,7 @@ class ProviderLease {
66
66
  schemaCompatible: value.schema_compatible,
67
67
  identityCount: value.identity_count,
68
68
  health: value.health,
69
+ backendAvailable: value.backend_available,
69
70
  }
70
71
  }
71
72
 
@@ -107,6 +108,32 @@ class ProviderLease {
107
108
  return call(this.#inner.verify(reference, request))
108
109
  }
109
110
 
111
+ providerCapabilities() { return call(this.#inner.providerCapabilities()) }
112
+
113
+ async prepareOAuthKeyChange(reference, request) {
114
+ return new ProviderDocumentChangeSession(await call(this.#inner.prepareOauthKeyChange(reference, request)))
115
+ }
116
+
117
+ exportCandidateOAuthPublicJwk(reference, kid) {
118
+ return call(this.#inner.exportCandidateOauthPublicJwk(reference, kid))
119
+ }
120
+
121
+ createDelegatedKey(reference, request) { return call(this.#inner.createDelegatedKey(reference, request)) }
122
+ createDpopKey(reference, request) { return call(this.#inner.createDpopKey(reference, request)) }
123
+ describeTemporaryKey(reference, request) { return call(this.#inner.describeTemporaryKey(reference, request)) }
124
+ issuePapDelegation(reference, request) { return call(this.#inner.issuePapDelegation(reference, request)) }
125
+ signPapSessionRequest(reference, request) { return call(this.#inner.signPapSessionRequest(reference, request)) }
126
+ signDpopProof(reference, request) { return call(this.#inner.signDpopProof(reference, request)) }
127
+ retireTemporaryKey(reference, request) { return call(this.#inner.retireTemporaryKey(reference, request)) }
128
+
129
+ oauthPublicJwk(reference, kid) {
130
+ return call(this.#inner.oauthPublicJwk(reference, kid))
131
+ }
132
+
133
+ signOAuthClientAssertion(reference, request) {
134
+ return call(this.#inner.signOauthClientAssertion(reference, request))
135
+ }
136
+
110
137
  sign(reference, request) {
111
138
  return call(this.#inner.sign(reference, request))
112
139
  }
@@ -115,6 +142,10 @@ class ProviderLease {
115
142
  return call(this.#inner.signOriginProof(reference, request))
116
143
  }
117
144
 
145
+ signWebRegistrationProof(reference, request) { return call(this.#inner.signWebRegistrationProof(reference, request)) }
146
+
147
+ signManagementProof(reference, request) { return call(this.#inner.signManagementProof(reference, request)) }
148
+
118
149
  signObjectProof(reference, request) {
119
150
  return call(this.#inner.signObjectProof(reference, proofRequest(request)))
120
151
  }
@@ -532,6 +563,8 @@ function documentChangeRequest(value) {
532
563
  return {
533
564
  changes: value.changes.map((entry) => {
534
565
  switch (entry.change) {
566
+ case 'bind_oauth_client':
567
+ return { change: entry.change, client_id: entry.clientId, kid: entry.kid, metadata_sha256: entry.metadataSha256 }
535
568
  case 'rotate_signing_key':
536
569
  return { change: entry.change, old_kid: entry.oldKid, new_fragment: entry.newFragment }
537
570
  case 'add_authentication_key':
@@ -577,6 +610,7 @@ function nativeService(value) {
577
610
  function preparedChange(value) {
578
611
  return {
579
612
  operationId: value.operation_id,
613
+ baseEvidence: { documentVersion: value.base_evidence.document_version, registryVersion: value.base_evidence.registry_version, documentDigest: value.base_evidence.document_digest },
580
614
  candidateDocument: value.candidate_document,
581
615
  candidateDigest: value.candidate_digest,
582
616
  }
package/sbom.cdx.json CHANGED
@@ -6,43 +6,43 @@
6
6
  "component": {
7
7
  "type": "library",
8
8
  "name": "@agent-network-protocol/anp-identity",
9
- "version": "0.2.5"
9
+ "version": "0.2.6"
10
10
  }
11
11
  },
12
12
  "components": [
13
13
  {
14
14
  "type": "library",
15
15
  "name": "@agent-network-protocol/anp-identity-darwin-arm64",
16
- "version": "0.2.5",
17
- "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-darwin-arm64@0.2.5",
16
+ "version": "0.2.6",
17
+ "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-darwin-arm64@0.2.6",
18
18
  "scope": "optional"
19
19
  },
20
20
  {
21
21
  "type": "library",
22
22
  "name": "@agent-network-protocol/anp-identity-darwin-x64",
23
- "version": "0.2.5",
24
- "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-darwin-x64@0.2.5",
23
+ "version": "0.2.6",
24
+ "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-darwin-x64@0.2.6",
25
25
  "scope": "optional"
26
26
  },
27
27
  {
28
28
  "type": "library",
29
29
  "name": "@agent-network-protocol/anp-identity-linux-arm64-gnu",
30
- "version": "0.2.5",
31
- "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-linux-arm64-gnu@0.2.5",
30
+ "version": "0.2.6",
31
+ "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-linux-arm64-gnu@0.2.6",
32
32
  "scope": "optional"
33
33
  },
34
34
  {
35
35
  "type": "library",
36
36
  "name": "@agent-network-protocol/anp-identity-linux-x64-gnu",
37
- "version": "0.2.5",
38
- "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-linux-x64-gnu@0.2.5",
37
+ "version": "0.2.6",
38
+ "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-linux-x64-gnu@0.2.6",
39
39
  "scope": "optional"
40
40
  },
41
41
  {
42
42
  "type": "library",
43
43
  "name": "@agent-network-protocol/anp-identity-win32-x64-msvc",
44
- "version": "0.2.5",
45
- "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-win32-x64-msvc@0.2.5",
44
+ "version": "0.2.6",
45
+ "purl": "pkg:npm/%40agent-network-protocol%2Fanp-identity-win32-x64-msvc@0.2.6",
46
46
  "scope": "optional"
47
47
  },
48
48
  {
@@ -802,6 +802,17 @@
802
802
  ],
803
803
  "purl": "pkg:cargo/digest@0.10.7"
804
804
  },
805
+ {
806
+ "type": "library",
807
+ "name": "displaydoc",
808
+ "version": "0.2.7",
809
+ "licenses": [
810
+ {
811
+ "expression": "MIT OR Apache-2.0"
812
+ }
813
+ ],
814
+ "purl": "pkg:cargo/displaydoc@0.2.7"
815
+ },
805
816
  {
806
817
  "type": "library",
807
818
  "name": "ecdsa",
@@ -978,6 +989,17 @@
978
989
  ],
979
990
  "purl": "pkg:cargo/find-msvc-tools@0.1.11"
980
991
  },
992
+ {
993
+ "type": "library",
994
+ "name": "form_urlencoded",
995
+ "version": "1.2.2",
996
+ "licenses": [
997
+ {
998
+ "expression": "MIT OR Apache-2.0"
999
+ }
1000
+ ],
1001
+ "purl": "pkg:cargo/form_urlencoded@1.2.2"
1002
+ },
981
1003
  {
982
1004
  "type": "library",
983
1005
  "name": "fs2",
@@ -1286,6 +1308,105 @@
1286
1308
  ],
1287
1309
  "purl": "pkg:cargo/iana-time-zone@0.1.65"
1288
1310
  },
1311
+ {
1312
+ "type": "library",
1313
+ "name": "icu_collections",
1314
+ "version": "2.4.0",
1315
+ "licenses": [
1316
+ {
1317
+ "expression": "Unicode-3.0"
1318
+ }
1319
+ ],
1320
+ "purl": "pkg:cargo/icu_collections@2.4.0"
1321
+ },
1322
+ {
1323
+ "type": "library",
1324
+ "name": "icu_locale_core",
1325
+ "version": "2.4.0",
1326
+ "licenses": [
1327
+ {
1328
+ "expression": "Unicode-3.0"
1329
+ }
1330
+ ],
1331
+ "purl": "pkg:cargo/icu_locale_core@2.4.0"
1332
+ },
1333
+ {
1334
+ "type": "library",
1335
+ "name": "icu_normalizer_data",
1336
+ "version": "2.4.0",
1337
+ "licenses": [
1338
+ {
1339
+ "expression": "Unicode-3.0"
1340
+ }
1341
+ ],
1342
+ "purl": "pkg:cargo/icu_normalizer_data@2.4.0"
1343
+ },
1344
+ {
1345
+ "type": "library",
1346
+ "name": "icu_normalizer",
1347
+ "version": "2.4.0",
1348
+ "licenses": [
1349
+ {
1350
+ "expression": "Unicode-3.0"
1351
+ }
1352
+ ],
1353
+ "purl": "pkg:cargo/icu_normalizer@2.4.0"
1354
+ },
1355
+ {
1356
+ "type": "library",
1357
+ "name": "icu_properties_data",
1358
+ "version": "2.4.0",
1359
+ "licenses": [
1360
+ {
1361
+ "expression": "Unicode-3.0"
1362
+ }
1363
+ ],
1364
+ "purl": "pkg:cargo/icu_properties_data@2.4.0"
1365
+ },
1366
+ {
1367
+ "type": "library",
1368
+ "name": "icu_properties",
1369
+ "version": "2.4.0",
1370
+ "licenses": [
1371
+ {
1372
+ "expression": "Unicode-3.0"
1373
+ }
1374
+ ],
1375
+ "purl": "pkg:cargo/icu_properties@2.4.0"
1376
+ },
1377
+ {
1378
+ "type": "library",
1379
+ "name": "icu_provider",
1380
+ "version": "2.4.0",
1381
+ "licenses": [
1382
+ {
1383
+ "expression": "Unicode-3.0"
1384
+ }
1385
+ ],
1386
+ "purl": "pkg:cargo/icu_provider@2.4.0"
1387
+ },
1388
+ {
1389
+ "type": "library",
1390
+ "name": "idna_adapter",
1391
+ "version": "1.2.2",
1392
+ "licenses": [
1393
+ {
1394
+ "expression": "Apache-2.0 OR MIT"
1395
+ }
1396
+ ],
1397
+ "purl": "pkg:cargo/idna_adapter@1.2.2"
1398
+ },
1399
+ {
1400
+ "type": "library",
1401
+ "name": "idna",
1402
+ "version": "1.1.0",
1403
+ "licenses": [
1404
+ {
1405
+ "expression": "MIT OR Apache-2.0"
1406
+ }
1407
+ ],
1408
+ "purl": "pkg:cargo/idna@1.1.0"
1409
+ },
1289
1410
  {
1290
1411
  "type": "library",
1291
1412
  "name": "indexmap",
@@ -1429,6 +1550,17 @@
1429
1550
  ],
1430
1551
  "purl": "pkg:cargo/linux-raw-sys@0.12.1"
1431
1552
  },
1553
+ {
1554
+ "type": "library",
1555
+ "name": "litemap",
1556
+ "version": "0.8.3",
1557
+ "licenses": [
1558
+ {
1559
+ "expression": "Unicode-3.0"
1560
+ }
1561
+ ],
1562
+ "purl": "pkg:cargo/litemap@0.8.3"
1563
+ },
1432
1564
  {
1433
1565
  "type": "library",
1434
1566
  "name": "log",
@@ -1792,6 +1924,17 @@
1792
1924
  ],
1793
1925
  "purl": "pkg:cargo/polyval@0.6.2"
1794
1926
  },
1927
+ {
1928
+ "type": "library",
1929
+ "name": "potential_utf",
1930
+ "version": "0.1.6",
1931
+ "licenses": [
1932
+ {
1933
+ "expression": "Unicode-3.0"
1934
+ }
1935
+ ],
1936
+ "purl": "pkg:cargo/potential_utf@0.1.6"
1937
+ },
1795
1938
  {
1796
1939
  "type": "library",
1797
1940
  "name": "ppv-lite86",
@@ -2265,6 +2408,17 @@
2265
2408
  ],
2266
2409
  "purl": "pkg:cargo/slab@0.4.12"
2267
2410
  },
2411
+ {
2412
+ "type": "library",
2413
+ "name": "smallvec",
2414
+ "version": "1.16.4",
2415
+ "licenses": [
2416
+ {
2417
+ "expression": "MIT OR Apache-2.0"
2418
+ }
2419
+ ],
2420
+ "purl": "pkg:cargo/smallvec@1.16.4"
2421
+ },
2268
2422
  {
2269
2423
  "type": "library",
2270
2424
  "name": "spki",
@@ -2276,6 +2430,17 @@
2276
2430
  ],
2277
2431
  "purl": "pkg:cargo/spki@0.7.3"
2278
2432
  },
2433
+ {
2434
+ "type": "library",
2435
+ "name": "stable_deref_trait",
2436
+ "version": "1.2.1",
2437
+ "licenses": [
2438
+ {
2439
+ "expression": "MIT OR Apache-2.0"
2440
+ }
2441
+ ],
2442
+ "purl": "pkg:cargo/stable_deref_trait@1.2.1"
2443
+ },
2279
2444
  {
2280
2445
  "type": "library",
2281
2446
  "name": "subtle",
@@ -2309,6 +2474,17 @@
2309
2474
  ],
2310
2475
  "purl": "pkg:cargo/syn@3.0.3"
2311
2476
  },
2477
+ {
2478
+ "type": "library",
2479
+ "name": "synstructure",
2480
+ "version": "0.14.0",
2481
+ "licenses": [
2482
+ {
2483
+ "expression": "MIT"
2484
+ }
2485
+ ],
2486
+ "purl": "pkg:cargo/synstructure@0.14.0"
2487
+ },
2312
2488
  {
2313
2489
  "type": "library",
2314
2490
  "name": "target-triple",
@@ -2397,6 +2573,17 @@
2397
2573
  ],
2398
2574
  "purl": "pkg:cargo/tiny_http@0.12.0"
2399
2575
  },
2576
+ {
2577
+ "type": "library",
2578
+ "name": "tinystr",
2579
+ "version": "0.8.5",
2580
+ "licenses": [
2581
+ {
2582
+ "expression": "Unicode-3.0"
2583
+ }
2584
+ ],
2585
+ "purl": "pkg:cargo/tinystr@0.8.5"
2586
+ },
2400
2587
  {
2401
2588
  "type": "library",
2402
2589
  "name": "tinytemplate",
@@ -2617,6 +2804,39 @@
2617
2804
  ],
2618
2805
  "purl": "pkg:cargo/untrusted@0.9.0"
2619
2806
  },
2807
+ {
2808
+ "type": "library",
2809
+ "name": "url",
2810
+ "version": "2.5.8",
2811
+ "licenses": [
2812
+ {
2813
+ "expression": "MIT OR Apache-2.0"
2814
+ }
2815
+ ],
2816
+ "purl": "pkg:cargo/url@2.5.8"
2817
+ },
2818
+ {
2819
+ "type": "library",
2820
+ "name": "utf_types",
2821
+ "version": "1.0.0",
2822
+ "licenses": [
2823
+ {
2824
+ "expression": "Apache-2.0 OR MIT"
2825
+ }
2826
+ ],
2827
+ "purl": "pkg:cargo/utf_types@1.0.0"
2828
+ },
2829
+ {
2830
+ "type": "library",
2831
+ "name": "utf8_iter",
2832
+ "version": "1.1.0",
2833
+ "licenses": [
2834
+ {
2835
+ "expression": "Apache-2.0 OR MIT"
2836
+ }
2837
+ ],
2838
+ "purl": "pkg:cargo/utf8_iter@1.1.0"
2839
+ },
2620
2840
  {
2621
2841
  "type": "library",
2622
2842
  "name": "uuid",
@@ -2991,6 +3211,17 @@
2991
3211
  ],
2992
3212
  "purl": "pkg:cargo/wit-bindgen@0.57.1"
2993
3213
  },
3214
+ {
3215
+ "type": "library",
3216
+ "name": "writeable",
3217
+ "version": "0.6.4",
3218
+ "licenses": [
3219
+ {
3220
+ "expression": "Unicode-3.0"
3221
+ }
3222
+ ],
3223
+ "purl": "pkg:cargo/writeable@0.6.4"
3224
+ },
2994
3225
  {
2995
3226
  "type": "library",
2996
3227
  "name": "x25519-dalek",
@@ -3002,6 +3233,28 @@
3002
3233
  ],
3003
3234
  "purl": "pkg:cargo/x25519-dalek@2.0.1"
3004
3235
  },
3236
+ {
3237
+ "type": "library",
3238
+ "name": "yoke-derive",
3239
+ "version": "0.8.4",
3240
+ "licenses": [
3241
+ {
3242
+ "expression": "Unicode-3.0"
3243
+ }
3244
+ ],
3245
+ "purl": "pkg:cargo/yoke-derive@0.8.4"
3246
+ },
3247
+ {
3248
+ "type": "library",
3249
+ "name": "yoke",
3250
+ "version": "0.8.4",
3251
+ "licenses": [
3252
+ {
3253
+ "expression": "Unicode-3.0"
3254
+ }
3255
+ ],
3256
+ "purl": "pkg:cargo/yoke@0.8.4"
3257
+ },
3005
3258
  {
3006
3259
  "type": "library",
3007
3260
  "name": "zbus_macros",
@@ -3079,6 +3332,28 @@
3079
3332
  ],
3080
3333
  "purl": "pkg:cargo/zerocopy@0.8.56"
3081
3334
  },
3335
+ {
3336
+ "type": "library",
3337
+ "name": "zerofrom-derive",
3338
+ "version": "0.1.8",
3339
+ "licenses": [
3340
+ {
3341
+ "expression": "Unicode-3.0"
3342
+ }
3343
+ ],
3344
+ "purl": "pkg:cargo/zerofrom-derive@0.1.8"
3345
+ },
3346
+ {
3347
+ "type": "library",
3348
+ "name": "zerofrom",
3349
+ "version": "0.1.8",
3350
+ "licenses": [
3351
+ {
3352
+ "expression": "Unicode-3.0"
3353
+ }
3354
+ ],
3355
+ "purl": "pkg:cargo/zerofrom@0.1.8"
3356
+ },
3082
3357
  {
3083
3358
  "type": "library",
3084
3359
  "name": "zeroize_derive",
@@ -3101,6 +3376,39 @@
3101
3376
  ],
3102
3377
  "purl": "pkg:cargo/zeroize@1.9.0"
3103
3378
  },
3379
+ {
3380
+ "type": "library",
3381
+ "name": "zerotrie",
3382
+ "version": "0.2.5",
3383
+ "licenses": [
3384
+ {
3385
+ "expression": "Unicode-3.0"
3386
+ }
3387
+ ],
3388
+ "purl": "pkg:cargo/zerotrie@0.2.5"
3389
+ },
3390
+ {
3391
+ "type": "library",
3392
+ "name": "zerovec-derive",
3393
+ "version": "0.11.7",
3394
+ "licenses": [
3395
+ {
3396
+ "expression": "Unicode-3.0"
3397
+ }
3398
+ ],
3399
+ "purl": "pkg:cargo/zerovec-derive@0.11.7"
3400
+ },
3401
+ {
3402
+ "type": "library",
3403
+ "name": "zerovec",
3404
+ "version": "0.11.9",
3405
+ "licenses": [
3406
+ {
3407
+ "expression": "Unicode-3.0"
3408
+ }
3409
+ ],
3410
+ "purl": "pkg:cargo/zerovec@0.11.9"
3411
+ },
3104
3412
  {
3105
3413
  "type": "library",
3106
3414
  "name": "zmij",