@ram_28/kf-ai-sdk 2.0.8 → 2.0.10

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 (77) hide show
  1. package/dist/api/client.d.ts +21 -1
  2. package/dist/api/client.d.ts.map +1 -1
  3. package/dist/api/index.d.ts +1 -1
  4. package/dist/api/index.d.ts.map +1 -1
  5. package/dist/api.cjs +1 -1
  6. package/dist/api.mjs +3 -3
  7. package/dist/api.types.d.ts +1 -1
  8. package/dist/api.types.d.ts.map +1 -1
  9. package/dist/auth.cjs +1 -1
  10. package/dist/auth.mjs +2 -2
  11. package/dist/bdo/core/BaseBdo.d.ts +21 -1
  12. package/dist/bdo/core/BaseBdo.d.ts.map +1 -1
  13. package/dist/bdo/core/Item.d.ts +22 -3
  14. package/dist/bdo/core/Item.d.ts.map +1 -1
  15. package/dist/bdo/core/types.d.ts +28 -0
  16. package/dist/bdo/core/types.d.ts.map +1 -1
  17. package/dist/bdo/fields/FileField.d.ts +2 -2
  18. package/dist/bdo/fields/FileField.d.ts.map +1 -1
  19. package/dist/bdo/fields/ImageField.d.ts +18 -0
  20. package/dist/bdo/fields/ImageField.d.ts.map +1 -0
  21. package/dist/bdo/fields/attachment-constants.d.ts +9 -0
  22. package/dist/bdo/fields/attachment-constants.d.ts.map +1 -0
  23. package/dist/bdo/fields/index.d.ts +1 -0
  24. package/dist/bdo/fields/index.d.ts.map +1 -1
  25. package/dist/bdo/index.d.ts +2 -2
  26. package/dist/bdo/index.d.ts.map +1 -1
  27. package/dist/bdo.cjs +1 -1
  28. package/dist/bdo.d.ts +1 -1
  29. package/dist/bdo.d.ts.map +1 -1
  30. package/dist/bdo.mjs +381 -157
  31. package/dist/bdo.types.d.ts +2 -2
  32. package/dist/bdo.types.d.ts.map +1 -1
  33. package/dist/client-BnVxSHAm.cjs +1 -0
  34. package/dist/client-CMERmrC-.js +279 -0
  35. package/dist/{constants-CYJih7y4.js → constants-ConHc1oS.js} +5 -3
  36. package/dist/constants-QX2RX-wu.cjs +1 -0
  37. package/dist/filter.cjs +1 -1
  38. package/dist/filter.mjs +1 -1
  39. package/dist/form.cjs +1 -1
  40. package/dist/form.mjs +15 -15
  41. package/dist/{metadata-BJWukIqS.cjs → metadata-BfJtHz84.cjs} +1 -1
  42. package/dist/{metadata-CJuFxytC.js → metadata-CwAo6a8e.js} +1 -1
  43. package/dist/table.cjs +1 -1
  44. package/dist/table.mjs +2 -2
  45. package/dist/types/base-fields.d.ts +19 -3
  46. package/dist/types/base-fields.d.ts.map +1 -1
  47. package/dist/types/common.d.ts +40 -0
  48. package/dist/types/common.d.ts.map +1 -1
  49. package/dist/types/constants.d.ts +13 -3
  50. package/dist/types/constants.d.ts.map +1 -1
  51. package/dist/workflow.cjs +1 -1
  52. package/dist/workflow.mjs +1 -1
  53. package/docs/api.md +1 -1
  54. package/docs/useFilter.md +279 -6
  55. package/docs/useForm.md +174 -0
  56. package/package.json +1 -1
  57. package/sdk/api/client.ts +145 -0
  58. package/sdk/api/index.ts +4 -0
  59. package/sdk/api.types.ts +5 -0
  60. package/sdk/bdo/core/BaseBdo.ts +60 -0
  61. package/sdk/bdo/core/Item.ts +231 -3
  62. package/sdk/bdo/core/types.ts +63 -0
  63. package/sdk/bdo/fields/FileField.ts +14 -5
  64. package/sdk/bdo/fields/ImageField.ts +46 -0
  65. package/sdk/bdo/fields/attachment-constants.ts +72 -0
  66. package/sdk/bdo/fields/index.ts +1 -0
  67. package/sdk/bdo/index.ts +6 -0
  68. package/sdk/bdo.ts +1 -0
  69. package/sdk/bdo.types.ts +7 -0
  70. package/sdk/components/hooks/useFilter/useFilter.llm.txt +73 -4
  71. package/sdk/components/hooks/useForm/createResolver.ts +1 -1
  72. package/sdk/types/base-fields.ts +21 -3
  73. package/sdk/types/common.ts +45 -0
  74. package/sdk/types/constants.ts +13 -3
  75. package/dist/client-BULEEaCP.js +0 -222
  76. package/dist/client-DtPpfJc1.cjs +0 -1
  77. package/dist/constants-D0J69if5.cjs +0 -1
@@ -1,4 +1,4 @@
1
- import type { ListOptionsType, ListResponseType, CreateUpdateResponseType, DeleteResponseType, CountResponseType, MetricOptionsType, MetricResponseType, PivotOptionsType, PivotResponseType, DraftResponseType, FieldsResponseType, FetchFieldOptionType } from "../types/common";
1
+ import type { ListOptionsType, ListResponseType, CreateUpdateResponseType, DeleteResponseType, CountResponseType, MetricOptionsType, MetricResponseType, PivotOptionsType, PivotResponseType, DraftResponseType, FieldsResponseType, FetchFieldOptionType, FileUploadRequestType, FileUploadResponseType, FileDownloadResponseType, AttachmentViewType } from "../types/common";
2
2
  /**
3
3
  * API client interface for a specific Business Object
4
4
  */
@@ -66,6 +66,26 @@ export interface ResourceClientType<T = any> {
66
66
  * - For ReferenceField: TRef[] (full entity objects)
67
67
  */
68
68
  fetchField<TResult = FetchFieldOptionType>(instanceId: string, fieldId: string): Promise<TResult[]>;
69
+ /**
70
+ * Get signed upload URLs for file attachments
71
+ * POST /{bo_id}/{instance_id}/field/{field_id}/attachment/upload
72
+ */
73
+ getUploadUrl(instanceId: string, fieldId: string, files: FileUploadRequestType[]): Promise<FileUploadResponseType[]>;
74
+ /**
75
+ * Get signed download URL for a single attachment
76
+ * GET /{bo_id}/{instance_id}/field/{field_id}/attachment/{attachment_id}/read
77
+ */
78
+ getDownloadUrl(instanceId: string, fieldId: string, attachmentId: string, viewType?: AttachmentViewType): Promise<FileDownloadResponseType>;
79
+ /**
80
+ * Get signed download URLs for all attachments on a field
81
+ * GET /{bo_id}/{instance_id}/field/{field_id}/attachment/read
82
+ */
83
+ getDownloadUrls(instanceId: string, fieldId: string, viewType?: AttachmentViewType): Promise<FileDownloadResponseType[]>;
84
+ /**
85
+ * Delete an attachment
86
+ * DELETE /{bo_id}/{instance_id}/field/{field_id}/attachment/{attachment_id}/delete
87
+ */
88
+ deleteAttachment(instanceId: string, fieldId: string, attachmentId: string): Promise<void>;
69
89
  }
70
90
  /**
71
91
  * Set the base URL for all API requests
@@ -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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"}
@@ -3,6 +3,6 @@ export type { ResourceClientType } from "./client";
3
3
  export { DatetimeFormat, decodeDate, decodeDateTime, formatDate, formatDateTime, parseDate, parseDateTime, } from "./datetime";
4
4
  export { getBdoSchema, listMetadata } from "./metadata";
5
5
  export type { BackendSchemaType, MetadataItemType, FieldMetadataType } from "./metadata";
6
- export type { SortDirectionType, SortOptionType, SortType, ConditionType, ConditionGroupType, ConditionGroupOperatorType, FilterType, FilterRHSType, ConditionOperatorType, ListOptionsType, ListResponseType, ReadResponseType, CreateUpdateResponseType, DeleteResponseType, CountResponseType, AggregationType, MetricFieldType, MetricOptionsType, MetricResponseType, PivotHeaderItemType, PivotResponseDataType, PivotOptionsType, PivotResponseType, DraftResponseType, FieldsResponseType, } from "../types/common";
6
+ export type { SortDirectionType, SortOptionType, SortType, ConditionType, ConditionGroupType, ConditionGroupOperatorType, FilterType, FilterRHSType, ConditionOperatorType, ListOptionsType, ListResponseType, ReadResponseType, CreateUpdateResponseType, DeleteResponseType, CountResponseType, AggregationType, MetricFieldType, MetricOptionsType, MetricResponseType, PivotHeaderItemType, PivotResponseDataType, PivotOptionsType, PivotResponseType, DraftResponseType, FieldsResponseType, FileUploadRequestType, FileUploadResponseType, FileDownloadResponseType, } from "../types/common";
7
7
  export type { DateEncodedType, DateTimeEncodedType, } from "../types/base-fields";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
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,EAElB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,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-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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./client-BnVxSHAm.cjs"),u=require("./metadata-BfJtHz84.cjs"),o=require("./constants-QX2RX-wu.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-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-CYJih7y4.js";
1
+ import { a as f, c as h, g as M, s as $, b as T } from "./client-CMERmrC-.js";
2
+ import { g as H, l as b } from "./metadata-CwAo6a8e.js";
3
+ import { a as w, b as x, H as A, M as N, Q as Y } from "./constants-ConHc1oS.js";
4
4
  const m = {
5
5
  /** Date format: "YYYY-MM-DD" */
6
6
  DATE: "%Y-%m-%d",
@@ -1,5 +1,5 @@
1
1
  export type { ResourceClientType } from './api/client';
2
2
  export type { BackendSchemaType, MetadataItemType, FieldMetadataType } from './api/metadata';
3
3
  export type { DateTimeEncodedType, DateEncodedType } from './types/base-fields';
4
- export type { SortDirectionType, SortOptionType, SortType, ConditionType, ConditionGroupType, ConditionGroupOperatorType, ConditionOperatorType, FilterType, FilterRHSType, ListOptionsType, ListResponseType, ReadResponseType, CreateUpdateResponseType, DeleteResponseType, CountResponseType, AggregationType, MetricFieldType, MetricOptionsType, MetricResponseType, PivotHeaderItemType, PivotResponseDataType, PivotOptionsType, PivotResponseType, DraftResponseType, FieldsResponseType, FetchFieldOptionType, FetchFieldResponseType, } from './types/common';
4
+ export type { SortDirectionType, SortOptionType, SortType, ConditionType, ConditionGroupType, ConditionGroupOperatorType, ConditionOperatorType, FilterType, FilterRHSType, ListOptionsType, ListResponseType, ReadResponseType, CreateUpdateResponseType, DeleteResponseType, CountResponseType, AggregationType, MetricFieldType, MetricOptionsType, MetricResponseType, PivotHeaderItemType, PivotResponseDataType, PivotOptionsType, PivotResponseType, DraftResponseType, FieldsResponseType, FetchFieldOptionType, FetchFieldResponseType, FileUploadRequestType, FileUploadResponseType, FileDownloadResponseType, } from './types/common';
5
5
  //# sourceMappingURL=api.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../sdk/api.types.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGhF,YAAY,EAEV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EAGR,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,EACV,aAAa,EAGb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAGjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAGlB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAGjB,iBAAiB,EAGjB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../sdk/api.types.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG7F,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGhF,YAAY,EAEV,iBAAiB,EACjB,cAAc,EACd,QAAQ,EAGR,aAAa,EACb,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,UAAU,EACV,aAAa,EAGb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EAGjB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAGlB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EAGjB,iBAAiB,EAGjB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EAGtB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC"}
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-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;
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-BnVxSHAm.cjs"),W=require("./constants-QX2RX-wu.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-BULEEaCP.js";
8
- import { c as me, A as be } from "./constants-CYJih7y4.js";
7
+ import { c as oe, g as H } from "./client-CMERmrC-.js";
8
+ import { c as me, A as be } from "./constants-ConHc1oS.js";
9
9
  const M = {
10
10
  sessionEndpoint: "/api/id",
11
11
  providers: {
@@ -1,4 +1,4 @@
1
- import type { ListOptionsType, CreateUpdateResponseType, DeleteResponseType, MetricOptionsType, MetricResponseType, PivotOptionsType, PivotResponseType, DraftResponseType } from "../../types/common";
1
+ import type { ListOptionsType, CreateUpdateResponseType, DeleteResponseType, MetricOptionsType, MetricResponseType, PivotOptionsType, PivotResponseType, DraftResponseType, FileUploadRequestType, FileUploadResponseType, FileDownloadResponseType, AttachmentViewType } from "../../types/common";
2
2
  import type { SystemFields } from "../../types/base-fields";
3
3
  import { type ItemType } from "./Item";
4
4
  import { BaseField } from "../fields/BaseField";
@@ -30,6 +30,10 @@ export declare abstract class BaseBdo<TEntity extends Record<string, unknown>, T
30
30
  readonly _modified_by: UserField;
31
31
  readonly _version: StringField;
32
32
  readonly _m_version: StringField;
33
+ /**
34
+ * Get the Business Object ID for API calls
35
+ */
36
+ getBoId(): string;
33
37
  /**
34
38
  * Whether fields have been bound to this BDO
35
39
  */
@@ -134,5 +138,21 @@ export declare abstract class BaseBdo<TEntity extends Record<string, unknown>, T
134
138
  * Get pivot table data
135
139
  */
136
140
  protected pivot(options: Omit<PivotOptionsType, "Type">): Promise<PivotResponseType>;
141
+ /**
142
+ * Get signed upload URLs for file/image attachments
143
+ */
144
+ protected getUploadUrl(instanceId: string, fieldId: string, files: FileUploadRequestType[]): Promise<FileUploadResponseType[]>;
145
+ /**
146
+ * Get signed download URL for a single attachment
147
+ */
148
+ protected getDownloadUrl(instanceId: string, fieldId: string, attachmentId: string, viewType?: AttachmentViewType): Promise<FileDownloadResponseType>;
149
+ /**
150
+ * Get signed download URLs for all attachments on a field
151
+ */
152
+ protected getDownloadUrls(instanceId: string, fieldId: string, viewType?: AttachmentViewType): Promise<FileDownloadResponseType[]>;
153
+ /**
154
+ * Delete an attachment
155
+ */
156
+ protected deleteAttachment(instanceId: string, fieldId: string, attachmentId: string): Promise<void>;
137
157
  }
138
158
  //# sourceMappingURL=BaseBdo.d.ts.map
@@ -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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"}
@@ -1,5 +1,6 @@
1
- import type { ValidationResultType, BaseFieldMetaType, EditableFieldAccessorType, ReadonlyFieldAccessorType, FieldAccessorType } from "./types";
1
+ import type { ValidationResultType, BaseFieldMetaType, EditableFieldAccessorType, ReadonlyFieldAccessorType, FieldAccessorType, EditableImageFieldAccessorType, ReadonlyImageFieldAccessorType, EditableFileFieldAccessorType, ReadonlyFileFieldAccessorType } from "./types";
2
2
  import type { BaseField } from "../fields/BaseField";
3
+ import type { ImageFieldType, FileFieldType } from "../../types/base-fields";
3
4
  /**
4
5
  * Interface for BDO that Item needs
5
6
  */
@@ -7,19 +8,32 @@ interface BdoLike {
7
8
  getFields(): Record<string, BaseField<unknown>>;
8
9
  hasMetadata(): boolean;
9
10
  validateFieldExpression(fieldId: string, value: unknown, allValues: Record<string, unknown>): ValidationResultType;
11
+ getBoId(): string;
10
12
  }
11
13
  export type { EditableFieldAccessorType, ReadonlyFieldAccessorType, FieldAccessorType, BaseFieldMetaType };
14
+ /**
15
+ * Resolve editable accessor type — specialized for File/Image fields
16
+ */
17
+ type ResolveEditableAccessor<T> = [
18
+ T
19
+ ] extends [ImageFieldType] ? EditableImageFieldAccessorType : [T] extends [FileFieldType] ? EditableFileFieldAccessorType : EditableFieldAccessorType<T>;
20
+ /**
21
+ * Resolve readonly accessor type — specialized for File/Image fields
22
+ */
23
+ type ResolveReadonlyAccessor<T> = [
24
+ T
25
+ ] extends [ImageFieldType] ? ReadonlyImageFieldAccessorType : [T] extends [FileFieldType] ? ReadonlyFileFieldAccessorType : ReadonlyFieldAccessorType<T>;
12
26
  /**
13
27
  * Create editable accessor type for each field in TEditable
14
28
  */
15
29
  type EditableAccessors<T> = {
16
- [K in keyof T as K extends "_id" ? never : K]: EditableFieldAccessorType<T[K]>;
30
+ [K in keyof T as K extends "_id" ? never : K]: ResolveEditableAccessor<T[K]>;
17
31
  };
18
32
  /**
19
33
  * Create readonly accessor type for each field in TReadonly
20
34
  */
21
35
  type ReadonlyAccessors<T> = {
22
- [K in keyof T as K extends "_id" ? never : K]: ReadonlyFieldAccessorType<T[K]>;
36
+ [K in keyof T as K extends "_id" ? never : K]: ResolveReadonlyAccessor<T[K]>;
23
37
  };
24
38
  /**
25
39
  * Item type with typed field accessors and direct _id access
@@ -50,6 +64,11 @@ export declare class Item<T extends Record<string, unknown>> {
50
64
  private readonly _bdo;
51
65
  private readonly _accessorCache;
52
66
  constructor(bdo: BdoLike, data: Partial<T>);
67
+ /**
68
+ * Require instanceId or throw.
69
+ * TODO: Support create flow via draftInteraction to get temp _id
70
+ */
71
+ private _requireInstanceId;
53
72
  /**
54
73
  * Get or create a field accessor for the given field.
55
74
  * Editable fields get set(), readonly fields do not.
@@ -1 +1 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/core/Item.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,UAAU,OAAO;IACf,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,WAAW,IAAI,OAAO,CAAC;IACvB,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,oBAAoB,CAAC;CACzB;AAGD,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAE3G;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/E,CAAC;AAEF;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/E,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAClB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAC7B,iBAAiB,CAAC,SAAS,CAAC,GAC5B,iBAAiB,CAAC,SAAS,CAAC,GAC5B;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3B;;;;;;;;;;;;;;GAcG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;gBAEzE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IA+E1C;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgFpB;;OAEG;IACH,QAAQ,IAAI,oBAAoB;IAqChC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;CAGrB"}
1
+ {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/core/Item.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAC;AAYjC;;GAEG;AACH,UAAU,OAAO;IACf,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,WAAW,IAAI,OAAO,CAAC;IACvB,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,oBAAoB,CAAC;IACxB,OAAO,IAAI,MAAM,CAAC;CACnB;AAGD,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,CAAC;AAE3G;;GAEG;AACH,KAAK,uBAAuB,CAAC,CAAC,IAC5B;IAAC,CAAC;CAAC,SAAS,CAAC,cAAc,CAAC,GACxB,8BAA8B,GAC9B,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,GACzB,6BAA6B,GAC7B,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,KAAK,uBAAuB,CAAC,CAAC,IAC5B;IAAC,CAAC;CAAC,SAAS,CAAC,cAAc,CAAC,GACxB,8BAA8B,GAC9B,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,GACzB,6BAA6B,GAC7B,yBAAyB,CAAC,CAAC,CAAC,CAAC;AAErC;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,CAClB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,IAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAC7B,iBAAiB,CAAC,SAAS,CAAC,GAC5B,iBAAiB,CAAC,SAAS,CAAC,GAC5B;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3B;;;;;;;;;;;;;;GAcG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;gBAEzE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAgF1C;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA6PpB;;OAEG;IACH,QAAQ,IAAI,oBAAoB;IAqChC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;CAGrB"}
@@ -122,6 +122,10 @@ export interface FileFieldMetaType extends BaseFieldMetaType {
122
122
  Type: "File";
123
123
  Constraint?: BaseConstraintType;
124
124
  }
125
+ export interface ImageFieldMetaType extends BaseFieldMetaType {
126
+ Type: "Image";
127
+ Constraint?: BaseConstraintType;
128
+ }
125
129
  /** Base runtime accessor — every field accessor has these */
126
130
  export interface BaseFieldAccessorType<T> {
127
131
  readonly label: string;
@@ -141,6 +145,30 @@ export interface EditableFieldAccessorType<T> extends BaseFieldAccessorType<T> {
141
145
  export type ReadonlyFieldAccessorType<T> = BaseFieldAccessorType<T>;
142
146
  /** Union of editable or readonly accessor */
143
147
  export type FieldAccessorType<T> = EditableFieldAccessorType<T> | ReadonlyFieldAccessorType<T>;
148
+ import type { FileType, ImageFieldType, FileFieldType } from "../../types/base-fields";
149
+ import type { FileDownloadResponseType, AttachmentViewType } from "../../types/common";
150
+ /** Editable Image field accessor — adds upload, download, delete */
151
+ export interface EditableImageFieldAccessorType extends EditableFieldAccessorType<ImageFieldType> {
152
+ upload(file: File): Promise<FileType>;
153
+ getDownloadUrl(viewType?: AttachmentViewType): Promise<FileDownloadResponseType>;
154
+ deleteAttachment(): Promise<void>;
155
+ }
156
+ /** Readonly Image field accessor — download only */
157
+ export interface ReadonlyImageFieldAccessorType extends ReadonlyFieldAccessorType<ImageFieldType> {
158
+ getDownloadUrl(viewType?: AttachmentViewType): Promise<FileDownloadResponseType>;
159
+ }
160
+ /** Editable File field accessor — adds upload, download, delete */
161
+ export interface EditableFileFieldAccessorType extends EditableFieldAccessorType<FileFieldType> {
162
+ upload(files: File[]): Promise<FileType[]>;
163
+ getDownloadUrl(attachmentId: string, viewType?: AttachmentViewType): Promise<FileDownloadResponseType>;
164
+ getDownloadUrls(viewType?: AttachmentViewType): Promise<FileDownloadResponseType[]>;
165
+ deleteAttachment(attachmentId: string): Promise<void>;
166
+ }
167
+ /** Readonly File field accessor — download only */
168
+ export interface ReadonlyFileFieldAccessorType extends ReadonlyFieldAccessorType<FileFieldType> {
169
+ getDownloadUrl(attachmentId: string, viewType?: AttachmentViewType): Promise<FileDownloadResponseType>;
170
+ getDownloadUrls(viewType?: AttachmentViewType): Promise<FileDownloadResponseType[]>;
171
+ }
144
172
  /**
145
173
  * Option for select fields
146
174
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/core/types.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ import { BaseField } from "./BaseField";
6
6
  *
7
7
  * @example
8
8
  * ```typescript
9
- * readonly Attachment = new FileField({
10
- * _id: "Attachment", Name: "Attachment", Type: "File",
9
+ * readonly Attachments = new FileField({
10
+ * _id: "Attachments", Name: "Attachments", Type: "File",
11
11
  * });
12
12
  * ```
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FileField.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/fields/FileField.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;GASG;AACH,qBAAa,SAAU,SAAQ,SAAS,CAAC,aAAa,CAAC;gBACzC,IAAI,EAAE,iBAAiB;IAInC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,oBAAoB;CAcjE"}
1
+ {"version":3,"file":"FileField.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/fields/FileField.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;GASG;AACH,qBAAa,SAAU,SAAQ,SAAS,CAAC,aAAa,CAAC;gBACzC,IAAI,EAAE,iBAAiB;IAInC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,GAAG,oBAAoB;CAuBjE"}
@@ -0,0 +1,18 @@
1
+ import type { ImageFieldType } from "../../types/base-fields";
2
+ import type { ImageFieldMetaType, ValidationResultType } from "../core/types";
3
+ import { BaseField } from "./BaseField";
4
+ /**
5
+ * Field definition for single image attachment fields
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * readonly Avatar = new ImageField({
10
+ * _id: "Avatar", Name: "Avatar", Type: "Image",
11
+ * });
12
+ * ```
13
+ */
14
+ export declare class ImageField extends BaseField<ImageFieldType> {
15
+ constructor(meta: ImageFieldMetaType);
16
+ validate(value: ImageFieldType | undefined): ValidationResultType;
17
+ }
18
+ //# sourceMappingURL=ImageField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageField.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/fields/ImageField.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,SAAS,CAAC,cAAc,CAAC;gBAC3C,IAAI,EAAE,kBAAkB;IAIpC,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,oBAAoB;CAqBlE"}
@@ -0,0 +1,9 @@
1
+ /** Supported image extensions — matches backend SupportFileExtensions.IMAGE_EXTENSIONS */
2
+ export declare const IMAGE_EXTENSIONS: Set<string>;
3
+ /** Supported file extensions — matches backend SupportFileExtensions.FILE_EXTENSIONS */
4
+ export declare const FILE_EXTENSIONS: Set<string>;
5
+ /** Extract and normalize file extension from a filename. Returns lowercase without dot. */
6
+ export declare function extractFileExtension(fileName: string): string;
7
+ /** Validate file extension against backend whitelist. Throws on invalid. */
8
+ export declare function validateFileExtension(fileName: string, fieldType: "File" | "Image"): void;
9
+ //# sourceMappingURL=attachment-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment-constants.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/fields/attachment-constants.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,aAW3B,CAAC;AAEH,wFAAwF;AACxF,eAAO,MAAM,eAAe,aAiC1B,CAAC;AAEH,2FAA2F;AAC3F,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,OAAO,GAC1B,IAAI,CAUN"}
@@ -11,5 +11,6 @@ export { ObjectField } from "./ObjectField";
11
11
  export { TextField } from "./TextField";
12
12
  export { UserField } from "./UserField";
13
13
  export { FileField } from "./FileField";
14
+ export { ImageField } from "./ImageField";
14
15
  export { TextAreaField } from "./TextAreaField";
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/fields/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sdk/bdo/fields/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export { BaseBdo, type SystemFields } from "./core/BaseBdo";
2
2
  export { Item, type ItemType, type FieldAccessorType, type EditableFieldAccessorType, type ReadonlyFieldAccessorType, } from "./core/Item";
3
- export type { BdoMetaType, ValidationResultType, SelectOptionType, BaseFieldMetaType, BaseConstraintType, StringFieldMetaType, TextFieldMetaType, NumberFieldMetaType, BooleanFieldMetaType, DateFieldMetaType, DateTimeFieldMetaType, SelectFieldMetaType, ReferenceFieldMetaType, UserFieldMetaType, ArrayFieldMetaType, ObjectFieldMetaType, FileFieldMetaType, BaseFieldAccessorType, } from "./core/types";
4
- export { BaseField, StringField, NumberField, BooleanField, DateTimeField, DateField, TextField, TextAreaField, SelectField, ReferenceField, ArrayField, ObjectField, UserField, FileField, } from "./fields";
3
+ export type { BdoMetaType, ValidationResultType, SelectOptionType, BaseFieldMetaType, BaseConstraintType, StringFieldMetaType, TextFieldMetaType, NumberFieldMetaType, BooleanFieldMetaType, DateFieldMetaType, DateTimeFieldMetaType, SelectFieldMetaType, ReferenceFieldMetaType, UserFieldMetaType, ArrayFieldMetaType, ObjectFieldMetaType, FileFieldMetaType, ImageFieldMetaType, BaseFieldAccessorType, EditableImageFieldAccessorType, ReadonlyImageFieldAccessorType, EditableFileFieldAccessorType, ReadonlyFileFieldAccessorType, } from "./core/types";
4
+ export { BaseField, StringField, NumberField, BooleanField, DateTimeField, DateField, TextField, TextAreaField, SelectField, ReferenceField, ArrayField, ObjectField, UserField, FileField, ImageField, } from "./fields";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/bdo/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,IAAI,EACJ,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sdk/bdo/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,IAAI,EACJ,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,UAAU,CAAC"}
package/dist/bdo.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var N=Object.defineProperty;var v=(r,e,t)=>e in r?N(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var l=(r,e,t)=>v(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"),F=require("./constants-D0J69if5.cjs");class m{constructor(e,t){l(this,"_data");l(this,"_bdo");l(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 h=s.validate(this._data[e]);if(!h.valid)return h}return this._bdo.hasMetadata()?this._bdo.validateFieldExpression(e,this._data[e],this.toJSON()):{valid:!0,errors:[]}},o=h=>{const _=this._data[e];return _??h};let c;return i?c={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],getOrDefault:o,validate:n}:c={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],getOrDefault:o,set:h=>{this._data[e]=h},validate:n},this._accessorCache.set(e,c),c}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],o=i.validate(n);if(!o.valid){t.push(...o.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 b 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 g 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 y 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 x={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 w(){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 O(r,e);case"BinaryExpression":return E(r,e);case"LogicalExpression":return A(r,e);case"CallExpression":return B(r,e);case"MemberExpression":return T(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 O(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 E(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 A(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 B(r,e){if(!r.Callee)throw new Error("CallExpression requires a Callee");const t=x[r.Callee];if(!t)throw new Error(`Unknown function: ${r.Callee}`);const s=(r.Arguments??[]).map(a=>f(a,e));return t(...s)}function T(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 S{constructor(){l(this,"fieldRules",new Map);l(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 o of i.Validation)if(typeof o=="object"&&o.ExpressionTree)n.push(o);else if(typeof o=="string"){const c=(s=(t=e.Rules)==null?void 0:t.Validation)==null?void 0:s[o];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:w()};for(const n of a)try{if(!f(n.ExpressionTree,i))return{valid:!1,errors:[n.Message||`Validation failed: ${n.Name||n.Id}`]}}catch(o){console.warn(`Expression evaluation failed for rule ${n.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 M{constructor(){l(this,"_id",new b({_id:"_id",Name:"ID",Type:"String",ReadOnly:!0}));l(this,"_created_at",new g({_id:"_created_at",Name:"Created At",Type:"DateTime",ReadOnly:!0}));l(this,"_modified_at",new g({_id:"_modified_at",Name:"Modified At",Type:"DateTime",ReadOnly:!0}));l(this,"_created_by",new y({_id:"_created_by",Name:"Created By",Type:"User",ReadOnly:!0}));l(this,"_modified_by",new y({_id:"_modified_by",Name:"Modified By",Type:"User",ReadOnly:!0}));l(this,"_version",new b({_id:"_version",Name:"Version",Type:"String",ReadOnly:!0}));l(this,"_m_version",new b({_id:"_m_version",Name:"Metadata Version",Type:"String",ReadOnly:!0}));l(this,"_fieldsBound",!1);l(this,"_fieldsCache",null);l(this,"_expressionEngine",new S)}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 R 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 C 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 D 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 V 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 j 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 $ 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 U 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 p 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 P 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=F.SystemField;exports.ArrayField=$;exports.BaseBdo=M;exports.BooleanField=C;exports.DateField=D;exports.DateTimeField=g;exports.FileField=P;exports.NumberField=R;exports.ObjectField=U;exports.ReferenceField=j;exports.SelectField=V;exports.StringField=b;exports.TextAreaField=p;exports.TextField=p;exports.UserField=y;
1
+ "use strict";var U=Object.defineProperty;var B=(r,e,t)=>e in r?U(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var c=(r,e,t)=>B(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./client-BnVxSHAm.cjs"),m=require("./BaseField-Drp0-OxL.cjs"),C=require("./constants-QX2RX-wu.cjs"),D=new Set(["jpg","jpeg","png","gif","webp","bmp","tiff","tif","heic","heif"]),M=new Set(["jpg","jpeg","png","gif","webp","bmp","tiff","tif","heic","heif","mp4","mov","avi","webm","mkv","m4v","wmv","flv","pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","zip"]);function x(r){if(!r.includes("."))return"";const e=r.split(".");return(e[e.length-1]??"").toLowerCase()}function S(r,e){const t=x(r),s=e==="Image"?D:M;if(!t||!s.has(t)){const a=[...s].sort().join(", ");throw new Error(`File "${r}" has unsupported extension "${t||"(none)"}". Supported for ${e} fields: ${a}`)}}class w{constructor(e,t){c(this,"_data");c(this,"_bdo");c(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"||a==="_requireInstanceId"||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)}}})}_requireInstanceId(){const e=this._data._id;if(!e)throw new Error("Cannot perform attachment operation: item has no _id. Save the item first.");return e}_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,u=()=>{if(s){const f=s.validate(this._data[e]);if(!f.valid)return f}return this._bdo.hasMetadata()?this._bdo.validateFieldExpression(e,this._data[e],this.toJSON()):{valid:!0,errors:[]}},h=f=>{const g=this._data[e];return g??f};let p;if(i?p={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],getOrDefault:h,validate:u}:p={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],getOrDefault:h,set:f=>{this._data[e]=f},validate:u},a.Type==="Image"||a.Type==="File"){const f=this._bdo.getBoId(),g=p;a.Type==="Image"?(g.getDownloadUrl=async o=>{const d=this._requireInstanceId(),_=this._data[e];if(!(_!=null&&_._id))throw new Error(`${e} has no image to download`);return n.api(f).getDownloadUrl(d,e,_._id,o)},i||(g.upload=async o=>{S(o.name,"Image");const d=this._requireInstanceId(),_={FileName:o.name,Size:o.size,FileExtension:x(o.name)},[l]=await n.api(f).getUploadUrl(d,e,[_]);await fetch(l.UploadUrl.URL,{method:"PUT",headers:{"Content-Type":l.ContentType},body:o});const v={_id:l._id,_name:l._name,FileName:l.FileName,FileExtension:l.FileExtension,Size:l.Size,ContentType:l.ContentType};return this._data[e]=v,v},g.deleteAttachment=async()=>{const o=this._requireInstanceId(),d=this._data[e];if(!(d!=null&&d._id))throw new Error(`${e} has no image to delete`);await n.api(f).deleteAttachment(o,e,d._id),this._data[e]=null})):(g.getDownloadUrl=async(o,d)=>{const _=this._requireInstanceId();return n.api(f).getDownloadUrl(_,e,o,d)},g.getDownloadUrls=async o=>{const d=this._requireInstanceId();return n.api(f).getDownloadUrls(d,e,o)},i||(g.upload=async o=>{for(const N of o)S(N.name,"File");const d=this._requireInstanceId(),_=o.map(N=>({FileName:N.name,Size:N.size,FileExtension:x(N.name)})),l=await n.api(f).getUploadUrl(d,e,_),v=await Promise.all(o.map(async(N,y)=>(await fetch(l[y].UploadUrl.URL,{method:"PUT",headers:{"Content-Type":l[y].ContentType},body:N}),{_id:l[y]._id,_name:l[y]._name,FileName:l[y].FileName,FileExtension:l[y].FileExtension,Size:l[y].Size,ContentType:l[y].ContentType}))),A=this._data[e]??[];return this._data[e]=[...A,...v],v},g.deleteAttachment=async o=>{const d=this._requireInstanceId();await n.api(f).deleteAttachment(d,e,o);const _=this._data[e]??[];this._data[e]=_.filter(l=>l._id!==o)}))}return this._accessorCache.set(e,p),p}validate(){const e=this._bdo.getFields(),t=[],s=this.toJSON();for(const[a,i]of Object.entries(e)){if(i.readOnly)continue;const u=this._data[a],h=i.validate(u);if(!h.valid){t.push(...h.errors);continue}if(this._bdo.hasMetadata()){const p=this._bdo.validateFieldExpression(a,u,s);p.valid||t.push(...p.errors)}}return{valid:t.length===0,errors:t}}toJSON(){return{...this._data}}}class F extends m.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 E extends m.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 T extends m.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 R={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 I(){const r=new Date;return{NOW:r,TODAY:new Date(r.getFullYear(),r.getMonth(),r.getDate()),CURRENT_USER:{Id:"",Email:"",FirstName:"",LastName:""}}}function b(r,e){var t;switch(r.Type){case"Literal":return r.Value;case"Identifier":return e.formValues[r.Name];case"SystemIdentifier":return $(r,e);case"BinaryExpression":return j(r,e);case"LogicalExpression":return V(r,e);case"CallExpression":return P(r,e);case"MemberExpression":return q(r,e);case"AssignmentExpression":return((t=r.Arguments)==null?void 0:t.length)===1?b(r.Arguments[0],e):void 0;default:throw new Error(`Unsupported expression type: ${r.Type}`)}}function $(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 j(r,e){if(!r.Arguments||r.Arguments.length<2)throw new Error("BinaryExpression requires 2 arguments");const[t,s]=r.Arguments,a=b(t,e),i=b(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 V(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=>!!b(s,e));case"OR":return t.some(s=>!!b(s,e));case"!":return!b(t[0],e);default:throw new Error(`Unsupported logical operator: ${r.Operator}`)}}function P(r,e){if(!r.Callee)throw new Error("CallExpression requires a Callee");const t=R[r.Callee];if(!t)throw new Error(`Unknown function: ${r.Callee}`);const s=(r.Arguments??[]).map(a=>b(a,e));return t(...s)}function q(r,e){var a,i;if(!((a=r.Arguments)!=null&&a.length))return;const t=b(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 L{constructor(){c(this,"fieldRules",new Map);c(this,"metadata",null)}loadMetadata(e){var t,s;this.metadata=e,this.fieldRules.clear();for(const[a,i]of Object.entries(e.Fields)){const u=[];if(i.Validation&&Array.isArray(i.Validation)){for(const h of i.Validation)if(typeof h=="object"&&h.ExpressionTree)u.push(h);else if(typeof h=="string"){const p=(s=(t=e.Rules)==null?void 0:t.Validation)==null?void 0:s[h];p&&u.push(p)}}u.length>0&&this.fieldRules.set(a,u)}}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:I()};for(const u of a)try{if(!b(u.ExpressionTree,i))return{valid:!1,errors:[u.Message||`Validation failed: ${u.Name||u.Id}`]}}catch(h){console.warn(`Expression evaluation failed for rule ${u.Id}:`,h)}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 Y{constructor(){c(this,"_id",new F({_id:"_id",Name:"ID",Type:"String",ReadOnly:!0}));c(this,"_created_at",new E({_id:"_created_at",Name:"Created At",Type:"DateTime",ReadOnly:!0}));c(this,"_modified_at",new E({_id:"_modified_at",Name:"Modified At",Type:"DateTime",ReadOnly:!0}));c(this,"_created_by",new T({_id:"_created_by",Name:"Created By",Type:"User",ReadOnly:!0}));c(this,"_modified_by",new T({_id:"_modified_by",Name:"Modified By",Type:"User",ReadOnly:!0}));c(this,"_version",new F({_id:"_version",Name:"Version",Type:"String",ReadOnly:!0}));c(this,"_m_version",new F({_id:"_m_version",Name:"Metadata Version",Type:"String",ReadOnly:!0}));c(this,"_fieldsBound",!1);c(this,"_fieldsCache",null);c(this,"_expressionEngine",new L)}getBoId(){return this.meta._id}getFields(){if(this._fieldsCache)return this._fieldsCache;const e={};for(const t of Object.keys(this)){const s=this[t];s instanceof m.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 n.api(this.meta._id).get(e);return new w(this,t)}async list(e){return(await n.api(this.meta._id).list(e)).Data.map(s=>new w(this,s))}async count(e){return(await n.api(this.meta._id).count(e)).Count}async create(e){const t=await n.api(this.meta._id).create(e);return new w(this,{...e,_id:t._id})}async update(e,t){return n.api(this.meta._id).update(e,t)}async delete(e){return n.api(this.meta._id).delete(e)}async draft(e){return n.api(this.meta._id).draft(e)}async draftInteraction(e){return n.api(this.meta._id).draftInteraction(e)}createItem(e){return new w(this,e??{})}async draftUpdate(e,t){return n.api(this.meta._id).draftUpdate(e,t)}async draftPatch(e,t){return n.api(this.meta._id).draftPatch(e,t)}async metric(e){return n.api(this.meta._id).metric(e)}async pivot(e){return n.api(this.meta._id).pivot(e)}async getUploadUrl(e,t,s){return n.api(this.meta._id).getUploadUrl(e,t,s)}async getDownloadUrl(e,t,s,a){return n.api(this.meta._id).getDownloadUrl(e,t,s,a)}async getDownloadUrls(e,t,s){return n.api(this.meta._id).getDownloadUrls(e,t,s)}async deleteAttachment(e,t,s){return n.api(this.meta._id).deleteAttachment(e,t,s)}}class z extends m.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 J extends m.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 k extends m.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 G extends m.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 n.api(this._parentBoId).fetchField(e??"new",this.id)).map(s=>({value:s.Value,label:s.Label}))}}class H extends m.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 n.api(this._parentBoId).fetchField(e??"new",this.id)}}class X extends m.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 K extends m.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 O extends m.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 W extends m.BaseField{constructor(e){super(e)}validate(e){if(e==null)return{valid:!0,errors:[]};if(!Array.isArray(e))return{valid:!1,errors:[`${this.label} must be an array of file objects`]};for(const t of e)if(!t||typeof t!="object"||!t._id)return{valid:!1,errors:[`Each file in ${this.label} must have an _id`]};return{valid:!0,errors:[]}}}class Q extends m.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 image object`]}:!e._id||!e.FileName?{valid:!1,errors:[`${this.label} must have _id and FileName`]}:{valid:!0,errors:[]}}}exports.BaseField=m.BaseField;exports.SystemField=C.SystemField;exports.ArrayField=X;exports.BaseBdo=Y;exports.BooleanField=J;exports.DateField=k;exports.DateTimeField=E;exports.FileField=W;exports.ImageField=Q;exports.NumberField=z;exports.ObjectField=K;exports.ReferenceField=H;exports.SelectField=G;exports.StringField=F;exports.TextAreaField=O;exports.TextField=O;exports.UserField=T;
package/dist/bdo.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { BaseBdo } from "./bdo/core/BaseBdo";
2
- export { BaseField, StringField, NumberField, BooleanField, DateTimeField, DateField, TextField, TextAreaField, SelectField, ReferenceField, ArrayField, ObjectField, UserField, FileField, } from "./bdo/fields";
2
+ export { BaseField, StringField, NumberField, BooleanField, DateTimeField, DateField, TextField, TextAreaField, SelectField, ReferenceField, ArrayField, ObjectField, UserField, FileField, ImageField, } from "./bdo/fields";
3
3
  export { SystemField } from "./types/constants";
4
4
  //# sourceMappingURL=bdo.d.ts.map
package/dist/bdo.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bdo.d.ts","sourceRoot":"","sources":["../sdk/bdo.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"bdo.d.ts","sourceRoot":"","sources":["../sdk/bdo.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EACL,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}