@learncard/core 6.4.0 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/core.cjs.development.js +82 -46
- package/dist/core.cjs.development.js.map +3 -3
- package/dist/core.cjs.production.min.js +125 -125
- package/dist/core.cjs.production.min.js.map +3 -3
- package/dist/core.d.ts +109 -80
- package/dist/core.esm.js +82 -46
- package/dist/core.esm.js.map +3 -3
- package/package.json +2 -2
package/dist/core.d.ts
CHANGED
@@ -4645,16 +4645,10 @@ declare const VerificationItemValidator: z.ZodObject<{
|
|
4645
4645
|
check: string;
|
4646
4646
|
}>;
|
4647
4647
|
export declare type VerificationItem = z.infer<typeof VerificationItemValidator>;
|
4648
|
-
declare const StorageTypeValidator: z.ZodEnum<[
|
4649
|
-
"ceramic"
|
4650
|
-
]>;
|
4651
|
-
/** @group IDXPlugin */
|
4652
|
-
export declare type StorageType = z.infer<typeof StorageTypeValidator>;
|
4653
4648
|
/** @group IDXPlugin */
|
4654
4649
|
export declare type IDXCredential<Metadata extends Record<string, any> = Record<never, never>> = {
|
4655
4650
|
id: string;
|
4656
|
-
|
4657
|
-
storageType?: StorageType;
|
4651
|
+
uri: string;
|
4658
4652
|
[key: string]: any;
|
4659
4653
|
} & Metadata;
|
4660
4654
|
declare const JWKValidator: z.ZodObject<{
|
@@ -4750,29 +4744,16 @@ export declare type Token = {
|
|
4750
4744
|
};
|
4751
4745
|
/** @group Ethereum Plugin */
|
4752
4746
|
export declare type TokenList = Token[];
|
4753
|
-
/** @group
|
4754
|
-
export declare type
|
4755
|
-
|
4756
|
-
|
4757
|
-
|
4758
|
-
defaultContentFamily: string;
|
4747
|
+
/** @group VC Resolution Plugin */
|
4748
|
+
export declare type LC_URI<URI extends string = ""> = string | URI;
|
4749
|
+
/** @group VC Resolution Plugin */
|
4750
|
+
export declare type VCResolutionPluginMethods = {
|
4751
|
+
resolveCredential: (uri?: LC_URI) => Promise<VC | undefined>;
|
4759
4752
|
};
|
4760
|
-
/** @group
|
4761
|
-
export declare type
|
4762
|
-
|
4763
|
-
publishContentToCeramic: (cred: any) => Promise<string>;
|
4764
|
-
readContentFromCeramic: (streamId: string) => Promise<any>;
|
4765
|
-
getVerifiableCredentialFromIdx: (title: string) => Promise<VC>;
|
4766
|
-
getVerifiableCredentialsFromIdx: () => Promise<VC[]>;
|
4767
|
-
addVerifiableCredentialInIdx: <Metadata extends Record<string, any> = Record<never, never>>(cred: IDXCredential<Metadata>) => Promise<StreamID>;
|
4768
|
-
removeVerifiableCredentialInIdx: (title: string) => Promise<StreamID>;
|
4753
|
+
/** @group VC Resolution Plugin */
|
4754
|
+
export declare type ResolutionExtension<URI extends string> = {
|
4755
|
+
resolveCredential: (uri?: LC_URI<URI>) => Promise<VC | undefined>;
|
4769
4756
|
};
|
4770
|
-
/** @group IDXPlugin */
|
4771
|
-
export declare type CredentialsList<Metadata extends Record<string, any> = Record<never, never>> = {
|
4772
|
-
credentials: Array<IDXCredential<Metadata>>;
|
4773
|
-
};
|
4774
|
-
/** @group IDXPlugin */
|
4775
|
-
export declare const CredentialsListValidator: z.ZodType<CredentialsList>;
|
4776
4757
|
export declare type Last<T extends any[]> = T extends [
|
4777
4758
|
...any[],
|
4778
4759
|
infer R
|
@@ -4806,6 +4787,52 @@ export declare type Wallet<PluginNames extends string = "", PluginMethods extend
|
|
4806
4787
|
Methods
|
4807
4788
|
]>>>;
|
4808
4789
|
};
|
4790
|
+
/** @group IDXPlugin */
|
4791
|
+
export declare type CeramicIDXArgs = {
|
4792
|
+
modelData: ModelAliases;
|
4793
|
+
credentialAlias: string;
|
4794
|
+
ceramicEndpoint: string;
|
4795
|
+
defaultContentFamily: string;
|
4796
|
+
};
|
4797
|
+
/** @group IDXPlugin */
|
4798
|
+
export declare type CeramicURI = `lc:ceramic:${string}`;
|
4799
|
+
/** @group IDXPlugin */
|
4800
|
+
export declare const CeramicURIValidator: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
|
4801
|
+
/** @group IDXPlugin */
|
4802
|
+
export declare type IDXPluginMethods<URI extends string = ""> = {
|
4803
|
+
getCredentialsListFromIdx: <Metadata extends Record<string, any> = Record<never, never>>(alias?: string) => Promise<CredentialsList<Metadata>>;
|
4804
|
+
publishContentToCeramic: (cred: any) => Promise<CeramicURI>;
|
4805
|
+
readContentFromCeramic: (streamId: string) => Promise<any>;
|
4806
|
+
getVerifiableCredentialFromIdx: (id: string) => Promise<VC | undefined>;
|
4807
|
+
getVerifiableCredentialsFromIdx: () => Promise<VC[]>;
|
4808
|
+
addVerifiableCredentialInIdx: <Metadata extends Record<string, any> = Record<never, never>>(cred: IDXCredential<Metadata>) => Promise<CeramicURI>;
|
4809
|
+
removeVerifiableCredentialInIdx: (title: string) => Promise<StreamID>;
|
4810
|
+
} & ResolutionExtension<URI | CeramicURI>;
|
4811
|
+
/** @group IDXPlugin */
|
4812
|
+
export declare type IDXPluginDependentMethods<URI extends string = ""> = {
|
4813
|
+
getKey: () => string;
|
4814
|
+
} & ResolutionExtension<URI>;
|
4815
|
+
/** @group IDXPlugin */
|
4816
|
+
export declare type CredentialsList<Metadata extends Record<string, any> = Record<never, never>> = {
|
4817
|
+
credentials: Array<IDXCredential<Metadata>>;
|
4818
|
+
};
|
4819
|
+
/** @group IDXPlugin */
|
4820
|
+
export declare const CredentialsListValidator: z.ZodType<CredentialsList>;
|
4821
|
+
/** @group IDXPlugin */
|
4822
|
+
export declare type BackwardsCompatIDXCredential<Metadata extends Record<string, any> = Record<never, never>> = {
|
4823
|
+
[key: string]: any;
|
4824
|
+
id: string;
|
4825
|
+
title: string;
|
4826
|
+
storageType?: "ceramic";
|
4827
|
+
} & Metadata;
|
4828
|
+
/** @group IDXPlugin */
|
4829
|
+
export declare const BackwardsCompatIDXCredentialValidator: z.ZodType<BackwardsCompatIDXCredential>;
|
4830
|
+
/** @group IDXPlugin */
|
4831
|
+
export declare type BackwardsCompatCredentialsList<Metadata extends Record<string, any> = Record<never, never>> = {
|
4832
|
+
credentials: Array<IDXCredential<Metadata> | BackwardsCompatIDXCredential<Metadata>>;
|
4833
|
+
};
|
4834
|
+
/** @group IDXPlugin */
|
4835
|
+
export declare const BackwardsCompatCredentialsListValidator: z.ZodType<BackwardsCompatCredentialsList>;
|
4809
4836
|
/** @group VC Plugin */
|
4810
4837
|
export declare type VCPluginDependentMethods = {
|
4811
4838
|
getSubjectDid: (type: "key") => string;
|
@@ -4982,6 +5009,39 @@ export declare type VCAPIPluginMethods = {
|
|
4982
5009
|
getTestVc: (subject?: string) => UnsignedVC;
|
4983
5010
|
getTestVp: (credential?: VC) => Promise<UnsignedVP>;
|
4984
5011
|
};
|
5012
|
+
/**
|
5013
|
+
*
|
5014
|
+
* @group Plugins
|
5015
|
+
*/
|
5016
|
+
export declare const getDidKitPlugin: (input?: InitInput | Promise<InitInput>) => Promise<Plugin<"DIDKit", DidkitPluginMethods>>;
|
5017
|
+
/**
|
5018
|
+
*
|
5019
|
+
* @group Plugins
|
5020
|
+
*/
|
5021
|
+
export declare const getDidKeyPlugin: <DidMethod extends string>(wallet: Wallet<string, DependentMethods<DidMethod>>, key: string) => Promise<Plugin<"DID Key", DidKeyPluginMethods<DidMethod>, Record<never, never>>>;
|
5022
|
+
/**
|
5023
|
+
* @group Plugins
|
5024
|
+
*/
|
5025
|
+
export declare const getVCPlugin: (wallet: Wallet<string, VCPluginDependentMethods>) => Plugin<"VC", VCPluginMethods, VCPluginDependentMethods>;
|
5026
|
+
/**
|
5027
|
+
* @group Plugins
|
5028
|
+
*/
|
5029
|
+
export declare const getIDXPlugin: <URI extends string = "">(wallet: Wallet<any, IDXPluginDependentMethods<URI>>, { modelData, credentialAlias, ceramicEndpoint, defaultContentFamily }: CeramicIDXArgs) => Promise<Plugin<"IDX", IDXPluginMethods<URI>, Record<never, never>>>;
|
5030
|
+
/**
|
5031
|
+
* @group Plugins
|
5032
|
+
*/
|
5033
|
+
export declare const ExpirationPlugin: (wallet: Wallet<any, VerifyExtension>) => Plugin<"Expiration", VerifyExtension>;
|
5034
|
+
/**
|
5035
|
+
* @group Plugins
|
5036
|
+
*/
|
5037
|
+
export declare const getEthereumPlugin: (initWallet: Wallet<string, {
|
5038
|
+
getSubjectDid: (type: DidMethod) => string;
|
5039
|
+
getSubjectKeypair: (type?: Algorithm) => JWK;
|
5040
|
+
}>, config: EthereumConfig) => Plugin<"Ethereum", EthereumPluginMethods>;
|
5041
|
+
/**
|
5042
|
+
* @group Plugins
|
5043
|
+
*/
|
5044
|
+
export declare const getVpqrPlugin: (wallet: Wallet<string, VpqrPluginDependentMethods>) => Plugin<"Vpqr", VpqrPluginMethods>;
|
4985
5045
|
/**
|
4986
5046
|
* Wallet holder's did
|
4987
5047
|
*
|
@@ -5047,7 +5107,7 @@ export declare type VerifyPresentation = (presentation: VP, options?: Partial<Pr
|
|
5047
5107
|
*
|
5048
5108
|
* @group LearnCard Methods
|
5049
5109
|
*/
|
5050
|
-
export declare type GetCredential = (title: string) => Promise<VC>;
|
5110
|
+
export declare type GetCredential = (title: string) => Promise<VC | undefined>;
|
5051
5111
|
/**
|
5052
5112
|
* Returns all credentials from IDX
|
5053
5113
|
*
|
@@ -5061,35 +5121,31 @@ export declare type GetCredentials = () => Promise<VC[]>;
|
|
5061
5121
|
*/
|
5062
5122
|
export declare type GetCredentialsList = <Metadata extends Record<string, any> = Record<never, never>>() => Promise<IDXCredential<Metadata>[]>;
|
5063
5123
|
/**
|
5064
|
-
* Publishes a credential to Ceramic, returning the credential's
|
5124
|
+
* Publishes a credential to Ceramic, returning the credential's Ceramic URI
|
5065
5125
|
*
|
5066
|
-
* This
|
5126
|
+
* This URI may then be shared/persisted/resolved to gain access to the credential
|
5067
5127
|
*
|
5068
|
-
* Resolving a
|
5128
|
+
* Resolving a URI can be done by passing the URI to `resolveCredential`
|
5069
5129
|
*
|
5070
5130
|
* @group LearnCard Methods
|
5071
5131
|
*/
|
5072
|
-
export declare type PublishCredential = (credential: VC) => Promise<
|
5132
|
+
export declare type PublishCredential = (credential: VC) => Promise<CeramicURI>;
|
5073
5133
|
/**
|
5074
|
-
* Adds a
|
5075
|
-
* to IDX with a bespoke
|
5134
|
+
* Adds a URI pointing to a credential (such as the one returned by `publishCredential`)
|
5135
|
+
* to IDX with a bespoke ID
|
5076
5136
|
*
|
5077
|
-
* The credential may then be retrieved using `getCredential` and passing in that bespoke
|
5078
|
-
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
5137
|
+
* The credential may then be retrieved using `getCredential` and passing in that bespoke ID,
|
5138
|
+
* or by using `getCredentials`/`getCredentialsList` to get a list of all credentials that have been added to IDX
|
5079
5139
|
*
|
5080
5140
|
* @group LearnCard Methods
|
5081
5141
|
*/
|
5082
5142
|
export declare type AddCredential = <Metadata extends Record<string, any> = Record<never, never>>(credential: IDXCredential<Metadata>) => Promise<void>;
|
5083
5143
|
/**
|
5084
|
-
*
|
5085
|
-
* to IDX with a bespoke title
|
5086
|
-
*
|
5087
|
-
* The credential may then be retrieved using `getCredential` and passing in that bespoke title,
|
5088
|
-
* or by using `getCredentials` to get a list of all credentials that have been added to IDX
|
5144
|
+
* Removes a credential from IDX by passing in its bespoke ID
|
5089
5145
|
*
|
5090
5146
|
* @group LearnCard Methods
|
5091
5147
|
*/
|
5092
|
-
export declare type RemoveCredential = (
|
5148
|
+
export declare type RemoveCredential = (id: string) => Promise<void>;
|
5093
5149
|
/**
|
5094
5150
|
* Resolves a did to its did document
|
5095
5151
|
*
|
@@ -5099,12 +5155,18 @@ export declare type ResolveDid = (did: string, inputMetadata?: InputMetadata) =>
|
|
5099
5155
|
/**
|
5100
5156
|
* Resolves a stream ID, returning its contents
|
5101
5157
|
*
|
5158
|
+
* @group LearnCard Methods
|
5159
|
+
*/
|
5160
|
+
export declare type ReadFromCeramic = (streamId: string) => Promise<any>;
|
5161
|
+
/**
|
5162
|
+
* Resolves a LearnCard URI (e.g. lc:ceramic:1234561)
|
5163
|
+
*
|
5102
5164
|
* This can be given the return value of `publishCredential` to gain access to the credential
|
5103
5165
|
* that was published
|
5104
5166
|
*
|
5105
5167
|
* @group LearnCard Methods
|
5106
5168
|
*/
|
5107
|
-
export declare type
|
5169
|
+
export declare type ResolveCredential = (URI?: string | "" | `lc:ceramic:${string}`) => Promise<VC | undefined>;
|
5108
5170
|
/**
|
5109
5171
|
* Returns an example credential, optionally allowing a subject's did to be passed in
|
5110
5172
|
*
|
@@ -5238,6 +5300,7 @@ export declare type AllLearnCardMethods = {
|
|
5238
5300
|
removeCredential: RemoveCredential;
|
5239
5301
|
resolveDid: ResolveDid;
|
5240
5302
|
readFromCeramic: ReadFromCeramic;
|
5303
|
+
resolveCredential: ResolveCredential;
|
5241
5304
|
getTestVc: GetTestVc;
|
5242
5305
|
getTestVp: GetTestVp;
|
5243
5306
|
getEthereumAddress: GetEthereumAddress;
|
@@ -5256,10 +5319,11 @@ export declare type AllLearnCardMethods = {
|
|
5256
5319
|
storeCredentialViaChapiDidAuth: StoreCredentialViaChapiDidAuth;
|
5257
5320
|
};
|
5258
5321
|
/** @group Universal Wallets */
|
5259
|
-
export declare type LearnCardRawWallet = Wallet<"DIDKit" | "DID Key" | "VC" | "VC Templates" | "IDX" | "Expiration" | "Ethereum" | "Vpqr" | "CHAPI", MergeObjects<[
|
5322
|
+
export declare type LearnCardRawWallet = Wallet<"DIDKit" | "DID Key" | "VC" | "VC Templates" | "VC Resolution" | "IDX" | "Expiration" | "Ethereum" | "Vpqr" | "CHAPI", MergeObjects<[
|
5260
5323
|
DidKeyPluginMethods<DidMethod>,
|
5261
5324
|
VCPluginMethods,
|
5262
5325
|
VCTemplatePluginMethods,
|
5326
|
+
VCResolutionPluginMethods,
|
5263
5327
|
IDXPluginMethods,
|
5264
5328
|
EthereumPluginMethods,
|
5265
5329
|
VpqrPluginMethods,
|
@@ -5352,41 +5416,6 @@ export declare function initLearnCard(config: WalletFromKey["args"]): Promise<Wa
|
|
5352
5416
|
export declare function initLearnCard(config: WalletFromVcApi["args"]): Promise<WalletFromVcApi["returnValue"]>;
|
5353
5417
|
/** @group Universal Wallets */
|
5354
5418
|
export declare const generateWallet: <PluginNames extends string, PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>>(contents?: any[], _wallet?: Partial<Wallet<any, PluginMethods>>) => Promise<Wallet<PluginNames, PluginMethods>>;
|
5355
|
-
/**
|
5356
|
-
*
|
5357
|
-
* @group Plugins
|
5358
|
-
*/
|
5359
|
-
export declare const getDidKitPlugin: (input?: InitInput | Promise<InitInput>) => Promise<Plugin<"DIDKit", DidkitPluginMethods>>;
|
5360
|
-
/**
|
5361
|
-
*
|
5362
|
-
* @group Plugins
|
5363
|
-
*/
|
5364
|
-
export declare const getDidKeyPlugin: <DidMethod extends string>(wallet: Wallet<string, DependentMethods<DidMethod>>, key: string) => Promise<Plugin<"DID Key", DidKeyPluginMethods<DidMethod>, Record<never, never>>>;
|
5365
|
-
/**
|
5366
|
-
* @group Plugins
|
5367
|
-
*/
|
5368
|
-
export declare const getVCPlugin: (wallet: Wallet<string, VCPluginDependentMethods>) => Plugin<"VC", VCPluginMethods, VCPluginDependentMethods>;
|
5369
|
-
/**
|
5370
|
-
* @group Plugins
|
5371
|
-
*/
|
5372
|
-
export declare const getIDXPlugin: (wallet: Wallet<any, {
|
5373
|
-
getKey: () => string;
|
5374
|
-
}>, { modelData, credentialAlias, ceramicEndpoint, defaultContentFamily }: CeramicIDXArgs) => Promise<Plugin<"IDX", IDXPluginMethods>>;
|
5375
|
-
/**
|
5376
|
-
* @group Plugins
|
5377
|
-
*/
|
5378
|
-
export declare const ExpirationPlugin: (wallet: Wallet<any, VerifyExtension>) => Plugin<"Expiration", VerifyExtension>;
|
5379
|
-
/**
|
5380
|
-
* @group Plugins
|
5381
|
-
*/
|
5382
|
-
export declare const getEthereumPlugin: (initWallet: Wallet<string, {
|
5383
|
-
getSubjectDid: (type: DidMethod) => string;
|
5384
|
-
getSubjectKeypair: (type?: Algorithm) => JWK;
|
5385
|
-
}>, config: EthereumConfig) => Plugin<"Ethereum", EthereumPluginMethods>;
|
5386
|
-
/**
|
5387
|
-
* @group Plugins
|
5388
|
-
*/
|
5389
|
-
export declare const getVpqrPlugin: (wallet: Wallet<string, VpqrPluginDependentMethods>) => Plugin<"Vpqr", VpqrPluginMethods>;
|
5390
5419
|
export * from "@wallet/init";
|
5391
5420
|
export { Wallet, Plugin } from "types/wallet";
|
5392
5421
|
export * from "types/LearnCard";
|
package/dist/core.esm.js
CHANGED
@@ -42367,13 +42367,7 @@ var CredentialInfoValidator = mod.object({
|
|
42367
42367
|
issuee: ProfileValidator.optional(),
|
42368
42368
|
credentialSubject: CredentialSubjectValidator.optional()
|
42369
42369
|
});
|
42370
|
-
var
|
42371
|
-
var StorageTypeEnum = StorageTypeValidator.enum;
|
42372
|
-
var IDXCredentialValidator = mod.object({
|
42373
|
-
id: mod.string(),
|
42374
|
-
title: mod.string(),
|
42375
|
-
storageType: StorageTypeValidator.optional()
|
42376
|
-
}).catchall(mod.any());
|
42370
|
+
var IDXCredentialValidator = mod.object({ id: mod.string(), uri: mod.string() }).catchall(mod.any());
|
42377
42371
|
var JWKValidator = mod.object({
|
42378
42372
|
kty: mod.string(),
|
42379
42373
|
crv: mod.string(),
|
@@ -56701,8 +56695,16 @@ var CeramicClient = class {
|
|
56701
56695
|
};
|
56702
56696
|
__name(CeramicClient, "CeramicClient");
|
56703
56697
|
|
56698
|
+
// src/wallet/plugins/idx/helpers.ts
|
56699
|
+
var streamIdToCeramicURI = /* @__PURE__ */ __name((id) => `lc:ceramic:${id}`, "streamIdToCeramicURI");
|
56700
|
+
|
56704
56701
|
// src/wallet/plugins/idx/types.ts
|
56702
|
+
var CeramicURIValidator = mod.string().refine((string2) => string2.split(":").length === 3 && string2.split(":")[0] === "lc", "URI must be of the form lc:${storage}:${url}").refine((string2) => string2.split(":")[1] === "ceramic", "URI must use storage type ceramic (i.e. must be lc:ceramic:${streamID})");
|
56705
56703
|
var CredentialsListValidator = mod.object({ credentials: IDXCredentialValidator.array() }).strict();
|
56704
|
+
var BackwardsCompatIDXCredentialValidator = mod.object({ id: mod.string(), title: mod.string(), storageType: mod.literal("ceramic").optional() }).catchall(mod.any());
|
56705
|
+
var BackwardsCompatCredentialsListValidator = mod.object({
|
56706
|
+
credentials: IDXCredentialValidator.or(BackwardsCompatIDXCredentialValidator).array()
|
56707
|
+
}).strict();
|
56706
56708
|
|
56707
56709
|
// src/wallet/plugins/idx/idx.ts
|
56708
56710
|
var getCeramicClientFromWalletSuite = /* @__PURE__ */ __name((wallet, ceramicEndpoint) => __async(void 0, null, function* () {
|
@@ -56727,38 +56729,32 @@ var getIDXPlugin = /* @__PURE__ */ __name((_0, _1) => __async(void 0, [_0, _1],
|
|
56727
56729
|
const validationResult = yield CredentialsListValidator.spa(list);
|
56728
56730
|
if (validationResult.success)
|
56729
56731
|
return validationResult.data;
|
56732
|
+
const backwardsCompatValidationResult = yield BackwardsCompatCredentialsListValidator.spa(list);
|
56733
|
+
if (backwardsCompatValidationResult.success) {
|
56734
|
+
const oldCreds = backwardsCompatValidationResult.data.credentials;
|
56735
|
+
const newCreds = oldCreds.map((cred) => {
|
56736
|
+
if ("uri" in cred)
|
56737
|
+
return cred;
|
56738
|
+
const _a = cred, { title, id, storageType } = _a, rest = __objRest(_a, ["title", "id", "storageType"]);
|
56739
|
+
return __spreadProps(__spreadValues({}, rest), {
|
56740
|
+
id: title,
|
56741
|
+
uri: `lc:ceramic:${id.replace("ceramic://", "")}`
|
56742
|
+
});
|
56743
|
+
});
|
56744
|
+
const credentialsList = { credentials: newCreds };
|
56745
|
+
yield dataStore.set(credentialAlias, credentialsList);
|
56746
|
+
return credentialsList;
|
56747
|
+
}
|
56730
56748
|
console.error(validationResult.error);
|
56731
56749
|
throw new Error("Invalid credentials list stored in IDX");
|
56732
56750
|
}), "getCredentialsListFromIdx");
|
56733
|
-
const
|
56734
|
-
|
56735
|
-
|
56736
|
-
throw new Error("record is required");
|
56737
|
-
if (!record.id)
|
56738
|
-
throw Error("No streamId provided");
|
56739
|
-
if (record.id.indexOf("ceramic://") === -1)
|
56740
|
-
record.id = "ceramic://" + record.id;
|
56741
|
-
if (!alias)
|
56742
|
-
alias = credentialAlias;
|
56743
|
-
const existing = yield getCredentialsListFromIdx(alias);
|
56744
|
-
const indexOfExistingCredential = existing.credentials.findIndex((credential) => {
|
56745
|
-
return credential.title === record.title;
|
56746
|
-
});
|
56747
|
-
if (indexOfExistingCredential > -1) {
|
56748
|
-
existing.credentials[indexOfExistingCredential] = __spreadValues({
|
56749
|
-
storageType: StorageTypeEnum.ceramic
|
56750
|
-
}, record);
|
56751
|
-
} else
|
56752
|
-
existing.credentials.push(__spreadValues({ storageType: StorageTypeEnum.ceramic }, record));
|
56753
|
-
return dataStore.set(alias, existing);
|
56754
|
-
}), "addCredentialStreamIdToIdx");
|
56755
|
-
const removeCredentialFromIdx = /* @__PURE__ */ __name((title, alias) => __async(void 0, null, function* () {
|
56756
|
-
if (!title)
|
56757
|
-
throw new Error("record is required");
|
56751
|
+
const removeCredentialFromIdx = /* @__PURE__ */ __name((id, alias) => __async(void 0, null, function* () {
|
56752
|
+
if (!id)
|
56753
|
+
throw new Error("Must provide id to remove");
|
56758
56754
|
if (!alias)
|
56759
56755
|
alias = credentialAlias;
|
56760
56756
|
const existing = yield getCredentialsListFromIdx(alias);
|
56761
|
-
existing.credentials = existing.credentials.filter((credential) => credential.
|
56757
|
+
existing.credentials = existing.credentials.filter((credential) => credential.id !== id);
|
56762
56758
|
return dataStore.set(alias, existing);
|
56763
56759
|
}), "removeCredentialFromIdx");
|
56764
56760
|
const publishContentToCeramic = /* @__PURE__ */ __name((_02, ..._12) => __async(void 0, [_02, ..._12], function* (content, metadata = {}, options = {}) {
|
@@ -56783,30 +56779,56 @@ var getIDXPlugin = /* @__PURE__ */ __name((_0, _1) => __async(void 0, [_0, _1],
|
|
56783
56779
|
return getCredentialsListFromIdx(alias);
|
56784
56780
|
}),
|
56785
56781
|
publishContentToCeramic: (_wallet, cred) => __async(void 0, null, function* () {
|
56786
|
-
return publishContentToCeramic(cred);
|
56782
|
+
return streamIdToCeramicURI(yield publishContentToCeramic(cred));
|
56787
56783
|
}),
|
56788
56784
|
readContentFromCeramic: (_wallet, streamId) => __async(void 0, null, function* () {
|
56789
56785
|
return readContentFromCeramic(streamId);
|
56790
56786
|
}),
|
56791
|
-
getVerifiableCredentialFromIdx: (_wallet,
|
56787
|
+
getVerifiableCredentialFromIdx: (_wallet, id) => __async(void 0, null, function* () {
|
56792
56788
|
var _a;
|
56793
56789
|
const credentialList = yield getCredentialsListFromIdx();
|
56794
|
-
const credential = (_a = credentialList == null ? void 0 : credentialList.credentials) == null ? void 0 : _a.find((cred) => (cred == null ? void 0 : cred.
|
56795
|
-
return credential
|
56790
|
+
const credential = (_a = credentialList == null ? void 0 : credentialList.credentials) == null ? void 0 : _a.find((cred) => (cred == null ? void 0 : cred.id) === id);
|
56791
|
+
return (credential == null ? void 0 : credential.uri) ? _wallet.pluginMethods.resolveCredential(credential.uri) : void 0;
|
56796
56792
|
}),
|
56797
|
-
getVerifiableCredentialsFromIdx: () => __async(void 0, null, function* () {
|
56793
|
+
getVerifiableCredentialsFromIdx: (_wallet) => __async(void 0, null, function* () {
|
56798
56794
|
var _a, _b;
|
56799
56795
|
const credentialList = yield getCredentialsListFromIdx();
|
56800
|
-
const
|
56801
|
-
return Promise.all(
|
56802
|
-
return
|
56803
|
-
})));
|
56796
|
+
const uris = (_b = (_a = credentialList == null ? void 0 : credentialList.credentials) == null ? void 0 : _a.map((credential) => credential == null ? void 0 : credential.uri)) != null ? _b : [];
|
56797
|
+
return (yield Promise.all(uris.map((uri) => __async(void 0, null, function* () {
|
56798
|
+
return _wallet.pluginMethods.resolveCredential(uri);
|
56799
|
+
})))).filter((vc) => !!vc);
|
56804
56800
|
}),
|
56805
56801
|
addVerifiableCredentialInIdx: (_wallet, idxCredential) => __async(void 0, null, function* () {
|
56806
|
-
|
56802
|
+
const record = IDXCredentialValidator.parse(idxCredential);
|
56803
|
+
if (!record)
|
56804
|
+
throw new Error("record is required");
|
56805
|
+
if (!record.uri)
|
56806
|
+
throw Error("No URI provided");
|
56807
|
+
yield _wallet.pluginMethods.resolveCredential(record.uri);
|
56808
|
+
const existing = yield getCredentialsListFromIdx(credentialAlias);
|
56809
|
+
const indexOfExistingCredential = existing.credentials.findIndex((credential) => {
|
56810
|
+
return credential.id === record.id;
|
56811
|
+
});
|
56812
|
+
if (indexOfExistingCredential > -1) {
|
56813
|
+
existing.credentials[indexOfExistingCredential] = record;
|
56814
|
+
} else
|
56815
|
+
existing.credentials.push(record);
|
56816
|
+
return streamIdToCeramicURI(yield dataStore.set(credentialAlias, existing));
|
56817
|
+
}),
|
56818
|
+
removeVerifiableCredentialInIdx: (_wallet, id) => __async(void 0, null, function* () {
|
56819
|
+
return removeCredentialFromIdx(id);
|
56807
56820
|
}),
|
56808
|
-
|
56809
|
-
|
56821
|
+
resolveCredential: (_wallet, uri) => __async(void 0, null, function* () {
|
56822
|
+
if (!uri)
|
56823
|
+
return void 0;
|
56824
|
+
if (uri.startsWith("ceramic://")) {
|
56825
|
+
return VCValidator.parseAsync(yield readContentFromCeramic(uri));
|
56826
|
+
}
|
56827
|
+
const verificationResult = yield CeramicURIValidator.spa(uri);
|
56828
|
+
if (!verificationResult.success)
|
56829
|
+
return wallet.pluginMethods.resolveCredential(uri);
|
56830
|
+
const streamId = verificationResult.data.split(":")[2];
|
56831
|
+
return VCValidator.parseAsync(yield readContentFromCeramic(streamId));
|
56810
56832
|
})
|
56811
56833
|
}
|
56812
56834
|
};
|
@@ -60297,6 +60319,15 @@ var defaultEthereumArgs = {
|
|
60297
60319
|
network: "mainnet"
|
60298
60320
|
};
|
60299
60321
|
|
60322
|
+
// src/wallet/plugins/vc-resolution/index.ts
|
60323
|
+
var VCResolutionPlugin = {
|
60324
|
+
pluginMethods: {
|
60325
|
+
resolveCredential: (_wallet, uri) => __async(void 0, null, function* () {
|
60326
|
+
throw new Error(`No Credential Resolution Plugins found that can resolve ${uri}`);
|
60327
|
+
})
|
60328
|
+
}
|
60329
|
+
};
|
60330
|
+
|
60300
60331
|
// src/wallet/initializers/walletFromKey.ts
|
60301
60332
|
var walletFromKey = /* @__PURE__ */ __name((_0, ..._1) => __async(void 0, [_0, ..._1], function* (key2, {
|
60302
60333
|
ceramicIdx = defaultCeramicIDXArgs,
|
@@ -60308,7 +60339,8 @@ var walletFromKey = /* @__PURE__ */ __name((_0, ..._1) => __async(void 0, [_0, .
|
|
60308
60339
|
const didkeyWallet = yield didkitWallet.addPlugin(yield getDidKeyPlugin(didkitWallet, key2));
|
60309
60340
|
const didkeyAndVCWallet = yield didkeyWallet.addPlugin(getVCPlugin(didkeyWallet));
|
60310
60341
|
const templateWallet = yield didkeyAndVCWallet.addPlugin(getVCTemplatesPlugin());
|
60311
|
-
const
|
60342
|
+
const resolutionWallet = yield templateWallet.addPlugin(VCResolutionPlugin);
|
60343
|
+
const idxWallet = yield resolutionWallet.addPlugin(yield getIDXPlugin(resolutionWallet, ceramicIdx));
|
60312
60344
|
const expirationWallet = yield idxWallet.addPlugin(ExpirationPlugin(idxWallet));
|
60313
60345
|
const ethWallet = yield expirationWallet.addPlugin(getEthereumPlugin(expirationWallet, ethereumConfig));
|
60314
60346
|
const vpqrWallet = yield ethWallet.addPlugin(getVpqrPlugin(ethWallet));
|
@@ -60337,6 +60369,7 @@ var walletFromKey = /* @__PURE__ */ __name((_0, ..._1) => __async(void 0, [_0, .
|
|
60337
60369
|
}),
|
60338
60370
|
resolveDid: wallet.pluginMethods.resolveDid,
|
60339
60371
|
readFromCeramic: wallet.pluginMethods.readContentFromCeramic,
|
60372
|
+
resolveCredential: wallet.pluginMethods.resolveCredential,
|
60340
60373
|
getTestVc: wallet.pluginMethods.getTestVc,
|
60341
60374
|
getTestVp: wallet.pluginMethods.getTestVp,
|
60342
60375
|
vpFromQrCode: wallet.pluginMethods.vpFromQrCode,
|
@@ -60488,6 +60521,9 @@ function initLearnCard() {
|
|
60488
60521
|
}
|
60489
60522
|
__name(initLearnCard, "initLearnCard");
|
60490
60523
|
export {
|
60524
|
+
BackwardsCompatCredentialsListValidator,
|
60525
|
+
BackwardsCompatIDXCredentialValidator,
|
60526
|
+
CeramicURIValidator,
|
60491
60527
|
CredentialsListValidator,
|
60492
60528
|
ExpirationPlugin,
|
60493
60529
|
emptyWallet,
|