History

Fix TS2589 typecheck errors by moving lib/ out of convex/ and adding postcodegen script

Convex's generated ApiFromModules/FilterApi types exceed TypeScript's instantiation depth limit of 100 with 18 modules and 105+ function exports, causing 315 TS2589 errors across all convex/ files. Fix: - Move executor/convex/lib/ → executor/lib/ to remove non-function utility modules from Convex codegen (reduces module count from 35 to 18) - Add scripts/postcodegen.ts that rewrites _generated/api.d.ts to replace the recursive ApiFromModules/FilterApi types with explicit per-module FunctionReference declarations - Update all convex/ imports to reference ../lib/ paths - Add 'codegen' and 'fix-types' scripts to package.json Run 'bun run codegen' after convex codegen to fix types automatically.

Rhys Sullivan committed 9 months ago

Commit a1cea961 parent 7b6bc4c45 files · +746 −130Browse files

Unified · Split

45 files
  1. bun.lock +255 −1
  2. executor/convex/_generated/api.d.ts +155 −85
  3. executor/convex/app.ts +1 −1
  4. executor/convex/auth.ts +1 −1
  5. executor/convex/billing.ts +2 −2
  6. executor/convex/billingInternal.ts +1 −1
  7. executor/convex/database.ts +1 −1
  8. executor/convex/executor.ts +2 −2
  9. executor/convex/executorNode.ts +9 −9
  10. executor/convex/http.ts +2 −2
  11. executor/convex/invites.ts +1 −1
  12. executor/convex/organizationMembers.ts +2 −2
  13. executor/convex/organizations.ts +3 −3
  14. executor/convex/workspace.ts +1 −1
  15. executor/convex/workspaceAuthInternal.ts +1 −1
  16. executor/convex/workspaces.ts +3 −3
  17. executor/lib/adapters/in-process-execution-adapter.test.ts +0 −0
  18. executor/lib/adapters/in_process_execution_adapter.ts +0 −0
  19. executor/lib/anonymousSession.ts +0 −0
  20. executor/lib/credential-providers.test.ts +0 −0
  21. executor/lib/credential_providers.ts +0 −0
  22. executor/lib/events.ts +0 −0
  23. executor/lib/execution_constants.ts +0 −0
  24. executor/lib/functionBuilders.ts +1 −1
  25. executor/lib/identity.ts +2 −2
  26. executor/lib/mcp-server.test.ts +0 −0
  27. executor/lib/mcp_server.ts +0 −0
  28. executor/lib/openapi-cache.test.ts +0 −0
  29. executor/lib/openapi-real-specs.test.ts +0 −0
  30. executor/lib/runtimes/runtime-core.test.ts +0 −0
  31. executor/lib/runtimes/runtime_core.ts +0 −0
  32. executor/lib/slug.ts +0 −0
  33. executor/lib/tool-sources.test.ts +0 −0
  34. executor/lib/tool_discovery.ts +0 −0
  35. executor/lib/tool_sources.ts +0 −0
  36. executor/lib/tools.ts +0 −0
  37. executor/lib/typechecker.test.ts +0 −0
  38. executor/lib/typechecker.ts +0 −0
  39. executor/lib/types.ts +0 −0
  40. executor/lib/utils.ts +0 −0
  41. executor/lib/workspace-tool-cache.test.ts +8 −8
  42. executor/package.json +3 −1
  43. executor/scripts/postcodegen.ts +289 −0
  44. executor/tsconfig.json +2 −1
  45. package.json +1 −1
bun.lock+255−1
@@ -20,7 +20,7 @@ · 19 unmodified lines
2020 "@modelcontextprotocol/sdk": "^1.26.0",
2121 "@types/bun": "latest",
2222 "convex-test": "^0.0.41",
23− "typescript": "latest",
23+ "typescript": "^5.9.3",
2424 },
2525 },
2626 "assistant": {
@@ -92,6 +92,7 @@ · 65 unmodified lines
9292 "@elysiajs/eden": "^1.4.6",
9393 "@executor/contracts": "workspace:*",
9494 "@monaco-editor/react": "^4.7.0",
95+ "@streamdown/code": "^1.0.1",
9596 "@tanstack/react-query": "^5.80.7",
9697 "@workos-inc/authkit-nextjs": "^2.13.0",
9798 "class-variance-authority": "^0.7.1",
@@ -105,6 +106,7 @@ · 7 unmodified lines
105106 "react": "19.2.3",
106107 "react-dom": "19.2.3",
107108 "sonner": "^2.0.7",
109+ "streamdown": "^2.1.0",
108110 "tailwind-merge": "^3.4.0",
109111 "tldts": "^7.0.22",
110112 },
@@ -805,6 +807,20 @@ · 694 unmodified lines
805807
806808 "@sec-ant/readable-stream": ["@sec-ant/readable-stream@0.4.1", "", {}, "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg=="],
807809
810+ "@shikijs/core": ["@shikijs/core@3.22.0", "", { "dependencies": { "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-iAlTtSDDbJiRpvgL5ugKEATDtHdUVkqgHDm/gbD2ZS9c88mx7G1zSYjjOxp5Qa0eaW0MAQosFRmJSk354PRoQA=="],
811+
812+ "@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.22.0", "", { "dependencies": { "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-jdKhfgW9CRtj3Tor0L7+yPwdG3CgP7W+ZEqSsojrMzCjD1e0IxIbwUMDDpYlVBlC08TACg4puwFGkZfLS+56Tw=="],
813+
814+ "@shikijs/engine-oniguruma": ["@shikijs/engine-oniguruma@3.22.0", "", { "dependencies": { "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "sha512-DyXsOG0vGtNtl7ygvabHd7Mt5EY8gCNqR9Y7Lpbbd/PbJvgWrqaKzH1JW6H6qFkuUa8aCxoiYVv8/YfFljiQxA=="],
815+
816+ "@shikijs/langs": ["@shikijs/langs@3.22.0", "", { "dependencies": { "@shikijs/types": "3.22.0" } }, "sha512-x/42TfhWmp6H00T6uwVrdTJGKgNdFbrEdhaDwSR5fd5zhQ1Q46bHq9EO61SCEWJR0HY7z2HNDMaBZp8JRmKiIA=="],
817+
818+ "@shikijs/themes": ["@shikijs/themes@3.22.0", "", { "dependencies": { "@shikijs/types": "3.22.0" } }, "sha512-o+tlOKqsr6FE4+mYJG08tfCFDS+3CG20HbldXeVoyP+cYSUxDhrFf3GPjE60U55iOkkjbpY2uC3It/eeja35/g=="],
819+
820+ "@shikijs/types": ["@shikijs/types@3.22.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-491iAekgKDBFE67z70Ok5a8KBMsQ2IJwOWw3us/7ffQkIBCyOQfm/aNwVMBUriP02QshIfgHCBSIYAl3u2eWjg=="],
821+
822+ "@shikijs/vscode-textmate": ["@shikijs/vscode-textmate@10.0.2", "", {}, "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg=="],
823+
808824 "@sinclair/typebox": ["@sinclair/typebox@0.34.48", "", {}, "sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA=="],
809825
810826 "@sindresorhus/merge-streams": ["@sindresorhus/merge-streams@4.0.0", "", {}, "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ=="],
@@ -901,6 +917,8 @@ · 90 unmodified lines
901917
902918 "@standard-schema/spec": ["@standard-schema/spec@1.1.0", "", {}, "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w=="],
903919
920+ "@streamdown/code": ["@streamdown/code@1.0.1", "", { "dependencies": { "shiki": "^3.19.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0" } }, "sha512-U9LITfQ28tZYAoY922jdtw1ryg4kgRBdURopqK9hph7G2fBUwPeHthjH7SvaV0fvFv7EqjqCzARJuWUljLe9Ag=="],
921+
904922 "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="],
905923
906924 "@tailwindcss/node": ["@tailwindcss/node@4.1.18", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.18" } }, "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ=="],
@@ -963,14 +981,20 @@ · 56 unmodified lines
963981
964982 "@types/cookies": ["@types/cookies@0.9.2", "", { "dependencies": { "@types/connect": "*", "@types/express": "*", "@types/keygrip": "*", "@types/node": "*" } }, "sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A=="],
965983
984+ "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="],
985+
966986 "@types/deep-eql": ["@types/deep-eql@4.0.2", "", {}, "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw=="],
967987
968988 "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
969989
990+ "@types/estree-jsx": ["@types/estree-jsx@1.0.5", "", { "dependencies": { "@types/estree": "*" } }, "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg=="],
991+
970992 "@types/express": ["@types/express@4.17.25", "", { "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "^1" } }, "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw=="],
971993
972994 "@types/express-serve-static-core": ["@types/express-serve-static-core@4.19.8", "", { "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA=="],
973995
996+ "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="],
997+
974998 "@types/http-assert": ["@types/http-assert@1.5.6", "", {}, "sha512-TTEwmtjgVbYAzZYWyeHPrrtWnfVkm8tQkP8P21uQifPgMRgjrow3XDEYqucuC8SKZJT7pUnhU/JymvjggxO9vw=="],
975999
9761000 "@types/http-errors": ["@types/http-errors@2.0.5", "", {}, "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg=="],
@@ -985,8 +1009,12 @@ · 8 unmodified lines
9851009
9861010 "@types/koa-compose": ["@types/koa-compose@3.2.9", "", { "dependencies": { "@types/koa": "*" } }, "sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA=="],
9871011
1012+ "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="],
1013+
9881014 "@types/mime": ["@types/mime@1.3.5", "", {}, "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="],
9891015
1016+ "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="],
1017+
9901018 "@types/node": ["@types/node@20.19.33", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw=="],
9911019
9921020 "@types/qs": ["@types/qs@6.14.0", "", {}, "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ=="],
@@ -1007,6 +1035,8 @@ · 14 unmodified lines
10071035
10081036 "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="],
10091037
1038+ "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="],
1039+
10101040 "@types/validate-npm-package-name": ["@types/validate-npm-package-name@4.0.2", "", {}, "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw=="],
10111041
10121042 "@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="],
@@ -1031,6 +1061,8 @@ · 18 unmodified lines
10311061
10321062 "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.54.0", "", { "dependencies": { "@typescript-eslint/types": "8.54.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA=="],
10331063
1064+ "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="],
1065+
10341066 "@unrs/resolver-binding-android-arm-eabi": ["@unrs/resolver-binding-android-arm-eabi@1.11.1", "", { "os": "android", "cpu": "arm" }, "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw=="],
10351067
10361068 "@unrs/resolver-binding-android-arm64": ["@unrs/resolver-binding-android-arm64@1.11.1", "", { "os": "android", "cpu": "arm64" }, "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g=="],
@@ -1157,6 +1189,8 @@ · 120 unmodified lines
11571189
11581190 "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
11591191
1192+ "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="],
1193+
11601194 "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
11611195
11621196 "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="],
@@ -1203,12 +1237,22 @@ · 40 unmodified lines
12031237
12041238 "caniuse-lite": ["caniuse-lite@1.0.30001769", "", {}, "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg=="],
12051239
1240+ "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="],
1241+
12061242 "chai": ["chai@5.3.3", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw=="],
12071243
12081244 "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="],
12091245
12101246 "change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="],
12111247
1248+ "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="],
1249+
1250+ "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="],
1251+
1252+ "character-entities-legacy": ["character-entities-legacy@3.0.0", "", {}, "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ=="],
1253+
1254+ "character-reference-invalid": ["character-reference-invalid@2.0.1", "", {}, "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw=="],
1255+
12121256 "check-error": ["check-error@2.1.3", "", {}, "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA=="],
12131257
12141258 "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="],
@@ -1235,6 +1279,8 @@ · 20 unmodified lines
12351279
12361280 "colorette": ["colorette@1.4.0", "", {}, "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="],
12371281
1282+ "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="],
1283+
12381284 "commander": ["commander@14.0.3", "", {}, "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw=="],
12391285
12401286 "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
@@ -1277,6 +1323,8 @@ · 36 unmodified lines
12771323
12781324 "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
12791325
1326+ "decode-named-character-reference": ["decode-named-character-reference@1.3.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q=="],
1327+
12801328 "dedent": ["dedent@1.7.1", "", { "peerDependencies": { "babel-plugin-macros": "^3.1.0" }, "optionalPeers": ["babel-plugin-macros"] }, "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg=="],
12811329
12821330 "deep-eql": ["deep-eql@5.0.2", "", {}, "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q=="],
@@ -1301,10 +1349,14 @@ · 18 unmodified lines
13011349
13021350 "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="],
13031351
1352+ "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="],
1353+
13041354 "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="],
13051355
13061356 "detect-node-es": ["detect-node-es@1.1.0", "", {}, "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="],
13071357
1358+ "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="],
1359+
13081360 "diff": ["diff@8.0.3", "", {}, "sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ=="],
13091361
13101362 "discord-api-types": ["discord-api-types@0.38.38", "", {}, "sha512-7qcM5IeZrfb+LXW07HvoI5L+j4PQeMZXEkSm1htHAHh4Y9JSMXBWjy/r7zmUCOj4F7zNjMcm7IMWr131MT2h0Q=="],
@@ -1343,6 +1395,8 @@ · 32 unmodified lines
13431395
13441396 "enhanced-resolve": ["enhanced-resolve@5.19.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.0" } }, "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg=="],
13451397
1398+ "entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
1399+
13461400 "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="],
13471401
13481402 "error-ex": ["error-ex@1.3.4", "", { "dependencies": { "is-arrayish": "^0.2.1" } }, "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ=="],
@@ -1407,6 +1461,8 @@ · 58 unmodified lines
14071461
14081462 "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="],
14091463
1464+ "estree-util-is-identifier-name": ["estree-util-is-identifier-name@3.0.0", "", {}, "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg=="],
1465+
14101466 "estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="],
14111467
14121468 "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="],
@@ -1555,6 +1611,24 @@ · 142 unmodified lines
15551611
15561612 "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="],
15571613
1614+ "hast-util-from-parse5": ["hast-util-from-parse5@8.0.3", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", "hastscript": "^9.0.0", "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" } }, "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg=="],
1615+
1616+ "hast-util-parse-selector": ["hast-util-parse-selector@4.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A=="],
1617+
1618+ "hast-util-raw": ["hast-util-raw@9.1.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "hast-util-from-parse5": "^8.0.0", "hast-util-to-parse5": "^8.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "parse5": "^7.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw=="],
1619+
1620+ "hast-util-sanitize": ["hast-util-sanitize@5.0.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@ungap/structured-clone": "^1.0.0", "unist-util-position": "^5.0.0" } }, "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg=="],
1621+
1622+ "hast-util-to-html": ["hast-util-to-html@9.0.5", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-whitespace": "^3.0.0", "html-void-elements": "^3.0.0", "mdast-util-to-hast": "^13.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "stringify-entities": "^4.0.0", "zwitch": "^2.0.4" } }, "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw=="],
1623+
1624+ "hast-util-to-jsx-runtime": ["hast-util-to-jsx-runtime@2.3.6", "", { "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "hast-util-whitespace": "^3.0.0", "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" } }, "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg=="],
1625+
1626+ "hast-util-to-parse5": ["hast-util-to-parse5@8.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" } }, "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA=="],
1627+
1628+ "hast-util-whitespace": ["hast-util-whitespace@3.0.0", "", { "dependencies": { "@types/hast": "^3.0.0" } }, "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw=="],
1629+
1630+ "hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="],
1631+
15581632 "headers-polyfill": ["headers-polyfill@4.0.3", "", {}, "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ=="],
15591633
15601634 "hermes-estree": ["hermes-estree@0.25.1", "", {}, "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw=="],
@@ -1565,6 +1639,10 @@ · 4 unmodified lines
15651639
15661640 "hookable": ["hookable@5.5.3", "", {}, "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="],
15671641
1642+ "html-url-attributes": ["html-url-attributes@3.0.1", "", {}, "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ=="],
1643+
1644+ "html-void-elements": ["html-void-elements@3.0.0", "", {}, "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg=="],
1645+
15681646 "http-errors": ["http-errors@2.0.1", "", { "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", "setprototypeof": "~1.2.0", "statuses": "~2.0.2", "toidentifier": "~1.0.1" } }, "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="],
15691647
15701648 "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="],
@@ -1587,6 +1665,8 @@ · 16 unmodified lines
15871665
15881666 "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
15891667
1668+ "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="],
1669+
15901670 "internal-slot": ["internal-slot@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", "side-channel": "^1.1.0" } }, "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw=="],
15911671
15921672 "ip-address": ["ip-address@10.0.1", "", {}, "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA=="],
@@ -1597,6 +1677,10 @@ · 4 unmodified lines
15971677
15981678 "iron-webcrypto": ["iron-webcrypto@2.0.0", "", { "dependencies": { "uint8array-extras": "^1.5.0" } }, "sha512-rtffZKDUHciZElM8mjFCufBC7nVhCxHYyWHESqs89OioEDz4parOofd8/uhrejh/INhQFfYQfByS22LlezR9sQ=="],
15991679
1680+ "is-alphabetical": ["is-alphabetical@2.0.1", "", {}, "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ=="],
1681+
1682+ "is-alphanumerical": ["is-alphanumerical@2.0.1", "", { "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" } }, "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw=="],
1683+
16001684 "is-array-buffer": ["is-array-buffer@3.0.5", "", { "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" } }, "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A=="],
16011685
16021686 "is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="],
@@ -1617,6 +1701,8 @@ · 14 unmodified lines
16171701
16181702 "is-date-object": ["is-date-object@1.1.0", "", { "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" } }, "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg=="],
16191703
1704+ "is-decimal": ["is-decimal@2.0.1", "", {}, "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A=="],
1705+
16201706 "is-docker": ["is-docker@3.0.0", "", { "bin": { "is-docker": "cli.js" } }, "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="],
16211707
16221708 "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
@@ -1629,6 +1715,8 @@ · 6 unmodified lines
16291715
16301716 "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
16311717
1718+ "is-hexadecimal": ["is-hexadecimal@2.0.1", "", {}, "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg=="],
1719+
16321720 "is-in-ssh": ["is-in-ssh@1.0.0", "", {}, "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw=="],
16331721
16341722 "is-inside-container": ["is-inside-container@1.0.0", "", { "dependencies": { "is-docker": "^3.0.0" }, "bin": { "is-inside-container": "cli.js" } }, "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA=="],
@@ -1771,6 +1859,8 @@ · 136 unmodified lines
17711859
17721860 "long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="],
17731861
1862+ "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="],
1863+
17741864 "loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
17751865
17761866 "loupe": ["loupe@3.2.1", "", {}, "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ=="],
@@ -1783,10 +1873,42 @@ · 6 unmodified lines
17831873
17841874 "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
17851875
1876+ "markdown-table": ["markdown-table@3.0.4", "", {}, "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw=="],
1877+
17861878 "marked": ["marked@14.0.0", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ=="],
17871879
17881880 "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="],
17891881
1882+ "mdast-util-find-and-replace": ["mdast-util-find-and-replace@3.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg=="],
1883+
1884+ "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="],
1885+
1886+ "mdast-util-gfm": ["mdast-util-gfm@3.1.0", "", { "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", "mdast-util-gfm-footnote": "^2.0.0", "mdast-util-gfm-strikethrough": "^2.0.0", "mdast-util-gfm-table": "^2.0.0", "mdast-util-gfm-task-list-item": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ=="],
1887+
1888+ "mdast-util-gfm-autolink-literal": ["mdast-util-gfm-autolink-literal@2.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-find-and-replace": "^3.0.0", "micromark-util-character": "^2.0.0" } }, "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ=="],
1889+
1890+ "mdast-util-gfm-footnote": ["mdast-util-gfm-footnote@2.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0" } }, "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ=="],
1891+
1892+ "mdast-util-gfm-strikethrough": ["mdast-util-gfm-strikethrough@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg=="],
1893+
1894+ "mdast-util-gfm-table": ["mdast-util-gfm-table@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "markdown-table": "^3.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg=="],
1895+
1896+ "mdast-util-gfm-task-list-item": ["mdast-util-gfm-task-list-item@2.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ=="],
1897+
1898+ "mdast-util-mdx-expression": ["mdast-util-mdx-expression@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ=="],
1899+
1900+ "mdast-util-mdx-jsx": ["mdast-util-mdx-jsx@3.2.0", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "ccount": "^2.0.0", "devlop": "^1.1.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" } }, "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q=="],
1901+
1902+ "mdast-util-mdxjs-esm": ["mdast-util-mdxjs-esm@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0" } }, "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg=="],
1903+
1904+ "mdast-util-phrasing": ["mdast-util-phrasing@4.1.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" } }, "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w=="],
1905+
1906+ "mdast-util-to-hast": ["mdast-util-to-hast@13.2.1", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA=="],
1907+
1908+ "mdast-util-to-markdown": ["mdast-util-to-markdown@2.1.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" } }, "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA=="],
1909+
1910+ "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="],
1911+
17901912 "media-typer": ["media-typer@1.1.0", "", {}, "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="],
17911913
17921914 "memoirist": ["memoirist@0.4.0", "", {}, "sha512-zxTgA0mSYELa66DimuNQDvyLq36AwDlTuVRbnQtB+VuTcKWm5Qc4z3WkSpgsFWHNhexqkIooqpv4hdcqrX5Nmg=="],
@@ -1797,6 +1919,62 @@ · 4 unmodified lines
17971919
17981920 "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
17991921
1922+ "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="],
1923+
1924+ "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="],
1925+
1926+ "micromark-extension-gfm": ["micromark-extension-gfm@3.0.0", "", { "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", "micromark-extension-gfm-strikethrough": "^2.0.0", "micromark-extension-gfm-table": "^2.0.0", "micromark-extension-gfm-tagfilter": "^2.0.0", "micromark-extension-gfm-task-list-item": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w=="],
1927+
1928+ "micromark-extension-gfm-autolink-literal": ["micromark-extension-gfm-autolink-literal@2.1.0", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw=="],
1929+
1930+ "micromark-extension-gfm-footnote": ["micromark-extension-gfm-footnote@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw=="],
1931+
1932+ "micromark-extension-gfm-strikethrough": ["micromark-extension-gfm-strikethrough@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw=="],
1933+
1934+ "micromark-extension-gfm-table": ["micromark-extension-gfm-table@2.1.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg=="],
1935+
1936+ "micromark-extension-gfm-tagfilter": ["micromark-extension-gfm-tagfilter@2.0.0", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg=="],
1937+
1938+ "micromark-extension-gfm-task-list-item": ["micromark-extension-gfm-task-list-item@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw=="],
1939+
1940+ "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="],
1941+
1942+ "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="],
1943+
1944+ "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="],
1945+
1946+ "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="],
1947+
1948+ "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="],
1949+
1950+ "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="],
1951+
1952+ "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="],
1953+
1954+ "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="],
1955+
1956+ "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="],
1957+
1958+ "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="],
1959+
1960+ "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="],
1961+
1962+ "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="],
1963+
1964+ "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="],
1965+
1966+ "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="],
1967+
1968+ "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="],
1969+
1970+ "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="],
1971+
1972+ "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="],
1973+
1974+ "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="],
1975+
1976+ "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="],
1977+
18001978 "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
18011979
18021980 "mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="],
@@ -1875,6 +2053,10 @@ · 72 unmodified lines
18752053
18762054 "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="],
18772055
2056+ "oniguruma-parser": ["oniguruma-parser@0.12.1", "", {}, "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w=="],
2057+
2058+ "oniguruma-to-es": ["oniguruma-to-es@4.3.4", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA=="],
2059+
18782060 "open": ["open@11.0.0", "", { "dependencies": { "default-browser": "^5.4.0", "define-lazy-prop": "^3.0.0", "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", "powershell-utils": "^0.1.0", "wsl-utils": "^0.3.0" } }, "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw=="],
18792061
18802062 "openai": ["openai@6.10.0", "", { "peerDependencies": { "ws": "^8.18.0", "zod": "^3.25 || ^4.0" }, "optionalPeers": ["ws", "zod"], "bin": { "openai": "bin/cli" } }, "sha512-ITxOGo7rO3XRMiKA5l7tQ43iNNu+iXGFAcf2t+aWVzzqRaS0i7m1K2BhxNdaveB+5eENhO0VY1FkiZzhBk4v3A=="],
@@ -1905,10 +2087,14 @@ · 24 unmodified lines
19052087
19062088 "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
19072089
2090+ "parse-entities": ["parse-entities@4.0.2", "", { "dependencies": { "@types/unist": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", "is-alphanumerical": "^2.0.0", "is-decimal": "^2.0.0", "is-hexadecimal": "^2.0.0" } }, "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw=="],
2091+
19082092 "parse-json": ["parse-json@8.3.0", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "index-to-position": "^1.1.0", "type-fest": "^4.39.1" } }, "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ=="],
19092093
19102094 "parse-ms": ["parse-ms@4.0.0", "", {}, "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw=="],
19112095
2096+ "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="],
2097+
19122098 "parseurl": ["parseurl@1.3.3", "", {}, "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="],
19132099
19142100 "partial-json": ["partial-json@0.1.7", "", {}, "sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA=="],
@@ -1955,6 +2141,8 @@ · 40 unmodified lines
19552141
19562142 "prop-types": ["prop-types@15.8.1", "", { "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="],
19572143
2144+ "property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="],
2145+
19582146 "protobufjs": ["protobufjs@7.5.4", "", { "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.4", "@protobufjs/eventemitter": "^1.1.0", "@protobufjs/fetch": "^1.1.0", "@protobufjs/float": "^1.0.2", "@protobufjs/inquire": "^1.1.0", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", "@types/node": ">=13.7.0", "long": "^5.0.0" } }, "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg=="],
19592147
19602148 "proxy-addr": ["proxy-addr@2.0.7", "", { "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="],
@@ -2003,8 +2191,30 @@ · 42 unmodified lines
20032191
20042192 "reflect.getprototypeof": ["reflect.getprototypeof@1.0.10", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-abstract": "^1.23.9", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "get-intrinsic": "^1.2.7", "get-proto": "^1.0.1", "which-builtin-type": "^1.2.1" } }, "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw=="],
20052193
2194+ "regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="],
2195+
2196+ "regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="],
2197+
2198+ "regex-utilities": ["regex-utilities@2.3.0", "", {}, "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng=="],
2199+
20062200 "regexp.prototype.flags": ["regexp.prototype.flags@1.5.4", "", { "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "get-proto": "^1.0.1", "gopd": "^1.2.0", "set-function-name": "^2.0.2" } }, "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA=="],
20072201
2202+ "rehype-harden": ["rehype-harden@1.1.7", "", { "dependencies": { "unist-util-visit": "^5.0.0" } }, "sha512-j5DY0YSK2YavvNGV+qBHma15J9m0WZmRe8posT5AtKDS6TNWtMVTo6RiqF8SidfcASYz8f3k2J/1RWmq5zTXUw=="],
2203+
2204+ "rehype-raw": ["rehype-raw@7.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", "vfile": "^6.0.0" } }, "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww=="],
2205+
2206+ "rehype-sanitize": ["rehype-sanitize@6.0.0", "", { "dependencies": { "@types/hast": "^3.0.0", "hast-util-sanitize": "^5.0.0" } }, "sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg=="],
2207+
2208+ "remark-gfm": ["remark-gfm@4.0.1", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", "micromark-extension-gfm": "^3.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", "unified": "^11.0.0" } }, "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg=="],
2209+
2210+ "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="],
2211+
2212+ "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="],
2213+
2214+ "remark-stringify": ["remark-stringify@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", "unified": "^11.0.0" } }, "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw=="],
2215+
2216+ "remend": ["remend@1.1.0", "", {}, "sha512-JENGyuIhTwzUfCarW43X4r9cehoqTo9QyYxfNDZSud2AmqeuWjZ5pfybasTa4q0dxTJAj5m8NB+wR+YueAFpxQ=="],
2217+
20082218 "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
20092219
20102220 "require-from-string": ["require-from-string@2.0.2", "", {}, "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="],
@@ -2069,6 +2279,8 @@ · 58 unmodified lines
20692279
20702280 "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
20712281
2282+ "shiki": ["shiki@3.22.0", "", { "dependencies": { "@shikijs/core": "3.22.0", "@shikijs/engine-javascript": "3.22.0", "@shikijs/engine-oniguruma": "3.22.0", "@shikijs/langs": "3.22.0", "@shikijs/themes": "3.22.0", "@shikijs/types": "3.22.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-LBnhsoYEe0Eou4e1VgJACes+O6S6QC0w71fCSp5Oya79inkwkm15gQ1UF6VtQ8j/taMDh79hAB49WUk8ALQW3g=="],
2283+
20722284 "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="],
20732285
20742286 "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="],
@@ -2095,6 +2307,8 @@ · 20 unmodified lines
20952307
20962308 "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
20972309
2310+ "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="],
2311+
20982312 "stable-hash": ["stable-hash@0.0.5", "", {}, "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA=="],
20992313
21002314 "stackback": ["stackback@0.0.2", "", {}, "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw=="],
@@ -2109,6 +2323,8 @@ · 8 unmodified lines
21092323
21102324 "stop-iteration-iterator": ["stop-iteration-iterator@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" } }, "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ=="],
21112325
2326+ "streamdown": ["streamdown@2.1.0", "", { "dependencies": { "clsx": "^2.1.1", "hast-util-to-jsx-runtime": "^2.3.6", "html-url-attributes": "^3.0.1", "marked": "^17.0.1", "rehype-harden": "^1.1.7", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remend": "1.1.0", "tailwind-merge": "^3.4.0", "unified": "^11.0.5", "unist-util-visit": "^5.0.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0" } }, "sha512-u9gWd0AmjKg1d+74P44XaPlGrMeC21oDOSIhjGNEYMAttDMzCzlJO6lpTyJ9JkSinQQF65YcK4eOd3q9iTvULw=="],
2327+
21122328 "strict-event-emitter": ["strict-event-emitter@0.5.1", "", {}, "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ=="],
21132329
21142330 "string-width": ["string-width@7.2.0", "", { "dependencies": { "emoji-regex": "^10.3.0", "get-east-asian-width": "^1.0.0", "strip-ansi": "^7.1.0" } }, "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ=="],
@@ -2127,6 +2343,8 @@ · 12 unmodified lines
21272343
21282344 "string.prototype.trimstart": ["string.prototype.trimstart@1.0.8", "", { "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" } }, "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg=="],
21292345
2346+ "stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="],
2347+
21302348 "stringify-object": ["stringify-object@5.0.0", "", { "dependencies": { "get-own-enumerable-keys": "^1.0.0", "is-obj": "^3.0.0", "is-regexp": "^3.1.0" } }, "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg=="],
21312349
21322350 "strip-ansi": ["strip-ansi@7.1.2", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA=="],
@@ -2147,6 +2365,10 @@ · 14 unmodified lines
21472365
21482366 "strtok3": ["strtok3@10.3.4", "", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg=="],
21492367
2368+ "style-to-js": ["style-to-js@1.1.21", "", { "dependencies": { "style-to-object": "1.0.14" } }, "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ=="],
2369+
2370+ "style-to-object": ["style-to-object@1.0.14", "", { "dependencies": { "inline-style-parser": "0.2.7" } }, "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw=="],
2371+
21502372 "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="],
21512373
21522374 "supports-color": ["supports-color@10.2.2", "", {}, "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g=="],
@@ -2187,6 +2409,10 @@ · 34 unmodified lines
21872409
21882410 "tough-cookie": ["tough-cookie@6.0.0", "", { "dependencies": { "tldts": "^7.0.5" } }, "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w=="],
21892411
2412+ "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="],
2413+
2414+ "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="],
2415+
21902416 "ts-algebra": ["ts-algebra@2.0.0", "", {}, "sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw=="],
21912417
21922418 "ts-api-utils": ["ts-api-utils@2.4.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA=="],
@@ -2237,6 +2463,18 @@ · 44 unmodified lines
22372463
22382464 "unicorn-magic": ["unicorn-magic@0.3.0", "", {}, "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA=="],
22392465
2466+ "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="],
2467+
2468+ "unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="],
2469+
2470+ "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="],
2471+
2472+ "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="],
2473+
2474+ "unist-util-visit": ["unist-util-visit@5.1.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg=="],
2475+
2476+ "unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="],
2477+
22402478 "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
22412479
22422480 "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
@@ -2263,12 +2501,20 @@ · 20 unmodified lines
22632501
22642502 "vary": ["vary@1.1.2", "", {}, "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="],
22652503
2504+ "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="],
2505+
2506+ "vfile-location": ["vfile-location@5.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" } }, "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg=="],
2507+
2508+ "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="],
2509+
22662510 "vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="],
22672511
22682512 "vite-node": ["vite-node@3.2.4", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.1", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg=="],
22692513
22702514 "vitest": ["vitest@3.2.4", "", { "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", "@vitest/mocker": "3.2.4", "@vitest/pretty-format": "^3.2.4", "@vitest/runner": "3.2.4", "@vitest/snapshot": "3.2.4", "@vitest/spy": "3.2.4", "@vitest/utils": "3.2.4", "chai": "^5.2.0", "debug": "^4.4.1", "expect-type": "^1.2.1", "magic-string": "^0.30.17", "pathe": "^2.0.3", "picomatch": "^4.0.2", "std-env": "^3.9.0", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinyglobby": "^0.2.14", "tinypool": "^1.1.1", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", "vite-node": "3.2.4", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "@vitest/browser": "3.2.4", "@vitest/ui": "3.2.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@types/debug", "@types/node", "@vitest/browser", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A=="],
22712515
2516+ "web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="],
2517+
22722518 "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
22732519
22742520 "webcrypto-core": ["webcrypto-core@1.8.1", "", { "dependencies": { "@peculiar/asn1-schema": "^2.3.13", "@peculiar/json-schema": "^1.1.12", "asn1js": "^3.0.5", "pvtsutils": "^1.3.5", "tslib": "^2.7.0" } }, "sha512-P+x1MvlNCXlKbLSOY4cYrdreqPG5hbzkmawbcXLKN/mf6DZW0SdNNkZ+sjwsqVkI4A4Ko2sPZmkZtCKY58w83A=="],
@@ -2319,6 +2565,8 @@ · 44 unmodified lines
23192565
23202566 "zod-validation-error": ["zod-validation-error@4.0.2", "", { "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } }, "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ=="],
23212567
2568+ "zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="],
2569+
23222570 "@aws-crypto/sha256-browser/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="],
23232571
23242572 "@aws-crypto/util/@smithy/util-utf8": ["@smithy/util-utf8@2.3.0", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="],
@@ -2425,12 +2673,16 @@ · 100 unmodified lines
24252673
24262674 "log-symbols/is-unicode-supported": ["is-unicode-supported@1.3.0", "", {}, "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ=="],
24272675
2676+ "mdast-util-find-and-replace/escape-string-regexp": ["escape-string-regexp@5.0.0", "", {}, "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw=="],
2677+
24282678 "micromatch/picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
24292679
24302680 "next/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="],
24312681
24322682 "npm-run-path/path-key": ["path-key@4.0.0", "", {}, "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="],
24332683
2684+ "parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
2685+
24342686 "parse-json/type-fest": ["type-fest@4.41.0", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
24352687
24362688 "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
@@ -2447,6 +2699,8 @@ · 10 unmodified lines
24472699
24482700 "sharp/semver": ["semver@7.7.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA=="],
24492701
2702+ "streamdown/marked": ["marked@17.0.1", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-boeBdiS0ghpWcSwoNm/jJBwdpFaMnZWRzjA6SkUMYb40SVaN1x7mmfGKp0jvexGcx+7y2La5zRZsYFZI6Qpypg=="],
2703+
24502704 "string-width/emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="],
24512705
24522706 "string-width-cjs/emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
executor/convex/_generated/api.d.ts+155−85
@@ -5,86 +5,15 @@ · 4 unmodified lines
55 * THIS CODE IS AUTOMATICALLY GENERATED.
66 *
77 * To regenerate, run `npx convex dev`.
8+ *
9+ * NOTE: This file has been post-processed by scripts/postcodegen.ts
10+ * to replace recursive ApiFromModules/FilterApi types with explicit
11+ * declarations, avoiding TS2589 depth errors.
12+ *
813 * @module
914 */
1015
11−import type * as app from "../app.js";
12−import type * as auth from "../auth.js";
13−import type * as billing from "../billing.js";
14−import type * as billingInternal from "../billingInternal.js";
15−import type * as billingSync from "../billingSync.js";
16−import type * as credentialsNode from "../credentialsNode.js";
17−import type * as database from "../database.js";
18−import type * as executor from "../executor.js";
19−import type * as executorNode from "../executorNode.js";
20−import type * as http from "../http.js";
21−import type * as invites from "../invites.js";
22−import type * as lib_adapters_in_process_execution_adapter from "../lib/adapters/in_process_execution_adapter.js";
23−import type * as lib_anonymousSession from "../lib/anonymousSession.js";
24−import type * as lib_credential_providers from "../lib/credential_providers.js";
25−import type * as lib_events from "../lib/events.js";
26−import type * as lib_execution_constants from "../lib/execution_constants.js";
27−import type * as lib_functionBuilders from "../lib/functionBuilders.js";
28−import type * as lib_identity from "../lib/identity.js";
29−import type * as lib_mcp_server from "../lib/mcp_server.js";
30−import type * as lib_runtimes_runtime_core from "../lib/runtimes/runtime_core.js";
31−import type * as lib_slug from "../lib/slug.js";
32−import type * as lib_tool_discovery from "../lib/tool_discovery.js";
33−import type * as lib_tool_sources from "../lib/tool_sources.js";
34−import type * as lib_tools from "../lib/tools.js";
35−import type * as lib_typechecker from "../lib/typechecker.js";
36−import type * as lib_types from "../lib/types.js";
37−import type * as lib_utils from "../lib/utils.js";
38−import type * as openApiSpecCache from "../openApiSpecCache.js";
39−import type * as organizationMembers from "../organizationMembers.js";
40−import type * as organizations from "../organizations.js";
41−import type * as workspace from "../workspace.js";
42−import type * as workspaceAuthInternal from "../workspaceAuthInternal.js";
43−import type * as workspaceToolCache from "../workspaceToolCache.js";
44−import type * as workspaces from "../workspaces.js";
45−
46−import type {
47− ApiFromModules,
48− FilterApi,
49− FunctionReference,
50−} from "convex/server";
51−
52−declare const fullApi: ApiFromModules<{
53− app: typeof app;
54− auth: typeof auth;
55− billing: typeof billing;
56− billingInternal: typeof billingInternal;
57− billingSync: typeof billingSync;
58− credentialsNode: typeof credentialsNode;
59− database: typeof database;
60− executor: typeof executor;
61− executorNode: typeof executorNode;
62− http: typeof http;
63− invites: typeof invites;
64− "lib/adapters/in_process_execution_adapter": typeof lib_adapters_in_process_execution_adapter;
65− "lib/anonymousSession": typeof lib_anonymousSession;
66− "lib/credential_providers": typeof lib_credential_providers;
67− "lib/events": typeof lib_events;
68− "lib/execution_constants": typeof lib_execution_constants;
69− "lib/functionBuilders": typeof lib_functionBuilders;
70− "lib/identity": typeof lib_identity;
71− "lib/mcp_server": typeof lib_mcp_server;
72− "lib/runtimes/runtime_core": typeof lib_runtimes_runtime_core;
73− "lib/slug": typeof lib_slug;
74− "lib/tool_discovery": typeof lib_tool_discovery;
75− "lib/tool_sources": typeof lib_tool_sources;
76− "lib/tools": typeof lib_tools;
77− "lib/typechecker": typeof lib_typechecker;
78− "lib/types": typeof lib_types;
79− "lib/utils": typeof lib_utils;
80− openApiSpecCache: typeof openApiSpecCache;
81− organizationMembers: typeof organizationMembers;
82− organizations: typeof organizations;
83− workspace: typeof workspace;
84− workspaceAuthInternal: typeof workspaceAuthInternal;
85− workspaceToolCache: typeof workspaceToolCache;
86− workspaces: typeof workspaces;
87−}>;
16+import type { FunctionReference } from "convex/server";
8817
8918 /**
9019 * A utility for referencing Convex functions in your app's public API.
@@ -94,10 +23,74 @@ declare const fullApi: ApiFromModules<{ · 3 unmodified lines
9423 * const myFunctionReference = api.myModule.myFunction;
9524 * ```
9625 */
97−export declare const api: FilterApi<
98− typeof fullApi,
99− FunctionReference<any, "public">
100−>;
26+export declare const api: {
27+ app: {
28+ getClientConfig: FunctionReference<"query", "public", any, any>;
29+ getCurrentAccount: FunctionReference<"query", "public", any, any>;
30+ };
31+ auth: {
32+ bootstrapCurrentWorkosAccount: FunctionReference<"mutation", "public", any, any>;
33+ };
34+ billing: {
35+ getSummary: FunctionReference<"query", "public", any, any>;
36+ createSubscriptionCheckout: FunctionReference<"action", "public", any, any>;
37+ createCustomerPortal: FunctionReference<"action", "public", any, any>;
38+ retrySeatSync: FunctionReference<"mutation", "public", any, any>;
39+ };
40+ credentialsNode: {
41+ upsertCredential: FunctionReference<"action", "public", any, any>;
42+ };
43+ executor: {
44+ createTask: FunctionReference<"mutation", "public", any, any>;
45+ resolveApproval: FunctionReference<"mutation", "public", any, any>;
46+ };
47+ executorNode: {
48+ listTools: FunctionReference<"action", "public", any, any>;
49+ listToolsWithWarnings: FunctionReference<"action", "public", any, any>;
50+ };
51+ invites: {
52+ list: FunctionReference<"query", "public", any, any>;
53+ create: FunctionReference<"mutation", "public", any, any>;
54+ revoke: FunctionReference<"mutation", "public", any, any>;
55+ };
56+ organizationMembers: {
57+ list: FunctionReference<"query", "public", any, any>;
58+ updateRole: FunctionReference<"mutation", "public", any, any>;
59+ updateBillable: FunctionReference<"mutation", "public", any, any>;
60+ remove: FunctionReference<"mutation", "public", any, any>;
61+ };
62+ organizations: {
63+ create: FunctionReference<"mutation", "public", any, any>;
64+ listMine: FunctionReference<"query", "public", any, any>;
65+ getNavigationState: FunctionReference<"query", "public", any, any>;
66+ getOrganizationAccess: FunctionReference<"query", "public", any, any>;
67+ resolveWorkosOrganizationId: FunctionReference<"query", "public", any, any>;
68+ };
69+ workspace: {
70+ bootstrapAnonymousSession: FunctionReference<"mutation", "public", any, any>;
71+ listRuntimeTargets: FunctionReference<"query", "public", any, any>;
72+ getTask: FunctionReference<"query", "public", any, any>;
73+ getTaskInWorkspace: FunctionReference<"query", "public", any, any>;
74+ listTasks: FunctionReference<"query", "public", any, any>;
75+ listApprovals: FunctionReference<"query", "public", any, any>;
76+ listPendingApprovals: FunctionReference<"query", "public", any, any>;
77+ listTaskEvents: FunctionReference<"query", "public", any, any>;
78+ upsertAccessPolicy: FunctionReference<"mutation", "public", any, any>;
79+ listAccessPolicies: FunctionReference<"query", "public", any, any>;
80+ upsertCredential: FunctionReference<"mutation", "public", any, any>;
81+ listCredentials: FunctionReference<"query", "public", any, any>;
82+ listCredentialProviders: FunctionReference<"query", "public", any, any>;
83+ resolveCredential: FunctionReference<"query", "public", any, any>;
84+ upsertToolSource: FunctionReference<"mutation", "public", any, any>;
85+ listToolSources: FunctionReference<"query", "public", any, any>;
86+ deleteToolSource: FunctionReference<"mutation", "public", any, any>;
87+ };
88+ workspaces: {
89+ create: FunctionReference<"mutation", "public", any, any>;
90+ list: FunctionReference<"query", "public", any, any>;
91+ generateWorkspaceIconUploadUrl: FunctionReference<"mutation", "public", any, any>;
92+ };
93+};
10194
10295 /**
10396 * A utility for referencing Convex functions in your app's internal API.
@@ -107,10 +100,86 @@ export declare const api: FilterApi< · 3 unmodified lines
107100 * const myFunctionReference = internal.myModule.myFunction;
108101 * ```
109102 */
110−export declare const internal: FilterApi<
111− typeof fullApi,
112− FunctionReference<any, "internal">
113−>;
103+export declare const internal: {
104+ auth: {
105+ authKitEvent: FunctionReference<"mutation", "internal", any, any>;
106+ };
107+ billingInternal: {
108+ getBillingAccessForRequest: FunctionReference<"query", "internal", any, any>;
109+ getSeatSyncSnapshot: FunctionReference<"query", "internal", any, any>;
110+ upsertCustomerLink: FunctionReference<"mutation", "internal", any, any>;
111+ bumpSeatSyncVersion: FunctionReference<"mutation", "internal", any, any>;
112+ upsertSeatState: FunctionReference<"mutation", "internal", any, any>;
113+ };
114+ billingSync: {
115+ syncSeatQuantity: FunctionReference<"action", "internal", any, any>;
116+ };
117+ database: {
118+ createTask: FunctionReference<"mutation", "internal", any, any>;
119+ getTask: FunctionReference<"query", "internal", any, any>;
120+ listTasks: FunctionReference<"query", "internal", any, any>;
121+ listQueuedTaskIds: FunctionReference<"query", "internal", any, any>;
122+ listRuntimeTargets: FunctionReference<"query", "internal", any, any>;
123+ getTaskInWorkspace: FunctionReference<"query", "internal", any, any>;
124+ markTaskRunning: FunctionReference<"mutation", "internal", any, any>;
125+ markTaskFinished: FunctionReference<"mutation", "internal", any, any>;
126+ createApproval: FunctionReference<"mutation", "internal", any, any>;
127+ getApproval: FunctionReference<"query", "internal", any, any>;
128+ listApprovals: FunctionReference<"query", "internal", any, any>;
129+ listPendingApprovals: FunctionReference<"query", "internal", any, any>;
130+ resolveApproval: FunctionReference<"mutation", "internal", any, any>;
131+ getApprovalInWorkspace: FunctionReference<"query", "internal", any, any>;
132+ createAgentTask: FunctionReference<"mutation", "internal", any, any>;
133+ getAgentTask: FunctionReference<"query", "internal", any, any>;
134+ updateAgentTask: FunctionReference<"mutation", "internal", any, any>;
135+ bootstrapAnonymousSession: FunctionReference<"mutation", "internal", any, any>;
136+ upsertAccessPolicy: FunctionReference<"mutation", "internal", any, any>;
137+ listAccessPolicies: FunctionReference<"query", "internal", any, any>;
138+ upsertCredential: FunctionReference<"mutation", "internal", any, any>;
139+ listCredentials: FunctionReference<"query", "internal", any, any>;
140+ listCredentialProviders: FunctionReference<"query", "internal", any, any>;
141+ resolveCredential: FunctionReference<"query", "internal", any, any>;
142+ upsertToolSource: FunctionReference<"mutation", "internal", any, any>;
143+ listToolSources: FunctionReference<"query", "internal", any, any>;
144+ deleteToolSource: FunctionReference<"mutation", "internal", any, any>;
145+ createTaskEvent: FunctionReference<"mutation", "internal", any, any>;
146+ listTaskEvents: FunctionReference<"query", "internal", any, any>;
147+ };
148+ executor: {
149+ createTaskInternal: FunctionReference<"mutation", "internal", any, any>;
150+ resolveApprovalInternal: FunctionReference<"mutation", "internal", any, any>;
151+ appendRuntimeOutput: FunctionReference<"mutation", "internal", any, any>;
152+ };
153+ executorNode: {
154+ listToolsInternal: FunctionReference<"action", "internal", any, any>;
155+ listToolsWithWarningsInternal: FunctionReference<"action", "internal", any, any>;
156+ handleExternalToolCall: FunctionReference<"action", "internal", any, any>;
157+ runTask: FunctionReference<"action", "internal", any, any>;
158+ };
159+ invites: {
160+ deliverWorkosInvite: FunctionReference<"action", "internal", any, any>;
161+ revokeWorkosInvite: FunctionReference<"action", "internal", any, any>;
162+ getInviteDeliveryContext: FunctionReference<"query", "internal", any, any>;
163+ linkOrganizationToWorkos: FunctionReference<"mutation", "internal", any, any>;
164+ getInviteById: FunctionReference<"query", "internal", any, any>;
165+ markInviteDelivered: FunctionReference<"mutation", "internal", any, any>;
166+ markInviteDeliveryFailed: FunctionReference<"mutation", "internal", any, any>;
167+ };
168+ openApiSpecCache: {
169+ getEntry: FunctionReference<"query", "internal", any, any>;
170+ putEntry: FunctionReference<"mutation", "internal", any, any>;
171+ pruneExpired: FunctionReference<"mutation", "internal", any, any>;
172+ };
173+ workspaceAuthInternal: {
174+ getWorkspaceAccessForRequest: FunctionReference<"query", "internal", any, any>;
175+ getWorkspaceAccessForWorkosSubject: FunctionReference<"query", "internal", any, any>;
176+ };
177+ workspaceToolCache: {
178+ getEntry: FunctionReference<"query", "internal", any, any>;
179+ putEntry: FunctionReference<"mutation", "internal", any, any>;
180+ getDtsStorageIds: FunctionReference<"query", "internal", any, any>;
181+ };
182+};
114183
115184 export declare const components: {
116185 workOSAuthKit: {
@@ -502,3 +571,4 @@ export declare const components: { · 385 unmodified lines
502571 };
503572 };
504573 };
574+
executor/convex/app.ts+1−1
@@ -1,5 +1,5 @@
11 import { query } from "./_generated/server";
2−import { optionalAccountQuery } from "./lib/functionBuilders";
2+import { optionalAccountQuery } from "../lib/functionBuilders";
33
44 const workosEnabled = Boolean(process.env.WORKOS_CLIENT_ID && process.env.WORKOS_API_KEY);
55
executor/convex/auth.ts+1−1
@@ -3,7 +3,7 @@ import { components, internal } from "./_generated/api"; · 2 unmodified lines
33 import type { DataModel, Doc, Id } from "./_generated/dataModel";
44 import type { MutationCtx } from "./_generated/server";
55 import { internalMutation, mutation } from "./_generated/server";
6−import { ensureUniqueSlug } from "./lib/slug";
6+import { ensureUniqueSlug } from "../lib/slug";
77
88 type DbCtx = Pick<MutationCtx, "db">;
99 type RunQueryCtx = Pick<MutationCtx, "runQuery">;
executor/convex/billing.ts+2−2
@@ -4,8 +4,8 @@ import type { Id } from "./_generated/dataModel"; · 3 unmodified lines
44 import { components, internal } from "./_generated/api";
55 import type { MutationCtx, QueryCtx } from "./_generated/server";
66 import { action } from "./_generated/server";
7−import { organizationMutation, organizationQuery } from "./lib/functionBuilders";
8−import { canManageBilling, isAdminRole } from "./lib/identity";
7+import { organizationMutation, organizationQuery } from "../lib/functionBuilders";
8+import { canManageBilling, isAdminRole } from "../lib/identity";
99
1010 const stripeClient = new StripeSubscriptions(components.stripe, {});
1111
executor/convex/billingInternal.ts+1−1
@@ -2,7 +2,7 @@ import { v } from "convex/values"; · 1 unmodified line
22 import type { Doc, Id } from "./_generated/dataModel";
33 import type { MutationCtx, QueryCtx } from "./_generated/server";
44 import { internalMutation, internalQuery } from "./_generated/server";
5−import { internalOrganizationQuery } from "./lib/functionBuilders";
5+import { internalOrganizationQuery } from "../lib/functionBuilders";
66
77 type DbCtx = Pick<QueryCtx, "db"> | Pick<MutationCtx, "db">;
88
executor/convex/database.ts+1−1
@@ -2,7 +2,7 @@ import { v } from "convex/values"; · 1 unmodified line
22 import type { Doc } from "./_generated/dataModel";
33 import type { MutationCtx, QueryCtx } from "./_generated/server";
44 import { internalMutation, internalQuery } from "./_generated/server";
5−import { ensureUniqueSlug } from "./lib/slug";
5+import { ensureUniqueSlug } from "../lib/slug";
66 import type { TaskStatus } from "@executor/contracts";
77
88 const DEFAULT_TIMEOUT_MS = 300_000;
executor/convex/executor.ts+2−2
@@ -2,8 +2,8 @@ import { v } from "convex/values"; · 1 unmodified line
22 import { internal } from "./_generated/api";
33 import type { MutationCtx } from "./_generated/server";
44 import { internalMutation } from "./_generated/server";
5−import { workspaceMutation } from "./lib/functionBuilders";
6−import type { ApprovalRecord, TaskRecord } from "./lib/types";
5+import { workspaceMutation } from "../lib/functionBuilders";
6+import type { ApprovalRecord, TaskRecord } from "../lib/types";
77
88 const DEFAULT_TIMEOUT_MS = 300_000;
99
executor/convex/executorNode.ts+9−9
@@ -3,11 +3,11 @@ · 2 unmodified lines
33 import { v } from "convex/values";
44 import { internal } from "./_generated/api";
55 import { action, internalAction } from "./_generated/server";
6−import { InProcessExecutionAdapter } from "./lib/adapters/in_process_execution_adapter";
7−import { resolveCredentialPayload } from "./lib/credential_providers";
8−import { APPROVAL_DENIED_PREFIX } from "./lib/execution_constants";
9−import { runCodeWithAdapter } from "./lib/runtimes/runtime_core";
10−import { createDiscoverTool } from "./lib/tool_discovery";
6+import { InProcessExecutionAdapter } from "../lib/adapters/in_process_execution_adapter";
7+import { resolveCredentialPayload } from "../lib/credential_providers";
8+import { APPROVAL_DENIED_PREFIX } from "../lib/execution_constants";
9+import { runCodeWithAdapter } from "../lib/runtimes/runtime_core";
10+import { createDiscoverTool } from "../lib/tool_discovery";
1111 import {
1212 buildOpenApiToolsFromPrepared,
1313 loadExternalTools,
@@ -18,8 +18,8 @@ import { · 4 unmodified lines
1818 type PreparedOpenApiSpec,
1919 type ExternalToolSourceConfig,
2020 type WorkspaceToolSnapshot,
21−} from "./lib/tool_sources";
22−import { DEFAULT_TOOLS } from "./lib/tools";
21+} from "../lib/tool_sources";
22+import { DEFAULT_TOOLS } from "../lib/tools";
2323 import type {
2424 AccessPolicyRecord,
2525 CredentialScope,
@@ -33,8 +33,8 @@ import type { · 7 unmodified lines
3333 ToolDescriptor,
3434 ToolSourceRecord,
3535 ToolRunContext,
36−} from "./lib/types";
37−import { asPayload, describeError } from "./lib/utils";
36+} from "../lib/types";
37+import { asPayload, describeError } from "../lib/utils";
3838
3939 function createApprovalId(): string {
4040 return `approval_${crypto.randomUUID()}`;
executor/convex/http.ts+2−2
@@ -4,8 +4,8 @@ import { httpRouter } from "convex/server"; · 3 unmodified lines
44 import { components, internal } from "./_generated/api";
55 import { httpAction } from "./_generated/server";
66 import { authKit } from "./auth";
7−import { handleMcpRequest, type McpWorkspaceContext } from "./lib/mcp_server";
8−import type { AnonymousContext, PendingApprovalRecord, TaskRecord, ToolDescriptor } from "./lib/types";
7+import { handleMcpRequest, type McpWorkspaceContext } from "../lib/mcp_server";
8+import type { AnonymousContext, PendingApprovalRecord, TaskRecord, ToolDescriptor } from "../lib/types";
99
1010 const http = httpRouter();
1111 const internalToken = process.env.EXECUTOR_INTERNAL_TOKEN ?? null;
executor/convex/invites.ts+1−1
@@ -2,7 +2,7 @@ import { WorkOS } from "@workos-inc/node"; · 1 unmodified line
22 import { v } from "convex/values";
33 import { internal } from "./_generated/api";
44 import { internalAction, internalMutation, internalQuery } from "./_generated/server";
5−import { organizationMutation, organizationQuery } from "./lib/functionBuilders";
5+import { organizationMutation, organizationQuery } from "../lib/functionBuilders";
66
77 const workosEnabled = Boolean(process.env.WORKOS_CLIENT_ID && process.env.WORKOS_API_KEY);
88 const workosClient = process.env.WORKOS_API_KEY ? new WorkOS(process.env.WORKOS_API_KEY) : null;
executor/convex/organizationMembers.ts+2−2
@@ -1,7 +1,7 @@
11 import { v } from "convex/values";
22 import { internal } from "./_generated/api";
3−import { getOrganizationMembership } from "./lib/identity";
4−import { organizationMutation, organizationQuery } from "./lib/functionBuilders";
3+import { getOrganizationMembership } from "../lib/identity";
4+import { organizationMutation, organizationQuery } from "../lib/functionBuilders";
55
66 const organizationRoleValidator = v.union(
77 v.literal("owner"),
executor/convex/organizations.ts+3−3
@@ -1,9 +1,9 @@
11 import { v } from "convex/values";
22 import type { Doc, Id } from "./_generated/dataModel";
33 import type { MutationCtx, QueryCtx } from "./_generated/server";
4−import { optionalAccountQuery, authedMutation } from "./lib/functionBuilders";
5−import { getOrganizationMembership, slugify } from "./lib/identity";
6−import { ensureUniqueSlug } from "./lib/slug";
4+import { optionalAccountQuery, authedMutation } from "../lib/functionBuilders";
5+import { getOrganizationMembership, slugify } from "../lib/identity";
6+import { ensureUniqueSlug } from "../lib/slug";
77
88 type WorkspaceSummary = {
99 id: Id<"workspaces">;
executor/convex/workspace.ts+1−1
@@ -1,7 +1,7 @@
11 import { v } from "convex/values";
22 import { internal } from "./_generated/api";
33 import { mutation, query } from "./_generated/server";
4−import { workspaceMutation, workspaceQuery } from "./lib/functionBuilders";
4+import { workspaceMutation, workspaceQuery } from "../lib/functionBuilders";
55
66 const approvalStatusValidator = v.union(v.literal("pending"), v.literal("approved"), v.literal("denied"));
77 const policyDecisionValidator = v.union(v.literal("allow"), v.literal("require_approval"), v.literal("deny"));
executor/convex/workspaceAuthInternal.ts+1−1
@@ -4,7 +4,7 @@ import { · 3 unmodified lines
44 requireWorkspaceAccessForAccount,
55 resolveAccountForRequest,
66 resolveWorkosAccountBySubject,
7−} from "./lib/identity";
7+} from "../lib/identity";
88
99 function actorIdForAccount(account: { _id: string; provider: string; providerAccountId: string }): string {
1010 return account.provider === "anonymous" ? account.providerAccountId : account._id;
executor/convex/workspaces.ts+3−3
@@ -1,9 +1,9 @@
11 import { v } from "convex/values";
22 import type { Doc, Id } from "./_generated/dataModel";
33 import type { MutationCtx, QueryCtx } from "./_generated/server";
4−import { optionalAccountQuery, authedMutation } from "./lib/functionBuilders";
5−import { getOrganizationMembership, slugify } from "./lib/identity";
6−import { ensureUniqueSlug } from "./lib/slug";
4+import { optionalAccountQuery, authedMutation } from "../lib/functionBuilders";
5+import { getOrganizationMembership, slugify } from "../lib/identity";
6+import { ensureUniqueSlug } from "../lib/slug";
77
88 type WorkspaceResult = {
99 id: Id<"workspaces">;
executor/lib/adapters/in-process-execution-adapter.test.tsrenamed from executor/convex/lib/adapters/in-process-execution-adapter.test.ts+0−0

File renamed without changes.

executor/lib/adapters/in_process_execution_adapter.tsrenamed from executor/convex/lib/adapters/in_process_execution_adapter.ts+0−0

File renamed without changes.

executor/lib/anonymousSession.tsrenamed from executor/convex/lib/anonymousSession.ts+0−0

File renamed without changes.

executor/lib/credential-providers.test.tsrenamed from executor/convex/lib/credential-providers.test.ts+0−0

File renamed without changes.

executor/lib/credential_providers.tsrenamed from executor/convex/lib/credential_providers.ts+0−0

File renamed without changes.

executor/lib/events.tsrenamed from executor/convex/lib/events.ts+0−0

File renamed without changes.

executor/lib/execution_constants.tsrenamed from executor/convex/lib/execution_constants.ts+0−0

File renamed without changes.

executor/lib/functionBuilders.tsrenamed from executor/convex/lib/functionBuilders.ts+1−1
@@ -1,6 +1,6 @@
11 import { v } from "convex/values";
22 import { customMutation, customQuery } from "convex-helpers/server/customFunctions";
3−import { internalQuery, mutation, query } from "../_generated/server";
3+import { internalQuery, mutation, query } from "../convex/_generated/server";
44 import {
55 canManageBilling,
66 getOrganizationMembership,
executor/lib/identity.tsrenamed from executor/convex/lib/identity.ts+2−2
@@ -1,5 +1,5 @@
1−import type { Doc, Id } from "../_generated/dataModel";
2−import type { MutationCtx, QueryCtx } from "../_generated/server";
1+import type { Doc, Id } from "../convex/_generated/dataModel";
2+import type { MutationCtx, QueryCtx } from "../convex/_generated/server";
33
44 type IdentityCtx = Pick<QueryCtx, "auth" | "db"> | Pick<MutationCtx, "auth" | "db">;
55 type MembershipCtx = Pick<QueryCtx, "db"> | Pick<MutationCtx, "db">;
executor/lib/mcp-server.test.tsrenamed from executor/convex/lib/mcp-server.test.ts+0−0

File renamed without changes.

executor/lib/mcp_server.tsrenamed from executor/convex/lib/mcp_server.ts+0−0

File renamed without changes.

executor/lib/openapi-cache.test.tsrenamed from executor/convex/lib/openapi-cache.test.ts+0−0

File renamed without changes.

executor/lib/openapi-real-specs.test.tsrenamed from executor/convex/lib/openapi-real-specs.test.ts+0−0

File renamed without changes.

executor/lib/runtimes/runtime-core.test.tsrenamed from executor/convex/lib/runtimes/runtime-core.test.ts+0−0

File renamed without changes.

executor/lib/runtimes/runtime_core.tsrenamed from executor/convex/lib/runtimes/runtime_core.ts+0−0

File renamed without changes.

executor/lib/slug.tsrenamed from executor/convex/lib/slug.ts+0−0

File renamed without changes.

executor/lib/tool-sources.test.tsrenamed from executor/convex/lib/tool-sources.test.ts+0−0

File renamed without changes.

executor/lib/tool_discovery.tsrenamed from executor/convex/lib/tool_discovery.ts+0−0

File renamed without changes.

executor/lib/tool_sources.tsrenamed from executor/convex/lib/tool_sources.ts+0−0

File renamed without changes.

executor/lib/tools.tsrenamed from executor/convex/lib/tools.ts+0−0

File renamed without changes.

executor/lib/typechecker.test.tsrenamed from executor/convex/lib/typechecker.test.ts+0−0

File renamed without changes.

executor/lib/typechecker.tsrenamed from executor/convex/lib/typechecker.ts+0−0

File renamed without changes.

executor/lib/types.tsrenamed from executor/convex/lib/types.ts+0−0

File renamed without changes.

executor/lib/utils.tsrenamed from executor/convex/lib/utils.ts+0−0

File renamed without changes.

executor/lib/workspace-tool-cache.test.tsrenamed from executor/convex/lib/workspace-tool-cache.test.ts+8−8
@@ -378,12 +378,12 @@ describe("workspace tool cache table", () => { · 377 unmodified lines
378378 // convex-test based tests for the table operations
379379 test("getEntry + putEntry round-trip", async () => {
380380 const { convexTest } = await import("convex-test");
381− const { internal } = await import("../_generated/api");
382− const schema = (await import("../schema")).default;
381+ const { internal } = await import("../convex/_generated/api");
382+ const schema = (await import("../convex/schema")).default;
383383
384384 const t = convexTest(schema, {
385− "./workspaceToolCache.ts": () => import("../workspaceToolCache"),
386− "./_generated/api.js": () => import("../_generated/api.js"),
385+ "./workspaceToolCache.ts": () => import("../convex/workspaceToolCache"),
386+ "./_generated/api.js": () => import("../convex/_generated/api.js"),
387387 });
388388
389389 // Empty cache
@@ -425,12 +425,12 @@ describe("workspace tool cache table", () => { · 35 unmodified lines
425425
426426 test("putEntry replaces old entry and deletes old blob", async () => {
427427 const { convexTest } = await import("convex-test");
428− const { internal } = await import("../_generated/api");
429− const schema = (await import("../schema")).default;
428+ const { internal } = await import("../convex/_generated/api");
429+ const schema = (await import("../convex/schema")).default;
430430
431431 const t = convexTest(schema, {
432− "./workspaceToolCache.ts": () => import("../workspaceToolCache"),
433− "./_generated/api.js": () => import("../_generated/api.js"),
432+ "./workspaceToolCache.ts": () => import("../convex/workspaceToolCache"),
433+ "./_generated/api.js": () => import("../convex/_generated/api.js"),
434434 });
435435
436436 const storageId1 = await t.run(async (ctx) => {
executor/package.json+3−1
@@ -3,7 +3,9 @@ · 2 unmodified lines
33 "private": true,
44 "type": "module",
55 "scripts": {
6− "deploy": "bunx convex deploy"
6+ "deploy": "bunx convex deploy",
7+ "codegen": "bunx convex codegen && bun scripts/postcodegen.ts",
8+ "fix-types": "bun scripts/postcodegen.ts"
79 },
810 "dependencies": {
911 "convex": "^1.31.7"
executor/scripts/postcodegen.ts+289−0
@@ -0,0 +1,289 @@
1+/**
2+ * Post-codegen script for Convex.
3+ *
4+ * Rewrites `convex/_generated/api.d.ts` to replace the deeply-recursive
5+ * `ApiFromModules` / `FilterApi` types with explicit per-module declarations.
6+ *
7+ * Why: With 18+ modules and 100+ exported functions, the recursive type chain
8+ * `ApiFromModules → ExpandModulesAndDirs → UnionToIntersection → FilterApi`
9+ * exceeds TypeScript's instantiation depth limit of 100, causing TS2589.
10+ *
11+ * Usage:
12+ * bun scripts/postcodegen.ts
13+ *
14+ * Run this after `bunx convex codegen` or `bunx convex dev` (via postinstall).
15+ */
16+
17+import { readFileSync, writeFileSync, readdirSync, existsSync } from "node:fs";
18+import { join, resolve } from "node:path";
19+import * as ts from "typescript";
20+
21+const EXECUTOR_DIR = resolve(import.meta.dirname, "..");
22+const CONVEX_DIR = join(EXECUTOR_DIR, "convex");
23+const API_DTS_PATH = join(CONVEX_DIR, "_generated", "api.d.ts");
24+
25+/** Read the generated api.d.ts and extract the module list + components block. */
26+function parseGeneratedApi(content: string) {
27+ const moduleImportRegex = /^import type \* as (\w+) from "\.\.\/(\w+)\.js";$/gm;
28+ const modules: { name: string; file: string }[] = [];
29+ let match: RegExpExecArray | null;
30+ while ((match = moduleImportRegex.exec(content)) !== null) {
31+ modules.push({ name: match[1], file: match[2] });
32+ }
33+
34+ // Extract the components block (everything from `export declare const components:` to the end)
35+ const componentsMatch = content.match(
36+ /export declare const components:\s*\{[\s\S]*$/,
37+ );
38+ const componentsBlock = componentsMatch ? componentsMatch[0] : "export declare const components: {};";
39+
40+ return { modules, componentsBlock };
41+}
42+
43+type FunctionKind = "query" | "mutation" | "action";
44+type FunctionVisibility = "public" | "internal";
45+
46+interface ParsedExport {
47+ name: string;
48+ kind: FunctionKind;
49+ visibility: FunctionVisibility;
50+}
51+
52+/** Determine the function kind and visibility from a call expression. */
53+function resolveRegistration(callName: string): { kind: FunctionKind; visibility: FunctionVisibility } | null {
54+ switch (callName) {
55+ case "query": return { kind: "query", visibility: "public" };
56+ case "internalQuery": return { kind: "query", visibility: "internal" };
57+ case "mutation": return { kind: "mutation", visibility: "public" };
58+ case "internalMutation": return { kind: "mutation", visibility: "internal" };
59+ case "action": return { kind: "action", visibility: "public" };
60+ case "internalAction": return { kind: "action", visibility: "internal" };
61+ default: return null;
62+ }
63+}
64+
65+/** Parse a Convex module file to extract exported function registrations. */
66+function parseModuleExports(filePath: string): ParsedExport[] {
67+ if (!existsSync(filePath)) return [];
68+
69+ const content = readFileSync(filePath, "utf-8");
70+ const sourceFile = ts.createSourceFile(
71+ filePath,
72+ content,
73+ ts.ScriptTarget.Latest,
74+ true,
75+ );
76+
77+ const exports: ParsedExport[] = [];
78+
79+ function visit(node: ts.Node) {
80+ // Match: export const foo = query({...}) / mutation({...}) / etc.
81+ if (
82+ ts.isVariableStatement(node) &&
83+ node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword)
84+ ) {
85+ for (const decl of node.declarationList.declarations) {
86+ if (!ts.isIdentifier(decl.name) || !decl.initializer) continue;
87+ const exportName = decl.name.text;
88+
89+ let callExpr: ts.CallExpression | undefined;
90+
91+ // Direct call: export const foo = query({...})
92+ if (ts.isCallExpression(decl.initializer)) {
93+ callExpr = decl.initializer;
94+ }
95+
96+ // Nullish coalescing fallback: export const foo = bar?.baz ?? internalMutation({...})
97+ // The RHS of ?? determines the Convex registration type.
98+ if (
99+ !callExpr &&
100+ ts.isBinaryExpression(decl.initializer) &&
101+ decl.initializer.operatorToken.kind === ts.SyntaxKind.QuestionQuestionToken
102+ ) {
103+ const rhs = decl.initializer.right;
104+ if (ts.isCallExpression(rhs)) {
105+ callExpr = rhs;
106+ }
107+ }
108+
109+ // Ternary fallback: export const foo = cond ? bar : internalMutation({...})
110+ if (
111+ !callExpr &&
112+ ts.isConditionalExpression(decl.initializer)
113+ ) {
114+ const whenFalse = decl.initializer.whenFalse;
115+ if (ts.isCallExpression(whenFalse)) {
116+ callExpr = whenFalse;
117+ }
118+ }
119+
120+ if (!callExpr) continue;
121+
122+ // Get the function name being called
123+ let calledName: string | undefined;
124+ if (ts.isIdentifier(callExpr.expression)) {
125+ calledName = callExpr.expression.text;
126+ }
127+
128+ if (!calledName) continue;
129+
130+ const reg = resolveRegistration(calledName);
131+ if (reg) {
132+ exports.push({ name: exportName, ...reg });
133+ continue;
134+ }
135+
136+ // Custom builders (workspaceQuery, authedMutation, organizationQuery, etc.)
137+ // These wrap standard query/mutation/action builders. We need to determine
138+ // which base type they correspond to.
139+ const customBuilderMap: Record<string, { kind: FunctionKind; visibility: FunctionVisibility }> = {
140+ workspaceQuery: { kind: "query", visibility: "public" },
141+ workspaceMutation: { kind: "mutation", visibility: "public" },
142+ authedQuery: { kind: "query", visibility: "public" },
143+ authedMutation: { kind: "mutation", visibility: "public" },
144+ organizationQuery: { kind: "query", visibility: "public" },
145+ organizationMutation: { kind: "mutation", visibility: "public" },
146+ optionalAccountQuery: { kind: "query", visibility: "public" },
147+ internalOrganizationQuery: { kind: "query", visibility: "internal" },
148+ };
149+
150+ const customReg = customBuilderMap[calledName];
151+ if (customReg) {
152+ exports.push({ name: exportName, ...customReg });
153+ }
154+ }
155+ }
156+
157+ // Match: export default httpRouter() — skip (http module has no function refs)
158+ // Match: export { authKitEvent } from ... — already handled above as variable declarations
159+
160+ ts.forEachChild(node, visit);
161+ }
162+
163+ visit(sourceFile);
164+ return exports;
165+}
166+
167+/** Group exports by visibility for a module. */
168+function groupByVisibility(exports: ParsedExport[]) {
169+ return {
170+ public: exports.filter((e) => e.visibility === "public"),
171+ internal: exports.filter((e) => e.visibility === "internal"),
172+ };
173+}
174+
175+/** Generate a FunctionReference type string (using `any` for args/returns to avoid deep instantiation). */
176+function funcRef(kind: FunctionKind, visibility: FunctionVisibility): string {
177+ return `FunctionReference<"${kind}", "${visibility}", any, any>`;
178+}
179+
180+/** Generate the type block for one namespace (module). */
181+function generateModuleType(exports: ParsedExport[]): string {
182+ if (exports.length === 0) return "Record<string, never>";
183+ const lines = exports.map(
184+ (e) => ` ${e.name}: ${funcRef(e.kind, e.visibility)};`,
185+ );
186+ return `{\n${lines.join("\n")}\n }`;
187+}
188+
189+function main() {
190+ // 1. Read the generated api.d.ts
191+ if (!existsSync(API_DTS_PATH)) {
192+ console.error(`[postcodegen] ${API_DTS_PATH} not found — run 'bunx convex codegen' first`);
193+ process.exit(1);
194+ }
195+
196+ const generatedContent = readFileSync(API_DTS_PATH, "utf-8");
197+ const { modules, componentsBlock } = parseGeneratedApi(generatedContent);
198+
199+ if (modules.length === 0) {
200+ console.log("[postcodegen] No modules found in api.d.ts — skipping");
201+ return;
202+ }
203+
204+ // 2. Parse each module's exports
205+ const moduleExports = new Map<string, ParsedExport[]>();
206+ for (const mod of modules) {
207+ const filePath = join(CONVEX_DIR, `${mod.file}.ts`);
208+ const exports = parseModuleExports(filePath);
209+ moduleExports.set(mod.name, exports);
210+ }
211+
212+ // 3. Build public and internal API types
213+ const publicModules: string[] = [];
214+ const internalModules: string[] = [];
215+
216+ for (const mod of modules) {
217+ const exports = moduleExports.get(mod.name) ?? [];
218+ const grouped = groupByVisibility(exports);
219+
220+ if (grouped.public.length > 0) {
221+ publicModules.push(` ${mod.name}: ${generateModuleType(grouped.public)};`);
222+ }
223+ if (grouped.internal.length > 0) {
224+ internalModules.push(` ${mod.name}: ${generateModuleType(grouped.internal)};`);
225+ }
226+ }
227+
228+ // 4. Generate the new api.d.ts
229+ const output = `/* eslint-disable */
230+/**
231+ * Generated \`api\` utility.
232+ *
233+ * THIS CODE IS AUTOMATICALLY GENERATED.
234+ *
235+ * To regenerate, run \`npx convex dev\`.
236+ *
237+ * NOTE: This file has been post-processed by scripts/postcodegen.ts
238+ * to replace recursive ApiFromModules/FilterApi types with explicit
239+ * declarations, avoiding TS2589 depth errors.
240+ *
241+ * @module
242+ */
243+
244+import type { FunctionReference } from "convex/server";
245+
246+/**
247+ * A utility for referencing Convex functions in your app's public API.
248+ *
249+ * Usage:
250+ * \`\`\`js
251+ * const myFunctionReference = api.myModule.myFunction;
252+ * \`\`\`
253+ */
254+export declare const api: {
255+${publicModules.join("\n")}
256+};
257+
258+/**
259+ * A utility for referencing Convex functions in your app's internal API.
260+ *
261+ * Usage:
262+ * \`\`\`js
263+ * const myFunctionReference = internal.myModule.myFunction;
264+ * \`\`\`
265+ */
266+export declare const internal: {
267+${internalModules.join("\n")}
268+};
269+
270+${componentsBlock}
271+`;
272+
273+ writeFileSync(API_DTS_PATH, output);
274+
275+ const totalPublic = modules.reduce(
276+ (sum, m) => sum + (moduleExports.get(m.name) ?? []).filter((e) => e.visibility === "public").length,
277+ 0,
278+ );
279+ const totalInternal = modules.reduce(
280+ (sum, m) => sum + (moduleExports.get(m.name) ?? []).filter((e) => e.visibility === "internal").length,
281+ 0,
282+ );
283+
284+ console.log(
285+ `[postcodegen] Rewrote api.d.ts: ${modules.length} modules, ${totalPublic} public + ${totalInternal} internal function refs`,
286+ );
287+}
288+
289+main();
executor/tsconfig.json+2−1
@@ -17,6 +17,7 @@ · 16 unmodified lines
1717 },
1818 "include": [
1919 "packages/**/*.ts",
20− "convex/**/*.ts"
20+ "convex/**/*.ts",
21+ "lib/**/*.ts"
2122 ]
2223 }
package.json+1−1
@@ -43,6 +43,6 @@ · 42 unmodified lines
4343 "@modelcontextprotocol/sdk": "^1.26.0",
4444 "@types/bun": "latest",
4545 "convex-test": "^0.0.41",
46− "typescript": "latest"
46+ "typescript": "^5.9.3"
4747 }
4848 }