@sd-jwt/types 0.3.2-next.109 → 0.3.2-next.111
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/dist/index.d.mts +48 -1
- package/dist/index.d.ts +48 -1
- package/package.json +2 -2
- package/src/test/type.spec.ts +58 -0
- package/src/type.ts +55 -0
package/dist/index.d.mts
CHANGED
|
@@ -129,5 +129,52 @@ type Frame<Payload> = Payload extends Array<infer U> ? U extends object ? Record
|
|
|
129
129
|
[K in keyof Payload]?: Payload[K] extends object ? Frame<Payload[K]> : never;
|
|
130
130
|
} & SD<Payload> & DECOY> : SD<Payload> & DECOY;
|
|
131
131
|
type DisclosureFrame<T extends object> = Frame<T>;
|
|
132
|
+
/**
|
|
133
|
+
* This is a presentationFrame type that is used to represent the structure of what is being presented.
|
|
134
|
+
* PresentationFrame is made from the payload type.
|
|
135
|
+
* const claims = {
|
|
136
|
+
firstname: 'John',
|
|
137
|
+
lastname: 'Doe',
|
|
138
|
+
ssn: '123-45-6789',
|
|
139
|
+
id: '1234',
|
|
140
|
+
data: {
|
|
141
|
+
firstname: 'John',
|
|
142
|
+
lastname: 'Doe',
|
|
143
|
+
ssn: '123-45-6789',
|
|
144
|
+
list: [{ r: 'd' }, 'b', 'c'],
|
|
145
|
+
list2: ['1', '2', '3'],
|
|
146
|
+
list3: ['1', null, 2],
|
|
147
|
+
},
|
|
148
|
+
data2: {
|
|
149
|
+
hi: 'bye',
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
Example of a presentationFrame:
|
|
154
|
+
const presentationFrame: PresentationFrame<typeof claims> = {
|
|
155
|
+
firstname: true,
|
|
156
|
+
lastname: true,
|
|
157
|
+
ssn: true,
|
|
158
|
+
id: 'true',
|
|
159
|
+
data: {
|
|
160
|
+
firstname: true,
|
|
161
|
+
list: {
|
|
162
|
+
1: true,
|
|
163
|
+
0: {
|
|
164
|
+
r: true,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
list2: {
|
|
168
|
+
1: true,
|
|
169
|
+
},
|
|
170
|
+
list3: true,
|
|
171
|
+
},
|
|
172
|
+
data2: true,
|
|
173
|
+
};
|
|
174
|
+
*/
|
|
175
|
+
type PFrame<Payload> = Payload extends Array<infer U> ? U extends object ? Record<number, PFrame<U> | boolean> | boolean : Record<number, boolean> | boolean : {
|
|
176
|
+
[K in keyof Payload]?: Payload[K] extends object ? PFrame<Payload[K]> | boolean : boolean;
|
|
177
|
+
};
|
|
178
|
+
type PresentationFrame<T extends object> = PFrame<T>;
|
|
132
179
|
|
|
133
|
-
export { type Base64urlString, type DECOY, type DisclosureData, type DisclosureFrame, type Hasher, type HasherAndAlg, type HasherAndAlgSync, type HasherSync, type JwtPayload, type KBOptions, KB_JWT_TYP, type KbVerifier, type OrPromise, type SD, type SDJWTCompact, type SDJWTConfig, SD_DECOY, SD_DIGEST, SD_LIST_KEY, SD_SEPARATOR, type SaltGenerator, type SaltGeneratorSync, type Signer, type SignerSync, type Verifier, type VerifierSync, type kbHeader, type kbPayload };
|
|
180
|
+
export { type Base64urlString, type DECOY, type DisclosureData, type DisclosureFrame, type Hasher, type HasherAndAlg, type HasherAndAlgSync, type HasherSync, type JwtPayload, type KBOptions, KB_JWT_TYP, type KbVerifier, type OrPromise, type PresentationFrame, type SD, type SDJWTCompact, type SDJWTConfig, SD_DECOY, SD_DIGEST, SD_LIST_KEY, SD_SEPARATOR, type SaltGenerator, type SaltGeneratorSync, type Signer, type SignerSync, type Verifier, type VerifierSync, type kbHeader, type kbPayload };
|
package/dist/index.d.ts
CHANGED
|
@@ -129,5 +129,52 @@ type Frame<Payload> = Payload extends Array<infer U> ? U extends object ? Record
|
|
|
129
129
|
[K in keyof Payload]?: Payload[K] extends object ? Frame<Payload[K]> : never;
|
|
130
130
|
} & SD<Payload> & DECOY> : SD<Payload> & DECOY;
|
|
131
131
|
type DisclosureFrame<T extends object> = Frame<T>;
|
|
132
|
+
/**
|
|
133
|
+
* This is a presentationFrame type that is used to represent the structure of what is being presented.
|
|
134
|
+
* PresentationFrame is made from the payload type.
|
|
135
|
+
* const claims = {
|
|
136
|
+
firstname: 'John',
|
|
137
|
+
lastname: 'Doe',
|
|
138
|
+
ssn: '123-45-6789',
|
|
139
|
+
id: '1234',
|
|
140
|
+
data: {
|
|
141
|
+
firstname: 'John',
|
|
142
|
+
lastname: 'Doe',
|
|
143
|
+
ssn: '123-45-6789',
|
|
144
|
+
list: [{ r: 'd' }, 'b', 'c'],
|
|
145
|
+
list2: ['1', '2', '3'],
|
|
146
|
+
list3: ['1', null, 2],
|
|
147
|
+
},
|
|
148
|
+
data2: {
|
|
149
|
+
hi: 'bye',
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
Example of a presentationFrame:
|
|
154
|
+
const presentationFrame: PresentationFrame<typeof claims> = {
|
|
155
|
+
firstname: true,
|
|
156
|
+
lastname: true,
|
|
157
|
+
ssn: true,
|
|
158
|
+
id: 'true',
|
|
159
|
+
data: {
|
|
160
|
+
firstname: true,
|
|
161
|
+
list: {
|
|
162
|
+
1: true,
|
|
163
|
+
0: {
|
|
164
|
+
r: true,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
list2: {
|
|
168
|
+
1: true,
|
|
169
|
+
},
|
|
170
|
+
list3: true,
|
|
171
|
+
},
|
|
172
|
+
data2: true,
|
|
173
|
+
};
|
|
174
|
+
*/
|
|
175
|
+
type PFrame<Payload> = Payload extends Array<infer U> ? U extends object ? Record<number, PFrame<U> | boolean> | boolean : Record<number, boolean> | boolean : {
|
|
176
|
+
[K in keyof Payload]?: Payload[K] extends object ? PFrame<Payload[K]> | boolean : boolean;
|
|
177
|
+
};
|
|
178
|
+
type PresentationFrame<T extends object> = PFrame<T>;
|
|
132
179
|
|
|
133
|
-
export { type Base64urlString, type DECOY, type DisclosureData, type DisclosureFrame, type Hasher, type HasherAndAlg, type HasherAndAlgSync, type HasherSync, type JwtPayload, type KBOptions, KB_JWT_TYP, type KbVerifier, type OrPromise, type SD, type SDJWTCompact, type SDJWTConfig, SD_DECOY, SD_DIGEST, SD_LIST_KEY, SD_SEPARATOR, type SaltGenerator, type SaltGeneratorSync, type Signer, type SignerSync, type Verifier, type VerifierSync, type kbHeader, type kbPayload };
|
|
180
|
+
export { type Base64urlString, type DECOY, type DisclosureData, type DisclosureFrame, type Hasher, type HasherAndAlg, type HasherAndAlgSync, type HasherSync, type JwtPayload, type KBOptions, KB_JWT_TYP, type KbVerifier, type OrPromise, type PresentationFrame, type SD, type SDJWTCompact, type SDJWTConfig, SD_DECOY, SD_DIGEST, SD_LIST_KEY, SD_SEPARATOR, type SaltGenerator, type SaltGeneratorSync, type Signer, type SignerSync, type Verifier, type VerifierSync, type kbHeader, type kbPayload };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sd-jwt/types",
|
|
3
|
-
"version": "0.3.2-next.
|
|
3
|
+
"version": "0.3.2-next.111+fae0aef",
|
|
4
4
|
"description": "sd-jwt draft 7 implementation in typescript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"esm"
|
|
54
54
|
]
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "fae0aefcf7076b31a80cafda42b1ebad2f95ff8c"
|
|
57
57
|
}
|
package/src/test/type.spec.ts
CHANGED
|
@@ -5,8 +5,28 @@ import {
|
|
|
5
5
|
SD_DIGEST,
|
|
6
6
|
SD_DECOY,
|
|
7
7
|
KB_JWT_TYP,
|
|
8
|
+
DisclosureFrame,
|
|
9
|
+
PresentationFrame,
|
|
8
10
|
} from '../index';
|
|
9
11
|
|
|
12
|
+
const claims = {
|
|
13
|
+
firstname: 'John',
|
|
14
|
+
lastname: 'Doe',
|
|
15
|
+
ssn: '123-45-6789',
|
|
16
|
+
id: '1234',
|
|
17
|
+
data: {
|
|
18
|
+
firstname: 'John',
|
|
19
|
+
lastname: 'Doe',
|
|
20
|
+
ssn: '123-45-6789',
|
|
21
|
+
list: [{ r: 'd' }, 'b', 'c'],
|
|
22
|
+
list2: ['1', '2', '3'],
|
|
23
|
+
list3: ['1', null, 2],
|
|
24
|
+
},
|
|
25
|
+
data2: {
|
|
26
|
+
hi: 'bye',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
10
30
|
describe('Variable tests', () => {
|
|
11
31
|
test('SD_SEPARATOR', () => {
|
|
12
32
|
expect(SD_SEPARATOR).toBe('~');
|
|
@@ -27,4 +47,42 @@ describe('Variable tests', () => {
|
|
|
27
47
|
test('KB_JWT_TYP', () => {
|
|
28
48
|
expect(KB_JWT_TYP).toBe('kb+jwt');
|
|
29
49
|
});
|
|
50
|
+
|
|
51
|
+
test('DisclosureFrameType test', () => {
|
|
52
|
+
const disclosureFrame: DisclosureFrame<typeof claims> = {
|
|
53
|
+
_sd: ['data', 'firstname', 'data2'],
|
|
54
|
+
data: {
|
|
55
|
+
_sd: ['list', 'ssn'],
|
|
56
|
+
_sd_decoy: 2,
|
|
57
|
+
list: {
|
|
58
|
+
_sd: [0, 2],
|
|
59
|
+
0: {
|
|
60
|
+
_sd: ['r'],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
expect(disclosureFrame).toBeDefined();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
test('PresentationFrameType test', () => {
|
|
69
|
+
const presentationFrame: PresentationFrame<typeof claims> = {
|
|
70
|
+
firstname: true,
|
|
71
|
+
data: {
|
|
72
|
+
firstname: true,
|
|
73
|
+
list: {
|
|
74
|
+
1: true,
|
|
75
|
+
0: {
|
|
76
|
+
r: true,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
list2: {
|
|
80
|
+
1: true,
|
|
81
|
+
},
|
|
82
|
+
list3: true,
|
|
83
|
+
},
|
|
84
|
+
data2: true,
|
|
85
|
+
};
|
|
86
|
+
expect(presentationFrame).toBeDefined();
|
|
87
|
+
});
|
|
30
88
|
});
|
package/src/type.ts
CHANGED
|
@@ -154,3 +154,58 @@ type Frame<Payload> = Payload extends Array<infer U>
|
|
|
154
154
|
: SD<Payload> & DECOY;
|
|
155
155
|
|
|
156
156
|
export type DisclosureFrame<T extends object> = Frame<T>;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* This is a presentationFrame type that is used to represent the structure of what is being presented.
|
|
160
|
+
* PresentationFrame is made from the payload type.
|
|
161
|
+
* const claims = {
|
|
162
|
+
firstname: 'John',
|
|
163
|
+
lastname: 'Doe',
|
|
164
|
+
ssn: '123-45-6789',
|
|
165
|
+
id: '1234',
|
|
166
|
+
data: {
|
|
167
|
+
firstname: 'John',
|
|
168
|
+
lastname: 'Doe',
|
|
169
|
+
ssn: '123-45-6789',
|
|
170
|
+
list: [{ r: 'd' }, 'b', 'c'],
|
|
171
|
+
list2: ['1', '2', '3'],
|
|
172
|
+
list3: ['1', null, 2],
|
|
173
|
+
},
|
|
174
|
+
data2: {
|
|
175
|
+
hi: 'bye',
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
Example of a presentationFrame:
|
|
180
|
+
const presentationFrame: PresentationFrame<typeof claims> = {
|
|
181
|
+
firstname: true,
|
|
182
|
+
lastname: true,
|
|
183
|
+
ssn: true,
|
|
184
|
+
id: 'true',
|
|
185
|
+
data: {
|
|
186
|
+
firstname: true,
|
|
187
|
+
list: {
|
|
188
|
+
1: true,
|
|
189
|
+
0: {
|
|
190
|
+
r: true,
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
list2: {
|
|
194
|
+
1: true,
|
|
195
|
+
},
|
|
196
|
+
list3: true,
|
|
197
|
+
},
|
|
198
|
+
data2: true,
|
|
199
|
+
};
|
|
200
|
+
*/
|
|
201
|
+
type PFrame<Payload> = Payload extends Array<infer U>
|
|
202
|
+
? U extends object
|
|
203
|
+
? Record<number, PFrame<U> | boolean> | boolean
|
|
204
|
+
: Record<number, boolean> | boolean
|
|
205
|
+
: {
|
|
206
|
+
[K in keyof Payload]?: Payload[K] extends object
|
|
207
|
+
? PFrame<Payload[K]> | boolean
|
|
208
|
+
: boolean;
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
export type PresentationFrame<T extends object> = PFrame<T>;
|