@sphereon/ssi-sdk-ext.did-provider-web 0.34.1-next.91 → 0.36.0

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 CHANGED
@@ -40,6 +40,7 @@ var import_ssi_sdk_ext = require("@sphereon/ssi-sdk-ext.did-utils");
40
40
  var import_ssi_sdk_ext2 = require("@sphereon/ssi-sdk-ext.key-utils");
41
41
  var import_did_manager = require("@veramo/did-manager");
42
42
  var import_debug = __toESM(require("debug"), 1);
43
+ var PROVIDER_NAME = "Web DID Provider";
43
44
  var debug = (0, import_debug.default)("sphereon:web-did:identifier-provider");
44
45
  var WebDIDProvider = class extends import_did_manager.AbstractIdentifierProvider {
45
46
  static {
@@ -65,6 +66,7 @@ var WebDIDProvider = class extends import_did_manager.AbstractIdentifierProvider
65
66
  opts.keys
66
67
  ];
67
68
  const keys = await Promise.all(keyOpts.map((keyOpt) => (0, import_ssi_sdk_ext2.importProvidedOrGeneratedKey)({
69
+ providerName: PROVIDER_NAME,
68
70
  kms: kms ?? this.defaultKms,
69
71
  options: keyOpt
70
72
  }, context)));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/web-did-provider.ts"],"sourcesContent":["/**\n * Provides `did:web` {@link @veramo/did-provider-web#WebDIDProvider | identifier provider } for the\n * {@link @veramo/did-manager#DIDManager}\n *\n * @packageDocumentation\n */\nexport * from './types'\nexport { WebDIDProvider } from './web-did-provider'\n","import { asDidWeb } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { importProvidedOrGeneratedKey } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\n\nimport Debug from 'debug'\nimport { ICreateIdentifierArgs, IKeyOpts } from './types'\n\nconst debug = Debug('sphereon:web-did:identifier-provider')\n\ntype IContext = IAgentContext<IKeyManager>\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:web` identifiers\n * @public\n */\nexport class WebDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms: string\n\n constructor(options: { defaultKms: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n async createIdentifier(args: ICreateIdentifierArgs, context: IContext): Promise<Omit<IIdentifier, 'provider'>> {\n const { kms, alias } = args\n const opts = args.options ?? {}\n if (!opts.keys || (Array.isArray(opts.keys) && opts.keys.length === 0)) {\n // Let's generate a key as no import keys or types are provided\n opts.keys = [{ type: 'Secp256r1', isController: true }]\n }\n const keyOpts = Array.isArray(opts.keys) ? opts.keys : [opts.keys as IKeyOpts]\n const keys = await Promise.all(\n keyOpts.map((keyOpt: IKeyOpts) => importProvidedOrGeneratedKey({ kms: kms ?? this.defaultKms, options: keyOpt }, context))\n )\n\n const controllerIdx = keyOpts.findIndex((opt) => opt.isController)\n const controllerKeyId = controllerIdx < 0 ? keys[0].kid : keys[controllerIdx].kid\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: await asDidWeb(alias),\n controllerKeyId,\n keys,\n services: opts.services ?? [],\n }\n debug('Created', identifier)\n return identifier\n }\n\n async updateIdentifier(\n args: {\n did: string\n kms?: string | undefined\n alias?: string | undefined\n options?: any\n },\n context: IAgentContext<IKeyManager>\n ): Promise<IIdentifier> {\n throw new Error('WebDIDProvider updateIdentifier not supported yet.')\n }\n\n async deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean> {\n for (const { kid } of identifier.keys) {\n await context.agent.keyManagerDelete({ kid })\n }\n return true\n }\n\n async addKey(\n {\n identifier,\n key,\n options,\n }: {\n identifier: IIdentifier\n key: IKey\n options?: any\n },\n context: IContext\n ): Promise<any> {\n return { success: true }\n }\n\n async addService(\n {\n identifier,\n service,\n options,\n }: {\n identifier: IIdentifier\n service: IService\n options?: any\n },\n context: IContext\n ): Promise<any> {\n return { success: true }\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACAA,yBAAyB;AACzB,IAAAA,sBAA6C;AAE7C,yBAA2C;AAE3C,mBAAkB;AAGlB,IAAMC,YAAQC,aAAAA,SAAM,sCAAA;AAQb,IAAMC,iBAAN,cAA6BC,8CAAAA;EAhBpC,OAgBoCA;;;EACjBC;EAEjB,YAAYC,SAAiC;AAC3C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;EAEA,MAAME,iBAAiBC,MAA6BC,SAA2D;AAC7G,UAAM,EAAEC,KAAKC,MAAK,IAAKH;AACvB,UAAMI,OAAOJ,KAAKF,WAAW,CAAC;AAC9B,QAAI,CAACM,KAAKC,QAASC,MAAMC,QAAQH,KAAKC,IAAI,KAAKD,KAAKC,KAAKG,WAAW,GAAI;AAEtEJ,WAAKC,OAAO;QAAC;UAAEI,MAAM;UAAaC,cAAc;QAAK;;IACvD;AACA,UAAMC,UAAUL,MAAMC,QAAQH,KAAKC,IAAI,IAAID,KAAKC,OAAO;MAACD,KAAKC;;AAC7D,UAAMA,OAAO,MAAMO,QAAQC,IACzBF,QAAQG,IAAI,CAACC,eAAqBC,kDAA6B;MAAEd,KAAKA,OAAO,KAAKL;MAAYC,SAASiB;IAAO,GAAGd,OAAAA,CAAAA,CAAAA;AAGnH,UAAMgB,gBAAgBN,QAAQO,UAAU,CAACC,QAAQA,IAAIT,YAAY;AACjE,UAAMU,kBAAkBH,gBAAgB,IAAIZ,KAAK,CAAA,EAAGgB,MAAMhB,KAAKY,aAAAA,EAAeI;AAC9E,UAAMC,aAA4C;MAChDC,KAAK,UAAMC,6BAASrB,KAAAA;MACpBiB;MACAf;MACAoB,UAAUrB,KAAKqB,YAAY,CAAA;IAC7B;AACAhC,UAAM,WAAW6B,UAAAA;AACjB,WAAOA;EACT;EAEA,MAAMI,iBACJ1B,MAMAC,SACsB;AACtB,UAAM,IAAI0B,MAAM,oDAAA;EAClB;EAEA,MAAMC,iBAAiBN,YAAyBrB,SAAqC;AACnF,eAAW,EAAEoB,IAAG,KAAMC,WAAWjB,MAAM;AACrC,YAAMJ,QAAQ4B,MAAMC,iBAAiB;QAAET;MAAI,CAAA;IAC7C;AACA,WAAO;EACT;EAEA,MAAMU,OACJ,EACET,YACAU,KACAlC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEgC,SAAS;IAAK;EACzB;EAEA,MAAMC,WACJ,EACEZ,YACAa,SACArC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEgC,SAAS;IAAK;EACzB;EAEA,MAAMG,UAAUpC,MAA+DC,SAAiC;AAC9G,WAAO;MAAEgC,SAAS;IAAK;EACzB;EAEA,MAAMI,cAAcrC,MAA8DC,SAAiC;AACjH,WAAO;MAAEgC,SAAS;IAAK;EACzB;AACF;","names":["import_ssi_sdk_ext","debug","Debug","WebDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","kms","alias","opts","keys","Array","isArray","length","type","isController","keyOpts","Promise","all","map","keyOpt","importProvidedOrGeneratedKey","controllerIdx","findIndex","opt","controllerKeyId","kid","identifier","did","asDidWeb","services","updateIdentifier","Error","deleteIdentifier","agent","keyManagerDelete","addKey","key","success","addService","service","removeKey","removeService"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/web-did-provider.ts"],"sourcesContent":["/**\n * Provides `did:web` {@link @veramo/did-provider-web#WebDIDProvider | identifier provider } for the\n * {@link @veramo/did-manager#DIDManager}\n *\n * @packageDocumentation\n */\nexport * from './types'\nexport { WebDIDProvider } from './web-did-provider'\n","import { asDidWeb } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { importProvidedOrGeneratedKey } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\n\nimport Debug from 'debug'\nimport { ICreateIdentifierArgs, IKeyOpts } from './types'\n\nconst PROVIDER_NAME = 'Web DID Provider'\n\nconst debug = Debug('sphereon:web-did:identifier-provider')\n\ntype IContext = IAgentContext<IKeyManager>\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:web` identifiers\n * @public\n */\nexport class WebDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms: string\n\n constructor(options: { defaultKms: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n async createIdentifier(args: ICreateIdentifierArgs, context: IContext): Promise<Omit<IIdentifier, 'provider'>> {\n const { kms, alias } = args\n const opts = args.options ?? {}\n if (!opts.keys || (Array.isArray(opts.keys) && opts.keys.length === 0)) {\n // Let's generate a key as no import keys or types are provided\n opts.keys = [{ type: 'Secp256r1', isController: true }]\n }\n const keyOpts = Array.isArray(opts.keys) ? opts.keys : [opts.keys as IKeyOpts]\n const keys = await Promise.all(\n keyOpts.map((keyOpt: IKeyOpts) =>\n importProvidedOrGeneratedKey(\n {\n providerName: PROVIDER_NAME,\n kms: kms ?? this.defaultKms,\n options: keyOpt,\n },\n context,\n ),\n ),\n )\n\n const controllerIdx = keyOpts.findIndex((opt) => opt.isController)\n const controllerKeyId = controllerIdx < 0 ? keys[0].kid : keys[controllerIdx].kid\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: await asDidWeb(alias),\n controllerKeyId,\n keys,\n services: opts.services ?? [],\n }\n debug('Created', identifier)\n return identifier\n }\n\n async updateIdentifier(\n args: {\n did: string\n kms?: string | undefined\n alias?: string | undefined\n options?: any\n },\n context: IAgentContext<IKeyManager>,\n ): Promise<IIdentifier> {\n throw new Error('WebDIDProvider updateIdentifier not supported yet.')\n }\n\n async deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean> {\n for (const { kid } of identifier.keys) {\n await context.agent.keyManagerDelete({ kid })\n }\n return true\n }\n\n async addKey(\n {\n identifier,\n key,\n options,\n }: {\n identifier: IIdentifier\n key: IKey\n options?: any\n },\n context: IContext,\n ): Promise<any> {\n return { success: true }\n }\n\n async addService(\n {\n identifier,\n service,\n options,\n }: {\n identifier: IIdentifier\n service: IService\n options?: any\n },\n context: IContext,\n ): Promise<any> {\n return { success: true }\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;ACAA,yBAAyB;AACzB,IAAAA,sBAA6C;AAE7C,yBAA2C;AAE3C,mBAAkB;AAGlB,IAAMC,gBAAgB;AAEtB,IAAMC,YAAQC,aAAAA,SAAM,sCAAA;AAQb,IAAMC,iBAAN,cAA6BC,8CAAAA;EAlBpC,OAkBoCA;;;EACjBC;EAEjB,YAAYC,SAAiC;AAC3C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;EAEA,MAAME,iBAAiBC,MAA6BC,SAA2D;AAC7G,UAAM,EAAEC,KAAKC,MAAK,IAAKH;AACvB,UAAMI,OAAOJ,KAAKF,WAAW,CAAC;AAC9B,QAAI,CAACM,KAAKC,QAASC,MAAMC,QAAQH,KAAKC,IAAI,KAAKD,KAAKC,KAAKG,WAAW,GAAI;AAEtEJ,WAAKC,OAAO;QAAC;UAAEI,MAAM;UAAaC,cAAc;QAAK;;IACvD;AACA,UAAMC,UAAUL,MAAMC,QAAQH,KAAKC,IAAI,IAAID,KAAKC,OAAO;MAACD,KAAKC;;AAC7D,UAAMA,OAAO,MAAMO,QAAQC,IACzBF,QAAQG,IAAI,CAACC,eACXC,kDACE;MACEC,cAAczB;MACdU,KAAKA,OAAO,KAAKL;MACjBC,SAASiB;IACX,GACAd,OAAAA,CAAAA,CAAAA;AAKN,UAAMiB,gBAAgBP,QAAQQ,UAAU,CAACC,QAAQA,IAAIV,YAAY;AACjE,UAAMW,kBAAkBH,gBAAgB,IAAIb,KAAK,CAAA,EAAGiB,MAAMjB,KAAKa,aAAAA,EAAeI;AAC9E,UAAMC,aAA4C;MAChDC,KAAK,UAAMC,6BAAStB,KAAAA;MACpBkB;MACAhB;MACAqB,UAAUtB,KAAKsB,YAAY,CAAA;IAC7B;AACAjC,UAAM,WAAW8B,UAAAA;AACjB,WAAOA;EACT;EAEA,MAAMI,iBACJ3B,MAMAC,SACsB;AACtB,UAAM,IAAI2B,MAAM,oDAAA;EAClB;EAEA,MAAMC,iBAAiBN,YAAyBtB,SAAqC;AACnF,eAAW,EAAEqB,IAAG,KAAMC,WAAWlB,MAAM;AACrC,YAAMJ,QAAQ6B,MAAMC,iBAAiB;QAAET;MAAI,CAAA;IAC7C;AACA,WAAO;EACT;EAEA,MAAMU,OACJ,EACET,YACAU,KACAnC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEiC,SAAS;IAAK;EACzB;EAEA,MAAMC,WACJ,EACEZ,YACAa,SACAtC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEiC,SAAS;IAAK;EACzB;EAEA,MAAMG,UAAUrC,MAA+DC,SAAiC;AAC9G,WAAO;MAAEiC,SAAS;IAAK;EACzB;EAEA,MAAMI,cAActC,MAA8DC,SAAiC;AACjH,WAAO;MAAEiC,SAAS;IAAK;EACzB;AACF;","names":["import_ssi_sdk_ext","PROVIDER_NAME","debug","Debug","WebDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","kms","alias","opts","keys","Array","isArray","length","type","isController","keyOpts","Promise","all","map","keyOpt","importProvidedOrGeneratedKey","providerName","controllerIdx","findIndex","opt","controllerKeyId","kid","identifier","did","asDidWeb","services","updateIdentifier","Error","deleteIdentifier","agent","keyManagerDelete","addKey","key","success","addService","service","removeKey","removeService"]}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import { asDidWeb } from "@sphereon/ssi-sdk-ext.did-utils";
6
6
  import { importProvidedOrGeneratedKey } from "@sphereon/ssi-sdk-ext.key-utils";
7
7
  import { AbstractIdentifierProvider } from "@veramo/did-manager";
8
8
  import Debug from "debug";
9
+ var PROVIDER_NAME = "Web DID Provider";
9
10
  var debug = Debug("sphereon:web-did:identifier-provider");
10
11
  var WebDIDProvider = class extends AbstractIdentifierProvider {
11
12
  static {
@@ -31,6 +32,7 @@ var WebDIDProvider = class extends AbstractIdentifierProvider {
31
32
  opts.keys
32
33
  ];
33
34
  const keys = await Promise.all(keyOpts.map((keyOpt) => importProvidedOrGeneratedKey({
35
+ providerName: PROVIDER_NAME,
34
36
  kms: kms ?? this.defaultKms,
35
37
  options: keyOpt
36
38
  }, context)));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/web-did-provider.ts"],"sourcesContent":["import { asDidWeb } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { importProvidedOrGeneratedKey } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\n\nimport Debug from 'debug'\nimport { ICreateIdentifierArgs, IKeyOpts } from './types'\n\nconst debug = Debug('sphereon:web-did:identifier-provider')\n\ntype IContext = IAgentContext<IKeyManager>\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:web` identifiers\n * @public\n */\nexport class WebDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms: string\n\n constructor(options: { defaultKms: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n async createIdentifier(args: ICreateIdentifierArgs, context: IContext): Promise<Omit<IIdentifier, 'provider'>> {\n const { kms, alias } = args\n const opts = args.options ?? {}\n if (!opts.keys || (Array.isArray(opts.keys) && opts.keys.length === 0)) {\n // Let's generate a key as no import keys or types are provided\n opts.keys = [{ type: 'Secp256r1', isController: true }]\n }\n const keyOpts = Array.isArray(opts.keys) ? opts.keys : [opts.keys as IKeyOpts]\n const keys = await Promise.all(\n keyOpts.map((keyOpt: IKeyOpts) => importProvidedOrGeneratedKey({ kms: kms ?? this.defaultKms, options: keyOpt }, context))\n )\n\n const controllerIdx = keyOpts.findIndex((opt) => opt.isController)\n const controllerKeyId = controllerIdx < 0 ? keys[0].kid : keys[controllerIdx].kid\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: await asDidWeb(alias),\n controllerKeyId,\n keys,\n services: opts.services ?? [],\n }\n debug('Created', identifier)\n return identifier\n }\n\n async updateIdentifier(\n args: {\n did: string\n kms?: string | undefined\n alias?: string | undefined\n options?: any\n },\n context: IAgentContext<IKeyManager>\n ): Promise<IIdentifier> {\n throw new Error('WebDIDProvider updateIdentifier not supported yet.')\n }\n\n async deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean> {\n for (const { kid } of identifier.keys) {\n await context.agent.keyManagerDelete({ kid })\n }\n return true\n }\n\n async addKey(\n {\n identifier,\n key,\n options,\n }: {\n identifier: IIdentifier\n key: IKey\n options?: any\n },\n context: IContext\n ): Promise<any> {\n return { success: true }\n }\n\n async addService(\n {\n identifier,\n service,\n options,\n }: {\n identifier: IIdentifier\n service: IService\n options?: any\n },\n context: IContext\n ): Promise<any> {\n return { success: true }\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,oCAAoC;AAE7C,SAASC,kCAAkC;AAE3C,OAAOC,WAAW;AAGlB,IAAMC,QAAQC,MAAM,sCAAA;AAQb,IAAMC,iBAAN,cAA6BC,2BAAAA;EAhBpC,OAgBoCA;;;EACjBC;EAEjB,YAAYC,SAAiC;AAC3C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;EAEA,MAAME,iBAAiBC,MAA6BC,SAA2D;AAC7G,UAAM,EAAEC,KAAKC,MAAK,IAAKH;AACvB,UAAMI,OAAOJ,KAAKF,WAAW,CAAC;AAC9B,QAAI,CAACM,KAAKC,QAASC,MAAMC,QAAQH,KAAKC,IAAI,KAAKD,KAAKC,KAAKG,WAAW,GAAI;AAEtEJ,WAAKC,OAAO;QAAC;UAAEI,MAAM;UAAaC,cAAc;QAAK;;IACvD;AACA,UAAMC,UAAUL,MAAMC,QAAQH,KAAKC,IAAI,IAAID,KAAKC,OAAO;MAACD,KAAKC;;AAC7D,UAAMA,OAAO,MAAMO,QAAQC,IACzBF,QAAQG,IAAI,CAACC,WAAqBC,6BAA6B;MAAEd,KAAKA,OAAO,KAAKL;MAAYC,SAASiB;IAAO,GAAGd,OAAAA,CAAAA,CAAAA;AAGnH,UAAMgB,gBAAgBN,QAAQO,UAAU,CAACC,QAAQA,IAAIT,YAAY;AACjE,UAAMU,kBAAkBH,gBAAgB,IAAIZ,KAAK,CAAA,EAAGgB,MAAMhB,KAAKY,aAAAA,EAAeI;AAC9E,UAAMC,aAA4C;MAChDC,KAAK,MAAMC,SAASrB,KAAAA;MACpBiB;MACAf;MACAoB,UAAUrB,KAAKqB,YAAY,CAAA;IAC7B;AACAhC,UAAM,WAAW6B,UAAAA;AACjB,WAAOA;EACT;EAEA,MAAMI,iBACJ1B,MAMAC,SACsB;AACtB,UAAM,IAAI0B,MAAM,oDAAA;EAClB;EAEA,MAAMC,iBAAiBN,YAAyBrB,SAAqC;AACnF,eAAW,EAAEoB,IAAG,KAAMC,WAAWjB,MAAM;AACrC,YAAMJ,QAAQ4B,MAAMC,iBAAiB;QAAET;MAAI,CAAA;IAC7C;AACA,WAAO;EACT;EAEA,MAAMU,OACJ,EACET,YACAU,KACAlC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEgC,SAAS;IAAK;EACzB;EAEA,MAAMC,WACJ,EACEZ,YACAa,SACArC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEgC,SAAS;IAAK;EACzB;EAEA,MAAMG,UAAUpC,MAA+DC,SAAiC;AAC9G,WAAO;MAAEgC,SAAS;IAAK;EACzB;EAEA,MAAMI,cAAcrC,MAA8DC,SAAiC;AACjH,WAAO;MAAEgC,SAAS;IAAK;EACzB;AACF;","names":["asDidWeb","importProvidedOrGeneratedKey","AbstractIdentifierProvider","Debug","debug","Debug","WebDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","kms","alias","opts","keys","Array","isArray","length","type","isController","keyOpts","Promise","all","map","keyOpt","importProvidedOrGeneratedKey","controllerIdx","findIndex","opt","controllerKeyId","kid","identifier","did","asDidWeb","services","updateIdentifier","Error","deleteIdentifier","agent","keyManagerDelete","addKey","key","success","addService","service","removeKey","removeService"]}
1
+ {"version":3,"sources":["../src/web-did-provider.ts"],"sourcesContent":["import { asDidWeb } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { importProvidedOrGeneratedKey } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\n\nimport Debug from 'debug'\nimport { ICreateIdentifierArgs, IKeyOpts } from './types'\n\nconst PROVIDER_NAME = 'Web DID Provider'\n\nconst debug = Debug('sphereon:web-did:identifier-provider')\n\ntype IContext = IAgentContext<IKeyManager>\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:web` identifiers\n * @public\n */\nexport class WebDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms: string\n\n constructor(options: { defaultKms: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n async createIdentifier(args: ICreateIdentifierArgs, context: IContext): Promise<Omit<IIdentifier, 'provider'>> {\n const { kms, alias } = args\n const opts = args.options ?? {}\n if (!opts.keys || (Array.isArray(opts.keys) && opts.keys.length === 0)) {\n // Let's generate a key as no import keys or types are provided\n opts.keys = [{ type: 'Secp256r1', isController: true }]\n }\n const keyOpts = Array.isArray(opts.keys) ? opts.keys : [opts.keys as IKeyOpts]\n const keys = await Promise.all(\n keyOpts.map((keyOpt: IKeyOpts) =>\n importProvidedOrGeneratedKey(\n {\n providerName: PROVIDER_NAME,\n kms: kms ?? this.defaultKms,\n options: keyOpt,\n },\n context,\n ),\n ),\n )\n\n const controllerIdx = keyOpts.findIndex((opt) => opt.isController)\n const controllerKeyId = controllerIdx < 0 ? keys[0].kid : keys[controllerIdx].kid\n const identifier: Omit<IIdentifier, 'provider'> = {\n did: await asDidWeb(alias),\n controllerKeyId,\n keys,\n services: opts.services ?? [],\n }\n debug('Created', identifier)\n return identifier\n }\n\n async updateIdentifier(\n args: {\n did: string\n kms?: string | undefined\n alias?: string | undefined\n options?: any\n },\n context: IAgentContext<IKeyManager>,\n ): Promise<IIdentifier> {\n throw new Error('WebDIDProvider updateIdentifier not supported yet.')\n }\n\n async deleteIdentifier(identifier: IIdentifier, context: IContext): Promise<boolean> {\n for (const { kid } of identifier.keys) {\n await context.agent.keyManagerDelete({ kid })\n }\n return true\n }\n\n async addKey(\n {\n identifier,\n key,\n options,\n }: {\n identifier: IIdentifier\n key: IKey\n options?: any\n },\n context: IContext,\n ): Promise<any> {\n return { success: true }\n }\n\n async addService(\n {\n identifier,\n service,\n options,\n }: {\n identifier: IIdentifier\n service: IService\n options?: any\n },\n context: IContext,\n ): Promise<any> {\n return { success: true }\n }\n\n async removeKey(args: { identifier: IIdentifier; kid: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n\n async removeService(args: { identifier: IIdentifier; id: string; options?: any }, context: IContext): Promise<any> {\n return { success: true }\n }\n}\n"],"mappings":";;;;AAAA,SAASA,gBAAgB;AACzB,SAASC,oCAAoC;AAE7C,SAASC,kCAAkC;AAE3C,OAAOC,WAAW;AAGlB,IAAMC,gBAAgB;AAEtB,IAAMC,QAAQC,MAAM,sCAAA;AAQb,IAAMC,iBAAN,cAA6BC,2BAAAA;EAlBpC,OAkBoCA;;;EACjBC;EAEjB,YAAYC,SAAiC;AAC3C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;EAEA,MAAME,iBAAiBC,MAA6BC,SAA2D;AAC7G,UAAM,EAAEC,KAAKC,MAAK,IAAKH;AACvB,UAAMI,OAAOJ,KAAKF,WAAW,CAAC;AAC9B,QAAI,CAACM,KAAKC,QAASC,MAAMC,QAAQH,KAAKC,IAAI,KAAKD,KAAKC,KAAKG,WAAW,GAAI;AAEtEJ,WAAKC,OAAO;QAAC;UAAEI,MAAM;UAAaC,cAAc;QAAK;;IACvD;AACA,UAAMC,UAAUL,MAAMC,QAAQH,KAAKC,IAAI,IAAID,KAAKC,OAAO;MAACD,KAAKC;;AAC7D,UAAMA,OAAO,MAAMO,QAAQC,IACzBF,QAAQG,IAAI,CAACC,WACXC,6BACE;MACEC,cAAczB;MACdU,KAAKA,OAAO,KAAKL;MACjBC,SAASiB;IACX,GACAd,OAAAA,CAAAA,CAAAA;AAKN,UAAMiB,gBAAgBP,QAAQQ,UAAU,CAACC,QAAQA,IAAIV,YAAY;AACjE,UAAMW,kBAAkBH,gBAAgB,IAAIb,KAAK,CAAA,EAAGiB,MAAMjB,KAAKa,aAAAA,EAAeI;AAC9E,UAAMC,aAA4C;MAChDC,KAAK,MAAMC,SAAStB,KAAAA;MACpBkB;MACAhB;MACAqB,UAAUtB,KAAKsB,YAAY,CAAA;IAC7B;AACAjC,UAAM,WAAW8B,UAAAA;AACjB,WAAOA;EACT;EAEA,MAAMI,iBACJ3B,MAMAC,SACsB;AACtB,UAAM,IAAI2B,MAAM,oDAAA;EAClB;EAEA,MAAMC,iBAAiBN,YAAyBtB,SAAqC;AACnF,eAAW,EAAEqB,IAAG,KAAMC,WAAWlB,MAAM;AACrC,YAAMJ,QAAQ6B,MAAMC,iBAAiB;QAAET;MAAI,CAAA;IAC7C;AACA,WAAO;EACT;EAEA,MAAMU,OACJ,EACET,YACAU,KACAnC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEiC,SAAS;IAAK;EACzB;EAEA,MAAMC,WACJ,EACEZ,YACAa,SACAtC,QAAO,GAMTG,SACc;AACd,WAAO;MAAEiC,SAAS;IAAK;EACzB;EAEA,MAAMG,UAAUrC,MAA+DC,SAAiC;AAC9G,WAAO;MAAEiC,SAAS;IAAK;EACzB;EAEA,MAAMI,cAActC,MAA8DC,SAAiC;AACjH,WAAO;MAAEiC,SAAS;IAAK;EACzB;AACF;","names":["asDidWeb","importProvidedOrGeneratedKey","AbstractIdentifierProvider","Debug","PROVIDER_NAME","debug","Debug","WebDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","kms","alias","opts","keys","Array","isArray","length","type","isController","keyOpts","Promise","all","map","keyOpt","importProvidedOrGeneratedKey","providerName","controllerIdx","findIndex","opt","controllerKeyId","kid","identifier","did","asDidWeb","services","updateIdentifier","Error","deleteIdentifier","agent","keyManagerDelete","addKey","key","success","addService","service","removeKey","removeService"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk-ext.did-provider-web",
3
3
  "description": "plugin that can enable creation and control of did:web identifiers.",
4
- "version": "0.34.1-next.91+3c949810",
4
+ "version": "0.36.0",
5
5
  "source": "./src/index.ts",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
@@ -22,8 +22,8 @@
22
22
  "build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
23
23
  },
24
24
  "dependencies": {
25
- "@sphereon/ssi-sdk-ext.did-utils": "0.34.1-next.91+3c949810",
26
- "@sphereon/ssi-sdk-ext.key-utils": "0.34.1-next.91+3c949810",
25
+ "@sphereon/ssi-sdk-ext.did-utils": "0.36.0",
26
+ "@sphereon/ssi-sdk-ext.key-utils": "0.36.0",
27
27
  "@veramo/core": "4.2.0",
28
28
  "@veramo/did-manager": "4.2.0",
29
29
  "debug": "^4.3.4"
@@ -57,5 +57,5 @@
57
57
  "secp256r1",
58
58
  "RSA"
59
59
  ],
60
- "gitHead": "3c9498100ca07dfc2ba7979e7347fb9b19c47d18"
60
+ "gitHead": "f713d3a83948ef69aaa7d435700b16d5655ac863"
61
61
  }
@@ -6,6 +6,8 @@ import { AbstractIdentifierProvider } from '@veramo/did-manager'
6
6
  import Debug from 'debug'
7
7
  import { ICreateIdentifierArgs, IKeyOpts } from './types'
8
8
 
9
+ const PROVIDER_NAME = 'Web DID Provider'
10
+
9
11
  const debug = Debug('sphereon:web-did:identifier-provider')
10
12
 
11
13
  type IContext = IAgentContext<IKeyManager>
@@ -31,7 +33,16 @@ export class WebDIDProvider extends AbstractIdentifierProvider {
31
33
  }
32
34
  const keyOpts = Array.isArray(opts.keys) ? opts.keys : [opts.keys as IKeyOpts]
33
35
  const keys = await Promise.all(
34
- keyOpts.map((keyOpt: IKeyOpts) => importProvidedOrGeneratedKey({ kms: kms ?? this.defaultKms, options: keyOpt }, context))
36
+ keyOpts.map((keyOpt: IKeyOpts) =>
37
+ importProvidedOrGeneratedKey(
38
+ {
39
+ providerName: PROVIDER_NAME,
40
+ kms: kms ?? this.defaultKms,
41
+ options: keyOpt,
42
+ },
43
+ context,
44
+ ),
45
+ ),
35
46
  )
36
47
 
37
48
  const controllerIdx = keyOpts.findIndex((opt) => opt.isController)
@@ -53,7 +64,7 @@ export class WebDIDProvider extends AbstractIdentifierProvider {
53
64
  alias?: string | undefined
54
65
  options?: any
55
66
  },
56
- context: IAgentContext<IKeyManager>
67
+ context: IAgentContext<IKeyManager>,
57
68
  ): Promise<IIdentifier> {
58
69
  throw new Error('WebDIDProvider updateIdentifier not supported yet.')
59
70
  }
@@ -75,7 +86,7 @@ export class WebDIDProvider extends AbstractIdentifierProvider {
75
86
  key: IKey
76
87
  options?: any
77
88
  },
78
- context: IContext
89
+ context: IContext,
79
90
  ): Promise<any> {
80
91
  return { success: true }
81
92
  }
@@ -90,7 +101,7 @@ export class WebDIDProvider extends AbstractIdentifierProvider {
90
101
  service: IService
91
102
  options?: any
92
103
  },
93
- context: IContext
104
+ context: IContext,
94
105
  ): Promise<any> {
95
106
  return { success: true }
96
107
  }