@communecter/cocolight-api-client 1.0.54 → 1.0.56

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 +29 -17
  19. package/src/{Api.js → Api.ts} +85 -95
  20. package/src/{ApiClient.js → ApiClient.ts} +436 -247
  21. package/src/EJSONType.ts +103 -0
  22. package/src/api/{Badge.js → Badge.ts} +56 -45
  23. package/src/api/BaseEntity.ts +3890 -0
  24. package/src/api/Comment.ts +200 -0
  25. package/src/api/{EndpointApi.js → EndpointApi.ts} +363 -297
  26. package/src/api/EndpointApi.types.ts +4609 -0
  27. package/src/api/EntityRegistry.ts +203 -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} +16 -39
  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 +38 -82
  66. package/types/Api.d.ts.map +1 -0
  67. package/types/ApiClient.d.ts +244 -184
  68. package/types/ApiClient.d.ts.map +1 -0
  69. package/types/EJSONType.d.ts +48 -22
  70. package/types/EJSONType.d.ts.map +1 -0
  71. package/types/api/Badge.d.ts +20 -20
  72. package/types/api/Badge.d.ts.map +1 -0
  73. package/types/api/BaseEntity.d.ts +751 -446
  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 +347 -295
  77. package/types/api/EndpointApi.d.ts.map +1 -0
  78. package/types/api/EndpointApi.types.d.ts +3914 -4133
  79. package/types/api/EntityRegistry.d.ts +18 -16
  80. package/types/api/EntityRegistry.d.ts.map +1 -0
  81. package/types/api/Event.d.ts +119 -35
  82. package/types/api/Event.d.ts.map +1 -0
  83. package/types/api/News.d.ts +52 -20
  84. package/types/api/News.d.ts.map +1 -0
  85. package/types/api/Organization.d.ts +165 -49
  86. package/types/api/Organization.d.ts.map +1 -0
  87. package/types/api/Poi.d.ts +51 -22
  88. package/types/api/Poi.d.ts.map +1 -0
  89. package/types/api/Project.d.ts +151 -52
  90. package/types/api/Project.d.ts.map +1 -0
  91. package/types/api/User.d.ts +222 -93
  92. package/types/api/User.d.ts.map +1 -0
  93. package/types/api/UserApi.d.ts +60 -9
  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 +6922 -1215
  107. package/types/endpoints.module.d.ts.map +1 -0
  108. package/types/error.d.ts +25 -51
  109. package/types/error.d.ts.map +1 -0
  110. package/types/index.d.ts +55 -48
  111. package/types/index.d.ts.map +1 -0
  112. package/types/mixin/UserMixin.d.ts +1 -1
  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 +10 -9
  126. package/types/utils/FileOfflineStorageStrategy.node.d.ts.map +1 -0
  127. package/types/utils/FileStorageStrategy.node.d.ts +9 -20
  128. package/types/utils/FileStorageStrategy.node.d.ts.map +1 -0
  129. package/types/utils/MultiServerFileStorageStrategy.node.d.ts +13 -18
  130. package/types/utils/MultiServerFileStorageStrategy.node.d.ts.map +1 -0
  131. package/types/utils/MultiServerTokenStorageStrategy.d.ts +30 -51
  132. package/types/utils/MultiServerTokenStorageStrategy.d.ts.map +1 -0
  133. package/types/utils/OfflineClientManager.d.ts +52 -88
  134. package/types/utils/OfflineClientManager.d.ts.map +1 -0
  135. package/types/utils/OfflineQueueStorageStrategy.d.ts +12 -9
  136. package/types/utils/OfflineQueueStorageStrategy.d.ts.map +1 -0
  137. package/types/utils/TokenStorage.d.ts +20 -70
  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 -11
  142. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts.map +1 -0
  143. package/types/utils/createDefaultOfflineStrategy.d.ts +2 -3
  144. package/types/utils/createDefaultOfflineStrategy.d.ts.map +1 -0
  145. package/types/utils/createDefaultTokenStorageStrategy.d.ts +2 -12
  146. package/types/utils/createDefaultTokenStorageStrategy.d.ts.map +1 -0
  147. package/types/utils/reactive.d.ts +10 -16
  148. package/types/utils/reactive.d.ts.map +1 -0
  149. package/types/utils/stream-utils.node.d.ts +3 -2
  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 -121
  171. package/src/index.js +0 -97
  172. package/src/mixin/UserMixin.js +0 -8
  173. package/src/utils/MultiServerFileStorageStrategy.node.js +0 -87
  174. package/src/utils/MultiServerTokenStorageStrategy.js +0 -188
  175. package/src/utils/OfflineQueueStorageStrategy.js +0 -51
  176. package/src/utils/TokenStorage.js +0 -153
  177. package/src/utils/createDefaultMultiServerTokenStorageStrategy.js +0 -51
  178. package/src/utils/createDefaultTokenStorageStrategy.js +0 -49
  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({})}}}};