@ram_28/kf-ai-sdk 2.0.15 → 2.0.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.
Files changed (83) hide show
  1. package/README.md +8 -8
  2. package/dist/bdo/core/BaseBdo.d.ts +1 -1
  3. package/dist/bdo.mjs +2 -2
  4. package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts +1 -1
  5. package/dist/components/hooks/useActivityForm/createActivityItemProxy.d.ts.map +1 -1
  6. package/dist/components/hooks/useActivityForm/types.d.ts +2 -2
  7. package/dist/components/hooks/useActivityForm/types.d.ts.map +1 -1
  8. package/dist/components/hooks/useActivityForm/useActivityForm.d.ts.map +1 -1
  9. package/dist/components/hooks/useActivityTable/types.d.ts +4 -4
  10. package/dist/components/hooks/useActivityTable/types.d.ts.map +1 -1
  11. package/dist/components/hooks/useActivityTable/useActivityTable.d.ts +1 -1
  12. package/dist/components/hooks/useActivityTable/useActivityTable.d.ts.map +1 -1
  13. package/dist/components/hooks/useBDOForm/createItemProxy.d.ts.map +1 -0
  14. package/dist/components/hooks/useBDOForm/createResolver.d.ts.map +1 -0
  15. package/dist/components/hooks/useBDOForm/index.d.ts +6 -0
  16. package/dist/components/hooks/useBDOForm/index.d.ts.map +1 -0
  17. package/dist/components/hooks/useBDOForm/shared.d.ts +50 -0
  18. package/dist/components/hooks/useBDOForm/shared.d.ts.map +1 -0
  19. package/dist/components/hooks/{useForm → useBDOForm}/types.d.ts +6 -6
  20. package/dist/components/hooks/useBDOForm/types.d.ts.map +1 -0
  21. package/dist/components/hooks/{useForm/useForm.d.ts → useBDOForm/useBDOForm.d.ts} +4 -4
  22. package/dist/components/hooks/useBDOForm/useBDOForm.d.ts.map +1 -0
  23. package/dist/components/hooks/useBDOTable/types.d.ts +1 -3
  24. package/dist/components/hooks/useBDOTable/types.d.ts.map +1 -1
  25. package/dist/components/hooks/useBDOTable/useBDOTable.d.ts.map +1 -1
  26. package/dist/form.cjs +1 -1
  27. package/dist/form.d.ts +1 -1
  28. package/dist/form.d.ts.map +1 -1
  29. package/dist/form.mjs +250 -253
  30. package/dist/form.types.d.ts +1 -1
  31. package/dist/form.types.d.ts.map +1 -1
  32. package/dist/shared-5a7UkED1.js +1180 -0
  33. package/dist/shared-nnmlRVs7.cjs +1 -0
  34. package/dist/table.cjs +1 -1
  35. package/dist/table.mjs +12 -11
  36. package/dist/types/constants.d.ts +3 -3
  37. package/dist/workflow/Activity.d.ts +15 -3
  38. package/dist/workflow/Activity.d.ts.map +1 -1
  39. package/dist/workflow/client.d.ts +2 -2
  40. package/dist/workflow/client.d.ts.map +1 -1
  41. package/dist/workflow/types.d.ts +7 -3
  42. package/dist/workflow/types.d.ts.map +1 -1
  43. package/dist/workflow.cjs +1 -1
  44. package/dist/workflow.mjs +503 -546
  45. package/docs/bdo.md +1 -1
  46. package/docs/gaps.md +14 -64
  47. package/docs/useActivityForm.md +393 -0
  48. package/docs/useActivityTable.md +42 -105
  49. package/docs/{useForm.md → useBDOForm.md} +24 -24
  50. package/docs/useBDOTable.md +6 -39
  51. package/docs/workflow.md +43 -301
  52. package/package.json +2 -2
  53. package/sdk/bdo/core/BaseBdo.ts +2 -2
  54. package/sdk/components/hooks/useActivityForm/createActivityItemProxy.ts +1 -1
  55. package/sdk/components/hooks/useActivityForm/createActivityResolver.ts +1 -1
  56. package/sdk/components/hooks/useActivityForm/types.ts +4 -4
  57. package/sdk/components/hooks/useActivityForm/useActivityForm.ts +44 -194
  58. package/sdk/components/hooks/useActivityTable/types.ts +4 -2
  59. package/sdk/components/hooks/useActivityTable/useActivityTable.ts +8 -39
  60. package/sdk/components/hooks/{useForm → useBDOForm}/index.ts +4 -3
  61. package/sdk/components/hooks/useBDOForm/shared.ts +250 -0
  62. package/sdk/components/hooks/{useForm → useBDOForm}/types.ts +9 -9
  63. package/sdk/components/hooks/{useForm/useForm.ts → useBDOForm/useBDOForm.ts} +70 -96
  64. package/sdk/components/hooks/useBDOTable/types.ts +1 -3
  65. package/sdk/components/hooks/useBDOTable/useBDOTable.ts +3 -2
  66. package/sdk/form.ts +2 -2
  67. package/sdk/form.types.ts +4 -4
  68. package/sdk/types/constants.ts +3 -3
  69. package/sdk/workflow/Activity.ts +29 -6
  70. package/sdk/workflow/client.ts +65 -25
  71. package/sdk/workflow/types.ts +10 -2
  72. package/dist/components/hooks/useForm/createItemProxy.d.ts.map +0 -1
  73. package/dist/components/hooks/useForm/createResolver.d.ts.map +0 -1
  74. package/dist/components/hooks/useForm/index.d.ts +0 -5
  75. package/dist/components/hooks/useForm/index.d.ts.map +0 -1
  76. package/dist/components/hooks/useForm/types.d.ts.map +0 -1
  77. package/dist/components/hooks/useForm/useForm.d.ts.map +0 -1
  78. package/dist/createResolver-AIgUwoS6.cjs +0 -1
  79. package/dist/createResolver-ZHXQ7QMa.js +0 -1078
  80. /package/dist/components/hooks/{useForm → useBDOForm}/createItemProxy.d.ts +0 -0
  81. /package/dist/components/hooks/{useForm → useBDOForm}/createResolver.d.ts +0 -0
  82. /package/sdk/components/hooks/{useForm → useBDOForm}/createItemProxy.ts +0 -0
  83. /package/sdk/components/hooks/{useForm → useBDOForm}/createResolver.ts +0 -0
@@ -33,7 +33,7 @@ export type AllFieldsType<B> = ExtractEditableType<B> & ExtractReadonlyType<B> &
33
33
  // BDO CAPABILITY CONSTRAINTS
34
34
  // ============================================================
35
35
 
36
- /** Minimum BDO shape required for any useForm usage */
36
+ /** Minimum BDO shape required for any useBDOForm usage */
37
37
  interface BaseBdoShape {
38
38
  readonly meta: BdoMetaType;
39
39
  getFields(): Record<string, BaseField<unknown>>;
@@ -81,13 +81,13 @@ export type HandleSubmitType<TRead = unknown> = (
81
81
  // OPTIONS TYPE
82
82
  // ============================================================
83
83
 
84
- export type UseFormOptionsType<B extends BaseBdo<any, any, any>> =
85
- | UseFormCreateOptionsType<B>
86
- | UseFormUpdateOptionsType<B>
87
- | UseFormAutoOptionsType<B>;
84
+ export type UseBDOFormOptionsType<B extends BaseBdo<any, any, any>> =
85
+ | UseBDOFormCreateOptionsType<B>
86
+ | UseBDOFormUpdateOptionsType<B>
87
+ | UseBDOFormAutoOptionsType<B>;
88
88
 
89
89
  /** Options when operation is explicitly "create" — BDO must have create() */
90
- interface UseFormCreateOptionsType<B extends BaseBdo<any, any, any>> {
90
+ interface UseBDOFormCreateOptionsType<B extends BaseBdo<any, any, any>> {
91
91
  bdo: B & CreatableBdo<ExtractEditableType<B>>;
92
92
  operation: "create";
93
93
  recordId?: undefined;
@@ -99,7 +99,7 @@ interface UseFormCreateOptionsType<B extends BaseBdo<any, any, any>> {
99
99
  }
100
100
 
101
101
  /** Options when operation is explicitly "update" — BDO must have get() + update() */
102
- interface UseFormUpdateOptionsType<B extends BaseBdo<any, any, any>> {
102
+ interface UseBDOFormUpdateOptionsType<B extends BaseBdo<any, any, any>> {
103
103
  bdo: B & UpdatableBdo<ExtractEditableType<B>>;
104
104
  operation: "update";
105
105
  recordId: string;
@@ -111,7 +111,7 @@ interface UseFormUpdateOptionsType<B extends BaseBdo<any, any, any>> {
111
111
  }
112
112
 
113
113
  /** Options when operation is auto-inferred — BDO must support both */
114
- interface UseFormAutoOptionsType<B extends BaseBdo<any, any, any>> {
114
+ interface UseBDOFormAutoOptionsType<B extends BaseBdo<any, any, any>> {
115
115
  bdo: B & FormBdo<ExtractEditableType<B>>;
116
116
  operation?: undefined;
117
117
  recordId?: string;
@@ -187,7 +187,7 @@ export type FormItemType<
187
187
  // RETURN TYPE
188
188
  // ============================================================
189
189
 
190
- export interface UseFormReturnType<B extends BaseBdo<any, any, any>> {
190
+ export interface UseBDOFormReturnType<B extends BaseBdo<any, any, any>> {
191
191
  // Item with typed accessors
192
192
  item: FormItemType<ExtractEditableType<B>, ExtractReadonlyType<B>>;
193
193
 
@@ -4,61 +4,30 @@ import {
4
4
  type FieldValues,
5
5
  type FieldErrors,
6
6
  type Control,
7
- type RegisterOptions,
8
7
  type UseFormReturn as RHFUseFormReturn,
9
8
  } from "react-hook-form";
10
9
  import { useQuery } from "@tanstack/react-query";
11
10
  import { createResolver } from "./createResolver";
12
11
  import { createItemProxy } from "./createItemProxy";
12
+ import {
13
+ coerceFieldValue,
14
+ coerceRecordForForm,
15
+ createSyncField,
16
+ createEnhancedRegister,
17
+ createEnhancedControl,
18
+ } from "./shared";
13
19
  import { getBdoSchema } from "../../../api/metadata";
14
20
  import { api } from "../../../api/client";
15
21
  import type { BaseBdo } from "../../../bdo";
16
22
  import type { CreateUpdateResponseType } from "../../../types/common";
17
- import type { BaseField } from "../../../bdo/fields/BaseField";
18
23
  import type {
19
- UseFormOptionsType,
20
- UseFormReturnType,
24
+ UseBDOFormOptionsType,
25
+ UseBDOFormReturnType,
21
26
  HandleSubmitType,
22
27
  AllFieldsType,
23
28
  UpdatableBdo,
24
29
  } from "./types";
25
30
 
26
- /** Coerce form value to match field's expected type (HTML inputs return strings) */
27
- function coerceFieldValue(field: BaseField<unknown>, value: unknown): unknown {
28
- const type = field.meta.Type;
29
- if (typeof value === "string" && type === "Number") {
30
- return value === "" ? undefined : Number(value);
31
- }
32
- // Date/DateTime: empty string → undefined (don't send to backend)
33
- if (typeof value === "string" && value === "" && (type === "Date" || type === "DateTime")) {
34
- return undefined;
35
- }
36
- // DateTime: normalize to HH:MM:SS and ensure Z suffix for API request format
37
- if (typeof value === "string" && value !== "" && type === "DateTime") {
38
- let normalized = value;
39
- if (normalized.endsWith("Z")) normalized = normalized.slice(0, -1);
40
- // HTML datetime-local may omit seconds (e.g. "2026-02-18T15:12")
41
- const timePart = normalized.split("T")[1] || "";
42
- if ((timePart.match(/:/g) || []).length === 1) {
43
- normalized += ":00";
44
- }
45
- return normalized + "Z";
46
- }
47
- return value;
48
- }
49
-
50
- /** Strip trailing Z from DateTime response values for HTML datetime-local inputs */
51
- function coerceRecordForForm(bdo: BaseBdo<any, any, any>, data: Record<string, unknown>): Record<string, unknown> {
52
- const fields = bdo.getFields();
53
- const result = { ...data };
54
- for (const [key, value] of Object.entries(result)) {
55
- if (typeof value === "string" && fields[key]?.meta.Type === "DateTime" && value.endsWith("Z")) {
56
- result[key] = value.slice(0, -1);
57
- }
58
- }
59
- return result;
60
- }
61
-
62
31
  /**
63
32
  * A form hook that integrates with React Hook Form.
64
33
  *
@@ -71,11 +40,11 @@ function coerceRecordForForm(bdo: BaseBdo<any, any, any>, data: Record<string, u
71
40
  * - Smart register: auto-disables readonly fields
72
41
  * - Payload filtering: handleSubmit auto-filters to editable fields only
73
42
  * - Constraint validation: auto-validates required, length, etc. from field meta
74
- * - Draft auto-save: creates draft on form open, patches on field changes
43
+ * - Per-field sync: validates, sends to API, resets dirty, updates computed fields
75
44
  */
76
- export function useForm<B extends BaseBdo<any, any, any>>(
77
- options: UseFormOptionsType<B>,
78
- ): UseFormReturnType<B> {
45
+ export function useBDOForm<B extends BaseBdo<any, any, any>>(
46
+ options: UseBDOFormOptionsType<B>,
47
+ ): UseBDOFormReturnType<B> {
79
48
  const {
80
49
  bdo,
81
50
  recordId,
@@ -112,7 +81,7 @@ export function useForm<B extends BaseBdo<any, any, any>>(
112
81
  queryKey: ["form-record", bdo.meta._id, recordId],
113
82
  queryFn: async () => {
114
83
  const item = await (bdo as unknown as UpdatableBdo).get(recordId!);
115
- return coerceRecordForForm(bdo, item.toJSON() as Record<string, unknown>);
84
+ return coerceRecordForForm(bdo.getFields(), item.toJSON() as Record<string, unknown>);
116
85
  },
117
86
  enabled: operation === "update" && !!recordId,
118
87
  staleTime: 0,
@@ -199,66 +168,71 @@ export function useForm<B extends BaseBdo<any, any, any>>(
199
168
  );
200
169
 
201
170
  // ============================================================
202
- // SMART REGISTER (auto-disables readonly fields)
171
+ // PER-FIELD SYNC (validate API call → reset dirty → update computed)
203
172
  // ============================================================
204
173
 
205
174
  const fields = bdo.getFields();
175
+ const isComputingRef = useRef(false);
206
176
 
207
- const smartRegister = useCallback(
208
- (name: string, registerOptions?: RegisterOptions) => {
209
- const rhfResult = form.register(name as any, registerOptions);
210
- if (fields[name]?.readOnly) {
211
- return { ...rhfResult, disabled: true };
212
- }
213
- return rhfResult;
214
- },
215
- [form, fields],
177
+ const readonlyFieldNames = useMemo<string[]>(
178
+ () => Object.keys(fields).filter((k) => fields[k].readOnly),
179
+ [fields],
216
180
  );
217
181
 
218
- // ============================================================
219
- // DRAFT AUTO-SAVE (Create Mode - patch dirty fields on change)
220
- // ============================================================
221
-
222
- const draftPatchTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
223
-
224
- useEffect(() => {
225
- if (operation !== "create" || !draftData?._id) return;
226
-
227
- const subscription = form.watch((_values, { type }) => {
228
- if (type !== "change") return;
229
-
230
- if (draftPatchTimeoutRef.current) {
231
- clearTimeout(draftPatchTimeoutRef.current);
182
+ const syncApiFn = useCallback(
183
+ async (fieldName: string, value: unknown) => {
184
+ if (operation === "create" && draftData?._id) {
185
+ return api(bdo.meta._id).draftInteraction({
186
+ _id: draftData._id,
187
+ [fieldName]: value,
188
+ });
189
+ } else if (operation === "update" && recordId) {
190
+ return api(bdo.meta._id).update(recordId, {
191
+ [fieldName]: value,
192
+ });
232
193
  }
194
+ },
195
+ [operation, draftData, recordId, bdo],
196
+ );
233
197
 
234
- draftPatchTimeoutRef.current = setTimeout(async () => {
235
- const currentValues = form.getValues();
236
- const dirtyFields = form.formState.dirtyFields;
237
- const dirtyData: Record<string, unknown> = {};
198
+ const syncField = useMemo(
199
+ () =>
200
+ createSyncField({
201
+ apiFn: syncApiFn,
202
+ allFields: fields,
203
+ readonlyFieldNames,
204
+ rhf: form,
205
+ isComputingRef,
206
+ }),
207
+ [syncApiFn, fields, readonlyFieldNames, form],
208
+ );
238
209
 
239
- for (const [key, value] of Object.entries(currentValues)) {
240
- if (fields[key] && !fields[key].readOnly && dirtyFields[key]) {
241
- dirtyData[key] = coerceFieldValue(fields[key], value);
242
- }
243
- }
210
+ const syncOnChange = mode === "onChange" || mode === "all";
211
+ const syncOnBlur =
212
+ mode === "onBlur" || mode === "onTouched" || mode === "all";
213
+
214
+ const smartRegister = useMemo(
215
+ () =>
216
+ createEnhancedRegister({
217
+ rhf: form,
218
+ allFields: fields,
219
+ syncField,
220
+ syncOnBlur,
221
+ syncOnChange,
222
+ }),
223
+ [form, fields, syncField, syncOnBlur, syncOnChange],
224
+ );
244
225
 
245
- if (Object.keys(dirtyData).length > 0) {
246
- try {
247
- await api(bdo.meta._id).draftInteraction({ _id: draftData._id, ...dirtyData });
248
- } catch {
249
- // Draft auto-save is best-effort — don't block user interaction
250
- }
251
- }
252
- }, 800);
253
- });
254
-
255
- return () => {
256
- subscription.unsubscribe();
257
- if (draftPatchTimeoutRef.current) {
258
- clearTimeout(draftPatchTimeoutRef.current);
259
- }
260
- };
261
- }, [form, operation, draftData, fields, bdo]);
226
+ const enhancedControl = useMemo(
227
+ () =>
228
+ createEnhancedControl({
229
+ control: form.control,
230
+ syncField,
231
+ syncOnBlur,
232
+ syncOnChange,
233
+ }),
234
+ [form.control, syncField, syncOnBlur, syncOnChange],
235
+ );
262
236
 
263
237
  // ============================================================
264
238
  // CUSTOM HANDLE SUBMIT (with API call + payload filtering)
@@ -332,7 +306,7 @@ export function useForm<B extends BaseBdo<any, any, any>>(
332
306
  getValues: form.getValues as any,
333
307
  reset: form.reset as any,
334
308
  trigger: form.trigger as any,
335
- control: form.control as unknown as Control<AllFieldsType<B>>,
309
+ control: enhancedControl as unknown as Control<AllFieldsType<B>>,
336
310
  formState: form.formState as any,
337
311
 
338
312
  errors: form.formState.errors as any,
@@ -3,11 +3,9 @@ import type { UseFilterOptionsType } from '../useFilter/types';
3
3
  import type { SortType } from '../../../types/common';
4
4
 
5
5
  export interface UseBDOTableOptionsType<T> {
6
- /** BDO instance with list() and count() methods */
6
+ /** BDO instance only meta._id is used (for API routing) */
7
7
  bdo: {
8
8
  meta: { readonly _id: string; readonly name: string };
9
- list(options?: any): Promise<any>;
10
- count(options?: any): Promise<any>;
11
9
  };
12
10
  /** Initial state */
13
11
  initialState?: {
@@ -1,3 +1,4 @@
1
+ import { api } from '../../../api/client';
1
2
  import { useTable } from '../useTable';
2
3
  import type { UseBDOTableOptionsType, UseBDOTableReturnType } from './types';
3
4
 
@@ -8,8 +9,8 @@ export function useBDOTable<T = any>(
8
9
 
9
10
  return useTable<T>({
10
11
  queryKey: ['table', bdo.meta._id],
11
- listFn: (opts) => bdo.list(opts),
12
- countFn: (opts) => bdo.count(opts),
12
+ listFn: (opts) => api<T>(bdo.meta._id).list(opts),
13
+ countFn: (opts) => api<T>(bdo.meta._id).count(opts),
13
14
  ...rest,
14
15
  });
15
16
  }
package/sdk/form.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  // ============================================================
2
2
  // Form Entry Point
3
3
  // ============================================================
4
- // Exports useForm hook for forms with automatic validation and API operations.
4
+ // Exports useBDOForm hook for forms with automatic validation and API operations.
5
5
 
6
- export { useForm } from "./components/hooks/useForm";
6
+ export { useBDOForm } from "./components/hooks/useBDOForm";
7
7
  export { ValidationMode, FormOperation, InteractionMode } from "./types/constants";
package/sdk/form.types.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  // ============================================================
2
2
  // Form Types Entry Point
3
3
  // ============================================================
4
- // Type-only exports for useForm hook.
4
+ // Type-only exports for useBDOForm hook.
5
5
 
6
6
  export type {
7
- UseFormOptionsType,
8
- UseFormReturnType,
7
+ UseBDOFormOptionsType,
8
+ UseBDOFormReturnType,
9
9
  FormItemType,
10
10
  EditableFormFieldAccessorType,
11
11
  ReadonlyFormFieldAccessorType,
@@ -14,4 +14,4 @@ export type {
14
14
  ExtractEditableType,
15
15
  ExtractReadonlyType,
16
16
  AllFieldsType,
17
- } from "./components/hooks/useForm";
17
+ } from "./components/hooks/useBDOForm";
@@ -187,7 +187,7 @@ export const QueryType = {
187
187
  * @example
188
188
  * import { FormOperation } from "@ram_28/kf-ai-sdk/form";
189
189
  *
190
- * const { handleSubmit } = useForm({
190
+ * const { handleSubmit } = useBDOForm({
191
191
  * source: "products",
192
192
  * operation: FormOperation.Create,
193
193
  * });
@@ -206,7 +206,7 @@ export const FormOperation = {
206
206
  * @example
207
207
  * import { InteractionMode } from "@ram_28/kf-ai-sdk/form";
208
208
  *
209
- * const { handleSubmit } = useForm({
209
+ * const { handleSubmit } = useBDOForm({
210
210
  * source: "products",
211
211
  * operation: "create",
212
212
  * interactionMode: InteractionMode.Interactive,
@@ -225,7 +225,7 @@ export const InteractionMode = {
225
225
  * @example
226
226
  * import { ValidationMode } from "@ram_28/kf-ai-sdk/form";
227
227
  *
228
- * const { handleSubmit } = useForm({
228
+ * const { handleSubmit } = useBDOForm({
229
229
  * source: "products",
230
230
  * operation: "create",
231
231
  * mode: ValidationMode.OnBlur,
@@ -12,8 +12,10 @@
12
12
  // Methods:
13
13
  // activity.getInProgressList() // list in-progress activity instances
14
14
  // activity.getCompletedList() // list completed activity instances
15
- // activity.inProgressMetrics() // get in-progress aggregated metrics
16
- // activity.completedMetrics() // get completed aggregated metrics
15
+ // activity.inProgressCount() // get in-progress count (returns number)
16
+ // activity.completedCount() // get completed count (returns number)
17
+ // activity.inProgressMetric(options) // get in-progress aggregated metrics
18
+ // activity.completedMetric(options) // get completed aggregated metrics
17
19
  // activity.getInstance(instanceId) // get typed ActivityInstance
18
20
 
19
21
  import { Workflow } from "./client";
@@ -23,7 +25,8 @@ import type { ActivityInstanceFieldsType, ActivityOperations } from "./types";
23
25
  import type {
24
26
  ListResponseType,
25
27
  ListOptionsType,
26
- CountResponseType,
28
+ MetricOptionsType,
29
+ MetricResponseType,
27
30
  } from "../types/common";
28
31
  import { BaseField } from "../bdo/fields/BaseField";
29
32
 
@@ -141,15 +144,35 @@ export abstract class Activity<
141
144
 
142
145
  /**
143
146
  * Get count of in-progress activity instances.
147
+ * Returns a number (same as BDO count()).
144
148
  */
145
- async inProgressMetrics(options?: ListOptionsType): Promise<CountResponseType> {
146
- return this._ops().inProgressMetric(options);
149
+ async inProgressCount(options?: ListOptionsType): Promise<number> {
150
+ const response = await this._ops().inProgressCount(options);
151
+ return response.Count;
147
152
  }
148
153
 
149
154
  /**
150
155
  * Get count of completed activity instances.
156
+ * Returns a number (same as BDO count()).
157
+ */
158
+ async completedCount(options?: ListOptionsType): Promise<number> {
159
+ const response = await this._ops().completedCount(options);
160
+ return response.Count;
161
+ }
162
+
163
+ /**
164
+ * Get aggregated metrics for in-progress activity instances.
165
+ * Accepts MetricOptionsType (without Type) for custom aggregations (Sum, Avg, etc.).
166
+ */
167
+ async inProgressMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType> {
168
+ return this._ops().inProgressMetric(options);
169
+ }
170
+
171
+ /**
172
+ * Get aggregated metrics for completed activity instances.
173
+ * Accepts MetricOptionsType (without Type) for custom aggregations (Sum, Avg, etc.).
151
174
  */
152
- async completedMetrics(options?: ListOptionsType): Promise<CountResponseType> {
175
+ async completedMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType> {
153
176
  return this._ops().completedMetric(options);
154
177
  }
155
178
 
@@ -10,6 +10,8 @@ import type {
10
10
  ListResponseType,
11
11
  ListOptionsType,
12
12
  CountResponseType,
13
+ MetricOptionsType,
14
+ MetricResponseType,
13
15
  ReadResponseType,
14
16
  DraftResponseType,
15
17
  CreateUpdateResponseType,
@@ -43,8 +45,8 @@ import type {
43
45
  * // List operations (by status — filtering/pagination handled server-side)
44
46
  * await act.inProgressList();
45
47
  * await act.completedList();
46
- * await act.inProgressMetric();
47
- * await act.completedMetric();
48
+ * await act.inProgressCount();
49
+ * await act.completedCount();
48
50
  *
49
51
  * // Process progress (requires instance_id)
50
52
  * const progress = await wf.progress("bp_inst_123");
@@ -109,23 +111,12 @@ export class Workflow<T = any> {
109
111
 
110
112
  return {
111
113
  // ── List-level ────────────────────────────────────────────
112
- // TODO: Backend currently only supports GET for list/metric endpoints.
113
- // Once backend is updated to accept POST with Filter/Sort/Page body,
114
- // switch back to POST so useTable features (search, sort, pagination) work.
115
- //
116
- // POST version (waiting for backend):
117
- // async inProgressList(options?: ListOptionsType) {
118
- // return fetch(url + "/inprogress/list", {
119
- // method: "POST", headers: getDefaultHeaders(),
120
- // body: options ? JSON.stringify(options) : undefined,
121
- // });
122
- // }
123
- // (same pattern for completedList, inProgressMetric, completedMetric)
124
-
125
- async inProgressList(_options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>> {
114
+
115
+ async inProgressList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>> {
126
116
  const response = await fetch(`${getApiBaseUrl()}${base}/inprogress/list`, {
127
- method: "GET",
117
+ method: "POST",
128
118
  headers: getDefaultHeaders(),
119
+ body: options ? JSON.stringify(options) : undefined,
129
120
  });
130
121
 
131
122
  if (!response.ok) {
@@ -135,10 +126,11 @@ export class Workflow<T = any> {
135
126
  return response.json();
136
127
  },
137
128
 
138
- async completedList(_options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>> {
129
+ async completedList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>> {
139
130
  const response = await fetch(`${getApiBaseUrl()}${base}/completed/list`, {
140
- method: "GET",
131
+ method: "POST",
141
132
  headers: getDefaultHeaders(),
133
+ body: options ? JSON.stringify(options) : undefined,
142
134
  });
143
135
 
144
136
  if (!response.ok) {
@@ -148,27 +140,75 @@ export class Workflow<T = any> {
148
140
  return response.json();
149
141
  },
150
142
 
151
- async inProgressMetric(_options?: ListOptionsType): Promise<CountResponseType> {
143
+ async inProgressCount(options?: ListOptionsType): Promise<CountResponseType> {
144
+ const requestBody = {
145
+ Type: 'Metric',
146
+ GroupBy: [],
147
+ Metric: [{ Field: '_id', Type: 'Count' }],
148
+ ...(options?.Filter && { Filter: options.Filter }),
149
+ };
152
150
  const response = await fetch(`${getApiBaseUrl()}${base}/inprogress/metric`, {
153
- method: "GET",
151
+ method: 'POST',
154
152
  headers: getDefaultHeaders(),
153
+ body: JSON.stringify(requestBody),
155
154
  });
156
155
 
157
156
  if (!response.ok) {
158
- throw new Error(`Failed to get in-progress activity count: ${response.statusText}`);
157
+ throw new Error(`Failed to get in-progress count: ${response.statusText}`);
158
+ }
159
+
160
+ const result = await response.json();
161
+ const count = result.Data?.[0]?.count__id ?? 0;
162
+ return { Count: count };
163
+ },
164
+
165
+ async completedCount(options?: ListOptionsType): Promise<CountResponseType> {
166
+ const requestBody = {
167
+ Type: 'Metric',
168
+ GroupBy: [],
169
+ Metric: [{ Field: '_id', Type: 'Count' }],
170
+ ...(options?.Filter && { Filter: options.Filter }),
171
+ };
172
+ const response = await fetch(`${getApiBaseUrl()}${base}/completed/metric`, {
173
+ method: 'POST',
174
+ headers: getDefaultHeaders(),
175
+ body: JSON.stringify(requestBody),
176
+ });
177
+
178
+ if (!response.ok) {
179
+ throw new Error(`Failed to get completed count: ${response.statusText}`);
180
+ }
181
+
182
+ const result = await response.json();
183
+ const count = result.Data?.[0]?.count__id ?? 0;
184
+ return { Count: count };
185
+ },
186
+
187
+ async inProgressMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType> {
188
+ const requestBody: MetricOptionsType = { Type: 'Metric', ...options };
189
+ const response = await fetch(`${getApiBaseUrl()}${base}/inprogress/metric`, {
190
+ method: 'POST',
191
+ headers: getDefaultHeaders(),
192
+ body: JSON.stringify(requestBody),
193
+ });
194
+
195
+ if (!response.ok) {
196
+ throw new Error(`Failed to get in-progress metrics: ${response.statusText}`);
159
197
  }
160
198
 
161
199
  return response.json();
162
200
  },
163
201
 
164
- async completedMetric(_options?: ListOptionsType): Promise<CountResponseType> {
202
+ async completedMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType> {
203
+ const requestBody: MetricOptionsType = { Type: 'Metric', ...options };
165
204
  const response = await fetch(`${getApiBaseUrl()}${base}/completed/metric`, {
166
- method: "GET",
205
+ method: 'POST',
167
206
  headers: getDefaultHeaders(),
207
+ body: JSON.stringify(requestBody),
168
208
  });
169
209
 
170
210
  if (!response.ok) {
171
- throw new Error(`Failed to get completed activity count: ${response.statusText}`);
211
+ throw new Error(`Failed to get completed metrics: ${response.statusText}`);
172
212
  }
173
213
 
174
214
  return response.json();
@@ -6,6 +6,8 @@ import type {
6
6
  ListResponseType,
7
7
  ListOptionsType,
8
8
  CountResponseType,
9
+ MetricOptionsType,
10
+ MetricResponseType,
9
11
  DraftResponseType,
10
12
  CreateUpdateResponseType,
11
13
  } from "../types/common";
@@ -70,10 +72,16 @@ export interface ActivityOperations<T> {
70
72
  completedList(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>>;
71
73
 
72
74
  /** Get in-progress activity count (POST .../inprogress/metric) */
73
- inProgressMetric(options?: ListOptionsType): Promise<CountResponseType>;
75
+ inProgressCount(options?: ListOptionsType): Promise<CountResponseType>;
74
76
 
75
77
  /** Get completed activity count (POST .../completed/metric) */
76
- completedMetric(options?: ListOptionsType): Promise<CountResponseType>;
78
+ completedCount(options?: ListOptionsType): Promise<CountResponseType>;
79
+
80
+ /** Get in-progress aggregated metrics (POST .../inprogress/metric) */
81
+ inProgressMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
82
+
83
+ /** Get completed aggregated metrics (POST .../completed/metric) */
84
+ completedMetric(options: Omit<MetricOptionsType, 'Type'>): Promise<MetricResponseType>;
77
85
 
78
86
  // ── Instance-level ──────────────────────────────────────────
79
87
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"createItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/createItemProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EAGpB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC9D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAC/B,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAiV9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createResolver.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/createResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAsCnG;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7D,GAAG,EAAE,CAAC,EACN,eAAe,CAAC,EAAE;IAAE,0BAA0B,CAAC,EAAE,OAAO,CAAA;CAAE,IAG5C,QAAQ,WAAW,EAAE,UAAU,GAAG,EAAE,SAAS,GAAG;;;;;;cACvB,MAAM;iBAAW,MAAM;;GAkF/D"}
@@ -1,5 +0,0 @@
1
- export { useForm } from "./useForm";
2
- export { createResolver } from "./createResolver";
3
- export { createItemProxy } from "./createItemProxy";
4
- export type { UseFormOptionsType, UseFormReturnType, FormItemType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType, FormRegisterType, HandleSubmitType, ExtractEditableType, ExtractReadonlyType, AllFieldsType, CreatableBdo, UpdatableBdo, FormBdo, } from "./types";
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,6BAA6B,EAC7B,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,GACR,MAAM,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/types.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../../sdk/components/hooks/useForm/useForm.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAIlB,MAAM,SAAS,CAAC;AAsCjB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtD,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,iBAAiB,CAAC,CAAC,CAAC,CAmRtB"}