From 27cb10beeceebe80255b80a5ed9844932557422f Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Sun, 23 Feb 2025 03:02:00 +0900 Subject: [PATCH 1/4] chore(lexicons): avoid excluding `scripts` dir for correct typechecking --- packages/lexicons/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/lexicons/tsconfig.json b/packages/lexicons/tsconfig.json index 4a8cb3c..f75aa4a 100644 --- a/packages/lexicons/tsconfig.json +++ b/packages/lexicons/tsconfig.json @@ -13,5 +13,5 @@ "skipLibCheck": true }, "include": ["index.ts", "src/**/*"], - "exclude": ["node_modules", "dist", "scripts"] + "exclude": ["node_modules", "dist"] } From 98b2074f01ad8ee8c9a682e988c0a095e62c7288 Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Sun, 23 Feb 2025 03:04:09 +0900 Subject: [PATCH 2/4] chore(lexicons): make `tsconfig.json` for `scripts` diretory --- packages/lexicons/scripts/tsconfig.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 packages/lexicons/scripts/tsconfig.json diff --git a/packages/lexicons/scripts/tsconfig.json b/packages/lexicons/scripts/tsconfig.json new file mode 100644 index 0000000..149ab5c --- /dev/null +++ b/packages/lexicons/scripts/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../tsconfig.json", + "include": "*.ts" +} From 7277731ec8253180edd93134c7557187f539eb5e Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Sun, 23 Feb 2025 03:36:36 +0900 Subject: [PATCH 3/4] fix(lexicons): allow `record-key` format has length and grapheme restriction --- packages/lex-cli/src/generator/schema.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/lex-cli/src/generator/schema.ts b/packages/lex-cli/src/generator/schema.ts index 8a365f5..0f10988 100644 --- a/packages/lex-cli/src/generator/schema.ts +++ b/packages/lex-cli/src/generator/schema.ts @@ -94,7 +94,11 @@ export const stringSchema: t.StrictValidator< maxGraphemes?: number; minGraphemes?: number; } => { - if (value.format !== undefined && value.format !== 'uri') { + if ( + value.format !== undefined && + value.format !== 'uri' && + value.format !== 'record-key' + ) { if ( value.maxLength !== undefined || value.minLength !== undefined || From adf4359c3444d1338a2b45df81fe3edf46d153b4 Mon Sep 17 00:00:00 2001 From: TAKAHASHI Shuuji Date: Sun, 23 Feb 2025 03:45:37 +0900 Subject: [PATCH 4/4] fix(lexicons): support `tid` and `record-key` format in object property --- packages/lex-cli/src/generator/resolvers/string.ts | 4 +++- packages/lex-cli/src/utils/formats.ts | 2 ++ packages/lex-cli/src/utils/prelude.ts | 8 +++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/lex-cli/src/generator/resolvers/string.ts b/packages/lex-cli/src/generator/resolvers/string.ts index 5a1c738..e395171 100644 --- a/packages/lex-cli/src/generator/resolvers/string.ts +++ b/packages/lex-cli/src/generator/resolvers/string.ts @@ -1,11 +1,13 @@ -import type { StringSchema } from '../schema.js'; import { IGNORED_FORMATS, TYPE_FORMATS, sortName } from '../../utils/index.js'; +import type { StringSchema } from '../schema.js'; export function resolveStringFormat(format: string, nsid: string): string { if (format === 'did') return TYPE_FORMATS.DID; if (format === 'cid') return TYPE_FORMATS.CID; if (format === 'handle') return TYPE_FORMATS.HANDLE; if (format === 'at-uri') return TYPE_FORMATS.URI; + if (format === 'tid') return TYPE_FORMATS.TID; + if (format === 'record-key') return TYPE_FORMATS.RKEY; if (IGNORED_FORMATS.has(format)) return 'string'; console.warn(`${nsid}: unknown format ${format}`); diff --git a/packages/lex-cli/src/utils/formats.ts b/packages/lex-cli/src/utils/formats.ts index 3834f40..b3a34d5 100644 --- a/packages/lex-cli/src/utils/formats.ts +++ b/packages/lex-cli/src/utils/formats.ts @@ -3,6 +3,8 @@ export const TYPE_FORMATS = { CID: 'At.CID', HANDLE: 'At.Handle', URI: 'At.Uri', + TID: 'At.TID', + RKEY: 'At.RKEY', } as const; export const IGNORED_FORMATS = new Set([ diff --git a/packages/lex-cli/src/utils/prelude.ts b/packages/lex-cli/src/utils/prelude.ts index 045bf45..55a8353 100644 --- a/packages/lex-cli/src/utils/prelude.ts +++ b/packages/lex-cli/src/utils/prelude.ts @@ -33,7 +33,13 @@ export declare namespace At { type Handle = string; /** URI string */ - type Uri = string; + type Uri = string; + + /** TID string */ + type TID = string; + + /** RKEY string */ + type RKEY = string; /** Object containing a CID string */ interface CIDLink {