From 4a608ee14ad2cf0f2e79a6e20e45293b8505ffad Mon Sep 17 00:00:00 2001 From: Roscoe Rubin-Rottenberg Date: Wed, 26 Nov 2025 11:05:28 -0500 Subject: [PATCH] legacy lexgen improvements and remove new lex for now --- .vscode/settings.json | 3 + data/blob.ts | 99 ------ data/cid.ts | 50 --- data/deno.json | 9 - data/language.ts | 40 --- data/lex.ts | 160 ---------- data/mod.ts | 7 - data/object.ts | 21 -- data/tests/blob_test.ts | 183 ----------- data/tests/language_test.ts | 80 ----- data/tests/lex-equals_test.ts | 150 --------- data/tests/lex_test.ts | 122 ------- data/tests/object_test.ts | 76 ----- data/tests/utf8_test.ts | 32 -- data/uint8array.ts | 38 --- data/utf8.ts | 46 --- deno.lock | 81 ++++- lex-gen/cmd/gen-api.ts | 11 +- lex-gen/cmd/gen-md.ts | 12 +- lex-gen/cmd/gen-server.ts | 11 +- lex-gen/cmd/gen-ts-obj.ts | 19 +- lex-gen/util.ts | 80 ++++- lex/deno.json | 9 - lex/schema/core.ts | 5 - lex/schema/core/$type.ts | 16 - lex/schema/core/record-key.ts | 15 - lex/schema/core/result.ts | 75 ----- lex/schema/core/string-format.ts | 121 ------- lex/schema/core/types.ts | 22 -- lex/schema/external.ts | 363 --------------------- lex/schema/index.ts | 3 - lex/schema/schema.ts | 40 --- lex/schema/schema/_parameters.ts | 26 -- lex/schema/schema/array.ts | 55 ---- lex/schema/schema/blob.ts | 86 ----- lex/schema/schema/boolean.ts | 28 -- lex/schema/schema/bytes.ts | 42 --- lex/schema/schema/cid.ts | 31 -- lex/schema/schema/custom.ts | 36 --- lex/schema/schema/dict.ts | 67 ---- lex/schema/schema/discriminated-union.ts | 143 --------- lex/schema/schema/enum.ts | 24 -- lex/schema/schema/integer.ts | 45 --- lex/schema/schema/intersection.ts | 56 ---- lex/schema/schema/literal.ts | 24 -- lex/schema/schema/never.ts | 14 - lex/schema/schema/null.ts | 24 -- lex/schema/schema/object.ts | 178 ----------- lex/schema/schema/params.ts | 160 ---------- lex/schema/schema/payload.ts | 50 --- lex/schema/schema/permission-set.ts | 22 -- lex/schema/schema/permission.ts | 15 - lex/schema/schema/procedure.ts | 34 -- lex/schema/schema/query.ts | 27 -- lex/schema/schema/record.ts | 108 ------- lex/schema/schema/ref.ts | 51 --- lex/schema/schema/string.ts | 143 --------- lex/schema/schema/subscription.ts | 33 -- lex/schema/schema/token.ts | 45 --- lex/schema/schema/typed-object.ts | 66 ---- lex/schema/schema/typed-ref.ts | 74 ----- lex/schema/schema/typed-union.ts | 107 ------- lex/schema/schema/union.ts | 42 --- lex/schema/schema/unknown-object.ts | 24 -- lex/schema/schema/unknown.ts | 14 - lex/schema/tests/array-agg_test.ts | 40 --- lex/schema/tests/object_test.ts | 131 -------- lex/schema/util/array-agg.ts | 43 --- lex/schema/validation.ts | 4 - lex/schema/validation/property-key.ts | 1 - lex/schema/validation/validation-error.ts | 32 -- lex/schema/validation/validation-issue.ts | 239 -------------- lex/schema/validation/validator.ts | 368 ---------------------- 73 files changed, 192 insertions(+), 4559 deletions(-) create mode 100644 .vscode/settings.json delete mode 100644 data/blob.ts delete mode 100644 data/cid.ts delete mode 100644 data/deno.json delete mode 100644 data/language.ts delete mode 100644 data/lex.ts delete mode 100644 data/mod.ts delete mode 100644 data/object.ts delete mode 100644 data/tests/blob_test.ts delete mode 100644 data/tests/language_test.ts delete mode 100644 data/tests/lex-equals_test.ts delete mode 100644 data/tests/lex_test.ts delete mode 100644 data/tests/object_test.ts delete mode 100644 data/tests/utf8_test.ts delete mode 100644 data/uint8array.ts delete mode 100644 data/utf8.ts delete mode 100644 lex/deno.json delete mode 100644 lex/schema/core.ts delete mode 100644 lex/schema/core/$type.ts delete mode 100644 lex/schema/core/record-key.ts delete mode 100644 lex/schema/core/result.ts delete mode 100644 lex/schema/core/string-format.ts delete mode 100644 lex/schema/core/types.ts delete mode 100644 lex/schema/external.ts delete mode 100644 lex/schema/index.ts delete mode 100644 lex/schema/schema.ts delete mode 100644 lex/schema/schema/_parameters.ts delete mode 100644 lex/schema/schema/array.ts delete mode 100644 lex/schema/schema/blob.ts delete mode 100644 lex/schema/schema/boolean.ts delete mode 100644 lex/schema/schema/bytes.ts delete mode 100644 lex/schema/schema/cid.ts delete mode 100644 lex/schema/schema/custom.ts delete mode 100644 lex/schema/schema/dict.ts delete mode 100644 lex/schema/schema/discriminated-union.ts delete mode 100644 lex/schema/schema/enum.ts delete mode 100644 lex/schema/schema/integer.ts delete mode 100644 lex/schema/schema/intersection.ts delete mode 100644 lex/schema/schema/literal.ts delete mode 100644 lex/schema/schema/never.ts delete mode 100644 lex/schema/schema/null.ts delete mode 100644 lex/schema/schema/object.ts delete mode 100644 lex/schema/schema/params.ts delete mode 100644 lex/schema/schema/payload.ts delete mode 100644 lex/schema/schema/permission-set.ts delete mode 100644 lex/schema/schema/permission.ts delete mode 100644 lex/schema/schema/procedure.ts delete mode 100644 lex/schema/schema/query.ts delete mode 100644 lex/schema/schema/record.ts delete mode 100644 lex/schema/schema/ref.ts delete mode 100644 lex/schema/schema/string.ts delete mode 100644 lex/schema/schema/subscription.ts delete mode 100644 lex/schema/schema/token.ts delete mode 100644 lex/schema/schema/typed-object.ts delete mode 100644 lex/schema/schema/typed-ref.ts delete mode 100644 lex/schema/schema/typed-union.ts delete mode 100644 lex/schema/schema/union.ts delete mode 100644 lex/schema/schema/unknown-object.ts delete mode 100644 lex/schema/schema/unknown.ts delete mode 100644 lex/schema/tests/array-agg_test.ts delete mode 100644 lex/schema/tests/object_test.ts delete mode 100644 lex/schema/util/array-agg.ts delete mode 100644 lex/schema/validation.ts delete mode 100644 lex/schema/validation/property-key.ts delete mode 100644 lex/schema/validation/validation-error.ts delete mode 100644 lex/schema/validation/validation-issue.ts delete mode 100644 lex/schema/validation/validator.ts diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..205df23 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.enabled": false +} \ No newline at end of file diff --git a/data/blob.ts b/data/blob.ts deleted file mode 100644 index 62c0d48..0000000 --- a/data/blob.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { CID, RAW_BIN_MULTICODEC, SHA2_256_MULTIHASH_CODE } from "./cid.ts"; -import { isPlainObject } from "./object.ts"; - -export type BlobRef = { - $type: "blob"; - mimeType: string; - ref: CID; - size: number; -}; - -export function isBlobRef( - input: unknown, - options?: { strict?: boolean }, -): input is BlobRef { - if (!isPlainObject(input)) { - return false; - } - - if (input?.$type !== "blob") { - return false; - } - - const { mimeType, size, ref } = input; - if (typeof mimeType !== "string") { - return false; - } - - if (typeof size !== "number" || size < 0 || !Number.isInteger(size)) { - return false; - } - - if (typeof ref !== "object" || ref === null) { - return false; - } - - for (const key in input) { - if ( - key !== "$type" && - key !== "mimeType" && - key !== "ref" && - key !== "size" - ) { - return false; - } - } - - const cid = CID.asCID(ref); - if (!cid) { - return false; - } - - if (options?.strict) { - if (cid.version !== 1) { - return false; - } - if (cid.code !== RAW_BIN_MULTICODEC) { - return false; - } - if (cid.multihash.code !== SHA2_256_MULTIHASH_CODE) { - return false; - } - } - - return true; -} - -export type LegacyBlobRef = { - cid: string; - mimeType: string; -}; - -export function isLegacyBlobRef(input: unknown): input is LegacyBlobRef { - if (!isPlainObject(input)) { - return false; - } - - const { cid, mimeType } = input; - if (typeof cid !== "string") { - return false; - } - - if (typeof mimeType !== "string") { - return false; - } - - for (const key in input) { - if (key !== "cid" && key !== "mimeType") { - return false; - } - } - - try { - CID.parse(cid); - } catch { - return false; - } - - return true; -} diff --git a/data/cid.ts b/data/cid.ts deleted file mode 100644 index 5f7430c..0000000 --- a/data/cid.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { CID } from "multiformats/cid"; - -export const DAG_CBOR_MULTICODEC = 0x71; -export const RAW_BIN_MULTICODEC = 0x55; - -export const SHA2_256_MULTIHASH_CODE = 0x12; - -export { CID }; - -export function isCid( - value: unknown, - options?: { strict?: boolean }, -): value is CID { - const cid = CID.asCID(value); - if (!cid) { - return false; - } - - if (options?.strict) { - if (cid.version !== 1) { - return false; - } - if (cid.code !== RAW_BIN_MULTICODEC && cid.code !== DAG_CBOR_MULTICODEC) { - return false; - } - if (cid.multihash.code !== SHA2_256_MULTIHASH_CODE) { - return false; - } - } - - return true; -} - -export function validateCidString(input: string): boolean { - return parseCidString(input)?.toString() === input; -} - -export function parseCidString(input: string): CID | undefined { - try { - return CID.parse(input); - } catch { - return undefined; - } -} - -export function ensureValidCidString(input: string): void { - if (!validateCidString(input)) { - throw new Error(`Invalid CID string`); - } -} diff --git a/data/deno.json b/data/deno.json deleted file mode 100644 index a81eedd..0000000 --- a/data/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@atp/data", - "version": "0.1.0-alpha.1", - "exports": "./mod.ts", - "license": "MIT", - "imports": { - "multiformats": "npm:multiformats@^13.4.1" - } -} diff --git a/data/language.ts b/data/language.ts deleted file mode 100644 index ef33d31..0000000 --- a/data/language.ts +++ /dev/null @@ -1,40 +0,0 @@ -const BCP47_REGEXP = - /^((?(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?([A-Za-z]{2,3}(-(?[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?