toga-ai 1.0.588 → 1.0.589
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.
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
| [TOGa Blox (toga-blox) Architecture](architecture.md) | `toga-blox` (npm package **`@agilant/toga-blox`**) is the **shared React + TypeScript component / template / utility library** reused across the 2.0 frontends — | toga-blox/package.json, toga-blox/src/components/index.ts, toga-blox/src/api/index.ts, toga-blox/src/templates/index.ts |
|
|
6
6
|
| [AddNotes template — badge style/label decoupling & Badge style passthrough](features/add-notes-template.md) | The `@agilant/toga-blox` `AddNotesTemplate` renders a list of notes, each with a per-note contact **badge** (e.g. | toga-blox-npm/src/templates/AddNotes/types.ts, toga-blox-npm/src/templates/AddNotes/AddNotesTemplate.tsx, toga-blox-npm/src/components/Badge/Badge.types.tsx, toga-blox-npm/src/components/Badge/Badge.tsx |
|
|
7
7
|
| [AdvancedSelect (virtualized single/multi select)](features/advanced-select.md) | `AdvancedSelect<T>` is a **fully controlled, virtualized** single/multi select built from scratch (not react-select) on **`@tanstack/react-virtual`**, for large | toga-blox/src/components/AdvancedSelect/AdvancedSelect.tsx, toga-blox/src/components/AdvancedSelect/AdvancedSelect.types.ts, toga-blox/src/components/AdvancedSelect/AdvancedSelect.module.css |
|
|
8
|
-
| [API client (axios wrapper, auth, table-data fetchers)](features/api-client.md) | `src/api/` is a thin **axios** wrapper that standardizes the **2.0 API envelope**, manages auth (Bearer + refresh), serializes complex query options, and provid | toga-blox/src/api/index.ts, toga-blox/src/api/axiosInstance.ts, toga-blox/src/api/apiFunctions.ts, toga-blox/src/api/auth.ts, toga-blox/src/api/genericApi.ts, toga-blox/src/api/types.ts, toga-blox/src/api/tableData |
|
|
8
|
+
| [API client (axios wrapper, auth, table-data fetchers)](features/api-client.md) | `src/api/` is a thin **axios** wrapper that standardizes the **2.0 API envelope**, manages auth (Bearer + refresh), serializes complex query options, and provid | toga-blox/src/reactQuery/queryHelpers.ts, toga-blox/src/api/index.ts, toga-blox/src/api/axiosInstance.ts, toga-blox/src/api/apiFunctions.ts, toga-blox/src/api/auth.ts, toga-blox/src/api/genericApi.ts, toga-blox/src/api/types.ts, toga-blox/src/api/tableData |
|
|
9
9
|
| [BaseInput (react-hook-form field factory)](features/base-input.md) | `BaseInput` is a **form-field factory** driven by react-hook-form. | toga-blox/src/components/BaseInput/BaseInput.tsx, toga-blox/src/components/BaseInput/BaseInput.types.ts, toga-blox/src/components/BaseInput/BaseInput.module.css, toga-blox/src/components/BaseInput/components |
|
|
10
10
|
| [Primary Table templates (server/client, sizing, virtualization)](features/primary-table-templates.md) | `src/templates/PrimaryTable/` is the **production, wired-up table** built on the [Table component](table.md). | toga-blox/src/templates/PrimaryTable/PrimaryTable.tsx, toga-blox/src/templates/PrimaryTable/PrimaryTableServerTemplate.tsx, toga-blox/src/templates/PrimaryTable/PrimaryTableClientTemplate.tsx, toga-blox/src/templates/PrimaryTable/PrimaryTableHeaderCell.tsx, toga-blox/src/templates/PrimaryTable/PrimaryTableBodyCell.tsx, toga-blox/src/templates/PrimaryTable/PrimaryTableRow.tsx, toga-blox/src/templates/PrimaryTable/PrimaryTableExpandableRow.tsx, toga-blox/src/templates/PrimaryTable/types.ts |
|
|
11
11
|
| [TableRecordModal (record-detail modal shell)](features/table-record-modal.md) | `TableRecordModal` is a **generic, presentational modal shell** for showing a single table record (row) in detail — typically opened from a table row click. | toga-blox/src/components/TableRecordModal/TableRecordModal.tsx, toga-blox/src/components/TableRecordModal/index.ts, toga-blox/src/components/TableRecordModal/tableRecordModal.module.css |
|
|
@@ -6,9 +6,10 @@ project: TOGa Blox
|
|
|
6
6
|
client: shared
|
|
7
7
|
type: feature
|
|
8
8
|
status: active
|
|
9
|
-
updated: 2026-08-
|
|
9
|
+
updated: 2026-08-17
|
|
10
10
|
owners: [apeterson, tcox]
|
|
11
11
|
files:
|
|
12
|
+
- toga-blox/src/reactQuery/queryHelpers.ts
|
|
12
13
|
- toga-blox/src/api/index.ts
|
|
13
14
|
- toga-blox/src/api/axiosInstance.ts
|
|
14
15
|
- toga-blox/src/api/apiFunctions.ts
|
|
@@ -105,8 +106,25 @@ Filterable`, `hyperlinkField`, `imageUrlField`, `sticky`, `precision`, …), `Da
|
|
|
105
106
|
`Core.Domains` row, not frontend code. See
|
|
106
107
|
[encrypted user-uuid auth handoff](../../api2/features/encrypted-user-uuid-auth-handoff.md) for
|
|
107
108
|
the same gating on the SSO handoff route.
|
|
109
|
+
- **⚠ `assembleOptionsWhere` (`reactQuery/queryHelpers.ts`) expects every `where.and`/`where.or`
|
|
110
|
+
entry to be a STRUCTURED OBJECT** (`{field:{op:value}}`). A **raw API-syntax string** clause —
|
|
111
|
+
e.g. a metadata `apiWhereClause` like `(IFNULL(Items.assetTypeId,0):ne:3)` that
|
|
112
|
+
`getDataTableData` pushes into `apiOptions.where.and` — is iterated with `for (const field in
|
|
113
|
+
entry)`, which on a string walks **character indices**, emitting garbage `index:0:char`
|
|
114
|
+
conditions (`0:0:(`, `1:0:I`, …). api2 v2 then rejects the request with **`Invalid operator '0'`
|
|
115
|
+
→ EO-1 500**. Symptom: opening a modal/table whose `tableViewMeta` carries an `apiWhereClause`
|
|
116
|
+
(seen in the Compass USA Item Fulfillment modal) 500s. Fix (in place since 2026-08-17): the
|
|
117
|
+
serializer now passes any `typeof === "string"` entry through **verbatim**, stripping one outer
|
|
118
|
+
paren pair so the group re-wrap doesn't double-wrap. Any raw pre-formatted where clause was
|
|
119
|
+
100% broken before this. If you add a new raw-string clause path, route it through this string
|
|
120
|
+
branch — do **not** feed a raw clause into an object-expecting serializer.
|
|
108
121
|
|
|
109
122
|
## Change history
|
|
123
|
+
- 2026-08-17 — Fixed `assembleOptionsWhere` spreading a raw-string `apiWhereClause` character-by-
|
|
124
|
+
character into invalid `index:0:char` conditions (api2 `Invalid operator '0'` / EO-1 500 opening
|
|
125
|
+
the Compass USA Item Fulfillment modal). String entries now pass through verbatim (single outer
|
|
126
|
+
paren pair stripped). Library-wide fix in `reactQuery/queryHelpers.ts`, not client-specific.
|
|
127
|
+
(apeterson)
|
|
110
128
|
- 2026-08-13 — TRUE-80091: recorded that `fetchPublicToken()`/`POST /auth/public` is **origin-gated
|
|
111
129
|
against `Core.Domains` (EN-6 on an unregistered origin)** and that each host variant needs its own
|
|
112
130
|
row — `www.togatech.com` is rejected while `togatech.com` and `localhost` are allowed, which
|
package/package.json
CHANGED