passkey-kit 0.7.12 → 0.7.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "passkey-kit",
3
- "version": "0.7.12",
3
+ "version": "0.7.14",
4
4
  "description": "A helper library for creating and using passkey accounts on the Stellar blockchain.",
5
5
  "author": "Tyler van der Hoeven",
6
6
  "license": "MIT",
@@ -14,8 +14,8 @@
14
14
  "base64url": "^3.0.1",
15
15
  "buffer": "^6.0.3",
16
16
  "passkey-factory-sdk": "0.3.4",
17
- "sac-sdk": "0.1.1",
18
- "passkey-kit-sdk": "0.3.4"
17
+ "passkey-kit-sdk": "0.3.4",
18
+ "sac-sdk": "0.1.1"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@simplewebauthn/types": "^10.0.0",
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { PasskeyServer } from "./server"
2
- import { PasskeyKit, SignerStore, SignerKey, type SignerLimits } from "./kit"
2
+ import { PasskeyKit, PasskeyClient, FactoryClient, SignerStore, SignerKey, type SignerLimits } from "./kit"
3
3
  import { SACClient } from "./sac"
4
4
 
5
- export { PasskeyServer, PasskeyKit, SACClient, SignerStore, SignerKey, type SignerLimits }
5
+ export { PasskeyKit, PasskeyClient, FactoryClient, PasskeyServer, SACClient, SignerStore, SignerKey, type SignerLimits }
package/src/kit.ts CHANGED
@@ -8,21 +8,22 @@ import { Buffer } from 'buffer'
8
8
  import { PasskeyBase } from './base'
9
9
  import { AssembledTransaction, DEFAULT_TIMEOUT } from '@stellar/stellar-sdk/contract'
10
10
 
11
- // TODO ensure we're outputting a built transaction that's actually useful in the case you don't intend to use Launchtube
11
+ export { Client as PasskeyClient } from 'passkey-kit-sdk'
12
+ export { Client as FactoryClient } from 'passkey-factory-sdk'
12
13
 
13
14
  export class SignerKey {
14
- private constructor(public type: "Policy" | "Ed25519" | "Secp256r1", public value: string | Buffer) { }
15
+ private constructor(public key: "Policy" | "Ed25519" | "Secp256r1", public value: string) { }
15
16
 
16
- static Policy(value: string): SignerKey {
17
- return new SignerKey("Policy", value);
17
+ static Policy(policy: string): SignerKey {
18
+ return new SignerKey("Policy", policy);
18
19
  }
19
20
 
20
- static Ed25519(value: Buffer): SignerKey {
21
- return new SignerKey("Ed25519", value);
21
+ static Ed25519(publicKey: string): SignerKey {
22
+ return new SignerKey("Ed25519", publicKey);
22
23
  }
23
24
 
24
- static Secp256r1(value: Buffer): SignerKey {
25
- return new SignerKey("Secp256r1", value);
25
+ static Secp256r1(id: string): SignerKey {
26
+ return new SignerKey("Secp256r1", id);
26
27
  }
27
28
  }
28
29
 
@@ -219,7 +220,7 @@ export class PasskeyKit extends PasskeyBase {
219
220
  if ([keyId, keypair, policy].filter((arg) => !!arg).length > 1)
220
221
  throw new Error('Exactly one of `options.keyId`, `options.keypair`, or `options.policy` must be provided.');
221
222
 
222
- const credentials = entry.credentials().address(); // TODO review this for using the Signatures type again. Might be just `credentials`
223
+ const credentials = entry.credentials().address();
223
224
 
224
225
  if (!expiration) {
225
226
  expiration = credentials.signatureExpirationLedger()
@@ -402,6 +403,8 @@ export class PasskeyKit extends PasskeyBase {
402
403
  expiration?: number
403
404
  }
404
405
  ) {
406
+ // TODO ensure we're outputting a built transaction that's actually useful in the case you don't intend to use launchtube
407
+ // Pretty sure we'll always be woefully under budget
405
408
  return txn.signAuthEntries({
406
409
  address: this.wallet!.options.contractId,
407
410
  authorizeEntry: (entry) => {
@@ -449,32 +452,9 @@ export class PasskeyKit extends PasskeyBase {
449
452
  });
450
453
  }
451
454
 
452
- public remove(key: SignerKey) {
453
- let signer_key: SDKSignerKey
454
-
455
- switch (key.type) {
456
- case 'Policy':
457
- signer_key = {
458
- tag: key.type,
459
- values: [key.value as string]
460
- }
461
- break;
462
- case 'Ed25519':
463
- signer_key = {
464
- tag: key.type,
465
- values: [key.value as Buffer]
466
- }
467
- break;
468
- case 'Secp256r1':
469
- signer_key = {
470
- tag: key.type,
471
- values: [key.value as Buffer]
472
- }
473
- break;
474
- }
475
-
455
+ public remove(signer: SignerKey) {
476
456
  return this.wallet!.remove({
477
- signer_key,
457
+ signer_key: this.getSignerKey(signer)
478
458
  });
479
459
  }
480
460
 
@@ -493,26 +473,9 @@ export class PasskeyKit extends PasskeyBase {
493
473
  sdk_signer_keys = []
494
474
 
495
475
  for (const signer_key of signer_keys) {
496
- switch (signer_key.type) {
497
- case 'Policy':
498
- sdk_signer_keys.push({
499
- tag: signer_key.type,
500
- values: [signer_key.value as string]
501
- })
502
- break;
503
- case 'Ed25519':
504
- sdk_signer_keys.push({
505
- tag: signer_key.type,
506
- values: [signer_key.value as Buffer]
507
- })
508
- break;
509
- case 'Secp256r1':
510
- sdk_signer_keys.push({
511
- tag: signer_key.type,
512
- values: [signer_key.value as Buffer]
513
- })
514
- break;
515
- }
476
+ sdk_signer_keys.push(
477
+ this.getSignerKey(signer_key)
478
+ )
516
479
  }
517
480
  }
518
481
 
@@ -522,6 +485,33 @@ export class PasskeyKit extends PasskeyBase {
522
485
  return sdk_limits
523
486
  }
524
487
 
488
+ private getSignerKey({ key: tag, value }: SignerKey) {
489
+ let signer_key: SDKSignerKey
490
+
491
+ switch (tag) {
492
+ case 'Policy':
493
+ signer_key = {
494
+ tag,
495
+ values: [value]
496
+ }
497
+ break;
498
+ case 'Ed25519':
499
+ signer_key = {
500
+ tag,
501
+ values: [Keypair.fromPublicKey(value).rawPublicKey()]
502
+ }
503
+ break;
504
+ case 'Secp256r1':
505
+ signer_key = {
506
+ tag,
507
+ values: [base64url.toBuffer(value)]
508
+ }
509
+ break;
510
+ }
511
+
512
+ return signer_key
513
+ }
514
+
525
515
  private async getPublicKey(response: AuthenticatorAttestationResponseJSON) {
526
516
  let publicKey: Buffer | undefined
527
517
 
package/types/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { PasskeyServer } from "./server";
2
- import { PasskeyKit, SignerStore, SignerKey, type SignerLimits } from "./kit";
2
+ import { PasskeyKit, PasskeyClient, FactoryClient, SignerStore, SignerKey, type SignerLimits } from "./kit";
3
3
  import { SACClient } from "./sac";
4
- export { PasskeyServer, PasskeyKit, SACClient, SignerStore, SignerKey, type SignerLimits };
4
+ export { PasskeyKit, PasskeyClient, FactoryClient, PasskeyServer, SACClient, SignerStore, SignerKey, type SignerLimits };
package/types/kit.d.ts CHANGED
@@ -6,13 +6,15 @@ import type { AuthenticatorSelectionCriteria } from "@simplewebauthn/types";
6
6
  import { Buffer } from 'buffer';
7
7
  import { PasskeyBase } from './base';
8
8
  import { AssembledTransaction } from '@stellar/stellar-sdk/contract';
9
+ export { Client as PasskeyClient } from 'passkey-kit-sdk';
10
+ export { Client as FactoryClient } from 'passkey-factory-sdk';
9
11
  export declare class SignerKey {
10
- type: "Policy" | "Ed25519" | "Secp256r1";
11
- value: string | Buffer;
12
+ key: "Policy" | "Ed25519" | "Secp256r1";
13
+ value: string;
12
14
  private constructor();
13
- static Policy(value: string): SignerKey;
14
- static Ed25519(value: Buffer): SignerKey;
15
- static Secp256r1(value: Buffer): SignerKey;
15
+ static Policy(policy: string): SignerKey;
16
+ static Ed25519(publicKey: string): SignerKey;
17
+ static Secp256r1(id: string): SignerKey;
16
18
  }
17
19
  export type SignerLimits = Map<string, SignerKey[] | undefined>;
18
20
  export declare enum SignerStore {
@@ -76,8 +78,9 @@ export declare class PasskeyKit extends PasskeyBase {
76
78
  addSecp256r1(keyId: Uint8Array, publicKey: Uint8Array, limits: SignerLimits, store: SignerStore): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
77
79
  addEd25519(publicKey: string, limits: SignerLimits, store: SignerStore): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
78
80
  addPolicy(policy: string, limits: SignerLimits, store: SignerStore): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
79
- remove(key: SignerKey): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
81
+ remove(signer: SignerKey): Promise<AssembledTransaction<import("@stellar/stellar-sdk/contract").Result<void, import("@stellar/stellar-sdk/contract").ErrorMessage>>>;
80
82
  private getSignerLimits;
83
+ private getSignerKey;
81
84
  private getPublicKey;
82
85
  private compactSignature;
83
86
  }