Skip to content

Fix TypeScript Module Resolution for Subpath Exports - #64

Merged
huangyiirene merged 3 commits into
mainfrom
copilot/update-session-reference-url
Jan 22, 2026
Merged

huangyiirene merged 3 commits into
mainfrom
copilot/update-session-reference-url

Conversation

Copilot AI commented Jan 22, 2026 •

Copy link
Copy Markdown
Contributor

Fix TypeScript Module Resolution for Subpath Exports

Issue

Build failing because TypeScript cannot resolve subpath imports like @objectstack/spec/ai, @objectstack/spec/ui, etc.

Error:

Cannot find module '@objectstack/spec/ai' or its corresponding type declarations.
There are types at 'node_modules/@objectstack/spec/dist/ai/index.d.ts', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.

Root Cause

The legacy "moduleResolution": "node" setting in various tsconfig.json files doesn't support the modern exports field in package.json. The @objectstack/spec package defines subpath exports, but legacy Node resolution can't find them.

Solution

Updated TypeScript configuration in all packages and examples that use subpath imports to use "moduleResolution": "bundler" with "module": "ES2020", which properly supports the exports field in package.json.

Changes Made

  • Analyze the issue and identify root cause
  • Updated tsconfig.json for all examples using subpath imports:
    • examples/ai-analyst/tsconfig.json
    • examples/ai-support/tsconfig.json
    • examples/ai-codegen/tsconfig.json
    • examples/ai-sales/tsconfig.json
    • examples/plugin-bi/tsconfig.json
  • Updated tsconfig.json for all packages using subpath imports:
    • packages/client/tsconfig.json
    • packages/driver-memory/tsconfig.json
    • packages/objectql/tsconfig.json
    • packages/runtime/tsconfig.json
  • Test the build to ensure all packages compile successfully
  • Verify no other issues are introduced

Build Status

✅ All packages built successfully
✅ All examples built successfully
✅ Documentation site built successfully

Original prompt

引用: https://github.com/objectstack-ai/spec/actions/runs/21234972929/job/61100853816#step:8:1


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@vercel

vercel Bot commented Jan 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
spec Ready Ready Preview, Comment Jan 22, 2026 3:49am

Request Review

Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
@hotlong

hotlong commented Jan 22, 2026

Copy link
Copy Markdown
Contributor

@copilot 继续

…ubpath exports

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>

Copilot AI commented Jan 22, 2026

Copy link
Copy Markdown
Contributor Author

@copilot 继续

已完成!所有使用 subpath exports 的包和示例的 TypeScript 配置已更新。构建现在成功通过。✅

(Completed! Updated TypeScript configuration for all packages and examples using subpath exports. Build now passes successfully. ✅)

Changes in commit 7b8b0d3:

  • Updated 5 example tsconfigs (ai-analyst, ai-support, ai-codegen, ai-sales, plugin-bi)
  • Updated 4 package tsconfigs (client, driver-memory, objectql, runtime)
  • All files now use "moduleResolution": "bundler" with "module": "ES2020" to properly resolve @objectstack/spec subpath imports

Copilot AI changed the title [WIP] Update session reference URLs in documentation Fix TypeScript Module Resolution for Subpath Exports Jan 22, 2026
Copilot AI requested a review from hotlong January 22, 2026 03:50
@github-actions github-actions Bot added size/s and removed size/xs labels Jan 22, 2026
@huangyiirene
huangyiirene marked this pull request as ready for review January 22, 2026 04:11
@huangyiirene
huangyiirene merged commit f89fc6f into main Jan 22, 2026
10 checks passed
akarma-synetal pushed a commit to akarma-synetal/framework that referenced this pull request Sep 9, 2026
…olumn-gated by the ADR-0092 D2 whitelist (objectstack-ai#16687)

* feat(platform-objects): admit update on sys_organization's data door, column-gated by the ADR-0092 D2 whitelist (objectstack-ai#15873)

Ruling (a), decision batch objectstack-ai#64, 2026-09-07 — the data door admits `update`
and the identity write guard's per-object whitelist does the column gating.
`enable.apiMethods` becomes ['get', 'list', 'update'] with the
`userActions.edit` affordance the registry reconciler requires; better-auth's
own columns (name / slug / logo / metadata) are readonly per ADR-0092 D4 and
stay refused/stripped by the guard. create / delete still 405; no bulk
(recorded in SINGLE_RECORD_WRITE_ONLY).

Pins: declaration (platform-objects), column gate + D4 partition derived from
the shipped whitelist (plugin-auth), and the real door with the 405 → 403
transition (dogfood).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg

* test(dogfood): mint the door test's organization through better-auth under the walled posture

The plain showcase boot holds no sys_organization row (system-context read
returns []; the admin session has activeOrganizationId null), and
organization/create is denied without an organization wall (objectstack-ai#5261) — so the
fixture boots multiTenant: 'posture-only' and creates the org the way the
Setup app does.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg

* test(dogfood),spec,changeset: name the two derived surfaces the update grant moves (objectstack-ai#15873 contract-review patch round)

Review FAIL was on the accept-set statement, not the code: granting `update`
also derives the update-mode import door (API_METHOD_DERIVATION: import =
any of create/update) and flips /auth/me/permissions for sys_organization
(allowEdit true, apiOperations gains update and import). Both named in the
changeset; pinned on the real door in the dogfood file (import: 200, timezone
lands, name stripped; better-auth-only row refused per row; insert mode 405
naming create; /me/permissions allowEdit true with update+import and a
sibling better-auth table as the clamp control); the SINGLE_RECORD_WRITE_ONLY
sentence now says what is true (bulk not granted; the derived import door
is, column-clamped per row).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ADLdAs2pVcH17h9tZKWMBg

---------

Co-authored-by: Claude <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview — 7b8b0d36 Deployed Jan 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/s tooling Fix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants