Skip to content

chore(deps): raise the @objectstack/* pin from ^17.0.0-rc.6 to 17.0.0 GA - #4639

Draft
yinlianghui wants to merge 3 commits into
mainfrom
claude/issue-4636-spec-pin-ga
Draft

chore(deps): raise the @objectstack/* pin from ^17.0.0-rc.6 to 17.0.0 GA#4639
yinlianghui wants to merge 3 commits into
mainfrom
claude/issue-4636-spec-pin-ga

Conversation

@yinlianghui

@yinlianghui yinlianghui commented Aug 14, 2026

Copy link
Copy Markdown
Collaborator

Part of #4636

Raises the @objectstack/* dependency floor from ^17.0.0-rc.6 to ^17.0.0 so the
lockfile resolves the GA spec across the workspace.

Status: re-pointed onto post-adaptation main (2026-08-17). The four pre-re-point
adaptations have all merged (#4649 via PR #4657, #4650 via PR #4660, PR #4671, PR #4901),
and this branch now carries them. The expected-red list this body used to hold is gone —
most of it is green. Three test files remain red, each now owned by its own card, and
they are why this still says Part of rather than a closing keyword.

Still draft. Do not flip to ready and do not enable auto-merge — that is the PM's call
after review.

Re-point method

origin/main was merged into the branch. The package.json range lines merged with no
conflicts
; the only difference between this branch and main across all 32 manifests is
the range lines themselves:

git diff origin/main HEAD -- '**/package.json' 'package.json' \
  | grep -E '^[+-]' | grep -v '^[+-][+-]' | grep -v '@objectstack/'
  -> (empty)

pnpm-lock.yaml was regenerated, not hand-merged, per the re-point plan: main's
lockfile was taken verbatim (git checkout origin/main -- pnpm-lock.yaml) and pnpm install
re-run against the raised ranges. The resulting lockfile diff versus main touches only the
six @objectstack/* packages — every changed entry is one of client, core, formula,
lint, sdui-parser, spec; 95 insertions, 95 deletions, symmetric.

Lockfile resolution evidence

All 30 workspace importers of @objectstack/spec resolve GA, and every one of them by the
same specifier:

@objectstack/client: 2 importer entries
    2x  specifier: ^17.0.0 | version: 17.0.0(ai@7.0.56(zod@4.4.3))
@objectstack/formula: 2 importer entries
    2x  specifier: ^17.0.0 | version: 17.0.0(ai@7.0.56(zod@4.4.3))
@objectstack/lint: 1 importer entries
    1x  specifier: ^17.0.0 | version: 17.0.0(ai@7.0.56(zod@4.4.3))
@objectstack/spec: 30 importer entries
    30x  specifier: ^17.0.0 | version: 17.0.0(ai@7.0.56(zod@4.4.3))

A single copy of the schema package in the tree — asserted three ways, because the whole
point of this card is that the ^ range is not the pin:

# 1. no prerelease left anywhere in the lockfile
grep -c 'rc\.6' pnpm-lock.yaml            -> 0

# 2. one physical copy in the pnpm store
ls -d node_modules/.pnpm/@objectstack+spec@*
  -> node_modules/.pnpm/@objectstack+spec@17.0.0_ai@7.0.56_zod@4.4.3_

# 3. the version actually resolved at runtime
require('@objectstack/spec/package.json').version   -> 17.0.0

Why client / formula / lint are in the same commit

Unchanged from the original bump, and still the reason a spec-only bump does not satisfy this
card: each of them exact-pins its own @objectstack/spec ("17.0.0-rc.6" at rc.6,
"17.0.0" at GA). Raising spec alone was measured to produce two copies — 17.0.0 for
the workspace importers plus a nested 17.0.0-rc.6 dragged in by those exact pins. Raising
all four is what yields the single GA resolution above.

Parity gate: the GA-side readings are armed

apps/console/src/__tests__/registry-inputs-spec-parity.test.ts62 tests, all passing.
This is the gate that was reporting four uncovered blocks before PR #4901; the declarations it
merged were dormant on rc.6 and arm themselves on this pin. Counts, quoted from the run:

Also green here and previously red: check:spec-symbols (was exit 1 with 6 collisions, landed
by PR #4660), the packages/types p1-spec-alignment TS2322 error (cleared by PR #4657), and
the plugin-form / plugin-detail sectionFields, recordHighlights and recordDetails parity
tests.

The accounting gap from the first farm run — identified

The original run recorded 9 failing files / 17 failing tests in the full farm but reproduced
only 8 files / 15 tests when the 193 spec-importing test files were re-run in isolation. One
file and two tests were never identified. They are found, and they were not flakes.

The file is scripts/__tests__/quick-reference-current-release-4143.test.ts. It imports no
spec — it reads QUICK_REFERENCE.md and the workspace manifests — which is precisely why a
re-run scoped to spec-importing files could not reproduce it.

The two tests, and they had two different causes:

  1. states the one version every workspace package carriespre-existing red on main,
    nothing to do with this bump.
    At the branch point 5bf5d2cb6, QUICK_REFERENCE.md said
    17.4.0 while every manifest carried 17.5.0. This is main is red: QUICK_REFERENCE.md "Current Release" still says 17.4.0 after the 17.5.0 release commit — shard-3 gate fails on main and every open PR #4642, filed the same day, which
    states the same two assertions and explicitly names this PR as inheriting the red base:
    "PRs fix(app-shell): restore the avatar menu "My Workspaces" entry #4638 / chore(deps): raise the @objectstack/* pin from ^17.0.0-rc.6 to 17.0.0 GA #4639 / test(app-shell): pin relation-field header-action predicates on the console record page #4641 show the same shard red on the same base." PR docs: bump QUICK_REFERENCE.md Current Release to 17.5.0 #4643 has since
    landed the correction on main, so this assertion is green here.
  2. contains only version literals this test derives from a manifestcaused by this
    bump
    , and still owed at re-point time. See the next section.

The one edit in this PR beyond ranges and the lockfile

QUICK_REFERENCE.md's "Current Release" block states the @objectstack/spec and
@objectstack/client ranges, and that file's own header says every value in it is pinned to
the manifest that owns it. Raising the manifests without this edit left the doc asserting
^17.0.0-rc.6 for a tree that resolves 17.0.0:

AssertionError: QUICK_REFERENCE.md's "Current Release" block states
["^17.0.0-rc.6","^17.0.0-rc.6"], which no manifest in this tree produced. ...
Derived values are: ["17.5.0","^17.0.0","≥22","≥9","10.31.0","18.x","19.x","≥5.0"].

Two lines changed, ^17.0.0-rc.6 to ^17.0.0 on the Spec and Client rows. Calling it out
explicitly because it is outside "range lines plus lockfile": it is the doc mirror of the
range lines this branch already owns
, the required literal is derived and named by the gate
itself so there is no judgement in it, and the file is held by no other in-flight card. It is
not a green-keeping adaptation to a GA behaviour change — those are all left alone below.
Red before / green after: the file went from 1 failing test to Test Files 1 passed, Tests 8 passed.

Worth knowing for whoever reads that gate next: two of its three range-row assertions compare
with toContain, and '^17.0.0-rc.6'.includes('^17.0.0') is true, so those two passed
against the wrong doc
. Only the catch-all sweep caught it. Filed as #4913.

What is still red — three files, none of them fixed here

All three are genuine rc.6-to-GA deltas that the four merged adaptations do not cover. Per
this card's scope they are stop-and-report, so each is filed as its own unassigned card rather
than folded in.

file failing case card
packages/components/src/__tests__/record-picker-inputs-spec-parity.test.ts publishes 'filter', which the renderer has read all along #4910
packages/components/src/__tests__/text-input-inputs-spec-parity.test.ts publishes 'defaultValue', which the renderer has read all along #4910
packages/fields/src/widgets/__tests__/FilterConditionField.operators.test.ts some builder operator emits every spec $-token #4911

#4910 — GA made the element props schemas strict. An undeclared key used to be stripped
in silence and now fails with unrecognized_keys. Both tests carry a deliberate contrast
probe
asserting the old strip-mode behaviour, and only that probe fails; every subject
assertion in both tests passes, so filter and defaultValue are correctly published and
reachable. The spec's own diagnostic explains the change, and it is the change working as
designed:

Unrecognized key(s) on this `element:record_picker`: `notASpecKey`. Until #4001 batch A an
undeclared prop was dropped in silence: ... the author got a success receipt for
configuration that did nothing.

#4911 — GA adds $like and $ilike to FieldOperatorsSchema, and no builder operator in
FilterConditionField can author either, so the reachability gate from #2942 fires. Same shape
as the $icontains gap in #4023, with a real UX decision attached (who writes the wildcards),
which is why it is not a mechanical addition.

Verification

Everything below was run at 47c7cc3, this branch's head, working tree clean.

gate result
turbo run build --filter=!@object-ui/site --concurrency=2 PASS — 43/43 tasks
turbo run type-check --concurrency=2 PASS — 81/81 tasks
full farm, vitest run --maxWorkers=2, 8 shards 3 files / 3 tests failed, 1555 files / 19813 tests passed (1 skipped)
check-changeset-presence PASS
check-changeset-fixed PASS
check-changeset-no-major PASS
check-phantom-dependencies PASS
check-control-bytes PASS
check-spec-symbol-derivation PASS (was exit 1)
check-package-self-import PASS
check-doc-component-types PASS
check-lint-coverage PASS
check-type-check-coverage PASS
check-action-forward-parity PASS
check-i18n-call-site-keys PASS
check-i18n-en-drift PASS
check-i18n-dead-keys PASS
check-skills-paths PASS
check-published-dist-tooling PASS

The farm was run as 8 shards rather than one pass so each run fits a bounded window and the
shared heavy-verify lock is released between them; the shard-level totals sum to the figures
above. Per-shard: shards 2, 3, 7, 8 fully green; shard 1 the record-picker file; shard 4 the
text-input file; shard 5 the QUICK_REFERENCE file (now fixed, re-run green); shard 6 the
filter-operators file.

Progress against the original run: 9 files / 17 tests red, down to 3 files / 3 tests.

Changeset

Unchanged from the original bump and still valid at this head — patch across the 20 published
packages whose dependencies or peerDependencies ranges change. All three changeset gates
pass. check-changeset-presence reports none is strictly owed, since the gate keys on src/
and no src/ changed here, but the published dependency range of 20 released packages does
change, which a consumer sees on install, so it is declared rather than skipped.

Note on the skip-changeset label currently on this PR: I did not apply it and have not
removed it. That label is inert — no workflow or script in this repo reads it, and this repo's
own scripts/__tests__/ci-cd-pipeline-doc.test.ts records that "neither the workflow nor the
label was ever real". Recorded as #4912.


Generated by Claude Code

…0 (GA)

Raise the dependency floor so the lockfile resolves @objectstack/spec@17.0.0
(the `latest` dist-tag) across the workspace, replacing 17.0.0-rc.6.

@objectstack/client, /formula and /lint are raised in the same step: each
exact-pins its own @objectstack/spec, so raising spec alone left a nested
@objectstack/spec@17.0.0-rc.6 in the tree beside the workspace's 17.0.0.
With all four raised the tree resolves a single 17.0.0.

This commit is dependency ranges + lockfile only. The rc.6 -> GA delta turns
out to be large and the adaptations it forces exceed this card's stated scope
ceiling, so no green-keeping adaptations are folded in here; they are reported
on the issue for the PM to sequence.

Part of #4636

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

vercel Bot commented Aug 14, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectui Ignored Ignored Aug 14, 2026 11:11am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Main entry (gzip) 24.7 KB 350 KB
Entry file index-DBTm0Zii.js
Status PASS

📦 Bundle Size Report

Package Size Gzipped
app-shell (index.js) 9.56KB 3.59KB
app-shell (runtime-config.js) 7.42KB 2.32KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 8.92KB 3.41KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 1.17KB 0.53KB
auth (AuthProvider.js) 25.13KB 5.40KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.13KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.64KB 2.21KB
auth (SocialSignInButtons.js) 9.60KB 3.89KB
auth (UserMenu.js) 3.40KB 1.22KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 38.46KB 10.17KB
auth (createAuthenticatedFetch.js) 6.34KB 2.43KB
auth (index.js) 2.35KB 1.07KB
auth (org-roles.js) 6.66KB 2.78KB
auth (phone-identifier.js) 1.11KB 0.66KB
auth (types.js) 0.59KB 0.35KB
auth (useAuth.js) 5.02KB 0.88KB
auth (useIsWorkspaceAdmin.js) 1.61KB 0.85KB
collaboration (CommentThread.js) 26.07KB 7.56KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.49KB 2.64KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.65KB 0.73KB
collaboration (useCollaborationTranslation.js) 6.05KB 2.52KB
collaboration (useCommentSearch.js) 1.98KB 0.88KB
collaboration (useConflictResolution.js) 7.75KB 1.86KB
collaboration (useMentionNotifications.js) 1.81KB 0.68KB
collaboration (usePresence.js) 6.33KB 1.84KB
collaboration (useRealtimeSubscription.js) 7.91KB 2.01KB
components (index.js) 489.88KB 108.67KB
core (index.js) 3.79KB 1.52KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 163.56KB 44.83KB
fields (index.js) 230.37KB 57.17KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (currency.js) 1.22KB 0.64KB
i18n (i18n.js) 4.32KB 1.77KB
i18n (index.js) 3.35KB 1.38KB
i18n (pickLocalized.js) 3.69KB 1.73KB
i18n (provider.js) 23.12KB 7.62KB
i18n (useDisplayLocale.js) 2.84KB 1.45KB
i18n (useObjectLabel.js) 27.59KB 6.63KB
i18n (useSafeTranslation.js) 7.77KB 3.13KB
layout (index.js) 38.98KB 10.85KB
mobile (MobileProvider.js) 0.92KB 0.49KB
mobile (ResponsiveContainer.js) 0.94KB 0.38KB
mobile (breakpoints.js) 1.51KB 0.70KB
mobile (createOfflineDataSource.js) 5.61KB 1.74KB
mobile (index.js) 1.50KB 0.62KB
mobile (offlineQueue.js) 3.91KB 1.35KB
mobile (pwa.js) 0.97KB 0.49KB
mobile (serviceWorker.js) 1.48KB 0.62KB
mobile (serviceWorkerSource.js) 3.41KB 1.48KB
mobile (useBreakpoint.js) 1.54KB 0.65KB
mobile (useGesture.js) 6.96KB 1.98KB
mobile (useOfflineSync.js) 1.99KB 0.72KB
mobile (usePullToRefresh.js) 2.53KB 0.85KB
mobile (useResponsive.js) 0.71KB 0.42KB
mobile (useResponsiveConfig.js) 1.36KB 0.63KB
mobile (useSpecGesture.js) 4.32KB 1.64KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 8.75KB 3.06KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 3.67KB 1.12KB
permissions (evaluator.js) 4.41KB 1.44KB
permissions (index.js) 0.91KB 0.41KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.52KB
permissions (usePermissions.js) 1.55KB 0.71KB
plugin-ai (index.js) 15.75KB 3.80KB
plugin-calendar (index.js) 46.86KB 12.91KB
plugin-charts (index.js) 62.10KB 17.67KB
plugin-chatbot (index.js) 181.21KB 43.14KB
plugin-dashboard (index.js) 121.84KB 31.74KB
plugin-designer (index.js) 212.58KB 42.83KB
plugin-detail (index.js) 239.93KB 60.01KB
plugin-editor (index.js) 2.46KB 1.10KB
plugin-form (index.js) 114.72KB 27.70KB
plugin-gantt (index.js) 164.30KB 40.02KB
plugin-grid (index.js) 190.02KB 50.48KB
plugin-kanban (index.js) 52.74KB 14.53KB
plugin-list (index.js) 112.01KB 27.27KB
plugin-map (index.js) 18.16KB 5.81KB
plugin-markdown (index.js) 13.72KB 4.69KB
plugin-report (index.js) 41.38KB 11.09KB
plugin-timeline (index.js) 26.68KB 7.66KB
plugin-tree (index.js) 8.50KB 2.88KB
plugin-view (index.js) 84.09KB 20.56KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 11.71KB 3.53KB
providers (index.js) 0.44KB 0.22KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.67KB 2.37KB
react (LazyPluginLoader.js) 3.77KB 1.33KB
react (SchemaRenderer.js) 27.64KB 9.44KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 1.26KB 0.67KB
react (schema-input.js) 1.45KB 0.83KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 4.09KB 1.74KB
sdui-parser (index.js) 4.47KB 2.03KB
sdui-parser (parse.js) 10.04KB 2.82KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 4.69KB 1.48KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 0.99KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 0.20KB 0.18KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (data-display.js) 0.20KB 0.18KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.87KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 0.20KB 0.18KB
types (form.js) 0.20KB 0.18KB
types (http-retry.js) 4.32KB 2.02KB
types (index.js) 3.05KB 1.52KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 2.59KB 1.31KB
types (navigation.js) 0.20KB 0.18KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 0.20KB 0.18KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-components.js) 0.20KB 0.19KB
types (record-semantics.js) 1.28KB 0.67KB
types (registry.js) 0.20KB 0.18KB
types (reports.js) 0.20KB 0.18KB
types (spec-report.js) 5.05KB 1.93KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 0.20KB 0.18KB
types (ui-action.js) 3.40KB 1.71KB
types (views.js) 0.20KB 0.18KB
types (widget.js) 0.20KB 0.18KB

Size Limits

  • ✅ Core packages should be < 50KB gzipped
  • ✅ Component packages should be < 100KB gzipped
  • ⚠️ Plugin packages should be < 150KB gzipped

This was referenced Aug 14, 2026
claude added 2 commits August 17, 2026 03:20
…ost-adaptation main)

Re-points the GA pin bump onto main after the four pre-re-point adaptations
landed (#4649 / #4650 / PR #4671 / PR #4901).

package.json range lines merged cleanly (no conflicts); pnpm-lock.yaml was
REGENERATED rather than hand-merged: main's lockfile was taken verbatim and
`pnpm install` re-run with the raised ranges. The resulting lockfile diff vs
main touches only the six @objectstack/* packages.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbRmJD3iPhXjKr6vhd4Qkv
…nges the manifests now declare

QUICK_REFERENCE.md's 'Current Release' block mirrors the manifest range lines
this branch raises, and `scripts/__tests__/quick-reference-current-release-4143.test.ts`
pins the two in both directions. Raising the ranges without this edit leaves the
doc stating ^17.0.0-rc.6 for a tree that resolves 17.0.0 GA.

This is the mechanical doc mirror of the range lines already in this branch's
declared file surface, not a green-keeping adaptation to a GA behaviour change.
The required literal is derived and named by the failing gate itself, so there is
no judgement in it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbRmJD3iPhXjKr6vhd4Qkv
@github-actions

Copy link
Copy Markdown
Contributor

✅ Console Performance Budget

Metric Value Budget
Main entry (gzip) 24.7 KB 350 KB
Entry file index-GDVrwhTo.js
Status PASS

📦 Bundle Size Report

Package Size Gzipped
app-shell (index.js) 9.56KB 3.59KB
app-shell (runtime-config.js) 7.42KB 2.32KB
app-shell (types.js) 0.01KB 0.04KB
app-shell (urlParams.js) 8.92KB 3.41KB
auth (AuthContext.js) 0.31KB 0.24KB
auth (AuthGuard.js) 1.17KB 0.53KB
auth (AuthProvider.js) 25.13KB 5.40KB
auth (AuthShell.js) 3.49KB 1.40KB
auth (ForgotPasswordForm.js) 12.21KB 3.45KB
auth (LoginForm.js) 18.13KB 5.39KB
auth (PreviewBanner.js) 0.90KB 0.50KB
auth (RegisterForm.js) 6.64KB 2.21KB
auth (SocialSignInButtons.js) 9.60KB 3.89KB
auth (UserMenu.js) 3.40KB 1.22KB
auth (auth-gate-events.js) 1.29KB 0.66KB
auth (authStyles.js) 5.04KB 1.72KB
auth (createAuthClient.js) 38.46KB 10.17KB
auth (createAuthenticatedFetch.js) 6.34KB 2.43KB
auth (index.js) 2.35KB 1.07KB
auth (org-roles.js) 6.66KB 2.78KB
auth (phone-identifier.js) 1.11KB 0.66KB
auth (types.js) 0.59KB 0.35KB
auth (useAuth.js) 5.02KB 0.88KB
auth (useIsWorkspaceAdmin.js) 1.61KB 0.85KB
collaboration (CommentThread.js) 26.07KB 7.56KB
collaboration (LiveCursors.js) 3.17KB 1.27KB
collaboration (PresenceAvatars.js) 6.49KB 2.64KB
collaboration (PresenceProvider.js) 2.79KB 1.13KB
collaboration (index.js) 1.65KB 0.73KB
collaboration (useCollaborationTranslation.js) 6.05KB 2.52KB
collaboration (useCommentSearch.js) 1.98KB 0.88KB
collaboration (useConflictResolution.js) 7.75KB 1.86KB
collaboration (useMentionNotifications.js) 1.81KB 0.68KB
collaboration (usePresence.js) 6.33KB 1.84KB
collaboration (useRealtimeSubscription.js) 7.91KB 2.01KB
components (index.js) 498.37KB 111.05KB
core (index.js) 4.06KB 1.61KB
create-plugin (index.js) 10.08KB 3.26KB
data-objectstack (index.js) 157.05KB 43.28KB
fields (index.js) 231.73KB 57.60KB
i18n (LocalizationContext.js) 1.76KB 0.96KB
i18n (currency.js) 1.22KB 0.64KB
i18n (i18n.js) 4.28KB 1.75KB
i18n (index.js) 3.35KB 1.38KB
i18n (pickLocalized.js) 3.69KB 1.73KB
i18n (provider.js) 23.12KB 7.62KB
i18n (useDisplayLocale.js) 2.84KB 1.45KB
i18n (useObjectLabel.js) 27.59KB 6.63KB
i18n (useSafeTranslation.js) 7.77KB 3.13KB
layout (index.js) 38.86KB 10.83KB
mobile (MobileProvider.js) 0.92KB 0.49KB
mobile (ResponsiveContainer.js) 0.94KB 0.38KB
mobile (breakpoints.js) 1.51KB 0.70KB
mobile (createOfflineDataSource.js) 5.61KB 1.74KB
mobile (index.js) 1.50KB 0.62KB
mobile (offlineQueue.js) 3.91KB 1.35KB
mobile (pwa.js) 0.97KB 0.49KB
mobile (serviceWorker.js) 1.48KB 0.62KB
mobile (serviceWorkerSource.js) 3.41KB 1.48KB
mobile (useBreakpoint.js) 1.54KB 0.65KB
mobile (useGesture.js) 6.96KB 1.98KB
mobile (useOfflineSync.js) 1.99KB 0.72KB
mobile (usePullToRefresh.js) 2.53KB 0.85KB
mobile (useResponsive.js) 0.71KB 0.42KB
mobile (useResponsiveConfig.js) 1.36KB 0.63KB
mobile (useSpecGesture.js) 4.32KB 1.64KB
mobile (useTouchTarget.js) 1.01KB 0.54KB
permissions (MePermissionsProvider.js) 9.35KB 3.31KB
permissions (PermissionContext.js) 0.31KB 0.25KB
permissions (PermissionGuard.js) 0.89KB 0.45KB
permissions (PermissionProvider.js) 4.42KB 1.42KB
permissions (evaluator.js) 5.12KB 1.74KB
permissions (index.js) 0.91KB 0.41KB
permissions (store.js) 0.91KB 0.42KB
permissions (useFieldPermissions.js) 1.28KB 0.52KB
permissions (usePermissions.js) 1.81KB 0.83KB
plugin-ai (index.js) 15.75KB 3.80KB
plugin-calendar (index.js) 46.62KB 12.83KB
plugin-charts (index.js) 64.75KB 18.37KB
plugin-chatbot (index.js) 181.21KB 43.14KB
plugin-dashboard (index.js) 127.85KB 32.73KB
plugin-designer (index.js) 212.39KB 42.83KB
plugin-detail (index.js) 239.81KB 59.97KB
plugin-editor (index.js) 2.46KB 1.10KB
plugin-form (index.js) 120.43KB 29.04KB
plugin-gantt (index.js) 164.10KB 39.87KB
plugin-grid (index.js) 197.59KB 53.01KB
plugin-kanban (index.js) 52.72KB 14.54KB
plugin-list (index.js) 111.23KB 26.97KB
plugin-map (index.js) 17.91KB 5.72KB
plugin-markdown (index.js) 13.72KB 4.69KB
plugin-report (index.js) 41.97KB 11.33KB
plugin-timeline (index.js) 26.68KB 7.66KB
plugin-tree (index.js) 8.50KB 2.88KB
plugin-view (index.js) 83.81KB 20.49KB
providers (DataSourceProvider.js) 0.75KB 0.39KB
providers (MetadataProvider.js) 1.37KB 0.59KB
providers (ThemeProvider.js) 1.90KB 0.85KB
providers (UploadProvider.js) 11.66KB 3.50KB
providers (index.js) 0.44KB 0.22KB
providers (types.js) 0.01KB 0.04KB
react-runtime (index.js) 5.62KB 2.34KB
react (LazyPluginLoader.js) 3.77KB 1.33KB
react (SchemaRenderer.js) 27.53KB 9.41KB
react (data-invalidation.js) 5.05KB 2.08KB
react (index.js) 1.28KB 0.68KB
react (schema-input.js) 1.45KB 0.83KB
react (spec-input.js) 0.20KB 0.18KB
sdui-parser (codegen.js) 4.09KB 1.74KB
sdui-parser (index.js) 4.47KB 2.03KB
sdui-parser (parse.js) 10.04KB 2.82KB
sdui-parser (types.js) 0.29KB 0.24KB
sdui-parser (validate.js) 4.69KB 1.48KB
types (ai.js) 0.20KB 0.17KB
types (api-types.js) 0.20KB 0.18KB
types (app.js) 2.87KB 0.99KB
types (base.js) 0.20KB 0.18KB
types (blocks.js) 0.20KB 0.18KB
types (complex.js) 0.20KB 0.18KB
types (crud.js) 0.20KB 0.18KB
types (dashboard-filter-alias.js) 6.23KB 2.74KB
types (data-display.js) 0.20KB 0.18KB
types (data-protocol.js) 0.20KB 0.19KB
types (data.js) 0.20KB 0.18KB
types (designer.js) 1.87KB 0.85KB
types (disclosure.js) 0.20KB 0.18KB
types (error-code.js) 1.54KB 0.88KB
types (feedback.js) 0.20KB 0.18KB
types (field-types.js) 0.20KB 0.18KB
types (form.js) 0.20KB 0.18KB
types (http-retry.js) 4.32KB 2.02KB
types (index.js) 3.05KB 1.52KB
types (layout.js) 0.20KB 0.18KB
types (managed-by.js) 0.19KB 0.18KB
types (mobile.js) 2.59KB 1.31KB
types (navigation.js) 0.20KB 0.18KB
types (objectql.js) 0.20KB 0.18KB
types (overlay.js) 0.20KB 0.18KB
types (permissions.js) 0.20KB 0.18KB
types (plugin-scope.js) 0.20KB 0.18KB
types (record-components.js) 0.20KB 0.19KB
types (record-semantics.js) 1.28KB 0.67KB
types (registry.js) 0.20KB 0.18KB
types (reports.js) 0.20KB 0.18KB
types (spec-report.js) 5.05KB 1.93KB
types (system-fields.js) 3.33KB 1.54KB
types (theme.js) 0.20KB 0.18KB
types (ui-action.js) 3.40KB 1.71KB
types (views.js) 0.20KB 0.18KB
types (widget.js) 0.20KB 0.18KB

Size Limits

  • ✅ Core packages should be < 50KB gzipped
  • ✅ Component packages should be < 100KB gzipped
  • ⚠️ Plugin packages should be < 150KB gzipped

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants