@communecter/cocolight-api-client 1.0.51 → 1.0.55

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 (179) hide show
  1. package/dist/401.cocolight-api-client.browser.js +1 -0
  2. package/dist/401.cocolight-api-client.cjs +1 -0
  3. package/dist/401.cocolight-api-client.mjs.js +1 -0
  4. package/dist/588.cocolight-api-client.browser.js +1 -0
  5. package/dist/588.cocolight-api-client.cjs +1 -0
  6. package/dist/588.cocolight-api-client.mjs.js +1 -0
  7. package/dist/593.cocolight-api-client.browser.js +1 -0
  8. package/dist/593.cocolight-api-client.cjs +1 -0
  9. package/dist/593.cocolight-api-client.mjs.js +1 -0
  10. package/dist/839.cocolight-api-client.browser.js +1 -0
  11. package/dist/839.cocolight-api-client.cjs +1 -0
  12. package/dist/839.cocolight-api-client.mjs.js +1 -0
  13. package/dist/cocolight-api-client.browser.js +3 -3
  14. package/dist/cocolight-api-client.cjs +1 -1
  15. package/dist/cocolight-api-client.mjs.js +1 -1
  16. package/dist/cocolight-api-client.vite.mjs.js +1 -1
  17. package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
  18. package/package.json +28 -10
  19. package/src/{Api.js → Api.ts} +99 -91
  20. package/src/{ApiClient.js → ApiClient.ts} +444 -240
  21. package/src/EJSONType.ts +103 -0
  22. package/src/api/{Badge.js → Badge.ts} +56 -45
  23. package/src/api/BaseEntity.ts +3897 -0
  24. package/src/api/Comment.ts +200 -0
  25. package/src/api/{EndpointApi.js → EndpointApi.ts} +365 -299
  26. package/src/api/{EndpointApi.types.d.ts → EndpointApi.types.ts} +166 -9
  27. package/src/api/EntityRegistry.ts +208 -0
  28. package/src/api/Event.ts +332 -0
  29. package/src/api/News.ts +331 -0
  30. package/src/api/{Organization.js → Organization.ts} +155 -119
  31. package/src/api/{Poi.js → Poi.ts} +68 -60
  32. package/src/api/{Project.js → Project.ts} +150 -127
  33. package/src/api/{User.js → User.ts} +321 -256
  34. package/src/api/UserApi.ts +148 -0
  35. package/src/api/serverDataType/Comment.ts +88 -0
  36. package/src/api/serverDataType/Event.ts +80 -0
  37. package/src/api/serverDataType/News.ts +138 -0
  38. package/src/api/serverDataType/Organization.ts +80 -0
  39. package/src/api/serverDataType/Project.ts +71 -0
  40. package/src/api/serverDataType/User.ts +103 -0
  41. package/src/api/serverDataType/common.ts +80 -0
  42. package/src/endpoints.module.ts +2621 -0
  43. package/src/error.ts +86 -0
  44. package/src/index.ts +86 -0
  45. package/src/mixin/UserMixin.ts +4 -0
  46. package/src/types/api-responses.ts +217 -0
  47. package/src/types/entities.ts +22 -0
  48. package/src/types/error-guards.ts +230 -0
  49. package/src/types/index.ts +39 -0
  50. package/src/types/payloads.ts +21 -0
  51. package/src/types/transforms.ts +110 -0
  52. package/src/utils/{FileOfflineStorageStrategy.node.js → FileOfflineStorageStrategy.node.ts} +15 -12
  53. package/src/utils/{FileStorageStrategy.node.js → FileStorageStrategy.node.ts} +17 -14
  54. package/src/utils/MultiServerFileStorageStrategy.node.ts +67 -0
  55. package/src/utils/MultiServerTokenStorageStrategy.ts +139 -0
  56. package/src/utils/{OfflineClientManager.js → OfflineClientManager.ts} +82 -86
  57. package/src/utils/OfflineQueueStorageStrategy.ts +47 -0
  58. package/src/utils/TokenStorage.ts +77 -0
  59. package/src/utils/compat.ts +12 -0
  60. package/src/utils/createDefaultMultiServerTokenStorageStrategy.ts +35 -0
  61. package/src/utils/{createDefaultOfflineStrategy.js → createDefaultOfflineStrategy.ts} +8 -3
  62. package/src/utils/createDefaultTokenStorageStrategy.ts +33 -0
  63. package/src/utils/{reactive.js → reactive.ts} +49 -40
  64. package/src/utils/stream-utils.node.ts +12 -0
  65. package/types/Api.d.ts +87 -0
  66. package/types/Api.d.ts.map +1 -0
  67. package/types/ApiClient.d.ts +437 -0
  68. package/types/ApiClient.d.ts.map +1 -0
  69. package/types/EJSONType.d.ts +53 -0
  70. package/types/EJSONType.d.ts.map +1 -0
  71. package/types/api/Badge.d.ts +24 -0
  72. package/types/api/Badge.d.ts.map +1 -0
  73. package/types/api/BaseEntity.d.ts +1322 -0
  74. package/types/api/BaseEntity.d.ts.map +1 -0
  75. package/types/api/Comment.d.ts +36 -0
  76. package/types/api/EndpointApi.d.ts +985 -0
  77. package/types/api/EndpointApi.d.ts.map +1 -0
  78. package/types/api/EndpointApi.types.d.ts +4233 -0
  79. package/types/api/EntityRegistry.d.ts +24 -0
  80. package/types/api/EntityRegistry.d.ts.map +1 -0
  81. package/types/api/Event.d.ts +122 -0
  82. package/types/api/Event.d.ts.map +1 -0
  83. package/types/api/News.d.ts +77 -0
  84. package/types/api/News.d.ts.map +1 -0
  85. package/types/api/Organization.d.ts +203 -0
  86. package/types/api/Organization.d.ts.map +1 -0
  87. package/types/api/Poi.d.ts +54 -0
  88. package/types/api/Poi.d.ts.map +1 -0
  89. package/types/api/Project.d.ts +180 -0
  90. package/types/api/Project.d.ts.map +1 -0
  91. package/types/api/User.d.ts +332 -0
  92. package/types/api/User.d.ts.map +1 -0
  93. package/types/api/UserApi.d.ts +64 -0
  94. package/types/api/UserApi.d.ts.map +1 -0
  95. package/types/api/serverDataType/Comment.d.ts +83 -0
  96. package/types/api/serverDataType/Event.d.ts +67 -0
  97. package/types/api/serverDataType/News.d.ts +130 -0
  98. package/types/api/serverDataType/Organization.d.ts +65 -0
  99. package/types/api/serverDataType/Organization.d.ts.map +1 -0
  100. package/types/api/serverDataType/Project.d.ts +58 -0
  101. package/types/api/serverDataType/Project.d.ts.map +1 -0
  102. package/types/api/serverDataType/User.d.ts +86 -0
  103. package/types/api/serverDataType/User.d.ts.map +1 -0
  104. package/types/api/serverDataType/common.d.ts +71 -0
  105. package/types/api/serverDataType/common.d.ts.map +1 -0
  106. package/types/endpoints.module.d.ts +20559 -0
  107. package/types/endpoints.module.d.ts.map +1 -0
  108. package/types/error.d.ts +54 -0
  109. package/types/error.d.ts.map +1 -0
  110. package/types/index.d.ts +59 -0
  111. package/types/index.d.ts.map +1 -0
  112. package/types/mixin/UserMixin.d.ts +1 -0
  113. package/types/mixin/UserMixin.d.ts.map +1 -0
  114. package/types/types/api-responses.d.ts +190 -0
  115. package/types/types/api-responses.d.ts.map +1 -0
  116. package/types/types/entities.d.ts +17 -0
  117. package/types/types/entities.d.ts.map +1 -0
  118. package/types/types/error-guards.d.ts +99 -0
  119. package/types/types/error-guards.d.ts.map +1 -0
  120. package/types/types/index.d.ts +7 -0
  121. package/types/types/payloads.d.ts +17 -0
  122. package/types/types/payloads.d.ts.map +1 -0
  123. package/types/types/transforms.d.ts +79 -0
  124. package/types/types/transforms.d.ts.map +1 -0
  125. package/types/utils/FileOfflineStorageStrategy.node.d.ts +11 -0
  126. package/types/utils/FileOfflineStorageStrategy.node.d.ts.map +1 -0
  127. package/types/utils/FileStorageStrategy.node.d.ts +14 -0
  128. package/types/utils/FileStorageStrategy.node.d.ts.map +1 -0
  129. package/types/utils/MultiServerFileStorageStrategy.node.d.ts +17 -0
  130. package/types/utils/MultiServerFileStorageStrategy.node.d.ts.map +1 -0
  131. package/types/utils/MultiServerTokenStorageStrategy.d.ts +44 -0
  132. package/types/utils/MultiServerTokenStorageStrategy.d.ts.map +1 -0
  133. package/types/utils/OfflineClientManager.d.ts +58 -0
  134. package/types/utils/OfflineClientManager.d.ts.map +1 -0
  135. package/types/utils/OfflineQueueStorageStrategy.d.ts +16 -0
  136. package/types/utils/OfflineQueueStorageStrategy.d.ts.map +1 -0
  137. package/types/utils/TokenStorage.d.ts +26 -0
  138. package/types/utils/TokenStorage.d.ts.map +1 -0
  139. package/types/utils/compat.d.ts +4 -0
  140. package/types/utils/compat.d.ts.map +1 -0
  141. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts +2 -0
  142. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts.map +1 -0
  143. package/types/utils/createDefaultOfflineStrategy.d.ts +2 -0
  144. package/types/utils/createDefaultOfflineStrategy.d.ts.map +1 -0
  145. package/types/utils/createDefaultTokenStorageStrategy.d.ts +2 -0
  146. package/types/utils/createDefaultTokenStorageStrategy.d.ts.map +1 -0
  147. package/types/utils/reactive.d.ts +54 -0
  148. package/types/utils/reactive.d.ts.map +1 -0
  149. package/types/utils/stream-utils.node.d.ts +3 -0
  150. package/types/utils/stream-utils.node.d.ts.map +1 -0
  151. package/dist/123.cocolight-api-client.browser.js +0 -1
  152. package/dist/123.cocolight-api-client.cjs +0 -1
  153. package/dist/22.cocolight-api-client.mjs.js +0 -1
  154. package/dist/339.cocolight-api-client.mjs.js +0 -1
  155. package/dist/394.cocolight-api-client.browser.js +0 -1
  156. package/dist/394.cocolight-api-client.cjs +0 -1
  157. package/dist/405.cocolight-api-client.browser.js +0 -1
  158. package/dist/405.cocolight-api-client.cjs +0 -1
  159. package/dist/774.cocolight-api-client.mjs.js +0 -1
  160. package/dist/790.cocolight-api-client.mjs.js +0 -1
  161. package/dist/931.cocolight-api-client.browser.js +0 -1
  162. package/dist/931.cocolight-api-client.cjs +0 -1
  163. package/src/EJSONType.js +0 -53
  164. package/src/api/BaseEntity.js +0 -2828
  165. package/src/api/EntityRegistry.js +0 -152
  166. package/src/api/Event.js +0 -226
  167. package/src/api/News.js +0 -244
  168. package/src/api/UserApi.js +0 -81
  169. package/src/endpoints.module.js +0 -5
  170. package/src/error.js +0 -68
  171. package/src/index.js +0 -34
  172. package/src/mixin/UserMixin.js +0 -8
  173. package/src/utils/MultiServerFileStorageStrategy.node.js +0 -65
  174. package/src/utils/MultiServerTokenStorageStrategy.js +0 -131
  175. package/src/utils/OfflineQueueStorageStrategy.js +0 -51
  176. package/src/utils/TokenStorage.js +0 -93
  177. package/src/utils/createDefaultMultiServerTokenStorageStrategy.js +0 -45
  178. package/src/utils/createDefaultTokenStorageStrategy.js +0 -43
  179. package/src/utils/stream-utils.node.js +0 -10
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunkCocolightApiClient=this.webpackChunkCocolightApiClient||[]).push([[401],{3401:(t,e,n)=>{async function a(t){const{Readable:e}=await n.e(320).then(n.t.bind(n,7320,23));return e.from(t)}async function i(){const{PassThrough:t}=await n.e(320).then(n.t.bind(n,7320,23));return new t}n.d(e,{bufferToReadable:()=>a,createPassThrough:()=>i})}}]);
@@ -0,0 +1 @@
1
+ "use strict";exports.id=401,exports.ids=[401],exports.modules={401:(e,s,t)=>{async function r(e){const{Readable:s}=await Promise.resolve().then(t.t.bind(t,272,23));return s.from(e)}async function o(){const{PassThrough:e}=await Promise.resolve().then(t.t.bind(t,272,23));return new e}t.d(s,{bufferToReadable:()=>r,createPassThrough:()=>o})}};
@@ -0,0 +1 @@
1
+ export const __webpack_id__=401;export const __webpack_ids__=[401];export const __webpack_modules__={401:(e,o,n)=>{async function s(e){const{Readable:o}=await Promise.resolve().then(n.bind(n,702));return o.from(e)}async function t(){const{PassThrough:e}=await Promise.resolve().then(n.bind(n,702));return new e}n.d(o,{bufferToReadable:()=>s,createPassThrough:()=>t})}};
@@ -0,0 +1 @@
1
+ (this.webpackChunkCocolightApiClient=this.webpackChunkCocolightApiClient||[]).push([[588],{588:(e,i,r)=>{"use strict";r.d(i,{FileOfflineStorage:()=>FileOfflineStorage});var t=r(6497),s=r(870),n=r(4061),l=r(4285);class FileOfflineStorage extends l.LD{dir;filePath;constructor(e="offline-queue.json",i=n.join(s.homedir(),".config","cocolight")){super(),this.dir=i,this.filePath=n.join(i,e),this._ensureDirectoryExists()}_ensureDirectoryExists(){t.existsSync(this.dir)||t.mkdirSync(this.dir,{recursive:!0})}_readFile(){if(!t.existsSync(this.filePath))return[];try{return JSON.parse(t.readFileSync(this.filePath,"utf8"))}catch(e){return console.error("Erreur lecture offline queue :",e),[]}}_writeFile(e){try{t.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}catch(e){console.warn("[OfflineQueue] Erreur d'écriture:",e)}}async loadQueue(){return this._readFile()}async saveQueue(e){this._writeFile(e)}}},870:()=>{},4061:()=>{},6497:()=>{}}]);
@@ -0,0 +1 @@
1
+ "use strict";exports.id=588,exports.ids=[588],exports.modules={588:(e,i,r)=>{r.d(i,{FileOfflineStorage:()=>FileOfflineStorage});var t=r(383),s=r(366),n=r(3),l=r(285);class FileOfflineStorage extends l.LD{dir;filePath;constructor(e="offline-queue.json",i=n.join(s.homedir(),".config","cocolight")){super(),this.dir=i,this.filePath=n.join(i,e),this._ensureDirectoryExists()}_ensureDirectoryExists(){t.existsSync(this.dir)||t.mkdirSync(this.dir,{recursive:!0})}_readFile(){if(!t.existsSync(this.filePath))return[];try{return JSON.parse(t.readFileSync(this.filePath,"utf8"))}catch(e){return console.error("Erreur lecture offline queue :",e),[]}}_writeFile(e){try{t.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}catch(e){console.warn("[OfflineQueue] Erreur d'écriture:",e)}}async loadQueue(){return this._readFile()}async saveQueue(e){this._writeFile(e)}}}};
@@ -0,0 +1 @@
1
+ export const __webpack_id__=588;export const __webpack_ids__=[588];export const __webpack_modules__={588:(e,i,r)=>{r.d(i,{FileOfflineStorage:()=>FileOfflineStorage});var t=r(421),s=r(116),n=r(521),c=r(285);class FileOfflineStorage extends c.LD{dir;filePath;constructor(e="offline-queue.json",i=n.join(s.homedir(),".config","cocolight")){super(),this.dir=i,this.filePath=n.join(i,e),this._ensureDirectoryExists()}_ensureDirectoryExists(){t.existsSync(this.dir)||t.mkdirSync(this.dir,{recursive:!0})}_readFile(){if(!t.existsSync(this.filePath))return[];try{return JSON.parse(t.readFileSync(this.filePath,"utf8"))}catch(e){return console.error("Erreur lecture offline queue :",e),[]}}_writeFile(e){try{t.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}catch(e){console.warn("[OfflineQueue] Erreur d'écriture:",e)}}async loadQueue(){return this._readFile()}async saveQueue(e){this._writeFile(e)}}}};
@@ -0,0 +1 @@
1
+ (this.webpackChunkCocolightApiClient=this.webpackChunkCocolightApiClient||[]).push([[593],{870:()=>{},3593:(e,t,i)=>{"use strict";i.d(t,{MultiServerFileStorageStrategy:()=>MultiServerFileStorageStrategy});var r=i(6497),s=i(870),l=i(4061),n=i(2602);class MultiServerFileStorageStrategy extends n.SJ{filePath;constructor(e="tokens.json",t=l.join(s.homedir(),".config","cocolight")){super(),this.filePath=l.join(t,e),r.existsSync(t)||r.mkdirSync(t,{recursive:!0})}_readFile(){if(!r.existsSync(this.filePath))return{};try{return JSON.parse(r.readFileSync(this.filePath,"utf8"))}catch{return{}}}_writeFile(e){r.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}getAccessToken(){const e=this._requireBaseURL();return this._readFile()[e]?.accessToken??null}setAccessToken(e){const t=this._requireBaseURL(),i=this._readFile();i[t]={...i[t]||{},accessToken:e},this._writeFile(i)}getRefreshToken(){const e=this._requireBaseURL();return this._readFile()[e]?.refreshToken??null}setRefreshToken(e){const t=this._requireBaseURL(),i=this._readFile();i[t]={...i[t]||{},refreshToken:e},this._writeFile(i)}clear(){const e=this._requireBaseURL(),t=this._readFile();delete t[e],this._writeFile(t)}getServers(){return Object.keys(this._readFile())}exportAll(){return this._readFile()}}},4061:()=>{},6497:()=>{}}]);
@@ -0,0 +1 @@
1
+ "use strict";exports.id=593,exports.ids=[593],exports.modules={593:(e,t,r)=>{r.d(t,{MultiServerFileStorageStrategy:()=>MultiServerFileStorageStrategy});var i=r(383),s=r(366),l=r(3),n=r(602);class MultiServerFileStorageStrategy extends n.SJ{filePath;constructor(e="tokens.json",t=l.join(s.homedir(),".config","cocolight")){super(),this.filePath=l.join(t,e),i.existsSync(t)||i.mkdirSync(t,{recursive:!0})}_readFile(){if(!i.existsSync(this.filePath))return{};try{return JSON.parse(i.readFileSync(this.filePath,"utf8"))}catch{return{}}}_writeFile(e){i.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}getAccessToken(){const e=this._requireBaseURL();return this._readFile()[e]?.accessToken??null}setAccessToken(e){const t=this._requireBaseURL(),r=this._readFile();r[t]={...r[t]||{},accessToken:e},this._writeFile(r)}getRefreshToken(){const e=this._requireBaseURL();return this._readFile()[e]?.refreshToken??null}setRefreshToken(e){const t=this._requireBaseURL(),r=this._readFile();r[t]={...r[t]||{},refreshToken:e},this._writeFile(r)}clear(){const e=this._requireBaseURL(),t=this._readFile();delete t[e],this._writeFile(t)}getServers(){return Object.keys(this._readFile())}exportAll(){return this._readFile()}}}};
@@ -0,0 +1 @@
1
+ export const __webpack_id__=593;export const __webpack_ids__=[593];export const __webpack_modules__={593:(e,t,r)=>{r.d(t,{MultiServerFileStorageStrategy:()=>MultiServerFileStorageStrategy});var i=r(421),s=r(116),n=r(521),l=r(602);class MultiServerFileStorageStrategy extends l.SJ{filePath;constructor(e="tokens.json",t=n.join(s.homedir(),".config","cocolight")){super(),this.filePath=n.join(t,e),i.existsSync(t)||i.mkdirSync(t,{recursive:!0})}_readFile(){if(!i.existsSync(this.filePath))return{};try{return JSON.parse(i.readFileSync(this.filePath,"utf8"))}catch{return{}}}_writeFile(e){i.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}getAccessToken(){const e=this._requireBaseURL();return this._readFile()[e]?.accessToken??null}setAccessToken(e){const t=this._requireBaseURL(),r=this._readFile();r[t]={...r[t]||{},accessToken:e},this._writeFile(r)}getRefreshToken(){const e=this._requireBaseURL();return this._readFile()[e]?.refreshToken??null}setRefreshToken(e){const t=this._requireBaseURL(),r=this._readFile();r[t]={...r[t]||{},refreshToken:e},this._writeFile(r)}clear(){const e=this._requireBaseURL(),t=this._readFile();delete t[e],this._writeFile(t)}getServers(){return Object.keys(this._readFile())}exportAll(){return this._readFile()}}}};
@@ -0,0 +1 @@
1
+ (this.webpackChunkCocolightApiClient=this.webpackChunkCocolightApiClient||[]).push([[839],{870:()=>{},4061:()=>{},5839:(e,i,t)=>{"use strict";t.d(i,{FileStorageStrategy:()=>FileStorageStrategy});var r=t(6497),s=t(870),n=t(4061),h=t(8193);class FileStorageStrategy extends h.u3{dir;filePath;constructor(e="tokens.json",i=n.join(s.homedir(),".config","cocolight")){super(),this.dir=i,this.filePath=n.join(i,e),this._ensureDirectoryExists()}_ensureDirectoryExists(){r.existsSync(this.dir)||r.mkdirSync(this.dir,{recursive:!0})}_readFile(){if(!r.existsSync(this.filePath))return{};try{return JSON.parse(r.readFileSync(this.filePath,"utf8"))}catch(e){return console.error("Error reading token file:",e),{}}}_writeFile(e){r.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}getAccessToken(){return this._readFile().accessToken||null}setAccessToken(e){const i=this._readFile();i.accessToken=e,this._writeFile(i)}getRefreshToken(){return this._readFile().refreshToken||null}setRefreshToken(e){const i=this._readFile();i.refreshToken=e,this._writeFile(i)}clear(){this._writeFile({})}}},6497:()=>{}}]);
@@ -0,0 +1 @@
1
+ "use strict";exports.id=839,exports.ids=[839],exports.modules={839:(e,t,r)=>{r.d(t,{FileStorageStrategy:()=>FileStorageStrategy});var i=r(383),s=r(366),n=r(3),o=r(193);class FileStorageStrategy extends o.u3{dir;filePath;constructor(e="tokens.json",t=n.join(s.homedir(),".config","cocolight")){super(),this.dir=t,this.filePath=n.join(t,e),this._ensureDirectoryExists()}_ensureDirectoryExists(){i.existsSync(this.dir)||i.mkdirSync(this.dir,{recursive:!0})}_readFile(){if(!i.existsSync(this.filePath))return{};try{return JSON.parse(i.readFileSync(this.filePath,"utf8"))}catch(e){return console.error("Error reading token file:",e),{}}}_writeFile(e){i.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}getAccessToken(){return this._readFile().accessToken||null}setAccessToken(e){const t=this._readFile();t.accessToken=e,this._writeFile(t)}getRefreshToken(){return this._readFile().refreshToken||null}setRefreshToken(e){const t=this._readFile();t.refreshToken=e,this._writeFile(t)}clear(){this._writeFile({})}}}};
@@ -0,0 +1 @@
1
+ export const __webpack_id__=839;export const __webpack_ids__=[839];export const __webpack_modules__={839:(e,t,r)=>{r.d(t,{FileStorageStrategy:()=>FileStorageStrategy});var i=r(421),s=r(116),n=r(521),o=r(193);class FileStorageStrategy extends o.u3{dir;filePath;constructor(e="tokens.json",t=n.join(s.homedir(),".config","cocolight")){super(),this.dir=t,this.filePath=n.join(t,e),this._ensureDirectoryExists()}_ensureDirectoryExists(){i.existsSync(this.dir)||i.mkdirSync(this.dir,{recursive:!0})}_readFile(){if(!i.existsSync(this.filePath))return{};try{return JSON.parse(i.readFileSync(this.filePath,"utf8"))}catch(e){return console.error("Error reading token file:",e),{}}}_writeFile(e){i.writeFileSync(this.filePath,JSON.stringify(e,null,2),"utf8")}getAccessToken(){return this._readFile().accessToken||null}setAccessToken(e){const t=this._readFile();t.accessToken=e,this._writeFile(t)}getRefreshToken(){return this._readFile().refreshToken||null}setRefreshToken(e){const t=this._readFile();t.refreshToken=e,this._writeFile(t)}clear(){this._writeFile({})}}}};