From d48d42de6937f885cbcd59bd2b000a78bc0bbf9c Mon Sep 17 00:00:00 2001 From: Nik Graf Date: Mon, 16 Jun 2025 06:55:48 +0200 Subject: [PATCH] switch to uuid --- .../test/HypergraphSpaceContext.test.tsx | 2 +- packages/hypergraph/src/utils/automergeId.ts | 13 ++++++------- packages/hypergraph/src/utils/generateId.ts | 12 +++--------- packages/hypergraph/test/entity/entity.test.ts | 2 +- packages/hypergraph/test/entity/findMany.test.ts | 2 +- .../test/messages/signed-update-message.test.ts | 2 +- packages/hypergraph/test/utils/generateId.test.ts | 6 +++--- 7 files changed, 16 insertions(+), 23 deletions(-) diff --git a/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx b/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx index 8dbf3f22..63dcec4c 100644 --- a/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx +++ b/packages/hypergraph-react/test/HypergraphSpaceContext.test.tsx @@ -34,7 +34,7 @@ describe('HypergraphSpaceContext', () => { name: Type.Text, }) {} - const spaceId = '52gTkePWSoGdXmgZF3nRU'; + const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f'; let repo = new Repo({}); let wrapper = ({ children }: Readonly<{ children: React.ReactNode }>) => ( diff --git a/packages/hypergraph/src/utils/automergeId.ts b/packages/hypergraph/src/utils/automergeId.ts index 27337ae4..cfd09976 100644 --- a/packages/hypergraph/src/utils/automergeId.ts +++ b/packages/hypergraph/src/utils/automergeId.ts @@ -1,19 +1,18 @@ import bs58check from 'bs58check'; - -import { decodeBase58, encodeBase58 } from './internal/base58Utils.js'; +import { parse as parseUuid, stringify as stringifyUuid } from 'uuid'; /** - * Converts a raw Base58-encoded UUID into Base58Check + * Converts a UUID into Base58Check */ -export function idToAutomergeId(rawBase58Uuid: string, _versionByte = 0x00) { - const payload = decodeBase58(rawBase58Uuid); +export function idToAutomergeId(uuid: string, _versionByte = 0x00) { + const payload = parseUuid(uuid); return bs58check.encode(payload); } /** - * Converts a Base58Check-encoded UUID back to raw Base58 + * Converts a Base58Check-encoded UUID back to UUID */ export function automergeIdToId(base58CheckUuid: string) { const versionedPayload = bs58check.decode(base58CheckUuid); - return encodeBase58(versionedPayload); + return stringifyUuid(versionedPayload); } diff --git a/packages/hypergraph/src/utils/generateId.ts b/packages/hypergraph/src/utils/generateId.ts index 9bb5bda6..0739174e 100644 --- a/packages/hypergraph/src/utils/generateId.ts +++ b/packages/hypergraph/src/utils/generateId.ts @@ -1,24 +1,18 @@ import { v4 as uuidv4 } from 'uuid'; -import { encodeBase58 } from './base58.js'; - /** * Generate a v4 UUID. - * Remove the dashes to make it a 32bit value. - * Base58 encode it and return. * * @example * ``` * import { generateId } from '@graph-framework/utils' * * const id = generateId() - * console.log(id) // Gw9uTVTnJdhtczyuzBkL3X + * console.log(id) * ``` * - * @returns base58 encoded v4 UUID + * @returns v4 UUID */ export function generateId() { - const uuid = uuidv4(); - const stripped = uuid.replaceAll(/-/g, ''); - return encodeBase58(stripped); + return uuidv4(); } diff --git a/packages/hypergraph/test/entity/entity.test.ts b/packages/hypergraph/test/entity/entity.test.ts index c4b07580..f73ad1c4 100644 --- a/packages/hypergraph/test/entity/entity.test.ts +++ b/packages/hypergraph/test/entity/entity.test.ts @@ -25,7 +25,7 @@ describe('Entity', () => { name: Type.Text, }) {} - const spaceId = '52gTkePWSoGdXmgZF3nRU'; + const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f'; const automergeDocId = idToAutomergeId(spaceId); let repo: Repo; diff --git a/packages/hypergraph/test/entity/findMany.test.ts b/packages/hypergraph/test/entity/findMany.test.ts index 12e2d375..fd0b4094 100644 --- a/packages/hypergraph/test/entity/findMany.test.ts +++ b/packages/hypergraph/test/entity/findMany.test.ts @@ -20,7 +20,7 @@ describe('findMany with filters', () => { category: Type.Text, }) {} - const spaceId = '52gTkePWSoGdXmgZF3nRU'; + const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f'; const automergeDocId = idToAutomergeId(spaceId); let repo: Repo; diff --git a/packages/hypergraph/test/messages/signed-update-message.test.ts b/packages/hypergraph/test/messages/signed-update-message.test.ts index 4670467b..5b8f1cbe 100644 --- a/packages/hypergraph/test/messages/signed-update-message.test.ts +++ b/packages/hypergraph/test/messages/signed-update-message.test.ts @@ -11,7 +11,7 @@ describe('sign updates and recover key', () => { const signaturePrivateKeyBytes = secp256k1.utils.randomPrivateKey(); const signaturePrivateKey = bytesToHex(signaturePrivateKeyBytes); const signaturePublicKey = bytesToHex(secp256k1.getPublicKey(signaturePrivateKeyBytes)); - const spaceId = '0x1234'; + const spaceId = '1e5e39da-a00d-4fd8-b53b-98095337112f'; const updateId = bytesToHex(randomBytes(32)); const message = hexToBytes('0x01234abcdef01234'); diff --git a/packages/hypergraph/test/utils/generateId.test.ts b/packages/hypergraph/test/utils/generateId.test.ts index 7139c52e..6c8ebc23 100644 --- a/packages/hypergraph/test/utils/generateId.test.ts +++ b/packages/hypergraph/test/utils/generateId.test.ts @@ -1,9 +1,9 @@ +import { validate as validateUuid } from 'uuid'; import { expect, it } from 'vitest'; - import { generateId } from '../../src/utils/generateId.js'; -it('should generate a base58 encoded uuid of 22 char length', () => { +it('should generate a valid uuid', () => { const id = generateId(); expect(id).toBeTypeOf('string'); - expect(id.length === 21 || id.length === 22).toBe(true); + expect(validateUuid(id)).toBe(true); });