@ram_28/kf-ai-sdk 2.0.2 → 2.0.4

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 (97) 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 +313 -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/api/metadata.ts +4 -4
  76. package/sdk/bdo/core/BaseBdo.ts +10 -0
  77. package/sdk/components/hooks/useForm/index.ts +1 -0
  78. package/sdk/components/hooks/useForm/types.ts +17 -3
  79. package/sdk/components/hooks/useForm/useDraftInteraction.ts +251 -0
  80. package/sdk/components/hooks/useForm/useForm.ts +115 -24
  81. package/sdk/form.types.ts +1 -0
  82. package/sdk/index.ts +6 -0
  83. package/sdk/types/constants.ts +2 -2
  84. package/sdk/workflow/Activity.ts +181 -0
  85. package/sdk/workflow/ActivityInstance.ts +339 -0
  86. package/sdk/workflow/client.ts +208 -0
  87. package/sdk/workflow/components/useActivityForm/createActivityItemProxy.ts +126 -0
  88. package/sdk/workflow/components/useActivityForm/createActivityResolver.ts +61 -0
  89. package/sdk/workflow/components/useActivityForm/index.ts +5 -0
  90. package/sdk/workflow/components/useActivityForm/types.ts +166 -0
  91. package/sdk/workflow/components/useActivityForm/useActivityForm.ts +386 -0
  92. package/sdk/workflow/index.ts +20 -0
  93. package/sdk/workflow/types.ts +84 -0
  94. package/sdk/workflow.ts +25 -0
  95. package/sdk/workflow.types.ts +11 -0
  96. package/dist/client-Bo-RLKJi.cjs +0 -1
  97. package/dist/client-eA4VvNTo.js +0 -178
@@ -0,0 +1,40 @@
1
+ var i = Object.defineProperty;
2
+ var s = (t, e, a) => e in t ? i(t, e, { enumerable: !0, configurable: !0, writable: !0, value: a }) : t[e] = a;
3
+ var r = (t, e, a) => s(t, typeof e != "symbol" ? e + "" : e, a);
4
+ class u {
5
+ constructor(e) {
6
+ /** Full raw backend meta */
7
+ r(this, "_meta");
8
+ r(this, "_parentBoId");
9
+ this._meta = e;
10
+ }
11
+ // === Convenience getters (transform backend naming → SDK naming) ===
12
+ get id() {
13
+ return this._meta._id;
14
+ }
15
+ get label() {
16
+ return this._meta.Name || this._meta._id;
17
+ }
18
+ get readOnly() {
19
+ return this._meta.ReadOnly ?? !1;
20
+ }
21
+ get required() {
22
+ var e;
23
+ return ((e = this._meta.Constraint) == null ? void 0 : e.Required) ?? this._meta.Required ?? !1;
24
+ }
25
+ get defaultValue() {
26
+ var e;
27
+ return this._meta.DefaultValue ?? ((e = this._meta.Constraint) == null ? void 0 : e.DefaultValue);
28
+ }
29
+ get primaryKey() {
30
+ var e;
31
+ return ((e = this._meta.Constraint) == null ? void 0 : e.PrimaryKey) ?? !1;
32
+ }
33
+ /** Full raw meta (the exact JSON passed to constructor) */
34
+ get meta() {
35
+ return this._meta;
36
+ }
37
+ }
38
+ export {
39
+ u as B
40
+ };
@@ -0,0 +1 @@
1
+ "use strict";var i=Object.defineProperty;var s=(t,e,a)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var r=(t,e,a)=>s(t,typeof e!="symbol"?e+"":e,a);class u{constructor(e){r(this,"_meta");r(this,"_parentBoId");this._meta=e}get id(){return this._meta._id}get label(){return this._meta.Name||this._meta._id}get readOnly(){return this._meta.ReadOnly??!1}get required(){var e;return((e=this._meta.Constraint)==null?void 0:e.Required)??this._meta.Required??!1}get defaultValue(){var e;return this._meta.DefaultValue??((e=this._meta.Constraint)==null?void 0:e.DefaultValue)}get primaryKey(){var e;return((e=this._meta.Constraint)==null?void 0:e.PrimaryKey)??!1}get meta(){return this._meta}}exports.BaseField=u;
@@ -83,6 +83,13 @@ export declare function getDefaultHeaders(): Record<string, string>;
83
83
  * Get current base URL
84
84
  */
85
85
  export declare function getApiBaseUrl(): string;
86
+ /**
87
+ * Create a resource client for a given base path.
88
+ * This is the shared implementation used by both `api()` and workflow owner methods.
89
+ * @param basePath - URL path segment (e.g., "/api/app/user" or "/api/app/process/leave_bp/vendor_ado")
90
+ * @returns Resource client with CRUD operations matching API spec
91
+ */
92
+ export declare function createResourceClient<T = any>(basePath: string): ResourceClientType<T>;
86
93
  /**
87
94
  * Create a resource client for the specified Business Object
88
95
  * @param bo_id - Business Object identifier (e.g., "user", "leave", "vendor")
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../sdk/api/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { api, setApiBaseUrl, setDefaultHeaders, getDefaultHeaders, getApiBaseUrl, } from "./client";
1
+ export { api, createResourceClient, setApiBaseUrl, setDefaultHeaders, getDefaultHeaders, getApiBaseUrl, } from "./client";
2
2
  export type { ResourceClientType } from "./client";
3
3
  export { DatetimeFormat, decodeDate, decodeDateTime, formatDate, formatDateTime, parseDate, parseDateTime, } from "./datetime";
4
4
  export { getBdoSchema, listMetadata } from "./metadata";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGzF,YAAY,EAEV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EAER,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,UAAU,EACV,aAAa,EACb,qBAAqB,EAErB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAElB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAEjB,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/api/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,GAAG,EACH,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGzF,YAAY,EAEV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EAER,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,UAAU,EACV,aAAa,EACb,qBAAqB,EAErB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAElB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAEjB,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAC"}
package/dist/api.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./client-Bo-RLKJi.cjs"),u=require("./metadata-BN57S6W9.cjs"),o=require("./constants-D0J69if5.cjs"),p={DATE:"%Y-%m-%d",TIME:"%H:%M:%S",DATE_TIME:"%Y-%m-%d %H:%M:%S"};function D(t){const[e,a,r]=t.$__d__.split("-").map(Number);return new Date(e,a-1,r)}function g(t){return new Date(t.$__dt__*1e3)}function l(t){const e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${a}-${r}`}function S(t){const e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),c=String(t.getSeconds()).padStart(2,"0");return`${e}-${a}-${r} ${s}:${i}:${c}`}function y(t){const[e,a,r]=t.split("-").map(Number);return new Date(e,a-1,r)}function f(t){const[e,a]=t.split(" "),[r,s,i]=e.split("-").map(Number),[c,d,m]=a.split(":").map(Number);return new Date(r,s-1,i,c,d,m)}exports.api=n.api;exports.getApiBaseUrl=n.getApiBaseUrl;exports.getDefaultHeaders=n.getDefaultHeaders;exports.setApiBaseUrl=n.setApiBaseUrl;exports.setDefaultHeaders=n.setDefaultHeaders;exports.getBdoSchema=u.getBdoSchema;exports.listMetadata=u.listMetadata;exports.DateEncodingKey=o.DateEncodingKey;exports.DeleteStatus=o.DeleteStatus;exports.HttpMethod=o.HttpMethod;exports.MetricType=o.MetricType;exports.QueryType=o.QueryType;exports.DatetimeFormat=p;exports.decodeDate=D;exports.decodeDateTime=g;exports.formatDate=l;exports.formatDateTime=S;exports.parseDate=y;exports.parseDateTime=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./client-DtPpfJc1.cjs"),u=require("./metadata-BJWukIqS.cjs"),o=require("./constants-D0J69if5.cjs"),p={DATE:"%Y-%m-%d",TIME:"%H:%M:%S",DATE_TIME:"%Y-%m-%d %H:%M:%S"};function D(t){const[e,a,r]=t.$__d__.split("-").map(Number);return new Date(e,a-1,r)}function g(t){return new Date(t.$__dt__*1e3)}function l(t){const e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${a}-${r}`}function S(t){const e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0"),s=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0"),c=String(t.getSeconds()).padStart(2,"0");return`${e}-${a}-${r} ${s}:${i}:${c}`}function y(t){const[e,a,r]=t.split("-").map(Number);return new Date(e,a-1,r)}function f(t){const[e,a]=t.split(" "),[r,s,i]=e.split("-").map(Number),[c,d,m]=a.split(":").map(Number);return new Date(r,s-1,i,c,d,m)}exports.api=n.api;exports.getApiBaseUrl=n.getApiBaseUrl;exports.getDefaultHeaders=n.getDefaultHeaders;exports.setApiBaseUrl=n.setApiBaseUrl;exports.setDefaultHeaders=n.setDefaultHeaders;exports.getBdoSchema=u.getBdoSchema;exports.listMetadata=u.listMetadata;exports.DateEncodingKey=o.DateEncodingKey;exports.DeleteStatus=o.DeleteStatus;exports.HttpMethod=o.HttpMethod;exports.MetricType=o.MetricType;exports.QueryType=o.QueryType;exports.DatetimeFormat=p;exports.decodeDate=D;exports.decodeDateTime=g;exports.formatDate=l;exports.formatDateTime=S;exports.parseDate=y;exports.parseDateTime=f;
package/dist/api.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { a as f, c as h, g as M, s as $, b as T } from "./client-eA4VvNTo.js";
2
- import { g as H, l as b } from "./metadata-P7DGCgIG.js";
3
- import { D as w, a as x, H as A, M as N, Q as Y } from "./constants-CM9xOACN.js";
1
+ import { a as f, c as h, g as M, s as $, b as T } from "./client-BULEEaCP.js";
2
+ import { g as H, l as b } from "./metadata-CJuFxytC.js";
3
+ import { a as w, b as x, H as A, M as N, Q as Y } from "./constants-BQrBcCON.js";
4
4
  const m = {
5
5
  /** Date format: "YYYY-MM-DD" */
6
6
  DATE: "%Y-%m-%d",
package/dist/auth.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var J=Object.defineProperty;var X=(e,t,n)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var M=(e,t,n)=>X(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react/jsx-runtime"),r=require("react"),N=require("@tanstack/react-query"),L=require("./client-Bo-RLKJi.cjs"),W=require("./constants-D0J69if5.cjs"),H={sessionEndpoint:"/api/id",providers:{google:{loginPath:"/api/auth/google/login",logoutPath:"/api/auth/logout"}},defaultProvider:"google",autoRedirect:!1,sessionCheckInterval:0,retry:{count:3,delay:1e3},staleTime:5*60*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!0};let h={...H};function Y(e){h={...h,...e,providers:{...h.providers,...e.providers},retry:{...h.retry,...e.retry}}}function Z(e,t){h.providers[e]=t}function b(){return{...h}}function k(){return h.baseUrl||L.getApiBaseUrl()||(typeof window<"u"?window.location.origin:"")}function G(e){return h.providers[e]}function D(){h={...H}}class E extends Error{constructor(n,o){super(n);M(this,"statusCode");this.name="AuthenticationError",this.statusCode=o}}async function ee(){const e=b(),t=k(),n=L.getDefaultHeaders(),o=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!o.ok)throw o.status===401||o.status===403?new E("Not authenticated",o.status):new E(`Session check failed: ${o.statusText}`,o.status);return await o.json()}function _(e,t){return new Promise(()=>{const n=b(),o=k();if(!o)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const u=e||n.defaultProvider,c=G(u);if(!c){const A=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${u}" is not configured. Available providers: ${A}`)}if(!c.loginPath)throw new Error(`Login path not configured for provider "${u}". Configure it with: configureAuth({ providers: { ${u}: { loginPath: '/api/auth/...' } } })`);let f;try{f=new URL(`${o}${c.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${o}", Login path: "${c.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(t!=null&&t.callbackUrl||n.callbackUrl)&&f.searchParams.set("callbackUrl",(t==null?void 0:t.callbackUrl)||n.callbackUrl||window.location.href),t!=null&&t.params&&Object.entries(t.params).forEach(([A,v])=>{f.searchParams.set(A,v)}),window.open(f.toString(),"_blank")})}async function te(e){const t=b(),n=k(),o=L.getDefaultHeaders(),u=G(t.defaultProvider),c=u==null?void 0:u.logoutPath;if(c&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${c}`,{method:"POST",headers:o,credentials:"include"})}catch(f){console.warn("Logout endpoint call failed:",f)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:t.loginRedirectUrl&&(window.location.href=t.loginRedirectUrl)}const V=r.createContext(null),K=["auth","session"];function re({children:e,config:t,onAuthChange:n,onError:o,loadingComponent:u,unauthenticatedComponent:c,skipInitialCheck:f=!1}){const A=r.useRef(!1);t&&!A.current&&(Y(t),A.current=!0);const v=N.useQueryClient(),l=b(),{data:a,isLoading:g,error:U,refetch:R,isFetching:P}=N.useQuery({queryKey:K,queryFn:ee,enabled:!f,retry:(s,w)=>w instanceof E&&(w.statusCode===401||w.statusCode===403)?!1:s<l.retry.count,retryDelay:l.retry.delay,staleTime:l.staleTime,gcTime:l.staleTime*2,refetchOnWindowFocus:l.refetchOnWindowFocus??!0,refetchOnReconnect:l.refetchOnReconnect??!0,refetchInterval:l.sessionCheckInterval||!1}),[x,S]=r.useState(null),d=r.useMemo(()=>g||P?"loading":Object.keys((a==null?void 0:a.userDetails)||{}).length>0?"authenticated":"unauthenticated",[g,P,a]),i=(a==null?void 0:a.userDetails)||null,$=(a==null?void 0:a.staticBaseUrl)||null,O=(a==null?void 0:a.buildId)||null,j=d==="authenticated",C=r.useRef(n);C.current=n;const m=r.useRef(o);m.current=o,r.useEffect(()=>{var s;g||(s=C.current)==null||s.call(C,d,i)},[d,i,g]),r.useEffect(()=>{var s;U&&(S(U),(s=m.current)==null||s.call(m,U))},[U]),r.useEffect(()=>{d==="unauthenticated"&&l.autoRedirect&&!g&&_()},[d,g,l.autoRedirect]);const p=r.useCallback((s,w)=>{_(s,w)},[]),q=r.useCallback(async s=>{v.removeQueries({queryKey:K}),await te(s)},[v]),B=r.useCallback(async()=>{if(P)return a||null;try{return(await R()).data||null}catch(s){return S(s),null}},[R,P,a]),I=r.useCallback(s=>(i==null?void 0:i.Role)===s,[i]),T=r.useCallback(s=>s.includes((i==null?void 0:i.Role)||""),[i]),F=r.useCallback(()=>{S(null)},[]),Q=r.useCallback(()=>{R()},[R]),z=r.useMemo(()=>({user:i,staticBaseUrl:$,buildId:O,status:d,isAuthenticated:j,isLoading:g,login:p,logout:q,refreshSession:B,hasRole:I,hasAnyRole:T,error:x,clearError:F,_forceCheck:Q}),[i,$,O,d,j,g,p,q,B,I,T,x,F,Q]);return d==="loading"&&u?y.jsx(y.Fragment,{children:u}):d==="unauthenticated"&&!l.autoRedirect&&c?y.jsx(y.Fragment,{children:c}):y.jsx(V.Provider,{value:z,children:e})}function ne(){const e=r.useContext(V);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function oe(){const e=ne();return r.useMemo(()=>({user:e.user,staticBaseUrl:e.staticBaseUrl,buildId:e.buildId,status:e.status,isAuthenticated:e.isAuthenticated,isLoading:e.isLoading,login:e.login,logout:e.logout,refreshSession:e.refreshSession,hasRole:e.hasRole,hasAnyRole:e.hasAnyRole,error:e.error,clearError:e.clearError}),[e.user,e.staticBaseUrl,e.buildId,e.status,e.isAuthenticated,e.isLoading,e.login,e.logout,e.refreshSession,e.hasRole,e.hasAnyRole,e.error,e.clearError])}exports.AuthProviderName=W.AuthProviderName;exports.AuthStatus=W.AuthStatus;exports.AuthProvider=re;exports.AuthenticationError=E;exports.configureAuth=Y;exports.getAuthBaseUrl=k;exports.getAuthConfig=b;exports.resetAuthConfig=D;exports.setAuthProvider=Z;exports.useAuth=oe;
1
+ "use strict";var J=Object.defineProperty;var X=(e,t,n)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var M=(e,t,n)=>X(e,typeof t!="symbol"?t+"":t,n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react/jsx-runtime"),r=require("react"),N=require("@tanstack/react-query"),L=require("./client-DtPpfJc1.cjs"),W=require("./constants-D0J69if5.cjs"),H={sessionEndpoint:"/api/id",providers:{google:{loginPath:"/api/auth/google/login",logoutPath:"/api/auth/logout"}},defaultProvider:"google",autoRedirect:!1,sessionCheckInterval:0,retry:{count:3,delay:1e3},staleTime:5*60*1e3,refetchOnWindowFocus:!1,refetchOnReconnect:!0};let h={...H};function Y(e){h={...h,...e,providers:{...h.providers,...e.providers},retry:{...h.retry,...e.retry}}}function Z(e,t){h.providers[e]=t}function b(){return{...h}}function k(){return h.baseUrl||L.getApiBaseUrl()||(typeof window<"u"?window.location.origin:"")}function G(e){return h.providers[e]}function D(){h={...H}}class E extends Error{constructor(n,o){super(n);M(this,"statusCode");this.name="AuthenticationError",this.statusCode=o}}async function ee(){const e=b(),t=k(),n=L.getDefaultHeaders(),o=await fetch(`${t}${e.sessionEndpoint}`,{method:"GET",headers:n,credentials:"include"});if(!o.ok)throw o.status===401||o.status===403?new E("Not authenticated",o.status):new E(`Session check failed: ${o.statusText}`,o.status);return await o.json()}function _(e,t){return new Promise(()=>{const n=b(),o=k();if(!o)throw new Error('Auth base URL is not configured. Call setApiBaseUrl("https://...") or configureAuth({ baseUrl: "https://..." }) first.');const u=e||n.defaultProvider,c=G(u);if(!c){const A=Object.keys(n.providers||{}).join(", ")||"none";throw new Error(`Auth provider "${u}" is not configured. Available providers: ${A}`)}if(!c.loginPath)throw new Error(`Login path not configured for provider "${u}". Configure it with: configureAuth({ providers: { ${u}: { loginPath: '/api/auth/...' } } })`);let f;try{f=new URL(`${o}${c.loginPath}`)}catch{throw new Error(`Failed to construct login URL. Base URL: "${o}", Login path: "${c.loginPath}". Ensure baseUrl is a valid URL (e.g., "https://example.com").`)}(t!=null&&t.callbackUrl||n.callbackUrl)&&f.searchParams.set("callbackUrl",(t==null?void 0:t.callbackUrl)||n.callbackUrl||window.location.href),t!=null&&t.params&&Object.entries(t.params).forEach(([A,v])=>{f.searchParams.set(A,v)}),window.open(f.toString(),"_blank")})}async function te(e){const t=b(),n=k(),o=L.getDefaultHeaders(),u=G(t.defaultProvider),c=u==null?void 0:u.logoutPath;if(c&&(e==null?void 0:e.callLogoutEndpoint)!==!1)try{await fetch(`${n}${c}`,{method:"POST",headers:o,credentials:"include"})}catch(f){console.warn("Logout endpoint call failed:",f)}e!=null&&e.redirectUrl?window.location.href=e.redirectUrl:t.loginRedirectUrl&&(window.location.href=t.loginRedirectUrl)}const V=r.createContext(null),K=["auth","session"];function re({children:e,config:t,onAuthChange:n,onError:o,loadingComponent:u,unauthenticatedComponent:c,skipInitialCheck:f=!1}){const A=r.useRef(!1);t&&!A.current&&(Y(t),A.current=!0);const v=N.useQueryClient(),l=b(),{data:a,isLoading:g,error:U,refetch:R,isFetching:P}=N.useQuery({queryKey:K,queryFn:ee,enabled:!f,retry:(s,w)=>w instanceof E&&(w.statusCode===401||w.statusCode===403)?!1:s<l.retry.count,retryDelay:l.retry.delay,staleTime:l.staleTime,gcTime:l.staleTime*2,refetchOnWindowFocus:l.refetchOnWindowFocus??!0,refetchOnReconnect:l.refetchOnReconnect??!0,refetchInterval:l.sessionCheckInterval||!1}),[x,S]=r.useState(null),d=r.useMemo(()=>g||P?"loading":Object.keys((a==null?void 0:a.userDetails)||{}).length>0?"authenticated":"unauthenticated",[g,P,a]),i=(a==null?void 0:a.userDetails)||null,$=(a==null?void 0:a.staticBaseUrl)||null,O=(a==null?void 0:a.buildId)||null,j=d==="authenticated",C=r.useRef(n);C.current=n;const m=r.useRef(o);m.current=o,r.useEffect(()=>{var s;g||(s=C.current)==null||s.call(C,d,i)},[d,i,g]),r.useEffect(()=>{var s;U&&(S(U),(s=m.current)==null||s.call(m,U))},[U]),r.useEffect(()=>{d==="unauthenticated"&&l.autoRedirect&&!g&&_()},[d,g,l.autoRedirect]);const p=r.useCallback((s,w)=>{_(s,w)},[]),q=r.useCallback(async s=>{v.removeQueries({queryKey:K}),await te(s)},[v]),B=r.useCallback(async()=>{if(P)return a||null;try{return(await R()).data||null}catch(s){return S(s),null}},[R,P,a]),I=r.useCallback(s=>(i==null?void 0:i.Role)===s,[i]),T=r.useCallback(s=>s.includes((i==null?void 0:i.Role)||""),[i]),F=r.useCallback(()=>{S(null)},[]),Q=r.useCallback(()=>{R()},[R]),z=r.useMemo(()=>({user:i,staticBaseUrl:$,buildId:O,status:d,isAuthenticated:j,isLoading:g,login:p,logout:q,refreshSession:B,hasRole:I,hasAnyRole:T,error:x,clearError:F,_forceCheck:Q}),[i,$,O,d,j,g,p,q,B,I,T,x,F,Q]);return d==="loading"&&u?y.jsx(y.Fragment,{children:u}):d==="unauthenticated"&&!l.autoRedirect&&c?y.jsx(y.Fragment,{children:c}):y.jsx(V.Provider,{value:z,children:e})}function ne(){const e=r.useContext(V);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e}function oe(){const e=ne();return r.useMemo(()=>({user:e.user,staticBaseUrl:e.staticBaseUrl,buildId:e.buildId,status:e.status,isAuthenticated:e.isAuthenticated,isLoading:e.isLoading,login:e.login,logout:e.logout,refreshSession:e.refreshSession,hasRole:e.hasRole,hasAnyRole:e.hasAnyRole,error:e.error,clearError:e.clearError}),[e.user,e.staticBaseUrl,e.buildId,e.status,e.isAuthenticated,e.isLoading,e.login,e.logout,e.refreshSession,e.hasRole,e.hasAnyRole,e.error,e.clearError])}exports.AuthProviderName=W.AuthProviderName;exports.AuthStatus=W.AuthStatus;exports.AuthProvider=re;exports.AuthenticationError=E;exports.configureAuth=Y;exports.getAuthBaseUrl=k;exports.getAuthConfig=b;exports.resetAuthConfig=D;exports.setAuthProvider=Z;exports.useAuth=oe;
package/dist/auth.mjs CHANGED
@@ -4,8 +4,8 @@ var N = (e, t, r) => Z(e, typeof t != "symbol" ? t + "" : t, r);
4
4
  import { jsx as C, Fragment as W } from "react/jsx-runtime";
5
5
  import { useRef as p, useState as D, useMemo as k, useEffect as L, useCallback as g, createContext as ee, useContext as te } from "react";
6
6
  import { useQueryClient as re, useQuery as ne } from "@tanstack/react-query";
7
- import { c as oe, g as H } from "./client-eA4VvNTo.js";
8
- import { c as me, A as be } from "./constants-CM9xOACN.js";
7
+ import { c as oe, g as H } from "./client-BULEEaCP.js";
8
+ import { c as me, A as be } from "./constants-BQrBcCON.js";
9
9
  const M = {
10
10
  sessionEndpoint: "/api/id",
11
11
  providers: {
@@ -118,6 +118,10 @@ export declare abstract class BaseBdo<TEntity extends Record<string, unknown>, T
118
118
  * Use this when you need get/set/validate methods on fields
119
119
  */
120
120
  protected createItem(data?: Partial<TEditable>): ItemType<TEditable, TReadonly>;
121
+ /**
122
+ * Commit an update draft - finalize changes on an existing record
123
+ */
124
+ protected draftUpdate(id: string, data: Partial<TEditable>): Promise<CreateUpdateResponseType>;
121
125
  /**
122
126
  * Patch an existing draft - compute fields during editing
123
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseBdo.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/core/BaseBdo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseBdo.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/core/BaseBdo.ts"],"names":[],"mappings":"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"}
package/dist/bdo.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var y=Object.defineProperty;var p=(r,e,t)=>e in r?y(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var n=(r,e,t)=>p(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./client-Bo-RLKJi.cjs"),N=require("./constants-D0J69if5.cjs");class f{constructor(e,t){n(this,"_data");n(this,"_bdo");n(this,"_accessorCache",new Map);return this._bdo=e,this._data={...t},new Proxy(this,{get(s,a,i){return a==="validate"||a==="toJSON"||a==="_bdo"||a==="_data"||a==="_accessorCache"||a==="_getAccessor"||typeof a=="symbol"?Reflect.get(s,a,i):a==="_id"?s._data._id:s._getAccessor(a)},set(s,a,i){return a==="_bdo"||a==="_data"||a==="_accessorCache"||a==="validate"||a==="toJSON"?!1:typeof a=="symbol"?Reflect.set(s,a,i):(s._data[a]=i,!0)},has(s,a){return a==="validate"||a==="toJSON"?!0:a in s._data||a in s._bdo.getFields()},ownKeys(s){return[...Object.keys(s._bdo.getFields()),"validate","toJSON"]},getOwnPropertyDescriptor(s,a){if(a==="validate"||a==="toJSON")return{configurable:!0,enumerable:!1,value:s[a]};const i=s._bdo.getFields();if(a in i||a in s._data)return{configurable:!0,enumerable:!0,get:()=>s._getAccessor(a)}}})}_getAccessor(e){if(this._accessorCache.has(e))return this._accessorCache.get(e);const s=this._bdo.getFields()[e],a=(s==null?void 0:s.meta)??{_id:e,Name:e,Type:"String"},i=(s==null?void 0:s.readOnly)??!1,l=()=>{if(s){const c=s.validate(this._data[e]);if(!c.valid)return c}return this._bdo.hasMetadata()?this._bdo.validateFieldExpression(e,this._data[e],this.toJSON()):{valid:!0,errors:[]}};let o;return i?o={label:(s==null?void 0:s.label)??e,required:(s==null?void 0:s.required)??!1,readOnly:!0,defaultValue:s==null?void 0:s.defaultValue,meta:a,get:()=>this._data[e],validate:l}:o={label:(s==null?void 0:s.label)??e,required:(s==null?void 0:s.required)??!1,readOnly:!1,defaultValue:s==null?void 0:s.defaultValue,meta:a,get:()=>this._data[e],set:c=>{this._data[e]=c},validate:l},this._accessorCache.set(e,o),o}validate(){const e=this._bdo.getFields(),t=[],s=this.toJSON();for(const[a,i]of Object.entries(e)){if(i.readOnly)continue;const l=this._data[a],o=i.validate(l);if(!o.valid){t.push(...o.errors);continue}if(this._bdo.hasMetadata()){const c=this._bdo.validateFieldExpression(a,l,s);c.valid||t.push(...c.errors)}}return{valid:t.length===0,errors:t}}toJSON(){return{...this._data}}}class u{constructor(e){n(this,"_meta");n(this,"_parentBoId");this._meta=e}get id(){return this._meta._id}get label(){return this._meta.Name||this._meta._id}get readOnly(){return this._meta.ReadOnly??!1}get required(){var e;return((e=this._meta.Constraint)==null?void 0:e.Required)??this._meta.Required??!1}get defaultValue(){var e;return this._meta.DefaultValue??((e=this._meta.Constraint)==null?void 0:e.DefaultValue)}get primaryKey(){var e;return((e=this._meta.Constraint)==null?void 0:e.PrimaryKey)??!1}get meta(){return this._meta}}class h extends u{constructor(e){super(e)}get length(){var e;return(e=this._meta.Constraint)==null?void 0:e.Length}validate(e){return e!=null&&typeof e!="string"?{valid:!1,errors:[`${this.label} must be a string`]}:{valid:!0,errors:[]}}}class _ extends u{constructor(e){super(e)}get precision(){var e;return((e=this._meta.Constraint)==null?void 0:e.Precision)??"Second"}validate(e){if(e==null||e==="")return{valid:!0,errors:[]};if(typeof e!="string")return{valid:!1,errors:[`${this.label} must be a valid date string`]};const t=new Date(e);return isNaN(t.getTime())?{valid:!1,errors:[`${this.label} is not a valid date`]}:{valid:!0,errors:[]}}}class g extends u{constructor(e){super(e)}get businessEntity(){var e;return(e=this._meta.View)==null?void 0:e.BusinessEntity}validate(e){if(e==null)return{valid:!0,errors:[]};if(typeof e!="object")return{valid:!1,errors:[`${this.label} must be a valid user object`]};const t=e;return!("_id"in t)||typeof t._id!="string"?{valid:!1,errors:[`${this.label} must have a valid _id`]}:{valid:!0,errors:[]}}}const v={CONCAT:(...r)=>r.map(e=>String(e??"")).join(""),UPPER:r=>String(r??"").toUpperCase(),LOWER:r=>String(r??"").toLowerCase(),TRIM:r=>String(r??"").trim(),LENGTH:r=>String(r??"").length,SUBSTRING:(r,e,t)=>String(r??"").substring(e,t!==void 0?e+t:void 0),REPLACE:(r,e,t)=>String(r??"").replace(e,t),SUM:(...r)=>r.reduce((e,t)=>e+(Number(t)||0),0),AVG:(...r)=>{const e=r.filter(t=>t!=null&&!isNaN(Number(t)));return e.length===0?0:e.reduce((t,s)=>t+Number(s),0)/e.length},MIN:(...r)=>{const e=r.filter(t=>t!=null&&!isNaN(Number(t))).map(t=>Number(t));return e.length===0?0:Math.min(...e)},MAX:(...r)=>{const e=r.filter(t=>t!=null&&!isNaN(Number(t))).map(t=>Number(t));return e.length===0?0:Math.max(...e)},ABS:r=>Math.abs(Number(r)||0),ROUND:r=>Math.round(Number(r)||0),FLOOR:r=>Math.floor(Number(r)||0),CEIL:r=>Math.ceil(Number(r)||0),YEAR:r=>{const e=new Date(r);return isNaN(e.getTime())?0:e.getFullYear()},MONTH:r=>{const e=new Date(r);return isNaN(e.getTime())?0:e.getMonth()+1},DAY:r=>{const e=new Date(r);return isNaN(e.getTime())?0:e.getDate()},DATE_DIFF:(r,e)=>{const t=new Date(r),s=new Date(e);if(isNaN(t.getTime())||isNaN(s.getTime()))return 0;const a=Math.abs(t.getTime()-s.getTime());return Math.ceil(a/(1e3*60*60*24))},ADD_DAYS:(r,e)=>{const t=new Date(r);return isNaN(t.getTime())?new Date(NaN):(t.setDate(t.getDate()+e),t)},ADD_MONTHS:(r,e)=>{const t=new Date(r);return isNaN(t.getTime())?new Date(NaN):(t.setMonth(t.getMonth()+e),t)},IF:(r,e,t)=>r?e:t,UUID:()=>typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{const e=Math.random()*16|0;return(r==="x"?e:e&3|8).toString(16)})};function x(){const r=new Date;return{NOW:r,TODAY:new Date(r.getFullYear(),r.getMonth(),r.getDate()),CURRENT_USER:{Id:"",Email:"",FirstName:"",LastName:""}}}function m(r,e){var t;switch(r.Type){case"Literal":return r.Value;case"Identifier":return e.formValues[r.Name];case"SystemIdentifier":return w(r,e);case"BinaryExpression":return F(r,e);case"LogicalExpression":return O(r,e);case"CallExpression":return E(r,e);case"MemberExpression":return A(r,e);case"AssignmentExpression":return((t=r.Arguments)==null?void 0:t.length)===1?m(r.Arguments[0],e):void 0;default:throw new Error(`Unsupported expression type: ${r.Type}`)}}function w(r,e){const t=r.Name,s=e.systemValues[t];return r.Property?s&&typeof s=="object"?s[r.Property.Name]:void 0:s}function F(r,e){if(!r.Arguments||r.Arguments.length<2)throw new Error("BinaryExpression requires 2 arguments");const[t,s]=r.Arguments,a=m(t,e),i=m(s,e);switch(r.Operator){case"==":return a==i;case"!=":return a!=i;case"<":return Number(a)<Number(i);case"<=":return Number(a)<=Number(i);case">":return Number(a)>Number(i);case">=":return Number(a)>=Number(i);case"+":return Number(a)+Number(i);case"-":return Number(a)-Number(i);case"*":return Number(a)*Number(i);case"/":return Number(i)!==0?Number(a)/Number(i):0;case"%":return Number(a)%Number(i);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}function O(r,e){if(!r.Arguments||r.Arguments.length===0)throw new Error("LogicalExpression requires at least 1 argument");const t=r.Arguments;switch(r.Operator){case"AND":return t.every(s=>!!m(s,e));case"OR":return t.some(s=>!!m(s,e));case"!":return!m(t[0],e);default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}function E(r,e){if(!r.Callee)throw new Error("CallExpression requires a Callee");const t=v[r.Callee];if(!t)throw new Error(`Unknown function: ${r.Callee}`);const s=(r.Arguments??[]).map(a=>m(a,e));return t(...s)}function A(r,e){var a,i;if(!((a=r.Arguments)!=null&&a.length))return;const t=m(r.Arguments[0],e),s=(i=r.Arguments[0].Property)==null?void 0:i.Name;return s&&t&&typeof t=="object"?t[s]:t}class T{constructor(){n(this,"fieldRules",new Map);n(this,"metadata",null)}loadMetadata(e){var t,s;this.metadata=e,this.fieldRules.clear();for(const[a,i]of Object.entries(e.Fields)){const l=[];if(i.Validation&&Array.isArray(i.Validation)){for(const o of i.Validation)if(typeof o=="object"&&o.ExpressionTree)l.push(o);else if(typeof o=="string"){const c=(s=(t=e.Rules)==null?void 0:t.Validation)==null?void 0:s[o];c&&l.push(c)}}l.length>0&&this.fieldRules.set(a,l)}}hasMetadata(){return this.metadata!==null}getFieldRules(e){return this.fieldRules.get(e)??[]}validateField(e,t,s){const a=this.fieldRules.get(e);if(!a||a.length===0)return{valid:!0,errors:[]};const i={formValues:{...s,[e]:t},systemValues:x()};for(const l of a)try{if(!m(l.ExpressionTree,i))return{valid:!1,errors:[l.Message||`Validation failed: ${l.Name||l.Id}`]}}catch(o){console.warn(`Expression evaluation failed for rule ${l.Id}:`,o)}return{valid:!0,errors:[]}}validateAll(e){const t=[];for(const s of this.fieldRules.keys()){const a=this.validateField(s,e[s],e);a.valid||t.push(...a.errors)}return{valid:t.length===0,errors:t}}}class S{constructor(){n(this,"_id",new h({_id:"_id",Name:"ID",Type:"String",ReadOnly:!0}));n(this,"_created_at",new _({_id:"_created_at",Name:"Created At",Type:"DateTime",ReadOnly:!0}));n(this,"_modified_at",new _({_id:"_modified_at",Name:"Modified At",Type:"DateTime",ReadOnly:!0}));n(this,"_created_by",new g({_id:"_created_by",Name:"Created By",Type:"User",ReadOnly:!0}));n(this,"_modified_by",new g({_id:"_modified_by",Name:"Modified By",Type:"User",ReadOnly:!0}));n(this,"_version",new h({_id:"_version",Name:"Version",Type:"String",ReadOnly:!0}));n(this,"_m_version",new h({_id:"_m_version",Name:"Metadata Version",Type:"String",ReadOnly:!0}));n(this,"_fieldsBound",!1);n(this,"_fieldsCache",null);n(this,"_expressionEngine",new T)}getFields(){if(this._fieldsCache)return this._fieldsCache;const e={};for(const t of Object.keys(this)){const s=this[t];s instanceof u&&(e[t]=s)}if(!this._fieldsBound){for(const t of Object.values(e))t._parentBoId=this.meta._id;this._fieldsBound=!0}return this._fieldsCache=e,e}loadMetadata(e){this._expressionEngine.loadMetadata(e)}hasMetadata(){return this._expressionEngine.hasMetadata()}validateFieldExpression(e,t,s){return this._expressionEngine.hasMetadata()?this._expressionEngine.validateField(e,t,s):{valid:!0,errors:[]}}async get(e){const t=await d.api(this.meta._id).get(e);return new f(this,t)}async list(e){return(await d.api(this.meta._id).list(e)).Data.map(s=>new f(this,s))}async count(e){return(await d.api(this.meta._id).count(e)).Count}async create(e){const t=await d.api(this.meta._id).create(e);return new f(this,{...e,_id:t._id})}async update(e,t){return d.api(this.meta._id).update(e,t)}async delete(e){return d.api(this.meta._id).delete(e)}async draft(e){return d.api(this.meta._id).draft(e)}async draftInteraction(e){return d.api(this.meta._id).draftInteraction(e)}createItem(e){return new f(this,e??{})}async draftPatch(e,t){return d.api(this.meta._id).draftPatch(e,t)}async metric(e){return d.api(this.meta._id).metric(e)}async pivot(e){return d.api(this.meta._id).pivot(e)}}class R extends u{constructor(e){super(e)}get integerPart(){var e;return((e=this._meta.Constraint)==null?void 0:e.IntegerPart)??9}get fractionPart(){var e;return(e=this._meta.Constraint)==null?void 0:e.FractionPart}validate(e){return e!=null&&(typeof e!="number"||isNaN(e))?{valid:!1,errors:[`${this.label} must be a valid number`]}:{valid:!0,errors:[]}}}class C extends u{constructor(e){super(e)}validate(e){return e!=null&&typeof e!="boolean"?{valid:!1,errors:[`${this.label} must be a boolean`]}:{valid:!0,errors:[]}}}class M extends u{constructor(e){super(e)}validate(e){if(e==null||e==="")return{valid:!0,errors:[]};if(typeof e!="string")return{valid:!1,errors:[`${this.label} must be a valid date string`]};if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return{valid:!1,errors:[`${this.label} must be in YYYY-MM-DD format`]};const t=new Date(e+"T00:00:00");return isNaN(t.getTime())?{valid:!1,errors:[`${this.label} is not a valid date`]}:{valid:!0,errors:[]}}}class D extends u{constructor(e){super(e)}get options(){var t;return(((t=this._meta.Constraint)==null?void 0:t.Enum)??[]).map(s=>({value:s,label:s}))}validate(e){if(e==null||e==="")return{valid:!0,errors:[]};if(this.options.length===0)return{valid:!0,errors:[]};const t=this.options.map(s=>s.value);return t.includes(e)?{valid:!0,errors:[]}:{valid:!1,errors:[`${this.label} must be one of: ${t.join(", ")}`]}}async fetchOptions(e){if(!this._parentBoId)throw new Error(`Field ${this.id} not bound to a BDO. Cannot fetch options.`);return(await d.api(this._parentBoId).fetchField(e??"new",this.id)).map(s=>({value:s.Value,label:s.Label}))}}class B extends u{constructor(e){super(e)}get referenceBdo(){var e,t;return((t=(e=this._meta.View)==null?void 0:e.DataObject)==null?void 0:t.Id)??""}get referenceFields(){var e;return((e=this._meta.View)==null?void 0:e.Fields)??["_id"]}get searchFields(){var e;return((e=this._meta.View)==null?void 0:e.Search)??[]}validate(e){if(e==null)return{valid:!0,errors:[]};if(typeof e!="object")return{valid:!1,errors:[`${this.label} must be a valid reference object`]};const t=e;return!("_id"in t)||typeof t._id!="string"?{valid:!1,errors:[`${this.label} must have a valid _id`]}:{valid:!0,errors:[]}}async fetchOptions(e){if(!this._parentBoId)throw new Error(`Field ${this.id} not bound to a BDO. Cannot fetch options.`);return d.api(this._parentBoId).fetchField(e??"new",this.id)}}class V extends u{constructor(e){super(e)}get elementType(){return this._meta.Property}validate(e){return e!=null&&!Array.isArray(e)?{valid:!1,errors:[`${this.label} must be an array`]}:{valid:!0,errors:[]}}}class j extends u{constructor(e){super(e)}get properties(){return this._meta.Property}validate(e){return e==null?{valid:!0,errors:[]}:typeof e!="object"||Array.isArray(e)?{valid:!1,errors:[`${this.label} must be a valid object`]}:{valid:!0,errors:[]}}}class b extends u{constructor(e){super(e)}get format(){var e;return((e=this._meta.Constraint)==null?void 0:e.Format)??"Plain"}validate(e){return e!=null&&typeof e!="string"?{valid:!1,errors:[`${this.label} must be a string`]}:{valid:!0,errors:[]}}}class $ extends u{constructor(e){super(e)}validate(e){return e==null?{valid:!0,errors:[]}:typeof e!="object"||Array.isArray(e)?{valid:!1,errors:[`${this.label} must be a valid file object`]}:{valid:!0,errors:[]}}}exports.SystemField=N.SystemField;exports.ArrayField=V;exports.BaseBdo=S;exports.BaseField=u;exports.BooleanField=C;exports.DateField=M;exports.DateTimeField=_;exports.FileField=$;exports.NumberField=R;exports.ObjectField=j;exports.ReferenceField=B;exports.SelectField=D;exports.StringField=h;exports.TextAreaField=b;exports.TextField=b;exports.UserField=g;
1
+ "use strict";var y=Object.defineProperty;var p=(r,e,t)=>e in r?y(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var o=(r,e,t)=>p(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./client-DtPpfJc1.cjs"),d=require("./BaseField-Drp0-OxL.cjs"),N=require("./constants-D0J69if5.cjs");class m{constructor(e,t){o(this,"_data");o(this,"_bdo");o(this,"_accessorCache",new Map);return this._bdo=e,this._data={...t},new Proxy(this,{get(s,a,i){return a==="validate"||a==="toJSON"||a==="_bdo"||a==="_data"||a==="_accessorCache"||a==="_getAccessor"||typeof a=="symbol"?Reflect.get(s,a,i):a==="_id"?s._data._id:s._getAccessor(a)},set(s,a,i){return a==="_bdo"||a==="_data"||a==="_accessorCache"||a==="validate"||a==="toJSON"?!1:typeof a=="symbol"?Reflect.set(s,a,i):(s._data[a]=i,!0)},has(s,a){return a==="validate"||a==="toJSON"?!0:a in s._data||a in s._bdo.getFields()},ownKeys(s){return[...Object.keys(s._bdo.getFields()),"validate","toJSON"]},getOwnPropertyDescriptor(s,a){if(a==="validate"||a==="toJSON")return{configurable:!0,enumerable:!1,value:s[a]};const i=s._bdo.getFields();if(a in i||a in s._data)return{configurable:!0,enumerable:!0,get:()=>s._getAccessor(a)}}})}_getAccessor(e){if(this._accessorCache.has(e))return this._accessorCache.get(e);const s=this._bdo.getFields()[e],a=(s==null?void 0:s.meta)??{_id:e,Name:e,Type:"String"},i=(s==null?void 0:s.readOnly)??!1,n=()=>{if(s){const c=s.validate(this._data[e]);if(!c.valid)return c}return this._bdo.hasMetadata()?this._bdo.validateFieldExpression(e,this._data[e],this.toJSON()):{valid:!0,errors:[]}};let l;return i?l={label:(s==null?void 0:s.label)??e,required:(s==null?void 0:s.required)??!1,readOnly:!0,defaultValue:s==null?void 0:s.defaultValue,meta:a,get:()=>this._data[e],validate:n}:l={label:(s==null?void 0:s.label)??e,required:(s==null?void 0:s.required)??!1,readOnly:!1,defaultValue:s==null?void 0:s.defaultValue,meta:a,get:()=>this._data[e],set:c=>{this._data[e]=c},validate:n},this._accessorCache.set(e,l),l}validate(){const e=this._bdo.getFields(),t=[],s=this.toJSON();for(const[a,i]of Object.entries(e)){if(i.readOnly)continue;const n=this._data[a],l=i.validate(n);if(!l.valid){t.push(...l.errors);continue}if(this._bdo.hasMetadata()){const c=this._bdo.validateFieldExpression(a,n,s);c.valid||t.push(...c.errors)}}return{valid:t.length===0,errors:t}}toJSON(){return{...this._data}}}class h extends d.BaseField{constructor(e){super(e)}get length(){var e;return(e=this._meta.Constraint)==null?void 0:e.Length}validate(e){return e!=null&&typeof e!="string"?{valid:!1,errors:[`${this.label} must be a string`]}:{valid:!0,errors:[]}}}class b extends d.BaseField{constructor(e){super(e)}get precision(){var e;return((e=this._meta.Constraint)==null?void 0:e.Precision)??"Second"}validate(e){if(e==null||e==="")return{valid:!0,errors:[]};if(typeof e!="string")return{valid:!1,errors:[`${this.label} must be a valid date string`]};const t=new Date(e);return isNaN(t.getTime())?{valid:!1,errors:[`${this.label} is not a valid date`]}:{valid:!0,errors:[]}}}class _ extends d.BaseField{constructor(e){super(e)}get businessEntity(){var e;return(e=this._meta.View)==null?void 0:e.BusinessEntity}validate(e){if(e==null)return{valid:!0,errors:[]};if(typeof e!="object")return{valid:!1,errors:[`${this.label} must be a valid user object`]};const t=e;return!("_id"in t)||typeof t._id!="string"?{valid:!1,errors:[`${this.label} must have a valid _id`]}:{valid:!0,errors:[]}}}const v={CONCAT:(...r)=>r.map(e=>String(e??"")).join(""),UPPER:r=>String(r??"").toUpperCase(),LOWER:r=>String(r??"").toLowerCase(),TRIM:r=>String(r??"").trim(),LENGTH:r=>String(r??"").length,SUBSTRING:(r,e,t)=>String(r??"").substring(e,t!==void 0?e+t:void 0),REPLACE:(r,e,t)=>String(r??"").replace(e,t),SUM:(...r)=>r.reduce((e,t)=>e+(Number(t)||0),0),AVG:(...r)=>{const e=r.filter(t=>t!=null&&!isNaN(Number(t)));return e.length===0?0:e.reduce((t,s)=>t+Number(s),0)/e.length},MIN:(...r)=>{const e=r.filter(t=>t!=null&&!isNaN(Number(t))).map(t=>Number(t));return e.length===0?0:Math.min(...e)},MAX:(...r)=>{const e=r.filter(t=>t!=null&&!isNaN(Number(t))).map(t=>Number(t));return e.length===0?0:Math.max(...e)},ABS:r=>Math.abs(Number(r)||0),ROUND:r=>Math.round(Number(r)||0),FLOOR:r=>Math.floor(Number(r)||0),CEIL:r=>Math.ceil(Number(r)||0),YEAR:r=>{const e=new Date(r);return isNaN(e.getTime())?0:e.getFullYear()},MONTH:r=>{const e=new Date(r);return isNaN(e.getTime())?0:e.getMonth()+1},DAY:r=>{const e=new Date(r);return isNaN(e.getTime())?0:e.getDate()},DATE_DIFF:(r,e)=>{const t=new Date(r),s=new Date(e);if(isNaN(t.getTime())||isNaN(s.getTime()))return 0;const a=Math.abs(t.getTime()-s.getTime());return Math.ceil(a/(1e3*60*60*24))},ADD_DAYS:(r,e)=>{const t=new Date(r);return isNaN(t.getTime())?new Date(NaN):(t.setDate(t.getDate()+e),t)},ADD_MONTHS:(r,e)=>{const t=new Date(r);return isNaN(t.getTime())?new Date(NaN):(t.setMonth(t.getMonth()+e),t)},IF:(r,e,t)=>r?e:t,UUID:()=>typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{const e=Math.random()*16|0;return(r==="x"?e:e&3|8).toString(16)})};function F(){const r=new Date;return{NOW:r,TODAY:new Date(r.getFullYear(),r.getMonth(),r.getDate()),CURRENT_USER:{Id:"",Email:"",FirstName:"",LastName:""}}}function f(r,e){var t;switch(r.Type){case"Literal":return r.Value;case"Identifier":return e.formValues[r.Name];case"SystemIdentifier":return x(r,e);case"BinaryExpression":return w(r,e);case"LogicalExpression":return O(r,e);case"CallExpression":return E(r,e);case"MemberExpression":return A(r,e);case"AssignmentExpression":return((t=r.Arguments)==null?void 0:t.length)===1?f(r.Arguments[0],e):void 0;default:throw new Error(`Unsupported expression type: ${r.Type}`)}}function x(r,e){const t=r.Name,s=e.systemValues[t];return r.Property?s&&typeof s=="object"?s[r.Property.Name]:void 0:s}function w(r,e){if(!r.Arguments||r.Arguments.length<2)throw new Error("BinaryExpression requires 2 arguments");const[t,s]=r.Arguments,a=f(t,e),i=f(s,e);switch(r.Operator){case"==":return a==i;case"!=":return a!=i;case"<":return Number(a)<Number(i);case"<=":return Number(a)<=Number(i);case">":return Number(a)>Number(i);case">=":return Number(a)>=Number(i);case"+":return Number(a)+Number(i);case"-":return Number(a)-Number(i);case"*":return Number(a)*Number(i);case"/":return Number(i)!==0?Number(a)/Number(i):0;case"%":return Number(a)%Number(i);default:throw new Error(`Unsupported binary operator: ${r.Operator}`)}}function O(r,e){if(!r.Arguments||r.Arguments.length===0)throw new Error("LogicalExpression requires at least 1 argument");const t=r.Arguments;switch(r.Operator){case"AND":return t.every(s=>!!f(s,e));case"OR":return t.some(s=>!!f(s,e));case"!":return!f(t[0],e);default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}function E(r,e){if(!r.Callee)throw new Error("CallExpression requires a Callee");const t=v[r.Callee];if(!t)throw new Error(`Unknown function: ${r.Callee}`);const s=(r.Arguments??[]).map(a=>f(a,e));return t(...s)}function A(r,e){var a,i;if(!((a=r.Arguments)!=null&&a.length))return;const t=f(r.Arguments[0],e),s=(i=r.Arguments[0].Property)==null?void 0:i.Name;return s&&t&&typeof t=="object"?t[s]:t}class B{constructor(){o(this,"fieldRules",new Map);o(this,"metadata",null)}loadMetadata(e){var t,s;this.metadata=e,this.fieldRules.clear();for(const[a,i]of Object.entries(e.Fields)){const n=[];if(i.Validation&&Array.isArray(i.Validation)){for(const l of i.Validation)if(typeof l=="object"&&l.ExpressionTree)n.push(l);else if(typeof l=="string"){const c=(s=(t=e.Rules)==null?void 0:t.Validation)==null?void 0:s[l];c&&n.push(c)}}n.length>0&&this.fieldRules.set(a,n)}}hasMetadata(){return this.metadata!==null}getFieldRules(e){return this.fieldRules.get(e)??[]}validateField(e,t,s){const a=this.fieldRules.get(e);if(!a||a.length===0)return{valid:!0,errors:[]};const i={formValues:{...s,[e]:t},systemValues:F()};for(const n of a)try{if(!f(n.ExpressionTree,i))return{valid:!1,errors:[n.Message||`Validation failed: ${n.Name||n.Id}`]}}catch(l){console.warn(`Expression evaluation failed for rule ${n.Id}:`,l)}return{valid:!0,errors:[]}}validateAll(e){const t=[];for(const s of this.fieldRules.keys()){const a=this.validateField(s,e[s],e);a.valid||t.push(...a.errors)}return{valid:t.length===0,errors:t}}}class T{constructor(){o(this,"_id",new h({_id:"_id",Name:"ID",Type:"String",ReadOnly:!0}));o(this,"_created_at",new b({_id:"_created_at",Name:"Created At",Type:"DateTime",ReadOnly:!0}));o(this,"_modified_at",new b({_id:"_modified_at",Name:"Modified At",Type:"DateTime",ReadOnly:!0}));o(this,"_created_by",new _({_id:"_created_by",Name:"Created By",Type:"User",ReadOnly:!0}));o(this,"_modified_by",new _({_id:"_modified_by",Name:"Modified By",Type:"User",ReadOnly:!0}));o(this,"_version",new h({_id:"_version",Name:"Version",Type:"String",ReadOnly:!0}));o(this,"_m_version",new h({_id:"_m_version",Name:"Metadata Version",Type:"String",ReadOnly:!0}));o(this,"_fieldsBound",!1);o(this,"_fieldsCache",null);o(this,"_expressionEngine",new B)}getFields(){if(this._fieldsCache)return this._fieldsCache;const e={};for(const t of Object.keys(this)){const s=this[t];s instanceof d.BaseField&&(e[t]=s)}if(!this._fieldsBound){for(const t of Object.values(e))t._parentBoId=this.meta._id;this._fieldsBound=!0}return this._fieldsCache=e,e}loadMetadata(e){this._expressionEngine.loadMetadata(e)}hasMetadata(){return this._expressionEngine.hasMetadata()}validateFieldExpression(e,t,s){return this._expressionEngine.hasMetadata()?this._expressionEngine.validateField(e,t,s):{valid:!0,errors:[]}}async get(e){const t=await u.api(this.meta._id).get(e);return new m(this,t)}async list(e){return(await u.api(this.meta._id).list(e)).Data.map(s=>new m(this,s))}async count(e){return(await u.api(this.meta._id).count(e)).Count}async create(e){const t=await u.api(this.meta._id).create(e);return new m(this,{...e,_id:t._id})}async update(e,t){return u.api(this.meta._id).update(e,t)}async delete(e){return u.api(this.meta._id).delete(e)}async draft(e){return u.api(this.meta._id).draft(e)}async draftInteraction(e){return u.api(this.meta._id).draftInteraction(e)}createItem(e){return new m(this,e??{})}async draftUpdate(e,t){return u.api(this.meta._id).draftUpdate(e,t)}async draftPatch(e,t){return u.api(this.meta._id).draftPatch(e,t)}async metric(e){return u.api(this.meta._id).metric(e)}async pivot(e){return u.api(this.meta._id).pivot(e)}}class S extends d.BaseField{constructor(e){super(e)}get integerPart(){var e;return((e=this._meta.Constraint)==null?void 0:e.IntegerPart)??9}get fractionPart(){var e;return(e=this._meta.Constraint)==null?void 0:e.FractionPart}validate(e){return e!=null&&(typeof e!="number"||isNaN(e))?{valid:!1,errors:[`${this.label} must be a valid number`]}:{valid:!0,errors:[]}}}class M extends d.BaseField{constructor(e){super(e)}validate(e){return e!=null&&typeof e!="boolean"?{valid:!1,errors:[`${this.label} must be a boolean`]}:{valid:!0,errors:[]}}}class R extends d.BaseField{constructor(e){super(e)}validate(e){if(e==null||e==="")return{valid:!0,errors:[]};if(typeof e!="string")return{valid:!1,errors:[`${this.label} must be a valid date string`]};if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return{valid:!1,errors:[`${this.label} must be in YYYY-MM-DD format`]};const t=new Date(e+"T00:00:00");return isNaN(t.getTime())?{valid:!1,errors:[`${this.label} is not a valid date`]}:{valid:!0,errors:[]}}}class C extends d.BaseField{constructor(e){super(e)}get options(){var t;return(((t=this._meta.Constraint)==null?void 0:t.Enum)??[]).map(s=>({value:s,label:s}))}validate(e){if(e==null||e==="")return{valid:!0,errors:[]};if(this.options.length===0)return{valid:!0,errors:[]};const t=this.options.map(s=>s.value);return t.includes(e)?{valid:!0,errors:[]}:{valid:!1,errors:[`${this.label} must be one of: ${t.join(", ")}`]}}async fetchOptions(e){if(!this._parentBoId)throw new Error(`Field ${this.id} not bound to a BDO. Cannot fetch options.`);return(await u.api(this._parentBoId).fetchField(e??"new",this.id)).map(s=>({value:s.Value,label:s.Label}))}}class D extends d.BaseField{constructor(e){super(e)}get referenceBdo(){var e,t;return((t=(e=this._meta.View)==null?void 0:e.DataObject)==null?void 0:t.Id)??""}get referenceFields(){var e;return((e=this._meta.View)==null?void 0:e.Fields)??["_id"]}get searchFields(){var e;return((e=this._meta.View)==null?void 0:e.Search)??[]}validate(e){if(e==null)return{valid:!0,errors:[]};if(typeof e!="object")return{valid:!1,errors:[`${this.label} must be a valid reference object`]};const t=e;return!("_id"in t)||typeof t._id!="string"?{valid:!1,errors:[`${this.label} must have a valid _id`]}:{valid:!0,errors:[]}}async fetchOptions(e){if(!this._parentBoId)throw new Error(`Field ${this.id} not bound to a BDO. Cannot fetch options.`);return u.api(this._parentBoId).fetchField(e??"new",this.id)}}class V extends d.BaseField{constructor(e){super(e)}get elementType(){return this._meta.Property}validate(e){return e!=null&&!Array.isArray(e)?{valid:!1,errors:[`${this.label} must be an array`]}:{valid:!0,errors:[]}}}class j extends d.BaseField{constructor(e){super(e)}get properties(){return this._meta.Property}validate(e){return e==null?{valid:!0,errors:[]}:typeof e!="object"||Array.isArray(e)?{valid:!1,errors:[`${this.label} must be a valid object`]}:{valid:!0,errors:[]}}}class g extends d.BaseField{constructor(e){super(e)}get format(){var e;return((e=this._meta.Constraint)==null?void 0:e.Format)??"Plain"}validate(e){return e!=null&&typeof e!="string"?{valid:!1,errors:[`${this.label} must be a string`]}:{valid:!0,errors:[]}}}class $ extends d.BaseField{constructor(e){super(e)}validate(e){return e==null?{valid:!0,errors:[]}:typeof e!="object"||Array.isArray(e)?{valid:!1,errors:[`${this.label} must be a valid file object`]}:{valid:!0,errors:[]}}}exports.BaseField=d.BaseField;exports.SystemField=N.SystemField;exports.ArrayField=V;exports.BaseBdo=T;exports.BooleanField=M;exports.DateField=R;exports.DateTimeField=b;exports.FileField=$;exports.NumberField=S;exports.ObjectField=j;exports.ReferenceField=D;exports.SelectField=C;exports.StringField=h;exports.TextAreaField=g;exports.TextField=g;exports.UserField=_;