@sphereon/ssi-sdk.oidf-metatdata-server 0.30.2-feature.FIDES.integration.235 → 0.30.2-feature.SPRIND.93.oidf.support.244

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.ts CHANGED
@@ -1,3 +1,10 @@
1
- export * from './types';
1
+ export declare const logger: import("@sphereon/ssi-types").ISimpleLogger<unknown>;
2
+ /**
3
+ * @public
4
+ */
5
+ declare const schema: any;
6
+ export { schema };
7
+ export * from './oidf-metadata-store';
8
+ export * from './types/metadata-store';
2
9
  export * from './oidf-metadata-server';
3
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,sDAGoB,CAAA;AAEvC;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA"}
package/dist/index.js CHANGED
@@ -14,6 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./types"), exports);
17
+ exports.schema = exports.logger = void 0;
18
+ const ssi_types_1 = require("@sphereon/ssi-types");
19
+ exports.logger = ssi_types_1.Loggers.DEFAULT.options('sphereon:oidf-metadata-server', {
20
+ defaultLogLevel: ssi_types_1.LogLevel.DEBUG,
21
+ methods: [ssi_types_1.LogMethod.CONSOLE, ssi_types_1.LogMethod.DEBUG_PKG],
22
+ }).get('sphereon:oidf-metadata-server');
23
+ /**
24
+ * @public
25
+ */
26
+ const schema = require('../plugin.schema.json');
27
+ exports.schema = schema;
28
+ __exportStar(require("./oidf-metadata-store"), exports);
29
+ __exportStar(require("./types/metadata-store"), exports);
18
30
  __exportStar(require("./oidf-metadata-server"), exports);
19
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,yDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAkE;AAErD,QAAA,MAAM,GAAG,mBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE;IAC7E,eAAe,EAAE,oBAAQ,CAAC,KAAK;IAC/B,OAAO,EAAE,CAAC,qBAAS,CAAC,OAAO,EAAE,qBAAS,CAAC,SAAS,CAAC;CAClD,CAAC,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;AAEvC;;GAEG;AACH,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AACtC,wBAAM;AAEf,wDAAqC;AACrC,yDAAsC;AACtC,yDAAsC"}
@@ -1,22 +1,24 @@
1
- import { IOID4MetadataServerOpts, IRequiredContext } from './types';
1
+ import { FederationMetadataServerOpts, IRequiredContext } from './types/metadata-server';
2
2
  import { ExpressSupport } from '@sphereon/ssi-express-support';
3
- export default class OIDFMetadataServer {
4
- private readonly _routers;
3
+ export declare class OIDFMetadataServer {
5
4
  private readonly _context;
6
- private readonly _opts?;
5
+ private readonly _routers;
7
6
  private readonly _app;
7
+ private readonly _opts?;
8
+ private _routerMiddleware;
8
9
  constructor(args: {
9
10
  context: IRequiredContext;
10
11
  expressSupport: ExpressSupport;
11
- opts?: IOID4MetadataServerOpts;
12
+ opts?: FederationMetadataServerOpts;
12
13
  });
13
- up(): Promise<void>;
14
14
  private getHostAndPath;
15
+ down(): Promise<void>;
16
+ up(): Promise<void>;
15
17
  private hostEndpoints;
16
18
  static init(args: {
17
19
  context: IRequiredContext;
18
20
  expressSupport: ExpressSupport;
19
- opts?: IOID4MetadataServerOpts;
21
+ opts?: FederationMetadataServerOpts;
20
22
  }): Promise<OIDFMetadataServer>;
21
23
  }
22
24
  //# sourceMappingURL=oidf-metadata-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oidf-metadata-server.d.ts","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,uBAAuB,EAAE,gBAAgB,EAA4B,MAAM,SAAS,CAAA;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAG9D,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,IAAI,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,uBAAuB,CAAA;KAAE;IAQlG,EAAE;IAWf,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,aAAa,CAqCpB;WAEY,IAAI,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,gBAAgB,CAAA;QACzB,cAAc,EAAE,cAAc,CAAA;QAC9B,IAAI,CAAC,EAAE,uBAAuB,CAAA;KAC/B,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAMhC"}
1
+ {"version":3,"file":"oidf-metadata-server.d.ts","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC7G,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAM9D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA8B;IACrD,OAAO,CAAC,iBAAiB,CAA+B;gBAE5C,IAAI,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,cAAc,EAAE,cAAc,CAAC;QAAC,IAAI,CAAC,EAAE,4BAA4B,CAAA;KAAE;IASpH,OAAO,CAAC,cAAc;IAaT,IAAI;IAcJ,EAAE;IAYf,OAAO,CAAC,aAAa,CAkDpB;WAEY,IAAI,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,gBAAgB,CAAA;QACzB,cAAc,EAAE,cAAc,CAAA;QAC9B,IAAI,CAAC,EAAE,4BAA4B,CAAA;KACpC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAMhC"}
@@ -12,11 +12,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const types_1 = require("./types");
15
+ exports.OIDFMetadataServer = void 0;
16
+ const metadata_server_1 = require("./types/metadata-server");
16
17
  const express_1 = __importDefault(require("express"));
18
+ const index_1 = require("./index");
17
19
  class OIDFMetadataServer {
18
20
  constructor(args) {
19
21
  this.hostEndpoints = (metadataEndpoints) => {
22
+ index_1.logger.debug('metadataEndpoints', metadataEndpoints);
20
23
  // Group endpoints by hostname
21
24
  const endpointsByHost = new Map();
22
25
  metadataEndpoints.forEach((endpoint) => {
@@ -30,59 +33,94 @@ class OIDFMetadataServer {
30
33
  // Create and configure routers for each hostname
31
34
  endpointsByHost.forEach((endpoints, hostname) => {
32
35
  const router = express_1.default.Router();
36
+ index_1.logger.debug('assigning OIDF metadata router to', hostname);
33
37
  this._routers.set(hostname, router);
34
38
  endpoints.forEach(({ basePath, endpoint }) => {
35
- const federationPath = basePath + types_1.FederationEndpoints.WELL_KNOWN_OPENID_FEDERATION;
39
+ const federationPath = basePath + metadata_server_1.FederationEndpoints.WELL_KNOWN_OPENID_FEDERATION;
40
+ index_1.logger.debug('mapping OIDF metadata HTTP GET to', federationPath);
36
41
  router.get(federationPath, (request, response) => __awaiter(this, void 0, void 0, function* () {
37
- const asciiData = Buffer.from(endpoint.jwt, 'ascii');
38
- response.setHeader('Content-Type', 'application/entity-statement+jwt');
39
- return response.send(asciiData);
42
+ try {
43
+ const asciiData = Buffer.from(endpoint.jwt, 'ascii');
44
+ response.setHeader('Content-Type', 'application/entity-statement+jwt');
45
+ return response.send(asciiData);
46
+ }
47
+ catch (error) {
48
+ index_1.logger.error('Error processing federation metadata request:', error);
49
+ return response.status(500).send('Internal server error');
50
+ }
40
51
  }));
41
52
  });
42
- // Mount the router for this hostname
43
- this._app.use((request, response, next) => {
44
- if (request.hostname === hostname) {
53
+ // Mount the router for this hostname and keep track of the middleware
54
+ const middleware = (request, response, next) => {
55
+ var _a, _b;
56
+ const forwardedHost = (_b = (_a = request.headers['x-forwarded-host']) === null || _a === void 0 ? void 0 : _a.toString()) === null || _b === void 0 ? void 0 : _b.split(':')[0];
57
+ const reqHostname = forwardedHost !== null && forwardedHost !== void 0 ? forwardedHost : request.hostname;
58
+ if (reqHostname === hostname) {
45
59
  router(request, response, next);
46
60
  }
47
61
  else {
48
62
  next();
49
63
  }
50
- });
64
+ };
65
+ this._routerMiddleware.push(middleware);
66
+ this._app.use(middleware);
51
67
  });
52
68
  };
53
- const { context, expressSupport, opts } = args;
69
+ const { expressSupport, context, opts } = args;
54
70
  this._context = context;
55
- this._opts = opts;
56
71
  this._app = expressSupport.express;
72
+ this._opts = opts;
57
73
  this._routers = new Map();
74
+ this._routerMiddleware = [];
75
+ }
76
+ getHostAndPath(url) {
77
+ try {
78
+ const urlObj = new URL(url);
79
+ return {
80
+ hostname: urlObj.hostname,
81
+ basePath: urlObj.pathname.replace(/\/+$/, ''), // Remove trailing slashes
82
+ };
83
+ }
84
+ catch (error) {
85
+ index_1.logger.error(`Invalid URL provided: ${url}`, error);
86
+ throw new Error(`Invalid URL provided: ${url}`);
87
+ }
88
+ }
89
+ down() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ // Remove all mounted middleware
92
+ this._routerMiddleware.forEach((middleware) => {
93
+ const index = this._app._router.stack.findIndex((layer) => layer.handle === middleware);
94
+ if (index !== -1) {
95
+ this._app._router.stack.splice(index, 1);
96
+ }
97
+ });
98
+ // Clear the collections
99
+ this._routerMiddleware = [];
100
+ this._routers.clear();
101
+ });
58
102
  }
59
103
  up() {
60
104
  return __awaiter(this, void 0, void 0, function* () {
61
105
  var _a, _b;
62
- const metadataEndpoints = (yield this._context.agent.oid4vciStoreListMetadata({
63
- metadataType: 'openidFederation',
106
+ // Clean up existing routes first
107
+ yield this.down();
108
+ const metadataEndpoints = yield this._context.agent.oidfStoreListMetadata({
64
109
  storeId: (_a = this._opts) === null || _a === void 0 ? void 0 : _a.storeId,
65
110
  namespace: (_b = this._opts) === null || _b === void 0 ? void 0 : _b.namespace,
66
- }));
67
- const filteredEndpoints = metadataEndpoints.filter((endpoint) => endpoint !== undefined && endpoint.enabled);
111
+ });
112
+ const filteredEndpoints = metadataEndpoints.filter((endpoint) => endpoint.enabled !== false);
68
113
  this.hostEndpoints(filteredEndpoints);
69
114
  });
70
115
  }
71
- getHostAndPath(url) {
72
- const urlObj = new URL(url);
73
- return {
74
- hostname: urlObj.hostname,
75
- basePath: urlObj.pathname.replace(/\/+$/, ''), // Remove trailing slashes
76
- };
77
- }
78
116
  static init(args) {
79
117
  return __awaiter(this, void 0, void 0, function* () {
80
- const { context, expressSupport, opts } = args;
118
+ const { expressSupport, context, opts } = args;
81
119
  const oidfMetadataServer = new OIDFMetadataServer({ context, expressSupport, opts });
82
120
  yield oidfMetadataServer.up();
83
121
  return oidfMetadataServer;
84
122
  });
85
123
  }
86
124
  }
87
- exports.default = OIDFMetadataServer;
125
+ exports.OIDFMetadataServer = OIDFMetadataServer;
88
126
  //# sourceMappingURL=oidf-metadata-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oidf-metadata-server.js","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidf-metadata-server.js","sourceRoot":"","sources":["../src/oidf-metadata-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAA6G;AAE7G,sDAAqE;AAGrE,mCAAgC;AAEhC,MAAa,kBAAkB;IAO7B,YAAY,IAAwG;QAgD5G,kBAAa,GAAG,CAAC,iBAAkD,EAAE,EAAE;YAC7E,cAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAA;YAEpD,8BAA8B;YAC9B,MAAM,eAAe,GAAG,IAAI,GAAG,EAA2E,CAAA;YAE1G,iBAAiB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;;gBACrC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;gBAE3E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACnC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACnC,CAAC;gBACD,MAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC7D,CAAC,CAAC,CAAA;YAEF,iDAAiD;YACjD,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;gBAC9C,MAAM,MAAM,GAAW,iBAAO,CAAC,MAAM,EAAE,CAAA;gBACvC,cAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAA;gBAC3D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBAEnC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;oBAC3C,MAAM,cAAc,GAAG,QAAQ,GAAG,qCAAmB,CAAC,4BAA4B,CAAA;oBAClF,cAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAA;oBAEjE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAO,OAAgB,EAAE,QAAkB,EAAE,EAAE;wBACxE,IAAI,CAAC;4BACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;4BACpD,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,kCAAkC,CAAC,CAAA;4BACtE,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;wBACjC,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,cAAM,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAA;4BACpE,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;wBAC3D,CAAC;oBACH,CAAC,CAAA,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;gBAEF,sEAAsE;gBACtE,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,QAAkB,EAAE,IAA0B,EAAE,EAAE;;oBACtF,MAAM,aAAa,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,0CAAE,QAAQ,EAAE,0CAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;oBACpF,MAAM,WAAW,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,OAAO,CAAC,QAAQ,CAAA;oBACrD,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;wBAC7B,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;oBACjC,CAAC;yBAAM,CAAC;wBACN,IAAI,EAAE,CAAA;oBACR,CAAC;gBACH,CAAC,CAAA;gBACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YAC3B,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAjGC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;IAC7B,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;YAC3B,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,0BAA0B;aAC1E,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,cAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,EAAE,EAAE,KAAK,CAAC,CAAA;YACnD,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IAEY,IAAI;;YACf,gCAAgC;YAChC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAA;gBAC/F,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC1C,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,wBAAwB;YACxB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QACvB,CAAC;KAAA;IAEY,EAAE;;;YACb,iCAAiC;YACjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;YAEjB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC;gBACxE,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO;gBAC5B,SAAS,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS;aACjC,CAAC,CAAA;YACF,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,CAAA;YAC5F,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QACvC,CAAC;KAAA;IAsDD,MAAM,CAAO,IAAI,CAAC,IAIjB;;YACC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YAC9C,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAA;YACpF,MAAM,kBAAkB,CAAC,EAAE,EAAE,CAAA;YAC7B,OAAO,kBAAkB,CAAA;QAC3B,CAAC;KAAA;CACF;AArHD,gDAqHC"}
@@ -0,0 +1,22 @@
1
+ import { FederationMetadataClearArgs, FederationMetadataExistsArgs, FederationMetadataGetArgs, FederationMetadataListArgs, FederationMetadataPersistArgs, FederationMetadataRemoveArgs, FederationMetadataStoreOpts, IOIDFMetadataStore, OpenidFederationMetadata, OptionalOpenidFederationMetadata } from './types/metadata-store';
2
+ import { IValueData } from '@sphereon/ssi-sdk.kv-store-temp';
3
+ import { IAgentPlugin } from '@veramo/core';
4
+ export declare class OIDFMetadataStore implements IAgentPlugin {
5
+ private readonly defaultStoreId;
6
+ private readonly defaultNamespace;
7
+ private readonly _openidFederationMetadataStores;
8
+ readonly schema: any;
9
+ readonly methods: IOIDFMetadataStore;
10
+ constructor(options?: FederationMetadataStoreOpts);
11
+ private store;
12
+ oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
13
+ oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
14
+ oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
15
+ oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<IValueData<OpenidFederationMetadata>>;
16
+ oidfStoreRemoveMetadata(args: FederationMetadataRemoveArgs): Promise<boolean>;
17
+ oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
18
+ private storeIdStr;
19
+ private namespaceStr;
20
+ private prefix;
21
+ }
22
+ //# sourceMappingURL=oidf-metadata-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidf-metadata-store.d.ts","sourceRoot":"","sources":["../src/oidf-metadata-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAkB,UAAU,EAAiB,MAAM,iCAAiC,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,+BAA+B,CAAuD;IAEvG,QAAQ,CAAC,MAAM,MAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAOnC;gBAEW,OAAO,CAAC,EAAE,2BAA2B;IAmBjD,OAAO,CAAC,KAAK;IASP,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAOjI,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAQnH,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAO3G,wBAAwB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAmB5G,uBAAuB,CAAC,IAAI,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAU7E,yBAAyB,CAAC,EAAE,OAAO,EAAE,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3F,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;CAGf"}
@@ -0,0 +1,124 @@
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.OIDFMetadataStore = void 0;
13
+ const ssi_sdk_kv_store_temp_1 = require("@sphereon/ssi-sdk.kv-store-temp");
14
+ const index_1 = require("./index");
15
+ class OIDFMetadataStore {
16
+ constructor(options) {
17
+ var _a, _b;
18
+ this.schema = index_1.schema.IOIDFMetadataStore;
19
+ this.methods = {
20
+ oidfStoreGetMetadata: this.oidfStoreGetMetadata.bind(this),
21
+ oidfStoreListMetadata: this.oidfStoreListMetadata.bind(this),
22
+ oidfStoreHasMetadata: this.oidfStoreHasMetadata.bind(this),
23
+ oidfStorePersistMetadata: this.oidfStorePersistMetadata.bind(this),
24
+ oidfStoreRemoveMetadata: this.oidfStoreRemoveMetadata.bind(this),
25
+ oidfStoreClearAllMetadata: this.oidfStoreClearAllMetadata.bind(this),
26
+ };
27
+ this.defaultStoreId = (_a = options === null || options === void 0 ? void 0 : options.defaultStoreId) !== null && _a !== void 0 ? _a : '_default';
28
+ this.defaultNamespace = (_b = options === null || options === void 0 ? void 0 : options.defaultNamespace) !== null && _b !== void 0 ? _b : 'oidFederation';
29
+ if ((options === null || options === void 0 ? void 0 : options.openidFederationMetadataStores) && options.openidFederationMetadataStores instanceof Map) {
30
+ this._openidFederationMetadataStores = options.openidFederationMetadataStores;
31
+ }
32
+ else if (options === null || options === void 0 ? void 0 : options.openidFederationMetadataStores) {
33
+ this._openidFederationMetadataStores = new Map().set(this.defaultStoreId, options.openidFederationMetadataStores);
34
+ }
35
+ else {
36
+ this._openidFederationMetadataStores = new Map().set(this.defaultStoreId, new ssi_sdk_kv_store_temp_1.KeyValueStore({
37
+ namespace: this.defaultNamespace,
38
+ store: new Map(),
39
+ }));
40
+ }
41
+ }
42
+ store(args) {
43
+ const storeId = this.storeIdStr({ storeId: args.storeId });
44
+ const store = args.stores.get(storeId);
45
+ if (!store) {
46
+ throw Error(`Could not get federation metadata store: ${storeId}`);
47
+ }
48
+ return store;
49
+ }
50
+ oidfStoreGetMetadata(_a) {
51
+ return __awaiter(this, arguments, void 0, function* ({ correlationId, storeId, namespace }) {
52
+ return this.store({
53
+ stores: this._openidFederationMetadataStores,
54
+ storeId,
55
+ }).get(this.prefix({ namespace, correlationId }));
56
+ });
57
+ }
58
+ oidfStoreListMetadata(_a) {
59
+ return __awaiter(this, arguments, void 0, function* ({ storeId, namespace }) {
60
+ const result = yield this.store({
61
+ stores: this._openidFederationMetadataStores,
62
+ storeId,
63
+ }).getMany([`${this.namespaceStr({ namespace })}`]);
64
+ return result.filter((value) => !!value);
65
+ });
66
+ }
67
+ oidfStoreHasMetadata(_a) {
68
+ return __awaiter(this, arguments, void 0, function* ({ correlationId, storeId, namespace }) {
69
+ return this.store({
70
+ stores: this._openidFederationMetadataStores,
71
+ storeId,
72
+ }).has(this.prefix({ namespace, correlationId }));
73
+ });
74
+ }
75
+ oidfStorePersistMetadata(args) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ const namespace = this.namespaceStr(args);
78
+ const storeId = this.storeIdStr(args);
79
+ const { correlationId, metadata, ttl } = args;
80
+ const existingOpenIdFederation = yield this.store({
81
+ stores: this._openidFederationMetadataStores,
82
+ storeId,
83
+ }).getAsValueData(this.prefix({ namespace, correlationId }));
84
+ if (!existingOpenIdFederation.value || (existingOpenIdFederation.value && args.overwriteExisting !== false)) {
85
+ return yield this.store({
86
+ stores: this._openidFederationMetadataStores,
87
+ storeId,
88
+ }).set(this.prefix({ namespace, correlationId }), metadata, ttl);
89
+ }
90
+ return existingOpenIdFederation;
91
+ });
92
+ }
93
+ oidfStoreRemoveMetadata(args) {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ const namespace = this.namespaceStr(args);
96
+ const storeId = this.storeIdStr(args);
97
+ return this.store({
98
+ stores: this._openidFederationMetadataStores,
99
+ storeId,
100
+ }).delete(this.prefix({ namespace, correlationId: args.correlationId }));
101
+ });
102
+ }
103
+ oidfStoreClearAllMetadata(_a) {
104
+ return __awaiter(this, arguments, void 0, function* ({ storeId }) {
105
+ return yield this.store({
106
+ stores: this._openidFederationMetadataStores,
107
+ storeId,
108
+ })
109
+ .clear()
110
+ .then(() => true);
111
+ });
112
+ }
113
+ storeIdStr({ storeId }) {
114
+ return storeId !== null && storeId !== void 0 ? storeId : this.defaultStoreId;
115
+ }
116
+ namespaceStr({ namespace }) {
117
+ return namespace !== null && namespace !== void 0 ? namespace : this.defaultNamespace;
118
+ }
119
+ prefix({ namespace, correlationId }) {
120
+ return `${this.namespaceStr({ namespace })}:${correlationId}`;
121
+ }
122
+ }
123
+ exports.OIDFMetadataStore = OIDFMetadataStore;
124
+ //# sourceMappingURL=oidf-metadata-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidf-metadata-store.js","sourceRoot":"","sources":["../src/oidf-metadata-store.ts"],"names":[],"mappings":";;;;;;;;;;;;AAYA,2EAA2F;AAG3F,mCAAgC;AAEhC,MAAa,iBAAiB;IAe5B,YAAY,OAAqC;;QAVxC,WAAM,GAAG,cAAM,CAAC,kBAAkB,CAAA;QAClC,YAAO,GAAuB;YACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5D,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1D,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;YAClE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;YAChE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;SACrE,CAAA;QAGC,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,UAAU,CAAA;QAC3D,IAAI,CAAC,gBAAgB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,eAAe,CAAA;QAEpE,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,8BAA8B,KAAI,OAAO,CAAC,8BAA8B,YAAY,GAAG,EAAE,CAAC;YACrG,IAAI,CAAC,+BAA+B,GAAG,OAAO,CAAC,8BAA8B,CAAA;QAC/E,CAAC;aAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,8BAA8B,EAAE,CAAC;YACnD,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAA;QACnH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,+BAA+B,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,CAClD,IAAI,CAAC,cAAc,EACnB,IAAI,qCAAa,CAAC;gBAChB,SAAS,EAAE,IAAI,CAAC,gBAAgB;gBAChC,KAAK,EAAE,IAAI,GAAG,EAAoC;aACnD,CAAC,CACH,CAAA;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAyF;QACrG,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAA;QACpE,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEK,oBAAoB;6DAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAA6B;YACzF,OAAO,IAAI,CAAC,KAAK,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,+BAA+B;gBAC5C,OAAO;aACR,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;KAAA;IAEK,qBAAqB;6DAAC,EAAE,OAAO,EAAE,SAAS,EAA8B;YAC5E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,+BAA+B;gBAC5C,OAAO;aACR,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;QAC1C,CAAC;KAAA;IAEK,oBAAoB;6DAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAgC;YAC5F,OAAO,IAAI,CAAC,KAAK,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,+BAA+B;gBAC5C,OAAO;aACR,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;KAAA;IAEK,wBAAwB,CAAC,IAAmC;;YAChE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACrC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAE7C,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;gBAChD,MAAM,EAAE,IAAI,CAAC,+BAA+B;gBAC5C,OAAO;aACR,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;YAE5D,IAAI,CAAC,wBAAwB,CAAC,KAAK,IAAI,CAAC,wBAAwB,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC5G,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC;oBACtB,MAAM,EAAE,IAAI,CAAC,+BAA+B;oBAC5C,OAAO;iBACR,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,EAAE,QAAoC,EAAE,GAAG,CAAC,CAAA;YAC9F,CAAC;YACD,OAAO,wBAAwB,CAAA;QACjC,CAAC;KAAA;IAEK,uBAAuB,CAAC,IAAkC;;YAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAErC,OAAO,IAAI,CAAC,KAAK,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,+BAA+B;gBAC5C,OAAO;aACR,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;QAC1E,CAAC;KAAA;IAEK,yBAAyB;6DAAC,EAAE,OAAO,EAA+B;YACtE,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC;gBACtB,MAAM,EAAE,IAAI,CAAC,+BAA+B;gBAC5C,OAAO;aACR,CAAC;iBACC,KAAK,EAAE;iBACP,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;KAAA;IAEO,UAAU,CAAC,EAAE,OAAO,EAAwB;QAClD,OAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAC,cAAc,CAAA;IACvC,CAAC;IAEO,YAAY,CAAC,EAAE,SAAS,EAA0B;QACxD,OAAO,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,gBAAgB,CAAA;IAC3C,CAAC;IAEO,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAiD;QACxF,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,aAAa,EAAE,CAAA;IAC/D,CAAC;CACF;AAlHD,8CAkHC"}
@@ -0,0 +1,121 @@
1
+ import { ExpressSupport } from '@sphereon/ssi-express-support';
2
+ import { IAgentContext } from '@veramo/core';
3
+ import { IAgentPlugin } from '@veramo/core';
4
+ import { IKeyValueStore } from '@sphereon/ssi-sdk.kv-store-temp';
5
+ import { IPluginMethodMap } from '@veramo/core';
6
+ import { ISimpleLogger } from '@sphereon/ssi-types';
7
+ import { IValueData } from '@sphereon/ssi-sdk.kv-store-temp';
8
+
9
+ export declare interface FederationMetadataClearArgs {
10
+ storeId?: string;
11
+ }
12
+
13
+ export declare type FederationMetadataExistsArgs = FederationMetadataGetArgs;
14
+
15
+ export declare interface FederationMetadataGetArgs extends FederationMetadataListArgs {
16
+ correlationId: string;
17
+ }
18
+
19
+ export declare type FederationMetadataImportArgs = FederationMetadataPersistArgs;
20
+
21
+ export declare interface FederationMetadataListArgs {
22
+ storeId?: string;
23
+ namespace?: string;
24
+ }
25
+
26
+ export declare interface FederationMetadataPersistArgs {
27
+ correlationId: string;
28
+ metadata: OpenidFederationMetadata;
29
+ overwriteExisting?: boolean;
30
+ validation?: boolean;
31
+ ttl?: number;
32
+ storeId?: string;
33
+ namespace?: string;
34
+ }
35
+
36
+ export declare type FederationMetadataRemoveArgs = FederationMetadataGetArgs;
37
+
38
+ declare interface FederationMetadataServerOpts {
39
+ storeId?: string;
40
+ namespace?: string;
41
+ }
42
+
43
+ export declare interface FederationMetadataStoreOpts {
44
+ defaultStoreId?: string;
45
+ defaultNamespace?: string;
46
+ importMetadatas?: FederationMetadataImportArgs[];
47
+ openidFederationMetadataStores?: Map<string, IKeyValueStore<OpenidFederationMetadata>> | IKeyValueStore<OpenidFederationMetadata>;
48
+ }
49
+
50
+ export declare interface IOIDFMetadataStore extends IPluginMethodMap {
51
+ oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
52
+ oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
53
+ oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
54
+ oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<OpenidFederationValueData>;
55
+ oidfStoreRemoveMetadata({ storeId, correlationId, namespace }: FederationMetadataRemoveArgs): Promise<boolean>;
56
+ oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
57
+ }
58
+
59
+ declare type IPlugins = IOIDFMetadataStore;
60
+
61
+ declare type IRequiredContext = IAgentContext<IPlugins>;
62
+
63
+ export declare const logger: ISimpleLogger<unknown>;
64
+
65
+ export declare class OIDFMetadataServer {
66
+ private readonly _context;
67
+ private readonly _routers;
68
+ private readonly _app;
69
+ private readonly _opts?;
70
+ private _routerMiddleware;
71
+ constructor(args: {
72
+ context: IRequiredContext;
73
+ expressSupport: ExpressSupport;
74
+ opts?: FederationMetadataServerOpts;
75
+ });
76
+ private getHostAndPath;
77
+ down(): Promise<void>;
78
+ up(): Promise<void>;
79
+ private hostEndpoints;
80
+ static init(args: {
81
+ context: IRequiredContext;
82
+ expressSupport: ExpressSupport;
83
+ opts?: FederationMetadataServerOpts;
84
+ }): Promise<OIDFMetadataServer>;
85
+ }
86
+
87
+ export declare class OIDFMetadataStore implements IAgentPlugin {
88
+ private readonly defaultStoreId;
89
+ private readonly defaultNamespace;
90
+ private readonly _openidFederationMetadataStores;
91
+ readonly schema: any;
92
+ readonly methods: IOIDFMetadataStore;
93
+ constructor(options?: FederationMetadataStoreOpts);
94
+ private store;
95
+ oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
96
+ oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
97
+ oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
98
+ oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<IValueData<OpenidFederationMetadata>>;
99
+ oidfStoreRemoveMetadata(args: FederationMetadataRemoveArgs): Promise<boolean>;
100
+ oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
101
+ private storeIdStr;
102
+ private namespaceStr;
103
+ private prefix;
104
+ }
105
+
106
+ export declare type OpenidFederationMetadata = {
107
+ subjectBaseUrl: string;
108
+ jwt: string;
109
+ enabled: boolean | undefined;
110
+ };
111
+
112
+ export declare type OpenidFederationValueData = IValueData<OpenidFederationMetadata>;
113
+
114
+ export declare type OptionalOpenidFederationMetadata = OpenidFederationMetadata | undefined;
115
+
116
+ /**
117
+ * @public
118
+ */
119
+ export declare const schema: any;
120
+
121
+ export { }
@@ -0,0 +1,11 @@
1
+ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.
2
+ // It should be published with your NPM package. It should not be tracked by Git.
3
+ {
4
+ "tsdocVersion": "0.12",
5
+ "toolPackages": [
6
+ {
7
+ "packageName": "@microsoft/api-extractor",
8
+ "packageVersion": "7.47.7"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,12 @@
1
+ import { IAgentContext } from '@veramo/core';
2
+ import { IOIDFMetadataStore } from './metadata-store';
3
+ export declare enum FederationEndpoints {
4
+ WELL_KNOWN_OPENID_FEDERATION = "/.well-known/openid-federation"
5
+ }
6
+ export type IRequiredContext = IAgentContext<IPlugins>;
7
+ export type IPlugins = IOIDFMetadataStore;
8
+ export interface FederationMetadataServerOpts {
9
+ storeId?: string;
10
+ namespace?: string;
11
+ }
12
+ //# sourceMappingURL=metadata-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-server.d.ts","sourceRoot":"","sources":["../../src/types/metadata-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAErD,oBAAY,mBAAmB;IAC7B,4BAA4B,mCAAmC;CAChE;AAED,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AAEtD,MAAM,MAAM,QAAQ,GAAG,kBAAkB,CAAA;AAEzC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
@@ -5,4 +5,4 @@ var FederationEndpoints;
5
5
  (function (FederationEndpoints) {
6
6
  FederationEndpoints["WELL_KNOWN_OPENID_FEDERATION"] = "/.well-known/openid-federation";
7
7
  })(FederationEndpoints || (exports.FederationEndpoints = FederationEndpoints = {}));
8
- //# sourceMappingURL=types.js.map
8
+ //# sourceMappingURL=metadata-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-server.js","sourceRoot":"","sources":["../../src/types/metadata-server.ts"],"names":[],"mappings":";;;AAGA,IAAY,mBAEX;AAFD,WAAY,mBAAmB;IAC7B,sFAA+D,CAAA;AACjE,CAAC,EAFW,mBAAmB,mCAAnB,mBAAmB,QAE9B"}
@@ -0,0 +1,46 @@
1
+ import { IPluginMethodMap } from '@veramo/core';
2
+ import { IKeyValueStore, IValueData } from '@sphereon/ssi-sdk.kv-store-temp';
3
+ export type OpenidFederationMetadata = {
4
+ subjectBaseUrl: string;
5
+ jwt: string;
6
+ enabled: boolean | undefined;
7
+ };
8
+ export type OptionalOpenidFederationMetadata = OpenidFederationMetadata | undefined;
9
+ export type OpenidFederationValueData = IValueData<OpenidFederationMetadata>;
10
+ export interface IOIDFMetadataStore extends IPluginMethodMap {
11
+ oidfStoreGetMetadata({ correlationId, storeId, namespace }: FederationMetadataGetArgs): Promise<OptionalOpenidFederationMetadata>;
12
+ oidfStoreListMetadata({ storeId, namespace }: FederationMetadataListArgs): Promise<Array<OpenidFederationMetadata>>;
13
+ oidfStoreHasMetadata({ correlationId, storeId, namespace }: FederationMetadataExistsArgs): Promise<boolean>;
14
+ oidfStorePersistMetadata(args: FederationMetadataPersistArgs): Promise<OpenidFederationValueData>;
15
+ oidfStoreRemoveMetadata({ storeId, correlationId, namespace }: FederationMetadataRemoveArgs): Promise<boolean>;
16
+ oidfStoreClearAllMetadata({ storeId }: FederationMetadataClearArgs): Promise<boolean>;
17
+ }
18
+ export interface FederationMetadataStoreOpts {
19
+ defaultStoreId?: string;
20
+ defaultNamespace?: string;
21
+ importMetadatas?: FederationMetadataImportArgs[];
22
+ openidFederationMetadataStores?: Map<string, IKeyValueStore<OpenidFederationMetadata>> | IKeyValueStore<OpenidFederationMetadata>;
23
+ }
24
+ export interface FederationMetadataPersistArgs {
25
+ correlationId: string;
26
+ metadata: OpenidFederationMetadata;
27
+ overwriteExisting?: boolean;
28
+ validation?: boolean;
29
+ ttl?: number;
30
+ storeId?: string;
31
+ namespace?: string;
32
+ }
33
+ export type FederationMetadataImportArgs = FederationMetadataPersistArgs;
34
+ export interface FederationMetadataListArgs {
35
+ storeId?: string;
36
+ namespace?: string;
37
+ }
38
+ export interface FederationMetadataGetArgs extends FederationMetadataListArgs {
39
+ correlationId: string;
40
+ }
41
+ export type FederationMetadataExistsArgs = FederationMetadataGetArgs;
42
+ export type FederationMetadataRemoveArgs = FederationMetadataGetArgs;
43
+ export interface FederationMetadataClearArgs {
44
+ storeId?: string;
45
+ }
46
+ //# sourceMappingURL=metadata-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-store.d.ts","sourceRoot":"","sources":["../../src/types/metadata-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5E,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG,wBAAwB,GAAG,SAAS,CAAA;AACnF,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAE5E,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAA;IAEjI,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,0BAA0B,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAEnH,oBAAoB,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE3G,wBAAwB,CAAC,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAEjG,uBAAuB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE9G,yBAAyB,CAAC,EAAE,OAAO,EAAE,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtF;AAED,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE,4BAA4B,EAAE,CAAA;IAChD,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAA;CAClI;AAED,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,wBAAwB,CAAA;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,4BAA4B,GAAG,6BAA6B,CAAA;AAExE,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;IAC3E,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AACpE,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,CAAA;AAEpE,MAAM,WAAW,2BAA2B;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=metadata-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-store.js","sourceRoot":"","sources":["../../src/types/metadata-store.ts"],"names":[],"mappings":""}