@ram_28/kf-ai-sdk 2.0.2 → 2.0.3

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 (96) hide show
  1. package/dist/BaseField-B6da88U7.js +40 -0
  2. package/dist/BaseField-Drp0-OxL.cjs +1 -0
  3. package/dist/api/client.d.ts +7 -0
  4. package/dist/api/client.d.ts.map +1 -1
  5. package/dist/api/index.d.ts +1 -1
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api.cjs +1 -1
  8. package/dist/api.mjs +3 -3
  9. package/dist/auth.cjs +1 -1
  10. package/dist/auth.mjs +2 -2
  11. package/dist/bdo/core/BaseBdo.d.ts +4 -0
  12. package/dist/bdo/core/BaseBdo.d.ts.map +1 -1
  13. package/dist/bdo.cjs +1 -1
  14. package/dist/bdo.mjs +91 -118
  15. package/dist/client-BULEEaCP.js +222 -0
  16. package/dist/client-DtPpfJc1.cjs +1 -0
  17. package/dist/components/hooks/useForm/index.d.ts +1 -1
  18. package/dist/components/hooks/useForm/index.d.ts.map +1 -1
  19. package/dist/components/hooks/useForm/types.d.ts +15 -2
  20. package/dist/components/hooks/useForm/types.d.ts.map +1 -1
  21. package/dist/components/hooks/useForm/useDraftInteraction.d.ts +26 -0
  22. package/dist/components/hooks/useForm/useDraftInteraction.d.ts.map +1 -0
  23. package/dist/components/hooks/useForm/useForm.d.ts +1 -0
  24. package/dist/components/hooks/useForm/useForm.d.ts.map +1 -1
  25. package/dist/{constants-CM9xOACN.js → constants-BQrBcCON.js} +5 -5
  26. package/dist/error-handling-CAoD0Kwb.cjs +1 -0
  27. package/dist/error-handling-CrhTtD88.js +14 -0
  28. package/dist/filter.mjs +1 -1
  29. package/dist/form.cjs +1 -1
  30. package/dist/form.mjs +308 -1187
  31. package/dist/form.types.d.ts +1 -1
  32. package/dist/form.types.d.ts.map +1 -1
  33. package/dist/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.esm-Cj63v5ny.js +1014 -0
  36. package/dist/index.esm-DuwT11sx.cjs +1 -0
  37. package/dist/{metadata-BN57S6W9.cjs → metadata-BJWukIqS.cjs} +1 -1
  38. package/dist/{metadata-P7DGCgIG.js → metadata-CJuFxytC.js} +1 -1
  39. package/dist/table.cjs +1 -1
  40. package/dist/table.mjs +83 -93
  41. package/dist/types/constants.d.ts +2 -2
  42. package/dist/types/constants.d.ts.map +1 -1
  43. package/dist/workflow/Activity.d.ts +85 -0
  44. package/dist/workflow/Activity.d.ts.map +1 -0
  45. package/dist/workflow/ActivityInstance.d.ts +96 -0
  46. package/dist/workflow/ActivityInstance.d.ts.map +1 -0
  47. package/dist/workflow/client.d.ts +39 -0
  48. package/dist/workflow/client.d.ts.map +1 -0
  49. package/dist/workflow/components/useActivityForm/createActivityItemProxy.d.ts +16 -0
  50. package/dist/workflow/components/useActivityForm/createActivityItemProxy.d.ts.map +1 -0
  51. package/dist/workflow/components/useActivityForm/createActivityResolver.d.ts +22 -0
  52. package/dist/workflow/components/useActivityForm/createActivityResolver.d.ts.map +1 -0
  53. package/dist/workflow/components/useActivityForm/index.d.ts +3 -0
  54. package/dist/workflow/components/useActivityForm/index.d.ts.map +1 -0
  55. package/dist/workflow/components/useActivityForm/types.d.ts +80 -0
  56. package/dist/workflow/components/useActivityForm/types.d.ts.map +1 -0
  57. package/dist/workflow/components/useActivityForm/useActivityForm.d.ts +4 -0
  58. package/dist/workflow/components/useActivityForm/useActivityForm.d.ts.map +1 -0
  59. package/dist/workflow/index.d.ts +8 -0
  60. package/dist/workflow/index.d.ts.map +1 -0
  61. package/dist/workflow/types.d.ts +53 -0
  62. package/dist/workflow/types.d.ts.map +1 -0
  63. package/dist/workflow.cjs +1 -0
  64. package/dist/workflow.d.ts +8 -0
  65. package/dist/workflow.d.ts.map +1 -0
  66. package/dist/workflow.mjs +565 -0
  67. package/dist/workflow.types.cjs +1 -0
  68. package/dist/workflow.types.d.ts +2 -0
  69. package/dist/workflow.types.d.ts.map +1 -0
  70. package/dist/workflow.types.mjs +1 -0
  71. package/docs/workflow.md +703 -0
  72. package/package.json +21 -1
  73. package/sdk/api/client.ts +85 -52
  74. package/sdk/api/index.ts +1 -0
  75. package/sdk/bdo/core/BaseBdo.ts +10 -0
  76. package/sdk/components/hooks/useForm/index.ts +1 -0
  77. package/sdk/components/hooks/useForm/types.ts +17 -3
  78. package/sdk/components/hooks/useForm/useDraftInteraction.ts +251 -0
  79. package/sdk/components/hooks/useForm/useForm.ts +106 -19
  80. package/sdk/form.types.ts +1 -0
  81. package/sdk/index.ts +6 -0
  82. package/sdk/types/constants.ts +2 -2
  83. package/sdk/workflow/Activity.ts +181 -0
  84. package/sdk/workflow/ActivityInstance.ts +339 -0
  85. package/sdk/workflow/client.ts +208 -0
  86. package/sdk/workflow/components/useActivityForm/createActivityItemProxy.ts +126 -0
  87. package/sdk/workflow/components/useActivityForm/createActivityResolver.ts +61 -0
  88. package/sdk/workflow/components/useActivityForm/index.ts +5 -0
  89. package/sdk/workflow/components/useActivityForm/types.ts +166 -0
  90. package/sdk/workflow/components/useActivityForm/useActivityForm.ts +386 -0
  91. package/sdk/workflow/index.ts +20 -0
  92. package/sdk/workflow/types.ts +84 -0
  93. package/sdk/workflow.ts +25 -0
  94. package/sdk/workflow.types.ts +11 -0
  95. package/dist/client-Bo-RLKJi.cjs +0 -1
  96. package/dist/client-eA4VvNTo.js +0 -178
@@ -0,0 +1,39 @@
1
+ import type { ActivityOperations, WorkflowStartResponseType } from "./types";
2
+ /**
3
+ * Workflow client for Business Process / Activity operations.
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * const wf = new Workflow<LeaveType>("SimpleLeaveProcess");
8
+ *
9
+ * // Start workflow
10
+ * const { activityId, activityInstanceId } = await wf.start();
11
+ *
12
+ * // Get activity operations
13
+ * const act = wf.activity("EMPLOYEE_INPUT");
14
+ *
15
+ * // Instance operations (instanceId as first param)
16
+ * await act.read("inst_123");
17
+ * await act.draftStart("inst_123", data);
18
+ * await act.draftEnd("inst_123", data);
19
+ * await act.complete("inst_123");
20
+ *
21
+ * // List operations
22
+ * await act.list({ Page: 1, PageSize: 10 });
23
+ * await act.metric({ Metric: [...] });
24
+ * ```
25
+ */
26
+ export declare class Workflow<T = any> {
27
+ private bp_id;
28
+ constructor(bp_id: string);
29
+ /**
30
+ * Start a new workflow instance
31
+ */
32
+ start(): Promise<WorkflowStartResponseType>;
33
+ /**
34
+ * Get all operations for a specific activity
35
+ * @param activity_id - Activity identifier
36
+ */
37
+ activity(activity_id: string): ActivityOperations<T>;
38
+ }
39
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/workflow/client.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAEV,kBAAkB,EAElB,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,QAAQ,CAAC,CAAC,GAAG,GAAG;IAC3B,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,EAAE,MAAM;IAIzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAgBjD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC;CAiIrD"}
@@ -0,0 +1,16 @@
1
+ import type { UseFormReturn, FieldValues } from "react-hook-form";
2
+ import type { FormItemType } from "../../../components/hooks/useForm/types";
3
+ import type { Activity } from "../../Activity";
4
+ import type { ExtractActivityEditable, ExtractActivityReadonly } from "./types";
5
+ /**
6
+ * Creates a Proxy-based Item that delegates to RHF for state management.
7
+ *
8
+ * Key principle: Item has NO state. It's a view over RHF's state.
9
+ * Editable fields get set(), readonly fields do not.
10
+ *
11
+ * @param activity - The Activity instance for field metadata
12
+ * @param form - The RHF useForm return object
13
+ * @returns FormItemType proxy
14
+ */
15
+ export declare function createActivityItemProxy<A extends Activity<any, any, any>>(activity: A, form: UseFormReturn<FieldValues>): FormItemType<ExtractActivityEditable<A>, ExtractActivityReadonly<A>>;
16
+ //# sourceMappingURL=createActivityItemProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createActivityItemProxy.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/createActivityItemProxy.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAQ,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxE,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACvE,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAC/B,YAAY,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CA2FtE"}
@@ -0,0 +1,22 @@
1
+ import type { FieldValues } from "react-hook-form";
2
+ import type { Activity } from "../../Activity";
3
+ /**
4
+ * Creates a React Hook Form resolver for Activity field validation.
5
+ *
6
+ * Validates only editable fields using BaseField.validate().
7
+ * Readonly fields (editable: false) are skipped.
8
+ *
9
+ * @param activity - The Activity instance with field definitions
10
+ * @returns RHF Resolver function
11
+ */
12
+ export declare function createActivityResolver<A extends Activity<any, any, any>>(activity: A): (values: FieldValues, _context: any, options: any) => Promise<{
13
+ values: FieldValues;
14
+ errors: {};
15
+ } | {
16
+ values: {};
17
+ errors: Record<string, {
18
+ type: string;
19
+ message: string;
20
+ }>;
21
+ }>;
22
+ //# sourceMappingURL=createActivityResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createActivityResolver.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/createActivityResolver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACtE,QAAQ,EAAE,CAAC,IAGG,QAAQ,WAAW,EAAE,UAAU,GAAG,EAAE,SAAS,GAAG;;;;;;cACvB,MAAM;iBAAW,MAAM;;GAkC/D"}
@@ -0,0 +1,3 @@
1
+ export { useActivityForm } from './useActivityForm';
2
+ export type { UseActivityFormOptions, UseActivityFormReturn, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,80 @@
1
+ import type { UseFormWatch, UseFormSetValue, UseFormGetValues, UseFormReset, UseFormTrigger, Control, FieldErrors } from "react-hook-form";
2
+ import type { Activity } from "../../Activity";
3
+ import type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType } from "../../../components/hooks/useForm/types";
4
+ export type { HandleSubmitType, FormItemType, FormRegisterType, EditableFormFieldAccessorType, ReadonlyFormFieldAccessorType, };
5
+ /** Extract TEntity from an Activity instance */
6
+ export type ExtractActivityEntity<A> = A extends Activity<infer E, any, any> ? E : never;
7
+ /** Extract TEditable from an Activity instance */
8
+ export type ExtractActivityEditable<A> = A extends Activity<any, infer E, any> ? E : never;
9
+ /** Extract TReadonly from an Activity instance */
10
+ export type ExtractActivityReadonly<A> = A extends Activity<any, any, infer R> ? R : never;
11
+ /** All accessible fields (editable + readonly) */
12
+ export type AllActivityFields<A> = ExtractActivityEditable<A> & ExtractActivityReadonly<A>;
13
+ /**
14
+ * useActivityForm hook options.
15
+ *
16
+ * The Activity instance already carries businessProcessId, activityId, and field definitions.
17
+ * Options only contain runtime configuration.
18
+ */
19
+ export interface UseActivityFormOptions<A extends Activity<any, any, any>> {
20
+ /** Activity instance identifier */
21
+ activity_instance_id: string;
22
+ /** Default form values */
23
+ defaultValues?: Partial<ExtractActivityEditable<A>>;
24
+ /**
25
+ * Validation mode — controls when validation runs
26
+ * @default "onBlur"
27
+ */
28
+ mode?: "onBlur" | "onChange" | "onSubmit" | "onTouched" | "all";
29
+ /**
30
+ * Whether to enable activity.read() on mount
31
+ * @default true
32
+ */
33
+ enabled?: boolean;
34
+ }
35
+ /**
36
+ * useActivityForm hook return type — mirrors useForm return structure
37
+ */
38
+ export interface UseActivityFormReturn<A extends Activity<any, any, any>> {
39
+ /** Item proxy with typed field accessors */
40
+ item: FormItemType<ExtractActivityEditable<A>, ExtractActivityReadonly<A>>;
41
+ /** The Activity instance */
42
+ activity: A;
43
+ /** Smart register with auto-disable for readonly fields */
44
+ register: FormRegisterType<ExtractActivityEditable<A>, ExtractActivityReadonly<A>>;
45
+ /** Handle form submission — calls activity.update() + activity.draftEnd() */
46
+ handleSubmit: HandleSubmitType<AllActivityFields<A>>;
47
+ /** Handle form completion — calls activity.complete() */
48
+ handleComplete: HandleSubmitType<AllActivityFields<A>>;
49
+ /** Watch field values */
50
+ watch: UseFormWatch<AllActivityFields<A>>;
51
+ /** Set field value programmatically */
52
+ setValue: UseFormSetValue<ExtractActivityEditable<A>>;
53
+ /** Get current field values */
54
+ getValues: UseFormGetValues<AllActivityFields<A>>;
55
+ /** Reset form to default values */
56
+ reset: UseFormReset<AllActivityFields<A>>;
57
+ /** Trigger validation for specific fields or all fields */
58
+ trigger: UseFormTrigger<AllActivityFields<A>>;
59
+ /** RHF control object (for Controller components) */
60
+ control: Control<AllActivityFields<A>>;
61
+ /** Form validation errors */
62
+ errors: FieldErrors<AllActivityFields<A>>;
63
+ /** Form is valid */
64
+ isValid: boolean;
65
+ /** Form has been modified */
66
+ isDirty: boolean;
67
+ /** Form is currently submitting (save or complete) */
68
+ isSubmitting: boolean;
69
+ /** Form submission was successful */
70
+ isSubmitSuccessful: boolean;
71
+ /** True during activity.read() */
72
+ isLoading: boolean;
73
+ /** Schema/data load error */
74
+ loadError: Error | null;
75
+ /** Any error active */
76
+ hasError: boolean;
77
+ /** Clear all form errors */
78
+ clearErrors: () => void;
79
+ }
80
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Activity } from "../../Activity";
2
+ import type { UseActivityFormOptions, UseActivityFormReturn } from "./types";
3
+ export declare function useActivityForm<A extends Activity<any, any, any>>(activity: A, options: UseActivityFormOptions<A>): UseActivityFormReturn<A>;
4
+ //# sourceMappingURL=useActivityForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActivityForm.d.ts","sourceRoot":"","sources":["../../../../sdk/workflow/components/useActivityForm/useActivityForm.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAUjB,wBAAgB,eAAe,CAC7B,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAEjC,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,qBAAqB,CAAC,CAAC,CAAC,CAkW1B"}
@@ -0,0 +1,8 @@
1
+ export { Workflow } from './client';
2
+ export { Activity } from './Activity';
3
+ export { ActivityInstance } from './ActivityInstance';
4
+ export type { ActivityInstanceType, EditableFieldAccessor, ReadonlyFieldAccessor, } from './ActivityInstance';
5
+ export type { ActivityInstanceFieldsType, ActivityOperations, ActivityProgressType, WorkflowStartResponseType, } from './types';
6
+ export { useActivityForm } from './components/useActivityForm';
7
+ export type { UseActivityFormOptions, UseActivityFormReturn, } from './components/useActivityForm';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/workflow/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { ListOptionsType, ListResponseType, MetricOptionsType, MetricResponseType, DraftResponseType, CreateUpdateResponseType } from "../types/common";
2
+ import type { StringFieldType, SelectFieldType, DateTimeFieldType, ReferenceFieldType } from "../types/base-fields";
3
+ import type { UserRefType } from "../types/base-fields";
4
+ /**
5
+ * Response from Workflow.start()
6
+ */
7
+ export interface WorkflowStartResponseType {
8
+ activityId: string;
9
+ activityInstanceId: string;
10
+ }
11
+ /**
12
+ * Response from the activity progress endpoint
13
+ */
14
+ export interface ActivityProgressType {
15
+ Stage?: string;
16
+ Progress?: number;
17
+ [key: string]: any;
18
+ }
19
+ /**
20
+ * System fields present on every activity instance response.
21
+ * Returned alongside activity-specific fields from `list()` and `read()`.
22
+ */
23
+ export type ActivityInstanceFieldsType = {
24
+ _id: StringFieldType;
25
+ Status: SelectFieldType<"InProgress" | "Completed">;
26
+ AssignedTo: ReferenceFieldType<UserRefType>;
27
+ CompletedAt: DateTimeFieldType;
28
+ };
29
+ /**
30
+ * Unified activity operations — returned by Workflow.activity(activityId)
31
+ *
32
+ * List-level methods operate on the activity as a whole.
33
+ * Instance-level methods accept `instanceId` as their first parameter.
34
+ */
35
+ export interface ActivityOperations<T> {
36
+ /** List activity instances (POST .../list) */
37
+ list(options?: ListOptionsType): Promise<ListResponseType<ActivityInstanceFieldsType & T>>;
38
+ /** Get activity metrics (POST .../metric) */
39
+ metric(options: Omit<MetricOptionsType, "Type">): Promise<MetricResponseType>;
40
+ /** Read the activity instance data (GET .../read) */
41
+ read(instanceId: string): Promise<ActivityInstanceFieldsType & T>;
42
+ /** Update the activity instance (POST .../update) */
43
+ update(instanceId: string, data: Partial<T>): Promise<CreateUpdateResponseType>;
44
+ /** Start a draft edit session (PATCH .../draft) */
45
+ draftStart(instanceId: string, data: Partial<T>): Promise<DraftResponseType>;
46
+ /** End a draft edit session and commit (POST .../draft) */
47
+ draftEnd(instanceId: string, data: Partial<T>): Promise<CreateUpdateResponseType>;
48
+ /** Complete the activity (POST .../done) */
49
+ complete(instanceId: string): Promise<CreateUpdateResponseType>;
50
+ /** Get activity progress (GET .../progress) */
51
+ progress(instanceId: string): Promise<ActivityProgressType>;
52
+ }
53
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sdk/workflow/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,eAAe,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;IACpD,UAAU,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC5C,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IAGnC,8CAA8C;IAC9C,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC,CAAC;IAE3F,6CAA6C;IAC7C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAI9E,qDAAqD;IACrD,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,GAAG,CAAC,CAAC,CAAC;IAElE,qDAAqD;IACrD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEhF,mDAAmD;IACnD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7E,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAElF,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEhE,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC7D"}
@@ -0,0 +1 @@
1
+ "use strict";var F=Object.defineProperty;var U=(c,s,t)=>s in c?F(c,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[s]=t;var b=(c,s,t)=>U(c,typeof s!="symbol"?s+"":s,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./client-DtPpfJc1.cjs"),L=require("./BaseField-Drp0-OxL.cjs"),f=require("react"),p=require("./index.esm-DuwT11sx.cjs"),N=require("./error-handling-CAoD0Kwb.cjs");class q{constructor(s){b(this,"bp_id");this.bp_id=s}async start(){const s=await fetch(`${d.getApiBaseUrl()}/api/app/process/${this.bp_id}/start`,{method:"POST",headers:d.getDefaultHeaders()});if(!s.ok)throw new Error(`Failed to start process: ${s.statusText}`);return s.json()}activity(s){const t=`/api/app/process/${this.bp_id}/${s}`;return{async list(i){const a={Type:"List",...i},e=await fetch(`${d.getApiBaseUrl()}${t}/list`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to list activities: ${e.statusText}`);return e.json()},async metric(i){const a={Type:"Metric",...i},e=await fetch(`${d.getApiBaseUrl()}${t}/metric`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to get activity metrics: ${e.statusText}`);return e.json()},async read(i){const a=await fetch(`${d.getApiBaseUrl()}${t}/${i}/read`,{method:"GET",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to read activity: ${a.statusText}`);return(await a.json()).Data},async update(i,a){const e=await fetch(`${d.getApiBaseUrl()}${t}/${i}/update`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to update activity: ${e.statusText}`);return e.json()},async draftStart(i,a){const e=await fetch(`${d.getApiBaseUrl()}${t}/${i}/draft`,{method:"PATCH",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to start draft: ${e.statusText}`);return e.json()},async draftEnd(i,a){const e=await fetch(`${d.getApiBaseUrl()}${t}/${i}/draft`,{method:"POST",headers:d.getDefaultHeaders(),body:JSON.stringify(a)});if(!e.ok)throw new Error(`Failed to end draft: ${e.statusText}`);return e.json()},async complete(i){const a=await fetch(`${d.getApiBaseUrl()}${t}/${i}/done`,{method:"POST",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to complete activity: ${a.statusText}`);return a.json()},async progress(i){const a=await fetch(`${d.getApiBaseUrl()}${t}/${i}/progress`,{method:"GET",headers:d.getDefaultHeaders()});if(!a.ok)throw new Error(`Failed to get activity progress: ${a.statusText}`);return a.json()}}}}class x{constructor(s,t,i,a){b(this,"_id");b(this,"_data");b(this,"_ops");b(this,"_fields");b(this,"_accessorCache",new Map);this._ops=s,this._id=t,this._data={...i},this._fields=a}toJSON(){return{...this._data}}validate(){const s=[];for(const[t,i]of Object.entries(this._fields)){const a=this._data[t],e=i.validate(a);e.valid||s.push(...e.errors)}return{valid:s.length===0,errors:s}}async update(s){return this._ops.update(this._id,s)}async save(s){return this._ops.draftEnd(this._id,s)}async complete(){return this._ops.complete(this._id)}async progress(){return this._ops.progress(this._id)}_getAccessor(s){if(this._accessorCache.has(s))return this._accessorCache.get(s);const t=this._fields[s],i=(t==null?void 0:t.meta)??{_id:s,Name:s,Type:"String"},a=(t==null?void 0:t.readOnly)??!1,e=()=>t?t.validate(this._data[s]):{valid:!0,errors:[]};let r;return a?r={label:(t==null?void 0:t.label)??s,required:(t==null?void 0:t.required)??!1,readOnly:!0,defaultValue:t==null?void 0:t.defaultValue,meta:i,get:()=>this._data[s],validate:e}:r={label:(t==null?void 0:t.label)??s,required:(t==null?void 0:t.required)??!1,readOnly:!1,defaultValue:t==null?void 0:t.defaultValue,meta:i,get:()=>this._data[s],set:y=>{this._data[s]=y},validate:e},this._accessorCache.set(s,r),r}}function G(c,s,t,i){const a=new x(c,s,t,i);return new Proxy(a,{get(e,r,y){return r==="validate"||r==="toJSON"||r==="update"||r==="save"||r==="complete"||r==="progress"||r==="_ops"||r==="_data"||r==="_fields"||r==="_accessorCache"||r==="_getAccessor"||typeof r=="symbol"?Reflect.get(e,r,y):r==="_id"?e._id:e._getAccessor(r)},has(e,r){return typeof r=="symbol"?!1:r==="validate"||r==="toJSON"||r==="update"||r==="save"||r==="complete"||r==="progress"||r==="_id"?!0:r in e._fields},ownKeys(e){return[...Object.keys(e._fields),"_id","validate","toJSON","update","save","complete","progress"]},getOwnPropertyDescriptor(e,r){if(typeof r!="symbol")return{configurable:!0,enumerable:r!=="validate"&&r!=="toJSON"&&r!=="update"&&r!=="save"&&r!=="complete"&&r!=="progress"}}})}class K{constructor(){b(this,"_fieldsCache",null)}_ops(){return new q(this.meta.businessProcessId).activity(this.meta.activityId)}_discoverFields(){if(this._fieldsCache)return this._fieldsCache;const s={};for(const t of Object.keys(this)){const i=this[t];i instanceof L.BaseField&&(s[t]=i)}return this._fieldsCache=s,s}async getInstanceList(s){return this._ops().list(s)}async instanceMetrics(s){return this._ops().metric(s)}async getInstance(s){const t=this._ops(),i=await t.read(s),a=this._discoverFields();return G(t,s,i,a)}_getFields(){return this._discoverFields()}_getOps(){return this._ops()}}function W(c){return async(s,t,i)=>{const a={},e=c._getFields(),r=(i==null?void 0:i.names)??Object.keys(e);for(const y of r){const w=e[y];if(!w||w.readOnly)continue;const $=s[y],O=w.validate($);!O.valid&&O.errors.length>0&&(a[y]={type:"validate",message:O.errors[0]||`${y} is invalid`})}return Object.keys(a).length===0?{values:s,errors:{}}:{values:{},errors:a}}}function z(c,s){const t=c._getFields();return new Proxy({},{get(i,a){if(typeof a=="symbol")return;if(a==="toJSON")return()=>s.getValues();if(a==="validate")return()=>s.trigger();const e=t[a],r=(e==null?void 0:e.meta)??{_id:a,Name:a,Type:"String"},y=(e==null?void 0:e.readOnly)??!1,w=()=>e?e.validate(s.getValues(a)):{valid:!0,errors:[]};return y?{label:(e==null?void 0:e.label)??a,required:(e==null?void 0:e.required)??!1,readOnly:!0,defaultValue:e==null?void 0:e.defaultValue,meta:r,get:()=>s.getValues(a),validate:w}:{label:(e==null?void 0:e.label)??a,required:(e==null?void 0:e.required)??!1,readOnly:!1,defaultValue:e==null?void 0:e.defaultValue,meta:r,get:()=>s.getValues(a),set:S=>{s.setValue(a,S,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!1})},validate:w}},has(i,a){return typeof a=="symbol"?!1:a==="toJSON"||a==="validate"?!0:a in t},ownKeys(i){return[...Object.keys(t),"toJSON","validate"]},getOwnPropertyDescriptor(i,a){if(typeof a!="symbol")return{configurable:!0,enumerable:a!=="toJSON"&&a!=="validate"}}})}function Q(c,s){const{activity_instance_id:t,defaultValues:i={},mode:a="onBlur",enabled:e=!0}=s,[r,y]=f.useState(!1),[w,$]=f.useState(null),[O,S]=f.useState(!1),j=f.useRef(!1),A=f.useRef(null),T=f.useMemo(()=>c._getFields(),[c]),V=f.useMemo(()=>Object.keys(T).filter(u=>T[u].readOnly),[T]),J=f.useMemo(()=>W(c),[c]),n=p.useForm({mode:a,defaultValues:i,resolver:J}),P=f.useMemo(()=>z(c,n),[c,n]),v=f.useMemo(()=>c._getOps(),[c]);f.useEffect(()=>{if(!e)return;let u=!0;return(async()=>{y(!0),$(null);try{const o=await v.read(t);if(!u)return;o&&typeof o=="object"&&n.reset({...i,...o})}catch(o){if(!u)return;console.error("Failed to read activity data:",o),$(N.toError(o))}finally{u&&y(!1)}})(),()=>{u=!1}},[e,v,t]);const k=f.useCallback(async u=>{V.length!==0&&(j.current||(A.current&&clearTimeout(A.current),A.current=setTimeout(async()=>{if(!j.current){j.current=!0;try{const l=n.getValues(),o={},h=new Set(V);Object.keys(l).forEach(_=>{h.has(_)||(o[_]=l[_])});const g=await v.draftStart(t,o);g&&typeof g=="object"&&Object.entries(g).forEach(([_,m])=>{h.has(_)&&n.getValues(_)!==m&&n.setValue(_,m,{shouldDirty:!1,shouldValidate:!1})})}catch(l){console.warn("Draft computation failed:",l)}finally{j.current=!1}}},300)))},[v,V,n]),R=f.useCallback((u,l)=>{const o=T[u],h=o?o.readOnly:!1,g=l==null?void 0:l.onBlur,_=async C=>{g&&await g(C);let B=!0;a==="onBlur"||a==="onTouched"||a==="all"?B=await n.trigger(u):B=!n.getFieldState(u,n.formState).error,B&&await k(u)},m=n.register(u,{...l,onBlur:_,...h?{disabled:!0}:{}});return h?{...m,disabled:!0}:m},[n,T,k,a]),H=f.useCallback((u,l)=>n.handleSubmit(async(o,h)=>{S(!0);try{const g={},_=new Set(V);Object.keys(o).forEach(m=>{!_.has(m)&&o[m]!==void 0&&(g[m]=o[m])}),await v.update(t,g),await v.draftEnd(t,g),await(u==null?void 0:u(o,h))}catch(g){l==null||l(N.toError(g),h)}finally{S(!1)}},(o,h)=>{l==null||l(o,h)}),[n,v,V]),M=f.useCallback((u,l)=>n.handleSubmit(async(o,h)=>{S(!0);try{await v.complete(t),await(u==null?void 0:u(o,h))}catch(g){l==null||l(N.toError(g),h)}finally{S(!1)}},(o,h)=>{l==null||l(o,h)}),[n,v]),D=f.useCallback(()=>{n.clearErrors()},[n]),E=!!w;return{item:P,activity:c,register:R,handleSubmit:H,handleComplete:M,watch:n.watch,setValue:n.setValue,getValues:n.getValues,reset:n.reset,trigger:n.trigger,control:n.control,errors:n.formState.errors,isValid:n.formState.isValid,isDirty:n.formState.isDirty,isSubmitting:n.formState.isSubmitting||O,isSubmitSuccessful:n.formState.isSubmitSuccessful,isLoading:r,loadError:w,hasError:E,clearErrors:D}}exports.Activity=K;exports.ActivityInstance=x;exports.Workflow=q;exports.useActivityForm=Q;
@@ -0,0 +1,8 @@
1
+ export { Workflow } from './workflow/client';
2
+ export { Activity } from './workflow/Activity';
3
+ export { ActivityInstance } from './workflow/ActivityInstance';
4
+ export type { ActivityInstanceType, EditableFieldAccessor, ReadonlyFieldAccessor, } from './workflow/ActivityInstance';
5
+ export type { ActivityInstanceFieldsType, ActivityOperations, ActivityProgressType, WorkflowStartResponseType, } from './workflow/types';
6
+ export { useActivityForm } from './workflow/components/useActivityForm';
7
+ export type { UseActivityFormOptions, UseActivityFormReturn, } from './workflow/components/useActivityForm';
8
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../sdk/workflow.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,0BAA0B,EAC1B,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,YAAY,EACV,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uCAAuC,CAAC"}