@elaraai/e3-ui 1.0.86 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bind/data-indexed.d.ts +159 -0
- package/dist/src/bind/data-indexed.d.ts.map +1 -0
- package/dist/src/bind/data-indexed.js +105 -0
- package/dist/src/bind/data-indexed.js.map +1 -0
- package/dist/src/bind/data.d.ts +5 -3
- package/dist/src/bind/data.d.ts.map +1 -1
- package/dist/src/bind/data.js +6 -0
- package/dist/src/bind/data.js.map +1 -1
- package/dist/src/bind/record.d.ts +34 -23
- package/dist/src/bind/record.d.ts.map +1 -1
- package/dist/src/bind/record.js +46 -19
- package/dist/src/bind/record.js.map +1 -1
- package/dist/src/calendar/index.d.ts +2923 -0
- package/dist/src/calendar/index.d.ts.map +1 -0
- package/dist/src/calendar/index.js +135 -0
- package/dist/src/calendar/index.js.map +1 -0
- package/dist/src/decision/queue.d.ts +3 -3
- package/dist/src/decision/queue.d.ts.map +1 -1
- package/dist/src/decision/queue.js +2 -2
- package/dist/src/decision/queue.js.map +1 -1
- package/dist/src/decision/types.d.ts +4 -0
- package/dist/src/decision/types.d.ts.map +1 -1
- package/dist/src/decision/types.js +4 -0
- package/dist/src/decision/types.js.map +1 -1
- package/dist/src/flowchart/canvas.d.ts +114 -0
- package/dist/src/flowchart/canvas.d.ts.map +1 -0
- package/dist/src/flowchart/canvas.js +84 -0
- package/dist/src/flowchart/canvas.js.map +1 -0
- package/dist/src/flowchart/flowchart.d.ts +79 -0
- package/dist/src/flowchart/flowchart.d.ts.map +1 -0
- package/dist/src/flowchart/flowchart.js +9 -0
- package/dist/src/flowchart/flowchart.js.map +1 -0
- package/dist/src/flowchart/index.d.ts +305 -0
- package/dist/src/flowchart/index.d.ts.map +1 -0
- package/dist/src/flowchart/index.js +267 -0
- package/dist/src/flowchart/index.js.map +1 -0
- package/dist/src/flowchart/library.d.ts +720 -0
- package/dist/src/flowchart/library.d.ts.map +1 -0
- package/dist/src/flowchart/library.js +611 -0
- package/dist/src/flowchart/library.js.map +1 -0
- package/dist/src/flowchart/over.d.ts +234 -0
- package/dist/src/flowchart/over.d.ts.map +1 -0
- package/dist/src/flowchart/over.js +220 -0
- package/dist/src/flowchart/over.js.map +1 -0
- package/dist/src/flowchart/patch.d.ts +64 -0
- package/dist/src/flowchart/patch.d.ts.map +1 -0
- package/dist/src/flowchart/patch.js +67 -0
- package/dist/src/flowchart/patch.js.map +1 -0
- package/dist/src/flowchart/payload.d.ts +8220 -0
- package/dist/src/flowchart/payload.d.ts.map +1 -0
- package/dist/src/flowchart/payload.js +521 -0
- package/dist/src/flowchart/payload.js.map +1 -0
- package/dist/src/flowchart/types.d.ts +393 -0
- package/dist/src/flowchart/types.d.ts.map +1 -0
- package/dist/src/flowchart/types.js +216 -0
- package/dist/src/flowchart/types.js.map +1 -0
- package/dist/src/flowchart/values.d.ts +267 -0
- package/dist/src/flowchart/values.d.ts.map +1 -0
- package/dist/src/flowchart/values.js +216 -0
- package/dist/src/flowchart/values.js.map +1 -0
- package/dist/src/flowchart/window.d.ts +521 -0
- package/dist/src/flowchart/window.d.ts.map +1 -0
- package/dist/src/flowchart/window.js +69 -0
- package/dist/src/flowchart/window.js.map +1 -0
- package/dist/src/index.d.ts +25 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +48 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal.d.ts +35 -3
- package/dist/src/internal.d.ts.map +1 -1
- package/dist/src/internal.js +72 -3
- package/dist/src/internal.js.map +1 -1
- package/dist/src/plan/assemble.d.ts +2224 -0
- package/dist/src/plan/assemble.d.ts.map +1 -0
- package/dist/src/plan/assemble.js +210 -0
- package/dist/src/plan/assemble.js.map +1 -0
- package/dist/src/plan/builders.d.ts +790 -0
- package/dist/src/plan/builders.d.ts.map +1 -0
- package/dist/src/plan/builders.js +749 -0
- package/dist/src/plan/builders.js.map +1 -0
- package/dist/src/plan/event-rows.d.ts +2565 -0
- package/dist/src/plan/event-rows.d.ts.map +1 -0
- package/dist/src/plan/event-rows.js +689 -0
- package/dist/src/plan/event-rows.js.map +1 -0
- package/dist/src/plan/factories.d.ts +458 -0
- package/dist/src/plan/factories.d.ts.map +1 -0
- package/dist/src/plan/factories.js +484 -0
- package/dist/src/plan/factories.js.map +1 -0
- package/dist/src/plan/index.d.ts +672 -0
- package/dist/src/plan/index.d.ts.map +1 -0
- package/dist/src/plan/index.js +532 -0
- package/dist/src/plan/index.js.map +1 -0
- package/dist/src/plan/ir.d.ts +2594 -0
- package/dist/src/plan/ir.d.ts.map +1 -0
- package/dist/src/plan/ir.js +78 -0
- package/dist/src/plan/ir.js.map +1 -0
- package/dist/src/plan/library.d.ts +772 -0
- package/dist/src/plan/library.d.ts.map +1 -0
- package/dist/src/plan/library.js +424 -0
- package/dist/src/plan/library.js.map +1 -0
- package/dist/src/plan/ordered-source.d.ts +27 -0
- package/dist/src/plan/ordered-source.d.ts.map +1 -0
- package/dist/src/plan/ordered-source.js +48 -0
- package/dist/src/plan/ordered-source.js.map +1 -0
- package/dist/src/plan/over.d.ts +247 -0
- package/dist/src/plan/over.d.ts.map +1 -0
- package/dist/src/plan/over.js +266 -0
- package/dist/src/plan/over.js.map +1 -0
- package/dist/src/plan/pick.d.ts +78 -0
- package/dist/src/plan/pick.d.ts.map +1 -0
- package/dist/src/plan/pick.js +146 -0
- package/dist/src/plan/pick.js.map +1 -0
- package/dist/src/plan/plan.d.ts +11611 -0
- package/dist/src/plan/plan.d.ts.map +1 -0
- package/dist/src/plan/plan.js +428 -0
- package/dist/src/plan/plan.js.map +1 -0
- package/dist/src/plan/refs.d.ts +218 -0
- package/dist/src/plan/refs.d.ts.map +1 -0
- package/dist/src/plan/refs.js +226 -0
- package/dist/src/plan/refs.js.map +1 -0
- package/dist/src/plan/root.d.ts +290 -0
- package/dist/src/plan/root.d.ts.map +1 -0
- package/dist/src/plan/root.js +463 -0
- package/dist/src/plan/root.js.map +1 -0
- package/dist/src/plan/series.d.ts +13554 -0
- package/dist/src/plan/series.d.ts.map +1 -0
- package/dist/src/plan/series.js +1921 -0
- package/dist/src/plan/series.js.map +1 -0
- package/dist/src/plan/types.d.ts +12400 -0
- package/dist/src/plan/types.d.ts.map +1 -0
- package/dist/src/plan/types.js +1335 -0
- package/dist/src/plan/types.js.map +1 -0
- package/dist/src/roster/coverage.d.ts +240 -0
- package/dist/src/roster/coverage.d.ts.map +1 -0
- package/dist/src/roster/coverage.js +109 -0
- package/dist/src/roster/coverage.js.map +1 -0
- package/dist/src/roster/index.d.ts +4028 -0
- package/dist/src/roster/index.d.ts.map +1 -0
- package/dist/src/roster/index.js +115 -0
- package/dist/src/roster/index.js.map +1 -0
- package/dist/src/roster/library.d.ts +106 -0
- package/dist/src/roster/library.d.ts.map +1 -0
- package/dist/src/roster/library.js +78 -0
- package/dist/src/roster/library.js.map +1 -0
- package/dist/src/roster/people.d.ts +50 -0
- package/dist/src/roster/people.d.ts.map +1 -0
- package/dist/src/roster/people.js +32 -0
- package/dist/src/roster/people.js.map +1 -0
- package/dist/src/roster/rules.d.ts +275 -0
- package/dist/src/roster/rules.d.ts.map +1 -0
- package/dist/src/roster/rules.js +162 -0
- package/dist/src/roster/rules.js.map +1 -0
- package/dist/src/roster/types.d.ts +672 -0
- package/dist/src/roster/types.d.ts.map +1 -0
- package/dist/src/roster/types.js +248 -0
- package/dist/src/roster/types.js.map +1 -0
- package/dist/src/roster/visibility.d.ts +66 -0
- package/dist/src/roster/visibility.d.ts.map +1 -0
- package/dist/src/roster/visibility.js +25 -0
- package/dist/src/roster/visibility.js.map +1 -0
- package/dist/src/schedule/days.d.ts +54 -0
- package/dist/src/schedule/days.d.ts.map +1 -0
- package/dist/src/schedule/days.js +68 -0
- package/dist/src/schedule/days.js.map +1 -0
- package/dist/src/schedule/events.d.ts +433 -0
- package/dist/src/schedule/events.d.ts.map +1 -0
- package/dist/src/schedule/events.js +851 -0
- package/dist/src/schedule/events.js.map +1 -0
- package/dist/src/schedule/index.d.ts +150 -0
- package/dist/src/schedule/index.d.ts.map +1 -0
- package/dist/src/schedule/index.js +132 -0
- package/dist/src/schedule/index.js.map +1 -0
- package/dist/src/schedule/library.d.ts +70 -0
- package/dist/src/schedule/library.d.ts.map +1 -0
- package/dist/src/schedule/library.js +102 -0
- package/dist/src/schedule/library.js.map +1 -0
- package/dist/src/schedule/patch.d.ts +74 -0
- package/dist/src/schedule/patch.d.ts.map +1 -0
- package/dist/src/schedule/patch.js +68 -0
- package/dist/src/schedule/patch.js.map +1 -0
- package/dist/src/schedule/record-window.d.ts +189 -0
- package/dist/src/schedule/record-window.d.ts.map +1 -0
- package/dist/src/schedule/record-window.js +95 -0
- package/dist/src/schedule/record-window.js.map +1 -0
- package/dist/src/schedule/resources.d.ts +165 -0
- package/dist/src/schedule/resources.d.ts.map +1 -0
- package/dist/src/schedule/resources.js +234 -0
- package/dist/src/schedule/resources.js.map +1 -0
- package/dist/src/schedule/templates.d.ts +47 -0
- package/dist/src/schedule/templates.d.ts.map +1 -0
- package/dist/src/schedule/templates.js +61 -0
- package/dist/src/schedule/templates.js.map +1 -0
- package/dist/src/schedule/types.d.ts +1677 -0
- package/dist/src/schedule/types.d.ts.map +1 -0
- package/dist/src/schedule/types.js +374 -0
- package/dist/src/schedule/types.js.map +1 -0
- package/dist/src/schedule/window.d.ts +154 -0
- package/dist/src/schedule/window.d.ts.map +1 -0
- package/dist/src/schedule/window.js +363 -0
- package/dist/src/schedule/window.js.map +1 -0
- package/dist/src/sheet/bridge.d.ts +385 -0
- package/dist/src/sheet/bridge.d.ts.map +1 -0
- package/dist/src/sheet/bridge.js +809 -0
- package/dist/src/sheet/bridge.js.map +1 -0
- package/dist/src/sheet/columns.d.ts +410 -0
- package/dist/src/sheet/columns.d.ts.map +1 -0
- package/dist/src/sheet/columns.js +99 -0
- package/dist/src/sheet/columns.js.map +1 -0
- package/dist/src/sheet/context-bridge.d.ts +48 -0
- package/dist/src/sheet/context-bridge.d.ts.map +1 -0
- package/dist/src/sheet/context-bridge.js +216 -0
- package/dist/src/sheet/context-bridge.js.map +1 -0
- package/dist/src/sheet/draft-bridge.d.ts +37 -0
- package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
- package/dist/src/sheet/draft-bridge.js +153 -0
- package/dist/src/sheet/draft-bridge.js.map +1 -0
- package/dist/src/sheet/drafts.d.ts +14 -0
- package/dist/src/sheet/drafts.d.ts.map +1 -0
- package/dist/src/sheet/drafts.js +14 -0
- package/dist/src/sheet/drafts.js.map +1 -0
- package/dist/src/sheet/editing-bridge.d.ts +40 -0
- package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
- package/dist/src/sheet/editing-bridge.js +231 -0
- package/dist/src/sheet/editing-bridge.js.map +1 -0
- package/dist/src/sheet/editing-types.d.ts +268 -0
- package/dist/src/sheet/editing-types.d.ts.map +1 -0
- package/dist/src/sheet/editing-types.js +34 -0
- package/dist/src/sheet/editing-types.js.map +1 -0
- package/dist/src/sheet/edits.d.ts +37 -0
- package/dist/src/sheet/edits.d.ts.map +1 -0
- package/dist/src/sheet/edits.js +31 -0
- package/dist/src/sheet/edits.js.map +1 -0
- package/dist/src/sheet/fields.d.ts +693 -0
- package/dist/src/sheet/fields.d.ts.map +1 -0
- package/dist/src/sheet/fields.js +280 -0
- package/dist/src/sheet/fields.js.map +1 -0
- package/dist/src/sheet/group.d.ts +165 -0
- package/dist/src/sheet/group.d.ts.map +1 -0
- package/dist/src/sheet/group.js +52 -0
- package/dist/src/sheet/group.js.map +1 -0
- package/dist/src/sheet/index.d.ts +542 -0
- package/dist/src/sheet/index.d.ts.map +1 -0
- package/dist/src/sheet/index.js +387 -0
- package/dist/src/sheet/index.js.map +1 -0
- package/dist/src/sheet/library.d.ts +284 -0
- package/dist/src/sheet/library.d.ts.map +1 -0
- package/dist/src/sheet/library.js +259 -0
- package/dist/src/sheet/library.js.map +1 -0
- package/dist/src/sheet/link.d.ts +398 -0
- package/dist/src/sheet/link.d.ts.map +1 -0
- package/dist/src/sheet/link.js +228 -0
- package/dist/src/sheet/link.js.map +1 -0
- package/dist/src/sheet/record.d.ts +75 -0
- package/dist/src/sheet/record.d.ts.map +1 -0
- package/dist/src/sheet/record.js +128 -0
- package/dist/src/sheet/record.js.map +1 -0
- package/dist/src/sheet/registers.d.ts +681 -0
- package/dist/src/sheet/registers.d.ts.map +1 -0
- package/dist/src/sheet/registers.js +671 -0
- package/dist/src/sheet/registers.js.map +1 -0
- package/dist/src/sheet/root.d.ts +329 -0
- package/dist/src/sheet/root.d.ts.map +1 -0
- package/dist/src/sheet/root.js +511 -0
- package/dist/src/sheet/root.js.map +1 -0
- package/dist/src/sheet/seed-bridge.d.ts +14 -0
- package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
- package/dist/src/sheet/seed-bridge.js +51 -0
- package/dist/src/sheet/seed-bridge.js.map +1 -0
- package/dist/src/sheet/sheet.d.ts +11819 -0
- package/dist/src/sheet/sheet.d.ts.map +1 -0
- package/dist/src/sheet/sheet.js +236 -0
- package/dist/src/sheet/sheet.js.map +1 -0
- package/dist/src/sheet/sub-rows.d.ts +299 -0
- package/dist/src/sheet/sub-rows.d.ts.map +1 -0
- package/dist/src/sheet/sub-rows.js +272 -0
- package/dist/src/sheet/sub-rows.js.map +1 -0
- package/dist/src/sheet/templates.d.ts +161 -0
- package/dist/src/sheet/templates.d.ts.map +1 -0
- package/dist/src/sheet/templates.js +122 -0
- package/dist/src/sheet/templates.js.map +1 -0
- package/dist/src/sheet/transactions.d.ts +76 -0
- package/dist/src/sheet/transactions.d.ts.map +1 -0
- package/dist/src/sheet/transactions.js +40 -0
- package/dist/src/sheet/transactions.js.map +1 -0
- package/dist/src/sheet/types.d.ts +15226 -0
- package/dist/src/sheet/types.d.ts.map +1 -0
- package/dist/src/sheet/types.js +1070 -0
- package/dist/src/sheet/types.js.map +1 -0
- package/dist/src/sheet/views.d.ts +29 -0
- package/dist/src/sheet/views.d.ts.map +1 -0
- package/dist/src/sheet/views.js +43 -0
- package/dist/src/sheet/views.js.map +1 -0
- package/dist/src/studio/component.d.ts.map +1 -1
- package/dist/src/studio/component.js +11 -8
- package/dist/src/studio/component.js.map +1 -1
- package/dist/src/utils/derive.d.ts +134 -8
- package/dist/src/utils/derive.d.ts.map +1 -1
- package/dist/src/utils/derive.js +409 -7
- package/dist/src/utils/derive.js.map +1 -1
- package/dist/src/utils/ordered-source.d.ts +38 -0
- package/dist/src/utils/ordered-source.d.ts.map +1 -0
- package/dist/src/utils/ordered-source.js +45 -0
- package/dist/src/utils/ordered-source.js.map +1 -0
- package/dist/src/utils/row-inspector.d.ts +36 -0
- package/dist/src/utils/row-inspector.d.ts.map +1 -0
- package/dist/src/utils/row-inspector.js +49 -0
- package/dist/src/utils/row-inspector.js.map +1 -0
- package/dist/test/bind/data/data.examples.d.ts +21 -19
- package/dist/test/bind/data/data.examples.d.ts.map +1 -1
- package/dist/test/bind/data/data.examples.js +122 -122
- package/dist/test/bind/data/data.examples.js.map +1 -1
- package/dist/test/bind/record/record.examples.d.ts.map +1 -1
- package/dist/test/bind/record/record.examples.js +9 -9
- package/dist/test/bind/record/record.examples.js.map +1 -1
- package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
- package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar-records.examples.js +91 -0
- package/dist/test/calendar/calendar-records.examples.js.map +1 -0
- package/dist/test/calendar/calendar.examples.d.ts +776 -0
- package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
- package/dist/test/calendar/calendar.examples.js +336 -0
- package/dist/test/calendar/calendar.examples.js.map +1 -0
- package/dist/test/decision/journal.examples.d.ts +28 -28
- package/dist/test/decision/journal.examples.d.ts.map +1 -1
- package/dist/test/decision/journal.examples.js +4 -4
- package/dist/test/decision/journal.examples.js.map +1 -1
- package/dist/test/decision/queue.examples.d.ts.map +1 -1
- package/dist/test/decision/queue.examples.js +5 -7
- package/dist/test/decision/queue.examples.js.map +1 -1
- package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
- package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
- package/dist/test/flowchart/flowchart.examples.js +465 -0
- package/dist/test/flowchart/flowchart.examples.js.map +1 -0
- package/dist/test/plan/plan-events.examples.d.ts +3666 -0
- package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-events.examples.js +773 -0
- package/dist/test/plan/plan-events.examples.js.map +1 -0
- package/dist/test/plan/plan-records.examples.d.ts +3 -0
- package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-records.examples.js +45 -0
- package/dist/test/plan/plan-records.examples.js.map +1 -0
- package/dist/test/plan/plan-windows.examples.d.ts +588 -0
- package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
- package/dist/test/plan/plan-windows.examples.js +170 -0
- package/dist/test/plan/plan-windows.examples.js.map +1 -0
- package/dist/test/plan/plan.examples.d.ts +8095 -0
- package/dist/test/plan/plan.examples.d.ts.map +1 -0
- package/dist/test/plan/plan.examples.js +2500 -0
- package/dist/test/plan/plan.examples.js.map +1 -0
- package/dist/test/roster/domain.examples.d.ts +367 -0
- package/dist/test/roster/domain.examples.d.ts.map +1 -0
- package/dist/test/roster/domain.examples.js +72 -0
- package/dist/test/roster/domain.examples.js.map +1 -0
- package/dist/test/roster/roster-records.examples.d.ts +729 -0
- package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
- package/dist/test/roster/roster-records.examples.js +86 -0
- package/dist/test/roster/roster-records.examples.js.map +1 -0
- package/dist/test/roster/roster.examples.d.ts +750 -0
- package/dist/test/roster/roster.examples.d.ts.map +1 -0
- package/dist/test/roster/roster.examples.js +198 -0
- package/dist/test/roster/roster.examples.js.map +1 -0
- package/dist/test/roster/warehouse.d.ts +87 -0
- package/dist/test/roster/warehouse.d.ts.map +1 -0
- package/dist/test/roster/warehouse.js +883 -0
- package/dist/test/roster/warehouse.js.map +1 -0
- package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-link.examples.js +41 -0
- package/dist/test/sheet/sheet-link.examples.js.map +1 -0
- package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
- package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-records.examples.js +79 -0
- package/dist/test/sheet/sheet-records.examples.js.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
- package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet-transactions.examples.js +58 -0
- package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
- package/dist/test/sheet/sheet.examples.d.ts +5562 -0
- package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
- package/dist/test/sheet/sheet.examples.js +1178 -0
- package/dist/test/sheet/sheet.examples.js.map +1 -0
- package/dist/test/studio/studio.examples.d.ts.map +1 -1
- package/dist/test/studio/studio.examples.js +11 -11
- package/dist/test/studio/studio.examples.js.map +1 -1
- package/package.json +12 -9
package/dist/src/utils/derive.js
CHANGED
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
3
|
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
|
-
import { variant, walkIR,
|
|
5
|
+
import { ArrayType, EastTypeType, StringType, StructType, constValueOf, equalFor, none, variant, walkIR, } from '@elaraai/east';
|
|
6
|
+
import { TreePathType } from '@elaraai/e3-types';
|
|
6
7
|
/** Platform-fn name we extract paths from. */
|
|
7
8
|
const DATA_BIND = "data_bind";
|
|
8
9
|
/** Platform-fn names we extract paged-source paths from: `Data.bindPaged`'s
|
|
9
10
|
* own, and the one a UI exported before pinned reads calls. */
|
|
10
11
|
const DATA_BIND_PAGED_PINNED = "data_bind_paged_pinned";
|
|
11
12
|
const DATA_BIND_PAGED = "data_bind_paged";
|
|
13
|
+
const DATA_BIND_INDEXED = "data_bind_indexed";
|
|
12
14
|
/** Platform-fn name we extract bound function names from. */
|
|
13
15
|
const FUNCTION_BIND = "function_bind";
|
|
14
16
|
/** Platform-fn name we extract bound record names from. */
|
|
@@ -28,11 +30,9 @@ export function deriveManifest(fn) {
|
|
|
28
30
|
functions.push(constValueOf(platform.value.arguments[0]));
|
|
29
31
|
return;
|
|
30
32
|
case RECORD_BIND: {
|
|
31
|
-
// Bind the record's name
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
records.push(name);
|
|
35
|
-
paths.push([variant('field', 'records'), variant('field', name)]);
|
|
33
|
+
// Bind the record's name; its `.records.<name>` path is
|
|
34
|
+
// preloaded below, unless the record is read paged too.
|
|
35
|
+
records.push(constValueOf(platform.value.arguments[0]));
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
38
|
case DATA_BIND: {
|
|
@@ -43,6 +43,7 @@ export function deriveManifest(fn) {
|
|
|
43
43
|
paths.push(patch.value);
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
|
+
case DATA_BIND_INDEXED:
|
|
46
47
|
case DATA_BIND_PAGED_PINNED:
|
|
47
48
|
case DATA_BIND_PAGED: {
|
|
48
49
|
// arg[0] source TreePath. Paged sources are read by window, so
|
|
@@ -52,6 +53,14 @@ export function deriveManifest(fn) {
|
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
});
|
|
56
|
+
// Each bound record's value is preloaded and polled like any dataset — but
|
|
57
|
+
// a record also bound paged, which is read a window at a time (#1199).
|
|
58
|
+
const paged = new Set(pages.map(pathKey));
|
|
59
|
+
for (const name of new Set(records)) {
|
|
60
|
+
const path = [variant('field', 'records'), variant('field', name)];
|
|
61
|
+
if (!paged.has(pathKey(path)))
|
|
62
|
+
paths.push(path);
|
|
63
|
+
}
|
|
55
64
|
return {
|
|
56
65
|
paths: dedupePaths(paths),
|
|
57
66
|
functions: [...new Set(functions)],
|
|
@@ -59,11 +68,15 @@ export function deriveManifest(fn) {
|
|
|
59
68
|
pages: dedupePaths(pages),
|
|
60
69
|
};
|
|
61
70
|
}
|
|
71
|
+
/** A path's identity, as the manifest dedupes and matches paths by. */
|
|
72
|
+
function pathKey(path) {
|
|
73
|
+
return path.map(s => `${s.type}:${s.value}`).join('/');
|
|
74
|
+
}
|
|
62
75
|
function dedupePaths(paths) {
|
|
63
76
|
const seen = new Set();
|
|
64
77
|
const result = [];
|
|
65
78
|
for (const p of paths) {
|
|
66
|
-
const k = p
|
|
79
|
+
const k = pathKey(p);
|
|
67
80
|
if (seen.has(k))
|
|
68
81
|
continue;
|
|
69
82
|
seen.add(k);
|
|
@@ -71,4 +84,393 @@ function dedupePaths(paths) {
|
|
|
71
84
|
}
|
|
72
85
|
return result;
|
|
73
86
|
}
|
|
87
|
+
// ============================================================================
|
|
88
|
+
// What a UI writes and calls
|
|
89
|
+
// ============================================================================
|
|
90
|
+
/** Platform-fn name of `Decision.bind`, which writes through the views it is
|
|
91
|
+
* given. */
|
|
92
|
+
const DECISION_BIND = "decision_bind";
|
|
93
|
+
/**
|
|
94
|
+
* What a UI writes and calls, read from its IR before it deploys.
|
|
95
|
+
*
|
|
96
|
+
* @property writes - The bound datasets the UI may write, each once, in the
|
|
97
|
+
* order its bindings appear in its IR
|
|
98
|
+
* @property records - Each record the UI binds or pages through, in the order
|
|
99
|
+
* its IR first names it: the mutations its `Record.bind` calls bind, each
|
|
100
|
+
* with the argument types it takes after the record's state, as a record's
|
|
101
|
+
* signature names them (`argTypes`), and the indexes its paged reads go
|
|
102
|
+
* through
|
|
103
|
+
*/
|
|
104
|
+
export const UiAccessType = StructType({
|
|
105
|
+
writes: ArrayType(TreePathType),
|
|
106
|
+
records: ArrayType(StructType({
|
|
107
|
+
name: StringType,
|
|
108
|
+
mutations: ArrayType(StructType({ name: StringType, argTypes: ArrayType(EastTypeType) })),
|
|
109
|
+
indexes: ArrayType(StringType),
|
|
110
|
+
})),
|
|
111
|
+
});
|
|
112
|
+
const pathEqual = equalFor(TreePathType);
|
|
113
|
+
/** The path every record's dataset lies under. */
|
|
114
|
+
const RECORDS = [variant('field', 'records')];
|
|
115
|
+
/** A `Data.bind` handle's fields that only read: none writes a dataset. */
|
|
116
|
+
const HANDLE_READS = new Set(["read", "source", "pending", "has", "status", "start"]);
|
|
117
|
+
/** The handle's fields that write, by the use each makes. */
|
|
118
|
+
const HANDLE_WRITES = new Map([
|
|
119
|
+
["write", "write"], ["writeAndStart", "write"], ["commit", "commit"], ["discard", "discard"],
|
|
120
|
+
]);
|
|
121
|
+
/** `Record.bind`'s mutate fields that follow its channel rather than name a
|
|
122
|
+
* mutation. */
|
|
123
|
+
const MUTATE_CONTROLS = new Set(["pending", "status", "error", "cancel"]);
|
|
124
|
+
/**
|
|
125
|
+
* Read what a UI writes and calls from its IR: the bound datasets it may
|
|
126
|
+
* write, and for each record it binds, the mutations it binds and the indexes
|
|
127
|
+
* it reads through.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* A host runs it on a UI before deploying it, to check the UI against the
|
|
131
|
+
* package: a dataset the UI writes must be writable, and a mutation it binds
|
|
132
|
+
* must exist with its argument types. Nothing is stored for it: it reads the
|
|
133
|
+
* IR as it stands, so a UI built here and one decoded off the wire read alike.
|
|
134
|
+
*
|
|
135
|
+
* A `Data.bind` writes by what the UI does with its handle, and by the
|
|
136
|
+
* binding's mode and patch dataset:
|
|
137
|
+
* - its `write` (or `writeAndStart`) writes a direct binding's source, or its
|
|
138
|
+
* patch dataset when it has one; a staged binding's only stages;
|
|
139
|
+
* - its `commit` writes a staged binding's source, or its patch dataset when
|
|
140
|
+
* it has one, and applies a direct binding's patch dataset to its source,
|
|
141
|
+
* clearing it; its `discard` clears a direct binding's patch dataset;
|
|
142
|
+
* - its `read`, `source`, `pending`, `has`, `status` and `start` write
|
|
143
|
+
* nothing, and nor does reading a field of its `binding`;
|
|
144
|
+
* - `Decision.bind`, given its `binding`, writes through its `write`, as the
|
|
145
|
+
* decision handle does;
|
|
146
|
+
* - handed on any other way — to a component, a function or a value, or its
|
|
147
|
+
* `binding` to a `<Diff>` — it may be used for anything it allows.
|
|
148
|
+
*
|
|
149
|
+
* A handle is followed through the variables that hold it, by name and scope
|
|
150
|
+
* as East resolves them: within a scope chain no two variables share a name.
|
|
151
|
+
* A record's mutations are the ones its `Record.bind` handle binds, whichever
|
|
152
|
+
* the UI calls.
|
|
153
|
+
*
|
|
154
|
+
* @param ir - The UI's IR: its function's, as `fn.toIR().ir` gives it, or as
|
|
155
|
+
* decoded from a package
|
|
156
|
+
* @returns What the UI writes, and of each record it binds, what it calls
|
|
157
|
+
* @throws {Error} When a binding's path, mode, record name or index name is
|
|
158
|
+
* not a literal, as {@link deriveManifest} throws
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```ts
|
|
162
|
+
* const access = deriveUiAccess(dashboard.toIR().ir);
|
|
163
|
+
* for (const path of access.writes) {
|
|
164
|
+
* // the package must declare the dataset at `path` writable
|
|
165
|
+
* }
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
export function deriveUiAccess(ir) {
|
|
169
|
+
const bindings = [];
|
|
170
|
+
const made = new Map();
|
|
171
|
+
const records = [];
|
|
172
|
+
const recordNamed = (name) => {
|
|
173
|
+
let record = records.find((r) => r.name === name);
|
|
174
|
+
if (record === undefined) {
|
|
175
|
+
record = { name, mutations: new Map(), indexes: [] };
|
|
176
|
+
records.push(record);
|
|
177
|
+
}
|
|
178
|
+
return record;
|
|
179
|
+
};
|
|
180
|
+
/** The binding a `data_bind` call makes, made once per call. */
|
|
181
|
+
const bindingOf = (call) => {
|
|
182
|
+
let binding = made.get(call);
|
|
183
|
+
if (binding === undefined) {
|
|
184
|
+
const [source, patch, mode] = call.value.arguments;
|
|
185
|
+
binding = {
|
|
186
|
+
source: constValueOf(source),
|
|
187
|
+
patch: constValueOf(patch),
|
|
188
|
+
staged: constValueOf(mode).type === "staged",
|
|
189
|
+
uses: new Set(),
|
|
190
|
+
};
|
|
191
|
+
made.set(call, binding);
|
|
192
|
+
bindings.push(binding);
|
|
193
|
+
}
|
|
194
|
+
return binding;
|
|
195
|
+
};
|
|
196
|
+
/** The bindings whose handle an expression's value may be: a `Data.bind`
|
|
197
|
+
* call, a variable holding one, or either cast; `null` for none. */
|
|
198
|
+
const handlesOf = (node, scope) => {
|
|
199
|
+
if (node.type === "Platform" && node.value.name === DATA_BIND)
|
|
200
|
+
return new Set([bindingOf(node)]);
|
|
201
|
+
if (node.type === "As")
|
|
202
|
+
return handlesOf(node.value.value, scope);
|
|
203
|
+
if (node.type === "Variable") {
|
|
204
|
+
for (let s = scope; s !== null; s = s.parent) {
|
|
205
|
+
const held = s.names.get(node.value.name);
|
|
206
|
+
if (held !== undefined)
|
|
207
|
+
return held.size === 0 ? null : held;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return null;
|
|
211
|
+
};
|
|
212
|
+
const use = (held, how) => {
|
|
213
|
+
for (const binding of held)
|
|
214
|
+
binding.uses.add(how);
|
|
215
|
+
};
|
|
216
|
+
/** A scope inside `scope`, declaring `declared`, none holding a handle. */
|
|
217
|
+
const inner = (scope, ...declared) => ({
|
|
218
|
+
names: new Map(declared.map((variable) => [variable.value.name, new Set()])),
|
|
219
|
+
parent: scope,
|
|
220
|
+
});
|
|
221
|
+
const walkPlatform = (call, scope) => {
|
|
222
|
+
const args = call.value.arguments;
|
|
223
|
+
switch (call.value.name) {
|
|
224
|
+
case DATA_BIND:
|
|
225
|
+
// A handle neither held nor read where it is made: handed on.
|
|
226
|
+
use(new Set([bindingOf(call)]), "onward");
|
|
227
|
+
return;
|
|
228
|
+
case RECORD_BIND: {
|
|
229
|
+
const record = recordNamed(constValueOf(args[0]));
|
|
230
|
+
const handle = call.value.type_parameters[0];
|
|
231
|
+
const mutate = handle?.type === "Struct"
|
|
232
|
+
? handle.value.find((field) => field.name === "mutate")?.type
|
|
233
|
+
: undefined;
|
|
234
|
+
if (mutate?.type === "Struct") {
|
|
235
|
+
for (const { name, type } of mutate.value) {
|
|
236
|
+
if (!MUTATE_CONTROLS.has(name) && type.type === "Function" && !record.mutations.has(name)) {
|
|
237
|
+
record.mutations.set(name, type.value.inputs);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
case DATA_BIND_INDEXED:
|
|
244
|
+
case DATA_BIND_PAGED:
|
|
245
|
+
case DATA_BIND_PAGED_PINNED: {
|
|
246
|
+
const source = constValueOf(args[0]);
|
|
247
|
+
if (source.length === 2 && pathEqual(source.slice(0, 1), RECORDS)) {
|
|
248
|
+
const record = recordNamed(source[1].value);
|
|
249
|
+
if (call.value.name === DATA_BIND_INDEXED) {
|
|
250
|
+
// Each field of the binding's Indexes type names a
|
|
251
|
+
// declared index, including computed and interval keys.
|
|
252
|
+
const indexes = call.value.type_parameters[3];
|
|
253
|
+
if (indexes?.type !== "Struct")
|
|
254
|
+
throw new Error("data_bind_indexed requires a Struct of declared indexes");
|
|
255
|
+
for (const { name } of indexes.value) {
|
|
256
|
+
if (!record.indexes.includes(name))
|
|
257
|
+
record.indexes.push(name);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
const index = call.value.name === DATA_BIND_PAGED_PINNED
|
|
262
|
+
? constValueOf(args[1])
|
|
263
|
+
: none;
|
|
264
|
+
if (index.type === "some" && !record.indexes.includes(index.value))
|
|
265
|
+
record.indexes.push(index.value);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
case DECISION_BIND: {
|
|
271
|
+
// The decision handle writes each view, and the judgements,
|
|
272
|
+
// through the view's own `write` (`DecisionBindPlatform`).
|
|
273
|
+
const [views, judgements] = args;
|
|
274
|
+
const through = (argument) => {
|
|
275
|
+
const held = argument.type === "GetField" && argument.value.field === "binding"
|
|
276
|
+
? handlesOf(argument.value.struct, scope)
|
|
277
|
+
: null;
|
|
278
|
+
if (held !== null)
|
|
279
|
+
use(held, "write");
|
|
280
|
+
else
|
|
281
|
+
walk(argument, scope);
|
|
282
|
+
};
|
|
283
|
+
if (views.type === "NewArray") {
|
|
284
|
+
for (const view of views.value.values)
|
|
285
|
+
through(view);
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
walk(views, scope);
|
|
289
|
+
}
|
|
290
|
+
through(judgements);
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
default:
|
|
294
|
+
for (const argument of args)
|
|
295
|
+
walk(argument, scope);
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
const walk = (node, scope) => {
|
|
300
|
+
switch (node.type) {
|
|
301
|
+
case "Value":
|
|
302
|
+
case "Continue":
|
|
303
|
+
case "Break":
|
|
304
|
+
return;
|
|
305
|
+
case "Variable":
|
|
306
|
+
case "As": {
|
|
307
|
+
const held = handlesOf(node, scope);
|
|
308
|
+
if (held !== null)
|
|
309
|
+
use(held, "onward");
|
|
310
|
+
else if (node.type === "As")
|
|
311
|
+
walk(node.value.value, scope);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
case "GetField": {
|
|
315
|
+
const struct = node.value.struct;
|
|
316
|
+
const held = handlesOf(struct, scope);
|
|
317
|
+
if (held !== null) {
|
|
318
|
+
if (!HANDLE_READS.has(node.value.field))
|
|
319
|
+
use(held, HANDLE_WRITES.get(node.value.field) ?? "onward");
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
// A field of a handle's `binding`, read: the descriptor itself is
|
|
323
|
+
// not handed on.
|
|
324
|
+
if (struct.type === "GetField" && struct.value.field === "binding" && handlesOf(struct.value.struct, scope) !== null)
|
|
325
|
+
return;
|
|
326
|
+
walk(struct, scope);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
case "Let": {
|
|
330
|
+
const held = handlesOf(node.value.value, scope);
|
|
331
|
+
if (held === null)
|
|
332
|
+
walk(node.value.value, scope);
|
|
333
|
+
scope.names.set(node.value.variable.value.name, new Set(held ?? []));
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
case "Assign": {
|
|
337
|
+
const held = handlesOf(node.value.value, scope);
|
|
338
|
+
if (held === null) {
|
|
339
|
+
walk(node.value.value, scope);
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
// What the variable is used for afterwards is not traced back to
|
|
343
|
+
// a handle assigned over another, so it may be used for anything.
|
|
344
|
+
use(held, "onward");
|
|
345
|
+
for (let s = scope; s !== null; s = s.parent) {
|
|
346
|
+
const holds = s.names.get(node.value.variable.value.name);
|
|
347
|
+
if (holds !== undefined) {
|
|
348
|
+
for (const binding of held)
|
|
349
|
+
holds.add(binding);
|
|
350
|
+
break;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
case "Function":
|
|
356
|
+
case "AsyncFunction":
|
|
357
|
+
walk(node.value.body, inner(scope, ...node.value.parameters));
|
|
358
|
+
return;
|
|
359
|
+
case "Block": {
|
|
360
|
+
const block = inner(scope);
|
|
361
|
+
for (const statement of node.value.statements)
|
|
362
|
+
walk(statement, block);
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
case "IfElse":
|
|
366
|
+
for (const branch of node.value.ifs) {
|
|
367
|
+
walk(branch.predicate, scope);
|
|
368
|
+
walk(branch.body, inner(scope));
|
|
369
|
+
}
|
|
370
|
+
walk(node.value.else_body, inner(scope));
|
|
371
|
+
return;
|
|
372
|
+
case "Match":
|
|
373
|
+
walk(node.value.variant, scope);
|
|
374
|
+
for (const arm of node.value.cases)
|
|
375
|
+
walk(arm.body, inner(scope, arm.variable));
|
|
376
|
+
return;
|
|
377
|
+
case "While":
|
|
378
|
+
walk(node.value.predicate, scope);
|
|
379
|
+
walk(node.value.body, inner(scope));
|
|
380
|
+
return;
|
|
381
|
+
case "ForArray":
|
|
382
|
+
walk(node.value.array, scope);
|
|
383
|
+
walk(node.value.body, inner(scope, node.value.key, node.value.value));
|
|
384
|
+
return;
|
|
385
|
+
case "ForSet":
|
|
386
|
+
walk(node.value.set, scope);
|
|
387
|
+
walk(node.value.body, inner(scope, node.value.key));
|
|
388
|
+
return;
|
|
389
|
+
case "ForDict":
|
|
390
|
+
walk(node.value.dict, scope);
|
|
391
|
+
walk(node.value.body, inner(scope, node.value.key, node.value.value));
|
|
392
|
+
return;
|
|
393
|
+
case "TryCatch":
|
|
394
|
+
walk(node.value.try_body, inner(scope));
|
|
395
|
+
walk(node.value.catch_body, inner(scope, node.value.message, node.value.stack));
|
|
396
|
+
walk(node.value.finally_body, inner(scope));
|
|
397
|
+
return;
|
|
398
|
+
case "Platform":
|
|
399
|
+
walkPlatform(node, scope);
|
|
400
|
+
return;
|
|
401
|
+
case "Call":
|
|
402
|
+
case "CallAsync":
|
|
403
|
+
walk(node.value.function, scope);
|
|
404
|
+
for (const argument of node.value.arguments)
|
|
405
|
+
walk(argument, scope);
|
|
406
|
+
return;
|
|
407
|
+
case "NewArray":
|
|
408
|
+
case "NewSet":
|
|
409
|
+
case "NewVector":
|
|
410
|
+
case "NewMatrix":
|
|
411
|
+
for (const value of node.value.values)
|
|
412
|
+
walk(value, scope);
|
|
413
|
+
return;
|
|
414
|
+
case "NewDict":
|
|
415
|
+
for (const entry of node.value.values) {
|
|
416
|
+
walk(entry.key, scope);
|
|
417
|
+
walk(entry.value, scope);
|
|
418
|
+
}
|
|
419
|
+
return;
|
|
420
|
+
case "Struct":
|
|
421
|
+
for (const field of node.value.fields)
|
|
422
|
+
walk(field.value, scope);
|
|
423
|
+
return;
|
|
424
|
+
case "Builtin":
|
|
425
|
+
for (const argument of node.value.arguments)
|
|
426
|
+
walk(argument, scope);
|
|
427
|
+
return;
|
|
428
|
+
case "Error":
|
|
429
|
+
walk(node.value.message, scope);
|
|
430
|
+
return;
|
|
431
|
+
case "Variant":
|
|
432
|
+
case "NewRef":
|
|
433
|
+
case "UnwrapRecursive":
|
|
434
|
+
case "WrapRecursive":
|
|
435
|
+
case "Return":
|
|
436
|
+
walk(node.value.value, scope);
|
|
437
|
+
return;
|
|
438
|
+
default:
|
|
439
|
+
// Every kind of node is walked above: a new one fails the build
|
|
440
|
+
// here rather than hide the writes beneath it.
|
|
441
|
+
node;
|
|
442
|
+
}
|
|
443
|
+
};
|
|
444
|
+
walk(ir, { names: new Map(), parent: null });
|
|
445
|
+
const writes = [];
|
|
446
|
+
const wrote = (path) => {
|
|
447
|
+
if (!writes.some((written) => pathEqual(written, path)))
|
|
448
|
+
writes.push(path);
|
|
449
|
+
};
|
|
450
|
+
for (const { source, patch, staged, uses } of bindings) {
|
|
451
|
+
const any = (...hows) => hows.some((how) => uses.has(how));
|
|
452
|
+
if (patch.type === "none") {
|
|
453
|
+
if (any(staged ? "commit" : "write", "onward"))
|
|
454
|
+
wrote(source);
|
|
455
|
+
}
|
|
456
|
+
else if (staged) {
|
|
457
|
+
if (any("commit", "onward"))
|
|
458
|
+
wrote(patch.value);
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
if (any("write", "commit", "discard", "onward"))
|
|
462
|
+
wrote(patch.value);
|
|
463
|
+
if (any("commit", "onward"))
|
|
464
|
+
wrote(source);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
return {
|
|
468
|
+
writes,
|
|
469
|
+
records: records.map(({ name, mutations, indexes }) => ({
|
|
470
|
+
name,
|
|
471
|
+
mutations: [...mutations].map(([mutation, argTypes]) => ({ name: mutation, argTypes })),
|
|
472
|
+
indexes,
|
|
473
|
+
})),
|
|
474
|
+
};
|
|
475
|
+
}
|
|
74
476
|
//# sourceMappingURL=derive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/utils/derive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/utils/derive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/** Shared primary-identity adapter for builders over secondary index windows. */
|
|
6
|
+
import { ArrayType, DictType, IntegerType, OptionType, StringType, StructType, type EastType, type ExprType } from "@elaraai/east";
|
|
7
|
+
import { type IndexedEntryType, type PagedSource, type ResolvedRowSource } from "@elaraai/east-ui/internal";
|
|
8
|
+
/** A window with primary identities in a separately declared index order. */
|
|
9
|
+
export type OrderedRowSource<K extends EastType, R extends EastType, P extends EastType, IK extends EastType> = PagedSource<ArrayType<ReturnType<typeof IndexedEntryType<K, R, P, IK>>>>;
|
|
10
|
+
/**
|
|
11
|
+
* Retain the ordered window for display, and expose a bounded primary-key map
|
|
12
|
+
* to the builders' existing projection and editing code. Neither reads beyond
|
|
13
|
+
* the requested window or evaluates row predicates.
|
|
14
|
+
* @param source - Resolved index entries.
|
|
15
|
+
* @param component - The builder's name for author errors.
|
|
16
|
+
* @returns Ordered identities and the keyed source over the same pages.
|
|
17
|
+
*/
|
|
18
|
+
export declare function orderedRowSource(source: Extract<ResolvedRowSource, {
|
|
19
|
+
kind: "ordered";
|
|
20
|
+
}>, component: string): {
|
|
21
|
+
resolved: {
|
|
22
|
+
kind: "paged";
|
|
23
|
+
source: ExprType<StructType>;
|
|
24
|
+
collectionType: EastType;
|
|
25
|
+
elementType: EastType;
|
|
26
|
+
keyType: EastType | undefined;
|
|
27
|
+
pinned: boolean;
|
|
28
|
+
};
|
|
29
|
+
entries: ArrayType<StructType>;
|
|
30
|
+
window: import("@elaraai/east").CallableFunctionExpr<[IntegerType, IntegerType], OptionType<ArrayType<StructType>>>;
|
|
31
|
+
rows: import("@elaraai/east").CallableFunctionExpr<[ArrayType<StructType>], DictType<EastType, any>>;
|
|
32
|
+
keys: import("@elaraai/east").CallableFunctionExpr<[ArrayType<StructType>], ArrayType<StringType>>;
|
|
33
|
+
idOf: import("@elaraai/east").CallableFunctionExpr<[EastType], StringType>;
|
|
34
|
+
valueOf: import("@elaraai/east").CallableFunctionExpr<[StructType<{
|
|
35
|
+
[x: string]: any;
|
|
36
|
+
}>], any>;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=ordered-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordered-source.d.ts","sourceRoot":"","sources":["../../../src/utils/ordered-source.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iFAAiF;AACjF,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAsB,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAC7F,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAc,MAAM,eAAe,CAAC;AACpE,OAAO,EAAuD,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEjK,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,QAAQ,EAAE,EAAE,SAAS,QAAQ,IACxG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;EA4B1G"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/** Shared primary-identity adapter for builders over secondary index windows. */
|
|
6
|
+
import { ArrayType, DictType, East, FunctionType, IntegerType, OptionType, StringType, StructType, none, some } from "@elaraai/east";
|
|
7
|
+
import { buildPagedWindow, PinnedSourceType, PagedSourceType } from "@elaraai/east-ui/internal";
|
|
8
|
+
/**
|
|
9
|
+
* Retain the ordered window for display, and expose a bounded primary-key map
|
|
10
|
+
* to the builders' existing projection and editing code. Neither reads beyond
|
|
11
|
+
* the requested window or evaluates row predicates.
|
|
12
|
+
* @param source - Resolved index entries.
|
|
13
|
+
* @param component - The builder's name for author errors.
|
|
14
|
+
* @returns Ordered identities and the keyed source over the same pages.
|
|
15
|
+
*/
|
|
16
|
+
export function orderedRowSource(source, component) {
|
|
17
|
+
const entry = source.elementType;
|
|
18
|
+
if (entry.type !== "Struct" || entry.fields.row?.type !== "Variant" || entry.fields.row.cases.some === undefined) {
|
|
19
|
+
throw new Error(`${component}: indexed entries must carry joined record rows`);
|
|
20
|
+
}
|
|
21
|
+
const row = entry.fields.row.cases.some;
|
|
22
|
+
const key = source.keyType;
|
|
23
|
+
const collection = DictType(key, row);
|
|
24
|
+
const entries = source.collectionType;
|
|
25
|
+
const idOf = East.function([key], StringType, (_$, value) => key.type === "String" ? value : East.print(value));
|
|
26
|
+
const valueOf = East.function([entry], row, (_$, value) => value.row.match({
|
|
27
|
+
some: (_$2, data) => data,
|
|
28
|
+
none: () => East.error(`${component} needs joined rows; use Data.bindPaged with join: true`),
|
|
29
|
+
}));
|
|
30
|
+
const rows = East.function([entries], collection, (_$, values) => values.toDict((_$2, value) => value.key, (_$2, value) => valueOf(value)));
|
|
31
|
+
const keys = East.function([entries], ArrayType(StringType), (_$, values) => values.map((_$2, value) => idOf(value.key)));
|
|
32
|
+
const window = buildPagedWindow(source);
|
|
33
|
+
const handle = source.source;
|
|
34
|
+
const page = East.function([IntegerType, IntegerType], OptionType(collection), ($, offset, limit) => {
|
|
35
|
+
const read = $.const(window);
|
|
36
|
+
const project = $.const(rows);
|
|
37
|
+
return read(offset, limit).match({ some: (_$2, values) => East.value(some(project(values)), OptionType(collection)), none: () => East.value(none, OptionType(collection)) });
|
|
38
|
+
});
|
|
39
|
+
const keyed = East.value({ id: handle.id, page, total: handle.total, seek: handle.seek,
|
|
40
|
+
...(source.pinned ? { revision: handle.revision, refresh: handle.refresh } : {}),
|
|
41
|
+
}, source.pinned ? PinnedSourceType(collection) : PagedSourceType(collection));
|
|
42
|
+
const resolved = { kind: "paged", source: keyed, collectionType: collection, elementType: row, keyType: key, pinned: source.pinned };
|
|
43
|
+
return { resolved, entries, window, rows, keys, idOf, valueOf };
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ordered-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordered-source.js","sourceRoot":"","sources":["../../../src/utils/ordered-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* An author's own UI for one row in an inspector, on the wire: the Sheet's
|
|
7
|
+
* own Details (SB58, #1188) and a Plan event kind's own inspector (PB60,
|
|
8
|
+
* #1197). The author writes a typed East function over the row and a writer
|
|
9
|
+
* of the edited row; it crosses to the renderer wrapped over bytes, so a
|
|
10
|
+
* payload is one type whatever the rows hold.
|
|
11
|
+
*
|
|
12
|
+
* @packageDocumentation
|
|
13
|
+
*/
|
|
14
|
+
import { BlobType, FunctionType, NullType, type ExprType, type StructType } from "@elaraai/east";
|
|
15
|
+
/**
|
|
16
|
+
* An author's own UI for one row, on the wire: the row as bytes, and the
|
|
17
|
+
* writer that takes the edited row back as bytes, to what the inspector shows
|
|
18
|
+
* in place of its form.
|
|
19
|
+
*/
|
|
20
|
+
export declare const RowInspectorType: FunctionType<[BlobType, FunctionType<[BlobType], NullType>], import("@elaraai/east").RecursiveType<import("@elaraai/east-ui").UIComponentNode>>;
|
|
21
|
+
/** Type representing {@link RowInspectorType}. */
|
|
22
|
+
export type RowInspectorType = typeof RowInspectorType;
|
|
23
|
+
/**
|
|
24
|
+
* Checks an author's `(row, update) => UIComponentType` against the row type,
|
|
25
|
+
* then wraps it so the row and the edited row cross as bytes. The author's
|
|
26
|
+
* function is captured as it is and called only where the renderer draws it,
|
|
27
|
+
* never here.
|
|
28
|
+
*
|
|
29
|
+
* @param fn - The author's function
|
|
30
|
+
* @param rowType - The row type
|
|
31
|
+
* @param refusal - What a function of another type is refused with, naming the option
|
|
32
|
+
* @returns The wrapped function
|
|
33
|
+
* @throws {Error} With `refusal` when the function is not `(Row, (Row) => Null) => UIComponentType`
|
|
34
|
+
*/
|
|
35
|
+
export declare function rowInspector(fn: unknown, rowType: StructType, refusal: string): ExprType<RowInspectorType>;
|
|
36
|
+
//# sourceMappingURL=row-inspector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-inspector.d.ts","sourceRoot":"","sources":["../../../src/utils/row-inspector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EACH,QAAQ,EAAc,YAAY,EAAE,QAAQ,EAC7B,KAAK,QAAQ,EAAE,KAAK,UAAU,EAChD,MAAM,eAAe,CAAC;AAGvB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,iJAAgF,CAAC;AAE9G,kDAAkD;AAClD,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAa1G"}
|