@sphereon/ssi-sdk.siopv2-oid4vp-rp-auth 0.33.0 → 0.33.1-feature.vcdm2.4

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.
@@ -1,35 +1,24 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RPInstance = void 0;
13
- const functions_1 = require("./functions");
14
- const uuid_1 = require("uuid");
15
- const ssi_sdk_ext_identifier_resolution_1 = require("@sphereon/ssi-sdk-ext.identifier-resolution");
16
- class RPInstance {
1
+ import { createRPBuilder, getRequestVersion, getSigningAlgo } from './functions';
2
+ import { v4 as uuidv4 } from 'uuid';
3
+ import { ensureManagedIdentifierResult, isManagedIdentifierDidResult, isManagedIdentifierX5cResult, } from '@sphereon/ssi-sdk-ext.identifier-resolution';
4
+ export class RPInstance {
5
+ _rp;
6
+ _pexOptions;
7
+ _rpOptions;
17
8
  constructor({ rpOpts, pexOpts }) {
18
9
  this._rpOptions = rpOpts;
19
10
  this._pexOptions = pexOpts;
20
11
  }
21
- get(context) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- if (!this._rp) {
24
- const builder = yield (0, functions_1.createRPBuilder)({
25
- rpOpts: this._rpOptions,
26
- pexOpts: this._pexOptions,
27
- context,
28
- });
29
- this._rp = builder.build();
30
- }
31
- return this._rp;
32
- });
12
+ async get(context) {
13
+ if (!this._rp) {
14
+ const builder = await createRPBuilder({
15
+ rpOpts: this._rpOptions,
16
+ pexOpts: this._pexOptions,
17
+ context,
18
+ });
19
+ this._rp = builder.build();
20
+ }
21
+ return this._rp;
33
22
  }
34
23
  get rpOptions() {
35
24
  return this._rpOptions;
@@ -41,99 +30,88 @@ class RPInstance {
41
30
  return this.definitionId !== undefined;
42
31
  }
43
32
  get definitionId() {
44
- var _a;
45
- return (_a = this.pexOptions) === null || _a === void 0 ? void 0 : _a.definitionId;
33
+ return this.pexOptions?.definitionId;
46
34
  }
47
- getPresentationDefinition(context) {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- var _a;
50
- return this.definitionId
51
- ? yield context.agent.pexStoreGetDefinition({
52
- definitionId: this.definitionId,
53
- tenantId: (_a = this.pexOptions) === null || _a === void 0 ? void 0 : _a.tenantId,
54
- })
55
- : undefined;
56
- });
35
+ async getPresentationDefinition(context) {
36
+ return this.definitionId
37
+ ? await context.agent.pexStoreGetDefinition({
38
+ definitionId: this.definitionId,
39
+ tenantId: this.pexOptions?.tenantId,
40
+ })
41
+ : undefined;
57
42
  }
58
- createAuthorizationRequestURI(createArgs, context) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- var _a, _b;
61
- const { correlationId, claims, requestByReferenceURI, responseURI, responseURIType } = createArgs;
62
- const nonce = (_a = createArgs.nonce) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)();
63
- const state = (_b = createArgs.state) !== null && _b !== void 0 ? _b : correlationId;
64
- let jwtIssuer;
65
- const idOpts = this.rpOptions.identifierOpts.idOpts;
66
- const resolution = yield (0, ssi_sdk_ext_identifier_resolution_1.ensureManagedIdentifierResult)(idOpts, context);
67
- if ((0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierDidResult)(resolution)) {
68
- jwtIssuer = { didUrl: resolution.kid, method: 'did', alg: (0, functions_1.getSigningAlgo)(resolution.key.type) };
69
- }
70
- else if ((0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierX5cResult)(resolution)) {
71
- if (!resolution.issuer) {
72
- return Promise.reject('missing issuer in idOpts');
73
- }
74
- jwtIssuer = {
75
- issuer: resolution.issuer,
76
- x5c: resolution.x5c,
77
- method: 'x5c',
78
- alg: (0, functions_1.getSigningAlgo)(resolution.key.type),
79
- };
80
- }
81
- else {
82
- return Promise.reject(Error(`JWT issuer method ${resolution.method} not yet supported`));
43
+ async createAuthorizationRequestURI(createArgs, context) {
44
+ const { correlationId, claims, requestByReferenceURI, responseURI, responseURIType } = createArgs;
45
+ const nonce = createArgs.nonce ?? uuidv4();
46
+ const state = createArgs.state ?? correlationId;
47
+ let jwtIssuer;
48
+ const idOpts = this.rpOptions.identifierOpts.idOpts;
49
+ const resolution = await ensureManagedIdentifierResult(idOpts, context);
50
+ if (isManagedIdentifierDidResult(resolution)) {
51
+ jwtIssuer = { didUrl: resolution.kid, method: 'did', alg: getSigningAlgo(resolution.key.type) };
52
+ }
53
+ else if (isManagedIdentifierX5cResult(resolution)) {
54
+ if (!resolution.issuer) {
55
+ return Promise.reject('missing issuer in idOpts');
83
56
  }
84
- return yield this.get(context).then((rp) => rp.createAuthorizationRequestURI({
85
- version: (0, functions_1.getRequestVersion)(this.rpOptions),
86
- correlationId,
87
- nonce,
88
- state,
89
- claims,
90
- requestByReferenceURI,
91
- responseURI,
92
- responseURIType,
93
- jwtIssuer,
94
- }));
95
- });
57
+ jwtIssuer = {
58
+ issuer: resolution.issuer,
59
+ x5c: resolution.x5c,
60
+ method: 'x5c',
61
+ alg: getSigningAlgo(resolution.key.type),
62
+ };
63
+ }
64
+ else {
65
+ return Promise.reject(Error(`JWT issuer method ${resolution.method} not yet supported`));
66
+ }
67
+ return await this.get(context).then((rp) => rp.createAuthorizationRequestURI({
68
+ version: getRequestVersion(this.rpOptions),
69
+ correlationId,
70
+ nonce,
71
+ state,
72
+ claims,
73
+ requestByReferenceURI,
74
+ responseURI,
75
+ responseURIType,
76
+ jwtIssuer,
77
+ }));
96
78
  }
97
- createAuthorizationRequest(createArgs, context) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- var _a, _b;
100
- const { correlationId, claims, requestByReferenceURI, responseURI, responseURIType } = createArgs;
101
- const nonce = (_a = createArgs.nonce) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)();
102
- const state = (_b = createArgs.state) !== null && _b !== void 0 ? _b : correlationId;
103
- const idOpts = this.rpOptions.identifierOpts.idOpts;
104
- const resolution = yield (0, ssi_sdk_ext_identifier_resolution_1.ensureManagedIdentifierResult)(idOpts, context);
105
- let jwtIssuer;
106
- if ((0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierX5cResult)(resolution) && resolution.issuer) {
107
- jwtIssuer = {
108
- method: resolution.method,
109
- alg: (0, functions_1.getSigningAlgo)(resolution.key.type),
110
- x5c: resolution.x5c,
111
- issuer: resolution.issuer,
112
- };
113
- }
114
- else if ((0, ssi_sdk_ext_identifier_resolution_1.isManagedIdentifierDidResult)(resolution)) {
115
- jwtIssuer = {
116
- method: resolution.method,
117
- alg: (0, functions_1.getSigningAlgo)(resolution.key.type),
118
- didUrl: resolution.did,
119
- };
120
- }
121
- else {
122
- return Promise.reject(Error('Only did & x5c supported at present'));
123
- }
124
- return yield this.get(context).then((rp) => rp.createAuthorizationRequest({
125
- version: (0, functions_1.getRequestVersion)(this.rpOptions),
126
- correlationId,
127
- nonce,
128
- state,
129
- claims,
130
- requestByReferenceURI,
131
- responseURIType,
132
- responseURI,
133
- jwtIssuer,
134
- }));
135
- });
79
+ async createAuthorizationRequest(createArgs, context) {
80
+ const { correlationId, claims, requestByReferenceURI, responseURI, responseURIType } = createArgs;
81
+ const nonce = createArgs.nonce ?? uuidv4();
82
+ const state = createArgs.state ?? correlationId;
83
+ const idOpts = this.rpOptions.identifierOpts.idOpts;
84
+ const resolution = await ensureManagedIdentifierResult(idOpts, context);
85
+ let jwtIssuer;
86
+ if (isManagedIdentifierX5cResult(resolution) && resolution.issuer) {
87
+ jwtIssuer = {
88
+ method: resolution.method,
89
+ alg: getSigningAlgo(resolution.key.type),
90
+ x5c: resolution.x5c,
91
+ issuer: resolution.issuer,
92
+ };
93
+ }
94
+ else if (isManagedIdentifierDidResult(resolution)) {
95
+ jwtIssuer = {
96
+ method: resolution.method,
97
+ alg: getSigningAlgo(resolution.key.type),
98
+ didUrl: resolution.did,
99
+ };
100
+ }
101
+ else {
102
+ return Promise.reject(Error('Only did & x5c supported at present'));
103
+ }
104
+ return await this.get(context).then((rp) => rp.createAuthorizationRequest({
105
+ version: getRequestVersion(this.rpOptions),
106
+ correlationId,
107
+ nonce,
108
+ state,
109
+ claims,
110
+ requestByReferenceURI,
111
+ responseURIType,
112
+ responseURI,
113
+ jwtIssuer,
114
+ }));
136
115
  }
137
116
  }
138
- exports.RPInstance = RPInstance;
139
117
  //# sourceMappingURL=RPInstance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RPInstance.js","sourceRoot":"","sources":["../src/RPInstance.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,2CAAgF;AAChF,+BAAmC;AAEnC,mGAIoD;AAEpD,MAAa,UAAU;IAKrB,YAAmB,EAAE,MAAM,EAAE,OAAO,EAAiD;QACnF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;IAC5B,CAAC;IAEY,GAAG,CAAC,OAAyB;;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAe,EAAC;oBACpC,MAAM,EAAE,IAAI,CAAC,UAAU;oBACvB,OAAO,EAAE,IAAI,CAAC,WAAW;oBACzB,OAAO;iBACR,CAAC,CAAA;gBACF,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;YAC5B,CAAC;YACD,OAAO,IAAI,CAAC,GAAI,CAAA;QAClB,CAAC;KAAA;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,YAAY,KAAK,SAAS,CAAA;IACxC,CAAC;IAED,IAAI,YAAY;;QACd,OAAO,MAAA,IAAI,CAAC,UAAU,0CAAE,YAAY,CAAA;IACtC,CAAC;IAEY,yBAAyB,CAAC,OAAyB;;;YAC9D,OAAO,IAAI,CAAC,YAAY;gBACtB,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBACxC,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,QAAQ,EAAE,MAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ;iBACpC,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAA;QACf,CAAC;KAAA;IAEY,6BAA6B,CAAC,UAAwD,EAAE,OAAyB;;;YAC5H,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,UAAU,CAAA;YACjG,MAAM,KAAK,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,IAAA,SAAM,GAAE,CAAA;YAC1C,MAAM,KAAK,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,aAAa,CAAA;YAC/C,IAAI,SAAoB,CAAA;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAA;YACnD,MAAM,UAAU,GAAG,MAAM,IAAA,iEAA6B,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACvE,IAAI,IAAA,gEAA4B,EAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,SAAS,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAA,0BAAc,EAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;YACjG,CAAC;iBAAM,IAAI,IAAA,gEAA4B,EAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACvB,OAAO,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAA;gBACnD,CAAC;gBACD,SAAS,GAAG;oBACV,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAA,0BAAc,EAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;iBACzC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,UAAU,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAA;YAC1F,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,EAAE,CAAC,6BAA6B,CAAC;gBAC/B,OAAO,EAAE,IAAA,6BAAiB,EAAC,IAAI,CAAC,SAAS,CAAC;gBAC1C,aAAa;gBACb,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,qBAAqB;gBACrB,WAAW;gBACX,eAAe;gBACf,SAAS;aACV,CAAC,CACH,CAAA;QACH,CAAC;KAAA;IAEY,0BAA0B,CACrC,UAAwD,EACxD,OAAyB;;;YAEzB,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,UAAU,CAAA;YACjG,MAAM,KAAK,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,IAAA,SAAM,GAAE,CAAA;YAC1C,MAAM,KAAK,GAAG,MAAA,UAAU,CAAC,KAAK,mCAAI,aAAa,CAAA;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAA;YACnD,MAAM,UAAU,GAAG,MAAM,IAAA,iEAA6B,EAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAEvE,IAAI,SAAoB,CAAA;YACxB,IAAI,IAAA,gEAA4B,EAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBAClE,SAAS,GAAG;oBACV,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,GAAG,EAAE,IAAA,0BAAc,EAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBACxC,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAA;YACH,CAAC;iBAAM,IAAI,IAAA,gEAA4B,EAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,SAAS,GAAG;oBACV,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,GAAG,EAAE,IAAA,0BAAc,EAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBACxC,MAAM,EAAE,UAAU,CAAC,GAAG;iBACvB,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAA;YACrE,CAAC;YAED,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACzC,EAAE,CAAC,0BAA0B,CAAC;gBAC5B,OAAO,EAAE,IAAA,6BAAiB,EAAC,IAAI,CAAC,SAAS,CAAC;gBAC1C,aAAa;gBACb,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,qBAAqB;gBACrB,eAAe;gBACf,WAAW;gBACX,SAAS;aACV,CAAC,CACH,CAAA;QACH,CAAC;KAAA;CACF;AA/HD,gCA+HC"}
1
+ {"version":3,"file":"RPInstance.js","sourceRoot":"","sources":["../src/RPInstance.ts"],"names":[],"mappings":"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"}