{"version":3,"file":"svelte.mjs","sources":["../../../src/adapters/svelte/vormiaStore.js"],"sourcesContent":["import { writable } from 'svelte/store';\nimport { getGlobalVormiaClient } from '../../client/createVormiaClient';\nimport { VormiaError } from '../../client/utils/VormiaError';\n\nexport function createVormiaStore(initialOptions = {}) {\n  const client = getGlobalVormiaClient();\n  const { subscribe, set, update } = writable({\n    data: null,\n    error: null,\n    isLoading: false,\n    isError: false,\n    isSuccess: false,\n  });\n\n  async function fetchData(options = {}) {\n    const mergedOptions = { ...initialOptions, ...options };\n    const { \n      endpoint, \n      method = 'GET', \n      params, \n      data: bodyData, \n      headers, \n      transform, \n      onSuccess, \n      onError \n    } = mergedOptions;\n\n    update(state => ({ ...state, isLoading: true, isError: false, isSuccess: false }));\n\n    try {\n      const config = {\n        method,\n        params: method === 'GET' ? params : undefined,\n        data: method !== 'GET' ? (bodyData || params) : undefined,\n        headers\n      };\n\n      const response = await client.request({\n        url: endpoint,\n        ...config\n      });\n\n      let result = response.data;\n\n      if (transform) {\n        result = transform(result);\n      }\n\n      const newState = {\n        data: result,\n        error: null,\n        isLoading: false,\n        isError: false,\n        isSuccess: true\n      };\n\n      set(newState);\n      \n      if (onSuccess) {\n        onSuccess(newState);\n      }\n\n      return newState;\n    } catch (err) {\n      const errorMessage = err instanceof Error ? err.message : 'An unknown error occurred';\n      const status = err?.response?.status;\n      const errorData = err?.response?.data;\n      \n      const errorObj = err instanceof VormiaError \n        ? err \n        : new VormiaError(errorMessage, status, errorData);\n\n      const errorState = {\n        data: null,\n        error: errorObj,\n        isLoading: false,\n        isError: true,\n        isSuccess: false\n      };\n\n      set(errorState);\n      \n      if (onError) {\n        onError(errorObj);\n      }\n\n      throw errorObj;\n    }\n  }\n\n  if (initialOptions.immediate !== false) {\n    fetchData();\n  }\n\n  return {\n    subscribe,\n    fetch: fetchData,\n    refetch: fetchData,\n    set,\n    update\n  };\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,kBAAkB,iBAAiB,IAAI;AACrD,QAAM,SAAS,sBAAqB;AACpC,QAAM,EAAE,WAAW,KAAK,OAAM,IAAK,SAAS;AAAA,IAC1C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,EACf,CAAG;AAED,iBAAe,UAAU,UAAU,IAAI;;AACrC,UAAM,gBAAgB,EAAE,GAAG,gBAAgB,GAAG,QAAO;AACrD,UAAM;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,IAAQ;AAEJ,WAAO,YAAU,EAAE,GAAG,OAAO,WAAW,MAAM,SAAS,OAAO,WAAW,MAAK,EAAG;AAEjF,QAAI;AACF,YAAM,SAAS;AAAA,QACb;AAAA,QACA,QAAQ,WAAW,QAAQ,SAAS;AAAA,QACpC,MAAM,WAAW,QAAS,YAAY,SAAU;AAAA,QAChD;AAAA,MACR;AAEM,YAAM,WAAW,MAAM,OAAO,QAAQ;AAAA,QACpC,KAAK;AAAA,QACL,GAAG;AAAA,MACX,CAAO;AAED,UAAI,SAAS,SAAS;AAEtB,UAAI,WAAW;AACb,iBAAS,UAAU,MAAM;AAAA,MACjC;AAEM,YAAM,WAAW;AAAA,QACf,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS;AAAA,QACT,WAAW;AAAA,MACnB;AAEM,UAAI,QAAQ;AAEZ,UAAI,WAAW;AACb,kBAAU,QAAQ;AAAA,MAC1B;AAEM,aAAO;AAAA,IACb,SAAa,KAAK;AACZ,YAAM,eAAe,eAAe,QAAQ,IAAI,UAAU;AAC1D,YAAM,UAAS,gCAAK,aAAL,mBAAe;AAC9B,YAAM,aAAY,gCAAK,aAAL,mBAAe;AAEjC,YAAM,WAAW,eAAe,cAC5B,MACA,IAAI,YAAY,cAAc,QAAQ,SAAS;AAEnD,YAAM,aAAa;AAAA,QACjB,MAAM;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SAAS;AAAA,QACT,WAAW;AAAA,MACnB;AAEM,UAAI,UAAU;AAEd,UAAI,SAAS;AACX,gBAAQ,QAAQ;AAAA,MACxB;AAEM,YAAM;AAAA,IACZ;AAAA,EACA;AAEE,MAAI,eAAe,cAAc,OAAO;AACtC,cAAS;AAAA,EACb;AAEE,SAAO;AAAA,IACL;AAAA,IACA,OAAO;AAAA,IACP,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EACJ;AACA;"}