@nocios/crudify-ui 5.0.0 → 5.0.1

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 (89) hide show
  1. package/coverage/base.css +224 -0
  2. package/coverage/block-navigation.js +87 -0
  3. package/coverage/coverage-final.json +69 -0
  4. package/coverage/favicon.png +0 -0
  5. package/coverage/index.html +431 -0
  6. package/coverage/prettify.css +1 -0
  7. package/coverage/prettify.js +2 -0
  8. package/coverage/sort-arrow-sprite.png +0 -0
  9. package/coverage/sorter.js +210 -0
  10. package/dist/{api-C_I7deA9.d.ts → api-slyZ8Gxc.d.mts} +17 -1
  11. package/dist/{api-C_I7deA9.d.mts → api-slyZ8Gxc.d.ts} +17 -1
  12. package/dist/chunk-3XZ3TEKQ.js +1 -0
  13. package/dist/chunk-5VOTRIDB.js +1 -0
  14. package/dist/chunk-6BQGRZYB.mjs +1 -0
  15. package/dist/{chunk-BJ6PIVZR.mjs → chunk-JAPL7EZJ.mjs} +1 -1
  16. package/dist/chunk-KQ2XC5PN.js +1 -0
  17. package/dist/chunk-LVSNJ4OM.js +1 -0
  18. package/dist/chunk-NSA6YDHY.mjs +1 -0
  19. package/dist/{chunk-YIIUEOXC.js → chunk-NSV6ECYO.js} +1 -1
  20. package/dist/chunk-NXTXGTU6.js +1 -0
  21. package/dist/chunk-OGAGYHG4.mjs +1 -0
  22. package/dist/chunk-PARX2RMU.mjs +1 -0
  23. package/dist/chunk-QPTL5FLE.mjs +1 -0
  24. package/dist/components.js +1 -1
  25. package/dist/components.mjs +1 -1
  26. package/dist/{errorTranslation-CXaKqIZY.d.mts → errorTranslation-BOha05J6.d.ts} +31 -8
  27. package/dist/{errorTranslation-nLCjcHIw.d.ts → errorTranslation-DTUst6nq.d.mts} +31 -8
  28. package/dist/hooks.d.mts +2 -2
  29. package/dist/hooks.d.ts +2 -2
  30. package/dist/hooks.js +1 -1
  31. package/dist/hooks.mjs +1 -1
  32. package/dist/{index-FpnmfpFM.d.mts → index-DD1mjOd6.d.mts} +68 -42
  33. package/dist/{index-DLlGvAEz.d.ts → index-Dr4eHdgn.d.ts} +68 -42
  34. package/dist/index.d.mts +10 -6
  35. package/dist/index.d.ts +10 -6
  36. package/dist/index.js +2 -2
  37. package/dist/index.mjs +2 -2
  38. package/dist/utils.d.mts +3 -3
  39. package/dist/utils.d.ts +3 -3
  40. package/dist/utils.js +1 -1
  41. package/dist/utils.mjs +1 -1
  42. package/package.json +1 -3
  43. package/coverage/.tmp/coverage-37.json +0 -1
  44. package/coverage/.tmp/coverage-38.json +0 -1
  45. package/coverage/.tmp/coverage-39.json +0 -1
  46. package/coverage/.tmp/coverage-40.json +0 -1
  47. package/coverage/.tmp/coverage-41.json +0 -1
  48. package/coverage/.tmp/coverage-42.json +0 -1
  49. package/coverage/.tmp/coverage-43.json +0 -1
  50. package/coverage/.tmp/coverage-44.json +0 -1
  51. package/coverage/.tmp/coverage-45.json +0 -1
  52. package/coverage/.tmp/coverage-46.json +0 -1
  53. package/coverage/.tmp/coverage-47.json +0 -1
  54. package/coverage/.tmp/coverage-48.json +0 -1
  55. package/coverage/.tmp/coverage-49.json +0 -1
  56. package/coverage/.tmp/coverage-50.json +0 -1
  57. package/coverage/.tmp/coverage-51.json +0 -1
  58. package/coverage/.tmp/coverage-52.json +0 -1
  59. package/coverage/.tmp/coverage-53.json +0 -1
  60. package/coverage/.tmp/coverage-54.json +0 -1
  61. package/coverage/.tmp/coverage-55.json +0 -1
  62. package/coverage/.tmp/coverage-56.json +0 -1
  63. package/coverage/.tmp/coverage-57.json +0 -1
  64. package/coverage/.tmp/coverage-58.json +0 -1
  65. package/coverage/.tmp/coverage-59.json +0 -1
  66. package/coverage/.tmp/coverage-60.json +0 -1
  67. package/coverage/.tmp/coverage-61.json +0 -1
  68. package/coverage/.tmp/coverage-62.json +0 -1
  69. package/coverage/.tmp/coverage-63.json +0 -1
  70. package/coverage/.tmp/coverage-64.json +0 -1
  71. package/coverage/.tmp/coverage-65.json +0 -1
  72. package/coverage/.tmp/coverage-66.json +0 -1
  73. package/coverage/.tmp/coverage-67.json +0 -1
  74. package/coverage/.tmp/coverage-68.json +0 -1
  75. package/coverage/.tmp/coverage-69.json +0 -1
  76. package/coverage/.tmp/coverage-70.json +0 -1
  77. package/coverage/.tmp/coverage-71.json +0 -1
  78. package/coverage/.tmp/coverage-72.json +0 -1
  79. package/coverage/.tmp/coverage-73.json +0 -1
  80. package/dist/chunk-34FAL7YW.js +0 -1
  81. package/dist/chunk-AD5AA75O.mjs +0 -1
  82. package/dist/chunk-ARGPCO6I.js +0 -1
  83. package/dist/chunk-CKGV4C6A.js +0 -1
  84. package/dist/chunk-FRHTVRUM.mjs +0 -1
  85. package/dist/chunk-IRHFZZXY.mjs +0 -1
  86. package/dist/chunk-JCQC42XC.js +0 -1
  87. package/dist/chunk-SQPHAKLM.mjs +0 -1
  88. package/dist/chunk-SUWV767V.mjs +0 -1
  89. package/dist/chunk-VM6JVOLD.js +0 -1
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":19}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":19}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2042","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"readCookie","ranges":[{"startOffset":483,"endOffset":682,"count":8},{"startOffset":550,"endOffset":562,"count":0},{"startOffset":662,"endOffset":672,"count":0}],"isBlockCoverage":true},{"functionName":"detectEnvironment","ranges":[{"startOffset":683,"endOffset":981,"count":8},{"startOffset":777,"endOffset":817,"count":0},{"startOffset":881,"endOffset":933,"count":0},{"startOffset":935,"endOffset":962,"count":0}],"isBlockCoverage":true},{"functionName":"Logger","ranges":[{"startOffset":1051,"endOffset":1161,"count":1}],"isBlockCoverage":true},{"functionName":"getEffectiveEnv","ranges":[{"startOffset":1273,"endOffset":1402,"count":8},{"startOffset":1328,"endOffset":1366,"count":0}],"isBlockCoverage":true},{"functionName":"sanitize","ranges":[{"startOffset":1459,"endOffset":1639,"count":0}],"isBlockCoverage":true},{"functionName":"sanitizeContext","ranges":[{"startOffset":1683,"endOffset":2503,"count":0}],"isBlockCoverage":true},{"functionName":"shouldLog","ranges":[{"startOffset":2684,"endOffset":3015,"count":8},{"startOffset":2775,"endOffset":2801,"count":0},{"startOffset":2882,"endOffset":2905,"count":0},{"startOffset":2906,"endOffset":2922,"count":0},{"startOffset":2994,"endOffset":3014,"count":0}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":3063,"endOffset":3910,"count":8},{"startOffset":3133,"endOffset":3255,"count":0},{"startOffset":3256,"endOffset":3264,"count":0},{"startOffset":3493,"endOffset":3536,"count":0},{"startOffset":3537,"endOffset":3569,"count":0},{"startOffset":3649,"endOffset":3708,"count":0},{"startOffset":3715,"endOffset":3772,"count":0},{"startOffset":3779,"endOffset":3836,"count":0},{"startOffset":3843,"endOffset":3900,"count":0}],"isBlockCoverage":true},{"functionName":"error","ranges":[{"startOffset":3979,"endOffset":4286,"count":0}],"isBlockCoverage":true},{"functionName":"warn","ranges":[{"startOffset":4338,"endOffset":4406,"count":8}],"isBlockCoverage":true},{"functionName":"info","ranges":[{"startOffset":4453,"endOffset":4521,"count":0}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":4581,"endOffset":4651,"count":0}],"isBlockCoverage":true},{"functionName":"getEnvironment","ranges":[{"startOffset":4705,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"setEnvironment","ranges":[{"startOffset":4908,"endOffset":5067,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5144,"endOffset":5212,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5360,"count":8}],"isBlockCoverage":true}]},{"scriptId":"2644","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/unit/jwtUtils.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":25036,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":25036,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":692,"endOffset":9058,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":752,"endOffset":2818,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":822,"endOffset":1318,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1394,"endOffset":1587,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1665,"endOffset":1859,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1929,"endOffset":2218,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2309,"endOffset":2812,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2872,"endOffset":4918,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2960,"endOffset":3214,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3286,"endOffset":3535,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3617,"endOffset":3957,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4029,"endOffset":4324,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4399,"endOffset":4912,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4977,"endOffset":7318,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5022,"endOffset":5093,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5132,"endOffset":5203,"count":6}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5294,"endOffset":5551,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5630,"endOffset":5900,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5981,"endOffset":6212,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6291,"endOffset":6396,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6477,"endOffset":6807,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6875,"endOffset":7312,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7368,"endOffset":9054,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7443,"endOffset":7864,"count":1},{"startOffset":7518,"endOffset":7574,"count":1000}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7940,"endOffset":8530,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8606,"endOffset":9048,"count":1}],"isBlockCoverage":true}]},{"scriptId":"2645","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/jwtUtils.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":7026,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":7026,"count":1}],"isBlockCoverage":true},{"functionName":"decodeJwtSafely","ranges":[{"startOffset":321,"endOffset":914,"count":24},{"startOffset":406,"endOffset":520,"count":4},{"startOffset":520,"endOffset":720,"count":17},{"startOffset":720,"endOffset":912,"count":4},{"startOffset":861,"endOffset":889,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1019,"endOffset":1050,"count":10}],"isBlockCoverage":true},{"functionName":"getCurrentUserEmail","ranges":[{"startOffset":1082,"endOffset":1772,"count":7},{"startOffset":1185,"endOffset":1239,"count":3},{"startOffset":1256,"endOffset":1345,"count":2},{"startOffset":1306,"endOffset":1338,"count":1},{"startOffset":1362,"endOffset":1388,"count":1},{"startOffset":1388,"endOffset":1451,"count":6},{"startOffset":1451,"endOffset":1477,"count":0},{"startOffset":1477,"endOffset":1510,"count":6},{"startOffset":1510,"endOffset":1540,"count":2},{"startOffset":1541,"endOffset":1548,"count":1},{"startOffset":1572,"endOffset":1770,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1881,"endOffset":1916,"count":7}],"isBlockCoverage":true},{"functionName":"isTokenExpired","ranges":[{"startOffset":1943,"endOffset":2181,"count":8},{"startOffset":2025,"endOffset":2040,"count":5},{"startOffset":2042,"endOffset":2151,"count":4},{"startOffset":2151,"endOffset":2179,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2285,"endOffset":2315,"count":8}],"isBlockCoverage":true}]},{"scriptId":"2646","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/helpers/testUtils.tsx","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8711,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":8711,"count":1}],"isBlockCoverage":true},{"functionName":"renderWithProviders","ranges":[{"startOffset":468,"endOffset":935,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1043,"endOffset":1078,"count":0}],"isBlockCoverage":false},{"functionName":"waitForCondition","ranges":[{"startOffset":1082,"endOffset":1371,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":1476,"endOffset":1508,"count":0}],"isBlockCoverage":false},{"functionName":"mockLocalStorage","ranges":[{"startOffset":1512,"endOffset":1952,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2057,"endOffset":2089,"count":0}],"isBlockCoverage":false},{"functionName":"createMockJWT","ranges":[{"startOffset":2093,"endOffset":2456,"count":14},{"startOffset":2276,"endOffset":2314,"count":10}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2558,"endOffset":2587,"count":14}],"isBlockCoverage":true},{"functionName":"sleep","ranges":[{"startOffset":2605,"endOffset":2662,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":2757,"endOffset":2778,"count":0}],"isBlockCoverage":false},{"functionName":"mockFetchResponse","ranges":[{"startOffset":2782,"endOffset":3037,"count":0}],"isBlockCoverage":false},{"functionName":"get","ranges":[{"startOffset":3143,"endOffset":3176,"count":0}],"isBlockCoverage":false}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":25}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":25}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2647","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/services/translationService.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":43611,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":43611,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":352,"endOffset":798,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":840,"endOffset":963,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":996,"endOffset":1100,"count":1}],"isBlockCoverage":true},{"functionName":"getUniqueApiKey","ranges":[{"startOffset":1364,"endOffset":1403,"count":23}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1436,"endOffset":13741,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1457,"endOffset":2253,"count":25}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2268,"endOffset":2493,"count":25}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2528,"endOffset":3016,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2578,"endOffset":2780,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2828,"endOffset":3010,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3044,"endOffset":3274,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3084,"endOffset":3268,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3105,"endOffset":3160,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3190,"endOffset":3246,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3309,"endOffset":8152,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3362,"endOffset":3692,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3750,"endOffset":4142,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4205,"endOffset":4566,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4631,"endOffset":5035,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5110,"endOffset":5510,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5574,"endOffset":5970,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6032,"endOffset":6479,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6544,"endOffset":6894,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6961,"endOffset":7345,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7405,"endOffset":7769,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7824,"endOffset":8146,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8186,"endOffset":10602,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8239,"endOffset":8584,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8621,"endOffset":9032,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9069,"endOffset":9655,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9713,"endOffset":10119,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9850,"endOffset":9907,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10185,"endOffset":10596,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10322,"endOffset":10384,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10640,"endOffset":11416,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10710,"endOffset":11029,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11083,"endOffset":11410,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11455,"endOffset":12329,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11509,"endOffset":12323,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12366,"endOffset":12688,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12422,"endOffset":12682,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12731,"endOffset":13737,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12803,"endOffset":13402,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13452,"endOffset":13731,"count":1}],"isBlockCoverage":true}]},{"scriptId":"2648","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/services/translationService.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":38783,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":38783,"count":1}],"isBlockCoverage":true},{"functionName":"hashApiKey","ranges":[{"startOffset":661,"endOffset":895,"count":54},{"startOffset":749,"endOffset":855,"count":793}],"isBlockCoverage":true},{"functionName":"TranslationService","ranges":[{"startOffset":925,"endOffset":1045,"count":1}],"isBlockCoverage":true},{"functionName":"getInstance","ranges":[{"startOffset":1055,"endOffset":1222,"count":4},{"startOffset":1109,"endOffset":1178,"count":1}],"isBlockCoverage":true},{"functionName":"setDebug","ranges":[{"startOffset":1257,"endOffset":1310,"count":2}],"isBlockCoverage":true},{"functionName":"ensureCrudifyInitialized","ranges":[{"startOffset":1455,"endOffset":3051,"count":24},{"startOffset":1536,"endOffset":1557,"count":2},{"startOffset":1557,"endOffset":1594,"count":22},{"startOffset":1594,"endOffset":1768,"count":0},{"startOffset":1768,"endOffset":1795,"count":22},{"startOffset":1795,"endOffset":1882,"count":0},{"startOffset":1882,"endOffset":3050,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1917,"endOffset":3004,"count":22},{"startOffset":2037,"endOffset":2058,"count":1},{"startOffset":2060,"endOffset":2246,"count":1},{"startOffset":2094,"endOffset":2181,"count":0},{"startOffset":2246,"endOffset":2396,"count":21},{"startOffset":2396,"endOffset":2405,"count":0},{"startOffset":2406,"endOffset":2414,"count":21},{"startOffset":2416,"endOffset":2457,"count":19},{"startOffset":2457,"endOffset":2582,"count":1},{"startOffset":2549,"endOffset":2567,"count":0},{"startOffset":2582,"endOffset":2648,"count":18},{"startOffset":2648,"endOffset":2744,"count":0},{"startOffset":2753,"endOffset":2998,"count":3},{"startOffset":2896,"endOffset":2924,"count":0}],"isBlockCoverage":true},{"functionName":"fetchTranslations","ranges":[{"startOffset":3294,"endOffset":6014,"count":26},{"startOffset":3437,"endOffset":3679,"count":0},{"startOffset":3760,"endOffset":3789,"count":2},{"startOffset":3790,"endOffset":3796,"count":24},{"startOffset":3813,"endOffset":3831,"count":2},{"startOffset":3833,"endOffset":4041,"count":2},{"startOffset":3863,"endOffset":3948,"count":0},{"startOffset":4041,"endOffset":4114,"count":24},{"startOffset":4114,"endOffset":4121,"count":21},{"startOffset":4121,"endOffset":4666,"count":3},{"startOffset":4262,"endOffset":4290,"count":0},{"startOffset":4311,"endOffset":4510,"count":0},{"startOffset":4666,"endOffset":4705,"count":21},{"startOffset":4705,"endOffset":4798,"count":0},{"startOffset":4798,"endOffset":4859,"count":21},{"startOffset":4859,"endOffset":4945,"count":19},{"startOffset":4945,"endOffset":4955,"count":0},{"startOffset":4957,"endOffset":5010,"count":19},{"startOffset":5010,"endOffset":5069,"count":0},{"startOffset":5069,"endOffset":5190,"count":19},{"startOffset":5190,"endOffset":5452,"count":0},{"startOffset":5452,"endOffset":5480,"count":19},{"startOffset":5480,"endOffset":6010,"count":2},{"startOffset":5609,"endOffset":5637,"count":0},{"startOffset":5658,"endOffset":5855,"count":0}],"isBlockCoverage":true},{"functionName":"fetchFromAPI","ranges":[{"startOffset":6065,"endOffset":6455,"count":21},{"startOffset":6212,"endOffset":6335,"count":1},{"startOffset":6308,"endOffset":6325,"count":0},{"startOffset":6335,"endOffset":6360,"count":20},{"startOffset":6360,"endOffset":6425,"count":1},{"startOffset":6425,"endOffset":6454,"count":19}],"isBlockCoverage":true},{"functionName":"mergeWithUrlTranslations","ranges":[{"startOffset":6563,"endOffset":6973,"count":21},{"startOffset":6649,"endOffset":6693,"count":3},{"startOffset":6695,"endOffset":6732,"count":19},{"startOffset":6732,"endOffset":6972,"count":2}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6797,"endOffset":6948,"count":3}],"isBlockCoverage":true},{"functionName":"hasDataChanged","ranges":[{"startOffset":7048,"endOffset":7292,"count":19},{"startOffset":7111,"endOffset":7291,"count":0}],"isBlockCoverage":true},{"functionName":"hashData","ranges":[{"startOffset":7353,"endOffset":7612,"count":19},{"startOffset":7467,"endOffset":7578,"count":1203}],"isBlockCoverage":true},{"functionName":"saveToCache","ranges":[{"startOffset":7653,"endOffset":8224,"count":19},{"startOffset":7955,"endOffset":8044,"count":0},{"startOffset":8051,"endOffset":8220,"count":1},{"startOffset":8184,"endOffset":8212,"count":0}],"isBlockCoverage":true},{"functionName":"getFromCache","ranges":[{"startOffset":8267,"endOffset":8665,"count":33},{"startOffset":8421,"endOffset":8433,"count":27},{"startOffset":8433,"endOffset":8473,"count":5},{"startOffset":8473,"endOffset":8661,"count":1},{"startOffset":8606,"endOffset":8634,"count":0}],"isBlockCoverage":true},{"functionName":"refreshCacheTimestamp","ranges":[{"startOffset":8731,"endOffset":9194,"count":0}],"isBlockCoverage":false},{"functionName":"isCacheExpired","ranges":[{"startOffset":9240,"endOffset":9340,"count":5}],"isBlockCoverage":true},{"functionName":"hasValidCache","ranges":[{"startOffset":9484,"endOffset":9629,"count":7},{"startOffset":9571,"endOffset":9584,"count":4},{"startOffset":9584,"endOffset":9628,"count":3}],"isBlockCoverage":true},{"functionName":"getCacheKey","ranges":[{"startOffset":9737,"endOffset":9817,"count":54}],"isBlockCoverage":true},{"functionName":"getCriticalTranslationsOnly","ranges":[{"startOffset":9880,"endOffset":9971,"count":5}],"isBlockCoverage":true},{"functionName":"invalidateCache","ranges":[{"startOffset":10039,"endOffset":10273,"count":2},{"startOffset":10177,"endOffset":10269,"count":0}],"isBlockCoverage":true},{"functionName":"prefetchTranslations","ranges":[{"startOffset":10329,"endOffset":10703,"count":2},{"startOffset":10450,"endOffset":10528,"count":0},{"startOffset":10535,"endOffset":10699,"count":0}],"isBlockCoverage":true},{"functionName":"clearAllCaches","ranges":[{"startOffset":10752,"endOffset":11300,"count":51},{"startOffset":11011,"endOffset":11118,"count":0},{"startOffset":11125,"endOffset":11296,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10869,"endOffset":10910,"count":16}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10943,"endOffset":10980,"count":16}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":11409,"endOffset":11443,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":11614,"endOffset":11648,"count":190}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2042","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"readCookie","ranges":[{"startOffset":483,"endOffset":682,"count":0}],"isBlockCoverage":true},{"functionName":"detectEnvironment","ranges":[{"startOffset":683,"endOffset":981,"count":0}],"isBlockCoverage":true},{"functionName":"Logger","ranges":[{"startOffset":1051,"endOffset":1161,"count":1}],"isBlockCoverage":true},{"functionName":"getEffectiveEnv","ranges":[{"startOffset":1273,"endOffset":1402,"count":0}],"isBlockCoverage":true},{"functionName":"sanitize","ranges":[{"startOffset":1459,"endOffset":1639,"count":0}],"isBlockCoverage":true},{"functionName":"sanitizeContext","ranges":[{"startOffset":1683,"endOffset":2503,"count":0}],"isBlockCoverage":true},{"functionName":"shouldLog","ranges":[{"startOffset":2684,"endOffset":3015,"count":0}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":3063,"endOffset":3910,"count":0}],"isBlockCoverage":true},{"functionName":"error","ranges":[{"startOffset":3979,"endOffset":4286,"count":0}],"isBlockCoverage":true},{"functionName":"warn","ranges":[{"startOffset":4338,"endOffset":4406,"count":0}],"isBlockCoverage":true},{"functionName":"info","ranges":[{"startOffset":4453,"endOffset":4521,"count":0}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":4581,"endOffset":4651,"count":0}],"isBlockCoverage":true},{"functionName":"getEnvironment","ranges":[{"startOffset":4705,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"setEnvironment","ranges":[{"startOffset":4908,"endOffset":5067,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5144,"endOffset":5212,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5360,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2649","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/utils/secureStorage.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":25706,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":25706,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":338,"endOffset":844,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":378,"endOffset":455,"count":20}],"isBlockCoverage":true},{"functionName":"toString","ranges":[{"startOffset":408,"endOffset":448,"count":20}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":490,"endOffset":589,"count":17}],"isBlockCoverage":true},{"functionName":"toString","ranges":[{"startOffset":526,"endOffset":580,"count":17}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":613,"endOffset":793,"count":6}],"isBlockCoverage":true},{"functionName":"toString","ranges":[{"startOffset":654,"endOffset":784,"count":6},{"startOffset":769,"endOffset":773,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":988,"endOffset":7784,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1009,"endOffset":1098,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1113,"endOffset":1178,"count":22}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1207,"endOffset":1966,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1262,"endOffset":1483,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1535,"endOffset":1713,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1778,"endOffset":1960,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2003,"endOffset":3459,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2062,"endOffset":2260,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2313,"endOffset":2465,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2504,"endOffset":2754,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2804,"endOffset":3096,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3151,"endOffset":3453,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3487,"endOffset":4158,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3539,"endOffset":3955,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4017,"endOffset":4152,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4091,"endOffset":4130,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4184,"endOffset":5682,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4250,"endOffset":4599,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4664,"endOffset":4908,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4975,"endOffset":5252,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5313,"endOffset":5676,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5708,"endOffset":7017,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5761,"endOffset":6083,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6140,"endOffset":6594,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6647,"endOffset":6758,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6813,"endOffset":7011,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7053,"endOffset":7780,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7115,"endOffset":7220,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7275,"endOffset":7378,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7438,"endOffset":7580,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7636,"endOffset":7774,"count":1}],"isBlockCoverage":true}]},{"scriptId":"2650","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/components/CrudifyLogin/utils/secureStorage.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":13464,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":13464,"count":1}],"isBlockCoverage":true},{"functionName":"SecureStorage","ranges":[{"startOffset":446,"endOffset":647,"count":20},{"startOffset":597,"endOffset":618,"count":2},{"startOffset":619,"endOffset":642,"count":18}],"isBlockCoverage":true},{"functionName":"generateEncryptionKey","ranges":[{"startOffset":650,"endOffset":1006,"count":20}],"isBlockCoverage":true},{"functionName":"setItem","ranges":[{"startOffset":1009,"endOffset":1574,"count":17},{"startOffset":1230,"endOffset":1403,"count":9},{"startOffset":1410,"endOffset":1570,"count":0}],"isBlockCoverage":true},{"functionName":"getItem","ranges":[{"startOffset":1577,"endOffset":2574,"count":9},{"startOffset":1715,"endOffset":1905,"count":4},{"startOffset":1831,"endOffset":1897,"count":1},{"startOffset":1905,"endOffset":1979,"count":8},{"startOffset":1979,"endOffset":1991,"count":2},{"startOffset":1991,"endOffset":2190,"count":6},{"startOffset":2190,"endOffset":2345,"count":0},{"startOffset":2345,"endOffset":2373,"count":6},{"startOffset":2373,"endOffset":2570,"count":0}],"isBlockCoverage":true},{"functionName":"removeItem","ranges":[{"startOffset":2577,"endOffset":2678,"count":4}],"isBlockCoverage":true},{"functionName":"setToken","ranges":[{"startOffset":2681,"endOffset":3371,"count":5},{"startOffset":2777,"endOffset":3205,"count":4},{"startOffset":2856,"endOffset":3197,"count":3},{"startOffset":3088,"endOffset":3187,"count":2},{"startOffset":3212,"endOffset":3320,"count":0},{"startOffset":3320,"endOffset":3370,"count":3}],"isBlockCoverage":true},{"functionName":"getToken","ranges":[{"startOffset":3374,"endOffset":4004,"count":5},{"startOffset":3447,"endOffset":3982,"count":4},{"startOffset":3533,"endOffset":3815,"count":3},{"startOffset":3707,"endOffset":3793,"count":1},{"startOffset":3824,"endOffset":3976,"count":0},{"startOffset":3982,"endOffset":4003,"count":4}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":4181,"endOffset":4217,"count":2}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":4389,"endOffset":4423,"count":2}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":14}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":14}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2041","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/services/credentialsEventBus.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6502,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6502,"count":1}],"isBlockCoverage":true},{"functionName":"CredentialsEventBus","ranges":[{"startOffset":327,"endOffset":426,"count":1}],"isBlockCoverage":true},{"functionName":"getInstance","ranges":[{"startOffset":436,"endOffset":607,"count":1}],"isBlockCoverage":true},{"functionName":"notifyCredentialsReady","ranges":[{"startOffset":738,"endOffset":1139,"count":13}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":864,"endOffset":1108,"count":8},{"startOffset":931,"endOffset":1102,"count":0}],"isBlockCoverage":true},{"functionName":"waitForCredentials","ranges":[{"startOffset":1284,"endOffset":1490,"count":13},{"startOffset":1328,"endOffset":1347,"count":4},{"startOffset":1349,"endOffset":1404,"count":4},{"startOffset":1404,"endOffset":1489,"count":9}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1428,"endOffset":1484,"count":9}],"isBlockCoverage":true},{"functionName":"reset","ranges":[{"startOffset":1562,"endOffset":1655,"count":18}],"isBlockCoverage":true},{"functionName":"areCredentialsReady","ranges":[{"startOffset":1718,"endOffset":1799,"count":7},{"startOffset":1766,"endOffset":1794,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":1972,"endOffset":2007,"count":54}],"isBlockCoverage":true}]},{"scriptId":"2042","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"readCookie","ranges":[{"startOffset":483,"endOffset":682,"count":0}],"isBlockCoverage":true},{"functionName":"detectEnvironment","ranges":[{"startOffset":683,"endOffset":981,"count":0}],"isBlockCoverage":true},{"functionName":"Logger","ranges":[{"startOffset":1051,"endOffset":1161,"count":1}],"isBlockCoverage":true},{"functionName":"getEffectiveEnv","ranges":[{"startOffset":1273,"endOffset":1402,"count":0}],"isBlockCoverage":true},{"functionName":"sanitize","ranges":[{"startOffset":1459,"endOffset":1639,"count":0}],"isBlockCoverage":true},{"functionName":"sanitizeContext","ranges":[{"startOffset":1683,"endOffset":2503,"count":0}],"isBlockCoverage":true},{"functionName":"shouldLog","ranges":[{"startOffset":2684,"endOffset":3015,"count":0}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":3063,"endOffset":3910,"count":0}],"isBlockCoverage":true},{"functionName":"error","ranges":[{"startOffset":3979,"endOffset":4286,"count":0}],"isBlockCoverage":true},{"functionName":"warn","ranges":[{"startOffset":4338,"endOffset":4406,"count":0}],"isBlockCoverage":true},{"functionName":"info","ranges":[{"startOffset":4453,"endOffset":4521,"count":0}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":4581,"endOffset":4651,"count":0}],"isBlockCoverage":true},{"functionName":"getEnvironment","ranges":[{"startOffset":4705,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"setEnvironment","ranges":[{"startOffset":4908,"endOffset":5067,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5144,"endOffset":5212,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5360,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2651","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/services/credentialsEventBus.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":23971,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":23971,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":540,"endOffset":8525,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":583,"endOffset":695,"count":14}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":752,"endOffset":1184,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":824,"endOffset":1178,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1243,"endOffset":2331,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1313,"endOffset":1439,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1524,"endOffset":1806,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1873,"endOffset":2325,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2393,"endOffset":4637,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2458,"endOffset":2830,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2897,"endOffset":3360,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3434,"endOffset":4117,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4193,"endOffset":4631,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4257,"endOffset":4315,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4393,"endOffset":4408,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4446,"endOffset":4609,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4695,"endOffset":6644,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4795,"endOffset":5166,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5246,"endOffset":5826,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5450,"endOffset":5517,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5903,"endOffset":6638,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6689,"endOffset":8521,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6754,"endOffset":7195,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7261,"endOffset":7620,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7371,"endOffset":7411,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7698,"endOffset":8515,"count":1}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":10}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":10}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2042","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"readCookie","ranges":[{"startOffset":483,"endOffset":682,"count":19},{"startOffset":550,"endOffset":562,"count":0},{"startOffset":662,"endOffset":672,"count":0}],"isBlockCoverage":true},{"functionName":"detectEnvironment","ranges":[{"startOffset":683,"endOffset":981,"count":19},{"startOffset":777,"endOffset":817,"count":0},{"startOffset":881,"endOffset":933,"count":0},{"startOffset":935,"endOffset":962,"count":0}],"isBlockCoverage":true},{"functionName":"Logger","ranges":[{"startOffset":1051,"endOffset":1161,"count":1}],"isBlockCoverage":true},{"functionName":"getEffectiveEnv","ranges":[{"startOffset":1273,"endOffset":1402,"count":19},{"startOffset":1328,"endOffset":1366,"count":0}],"isBlockCoverage":true},{"functionName":"sanitize","ranges":[{"startOffset":1459,"endOffset":1639,"count":4},{"startOffset":1546,"endOffset":1613,"count":32}],"isBlockCoverage":true},{"functionName":"sanitizeContext","ranges":[{"startOffset":1683,"endOffset":2503,"count":1},{"startOffset":1792,"endOffset":2477,"count":3},{"startOffset":1840,"endOffset":1849,"count":0},{"startOffset":1877,"endOffset":1905,"count":0},{"startOffset":1907,"endOffset":1999,"count":0},{"startOffset":2025,"endOffset":2053,"count":0},{"startOffset":2055,"endOffset":2213,"count":0},{"startOffset":2306,"endOffset":2471,"count":0}],"isBlockCoverage":true},{"functionName":"shouldLog","ranges":[{"startOffset":2684,"endOffset":3015,"count":18},{"startOffset":2775,"endOffset":2801,"count":0},{"startOffset":2882,"endOffset":2905,"count":0},{"startOffset":2906,"endOffset":2922,"count":0},{"startOffset":2967,"endOffset":2994,"count":17},{"startOffset":2994,"endOffset":3014,"count":1}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":3063,"endOffset":3910,"count":18},{"startOffset":3126,"endOffset":3133,"count":17},{"startOffset":3133,"endOffset":3255,"count":1},{"startOffset":3256,"endOffset":3264,"count":0},{"startOffset":3493,"endOffset":3536,"count":1},{"startOffset":3537,"endOffset":3569,"count":1},{"startOffset":3649,"endOffset":3708,"count":1},{"startOffset":3715,"endOffset":3772,"count":0},{"startOffset":3779,"endOffset":3836,"count":0},{"startOffset":3843,"endOffset":3900,"count":0}],"isBlockCoverage":true},{"functionName":"error","ranges":[{"startOffset":3979,"endOffset":4286,"count":1},{"startOffset":4197,"endOffset":4238,"count":0}],"isBlockCoverage":true},{"functionName":"warn","ranges":[{"startOffset":4338,"endOffset":4406,"count":0}],"isBlockCoverage":true},{"functionName":"info","ranges":[{"startOffset":4453,"endOffset":4521,"count":0}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":4581,"endOffset":4651,"count":17}],"isBlockCoverage":true},{"functionName":"getEnvironment","ranges":[{"startOffset":4705,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"setEnvironment","ranges":[{"startOffset":4908,"endOffset":5067,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5144,"endOffset":5212,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5360,"count":18}],"isBlockCoverage":true}]},{"scriptId":"2491","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/authEventBus.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8712,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":8712,"count":1}],"isBlockCoverage":true},{"functionName":"AuthEventBus","ranges":[{"startOffset":335,"endOffset":529,"count":1}],"isBlockCoverage":true},{"functionName":"getInstance","ranges":[{"startOffset":539,"endOffset":682,"count":1}],"isBlockCoverage":true},{"functionName":"emit","ranges":[{"startOffset":791,"endOffset":1738,"count":17},{"startOffset":874,"endOffset":904,"count":7},{"startOffset":905,"endOffset":953,"count":5},{"startOffset":955,"endOffset":1080,"count":5},{"startOffset":1080,"endOffset":1279,"count":12},{"startOffset":1280,"endOffset":1288,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1393,"endOffset":1623,"count":15},{"startOffset":1454,"endOffset":1617,"count":1},{"startOffset":1579,"endOffset":1607,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1641,"endOffset":1727,"count":1}],"isBlockCoverage":true},{"functionName":"subscribe","ranges":[{"startOffset":1849,"endOffset":1973,"count":13}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1916,"endOffset":1968,"count":1}],"isBlockCoverage":true},{"functionName":"clear","ranges":[{"startOffset":2021,"endOffset":2131,"count":9}],"isBlockCoverage":true},{"functionName":"isHandling","ranges":[{"startOffset":2194,"endOffset":2249,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":2401,"endOffset":2429,"count":40}],"isBlockCoverage":true}]},{"scriptId":"2652","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/integration/interceptorNonBlocking.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":21263,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":21263,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":341,"endOffset":581,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":720,"endOffset":6139,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":741,"endOffset":818,"count":9}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":850,"endOffset":2411,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":926,"endOffset":1471,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1518,"endOffset":1931,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1983,"endOffset":2405,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2447,"endOffset":4366,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2512,"endOffset":3337,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3392,"endOffset":3869,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3925,"endOffset":4360,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4402,"endOffset":5451,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4448,"endOffset":4976,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5028,"endOffset":5445,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5483,"endOffset":6135,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5542,"endOffset":6129,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5584,"endOffset":5642,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5754,"endOffset":5769,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5908,"endOffset":6020,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6190,"endOffset":6585,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6252,"endOffset":6581,"count":1}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":39}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":39}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2042","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"readCookie","ranges":[{"startOffset":483,"endOffset":682,"count":13},{"startOffset":550,"endOffset":562,"count":0},{"startOffset":662,"endOffset":672,"count":0}],"isBlockCoverage":true},{"functionName":"detectEnvironment","ranges":[{"startOffset":683,"endOffset":981,"count":13},{"startOffset":777,"endOffset":817,"count":0},{"startOffset":881,"endOffset":933,"count":0},{"startOffset":935,"endOffset":962,"count":0}],"isBlockCoverage":true},{"functionName":"Logger","ranges":[{"startOffset":1051,"endOffset":1161,"count":1}],"isBlockCoverage":true},{"functionName":"getEffectiveEnv","ranges":[{"startOffset":1273,"endOffset":1402,"count":13},{"startOffset":1328,"endOffset":1366,"count":0}],"isBlockCoverage":true},{"functionName":"sanitize","ranges":[{"startOffset":1459,"endOffset":1639,"count":0}],"isBlockCoverage":true},{"functionName":"sanitizeContext","ranges":[{"startOffset":1683,"endOffset":2503,"count":0}],"isBlockCoverage":true},{"functionName":"shouldLog","ranges":[{"startOffset":2684,"endOffset":3015,"count":13},{"startOffset":2775,"endOffset":2801,"count":0},{"startOffset":2882,"endOffset":2905,"count":0},{"startOffset":2906,"endOffset":2922,"count":0},{"startOffset":2994,"endOffset":3014,"count":0}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":3063,"endOffset":3910,"count":13},{"startOffset":3133,"endOffset":3255,"count":0},{"startOffset":3256,"endOffset":3264,"count":0},{"startOffset":3493,"endOffset":3536,"count":0},{"startOffset":3537,"endOffset":3569,"count":0},{"startOffset":3649,"endOffset":3708,"count":0},{"startOffset":3715,"endOffset":3772,"count":0},{"startOffset":3779,"endOffset":3836,"count":0},{"startOffset":3843,"endOffset":3900,"count":0}],"isBlockCoverage":true},{"functionName":"error","ranges":[{"startOffset":3979,"endOffset":4286,"count":0}],"isBlockCoverage":true},{"functionName":"warn","ranges":[{"startOffset":4338,"endOffset":4406,"count":0}],"isBlockCoverage":true},{"functionName":"info","ranges":[{"startOffset":4453,"endOffset":4521,"count":0}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":4581,"endOffset":4651,"count":13}],"isBlockCoverage":true},{"functionName":"getEnvironment","ranges":[{"startOffset":4705,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"setEnvironment","ranges":[{"startOffset":4908,"endOffset":5067,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5144,"endOffset":5212,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5360,"count":13}],"isBlockCoverage":true}]},{"scriptId":"2490","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/errorTranslation.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":22098,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":22098,"count":1}],"isBlockCoverage":true},{"functionName":"translateErrorCode","ranges":[{"startOffset":2120,"endOffset":3834,"count":37},{"startOffset":2252,"endOffset":2396,"count":2},{"startOffset":2375,"endOffset":2387,"count":0},{"startOffset":2699,"endOffset":2803,"count":2},{"startOffset":2841,"endOffset":3292,"count":112},{"startOffset":2905,"endOffset":3063,"count":7},{"startOffset":3106,"endOffset":3288,"count":25},{"startOffset":3131,"endOffset":3257,"count":1},{"startOffset":3292,"endOffset":3380,"count":12},{"startOffset":3380,"endOffset":3548,"count":9},{"startOffset":3403,"endOffset":3517,"count":0},{"startOffset":3548,"endOffset":3681,"count":3},{"startOffset":3681,"endOffset":3809,"count":1},{"startOffset":3809,"endOffset":3833,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2560,"endOffset":2677,"count":222},{"startOffset":2625,"endOffset":2637,"count":24}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3637,"endOffset":3659,"count":7}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":3941,"endOffset":3975,"count":23}],"isBlockCoverage":true},{"functionName":"translateErrorCodes","ranges":[{"startOffset":3979,"endOffset":4100,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4054,"endOffset":4096,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":4208,"endOffset":4243,"count":2}],"isBlockCoverage":true},{"functionName":"translateError","ranges":[{"startOffset":4247,"endOffset":5389,"count":6},{"startOffset":4341,"endOffset":4438,"count":0},{"startOffset":4611,"endOffset":4734,"count":0},{"startOffset":4756,"endOffset":4813,"count":1},{"startOffset":4813,"endOffset":4844,"count":5},{"startOffset":4844,"endOffset":4901,"count":0},{"startOffset":4902,"endOffset":4929,"count":0},{"startOffset":4930,"endOffset":4961,"count":0},{"startOffset":4963,"endOffset":5388,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5492,"endOffset":5522,"count":5}],"isBlockCoverage":true},{"functionName":"createErrorTranslator","ranges":[{"startOffset":5526,"endOffset":6404,"count":9},{"startOffset":5705,"endOffset":5713,"count":8}],"isBlockCoverage":true},{"functionName":"translateErrorCode","ranges":[{"startOffset":5754,"endOffset":5796,"count":2}],"isBlockCoverage":true},{"functionName":"translateErrorCodes","ranges":[{"startOffset":5823,"endOffset":5868,"count":1}],"isBlockCoverage":true},{"functionName":"translateError","ranges":[{"startOffset":5890,"endOffset":5930,"count":1}],"isBlockCoverage":true},{"functionName":"translateApiError","ranges":[{"startOffset":6005,"endOffset":6397,"count":6},{"startOffset":6045,"endOffset":6051,"count":4},{"startOffset":6051,"endOffset":6069,"count":1},{"startOffset":6071,"endOffset":6157,"count":1},{"startOffset":6157,"endOffset":6179,"count":5},{"startOffset":6179,"endOffset":6187,"count":3},{"startOffset":6189,"endOffset":6261,"count":1},{"startOffset":6261,"endOffset":6283,"count":4},{"startOffset":6283,"endOffset":6289,"count":2},{"startOffset":6291,"endOffset":6361,"count":1},{"startOffset":6361,"endOffset":6396,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":6514,"endOffset":6551,"count":9}],"isBlockCoverage":true}]},{"scriptId":"2653","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/utils/errorTranslation.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":48599,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":48599,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":575,"endOffset":16877,"count":1}],"isBlockCoverage":true},{"functionName":"createMockTranslate","ranges":[{"startOffset":613,"endOffset":682,"count":33}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":644,"endOffset":677,"count":76},{"startOffset":671,"endOffset":677,"count":51}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":739,"endOffset":5289,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":839,"endOffset":1189,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1273,"endOffset":1582,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1674,"endOffset":2002,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2085,"endOffset":2393,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2479,"endOffset":2812,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2896,"endOffset":3170,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3258,"endOffset":3535,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3629,"endOffset":3899,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3975,"endOffset":4325,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4405,"endOffset":4801,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4861,"endOffset":5283,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5348,"endOffset":6287,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5426,"endOffset":5984,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6045,"endOffset":6281,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6341,"endOffset":8546,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6409,"endOffset":6765,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6840,"endOffset":7199,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7302,"endOffset":7672,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7755,"endOffset":8118,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8193,"endOffset":8540,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8607,"endOffset":12933,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8689,"endOffset":9196,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9262,"endOffset":9609,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9676,"endOffset":10026,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10088,"endOffset":10399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10458,"endOffset":12552,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10548,"endOffset":11049,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11136,"endOffset":11529,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11605,"endOffset":12016,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12103,"endOffset":12544,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12617,"endOffset":12927,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12862,"endOffset":12905,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12995,"endOffset":15287,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13068,"endOffset":13363,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13431,"endOffset":13730,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13804,"endOffset":14103,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14173,"endOffset":14504,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14578,"endOffset":14897,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14981,"endOffset":15281,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15349,"endOffset":16873,"count":1}],"isBlockCoverage":true},{"functionName":"translateFn","ranges":[{"startOffset":15397,"endOffset":15409,"count":36}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15537,"endOffset":15696,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15768,"endOffset":15937,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16012,"endOffset":16185,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16258,"endOffset":16407,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16480,"endOffset":16620,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":16697,"endOffset":16867,"count":1}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2042","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20399,"count":1}],"isBlockCoverage":true},{"functionName":"readCookie","ranges":[{"startOffset":483,"endOffset":682,"count":0}],"isBlockCoverage":true},{"functionName":"detectEnvironment","ranges":[{"startOffset":683,"endOffset":981,"count":0}],"isBlockCoverage":true},{"functionName":"Logger","ranges":[{"startOffset":1051,"endOffset":1161,"count":1}],"isBlockCoverage":true},{"functionName":"getEffectiveEnv","ranges":[{"startOffset":1273,"endOffset":1402,"count":0}],"isBlockCoverage":true},{"functionName":"sanitize","ranges":[{"startOffset":1459,"endOffset":1639,"count":0}],"isBlockCoverage":true},{"functionName":"sanitizeContext","ranges":[{"startOffset":1683,"endOffset":2503,"count":0}],"isBlockCoverage":true},{"functionName":"shouldLog","ranges":[{"startOffset":2684,"endOffset":3015,"count":0}],"isBlockCoverage":true},{"functionName":"log","ranges":[{"startOffset":3063,"endOffset":3910,"count":0}],"isBlockCoverage":true},{"functionName":"error","ranges":[{"startOffset":3979,"endOffset":4286,"count":0}],"isBlockCoverage":true},{"functionName":"warn","ranges":[{"startOffset":4338,"endOffset":4406,"count":0}],"isBlockCoverage":true},{"functionName":"info","ranges":[{"startOffset":4453,"endOffset":4521,"count":0}],"isBlockCoverage":true},{"functionName":"debug","ranges":[{"startOffset":4581,"endOffset":4651,"count":0}],"isBlockCoverage":true},{"functionName":"getEnvironment","ranges":[{"startOffset":4705,"endOffset":4762,"count":0}],"isBlockCoverage":true},{"functionName":"setEnvironment","ranges":[{"startOffset":4908,"endOffset":5067,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5144,"endOffset":5212,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5338,"endOffset":5360,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2654","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/utils/navigationTracker.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":26410,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":26410,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":543,"endOffset":9184,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":586,"endOffset":650,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":687,"endOffset":751,"count":12}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":808,"endOffset":1634,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":908,"endOffset":1142,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1217,"endOffset":1395,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1460,"endOffset":1628,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1697,"endOffset":3732,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1773,"endOffset":2385,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2460,"endOffset":3287,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2658,"endOffset":2673,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2789,"endOffset":2804,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":2920,"endOffset":2935,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":3370,"endOffset":3726,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3792,"endOffset":5448,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3873,"endOffset":4490,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4108,"endOffset":4123,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4269,"endOffset":4284,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4585,"endOffset":5442,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4831,"endOffset":4846,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":4888,"endOffset":4903,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":5505,"endOffset":6617,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5594,"endOffset":6026,"count":1},{"startOffset":5714,"endOffset":6025,"count":50}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5756,"endOffset":5773,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6110,"endOffset":6611,"count":1},{"startOffset":6263,"endOffset":6610,"count":100}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6310,"endOffset":6327,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":6443,"endOffset":6461,"count":100}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6675,"endOffset":9180,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6755,"endOffset":8424,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7079,"endOffset":7094,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7334,"endOffset":7349,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":7532,"endOffset":7547,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8501,"endOffset":9174,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8625,"endOffset":8640,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8682,"endOffset":8697,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":8739,"endOffset":8754,"count":0}],"isBlockCoverage":false}]},{"scriptId":"2655","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/navigationTracker.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11410,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11410,"count":1}],"isBlockCoverage":true},{"functionName":"NavigationTracker","ranges":[{"startOffset":325,"endOffset":559,"count":12}],"isBlockCoverage":true},{"functionName":"<static_initializer>","ranges":[{"startOffset":562,"endOffset":600,"count":1}],"isBlockCoverage":true},{"functionName":"getInstance","ranges":[{"startOffset":655,"endOffset":818,"count":13},{"startOffset":708,"endOffset":775,"count":12}],"isBlockCoverage":true},{"functionName":"subscribe","ranges":[{"startOffset":988,"endOffset":1188,"count":167},{"startOffset":1090,"endOffset":1124,"count":58}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1136,"endOffset":1183,"count":162}],"isBlockCoverage":true},{"functionName":"unsubscribe","ranges":[{"startOffset":1261,"endOffset":1429,"count":162},{"startOffset":1371,"endOffset":1388,"count":56},{"startOffset":1390,"endOffset":1425,"count":56}],"isBlockCoverage":true},{"functionName":"applyPatches","ranges":[{"startOffset":1500,"endOffset":1920,"count":58}],"isBlockCoverage":true},{"functionName":"window.history.pushState","ranges":[{"startOffset":1571,"endOffset":1710,"count":0}],"isBlockCoverage":false},{"functionName":"window.history.replaceState","ranges":[{"startOffset":1746,"endOffset":1888,"count":0}],"isBlockCoverage":false},{"functionName":"removePatches","ranges":[{"startOffset":2008,"endOffset":2173,"count":58}],"isBlockCoverage":true},{"functionName":"notifyListeners","ranges":[{"startOffset":2239,"endOffset":2533,"count":0}],"isBlockCoverage":false},{"functionName":"reset","ranges":[{"startOffset":2634,"endOffset":2791,"count":24},{"startOffset":2678,"endOffset":2689,"count":12},{"startOffset":2691,"endOffset":2748,"count":2}],"isBlockCoverage":true},{"functionName":"getSubscriberCount","ranges":[{"startOffset":2872,"endOffset":2924,"count":122}],"isBlockCoverage":true},{"functionName":"isActive","ranges":[{"startOffset":2983,"endOffset":3026,"count":14}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":3134,"endOffset":3167,"count":37}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":15}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":15}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2656","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/utils/constants.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11738,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11738,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":575,"endOffset":4604,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":634,"endOffset":1729,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":704,"endOffset":806,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":885,"endOffset":1272,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1344,"endOffset":1723,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1791,"endOffset":2943,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1873,"endOffset":2025,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2094,"endOffset":2284,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2153,"endOffset":2276,"count":4}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2375,"endOffset":2518,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2588,"endOffset":2701,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2770,"endOffset":2937,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3001,"endOffset":4097,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3075,"endOffset":3181,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3246,"endOffset":3545,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3626,"endOffset":3730,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3803,"endOffset":3910,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3983,"endOffset":4091,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4149,"endOffset":4600,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4239,"endOffset":4374,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4467,"endOffset":4594,"count":1}],"isBlockCoverage":true}]},{"scriptId":"2657","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/components/PublicPolicies/constants.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1883,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":1883,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":350,"endOffset":380,"count":11}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":575,"endOffset":613,"count":9}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":774,"endOffset":808,"count":7}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- {"result":[{"scriptId":"1251","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":6670,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":9}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":9}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1246,"endOffset":1579,"count":0}],"isBlockCoverage":false},{"functionName":"IntersectionObserver","ranges":[{"startOffset":1650,"endOffset":1669,"count":0}],"isBlockCoverage":false},{"functionName":"disconnect","ranges":[{"startOffset":1672,"endOffset":1690,"count":0}],"isBlockCoverage":false},{"functionName":"observe","ranges":[{"startOffset":1693,"endOffset":1708,"count":0}],"isBlockCoverage":false},{"functionName":"takeRecords","ranges":[{"startOffset":1711,"endOffset":1745,"count":0}],"isBlockCoverage":false},{"functionName":"unobserve","ranges":[{"startOffset":1748,"endOffset":1765,"count":0}],"isBlockCoverage":false},{"functionName":"randomUUID","ranges":[{"startOffset":1842,"endOffset":1906,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":1929,"endOffset":2066,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2044","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/components/CrudifyLogin/utils/cookies.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":1201,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":1201,"count":1}],"isBlockCoverage":true},{"functionName":"getCookie","ranges":[{"startOffset":203,"endOffset":334,"count":14},{"startOffset":314,"endOffset":324,"count":11},{"startOffset":325,"endOffset":331,"count":3}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":433,"endOffset":458,"count":14}],"isBlockCoverage":true}]},{"scriptId":"2658","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/utils/cookies.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":10397,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":10397,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":534,"endOffset":3847,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":682,"endOffset":1013,"count":9}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":770,"endOffset":786,"count":14}],"isBlockCoverage":true},{"functionName":"set","ranges":[{"startOffset":799,"endOffset":975,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1050,"endOffset":1166,"count":9},{"startOffset":1086,"endOffset":1162,"count":0}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1215,"endOffset":3843,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1294,"endOffset":1480,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1561,"endOffset":1727,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1793,"endOffset":2120,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2199,"endOffset":2387,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2453,"endOffset":2727,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2805,"endOffset":2979,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3039,"endOffset":3376,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3451,"endOffset":3607,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3680,"endOffset":3837,"count":1}],"isBlockCoverage":true}]}]}
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var b=[/password[^:]*[:=]\s*[^\s,}]+/gi,/token[^:]*[:=]\s*[^\s,}]+/gi,/key[^:]*[:=]\s*["']?[^\s,}"']+/gi,/secret[^:]*[:=]\s*[^\s,}]+/gi,/authorization[^:]*[:=]\s*[^\s,}]+/gi,/mongodb(\+srv)?:\/\/[^\s]+/gi,/postgres:\/\/[^\s]+/gi,/mysql:\/\/[^\s]+/gi];function w(n){if(typeof document>"u")return null;let e=document.cookie.match(new RegExp("(^|;)\\s*"+n+"=([^;]+)"));return e?e[2]:null}function S(){if(typeof window<"u"&&window.__CRUDIFY_ENV__)return window.__CRUDIFY_ENV__;let n=w("environment");return n&&["dev","stg","api","prod"].includes(n)?n:"prod"}var N=null,_="CrudifyUI",v=class{constructor(){this.explicitEnv=null;this.explicitEnv=N,this.prefix=_}getEffectiveEnv(){return this.explicitEnv!==null?this.explicitEnv:S()}sanitize(e){let t=e;for(let o of b)t=t.replace(o,"[REDACTED]");return t}sanitizeContext(e){let t={};for(let[o,r]of Object.entries(e))if(r!=null)if(o==="userId"&&typeof r=="string")t[o]=r.length>8?`${r.substring(0,8)}***`:r;else if(o==="email"&&typeof r=="string"){let[a,u]=r.split("@");t[o]=a&&u?`${a.substring(0,3)}***@${u}`:"[REDACTED]"}else typeof r=="string"?t[o]=this.sanitize(r):typeof r=="object"&&r!==null?t[o]=this.sanitizeContext(r):t[o]=r;return t}shouldLog(e){if(typeof window<"u"&&window.__CRUDIFY_DEBUG_MODE__)return!0;let t=this.getEffectiveEnv();return!((t==="prod"||t==="production"||t==="api")&&e!=="error")}log(e,t,o){if(!this.shouldLog(e))return;let r=this.sanitize(t),a=o?this.sanitizeContext(o):void 0,u={timestamp:new Date().toISOString(),level:e,environment:this.getEffectiveEnv(),service:this.prefix,message:r,...a&&Object.keys(a).length>0&&{context:a}},l=JSON.stringify(u);switch(e){case"error":console.error(l);break;case"warn":console.warn(l);break;case"info":console.info(l);break;case"debug":console.log(l);break}}error(e,t){let o;t instanceof Error?o={errorName:t.name,errorMessage:t.message,stack:t.stack}:o=t,this.log("error",e,o)}warn(e,t){this.log("warn",e,t)}info(e,t){this.log("info",e,t)}debug(e,t){this.log("debug",e,t)}getEnvironment(){return this.getEffectiveEnv()}setEnvironment(e){this.explicitEnv=e,N=e,typeof window<"u"&&(window.__CRUDIFY_ENV__=e)}isExplicitlyConfigured(){return this.explicitEnv!==null}},i= exports.a =new v;var f=n=>{let e=document.cookie.match(new RegExp("(^|;)\\s*"+n+"=([^;]+)"));return e?e[2]:null};function O(n={}){let{publicApiKey:e,env:t,appName:o,logo:r,loginActions:a,featureKeys:u,enableDebug:l=!1}=n,s={configSource:"none"};l&&i.info("[ConfigResolver] Resolving configuration...",{propsApiKey:e?`${e.substring(0,10)}...`:void 0,propsEnv:t,hasPropsAppName:!!o,hasPropsLogo:!!r,propsLoginActions:a,propsFeatureKeys:u});let d=f("publicApiKey");if(l&&i.info("[ConfigResolver] Cookie check:",{hasCookieApiKey:!!d,cookieApiKey:d?`${d.substring(0,10)}...`:null,allCookies:typeof document<"u"?document.cookie:"N/A"}),d){let c=f("environment"),p=f("appName"),y=f("logo"),R=f("loginActions"),C=f("featureKeys"),A=f("theme");return s={publicApiKey:decodeURIComponent(d),env:c&&["dev","stg","api","prod"].includes(c)?c:"prod",appName:p?decodeURIComponent(p):void 0,logo:y?decodeURIComponent(y):void 0,loginActions:R?decodeURIComponent(R).split(",").map(E=>E.trim()).filter(Boolean):void 0,featureKeys:C?decodeURIComponent(C).split(",").map(E=>E.trim()).filter(Boolean):void 0,theme:A?(()=>{try{return JSON.parse(decodeURIComponent(A))}catch(E){l&&i.warn("[ConfigResolver] Failed to parse theme cookie",E instanceof Error?{errorMessage:E.message}:{message:String(E)});return}})():void 0,configSource:"cookies"},l&&(i.info("[ConfigResolver] \u2705 Using COOKIES configuration",{env:s.env,hasAppName:!!s.appName,hasLogo:!!s.logo,loginActionsCount:_optionalChain([s, 'access', _2 => _2.loginActions, 'optionalAccess', _3 => _3.length]),featureKeysCount:_optionalChain([s, 'access', _4 => _4.featureKeys, 'optionalAccess', _5 => _5.length])}),typeof window<"u"&&(window.__CRUDIFY_RESOLVED_CONFIG=s)),s}return e?(s={publicApiKey:e,env:t||"prod",appName:o,logo:r,loginActions:a,featureKeys:u,configSource:"props"},l&&(i.info("[ConfigResolver] \u2705 Using PROPS configuration (fallback - no cookies found)",{env:s.env,hasAppName:!!s.appName,hasLogo:!!s.logo,loginActionsCount:_optionalChain([s, 'access', _6 => _6.loginActions, 'optionalAccess', _7 => _7.length]),featureKeysCount:_optionalChain([s, 'access', _8 => _8.featureKeys, 'optionalAccess', _9 => _9.length])}),typeof window<"u"&&(window.__CRUDIFY_RESOLVED_CONFIG=s)),s):(l&&i.error("[ConfigResolver] \u274C No configuration found! Neither cookies nor props have publicApiKey",{hasCookies:!!d,hasProps:!!e}),s)}function M(n={}){return O(n)}var k=["errors.{category}.{code}","errors.{code}","login.{code}","error.{code}","messages.{code}","{code}"],D={INVALID_CREDENTIALS:"auth",UNAUTHORIZED:"auth",INVALID_API_KEY:"auth",USER_NOT_FOUND:"auth",USER_NOT_ACTIVE:"auth",NO_PERMISSION:"auth",SESSION_EXPIRED:"auth",ITEM_NOT_FOUND:"data",NOT_FOUND:"data",IN_USE:"data",DUPLICATE_ENTRY:"data",FIELD_ERROR:"validation",BAD_REQUEST:"validation",INVALID_EMAIL:"validation",INVALID_CODE:"validation",REQUIRED_FIELD:"validation",INTERNAL_SERVER_ERROR:"system",DATABASE_CONNECTION_ERROR:"system",INVALID_CONFIGURATION:"system",UNKNOWN_OPERATION:"system",TIMEOUT_ERROR:"system",NETWORK_ERROR:"system",TOO_MANY_REQUESTS:"rate_limit"},L={INVALID_CREDENTIALS:"Invalid username or password",UNAUTHORIZED:"You are not authorized to perform this action",SESSION_EXPIRED:"Your session has expired. Please log in again.",USER_NOT_FOUND:"User not found",ITEM_NOT_FOUND:"Item not found",FIELD_ERROR:"Invalid field value",INTERNAL_SERVER_ERROR:"An internal error occurred",NETWORK_ERROR:"Network connection error",TIMEOUT_ERROR:"Request timeout",UNKNOWN_OPERATION:"Unknown operation",INVALID_EMAIL:"Invalid email format",INVALID_CODE:"Invalid code",TOO_MANY_REQUESTS:"Too many requests, please try again later"};function h(n,e){let{translateFn:t,currentLanguage:o,enableDebug:r}=e;r&&i.debug(`[ErrorTranslation] Translating error code: ${n} (lang: ${o||"unknown"})`);let a=n.toUpperCase(),u=D[a],l=k.map(c=>c.replace("{category}",u||"general").replace("{code}",a));r&&i.debug("[ErrorTranslation] Searching keys:",{translationKeys:l});for(let c of l){let p=t(c);if(r&&i.debug(`[ErrorTranslation] Checking key: "${c}" -> result: "${p}" (same as key: ${p===c})`),p&&p!==c)return r&&i.debug(`[ErrorTranslation] Found translation at key: ${c} = "${p}"`),p}let s=L[a];if(s)return r&&i.debug(`[ErrorTranslation] Using default message: "${s}"`),s;let d=a.replace(/_/g," ").toLowerCase().replace(/\b\w/g,c=>c.toUpperCase());return r&&i.debug(`[ErrorTranslation] No translation found, using friendly code: "${d}"`),d}function U(n,e){return n.map(t=>h(t,e))}function x(n,e){let{enableDebug:t}=e;t&&i.debug("[ErrorTranslation] Translating error:",{error:n});let o=h(n.code,e);return o!==n.code.toUpperCase()&&o!==n.code?(t&&i.debug(`[ErrorTranslation] Using hierarchical translation: "${o}"`),n.field?`${n.field}: ${o}`:o):n.message&&!n.message.includes("Error:")&&n.message.length>0&&n.message!==n.code?(t&&i.debug(`[ErrorTranslation] No hierarchical translation found, using API message: "${n.message}"`),n.message):(t&&i.debug(`[ErrorTranslation] Using final fallback: "${o}"`),n.field?`${n.field}: ${o}`:o)}function z(n,e={}){let t={translateFn:n,currentLanguage:e.currentLanguage,enableDebug:e.enableDebug||!1};return{translateErrorCode:o=>h(o,t),translateErrorCodes:o=>U(o,t),translateError:o=>x(o,t),translateApiError:o=>_optionalChain([o, 'optionalAccess', _10 => _10.data, 'optionalAccess', _11 => _11.response, 'optionalAccess', _12 => _12.status])?h(o.data.response.status,t):_optionalChain([o, 'optionalAccess', _13 => _13.status])?h(o.status,t):_optionalChain([o, 'optionalAccess', _14 => _14.code])?h(o.code,t):"Unknown error"}}var m=class n{constructor(){this.listeners=new Set;this.isHandlingAuthError=!1;this.lastErrorTime=0;this.lastEventType=null;this.DEBOUNCE_TIME=1e3}static getInstance(){return n.instance||(n.instance=new n),n.instance}emit(e,t){let o=Date.now();if(this.isHandlingAuthError&&this.lastEventType===e&&o-this.lastErrorTime<this.DEBOUNCE_TIME){i.debug(`AuthEventBus: Ignoring duplicate ${e} event (debounced)`);return}this.isHandlingAuthError=!0,this.lastErrorTime=o,this.lastEventType=e,i.debug(`AuthEventBus: Emitting ${e} event`,t?{details:t}:void 0);let r={type:e,details:t,timestamp:o};this.listeners.forEach(a=>{try{a(r)}catch(u){i.error("AuthEventBus: Error in listener",u instanceof Error?u:{message:String(u)})}}),setTimeout(()=>{this.isHandlingAuthError=!1,this.lastEventType=null},2e3)}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}clear(){this.listeners.clear(),this.isHandlingAuthError=!1,this.lastEventType=null}isHandling(){return this.isHandlingAuthError}},J= exports.i =m.getInstance();var g=class g{constructor(){this.isPatched=!1;this.refCount=0;this.listeners=new Set;this.originalPushState=window.history.pushState,this.originalReplaceState=window.history.replaceState}static getInstance(){return g.instance||(g.instance=new g),g.instance}subscribe(e){return this.listeners.add(e),this.refCount++,this.isPatched||this.applyPatches(),()=>{this.unsubscribe(e)}}unsubscribe(e){this.listeners.delete(e),this.refCount--,this.refCount===0&&this.isPatched&&this.removePatches()}applyPatches(){let e=this;window.history.pushState=function(...t){let o=e.originalPushState.apply(this,t);return e.notifyListeners(),o},window.history.replaceState=function(...t){let o=e.originalReplaceState.apply(this,t);return e.notifyListeners(),o},this.isPatched=!0}removePatches(){window.history.pushState=this.originalPushState,window.history.replaceState=this.originalReplaceState,this.isPatched=!1}notifyListeners(){this.listeners.forEach(e=>{try{e()}catch(t){i.error("NavigationTracker: Error in navigation listener",t instanceof Error?t:{message:String(t)})}})}static reset(){_optionalChain([g, 'access', _15 => _15.instance, 'optionalAccess', _16 => _16.isPatched])&&g.instance.removePatches(),g.instance=null}getSubscriberCount(){return this.refCount}isActive(){return this.isPatched}};g.instance=null;var I=g;var T=n=>{try{let e=n.split(".");if(e.length!==3)return i.warn("Invalid JWT format: token must have 3 parts"),null;let t=e[1],o=t+"=".repeat((4-t.length%4)%4);return JSON.parse(atob(o))}catch(e){return i.warn("Failed to decode JWT token",e instanceof Error?{errorMessage:e.message}:{message:String(e)}),null}},j= exports.l =()=>{try{let n=null;if(n=sessionStorage.getItem("authToken"),n||(n=sessionStorage.getItem("token")),n||(n=localStorage.getItem("authToken")||localStorage.getItem("token")),!n)return null;let e=T(n);return e&&(e.email||e["cognito:username"])||null}catch(n){return i.warn("Failed to get current user email",n instanceof Error?{errorMessage:n.message}:{message:String(n)}),null}},q= exports.m =n=>{try{let e=T(n);if(!e||!e.exp)return!0;let t=Math.floor(Date.now()/1e3);return e.exp<t}catch (e2){return!0}};exports.a = i; exports.b = f; exports.c = O; exports.d = M; exports.e = h; exports.f = U; exports.g = x; exports.h = z; exports.i = J; exports.j = I; exports.k = T; exports.l = j; exports.m = q;
@@ -1 +0,0 @@
1
- import{a as y,c as fe,e as Te,i as V,j as be,k as Ae,l as ke}from"./chunk-SUWV767V.mjs";import{createContext as ni,useContext as si,useEffect as oi,useState as j}from"react";import J from"@nocios/crudify-browser";var ge=class r{constructor(){this.listeners=[];this.credentials=null;this.isReady=!1}static getInstance(){return r.instance||(r.instance=new r),r.instance}notifyCredentialsReady(i){this.credentials=i,this.isReady=!0,this.listeners.forEach(e=>{try{e(i)}catch(t){y.error("[CredentialsEventBus] Error in listener",t instanceof Error?t:{message:String(t)})}}),this.listeners=[]}waitForCredentials(){return this.isReady&&this.credentials?Promise.resolve(this.credentials):new Promise(i=>{this.listeners.push(i)})}reset(){this.credentials=null,this.isReady=!1,this.listeners=[]}areCredentialsReady(){return this.isReady&&this.credentials!==null}},ee=ge.getInstance();import{jsx as ai}from"react/jsx-runtime";var Ie=ni(void 0),Se=({config:r,children:i})=>{let[e,t]=j(!0),[s,l]=j(null),[g,T]=j(!1),[P,A]=j(""),[L,c]=j();oi(()=>{if(!r.publicApiKey){l("No publicApiKey provided"),t(!1),T(!1);return}let d=`${r.publicApiKey}-${r.env}`;if(d===P&&g){t(!1);return}(async()=>{t(!0),l(null),T(!1);try{J.config(r.env||"prod");let E=await J.init(r.publicApiKey,"none");if(c(E),typeof J.transaction=="function"&&typeof J.login=="function")T(!0),A(d),E.apiEndpointAdmin&&E.apiKeyEndpointAdmin&&ee.notifyCredentialsReady({apiUrl:E.apiEndpointAdmin,apiKey:E.apiKeyEndpointAdmin});else throw new Error("Crudify methods not properly initialized")}catch(E){let I=E instanceof Error?E.message:"Failed to initialize Crudify";y.error("[CrudifyProvider] Initialization error",E instanceof Error?E:{message:String(E)}),l(I),T(!1)}finally{t(!1)}})()},[r.publicApiKey,r.env,P,g]);let o={crudify:g?J:null,isLoading:e,error:s,isInitialized:g,adminCredentials:L};return ai(Ie.Provider,{value:o,children:i})},xe=()=>{let r=si(Ie);if(r===void 0)throw new Error("useCrudify must be used within a CrudifyProvider");return r};import ie from"crypto-js";var h=class h{static setStorageType(i){h.storageType=i}static generateEncryptionKey(){let i=[navigator.userAgent,navigator.language,navigator.platform,screen.width,screen.height,Date.now().toString(),Math.random().toString(36)].join("|");return ie.SHA256(i).toString()}static getEncryptionKey(){if(h.encryptionKey)return h.encryptionKey;let i=window.localStorage;if(!i)return h.encryptionKey=h.generateEncryptionKey(),h.encryptionKey;try{let e=i.getItem(h.ENCRYPTION_KEY_STORAGE);return(!e||e.length<32)&&(e=h.generateEncryptionKey(),i.setItem(h.ENCRYPTION_KEY_STORAGE,e)),h.encryptionKey=e,e}catch{return y.warn("Crudify: Cannot persist encryption key, using temporary key"),h.encryptionKey=h.generateEncryptionKey(),h.encryptionKey}}static isStorageAvailable(i){try{let e=window[i],t="__storage_test__";return e.setItem(t,"test"),e.removeItem(t),!0}catch{return!1}}static getStorage(){return h.storageType==="none"?null:h.isStorageAvailable(h.storageType)?window[h.storageType]:(y.warn(`Crudify: ${h.storageType} not available, tokens won't persist`),null)}static encrypt(i){try{let e=h.getEncryptionKey();return ie.AES.encrypt(i,e).toString()}catch(e){return y.error("Crudify: Encryption failed",e instanceof Error?e:{message:String(e)}),i}}static decrypt(i){try{let e=h.getEncryptionKey();return ie.AES.decrypt(i,e).toString(ie.enc.Utf8)||i}catch(e){return y.error("Crudify: Decryption failed",e instanceof Error?e:{message:String(e)}),i}}static saveTokens(i){let e=h.getStorage();if(e)try{let t={accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,refreshExpiresAt:i.refreshExpiresAt,savedAt:Date.now()},s=h.encrypt(JSON.stringify(t));e.setItem(h.TOKEN_KEY,s),y.debug("Crudify: Tokens saved successfully")}catch(t){y.error("Crudify: Failed to save tokens",t instanceof Error?t:{message:String(t)})}}static getTokens(){let i=h.getStorage();if(!i)return null;try{let e=i.getItem(h.TOKEN_KEY);if(!e)return null;let t=h.decrypt(e),s=JSON.parse(t);return!s.accessToken||!s.refreshToken||!s.expiresAt||!s.refreshExpiresAt?(y.warn("Crudify: Incomplete token data found, clearing storage"),h.clearTokens(),null):Date.now()>=s.refreshExpiresAt?(y.info("Crudify: Refresh token expired, clearing storage"),h.clearTokens(),null):{accessToken:s.accessToken,refreshToken:s.refreshToken,expiresAt:s.expiresAt,refreshExpiresAt:s.refreshExpiresAt}}catch(e){return y.error("Crudify: Failed to retrieve tokens",e instanceof Error?e:{message:String(e)}),h.clearTokens(),null}}static clearTokens(){let i=h.getStorage();if(i)try{i.removeItem(h.TOKEN_KEY),y.debug("Crudify: Tokens cleared from storage")}catch(e){y.error("Crudify: Failed to clear tokens",e instanceof Error?e:{message:String(e)})}}static rotateEncryptionKey(){try{h.clearTokens(),h.encryptionKey=null;let i=window.localStorage;i&&i.removeItem(h.ENCRYPTION_KEY_STORAGE),y.info("Crudify: Encryption key rotated successfully")}catch(i){y.error("Crudify: Failed to rotate encryption key",i instanceof Error?i:{message:String(i)})}}static hasValidTokens(){return h.getTokens()!==null}static getExpirationInfo(){let i=h.getTokens();if(!i)return null;let e=Date.now();return{accessExpired:e>=i.expiresAt,refreshExpired:e>=i.refreshExpiresAt,accessExpiresIn:Math.max(0,i.expiresAt-e),refreshExpiresIn:Math.max(0,i.refreshExpiresAt-e)}}static updateAccessToken(i,e){let t=h.getTokens();if(!t){y.warn("Crudify: Cannot update access token, no existing tokens found");return}h.saveTokens({...t,accessToken:i,expiresAt:e})}static createSyncEvent(i,e,t){return{type:i,tokens:e,hadPreviousTokens:t}}static subscribeToChanges(i){let e=t=>{if(t.key!==h.TOKEN_KEY)return;let s=t.oldValue!==null&&t.oldValue!=="";if(t.newValue===null){y.debug("Crudify: Tokens removed in another tab"),i(null,h.SYNC_EVENTS.TOKENS_CLEARED,s);return}if(t.newValue){y.debug("Crudify: Tokens updated in another tab");let l=h.getTokens();i(l,h.SYNC_EVENTS.TOKENS_UPDATED,s)}};return window.addEventListener("storage",e),()=>{window.removeEventListener("storage",e)}}};h.TOKEN_KEY="crudify_tokens",h.ENCRYPTION_KEY_STORAGE="crudify_enc_key",h.encryptionKey=null,h.storageType="localStorage",h.SYNC_EVENTS={TOKENS_CLEARED:"TOKENS_CLEARED",TOKENS_UPDATED:"TOKENS_UPDATED"};var b=h;import F from"@nocios/crudify-browser";var te=class r{constructor(){this.config={};this.initialized=!1;this.crudifyInitialized=!1;this.lastActivityTime=0;this.isRefreshingLocally=!1;this.refreshPromise=null}static getInstance(){return r.instance||(r.instance=new r),r.instance}async initialize(i={}){if(!this.initialized){if(this.config={storageType:"localStorage",autoRestore:!0,enableLogging:!1,env:"stg",...i},b.setStorageType(this.config.storageType||"localStorage"),this.config.publicApiKey&&!this.crudifyInitialized&&await this.ensureCrudifyInitialized(),F.setTokenInvalidationCallback(()=>{this.log("Tokens invalidated by crudify-core"),V.emit("SESSION_EXPIRED",{message:"Your session has expired. Please log in again.",source:"crudify-core.clearTokensAndRefreshState"})}),this.config.apiEndpointAdmin&&this.config.apiKeyEndpointAdmin){let e=b.getTokens();e?b.saveTokens({...e,apiEndpointAdmin:this.config.apiEndpointAdmin,apiKeyEndpointAdmin:this.config.apiKeyEndpointAdmin}):b.saveTokens({accessToken:"",refreshToken:"",expiresAt:0,refreshExpiresAt:0,apiEndpointAdmin:this.config.apiEndpointAdmin,apiKeyEndpointAdmin:this.config.apiKeyEndpointAdmin})}this.config.autoRestore&&await this.restoreSession(),this.initialized=!0}}async login(i,e){try{let t=await F.login(i,e);if(!t.success)return{success:!1,error:this.formatError(t.errors),rawResponse:t};let s=b.getTokens(),l=t.data,g={accessToken:l.token,refreshToken:l.refreshToken,expiresAt:l.expiresAt,refreshExpiresAt:l.refreshExpiresAt,apiEndpointAdmin:s?.apiEndpointAdmin||this.config.apiEndpointAdmin,apiKeyEndpointAdmin:s?.apiKeyEndpointAdmin||this.config.apiKeyEndpointAdmin};return b.saveTokens(g),this.lastActivityTime=Date.now(),this.config.onLoginSuccess?.(g),{success:!0,tokens:g,data:l}}catch(t){return y.error("[SessionManager] Login error",t instanceof Error?t:{message:String(t)}),{success:!1,error:t instanceof Error?t.message:"Unknown error"}}}async logout(){try{this.log("Logging out..."),await F.logout(),b.clearTokens(),this.log("Logout successful"),this.config.onLogout?.()}catch(i){this.log("Logout error:",i),b.clearTokens()}}async restoreSession(){try{this.log("Attempting to restore session...");let i=b.getTokens();if(!i)return this.log("No valid tokens found in storage"),!1;if(Date.now()>=i.refreshExpiresAt)return this.log("Refresh token expired, clearing storage"),b.clearTokens(),!1;if(F.setTokens({accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,refreshExpiresAt:i.refreshExpiresAt}),F.getTokenData().isValid===!1){if(this.log("Restored access token is invalid or expired"),Date.now()<i.refreshExpiresAt&&(this.log("Access token expired but refresh is valid, attempting refresh..."),await this.refreshTokens())){this.log("Session restored successfully via token refresh");let s=b.getTokens();return s&&this.config.onSessionRestored?.(s),!0}return b.clearTokens(),await F.logout(),!1}return this.log("Session restored successfully"),this.lastActivityTime=Date.now(),this.config.onSessionRestored?.(i),!0}catch(i){return this.log("Session restore error:",i),b.clearTokens(),await F.logout(),!1}}isAuthenticated(){return F.isLogin()||b.hasValidTokens()}getTokenInfo(){let i=F.getTokenData(),e=b.getExpirationInfo(),t=b.getTokens();return{isLoggedIn:this.isAuthenticated(),crudifyTokens:i,storageInfo:e,hasValidTokens:b.hasValidTokens(),apiEndpointAdmin:t?.apiEndpointAdmin,apiKeyEndpointAdmin:t?.apiKeyEndpointAdmin}}async refreshTokens(){if(this.isRefreshingLocally&&this.refreshPromise)return this.log("Refresh already in progress, waiting for existing promise..."),this.refreshPromise;this.isRefreshingLocally=!0,this.refreshPromise=this._performRefresh();try{return await this.refreshPromise}finally{this.isRefreshingLocally=!1,this.refreshPromise=null}}async _performRefresh(){try{this.log("Starting token refresh...");let i=await F.refreshAccessToken();if(!i.success)return this.log("Token refresh failed:",i.errors),b.clearTokens(),this.config.showNotification?.(this.getSessionExpiredMessage(),"warning"),this.config.onSessionExpired?.(),!1;let e=i.data,t={accessToken:e.token,refreshToken:e.refreshToken,expiresAt:e.expiresAt,refreshExpiresAt:e.refreshExpiresAt};return b.saveTokens(t),this.log("Tokens refreshed and saved successfully"),this.lastActivityTime=Date.now(),!0}catch(i){return this.log("Token refresh error:",i),b.clearTokens(),this.config.showNotification?.(this.getSessionExpiredMessage(),"warning"),this.config.onSessionExpired?.(),!1}}isRefreshing(){return this.isRefreshingLocally}setupResponseInterceptor(){F.setResponseInterceptor(async i=>{this.updateLastActivity();let e=this.detectAuthorizationError(i);if(e.isAuthError){if(this.log("\u{1F6A8} Authorization error detected:",{errorType:e.errorType,shouldLogout:e.shouldTriggerLogout}),e.isRefreshTokenInvalid||e.isTokenRefreshFailed)return this.log("Refresh token invalid, emitting TOKEN_REFRESH_FAILED event"),V.emit("TOKEN_REFRESH_FAILED",{message:e.userFriendlyMessage,error:e.errorDetails,source:"SessionManager.setupResponseInterceptor"}),i;e.shouldTriggerLogout&&(b.hasValidTokens()&&!e.isIrrecoverable?(this.log("Access token expired, emitting TOKEN_EXPIRED event"),V.emit("TOKEN_EXPIRED",{message:"Access token expired, refresh needed",error:e.errorDetails,source:"SessionManager.setupResponseInterceptor"})):(this.log("No valid tokens or irrecoverable error, emitting SESSION_EXPIRED event"),V.emit("SESSION_EXPIRED",{message:e.userFriendlyMessage,error:e.errorDetails,source:"SessionManager.setupResponseInterceptor"})))}return i}),this.log("Response interceptor configured (non-blocking mode)")}async ensureCrudifyInitialized(){if(!this.crudifyInitialized)try{this.log("Initializing crudify SDK...");let i=F.getTokenData();if(i&&i.endpoint){this.log("Crudify already initialized by another service"),this.crudifyInitialized=!0;return}let e=this.config.env||"stg";F.config(e);let t=this.config.publicApiKey,s=this.config.enableLogging?"debug":"none",l=await F.init(t,s);if(l&&l.success===!1&&l.errors)throw new Error(`Failed to initialize crudify: ${JSON.stringify(l.errors)}`);this.crudifyInitialized=!0,this.log("Crudify SDK initialized successfully")}catch(i){throw y.error("[SessionManager] Failed to initialize crudify",i instanceof Error?i:{message:String(i)}),i}}detectAuthorizationError(i){let e={isAuthError:!1,isRefreshTokenInvalid:!1,isTokenRefreshFailed:!1,isTokenExpired:!1,isUnauthorized:!1,isIrrecoverable:!1,shouldTriggerLogout:!1,errorType:"",errorDetails:null,userFriendlyMessage:""};if(i.errors&&Array.isArray(i.errors)){let t=i.errors.find(s=>s.errorType==="Unauthorized"||s.message?.includes("Unauthorized")||s.message?.includes("Not Authorized")||s.message?.includes("NOT_AUTHORIZED")||s.message?.includes("Token")||s.message?.includes("TOKEN")||s.message?.includes("Authentication")||s.message?.includes("UNAUTHENTICATED")||s.extensions?.code==="UNAUTHENTICATED"||s.extensions?.code==="FORBIDDEN");t&&(e.isAuthError=!0,e.errorType="GraphQL Array",e.errorDetails=t,e.shouldTriggerLogout=!0,e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente.",(t.message?.includes("TOKEN")||t.message?.includes("Token"))&&(e.isTokenExpired=!0),t.extensions?.code==="UNAUTHENTICATED"&&(e.isUnauthorized=!0))}if(!e.isAuthError&&i.errors&&typeof i.errors=="object"&&!Array.isArray(i.errors)){let s=Object.values(i.errors).flat().find(l=>typeof l=="string"&&(l.includes("NOT_AUTHORIZED")||l.includes("TOKEN_REFRESH_FAILED")||l.includes("TOKEN_HAS_EXPIRED")||l.includes("PLEASE_LOGIN")||l.includes("Unauthorized")||l.includes("UNAUTHENTICATED")||l.includes("SESSION_EXPIRED")||l.includes("INVALID_TOKEN")));s&&typeof s=="string"&&(e.isAuthError=!0,e.errorType="GraphQL Object",e.errorDetails=i.errors,e.shouldTriggerLogout=!0,s.includes("TOKEN_REFRESH_FAILED")?(e.isTokenRefreshFailed=!0,e.isRefreshTokenInvalid=!0,e.isIrrecoverable=!0,e.userFriendlyMessage="Tu sesi\xF3n ha caducado. Por favor, inicia sesi\xF3n nuevamente."):s.includes("TOKEN_HAS_EXPIRED")||s.includes("SESSION_EXPIRED")?(e.isTokenExpired=!0,e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente."):s.includes("INVALID_TOKEN")?(e.isTokenExpired=!0,e.isIrrecoverable=!0,e.userFriendlyMessage="Token inv\xE1lido. Por favor, inicia sesi\xF3n nuevamente."):e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente.")}if(!e.isAuthError&&i.data?.response?.status){let t=i.data.response.status.toUpperCase();(t==="UNAUTHORIZED"||t==="UNAUTHENTICATED")&&(e.isAuthError=!0,e.errorType="Status",e.errorDetails=i.data.response,e.isUnauthorized=!0,e.shouldTriggerLogout=!0,e.isIrrecoverable=!0,e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente.")}if(!e.isAuthError&&i.data?.response?.data)try{let t=typeof i.data.response.data=="string"?JSON.parse(i.data.response.data):i.data.response.data;(t.error==="REFRESH_TOKEN_INVALID"||t.error==="TOKEN_EXPIRED"||t.error==="INVALID_TOKEN")&&(e.isAuthError=!0,e.errorType="Parsed Data",e.errorDetails=t,e.shouldTriggerLogout=!0,e.isIrrecoverable=!0,t.error==="REFRESH_TOKEN_INVALID"?(e.isRefreshTokenInvalid=!0,e.isTokenRefreshFailed=!0,e.userFriendlyMessage="Tu sesi\xF3n ha caducado. Por favor, inicia sesi\xF3n nuevamente."):(e.isTokenExpired=!0,e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente."))}catch{}if(!e.isAuthError&&i.errorCode){let t=String(i.errorCode).toUpperCase();(t==="UNAUTHORIZED"||t==="UNAUTHENTICATED"||t==="TOKEN_EXPIRED"||t==="INVALID_TOKEN")&&(e.isAuthError=!0,e.errorType="Error Code",e.errorDetails={errorCode:t},e.shouldTriggerLogout=!0,t==="TOKEN_EXPIRED"?e.isTokenExpired=!0:e.isUnauthorized=!0,e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente.")}return e}updateLastActivity(){this.lastActivityTime=Date.now(),this.log("Last activity updated")}getTimeSinceLastActivity(){return this.lastActivityTime===0?0:Date.now()-this.lastActivityTime}checkInactivity(){let i=this.getTimeSinceLastActivity();if(this.lastActivityTime===0)return"none";let e=1800*1e3;return i>e?(this.log(`Inactivity timeout: ${Math.floor(i/6e4)} minutes since last activity`),"logout"):"none"}clearSession(){b.clearTokens(),F.logout(),this.lastActivityTime=0,this.log("Session cleared completely")}getSessionExpiredMessage(){return this.config.translateFn?Te("SESSION_EXPIRED",{translateFn:this.config.translateFn,enableDebug:this.config.enableLogging}):"Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente."}log(i,...e){this.config.enableLogging&&console.log(`[SessionManager] ${i}`,...e)}formatError(i){return i?typeof i=="string"?i:typeof i=="object"?Object.values(i).flat().map(String).join(", "):"Authentication failed":"Unknown error"}};import{useState as li,useEffect as re,useCallback as W}from"react";function Pe(r={}){let[i,e]=li({isAuthenticated:!1,isLoading:!0,isInitialized:!1,tokens:null,error:null}),t=te.getInstance(),s=W(async()=>{try{e(n=>({...n,isLoading:!0,error:null}));let c={autoRestore:r.autoRestore??!0,enableLogging:r.enableLogging??!1,showNotification:r.showNotification,translateFn:r.translateFn,apiEndpointAdmin:r.apiEndpointAdmin,apiKeyEndpointAdmin:r.apiKeyEndpointAdmin,publicApiKey:r.publicApiKey,env:r.env||"stg",onSessionExpired:()=>{e(n=>({...n,isAuthenticated:!1,tokens:null,error:"Session expired"})),r.onSessionExpired?.()},onSessionRestored:n=>{e(E=>({...E,isAuthenticated:!0,tokens:n,error:null})),r.onSessionRestored?.(n)},onLoginSuccess:n=>{e(E=>({...E,isAuthenticated:!0,tokens:n,error:null}))},onLogout:()=>{e(n=>({...n,isAuthenticated:!1,tokens:null,error:null}))}};await t.initialize(c),t.setupResponseInterceptor();let o=t.isAuthenticated(),d=t.getTokenInfo();e(n=>({...n,isAuthenticated:o,isInitialized:!0,isLoading:!1,tokens:d.crudifyTokens.accessToken?{accessToken:d.crudifyTokens.accessToken,refreshToken:d.crudifyTokens.refreshToken,expiresAt:d.crudifyTokens.expiresAt,refreshExpiresAt:d.crudifyTokens.refreshExpiresAt}:null}))}catch(c){let o=c instanceof Error?c.message:"Initialization failed";y.error("[useSession] Initialize failed",c instanceof Error?c:{message:o}),e(d=>({...d,isLoading:!1,isInitialized:!0,error:o}))}},[r.autoRestore,r.enableLogging,r.onSessionExpired,r.onSessionRestored]),l=W(async(c,o)=>{e(d=>({...d,isLoading:!0,error:null}));try{let d=await t.login(c,o);return d.success&&d.tokens?e(n=>({...n,isAuthenticated:!0,tokens:d.tokens,isLoading:!1,error:null})):e(n=>({...n,isAuthenticated:!1,tokens:null,isLoading:!1,error:null})),d}catch(d){let n=d instanceof Error?d.message:"Login failed";y.error("[useSession] Login error",d instanceof Error?d:{message:n});let E=n.includes("INVALID_CREDENTIALS")||n.includes("Invalid email")||n.includes("Invalid password")||n.includes("credentials");return e(I=>({...I,isAuthenticated:!1,tokens:null,isLoading:!1,error:E?null:n})),{success:!1,error:n}}},[t]),g=W(async()=>{e(c=>({...c,isLoading:!0}));try{await t.logout(),e(c=>({...c,isAuthenticated:!1,tokens:null,isLoading:!1,error:null}))}catch(c){e(o=>({...o,isAuthenticated:!1,tokens:null,isLoading:!1,error:c instanceof Error?c.message:"Logout error"}))}},[t]),T=W(async()=>{try{let c=await t.refreshTokens();if(c){let o=t.getTokenInfo();e(d=>({...d,tokens:o.crudifyTokens.accessToken?{accessToken:o.crudifyTokens.accessToken,refreshToken:o.crudifyTokens.refreshToken,expiresAt:o.crudifyTokens.expiresAt,refreshExpiresAt:o.crudifyTokens.refreshExpiresAt}:null,error:null}))}else e(o=>({...o,isAuthenticated:!1,tokens:null,error:"Token refresh failed"}));return c}catch(c){return e(o=>({...o,isAuthenticated:!1,tokens:null,error:c instanceof Error?c.message:"Token refresh failed"})),!1}},[t]),P=W(()=>{e(c=>({...c,error:null}))},[]),A=W(()=>t.getTokenInfo(),[t]);re(()=>{s()},[s]),re(()=>{if(!i.isAuthenticated||!i.tokens)return;let c=be.getInstance(),o=()=>{t.updateLastActivity()},d=c.subscribe(o);window.addEventListener("popstate",o);let n=()=>{let R=t.getTokenInfo().crudifyTokens.expiresIn||0;return R<300*1e3?30*1e3:R<1800*1e3?60*1e3:120*1e3},E,I=()=>{let S=n();E=setTimeout(async()=>{if(t.isRefreshing()){I();return}let R=t.getTokenInfo(),x=R.crudifyTokens.expiresIn||0,C=((R.crudifyTokens.expiresAt||0)-(Date.now()-x))*.5;if(x>0&&x<=C)if(e(z=>({...z,isLoading:!0})),await t.refreshTokens()){let z=t.getTokenInfo();e(ue=>({...ue,isLoading:!1,tokens:z.crudifyTokens.accessToken?{accessToken:z.crudifyTokens.accessToken,refreshToken:z.crudifyTokens.refreshToken,expiresAt:z.crudifyTokens.expiresAt,refreshExpiresAt:z.crudifyTokens.refreshExpiresAt}:null}))}else e(z=>({...z,isLoading:!1,isAuthenticated:!1,tokens:null}));let v=t.getTimeSinceLastActivity(),X=1800*1e3;v>X?await g():I()},S)};return I(),()=>{clearTimeout(E),window.removeEventListener("popstate",o),d()}},[i.isAuthenticated,i.tokens,t,r.enableLogging,g]),re(()=>{let c=V.subscribe(async o=>{if(o.type==="TOKEN_EXPIRED"){if(t.isRefreshing())return;e(d=>({...d,isLoading:!0}));try{if(await t.refreshTokens()){let n=t.getTokenInfo();e(E=>({...E,isLoading:!1,tokens:n.crudifyTokens.accessToken?{accessToken:n.crudifyTokens.accessToken,refreshToken:n.crudifyTokens.refreshToken,expiresAt:n.crudifyTokens.expiresAt,refreshExpiresAt:n.crudifyTokens.refreshExpiresAt}:null}))}else V.emit("SESSION_EXPIRED",{message:"Failed to refresh token after detecting expiration",source:"useSession.TOKEN_EXPIRED handler"})}catch(d){V.emit("SESSION_EXPIRED",{message:d instanceof Error?d.message:"Unknown error during refresh",source:"useSession.TOKEN_EXPIRED handler (error)"})}}(o.type==="SESSION_EXPIRED"||o.type==="TOKEN_REFRESH_FAILED")&&(e(d=>({...d,isAuthenticated:!1,tokens:null,isLoading:!1,error:o.details?.message||"Session expired"})),r.onSessionExpired?.())});return()=>c()},[r.onSessionExpired,t]),re(()=>{let c=b.subscribeToChanges((o,d,n)=>{d===b.SYNC_EVENTS.TOKENS_CLEARED?n&&i.isAuthenticated?(y.debug("[useSession] Cross-tab logout detected"),e(E=>({...E,isAuthenticated:!1,tokens:null})),r.onSessionExpired?.()):n&&e(E=>({...E,isAuthenticated:!1,tokens:null})):d===b.SYNC_EVENTS.TOKENS_UPDATED&&o&&(y.debug("[useSession] Cross-tab login/refresh detected"),e(E=>({...E,tokens:o,isAuthenticated:!0,error:null})))});return()=>c()},[i.isAuthenticated,r.onSessionExpired]);let L=W(()=>{t.updateLastActivity()},[t]);return{...i,login:l,logout:g,refreshTokens:T,clearError:P,getTokenInfo:A,updateActivity:L,isExpiringSoon:i.tokens?i.tokens.expiresAt-Date.now()<300*1e3:!1,expiresIn:i.tokens?Math.max(0,i.tokens.expiresAt-Date.now()):0,refreshExpiresIn:i.tokens?Math.max(0,i.tokens.refreshExpiresAt-Date.now()):0}}import{useState as we,createContext as ci,useContext as ui,useCallback as ne,useEffect as di}from"react";import{Snackbar as fi,Alert as gi,Box as pi,Portal as mi}from"@mui/material";import{v4 as yi}from"uuid";import hi from"dompurify";import{jsx as B,jsxs as Ti}from"react/jsx-runtime";var Ne=ci(null),Ei=r=>hi.sanitize(r,{ALLOWED_TAGS:["b","i","em","strong","br","span"],ALLOWED_ATTR:["class"],FORBID_TAGS:["script","iframe","object","embed"],FORBID_ATTR:["onload","onerror","onclick","onmouseover","onfocus","onblur"],WHOLE_DOCUMENT:!1,RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,RETURN_TRUSTED_TYPE:!1}),pe=({children:r,maxNotifications:i=5,defaultAutoHideDuration:e=6e3,position:t={vertical:"top",horizontal:"right"},enabled:s=!1,allowHtml:l=!1})=>{let[g,T]=we([]),P=ne((o,d="info",n)=>{if(!s)return"";if(!o||typeof o!="string")return y.warn("GlobalNotificationProvider: Invalid message provided"),"";o.length>1e3&&(y.warn("GlobalNotificationProvider: Message too long, truncating"),o=o.substring(0,1e3)+"...");let E=yi(),I={id:E,message:o,severity:d,autoHideDuration:n?.autoHideDuration??e,persistent:n?.persistent??!1,allowHtml:n?.allowHtml??l};return T(S=>[...S.length>=i?S.slice(-(i-1)):S,I]),E},[i,e,s,l]),A=ne(o=>{T(d=>d.filter(n=>n.id!==o))},[]),L=ne(()=>{T([])},[]),c={showNotification:P,hideNotification:A,clearAllNotifications:L};return Ti(Ne.Provider,{value:c,children:[r,s&&B(mi,{children:B(pi,{sx:{position:"fixed",zIndex:9999,[t.vertical]:(t.vertical==="top",24),[t.horizontal]:t.horizontal==="right"||t.horizontal==="left"?24:"50%",...t.horizontal==="center"&&{transform:"translateX(-50%)"},display:"flex",flexDirection:t.vertical==="top"?"column":"column-reverse",gap:1,maxWidth:"400px",width:"auto"},children:g.map(o=>B(vi,{notification:o,onClose:()=>A(o.id)},o.id))})})]})},vi=({notification:r,onClose:i})=>{let[e,t]=we(!0),s=ne((l,g)=>{g!=="clickaway"&&(t(!1),setTimeout(i,300))},[i]);return di(()=>{if(!r.persistent&&r.autoHideDuration){let l=setTimeout(()=>{s()},r.autoHideDuration);return()=>clearTimeout(l)}},[r.autoHideDuration,r.persistent,s]),B(fi,{open:e,onClose:s,sx:{position:"relative","& .MuiSnackbarContent-root":{minWidth:"auto"}},TransitionProps:{enter:!0,exit:!0},children:B(gi,{variant:"filled",severity:r.severity,onClose:s,sx:{width:"100%",minWidth:"280px",maxWidth:"400px",wordBreak:"break-word"},children:r.allowHtml?B("span",{dangerouslySetInnerHTML:{__html:Ei(r.message)}}):B("span",{children:r.message})})})},Re=()=>{let r=ui(Ne);if(!r)throw new Error("useGlobalNotification debe ser usado dentro de un GlobalNotificationProvider");return r};import bi,{createContext as Ai,useContext as ki,useMemo as me}from"react";import{Fragment as Si,jsx as D,jsxs as M}from"react/jsx-runtime";var De=Ai(void 0);function Ce({children:r,options:i={},config:e,showNotifications:t=!1,notificationOptions:s={}}){let l;try{let{showNotification:n}=Re();l=n}catch{}let g={};try{let n=xe();n.isInitialized&&n.adminCredentials&&(g=n.adminCredentials)}catch{}let T=me(()=>{let n=fe({publicApiKey:e?.publicApiKey,env:e?.env,enableDebug:i?.enableLogging});return{publicApiKey:n.publicApiKey,env:n.env||"prod"}},[e,i?.enableLogging]),P=bi.useMemo(()=>({...i,showNotification:l,apiEndpointAdmin:g.apiEndpointAdmin,apiKeyEndpointAdmin:g.apiKeyEndpointAdmin,publicApiKey:T.publicApiKey,env:T.env,onSessionExpired:()=>{i.onSessionExpired?.()}}),[i,l,g.apiEndpointAdmin,g.apiKeyEndpointAdmin,T]),A=Pe(P),L=me(()=>{let n=fe({publicApiKey:e?.publicApiKey,env:e?.env,appName:e?.appName,logo:e?.logo,loginActions:e?.loginActions,enableDebug:i?.enableLogging});return{publicApiKey:n.publicApiKey,env:n.env,appName:n.appName,loginActions:n.loginActions,logo:n.logo}},[e,i?.enableLogging]),c=me(()=>{if(!A.tokens?.accessToken||!A.isAuthenticated)return null;try{let n=Ae(A.tokens.accessToken);if(n&&n.sub&&n.email&&n.subscriber){let E={_id:n.sub,email:n.email,subscriberKey:n.subscriber};return Object.keys(n).forEach(I=>{["sub","email","subscriber"].includes(I)||(E[I]=n[I])}),E}}catch(n){y.error("Error decoding JWT token for sessionData",n instanceof Error?n:{message:String(n)})}return null},[A.tokens?.accessToken,A.isAuthenticated]),o={...A,sessionData:c,config:L},d={enabled:t,maxNotifications:s.maxNotifications||5,defaultAutoHideDuration:s.defaultAutoHideDuration||6e3,position:s.position||{vertical:"top",horizontal:"right"}};return D(De.Provider,{value:o,children:r})}function xt(r){let i={enabled:r.showNotifications,maxNotifications:r.notificationOptions?.maxNotifications||5,defaultAutoHideDuration:r.notificationOptions?.defaultAutoHideDuration||6e3,position:r.notificationOptions?.position||{vertical:"top",horizontal:"right"},allowHtml:r.notificationOptions?.allowHtml||!1};return r.config?.publicApiKey?D(Se,{config:{publicApiKey:r.config.publicApiKey,env:r.config.env||"prod",appName:r.config.appName,loginActions:r.config.loginActions,logo:r.config.logo},children:D(pe,{...i,children:D(Ce,{...r})})}):D(pe,{...i,children:D(Ce,{...r})})}function Ii(){let r=ki(De);if(r===void 0)throw new Error("useSessionContext must be used within a SessionProvider");return r}function Pt(){let r=Ii();return r.isInitialized?M("div",{style:{padding:"10px",margin:"10px",border:"1px solid #ccc",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace"},children:[D("h4",{children:"Session Debug Info"}),M("div",{children:[D("strong",{children:"Authenticated:"})," ",r.isAuthenticated?"Yes":"No"]}),M("div",{children:[D("strong",{children:"Loading:"})," ",r.isLoading?"Yes":"No"]}),M("div",{children:[D("strong",{children:"Error:"})," ",r.error||"None"]}),r.tokens&&M(Si,{children:[M("div",{children:[D("strong",{children:"Access Token:"})," ",r.tokens.accessToken.substring(0,20),"..."]}),M("div",{children:[D("strong",{children:"Refresh Token:"})," ",r.tokens.refreshToken.substring(0,20),"..."]}),M("div",{children:[D("strong",{children:"Access Expires In:"})," ",Math.round(r.expiresIn/1e3/60)," minutes"]}),M("div",{children:[D("strong",{children:"Refresh Expires In:"})," ",Math.round(r.refreshExpiresIn/1e3/60/60)," hours"]}),M("div",{children:[D("strong",{children:"Expiring Soon:"})," ",r.isExpiringSoon?"Yes":"No"]})]})]}):D("div",{children:"Session not initialized"})}import{useState as se,useEffect as Fe,useCallback as Le,useRef as oe}from"react";import xi from"@nocios/crudify-browser";var Ft=(r={})=>{let{autoFetch:i=!0,retryOnError:e=!1,maxRetries:t=3}=r,[s,l]=se(null),[g,T]=se(!1),[P,A]=se(null),[L,c]=se({}),o=oe(null),d=oe(!0),n=oe(0),E=oe(0),I=Le(()=>{l(null),A(null),T(!1),c({})},[]),S=Le(async()=>{let R=ke();if(!R){d.current&&(A("No user email available"),T(!1));return}o.current&&o.current.abort();let x=new AbortController;o.current=x;let K=++n.current;try{d.current&&(T(!0),A(null));let U=await xi.readItems("users",{filter:{email:R},pagination:{limit:1}});if(K===n.current&&d.current&&!x.signal.aborted){let C=U.data;if(U.success&&C&&C.length>0){let v=C[0];l(v);let X={fullProfile:v,totalFields:Object.keys(v).length,displayData:{id:v.id,email:v.email,username:v.username,firstName:v.firstName,lastName:v.lastName,fullName:v.fullName||`${v.firstName||""} ${v.lastName||""}`.trim(),role:v.role,permissions:v.permissions||[],isActive:v.isActive,lastLogin:v.lastLogin,createdAt:v.createdAt,updatedAt:v.updatedAt,...Object.keys(v).filter(_=>!["id","email","username","firstName","lastName","fullName","role","permissions","isActive","lastLogin","createdAt","updatedAt"].includes(_)).reduce((_,z)=>({..._,[z]:v[z]}),{})}};c(X),A(null),E.current=0}else A("User profile not found"),l(null),c({})}}catch(U){if(K===n.current&&d.current){let C=U;if(C.name==="AbortError")return;e&&E.current<t&&(C.message?.includes("Network Error")||C.message?.includes("Failed to fetch"))?(E.current++,setTimeout(()=>{d.current&&S()},1e3*E.current)):(A("Failed to load user profile"),l(null),c({}))}}finally{K===n.current&&d.current&&T(!1),o.current===x&&(o.current=null)}},[e,t]);return Fe(()=>{i&&S()},[i,S]),Fe(()=>(d.current=!0,()=>{d.current=!1,o.current&&(o.current.abort(),o.current=null)}),[]),{userProfile:s,loading:g,error:P,extendedData:L,refreshProfile:S,clearProfile:I}};import{useState as ye,useEffect as Pi,useCallback as ae,useRef as wi}from"react";import Ni from"@nocios/crudify-browser";var Ut=(r,i={})=>{let{autoFetch:e=!0,onSuccess:t,onError:s}=i,{prefix:l,padding:g=0,separator:T=""}=r,[P,A]=ye(""),[L,c]=ye(!1),[o,d]=ye(null),n=wi(!1),E=ae(x=>{let K=String(x).padStart(g,"0");return`${l}${T}${K}`},[l,g,T]),I=ae(async()=>{c(!0),d(null);try{let x=await Ni.getNextSequence(l),K=x.data;if(x.success&&K?.value){let U=E(K.value);A(U),t?.(U)}else{let U=x.errors?._error?.[0]||"Failed to generate code";d(U),s?.(U)}}catch(x){let K=x instanceof Error?x.message:"Unknown error";d(K),s?.(K)}finally{c(!1)}},[l,E,t,s]),S=ae(async()=>{await I()},[I]),R=ae(()=>{d(null)},[]);return Pi(()=>{e&&!P&&!n.current&&(n.current=!0,I())},[e,P,I]),{value:P,loading:L,error:o,regenerate:S,clearError:R}};import he from"@nocios/crudify-browser";var Ee=class r{constructor(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null};this.initializationPromise=null;this.highPriorityInitializerPresent=!1;this.waitingForHighPriority=new Set;this.HIGH_PRIORITY_WAIT_TIMEOUT=100}static getInstance(){return r.instance||(r.instance=new r),r.instance}registerHighPriorityInitializer(){this.highPriorityInitializerPresent=!0}isHighPriorityInitializerPresent(){return this.highPriorityInitializerPresent}getState(){return{...this.state}}async initialize(i){let{priority:e,publicApiKey:t,env:s,enableLogging:l,requestedBy:g}=i;if(this.state.status==="INITIALIZED"){this.state.publicApiKey!==t&&y.warn(`[CrudifyInitialization] ${g} attempted to initialize with different key. Already initialized with key: ${this.state.publicApiKey?.slice(0,10)}... by ${this.state.initializedBy}`);return}if(this.initializationPromise)return l&&y.debug(`[CrudifyInitialization] ${g} waiting for ongoing initialization...`),this.initializationPromise;if(e==="LOW"&&this.highPriorityInitializerPresent&&this.state.status==="UNINITIALIZED"){if(l&&y.debug(`[CrudifyInitialization] ${g} (LOW priority) waiting for HIGH priority initializer...`),this.waitingForHighPriority.add(g),await this.waitForHighPriorityOrTimeout(l),this.waitingForHighPriority.delete(g),this.getState().status==="INITIALIZED"){l&&y.debug(`[CrudifyInitialization] ${g} found initialization completed by HIGH priority`);return}l&&y.warn(`[CrudifyInitialization] ${g} timeout waiting for HIGH priority, initializing with LOW priority`)}e==="HIGH"&&this.state.status==="INITIALIZING"&&this.state.priority==="LOW"&&(y.warn(`[CrudifyInitialization] HIGH priority request from ${g} interrupting LOW priority initialization by ${this.state.initializedBy}`),this.state.status="UNINITIALIZED",this.initializationPromise=null),l&&y.debug(`[CrudifyInitialization] ${g} starting initialization (${e} priority)...`),this.state.status="INITIALIZING",this.state.priority=e,this.state.initializedBy=g,this.initializationPromise=this.performInitialization(t,s,l);try{await this.initializationPromise,this.state.status="INITIALIZED",this.state.publicApiKey=t,this.state.env=s,this.state.error=null,l&&y.info(`[CrudifyInitialization] Successfully initialized by ${g} (${e} priority)`)}catch(T){throw this.state.status="ERROR",this.state.error=T instanceof Error?T:new Error(String(T)),this.initializationPromise=null,y.error(`[CrudifyInitialization] Initialization failed for ${g}`,T instanceof Error?T:{message:String(T)}),T}}async waitForHighPriorityOrTimeout(i){return new Promise(e=>{let s=0,l=setInterval(()=>{if(s+=10,this.state.status==="INITIALIZED"&&this.state.priority==="HIGH"){clearInterval(l),e();return}if(this.state.status==="INITIALIZING"&&this.state.priority==="HIGH"){s=0;return}s>=this.HIGH_PRIORITY_WAIT_TIMEOUT&&(clearInterval(l),i&&y.debug(`[CrudifyInitialization] Timeout waiting for HIGH priority (${this.HIGH_PRIORITY_WAIT_TIMEOUT}ms)`),e())},10)})}async performInitialization(i,e,t){let s=he.getTokenData();if(s&&s.endpoint){t&&y.debug("[CrudifyInitialization] SDK already initialized externally");return}he.config(e);let l=t?"debug":"none",g=await he.init(i,l);if(g.success===!1)throw new Error(`Crudify initialization failed: ${JSON.stringify(g.errors||"Unknown error")}`);g.apiEndpointAdmin&&g.apiKeyEndpointAdmin&&ee.notifyCredentialsReady({apiUrl:g.apiEndpointAdmin,apiKey:g.apiKeyEndpointAdmin})}reset(){this.state={status:"UNINITIALIZED",priority:null,publicApiKey:null,env:null,error:null,initializedBy:null},this.initializationPromise=null,this.highPriorityInitializerPresent=!1,this.waitingForHighPriority.clear()}isInitialized(){return this.state.status==="INITIALIZED"}getDiagnostics(){return{...this.state,waitingCount:this.waitingForHighPriority.size,waitingComponents:Array.from(this.waitingForHighPriority),hasActivePromise:this.initializationPromise!==null}}},Q=Ee.getInstance();import{useState as le,useCallback as N,useRef as Ri,useMemo as q}from"react";import ce from"@nocios/crudify-browser";var Ke=()=>`file_${Date.now()}_${Math.random().toString(36).substring(2,9)}`,Ci=r=>{let i=r.lastIndexOf("."),e=i>0?r.substring(i):"",t=Date.now(),s=Math.random().toString(36).substring(2,8);return`${t}_${s}${e}`},ve=(r,i)=>{if(r.startsWith("http://")||r.startsWith("https://"))try{let e=new URL(r);return e.pathname.startsWith("/")?e.pathname.substring(1):e.pathname}catch{if(i&&r.startsWith(i))return r.substring(i.length)}return i&&r.startsWith(i)?r.substring(i.length):r},Bt=(r={})=>{let{acceptedTypes:i,maxFileSize:e=10*1024*1024,maxFiles:t,minFiles:s=0,visibility:l="private",onUploadComplete:g,onUploadError:T,onFileRemoved:P,onFilesChange:A,mode:L="edit"}=r,[c,o]=le([]),[d,n]=le(!1),[E,I]=le(!1),[S,R]=le([]),x=Ri(new Map),K=N(()=>{n(!0)},[]),U=N(()=>{I(!0),n(!0)},[]),C=N((a,f)=>{o(u=>u.map(m=>m.id===a?{...m,...f}:m))},[]),v=N(a=>{A?.(a)},[A]),X=N(a=>i&&i.length>0&&!i.includes(a.type)?{valid:!1,error:`File type not allowed: ${a.type}`}:a.size>e?{valid:!1,error:`File exceeds maximum size of ${(e/1048576).toFixed(1)}MB`}:{valid:!0},[i,e]),_=N(async(a,f)=>{try{if(!Q.isInitialized())throw new Error("Crudify is not initialized. Please wait for the application to finish loading.");let u=Ci(f.name),p=await ce.generateSignedUrl({fileName:u,contentType:f.type,visibility:l});if(!p.success||!p.data)throw new Error("Failed to get upload URL");let m=p.data,{uploadUrl:w,s3Key:k,publicUrl:H}=m;if(!w||!k)throw new Error("Incomplete signed URL response");let $=k.indexOf("/"),ii=$>0?k.substring($+1):k;C(a.id,{status:"uploading",progress:0}),await new Promise((de,Y)=>{let O=new XMLHttpRequest;O.upload.addEventListener("progress",G=>{if(G.lengthComputable){let ri=Math.round(G.loaded/G.total*100);C(a.id,{progress:ri})}}),O.addEventListener("load",()=>{O.status>=200&&O.status<300?de():Y(new Error(`Upload failed with status ${O.status}`))}),O.addEventListener("error",()=>{Y(new Error("Network error during upload"))}),O.addEventListener("abort",()=>{Y(new Error("Upload cancelled"))}),O.open("PUT",w),O.setRequestHeader("Content-Type",f.type),O.send(f)});let ti={status:"completed",progress:100,filePath:ii,visibility:l,publicUrl:l==="public"?H:void 0,file:void 0};o(de=>{let Y=de.map(G=>G.id===a.id?{...G,...ti}:G);v(Y);let O=Y.find(G=>G.id===a.id);return O&&g?.(O),Y})}catch(u){let p=u instanceof Error?u.message:"Unknown error";C(a.id,{status:"error",progress:0,errorMessage:p}),o(m=>{let w=m.find(k=>k.id===a.id);return w&&T?.(w,p),m})}},[C,g,T,l]),z=N(async a=>{let f=Array.from(a),u=[];o(p=>{if(t!==void 0){let k=p.filter($=>$.status!=="pendingDeletion"&&$.status!=="error").length,H=t-k;if(H<=0)return y.warn(`File limit of ${t} already reached`),p;f.length>H&&(f=f.slice(0,H),y.warn(`Only ${H} files will be added to not exceed limit`))}let m=[];for(let k of f){let H=X(k),$={id:Ke(),name:k.name,size:k.size,contentType:k.type,status:H.valid?"pending":"error",progress:0,createdAt:Date.now(),file:H.valid?k:void 0,errorMessage:H.error,isExisting:!1};m.push($)}u=m;let w=[...p,...m];return v(w),w}),setTimeout(()=>{let p=u.filter(m=>m.status==="pending"&&m.file);for(let m of p)if(m.file){let w=_(m,m.file);x.current.set(m.id,w),w.finally(()=>{x.current.delete(m.id)})}},0)},[t,X,_,v]),ue=N(async a=>{let f=c.find(p=>p.id===a);if(!f)return{needsConfirmation:!1,isExisting:!1};let u=f.isExisting===!0;return L==="create"||!u?{needsConfirmation:!0,isExisting:u}:(R(p=>[...p,a]),o(p=>{let m=p.map(k=>k.id===a?{...k,status:"pendingDeletion"}:k),w=m.filter(k=>k.status!=="pendingDeletion");return v(w),m}),{needsConfirmation:!1,isExisting:u})},[c,L,v]),ze=N(async a=>{let f=c.find(u=>u.id===a);if(!f)return{success:!1,error:"File not found"};if(!f.filePath)return o(u=>{let p=u.filter(m=>m.id!==a);return v(p),p}),{success:!0};try{if(!Q.isInitialized())return{success:!1,error:"Crudify not initialized"};let u=ve(f.filePath);return(await ce.disableFile({filePath:u})).success?(o(m=>{let w=m.filter(k=>k.id!==a);return v(w),w}),P?.(f),{success:!0}):{success:!1,error:"Failed to delete file"}}catch(u){return{success:!1,error:u instanceof Error?u.message:"Unknown error"}}},[c,v,P]),Ue=N(a=>{let f=c.find(u=>u.id===a);return!f||!f.isExisting?!1:(R(u=>u.filter(p=>p!==a)),o(u=>{let p=u.map(m=>m.id===a?{...m,status:"completed"}:m);return v(p),p}),!0)},[c,v]),Oe=N(()=>{S.length!==0&&(o(a=>{let f=a.map(u=>S.includes(u.id)?{...u,status:"completed"}:u);return v(f),f}),R([]))},[S,v]),He=N(async()=>{if(S.length===0)return{success:!0,errors:[]};let a=[],f=[];if(!Q.isInitialized())return{success:!1,errors:["Crudify is not initialized. Please wait for the application to finish loading."]};for(let u of S){let p=c.find(m=>m.id===u);if(!p?.filePath){f.push(u);continue}try{let m=ve(p.filePath);(await ce.disableFile({filePath:m})).success?(f.push(u),P?.(p)):a.push(`Failed to delete ${p.name}`)}catch(m){a.push(`Error deleting ${p.name}: ${m instanceof Error?m.message:"Unknown error"}`)}}return f.length>0&&(o(u=>u.filter(m=>!f.includes(m.id))),R(u=>u.filter(p=>!f.includes(p)))),{success:a.length===0,errors:a}},[c,S,P]),Me=N(()=>{o([]),v([])},[v]),_e=N(async a=>{let f=c.find(p=>p.id===a);if(!f||f.status!=="error"||!f.file){y.warn("Cannot retry: file not found or no original file");return}C(a,{status:"pending",progress:0,errorMessage:void 0});let u=_(f,f.file);x.current.set(a,u),u.finally(()=>{x.current.delete(a)})},[c,C,_]),Ge=N(async()=>{let a=Array.from(x.current.values());return a.length>0&&await Promise.allSettled(a),new Promise(f=>{setTimeout(()=>{o(u=>{let p=u.filter(m=>m.status==="completed"&&m.filePath).map(m=>m.filePath);return f(p),u})},0)})},[]),Ve=a=>{let f=a.split(".").pop()?.toLowerCase()||"";return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",webp:"image/webp",svg:"image/svg+xml",bmp:"image/bmp",ico:"image/x-icon",pdf:"application/pdf",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",txt:"text/plain",csv:"text/csv",mp3:"audio/mpeg",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",zip:"application/zip",rar:"application/x-rar-compressed",json:"application/json",xml:"application/xml"}[f]||"application/octet-stream"},$e=N((a,f)=>{let u=a.map(p=>{let m=ve(p.filePath,f),w=m.includes("/public/")||m.startsWith("public/")?"public":"private",k=p.contentType||Ve(p.name);return{id:Ke(),name:p.name,size:p.size||0,contentType:k,status:"completed",progress:100,filePath:m,visibility:w,createdAt:Date.now(),isExisting:!0}});o(u),v(u)},[v]),Ye=N(async a=>{let f=c.find(u=>u.id===a);if(!f||!f.filePath)return null;if(f.visibility==="public"&&f.publicUrl)return f.publicUrl;try{if(!Q.isInitialized())return null;let u=await ce.getFileUrl({filePath:f.filePath,expiresIn:3600}),p=u.data;return u.success&&p?.url?p.url:null}catch{return null}},[c]),We=q(()=>c.some(a=>a.status==="uploading"||a.status==="pending"),[c]),Be=q(()=>c.filter(a=>a.status==="uploading"||a.status==="pending").length,[c]),Xe=q(()=>c.filter(a=>a.status==="completed"&&a.filePath).map(a=>a.filePath),[c]),Z=q(()=>c.filter(a=>a.status!=="pendingDeletion"),[c]),Ze=q(()=>Z.filter(a=>a.status==="completed"||a.status==="pending"||a.status==="uploading").length,[Z]),{isValid:qe,validationError:je,validationErrorKey:Je,validationErrorParams:Qe}=q(()=>{let a=Z.filter(u=>u.status==="completed").length;if(a<s){let u=s===1?"file.validation.minFilesRequired":"file.validation.minFilesRequiredPlural";return{isValid:!1,validationError:u,validationErrorKey:u,validationErrorParams:{count:s}}}return t!==void 0&&a>t?{isValid:!1,validationError:"file.validation.maxFilesExceeded",validationErrorKey:"file.validation.maxFilesExceeded",validationErrorParams:{count:t}}:Z.some(u=>u.status==="error")?{isValid:!1,validationError:"file.validation.filesWithErrors",validationErrorKey:"file.validation.filesWithErrors",validationErrorParams:{}}:{isValid:!0,validationError:null,validationErrorKey:null,validationErrorParams:{}}},[Z,s,t]),ei=S.length>0;return{files:c,activeFiles:Z,activeFileCount:Ze,isUploading:We,pendingCount:Be,addFiles:z,removeFile:ue,deleteFileImmediately:ze,restoreFile:Ue,clearFiles:Me,retryUpload:_e,isValid:qe,validationError:je,validationErrorKey:Je,validationErrorParams:Qe,waitForUploads:Ge,completedFilePaths:Xe,initializeFiles:$e,isTouched:d,markAsTouched:K,isSubmitted:E,markAsSubmitted:U,getPreviewUrl:Ye,pendingDeletions:S,hasPendingDeletions:ei,commitDeletions:He,restorePendingDeletions:Oe}};export{ee as a,Se as b,xe as c,b as d,te as e,Pe as f,pe as g,Re as h,xt as i,Ii as j,Pt as k,Ft as l,Ut as m,Ee as n,Q as o,Bt as p};
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }var _chunk34FAL7YWjs = require('./chunk-34FAL7YW.js');var _cryptojs = require('crypto-js'); var _cryptojs2 = _interopRequireDefault(_cryptojs);var c=class{constructor(t="sessionStorage"){this.encryptionKey=this.generateEncryptionKey(),this.storage=t==="localStorage"?window.localStorage:window.sessionStorage}generateEncryptionKey(){let t=[navigator.userAgent,navigator.language,new Date().getTimezoneOffset(),screen.colorDepth,screen.width,screen.height,"crudify-login"].join("|");return _cryptojs2.default.SHA256(t).toString()}setItem(t,e,n){try{let r=_cryptojs2.default.AES.encrypt(e,this.encryptionKey).toString();if(this.storage.setItem(t,r),n){let s=new Date().getTime()+n*60*1e3;this.storage.setItem(`${t}_expiry`,s.toString())}}catch(r){_chunk34FAL7YWjs.a.error("Failed to encrypt and store data",r instanceof Error?r:{message:String(r)})}}getItem(t){try{let e=`${t}_expiry`,n=this.storage.getItem(e);if(n){let g=parseInt(n,10);if(new Date().getTime()>g)return this.removeItem(t),null}let r=this.storage.getItem(t);if(!r)return null;let i=_cryptojs2.default.AES.decrypt(r,this.encryptionKey).toString(_cryptojs2.default.enc.Utf8);return i||(_chunk34FAL7YWjs.a.warn("Failed to decrypt stored data - may be corrupted"),this.removeItem(t),null)}catch(e){return _chunk34FAL7YWjs.a.error("Failed to decrypt data",e instanceof Error?e:{message:String(e)}),this.removeItem(t),null}}removeItem(t){this.storage.removeItem(t),this.storage.removeItem(`${t}_expiry`)}setToken(t){try{let e=t.split(".");if(e.length===3){let n=JSON.parse(atob(e[1]));if(n.exp){let r=n.exp*1e3,s=new Date().getTime(),i=Math.floor((r-s)/(60*1e3));if(i>0){this.setItem("authToken",t,i);return}}}}catch (e2){_chunk34FAL7YWjs.a.warn("Failed to parse token expiry, using default expiry")}this.setItem("authToken",t,1440)}getToken(){let t=this.getItem("authToken");if(t)try{let e=t.split(".");if(e.length===3){let n=JSON.parse(atob(e[1]));if(n.exp){let r=Math.floor(Date.now()/1e3);if(n.exp<r)return this.removeItem("authToken"),null}}}catch (e3){return _chunk34FAL7YWjs.a.warn("Failed to validate token expiry"),this.removeItem("authToken"),null}return t}},y= exports.a =new c("sessionStorage"),h= exports.b =new c("localStorage");exports.a = y; exports.b = h;
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkVM6JVOLDjs = require('./chunk-VM6JVOLD.js');var _chunk34FAL7YWjs = require('./chunk-34FAL7YW.js');var _react = require('react');var _crudifybrowser = require('@nocios/crudify-browser'); var _crudifybrowser2 = _interopRequireDefault(_crudifybrowser);var J=(S={})=>{let{autoFetch:c=!0,retryOnError:N=!1,maxRetries:m=3}=S,{isAuthenticated:T,isInitialized:I,sessionData:u,tokens:p}=_chunkVM6JVOLDjs.j.call(void 0, ),[R,d]=_react.useState.call(void 0, null),[y,A]=_react.useState.call(void 0, c&&T),[C,E]=_react.useState.call(void 0, null),l=_react.useRef.call(void 0, null),o=_react.useRef.call(void 0, !0),g=_react.useRef.call(void 0, 0),f=_react.useRef.call(void 0, 0),F=_react.useCallback.call(void 0, ()=>{if(!u)return null;let h=u["cognito:username"];return u.email||(typeof h=="string"?h:null)},[u]),P=_react.useCallback.call(void 0, ()=>{d(null),E(null),A(!1),f.current=0},[]),D=_react.useCallback.call(void 0, async()=>{let h=F();if(!h){o.current&&(E("No user email available from session data"),A(!1));return}if(!I){o.current&&(E("Session not initialized"),A(!1));return}l.current&&l.current.abort();let e=new AbortController;l.current=e;let i=++g.current;try{o.current&&(A(!0),E(null));let s=await _crudifybrowser2.default.readItems("users",{filter:{email:h},pagination:{limit:1}});if(i===g.current&&o.current&&!e.signal.aborted){let r=null;if(s.success){let t=s.data;if(Array.isArray(t)&&t.length>0)r=t[0];else if(t&&typeof t=="object"&&!Array.isArray(t)&&_optionalChain([t, 'access', _2 => _2.response, 'optionalAccess', _3 => _3.data]))try{let n=t.response.data,a=typeof n=="string"?JSON.parse(n):n;a&&a.items&&Array.isArray(a.items)&&a.items.length>0&&(r=a.items[0])}catch (e2){}else t&&typeof t=="object"&&!Array.isArray(t)&&t.items&&Array.isArray(t.items)&&t.items.length>0&&(r=t.items[0]);if(!r&&t&&typeof t=="object"&&!Array.isArray(t)&&_optionalChain([t, 'access', _4 => _4.data, 'optionalAccess', _5 => _5.response, 'optionalAccess', _6 => _6.data]))try{let n=t.data.response.data,a=typeof n=="string"?JSON.parse(n):n;a&&a.items&&Array.isArray(a.items)&&a.items.length>0&&(r=a.items[0])}catch (e3){}}r?(d(r),E(null),f.current=0):(E("User profile not found in database"),d(null))}}catch(s){if(i===g.current&&o.current){let r=s;if(r.name==="AbortError")return;N&&f.current<m&&(_optionalChain([r, 'access', _7 => _7.message, 'optionalAccess', _8 => _8.includes, 'call', _9 => _9("Network Error")])||_optionalChain([r, 'access', _10 => _10.message, 'optionalAccess', _11 => _11.includes, 'call', _12 => _12("Failed to fetch")]))?(f.current++,setTimeout(()=>{o.current&&D()},1e3*f.current)):(E("Failed to load user profile from database"),d(null))}}finally{i===g.current&&o.current&&A(!1),l.current===e&&(l.current=null)}},[I,F,N,m]);return _react.useEffect.call(void 0, ()=>{c&&T&&I?D():T||P()},[c,T,I,D,P]),_react.useEffect.call(void 0, ()=>(o.current=!0,()=>{o.current=!1,l.current&&(l.current.abort(),l.current=null)}),[]),{user:{session:u,data:R},loading:y,error:C,refreshProfile:D,clearProfile:P}};var te=()=>{let{isAuthenticated:S,isLoading:c,isInitialized:N,tokens:m,error:T,sessionData:I,login:u,logout:p,refreshTokens:R,clearError:d,getTokenInfo:y,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E}=_chunkVM6JVOLDjs.j.call(void 0, ),l=_react.useCallback.call(void 0, g=>{g?_chunk34FAL7YWjs.a.warn("useAuth.setToken() is deprecated. Use login() method instead for better security."):p()},[p]),o=_optionalChain([m, 'optionalAccess', _13 => _13.expiresAt])?new Date(m.expiresAt):null;return{isAuthenticated:S,loading:c,error:T,token:_optionalChain([m, 'optionalAccess', _14 => _14.accessToken])||null,user:I,tokenExpiration:o,setToken:l,logout:p,refreshToken:R,login:u,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E,getTokenInfo:y,clearError:d}};var ae=()=>{let{isInitialized:S,isLoading:c,error:N,isAuthenticated:m,login:T}=_chunkVM6JVOLDjs.j.call(void 0, ),I=_react.useCallback.call(void 0, ()=>S&&!c&&!N,[S,c,N]),u=_react.useCallback.call(void 0, async()=>new Promise((o,g)=>{let f=()=>{I()?o():N?g(new Error(N)):setTimeout(f,100)};f()}),[I,N]),p=_react.useCallback.call(void 0, async()=>{if(!I())throw new Error("System not ready. Check isInitialized, isLoading, and error states.")},[I]),R=_react.useCallback.call(void 0, async(o,g,f)=>(await p(),await _crudifybrowser2.default.readItems(o,g||{},f)),[p]),d=_react.useCallback.call(void 0, async(o,g,f)=>(await p(),await _crudifybrowser2.default.readItem(o,g,f)),[p]),y=_react.useCallback.call(void 0, async(o,g,f)=>(await p(),await _crudifybrowser2.default.createItem(o,g,f)),[p]),A=_react.useCallback.call(void 0, async(o,g,f)=>(await p(),await _crudifybrowser2.default.updateItem(o,g,f)),[p]),C=_react.useCallback.call(void 0, async(o,g,f)=>(await p(),await _crudifybrowser2.default.deleteItem(o,g,f)),[p]),E=_react.useCallback.call(void 0, async(o,g)=>(await p(),await _crudifybrowser2.default.transaction(o,g)),[p]),l=_react.useCallback.call(void 0, async(o,g)=>{try{let f=await T(o,g);return f.success?{success:!0,data:f.tokens}:{success:!1,errors:f.error||"Login failed"}}catch(f){return{success:!1,errors:f instanceof Error?f.message:"Login failed"}}},[T]);return{readItems:R,readItem:d,createItem:y,updateItem:A,deleteItem:C,transaction:E,login:l,isInitialized:S,isInitializing:c,initializationError:N,isReady:I,waitForReady:u}};var Y={INVALID_CREDENTIALS:"warning",UNAUTHORIZED:"warning",INVALID_API_KEY:"error",USER_NOT_FOUND:"warning",USER_NOT_ACTIVE:"warning",NO_PERMISSION:"warning",ITEM_NOT_FOUND:"info",NOT_FOUND:"info",IN_USE:"warning",FIELD_ERROR:"warning",BAD_REQUEST:"warning",INTERNAL_SERVER_ERROR:"error",DATABASE_CONNECTION_ERROR:"error",INVALID_CONFIGURATION:"error",UNKNOWN_OPERATION:"error",TOO_MANY_REQUESTS:"warning"},M={INVALID_CREDENTIALS:"errors.auth.INVALID_CREDENTIALS",UNAUTHORIZED:"errors.auth.UNAUTHORIZED",INVALID_API_KEY:"errors.auth.INVALID_API_KEY",USER_NOT_FOUND:"errors.auth.USER_NOT_FOUND",USER_NOT_ACTIVE:"errors.auth.USER_NOT_ACTIVE",NO_PERMISSION:"errors.auth.NO_PERMISSION",ITEM_NOT_FOUND:"errors.data.ITEM_NOT_FOUND",NOT_FOUND:"errors.data.NOT_FOUND",IN_USE:"errors.data.IN_USE",FIELD_ERROR:"errors.data.FIELD_ERROR",BAD_REQUEST:"errors.data.BAD_REQUEST",INTERNAL_SERVER_ERROR:"errors.system.INTERNAL_SERVER_ERROR",DATABASE_CONNECTION_ERROR:"errors.system.DATABASE_CONNECTION_ERROR",INVALID_CONFIGURATION:"errors.system.INVALID_CONFIGURATION",UNKNOWN_OPERATION:"errors.system.UNKNOWN_OPERATION",TOO_MANY_REQUESTS:"errors.system.TOO_MANY_REQUESTS"},de= exports.d =(S={})=>{let{showNotification:c}=_chunkVM6JVOLDjs.h.call(void 0, ),{showSuccessNotifications:N=!1,showErrorNotifications:m=!0,customErrorMessages:T={},defaultErrorMessage:I="Ha ocurrido un error inesperado",autoHideDuration:u=6e3,appStructure:p=[],translateFn:R=e=>e}=S,d=_react.useCallback.call(void 0, e=>{if(!e.success&&e.errors&&(Object.keys(e.errors).some(r=>r!=="_error"&&r!=="_graphql"&&r!=="_transaction")||_optionalChain([e, 'access', _15 => _15.errors, 'access', _16 => _16._transaction, 'optionalAccess', _17 => _17.includes, 'call', _18 => _18("ONE_OR_MORE_OPERATIONS_FAILED")])||_optionalChain([e, 'access', _19 => _19.errors, 'access', _20 => _20._error, 'optionalAccess', _21 => _21.includes, 'call', _22 => _22("TOO_MANY_REQUESTS")])))return!1;let i=e.data;return!(!e.success&&_optionalChain([i, 'optionalAccess', _23 => _23.response, 'optionalAccess', _24 => _24.status])==="TOO_MANY_REQUESTS")},[]),y=_react.useCallback.call(void 0, (e,i)=>{let s=R(e);return s===e?i||R("error.unknown"):s},[R]),A=_react.useCallback.call(void 0, e=>["create","update","delete"].includes(e),[]),C=_react.useCallback.call(void 0, (e,i)=>N?A(e)&&i?!0:p.some(s=>s.key===e):!1,[N,p,A]),E=_react.useCallback.call(void 0, (e,i,s)=>{let r=_optionalChain([s, 'optionalAccess', _25 => _25.key])&&typeof s.key=="string"?s.key:e,t=`action.onSuccess.${r}`,n=y(t);if(n!==R("error.unknown")){if(A(r)&&i){let a=`action.${i}Singular`,O=y(a);if(O!==R("error.unknown"))return R(t,{item:O});{let L=`action.onSuccess.${r}WithoutItem`,x=y(L);return x!==R("error.unknown")?x:n}}return n}return R("base.success.transaction")},[y,R,A]),l=_react.useCallback.call(void 0, e=>{if(e.errorCode&&T[e.errorCode])return T[e.errorCode];if(e.errorCode&&M[e.errorCode])return y(M[e.errorCode]);if(e.errorCode){let i=[`errors.auth.${e.errorCode}`,`errors.data.${e.errorCode}`,`errors.system.${e.errorCode}`,`errors.${e.errorCode}`];for(let s of i){let r=y(s);if(r!==R("error.unknown"))return r}}if(typeof e.data=="string"&&e.data.startsWith("errors.")){let i=y(e.data);if(i!==R("error.unknown"))return i}if(e.errors&&Object.keys(e.errors).length>0){let i=Object.keys(e.errors);if(i.length===1&&i[0]==="_transaction"){let s=e.errors._transaction;if(_optionalChain([s, 'optionalAccess', _26 => _26.includes, 'call', _27 => _27("ONE_OR_MORE_OPERATIONS_FAILED")]))return"";if(Array.isArray(s)&&s.length>0){let r=s[0];if(typeof r=="string"&&r!=="ONE_OR_MORE_OPERATIONS_FAILED")try{let t=JSON.parse(r);if(Array.isArray(t)&&t.length>0){let n=t[0];if(_optionalChain([n, 'optionalAccess', _28 => _28.response, 'optionalAccess', _29 => _29.errorCode])){let a=n.response.errorCode;if(M[a])return y(M[a]);let O=[`errors.auth.${a}`,`errors.data.${a}`,`errors.system.${a}`,`errors.${a}`];for(let L of O){let x=y(L);if(x!==y("error.unknown"))return x}}if(_optionalChain([n, 'optionalAccess', _30 => _30.response, 'optionalAccess', _31 => _31.data]))return n.response.data}if(_optionalChain([t, 'optionalAccess', _32 => _32.response, 'optionalAccess', _33 => _33.message])){let n=t.response.message.toLowerCase();return n.includes("expired")?y("resetPassword.linkExpired","El enlace ha expirado"):n.includes("invalid")?y("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):t.response.message}}catch (e4){return r.toLowerCase().includes("expired")?y("resetPassword.linkExpired","El enlace ha expirado"):r.toLowerCase().includes("invalid")?y("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):r}}return y("error.transaction","Error en la operaci\xF3n")}if(i.length===1&&i[0]==="_error"){let s=e.errors._error;return Array.isArray(s)?s[0]:String(s)}return i.length===1&&i[0]==="_graphql"?y("errors.system.DATABASE_CONNECTION_ERROR"):`${y("errors.data.FIELD_ERROR")}: ${i.join(", ")}`}return I||R("error.unknown")},[T,I,R,y]),o=_react.useCallback.call(void 0, e=>e.errorCode&&Y[e.errorCode]?Y[e.errorCode]:"error",[]),g=_react.useCallback.call(void 0, async(e,i,s)=>{let r=await _crudifybrowser2.default.createItem(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}else if(r.success){let t=_optionalChain([s, 'optionalAccess', _34 => _34.actionConfig]),n=_optionalChain([t, 'optionalAccess', _35 => _35.key])||"create",a=_optionalChain([t, 'optionalAccess', _36 => _36.moduleKey])||e;if(C(n,a)){let O=E(n,a,t);c(O,"success",{autoHideDuration:u})}}return r},[m,C,c,l,o,E,u,d]),f=_react.useCallback.call(void 0, async(e,i,s)=>{let r=await _crudifybrowser2.default.updateItem(e,i,s),t=_optionalChain([s, 'optionalAccess', _37 => _37.skipNotifications])===!0;if(!t&&!r.success&&m&&d(r)){let n=l(r),a=o(r);c(n,a,{autoHideDuration:u})}else if(!t&&r.success){let n=_optionalChain([s, 'optionalAccess', _38 => _38.actionConfig]),a=_optionalChain([n, 'optionalAccess', _39 => _39.key])||"update",O=_optionalChain([n, 'optionalAccess', _40 => _40.moduleKey])||e;if(C(a,O)){let L=E(a,O,n);c(L,"success",{autoHideDuration:u})}}return r},[m,C,c,l,o,E,u,d]),F=_react.useCallback.call(void 0, async(e,i,s)=>{let r=await _crudifybrowser2.default.deleteItem(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}else if(r.success){let t=_optionalChain([s, 'optionalAccess', _41 => _41.actionConfig]),n=_optionalChain([t, 'optionalAccess', _42 => _42.key])||"delete",a=_optionalChain([t, 'optionalAccess', _43 => _43.moduleKey])||e;if(C(n,a)){let O=E(n,a,t);c(O,"success",{autoHideDuration:u})}}return r},[m,C,c,l,o,E,u,d]),P=_react.useCallback.call(void 0, async(e,i,s)=>{let r=await _crudifybrowser2.default.readItem(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[m,c,l,o,u,d]),D=_react.useCallback.call(void 0, async(e,i,s)=>{let r=await _crudifybrowser2.default.readItems(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[m,c,l,o,u,d]),q=_react.useCallback.call(void 0, async(e,i)=>{let s=await _crudifybrowser2.default.transaction(e,i),r=_optionalChain([i, 'optionalAccess', _44 => _44.skipNotifications])===!0;if(!r&&!s.success&&m&&d(s)){let t=l(s),n=o(s);c(t,n,{autoHideDuration:u})}else if(!r&&s.success){let t="transaction",n,a=null;if(_optionalChain([i, 'optionalAccess', _45 => _45.actionConfig])?(a=i.actionConfig,t=a.key,n=a.moduleKey):Array.isArray(e)&&e.length>0&&e[0].operation&&(t=e[0].operation,a=p.find(O=>O.key===t),a&&(n=a.moduleKey)),C(t,n)){let O=E(t,n,a);c(O,"success",{autoHideDuration:u})}}return s},[m,C,c,l,o,E,u,d,p]),h=_react.useCallback.call(void 0, (e,i)=>{if(!e.success&&m&&d(e)){let s=l(e),r=o(e);c(s,r,{autoHideDuration:u})}else e.success&&N&&i&&c(i,"success",{autoHideDuration:u});return e},[m,N,c,l,o,u,d,R]);return{createItem:g,updateItem:f,deleteItem:F,readItem:P,readItems:D,transaction:q,handleResponse:h,getErrorMessage:l,getErrorSeverity:o,shouldShowNotification:d}};exports.a = J; exports.b = te; exports.c = ae; exports.d = de;
@@ -1 +0,0 @@
1
- import{a as o}from"./chunk-SUWV767V.mjs";import a from"crypto-js";var c=class{constructor(t="sessionStorage"){this.encryptionKey=this.generateEncryptionKey(),this.storage=t==="localStorage"?window.localStorage:window.sessionStorage}generateEncryptionKey(){let t=[navigator.userAgent,navigator.language,new Date().getTimezoneOffset(),screen.colorDepth,screen.width,screen.height,"crudify-login"].join("|");return a.SHA256(t).toString()}setItem(t,e,n){try{let r=a.AES.encrypt(e,this.encryptionKey).toString();if(this.storage.setItem(t,r),n){let s=new Date().getTime()+n*60*1e3;this.storage.setItem(`${t}_expiry`,s.toString())}}catch(r){o.error("Failed to encrypt and store data",r instanceof Error?r:{message:String(r)})}}getItem(t){try{let e=`${t}_expiry`,n=this.storage.getItem(e);if(n){let g=parseInt(n,10);if(new Date().getTime()>g)return this.removeItem(t),null}let r=this.storage.getItem(t);if(!r)return null;let i=a.AES.decrypt(r,this.encryptionKey).toString(a.enc.Utf8);return i||(o.warn("Failed to decrypt stored data - may be corrupted"),this.removeItem(t),null)}catch(e){return o.error("Failed to decrypt data",e instanceof Error?e:{message:String(e)}),this.removeItem(t),null}}removeItem(t){this.storage.removeItem(t),this.storage.removeItem(`${t}_expiry`)}setToken(t){try{let e=t.split(".");if(e.length===3){let n=JSON.parse(atob(e[1]));if(n.exp){let r=n.exp*1e3,s=new Date().getTime(),i=Math.floor((r-s)/(60*1e3));if(i>0){this.setItem("authToken",t,i);return}}}}catch{o.warn("Failed to parse token expiry, using default expiry")}this.setItem("authToken",t,1440)}getToken(){let t=this.getItem("authToken");if(t)try{let e=t.split(".");if(e.length===3){let n=JSON.parse(atob(e[1]));if(n.exp){let r=Math.floor(Date.now()/1e3);if(n.exp<r)return this.removeItem("authToken"),null}}}catch{return o.warn("Failed to validate token expiry"),this.removeItem("authToken"),null}return t}},y=new c("sessionStorage"),h=new c("localStorage");export{y as a,h as b};
@@ -1 +0,0 @@
1
- import{h as $,j as U}from"./chunk-AD5AA75O.mjs";import{a as V}from"./chunk-SUWV767V.mjs";import{useState as K,useEffect as z,useCallback as j,useRef as v}from"react";import Q from"@nocios/crudify-browser";var J=(S={})=>{let{autoFetch:c=!0,retryOnError:N=!1,maxRetries:m=3}=S,{isAuthenticated:T,isInitialized:I,sessionData:u,tokens:p}=U(),[R,d]=K(null),[y,A]=K(c&&T),[C,E]=K(null),l=v(null),o=v(!0),g=v(0),f=v(0),F=j(()=>{if(!u)return null;let h=u["cognito:username"];return u.email||(typeof h=="string"?h:null)},[u]),P=j(()=>{d(null),E(null),A(!1),f.current=0},[]),D=j(async()=>{let h=F();if(!h){o.current&&(E("No user email available from session data"),A(!1));return}if(!I){o.current&&(E("Session not initialized"),A(!1));return}l.current&&l.current.abort();let e=new AbortController;l.current=e;let i=++g.current;try{o.current&&(A(!0),E(null));let s=await Q.readItems("users",{filter:{email:h},pagination:{limit:1}});if(i===g.current&&o.current&&!e.signal.aborted){let r=null;if(s.success){let t=s.data;if(Array.isArray(t)&&t.length>0)r=t[0];else if(t&&typeof t=="object"&&!Array.isArray(t)&&t.response?.data)try{let n=t.response.data,a=typeof n=="string"?JSON.parse(n):n;a&&a.items&&Array.isArray(a.items)&&a.items.length>0&&(r=a.items[0])}catch{}else t&&typeof t=="object"&&!Array.isArray(t)&&t.items&&Array.isArray(t.items)&&t.items.length>0&&(r=t.items[0]);if(!r&&t&&typeof t=="object"&&!Array.isArray(t)&&t.data?.response?.data)try{let n=t.data.response.data,a=typeof n=="string"?JSON.parse(n):n;a&&a.items&&Array.isArray(a.items)&&a.items.length>0&&(r=a.items[0])}catch{}}r?(d(r),E(null),f.current=0):(E("User profile not found in database"),d(null))}}catch(s){if(i===g.current&&o.current){let r=s;if(r.name==="AbortError")return;N&&f.current<m&&(r.message?.includes("Network Error")||r.message?.includes("Failed to fetch"))?(f.current++,setTimeout(()=>{o.current&&D()},1e3*f.current)):(E("Failed to load user profile from database"),d(null))}}finally{i===g.current&&o.current&&A(!1),l.current===e&&(l.current=null)}},[I,F,N,m]);return z(()=>{c&&T&&I?D():T||P()},[c,T,I,D,P]),z(()=>(o.current=!0,()=>{o.current=!1,l.current&&(l.current.abort(),l.current=null)}),[]),{user:{session:u,data:R},loading:y,error:C,refreshProfile:D,clearProfile:P}};import{useCallback as W}from"react";var te=()=>{let{isAuthenticated:S,isLoading:c,isInitialized:N,tokens:m,error:T,sessionData:I,login:u,logout:p,refreshTokens:R,clearError:d,getTokenInfo:y,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E}=U(),l=W(g=>{g?V.warn("useAuth.setToken() is deprecated. Use login() method instead for better security."):p()},[p]),o=m?.expiresAt?new Date(m.expiresAt):null;return{isAuthenticated:S,loading:c,error:T,token:m?.accessToken||null,user:I,tokenExpiration:o,setToken:l,logout:p,refreshToken:R,login:u,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E,getTokenInfo:y,clearError:d}};import{useCallback as w}from"react";import b from"@nocios/crudify-browser";var ae=()=>{let{isInitialized:S,isLoading:c,error:N,isAuthenticated:m,login:T}=U(),I=w(()=>S&&!c&&!N,[S,c,N]),u=w(async()=>new Promise((o,g)=>{let f=()=>{I()?o():N?g(new Error(N)):setTimeout(f,100)};f()}),[I,N]),p=w(async()=>{if(!I())throw new Error("System not ready. Check isInitialized, isLoading, and error states.")},[I]),R=w(async(o,g,f)=>(await p(),await b.readItems(o,g||{},f)),[p]),d=w(async(o,g,f)=>(await p(),await b.readItem(o,g,f)),[p]),y=w(async(o,g,f)=>(await p(),await b.createItem(o,g,f)),[p]),A=w(async(o,g,f)=>(await p(),await b.updateItem(o,g,f)),[p]),C=w(async(o,g,f)=>(await p(),await b.deleteItem(o,g,f)),[p]),E=w(async(o,g)=>(await p(),await b.transaction(o,g)),[p]),l=w(async(o,g)=>{try{let f=await T(o,g);return f.success?{success:!0,data:f.tokens}:{success:!1,errors:f.error||"Login failed"}}catch(f){return{success:!1,errors:f instanceof Error?f.message:"Login failed"}}},[T]);return{readItems:R,readItem:d,createItem:y,updateItem:A,deleteItem:C,transaction:E,login:l,isInitialized:S,isInitializing:c,initializationError:N,isReady:I,waitForReady:u}};import{useCallback as _}from"react";import k from"@nocios/crudify-browser";var Y={INVALID_CREDENTIALS:"warning",UNAUTHORIZED:"warning",INVALID_API_KEY:"error",USER_NOT_FOUND:"warning",USER_NOT_ACTIVE:"warning",NO_PERMISSION:"warning",ITEM_NOT_FOUND:"info",NOT_FOUND:"info",IN_USE:"warning",FIELD_ERROR:"warning",BAD_REQUEST:"warning",INTERNAL_SERVER_ERROR:"error",DATABASE_CONNECTION_ERROR:"error",INVALID_CONFIGURATION:"error",UNKNOWN_OPERATION:"error",TOO_MANY_REQUESTS:"warning"},M={INVALID_CREDENTIALS:"errors.auth.INVALID_CREDENTIALS",UNAUTHORIZED:"errors.auth.UNAUTHORIZED",INVALID_API_KEY:"errors.auth.INVALID_API_KEY",USER_NOT_FOUND:"errors.auth.USER_NOT_FOUND",USER_NOT_ACTIVE:"errors.auth.USER_NOT_ACTIVE",NO_PERMISSION:"errors.auth.NO_PERMISSION",ITEM_NOT_FOUND:"errors.data.ITEM_NOT_FOUND",NOT_FOUND:"errors.data.NOT_FOUND",IN_USE:"errors.data.IN_USE",FIELD_ERROR:"errors.data.FIELD_ERROR",BAD_REQUEST:"errors.data.BAD_REQUEST",INTERNAL_SERVER_ERROR:"errors.system.INTERNAL_SERVER_ERROR",DATABASE_CONNECTION_ERROR:"errors.system.DATABASE_CONNECTION_ERROR",INVALID_CONFIGURATION:"errors.system.INVALID_CONFIGURATION",UNKNOWN_OPERATION:"errors.system.UNKNOWN_OPERATION",TOO_MANY_REQUESTS:"errors.system.TOO_MANY_REQUESTS"},de=(S={})=>{let{showNotification:c}=$(),{showSuccessNotifications:N=!1,showErrorNotifications:m=!0,customErrorMessages:T={},defaultErrorMessage:I="Ha ocurrido un error inesperado",autoHideDuration:u=6e3,appStructure:p=[],translateFn:R=e=>e}=S,d=_(e=>{if(!e.success&&e.errors&&(Object.keys(e.errors).some(r=>r!=="_error"&&r!=="_graphql"&&r!=="_transaction")||e.errors._transaction?.includes("ONE_OR_MORE_OPERATIONS_FAILED")||e.errors._error?.includes("TOO_MANY_REQUESTS")))return!1;let i=e.data;return!(!e.success&&i?.response?.status==="TOO_MANY_REQUESTS")},[]),y=_((e,i)=>{let s=R(e);return s===e?i||R("error.unknown"):s},[R]),A=_(e=>["create","update","delete"].includes(e),[]),C=_((e,i)=>N?A(e)&&i?!0:p.some(s=>s.key===e):!1,[N,p,A]),E=_((e,i,s)=>{let r=s?.key&&typeof s.key=="string"?s.key:e,t=`action.onSuccess.${r}`,n=y(t);if(n!==R("error.unknown")){if(A(r)&&i){let a=`action.${i}Singular`,O=y(a);if(O!==R("error.unknown"))return R(t,{item:O});{let L=`action.onSuccess.${r}WithoutItem`,x=y(L);return x!==R("error.unknown")?x:n}}return n}return R("base.success.transaction")},[y,R,A]),l=_(e=>{if(e.errorCode&&T[e.errorCode])return T[e.errorCode];if(e.errorCode&&M[e.errorCode])return y(M[e.errorCode]);if(e.errorCode){let i=[`errors.auth.${e.errorCode}`,`errors.data.${e.errorCode}`,`errors.system.${e.errorCode}`,`errors.${e.errorCode}`];for(let s of i){let r=y(s);if(r!==R("error.unknown"))return r}}if(typeof e.data=="string"&&e.data.startsWith("errors.")){let i=y(e.data);if(i!==R("error.unknown"))return i}if(e.errors&&Object.keys(e.errors).length>0){let i=Object.keys(e.errors);if(i.length===1&&i[0]==="_transaction"){let s=e.errors._transaction;if(s?.includes("ONE_OR_MORE_OPERATIONS_FAILED"))return"";if(Array.isArray(s)&&s.length>0){let r=s[0];if(typeof r=="string"&&r!=="ONE_OR_MORE_OPERATIONS_FAILED")try{let t=JSON.parse(r);if(Array.isArray(t)&&t.length>0){let n=t[0];if(n?.response?.errorCode){let a=n.response.errorCode;if(M[a])return y(M[a]);let O=[`errors.auth.${a}`,`errors.data.${a}`,`errors.system.${a}`,`errors.${a}`];for(let L of O){let x=y(L);if(x!==y("error.unknown"))return x}}if(n?.response?.data)return n.response.data}if(t?.response?.message){let n=t.response.message.toLowerCase();return n.includes("expired")?y("resetPassword.linkExpired","El enlace ha expirado"):n.includes("invalid")?y("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):t.response.message}}catch{return r.toLowerCase().includes("expired")?y("resetPassword.linkExpired","El enlace ha expirado"):r.toLowerCase().includes("invalid")?y("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):r}}return y("error.transaction","Error en la operaci\xF3n")}if(i.length===1&&i[0]==="_error"){let s=e.errors._error;return Array.isArray(s)?s[0]:String(s)}return i.length===1&&i[0]==="_graphql"?y("errors.system.DATABASE_CONNECTION_ERROR"):`${y("errors.data.FIELD_ERROR")}: ${i.join(", ")}`}return I||R("error.unknown")},[T,I,R,y]),o=_(e=>e.errorCode&&Y[e.errorCode]?Y[e.errorCode]:"error",[]),g=_(async(e,i,s)=>{let r=await k.createItem(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}else if(r.success){let t=s?.actionConfig,n=t?.key||"create",a=t?.moduleKey||e;if(C(n,a)){let O=E(n,a,t);c(O,"success",{autoHideDuration:u})}}return r},[m,C,c,l,o,E,u,d]),f=_(async(e,i,s)=>{let r=await k.updateItem(e,i,s),t=s?.skipNotifications===!0;if(!t&&!r.success&&m&&d(r)){let n=l(r),a=o(r);c(n,a,{autoHideDuration:u})}else if(!t&&r.success){let n=s?.actionConfig,a=n?.key||"update",O=n?.moduleKey||e;if(C(a,O)){let L=E(a,O,n);c(L,"success",{autoHideDuration:u})}}return r},[m,C,c,l,o,E,u,d]),F=_(async(e,i,s)=>{let r=await k.deleteItem(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}else if(r.success){let t=s?.actionConfig,n=t?.key||"delete",a=t?.moduleKey||e;if(C(n,a)){let O=E(n,a,t);c(O,"success",{autoHideDuration:u})}}return r},[m,C,c,l,o,E,u,d]),P=_(async(e,i,s)=>{let r=await k.readItem(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[m,c,l,o,u,d]),D=_(async(e,i,s)=>{let r=await k.readItems(e,i,s);if(!r.success&&m&&d(r)){let t=l(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[m,c,l,o,u,d]),q=_(async(e,i)=>{let s=await k.transaction(e,i),r=i?.skipNotifications===!0;if(!r&&!s.success&&m&&d(s)){let t=l(s),n=o(s);c(t,n,{autoHideDuration:u})}else if(!r&&s.success){let t="transaction",n,a=null;if(i?.actionConfig?(a=i.actionConfig,t=a.key,n=a.moduleKey):Array.isArray(e)&&e.length>0&&e[0].operation&&(t=e[0].operation,a=p.find(O=>O.key===t),a&&(n=a.moduleKey)),C(t,n)){let O=E(t,n,a);c(O,"success",{autoHideDuration:u})}}return s},[m,C,c,l,o,E,u,d,p]),h=_((e,i)=>{if(!e.success&&m&&d(e)){let s=l(e),r=o(e);c(s,r,{autoHideDuration:u})}else e.success&&N&&i&&c(i,"success",{autoHideDuration:u});return e},[m,N,c,l,o,u,d,R]);return{createItem:g,updateItem:f,deleteItem:F,readItem:P,readItems:D,transaction:q,handleResponse:h,getErrorMessage:l,getErrorSeverity:o,shouldShowNotification:d}};export{J as a,te as b,ae as c,de as d};