@learncard/core 1.1.5 → 1.2.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 -48
- package/dist/core.cjs.development.js.map +3 -3
- package/dist/core.cjs.production.min.js +109 -109
- package/dist/core.cjs.production.min.js.map +3 -3
- package/dist/core.d.ts +22 -7
- package/dist/core.esm.js +82 -48
- package/dist/core.esm.js.map +3 -3
- package/package.json +2 -2
package/dist/core.d.ts
CHANGED
@@ -2884,6 +2884,20 @@ declare const VPValidator: z.ZodObject<z.extendShape<{
|
|
2884
2884
|
}[];
|
2885
2885
|
}>;
|
2886
2886
|
export declare type VP = z.infer<typeof VPValidator>;
|
2887
|
+
declare const VerificationCheckValidator: z.ZodObject<{
|
2888
|
+
checks: z.ZodArray<z.ZodString, "many">;
|
2889
|
+
warnings: z.ZodArray<z.ZodString, "many">;
|
2890
|
+
errors: z.ZodArray<z.ZodString, "many">;
|
2891
|
+
}, "strip", z.ZodTypeAny, {
|
2892
|
+
checks: string[];
|
2893
|
+
warnings: string[];
|
2894
|
+
errors: string[];
|
2895
|
+
}, {
|
2896
|
+
checks: string[];
|
2897
|
+
warnings: string[];
|
2898
|
+
errors: string[];
|
2899
|
+
}>;
|
2900
|
+
export declare type VerificationCheck = z.infer<typeof VerificationCheckValidator>;
|
2887
2901
|
declare const VerificationItemValidator: z.ZodObject<{
|
2888
2902
|
check: z.ZodString;
|
2889
2903
|
status: z.ZodEnum<[
|
@@ -2905,6 +2919,12 @@ declare const VerificationItemValidator: z.ZodObject<{
|
|
2905
2919
|
check: string;
|
2906
2920
|
}>;
|
2907
2921
|
export declare type VerificationItem = z.infer<typeof VerificationItemValidator>;
|
2922
|
+
export declare type KeyPair = {
|
2923
|
+
kty: string;
|
2924
|
+
crv: string;
|
2925
|
+
x: string;
|
2926
|
+
d: string;
|
2927
|
+
};
|
2908
2928
|
export declare type DidKeyPluginMethods = {
|
2909
2929
|
getSubjectDid: () => string;
|
2910
2930
|
getSubjectKeypair: () => {
|
@@ -2934,11 +2954,6 @@ export declare type IDXCredential = {
|
|
2934
2954
|
export declare type CredentialsList = {
|
2935
2955
|
credentials: IDXCredential[];
|
2936
2956
|
};
|
2937
|
-
export declare type VerificationCheck = {
|
2938
|
-
checks: string[];
|
2939
|
-
warnings: string[];
|
2940
|
-
errors: string[];
|
2941
|
-
};
|
2942
2957
|
export declare type VCPluginMethods = {
|
2943
2958
|
issueCredential: (credential: UnsignedVC) => Promise<VC>;
|
2944
2959
|
verifyCredential: (credential: VC) => Promise<VerificationCheck>;
|
@@ -2946,7 +2961,7 @@ export declare type VCPluginMethods = {
|
|
2946
2961
|
verifyPresentation: (presentation: VP) => Promise<VerificationCheck>;
|
2947
2962
|
getTestVc: (subject?: string) => UnsignedVC;
|
2948
2963
|
getSubjectDid: () => string;
|
2949
|
-
getSubjectKeypair: () =>
|
2964
|
+
getSubjectKeypair: () => KeyPair;
|
2950
2965
|
};
|
2951
2966
|
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
2952
2967
|
export declare type Plugin<Name extends string, PublicMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = {
|
@@ -2976,7 +2991,7 @@ export declare type UnlockedWallet<PluginNames extends string = "", PluginMethod
|
|
2976
2991
|
addPlugin: <Name extends string, Methods extends Record<string, (...args: any[]) => any> = Record<never, never>>(plugin: Plugin<Name, Methods>) => Promise<UnlockedWallet<"" extends PluginNames ? Name : PluginNames | Name, Record<never, never> extends PluginMethods ? Methods : PluginMethods & Methods>>;
|
2977
2992
|
};
|
2978
2993
|
export declare type Wallet<PluginNames extends string = "", PluginMethods extends Record<string, (...args: any[]) => any> = Record<never, never>> = LockedWallet<PluginNames, PluginMethods> | UnlockedWallet<PluginNames, PluginMethods>;
|
2979
|
-
export declare type LearnCardRawWallet = UnlockedWallet<"DID Key" | "VC" | "IDX" | "Expiration", DidKeyPluginMethods & VCPluginMethods & IDXPluginMethods>;
|
2994
|
+
export declare type LearnCardRawWallet = UnlockedWallet<"DIDKit" | "DID Key" | "VC" | "IDX" | "Expiration", DidKeyPluginMethods & VCPluginMethods & IDXPluginMethods>;
|
2980
2995
|
export declare type LearnCardWallet = {
|
2981
2996
|
/** Raw IoE wallet instance. You shouldn't need to drop down to this level! */
|
2982
2997
|
_wallet: LearnCardRawWallet;
|
package/dist/core.esm.js
CHANGED
@@ -43226,15 +43226,15 @@ var getIDXPlugin = /* @__PURE__ */ __name((_0, _1) => __async(void 0, [_0, _1],
|
|
43226
43226
|
|
43227
43227
|
// src/wallet/plugins/didkey/index.ts
|
43228
43228
|
var isHex = /* @__PURE__ */ __name((str) => /^[0-9a-f]+$/i.test(str), "isHex");
|
43229
|
-
var getDidKeyPlugin = /* @__PURE__ */ __name((key2) => __async(void 0, null, function* () {
|
43229
|
+
var getDidKeyPlugin = /* @__PURE__ */ __name((wallet, key2) => __async(void 0, null, function* () {
|
43230
43230
|
if (key2.length === 0)
|
43231
43231
|
throw new Error("Please don't use an empty string for a key!");
|
43232
43232
|
if (!isHex(key2))
|
43233
43233
|
throw new Error("Key must be a hexadecimal string!");
|
43234
43234
|
if (key2.length > 64)
|
43235
43235
|
throw new Error("Key must be less than 64 characters");
|
43236
|
-
const keypair =
|
43237
|
-
const did =
|
43236
|
+
const keypair = wallet.pluginMethods.generateEd25519KeyFromBytes(toUint8Array(key2.padStart(64, "0")));
|
43237
|
+
const did = wallet.pluginMethods.keyToDid("key", keypair);
|
43238
43238
|
return {
|
43239
43239
|
pluginMethods: {
|
43240
43240
|
getSubjectDid: () => did,
|
@@ -43260,63 +43260,65 @@ var ExpirationPlugin = /* @__PURE__ */ __name((wallet) => ({
|
|
43260
43260
|
}), "ExpirationPlugin");
|
43261
43261
|
|
43262
43262
|
// src/wallet/plugins/vc/issueCredential.ts
|
43263
|
-
var issueCredential2 = /* @__PURE__ */ __name((
|
43264
|
-
|
43265
|
-
|
43266
|
-
|
43267
|
-
|
43268
|
-
|
43269
|
-
|
43270
|
-
|
43263
|
+
var issueCredential2 = /* @__PURE__ */ __name((initWallet) => {
|
43264
|
+
return (wallet, credential) => __async(void 0, null, function* () {
|
43265
|
+
const kp = wallet.pluginMethods.getSubjectKeypair();
|
43266
|
+
if (!kp)
|
43267
|
+
throw new Error("Cannot issue credential: Could not get subject keypair");
|
43268
|
+
const options = {
|
43269
|
+
verificationMethod: yield initWallet.pluginMethods.keyToVerificationMethod("key", kp),
|
43270
|
+
proofPurpose: "assertionMethod"
|
43271
|
+
};
|
43272
|
+
return initWallet.pluginMethods.issueCredential(credential, options, kp);
|
43271
43273
|
});
|
43272
|
-
|
43273
|
-
}), "issueCredential");
|
43274
|
+
}, "issueCredential");
|
43274
43275
|
|
43275
43276
|
// src/wallet/plugins/vc/verifyCredential.ts
|
43276
|
-
var verifyCredential2 = /* @__PURE__ */ __name((
|
43277
|
-
return
|
43278
|
-
|
43277
|
+
var verifyCredential2 = /* @__PURE__ */ __name((initWallet) => {
|
43278
|
+
return (_wallet, credential) => __async(void 0, null, function* () {
|
43279
|
+
return initWallet.pluginMethods.verifyCredential(credential);
|
43280
|
+
});
|
43281
|
+
}, "verifyCredential");
|
43279
43282
|
|
43280
43283
|
// src/wallet/plugins/vc/issuePresentation.ts
|
43281
|
-
var issuePresentation2 = /* @__PURE__ */ __name((
|
43282
|
-
|
43283
|
-
|
43284
|
-
|
43285
|
-
|
43286
|
-
|
43287
|
-
|
43288
|
-
|
43289
|
-
|
43290
|
-
|
43291
|
-
|
43292
|
-
|
43293
|
-
|
43294
|
-
|
43295
|
-
|
43296
|
-
|
43297
|
-
|
43298
|
-
|
43284
|
+
var issuePresentation2 = /* @__PURE__ */ __name((initWallet) => {
|
43285
|
+
return (wallet, credential) => __async(void 0, null, function* () {
|
43286
|
+
const did = wallet.pluginMethods.getSubjectDid();
|
43287
|
+
if (!did)
|
43288
|
+
throw new Error("Cannot create presentation: No holder key found");
|
43289
|
+
const holder = did;
|
43290
|
+
const kp = wallet.pluginMethods.getSubjectKeypair();
|
43291
|
+
if (!kp)
|
43292
|
+
throw new Error("Cannot issue credential: Could not get subject keypair");
|
43293
|
+
const options = {
|
43294
|
+
verificationMethod: yield initWallet.pluginMethods.keyToVerificationMethod("key", kp),
|
43295
|
+
proofPurpose: "assertionMethod"
|
43296
|
+
};
|
43297
|
+
const presentation = {
|
43298
|
+
"@context": ["https://www.w3.org/2018/credentials/v1"],
|
43299
|
+
type: ["VerifiablePresentation"],
|
43300
|
+
holder,
|
43301
|
+
verifiableCredential: credential
|
43302
|
+
};
|
43303
|
+
return initWallet.pluginMethods.issuePresentation(presentation, options, kp);
|
43299
43304
|
});
|
43300
|
-
|
43301
|
-
}), "issuePresentation");
|
43305
|
+
}, "issuePresentation");
|
43302
43306
|
|
43303
43307
|
// src/wallet/plugins/vc/verifyPresentation.ts
|
43304
|
-
var verifyPresentation2 = /* @__PURE__ */ __name((
|
43305
|
-
return
|
43306
|
-
|
43308
|
+
var verifyPresentation2 = /* @__PURE__ */ __name((initWallet) => {
|
43309
|
+
return (_wallet, presentation) => __async(void 0, null, function* () {
|
43310
|
+
return initWallet.pluginMethods.verifyPresentation(presentation);
|
43311
|
+
});
|
43312
|
+
}, "verifyPresentation");
|
43307
43313
|
|
43308
43314
|
// src/wallet/plugins/vc/vc.ts
|
43309
43315
|
var getVCPlugin = /* @__PURE__ */ __name((wallet) => __async(void 0, null, function* () {
|
43310
43316
|
return {
|
43311
43317
|
pluginMethods: __spreadProps(__spreadValues({}, wallet.pluginMethods), {
|
43312
|
-
issueCredential: issueCredential2,
|
43313
|
-
verifyCredential: (
|
43314
|
-
|
43315
|
-
|
43316
|
-
issuePresentation: issuePresentation2,
|
43317
|
-
verifyPresentation: (_wallet, presentation) => __async(void 0, null, function* () {
|
43318
|
-
return verifyPresentation2(presentation);
|
43319
|
-
}),
|
43318
|
+
issueCredential: issueCredential2(wallet),
|
43319
|
+
verifyCredential: verifyCredential2(wallet),
|
43320
|
+
issuePresentation: issuePresentation2(wallet),
|
43321
|
+
verifyPresentation: verifyPresentation2(wallet),
|
43320
43322
|
getTestVc: (_wallet, subject = "did:example:d23dd687a7dc6787646f2eb98d0") => {
|
43321
43323
|
const did = _wallet.pluginMethods.getSubjectDid();
|
43322
43324
|
return {
|
@@ -46361,6 +46363,11 @@ var UnsignedAchievementCredentialValidator = UnsignedVCValidator.extend({
|
|
46361
46363
|
var AchievementCredentialValidator = UnsignedAchievementCredentialValidator.extend({
|
46362
46364
|
proof: ProofValidator.or(ProofValidator.array())
|
46363
46365
|
});
|
46366
|
+
var VerificationCheckValidator = mod.object({
|
46367
|
+
checks: mod.string().array(),
|
46368
|
+
warnings: mod.string().array(),
|
46369
|
+
errors: mod.string().array()
|
46370
|
+
});
|
46364
46371
|
var VerificationStatusValidator = mod.enum(["Success", "Failed", "Error"]);
|
46365
46372
|
var VerificationStatusEnum = VerificationStatusValidator.enum;
|
46366
46373
|
var VerificationItemValidator = mod.object({
|
@@ -48002,6 +48009,32 @@ var defaultCeramicIDXArgs = {
|
|
48002
48009
|
defaultContentFamily: "SuperSkills"
|
48003
48010
|
};
|
48004
48011
|
|
48012
|
+
// src/wallet/plugins/didkit/index.ts
|
48013
|
+
var getDidKitPlugin = /* @__PURE__ */ __name((input) => __async(void 0, null, function* () {
|
48014
|
+
yield didkit_default(input);
|
48015
|
+
return {
|
48016
|
+
pluginMethods: {
|
48017
|
+
generateEd25519KeyFromBytes: (_wallet, bytes) => JSON.parse(generateEd25519KeyFromBytes(bytes)),
|
48018
|
+
keyToDid: (_wallet, type, keypair) => keyToDID(type, JSON.stringify(keypair)),
|
48019
|
+
keyToVerificationMethod: (_wallet, type, keypair) => __async(void 0, null, function* () {
|
48020
|
+
return keyToVerificationMethod(type, JSON.stringify(keypair));
|
48021
|
+
}),
|
48022
|
+
issueCredential: (_wallet, credential, options, keypair) => __async(void 0, null, function* () {
|
48023
|
+
return JSON.parse(yield issueCredential(JSON.stringify(credential), JSON.stringify(options), JSON.stringify(keypair)));
|
48024
|
+
}),
|
48025
|
+
verifyCredential: (_wallet, credential) => __async(void 0, null, function* () {
|
48026
|
+
return JSON.parse(yield verifyCredential(JSON.stringify(credential), "{}"));
|
48027
|
+
}),
|
48028
|
+
issuePresentation: (presentation, options, keypair) => __async(void 0, null, function* () {
|
48029
|
+
return issuePresentation(JSON.stringify(presentation), JSON.stringify(options), JSON.stringify(keypair));
|
48030
|
+
}),
|
48031
|
+
verifyPresentation: (_wallet, presentation) => __async(void 0, null, function* () {
|
48032
|
+
return JSON.parse(yield verifyPresentation(JSON.stringify(presentation), "{}"));
|
48033
|
+
})
|
48034
|
+
}
|
48035
|
+
};
|
48036
|
+
}), "getDidKitPlugin");
|
48037
|
+
|
48005
48038
|
// src/wallet/init.ts
|
48006
48039
|
var walletFromKey = /* @__PURE__ */ __name((_0, ..._1) => __async(void 0, [_0, ..._1], function* (key2, {
|
48007
48040
|
ceramicIdx = defaultCeramicIDXArgs,
|
@@ -48009,7 +48042,8 @@ var walletFromKey = /* @__PURE__ */ __name((_0, ..._1) => __async(void 0, [_0, .
|
|
48009
48042
|
defaultContents = []
|
48010
48043
|
} = {}) {
|
48011
48044
|
yield didkit_default(didkit);
|
48012
|
-
const
|
48045
|
+
const didkitWallet = yield (yield generateWallet(defaultContents)).addPlugin(yield getDidKitPlugin(didkit));
|
48046
|
+
const didkeyWallet = yield didkitWallet.addPlugin(yield getDidKeyPlugin(didkitWallet, key2));
|
48013
48047
|
const didkeyAndVCWallet = yield didkeyWallet.addPlugin(yield getVCPlugin(didkeyWallet));
|
48014
48048
|
const idxWallet = yield didkeyAndVCWallet.addPlugin(yield getIDXPlugin(didkeyAndVCWallet, ceramicIdx));
|
48015
48049
|
const wallet = yield idxWallet.addPlugin(ExpirationPlugin(idxWallet));
|