@asteby/metacore-runtime-react 29.2.14 → 29.2.16

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @asteby/metacore-runtime-react
2
2
 
3
+ ## 29.2.16
4
+
5
+ ### Patch Changes
6
+
7
+ - f46d82e: Fix `ImportDialog` swallowing the real per-row error report when the backend answers a validate/import failure with a non-2xx status (e.g. 422). Previously any non-2xx response fell into a generic "Error al importar los datos" / "Error al validar el archivo" toast, discarding the `data.failures`/`data.errors` detail the backend had already computed. Now the dialog renders that report when present, and only falls back to the generic toast when the response carries no usable payload.
8
+
9
+ ## 29.2.15
10
+
11
+ ### Patch Changes
12
+
13
+ - 1fe4440: chore(runtime-react): quitar ingest de debug del renderer creator
14
+
3
15
  ## 29.2.14
4
16
 
5
17
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/dialogs/import.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7C,UAAU,iBAAiB;IACvB,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAqCD,wBAAgB,YAAY,CAAC,EACzB,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,GACb,EAAE,iBAAiB,+BAkWnB"}
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/dialogs/import.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7C,UAAU,iBAAiB;IACvB,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,aAAa,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B;AAqCD,wBAAgB,YAAY,CAAC,EACzB,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,UAAU,GACb,EAAE,iBAAiB,+BAgYnB"}
@@ -82,8 +82,23 @@ export function ImportDialog({ open, onOpenChange, model, metadata, onImported,
82
82
  setStep('validation');
83
83
  }
84
84
  catch (err) {
85
- const message = err?.response?.data?.message || 'Error al validar el archivo';
86
- toast.error(message);
85
+ // Backends may answer a validation failure with a non-2xx status
86
+ // (e.g. 422) while still carrying the real per-row report in the
87
+ // body. Render it instead of a body-less "something went wrong"
88
+ // toast whenever that shape is present.
89
+ const body = err?.response?.data;
90
+ const payload = body?.data ?? body;
91
+ if (payload && (Array.isArray(payload.errors) || typeof payload.rowCount === 'number' || typeof payload.valid === 'number')) {
92
+ setValidationResult({
93
+ valid: payload.rowCount ?? payload.valid ?? 0,
94
+ skipped: payload.skipped ?? 0,
95
+ errors: payload.errors ?? [],
96
+ });
97
+ setStep('validation');
98
+ }
99
+ else {
100
+ toast.error(body?.message || 'Error al validar el archivo');
101
+ }
87
102
  }
88
103
  finally {
89
104
  setValidating(false);
@@ -117,8 +132,27 @@ export function ImportDialog({ open, onOpenChange, model, metadata, onImported,
117
132
  }
118
133
  }
119
134
  catch (err) {
120
- const message = err?.response?.data?.message || 'Error al importar los datos';
121
- toast.error(message);
135
+ // A partial or total import failure is still a real, displayable
136
+ // result — the backend computes per-row reasons in `data.failures`
137
+ // even when it answers with a non-2xx status (e.g. 422 when zero
138
+ // rows were created). Show that report instead of discarding it
139
+ // behind a generic toast.
140
+ const body = err?.response?.data;
141
+ const payload = body?.data ?? body;
142
+ if (payload && (Array.isArray(payload.failures) || Array.isArray(payload.errors) || typeof payload.created === 'number')) {
143
+ setImportResult({
144
+ created: payload.created ?? 0,
145
+ skipped: payload.skipped ?? 0,
146
+ errors: payload.failures ?? payload.errors ?? [],
147
+ });
148
+ setStep('results');
149
+ if ((payload.created ?? 0) > 0) {
150
+ onImported?.();
151
+ }
152
+ }
153
+ else {
154
+ toast.error(body?.message || 'Error al importar los datos');
155
+ }
122
156
  }
123
157
  finally {
124
158
  setImporting(false);
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-columns.d.ts","sourceRoot":"","sources":["../src/dynamic-columns.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic-columns.d.ts","sourceRoot":"","sources":["../src/dynamic-columns.tsx"],"names":[],"mappings":"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"}
@@ -705,34 +705,6 @@ export function makeDefaultGetDynamicColumns(helpers = {}) {
705
705
  // user/avatar/search columns (unassigned person)
706
706
  // still keep "N/A".
707
707
  const resolvedName = resolveActorDisplayName(getNestedValue(row.original, namePath));
708
- // #region agent log
709
- if (String(col.key || '').includes('created_by') ||
710
- String(namePath || '').includes('created_by')) {
711
- fetch('http://127.0.0.1:7418/ingest/6ffa7e83-ad69-4d7c-8a4a-9327529b129c', {
712
- method: 'POST',
713
- headers: {
714
- 'Content-Type': 'application/json',
715
- 'X-Debug-Session-Id': '2cac11',
716
- },
717
- body: JSON.stringify({
718
- sessionId: '2cac11',
719
- runId: 'post-fix',
720
- hypothesisId: 'OBJ',
721
- location: 'dynamic-columns.tsx:creator',
722
- message: 'actor cell resolve',
723
- data: {
724
- key: col.key,
725
- renderAs,
726
- namePath,
727
- resolvedName: resolvedName ?? null,
728
- finalName: resolvedName ||
729
- resolveMissingActorLabel(renderAs, col.key, namePath, t),
730
- },
731
- timestamp: Date.now(),
732
- }),
733
- }).catch(() => { });
734
- }
735
- // #endregion
736
708
  const name = resolvedName ||
737
709
  resolveMissingActorLabel(renderAs, col.key, namePath, t);
738
710
  const desc = getNestedValue(row.original, col.description || '');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asteby/metacore-runtime-react",
3
- "version": "29.2.14",
3
+ "version": "29.2.16",
4
4
  "description": "React runtime for metacore hosts — renders addon contributions dynamically",
5
5
  "repository": {
6
6
  "type": "git",
@@ -146,9 +146,22 @@ export function ImportDialog({
146
146
  })
147
147
  setStep('validation')
148
148
  } catch (err: any) {
149
- const message =
150
- err?.response?.data?.message || 'Error al validar el archivo'
151
- toast.error(message)
149
+ // Backends may answer a validation failure with a non-2xx status
150
+ // (e.g. 422) while still carrying the real per-row report in the
151
+ // body. Render it instead of a body-less "something went wrong"
152
+ // toast whenever that shape is present.
153
+ const body = err?.response?.data
154
+ const payload = body?.data ?? body
155
+ if (payload && (Array.isArray(payload.errors) || typeof payload.rowCount === 'number' || typeof payload.valid === 'number')) {
156
+ setValidationResult({
157
+ valid: payload.rowCount ?? payload.valid ?? 0,
158
+ skipped: payload.skipped ?? 0,
159
+ errors: payload.errors ?? [],
160
+ })
161
+ setStep('validation')
162
+ } else {
163
+ toast.error(body?.message || 'Error al validar el archivo')
164
+ }
152
165
  } finally {
153
166
  setValidating(false)
154
167
  }
@@ -187,9 +200,26 @@ export function ImportDialog({
187
200
  onImported?.()
188
201
  }
189
202
  } catch (err: any) {
190
- const message =
191
- err?.response?.data?.message || 'Error al importar los datos'
192
- toast.error(message)
203
+ // A partial or total import failure is still a real, displayable
204
+ // result the backend computes per-row reasons in `data.failures`
205
+ // even when it answers with a non-2xx status (e.g. 422 when zero
206
+ // rows were created). Show that report instead of discarding it
207
+ // behind a generic toast.
208
+ const body = err?.response?.data
209
+ const payload = body?.data ?? body
210
+ if (payload && (Array.isArray(payload.failures) || Array.isArray(payload.errors) || typeof payload.created === 'number')) {
211
+ setImportResult({
212
+ created: payload.created ?? 0,
213
+ skipped: payload.skipped ?? 0,
214
+ errors: payload.failures ?? payload.errors ?? [],
215
+ })
216
+ setStep('results')
217
+ if ((payload.created ?? 0) > 0) {
218
+ onImported?.()
219
+ }
220
+ } else {
221
+ toast.error(body?.message || 'Error al importar los datos')
222
+ }
193
223
  } finally {
194
224
  setImporting(false)
195
225
  setProgress(0)
@@ -990,45 +990,6 @@ export function makeDefaultGetDynamicColumns(
990
990
  const resolvedName = resolveActorDisplayName(
991
991
  getNestedValue(row.original, namePath),
992
992
  )
993
- // #region agent log
994
- if (
995
- String(col.key || '').includes('created_by') ||
996
- String(namePath || '').includes('created_by')
997
- ) {
998
- fetch(
999
- 'http://127.0.0.1:7418/ingest/6ffa7e83-ad69-4d7c-8a4a-9327529b129c',
1000
- {
1001
- method: 'POST',
1002
- headers: {
1003
- 'Content-Type': 'application/json',
1004
- 'X-Debug-Session-Id': '2cac11',
1005
- },
1006
- body: JSON.stringify({
1007
- sessionId: '2cac11',
1008
- runId: 'post-fix',
1009
- hypothesisId: 'OBJ',
1010
- location: 'dynamic-columns.tsx:creator',
1011
- message: 'actor cell resolve',
1012
- data: {
1013
- key: col.key,
1014
- renderAs,
1015
- namePath,
1016
- resolvedName: resolvedName ?? null,
1017
- finalName:
1018
- resolvedName ||
1019
- resolveMissingActorLabel(
1020
- renderAs,
1021
- col.key,
1022
- namePath,
1023
- t,
1024
- ),
1025
- },
1026
- timestamp: Date.now(),
1027
- }),
1028
- },
1029
- ).catch(() => {})
1030
- }
1031
- // #endregion
1032
993
  const name =
1033
994
  resolvedName ||
1034
995
  resolveMissingActorLabel(renderAs, col.key, namePath, t)