@pitcher/canvas-ui 2025.12.16-082908-beta → 2025.12.16-084534-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/canvas-ui.js CHANGED
@@ -87815,6 +87815,49 @@ function crmSmartDeleteObjects(payload) {
87815
87815
  }
87816
87816
  return highLevelApi.API.request("crm_smart_delete_objects", payload);
87817
87817
  }
87818
+ function crmCreate(payload) {
87819
+ if (!payload) {
87820
+ return Promise.reject(new Error("Payload is required"));
87821
+ }
87822
+ if (!payload.sobject || typeof payload.sobject !== "string" || payload.sobject.trim() === "") {
87823
+ return Promise.reject(new Error("sobject is required and must be a non-empty string"));
87824
+ }
87825
+ if (!payload.records || !Array.isArray(payload.records) || payload.records.length === 0) {
87826
+ return Promise.reject(new Error("records is required and must be a non-empty array"));
87827
+ }
87828
+ for (let i = 0; i < payload.records.length; i++) {
87829
+ const record = payload.records[i];
87830
+ if (!record || typeof record !== "object" || Array.isArray(record)) {
87831
+ return Promise.reject(
87832
+ new Error(`records contains invalid element at index ${i}. All records must be valid objects.`)
87833
+ );
87834
+ }
87835
+ }
87836
+ return highLevelApi.API.request("crm_create", payload);
87837
+ }
87838
+ function crmUpsert(payload) {
87839
+ if (!payload) {
87840
+ return Promise.reject(new Error("Payload is required"));
87841
+ }
87842
+ if (!payload.sobject || typeof payload.sobject !== "string" || payload.sobject.trim() === "") {
87843
+ return Promise.reject(new Error("sobject is required and must be a non-empty string"));
87844
+ }
87845
+ if (!payload.records || !Array.isArray(payload.records) || payload.records.length === 0) {
87846
+ return Promise.reject(new Error("records is required and must be a non-empty array"));
87847
+ }
87848
+ if (!payload.external_id_field || typeof payload.external_id_field !== "string" || payload.external_id_field.trim() === "") {
87849
+ return Promise.reject(new Error("external_id_field is required and must be a non-empty string"));
87850
+ }
87851
+ for (let i = 0; i < payload.records.length; i++) {
87852
+ const record = payload.records[i];
87853
+ if (!record || typeof record !== "object" || Array.isArray(record)) {
87854
+ return Promise.reject(
87855
+ new Error(`records contains invalid element at index ${i}. All records must be valid objects.`)
87856
+ );
87857
+ }
87858
+ }
87859
+ return highLevelApi.API.request("crm_upsert", payload);
87860
+ }
87818
87861
 
87819
87862
  function getFolders(payload) {
87820
87863
  return this.API.request("get_folders", payload);
@@ -87911,12 +87954,14 @@ const modules = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
87911
87954
  createFavorite,
87912
87955
  createFile,
87913
87956
  createFolder,
87957
+ crmCreate,
87914
87958
  crmQuery,
87915
87959
  crmSmartDeleteObjects,
87916
87960
  crmSmartObjectMetadata,
87917
87961
  crmSmartObjectValidationRules,
87918
87962
  crmSmartQuery,
87919
87963
  crmSmartUpsertObjects,
87964
+ crmUpsert,
87920
87965
  deleteCanvas,
87921
87966
  deleteEvent,
87922
87967
  deleteFavorite,
@@ -88505,6 +88550,15 @@ function getTopPitcherWindow(current = window) {
88505
88550
  }
88506
88551
 
88507
88552
  const TRUNCATE_LENGTH_TRIGGER = 10;
88553
+ const RAW_PAYLOAD_METHODS = [
88554
+ "crm_create",
88555
+ "crm_upsert",
88556
+ "crm_smart_query",
88557
+ "crm_smart_object_metadata",
88558
+ "crm_smart_object_validation_rules",
88559
+ "crm_smart_upsert_objects",
88560
+ "crm_smart_delete_objects"
88561
+ ];
88508
88562
  function updateOnlineHandlersEnv(env) {
88509
88563
  env && setEnv(env);
88510
88564
  }
@@ -88570,7 +88624,8 @@ class LowLevelApi extends EventEmitter {
88570
88624
  throw new Error("unsupported response status");
88571
88625
  }
88572
88626
  };
88573
- const payload = cloneDeep(snakeCaseKeys(body));
88627
+ const shouldSkipSnakeCase = RAW_PAYLOAD_METHODS.includes(type);
88628
+ const payload = shouldSkipSnakeCase ? cloneDeep(body) : cloneDeep(snakeCaseKeys(body));
88574
88629
  this.callbacks[id] = {
88575
88630
  dispatched_at: Date.now(),
88576
88631
  type,