@sphereon/ssi-sdk.oidf-client 0.33.1-next.3 → 0.33.1-next.68
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 +156 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +39 -0
- package/dist/index.d.ts +35 -5
- package/dist/index.js +136 -27
- package/dist/index.js.map +1 -1
- package/package.json +29 -16
- package/plugin.schema.json +5 -6
- package/src/agent/OIDFClient.ts +24 -12
- package/src/types/IOIDFClient.ts +0 -1
- package/dist/agent/OIDFClient.d.ts +0 -15
- package/dist/agent/OIDFClient.d.ts.map +0 -1
- package/dist/agent/OIDFClient.js +0 -66
- package/dist/agent/OIDFClient.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/ssi-sdk.oidf-client.d.ts +0 -50
- package/dist/tsdoc-metadata.json +0 -11
- package/dist/types/IOIDFClient.d.ts +0 -18
- package/dist/types/IOIDFClient.d.ts.map +0 -1
- package/dist/types/IOIDFClient.js +0 -3
- package/dist/types/IOIDFClient.js.map +0 -1
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
8
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
9
|
+
};
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all)
|
|
12
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
|
|
24
|
+
// plugin.schema.json
|
|
25
|
+
var require_plugin_schema = __commonJS({
|
|
26
|
+
"plugin.schema.json"(exports, module2) {
|
|
27
|
+
module2.exports = {
|
|
28
|
+
IOIDFClient: {
|
|
29
|
+
components: {
|
|
30
|
+
schemas: {
|
|
31
|
+
ResolveTrustChainArgs: {
|
|
32
|
+
type: "object",
|
|
33
|
+
properties: {
|
|
34
|
+
entityIdentifier: {
|
|
35
|
+
type: "string"
|
|
36
|
+
},
|
|
37
|
+
trustAnchors: {
|
|
38
|
+
type: "array",
|
|
39
|
+
items: {
|
|
40
|
+
type: "string"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
required: ["entityIdentifier", "trustAnchors"],
|
|
45
|
+
additionalProperties: false
|
|
46
|
+
},
|
|
47
|
+
TrustChainResolveResponse: {
|
|
48
|
+
type: "object",
|
|
49
|
+
additionalProperties: false
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
methods: {
|
|
53
|
+
resolveTrustChain: {
|
|
54
|
+
description: "",
|
|
55
|
+
arguments: {
|
|
56
|
+
$ref: "#/components/schemas/ResolveTrustChainArgs"
|
|
57
|
+
},
|
|
58
|
+
returnType: {
|
|
59
|
+
$ref: "#/components/schemas/TrustChainResolveResponse"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// src/index.ts
|
|
70
|
+
var index_exports = {};
|
|
71
|
+
__export(index_exports, {
|
|
72
|
+
OIDFClient: () => OIDFClient,
|
|
73
|
+
logger: () => logger,
|
|
74
|
+
oidfClientMethods: () => oidfClientMethods,
|
|
75
|
+
schema: () => schema
|
|
76
|
+
});
|
|
77
|
+
module.exports = __toCommonJS(index_exports);
|
|
78
|
+
var import_ssi_types = require("@sphereon/ssi-types");
|
|
79
|
+
|
|
80
|
+
// src/agent/OIDFClient.ts
|
|
81
|
+
var import_openid_federation_client = require("@sphereon/openid-federation-client");
|
|
82
|
+
var oidfClientMethods = [
|
|
83
|
+
"resolveTrustChain"
|
|
84
|
+
];
|
|
85
|
+
var OIDFClient = class {
|
|
86
|
+
static {
|
|
87
|
+
__name(this, "OIDFClient");
|
|
88
|
+
}
|
|
89
|
+
// private readonly fetchServiceCallback?: IFetchService
|
|
90
|
+
cryptoServiceCallback;
|
|
91
|
+
methods = {
|
|
92
|
+
resolveTrustChain: this.resolveTrustChain.bind(this)
|
|
93
|
+
};
|
|
94
|
+
schema = schema.IOIDFClient;
|
|
95
|
+
constructor(args) {
|
|
96
|
+
const { cryptoServiceCallback } = {
|
|
97
|
+
...args
|
|
98
|
+
};
|
|
99
|
+
this.cryptoServiceCallback = cryptoServiceCallback;
|
|
100
|
+
}
|
|
101
|
+
defaultCryptoJSImpl(context) {
|
|
102
|
+
return {
|
|
103
|
+
verify: /* @__PURE__ */ __name(async (jwt, key) => {
|
|
104
|
+
const verification = await context.agent.jwtVerifyJwsSignature({
|
|
105
|
+
jws: jwt,
|
|
106
|
+
jwk: {
|
|
107
|
+
alg: key.alg,
|
|
108
|
+
crv: key.crv,
|
|
109
|
+
kty: key.kty,
|
|
110
|
+
x: key.x ?? void 0,
|
|
111
|
+
y: key.y ?? void 0,
|
|
112
|
+
n: key.n ?? void 0,
|
|
113
|
+
e: key.e ?? void 0,
|
|
114
|
+
use: key.use ?? void 0,
|
|
115
|
+
kid: key.kid
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return !verification.error;
|
|
119
|
+
}, "verify")
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/*
|
|
123
|
+
private defaultFetchJSImpl(context: IRequiredContext): IFetchService {
|
|
124
|
+
return {
|
|
125
|
+
async fetchStatement(endpoint: string): Promise<string> {
|
|
126
|
+
const requestInfo = new Request(endpoint, {
|
|
127
|
+
method: 'GET',
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
const response = await context.agent.resourceResolve({
|
|
131
|
+
input: requestInfo,
|
|
132
|
+
resourceType: 'application/entity-statement+jwt',
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
if (response.status != 200) {
|
|
136
|
+
throw new Error(`Failed to fetch statement from ${endpoint}`)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return await response.text()
|
|
140
|
+
},
|
|
141
|
+
}
|
|
142
|
+
}*/
|
|
143
|
+
getOIDFClient(context) {
|
|
144
|
+
return new import_openid_federation_client.FederationClient(this.cryptoServiceCallback || this.defaultCryptoJSImpl(context));
|
|
145
|
+
}
|
|
146
|
+
async resolveTrustChain(args, context) {
|
|
147
|
+
const { entityIdentifier, trustAnchors } = args;
|
|
148
|
+
const oidfClient = this.getOIDFClient(context);
|
|
149
|
+
return await oidfClient.resolveTrustChain(entityIdentifier, trustAnchors, 10);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
// src/index.ts
|
|
154
|
+
var schema = require_plugin_schema();
|
|
155
|
+
var logger = import_ssi_types.Loggers.DEFAULT.get("sphereon:oidf-client");
|
|
156
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/OIDFClient.ts"],"sourcesContent":["{\n \"IOIDFClient\": {\n \"components\": {\n \"schemas\": {\n \"ResolveTrustChainArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityIdentifier\": {\n \"type\": \"string\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"entityIdentifier\", \"trustAnchors\"],\n \"additionalProperties\": false\n },\n \"TrustChainResolveResponse\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"resolveTrustChain\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ResolveTrustChainArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/TrustChainResolveResponse\"\n }\n }\n }\n }\n }\n}\n","import { Loggers } from '@sphereon/ssi-types'\n\n/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n\nexport const logger = Loggers.DEFAULT.get('sphereon:oidf-client')\n\nexport { OIDFClient, oidfClientMethods } from './agent/OIDFClient'\n\nexport * from './types/IOIDFClient'\n","import { JoseCurveString, JoseSignatureAlgorithmString, JwkKeyTypeString } from '@sphereon/ssi-types'\nimport { IAgentPlugin } from '@veramo/core'\nimport { schema } from '../'\nimport { IOIDFClient, IRequiredContext, OIDFClientArgs, ResolveTrustChainArgs } from '../types/IOIDFClient'\nimport { FederationClient, ICryptoService, Jwk, TrustChainResolveResponse } from '@sphereon/openid-federation-client'\n\nexport const oidfClientMethods: Array<string> = ['resolveTrustChain']\n\nexport class OIDFClient implements IAgentPlugin {\n // private readonly fetchServiceCallback?: IFetchService\n private readonly cryptoServiceCallback?: ICryptoService\n readonly methods: IOIDFClient = {\n resolveTrustChain: this.resolveTrustChain.bind(this),\n }\n readonly schema = schema.IOIDFClient\n\n constructor(args?: OIDFClientArgs) {\n const { /*fetchServiceCallback,*/ cryptoServiceCallback } = { ...args }\n\n // this.fetchServiceCallback = fetchServiceCallback\n this.cryptoServiceCallback = cryptoServiceCallback\n }\n\n private defaultCryptoJSImpl(context: IRequiredContext): ICryptoService {\n return {\n verify: async (jwt: string, key: Jwk): Promise<boolean> => {\n const verification = await context.agent.jwtVerifyJwsSignature({\n jws: jwt,\n jwk: {\n alg: key.alg as JoseSignatureAlgorithmString | undefined,\n crv: key.crv as JoseCurveString | undefined,\n kty: key.kty as JwkKeyTypeString,\n x: key.x ?? (undefined as string | undefined),\n y: key.y ?? (undefined as string | undefined),\n n: key.n ?? (undefined as string | undefined),\n e: key.e ?? (undefined as string | undefined),\n use: key.use ?? (undefined as string | undefined),\n kid: key.kid,\n },\n })\n return !verification.error\n },\n }\n }\n /*\n private defaultFetchJSImpl(context: IRequiredContext): IFetchService {\n return {\n async fetchStatement(endpoint: string): Promise<string> {\n const requestInfo = new Request(endpoint, {\n method: 'GET',\n })\n\n const response = await context.agent.resourceResolve({\n input: requestInfo,\n resourceType: 'application/entity-statement+jwt',\n })\n\n if (response.status != 200) {\n throw new Error(`Failed to fetch statement from ${endpoint}`)\n }\n\n return await response.text()\n },\n }\n }*/\n\n private getOIDFClient(context: IRequiredContext): FederationClient {\n return new FederationClient(\n this.cryptoServiceCallback || this.defaultCryptoJSImpl(context),\n // this.fetchServiceCallback || this.defaultFetchJSImpl(context),\n )\n }\n\n private async resolveTrustChain(args: ResolveTrustChainArgs, context: IRequiredContext): Promise<TrustChainResolveResponse> {\n const { entityIdentifier, trustAnchors } = args\n\n const oidfClient = this.getOIDFClient(context)\n\n return await oidfClient.resolveTrustChain(entityIdentifier, trustAnchors, 10)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,gCAAAA,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,aAAe;AAAA,QACb,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY,CAAC,oBAAoB,cAAc;AAAA,cAC/C,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,MAAQ;AAAA,cACR,sBAAwB;AAAA,YAC1B;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,mBAAqB;AAAA,cACnB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACtCA;;;;;;;;AAAA,uBAAwB;;;ACIxB,sCAAiF;AAE1E,IAAMC,oBAAmC;EAAC;;AAE1C,IAAMC,aAAN,MAAMA;EANb,OAMaA;;;;EAEMC;EACRC,UAAuB;IAC9BC,mBAAmB,KAAKA,kBAAkBC,KAAK,IAAI;EACrD;EACSC,SAASA,OAAOC;EAEzBC,YAAYC,MAAuB;AACjC,UAAM,EAA4BP,sBAAqB,IAAK;MAAE,GAAGO;IAAK;AAGtE,SAAKP,wBAAwBA;EAC/B;EAEQQ,oBAAoBC,SAA2C;AACrE,WAAO;MACLC,QAAQ,8BAAOC,KAAaC,QAAAA;AAC1B,cAAMC,eAAe,MAAMJ,QAAQK,MAAMC,sBAAsB;UAC7DC,KAAKL;UACLM,KAAK;YACHC,KAAKN,IAAIM;YACTC,KAAKP,IAAIO;YACTC,KAAKR,IAAIQ;YACTC,GAAGT,IAAIS,KAAMC;YACbC,GAAGX,IAAIW,KAAMD;YACbE,GAAGZ,IAAIY,KAAMF;YACbG,GAAGb,IAAIa,KAAMH;YACbI,KAAKd,IAAIc,OAAQJ;YACjBK,KAAKf,IAAIe;UACX;QACF,CAAA;AACA,eAAO,CAACd,aAAae;MACvB,GAhBQ;IAiBV;EACF;;;;;;;;;;;;;;;;;;;;;;EAuBQC,cAAcpB,SAA6C;AACjE,WAAO,IAAIqB,iDACT,KAAK9B,yBAAyB,KAAKQ,oBAAoBC,OAAAA,CAAAA;EAG3D;EAEA,MAAcP,kBAAkBK,MAA6BE,SAA+D;AAC1H,UAAM,EAAEsB,kBAAkBC,aAAY,IAAKzB;AAE3C,UAAM0B,aAAa,KAAKJ,cAAcpB,OAAAA;AAEtC,WAAO,MAAMwB,WAAW/B,kBAAkB6B,kBAAkBC,cAAc,EAAA;EAC5E;AACF;;;AD3EA,IAAME,SAASC;AAGR,IAAMC,SAASC,yBAAQC,QAAQC,IAAI,sBAAA;","names":["module","oidfClientMethods","OIDFClient","cryptoServiceCallback","methods","resolveTrustChain","bind","schema","IOIDFClient","constructor","args","defaultCryptoJSImpl","context","verify","jwt","key","verification","agent","jwtVerifyJwsSignature","jws","jwk","alg","crv","kty","x","undefined","y","n","e","use","kid","error","getOIDFClient","FederationClient","entityIdentifier","trustAnchors","oidfClient","schema","require","logger","Loggers","DEFAULT","get"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as _sphereon_ssi_types from '@sphereon/ssi-types';
|
|
2
|
+
import { IPluginMethodMap, IAgentContext, IAgentPlugin } from '@veramo/core';
|
|
3
|
+
import { IResourceResolver } from '@sphereon/ssi-sdk.resource-resolver';
|
|
4
|
+
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service';
|
|
5
|
+
import { TrustChainResolveResponse, IFetchService, ICryptoService } from '@sphereon/openid-federation-client';
|
|
6
|
+
|
|
7
|
+
type IRequiredPlugins = IJwtService & IResourceResolver;
|
|
8
|
+
type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
|
9
|
+
interface IOIDFClient extends IPluginMethodMap {
|
|
10
|
+
resolveTrustChain(args: ResolveTrustChainArgs, context: IRequiredContext): Promise<TrustChainResolveResponse>;
|
|
11
|
+
}
|
|
12
|
+
type ResolveTrustChainArgs = {
|
|
13
|
+
entityIdentifier: string;
|
|
14
|
+
trustAnchors: Array<string>;
|
|
15
|
+
};
|
|
16
|
+
type OIDFClientArgs = {
|
|
17
|
+
fetchServiceCallback?: IFetchService;
|
|
18
|
+
cryptoServiceCallback?: ICryptoService;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
declare const oidfClientMethods: Array<string>;
|
|
22
|
+
declare class OIDFClient implements IAgentPlugin {
|
|
23
|
+
private readonly cryptoServiceCallback?;
|
|
24
|
+
readonly methods: IOIDFClient;
|
|
25
|
+
readonly schema: any;
|
|
26
|
+
constructor(args?: OIDFClientArgs);
|
|
27
|
+
private defaultCryptoJSImpl;
|
|
28
|
+
private getOIDFClient;
|
|
29
|
+
private resolveTrustChain;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @public
|
|
34
|
+
*/
|
|
35
|
+
declare const schema: any;
|
|
36
|
+
|
|
37
|
+
declare const logger: _sphereon_ssi_types.ISimpleLogger<unknown>;
|
|
38
|
+
|
|
39
|
+
export { type IOIDFClient, type IRequiredContext, type IRequiredPlugins, OIDFClient, type OIDFClientArgs, type ResolveTrustChainArgs, logger, oidfClientMethods, schema };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,39 @@
|
|
|
1
|
+
import * as _sphereon_ssi_types from '@sphereon/ssi-types';
|
|
2
|
+
import { IPluginMethodMap, IAgentContext, IAgentPlugin } from '@veramo/core';
|
|
3
|
+
import { IResourceResolver } from '@sphereon/ssi-sdk.resource-resolver';
|
|
4
|
+
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service';
|
|
5
|
+
import { TrustChainResolveResponse, IFetchService, ICryptoService } from '@sphereon/openid-federation-client';
|
|
6
|
+
|
|
7
|
+
type IRequiredPlugins = IJwtService & IResourceResolver;
|
|
8
|
+
type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
|
9
|
+
interface IOIDFClient extends IPluginMethodMap {
|
|
10
|
+
resolveTrustChain(args: ResolveTrustChainArgs, context: IRequiredContext): Promise<TrustChainResolveResponse>;
|
|
11
|
+
}
|
|
12
|
+
type ResolveTrustChainArgs = {
|
|
13
|
+
entityIdentifier: string;
|
|
14
|
+
trustAnchors: Array<string>;
|
|
15
|
+
};
|
|
16
|
+
type OIDFClientArgs = {
|
|
17
|
+
fetchServiceCallback?: IFetchService;
|
|
18
|
+
cryptoServiceCallback?: ICryptoService;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
declare const oidfClientMethods: Array<string>;
|
|
22
|
+
declare class OIDFClient implements IAgentPlugin {
|
|
23
|
+
private readonly cryptoServiceCallback?;
|
|
24
|
+
readonly methods: IOIDFClient;
|
|
25
|
+
readonly schema: any;
|
|
26
|
+
constructor(args?: OIDFClientArgs);
|
|
27
|
+
private defaultCryptoJSImpl;
|
|
28
|
+
private getOIDFClient;
|
|
29
|
+
private resolveTrustChain;
|
|
30
|
+
}
|
|
31
|
+
|
|
1
32
|
/**
|
|
2
33
|
* @public
|
|
3
34
|
*/
|
|
4
35
|
declare const schema: any;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
//# sourceMappingURL=index.d.ts.map
|
|
36
|
+
|
|
37
|
+
declare const logger: _sphereon_ssi_types.ISimpleLogger<unknown>;
|
|
38
|
+
|
|
39
|
+
export { type IOIDFClient, type IRequiredContext, type IRequiredPlugins, OIDFClient, type OIDFClientArgs, type ResolveTrustChainArgs, logger, oidfClientMethods, schema };
|
package/dist/index.js
CHANGED
|
@@ -1,29 +1,138 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
4
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
5
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
// plugin.schema.json
|
|
9
|
+
var require_plugin_schema = __commonJS({
|
|
10
|
+
"plugin.schema.json"(exports, module) {
|
|
11
|
+
module.exports = {
|
|
12
|
+
IOIDFClient: {
|
|
13
|
+
components: {
|
|
14
|
+
schemas: {
|
|
15
|
+
ResolveTrustChainArgs: {
|
|
16
|
+
type: "object",
|
|
17
|
+
properties: {
|
|
18
|
+
entityIdentifier: {
|
|
19
|
+
type: "string"
|
|
20
|
+
},
|
|
21
|
+
trustAnchors: {
|
|
22
|
+
type: "array",
|
|
23
|
+
items: {
|
|
24
|
+
type: "string"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
required: ["entityIdentifier", "trustAnchors"],
|
|
29
|
+
additionalProperties: false
|
|
30
|
+
},
|
|
31
|
+
TrustChainResolveResponse: {
|
|
32
|
+
type: "object",
|
|
33
|
+
additionalProperties: false
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
methods: {
|
|
37
|
+
resolveTrustChain: {
|
|
38
|
+
description: "",
|
|
39
|
+
arguments: {
|
|
40
|
+
$ref: "#/components/schemas/ResolveTrustChainArgs"
|
|
41
|
+
},
|
|
42
|
+
returnType: {
|
|
43
|
+
$ref: "#/components/schemas/TrustChainResolveResponse"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// src/index.ts
|
|
54
|
+
import { Loggers } from "@sphereon/ssi-types";
|
|
55
|
+
|
|
56
|
+
// src/agent/OIDFClient.ts
|
|
57
|
+
import { FederationClient } from "@sphereon/openid-federation-client";
|
|
58
|
+
var oidfClientMethods = [
|
|
59
|
+
"resolveTrustChain"
|
|
60
|
+
];
|
|
61
|
+
var OIDFClient = class {
|
|
62
|
+
static {
|
|
63
|
+
__name(this, "OIDFClient");
|
|
64
|
+
}
|
|
65
|
+
// private readonly fetchServiceCallback?: IFetchService
|
|
66
|
+
cryptoServiceCallback;
|
|
67
|
+
methods = {
|
|
68
|
+
resolveTrustChain: this.resolveTrustChain.bind(this)
|
|
69
|
+
};
|
|
70
|
+
schema = schema.IOIDFClient;
|
|
71
|
+
constructor(args) {
|
|
72
|
+
const { cryptoServiceCallback } = {
|
|
73
|
+
...args
|
|
74
|
+
};
|
|
75
|
+
this.cryptoServiceCallback = cryptoServiceCallback;
|
|
76
|
+
}
|
|
77
|
+
defaultCryptoJSImpl(context) {
|
|
78
|
+
return {
|
|
79
|
+
verify: /* @__PURE__ */ __name(async (jwt, key) => {
|
|
80
|
+
const verification = await context.agent.jwtVerifyJwsSignature({
|
|
81
|
+
jws: jwt,
|
|
82
|
+
jwk: {
|
|
83
|
+
alg: key.alg,
|
|
84
|
+
crv: key.crv,
|
|
85
|
+
kty: key.kty,
|
|
86
|
+
x: key.x ?? void 0,
|
|
87
|
+
y: key.y ?? void 0,
|
|
88
|
+
n: key.n ?? void 0,
|
|
89
|
+
e: key.e ?? void 0,
|
|
90
|
+
use: key.use ?? void 0,
|
|
91
|
+
kid: key.kid
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return !verification.error;
|
|
95
|
+
}, "verify")
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/*
|
|
99
|
+
private defaultFetchJSImpl(context: IRequiredContext): IFetchService {
|
|
100
|
+
return {
|
|
101
|
+
async fetchStatement(endpoint: string): Promise<string> {
|
|
102
|
+
const requestInfo = new Request(endpoint, {
|
|
103
|
+
method: 'GET',
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
const response = await context.agent.resourceResolve({
|
|
107
|
+
input: requestInfo,
|
|
108
|
+
resourceType: 'application/entity-statement+jwt',
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
if (response.status != 200) {
|
|
112
|
+
throw new Error(`Failed to fetch statement from ${endpoint}`)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return await response.text()
|
|
116
|
+
},
|
|
117
|
+
}
|
|
118
|
+
}*/
|
|
119
|
+
getOIDFClient(context) {
|
|
120
|
+
return new FederationClient(this.cryptoServiceCallback || this.defaultCryptoJSImpl(context));
|
|
121
|
+
}
|
|
122
|
+
async resolveTrustChain(args, context) {
|
|
123
|
+
const { entityIdentifier, trustAnchors } = args;
|
|
124
|
+
const oidfClient = this.getOIDFClient(context);
|
|
125
|
+
return await oidfClient.resolveTrustChain(entityIdentifier, trustAnchors, 10);
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
// src/index.ts
|
|
130
|
+
var schema = require_plugin_schema();
|
|
131
|
+
var logger = Loggers.DEFAULT.get("sphereon:oidf-client");
|
|
132
|
+
export {
|
|
133
|
+
OIDFClient,
|
|
134
|
+
logger,
|
|
135
|
+
oidfClientMethods,
|
|
136
|
+
schema
|
|
15
137
|
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.oidfClientMethods = exports.OIDFClient = exports.logger = exports.schema = void 0;
|
|
18
|
-
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
19
|
-
/**
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
const schema = require('../plugin.schema.json');
|
|
23
|
-
exports.schema = schema;
|
|
24
|
-
exports.logger = ssi_types_1.Loggers.DEFAULT.get('sphereon:oidf-client');
|
|
25
|
-
var OIDFClient_1 = require("./agent/OIDFClient");
|
|
26
|
-
Object.defineProperty(exports, "OIDFClient", { enumerable: true, get: function () { return OIDFClient_1.OIDFClient; } });
|
|
27
|
-
Object.defineProperty(exports, "oidfClientMethods", { enumerable: true, get: function () { return OIDFClient_1.oidfClientMethods; } });
|
|
28
|
-
__exportStar(require("./types/IOIDFClient"), exports);
|
|
29
138
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/OIDFClient.ts"],"sourcesContent":["{\n \"IOIDFClient\": {\n \"components\": {\n \"schemas\": {\n \"ResolveTrustChainArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityIdentifier\": {\n \"type\": \"string\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"entityIdentifier\", \"trustAnchors\"],\n \"additionalProperties\": false\n },\n \"TrustChainResolveResponse\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"resolveTrustChain\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ResolveTrustChainArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/TrustChainResolveResponse\"\n }\n }\n }\n }\n }\n}\n","import { Loggers } from '@sphereon/ssi-types'\n\n/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n\nexport const logger = Loggers.DEFAULT.get('sphereon:oidf-client')\n\nexport { OIDFClient, oidfClientMethods } from './agent/OIDFClient'\n\nexport * from './types/IOIDFClient'\n","import { JoseCurveString, JoseSignatureAlgorithmString, JwkKeyTypeString } from '@sphereon/ssi-types'\nimport { IAgentPlugin } from '@veramo/core'\nimport { schema } from '../'\nimport { IOIDFClient, IRequiredContext, OIDFClientArgs, ResolveTrustChainArgs } from '../types/IOIDFClient'\nimport { FederationClient, ICryptoService, Jwk, TrustChainResolveResponse } from '@sphereon/openid-federation-client'\n\nexport const oidfClientMethods: Array<string> = ['resolveTrustChain']\n\nexport class OIDFClient implements IAgentPlugin {\n // private readonly fetchServiceCallback?: IFetchService\n private readonly cryptoServiceCallback?: ICryptoService\n readonly methods: IOIDFClient = {\n resolveTrustChain: this.resolveTrustChain.bind(this),\n }\n readonly schema = schema.IOIDFClient\n\n constructor(args?: OIDFClientArgs) {\n const { /*fetchServiceCallback,*/ cryptoServiceCallback } = { ...args }\n\n // this.fetchServiceCallback = fetchServiceCallback\n this.cryptoServiceCallback = cryptoServiceCallback\n }\n\n private defaultCryptoJSImpl(context: IRequiredContext): ICryptoService {\n return {\n verify: async (jwt: string, key: Jwk): Promise<boolean> => {\n const verification = await context.agent.jwtVerifyJwsSignature({\n jws: jwt,\n jwk: {\n alg: key.alg as JoseSignatureAlgorithmString | undefined,\n crv: key.crv as JoseCurveString | undefined,\n kty: key.kty as JwkKeyTypeString,\n x: key.x ?? (undefined as string | undefined),\n y: key.y ?? (undefined as string | undefined),\n n: key.n ?? (undefined as string | undefined),\n e: key.e ?? (undefined as string | undefined),\n use: key.use ?? (undefined as string | undefined),\n kid: key.kid,\n },\n })\n return !verification.error\n },\n }\n }\n /*\n private defaultFetchJSImpl(context: IRequiredContext): IFetchService {\n return {\n async fetchStatement(endpoint: string): Promise<string> {\n const requestInfo = new Request(endpoint, {\n method: 'GET',\n })\n\n const response = await context.agent.resourceResolve({\n input: requestInfo,\n resourceType: 'application/entity-statement+jwt',\n })\n\n if (response.status != 200) {\n throw new Error(`Failed to fetch statement from ${endpoint}`)\n }\n\n return await response.text()\n },\n }\n }*/\n\n private getOIDFClient(context: IRequiredContext): FederationClient {\n return new FederationClient(\n this.cryptoServiceCallback || this.defaultCryptoJSImpl(context),\n // this.fetchServiceCallback || this.defaultFetchJSImpl(context),\n )\n }\n\n private async resolveTrustChain(args: ResolveTrustChainArgs, context: IRequiredContext): Promise<TrustChainResolveResponse> {\n const { entityIdentifier, trustAnchors } = args\n\n const oidfClient = this.getOIDFClient(context)\n\n return await oidfClient.resolveTrustChain(entityIdentifier, trustAnchors, 10)\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA,MACE,aAAe;AAAA,QACb,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,uBAAyB;AAAA,cACvB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,cACF;AAAA,cACA,UAAY,CAAC,oBAAoB,cAAc;AAAA,cAC/C,sBAAwB;AAAA,YAC1B;AAAA,YACA,2BAA6B;AAAA,cAC3B,MAAQ;AAAA,cACR,sBAAwB;AAAA,YAC1B;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,mBAAqB;AAAA,cACnB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACtCA,SAASA,eAAe;;;ACIxB,SAASC,wBAAwE;AAE1E,IAAMC,oBAAmC;EAAC;;AAE1C,IAAMC,aAAN,MAAMA;EANb,OAMaA;;;;EAEMC;EACRC,UAAuB;IAC9BC,mBAAmB,KAAKA,kBAAkBC,KAAK,IAAI;EACrD;EACSC,SAASA,OAAOC;EAEzBC,YAAYC,MAAuB;AACjC,UAAM,EAA4BP,sBAAqB,IAAK;MAAE,GAAGO;IAAK;AAGtE,SAAKP,wBAAwBA;EAC/B;EAEQQ,oBAAoBC,SAA2C;AACrE,WAAO;MACLC,QAAQ,8BAAOC,KAAaC,QAAAA;AAC1B,cAAMC,eAAe,MAAMJ,QAAQK,MAAMC,sBAAsB;UAC7DC,KAAKL;UACLM,KAAK;YACHC,KAAKN,IAAIM;YACTC,KAAKP,IAAIO;YACTC,KAAKR,IAAIQ;YACTC,GAAGT,IAAIS,KAAMC;YACbC,GAAGX,IAAIW,KAAMD;YACbE,GAAGZ,IAAIY,KAAMF;YACbG,GAAGb,IAAIa,KAAMH;YACbI,KAAKd,IAAIc,OAAQJ;YACjBK,KAAKf,IAAIe;UACX;QACF,CAAA;AACA,eAAO,CAACd,aAAae;MACvB,GAhBQ;IAiBV;EACF;;;;;;;;;;;;;;;;;;;;;;EAuBQC,cAAcpB,SAA6C;AACjE,WAAO,IAAIqB,iBACT,KAAK9B,yBAAyB,KAAKQ,oBAAoBC,OAAAA,CAAAA;EAG3D;EAEA,MAAcP,kBAAkBK,MAA6BE,SAA+D;AAC1H,UAAM,EAAEsB,kBAAkBC,aAAY,IAAKzB;AAE3C,UAAM0B,aAAa,KAAKJ,cAAcpB,OAAAA;AAEtC,WAAO,MAAMwB,WAAW/B,kBAAkB6B,kBAAkBC,cAAc,EAAA;EAC5E;AACF;;;AD3EA,IAAME,SAASC;AAGR,IAAMC,SAASC,QAAQC,QAAQC,IAAI,sBAAA;","names":["Loggers","FederationClient","oidfClientMethods","OIDFClient","cryptoServiceCallback","methods","resolveTrustChain","bind","schema","IOIDFClient","constructor","args","defaultCryptoJSImpl","context","verify","jwt","key","verification","agent","jwtVerifyJwsSignature","jws","jwk","alg","crv","kty","x","undefined","y","n","e","use","kid","error","getOIDFClient","FederationClient","entityIdentifier","trustAnchors","oidfClient","schema","require","logger","Loggers","DEFAULT","get"]}
|
package/package.json
CHANGED
|
@@ -1,35 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.oidf-client",
|
|
3
|
-
"version": "0.33.1-next.
|
|
3
|
+
"version": "0.33.1-next.68+b6c8b366",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
"react-native": "./dist/index.js",
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/index.d.cts",
|
|
17
|
+
"require": "./dist/index.cjs"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
7
20
|
"veramo": {
|
|
8
21
|
"pluginInterfaces": {
|
|
9
22
|
"IOIDFClient": "./src/types/IOIDFClient.ts"
|
|
10
23
|
}
|
|
11
24
|
},
|
|
12
25
|
"scripts": {
|
|
13
|
-
"build": "
|
|
14
|
-
"build:clean": "tsc --build --clean && tsc --build",
|
|
26
|
+
"build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json",
|
|
15
27
|
"generate-plugin-schema": "ts-node ../../packages/dev/bin/sphereon.js dev generate-plugin-schema"
|
|
16
28
|
},
|
|
17
29
|
"dependencies": {
|
|
18
|
-
"@sphereon/openid-federation-client": "0.
|
|
19
|
-
"@sphereon/openid-federation-common": "0.
|
|
20
|
-
"@sphereon/openid-federation-open-api": "0.
|
|
21
|
-
"@sphereon/ssi-sdk-ext.jwt-service": "0.28.
|
|
22
|
-
"@sphereon/ssi-sdk.resource-resolver": "0.33.1-next.
|
|
23
|
-
"@sphereon/ssi-types": "0.33.1-next.
|
|
30
|
+
"@sphereon/openid-federation-client": "0.20.9-unstable.48ddfa1",
|
|
31
|
+
"@sphereon/openid-federation-common": "0.20.9-unstable.48ddfa1",
|
|
32
|
+
"@sphereon/openid-federation-open-api": "0.20.9-unstable.48ddfa1",
|
|
33
|
+
"@sphereon/ssi-sdk-ext.jwt-service": "0.28.1-next.53",
|
|
34
|
+
"@sphereon/ssi-sdk.resource-resolver": "0.33.1-next.68+b6c8b366",
|
|
35
|
+
"@sphereon/ssi-types": "0.33.1-next.68+b6c8b366"
|
|
24
36
|
},
|
|
25
37
|
"devDependencies": {
|
|
26
|
-
"@sphereon/ssi-sdk.agent-config": "0.33.1-next.
|
|
38
|
+
"@sphereon/ssi-sdk.agent-config": "0.33.1-next.68+b6c8b366",
|
|
27
39
|
"@veramo/remote-client": "4.2.0",
|
|
28
|
-
"@veramo/remote-server": "4.2.0"
|
|
40
|
+
"@veramo/remote-server": "4.2.0",
|
|
41
|
+
"jose": "^5.10.0"
|
|
29
42
|
},
|
|
30
43
|
"files": [
|
|
31
|
-
"dist
|
|
32
|
-
"src
|
|
44
|
+
"dist",
|
|
45
|
+
"src",
|
|
33
46
|
"README.md",
|
|
34
47
|
"plugin.schema.json",
|
|
35
48
|
"LICENSE"
|
|
@@ -47,5 +60,5 @@
|
|
|
47
60
|
"Veramo",
|
|
48
61
|
"OpenID Federation"
|
|
49
62
|
],
|
|
50
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "b6c8b36636fa3777494f55860d6a75f2e5a5611e"
|
|
51
64
|
}
|
package/plugin.schema.json
CHANGED
|
@@ -15,13 +15,12 @@
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
|
-
"required": [
|
|
19
|
-
|
|
20
|
-
"trustAnchors"
|
|
21
|
-
]
|
|
18
|
+
"required": ["entityIdentifier", "trustAnchors"],
|
|
19
|
+
"additionalProperties": false
|
|
22
20
|
},
|
|
23
21
|
"TrustChainResolveResponse": {
|
|
24
|
-
"type": "object"
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": false
|
|
25
24
|
}
|
|
26
25
|
},
|
|
27
26
|
"methods": {
|
|
@@ -37,4 +36,4 @@
|
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
|
-
}
|
|
39
|
+
}
|
package/src/agent/OIDFClient.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { JWK } from '@sphereon/ssi-types'
|
|
1
|
+
import { JoseCurveString, JoseSignatureAlgorithmString, JwkKeyTypeString } from '@sphereon/ssi-types'
|
|
3
2
|
import { IAgentPlugin } from '@veramo/core'
|
|
4
|
-
import { Request } from 'cross-fetch'
|
|
5
3
|
import { schema } from '../'
|
|
6
|
-
import { IOIDFClient,
|
|
4
|
+
import { IOIDFClient, IRequiredContext, OIDFClientArgs, ResolveTrustChainArgs } from '../types/IOIDFClient'
|
|
5
|
+
import { FederationClient, ICryptoService, Jwk, TrustChainResolveResponse } from '@sphereon/openid-federation-client'
|
|
7
6
|
|
|
8
7
|
export const oidfClientMethods: Array<string> = ['resolveTrustChain']
|
|
9
8
|
|
|
10
9
|
export class OIDFClient implements IAgentPlugin {
|
|
11
|
-
private readonly fetchServiceCallback?: IFetchService
|
|
10
|
+
// private readonly fetchServiceCallback?: IFetchService
|
|
12
11
|
private readonly cryptoServiceCallback?: ICryptoService
|
|
13
12
|
readonly methods: IOIDFClient = {
|
|
14
13
|
resolveTrustChain: this.resolveTrustChain.bind(this),
|
|
@@ -16,21 +15,34 @@ export class OIDFClient implements IAgentPlugin {
|
|
|
16
15
|
readonly schema = schema.IOIDFClient
|
|
17
16
|
|
|
18
17
|
constructor(args?: OIDFClientArgs) {
|
|
19
|
-
const { fetchServiceCallback
|
|
18
|
+
const { /*fetchServiceCallback,*/ cryptoServiceCallback } = { ...args }
|
|
20
19
|
|
|
21
|
-
this.fetchServiceCallback = fetchServiceCallback
|
|
20
|
+
// this.fetchServiceCallback = fetchServiceCallback
|
|
22
21
|
this.cryptoServiceCallback = cryptoServiceCallback
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
private defaultCryptoJSImpl(context: IRequiredContext): ICryptoService {
|
|
26
25
|
return {
|
|
27
|
-
verify: async (jwt: string, key:
|
|
28
|
-
const verification = await context.agent.jwtVerifyJwsSignature({
|
|
26
|
+
verify: async (jwt: string, key: Jwk): Promise<boolean> => {
|
|
27
|
+
const verification = await context.agent.jwtVerifyJwsSignature({
|
|
28
|
+
jws: jwt,
|
|
29
|
+
jwk: {
|
|
30
|
+
alg: key.alg as JoseSignatureAlgorithmString | undefined,
|
|
31
|
+
crv: key.crv as JoseCurveString | undefined,
|
|
32
|
+
kty: key.kty as JwkKeyTypeString,
|
|
33
|
+
x: key.x ?? (undefined as string | undefined),
|
|
34
|
+
y: key.y ?? (undefined as string | undefined),
|
|
35
|
+
n: key.n ?? (undefined as string | undefined),
|
|
36
|
+
e: key.e ?? (undefined as string | undefined),
|
|
37
|
+
use: key.use ?? (undefined as string | undefined),
|
|
38
|
+
kid: key.kid,
|
|
39
|
+
},
|
|
40
|
+
})
|
|
29
41
|
return !verification.error
|
|
30
42
|
},
|
|
31
43
|
}
|
|
32
44
|
}
|
|
33
|
-
|
|
45
|
+
/*
|
|
34
46
|
private defaultFetchJSImpl(context: IRequiredContext): IFetchService {
|
|
35
47
|
return {
|
|
36
48
|
async fetchStatement(endpoint: string): Promise<string> {
|
|
@@ -50,12 +62,12 @@ export class OIDFClient implements IAgentPlugin {
|
|
|
50
62
|
return await response.text()
|
|
51
63
|
},
|
|
52
64
|
}
|
|
53
|
-
}
|
|
65
|
+
}*/
|
|
54
66
|
|
|
55
67
|
private getOIDFClient(context: IRequiredContext): FederationClient {
|
|
56
68
|
return new FederationClient(
|
|
57
|
-
this.fetchServiceCallback || this.defaultFetchJSImpl(context),
|
|
58
69
|
this.cryptoServiceCallback || this.defaultCryptoJSImpl(context),
|
|
70
|
+
// this.fetchServiceCallback || this.defaultFetchJSImpl(context),
|
|
59
71
|
)
|
|
60
72
|
}
|
|
61
73
|
|
package/src/types/IOIDFClient.ts
CHANGED
|
@@ -2,7 +2,6 @@ import { IResourceResolver } from '@sphereon/ssi-sdk.resource-resolver'
|
|
|
2
2
|
import { IAgentContext, IPluginMethodMap } from '@veramo/core'
|
|
3
3
|
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service'
|
|
4
4
|
import { ICryptoService, IFetchService, TrustChainResolveResponse } from '@sphereon/openid-federation-client'
|
|
5
|
-
|
|
6
5
|
export type IRequiredPlugins = IJwtService & IResourceResolver
|
|
7
6
|
export type IRequiredContext = IAgentContext<IRequiredPlugins>
|
|
8
7
|
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { IAgentPlugin } from '@veramo/core';
|
|
2
|
-
import { IOIDFClient, OIDFClientArgs } from '../types/IOIDFClient';
|
|
3
|
-
export declare const oidfClientMethods: Array<string>;
|
|
4
|
-
export declare class OIDFClient implements IAgentPlugin {
|
|
5
|
-
private readonly fetchServiceCallback?;
|
|
6
|
-
private readonly cryptoServiceCallback?;
|
|
7
|
-
readonly methods: IOIDFClient;
|
|
8
|
-
readonly schema: any;
|
|
9
|
-
constructor(args?: OIDFClientArgs);
|
|
10
|
-
private defaultCryptoJSImpl;
|
|
11
|
-
private defaultFetchJSImpl;
|
|
12
|
-
private getOIDFClient;
|
|
13
|
-
private resolveTrustChain;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=OIDFClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OIDFClient.d.ts","sourceRoot":"","sources":["../../src/agent/OIDFClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,EAAE,WAAW,EAAE,cAAc,EAA2C,MAAM,sBAAsB,CAAA;AAE3G,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAyB,CAAA;AAErE,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAgB;IACvD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAE5B;IACD,QAAQ,CAAC,MAAM,MAAqB;gBAExB,IAAI,CAAC,EAAE,cAAc;IAOjC,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,aAAa;YAOP,iBAAiB;CAOhC"}
|
package/dist/agent/OIDFClient.js
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
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.OIDFClient = exports.oidfClientMethods = void 0;
|
|
13
|
-
const openid_federation_client_1 = require("@sphereon/openid-federation-client");
|
|
14
|
-
const cross_fetch_1 = require("cross-fetch");
|
|
15
|
-
const __1 = require("../");
|
|
16
|
-
exports.oidfClientMethods = ['resolveTrustChain'];
|
|
17
|
-
class OIDFClient {
|
|
18
|
-
constructor(args) {
|
|
19
|
-
this.methods = {
|
|
20
|
-
resolveTrustChain: this.resolveTrustChain.bind(this),
|
|
21
|
-
};
|
|
22
|
-
this.schema = __1.schema.IOIDFClient;
|
|
23
|
-
const { fetchServiceCallback, cryptoServiceCallback } = Object.assign({}, args);
|
|
24
|
-
this.fetchServiceCallback = fetchServiceCallback;
|
|
25
|
-
this.cryptoServiceCallback = cryptoServiceCallback;
|
|
26
|
-
}
|
|
27
|
-
defaultCryptoJSImpl(context) {
|
|
28
|
-
return {
|
|
29
|
-
verify: (jwt, key) => __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
const verification = yield context.agent.jwtVerifyJwsSignature({ jws: jwt, jwk: key });
|
|
31
|
-
return !verification.error;
|
|
32
|
-
}),
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
defaultFetchJSImpl(context) {
|
|
36
|
-
return {
|
|
37
|
-
fetchStatement(endpoint) {
|
|
38
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
const requestInfo = new cross_fetch_1.Request(endpoint, {
|
|
40
|
-
method: 'GET',
|
|
41
|
-
});
|
|
42
|
-
const response = yield context.agent.resourceResolve({
|
|
43
|
-
input: requestInfo,
|
|
44
|
-
resourceType: 'application/entity-statement+jwt',
|
|
45
|
-
});
|
|
46
|
-
if (response.status != 200) {
|
|
47
|
-
throw new Error(`Failed to fetch statement from ${endpoint}`);
|
|
48
|
-
}
|
|
49
|
-
return yield response.text();
|
|
50
|
-
});
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
getOIDFClient(context) {
|
|
55
|
-
return new openid_federation_client_1.FederationClient(this.fetchServiceCallback || this.defaultFetchJSImpl(context), this.cryptoServiceCallback || this.defaultCryptoJSImpl(context));
|
|
56
|
-
}
|
|
57
|
-
resolveTrustChain(args, context) {
|
|
58
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
-
const { entityIdentifier, trustAnchors } = args;
|
|
60
|
-
const oidfClient = this.getOIDFClient(context);
|
|
61
|
-
return yield oidfClient.resolveTrustChain(entityIdentifier, trustAnchors, 10);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.OIDFClient = OIDFClient;
|
|
66
|
-
//# sourceMappingURL=OIDFClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OIDFClient.js","sourceRoot":"","sources":["../../src/agent/OIDFClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iFAA+H;AAG/H,6CAAqC;AACrC,2BAA4B;AAGf,QAAA,iBAAiB,GAAkB,CAAC,mBAAmB,CAAC,CAAA;AAErE,MAAa,UAAU;IAQrB,YAAY,IAAqB;QALxB,YAAO,GAAgB;YAC9B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;SACrD,CAAA;QACQ,WAAM,GAAG,UAAM,CAAC,WAAW,CAAA;QAGlC,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAQ,IAAI,CAAE,CAAA;QAEnE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;IACpD,CAAC;IAEO,mBAAmB,CAAC,OAAyB;QACnD,OAAO;YACL,MAAM,EAAE,CAAO,GAAW,EAAE,GAAQ,EAAoB,EAAE;gBACxD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;gBACtF,OAAO,CAAC,YAAY,CAAC,KAAK,CAAA;YAC5B,CAAC,CAAA;SACF,CAAA;IACH,CAAC;IAEO,kBAAkB,CAAC,OAAyB;QAClD,OAAO;YACC,cAAc,CAAC,QAAgB;;oBACnC,MAAM,WAAW,GAAG,IAAI,qBAAO,CAAC,QAAQ,EAAE;wBACxC,MAAM,EAAE,KAAK;qBACd,CAAC,CAAA;oBAEF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC;wBACnD,KAAK,EAAE,WAAW;wBAClB,YAAY,EAAE,kCAAkC;qBACjD,CAAC,CAAA;oBAEF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;wBAC3B,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAA;oBAC/D,CAAC;oBAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAC9B,CAAC;aAAA;SACF,CAAA;IACH,CAAC;IAEO,aAAa,CAAC,OAAyB;QAC7C,OAAO,IAAI,2CAAgB,CACzB,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAC7D,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAChE,CAAA;IACH,CAAC;IAEa,iBAAiB,CAAC,IAA2B,EAAE,OAAyB;;YACpF,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;YAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YAE9C,OAAO,MAAM,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE,CAAC,CAAA;QAC/E,CAAC;KAAA;CACF;AA3DD,gCA2DC"}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,QAAA,MAAM,MAAM,KAAmC,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,eAAO,MAAM,MAAM,sDAA8C,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAElE,cAAc,qBAAqB,CAAA"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { IAgentContext } from '@veramo/core';
|
|
2
|
-
import { IAgentPlugin } from '@veramo/core';
|
|
3
|
-
import { ICryptoService } from '@sphereon/openid-federation-client';
|
|
4
|
-
import { IFetchService } from '@sphereon/openid-federation-client';
|
|
5
|
-
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service';
|
|
6
|
-
import { IPluginMethodMap } from '@veramo/core';
|
|
7
|
-
import { IResourceResolver } from '@sphereon/ssi-sdk.resource-resolver';
|
|
8
|
-
import { ISimpleLogger } from '@sphereon/ssi-types';
|
|
9
|
-
import { TrustChainResolveResponse } from '@sphereon/openid-federation-client';
|
|
10
|
-
|
|
11
|
-
export declare interface IOIDFClient extends IPluginMethodMap {
|
|
12
|
-
resolveTrustChain(args: ResolveTrustChainArgs, context: IRequiredContext): Promise<TrustChainResolveResponse>;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export declare type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
|
16
|
-
|
|
17
|
-
export declare type IRequiredPlugins = IJwtService & IResourceResolver;
|
|
18
|
-
|
|
19
|
-
export declare const logger: ISimpleLogger<unknown>;
|
|
20
|
-
|
|
21
|
-
export declare class OIDFClient implements IAgentPlugin {
|
|
22
|
-
private readonly fetchServiceCallback?;
|
|
23
|
-
private readonly cryptoServiceCallback?;
|
|
24
|
-
readonly methods: IOIDFClient;
|
|
25
|
-
readonly schema: any;
|
|
26
|
-
constructor(args?: OIDFClientArgs);
|
|
27
|
-
private defaultCryptoJSImpl;
|
|
28
|
-
private defaultFetchJSImpl;
|
|
29
|
-
private getOIDFClient;
|
|
30
|
-
private resolveTrustChain;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export declare type OIDFClientArgs = {
|
|
34
|
-
fetchServiceCallback?: IFetchService;
|
|
35
|
-
cryptoServiceCallback?: ICryptoService;
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export declare const oidfClientMethods: Array<string>;
|
|
39
|
-
|
|
40
|
-
export declare type ResolveTrustChainArgs = {
|
|
41
|
-
entityIdentifier: string;
|
|
42
|
-
trustAnchors: Array<string>;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @public
|
|
47
|
-
*/
|
|
48
|
-
export declare const schema: any;
|
|
49
|
-
|
|
50
|
-
export { }
|
package/dist/tsdoc-metadata.json
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
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.52.5"
|
|
9
|
-
}
|
|
10
|
-
]
|
|
11
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { IResourceResolver } from '@sphereon/ssi-sdk.resource-resolver';
|
|
2
|
-
import { IAgentContext, IPluginMethodMap } from '@veramo/core';
|
|
3
|
-
import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service';
|
|
4
|
-
import { ICryptoService, IFetchService, TrustChainResolveResponse } from '@sphereon/openid-federation-client';
|
|
5
|
-
export type IRequiredPlugins = IJwtService & IResourceResolver;
|
|
6
|
-
export type IRequiredContext = IAgentContext<IRequiredPlugins>;
|
|
7
|
-
export interface IOIDFClient extends IPluginMethodMap {
|
|
8
|
-
resolveTrustChain(args: ResolveTrustChainArgs, context: IRequiredContext): Promise<TrustChainResolveResponse>;
|
|
9
|
-
}
|
|
10
|
-
export type ResolveTrustChainArgs = {
|
|
11
|
-
entityIdentifier: string;
|
|
12
|
-
trustAnchors: Array<string>;
|
|
13
|
-
};
|
|
14
|
-
export type OIDFClientArgs = {
|
|
15
|
-
fetchServiceCallback?: IFetchService;
|
|
16
|
-
cryptoServiceCallback?: ICryptoService;
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=IOIDFClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IOIDFClient.d.ts","sourceRoot":"","sources":["../../src/types/IOIDFClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AAE7G,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,iBAAiB,CAAA;AAC9D,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA;AAE9D,MAAM,WAAW,WAAY,SAAQ,gBAAgB;IACnD,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;CAC9G;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,EAAE,MAAM,CAAA;IACxB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,oBAAoB,CAAC,EAAE,aAAa,CAAA;IACpC,qBAAqB,CAAC,EAAE,cAAc,CAAA;CACvC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IOIDFClient.js","sourceRoot":"","sources":["../../src/types/IOIDFClient.ts"],"names":[],"mappings":""}
|