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/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 || 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 { 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" +} 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"] }