···11+---
22+'@atcute/did-plc': patch
33+---
44+55+allow did:key using other key types for verificationMethods
+4-5
packages/identity/did-plc/lib/typedefs.ts
···2233import * as CID from '@atcute/cid';
44import { parseDidKey } from '@atcute/crypto';
55+import { isKeyDid, isPlcDid } from '@atcute/identity';
5667import * as t from './types.js';
7889// #region Strings
99-const DID_PLC_RE = /^did:plc:([a-z2-7]{24})$/;
1010+export const didPlcString = v.string().assert(isPlcDid, `must be a did:plc`);
10111111-export const didPlcString = v
1212- .string()
1313- .assert((input): input is t.DidPlcString => DID_PLC_RE.test(input), `must be a did:plc`);
1212+export const permissiveDidKeyString = v.string().assert(isKeyDid, `must be a did:key`);
14131514export const didKeyString = v.string().chain((input) => {
1615 try {
···92919392 return v.ok(input);
9493 }),
9595- verificationMethods: v.record(didKeyString).chain((input) => {
9494+ verificationMethods: v.record(permissiveDidKeyString).chain((input) => {
9695 for (const id in input) {
9796 if (id.length > 32) {
9897 return v.err({
+4-2
packages/identity/did-plc/lib/types.ts
···11-export type DidPlcString = `did:plc:${string}`;
11+import type { Did } from '@atcute/lexicons/syntax';
2233-export type DidKeyString = `did:key:${string}`;
33+export type DidPlcString = Did<'plc'>;
44+55+export type DidKeyString = Did<'key'>;
4657export interface UnsignedLegacyCreateOperation {
68 type: 'create';