@otim/utils 0.0.4 → 0.0.6

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 (467) hide show
  1. package/dist/api/index.d.mts +1858 -7
  2. package/dist/api/index.d.mts.map +1 -0
  3. package/dist/api/index.d.ts +1857 -6
  4. package/dist/api/index.d.ts.map +1 -1
  5. package/dist/api/index.js +1514 -1994
  6. package/dist/api/index.js.map +1 -7
  7. package/dist/api/index.mjs +1394 -1962
  8. package/dist/api/index.mjs.map +1 -7
  9. package/dist/api-urls-B-GTEiT3.d.mts +49 -0
  10. package/dist/api-urls-B-GTEiT3.d.mts.map +1 -0
  11. package/dist/api-urls-Cd20DG4i.js +171 -0
  12. package/dist/api-urls-Cd20DG4i.js.map +1 -0
  13. package/dist/api-urls-DJcIKBCy.mjs +135 -0
  14. package/dist/api-urls-DJcIKBCy.mjs.map +1 -0
  15. package/dist/api-urls-SKeIQMoZ.d.ts +49 -0
  16. package/dist/api-urls-SKeIQMoZ.d.ts.map +1 -0
  17. package/dist/chains/index.d.mts +13568 -16
  18. package/dist/chains/index.d.mts.map +1 -0
  19. package/dist/chains/index.d.ts +13567 -15
  20. package/dist/chains/index.d.ts.map +1 -1
  21. package/dist/chains/index.js +3615 -424
  22. package/dist/chains/index.js.map +1 -7
  23. package/dist/chains/index.mjs +3561 -440
  24. package/dist/chains/index.mjs.map +1 -7
  25. package/dist/chunk-kSYXY2_d.js +34 -0
  26. package/dist/client-factory-7xUSPC9I.mjs +42 -0
  27. package/dist/client-factory-7xUSPC9I.mjs.map +1 -0
  28. package/dist/client-factory-C3A4RPdj.d.ts +22 -0
  29. package/dist/client-factory-C3A4RPdj.d.ts.map +1 -0
  30. package/dist/client-factory-CTI_Nt35.js +49 -0
  31. package/dist/client-factory-CTI_Nt35.js.map +1 -0
  32. package/dist/client-factory-DOL0ZTWy.d.mts +22 -0
  33. package/dist/client-factory-DOL0ZTWy.d.mts.map +1 -0
  34. package/dist/constants.d.mts +14 -24
  35. package/dist/constants.d.mts.map +1 -0
  36. package/dist/constants.d.ts +13 -23
  37. package/dist/constants.d.ts.map +1 -1
  38. package/dist/constants.js +31 -46
  39. package/dist/constants.js.map +1 -7
  40. package/dist/constants.mjs +22 -26
  41. package/dist/constants.mjs.map +1 -7
  42. package/dist/date-CFzrYcjE.js +536 -0
  43. package/dist/date-CFzrYcjE.js.map +1 -0
  44. package/dist/date-gBac-Om9.mjs +313 -0
  45. package/dist/date-gBac-Om9.mjs.map +1 -0
  46. package/dist/defineProperty-DbMdhrDE.js +49 -0
  47. package/dist/defineProperty-DzhmunJg.mjs +43 -0
  48. package/dist/formatters/index.d.mts +1 -2
  49. package/dist/formatters/index.d.ts +1 -2
  50. package/dist/formatters/index.js +0 -19
  51. package/dist/formatters/index.mjs +1 -1
  52. package/dist/helpers/index.d.mts +562 -19
  53. package/dist/helpers/index.d.mts.map +1 -0
  54. package/dist/helpers/index.d.ts +561 -18
  55. package/dist/helpers/index.d.ts.map +1 -1
  56. package/dist/helpers/index.js +106 -1344
  57. package/dist/helpers/index.mjs +3 -1315
  58. package/dist/helpers-BNiSxjGq.mjs +895 -0
  59. package/dist/helpers-BNiSxjGq.mjs.map +1 -0
  60. package/dist/helpers-DoC7Xl12.js +1291 -0
  61. package/dist/helpers-DoC7Xl12.js.map +1 -0
  62. package/dist/index-Bv0kUz4w.d.ts +540 -0
  63. package/dist/index-Bv0kUz4w.d.ts.map +1 -0
  64. package/dist/index-DartTKk2.d.mts +540 -0
  65. package/dist/index-DartTKk2.d.mts.map +1 -0
  66. package/dist/index.d.mts +1 -1
  67. package/dist/index.d.ts +1 -1
  68. package/dist/index.js +0 -2
  69. package/dist/index.mjs +1 -1
  70. package/dist/instructions/index.d.mts +687 -6
  71. package/dist/instructions/index.d.mts.map +1 -0
  72. package/dist/instructions/index.d.ts +686 -5
  73. package/dist/instructions/index.d.ts.map +1 -1
  74. package/dist/instructions/index.js +1912 -1091
  75. package/dist/instructions/index.js.map +1 -7
  76. package/dist/instructions/index.mjs +1887 -1058
  77. package/dist/instructions/index.mjs.map +1 -7
  78. package/dist/payments/index.d.mts +322 -16
  79. package/dist/payments/index.d.mts.map +1 -0
  80. package/dist/payments/index.d.ts +321 -15
  81. package/dist/payments/index.d.ts.map +1 -1
  82. package/dist/payments/index.js +616 -1258
  83. package/dist/payments/index.js.map +1 -7
  84. package/dist/payments/index.mjs +594 -1236
  85. package/dist/payments/index.mjs.map +1 -7
  86. package/dist/schemas/index.d.mts +2 -10
  87. package/dist/schemas/index.d.ts +2 -10
  88. package/dist/schemas/index.js +350 -393
  89. package/dist/schemas/index.js.map +1 -7
  90. package/dist/schemas/index.mjs +283 -371
  91. package/dist/schemas/index.mjs.map +1 -7
  92. package/dist/server/index.d.mts +354 -3
  93. package/dist/server/index.d.mts.map +1 -0
  94. package/dist/server/index.d.ts +353 -2
  95. package/dist/server/index.d.ts.map +1 -1
  96. package/dist/server/index.js +248 -435
  97. package/dist/server/index.js.map +1 -7
  98. package/dist/server/index.mjs +199 -404
  99. package/dist/server/index.mjs.map +1 -7
  100. package/dist/server/react.d.mts +16 -0
  101. package/dist/server/react.d.mts.map +1 -0
  102. package/dist/server/react.d.ts +16 -0
  103. package/dist/server/react.d.ts.map +1 -0
  104. package/dist/server/react.js +30 -0
  105. package/dist/server/react.js.map +1 -0
  106. package/dist/server/react.mjs +28 -0
  107. package/dist/server/react.mjs.map +1 -0
  108. package/dist/wallet/wagmi/index.d.mts +23 -2
  109. package/dist/wallet/wagmi/index.d.mts.map +1 -0
  110. package/dist/wallet/wagmi/index.d.ts +22 -1
  111. package/dist/wallet/wagmi/index.d.ts.map +1 -1
  112. package/dist/wallet/wagmi/index.js +86 -417
  113. package/dist/wallet/wagmi/index.js.map +1 -7
  114. package/dist/wallet/wagmi/index.mjs +82 -418
  115. package/dist/wallet/wagmi/index.mjs.map +1 -7
  116. package/package.json +39 -28
  117. package/dist/api/api.d.mts +0 -18
  118. package/dist/api/api.d.ts +0 -18
  119. package/dist/api/api.d.ts.map +0 -1
  120. package/dist/api/core/error.d.mts +0 -74
  121. package/dist/api/core/error.d.ts +0 -74
  122. package/dist/api/core/error.d.ts.map +0 -1
  123. package/dist/api/core/index.d.mts +0 -4
  124. package/dist/api/core/index.d.ts +0 -4
  125. package/dist/api/core/index.d.ts.map +0 -1
  126. package/dist/api/core/instance.d.mts +0 -13
  127. package/dist/api/core/instance.d.ts +0 -13
  128. package/dist/api/core/instance.d.ts.map +0 -1
  129. package/dist/api/core/service.d.mts +0 -51
  130. package/dist/api/core/service.d.ts +0 -51
  131. package/dist/api/core/service.d.ts.map +0 -1
  132. package/dist/api/schemas/account.d.mts +0 -44
  133. package/dist/api/schemas/account.d.ts +0 -44
  134. package/dist/api/schemas/account.d.ts.map +0 -1
  135. package/dist/api/schemas/activity.d.mts +0 -277
  136. package/dist/api/schemas/activity.d.ts +0 -277
  137. package/dist/api/schemas/activity.d.ts.map +0 -1
  138. package/dist/api/schemas/auth.d.mts +0 -127
  139. package/dist/api/schemas/auth.d.ts +0 -127
  140. package/dist/api/schemas/auth.d.ts.map +0 -1
  141. package/dist/api/schemas/chain.d.mts +0 -15
  142. package/dist/api/schemas/chain.d.ts +0 -15
  143. package/dist/api/schemas/chain.d.ts.map +0 -1
  144. package/dist/api/schemas/config.d.mts +0 -33
  145. package/dist/api/schemas/config.d.ts +0 -33
  146. package/dist/api/schemas/config.d.ts.map +0 -1
  147. package/dist/api/schemas/contacts.d.mts +0 -27
  148. package/dist/api/schemas/contacts.d.ts +0 -27
  149. package/dist/api/schemas/contacts.d.ts.map +0 -1
  150. package/dist/api/schemas/index.d.mts +0 -12
  151. package/dist/api/schemas/index.d.ts +0 -12
  152. package/dist/api/schemas/index.d.ts.map +0 -1
  153. package/dist/api/schemas/instruction.d.mts +0 -446
  154. package/dist/api/schemas/instruction.d.ts +0 -446
  155. package/dist/api/schemas/instruction.d.ts.map +0 -1
  156. package/dist/api/schemas/integration.d.mts +0 -166
  157. package/dist/api/schemas/integration.d.ts +0 -166
  158. package/dist/api/schemas/integration.d.ts.map +0 -1
  159. package/dist/api/schemas/operating-account.d.mts +0 -11
  160. package/dist/api/schemas/operating-account.d.ts +0 -11
  161. package/dist/api/schemas/operating-account.d.ts.map +0 -1
  162. package/dist/api/schemas/payments.d.mts +0 -234
  163. package/dist/api/schemas/payments.d.ts +0 -234
  164. package/dist/api/schemas/payments.d.ts.map +0 -1
  165. package/dist/api/schemas/transaction.d.mts +0 -37
  166. package/dist/api/schemas/transaction.d.ts +0 -37
  167. package/dist/api/schemas/transaction.d.ts.map +0 -1
  168. package/dist/api/services/account.d.mts +0 -8
  169. package/dist/api/services/account.d.ts +0 -8
  170. package/dist/api/services/account.d.ts.map +0 -1
  171. package/dist/api/services/activity.d.mts +0 -7
  172. package/dist/api/services/activity.d.ts +0 -7
  173. package/dist/api/services/activity.d.ts.map +0 -1
  174. package/dist/api/services/auth.d.mts +0 -12
  175. package/dist/api/services/auth.d.ts +0 -12
  176. package/dist/api/services/auth.d.ts.map +0 -1
  177. package/dist/api/services/base.d.mts +0 -10
  178. package/dist/api/services/base.d.ts +0 -10
  179. package/dist/api/services/base.d.ts.map +0 -1
  180. package/dist/api/services/config.d.mts +0 -10
  181. package/dist/api/services/config.d.ts +0 -10
  182. package/dist/api/services/config.d.ts.map +0 -1
  183. package/dist/api/services/contacts.d.mts +0 -8
  184. package/dist/api/services/contacts.d.ts +0 -8
  185. package/dist/api/services/contacts.d.ts.map +0 -1
  186. package/dist/api/services/developer.d.mts +0 -6
  187. package/dist/api/services/developer.d.ts +0 -6
  188. package/dist/api/services/developer.d.ts.map +0 -1
  189. package/dist/api/services/index.d.mts +0 -13
  190. package/dist/api/services/index.d.ts +0 -13
  191. package/dist/api/services/index.d.ts.map +0 -1
  192. package/dist/api/services/instruction.d.mts +0 -12
  193. package/dist/api/services/instruction.d.ts +0 -12
  194. package/dist/api/services/instruction.d.ts.map +0 -1
  195. package/dist/api/services/integration.d.mts +0 -8
  196. package/dist/api/services/integration.d.ts +0 -8
  197. package/dist/api/services/integration.d.ts.map +0 -1
  198. package/dist/api/services/operating-account.d.mts +0 -8
  199. package/dist/api/services/operating-account.d.ts +0 -8
  200. package/dist/api/services/operating-account.d.ts.map +0 -1
  201. package/dist/api/services/payments.d.mts +0 -14
  202. package/dist/api/services/payments.d.ts +0 -14
  203. package/dist/api/services/payments.d.ts.map +0 -1
  204. package/dist/api/services/transaction.d.mts +0 -8
  205. package/dist/api/services/transaction.d.ts +0 -8
  206. package/dist/api/services/transaction.d.ts.map +0 -1
  207. package/dist/api/services/uniswap-token-list-service.d.mts +0 -66
  208. package/dist/api/services/uniswap-token-list-service.d.ts +0 -66
  209. package/dist/api/services/uniswap-token-list-service.d.ts.map +0 -1
  210. package/dist/api/utils/index.d.mts +0 -2
  211. package/dist/api/utils/index.d.ts +0 -2
  212. package/dist/api/utils/index.d.ts.map +0 -1
  213. package/dist/api/utils/pagination.d.mts +0 -32
  214. package/dist/api/utils/pagination.d.ts +0 -32
  215. package/dist/api/utils/pagination.d.ts.map +0 -1
  216. package/dist/chains/config/all-chains.d.mts +0 -4243
  217. package/dist/chains/config/all-chains.d.ts +0 -4243
  218. package/dist/chains/config/all-chains.d.ts.map +0 -1
  219. package/dist/chains/config/custom-chains.d.mts +0 -49
  220. package/dist/chains/config/custom-chains.d.ts +0 -49
  221. package/dist/chains/config/custom-chains.d.ts.map +0 -1
  222. package/dist/chains/config/mainnet-chains.d.mts +0 -1063
  223. package/dist/chains/config/mainnet-chains.d.ts +0 -1063
  224. package/dist/chains/config/mainnet-chains.d.ts.map +0 -1
  225. package/dist/chains/config/supported-chains.d.mts +0 -2172
  226. package/dist/chains/config/supported-chains.d.ts +0 -2172
  227. package/dist/chains/config/supported-chains.d.ts.map +0 -1
  228. package/dist/chains/config/testnet-chains.d.mts +0 -1110
  229. package/dist/chains/config/testnet-chains.d.ts +0 -1110
  230. package/dist/chains/config/testnet-chains.d.ts.map +0 -1
  231. package/dist/chains/lambda/chain-mapping.d.mts +0 -55
  232. package/dist/chains/lambda/chain-mapping.d.ts +0 -55
  233. package/dist/chains/lambda/chain-mapping.d.ts.map +0 -1
  234. package/dist/chains/lambda/index.d.mts +0 -2
  235. package/dist/chains/lambda/index.d.ts +0 -2
  236. package/dist/chains/lambda/index.d.ts.map +0 -1
  237. package/dist/chains/tokens/chain-tokens.d.mts +0 -6
  238. package/dist/chains/tokens/chain-tokens.d.ts +0 -6
  239. package/dist/chains/tokens/chain-tokens.d.ts.map +0 -1
  240. package/dist/chains/tokens/token-addresses.d.mts +0 -8
  241. package/dist/chains/tokens/token-addresses.d.ts +0 -8
  242. package/dist/chains/tokens/token-addresses.d.ts.map +0 -1
  243. package/dist/chains/tokens/token-metadata.d.mts +0 -5
  244. package/dist/chains/tokens/token-metadata.d.ts +0 -5
  245. package/dist/chains/tokens/token-metadata.d.ts.map +0 -1
  246. package/dist/chains/types.d.mts +0 -23
  247. package/dist/chains/types.d.ts +0 -23
  248. package/dist/chains/types.d.ts.map +0 -1
  249. package/dist/chains/utils/filter-tokens.d.mts +0 -3
  250. package/dist/chains/utils/filter-tokens.d.ts +0 -3
  251. package/dist/chains/utils/filter-tokens.d.ts.map +0 -1
  252. package/dist/chains/utils/stablecoin.d.mts +0 -7
  253. package/dist/chains/utils/stablecoin.d.ts +0 -7
  254. package/dist/chains/utils/stablecoin.d.ts.map +0 -1
  255. package/dist/chains/utils/token-maps.d.mts +0 -10
  256. package/dist/chains/utils/token-maps.d.ts +0 -10
  257. package/dist/chains/utils/token-maps.d.ts.map +0 -1
  258. package/dist/env.d.mts +0 -17
  259. package/dist/env.d.ts +0 -17
  260. package/dist/env.d.ts.map +0 -1
  261. package/dist/formatters/index.d.ts.map +0 -1
  262. package/dist/formatters/index.js.map +0 -7
  263. package/dist/formatters/index.mjs.map +0 -7
  264. package/dist/helpers/address.d.mts +0 -7
  265. package/dist/helpers/address.d.ts +0 -7
  266. package/dist/helpers/address.d.ts.map +0 -1
  267. package/dist/helpers/blockchain.d.mts +0 -41
  268. package/dist/helpers/blockchain.d.ts +0 -41
  269. package/dist/helpers/blockchain.d.ts.map +0 -1
  270. package/dist/helpers/date.d.mts +0 -70
  271. package/dist/helpers/date.d.ts +0 -70
  272. package/dist/helpers/date.d.ts.map +0 -1
  273. package/dist/helpers/datetime.d.mts +0 -57
  274. package/dist/helpers/datetime.d.ts +0 -57
  275. package/dist/helpers/datetime.d.ts.map +0 -1
  276. package/dist/helpers/domain.d.mts +0 -2
  277. package/dist/helpers/domain.d.ts +0 -2
  278. package/dist/helpers/domain.d.ts.map +0 -1
  279. package/dist/helpers/index.js.map +0 -7
  280. package/dist/helpers/index.mjs.map +0 -7
  281. package/dist/helpers/intl.d.mts +0 -20
  282. package/dist/helpers/intl.d.ts +0 -20
  283. package/dist/helpers/intl.d.ts.map +0 -1
  284. package/dist/helpers/logger.d.mts +0 -26
  285. package/dist/helpers/logger.d.ts +0 -26
  286. package/dist/helpers/logger.d.ts.map +0 -1
  287. package/dist/helpers/mask-options.d.mts +0 -10
  288. package/dist/helpers/mask-options.d.ts +0 -10
  289. package/dist/helpers/mask-options.d.ts.map +0 -1
  290. package/dist/helpers/num-formatter.d.mts +0 -3
  291. package/dist/helpers/num-formatter.d.ts +0 -3
  292. package/dist/helpers/num-formatter.d.ts.map +0 -1
  293. package/dist/helpers/polling.d.mts +0 -39
  294. package/dist/helpers/polling.d.ts +0 -39
  295. package/dist/helpers/polling.d.ts.map +0 -1
  296. package/dist/helpers/random.d.mts +0 -10
  297. package/dist/helpers/random.d.ts +0 -10
  298. package/dist/helpers/random.d.ts.map +0 -1
  299. package/dist/helpers/sdk-loader.d.mts +0 -25
  300. package/dist/helpers/sdk-loader.d.ts +0 -25
  301. package/dist/helpers/sdk-loader.d.ts.map +0 -1
  302. package/dist/helpers/signatures.d.mts +0 -17
  303. package/dist/helpers/signatures.d.ts +0 -17
  304. package/dist/helpers/signatures.d.ts.map +0 -1
  305. package/dist/helpers/string.d.mts +0 -17
  306. package/dist/helpers/string.d.ts +0 -17
  307. package/dist/helpers/string.d.ts.map +0 -1
  308. package/dist/helpers/types.d.mts +0 -39
  309. package/dist/helpers/types.d.ts +0 -39
  310. package/dist/helpers/types.d.ts.map +0 -1
  311. package/dist/helpers/url.d.mts +0 -11
  312. package/dist/helpers/url.d.ts +0 -11
  313. package/dist/helpers/url.d.ts.map +0 -1
  314. package/dist/helpers/window.d.mts +0 -37
  315. package/dist/helpers/window.d.ts +0 -37
  316. package/dist/helpers/window.d.ts.map +0 -1
  317. package/dist/helpers/zod.d.mts +0 -51
  318. package/dist/helpers/zod.d.ts +0 -51
  319. package/dist/helpers/zod.d.ts.map +0 -1
  320. package/dist/index.d.ts.map +0 -1
  321. package/dist/index.js.map +0 -7
  322. package/dist/index.mjs.map +0 -7
  323. package/dist/instructions/actions/index.d.mts +0 -5
  324. package/dist/instructions/actions/index.d.ts +0 -5
  325. package/dist/instructions/actions/index.d.ts.map +0 -1
  326. package/dist/instructions/actions/refuel/index.d.mts +0 -15
  327. package/dist/instructions/actions/refuel/index.d.ts +0 -15
  328. package/dist/instructions/actions/refuel/index.d.ts.map +0 -1
  329. package/dist/instructions/actions/swap/index.d.mts +0 -19
  330. package/dist/instructions/actions/swap/index.d.ts +0 -19
  331. package/dist/instructions/actions/swap/index.d.ts.map +0 -1
  332. package/dist/instructions/actions/sweep/index.d.mts +0 -16
  333. package/dist/instructions/actions/sweep/index.d.ts +0 -16
  334. package/dist/instructions/actions/sweep/index.d.ts.map +0 -1
  335. package/dist/instructions/actions/transfer/index.d.mts +0 -13
  336. package/dist/instructions/actions/transfer/index.d.ts +0 -13
  337. package/dist/instructions/actions/transfer/index.d.ts.map +0 -1
  338. package/dist/instructions/activate.d.mts +0 -84
  339. package/dist/instructions/activate.d.ts +0 -84
  340. package/dist/instructions/activate.d.ts.map +0 -1
  341. package/dist/instructions/build.d.mts +0 -146
  342. package/dist/instructions/build.d.ts +0 -146
  343. package/dist/instructions/build.d.ts.map +0 -1
  344. package/dist/instructions/constants.d.mts +0 -9
  345. package/dist/instructions/constants.d.ts +0 -9
  346. package/dist/instructions/constants.d.ts.map +0 -1
  347. package/dist/instructions/contracts/artifacts/abi/build-instruction-action-arguments-abi.d.mts +0 -609
  348. package/dist/instructions/contracts/artifacts/abi/build-instruction-action-arguments-abi.d.ts +0 -609
  349. package/dist/instructions/contracts/artifacts/abi/build-instruction-action-arguments-abi.d.ts.map +0 -1
  350. package/dist/instructions/types.d.mts +0 -289
  351. package/dist/instructions/types.d.ts +0 -289
  352. package/dist/instructions/types.d.ts.map +0 -1
  353. package/dist/payments/action-names.d.mts +0 -16
  354. package/dist/payments/action-names.d.ts +0 -16
  355. package/dist/payments/action-names.d.ts.map +0 -1
  356. package/dist/payments/actions/index.d.mts +0 -5
  357. package/dist/payments/actions/index.d.ts +0 -5
  358. package/dist/payments/actions/index.d.ts.map +0 -1
  359. package/dist/payments/actions/sweep-cctp.d.mts +0 -15
  360. package/dist/payments/actions/sweep-cctp.d.ts +0 -15
  361. package/dist/payments/actions/sweep-cctp.d.ts.map +0 -1
  362. package/dist/payments/actions/sweep-erc20.d.mts +0 -12
  363. package/dist/payments/actions/sweep-erc20.d.ts +0 -12
  364. package/dist/payments/actions/sweep-erc20.d.ts.map +0 -1
  365. package/dist/payments/actions/sweep-uniswap-v3.d.mts +0 -17
  366. package/dist/payments/actions/sweep-uniswap-v3.d.ts +0 -17
  367. package/dist/payments/actions/sweep-uniswap-v3.d.ts.map +0 -1
  368. package/dist/payments/actions/sweep.d.mts +0 -12
  369. package/dist/payments/actions/sweep.d.ts +0 -12
  370. package/dist/payments/actions/sweep.d.ts.map +0 -1
  371. package/dist/payments/build.d.mts +0 -28
  372. package/dist/payments/build.d.ts +0 -28
  373. package/dist/payments/build.d.ts.map +0 -1
  374. package/dist/payments/chain-token-config-builder.d.mts +0 -10
  375. package/dist/payments/chain-token-config-builder.d.ts +0 -10
  376. package/dist/payments/chain-token-config-builder.d.ts.map +0 -1
  377. package/dist/payments/comprehensive-payment-request.d.mts +0 -26
  378. package/dist/payments/comprehensive-payment-request.d.ts +0 -26
  379. package/dist/payments/comprehensive-payment-request.d.ts.map +0 -1
  380. package/dist/payments/config/cctp.d.mts +0 -14
  381. package/dist/payments/config/cctp.d.ts +0 -14
  382. package/dist/payments/config/cctp.d.ts.map +0 -1
  383. package/dist/payments/config/index.d.mts +0 -3
  384. package/dist/payments/config/index.d.ts +0 -3
  385. package/dist/payments/config/index.d.ts.map +0 -1
  386. package/dist/payments/config/tokens.d.mts +0 -14
  387. package/dist/payments/config/tokens.d.ts +0 -14
  388. package/dist/payments/config/tokens.d.ts.map +0 -1
  389. package/dist/payments/instruction-registry.d.mts +0 -19
  390. package/dist/payments/instruction-registry.d.ts +0 -19
  391. package/dist/payments/instruction-registry.d.ts.map +0 -1
  392. package/dist/payments/payment-metadata-builder.d.mts +0 -56
  393. package/dist/payments/payment-metadata-builder.d.ts +0 -56
  394. package/dist/payments/payment-metadata-builder.d.ts.map +0 -1
  395. package/dist/payments/payment-metadata.d.mts +0 -15
  396. package/dist/payments/payment-metadata.d.ts +0 -15
  397. package/dist/payments/payment-metadata.d.ts.map +0 -1
  398. package/dist/payments/payment-request-token-resolver.d.mts +0 -25
  399. package/dist/payments/payment-request-token-resolver.d.ts +0 -25
  400. package/dist/payments/payment-request-token-resolver.d.ts.map +0 -1
  401. package/dist/payments/types.d.mts +0 -40
  402. package/dist/payments/types.d.ts +0 -40
  403. package/dist/payments/types.d.ts.map +0 -1
  404. package/dist/payments/validation.d.mts +0 -19
  405. package/dist/payments/validation.d.ts +0 -19
  406. package/dist/payments/validation.d.ts.map +0 -1
  407. package/dist/schemas/account.d.mts +0 -9
  408. package/dist/schemas/account.d.ts +0 -9
  409. package/dist/schemas/account.d.ts.map +0 -1
  410. package/dist/schemas/brand.d.mts +0 -7
  411. package/dist/schemas/brand.d.ts +0 -7
  412. package/dist/schemas/brand.d.ts.map +0 -1
  413. package/dist/schemas/contact.d.mts +0 -18
  414. package/dist/schemas/contact.d.ts +0 -18
  415. package/dist/schemas/contact.d.ts.map +0 -1
  416. package/dist/schemas/index.d.ts.map +0 -1
  417. package/dist/schemas/instruction.d.mts +0 -248
  418. package/dist/schemas/instruction.d.ts +0 -248
  419. package/dist/schemas/instruction.d.ts.map +0 -1
  420. package/dist/schemas/misc.d.mts +0 -36
  421. package/dist/schemas/misc.d.ts +0 -36
  422. package/dist/schemas/misc.d.ts.map +0 -1
  423. package/dist/schemas/payment.d.mts +0 -64
  424. package/dist/schemas/payment.d.ts +0 -64
  425. package/dist/schemas/payment.d.ts.map +0 -1
  426. package/dist/schemas/token.d.mts +0 -17
  427. package/dist/schemas/token.d.ts +0 -17
  428. package/dist/schemas/token.d.ts.map +0 -1
  429. package/dist/schemas/transaction.d.mts +0 -65
  430. package/dist/schemas/transaction.d.ts +0 -65
  431. package/dist/schemas/transaction.d.ts.map +0 -1
  432. package/dist/schemas/user.d.mts +0 -24
  433. package/dist/schemas/user.d.ts +0 -24
  434. package/dist/schemas/user.d.ts.map +0 -1
  435. package/dist/server/client.d.mts +0 -3
  436. package/dist/server/client.d.ts +0 -3
  437. package/dist/server/client.d.ts.map +0 -1
  438. package/dist/server/routes/account.d.mts +0 -4
  439. package/dist/server/routes/account.d.ts +0 -4
  440. package/dist/server/routes/account.d.ts.map +0 -1
  441. package/dist/server/routes/auth.d.mts +0 -28
  442. package/dist/server/routes/auth.d.ts +0 -28
  443. package/dist/server/routes/auth.d.ts.map +0 -1
  444. package/dist/server/routes/bridge.d.mts +0 -254
  445. package/dist/server/routes/bridge.d.ts +0 -254
  446. package/dist/server/routes/bridge.d.ts.map +0 -1
  447. package/dist/server/routes/config.d.mts +0 -3
  448. package/dist/server/routes/config.d.ts +0 -3
  449. package/dist/server/routes/config.d.ts.map +0 -1
  450. package/dist/server/routes/index.d.mts +0 -8
  451. package/dist/server/routes/index.d.ts +0 -8
  452. package/dist/server/routes/index.d.ts.map +0 -1
  453. package/dist/server/routes/instruction.d.mts +0 -4
  454. package/dist/server/routes/instruction.d.ts +0 -4
  455. package/dist/server/routes/instruction.d.ts.map +0 -1
  456. package/dist/server/routes/integration.d.mts +0 -4
  457. package/dist/server/routes/integration.d.ts +0 -4
  458. package/dist/server/routes/integration.d.ts.map +0 -1
  459. package/dist/server/routes/payments.d.mts +0 -5
  460. package/dist/server/routes/payments.d.ts +0 -5
  461. package/dist/server/routes/payments.d.ts.map +0 -1
  462. package/dist/server/routes/verify.d.mts +0 -3
  463. package/dist/server/routes/verify.d.ts +0 -3
  464. package/dist/server/routes/verify.d.ts.map +0 -1
  465. package/dist/wallet/wagmi/config.d.mts +0 -18
  466. package/dist/wallet/wagmi/config.d.ts +0 -18
  467. package/dist/wallet/wagmi/config.d.ts.map +0 -1
@@ -1,7 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/constants.ts"],
4
- "sourcesContent": ["/**\n * Cookies\n *\n * @description\n * These cookies are used to store the user's authentication token,\n * preferences, and session information.\n */\nexport const SESSION_TOKEN_COOKIE_NAME = \"sessionToken\";\nexport const SESSION_THEME_COOKIE_NAME = \"theme\";\n\n/**\n * Pagination\n */\nexport const DEFAULT_ITEMS_PER_PAGE = 50;\n\n/**\n * URLs\n */\nexport const APP_URL = \"https://otim.com\";\nexport const TAC_URL = `${APP_URL}/tac`;\nexport const PRIVACY_POLICY_URL = `${APP_URL}/pp`;\n\nexport const TELEGRAM_GROUP_URL = \"https://t.me/otimlabs\";\n\n/**\n * Network Constants\n */\nexport const ERC20 = \"ERC20\";\n\n/**\n * Wallet\n */\nexport const WAGMI_RECENT_CONNECTOR_KEY = \"wagmi.recentConnectorId\";\nexport const WAGMI_STORE_KEY = \"wagmi.store\";\nexport const TURNKEY_CONNECTOR_ID = \"turnkey\";\n"],
5
- "mappings": ";AAOO,IAAM,4BAA4B;AAClC,IAAM,4BAA4B;AAKlC,IAAM,yBAAyB;AAK/B,IAAM,UAAU;AAChB,IAAM,UAAU,GAAG,OAAO;AAC1B,IAAM,qBAAqB,GAAG,OAAO;AAErC,IAAM,qBAAqB;AAK3B,IAAM,QAAQ;AAKd,IAAM,6BAA6B;AACnC,IAAM,kBAAkB;AACxB,IAAM,uBAAuB;",
6
- "names": []
7
- }
1
+ {"version":3,"file":"constants.mjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Cookies\n *\n * @description\n * These cookies are used to store the user's authentication token,\n * preferences, and session information.\n */\nexport const SESSION_TOKEN_COOKIE_NAME = \"sessionToken\";\nexport const SESSION_THEME_COOKIE_NAME = \"theme\";\n\n/* Pagination */\nexport const DEFAULT_ITEMS_PER_PAGE = 50;\n\n/* URLs */\nexport const APP_URL = \"https://otim.com\";\nexport const TAC_URL = `${APP_URL}/tac`;\nexport const PRIVACY_POLICY_URL = `${APP_URL}/pp`;\n\nexport const TELEGRAM_GROUP_URL = \"https://t.me/otimlabs\";\n\n/* Network Constants */\nexport const ERC20 = \"ERC20\";\n\n/* Wallet */\nexport const WAGMI_RECENT_CONNECTOR_KEY = \"wagmi.recentConnectorId\";\nexport const WAGMI_STORE_KEY = \"wagmi.store\";\n"],"mappings":";;;;;;;;AAOA,MAAa,4BAA4B;AACzC,MAAa,4BAA4B;AAGzC,MAAa,yBAAyB;AAGtC,MAAa,UAAU;AACvB,MAAa,UAAU,GAAG,QAAQ;AAClC,MAAa,qBAAqB,GAAG,QAAQ;AAE7C,MAAa,qBAAqB;AAGlC,MAAa,QAAQ;AAGrB,MAAa,6BAA6B;AAC1C,MAAa,kBAAkB"}
@@ -0,0 +1,536 @@
1
+ const require_chunk = require('./chunk-kSYXY2_d.js');
2
+ let zod = require("zod");
3
+ zod = require_chunk.__toESM(zod);
4
+
5
+ //#region src/helpers/types.ts
6
+ const isError = (value) => value instanceof Error;
7
+ const isFunction = (value) => typeof value === "function";
8
+ const isObject = (value) => typeof value === "object" && value !== null;
9
+ const isNumber = (value) => typeof value === "number";
10
+ const isString = (value) => typeof value === "string";
11
+ const isUndefined = (value) => typeof value === "undefined";
12
+ const isBoolean = (value) => typeof value === "boolean";
13
+ const isNull = (value) => value === null;
14
+ const isNotNull = (value) => value !== null && value !== void 0;
15
+ const isEmpty = (value) => value === "" || value === null || value === void 0 || Array.isArray(value) && value.length === 0;
16
+ /**
17
+ * Safely extracts a string from an unknown value.
18
+ * @param value - The value to extract from
19
+ * @param fallback - Optional fallback value if extraction fails
20
+ * @returns The extracted string or fallback/undefined
21
+ */
22
+ const extractString = (value, fallback) => {
23
+ return isString(value) ? value : fallback;
24
+ };
25
+ /**
26
+ * Safely extracts a number from an unknown value.
27
+ * Handles both number and string representations.
28
+ * @param value - The value to extract from
29
+ * @returns The extracted number or undefined
30
+ */
31
+ const extractNumber = (value) => {
32
+ if (isNumber(value)) return value;
33
+ if (isString(value)) {
34
+ const parsed = Number.parseFloat(value);
35
+ return Number.isNaN(parsed) ? void 0 : parsed;
36
+ }
37
+ };
38
+
39
+ //#endregion
40
+ //#region src/helpers/logger.ts
41
+ function extractErrorMessage(error) {
42
+ if (isError(error)) return error.message;
43
+ if (isString(error)) return error;
44
+ if (isObject(error) && "message" in error && isString(error.message)) return error.message;
45
+ return "Unknown error";
46
+ }
47
+ function buildPrefix(...parts) {
48
+ return parts.filter(Boolean).map((part) => `[${part}]`).join(" ");
49
+ }
50
+ const consoleMethods = {
51
+ debug: console.log,
52
+ info: console.log,
53
+ warn: console.warn,
54
+ error: console.error
55
+ };
56
+ var Logger = class {
57
+ info(message, options) {
58
+ this.log("info", message, options);
59
+ }
60
+ warn(message, options) {
61
+ this.log("warn", message, options);
62
+ }
63
+ error(message, options) {
64
+ this.log("error", message, options);
65
+ }
66
+ /**
67
+ * Log errors with full context and stack trace.
68
+ * For API errors, consider using `getErrorMessage` from `@otim/utils/api`.
69
+ */
70
+ logError(error, options = {}) {
71
+ const { context, operation, metadata } = options;
72
+ const prefix = buildPrefix(context, operation);
73
+ const message = extractErrorMessage(error);
74
+ console.error(prefix ? `${prefix} ${message}` : message);
75
+ if (metadata && Object.keys(metadata).length > 0) console.error("Metadata:", metadata);
76
+ if (isError(error) && error.stack) console.error("Stack:", error.stack);
77
+ else if (isNotNull(error)) console.error("Error details:", error);
78
+ }
79
+ log(level, message, options) {
80
+ const prefix = buildPrefix(options?.context);
81
+ const fullMessage = prefix ? `${prefix} ${message}` : message;
82
+ const logFn = consoleMethods[level];
83
+ logFn(fullMessage);
84
+ if (options?.data) this.logData(level, options.data);
85
+ }
86
+ logData(level, data) {
87
+ if (level === "debug" || level === "info") console.dir(data, { depth: null });
88
+ else consoleMethods[level]("Data:", data);
89
+ }
90
+ };
91
+ const logger = new Logger();
92
+
93
+ //#endregion
94
+ //#region src/helpers/date.ts
95
+ const iso8601DateSchema = zod.default.string().regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$/, "Must be a valid ISO 8601 date format (e.g., 2024-12-31T23:59:59.000Z)");
96
+ const TimeUnit = {
97
+ Day: "day",
98
+ Month: "month",
99
+ Year: "year"
100
+ };
101
+ const units = {
102
+ [TimeUnit.Day]: {
103
+ one: "day",
104
+ other: "days"
105
+ },
106
+ [TimeUnit.Month]: {
107
+ one: "month",
108
+ other: "months"
109
+ },
110
+ [TimeUnit.Year]: {
111
+ one: "year",
112
+ other: "years"
113
+ }
114
+ };
115
+ const formatDateAsUSStandard = (date, opts) => date.toLocaleString("en-US", {
116
+ month: "2-digit",
117
+ day: "2-digit",
118
+ year: "numeric",
119
+ ...opts
120
+ });
121
+ const formatDateAsISO = (date) => date.toISOString();
122
+ const formatFullDate = (date) => {
123
+ return new Intl.DateTimeFormat("en-US", {
124
+ year: "numeric",
125
+ month: "long",
126
+ day: "2-digit",
127
+ timeZone: "UTC"
128
+ }).format(date);
129
+ };
130
+ const formatTime = (date) => {
131
+ return date.toLocaleTimeString("en-US", {
132
+ hour: "2-digit",
133
+ minute: "2-digit",
134
+ second: "2-digit",
135
+ timeZone: "UTC",
136
+ timeZoneName: "short"
137
+ });
138
+ };
139
+ const formatDateTime = (date) => {
140
+ return `${new Intl.DateTimeFormat("en-US", {
141
+ month: "short",
142
+ day: "numeric",
143
+ year: "numeric",
144
+ timeZone: "UTC"
145
+ }).format(date)} at ${new Intl.DateTimeFormat("en-US", {
146
+ hour: "2-digit",
147
+ minute: "2-digit",
148
+ timeZone: "UTC"
149
+ }).format(date)}`;
150
+ };
151
+ /**
152
+ * Formats a date in long format (e.g., "June 19, 2025")
153
+ * @param date - Date object to format
154
+ * @returns Formatted date string
155
+ */
156
+ const formatLongDate = (date) => {
157
+ return new Intl.DateTimeFormat("en-US", {
158
+ year: "numeric",
159
+ month: "long",
160
+ day: "numeric",
161
+ timeZone: "UTC"
162
+ }).format(date);
163
+ };
164
+ /**
165
+ * Formats a date with time in long format (e.g., "June 19, 2025 at 07:00 AM")
166
+ * @param date - Date object to format
167
+ * @returns Formatted date and time string
168
+ */
169
+ const formatLongDateTime = (date) => {
170
+ return `${new Intl.DateTimeFormat("en-US", {
171
+ year: "numeric",
172
+ month: "long",
173
+ day: "numeric",
174
+ timeZone: "UTC"
175
+ }).format(date)} at ${new Intl.DateTimeFormat("en-US", {
176
+ hour: "2-digit",
177
+ minute: "2-digit",
178
+ hour12: true,
179
+ timeZone: "UTC"
180
+ }).format(date).toLowerCase()}`;
181
+ };
182
+ const formatToShortDate = (dateString) => {
183
+ const date = typeof dateString === "string" ? new Date(dateString) : dateString;
184
+ if (isNaN(date.getTime())) return "Jan 1";
185
+ return date.toLocaleDateString("en-US", {
186
+ month: "short",
187
+ day: "numeric",
188
+ timeZone: "UTC"
189
+ });
190
+ };
191
+ const formatToShortDateWithYear = (dateString) => {
192
+ const date = typeof dateString === "string" ? new Date(dateString) : dateString;
193
+ if (isNaN(date.getTime())) return "Unknown";
194
+ return date.toLocaleDateString("en-US", {
195
+ month: "short",
196
+ day: "numeric",
197
+ year: "numeric",
198
+ timeZone: "UTC"
199
+ });
200
+ };
201
+ const formatToJustDate = (dateString) => {
202
+ const date = new Date(dateString);
203
+ if (isNaN(date.getTime())) return "1";
204
+ return date.getUTCDate().toString();
205
+ };
206
+ const formatDateToYYYYMMDD = (date) => {
207
+ return new Intl.DateTimeFormat("en-CA", {
208
+ year: "numeric",
209
+ month: "2-digit",
210
+ day: "2-digit"
211
+ }).format(date);
212
+ };
213
+ const isDateInvalid = (date) => {
214
+ return date.toString() === "Invalid Date";
215
+ };
216
+ /**
217
+ * Validates if a date is valid (opposite of isDateInvalid)
218
+ * Checks both the Date object validity and the timestamp
219
+ */
220
+ const isValidDate = (date) => {
221
+ return !isDateInvalid(date) && !isNaN(date.getTime());
222
+ };
223
+ const isDateEpoc = (date) => {
224
+ return date.getTime() <= 0;
225
+ };
226
+ const isDateInRange = (arg) => {
227
+ if (typeof arg !== "string") return false;
228
+ const date = new Date(arg);
229
+ return date >= /* @__PURE__ */ new Date("1800-01-01T00:00:00.000Z") && date <= /* @__PURE__ */ new Date("2999-12-31T23:59:59.999Z");
230
+ };
231
+ const isDateInPast = (input) => {
232
+ let date;
233
+ if (input instanceof Date) date = input;
234
+ else if (typeof input === "number") {
235
+ const ms = input < 0xe8d4a51000 ? input * 1e3 : input;
236
+ date = new Date(ms);
237
+ } else date = new Date(input);
238
+ if (isNaN(date.getTime())) return false;
239
+ return date.getTime() < Date.now();
240
+ };
241
+ const isSameDate = (dateA, dateB) => {
242
+ return dateA.getFullYear() === dateB.getFullYear() && dateA.getMonth() === dateB.getMonth() && dateA.getDate() === dateB.getDate();
243
+ };
244
+ const getPluralizedUnit = (unit, count, locale = "en") => {
245
+ const pluralCategory = new Intl.PluralRules(locale, { type: "cardinal" }).select(count);
246
+ if (pluralCategory === "one" || pluralCategory === "other") return `${count} ${units[unit][pluralCategory]}`;
247
+ return `${count} ${units[unit].other}`;
248
+ };
249
+ const getRelativeDateDescription = (targetDate, locale = "en") => {
250
+ const currentDate = /* @__PURE__ */ new Date();
251
+ const oneDay = 1e3 * 60 * 60 * 24;
252
+ const oneMonth = oneDay * 30;
253
+ const oneYear = oneDay * 365;
254
+ const diffInMilliseconds = targetDate.getTime() - currentDate.getTime();
255
+ const diffInDays = Math.round(diffInMilliseconds / oneDay);
256
+ const diffInMonths = Math.round(diffInMilliseconds / oneMonth);
257
+ const diffInYears = Math.round(diffInMilliseconds / oneYear);
258
+ if (Math.abs(diffInYears) >= 1) return getPluralizedUnit("year", Math.abs(diffInYears), locale);
259
+ if (Math.abs(diffInMonths) >= 1) return getPluralizedUnit("month", Math.abs(diffInMonths), locale);
260
+ return getPluralizedUnit("day", Math.abs(diffInDays), locale);
261
+ };
262
+ /**
263
+ * Safely formats a date with validation and fallback support
264
+ * @param date - String or Date to format
265
+ * @param formatter - Function that formats the Date object
266
+ * @param fallback - Value to return if date is invalid
267
+ * @returns Formatted string or fallback value
268
+ */
269
+ const safeFormatDate = (date, formatter, fallback) => {
270
+ const dateObj = typeof date === "string" ? new Date(date) : date;
271
+ if (!isValidDate(dateObj)) return fallback;
272
+ try {
273
+ return formatter(dateObj);
274
+ } catch (error) {
275
+ logger.logError(error, { context: safeFormatDate.name });
276
+ return fallback;
277
+ }
278
+ };
279
+ const parseDateTime = (dateInput, timeInput) => {
280
+ const dateRegex = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
281
+ const timeRegex = /^(\d{1,2}):(\d{2})(?::(\d{2}))?\s*(AM|PM|am|pm)?$/;
282
+ const dateMatch = dateRegex.exec(dateInput);
283
+ if (!dateMatch) return;
284
+ const month = parseInt(dateMatch[1], 10) - 1;
285
+ const day = parseInt(dateMatch[2], 10);
286
+ const year = parseInt(dateMatch[3], 10);
287
+ let hours = 0;
288
+ let minutes = 0;
289
+ let seconds = 0;
290
+ if (timeInput) {
291
+ timeInput = timeInput.replace(/\u00A0/g, " ").trim();
292
+ const timeMatch = timeRegex.exec(timeInput);
293
+ if (!timeMatch) return;
294
+ hours = parseInt(timeMatch[1], 10);
295
+ minutes = parseInt(timeMatch[2], 10);
296
+ seconds = timeMatch[3] ? parseInt(timeMatch[3], 10) : 0;
297
+ const meridiem = timeMatch[4] ? timeMatch[4].toUpperCase() : null;
298
+ if (meridiem === "PM" && hours < 12) hours += 12;
299
+ else if (meridiem === "AM" && hours === 12) hours = 0;
300
+ }
301
+ const date = new Date(Date.UTC(year, month, day, hours, minutes, seconds));
302
+ if (isNaN(date.getTime())) return;
303
+ return date;
304
+ };
305
+ const validateIso8601Date = (dueDate) => {
306
+ const result = iso8601DateSchema.safeParse(dueDate);
307
+ if (!result.success) {
308
+ const errorMessage = result.error.issues[0]?.message || "Invalid ISO 8601 format";
309
+ throw new Error(`Invalid due date format: ${errorMessage}`);
310
+ }
311
+ };
312
+
313
+ //#endregion
314
+ Object.defineProperty(exports, 'TimeUnit', {
315
+ enumerable: true,
316
+ get: function () {
317
+ return TimeUnit;
318
+ }
319
+ });
320
+ Object.defineProperty(exports, 'extractNumber', {
321
+ enumerable: true,
322
+ get: function () {
323
+ return extractNumber;
324
+ }
325
+ });
326
+ Object.defineProperty(exports, 'extractString', {
327
+ enumerable: true,
328
+ get: function () {
329
+ return extractString;
330
+ }
331
+ });
332
+ Object.defineProperty(exports, 'formatDateAsISO', {
333
+ enumerable: true,
334
+ get: function () {
335
+ return formatDateAsISO;
336
+ }
337
+ });
338
+ Object.defineProperty(exports, 'formatDateAsUSStandard', {
339
+ enumerable: true,
340
+ get: function () {
341
+ return formatDateAsUSStandard;
342
+ }
343
+ });
344
+ Object.defineProperty(exports, 'formatDateTime', {
345
+ enumerable: true,
346
+ get: function () {
347
+ return formatDateTime;
348
+ }
349
+ });
350
+ Object.defineProperty(exports, 'formatDateToYYYYMMDD', {
351
+ enumerable: true,
352
+ get: function () {
353
+ return formatDateToYYYYMMDD;
354
+ }
355
+ });
356
+ Object.defineProperty(exports, 'formatFullDate', {
357
+ enumerable: true,
358
+ get: function () {
359
+ return formatFullDate;
360
+ }
361
+ });
362
+ Object.defineProperty(exports, 'formatLongDate', {
363
+ enumerable: true,
364
+ get: function () {
365
+ return formatLongDate;
366
+ }
367
+ });
368
+ Object.defineProperty(exports, 'formatLongDateTime', {
369
+ enumerable: true,
370
+ get: function () {
371
+ return formatLongDateTime;
372
+ }
373
+ });
374
+ Object.defineProperty(exports, 'formatTime', {
375
+ enumerable: true,
376
+ get: function () {
377
+ return formatTime;
378
+ }
379
+ });
380
+ Object.defineProperty(exports, 'formatToJustDate', {
381
+ enumerable: true,
382
+ get: function () {
383
+ return formatToJustDate;
384
+ }
385
+ });
386
+ Object.defineProperty(exports, 'formatToShortDate', {
387
+ enumerable: true,
388
+ get: function () {
389
+ return formatToShortDate;
390
+ }
391
+ });
392
+ Object.defineProperty(exports, 'formatToShortDateWithYear', {
393
+ enumerable: true,
394
+ get: function () {
395
+ return formatToShortDateWithYear;
396
+ }
397
+ });
398
+ Object.defineProperty(exports, 'getPluralizedUnit', {
399
+ enumerable: true,
400
+ get: function () {
401
+ return getPluralizedUnit;
402
+ }
403
+ });
404
+ Object.defineProperty(exports, 'getRelativeDateDescription', {
405
+ enumerable: true,
406
+ get: function () {
407
+ return getRelativeDateDescription;
408
+ }
409
+ });
410
+ Object.defineProperty(exports, 'isBoolean', {
411
+ enumerable: true,
412
+ get: function () {
413
+ return isBoolean;
414
+ }
415
+ });
416
+ Object.defineProperty(exports, 'isDateEpoc', {
417
+ enumerable: true,
418
+ get: function () {
419
+ return isDateEpoc;
420
+ }
421
+ });
422
+ Object.defineProperty(exports, 'isDateInPast', {
423
+ enumerable: true,
424
+ get: function () {
425
+ return isDateInPast;
426
+ }
427
+ });
428
+ Object.defineProperty(exports, 'isDateInRange', {
429
+ enumerable: true,
430
+ get: function () {
431
+ return isDateInRange;
432
+ }
433
+ });
434
+ Object.defineProperty(exports, 'isDateInvalid', {
435
+ enumerable: true,
436
+ get: function () {
437
+ return isDateInvalid;
438
+ }
439
+ });
440
+ Object.defineProperty(exports, 'isEmpty', {
441
+ enumerable: true,
442
+ get: function () {
443
+ return isEmpty;
444
+ }
445
+ });
446
+ Object.defineProperty(exports, 'isError', {
447
+ enumerable: true,
448
+ get: function () {
449
+ return isError;
450
+ }
451
+ });
452
+ Object.defineProperty(exports, 'isFunction', {
453
+ enumerable: true,
454
+ get: function () {
455
+ return isFunction;
456
+ }
457
+ });
458
+ Object.defineProperty(exports, 'isNotNull', {
459
+ enumerable: true,
460
+ get: function () {
461
+ return isNotNull;
462
+ }
463
+ });
464
+ Object.defineProperty(exports, 'isNull', {
465
+ enumerable: true,
466
+ get: function () {
467
+ return isNull;
468
+ }
469
+ });
470
+ Object.defineProperty(exports, 'isNumber', {
471
+ enumerable: true,
472
+ get: function () {
473
+ return isNumber;
474
+ }
475
+ });
476
+ Object.defineProperty(exports, 'isObject', {
477
+ enumerable: true,
478
+ get: function () {
479
+ return isObject;
480
+ }
481
+ });
482
+ Object.defineProperty(exports, 'isSameDate', {
483
+ enumerable: true,
484
+ get: function () {
485
+ return isSameDate;
486
+ }
487
+ });
488
+ Object.defineProperty(exports, 'isString', {
489
+ enumerable: true,
490
+ get: function () {
491
+ return isString;
492
+ }
493
+ });
494
+ Object.defineProperty(exports, 'isUndefined', {
495
+ enumerable: true,
496
+ get: function () {
497
+ return isUndefined;
498
+ }
499
+ });
500
+ Object.defineProperty(exports, 'isValidDate', {
501
+ enumerable: true,
502
+ get: function () {
503
+ return isValidDate;
504
+ }
505
+ });
506
+ Object.defineProperty(exports, 'iso8601DateSchema', {
507
+ enumerable: true,
508
+ get: function () {
509
+ return iso8601DateSchema;
510
+ }
511
+ });
512
+ Object.defineProperty(exports, 'logger', {
513
+ enumerable: true,
514
+ get: function () {
515
+ return logger;
516
+ }
517
+ });
518
+ Object.defineProperty(exports, 'parseDateTime', {
519
+ enumerable: true,
520
+ get: function () {
521
+ return parseDateTime;
522
+ }
523
+ });
524
+ Object.defineProperty(exports, 'safeFormatDate', {
525
+ enumerable: true,
526
+ get: function () {
527
+ return safeFormatDate;
528
+ }
529
+ });
530
+ Object.defineProperty(exports, 'validateIso8601Date', {
531
+ enumerable: true,
532
+ get: function () {
533
+ return validateIso8601Date;
534
+ }
535
+ });
536
+ //# sourceMappingURL=date-CFzrYcjE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-CFzrYcjE.js","names":["z"],"sources":["../src/helpers/types.ts","../src/helpers/logger.ts","../src/helpers/date.ts"],"sourcesContent":["import type { z, ZodObject } from \"zod\";\n\nexport type Nullable<T> = T | null;\nexport type Nullish<T> = T | null | undefined;\nexport type Optional<T> = T | undefined;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- any is ok\nexport type Any = any;\n\nexport type NumberOrString = number | string;\n\nexport type OverrideProps<T, TOverridden> = Omit<T, keyof TOverridden> &\n TOverridden;\n\nexport type NonEmptyArray<T> = [T, ...T[]];\n\nexport interface DataRecord {\n [value: string]: Nullish<DataRecord | string | number | boolean>;\n}\n\nexport interface Input<T> {\n input: T;\n}\n\nexport type ZodCustom<Values extends object> = ZodObject<{\n [P in keyof Values]: z.ZodType<Values[P]>;\n}>;\n\nexport const isError = (value: unknown): value is Error =>\n value instanceof Error;\n\nexport const isFunction = (\n value: unknown,\n): value is (...args: unknown[]) => unknown => typeof value === \"function\";\n\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null;\n\nexport const isNumber = (value: unknown): value is number =>\n typeof value === \"number\";\n\nexport const isString = (value: unknown): value is string =>\n typeof value === \"string\";\n\nexport const isUndefined = (value: unknown): value is undefined =>\n typeof value === \"undefined\";\n\nexport const isBoolean = (value: unknown): value is boolean =>\n typeof value === \"boolean\";\n\nexport const isNull = (value: unknown): value is null => value === null;\n\nexport const isNotNull = (value: unknown): value is NonNullable<unknown> =>\n value !== null && value !== undefined;\n\nexport const isEmpty = (value: unknown): value is \"\" | null | undefined =>\n value === \"\" ||\n value === null ||\n value === undefined ||\n (Array.isArray(value) && value.length === 0);\n\n/**\n * Safely extracts a string from an unknown value.\n * @param value - The value to extract from\n * @param fallback - Optional fallback value if extraction fails\n * @returns The extracted string or fallback/undefined\n */\nexport const extractString = (\n value: unknown,\n fallback?: string,\n): Optional<string> => {\n return isString(value) ? value : fallback;\n};\n\n/**\n * Safely extracts a number from an unknown value.\n * Handles both number and string representations.\n * @param value - The value to extract from\n * @returns The extracted number or undefined\n */\nexport const extractNumber = (value: unknown): Optional<number> => {\n if (isNumber(value)) {\n return value;\n }\n\n if (isString(value)) {\n const parsed = Number.parseFloat(value);\n return Number.isNaN(parsed) ? undefined : parsed;\n }\n\n return undefined;\n};\n","import type { Optional } from \"./types\";\n\nimport { isError, isNotNull, isObject, isString } from \"./types\";\n\ntype LogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\n\nexport interface LoggerOptions {\n /* Optional context prefix (e.g., \"AuthService\", \"PaymentHook\") */\n context?: string;\n /* Additional data to log alongside the message */\n data?: unknown;\n}\n\nexport interface ErrorLogOptions {\n /* Module or service where the error occurred */\n context?: string;\n /* Specific operation that failed (e.g., \"fetchUser\", \"validateToken\") */\n operation?: string;\n /* Additional metadata for debugging */\n metadata?: Record<string, unknown>;\n}\n\nfunction extractErrorMessage(error: unknown): string {\n if (isError(error)) {\n return error.message;\n }\n\n if (isString(error)) {\n return error;\n }\n\n if (isObject(error) && \"message\" in error && isString(error.message)) {\n return error.message;\n }\n\n return \"Unknown error\";\n}\n\nfunction buildPrefix(...parts: Optional<string>[]): string {\n return parts\n .filter(Boolean)\n .map((part) => `[${part}]`)\n .join(\" \");\n}\n\nconst consoleMethods = {\n debug: console.log,\n info: console.log,\n warn: console.warn,\n error: console.error,\n} as const;\n\nclass Logger {\n /* Log informational messages */\n info(message: string, options?: LoggerOptions): void {\n this.log(\"info\", message, options);\n }\n\n /* Log warning messages */\n warn(message: string, options?: LoggerOptions): void {\n this.log(\"warn\", message, options);\n }\n\n /* Log error messages */\n error(message: string, options?: LoggerOptions): void {\n this.log(\"error\", message, options);\n }\n\n /**\n * Log errors with full context and stack trace.\n * For API errors, consider using `getErrorMessage` from `@otim/utils/api`.\n */\n logError(error: unknown, options: ErrorLogOptions = {}): void {\n const { context, operation, metadata } = options;\n const prefix = buildPrefix(context, operation);\n const message = extractErrorMessage(error);\n\n console.error(prefix ? `${prefix} ${message}` : message);\n\n if (metadata && Object.keys(metadata).length > 0) {\n console.error(\"Metadata:\", metadata);\n }\n\n if (isError(error) && error.stack) {\n console.error(\"Stack:\", error.stack);\n } else if (isNotNull(error)) {\n console.error(\"Error details:\", error);\n }\n }\n\n private log(level: LogLevel, message: string, options?: LoggerOptions): void {\n const prefix = buildPrefix(options?.context);\n const fullMessage = prefix ? `${prefix} ${message}` : message;\n const logFn = consoleMethods[level];\n\n logFn(fullMessage);\n\n if (options?.data) {\n this.logData(level, options.data);\n }\n }\n\n private logData(level: LogLevel, data: unknown): void {\n if (level === \"debug\" || level === \"info\") {\n console.dir(data, { depth: null });\n } else {\n consoleMethods[level](\"Data:\", data);\n }\n }\n}\n\nexport const logger = new Logger();\n","import z from \"zod\";\n\nimport { logger } from \"./logger\";\n\ntype Locale = \"en\" | \"es\";\n\ntype FormatDateFunc<T> = (date: Date) => T;\n\nexport const iso8601DateSchema = z\n .string()\n .regex(\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$/,\n \"Must be a valid ISO 8601 date format (e.g., 2024-12-31T23:59:59.000Z)\",\n );\n\nexport const TimeUnit = {\n Day: \"day\",\n Month: \"month\",\n Year: \"year\",\n} as const;\n\nexport type TimeUnit = (typeof TimeUnit)[keyof typeof TimeUnit];\n\nconst units = {\n [TimeUnit.Day]: {\n one: \"day\",\n other: \"days\",\n },\n [TimeUnit.Month]: {\n one: \"month\",\n other: \"months\",\n },\n [TimeUnit.Year]: {\n one: \"year\",\n other: \"years\",\n },\n} as const;\n\nconst formatDateAsUSStandard = (\n date: Date,\n opts?: Intl.DateTimeFormatOptions,\n) =>\n date.toLocaleString(\"en-US\", {\n month: \"2-digit\",\n day: \"2-digit\",\n year: \"numeric\",\n ...opts,\n });\n\nexport const formatDateAsISO = (date: Date) => date.toISOString();\n\nconst formatFullDate = (date: Date): string => {\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"long\",\n day: \"2-digit\",\n timeZone: \"UTC\",\n };\n return new Intl.DateTimeFormat(\"en-US\", options).format(date);\n};\n\nconst formatTime = (date: Date): string => {\n return date.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n timeZone: \"UTC\",\n timeZoneName: \"short\",\n });\n};\n\nconst formatDateTime = (date: Date): string => {\n const dateOptions: Intl.DateTimeFormatOptions = {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n timeZone: \"UTC\",\n };\n const timeOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n timeZone: \"UTC\",\n };\n\n const formattedDate = new Intl.DateTimeFormat(\"en-US\", dateOptions).format(\n date,\n );\n const formattedTime = new Intl.DateTimeFormat(\"en-US\", timeOptions).format(\n date,\n );\n\n return `${formattedDate} at ${formattedTime}`;\n};\n\n/**\n * Formats a date in long format (e.g., \"June 19, 2025\")\n * @param date - Date object to format\n * @returns Formatted date string\n */\nconst formatLongDate = (date: Date): string => {\n const options: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: \"UTC\",\n };\n return new Intl.DateTimeFormat(\"en-US\", options).format(date);\n};\n\n/**\n * Formats a date with time in long format (e.g., \"June 19, 2025 at 07:00 AM\")\n * @param date - Date object to format\n * @returns Formatted date and time string\n */\nconst formatLongDateTime = (date: Date): string => {\n const dateOptions: Intl.DateTimeFormatOptions = {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n timeZone: \"UTC\",\n };\n const timeOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: true,\n timeZone: \"UTC\",\n };\n\n const formattedDate = new Intl.DateTimeFormat(\"en-US\", dateOptions).format(\n date,\n );\n const formattedTime = new Intl.DateTimeFormat(\"en-US\", timeOptions)\n .format(date)\n .toLowerCase();\n\n return `${formattedDate} at ${formattedTime}`;\n};\n\nconst formatToShortDate = (dateString: string | Date) => {\n const date =\n typeof dateString === \"string\" ? new Date(dateString) : dateString;\n\n if (isNaN(date.getTime())) {\n return \"Jan 1\";\n }\n\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n timeZone: \"UTC\",\n });\n};\n\nconst formatToShortDateWithYear = (dateString: string | Date) => {\n const date =\n typeof dateString === \"string\" ? new Date(dateString) : dateString;\n\n if (isNaN(date.getTime())) {\n return \"Unknown\";\n }\n\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n timeZone: \"UTC\",\n });\n};\n\nexport const formatToJustDate = (dateString: string) => {\n const date = new Date(dateString);\n\n if (isNaN(date.getTime())) {\n return \"1\";\n }\n\n return date.getUTCDate().toString();\n};\n\nexport const formatDateToYYYYMMDD = (date: Date) => {\n return new Intl.DateTimeFormat(\"en-CA\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n }).format(date);\n};\n\nconst isDateInvalid = (date: Date) => {\n return date.toString() === \"Invalid Date\";\n};\n\n/**\n * Validates if a date is valid (opposite of isDateInvalid)\n * Checks both the Date object validity and the timestamp\n */\nconst isValidDate = (date: Date): boolean => {\n return !isDateInvalid(date) && !isNaN(date.getTime());\n};\n\nconst isDateEpoc = (date: Date) => {\n return date.getTime() <= 0;\n};\n\nconst isDateInRange = (arg: unknown): boolean => {\n if (typeof arg !== \"string\") {\n return false;\n }\n\n const date = new Date(arg);\n const startDate = new Date(\"1800-01-01T00:00:00.000Z\");\n const endDate = new Date(\"2999-12-31T23:59:59.999Z\");\n\n return date >= startDate && date <= endDate;\n};\n\nconst isDateInPast = (input: string | number | Date): boolean => {\n let date: Date;\n if (input instanceof Date) {\n date = input;\n } else if (typeof input === \"number\") {\n const ms = input < 1e12 ? input * 1000 : input;\n date = new Date(ms);\n } else {\n date = new Date(input);\n }\n\n if (isNaN(date.getTime())) {\n return false;\n }\n\n return date.getTime() < Date.now();\n};\n\nconst isSameDate = (dateA: Date, dateB: Date) => {\n return (\n dateA.getFullYear() === dateB.getFullYear() &&\n dateA.getMonth() === dateB.getMonth() &&\n dateA.getDate() === dateB.getDate()\n );\n};\n\nconst getPluralizedUnit = (\n unit: keyof typeof units,\n count: number,\n locale: Locale = \"en\",\n) => {\n const pluralRules = new Intl.PluralRules(locale, {\n type: \"cardinal\",\n });\n const pluralCategory = pluralRules.select(count);\n\n if (pluralCategory === \"one\" || pluralCategory === \"other\") {\n return `${count} ${units[unit][pluralCategory]}`;\n }\n\n return `${count} ${units[unit].other}`;\n};\n\nconst getRelativeDateDescription = (\n targetDate: Date,\n locale: Locale = \"en\",\n) => {\n const currentDate = new Date();\n\n const oneDay = 1000 * 60 * 60 * 24;\n const oneMonth = oneDay * 30;\n const oneYear = oneDay * 365;\n\n const diffInMilliseconds = targetDate.getTime() - currentDate.getTime();\n const diffInDays = Math.round(diffInMilliseconds / oneDay);\n const diffInMonths = Math.round(diffInMilliseconds / oneMonth);\n const diffInYears = Math.round(diffInMilliseconds / oneYear);\n\n if (Math.abs(diffInYears) >= 1) {\n return getPluralizedUnit(\"year\", Math.abs(diffInYears), locale);\n }\n\n if (Math.abs(diffInMonths) >= 1) {\n return getPluralizedUnit(\"month\", Math.abs(diffInMonths), locale);\n }\n\n return getPluralizedUnit(\"day\", Math.abs(diffInDays), locale);\n};\n\n/**\n * Safely formats a date with validation and fallback support\n * @param date - String or Date to format\n * @param formatter - Function that formats the Date object\n * @param fallback - Value to return if date is invalid\n * @returns Formatted string or fallback value\n */\nconst safeFormatDate = <T = string>(\n date: string | Date,\n formatter: FormatDateFunc<T>,\n fallback: T,\n): T => {\n const dateObj = typeof date === \"string\" ? new Date(date) : date;\n\n if (!isValidDate(dateObj)) {\n return fallback;\n }\n\n try {\n return formatter(dateObj);\n } catch (error) {\n logger.logError(error, {\n context: safeFormatDate.name,\n });\n return fallback;\n }\n};\n\nconst parseDateTime = (dateInput: string, timeInput?: string) => {\n const dateRegex = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\n const timeRegex = /^(\\d{1,2}):(\\d{2})(?::(\\d{2}))?\\s*(AM|PM|am|pm)?$/;\n\n const dateMatch = dateRegex.exec(dateInput);\n if (!dateMatch) {\n return undefined;\n }\n\n const month = parseInt(dateMatch[1]!, 10) - 1;\n const day = parseInt(dateMatch[2]!, 10);\n const year = parseInt(dateMatch[3]!, 10);\n\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n\n if (timeInput) {\n timeInput = timeInput.replace(/\\u00A0/g, \" \").trim();\n\n const timeMatch = timeRegex.exec(timeInput);\n if (!timeMatch) {\n return undefined;\n }\n\n hours = parseInt(timeMatch[1]!, 10);\n minutes = parseInt(timeMatch[2]!, 10);\n seconds = timeMatch[3] ? parseInt(timeMatch[3], 10) : 0;\n const meridiem = timeMatch[4] ? timeMatch[4].toUpperCase() : null;\n\n if (meridiem === \"PM\" && hours < 12) {\n hours += 12;\n } else if (meridiem === \"AM\" && hours === 12) {\n hours = 0;\n }\n }\n\n const date = new Date(Date.UTC(year, month, day, hours, minutes, seconds));\n if (isNaN(date.getTime())) {\n return undefined;\n }\n\n return date;\n};\n\nconst validateIso8601Date = (dueDate: string): void => {\n const result = iso8601DateSchema.safeParse(dueDate);\n if (!result.success) {\n const errorMessage =\n result.error.issues[0]?.message || \"Invalid ISO 8601 format\";\n throw new Error(`Invalid due date format: ${errorMessage}`);\n }\n};\n\nexport {\n formatDateAsUSStandard,\n formatToShortDate,\n formatToShortDateWithYear,\n formatFullDate,\n formatTime,\n formatDateTime,\n formatLongDate,\n formatLongDateTime,\n getPluralizedUnit,\n getRelativeDateDescription,\n isDateInvalid,\n isValidDate,\n validateIso8601Date,\n isDateEpoc,\n isDateInRange,\n isDateInPast,\n isSameDate,\n safeFormatDate,\n parseDateTime,\n};\nexport type { FormatDateFunc };\n"],"mappings":"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"}