@sd-jwt/sd-jwt-vc 0.15.2-next.8 → 0.16.0
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/CHANGELOG.md +18 -0
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +10 -10
- package/src/sd-jwt-vc-instance.ts +9 -9
- package/src/test/index.spec.ts +10 -10
- package/src/test/vct.spec.ts +5 -5
- package/src/verification-result.ts +1 -1
- package/test/app-e2e.spec.ts +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.16.0](https://github.com/openwallet-foundation/sd-jwt-js/compare/v0.15.1...v0.16.0) (2025-10-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* change repo url from labs to other one ([#323](https://github.com/openwallet-foundation/sd-jwt-js/issues/323)) ([f68c847](https://github.com/openwallet-foundation/sd-jwt-js/commit/f68c8476c2f04bb9d53acd4059b59caf271df015))
|
|
12
|
+
* set correct url in package json ([#321](https://github.com/openwallet-foundation/sd-jwt-js/issues/321)) ([554152c](https://github.com/openwallet-foundation/sd-jwt-js/commit/554152cc819bbc3afb504b25f4a2018a92fb72f1))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* Adding validation during issuance when a schema is passed ([#308](https://github.com/openwallet-foundation/sd-jwt-js/issues/308)) ([90eef6b](https://github.com/openwallet-foundation/sd-jwt-js/commit/90eef6be1c0838d334ecdef083dbb609c3812357))
|
|
18
|
+
* updates all dependencies to latest versions + biome updates ([#324](https://github.com/openwallet-foundation/sd-jwt-js/issues/324)) ([75d5780](https://github.com/openwallet-foundation/sd-jwt-js/commit/75d5780fb53c5e2c886537b283503fc6fb088a4a))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
6
24
|
## [0.15.1](https://github.com/openwallet-foundation/sd-jwt-js/compare/v0.15.0...v0.15.1) (2025-08-28)
|
|
7
25
|
|
|
8
26
|
|
package/dist/index.js
CHANGED
|
@@ -58,8 +58,8 @@ module.exports = __toCommonJS(index_exports);
|
|
|
58
58
|
|
|
59
59
|
// src/sd-jwt-vc-instance.ts
|
|
60
60
|
var import_core = require("@sd-jwt/core");
|
|
61
|
-
var import_utils = require("@sd-jwt/utils");
|
|
62
61
|
var import_jwt_status_list = require("@sd-jwt/jwt-status-list");
|
|
62
|
+
var import_utils = require("@sd-jwt/utils");
|
|
63
63
|
var import_ajv = __toESM(require("ajv"));
|
|
64
64
|
var import_ajv_formats = __toESM(require("ajv-formats"));
|
|
65
65
|
var SDJwtVcInstance = class _SDJwtVcInstance extends import_core.SDJwtInstance {
|
|
@@ -288,7 +288,7 @@ var SDJwtVcInstance = class _SDJwtVcInstance extends import_core.SDJwtInstance {
|
|
|
288
288
|
if ((_a = result.header) == null ? void 0 : _a.vctm) {
|
|
289
289
|
return this.fetchVctFromHeader(result.payload.vct, result);
|
|
290
290
|
}
|
|
291
|
-
const fetcher = (_b = this.userConfig.vctFetcher) != null ? _b : (uri, integrity) => this.fetch(uri, integrity);
|
|
291
|
+
const fetcher = (_b = this.userConfig.vctFetcher) != null ? _b : ((uri, integrity) => this.fetch(uri, integrity));
|
|
292
292
|
return fetcher(result.payload.vct, result.payload["vct#Integrity"]);
|
|
293
293
|
});
|
|
294
294
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -24,10 +24,10 @@ var __async = (__this, __arguments, generator) => {
|
|
|
24
24
|
|
|
25
25
|
// src/sd-jwt-vc-instance.ts
|
|
26
26
|
import { Jwt, SDJwt, SDJwtInstance } from "@sd-jwt/core";
|
|
27
|
-
import { base64urlDecode, SDJWTException } from "@sd-jwt/utils";
|
|
28
27
|
import {
|
|
29
28
|
getListFromStatusListJWT
|
|
30
29
|
} from "@sd-jwt/jwt-status-list";
|
|
30
|
+
import { base64urlDecode, SDJWTException } from "@sd-jwt/utils";
|
|
31
31
|
import Ajv from "ajv";
|
|
32
32
|
import addFormats from "ajv-formats";
|
|
33
33
|
var SDJwtVcInstance = class _SDJwtVcInstance extends SDJwtInstance {
|
|
@@ -256,7 +256,7 @@ var SDJwtVcInstance = class _SDJwtVcInstance extends SDJwtInstance {
|
|
|
256
256
|
if ((_a = result.header) == null ? void 0 : _a.vctm) {
|
|
257
257
|
return this.fetchVctFromHeader(result.payload.vct, result);
|
|
258
258
|
}
|
|
259
|
-
const fetcher = (_b = this.userConfig.vctFetcher) != null ? _b : (uri, integrity) => this.fetch(uri, integrity);
|
|
259
|
+
const fetcher = (_b = this.userConfig.vctFetcher) != null ? _b : ((uri, integrity) => this.fetch(uri, integrity));
|
|
260
260
|
return fetcher(result.payload.vct, result.payload["vct#Integrity"]);
|
|
261
261
|
});
|
|
262
262
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-jwt/sd-jwt-vc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "sd-jwt draft 7 implementation in typescript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"sd-jwt-vc"
|
|
27
27
|
],
|
|
28
28
|
"engines": {
|
|
29
|
-
"node": ">=
|
|
29
|
+
"node": ">=20"
|
|
30
30
|
},
|
|
31
31
|
"repository": {
|
|
32
32
|
"url": "https://github.com/openwallet-foundation/sd-jwt-js"
|
|
@@ -38,17 +38,17 @@
|
|
|
38
38
|
},
|
|
39
39
|
"license": "Apache-2.0",
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@sd-jwt/core": "0.
|
|
42
|
-
"@sd-jwt/jwt-status-list": "0.
|
|
43
|
-
"@sd-jwt/utils": "0.
|
|
41
|
+
"@sd-jwt/core": "0.16.0",
|
|
42
|
+
"@sd-jwt/jwt-status-list": "0.16.0",
|
|
43
|
+
"@sd-jwt/utils": "0.16.0",
|
|
44
44
|
"ajv": "^8.17.1",
|
|
45
45
|
"ajv-formats": "^3.0.1"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@sd-jwt/crypto-nodejs": "0.
|
|
49
|
-
"@sd-jwt/types": "0.
|
|
50
|
-
"jose": "^
|
|
51
|
-
"msw": "^2.3
|
|
48
|
+
"@sd-jwt/crypto-nodejs": "0.16.0",
|
|
49
|
+
"@sd-jwt/types": "0.16.0",
|
|
50
|
+
"jose": "^6.1.0",
|
|
51
|
+
"msw": "^2.11.3"
|
|
52
52
|
},
|
|
53
53
|
"publishConfig": {
|
|
54
54
|
"access": "public"
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"esm"
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "910c79c1607e91ae61e048a0c1b81c9ba0886684"
|
|
70
70
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { Jwt, SDJwt, SDJwtInstance, type VerifierOptions } from '@sd-jwt/core';
|
|
2
|
+
import {
|
|
3
|
+
getListFromStatusListJWT,
|
|
4
|
+
type StatusListJWTHeaderParameters,
|
|
5
|
+
type StatusListJWTPayload,
|
|
6
|
+
} from '@sd-jwt/jwt-status-list';
|
|
2
7
|
import type { DisclosureFrame, Hasher, Verifier } from '@sd-jwt/types';
|
|
3
8
|
import { base64urlDecode, SDJWTException } from '@sd-jwt/utils';
|
|
4
|
-
import
|
|
9
|
+
import Ajv, { type SchemaObject } from 'ajv';
|
|
10
|
+
import addFormats from 'ajv-formats';
|
|
5
11
|
import type {
|
|
6
12
|
SDJWTVCConfig,
|
|
7
13
|
StatusListFetcher,
|
|
8
14
|
StatusValidator,
|
|
9
15
|
} from './sd-jwt-vc-config';
|
|
10
|
-
import {
|
|
11
|
-
type StatusListJWTPayload,
|
|
12
|
-
getListFromStatusListJWT,
|
|
13
|
-
type StatusListJWTHeaderParameters,
|
|
14
|
-
} from '@sd-jwt/jwt-status-list';
|
|
16
|
+
import type { SdJwtVcPayload } from './sd-jwt-vc-payload';
|
|
15
17
|
import type { TypeMetadataFormat } from './sd-jwt-vc-type-metadata-format';
|
|
16
|
-
import Ajv, { type SchemaObject } from 'ajv';
|
|
17
|
-
import type { VerificationResult } from './verification-result';
|
|
18
|
-
import addFormats from 'ajv-formats';
|
|
19
18
|
import type { VcTFetcher } from './sd-jwt-vc-vct';
|
|
19
|
+
import type { VerificationResult } from './verification-result';
|
|
20
20
|
|
|
21
21
|
export class SDJwtVcInstance extends SDJwtInstance<SdJwtVcPayload> {
|
|
22
22
|
/**
|
package/src/test/index.spec.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
+
import Crypto from 'node:crypto';
|
|
1
2
|
import { digest, generateSalt } from '@sd-jwt/crypto-nodejs';
|
|
3
|
+
import {
|
|
4
|
+
createHeaderAndPayload,
|
|
5
|
+
StatusList,
|
|
6
|
+
type StatusListJWTHeaderParameters,
|
|
7
|
+
} from '@sd-jwt/jwt-status-list';
|
|
2
8
|
import type {
|
|
3
9
|
DisclosureFrame,
|
|
10
|
+
JwtPayload,
|
|
4
11
|
Signer,
|
|
5
12
|
Verifier,
|
|
6
|
-
JwtPayload,
|
|
7
13
|
} from '@sd-jwt/types';
|
|
8
|
-
import {
|
|
14
|
+
import { SignJWT } from 'jose';
|
|
15
|
+
import { describe, expect, test } from 'vitest';
|
|
9
16
|
import { SDJwtVcInstance } from '..';
|
|
10
17
|
import type { SdJwtVcPayload } from '../sd-jwt-vc-payload';
|
|
11
|
-
import Crypto from 'node:crypto';
|
|
12
|
-
import {
|
|
13
|
-
StatusList,
|
|
14
|
-
type StatusListJWTHeaderParameters,
|
|
15
|
-
createHeaderAndPayload,
|
|
16
|
-
} from '@sd-jwt/jwt-status-list';
|
|
17
|
-
import { SignJWT } from 'jose';
|
|
18
18
|
|
|
19
19
|
const iss = 'ExampleIssuer';
|
|
20
20
|
const vct = 'ExampleCredentialType';
|
|
@@ -100,7 +100,7 @@ describe('Revocation', () => {
|
|
|
100
100
|
hasher: digest,
|
|
101
101
|
hashAlg: 'sha-256',
|
|
102
102
|
saltGenerator: generateSalt,
|
|
103
|
-
statusListFetcher(
|
|
103
|
+
statusListFetcher(_uri: string) {
|
|
104
104
|
// we emulate fetching the status list from the uri. Validation of the JWT is not done here in the test but should be done in the implementation.
|
|
105
105
|
return Promise.resolve(statusListJWT);
|
|
106
106
|
},
|
package/src/test/vct.spec.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import Crypto from 'node:crypto';
|
|
2
|
+
import { afterEach } from 'node:test';
|
|
1
3
|
import { digest, generateSalt } from '@sd-jwt/crypto-nodejs';
|
|
2
4
|
import type { DisclosureFrame, Signer, Verifier } from '@sd-jwt/types';
|
|
3
|
-
import {
|
|
5
|
+
import { HttpResponse, http } from 'msw';
|
|
6
|
+
import { setupServer } from 'msw/node';
|
|
7
|
+
import { afterAll, beforeAll, describe, expect, test } from 'vitest';
|
|
4
8
|
import { SDJwtVcInstance } from '..';
|
|
5
9
|
import type { SdJwtVcPayload } from '../sd-jwt-vc-payload';
|
|
6
|
-
import Crypto from 'node:crypto';
|
|
7
|
-
import { setupServer } from 'msw/node';
|
|
8
|
-
import { HttpResponse, http } from 'msw';
|
|
9
|
-
import { afterEach } from 'node:test';
|
|
10
10
|
import type { TypeMetadataFormat } from '../sd-jwt-vc-type-metadata-format';
|
|
11
11
|
|
|
12
12
|
const exampleVctm = {
|
package/test/app-e2e.spec.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import Crypto from 'node:crypto';
|
|
2
|
-
import
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { digest, generateSalt } from '@sd-jwt/crypto-nodejs';
|
|
3
5
|
import type {
|
|
4
6
|
DisclosureFrame,
|
|
5
7
|
PresentationFrame,
|
|
6
8
|
Signer,
|
|
7
9
|
Verifier,
|
|
8
10
|
} from '@sd-jwt/types';
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
import path from 'node:path';
|
|
11
11
|
import { describe, expect, test } from 'vitest';
|
|
12
|
-
import {
|
|
12
|
+
import { SDJwtVcInstance } from '../src/index';
|
|
13
13
|
|
|
14
14
|
const createSignerVerifier = () => {
|
|
15
15
|
const { privateKey, publicKey } = Crypto.generateKeyPairSync('ed25519');
|