@putkoff/abstract-utilities 1.0.147 → 1.0.156

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 (406) hide show
  1. package/dist/cjs/_virtual/_commonjsHelpers.js +8 -0
  2. package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/cjs/browser/index.js +9 -0
  4. package/dist/cjs/browser/index.js.map +1 -0
  5. package/dist/cjs/browser.js +0 -0
  6. package/dist/cjs/browser.js.map +0 -0
  7. package/dist/cjs/client/index.js +14 -0
  8. package/dist/cjs/client/index.js.map +1 -0
  9. package/dist/cjs/client.js +0 -0
  10. package/dist/cjs/client.js.map +1 -1
  11. package/dist/cjs/functions.js +279 -246
  12. package/dist/cjs/functions.js.map +1 -1
  13. package/dist/cjs/index.js +279 -246
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/mime_utils-C53pEVr1.js +0 -0
  16. package/dist/cjs/mime_utils-C53pEVr1.js.map +0 -0
  17. package/dist/{esm/safe_storage-D4QfcTw0.js → cjs/node_modules/path-browserify/index.js} +8 -393
  18. package/dist/cjs/node_modules/path-browserify/index.js.map +1 -0
  19. package/dist/cjs/print_utils-4u3XdibG.js +0 -0
  20. package/dist/cjs/print_utils-4u3XdibG.js.map +0 -0
  21. package/dist/cjs/readJsonFile.browser-BsrKPMhm.js +0 -0
  22. package/dist/cjs/readJsonFile.browser-BsrKPMhm.js.map +0 -0
  23. package/dist/cjs/readJsonFile.node-DqCxMX38.js +0 -0
  24. package/dist/cjs/readJsonFile.node-DqCxMX38.js.map +0 -0
  25. package/dist/cjs/server/index.js +9 -0
  26. package/dist/cjs/server/index.js.map +1 -0
  27. package/dist/cjs/server.js +0 -0
  28. package/dist/cjs/server.js.map +0 -0
  29. package/dist/cjs/src/browser/src/read_utils/src/readJsonFile.browser.js +35 -0
  30. package/dist/cjs/src/browser/src/read_utils/src/readJsonFile.browser.js.map +1 -0
  31. package/dist/cjs/src/client/auth/src/token_client.js +87 -0
  32. package/dist/cjs/src/client/auth/src/token_client.js.map +1 -0
  33. package/dist/cjs/src/functions/auth_utils/src/jwt_core.js +31 -0
  34. package/dist/cjs/src/functions/auth_utils/src/jwt_core.js.map +1 -0
  35. package/dist/cjs/src/functions/auth_utils/src/token_utils.js +95 -0
  36. package/dist/cjs/src/functions/auth_utils/src/token_utils.js.map +1 -0
  37. package/dist/cjs/src/functions/config_utils/src/config_utils.js +78 -0
  38. package/dist/cjs/src/functions/config_utils/src/config_utils.js.map +1 -0
  39. package/dist/cjs/src/functions/constants_utils/src/constants.js +18 -0
  40. package/dist/cjs/src/functions/constants_utils/src/constants.js.map +1 -0
  41. package/dist/cjs/src/functions/env_utils/src/window_utils.js +56 -0
  42. package/dist/cjs/src/functions/env_utils/src/window_utils.js.map +1 -0
  43. package/dist/cjs/src/functions/fetch_utils/src/fetch_utils.js +65 -0
  44. package/dist/cjs/src/functions/fetch_utils/src/fetch_utils.js.map +1 -0
  45. package/dist/cjs/src/functions/fetch_utils/src/url_utils.js +96 -0
  46. package/dist/cjs/src/functions/fetch_utils/src/url_utils.js.map +1 -0
  47. package/dist/cjs/src/functions/fetch_utils/src/utils.js +102 -0
  48. package/dist/cjs/src/functions/fetch_utils/src/utils.js.map +1 -0
  49. package/dist/cjs/src/functions/inspect_utils/src/caller_utils.js +32 -0
  50. package/dist/cjs/src/functions/inspect_utils/src/caller_utils.js.map +1 -0
  51. package/dist/cjs/src/functions/math_utils/bigint_utils.js +30 -0
  52. package/dist/cjs/src/functions/math_utils/bigint_utils.js.map +1 -0
  53. package/dist/cjs/src/functions/math_utils/constants.js +75 -0
  54. package/dist/cjs/src/functions/math_utils/constants.js.map +1 -0
  55. package/dist/cjs/src/functions/math_utils/conversions.js +161 -0
  56. package/dist/cjs/src/functions/math_utils/conversions.js.map +1 -0
  57. package/dist/cjs/src/functions/math_utils/safe_math.js +61 -0
  58. package/dist/cjs/src/functions/math_utils/safe_math.js.map +1 -0
  59. package/dist/cjs/src/functions/math_utils/time_utils.js +9 -0
  60. package/dist/cjs/src/functions/math_utils/time_utils.js.map +1 -0
  61. package/dist/cjs/src/functions/path_utils/imports.js +31 -0
  62. package/dist/cjs/src/functions/path_utils/imports.js.map +1 -0
  63. package/dist/cjs/src/functions/path_utils/src/base_dirs.js +23 -0
  64. package/dist/cjs/src/functions/path_utils/src/base_dirs.js.map +1 -0
  65. package/dist/cjs/src/functions/path_utils/src/function_dirs.js +47 -0
  66. package/dist/cjs/src/functions/path_utils/src/function_dirs.js.map +1 -0
  67. package/dist/cjs/src/functions/path_utils/src/misc_dirs.js +23 -0
  68. package/dist/cjs/src/functions/path_utils/src/misc_dirs.js.map +1 -0
  69. package/dist/cjs/src/functions/path_utils/src/path_utils.js +192 -0
  70. package/dist/cjs/src/functions/path_utils/src/path_utils.js.map +1 -0
  71. package/dist/cjs/src/functions/path_utils/src/paths.js +18 -0
  72. package/dist/cjs/src/functions/path_utils/src/paths.js.map +1 -0
  73. package/dist/cjs/src/functions/path_utils/src/src_dirs.js +31 -0
  74. package/dist/cjs/src/functions/path_utils/src/src_dirs.js.map +1 -0
  75. package/dist/cjs/src/functions/print_utils/src/print_utils.js +22 -0
  76. package/dist/cjs/src/functions/print_utils/src/print_utils.js.map +1 -0
  77. package/dist/cjs/src/functions/read_utils/src/readJsonFile.js +29 -0
  78. package/dist/cjs/src/functions/read_utils/src/readJsonFile.js.map +1 -0
  79. package/dist/cjs/src/functions/rndm_utils/src/utils.js +17 -0
  80. package/dist/cjs/src/functions/rndm_utils/src/utils.js.map +1 -0
  81. package/dist/cjs/src/functions/safe_utils/src/safe_document.js +18 -0
  82. package/dist/cjs/src/functions/safe_utils/src/safe_document.js.map +1 -0
  83. package/dist/cjs/src/functions/safe_utils/src/safe_globals.js +19 -0
  84. package/dist/cjs/src/functions/safe_utils/src/safe_globals.js.map +1 -0
  85. package/dist/cjs/src/functions/safe_utils/src/safe_storage.js +58 -0
  86. package/dist/cjs/src/functions/safe_utils/src/safe_storage.js.map +1 -0
  87. package/dist/cjs/src/functions/safe_utils/src/safe_window.js +50 -0
  88. package/dist/cjs/src/functions/safe_utils/src/safe_window.js.map +1 -0
  89. package/dist/cjs/src/functions/size_utils/src/sizeUtils.js +29 -0
  90. package/dist/cjs/src/functions/size_utils/src/sizeUtils.js.map +1 -0
  91. package/dist/cjs/src/functions/string_utils/src/quote_utils.js +23 -0
  92. package/dist/cjs/src/functions/string_utils/src/quote_utils.js.map +1 -0
  93. package/dist/cjs/src/functions/string_utils/src/string_utils.js +200 -0
  94. package/dist/cjs/src/functions/string_utils/src/string_utils.js.map +1 -0
  95. package/dist/cjs/src/functions/type_utils/src/clean_utils.js +47 -0
  96. package/dist/cjs/src/functions/type_utils/src/clean_utils.js.map +1 -0
  97. package/dist/cjs/src/functions/type_utils/src/ensure_utils.js +113 -0
  98. package/dist/cjs/src/functions/type_utils/src/ensure_utils.js.map +1 -0
  99. package/dist/cjs/src/functions/type_utils/src/json_utils.js +93 -0
  100. package/dist/cjs/src/functions/type_utils/src/json_utils.js.map +1 -0
  101. package/dist/cjs/src/functions/type_utils/src/list_utils.js +42 -0
  102. package/dist/cjs/src/functions/type_utils/src/list_utils.js.map +1 -0
  103. package/dist/cjs/src/functions/type_utils/src/mime_utils.js +229 -0
  104. package/dist/cjs/src/functions/type_utils/src/mime_utils.js.map +1 -0
  105. package/dist/cjs/src/functions/type_utils/src/null_utils.js +27 -0
  106. package/dist/cjs/src/functions/type_utils/src/null_utils.js.map +1 -0
  107. package/dist/cjs/src/functions/type_utils/src/type_utils.js +51 -0
  108. package/dist/cjs/src/functions/type_utils/src/type_utils.js.map +1 -0
  109. package/dist/cjs/src/functions/variable_utils/src/variable_utils.js +41 -0
  110. package/dist/cjs/src/functions/variable_utils/src/variable_utils.js.map +1 -0
  111. package/dist/cjs/src/read_utils/src/readJsonFile.node.js +20 -0
  112. package/dist/cjs/src/read_utils/src/readJsonFile.node.js.map +1 -0
  113. package/dist/cjs/src/utils/src/Input.js +8 -0
  114. package/dist/cjs/src/utils/src/Input.js.map +1 -0
  115. package/dist/cjs/src/utils/src/config.js +20 -0
  116. package/dist/cjs/src/utils/src/config.js.map +1 -0
  117. package/dist/cjs/types.js +0 -0
  118. package/dist/cjs/types.js.map +0 -0
  119. package/dist/cjs/utils.js +4 -19
  120. package/dist/cjs/utils.js.map +1 -1
  121. package/dist/esm/_virtual/_commonjsHelpers.js +6 -0
  122. package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -0
  123. package/dist/esm/browser/index.js +2 -0
  124. package/dist/esm/browser/index.js.map +1 -0
  125. package/dist/esm/browser.js +0 -0
  126. package/dist/esm/browser.js.map +0 -0
  127. package/dist/esm/client/index.js +2 -0
  128. package/dist/esm/client/index.js.map +1 -0
  129. package/dist/esm/client.js +1 -1
  130. package/dist/esm/client.js.map +1 -1
  131. package/dist/esm/functions.js +37 -3
  132. package/dist/esm/functions.js.map +1 -1
  133. package/dist/esm/index.js +37 -3
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/{mime_utils-D3LjiFgN.js → mime_utils-DugRB-qn.js} +2 -2
  136. package/dist/esm/{mime_utils-D3LjiFgN.js.map → mime_utils-DugRB-qn.js.map} +1 -1
  137. package/dist/esm/{mime_utils-CdGKGoR7.js → node_modules/path-browserify/index.js} +3 -398
  138. package/dist/esm/node_modules/path-browserify/index.js.map +1 -0
  139. package/dist/esm/{print_utils--piNPACS.js → print_utils-Bxh_FM0L.js} +3 -3
  140. package/dist/esm/{print_utils--piNPACS.js.map → print_utils-Bxh_FM0L.js.map} +1 -1
  141. package/dist/esm/readJsonFile.browser-C9FwYiRq.js +0 -0
  142. package/dist/esm/readJsonFile.browser-C9FwYiRq.js.map +0 -0
  143. package/dist/esm/readJsonFile.node-Dg_ttFdy.js +0 -0
  144. package/dist/esm/readJsonFile.node-Dg_ttFdy.js.map +0 -0
  145. package/dist/esm/server/index.js +3 -0
  146. package/dist/esm/server/index.js.map +1 -0
  147. package/dist/esm/server.js +0 -0
  148. package/dist/esm/server.js.map +0 -0
  149. package/dist/esm/src/browser/src/read_utils/src/readJsonFile.browser.js +32 -0
  150. package/dist/esm/src/browser/src/read_utils/src/readJsonFile.browser.js.map +1 -0
  151. package/dist/esm/src/client/auth/src/token_client.js +79 -0
  152. package/dist/esm/src/client/auth/src/token_client.js.map +1 -0
  153. package/dist/esm/src/functions/auth_utils/src/jwt_core.js +28 -0
  154. package/dist/esm/src/functions/auth_utils/src/jwt_core.js.map +1 -0
  155. package/dist/esm/src/functions/auth_utils/src/token_utils.js +87 -0
  156. package/dist/esm/src/functions/auth_utils/src/token_utils.js.map +1 -0
  157. package/dist/esm/src/functions/config_utils/src/config_utils.js +74 -0
  158. package/dist/esm/src/functions/config_utils/src/config_utils.js.map +1 -0
  159. package/dist/esm/src/functions/constants_utils/src/constants.js +10 -0
  160. package/dist/esm/src/functions/constants_utils/src/constants.js.map +1 -0
  161. package/dist/esm/src/functions/env_utils/src/window_utils.js +51 -0
  162. package/dist/esm/src/functions/env_utils/src/window_utils.js.map +1 -0
  163. package/dist/esm/src/functions/fetch_utils/src/fetch_utils.js +60 -0
  164. package/dist/esm/src/functions/fetch_utils/src/fetch_utils.js.map +1 -0
  165. package/dist/esm/src/functions/fetch_utils/src/url_utils.js +89 -0
  166. package/dist/esm/src/functions/fetch_utils/src/url_utils.js.map +1 -0
  167. package/dist/esm/src/functions/fetch_utils/src/utils.js +94 -0
  168. package/dist/esm/src/functions/fetch_utils/src/utils.js.map +1 -0
  169. package/dist/esm/src/functions/inspect_utils/src/caller_utils.js +30 -0
  170. package/dist/esm/src/functions/inspect_utils/src/caller_utils.js.map +1 -0
  171. package/dist/esm/src/functions/math_utils/bigint_utils.js +28 -0
  172. package/dist/esm/src/functions/math_utils/bigint_utils.js.map +1 -0
  173. package/dist/esm/src/functions/math_utils/constants.js +41 -0
  174. package/dist/esm/src/functions/math_utils/constants.js.map +1 -0
  175. package/dist/esm/src/functions/math_utils/conversions.js +133 -0
  176. package/dist/esm/src/functions/math_utils/conversions.js.map +1 -0
  177. package/dist/esm/src/functions/math_utils/safe_math.js +52 -0
  178. package/dist/esm/src/functions/math_utils/safe_math.js.map +1 -0
  179. package/dist/esm/src/functions/math_utils/time_utils.js +7 -0
  180. package/dist/esm/src/functions/math_utils/time_utils.js.map +1 -0
  181. package/dist/esm/src/functions/path_utils/imports.js +27 -0
  182. package/dist/esm/src/functions/path_utils/imports.js.map +1 -0
  183. package/dist/esm/src/functions/path_utils/src/base_dirs.js +18 -0
  184. package/dist/esm/src/functions/path_utils/src/base_dirs.js.map +1 -0
  185. package/dist/esm/src/functions/path_utils/src/function_dirs.js +36 -0
  186. package/dist/esm/src/functions/path_utils/src/function_dirs.js.map +1 -0
  187. package/dist/esm/src/functions/path_utils/src/misc_dirs.js +18 -0
  188. package/dist/esm/src/functions/path_utils/src/misc_dirs.js.map +1 -0
  189. package/dist/esm/src/functions/path_utils/src/path_utils.js +166 -0
  190. package/dist/esm/src/functions/path_utils/src/path_utils.js.map +1 -0
  191. package/dist/esm/src/functions/path_utils/src/paths.js +15 -0
  192. package/dist/esm/src/functions/path_utils/src/paths.js.map +1 -0
  193. package/dist/esm/src/functions/path_utils/src/src_dirs.js +24 -0
  194. package/dist/esm/src/functions/path_utils/src/src_dirs.js.map +1 -0
  195. package/dist/esm/src/functions/print_utils/src/print_utils.js +20 -0
  196. package/dist/esm/src/functions/print_utils/src/print_utils.js.map +1 -0
  197. package/dist/esm/src/functions/read_utils/src/readJsonFile.js +26 -0
  198. package/dist/esm/src/functions/read_utils/src/readJsonFile.js.map +1 -0
  199. package/dist/esm/src/functions/rndm_utils/src/utils.js +15 -0
  200. package/dist/esm/src/functions/rndm_utils/src/utils.js.map +1 -0
  201. package/dist/esm/src/functions/safe_utils/src/safe_document.js +15 -0
  202. package/dist/esm/src/functions/safe_utils/src/safe_document.js.map +1 -0
  203. package/dist/esm/src/functions/safe_utils/src/safe_globals.js +17 -0
  204. package/dist/esm/src/functions/safe_utils/src/safe_globals.js.map +1 -0
  205. package/dist/esm/src/functions/safe_utils/src/safe_storage.js +54 -0
  206. package/dist/esm/src/functions/safe_utils/src/safe_storage.js.map +1 -0
  207. package/dist/esm/src/functions/safe_utils/src/safe_window.js +45 -0
  208. package/dist/esm/src/functions/safe_utils/src/safe_window.js.map +1 -0
  209. package/dist/esm/src/functions/size_utils/src/sizeUtils.js +24 -0
  210. package/dist/esm/src/functions/size_utils/src/sizeUtils.js.map +1 -0
  211. package/dist/esm/src/functions/string_utils/src/quote_utils.js +20 -0
  212. package/dist/esm/src/functions/string_utils/src/quote_utils.js.map +1 -0
  213. package/dist/esm/src/functions/string_utils/src/string_utils.js +183 -0
  214. package/dist/esm/src/functions/string_utils/src/string_utils.js.map +1 -0
  215. package/dist/esm/src/functions/type_utils/src/clean_utils.js +42 -0
  216. package/dist/esm/src/functions/type_utils/src/clean_utils.js.map +1 -0
  217. package/dist/esm/src/functions/type_utils/src/ensure_utils.js +88 -0
  218. package/dist/esm/src/functions/type_utils/src/ensure_utils.js.map +1 -0
  219. package/dist/esm/src/functions/type_utils/src/json_utils.js +86 -0
  220. package/dist/esm/src/functions/type_utils/src/json_utils.js.map +1 -0
  221. package/dist/esm/src/functions/type_utils/src/list_utils.js +39 -0
  222. package/dist/esm/src/functions/type_utils/src/list_utils.js.map +1 -0
  223. package/dist/esm/src/functions/type_utils/src/mime_utils.js +216 -0
  224. package/dist/esm/src/functions/type_utils/src/mime_utils.js.map +1 -0
  225. package/dist/esm/src/functions/type_utils/src/null_utils.js +23 -0
  226. package/dist/esm/src/functions/type_utils/src/null_utils.js.map +1 -0
  227. package/dist/esm/src/functions/type_utils/src/type_utils.js +43 -0
  228. package/dist/esm/src/functions/type_utils/src/type_utils.js.map +1 -0
  229. package/dist/esm/src/functions/variable_utils/src/variable_utils.js +38 -0
  230. package/dist/esm/src/functions/variable_utils/src/variable_utils.js.map +1 -0
  231. package/dist/esm/src/read_utils/src/readJsonFile.node.js +18 -0
  232. package/dist/esm/src/read_utils/src/readJsonFile.node.js.map +1 -0
  233. package/dist/esm/src/utils/src/Input.js +6 -0
  234. package/dist/esm/src/utils/src/Input.js.map +1 -0
  235. package/dist/esm/src/utils/src/config.js +18 -0
  236. package/dist/esm/src/utils/src/config.js.map +1 -0
  237. package/dist/esm/types.js +0 -0
  238. package/dist/esm/types.js.map +0 -0
  239. package/dist/esm/utils.js +2 -21
  240. package/dist/esm/utils.js.map +1 -1
  241. package/dist/types/browser/index.d.ts +0 -0
  242. package/dist/types/browser/src/index.d.ts +0 -0
  243. package/dist/types/browser/src/read_utils/imports.d.ts +0 -0
  244. package/dist/types/browser/src/read_utils/index.d.ts +0 -0
  245. package/dist/types/browser/src/read_utils/src/index.d.ts +0 -0
  246. package/dist/types/browser/src/read_utils/src/readJsonFile.browser.d.ts +0 -0
  247. package/dist/types/client/auth/index.d.ts +1 -1
  248. package/dist/types/client/auth/src/index.d.ts +1 -1
  249. package/dist/types/client/auth/src/token_client.d.ts +0 -0
  250. package/dist/types/client/fetch/src/fetch_auth.d.ts +0 -0
  251. package/dist/types/client/fetch/src/index.d.ts +0 -0
  252. package/dist/types/client/index.d.ts +0 -0
  253. package/dist/types/functions/auth_utils/imports.d.ts +0 -0
  254. package/dist/types/functions/auth_utils/index.d.ts +0 -0
  255. package/dist/types/functions/auth_utils/src/index.d.ts +0 -0
  256. package/dist/types/functions/auth_utils/src/jwt_core.d.ts +0 -0
  257. package/dist/types/functions/auth_utils/src/token_utils (Copy).d.ts +0 -0
  258. package/dist/types/functions/auth_utils/src/token_utils.d.ts +0 -0
  259. package/dist/types/functions/config_utils/imports.d.ts +0 -0
  260. package/dist/types/functions/config_utils/index.d.ts +0 -0
  261. package/dist/types/functions/config_utils/src/config_utils.d.ts +0 -0
  262. package/dist/types/functions/config_utils/src/index.d.ts +0 -0
  263. package/dist/types/functions/constants_utils/index.d.ts +0 -0
  264. package/dist/types/functions/constants_utils/src/constants.d.ts +0 -0
  265. package/dist/types/functions/constants_utils/src/index.d.ts +0 -0
  266. package/dist/types/functions/env_utils/imports.d.ts +0 -0
  267. package/dist/types/functions/env_utils/index.d.ts +0 -0
  268. package/dist/types/functions/env_utils/src/index.d.ts +0 -0
  269. package/dist/types/functions/env_utils/src/window_utils.d.ts +0 -0
  270. package/dist/types/functions/fetch_utils/imports.d.ts +0 -0
  271. package/dist/types/functions/fetch_utils/index.d.ts +0 -0
  272. package/dist/types/functions/fetch_utils/src/fetch_utils.d.ts +0 -0
  273. package/dist/types/functions/fetch_utils/src/index.d.ts +0 -0
  274. package/dist/types/functions/fetch_utils/src/url_utils.d.ts +0 -0
  275. package/dist/types/functions/fetch_utils/src/utils.d.ts +0 -0
  276. package/dist/types/functions/index.d.ts +0 -0
  277. package/dist/types/functions/inspect_utils/imports.d.ts +0 -0
  278. package/dist/types/functions/inspect_utils/index.d.ts +0 -0
  279. package/dist/types/functions/inspect_utils/src/caller_utils.d.ts +0 -0
  280. package/dist/types/functions/inspect_utils/src/index.d.ts +0 -0
  281. package/dist/types/functions/math_utils/bigint_utils.d.ts +0 -0
  282. package/dist/types/functions/math_utils/constants.d.ts +0 -0
  283. package/dist/types/functions/math_utils/conversions.d.ts +0 -0
  284. package/dist/types/functions/math_utils/index.d.ts +0 -0
  285. package/dist/types/functions/math_utils/safe_math.d.ts +0 -0
  286. package/dist/types/functions/math_utils/scaleInterfaces.d.ts +0 -0
  287. package/dist/types/functions/math_utils/time_utils.d.ts +0 -0
  288. package/dist/types/functions/path_utils/imports.d.ts +0 -0
  289. package/dist/types/functions/path_utils/index.d.ts +0 -0
  290. package/dist/types/functions/path_utils/src/base_dirs.d.ts +0 -0
  291. package/dist/types/functions/path_utils/src/function_dirs.d.ts +0 -0
  292. package/dist/types/functions/path_utils/src/index.d.ts +0 -0
  293. package/dist/types/functions/path_utils/src/misc_dirs.d.ts +0 -0
  294. package/dist/types/functions/path_utils/src/path_utils.d.ts +0 -0
  295. package/dist/types/functions/path_utils/src/paths.d.ts +0 -0
  296. package/dist/types/functions/path_utils/src/src_dirs.d.ts +0 -0
  297. package/dist/types/functions/print_utils/imports.d.ts +0 -0
  298. package/dist/types/functions/print_utils/index.d.ts +0 -0
  299. package/dist/types/functions/print_utils/src/index.d.ts +0 -0
  300. package/dist/types/functions/print_utils/src/print_utils.d.ts +0 -0
  301. package/dist/types/functions/read_utils/imports.d.ts +0 -0
  302. package/dist/types/functions/read_utils/index.d.ts +0 -0
  303. package/dist/types/functions/read_utils/src/index.d.ts +0 -0
  304. package/dist/types/functions/read_utils/src/readJsonFile.browser.d.ts +0 -0
  305. package/dist/types/functions/read_utils/src/readJsonFile.d.ts +1 -1
  306. package/dist/types/functions/read_utils/src/readJsonFile.node.d.ts +0 -0
  307. package/dist/types/functions/rndm_utils/imports.d.ts +0 -0
  308. package/dist/types/functions/rndm_utils/index.d.ts +0 -0
  309. package/dist/types/functions/rndm_utils/src/index.d.ts +0 -0
  310. package/dist/types/functions/rndm_utils/src/utils.d.ts +0 -0
  311. package/dist/types/functions/safe_utils/imports.d.ts +0 -0
  312. package/dist/types/functions/safe_utils/index.d.ts +0 -0
  313. package/dist/types/functions/safe_utils/src/index.d.ts +0 -0
  314. package/dist/types/functions/safe_utils/src/safe_document.d.ts +0 -0
  315. package/dist/types/functions/safe_utils/src/safe_globals.d.ts +0 -0
  316. package/dist/types/functions/safe_utils/src/safe_storage.d.ts +0 -0
  317. package/dist/types/functions/safe_utils/src/safe_window.d.ts +0 -0
  318. package/dist/types/functions/size_utils/index.d.ts +0 -0
  319. package/dist/types/functions/size_utils/src/index.d.ts +0 -0
  320. package/dist/types/functions/size_utils/src/sizeUtils.d.ts +0 -1
  321. package/dist/types/functions/string_utils/index.d.ts +0 -0
  322. package/dist/types/functions/string_utils/src/index.d.ts +0 -0
  323. package/dist/types/functions/string_utils/src/quote_utils.d.ts +0 -0
  324. package/dist/types/functions/string_utils/src/string_utils.d.ts +0 -0
  325. package/dist/types/functions/type_utils/imports.d.ts +0 -0
  326. package/dist/types/functions/type_utils/index.d.ts +0 -0
  327. package/dist/types/functions/type_utils/src/clean_utils.d.ts +0 -0
  328. package/dist/types/functions/type_utils/src/ensure_utils.d.ts +0 -0
  329. package/dist/types/functions/type_utils/src/imports.d.ts +0 -0
  330. package/dist/types/functions/type_utils/src/index.d.ts +0 -0
  331. package/dist/types/functions/type_utils/src/json_utils.d.ts +0 -0
  332. package/dist/types/functions/type_utils/src/list_utils.d.ts +0 -0
  333. package/dist/types/functions/type_utils/src/mime_utils.d.ts +0 -0
  334. package/dist/types/functions/type_utils/src/null_utils.d.ts +0 -0
  335. package/dist/types/functions/type_utils/src/type_utils.d.ts +0 -0
  336. package/dist/types/functions/variable_utils/imports.d.ts +0 -0
  337. package/dist/types/functions/variable_utils/index.d.ts +0 -0
  338. package/dist/types/functions/variable_utils/src/index.d.ts +0 -0
  339. package/dist/types/functions/variable_utils/src/variable_utils.d.ts +0 -0
  340. package/dist/types/index.d.ts +0 -0
  341. package/dist/types/server/index.d.ts +0 -0
  342. package/dist/types/server/src/index.d.ts +0 -0
  343. package/dist/types/server/src/read_utils/imports.d.ts +0 -0
  344. package/dist/types/server/src/read_utils/index.d.ts +0 -0
  345. package/dist/types/server/src/read_utils/src/index.d.ts +0 -0
  346. package/dist/types/server/src/read_utils/src/readJsonFile.node.d.ts +0 -0
  347. package/dist/types/types/index.d.ts +0 -0
  348. package/dist/types/types/src/Files.d.ts +0 -0
  349. package/dist/types/types/src/index.d.ts +0 -0
  350. package/dist/types/types/src/login.d.ts +1 -0
  351. package/dist/types/types/src/logout.d.ts +0 -0
  352. package/dist/types/types/src/utils.d.ts +0 -0
  353. package/dist/types/utils/imports.d.ts +0 -0
  354. package/dist/types/utils/index.d.ts +0 -0
  355. package/dist/types/utils/src/Input.d.ts +0 -0
  356. package/dist/types/utils/src/config.d.ts +0 -0
  357. package/dist/types/utils/src/index.d.ts +0 -0
  358. package/package.json +1 -1
  359. package/dist/cjs/mime_utils-C_5iR69h.js +0 -947
  360. package/dist/cjs/mime_utils-C_5iR69h.js.map +0 -1
  361. package/dist/cjs/print_utils-BdE9G4f_.js +0 -1948
  362. package/dist/cjs/print_utils-BdE9G4f_.js.map +0 -1
  363. package/dist/cjs/print_utils-BwO0I452.js +0 -1859
  364. package/dist/cjs/print_utils-BwO0I452.js.map +0 -1
  365. package/dist/cjs/print_utils-CFPmwcIq.js +0 -1845
  366. package/dist/cjs/print_utils-CFPmwcIq.js.map +0 -1
  367. package/dist/cjs/print_utils-D85MeEz4.js +0 -1948
  368. package/dist/cjs/print_utils-D85MeEz4.js.map +0 -1
  369. package/dist/cjs/print_utils-DA-vFdOl.js +0 -1907
  370. package/dist/cjs/print_utils-DA-vFdOl.js.map +0 -1
  371. package/dist/cjs/print_utils-DhPs0s0W.js +0 -1845
  372. package/dist/cjs/print_utils-DhPs0s0W.js.map +0 -1
  373. package/dist/cjs/print_utils-Dsre-F_V.js +0 -1863
  374. package/dist/cjs/print_utils-Dsre-F_V.js.map +0 -1
  375. package/dist/cjs/safe_storage-B6MYZDKg.js +0 -941
  376. package/dist/cjs/safe_storage-B6MYZDKg.js.map +0 -1
  377. package/dist/cjs/safe_storage-BSCV5flZ.js +0 -947
  378. package/dist/cjs/safe_storage-BSCV5flZ.js.map +0 -1
  379. package/dist/esm/mime_utils-CdGKGoR7.js.map +0 -1
  380. package/dist/esm/print_utils-Bg-2k-Zo.js +0 -1612
  381. package/dist/esm/print_utils-Bg-2k-Zo.js.map +0 -1
  382. package/dist/esm/print_utils-DHCwLBDO.js +0 -1667
  383. package/dist/esm/print_utils-DHCwLBDO.js.map +0 -1
  384. package/dist/esm/print_utils-DP-c0Qkw.js +0 -1628
  385. package/dist/esm/print_utils-DP-c0Qkw.js.map +0 -1
  386. package/dist/esm/print_utils-DRJ0Ka2-.js +0 -1706
  387. package/dist/esm/print_utils-DRJ0Ka2-.js.map +0 -1
  388. package/dist/esm/print_utils-DlZVeNG9.js +0 -1706
  389. package/dist/esm/print_utils-DlZVeNG9.js.map +0 -1
  390. package/dist/esm/print_utils-gTxtZBM7.js +0 -1612
  391. package/dist/esm/print_utils-gTxtZBM7.js.map +0 -1
  392. package/dist/esm/print_utils-p0I6-E-k.js +0 -1624
  393. package/dist/esm/print_utils-p0I6-E-k.js.map +0 -1
  394. package/dist/esm/safe_storage-BmC80yrG.js +0 -903
  395. package/dist/esm/safe_storage-BmC80yrG.js.map +0 -1
  396. package/dist/esm/safe_storage-D4QfcTw0.js.map +0 -1
  397. package/dist/types/browser/mediaTypes.fs.d.ts +0 -0
  398. package/dist/types/client/ui_utils/index.d.ts +0 -1
  399. package/dist/types/client/ui_utils/src/button.d.ts +0 -6
  400. package/dist/types/client/ui_utils/src/checkbox.d.ts +0 -4
  401. package/dist/types/client/ui_utils/src/index.d.ts +0 -4
  402. package/dist/types/client/ui_utils/src/input.d.ts +0 -5
  403. package/dist/types/client/ui_utils/src/spinner.d.ts +0 -1
  404. package/dist/types/server/src/mediaTypes.core.d.ts +0 -37
  405. package/dist/types/server/src/mime_utils.d.ts +0 -151
  406. package/dist/types/types/path-browserify.d.ts +0 -4
@@ -0,0 +1,32 @@
1
+ //src/browser/src/read_utils
2
+ /**
3
+ * Safely walk `globalThis` (or window/document) by a chain of property names.
4
+ * Returns `undefined` if any step is missing.
5
+ */
6
+ function safeGlobalProp(...path) {
7
+ let obj = globalThis;
8
+ for (const key of path) {
9
+ if (obj == null || typeof obj !== "object" || !(key in obj)) {
10
+ return undefined;
11
+ }
12
+ obj = obj[key];
13
+ }
14
+ return obj;
15
+ }
16
+ async function readJsonFileBrowser(url) {
17
+ const fetchFn = safeGlobalProp("fetch");
18
+ if (typeof fetchFn !== "function")
19
+ return null;
20
+ try {
21
+ const res = await fetchFn(url);
22
+ if (!res.ok)
23
+ return null;
24
+ return (await res.json());
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+
31
+ export { readJsonFileBrowser, safeGlobalProp };
32
+ //# sourceMappingURL=readJsonFile.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readJsonFile.browser.js","sources":["../../../../../../../src/browser/src/read_utils/src/readJsonFile.browser.ts"],"sourcesContent":["//src/browser/src/read_utils\n/** \n * Safely walk `globalThis` (or window/document) by a chain of property names.\n * Returns `undefined` if any step is missing.\n */\nexport function safeGlobalProp<T = any>(...path: string[]): T | undefined {\n let obj: any = globalThis;\n for (const key of path) {\n if (obj == null || typeof obj !== \"object\" || !(key in obj)) {\n return undefined;\n }\n obj = obj[key];\n }\n return obj as T;\n}\n\nexport async function readJsonFileBrowser<T = any>(\n url: string\n): Promise<T | null> {\n const fetchFn = safeGlobalProp<typeof fetch>(\"fetch\");\n if (typeof fetchFn !== \"function\") return null;\n\n try {\n const res = await fetchFn(url);\n if (!res.ok) return null;\n return (await res.json()) as T;\n } catch {\n return null;\n }\n}\n"],"names":[],"mappings":"AAAA;AACA;;;AAGG;AACG,SAAU,cAAc,CAAU,GAAG,IAAc,EAAA;IACvD,IAAI,GAAG,GAAQ,UAAU;AACzB,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,QAAA,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE;AAC3D,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IAChB;AACA,IAAA,OAAO,GAAQ;AACjB;AAEO,eAAe,mBAAmB,CACvC,GAAW,EAAA;AAEX,IAAA,MAAM,OAAO,GAAG,cAAc,CAAe,OAAO,CAAC;IACrD,IAAI,OAAO,OAAO,KAAK,UAAU;AAAE,QAAA,OAAO,IAAI;AAE9C,IAAA,IAAI;AACF,QAAA,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;AAAE,YAAA,OAAO,IAAI;AACxB,QAAA,QAAQ,MAAM,GAAG,CAAC,IAAI,EAAE;IAC1B;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;;;;"}
@@ -0,0 +1,79 @@
1
+ import { decodeJwt, isTokenExpired } from '../../../functions/auth_utils/src/jwt_core.js';
2
+ import { callStorage } from '../../../functions/safe_utils/src/safe_storage.js';
3
+ import '../../../../node_modules/path-browserify/index.js';
4
+ import '../../../functions/type_utils/src/mime_utils.js';
5
+ import 'util';
6
+
7
+ /** Read raw JWT from LocalStorage (or null if absent) */
8
+ function getToken() {
9
+ return callStorage('getItem', 'token');
10
+ }
11
+ function isLoggedIn() {
12
+ const tok = getToken();
13
+ return !!tok && !isTokenExpired(tok ?? "");
14
+ }
15
+ /**
16
+ * Add a Bearer Authorization header.
17
+ * A shallow copy of headers is returned so callers can keep chaining.
18
+ */
19
+ function getAuthorizationHeader(headers = {}, token = null) {
20
+ token = token ?? getToken();
21
+ headers = headers || {};
22
+ if (token)
23
+ headers["Authorization"] = `Bearer ${token}`;
24
+ return { ...headers };
25
+ }
26
+ /** Throw + redirect if there’s no valid token; otherwise return it. */
27
+ function requireToken() {
28
+ const tok = getToken();
29
+ if (!tok || isTokenExpired(tok)) {
30
+ console.warn("→ No token or expired token, redirecting to login…");
31
+ localStorage.removeItem("token");
32
+ window.location.href = '/';
33
+ throw new Error("Redirecting to login…");
34
+ }
35
+ return tok;
36
+ }
37
+ /** Convenience wrapper: return username from the JWT (or null). */
38
+ function currentUsername() {
39
+ const tok = getToken();
40
+ if (!tok)
41
+ return null;
42
+ try {
43
+ const { username } = decodeJwt(tok);
44
+ return username ?? null;
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ function currentUsernames() {
51
+ const tok = getToken();
52
+ if (!tok)
53
+ return null;
54
+ try {
55
+ const parts = tok.split(".");
56
+ if (parts.length !== 3)
57
+ return null;
58
+ let b64 = parts[1].replace(/-/g, "+").replace(/_/g, "/");
59
+ b64 = b64.padEnd(Math.ceil(b64.length / 4) * 4, "=");
60
+ const jsonText = atob(b64);
61
+ const payload = JSON.parse(jsonText);
62
+ return payload.username ?? null;
63
+ }
64
+ catch {
65
+ return null;
66
+ }
67
+ }
68
+ /** Remove the JWT from LocalStorage */
69
+ function removeToken() {
70
+ try {
71
+ callStorage('removeItem', 'token');
72
+ }
73
+ catch (err) {
74
+ console.warn("Failed to remove token:", err);
75
+ }
76
+ }
77
+
78
+ export { currentUsername, currentUsernames, getAuthorizationHeader, getToken, isLoggedIn, removeToken, requireToken };
79
+ //# sourceMappingURL=token_client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token_client.js","sources":["../../../../../../src/client/auth/src/token_client.ts"],"sourcesContent":["\nimport {\n isTokenExpired,\n decodeJwt,\n callStorage\n} from './../../../functions/index.js'\n\n/** Read raw JWT from LocalStorage (or null if absent) */\nexport function getToken(): string | null | any {\n return callStorage('getItem', 'token');\n}\n\n\nexport function isLoggedIn() {\n const tok = getToken();\n return !!tok && !isTokenExpired(tok ?? \"\");\n}\n\n\n/**\n * Add a Bearer Authorization header.\n * A shallow copy of headers is returned so callers can keep chaining.\n */\nexport function getAuthorizationHeader(\n headers: Record<string, string> | null = {},\n token: string | null = null\n): Record<string, string> {\n token = token ?? getToken();\n headers = headers || {}\n if (token) headers[\"Authorization\"] = `Bearer ${token}`;\n return { ...headers };\n}\n\n\n/** Throw + redirect if there’s no valid token; otherwise return it. */\nexport function requireToken(): string {\n const tok = getToken();\n if (!tok || isTokenExpired(tok)) {\n console.warn(\"→ No token or expired token, redirecting to login…\");\n localStorage.removeItem(\"token\");\n window.location.href = '/';\n throw new Error(\"Redirecting to login…\");\n }\n return tok;\n}\n\n\n\n\n/** Convenience wrapper: return username from the JWT (or null). */\nexport function currentUsername() {\n const tok = getToken();\n if (!tok) return null;\n try {\n const { username } = decodeJwt(tok);\n return username ?? null;\n } catch {\n return null;\n }\n}\nexport function currentUsernames() {\n const tok = getToken();\n if (!tok) return null;\n try {\n const parts = tok.split(\".\");\n if (parts.length !== 3) return null;\n let b64 = parts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n b64 = b64.padEnd(Math.ceil(b64.length / 4) * 4, \"=\");\n const jsonText = atob(b64);\n const payload = JSON.parse(jsonText);\n return payload.username ?? null;\n } catch {\n return null;\n }\n}\n\n/** Remove the JWT from LocalStorage */\nexport function removeToken(): void {\n try {\n callStorage('removeItem', 'token');\n } catch (err) {\n console.warn(\"Failed to remove token:\", err);\n }\n}"],"names":[],"mappings":";;;;;;AAOA;SACgB,QAAQ,GAAA;AACtB,IAAA,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC;AACxC;SAGgB,UAAU,GAAA;AACxB,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;IACtB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC;AAC5C;AAGA;;;AAGG;SACa,sBAAsB,CACpC,UAAyC,EAAE,EAC3C,QAAuB,IAAI,EAAA;AAE3B,IAAA,KAAK,GAAG,KAAK,IAAI,QAAQ,EAAE;AAC3B,IAAA,OAAO,GAAG,OAAO,IAAI,EAAE;AACvB,IAAA,IAAI,KAAK;AAAE,QAAA,OAAO,CAAC,eAAe,CAAC,GAAG,CAAA,OAAA,EAAU,KAAK,EAAE;AACvD,IAAA,OAAO,EAAE,GAAG,OAAO,EAAE;AACvB;AAGA;SACgB,YAAY,GAAA;AAC1B,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;IACtB,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAA,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;AAClE,QAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AAChC,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG;AAC1B,QAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;IAC1C;AACA,IAAA,OAAO,GAAG;AACZ;AAKA;SACgB,eAAe,GAAA;AAC7B,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;AACtB,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI;AACrB,IAAA,IAAI;QACF,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC;QACnC,OAAO,QAAQ,IAAI,IAAI;IACzB;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;SACgB,gBAAgB,GAAA;AAC9B,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;AACtB,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI;AACrB,IAAA,IAAI;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;QACnC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACxD,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpC,QAAA,OAAO,OAAO,CAAC,QAAQ,IAAI,IAAI;IACjC;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;AAEA;SACgB,WAAW,GAAA;AACzB,IAAA,IAAI;AACF,QAAA,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC;IACpC;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAC9C;AACF;;;;"}
@@ -0,0 +1,28 @@
1
+ /** True if token is structurally bad or its exp ≤ now. */
2
+ function isTokenExpired(token) {
3
+ try {
4
+ const payload = decodeJwt(token);
5
+ return Date.now() / 1000 >= payload.exp;
6
+ }
7
+ catch {
8
+ return true; // treat malformed token as expired
9
+ }
10
+ }
11
+ /* ------------------------------------------------------------------ */
12
+ /* internals */
13
+ /* ------------------------------------------------------------------ */
14
+ function decodeJwt(token) {
15
+ const [header, payload, signature] = token.split(".");
16
+ if (!header || !payload || !signature) {
17
+ throw new Error("Malformed JWT");
18
+ }
19
+ // Handle URL-safe Base64
20
+ let b64 = payload.replace(/-/g, "+").replace(/_/g, "/");
21
+ // Add padding if necessary
22
+ b64 = b64.padEnd(Math.ceil(b64.length / 4) * 4, "=");
23
+ const jsonText = atob(b64);
24
+ return JSON.parse(jsonText);
25
+ }
26
+
27
+ export { decodeJwt, isTokenExpired };
28
+ //# sourceMappingURL=jwt_core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt_core.js","sources":["../../../../../../src/functions/auth_utils/src/jwt_core.ts"],"sourcesContent":["/**\n * Helpers for dealing with the JWT stored in localStorage.\n */\nimport type { JwtPayload } from './../imports.js';\n\n\n\n/** True if token is structurally bad or its exp ≤ now. */\nexport function isTokenExpired(token: string): boolean {\n try {\n const payload = decodeJwt(token);\n return Date.now() / 1000 >= payload.exp;\n } catch {\n return true; // treat malformed token as expired\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* internals */\n/* ------------------------------------------------------------------ */\n\nexport function decodeJwt(token: string): JwtPayload {\n const [header, payload, signature] = token.split(\".\");\n if (!header || !payload || !signature) {\n throw new Error(\"Malformed JWT\");\n }\n\n // Handle URL-safe Base64\n let b64 = payload.replace(/-/g, \"+\").replace(/_/g, \"/\");\n // Add padding if necessary\n b64 = b64.padEnd(Math.ceil(b64.length / 4) * 4, \"=\");\n\n const jsonText = atob(b64);\n return JSON.parse(jsonText) as JwtPayload;\n}"],"names":[],"mappings":"AAOA;AACM,SAAU,cAAc,CAAC,KAAa,EAAA;AAC1C,IAAA,IAAI;AACF,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG;IACzC;AAAE,IAAA,MAAM;QACN,OAAO,IAAI,CAAC;IACd;AACF;AAEA;AACA;AACA;AAEM,SAAU,SAAS,CAAC,KAAa,EAAA;AACrC,IAAA,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACrD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE;AACrC,QAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;IAClC;;AAGA,IAAA,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;IAEvD,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AAEpD,IAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAe;AAC3C;;;;"}
@@ -0,0 +1,87 @@
1
+ import { callStorage } from '../../safe_utils/src/safe_storage.js';
2
+ import { decodeJwt, isTokenExpired } from './jwt_core.js';
3
+
4
+ /**
5
+ * Helpers for dealing with the JWT stored in localStorage.
6
+ */
7
+ /**
8
+ ***Changes**:
9
+ *- Updated import path for `InputProps` to `../../types/interfaces`.
10
+ *
11
+ *3. **Token Utilities** (`src/functions/auth/token_utils.ts`):
12
+ * Copy from `/var/www/abstractendeavors/my-login-app/src/functions/auth_utils/token_utils.ts`.
13
+ *
14
+ */
15
+ /** Read raw JWT from LocalStorage (or null if absent) */
16
+ function getToken() {
17
+ return callStorage('getItem', 'token');
18
+ }
19
+ function isLoggedIn() {
20
+ const tok = getToken();
21
+ return !!tok && !isTokenExpired(tok ?? "");
22
+ }
23
+ /**
24
+ * Add a Bearer Authorization header.
25
+ * A shallow copy of headers is returned so callers can keep chaining.
26
+ */
27
+ function getAuthorizationHeader(headers = {}, token = null) {
28
+ token = token ?? getToken();
29
+ headers = headers || {};
30
+ if (token)
31
+ headers["Authorization"] = `Bearer ${token}`;
32
+ return { ...headers };
33
+ }
34
+ /** Throw + redirect if there’s no valid token; otherwise return it. */
35
+ function requireToken() {
36
+ const tok = getToken();
37
+ if (!tok || isTokenExpired(tok)) {
38
+ console.warn("→ No token or expired token, redirecting to login…");
39
+ localStorage.removeItem("token");
40
+ window.location.href = '/';
41
+ throw new Error("Redirecting to login…");
42
+ }
43
+ return tok;
44
+ }
45
+ /** Convenience wrapper: return username from the JWT (or null). */
46
+ function currentUsername() {
47
+ const tok = getToken();
48
+ if (!tok)
49
+ return null;
50
+ try {
51
+ const { username } = decodeJwt(tok);
52
+ return username ?? null;
53
+ }
54
+ catch {
55
+ return null;
56
+ }
57
+ }
58
+ function currentUsernames() {
59
+ const tok = getToken();
60
+ if (!tok)
61
+ return null;
62
+ try {
63
+ const parts = tok.split(".");
64
+ if (parts.length !== 3)
65
+ return null;
66
+ let b64 = parts[1].replace(/-/g, "+").replace(/_/g, "/");
67
+ b64 = b64.padEnd(Math.ceil(b64.length / 4) * 4, "=");
68
+ const jsonText = atob(b64);
69
+ const payload = JSON.parse(jsonText);
70
+ return payload.username ?? null;
71
+ }
72
+ catch {
73
+ return null;
74
+ }
75
+ }
76
+ /** Remove the JWT from LocalStorage */
77
+ function removeToken() {
78
+ try {
79
+ callStorage('removeItem', 'token');
80
+ }
81
+ catch (err) {
82
+ console.warn("Failed to remove token:", err);
83
+ }
84
+ }
85
+
86
+ export { currentUsername, currentUsernames, getAuthorizationHeader, getToken, isLoggedIn, removeToken, requireToken };
87
+ //# sourceMappingURL=token_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token_utils.js","sources":["../../../../../../src/functions/auth_utils/src/token_utils.ts"],"sourcesContent":["/**\n * Helpers for dealing with the JWT stored in localStorage.\n */\n\nimport { callStorage } from './../imports.js';\nimport {isTokenExpired,decodeJwt} from './jwt_core.js';\n/**\n***Changes**:\n*- Updated import path for `InputProps` to `../../types/interfaces`.\n*\n*3. **Token Utilities** (`src/functions/auth/token_utils.ts`):\n* Copy from `/var/www/abstractendeavors/my-login-app/src/functions/auth_utils/token_utils.ts`.\n*\n*/\n/** Read raw JWT from LocalStorage (or null if absent) */\nexport function getToken(): string | null | any {\n return callStorage('getItem', 'token');\n}\n\n\nexport function isLoggedIn() {\n const tok = getToken();\n return !!tok && !isTokenExpired(tok ?? \"\");\n}\n\n\n/**\n * Add a Bearer Authorization header.\n * A shallow copy of headers is returned so callers can keep chaining.\n */\nexport function getAuthorizationHeader(\n headers: Record<string, string> | null = {},\n token: string | null = null\n): Record<string, string> {\n token = token ?? getToken();\n headers = headers || {}\n if (token) headers[\"Authorization\"] = `Bearer ${token}`;\n return { ...headers };\n}\n\n\n/** Throw + redirect if there’s no valid token; otherwise return it. */\nexport function requireToken(): string {\n const tok = getToken();\n if (!tok || isTokenExpired(tok)) {\n console.warn(\"→ No token or expired token, redirecting to login…\");\n localStorage.removeItem(\"token\");\n window.location.href = '/';\n throw new Error(\"Redirecting to login…\");\n }\n return tok;\n}\n\n\n\n\n/** Convenience wrapper: return username from the JWT (or null). */\nexport function currentUsername() {\n const tok = getToken();\n if (!tok) return null;\n try {\n const { username } = decodeJwt(tok);\n return username ?? null;\n } catch {\n return null;\n }\n}\nexport function currentUsernames() {\n const tok = getToken();\n if (!tok) return null;\n try {\n const parts = tok.split(\".\");\n if (parts.length !== 3) return null;\n let b64 = parts[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\n b64 = b64.padEnd(Math.ceil(b64.length / 4) * 4, \"=\");\n const jsonText = atob(b64);\n const payload = JSON.parse(jsonText);\n return payload.username ?? null;\n } catch {\n return null;\n }\n}\n\n/** Remove the JWT from LocalStorage */\nexport function removeToken(): void {\n try {\n callStorage('removeItem', 'token');\n } catch (err) {\n console.warn(\"Failed to remove token:\", err);\n }\n}\n\n"],"names":[],"mappings":";;;AAAA;;AAEG;AAIH;;;;;;;AAOE;AACF;SACgB,QAAQ,GAAA;AACtB,IAAA,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC;AACxC;SAGgB,UAAU,GAAA;AACxB,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;IACtB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC;AAC5C;AAGA;;;AAGG;SACa,sBAAsB,CACpC,UAAyC,EAAE,EAC3C,QAAuB,IAAI,EAAA;AAE3B,IAAA,KAAK,GAAG,KAAK,IAAI,QAAQ,EAAE;AAC3B,IAAA,OAAO,GAAG,OAAO,IAAI,EAAE;AACvB,IAAA,IAAI,KAAK;AAAE,QAAA,OAAO,CAAC,eAAe,CAAC,GAAG,CAAA,OAAA,EAAU,KAAK,EAAE;AACvD,IAAA,OAAO,EAAE,GAAG,OAAO,EAAE;AACvB;AAGA;SACgB,YAAY,GAAA;AAC1B,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;IACtB,IAAI,CAAC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,QAAA,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC;AAClE,QAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;AAChC,QAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG;AAC1B,QAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;IAC1C;AACA,IAAA,OAAO,GAAG;AACZ;AAKA;SACgB,eAAe,GAAA;AAC7B,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;AACtB,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI;AACrB,IAAA,IAAI;QACF,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC;QACnC,OAAO,QAAQ,IAAI,IAAI;IACzB;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;SACgB,gBAAgB,GAAA;AAC9B,IAAA,MAAM,GAAG,GAAG,QAAQ,EAAE;AACtB,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,IAAI;AACrB,IAAA,IAAI;QACF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;QACnC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;QACxD,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;AACpD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AACpC,QAAA,OAAO,OAAO,CAAC,QAAQ,IAAI,IAAI;IACjC;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;IACb;AACF;AAEA;SACgB,WAAW,GAAA;AACzB,IAAA,IAAI;AACF,QAAA,WAAW,CAAC,YAAY,EAAE,OAAO,CAAC;IACpC;IAAE,OAAO,GAAG,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAC9C;AACF;;;;"}
@@ -0,0 +1,74 @@
1
+ import { safeGlobalProp } from '../../safe_utils/src/safe_globals.js';
2
+ import { readJsonFile } from '../../read_utils/src/readJsonFile.js';
3
+
4
+ // src/functions/config_utils/src/config_utils.ts
5
+ let _cachedConfig = null;
6
+ async function loadConfig(filePath = null) {
7
+ if (_cachedConfig) {
8
+ return _cachedConfig;
9
+ }
10
+ // 1) figure out where config.json lives
11
+ let configUrl;
12
+ if (filePath) {
13
+ configUrl = filePath;
14
+ }
15
+ else if (typeof import.meta !== 'undefined' && typeof import.meta.url === 'string') {
16
+ // ES module: resolve relative to this file
17
+ try {
18
+ const mod = await (new Function("return import('./config.json').catch(() => ({}))"))();
19
+ _cachedConfig = mod.default ?? {};
20
+ return _cachedConfig;
21
+ }
22
+ catch {
23
+ configUrl = 'config.json';
24
+ }
25
+ }
26
+ else {
27
+ // browser fallback
28
+ const baseURI = safeGlobalProp('document', 'baseURI');
29
+ try {
30
+ configUrl =
31
+ typeof baseURI === 'string'
32
+ ? new URL('config.json', baseURI).href
33
+ : 'config.json';
34
+ }
35
+ catch {
36
+ configUrl = 'config.json';
37
+ }
38
+ }
39
+ // 2) if we have a fetch, try HTTP(S)
40
+ const fetchFn = safeGlobalProp('fetch');
41
+ if (typeof fetchFn === 'function') {
42
+ try {
43
+ const res = await fetchFn(configUrl);
44
+ if (res.ok) {
45
+ const json = await res.json();
46
+ // cache & return
47
+ _cachedConfig = json ?? {};
48
+ return _cachedConfig;
49
+ }
50
+ }
51
+ catch {
52
+ /* swallow */
53
+ }
54
+ }
55
+ // 3) Node fallback: try reading from disk (requires your readJsonFile util)
56
+ try {
57
+ const disk = await readJsonFile(configUrl);
58
+ _cachedConfig = disk ?? {};
59
+ return _cachedConfig;
60
+ }
61
+ catch {
62
+ /* swallow */
63
+ }
64
+ // 4) if all else fails, return an empty config
65
+ _cachedConfig = {};
66
+ return _cachedConfig;
67
+ }
68
+ async function getConfig(key) {
69
+ const cfg = await loadConfig();
70
+ return key != null ? cfg[key] : cfg;
71
+ }
72
+
73
+ export { getConfig, loadConfig };
74
+ //# sourceMappingURL=config_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config_utils.js","sources":["../../../../../../src/functions/config_utils/src/config_utils.ts"],"sourcesContent":["// src/config_utils.ts\nimport type { AppConfig } from \"./../imports.js\";\nimport { safeGlobalProp, readJsonFile } from \"./../imports.js\";\n// src/functions/config_utils/src/config_utils.ts\n\n\n\nlet _cachedConfig: any = null;\n\nexport async function loadConfig(filePath: string | null = null): Promise<AppConfig> {\n if (_cachedConfig) {\n return _cachedConfig;\n }\n\n // 1) figure out where config.json lives\n let configUrl: string;\n if (filePath) {\n configUrl = filePath;\n } else if (typeof import.meta !== 'undefined' && typeof import.meta.url === 'string') {\n // ES module: resolve relative to this file\n\n try {\n const mod: any = await (new Function(\n \"return import('./config.json').catch(() => ({}))\"\n ))();\n _cachedConfig = mod.default ?? {};\n return _cachedConfig;\n } catch {\n configUrl = 'config.json';\n }\n } else {\n // browser fallback\n const baseURI = safeGlobalProp<Document>('document', 'baseURI');\n try {\n configUrl =\n typeof baseURI === 'string'\n ? new URL('config.json', baseURI).href\n : 'config.json';\n } catch {\n configUrl = 'config.json';\n }\n }\n\n // 2) if we have a fetch, try HTTP(S)\n const fetchFn = safeGlobalProp<typeof fetch>('fetch');\n if (typeof fetchFn === 'function') {\n try {\n const res = await fetchFn(configUrl);\n if (res.ok) {\n const json = await res.json();\n // cache & return\n _cachedConfig = (json as AppConfig) ?? {};\n return _cachedConfig;\n }\n } catch {\n /* swallow */\n }\n }\n\n // 3) Node fallback: try reading from disk (requires your readJsonFile util)\n try {\n const disk = await readJsonFile<AppConfig>(configUrl);\n _cachedConfig = disk ?? {};\n return _cachedConfig;\n } catch {\n /* swallow */\n }\n\n // 4) if all else fails, return an empty config\n _cachedConfig = {} as AppConfig;\n return _cachedConfig;\n}\n\n/** \n * getConfig(): Promise<AppConfig> \n * getConfig(key): Promise<AppConfig[K]> \n */\nexport function getConfig(): Promise<AppConfig>;\nexport function getConfig<K extends keyof AppConfig>(key: K): Promise<AppConfig[K]>;\nexport async function getConfig<K extends keyof AppConfig>(\n key?: K\n): Promise<AppConfig | AppConfig[K]> {\n const cfg = await loadConfig();\n return key != null ? (cfg[key] as AppConfig[K]) : cfg;\n}\n\n"],"names":[],"mappings":";;;AAGA;AAIA,IAAI,aAAa,GAAQ,IAAI;AAEtB,eAAe,UAAU,CAAC,WAA0B,IAAI,EAAA;IAC7D,IAAI,aAAa,EAAE;AACjB,QAAA,OAAO,aAAa;IACtB;;AAGA,IAAA,IAAI,SAAiB;IACrB,IAAI,QAAQ,EAAE;QACZ,SAAS,GAAG,QAAQ;IACtB;AAAO,SAAA,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;;AAGpF,QAAA,IAAI;YACF,MAAM,GAAG,GAAQ,MAAM,CAAC,IAAI,QAAQ,CAClC,kDAAkD,CACnD,GAAG;AACJ,YAAA,aAAa,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE;AACjC,YAAA,OAAO,aAAa;QACtB;AAAE,QAAA,MAAM;YACN,SAAS,GAAG,aAAa;QAC3B;IACF;SAAO;;QAEL,MAAM,OAAO,GAAG,cAAc,CAAW,UAAU,EAAE,SAAS,CAAC;AAC/D,QAAA,IAAI;YACF,SAAS;gBACP,OAAO,OAAO,KAAK;sBACf,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;sBAChC,aAAa;QACrB;AAAE,QAAA,MAAM;YACN,SAAS,GAAG,aAAa;QAC3B;IACF;;AAGA,IAAA,MAAM,OAAO,GAAG,cAAc,CAAe,OAAO,CAAC;AACrD,IAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;AACjC,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC;AACpC,YAAA,IAAI,GAAG,CAAC,EAAE,EAAE;AACV,gBAAA,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;;AAE7B,gBAAA,aAAa,GAAI,IAAkB,IAAI,EAAE;AACzC,gBAAA,OAAO,aAAa;YACtB;QACF;AAAE,QAAA,MAAM;;QAER;IACF;;AAGA,IAAA,IAAI;AACF,QAAA,MAAM,IAAI,GAAG,MAAM,YAAY,CAAY,SAAS,CAAC;AACrD,QAAA,aAAa,GAAG,IAAI,IAAI,EAAE;AAC1B,QAAA,OAAO,aAAa;IACtB;AAAE,IAAA,MAAM;;IAER;;IAGA,aAAa,GAAG,EAAe;AAC/B,IAAA,OAAO,aAAa;AACtB;AAQO,eAAe,SAAS,CAC7B,GAAO,EAAA;AAEP,IAAA,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE;AAC9B,IAAA,OAAO,GAAG,IAAI,IAAI,GAAI,GAAG,CAAC,GAAG,CAAkB,GAAG,GAAG;AACvD;;;;"}
@@ -0,0 +1,10 @@
1
+ const PROTOCOL = 'https://';
2
+ const DOMAIN_NAME = 'abstractendeavors';
3
+ const BASE_URL = `${PROTOCOL}${DOMAIN_NAME}.com`;
4
+ const SUB_DIR = 'secure-files';
5
+ const PROD_PREFIX = `/${SUB_DIR}/`;
6
+ const API_PREFIX = `/${SUB_DIR}/api`;
7
+ const DEV_PREFIX = `/${SUB_DIR}-dev/`;
8
+
9
+ export { API_PREFIX, BASE_URL, DEV_PREFIX, DOMAIN_NAME, PROD_PREFIX, PROTOCOL, SUB_DIR };
10
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/functions/constants_utils/src/constants.ts"],"sourcesContent":["export const PROTOCOL='https://';\nexport const DOMAIN_NAME = 'abstractendeavors';\nexport const BASE_URL = `${PROTOCOL}${DOMAIN_NAME}.com`;\nexport const SUB_DIR = 'secure-files';\nexport const PROD_PREFIX = `/${SUB_DIR}/`;\nexport const API_PREFIX = `/${SUB_DIR}/api`;\nexport const DEV_PREFIX = `/${SUB_DIR}-dev/`;\n\n\n"],"names":[],"mappings":"AAAO,MAAM,QAAQ,GAAC;AACf,MAAM,WAAW,GAAG;MACd,QAAQ,GAAG,GAAG,QAAQ,CAAA,EAAG,WAAW,CAAA,IAAA;AAC1C,MAAM,OAAO,GAAG;AAChB,MAAM,WAAW,GAAG,CAAA,CAAA,EAAI,OAAO;AAC/B,MAAM,UAAU,GAAG,CAAA,CAAA,EAAI,OAAO;AAC9B,MAAM,UAAU,GAAG,CAAA,CAAA,EAAI,OAAO;;;;"}
@@ -0,0 +1,51 @@
1
+ import { BASE_URL, DEV_PREFIX } from '../../constants_utils/src/constants.js';
2
+
3
+ function get_window() {
4
+ try {
5
+ if (typeof window !== 'undefined') {
6
+ return window;
7
+ }
8
+ }
9
+ catch (err) {
10
+ alert(err);
11
+ }
12
+ return null;
13
+ }
14
+ function get_window_location() {
15
+ try {
16
+ const Window = get_window();
17
+ if (!Window) {
18
+ return BASE_URL;
19
+ }
20
+ return Window.location;
21
+ }
22
+ catch (err) {
23
+ alert(err);
24
+ }
25
+ return null;
26
+ }
27
+ function get_window_pathname() {
28
+ try {
29
+ const Window = get_window();
30
+ if (!Window) {
31
+ return DEV_PREFIX;
32
+ }
33
+ return Window.location.pathname;
34
+ }
35
+ catch (err) {
36
+ alert(err);
37
+ }
38
+ return null;
39
+ }
40
+ function get_window_parts() {
41
+ try {
42
+ return get_window_location();
43
+ }
44
+ catch (err) {
45
+ alert(err);
46
+ }
47
+ return null;
48
+ }
49
+
50
+ export { get_window, get_window_location, get_window_parts, get_window_pathname };
51
+ //# sourceMappingURL=window_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window_utils.js","sources":["../../../../../../src/functions/env_utils/src/window_utils.ts"],"sourcesContent":["import {BASE_URL,DEV_PREFIX} from './../imports.js';\nexport function get_window() {\n try{\n if (typeof window !== 'undefined'){\n return window\n }\n }catch(err){\n alert(err)\n }\n return null\n}\nexport function get_window_location() {\n try{\n const Window = get_window()\n if (!Window){\n return BASE_URL\n }\n return Window.location \n }catch(err){\n alert(err)\n }\n return null\n}\nexport function get_window_pathname() {\n try{\n const Window = get_window()\n if (!Window){\n return DEV_PREFIX\n }\n return Window.location.pathname\n }catch(err){\n alert(err)\n }\n return null\n}\nexport function get_window_parts() {\n try{\n return get_window_location()\n }catch(err){\n alert(err)\n }\n return null\n}\n\n"],"names":[],"mappings":";;SACgB,UAAU,GAAA;AACvB,IAAA,IAAG;AACA,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAC;AAC/B,YAAA,OAAO,MAAM;QAChB;IACH;IAAC,OAAM,GAAG,EAAC;QACR,KAAK,CAAC,GAAG,CAAC;IACb;AACA,IAAA,OAAO,IAAI;AACd;SACgB,mBAAmB,GAAA;AAChC,IAAA,IAAG;AACA,QAAA,MAAM,MAAM,GAAG,UAAU,EAAE;QAC3B,IAAI,CAAC,MAAM,EAAC;AACT,YAAA,OAAO,QAAQ;QAClB;QACA,OAAO,MAAM,CAAC,QAAQ;IACzB;IAAC,OAAM,GAAG,EAAC;QACR,KAAK,CAAC,GAAG,CAAC;IACb;AACA,IAAA,OAAO,IAAI;AACd;SACgB,mBAAmB,GAAA;AAChC,IAAA,IAAG;AACA,QAAA,MAAM,MAAM,GAAG,UAAU,EAAE;QAC3B,IAAI,CAAC,MAAM,EAAC;AACT,YAAA,OAAO,UAAU;QACpB;AACA,QAAA,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ;IAClC;IAAC,OAAM,GAAG,EAAC;QACR,KAAK,CAAC,GAAG,CAAC;IACb;AACA,IAAA,OAAO,IAAI;AACd;SACgB,gBAAgB,GAAA;AAC7B,IAAA,IAAG;QACA,OAAO,mBAAmB,EAAE;IAC/B;IAAC,OAAM,GAAG,EAAC;QACR,KAAK,CAAC,GAAG,CAAC;IACb;AACA,IAAA,OAAO,IAAI;AACd;;;;"}
@@ -0,0 +1,60 @@
1
+ import { getResult } from './utils.js';
2
+
3
+ async function fetchIt(endpoint, body = null, method = null, headers = null, blob = false, configUrl = false, withCredentials = true, returnJson = true, returnReult = true) {
4
+ method = (method || "GET").toUpperCase();
5
+ // 2) choose the URL
6
+ const url = endpoint;
7
+ // 3) prepare headers & body
8
+ headers = {
9
+ ...(body instanceof FormData ? {} : { "Content-Type": "application/json" }),
10
+ ...headers,
11
+ };
12
+ const opts = {
13
+ method,
14
+ credentials: withCredentials ? "include" : "same-origin",
15
+ headers,
16
+ body: body instanceof FormData
17
+ ? body
18
+ : body != null && method !== "GET"
19
+ ? JSON.stringify(body)
20
+ : undefined,
21
+ };
22
+ console.debug("➡️ secureFetchIt →", url, opts);
23
+ const res = await fetch(url, opts);
24
+ if (!res.ok) {
25
+ const err = await res.text();
26
+ throw new Error(`HTTP ${res.status}: ${err}`);
27
+ }
28
+ if (blob)
29
+ return res.blob();
30
+ if (returnReult)
31
+ return getResult(res.json());
32
+ if (returnJson)
33
+ return res.json();
34
+ return res;
35
+ }
36
+ // Constructs HTML directory path
37
+ function getHtmlDirectory(directory, filename) {
38
+ return `${directory}/${filename}.html`;
39
+ }
40
+ // Fetches HTML content
41
+ async function fetchIndexHtml(filename, directory = 'sf_index', base = 'html') {
42
+ const url = `/${base}/${directory}/${filename}.html`;
43
+ const response = await fetch(url);
44
+ return await response.text();
45
+ }
46
+ // Fetches and injects HTML content into container
47
+ async function fetchIndexHtmlContainer(filename, doc = document, directory = 'html') {
48
+ const container = `${filename}-container`;
49
+ const html = await fetchIndexHtml(filename, directory);
50
+ const el = doc.getElementById(container);
51
+ if (el) {
52
+ el.innerHTML = html;
53
+ }
54
+ else {
55
+ console.warn(`⚠️ No container found for: #${container}`);
56
+ }
57
+ }
58
+
59
+ export { fetchIndexHtml, fetchIndexHtmlContainer, fetchIt, getHtmlDirectory };
60
+ //# sourceMappingURL=fetch_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch_utils.js","sources":["../../../../../../src/functions/fetch_utils/src/fetch_utils.ts"],"sourcesContent":["\nimport {getResult} from './utils.js';\n// Constructs API URL from endpoint\n\n\n\nexport function fetchIt<T>(\n url: any,\n body?: any,\n method?: any,\n headers?: Record<string,string> | null,\n blob?: boolean,\n configUrl?: boolean,\n withCredentials?: boolean,\n returnJson?: boolean,\n returnReult?: boolean,\n): Promise<T>;\n// 2) When blob = true, we return a Blob\nexport function fetchIt(\n url: any,\n body?: any,\n method?: any,\n headers?: Record<string,string> | null,\n blob?: boolean,\n configUrl?: boolean,\n withCredentials?: boolean,\n returnJson?: boolean,\n returnReult?: boolean,\n): Promise<Blob>;\nexport async function fetchIt<T = any>(\n endpoint: any,\n body: any = null,\n method: any = null,\n headers: any = null,\n blob: boolean = false,\n configUrl: boolean = false,\n withCredentials: boolean = true,\n returnJson: boolean = true,\n returnReult: boolean = true\n): Promise<any> {\n method = (method || \"GET\").toUpperCase();\n\n // 1) auto-detect absolute URLs\n const isAbsolute =\n typeof endpoint === \"string\" && /^https?:\\/\\//i.test(endpoint);\n\n // 2) choose the URL\n const url: string= endpoint;\n\n\n // 3) prepare headers & body\n headers = {\n ...(body instanceof FormData ? {} : { \"Content-Type\": \"application/json\" }),\n ...headers,\n };\n\n const opts: RequestInit = {\n method,\n credentials: withCredentials ? \"include\" : \"same-origin\",\n headers,\n body:\n body instanceof FormData\n ? body\n : body != null && method !== \"GET\"\n ? JSON.stringify(body)\n : undefined,\n };\n\n console.debug(\"➡️ secureFetchIt →\", url, opts);\n const res = await fetch(url, opts);\n if (!res.ok) {\n const err = await res.text();\n throw new Error(`HTTP ${res.status}: ${err}`);\n }\n\n if (blob) return res.blob();\n if (returnReult) return getResult(res.json());\n if (returnJson) return res.json();\n return res;\n}\n\n// Constructs HTML directory path\nexport function getHtmlDirectory(directory: string, filename: string): string {\n return `${directory}/${filename}.html`;\n}\n// Fetches HTML content\nexport async function fetchIndexHtml(\n filename: string,\n directory: string = 'sf_index',\n base: string = 'html'\n): Promise<string> {\n const url: string = `/${base}/${directory}/${filename}.html`;\n const response: Response = await fetch(url);\n return await response.text();\n}\n\n// Fetches and injects HTML content into container\nexport async function fetchIndexHtmlContainer(\n filename: string,\n doc: Document = document,\n directory: string = 'html'\n): Promise<void> {\n const container: string = `${filename}-container`;\n const html: string = await fetchIndexHtml(filename, directory);\n const el: HTMLElement | null = doc.getElementById(container);\n if (el) {\n el.innerHTML = html;\n } else {\n console.warn(`⚠️ No container found for: #${container}`);\n }\n}\n\n"],"names":[],"mappings":";;AA6BO,eAAe,OAAO,CAC3B,QAAa,EACb,IAAA,GAAY,IAAI,EAChB,MAAA,GAAc,IAAI,EAClB,OAAA,GAAe,IAAI,EACnB,IAAA,GAAgB,KAAK,EACrB,SAAA,GAAqB,KAAK,EAC1B,eAAA,GAA2B,IAAI,EAC/B,UAAA,GAAsB,IAAI,EAC1B,cAAuB,IAAI,EAAA;IAE3B,MAAM,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,WAAW,EAAE;;IAOxC,MAAM,GAAG,GAAU,QAAQ;;AAI3B,IAAA,OAAO,GAAG;AACR,QAAA,IAAI,IAAI,YAAY,QAAQ,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AAC3E,QAAA,GAAG,OAAO;KACX;AAED,IAAA,MAAM,IAAI,GAAgB;QACxB,MAAM;QACN,WAAW,EAAE,eAAe,GAAG,SAAS,GAAG,aAAa;QACxD,OAAO;QACP,IAAI,EACF,IAAI,YAAY;AACd,cAAE;AACF,cAAE,IAAI,IAAI,IAAI,IAAI,MAAM,KAAK;AAC7B,kBAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACrB,kBAAE,SAAS;KAChB;IAED,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,EAAE,IAAI,CAAC;IAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC;AAClC,IAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACX,QAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,GAAG,CAAA,CAAE,CAAC;IAC/C;AAEA,IAAA,IAAI,IAAI;AAAE,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE;AAC3B,IAAA,IAAI,WAAW;AAAE,QAAA,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AAC7C,IAAA,IAAI,UAAU;AAAE,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE;AACjC,IAAA,OAAO,GAAG;AACZ;AAEA;AACM,SAAU,gBAAgB,CAAC,SAAiB,EAAE,QAAgB,EAAA;AAClE,IAAA,OAAO,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,QAAQ,OAAO;AACxC;AACA;AACO,eAAe,cAAc,CAClC,QAAgB,EAChB,SAAA,GAAoB,UAAU,EAC9B,IAAA,GAAe,MAAM,EAAA;IAErB,MAAM,GAAG,GAAW,CAAA,CAAA,EAAI,IAAI,IAAI,SAAS,CAAA,CAAA,EAAI,QAAQ,CAAA,KAAA,CAAO;AAC5D,IAAA,MAAM,QAAQ,GAAa,MAAM,KAAK,CAAC,GAAG,CAAC;AAC3C,IAAA,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE;AAC9B;AAEA;AACO,eAAe,uBAAuB,CAC3C,QAAgB,EAChB,GAAA,GAAgB,QAAQ,EACxB,SAAA,GAAoB,MAAM,EAAA;AAE1B,IAAA,MAAM,SAAS,GAAW,CAAA,EAAG,QAAQ,YAAY;IACjD,MAAM,IAAI,GAAW,MAAM,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC9D,MAAM,EAAE,GAAuB,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC;IAC5D,IAAI,EAAE,EAAE;AACN,QAAA,EAAE,CAAC,SAAS,GAAG,IAAI;IACrB;SAAO;AACL,QAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,SAAS,CAAA,CAAE,CAAC;IAC1D;AACF;;;;"}
@@ -0,0 +1,89 @@
1
+ import path from '../../../../node_modules/path-browserify/index.js';
2
+
3
+ function urlJoin(...parts) {
4
+ const s = (parts.length === 1 && Array.isArray(parts[0]) ? parts[0] : parts);
5
+ let r = "";
6
+ for (let i = 0; i < s.length; i++) {
7
+ let d = (s[i] ?? "").toString();
8
+ if (!d)
9
+ continue;
10
+ if (i === 0)
11
+ r = d;
12
+ else {
13
+ d = d.replace(/^\/+/, "");
14
+ r = r.replace(/\/+$/, "");
15
+ r = `${r}/${d}`;
16
+ }
17
+ }
18
+ return r;
19
+ }
20
+ /**
21
+ * Returns a full URL.
22
+ * If partial_url is already absolute (starts with http), it is returned as is.
23
+ * Otherwise, it is combined with the base URL.
24
+ */
25
+ function get_full_url(partial_url, domain = null) {
26
+ if (typeof partial_url !== 'string') {
27
+ throw new Error('partial_url must be a string');
28
+ }
29
+ // If it already starts with http, assume it is absolute.
30
+ if (partial_url.startsWith('http')) {
31
+ return partial_url;
32
+ }
33
+ return urlJoin(domain, partial_url);
34
+ }
35
+ /**
36
+ * Returns a full file system path.
37
+ * If partial_path is already absolute, it is returned as is.
38
+ * Otherwise, it is joined with the base directory.
39
+ */
40
+ function get_full_path(partial_path, parent_dir = null) {
41
+ if (typeof partial_path !== 'string') {
42
+ throw new Error('partial_path must be a string');
43
+ }
44
+ if (path.isAbsolute(partial_path)) {
45
+ return partial_path;
46
+ }
47
+ return urlJoin(parent_dir, partial_path);
48
+ }
49
+ /**
50
+ * Converts a local file system path into its corresponding URL.
51
+ * It checks against the known directories in all_paths and replaces the matching base.
52
+ */
53
+ function path_to_url(filePath, all_paths) {
54
+ if (typeof filePath !== 'string') {
55
+ throw new Error('filePath must be a string');
56
+ }
57
+ for (const key in all_paths) {
58
+ const mapping = all_paths[key];
59
+ const normalizedBase = path.normalize(mapping.path);
60
+ if (filePath.startsWith(normalizedBase)) {
61
+ const relativePath = filePath.substring(normalizedBase.length);
62
+ return urlJoin(mapping.url, relativePath.replace(/\\/g, '/'));
63
+ }
64
+ }
65
+ return null;
66
+ }
67
+ /**
68
+ * Converts a URL into its corresponding local file system path.
69
+ * It checks against the known URL prefixes in all_paths and replaces the matching base.
70
+ */
71
+ function url_to_path(urlStr, all_paths) {
72
+ if (typeof urlStr !== 'string') {
73
+ throw new Error('urlStr must be a string');
74
+ }
75
+ for (const key in all_paths) {
76
+ const mapping = all_paths[key];
77
+ if (urlStr.startsWith(mapping.url)) {
78
+ const relativeUrl = urlStr.substring(mapping.url.length);
79
+ return urlJoin(mapping.path, relativeUrl);
80
+ }
81
+ }
82
+ return null;
83
+ }
84
+ function urljoin(...parts) {
85
+ return urlJoin(...parts);
86
+ }
87
+
88
+ export { get_full_path, get_full_url, path_to_url, urlJoin, url_to_path, urljoin };
89
+ //# sourceMappingURL=url_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url_utils.js","sources":["../../../../../../src/functions/fetch_utils/src/url_utils.ts"],"sourcesContent":["import path from 'path-browserify';\nexport function urlJoin(...parts: (string | undefined | null)[]) {\n const s = (parts.length === 1 && Array.isArray(parts[0]) ? parts[0] as any[] : parts) as string[];\n let r = \"\";\n for (let i = 0; i < s.length; i++) {\n let d = (s[i] ?? \"\").toString();\n if (!d) continue;\n if (i === 0) r = d;\n else {\n d = d.replace(/^\\/+/, \"\");\n r = r.replace(/\\/+$/, \"\");\n r = `${r}/${d}`;\n }\n }\n return r;\n}\n\n/**\n * Returns a full URL.\n * If partial_url is already absolute (starts with http), it is returned as is.\n * Otherwise, it is combined with the base URL.\n */\nexport function get_full_url(partial_url: any, domain: any = null) {\n if (typeof partial_url !== 'string') {\n throw new Error('partial_url must be a string');\n }\n // If it already starts with http, assume it is absolute.\n if (partial_url.startsWith('http')) {\n return partial_url;\n }\n return urlJoin(domain, partial_url);\n}\n\n/**\n * Returns a full file system path.\n * If partial_path is already absolute, it is returned as is.\n * Otherwise, it is joined with the base directory.\n */\nexport function get_full_path(partial_path: any, parent_dir: any = null) {\n if (typeof partial_path !== 'string') {\n throw new Error('partial_path must be a string');\n }\n if (path.isAbsolute(partial_path)) {\n return partial_path;\n }\n return urlJoin(parent_dir, partial_path);\n}\n/**\n * Converts a local file system path into its corresponding URL.\n * It checks against the known directories in all_paths and replaces the matching base.\n */\nexport function path_to_url(filePath: string, all_paths: any): string | null {\n if (typeof filePath !== 'string') {\n throw new Error('filePath must be a string');\n }\n for (const key in all_paths) {\n const mapping = all_paths[key as keyof typeof all_paths];\n const normalizedBase = path.normalize(mapping.path);\n if (filePath.startsWith(normalizedBase)) {\n const relativePath = filePath.substring(normalizedBase.length);\n return urlJoin(mapping.url, relativePath.replace(/\\\\/g, '/'));\n }\n }\n return null;\n}\n/**\n * Converts a URL into its corresponding local file system path.\n * It checks against the known URL prefixes in all_paths and replaces the matching base.\n */\n\nexport function url_to_path(urlStr: string, all_paths: any): string | null {\n if (typeof urlStr !== 'string') {\n throw new Error('urlStr must be a string');\n }\n for (const key in all_paths) {\n const mapping = all_paths[key as keyof typeof all_paths];\n if (urlStr.startsWith(mapping.url)) {\n const relativeUrl = urlStr.substring(mapping.url.length);\n return urlJoin(mapping.path, relativeUrl);\n }\n }\n return null;\n}\n\n\nexport function urljoin(\n\t...parts: (string | undefined | null)[]\n\t) {\n\t\treturn urlJoin(...parts);\n\t}\n"],"names":[],"mappings":";;AACM,SAAU,OAAO,CAAC,GAAG,KAAoC,EAAA;AAC3D,IAAA,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAU,GAAG,KAAK,CAAa;IACjG,IAAI,CAAC,GAAG,EAAE;AACV,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE;AAC/B,QAAA,IAAI,CAAC,CAAC;YAAE;QACR,IAAI,CAAC,KAAK,CAAC;YAAE,CAAC,GAAG,CAAC;aACb;YACD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACzB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;AACzB,YAAA,CAAC,GAAG,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,EAAE;QACnB;IACJ;AACA,IAAA,OAAO,CAAC;AACZ;AAEA;;;;AAIG;SACa,YAAY,CAAC,WAAgB,EAAE,SAAc,IAAI,EAAA;AAC7D,IAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AACjC,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;IACnD;;AAEA,IAAA,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAChC,QAAA,OAAO,WAAW;IACtB;AACA,IAAA,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC;AACvC;AAEA;;;;AAIG;SACa,aAAa,CAAC,YAAiB,EAAE,aAAkB,IAAI,EAAA;AACnE,IAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAClC,QAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;IACpD;AACA,IAAA,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE;AAC/B,QAAA,OAAO,YAAY;IACvB;AACA,IAAA,OAAO,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC;AAC5C;AACA;;;AAGG;AACG,SAAU,WAAW,CAAC,QAAgB,EAAE,SAAc,EAAA;AACxD,IAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAC9B,QAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;IAChD;AACA,IAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACzB,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAA6B,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;AACnD,QAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;AAC9D,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjE;IACJ;AACA,IAAA,OAAO,IAAI;AACf;AACA;;;AAGG;AAEG,SAAU,WAAW,CAAC,MAAc,EAAE,SAAc,EAAA;AACtD,IAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC5B,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;IAC9C;AACA,IAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;AACzB,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAA6B,CAAC;QACxD,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACxD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC;QAC7C;IACJ;AACA,IAAA,OAAO,IAAI;AACf;AAGM,SAAU,OAAO,CACtB,GAAG,KAAoC,EAAA;AAEtC,IAAA,OAAO,OAAO,CAAC,GAAG,KAAK,CAAC;AACzB;;;;"}