@sphereon/ssi-sdk.siopv2-oid4vp-op-auth 0.33.1-feature.vcdm2.4 → 0.33.1-feature.vcdm2.tsup.18
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.cjs +101201 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +559 -0
- package/dist/index.d.ts +555 -8
- package/dist/index.js +101182 -11
- package/dist/index.js.map +1 -1
- package/package.json +40 -30
- package/src/agent/DidAuthSiopOpAuthenticator.ts +13 -14
- package/src/session/OpSession.ts +2 -2
- package/dist/agent/DidAuthSiopOpAuthenticator.d.ts +0 -36
- package/dist/agent/DidAuthSiopOpAuthenticator.d.ts.map +0 -1
- package/dist/agent/DidAuthSiopOpAuthenticator.js +0 -371
- package/dist/agent/DidAuthSiopOpAuthenticator.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/link-handler/index.d.ts +0 -22
- package/dist/link-handler/index.d.ts.map +0 -1
- package/dist/link-handler/index.js +0 -45
- package/dist/link-handler/index.js.map +0 -1
- package/dist/localization/Localization.d.ts +0 -9
- package/dist/localization/Localization.d.ts.map +0 -1
- package/dist/localization/Localization.js +0 -41
- package/dist/localization/Localization.js.map +0 -1
- package/dist/localization/translations/en.json +0 -9
- package/dist/localization/translations/nl.json +0 -8
- package/dist/machine/CallbackStateListener.d.ts +0 -3
- package/dist/machine/CallbackStateListener.d.ts.map +0 -1
- package/dist/machine/CallbackStateListener.js +0 -35
- package/dist/machine/CallbackStateListener.js.map +0 -1
- package/dist/machine/Siopv2Machine.d.ts +0 -8
- package/dist/machine/Siopv2Machine.d.ts.map +0 -1
- package/dist/machine/Siopv2Machine.js +0 -362
- package/dist/machine/Siopv2Machine.js.map +0 -1
- package/dist/services/IdentifierService.d.ts +0 -3
- package/dist/services/IdentifierService.d.ts.map +0 -1
- package/dist/services/IdentifierService.js +0 -15
- package/dist/services/IdentifierService.js.map +0 -1
- package/dist/services/Siopv2MachineService.d.ts +0 -18
- package/dist/services/Siopv2MachineService.d.ts.map +0 -1
- package/dist/services/Siopv2MachineService.js +0 -296
- package/dist/services/Siopv2MachineService.js.map +0 -1
- package/dist/session/OID4VP.d.ts +0 -72
- package/dist/session/OID4VP.d.ts.map +0 -1
- package/dist/session/OID4VP.js +0 -213
- package/dist/session/OID4VP.js.map +0 -1
- package/dist/session/OpSession.d.ts +0 -39
- package/dist/session/OpSession.d.ts.map +0 -1
- package/dist/session/OpSession.js +0 -329
- package/dist/session/OpSession.js.map +0 -1
- package/dist/session/functions.d.ts +0 -37
- package/dist/session/functions.d.ts.map +0 -1
- package/dist/session/functions.js +0 -147
- package/dist/session/functions.js.map +0 -1
- package/dist/session/index.d.ts +0 -4
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -4
- package/dist/session/index.js.map +0 -1
- package/dist/types/IDidAuthSiopOpAuthenticator.d.ts +0 -120
- package/dist/types/IDidAuthSiopOpAuthenticator.d.ts.map +0 -1
- package/dist/types/IDidAuthSiopOpAuthenticator.js +0 -7
- package/dist/types/IDidAuthSiopOpAuthenticator.js.map +0 -1
- package/dist/types/error/index.d.ts +0 -8
- package/dist/types/error/index.d.ts.map +0 -1
- package/dist/types/error/index.js +0 -2
- package/dist/types/error/index.js.map +0 -1
- package/dist/types/identifier/index.d.ts +0 -53
- package/dist/types/identifier/index.d.ts.map +0 -1
- package/dist/types/identifier/index.js +0 -2
- package/dist/types/identifier/index.js.map +0 -1
- package/dist/types/index.d.ts +0 -6
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -6
- package/dist/types/index.js.map +0 -1
- package/dist/types/machine/index.d.ts +0 -124
- package/dist/types/machine/index.d.ts.map +0 -1
- package/dist/types/machine/index.js +0 -54
- package/dist/types/machine/index.js.map +0 -1
- package/dist/types/siop-service/index.d.ts +0 -80
- package/dist/types/siop-service/index.d.ts.map +0 -1
- package/dist/types/siop-service/index.js +0 -11
- package/dist/types/siop-service/index.js.map +0 -1
- package/dist/utils/CredentialUtils.d.ts +0 -23
- package/dist/utils/CredentialUtils.d.ts.map +0 -1
- package/dist/utils/CredentialUtils.js +0 -55
- package/dist/utils/CredentialUtils.js.map +0 -1
- package/dist/utils/dcql.d.ts +0 -5
- package/dist/utils/dcql.d.ts.map +0 -1
- package/dist/utils/dcql.js +0 -34
- package/dist/utils/dcql.js.map +0 -1
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { PresentationDefinitionWithLocation, URI, VerifiedAuthorizationRequest } from '@sphereon/did-auth-siop';
|
|
2
|
-
import { IIdentifier } from '@veramo/core';
|
|
3
|
-
import { IOPOptions, IOpSessionArgs, IOpSessionGetOID4VPArgs, IOpsSendSiopAuthorizationResponseArgs, IRequiredContext } from '../types';
|
|
4
|
-
import { OID4VP } from './OID4VP';
|
|
5
|
-
export declare class OpSession {
|
|
6
|
-
readonly ts: number;
|
|
7
|
-
readonly id: string;
|
|
8
|
-
readonly options: IOPOptions;
|
|
9
|
-
readonly context: IRequiredContext;
|
|
10
|
-
private readonly requestJwtOrUri;
|
|
11
|
-
private verifiedAuthorizationRequest?;
|
|
12
|
-
private _nonce?;
|
|
13
|
-
private _state?;
|
|
14
|
-
private readonly _providedPresentationDefinitions?;
|
|
15
|
-
private constructor();
|
|
16
|
-
static init(options: Required<IOpSessionArgs>): Promise<OpSession>;
|
|
17
|
-
getAuthorizationRequest(): Promise<VerifiedAuthorizationRequest>;
|
|
18
|
-
getAuthorizationRequestURI(): Promise<URI>;
|
|
19
|
-
get nonce(): string;
|
|
20
|
-
get state(): string;
|
|
21
|
-
clear(): OpSession;
|
|
22
|
-
getSupportedDIDMethods(didPrefix?: boolean): Promise<string[]>;
|
|
23
|
-
private getAgentDIDMethodsSupported;
|
|
24
|
-
private getSubjectSyntaxTypesSupported;
|
|
25
|
-
private getRPDIDMethodsSupported;
|
|
26
|
-
getSupportedIdentifiers(opts?: {
|
|
27
|
-
createInCaseNoDIDFound?: boolean;
|
|
28
|
-
}): Promise<IIdentifier[]>;
|
|
29
|
-
getSupportedDIDs(): Promise<string[]>;
|
|
30
|
-
getRedirectUri(): Promise<string>;
|
|
31
|
-
hasPresentationDefinitions(): Promise<boolean>;
|
|
32
|
-
getPresentationDefinitions(): Promise<Array<PresentationDefinitionWithLocation> | undefined>;
|
|
33
|
-
getOID4VP(args: IOpSessionGetOID4VPArgs): Promise<OID4VP>;
|
|
34
|
-
private createPresentationVerificationCallback;
|
|
35
|
-
private createJarmResponseCallback;
|
|
36
|
-
sendAuthorizationResponse(args: IOpsSendSiopAuthorizationResponseArgs): Promise<Response>;
|
|
37
|
-
private countVCsInAllVPs;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=OpSession.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpSession.d.ts","sourceRoot":"","sources":["../../src/session/OpSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,kCAAkC,EAMlC,GAAG,EAEH,4BAA4B,EAC7B,MAAM,yBAAyB,CAAA;AAehC,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAA;AAGnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,uBAAuB,EAAE,qCAAqC,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAKjC,qBAAa,SAAS;IACpB,SAAgB,EAAE,SAAuB;IACzC,SAAgB,EAAE,EAAE,MAAM,CAAA;IAC1B,SAAgB,OAAO,EAAE,UAAU,CAAA;IACnC,SAAgB,OAAO,EAAE,gBAAgB,CAAA;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,4BAA4B,CAAC,CAA0C;IAC/E,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAsC;IAExF,OAAO;WAQa,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAIlE,uBAAuB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAahE,0BAA0B,IAAI,OAAO,CAAC,GAAG,CAAC;IAIvD,IAAI,KAAK,WAKR;IAED,IAAI,KAAK,WAKR;IAEM,KAAK,IAAI,SAAS;IAOZ,sBAAsB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA0B3E,OAAO,CAAC,2BAA2B;YAMrB,8BAA8B;YAM9B,wBAAwB;IAiDzB,uBAAuB,CAAC,IAAI,CAAC,EAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6B5F,gBAAgB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIrC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,0BAA0B,IAAI,OAAO,CAAC,OAAO,CAAC;IAK9C,0BAA0B,IAAI,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,GAAG,SAAS,CAAC;IAO5F,SAAS,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAItE,OAAO,CAAC,sCAAsC;YA6BhC,0BAA0B;IAyC3B,yBAAyB,CAAC,IAAI,EAAE,qCAAqC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAyEtG,OAAO,CAAC,gBAAgB;CAoBzB"}
|
|
@@ -1,329 +0,0 @@
|
|
|
1
|
-
import { OP, URI, } from '@sphereon/did-auth-siop';
|
|
2
|
-
import { getAgentDIDMethods, getAgentResolver } from '@sphereon/ssi-sdk-ext.did-utils';
|
|
3
|
-
import { encodeBase64url } from '@sphereon/ssi-sdk.core';
|
|
4
|
-
import { CredentialMapper, parseDid, } from '@sphereon/ssi-types';
|
|
5
|
-
import Debug from 'debug';
|
|
6
|
-
import { v4 } from 'uuid';
|
|
7
|
-
import { createOP } from './functions';
|
|
8
|
-
import { OID4VP } from './OID4VP';
|
|
9
|
-
import { PEX } from '@sphereon/pex';
|
|
10
|
-
const debug = Debug(`sphereon:sdk:siop:op-session`);
|
|
11
|
-
export class OpSession {
|
|
12
|
-
ts = new Date().getDate();
|
|
13
|
-
id;
|
|
14
|
-
options;
|
|
15
|
-
context;
|
|
16
|
-
requestJwtOrUri;
|
|
17
|
-
verifiedAuthorizationRequest;
|
|
18
|
-
_nonce;
|
|
19
|
-
_state;
|
|
20
|
-
_providedPresentationDefinitions;
|
|
21
|
-
constructor(options) {
|
|
22
|
-
this.id = options.sessionId;
|
|
23
|
-
this.options = options.op;
|
|
24
|
-
this.context = options.context;
|
|
25
|
-
this.requestJwtOrUri = options.requestJwtOrUri;
|
|
26
|
-
this._providedPresentationDefinitions = options.providedPresentationDefinitions;
|
|
27
|
-
}
|
|
28
|
-
static async init(options) {
|
|
29
|
-
return new OpSession(options);
|
|
30
|
-
}
|
|
31
|
-
async getAuthorizationRequest() {
|
|
32
|
-
if (!this.verifiedAuthorizationRequest) {
|
|
33
|
-
const op = await createOP({ opOptions: this.options, context: this.context });
|
|
34
|
-
this.verifiedAuthorizationRequest = await op.verifyAuthorizationRequest(this.requestJwtOrUri);
|
|
35
|
-
this._nonce = await this.verifiedAuthorizationRequest.authorizationRequest.getMergedProperty('nonce');
|
|
36
|
-
this._state = await this.verifiedAuthorizationRequest.authorizationRequest.getMergedProperty('state');
|
|
37
|
-
// only used to ensure that we have DID methods supported
|
|
38
|
-
await this.getSupportedDIDMethods();
|
|
39
|
-
}
|
|
40
|
-
return this.verifiedAuthorizationRequest;
|
|
41
|
-
}
|
|
42
|
-
async getAuthorizationRequestURI() {
|
|
43
|
-
return await URI.fromAuthorizationRequest((await this.getAuthorizationRequest()).authorizationRequest);
|
|
44
|
-
}
|
|
45
|
-
get nonce() {
|
|
46
|
-
if (!this._nonce) {
|
|
47
|
-
throw Error('No nonce available. Please get authorization request first');
|
|
48
|
-
}
|
|
49
|
-
return this._nonce;
|
|
50
|
-
}
|
|
51
|
-
get state() {
|
|
52
|
-
if (!this._state) {
|
|
53
|
-
throw Error('No state available. Please get authorization request first');
|
|
54
|
-
}
|
|
55
|
-
return this._state;
|
|
56
|
-
}
|
|
57
|
-
clear() {
|
|
58
|
-
this._nonce = undefined;
|
|
59
|
-
this._state = undefined;
|
|
60
|
-
this.verifiedAuthorizationRequest = undefined;
|
|
61
|
-
return this;
|
|
62
|
-
}
|
|
63
|
-
async getSupportedDIDMethods(didPrefix) {
|
|
64
|
-
const agentMethods = this.getAgentDIDMethodsSupported({ didPrefix });
|
|
65
|
-
let rpMethods = await this.getRPDIDMethodsSupported({ didPrefix, agentMethods });
|
|
66
|
-
debug(`RP supports subject syntax types: ${JSON.stringify(this.getSubjectSyntaxTypesSupported())}`);
|
|
67
|
-
if (rpMethods.dids.length === 0) {
|
|
68
|
-
debug(`RP does not support DIDs. Supported: ${JSON.stringify(this.getSubjectSyntaxTypesSupported())}`);
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
let intersection;
|
|
72
|
-
if (rpMethods.dids.includes('did')) {
|
|
73
|
-
intersection =
|
|
74
|
-
agentMethods && agentMethods.length > 0
|
|
75
|
-
? agentMethods
|
|
76
|
-
: (await getAgentDIDMethods(this.context)).map((method) => convertDidMethod(method, didPrefix)); // fallback to the agent in case the agent methods are undefined
|
|
77
|
-
}
|
|
78
|
-
else if (!agentMethods || agentMethods.length === 0) {
|
|
79
|
-
intersection = rpMethods.dids?.map((method) => convertDidMethod(method, didPrefix));
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
intersection = agentMethods.filter((value) => rpMethods.dids.includes(value));
|
|
83
|
-
}
|
|
84
|
-
if (intersection.length === 0) {
|
|
85
|
-
throw Error('No matching DID methods between agent and relying party');
|
|
86
|
-
}
|
|
87
|
-
return intersection.map((value) => convertDidMethod(value, didPrefix));
|
|
88
|
-
}
|
|
89
|
-
getAgentDIDMethodsSupported(opts) {
|
|
90
|
-
const agentMethods = this.options.supportedDIDMethods?.map((method) => convertDidMethod(method, opts.didPrefix));
|
|
91
|
-
debug(`agent methods: ${JSON.stringify(agentMethods)}`);
|
|
92
|
-
return agentMethods;
|
|
93
|
-
}
|
|
94
|
-
async getSubjectSyntaxTypesSupported() {
|
|
95
|
-
const authReq = await this.getAuthorizationRequest();
|
|
96
|
-
const subjectSyntaxTypesSupported = authReq.registrationMetadataPayload?.subject_syntax_types_supported;
|
|
97
|
-
return subjectSyntaxTypesSupported ?? [];
|
|
98
|
-
}
|
|
99
|
-
async getRPDIDMethodsSupported(opts) {
|
|
100
|
-
let keyType;
|
|
101
|
-
const agentMethods = (opts.agentMethods ?? this.getAgentDIDMethodsSupported(opts))?.map((method) => convertDidMethod(method, opts.didPrefix)) ?? [];
|
|
102
|
-
debug(`agent methods supported: ${JSON.stringify(agentMethods)}`);
|
|
103
|
-
const authReq = await this.getAuthorizationRequest();
|
|
104
|
-
const subjectSyntaxTypesSupported = authReq.registrationMetadataPayload?.subject_syntax_types_supported
|
|
105
|
-
?.map((method) => convertDidMethod(method, opts.didPrefix))
|
|
106
|
-
.filter((val) => !val.startsWith('did'));
|
|
107
|
-
debug(`subject syntax types supported in rp method supported: ${JSON.stringify(subjectSyntaxTypesSupported)}`);
|
|
108
|
-
const aud = await authReq.authorizationRequest.getMergedProperty('aud');
|
|
109
|
-
let rpMethods = [];
|
|
110
|
-
if (aud && aud.startsWith('did:')) {
|
|
111
|
-
const didMethod = convertDidMethod(parseDid(aud).method, opts.didPrefix);
|
|
112
|
-
debug(`aud did method: ${didMethod}`);
|
|
113
|
-
// The RP knows our DID, so we can use it to determine the supported DID methods
|
|
114
|
-
// If the aud did:method is not in the supported types, there still is something wrong, unless the RP signals to support all did methods
|
|
115
|
-
if (subjectSyntaxTypesSupported &&
|
|
116
|
-
subjectSyntaxTypesSupported.length > 0 &&
|
|
117
|
-
!subjectSyntaxTypesSupported.includes('did') &&
|
|
118
|
-
!subjectSyntaxTypesSupported.includes(didMethod)) {
|
|
119
|
-
throw Error(`The aud DID method ${didMethod} is not in the supported types ${subjectSyntaxTypesSupported}`);
|
|
120
|
-
}
|
|
121
|
-
rpMethods = [didMethod];
|
|
122
|
-
}
|
|
123
|
-
else if (subjectSyntaxTypesSupported) {
|
|
124
|
-
rpMethods = (Array.isArray(subjectSyntaxTypesSupported) ? subjectSyntaxTypesSupported : [subjectSyntaxTypesSupported]).map((method) => convertDidMethod(method, opts.didPrefix));
|
|
125
|
-
}
|
|
126
|
-
const isEBSI = rpMethods.length === 0 &&
|
|
127
|
-
(authReq.issuer?.includes('.ebsi.eu') || (await authReq.authorizationRequest.getMergedProperty('client_id'))?.includes('.ebsi.eu'));
|
|
128
|
-
let codecName = undefined;
|
|
129
|
-
if (isEBSI && (!aud || !aud.startsWith('http'))) {
|
|
130
|
-
debug(`EBSI detected, adding did:key to supported DID methods for RP`);
|
|
131
|
-
const didKeyMethod = convertDidMethod('did:key', opts.didPrefix);
|
|
132
|
-
if (!agentMethods?.includes(didKeyMethod)) {
|
|
133
|
-
throw Error(`EBSI detected, but agent did not support did:key. Please reconfigure agent`);
|
|
134
|
-
}
|
|
135
|
-
rpMethods = [didKeyMethod];
|
|
136
|
-
keyType = 'Secp256r1';
|
|
137
|
-
codecName = 'jwk_jcs-pub';
|
|
138
|
-
}
|
|
139
|
-
return { dids: rpMethods, codecName, keyType };
|
|
140
|
-
}
|
|
141
|
-
async getSupportedIdentifiers(opts) {
|
|
142
|
-
// todo: we also need to check signature algo
|
|
143
|
-
const methods = await this.getSupportedDIDMethods(true);
|
|
144
|
-
debug(`supported DID methods (did: prefix = true): ${JSON.stringify(methods)}`);
|
|
145
|
-
if (methods.length === 0) {
|
|
146
|
-
throw Error(`No DID methods are supported`);
|
|
147
|
-
}
|
|
148
|
-
const identifiers = await this.context.agent
|
|
149
|
-
.didManagerFind()
|
|
150
|
-
.then((ids) => ids.filter((id) => methods.includes(id.provider)));
|
|
151
|
-
if (identifiers.length === 0) {
|
|
152
|
-
debug(`No identifiers available in agent supporting methods ${JSON.stringify(methods)}`);
|
|
153
|
-
if (opts?.createInCaseNoDIDFound !== false) {
|
|
154
|
-
const { codecName, keyType } = await this.getRPDIDMethodsSupported({
|
|
155
|
-
didPrefix: true,
|
|
156
|
-
agentMethods: methods,
|
|
157
|
-
});
|
|
158
|
-
const identifier = await this.context.agent.didManagerCreate({
|
|
159
|
-
provider: methods[0],
|
|
160
|
-
options: { codecName, keyType, type: keyType }, // both keyType and type, because not every did provider has the same param
|
|
161
|
-
});
|
|
162
|
-
debug(`Created a new identifier for the SIOP interaction: ${identifier.did}`);
|
|
163
|
-
identifiers.push(identifier);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
debug(`supported identifiers: ${JSON.stringify(identifiers.map((id) => id.did))}`);
|
|
167
|
-
return identifiers;
|
|
168
|
-
}
|
|
169
|
-
async getSupportedDIDs() {
|
|
170
|
-
return (await this.getSupportedIdentifiers()).map((id) => id.did);
|
|
171
|
-
}
|
|
172
|
-
async getRedirectUri() {
|
|
173
|
-
return Promise.resolve(this.verifiedAuthorizationRequest.responseURI);
|
|
174
|
-
}
|
|
175
|
-
async hasPresentationDefinitions() {
|
|
176
|
-
const defs = this._providedPresentationDefinitions ?? (await this.getAuthorizationRequest()).presentationDefinitions;
|
|
177
|
-
return defs !== undefined && defs.length > 0;
|
|
178
|
-
}
|
|
179
|
-
async getPresentationDefinitions() {
|
|
180
|
-
if (!(await this.hasPresentationDefinitions())) {
|
|
181
|
-
throw Error(`No presentation definitions found`);
|
|
182
|
-
}
|
|
183
|
-
return this._providedPresentationDefinitions ?? (await this.getAuthorizationRequest()).presentationDefinitions;
|
|
184
|
-
}
|
|
185
|
-
async getOID4VP(args) {
|
|
186
|
-
return await OID4VP.init(this, args.allIdentifiers ?? [], args.hasher);
|
|
187
|
-
}
|
|
188
|
-
createPresentationVerificationCallback(context) {
|
|
189
|
-
async function presentationVerificationCallback(args, presentationSubmission) {
|
|
190
|
-
let result;
|
|
191
|
-
if (CredentialMapper.isSdJwtEncoded(args)) {
|
|
192
|
-
try {
|
|
193
|
-
const sdJwtResult = await context.agent.verifySdJwtPresentation({ presentation: args });
|
|
194
|
-
result = {
|
|
195
|
-
verified: 'header' in sdJwtResult,
|
|
196
|
-
error: 'header' in sdJwtResult ? undefined : { message: 'could not verify SD JWT presentation' },
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
result = {
|
|
201
|
-
verified: false,
|
|
202
|
-
error: { message: error.message },
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
// @ts-ignore TODO IVerifiablePresentation has too many union types for Veramo
|
|
208
|
-
result = await context.agent.verifyPresentation({ presentation: args });
|
|
209
|
-
}
|
|
210
|
-
return result;
|
|
211
|
-
}
|
|
212
|
-
return presentationVerificationCallback;
|
|
213
|
-
}
|
|
214
|
-
async createJarmResponseCallback({ responseOpts, }) {
|
|
215
|
-
const agent = this.context.agent;
|
|
216
|
-
return async function jarmResponse(opts) {
|
|
217
|
-
const { clientMetadata, requestObjectPayload, authorizationResponsePayload: authResponse } = opts;
|
|
218
|
-
const jwk = await OP.extractEncJwksFromClientMetadata(clientMetadata);
|
|
219
|
-
// @ts-ignore // FIXME: Fix jwk inference
|
|
220
|
-
const recipientKey = await agent.identifierExternalResolveByJwk({ identifier: jwk });
|
|
221
|
-
return await agent
|
|
222
|
-
.jwtEncryptJweCompactJwt({
|
|
223
|
-
recipientKey,
|
|
224
|
-
protectedHeader: {},
|
|
225
|
-
alg: requestObjectPayload.client_metadata.authorization_encrypted_response_alg ?? 'ECDH-ES',
|
|
226
|
-
enc: requestObjectPayload.client_metadata.authorization_encrypted_response_enc ?? 'A256GCM',
|
|
227
|
-
apv: encodeBase64url(opts.requestObjectPayload.nonce),
|
|
228
|
-
apu: encodeBase64url(v4()),
|
|
229
|
-
payload: authResponse,
|
|
230
|
-
issuer: responseOpts.issuer,
|
|
231
|
-
audience: responseOpts.audience,
|
|
232
|
-
})
|
|
233
|
-
.then((result) => {
|
|
234
|
-
return { response: result.jwt };
|
|
235
|
-
});
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
async sendAuthorizationResponse(args) {
|
|
239
|
-
const resolveOpts = this.options.resolveOpts ?? {
|
|
240
|
-
resolver: getAgentResolver(this.context, {
|
|
241
|
-
uniresolverResolution: true,
|
|
242
|
-
localResolution: true,
|
|
243
|
-
resolverResolution: true,
|
|
244
|
-
}),
|
|
245
|
-
};
|
|
246
|
-
if (!resolveOpts.subjectSyntaxTypesSupported || resolveOpts.subjectSyntaxTypesSupported.length === 0) {
|
|
247
|
-
resolveOpts.subjectSyntaxTypesSupported = await this.getSupportedDIDMethods(true);
|
|
248
|
-
}
|
|
249
|
-
//todo: populate with the right verification params. In did-auth-siop we don't have any test that actually passes this parameter
|
|
250
|
-
const verification = {
|
|
251
|
-
presentationVerificationCallback: this.createPresentationVerificationCallback(this.context),
|
|
252
|
-
};
|
|
253
|
-
const request = await this.getAuthorizationRequest();
|
|
254
|
-
const hasDefinitions = await this.hasPresentationDefinitions();
|
|
255
|
-
if (hasDefinitions) {
|
|
256
|
-
const totalInputDescriptors = request.presentationDefinitions?.reduce((sum, pd) => {
|
|
257
|
-
return sum + pd.definition.input_descriptors.length;
|
|
258
|
-
}, 0);
|
|
259
|
-
const totalVCs = args.verifiablePresentations ? this.countVCsInAllVPs(args.verifiablePresentations, args.hasher) : 0;
|
|
260
|
-
if (!request.presentationDefinitions || !args.verifiablePresentations || totalVCs !== totalInputDescriptors) {
|
|
261
|
-
throw Error(`Amount of presentations ${args.verifiablePresentations?.length}, doesn't match expected ${request.presentationDefinitions?.length}`);
|
|
262
|
-
}
|
|
263
|
-
else if (!args.presentationSubmission) {
|
|
264
|
-
throw Error(`Presentation submission is required when verifiable presentations are required`);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
const verifiablePresentations = args.verifiablePresentations
|
|
268
|
-
? args.verifiablePresentations.map((vp) => CredentialMapper.storedPresentationToOriginalFormat(vp))
|
|
269
|
-
: [];
|
|
270
|
-
const op = await createOP({
|
|
271
|
-
opOptions: {
|
|
272
|
-
...this.options,
|
|
273
|
-
resolveOpts: { ...this.options.resolveOpts },
|
|
274
|
-
eventEmitter: this.options.eventEmitter,
|
|
275
|
-
presentationSignCallback: this.options.presentationSignCallback,
|
|
276
|
-
wellknownDIDVerifyCallback: this.options.wellknownDIDVerifyCallback,
|
|
277
|
-
supportedVersions: request.versions,
|
|
278
|
-
},
|
|
279
|
-
idOpts: args.responseSignerOpts,
|
|
280
|
-
context: this.context,
|
|
281
|
-
});
|
|
282
|
-
//TODO change this to use the new functionalities by identifier-resolver and get the jwkIssuer for the responseOpts
|
|
283
|
-
let issuer = args.responseSignerOpts.issuer;
|
|
284
|
-
const responseOpts = {
|
|
285
|
-
verification,
|
|
286
|
-
issuer,
|
|
287
|
-
...(args.isFirstParty && { isFirstParty: args.isFirstParty }),
|
|
288
|
-
...(args.verifiablePresentations && {
|
|
289
|
-
presentationExchange: {
|
|
290
|
-
verifiablePresentations,
|
|
291
|
-
presentationSubmission: args.presentationSubmission,
|
|
292
|
-
},
|
|
293
|
-
}),
|
|
294
|
-
dcqlQuery: args.dcqlResponse,
|
|
295
|
-
};
|
|
296
|
-
const authResponse = await op.createAuthorizationResponse(request, responseOpts);
|
|
297
|
-
const response = await op.submitAuthorizationResponse(authResponse, await this.createJarmResponseCallback({ responseOpts }));
|
|
298
|
-
if (response.status >= 400) {
|
|
299
|
-
throw Error(`Error ${response.status}: ${response.statusText || (await response.text())}`);
|
|
300
|
-
}
|
|
301
|
-
else {
|
|
302
|
-
return response;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
countVCsInAllVPs(verifiablePresentations, hasher) {
|
|
306
|
-
return verifiablePresentations.reduce((sum, vp) => {
|
|
307
|
-
if (CredentialMapper.isMsoMdocDecodedPresentation(vp) || CredentialMapper.isMsoMdocOid4VPEncoded(vp)) {
|
|
308
|
-
return sum + 1;
|
|
309
|
-
}
|
|
310
|
-
const uvp = CredentialMapper.toUniformPresentation(vp, { hasher: hasher ?? this.options.hasher });
|
|
311
|
-
if (uvp.verifiableCredential?.length) {
|
|
312
|
-
return sum + uvp.verifiableCredential?.length;
|
|
313
|
-
}
|
|
314
|
-
const isSdJWT = CredentialMapper.isSdJwtDecodedCredential(uvp);
|
|
315
|
-
if (isSdJWT ||
|
|
316
|
-
(uvp.verifiableCredential && !PEX.allowMultipleVCsPerPresentation(uvp.verifiableCredential))) {
|
|
317
|
-
return sum + 1;
|
|
318
|
-
}
|
|
319
|
-
return sum;
|
|
320
|
-
}, 0);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
function convertDidMethod(didMethod, didPrefix) {
|
|
324
|
-
if (didPrefix === false) {
|
|
325
|
-
return didMethod.startsWith('did:') ? didMethod.toLowerCase().replace('did:', '') : didMethod.toLowerCase();
|
|
326
|
-
}
|
|
327
|
-
return didMethod.startsWith('did:') ? didMethod.toLowerCase() : `did:${didMethod.toLowerCase().replace('did:', '')}`;
|
|
328
|
-
}
|
|
329
|
-
//# sourceMappingURL=OpSession.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpSession.js","sourceRoot":"","sources":["../../src/session/OpSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { OP, OPBuilder, PresentationSignCallback } from '@sphereon/did-auth-siop';
|
|
2
|
-
import { JwtHeader, JwtIssuer, SigningAlgo } from '@sphereon/oid4vc-common';
|
|
3
|
-
import { Format } from '@sphereon/pex-models';
|
|
4
|
-
import { ManagedIdentifierOptsOrResult } from '@sphereon/ssi-sdk-ext.identifier-resolution';
|
|
5
|
-
import { JwsPayload } from '@sphereon/ssi-sdk-ext.jwt-service';
|
|
6
|
-
import { TKeyType } from '@veramo/core';
|
|
7
|
-
import { IOPOptions, IRequiredContext } from '../types';
|
|
8
|
-
export declare function createOID4VPPresentationSignCallback({ presentationSignCallback, idOpts, domain, fetchRemoteContexts, challenge, format, context, skipDidResolution, }: {
|
|
9
|
-
presentationSignCallback?: PresentationSignCallback;
|
|
10
|
-
idOpts: ManagedIdentifierOptsOrResult;
|
|
11
|
-
domain?: string;
|
|
12
|
-
challenge?: string;
|
|
13
|
-
fetchRemoteContexts?: boolean;
|
|
14
|
-
skipDidResolution?: boolean;
|
|
15
|
-
format?: Format;
|
|
16
|
-
context: IRequiredContext;
|
|
17
|
-
}): Promise<PresentationSignCallback>;
|
|
18
|
-
export declare function createOPBuilder({ opOptions, idOpts, context, }: {
|
|
19
|
-
opOptions: IOPOptions;
|
|
20
|
-
idOpts?: ManagedIdentifierOptsOrResult;
|
|
21
|
-
context: IRequiredContext;
|
|
22
|
-
}): Promise<OPBuilder>;
|
|
23
|
-
export declare function createJwtCallbackWithIdOpts(idOpts: ManagedIdentifierOptsOrResult, context: IRequiredContext): (jwtIssuer: JwtIssuer, jwt: {
|
|
24
|
-
header: JwtHeader;
|
|
25
|
-
payload: JwsPayload;
|
|
26
|
-
}) => Promise<string>;
|
|
27
|
-
export declare function createJwtCallbackWithOpOpts(opOpts: IOPOptions, context: IRequiredContext): (jwtIssuer: JwtIssuer, jwt: {
|
|
28
|
-
header: JwtHeader;
|
|
29
|
-
payload: JwsPayload;
|
|
30
|
-
}) => Promise<string>;
|
|
31
|
-
export declare function createOP({ opOptions, idOpts, context, }: {
|
|
32
|
-
opOptions: IOPOptions;
|
|
33
|
-
idOpts?: ManagedIdentifierOptsOrResult;
|
|
34
|
-
context: IRequiredContext;
|
|
35
|
-
}): Promise<OP>;
|
|
36
|
-
export declare function getSigningAlgo(type: TKeyType): SigningAlgo;
|
|
37
|
-
//# sourceMappingURL=functions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../src/session/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAAU,wBAAwB,EAAqD,MAAM,yBAAyB,CAAA;AAC5I,OAAO,EAAqB,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAA0D,6BAA6B,EAAE,MAAM,6CAA6C,CAAA;AACnJ,OAAO,EAAa,UAAU,EAAoB,MAAM,mCAAmC,CAAA;AAG3F,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAGvD,wBAAsB,oCAAoC,CAAC,EACzD,wBAAwB,EACxB,MAAM,EACN,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,MAAM,EACN,OAAO,EACP,iBAAiB,GAClB,EAAE;IACD,wBAAwB,CAAC,EAAE,wBAAwB,CAAA;IACnD,MAAM,EAAE,6BAA6B,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,gBAAgB,CAAA;CAC1B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAgBpC;AAED,wBAAsB,eAAe,CAAC,EACpC,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE;IACD,SAAS,EAAE,UAAU,CAAA;IACrB,MAAM,CAAC,EAAE,6BAA6B,CAAA;IACtC,OAAO,EAAE,gBAAgB,CAAA;CAC1B,GAAG,OAAO,CAAC,SAAS,CAAC,CA2DrB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,6BAA6B,EACrC,OAAO,EAAE,gBAAgB,GACxB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CA2B5F;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,gBAAgB,GACxB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAsB5F;AAmBD,wBAAsB,QAAQ,CAAC,EAC7B,SAAS,EACT,MAAM,EACN,OAAO,GACR,EAAE;IACD,SAAS,EAAE,UAAU,CAAA;IACrB,MAAM,CAAC,EAAE,6BAA6B,CAAA;IACtC,OAAO,EAAE,gBAAgB,CAAA;CAC1B,GAAG,OAAO,CAAC,EAAE,CAAC,CAEd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAc1D"}
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { OP, PassBy, ResponseMode, SupportedVersion } from '@sphereon/did-auth-siop';
|
|
2
|
-
import { SigningAlgo } from '@sphereon/oid4vc-common';
|
|
3
|
-
import { isManagedIdentifierDidOpts, isManagedIdentifierX5cOpts } from '@sphereon/ssi-sdk-ext.identifier-resolution';
|
|
4
|
-
import { createPEXPresentationSignCallback } from '@sphereon/ssi-sdk.presentation-exchange';
|
|
5
|
-
import { EventEmitter } from 'events';
|
|
6
|
-
export async function createOID4VPPresentationSignCallback({ presentationSignCallback, idOpts, domain, fetchRemoteContexts, challenge, format, context, skipDidResolution, }) {
|
|
7
|
-
if (typeof presentationSignCallback === 'function') {
|
|
8
|
-
return presentationSignCallback;
|
|
9
|
-
}
|
|
10
|
-
return createPEXPresentationSignCallback({
|
|
11
|
-
idOpts,
|
|
12
|
-
fetchRemoteContexts,
|
|
13
|
-
domain,
|
|
14
|
-
challenge,
|
|
15
|
-
format,
|
|
16
|
-
skipDidResolution,
|
|
17
|
-
}, context);
|
|
18
|
-
}
|
|
19
|
-
export async function createOPBuilder({ opOptions, idOpts, context, }) {
|
|
20
|
-
const eventEmitter = opOptions.eventEmitter ?? new EventEmitter();
|
|
21
|
-
const builder = OP.builder()
|
|
22
|
-
.withResponseMode(opOptions.responseMode ?? ResponseMode.DIRECT_POST)
|
|
23
|
-
.withSupportedVersions(opOptions.supportedVersions ?? [
|
|
24
|
-
SupportedVersion.SIOPv2_ID1,
|
|
25
|
-
SupportedVersion.JWT_VC_PRESENTATION_PROFILE_v1,
|
|
26
|
-
SupportedVersion.SIOPv2_D11,
|
|
27
|
-
SupportedVersion.SIOPv2_D12_OID4VP_D18,
|
|
28
|
-
])
|
|
29
|
-
.withExpiresIn(opOptions.expiresIn ?? 300)
|
|
30
|
-
.withEventEmitter(eventEmitter)
|
|
31
|
-
.withRegistration({
|
|
32
|
-
passBy: PassBy.VALUE,
|
|
33
|
-
});
|
|
34
|
-
const wellknownDIDVerifyCallback = opOptions.wellknownDIDVerifyCallback
|
|
35
|
-
? opOptions.wellknownDIDVerifyCallback
|
|
36
|
-
: async (args) => {
|
|
37
|
-
const result = await context.agent.cvVerifyCredential({
|
|
38
|
-
credential: args.credential,
|
|
39
|
-
fetchRemoteContexts: true,
|
|
40
|
-
});
|
|
41
|
-
return { verified: result.result };
|
|
42
|
-
};
|
|
43
|
-
builder.withVerifyJwtCallback(opOptions.verifyJwtCallback
|
|
44
|
-
? opOptions.verifyJwtCallback
|
|
45
|
-
: getVerifyJwtCallback({
|
|
46
|
-
verifyOpts: {
|
|
47
|
-
wellknownDIDVerifyCallback,
|
|
48
|
-
checkLinkedDomain: 'if_present',
|
|
49
|
-
},
|
|
50
|
-
}, context));
|
|
51
|
-
if (idOpts) {
|
|
52
|
-
if (opOptions.skipDidResolution && isManagedIdentifierDidOpts(idOpts)) {
|
|
53
|
-
idOpts.offlineWhenNoDIDRegistered = true;
|
|
54
|
-
}
|
|
55
|
-
const createJwtCallback = createJwtCallbackWithIdOpts(idOpts, context);
|
|
56
|
-
builder.withCreateJwtCallback(createJwtCallback);
|
|
57
|
-
builder.withPresentationSignCallback(await createOID4VPPresentationSignCallback({
|
|
58
|
-
presentationSignCallback: opOptions.presentationSignCallback,
|
|
59
|
-
skipDidResolution: opOptions.skipDidResolution ?? false,
|
|
60
|
-
idOpts,
|
|
61
|
-
context,
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
const createJwtCallback = createJwtCallbackWithOpOpts(opOptions, context);
|
|
66
|
-
builder.withCreateJwtCallback(createJwtCallback);
|
|
67
|
-
}
|
|
68
|
-
return builder;
|
|
69
|
-
}
|
|
70
|
-
export function createJwtCallbackWithIdOpts(idOpts, context) {
|
|
71
|
-
return async (jwtIssuer, jwt) => {
|
|
72
|
-
let issuer;
|
|
73
|
-
if (isManagedIdentifierDidOpts(idOpts)) {
|
|
74
|
-
issuer = {
|
|
75
|
-
...idOpts,
|
|
76
|
-
method: idOpts.method,
|
|
77
|
-
noIdentifierInHeader: false,
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
else if (isManagedIdentifierX5cOpts(idOpts)) {
|
|
81
|
-
issuer = {
|
|
82
|
-
...idOpts,
|
|
83
|
-
method: idOpts.method,
|
|
84
|
-
noIdentifierInHeader: false,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
return Promise.reject(Error(`JWT issuer method ${jwtIssuer.method} not yet supported`));
|
|
89
|
-
}
|
|
90
|
-
const result = await context.agent.jwtCreateJwsCompactSignature({
|
|
91
|
-
issuer,
|
|
92
|
-
protectedHeader: jwt.header,
|
|
93
|
-
payload: jwt.payload,
|
|
94
|
-
});
|
|
95
|
-
return result.jwt;
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
export function createJwtCallbackWithOpOpts(opOpts, context) {
|
|
99
|
-
return async (jwtIssuer, jwt) => {
|
|
100
|
-
let identifier;
|
|
101
|
-
if (jwtIssuer.method == 'did') {
|
|
102
|
-
identifier = jwtIssuer.didUrl;
|
|
103
|
-
}
|
|
104
|
-
else if (jwtIssuer.method == 'x5c') {
|
|
105
|
-
identifier = jwtIssuer.x5c;
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
return Promise.reject(Error(`JWT issuer method ${jwtIssuer.method} not yet supported`));
|
|
109
|
-
}
|
|
110
|
-
const result = await context.agent.jwtCreateJwsCompactSignature({
|
|
111
|
-
// FIXME fix cose-key inference
|
|
112
|
-
// @ts-ignore
|
|
113
|
-
issuer: { identifier: identifier, kmsKeyRef: idOpts.kmsKeyRef, noIdentifierInHeader: false },
|
|
114
|
-
// FIXME fix JWK key_ops
|
|
115
|
-
// @ts-ignore
|
|
116
|
-
protectedHeader: jwt.header,
|
|
117
|
-
payload: jwt.payload,
|
|
118
|
-
});
|
|
119
|
-
return result.jwt;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
function getVerifyJwtCallback(_opts, context) {
|
|
123
|
-
return async (_jwtVerifier, jwt) => {
|
|
124
|
-
const result = await context.agent.jwtVerifyJwsSignature({ jws: jwt.raw });
|
|
125
|
-
console.log(result.message);
|
|
126
|
-
return !result.error;
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
export async function createOP({ opOptions, idOpts, context, }) {
|
|
130
|
-
return (await createOPBuilder({ opOptions, idOpts, context })).build();
|
|
131
|
-
}
|
|
132
|
-
export function getSigningAlgo(type) {
|
|
133
|
-
switch (type) {
|
|
134
|
-
case 'Ed25519':
|
|
135
|
-
return SigningAlgo.EDDSA;
|
|
136
|
-
case 'Secp256k1':
|
|
137
|
-
return SigningAlgo.ES256K;
|
|
138
|
-
case 'Secp256r1':
|
|
139
|
-
return SigningAlgo.ES256;
|
|
140
|
-
// @ts-ignore
|
|
141
|
-
case 'RSA':
|
|
142
|
-
return SigningAlgo.RS256;
|
|
143
|
-
default:
|
|
144
|
-
throw Error('Key type not yet supported');
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
//# sourceMappingURL=functions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../src/session/functions.ts"],"names":[],"mappings":"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"}
|
package/dist/session/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
|
package/dist/session/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
|