diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aece0002023..d1dc4197a3f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3509,12 +3509,6 @@ importers: turbo: specifier: ^2.11.10 version: 2.11.10 - typedoc: - specifier: ^0.28.20 - version: 0.28.20(typescript@6.0.3) - typedoc-plugin-markdown: - specifier: ^4.14.1 - version: 4.14.1(typedoc@0.28.20(typescript@6.0.3)) typescript: specifier: ^6.0.3 version: 6.0.3 @@ -3546,15 +3540,6 @@ importers: specifier: workspace:* version: link:../../../packages/sdui-parser devDependencies: - '@dnd-kit/core': - specifier: ^6.3.1 - version: 6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0) - '@dnd-kit/sortable': - specifier: ^10.0.0 - version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.3.0(react@19.3.0))(react@19.3.0))(react@19.3.0) - '@dnd-kit/utilities': - specifier: ^3.2.2 - version: 3.2.2(react@19.3.0) '@object-ui/app-shell': specifier: workspace:* version: link:../../packages/app-shell @@ -3690,9 +3675,6 @@ importers: '@vitest/ui': specifier: ^4.1.10 version: 4.1.10(vitest@4.1.12) - autoprefixer: - specifier: ^10.5.4 - version: 10.5.4(postcss@8.5.31) happy-dom: specifier: ^21.0.4 version: 21.0.4 @@ -6787,9 +6769,6 @@ packages: '@fumari/image-size@0.1.0': resolution: {integrity: sha512-x2o9u6P8uKUK15B8XgEoRhR3PgLoLSbQKK6FUCd14JzumEw+e8FXZPelij/dZ4VQVMp4r61VD3DcvSo3aEhLAA==} - '@gerrit0/mini-shiki@3.23.0': - resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} - '@hapi/address@5.1.1': resolution: {integrity: sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA==} engines: {node: '>=14.0.0'} @@ -8302,16 +8281,10 @@ packages: resolution: {integrity: sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ==} engines: {node: '>=20'} - '@shikijs/engine-oniguruma@3.23.0': - resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - '@shikijs/engine-oniguruma@4.4.3': resolution: {integrity: sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w==} engines: {node: '>=20'} - '@shikijs/langs@3.23.0': - resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - '@shikijs/langs@4.4.3': resolution: {integrity: sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A==} engines: {node: '>=20'} @@ -8320,16 +8293,10 @@ packages: resolution: {integrity: sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ==} engines: {node: '>=20'} - '@shikijs/themes@3.23.0': - resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - '@shikijs/themes@4.4.3': resolution: {integrity: sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw==} engines: {node: '>=20'} - '@shikijs/types@3.23.0': - resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - '@shikijs/types@4.4.3': resolution: {integrity: sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==} engines: {node: '>=20'} @@ -10194,10 +10161,6 @@ packages: resolution: {integrity: sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==} engines: {node: '>=10.13.0'} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -11444,9 +11407,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@5.0.2: - resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} - listenercount@1.0.1: resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} @@ -11563,9 +11523,6 @@ packages: peerDependencies: react: 19.3.0 - lunr@2.3.9: - resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -11595,10 +11552,6 @@ packages: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} - markdown-it@14.3.3: - resolution: {integrity: sha512-L//tDAkjTjJCU6pBUSBTgs3Kg4InVaZuUZog/b6V12UKhcDQ7S78877ibbCanRExwPuYP1CZD7Gd2dxSy1GXRg==} - hasBin: true - markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -11672,9 +11625,6 @@ packages: mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -12373,10 +12323,6 @@ packages: resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} engines: {node: '>=10'} - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -13320,19 +13266,6 @@ packages: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} - typedoc-plugin-markdown@4.14.1: - resolution: {integrity: sha512-24XX0oqyBsjBIBNoSH4wbgQkouci/CmgmO1ZBSaVkrcflqXFL2PQ5zFOpkz+Ewow5xQ3q2You+wrcmilNepRKg==} - engines: {node: '>= 18'} - peerDependencies: - typedoc: 0.28.x - - typedoc@0.28.20: - resolution: {integrity: sha512-uSKqkh8Cr48vllnEy+jdaAgOeR6Y+QCBW7usgUsKj7gJEfR7stw9U/fE49LBnj2tPRKPY0c0EBJSWe9Appmplg==} - engines: {node: '>= 18', pnpm: '>= 10'} - hasBin: true - peerDependencies: - typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x - typescript-eslint@8.72.1: resolution: {integrity: sha512-3Li9FfPmQp45nxEtFD1ZCrYFI3cYK5kpyNtmm1H7lMagm8u9sy6PTjy3ytwQZs7KNukOyKFHAZ6z6GjYFeaeXw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -13356,9 +13289,6 @@ packages: typewise@1.0.3: resolution: {integrity: sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==} - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} @@ -14821,14 +14751,6 @@ snapshots: '@fumari/image-size@0.1.0': {} - '@gerrit0/mini-shiki@3.23.0': - dependencies: - '@shikijs/engine-oniguruma': 3.23.0 - '@shikijs/langs': 3.23.0 - '@shikijs/themes': 3.23.0 - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@hapi/address@5.1.1': dependencies: '@hapi/hoek': 11.0.7 @@ -16298,20 +16220,11 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@4.4.3': dependencies: '@shikijs/types': 4.4.3 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/langs@4.4.3': dependencies: '@shikijs/types': 4.4.3 @@ -16322,19 +16235,10 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.5 - '@shikijs/themes@3.23.0': - dependencies: - '@shikijs/types': 3.23.0 - '@shikijs/themes@4.4.3': dependencies: '@shikijs/types': 4.4.3 - '@shikijs/types@3.23.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.5 - '@shikijs/types@4.4.3': dependencies: '@shikijs/vscode-textmate': 10.0.2 @@ -18144,8 +18048,6 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.3.3 - entities@4.5.0: {} - entities@6.0.1: {} entities@7.0.1: {} @@ -19556,10 +19458,6 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-it@5.0.2: - dependencies: - uc.micro: 2.1.0 - listenercount@1.0.1: {} load-tsconfig@0.2.5: {} @@ -19651,8 +19549,6 @@ snapshots: dependencies: react: 19.3.0 - lunr@2.3.9: {} - lz-string@1.5.0: {} magic-string@0.30.21: @@ -19699,15 +19595,6 @@ snapshots: markdown-extensions@2.0.0: {} - markdown-it@14.3.3: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.2 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - markdown-table@3.0.4: {} marked@14.0.0: {} @@ -19883,8 +19770,6 @@ snapshots: mdn-data@2.27.1: {} - mdurl@2.0.0: {} - media-typer@0.3.0: {} media-typer@1.1.1: {} @@ -20715,8 +20600,6 @@ snapshots: proxy-from-env@2.1.0: {} - punycode.js@2.3.1: {} - punycode@2.3.1: {} pure-rand@8.4.2: {} @@ -21888,19 +21771,6 @@ snapshots: media-typer: 1.1.1 mime-types: 3.0.2 - typedoc-plugin-markdown@4.14.1(typedoc@0.28.20(typescript@6.0.3)): - dependencies: - typedoc: 0.28.20(typescript@6.0.3) - - typedoc@0.28.20(typescript@6.0.3): - dependencies: - '@gerrit0/mini-shiki': 3.23.0 - lunr: 2.3.9 - markdown-it: 14.3.3 - minimatch: 10.2.6 - typescript: 6.0.3 - yaml: 2.9.1 - typescript-eslint@8.72.1(eslint@10.13.0(jiti@2.7.0))(typescript@6.0.3): dependencies: '@typescript-eslint/eslint-plugin': 8.72.1(@typescript-eslint/parser@8.72.1(eslint@10.13.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0))(typescript@6.0.3) @@ -21923,8 +21793,6 @@ snapshots: dependencies: typewise-core: 1.2.0 - uc.micro@2.1.0: {} - ufo@1.6.4: {} undici-types@8.9.0: {} diff --git a/ui/apps/console/package.json b/ui/apps/console/package.json index 8bc05bc054c..aa7cac60d72 100644 --- a/ui/apps/console/package.json +++ b/ui/apps/console/package.json @@ -56,9 +56,6 @@ "prepublishOnly": "pnpm build" }, "devDependencies": { - "@dnd-kit/core": "^6.3.1", - "@dnd-kit/sortable": "^10.0.0", - "@dnd-kit/utilities": "^3.2.2", "@object-ui/app-shell": "workspace:*", "@object-ui/auth": "workspace:*", "@object-ui/collaboration": "workspace:*", @@ -104,7 +101,6 @@ "@types/react-dom": "19.3.0", "@vitejs/plugin-react": "^6.0.5", "@vitest/ui": "^4.1.10", - "autoprefixer": "^10.5.4", "happy-dom": "^20.11.2", "lucide-react": "^1.43.0", "postcss": "^8.5.26", diff --git a/ui/lazy-test.mjs b/ui/lazy-test.mjs deleted file mode 100644 index 236101c8364..00000000000 --- a/ui/lazy-test.mjs +++ /dev/null @@ -1,63 +0,0 @@ -import { chromium } from '@playwright/test'; - -const browser = await chromium.launch(); -const context = await browser.newContext(); -const page = await context.newPage(); - -const requests = []; -page.on('request', (req) => requests.push({ url: req.url(), type: req.resourceType() })); -const errors = []; -page.on('pageerror', (e) => errors.push(String(e))); -page.on('console', (m) => { if (m.type() === 'error') errors.push(m.text()); }); - -const baseURL = 'http://localhost:4173/console/'; -const t0 = Date.now(); -const resp = await page.goto(baseURL, { waitUntil: 'load', timeout: 30000 }); -const t1 = Date.now(); -console.log(`GET ${baseURL} -> ${resp.status()} in ${t1 - t0} ms`); - -await page.waitForTimeout(2000); - -const jsRequests = requests.filter((r) => r.type === 'script'); -const totalBytes = (await Promise.all(jsRequests.map(async (r) => { - try { - const res = await page.request.get(r.url); - return (await res.body()).byteLength; - } catch { return 0; } -}))).reduce((a, b) => a + b, 0); - -console.log(`\nTotal JS chunks loaded for initial paint: ${jsRequests.length}`); -console.log(`Total JS bytes (uncompressed): ${(totalBytes / 1024).toFixed(1)} KB`); - -const heavyChunks = ['plugin-calendar', 'plugin-charts', 'maplibre-gl', 'plugin-markdown', 'plugin-gantt', 'plugin-map', 'plugin-kanban']; -const eagerlyLoadedHeavy = jsRequests.filter((r) => heavyChunks.some((h) => r.url.includes(h))); -console.log(`\nHeavy lazy chunks loaded eagerly (should be 0): ${eagerlyLoadedHeavy.length}`); -eagerlyLoadedHeavy.forEach((r) => console.log(' - ' + r.url.split('/').pop())); - -const title = await page.title(); -const rootText = await page.evaluate(() => document.querySelector('#root')?.innerText?.slice(0, 200) || ''); -console.log(`\nTitle: ${title}`); -console.log(`#root text (first 200): ${rootText.replace(/\n/g, ' | ')}`); - -console.log(`\nErrors (${errors.length}):`); -errors.slice(0, 10).forEach((e) => console.log(' - ' + e.slice(0, 200))); - -await page.screenshot({ path: '/tmp/console-home.png', fullPage: false }); -console.log('\nScreenshot: /tmp/console-home.png'); - -console.log('\n--- Now navigate to a kanban view to test lazy load ---'); -const beforeNav = requests.length; -// Try common routes -const routes = ['/console/objects', '/console/apps', '/console/']; -for (const r of routes) { - try { - const navResp = await page.goto(`http://localhost:4173${r}`, { waitUntil: 'load', timeout: 10000 }); - console.log(`${r} -> ${navResp.status()}`); - await page.waitForTimeout(1000); - } catch (e) { console.log(`${r} -> ERROR ${String(e).slice(0,100)}`); } -} -const lazyLoaded = requests.slice(beforeNav).filter((r) => heavyChunks.some((h) => r.url.includes(h))); -console.log(`\nHeavy chunks loaded after navigation: ${lazyLoaded.length}`); -lazyLoaded.forEach((r) => console.log(' - ' + r.url.split('/').pop())); - -await browser.close(); diff --git a/ui/package.json b/ui/package.json index 27e93a9c26f..b1fbc2d21ca 100644 --- a/ui/package.json +++ b/ui/package.json @@ -95,7 +95,6 @@ "check:changeset-claims": "node scripts/check-changeset-claims.mjs", "check:pending-changeset-literals": "node scripts/check-pending-changeset-literals.mjs", "create-plugin": "node packages/create-plugin/dist/index.js", - "docs:api": "typedoc", "docs:check-links": "node scripts/check-doc-links.mjs", "check": "node packages/cli/dist/cli.js check", "shadcn:analyze": "node scripts/component-analysis.js", @@ -151,8 +150,6 @@ "tslib": "^2.8.1", "tsx": "^4.23.12", "turbo": "^2.11.10", - "typedoc": "^0.28.20", - "typedoc-plugin-markdown": "^4.14.1", "typescript": "^6.0.3", "typescript-eslint": "^8.72.0", "vite": "^8.2.1", diff --git a/ui/paseo.json b/ui/paseo.json deleted file mode 100644 index b3703940c93..00000000000 --- a/ui/paseo.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "worktree": { - "setup": [ - "pnpm i", - "pnpm build" - ] - } -} diff --git a/ui/scripts/check-lint-rule-coverage.mjs b/ui/scripts/check-lint-rule-coverage.mjs index a23db3f0657..b98252c45b3 100644 --- a/ui/scripts/check-lint-rule-coverage.mjs +++ b/ui/scripts/check-lint-rule-coverage.mjs @@ -559,11 +559,6 @@ export const VACUOUS_GROUPS = [ 'so an exemption would buy nothing and hide the row.', card: 'objectui#7908', }, - { - glob: 'lazy-test.mjs', - reason: 'Root-level test helper, the only JS-family file at the repository root besides the config.', - card: 'objectui#7908', - }, { glob: 'packages/*/scripts/**/*.mjs', reason: diff --git a/ui/typedoc.json b/ui/typedoc.json deleted file mode 100644 index b7e20e81ae0..00000000000 --- a/ui/typedoc.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "$schema": "https://typedoc.org/schema.json", - "entryPointStrategy": "packages", - "entryPoints": [ - "packages/types", - "packages/core", - "packages/react", - "packages/components", - "packages/fields", - "packages/layout" - ], - "out": "docs/api", - "plugin": ["typedoc-plugin-markdown"], - "name": "ObjectUI API Reference", - "excludeExternals": true, - "excludePrivate": true, - "excludeInternal": true, - "exclude": [ - "**/__tests__/**", - "**/*.test.ts", - "**/*.test.tsx", - "**/*.spec.ts", - "**/*.spec.tsx", - "**/*.mdx" - ], - "categoryOrder": [ - "Schema", - "Components", - "Hooks", - "Utilities", - "Types", - "*" - ], - "categorizeByGroup": true, - "navigation": { - "includeCategories": true, - "includeGroups": true - }, - "githubPages": false, - "hideGenerator": true -}