@nocios/crudify-ui 5.0.4 → 5.0.8
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.
- package/coverage/.tmp/coverage-43.json +1 -0
- package/coverage/.tmp/coverage-44.json +1 -0
- package/coverage/.tmp/coverage-45.json +1 -0
- package/coverage/.tmp/coverage-46.json +1 -0
- package/coverage/.tmp/coverage-47.json +1 -0
- package/coverage/.tmp/coverage-48.json +1 -0
- package/coverage/.tmp/coverage-49.json +1 -0
- package/coverage/.tmp/coverage-50.json +1 -0
- package/coverage/.tmp/coverage-51.json +1 -0
- package/coverage/.tmp/coverage-52.json +1 -0
- package/coverage/.tmp/coverage-53.json +1 -0
- package/coverage/.tmp/coverage-54.json +1 -0
- package/coverage/.tmp/coverage-55.json +1 -0
- package/coverage/.tmp/coverage-56.json +1 -0
- package/coverage/.tmp/coverage-57.json +1 -0
- package/coverage/.tmp/coverage-58.json +1 -0
- package/coverage/.tmp/coverage-59.json +1 -0
- package/coverage/.tmp/coverage-60.json +1 -0
- package/coverage/.tmp/coverage-61.json +1 -0
- package/coverage/.tmp/coverage-62.json +1 -0
- package/coverage/.tmp/coverage-63.json +1 -0
- package/coverage/.tmp/coverage-64.json +1 -0
- package/coverage/.tmp/coverage-65.json +1 -0
- package/coverage/.tmp/coverage-66.json +1 -0
- package/coverage/.tmp/coverage-67.json +1 -0
- package/coverage/.tmp/coverage-68.json +1 -0
- package/coverage/.tmp/coverage-69.json +1 -0
- package/coverage/.tmp/coverage-70.json +1 -0
- package/coverage/.tmp/coverage-71.json +1 -0
- package/coverage/.tmp/coverage-72.json +1 -0
- package/coverage/.tmp/coverage-73.json +1 -0
- package/coverage/.tmp/coverage-74.json +1 -0
- package/coverage/.tmp/coverage-75.json +1 -0
- package/coverage/.tmp/coverage-76.json +1 -0
- package/coverage/.tmp/coverage-77.json +1 -0
- package/coverage/.tmp/coverage-78.json +1 -0
- package/coverage/.tmp/coverage-79.json +1 -0
- package/coverage/.tmp/coverage-80.json +1 -0
- package/dist/{chunk-KQ2XC5PN.js → chunk-5HFI5CZ5.js} +1 -1
- package/dist/{chunk-QPTL5FLE.mjs → chunk-CD5FO5NU.mjs} +1 -1
- package/dist/chunk-IPPEJGA5.js +1 -0
- package/dist/{chunk-OGAGYHG4.mjs → chunk-JNEWPO2J.mjs} +1 -1
- package/dist/{chunk-NXTXGTU6.js → chunk-MFYHD6S5.js} +1 -1
- package/dist/{chunk-6BQGRZYB.mjs → chunk-MGJZTOEM.mjs} +1 -1
- package/dist/chunk-MJ54YL3L.js +1 -0
- package/dist/chunk-NAAVTL3K.mjs +1 -0
- package/dist/{chunk-LVSNJ4OM.js → chunk-RTQI3L4W.js} +1 -1
- package/dist/chunk-V2CLPSI4.mjs +1 -0
- package/dist/components.js +1 -1
- package/dist/components.mjs +1 -1
- package/dist/hooks.d.mts +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +1 -1
- package/dist/hooks.mjs +1 -1
- package/dist/{index-B--DrAu9.d.ts → index-Dp5wNqtm.d.ts} +3 -0
- package/dist/{index-CErRRwM0.d.mts → index-SS8n9MbX.d.mts} +3 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/utils.d.mts +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +1 -1
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/coverage-final.json +0 -69
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -431
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/dist/chunk-3XZ3TEKQ.js +0 -1
- package/dist/chunk-5VOTRIDB.js +0 -1
- package/dist/chunk-NSA6YDHY.mjs +0 -1
- package/dist/chunk-PARX2RMU.mjs +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":735,"endOffset":846,"count":28}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":881,"endOffset":1121,"count":28}],"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2610","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/services/crudifyAdminWrapper.test.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":50477,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":50477,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":339,"endOffset":932,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":965,"endOffset":1069,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1109,"endOffset":1468,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1161,"endOffset":1460,"count":0}],"isBlockCoverage":false},{"functionName":"","ranges":[{"startOffset":1517,"endOffset":1740,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2122,"endOffset":16391,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2169,"endOffset":2606,"count":28}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2638,"endOffset":6221,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2690,"endOffset":3104,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3149,"endOffset":3510,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3558,"endOffset":3997,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4043,"endOffset":4488,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4536,"endOffset":4882,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4932,"endOffset":5322,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5374,"endOffset":5771,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5824,"endOffset":6215,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6253,"endOffset":11904,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6305,"endOffset":6661,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6711,"endOffset":7069,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7114,"endOffset":7490,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":7538,"endOffset":7987,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8033,"endOffset":8476,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8524,"endOffset":8880,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":8930,"endOffset":9335,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9387,"endOffset":9799,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":9852,"endOffset":10253,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10308,"endOffset":10718,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":10775,"endOffset":11291,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11347,"endOffset":11898,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11936,"endOffset":12582,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":11996,"endOffset":12268,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12316,"endOffset":12576,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12614,"endOffset":14007,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":12685,"endOffset":12957,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13012,"endOffset":13488,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13548,"endOffset":14001,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14042,"endOffset":16387,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14107,"endOffset":14949,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":14995,"endOffset":15532,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":15599,"endOffset":16381,"count":1}],"isBlockCoverage":true}]},{"scriptId":"2611","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/services/crudifyAdminWrapper.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":22036,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":22036,"count":1}],"isBlockCoverage":true},{"functionName":"waitForCredentials","ranges":[{"startOffset":843,"endOffset":1245,"count":1},{"startOffset":1170,"endOffset":1244,"count":0}],"isBlockCoverage":true},{"functionName":"ensureInitialized","ranges":[{"startOffset":1246,"endOffset":2321,"count":28},{"startOffset":1304,"endOffset":1321,"count":27},{"startOffset":1321,"endOffset":1351,"count":1},{"startOffset":1351,"endOffset":1390,"count":0},{"startOffset":1390,"endOffset":2320,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":1418,"endOffset":2283,"count":1},{"startOffset":1709,"endOffset":1716,"count":0},{"startOffset":2053,"endOffset":2279,"count":0}],"isBlockCoverage":true},{"functionName":"getAdditionalHeaders","ranges":[{"startOffset":1828,"endOffset":2008,"count":0}],"isBlockCoverage":false},{"functionName":"executeWithAuth","ranges":[{"startOffset":2322,"endOffset":3740,"count":28},{"startOffset":2591,"endOffset":2604,"count":27},{"startOffset":2605,"endOffset":2612,"count":1},{"startOffset":2653,"endOffset":2700,"count":26},{"startOffset":2700,"endOffset":2884,"count":3},{"startOffset":2740,"endOffset":2774,"count":2},{"startOffset":2775,"endOffset":2883,"count":1},{"startOffset":2912,"endOffset":2932,"count":3},{"startOffset":2934,"endOffset":3445,"count":3},{"startOffset":3019,"endOffset":3218,"count":2},{"startOffset":3168,"endOffset":3175,"count":0},{"startOffset":3218,"endOffset":3439,"count":1},{"startOffset":3445,"endOffset":3471,"count":23},{"startOffset":3471,"endOffset":3738,"count":2},{"startOffset":3583,"endOffset":3590,"count":1},{"startOffset":3591,"endOffset":3619,"count":1},{"startOffset":3694,"endOffset":3709,"count":1},{"startOffset":3710,"endOffset":3727,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":2833,"endOffset":2882,"count":1}],"isBlockCoverage":true},{"functionName":"listModules","ranges":[{"startOffset":3841,"endOffset":3931,"count":8}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3876,"endOffset":3925,"count":9}],"isBlockCoverage":true},{"functionName":"getModule","ranges":[{"startOffset":3946,"endOffset":4052,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":3990,"endOffset":4046,"count":1}],"isBlockCoverage":true},{"functionName":"createModule","ranges":[{"startOffset":4070,"endOffset":4181,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4115,"endOffset":4175,"count":1}],"isBlockCoverage":true},{"functionName":"editModule","ranges":[{"startOffset":4197,"endOffset":4328,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4253,"endOffset":4322,"count":1}],"isBlockCoverage":true},{"functionName":"deleteModule","ranges":[{"startOffset":4346,"endOffset":4455,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4390,"endOffset":4449,"count":1}],"isBlockCoverage":true},{"functionName":"activateModule","ranges":[{"startOffset":4475,"endOffset":4586,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4519,"endOffset":4580,"count":1}],"isBlockCoverage":true},{"functionName":"deactivateModule","ranges":[{"startOffset":4608,"endOffset":4721,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4652,"endOffset":4715,"count":1}],"isBlockCoverage":true},{"functionName":"getModuleVersions","ranges":[{"startOffset":4744,"endOffset":4858,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4788,"endOffset":4852,"count":1}],"isBlockCoverage":true},{"functionName":"listActions","ranges":[{"startOffset":4937,"endOffset":5041,"count":3}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":4979,"endOffset":5035,"count":4}],"isBlockCoverage":true},{"functionName":"getAction","ranges":[{"startOffset":5056,"endOffset":5162,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5100,"endOffset":5156,"count":1}],"isBlockCoverage":true},{"functionName":"createAction","ranges":[{"startOffset":5180,"endOffset":5291,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5225,"endOffset":5285,"count":1}],"isBlockCoverage":true},{"functionName":"editAction","ranges":[{"startOffset":5307,"endOffset":5438,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5363,"endOffset":5432,"count":1}],"isBlockCoverage":true},{"functionName":"deleteAction","ranges":[{"startOffset":5456,"endOffset":5565,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5500,"endOffset":5559,"count":1}],"isBlockCoverage":true},{"functionName":"activateAction","ranges":[{"startOffset":5585,"endOffset":5696,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5629,"endOffset":5690,"count":1}],"isBlockCoverage":true},{"functionName":"deactivateAction","ranges":[{"startOffset":5718,"endOffset":5831,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5762,"endOffset":5825,"count":1}],"isBlockCoverage":true},{"functionName":"getActionVersions","ranges":[{"startOffset":5854,"endOffset":5968,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":5898,"endOffset":5962,"count":1}],"isBlockCoverage":true},{"functionName":"getActionsByProfile","ranges":[{"startOffset":5993,"endOffset":6109,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6037,"endOffset":6103,"count":1}],"isBlockCoverage":true},{"functionName":"updateActionsProfiles","ranges":[{"startOffset":6136,"endOffset":6244,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6175,"endOffset":6238,"count":1}],"isBlockCoverage":true},{"functionName":"calculatePermissions","ranges":[{"startOffset":6270,"endOffset":6377,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":6309,"endOffset":6371,"count":1}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":6481,"endOffset":6509,"count":28}],"isBlockCoverage":true}]}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2036","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20825,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20825,"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":5157,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5234,"endOffset":5302,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5428,"endOffset":5450,"count":18}],"isBlockCoverage":true}]},{"scriptId":"2450","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/authEventBus.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":8728,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":8728,"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":"2612","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}]}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2613","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":"2614","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}]}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2036","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20825,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20825,"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":5157,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5234,"endOffset":5302,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5428,"endOffset":5450,"count":13}],"isBlockCoverage":true}]},{"scriptId":"2449","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/errorTranslation.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":22346,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":22346,"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":"2615","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}]}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2036","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20825,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20825,"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":5157,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5234,"endOffset":5302,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5428,"endOffset":5450,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2616","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":"2617","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}]}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2035","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":"2036","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/utils/logger.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":20825,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":20825,"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":5157,"count":0}],"isBlockCoverage":true},{"functionName":"isExplicitlyConfigured","ranges":[{"startOffset":5234,"endOffset":5302,"count":0}],"isBlockCoverage":true},{"functionName":"get","ranges":[{"startOffset":5428,"endOffset":5450,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2618","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}]}]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"result":[{"scriptId":"1245","url":"file:///Users/yamildiego/Projects/current/nocios/CRUDIFY/process/npm-crudify-ui/src/__tests__/setup.ts","functions":[{"functionName":"","ranges":[{"startOffset":0,"endOffset":11746,"count":1}],"isBlockCoverage":true},{"functionName":"","ranges":[{"startOffset":13,"endOffset":11746,"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":"digest","ranges":[{"startOffset":1864,"endOffset":2087,"count":0}],"isBlockCoverage":true},{"functionName":"importKey","ranges":[{"startOffset":2138,"endOffset":2241,"count":0}],"isBlockCoverage":true},{"functionName":"deriveKey","ranges":[{"startOffset":2285,"endOffset":2396,"count":0}],"isBlockCoverage":true},{"functionName":"encrypt","ranges":[{"startOffset":2474,"endOffset":2712,"count":0}],"isBlockCoverage":true},{"functionName":"decrypt","ranges":[{"startOffset":2767,"endOffset":3005,"count":0}],"isBlockCoverage":true},{"functionName":"randomUUID","ranges":[{"startOffset":3082,"endOffset":3146,"count":0}],"isBlockCoverage":false},{"functionName":"getRandomValues","ranges":[{"startOffset":3169,"endOffset":3306,"count":0}],"isBlockCoverage":true}]},{"scriptId":"2038","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":"2619","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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMFYHD6S5js = require('./chunk-MFYHD6S5.js');var c="crudify_login_storage_version",d=2,g="crudify_login_encryption_salt",a=class{constructor(t="sessionStorage"){this.encryptionKey=null;this.salt=null;this.initPromise=null;this.initialized=!1;this.storage=t==="localStorage"?window.localStorage:window.sessionStorage}async ensureInitialized(){if(!(this.initialized&&this.encryptionKey)){if(this.initPromise){await this.initPromise;return}this.initPromise=this.initialize(),await this.initPromise}}async initialize(){try{parseInt(this.storage.getItem(c)||"1")<d&&(this.clearLegacyData(),this.storage.setItem(c,d.toString()));let e=this.storage.getItem(g);e&&_chunkMFYHD6S5js.k.call(void 0, `v2:x:${e}:x`)?this.salt=this.base64ToUint8Array(e):(this.salt=_chunkMFYHD6S5js.j.call(void 0, ),this.storage.setItem(g,this.uint8ArrayToBase64(this.salt)));let i=await this.generateFingerprint();this.encryptionKey=await _chunkMFYHD6S5js.g.call(void 0, i,this.salt),this.initialized=!0}catch(t){_chunkMFYHD6S5js.a.error("SecureStorage initialization failed",t instanceof Error?t:{message:String(t)}),this.initialized=!1}}async generateFingerprint(){let t=[navigator.userAgent,navigator.language,new Date().getTimezoneOffset().toString(),screen.colorDepth.toString(),screen.width.toString(),screen.height.toString(),"crudify-login"].join("|");return _chunkMFYHD6S5js.f.call(void 0, t)}clearLegacyData(){let t=[];for(let e=0;e<this.storage.length;e++){let i=this.storage.key(e);i&&!i.startsWith(c)&&!i.startsWith(g)&&t.push(i)}t.forEach(e=>this.storage.removeItem(e))}async setItem(t,e,i){try{if(await this.ensureInitialized(),!this.encryptionKey||!this.salt){_chunkMFYHD6S5js.a.error("SecureStorage not properly initialized");return}let r=await _chunkMFYHD6S5js.h.call(void 0, e,this.encryptionKey,this.salt);if(this.storage.setItem(t,r),i){let o=Date.now()+i*60*1e3;this.storage.setItem(`${t}_expiry`,o.toString())}}catch(r){_chunkMFYHD6S5js.a.error("Failed to encrypt and store data",r instanceof Error?r:{message:String(r)})}}async getItem(t){try{await this.ensureInitialized();let e=`${t}_expiry`,i=this.storage.getItem(e);if(i){let f=parseInt(i,10);if(Date.now()>f)return this.removeItem(t),null}let r=this.storage.getItem(t);if(!r)return null;if(!_chunkMFYHD6S5js.k.call(void 0, r))return this.removeItem(t),null;let o=await this.generateFingerprint(),s=await _chunkMFYHD6S5js.i.call(void 0, r,o);return s||(_chunkMFYHD6S5js.a.warn("Failed to decrypt stored data - may be corrupted"),this.removeItem(t),null)}catch(e){return _chunkMFYHD6S5js.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`)}clear(){this.storage.clear()}async setToken(t){try{let e=t.split(".");if(e.length===3){let i=JSON.parse(atob(e[1]));if(i.exp){let r=i.exp*1e3,o=Date.now(),s=Math.floor((r-o)/(60*1e3));if(s>0){await this.setItem("authToken",t,s);return}}}}catch (e2){_chunkMFYHD6S5js.a.warn("Failed to parse token expiry, using default expiry")}await this.setItem("authToken",t,1440)}async getToken(){let t=await this.getItem("authToken");if(t)try{let e=t.split(".");if(e.length===3){let i=JSON.parse(atob(e[1]));if(i.exp){let r=Math.floor(Date.now()/1e3);if(i.exp<r)return this.removeItem("authToken"),null}}}catch (e3){return _chunkMFYHD6S5js.a.warn("Failed to validate token expiry"),this.removeItem("authToken"),null}return t}async hasValidToken(){return await this.getToken()!==null}async migrateFromLocalStorage(t){let e=window.localStorage.getItem(t);e&&(window.localStorage.removeItem(t),t==="authToken"?await this.setToken(e):await this.setItem(t,e))}uint8ArrayToBase64(t){let e="";for(let i=0;i<t.length;i++)e+=String.fromCharCode(t[i]);return btoa(e)}base64ToUint8Array(t){let e=atob(t),i=new Uint8Array(e.length);for(let r=0;r<e.length;r++)i[r]=e.charCodeAt(r);return i}},I= exports.a =new a("sessionStorage"),T= exports.b =new a("localStorage");exports.a = I; exports.b = T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as $,j as k}from"./chunk-PARX2RMU.mjs";import{a as V}from"./chunk-6BQGRZYB.mjs";import{useState as K,useEffect as z,useCallback as j,useRef as v}from"react";import Q from"@nocios/crudify-browser";var J=(w={})=>{let{autoFetch:c=!0,retryOnError:N=!1,maxRetries:g=3}=w,{isAuthenticated:T,isInitialized:I,sessionData:u,tokens:m}=k(),[R,d]=K(null),[p,A]=K(c&&T),[C,E]=K(null),f=v(null),o=v(!0),y=v(0),l=v(0),F=j(()=>{if(!u)return null;let h=u["cognito:username"];return u.email||(typeof h=="string"?h:null)},[u]),L=j(()=>{d(null),E(null),A(!1),l.current=0},[]),U=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}f.current&&f.current.abort();let e=new AbortController;f.current=e;let i=++y.current;try{o.current&&(A(!0),E(null));let s=await Q.readItems("users",{filter:{email:h},pagination:{limit:1}});if(i===y.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),l.current=0):(E("User profile not found in database"),d(null))}}catch(s){if(i===y.current&&o.current){let r=s;if(r.name==="AbortError")return;N&&l.current<g&&(r.message?.includes("Network Error")||r.message?.includes("Failed to fetch"))?(l.current++,setTimeout(()=>{o.current&&U()},1e3*l.current)):(E("Failed to load user profile from database"),d(null))}}finally{i===y.current&&o.current&&A(!1),f.current===e&&(f.current=null)}},[I,F,N,g]);return z(()=>{c&&T&&I?U():T||L()},[c,T,I,U,L]),z(()=>(o.current=!0,()=>{o.current=!1,f.current&&(f.current.abort(),f.current=null)}),[]),{user:{session:u,data:R},loading:p,error:C,refreshProfile:U,clearProfile:L}};import{useCallback as W}from"react";var te=()=>{let{isAuthenticated:w,isLoading:c,isInitialized:N,tokens:g,error:T,sessionData:I,login:u,logout:m,refreshTokens:R,clearError:d,getTokenInfo:p,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E}=k(),f=W(y=>{y?V.warn("useAuth.setToken() is deprecated. Use login() method instead for better security."):m()},[m]),o=g?.expiresAt?new Date(g.expiresAt):null;return{isAuthenticated:w,loading:c,error:T,token:g?.accessToken||null,user:I,tokenExpiration:o,setToken:f,logout:m,refreshToken:R,login:u,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E,getTokenInfo:p,clearError:d}};import{useCallback as S}from"react";import b from"@nocios/crudify-browser";var ae=()=>{let{isInitialized:w,isLoading:c,error:N,isAuthenticated:g,login:T}=k(),I=S(()=>w&&!c&&!N,[w,c,N]),u=S(async()=>new Promise((o,y)=>{let l=()=>{I()?o():N?y(new Error(N)):setTimeout(l,100)};l()}),[I,N]),m=S(async()=>{if(!I())throw new Error("System not ready. Check isInitialized, isLoading, and error states.")},[I]),R=S(async(o,y,l)=>(await m(),await b.readItems(o,y||{},l)),[m]),d=S(async(o,y,l)=>(await m(),await b.readItem(o,y,l)),[m]),p=S(async(o,y,l)=>(await m(),await b.createItem(o,y,l)),[m]),A=S(async(o,y,l)=>(await m(),await b.updateItem(o,y,l)),[m]),C=S(async(o,y,l)=>(await m(),await b.deleteItem(o,y,l)),[m]),E=S(async(o,y)=>(await m(),await b.transaction(o,y)),[m]),f=S(async(o,y)=>{try{let l=await T(o,y);return l.success?{success:!0,data:l.tokens}:{success:!1,errors:l.error||"Login failed"}}catch(l){return{success:!1,errors:l instanceof Error?l.message:"Login failed"}}},[T]);return{readItems:R,readItem:d,createItem:p,updateItem:A,deleteItem:C,transaction:E,login:f,isInitialized:w,isInitializing:c,initializationError:N,isReady:I,waitForReady:u}};import{useCallback as _}from"react";import P 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=(w={})=>{let{showNotification:c}=$(),{showSuccessNotifications:N=!1,showErrorNotifications:g=!0,customErrorMessages:T={},defaultErrorMessage:I="Ha ocurrido un error inesperado",autoHideDuration:u=6e3,appStructure:m=[],translateFn:R=e=>e}=w,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")},[]),p=_((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:m.some(s=>s.key===e):!1,[N,m,A]),E=_((e,i,s)=>{let r=s?.key&&typeof s.key=="string"?s.key:e,t=`action.onSuccess.${r}`,n=p(t);if(n!==R("error.unknown")){if(A(r)&&i){let a=`action.${i}Singular`,O=p(a);if(O!==R("error.unknown"))return R(t,{item:O});{let D=`action.onSuccess.${r}WithoutItem`,x=p(D);return x!==R("error.unknown")?x:n}}return n}return R("base.success.transaction")},[p,R,A]),f=_(e=>{if(e.errorCode&&T[e.errorCode])return T[e.errorCode];if(e.errorCode&&M[e.errorCode])return p(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=p(s);if(r!==R("error.unknown"))return r}}if(typeof e.data=="string"&&e.data.startsWith("errors.")){let i=p(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 p(M[a]);let O=[`errors.auth.${a}`,`errors.data.${a}`,`errors.system.${a}`,`errors.${a}`];for(let D of O){let x=p(D);if(x!==p("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")?p("resetPassword.linkExpired","El enlace ha expirado"):n.includes("invalid")?p("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):t.response.message}}catch{return r.toLowerCase().includes("expired")?p("resetPassword.linkExpired","El enlace ha expirado"):r.toLowerCase().includes("invalid")?p("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):r}}return p("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"?p("errors.system.DATABASE_CONNECTION_ERROR"):`${p("errors.data.FIELD_ERROR")}: ${i.join(", ")}`}return I||R("error.unknown")},[T,I,R,p]),o=_(e=>e.errorCode&&Y[e.errorCode]?Y[e.errorCode]:"error",[]),y=_(async(e,i,s)=>{let r=await P.createItem(e,i,s);if(!r.success&&g&&d(r)){let t=f(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},[g,C,c,f,o,E,u,d]),l=_(async(e,i,s)=>{let r=await P.updateItem(e,i,s),t=s?.skipNotifications===!0;if(!t&&!r.success&&g&&d(r)){let n=f(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 D=E(a,O,n);c(D,"success",{autoHideDuration:u})}}return r},[g,C,c,f,o,E,u,d]),F=_(async(e,i,s)=>{let r=await P.deleteItem(e,i,s);if(!r.success&&g&&d(r)){let t=f(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},[g,C,c,f,o,E,u,d]),L=_(async(e,i,s)=>{let r=await P.readItem(e,i,s);if(!r.success&&g&&d(r)){let t=f(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[g,c,f,o,u,d]),U=_(async(e,i,s)=>{let r=await P.readItems(e,i,s);if(!r.success&&g&&d(r)){let t=f(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[g,c,f,o,u,d]),q=_(async(e,i)=>{let s=await P.transaction(e,i),r=i?.skipNotifications===!0;if(!r&&!s.success&&g&&d(s)){let t=f(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;else if(Array.isArray(e)&&e.length>0&&"operation"in e[0]&&e[0].operation){t=e[0].operation;let O=m.find(D=>D.key===t);O&&(a=O,n=O.moduleKey)}if(C(t,n)){let O=E(t,n,a??void 0);c(O,"success",{autoHideDuration:u})}}return s},[g,C,c,f,o,E,u,d,m]),h=_((e,i)=>{if(!e.success&&g&&d(e)){let s=f(e),r=o(e);c(s,r,{autoHideDuration:u})}else e.success&&N&&i&&c(i,"success",{autoHideDuration:u});return e},[g,N,c,f,o,u,d,R]);return{createItem:y,updateItem:l,deleteItem:F,readItem:L,readItems:U,transaction:q,handleResponse:h,getErrorMessage:f,getErrorSeverity:o,shouldShowNotification:d}};export{J as a,te as b,ae as c,de as d};
|
|
1
|
+
import{e as $,j as k}from"./chunk-V2CLPSI4.mjs";import{a as V}from"./chunk-MGJZTOEM.mjs";import{useState as K,useEffect as z,useCallback as j,useRef as v}from"react";import Q from"@nocios/crudify-browser";var J=(w={})=>{let{autoFetch:c=!0,retryOnError:N=!1,maxRetries:g=3}=w,{isAuthenticated:T,isInitialized:I,sessionData:u,tokens:m}=k(),[R,d]=K(null),[p,A]=K(c&&T),[C,E]=K(null),f=v(null),o=v(!0),y=v(0),l=v(0),F=j(()=>{if(!u)return null;let h=u["cognito:username"];return u.email||(typeof h=="string"?h:null)},[u]),L=j(()=>{d(null),E(null),A(!1),l.current=0},[]),U=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}f.current&&f.current.abort();let e=new AbortController;f.current=e;let i=++y.current;try{o.current&&(A(!0),E(null));let s=await Q.readItems("users",{filter:{email:h},pagination:{limit:1}});if(i===y.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),l.current=0):(E("User profile not found in database"),d(null))}}catch(s){if(i===y.current&&o.current){let r=s;if(r.name==="AbortError")return;N&&l.current<g&&(r.message?.includes("Network Error")||r.message?.includes("Failed to fetch"))?(l.current++,setTimeout(()=>{o.current&&U()},1e3*l.current)):(E("Failed to load user profile from database"),d(null))}}finally{i===y.current&&o.current&&A(!1),f.current===e&&(f.current=null)}},[I,F,N,g]);return z(()=>{c&&T&&I?U():T||L()},[c,T,I,U,L]),z(()=>(o.current=!0,()=>{o.current=!1,f.current&&(f.current.abort(),f.current=null)}),[]),{user:{session:u,data:R},loading:p,error:C,refreshProfile:U,clearProfile:L}};import{useCallback as W}from"react";var te=()=>{let{isAuthenticated:w,isLoading:c,isInitialized:N,tokens:g,error:T,sessionData:I,login:u,logout:m,refreshTokens:R,clearError:d,getTokenInfo:p,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E}=k(),f=W(y=>{y?V.warn("useAuth.setToken() is deprecated. Use login() method instead for better security."):m()},[m]),o=g?.expiresAt?new Date(g.expiresAt):null;return{isAuthenticated:w,loading:c,error:T,token:g?.accessToken||null,user:I,tokenExpiration:o,setToken:f,logout:m,refreshToken:R,login:u,isExpiringSoon:A,expiresIn:C,refreshExpiresIn:E,getTokenInfo:p,clearError:d}};import{useCallback as S}from"react";import b from"@nocios/crudify-browser";var ae=()=>{let{isInitialized:w,isLoading:c,error:N,isAuthenticated:g,login:T}=k(),I=S(()=>w&&!c&&!N,[w,c,N]),u=S(async()=>new Promise((o,y)=>{let l=()=>{I()?o():N?y(new Error(N)):setTimeout(l,100)};l()}),[I,N]),m=S(async()=>{if(!I())throw new Error("System not ready. Check isInitialized, isLoading, and error states.")},[I]),R=S(async(o,y,l)=>(await m(),await b.readItems(o,y||{},l)),[m]),d=S(async(o,y,l)=>(await m(),await b.readItem(o,y,l)),[m]),p=S(async(o,y,l)=>(await m(),await b.createItem(o,y,l)),[m]),A=S(async(o,y,l)=>(await m(),await b.updateItem(o,y,l)),[m]),C=S(async(o,y,l)=>(await m(),await b.deleteItem(o,y,l)),[m]),E=S(async(o,y)=>(await m(),await b.transaction(o,y)),[m]),f=S(async(o,y)=>{try{let l=await T(o,y);return l.success?{success:!0,data:l.tokens}:{success:!1,errors:l.error||"Login failed"}}catch(l){return{success:!1,errors:l instanceof Error?l.message:"Login failed"}}},[T]);return{readItems:R,readItem:d,createItem:p,updateItem:A,deleteItem:C,transaction:E,login:f,isInitialized:w,isInitializing:c,initializationError:N,isReady:I,waitForReady:u}};import{useCallback as _}from"react";import P 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=(w={})=>{let{showNotification:c}=$(),{showSuccessNotifications:N=!1,showErrorNotifications:g=!0,customErrorMessages:T={},defaultErrorMessage:I="Ha ocurrido un error inesperado",autoHideDuration:u=6e3,appStructure:m=[],translateFn:R=e=>e}=w,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")},[]),p=_((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:m.some(s=>s.key===e):!1,[N,m,A]),E=_((e,i,s)=>{let r=s?.key&&typeof s.key=="string"?s.key:e,t=`action.onSuccess.${r}`,n=p(t);if(n!==R("error.unknown")){if(A(r)&&i){let a=`action.${i}Singular`,O=p(a);if(O!==R("error.unknown"))return R(t,{item:O});{let D=`action.onSuccess.${r}WithoutItem`,x=p(D);return x!==R("error.unknown")?x:n}}return n}return R("base.success.transaction")},[p,R,A]),f=_(e=>{if(e.errorCode&&T[e.errorCode])return T[e.errorCode];if(e.errorCode&&M[e.errorCode])return p(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=p(s);if(r!==R("error.unknown"))return r}}if(typeof e.data=="string"&&e.data.startsWith("errors.")){let i=p(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 p(M[a]);let O=[`errors.auth.${a}`,`errors.data.${a}`,`errors.system.${a}`,`errors.${a}`];for(let D of O){let x=p(D);if(x!==p("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")?p("resetPassword.linkExpired","El enlace ha expirado"):n.includes("invalid")?p("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):t.response.message}}catch{return r.toLowerCase().includes("expired")?p("resetPassword.linkExpired","El enlace ha expirado"):r.toLowerCase().includes("invalid")?p("resetPassword.invalidCode","C\xF3digo inv\xE1lido"):r}}return p("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"?p("errors.system.DATABASE_CONNECTION_ERROR"):`${p("errors.data.FIELD_ERROR")}: ${i.join(", ")}`}return I||R("error.unknown")},[T,I,R,p]),o=_(e=>e.errorCode&&Y[e.errorCode]?Y[e.errorCode]:"error",[]),y=_(async(e,i,s)=>{let r=await P.createItem(e,i,s);if(!r.success&&g&&d(r)){let t=f(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},[g,C,c,f,o,E,u,d]),l=_(async(e,i,s)=>{let r=await P.updateItem(e,i,s),t=s?.skipNotifications===!0;if(!t&&!r.success&&g&&d(r)){let n=f(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 D=E(a,O,n);c(D,"success",{autoHideDuration:u})}}return r},[g,C,c,f,o,E,u,d]),F=_(async(e,i,s)=>{let r=await P.deleteItem(e,i,s);if(!r.success&&g&&d(r)){let t=f(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},[g,C,c,f,o,E,u,d]),L=_(async(e,i,s)=>{let r=await P.readItem(e,i,s);if(!r.success&&g&&d(r)){let t=f(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[g,c,f,o,u,d]),U=_(async(e,i,s)=>{let r=await P.readItems(e,i,s);if(!r.success&&g&&d(r)){let t=f(r),n=o(r);c(t,n,{autoHideDuration:u})}return r},[g,c,f,o,u,d]),q=_(async(e,i)=>{let s=await P.transaction(e,i),r=i?.skipNotifications===!0;if(!r&&!s.success&&g&&d(s)){let t=f(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;else if(Array.isArray(e)&&e.length>0&&"operation"in e[0]&&e[0].operation){t=e[0].operation;let O=m.find(D=>D.key===t);O&&(a=O,n=O.moduleKey)}if(C(t,n)){let O=E(t,n,a??void 0);c(O,"success",{autoHideDuration:u})}}return s},[g,C,c,f,o,E,u,d,m]),h=_((e,i)=>{if(!e.success&&g&&d(e)){let s=f(e),r=o(e);c(s,r,{autoHideDuration:u})}else e.success&&N&&i&&c(i,"success",{autoHideDuration:u});return e},[g,N,c,f,o,u,d,R]);return{createItem:y,updateItem:l,deleteItem:F,readItem:L,readItems:U,transaction:q,handleResponse:h,getErrorMessage:f,getErrorSeverity:o,shouldShowNotification:d}};export{J as a,te as b,ae as c,de as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } 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 _chunkMFYHD6S5js = require('./chunk-MFYHD6S5.js');var Ne="crudify_storage_version",Re=2,a=class a{static setStorageType(i){a.storageType=i}static async initialize(){if(!(a.encryptionKey&&a.salt))return a.initPromise||(a.initPromise=(async()=>{try{a.checkStorageVersion(),a.salt=a.getOrCreateSalt(),a.fingerprint=await a.generateFingerprint(),a.encryptionKey=await _chunkMFYHD6S5js.g.call(void 0, a.fingerprint,a.salt)}catch(i){throw _chunkMFYHD6S5js.a.error("Crudify: Failed to initialize encryption",i instanceof Error?i:{message:String(i)}),i}})()),a.initPromise}static checkStorageVersion(){try{if(parseInt(localStorage.getItem(Ne)||"1",10)<Re){let e=a.getStorage();e&&e.removeItem(a.TOKEN_KEY),localStorage.removeItem(a.ENCRYPTION_KEY_STORAGE),localStorage.removeItem(a.SALT_KEY),localStorage.setItem(Ne,Re.toString()),_chunkMFYHD6S5js.a.info("Crudify: Storage upgraded to v2, tokens cleared for security")}}catch (e2){}}static getOrCreateSalt(){try{let e=localStorage.getItem(a.SALT_KEY);if(e){let t=atob(e),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n}}catch (e3){}let i=_chunkMFYHD6S5js.j.call(void 0, );try{let e="";for(let t=0;t<i.length;t++)e+=String.fromCharCode(i[t]);localStorage.setItem(a.SALT_KEY,btoa(e))}catch (e4){_chunkMFYHD6S5js.a.warn("Crudify: Cannot persist salt, encryption may not persist across sessions")}return i}static async generateFingerprint(){let i=new Uint8Array(16);crypto.getRandomValues(i);let e=Array.from(i,o=>o.toString(16).padStart(2,"0")).join(""),t=[navigator.userAgent,navigator.language,navigator.platform,screen.width,screen.height,e].join("|");try{let o=localStorage.getItem(a.ENCRYPTION_KEY_STORAGE);if(o&&o.length>=32)return o}catch (e5){}let n=await _chunkMFYHD6S5js.f.call(void 0, t);try{localStorage.setItem(a.ENCRYPTION_KEY_STORAGE,n)}catch (e6){_chunkMFYHD6S5js.a.warn("Crudify: Cannot persist encryption key hash")}return n}static isStorageAvailable(i){try{let e=window[i],t="__storage_test__";return e.setItem(t,"test"),e.removeItem(t),!0}catch (e7){return!1}}static getStorage(){return a.storageType==="none"?null:a.isStorageAvailable(a.storageType)?window[a.storageType]:(_chunkMFYHD6S5js.a.warn(`Crudify: ${a.storageType} not available, tokens won't persist`),null)}static async encryptData(i){if(await a.initialize(),!a.encryptionKey||!a.salt)throw new Error("Encryption not initialized");return _chunkMFYHD6S5js.h.call(void 0, i,a.encryptionKey,a.salt)}static async decryptData(i){if(await a.initialize(),!a.fingerprint)throw new Error("Encryption not initialized");return _chunkMFYHD6S5js.k.call(void 0, i)?_chunkMFYHD6S5js.i.call(void 0, i,a.fingerprint):(_chunkMFYHD6S5js.a.warn("Crudify: Legacy encrypted data detected, cannot decrypt"),null)}static async saveTokens(i){let e=a.getStorage();if(e)try{let t={accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,refreshExpiresAt:i.refreshExpiresAt,savedAt:Date.now()},n=await a.encryptData(JSON.stringify(t));e.setItem(a.TOKEN_KEY,n),_chunkMFYHD6S5js.a.debug("Crudify: Tokens saved successfully")}catch(t){_chunkMFYHD6S5js.a.error("Crudify: Failed to save tokens",t instanceof Error?t:{message:String(t)})}}static async getTokens(){let i=a.getStorage();if(!i)return null;try{let e=i.getItem(a.TOKEN_KEY);if(!e)return null;let t=await a.decryptData(e);if(!t)return _chunkMFYHD6S5js.a.warn("Crudify: Failed to decrypt tokens, clearing storage"),await a.clearTokens(),null;let n=JSON.parse(t);return!n.accessToken||!n.refreshToken||!n.expiresAt||!n.refreshExpiresAt?(_chunkMFYHD6S5js.a.warn("Crudify: Incomplete token data found, clearing storage"),await a.clearTokens(),null):Date.now()>=n.refreshExpiresAt?(_chunkMFYHD6S5js.a.info("Crudify: Refresh token expired, clearing storage"),await a.clearTokens(),null):{accessToken:n.accessToken,refreshToken:n.refreshToken,expiresAt:n.expiresAt,refreshExpiresAt:n.refreshExpiresAt}}catch(e){return _chunkMFYHD6S5js.a.error("Crudify: Failed to retrieve tokens",e instanceof Error?e:{message:String(e)}),await a.clearTokens(),null}}static async clearTokens(){let i=a.getStorage();if(i)try{i.removeItem(a.TOKEN_KEY),_chunkMFYHD6S5js.a.debug("Crudify: Tokens cleared from storage")}catch(e){_chunkMFYHD6S5js.a.error("Crudify: Failed to clear tokens",e instanceof Error?e:{message:String(e)})}}static async rotateEncryptionKey(){try{await a.clearTokens(),a.encryptionKey=null,a.salt=null,a.fingerprint=null,a.initPromise=null;try{localStorage.removeItem(a.ENCRYPTION_KEY_STORAGE),localStorage.removeItem(a.SALT_KEY)}catch (e8){}_chunkMFYHD6S5js.a.info("Crudify: Encryption key rotated successfully")}catch(i){_chunkMFYHD6S5js.a.error("Crudify: Failed to rotate encryption key",i instanceof Error?i:{message:String(i)})}}static async hasValidTokens(){return await a.getTokens()!==null}static async getExpirationInfo(){let i=await a.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 async updateAccessToken(i,e){let t=await a.getTokens();if(!t){_chunkMFYHD6S5js.a.warn("Crudify: Cannot update access token, no existing tokens found");return}await a.saveTokens({...t,accessToken:i,expiresAt:e})}static createSyncEvent(i,e,t){return{type:i,tokens:e,hadPreviousTokens:t}}static subscribeToChanges(i){let e=async t=>{if(t.key!==a.TOKEN_KEY)return;let n=t.oldValue!==null&&t.oldValue!=="";if(t.newValue===null){_chunkMFYHD6S5js.a.debug("Crudify: Tokens removed in another tab"),i(null,a.SYNC_EVENTS.TOKENS_CLEARED,n);return}if(t.newValue){_chunkMFYHD6S5js.a.debug("Crudify: Tokens updated in another tab");let o=await a.getTokens();i(o,a.SYNC_EVENTS.TOKENS_UPDATED,n)}};return window.addEventListener("storage",e),()=>{window.removeEventListener("storage",e)}}};a.TOKEN_KEY="crudify_tokens",a.ENCRYPTION_KEY_STORAGE="crudify_enc_key",a.SALT_KEY="crudify_enc_salt",a.encryptionKey=null,a.salt=null,a.fingerprint=null,a.storageType="localStorage",a.initPromise=null,a.SYNC_EVENTS={TOKENS_CLEARED:"TOKENS_CLEARED",TOKENS_UPDATED:"TOKENS_UPDATED"};var b=a;var _crudifybrowser = require('@nocios/crudify-browser'); var _crudifybrowser2 = _interopRequireDefault(_crudifybrowser);var ee=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(),_crudifybrowser2.default.setTokenInvalidationCallback(()=>{this.log("Tokens invalidated by crudify-core"),_chunkMFYHD6S5js.e.emit("SESSION_EXPIRED",{message:"Your session has expired. Please log in again.",source:"crudify-core.clearTokensAndRefreshState"})}),this.config.apiEndpointAdmin&&this.config.apiKeyEndpointAdmin){let e=await b.getTokens();e?await b.saveTokens({...e,apiEndpointAdmin:this.config.apiEndpointAdmin,apiKeyEndpointAdmin:this.config.apiKeyEndpointAdmin}):await 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 _crudifybrowser2.default.login(i,e);if(!t.success)return{success:!1,error:this.formatError(t.errors),rawResponse:t};let n=await b.getTokens(),o=t.data,m={accessToken:o.token,refreshToken:o.refreshToken,expiresAt:o.expiresAt,refreshExpiresAt:o.refreshExpiresAt,apiEndpointAdmin:_optionalChain([n, 'optionalAccess', _2 => _2.apiEndpointAdmin])||this.config.apiEndpointAdmin,apiKeyEndpointAdmin:_optionalChain([n, 'optionalAccess', _3 => _3.apiKeyEndpointAdmin])||this.config.apiKeyEndpointAdmin};return await b.saveTokens(m),this.lastActivityTime=Date.now(),_optionalChain([this, 'access', _4 => _4.config, 'access', _5 => _5.onLoginSuccess, 'optionalCall', _6 => _6(m)]),{success:!0,tokens:m,data:o}}catch(t){return _chunkMFYHD6S5js.a.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..."),_chunkMFYHD6S5js.e.emit("LOGOUT",{message:"User logged out",source:"SessionManager.logout"}),await _crudifybrowser2.default.logout(),await b.clearTokens(),this.log("Logout successful"),_optionalChain([this, 'access', _7 => _7.config, 'access', _8 => _8.onLogout, 'optionalCall', _9 => _9()])}catch(i){this.log("Logout error",{error:i instanceof Error?i.message:String(i)}),await b.clearTokens()}}async restoreSession(){try{this.log("Attempting to restore session...");let i=await 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"),await b.clearTokens(),!1;if(_crudifybrowser2.default.setTokens({accessToken:i.accessToken,refreshToken:i.refreshToken,expiresAt:i.expiresAt,refreshExpiresAt:i.refreshExpiresAt}),_crudifybrowser2.default.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 n=await b.getTokens();return n&&_optionalChain([this, 'access', _10 => _10.config, 'access', _11 => _11.onSessionRestored, 'optionalCall', _12 => _12(n)]),!0}return await b.clearTokens(),await _crudifybrowser2.default.logout(),!1}return this.log("Session restored successfully"),this.lastActivityTime=Date.now(),_optionalChain([this, 'access', _13 => _13.config, 'access', _14 => _14.onSessionRestored, 'optionalCall', _15 => _15(i)]),!0}catch(i){return this.log("Session restore error",{error:i instanceof Error?i.message:String(i)}),await b.clearTokens(),await _crudifybrowser2.default.logout(),!1}}async isAuthenticated(){return _crudifybrowser2.default.isLogin()||await b.hasValidTokens()}async getTokenInfo(){let i=_crudifybrowser2.default.getTokenData(),e=await b.getExpirationInfo(),t=await b.getTokens();return{isLoggedIn:await this.isAuthenticated(),crudifyTokens:i,storageInfo:e,hasValidTokens:await b.hasValidTokens(),apiEndpointAdmin:_optionalChain([t, 'optionalAccess', _16 => _16.apiEndpointAdmin]),apiKeyEndpointAdmin:_optionalChain([t, 'optionalAccess', _17 => _17.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 _crudifybrowser2.default.refreshAccessToken();if(!i.success)return this.log("Token refresh failed",{errors:i.errors}),await b.clearTokens(),_optionalChain([this, 'access', _18 => _18.config, 'access', _19 => _19.showNotification, 'optionalCall', _20 => _20(this.getSessionExpiredMessage(),"warning")]),_optionalChain([this, 'access', _21 => _21.config, 'access', _22 => _22.onSessionExpired, 'optionalCall', _23 => _23()]),!1;let e=i.data,t={accessToken:e.token,refreshToken:e.refreshToken,expiresAt:e.expiresAt,refreshExpiresAt:e.refreshExpiresAt};return await b.saveTokens(t),this.log("Tokens refreshed and saved successfully"),this.lastActivityTime=Date.now(),!0}catch(i){return this.log("Token refresh error",{error:i instanceof Error?i.message:String(i)}),await b.clearTokens(),_optionalChain([this, 'access', _24 => _24.config, 'access', _25 => _25.showNotification, 'optionalCall', _26 => _26(this.getSessionExpiredMessage(),"warning")]),_optionalChain([this, 'access', _27 => _27.config, 'access', _28 => _28.onSessionExpired, 'optionalCall', _29 => _29()]),!1}}isRefreshing(){return this.isRefreshingLocally}setupResponseInterceptor(){_crudifybrowser2.default.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"),_chunkMFYHD6S5js.e.emit("TOKEN_REFRESH_FAILED",{message:e.userFriendlyMessage,error:e.errorDetails,source:"SessionManager.setupResponseInterceptor"}),i;e.shouldTriggerLogout&&(await b.hasValidTokens()&&!e.isIrrecoverable?(this.log("Access token expired, emitting TOKEN_EXPIRED event"),_chunkMFYHD6S5js.e.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"),_chunkMFYHD6S5js.e.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=_crudifybrowser2.default.getTokenData();if(i&&i.endpoint){this.log("Crudify already initialized by another service"),this.crudifyInitialized=!0;return}let e=this.config.env||"stg";_crudifybrowser2.default.config(e);let t=this.config.publicApiKey,n=this.config.enableLogging?"debug":"none",o=await _crudifybrowser2.default.init(t,n);if(o&&o.success===!1&&o.errors)throw new Error(`Failed to initialize crudify: ${JSON.stringify(o.errors)}`);this.crudifyInitialized=!0,this.log("Crudify SDK initialized successfully")}catch(i){throw _chunkMFYHD6S5js.a.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(n=>n.errorType==="Unauthorized"||_optionalChain([n, 'access', _30 => _30.message, 'optionalAccess', _31 => _31.includes, 'call', _32 => _32("Unauthorized")])||_optionalChain([n, 'access', _33 => _33.message, 'optionalAccess', _34 => _34.includes, 'call', _35 => _35("Not Authorized")])||_optionalChain([n, 'access', _36 => _36.message, 'optionalAccess', _37 => _37.includes, 'call', _38 => _38("NOT_AUTHORIZED")])||_optionalChain([n, 'access', _39 => _39.message, 'optionalAccess', _40 => _40.includes, 'call', _41 => _41("Token")])||_optionalChain([n, 'access', _42 => _42.message, 'optionalAccess', _43 => _43.includes, 'call', _44 => _44("TOKEN")])||_optionalChain([n, 'access', _45 => _45.message, 'optionalAccess', _46 => _46.includes, 'call', _47 => _47("Authentication")])||_optionalChain([n, 'access', _48 => _48.message, 'optionalAccess', _49 => _49.includes, 'call', _50 => _50("UNAUTHENTICATED")])||_optionalChain([n, 'access', _51 => _51.extensions, 'optionalAccess', _52 => _52.code])==="UNAUTHENTICATED"||_optionalChain([n, 'access', _53 => _53.extensions, 'optionalAccess', _54 => _54.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.",(_optionalChain([t, 'access', _55 => _55.message, 'optionalAccess', _56 => _56.includes, 'call', _57 => _57("TOKEN")])||_optionalChain([t, 'access', _58 => _58.message, 'optionalAccess', _59 => _59.includes, 'call', _60 => _60("Token")]))&&(e.isTokenExpired=!0),_optionalChain([t, 'access', _61 => _61.extensions, 'optionalAccess', _62 => _62.code])==="UNAUTHENTICATED"&&(e.isUnauthorized=!0))}if(!e.isAuthError&&i.errors&&typeof i.errors=="object"&&!Array.isArray(i.errors)){let n=Object.values(i.errors).flat().find(o=>typeof o=="string"&&(o.includes("NOT_AUTHORIZED")||o.includes("TOKEN_REFRESH_FAILED")||o.includes("TOKEN_HAS_EXPIRED")||o.includes("PLEASE_LOGIN")||o.includes("Unauthorized")||o.includes("UNAUTHENTICATED")||o.includes("SESSION_EXPIRED")||o.includes("INVALID_TOKEN")));n&&typeof n=="string"&&(e.isAuthError=!0,e.errorType="GraphQL Object",e.errorDetails=i.errors,e.shouldTriggerLogout=!0,n.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."):n.includes("TOKEN_HAS_EXPIRED")||n.includes("SESSION_EXPIRED")?(e.isTokenExpired=!0,e.userFriendlyMessage="Tu sesi\xF3n ha expirado. Por favor, inicia sesi\xF3n nuevamente."):n.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&&_optionalChain([i, 'access', _63 => _63.data, 'optionalAccess', _64 => _64.response, 'optionalAccess', _65 => _65.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&&_optionalChain([i, 'access', _66 => _66.data, 'optionalAccess', _67 => _67.response, 'optionalAccess', _68 => _68.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 (e9){}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"}async clearSession(){await b.clearTokens(),await _crudifybrowser2.default.logout(),this.lastActivityTime=0,this.log("Session cleared completely")}getSessionExpiredMessage(){return this.config.translateFn?_chunkMFYHD6S5js.l.call(void 0, "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&&_chunkMFYHD6S5js.a.debug(`[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"}};var _react = require('react'); var _react2 = _interopRequireDefault(_react);function Ce(r={}){let[i,e]=_react.useState.call(void 0, {isAuthenticated:!1,isLoading:!0,isLoggingOut:!1,isInitialized:!1,tokens:null,error:null}),t=ee.getInstance(),n=_react.useCallback.call(void 0, async()=>{try{e(s=>({...s,isLoading:!0,error:null}));let u={autoRestore:_nullishCoalesce(r.autoRestore, () => (!0)),enableLogging:_nullishCoalesce(r.enableLogging, () => (!1)),showNotification:r.showNotification,translateFn:r.translateFn,apiEndpointAdmin:r.apiEndpointAdmin,apiKeyEndpointAdmin:r.apiKeyEndpointAdmin,publicApiKey:r.publicApiKey,env:r.env||"stg",onSessionExpired:()=>{e(s=>({...s,isAuthenticated:!1,tokens:null,error:"Session expired"})),_optionalChain([r, 'access', _69 => _69.onSessionExpired, 'optionalCall', _70 => _70()])},onSessionRestored:s=>{e(E=>({...E,isAuthenticated:!0,tokens:s,error:null})),_optionalChain([r, 'access', _71 => _71.onSessionRestored, 'optionalCall', _72 => _72(s)])},onLoginSuccess:s=>{e(E=>({...E,isAuthenticated:!0,tokens:s,error:null}))},onLogout:()=>{e(s=>({...s,isAuthenticated:!1,tokens:null,error:null}))}};await t.initialize(u),t.setupResponseInterceptor();let l=await t.isAuthenticated(),f=await t.getTokenInfo();e(s=>({...s,isAuthenticated:l,isInitialized:!0,isLoading:!1,tokens:f.crudifyTokens.accessToken?{accessToken:f.crudifyTokens.accessToken,refreshToken:f.crudifyTokens.refreshToken,expiresAt:f.crudifyTokens.expiresAt,refreshExpiresAt:f.crudifyTokens.refreshExpiresAt}:null}))}catch(u){let l=u instanceof Error?u.message:"Initialization failed";_chunkMFYHD6S5js.a.error("[useSession] Initialize failed",u instanceof Error?u:{message:l}),e(f=>({...f,isLoading:!1,isInitialized:!0,error:l}))}},[r.autoRestore,r.enableLogging,r.onSessionExpired,r.onSessionRestored]),o=_react.useCallback.call(void 0, async(u,l)=>{e(f=>({...f,isLoading:!0,error:null}));try{let f=await t.login(u,l);return f.success&&f.tokens?e(s=>({...s,isAuthenticated:!0,tokens:f.tokens,isLoading:!1,error:null})):e(s=>({...s,isAuthenticated:!1,tokens:null,isLoading:!1,error:null})),f}catch(f){let s=f instanceof Error?f.message:"Login failed";_chunkMFYHD6S5js.a.error("[useSession] Login error",f instanceof Error?f:{message:s});let E=s.includes("INVALID_CREDENTIALS")||s.includes("Invalid email")||s.includes("Invalid password")||s.includes("credentials");return e(k=>({...k,isAuthenticated:!1,tokens:null,isLoading:!1,error:E?null:s})),{success:!1,error:s}}},[t]),m=_react.useCallback.call(void 0, async()=>{e(u=>({...u,isLoading:!0,isLoggingOut:!0}));try{await t.logout(),e(u=>({...u,isAuthenticated:!1,tokens:null,isLoading:!1,isLoggingOut:!1,error:null}))}catch(u){e(l=>({...l,isAuthenticated:!1,tokens:null,isLoading:!1,isLoggingOut:!1,error:u instanceof Error?u.message:"Logout error"}))}},[t]),T=_react.useCallback.call(void 0, async()=>{try{let u=await t.refreshTokens();if(u){let l=await t.getTokenInfo();e(f=>({...f,tokens:l.crudifyTokens.accessToken?{accessToken:l.crudifyTokens.accessToken,refreshToken:l.crudifyTokens.refreshToken,expiresAt:l.crudifyTokens.expiresAt,refreshExpiresAt:l.crudifyTokens.refreshExpiresAt}:null,error:null}))}else e(l=>({...l,isAuthenticated:!1,tokens:null,error:"Token refresh failed"}));return u}catch(u){return e(l=>({...l,isAuthenticated:!1,tokens:null,error:u instanceof Error?u.message:"Token refresh failed"})),!1}},[t]),x=_react.useCallback.call(void 0, ()=>{e(u=>({...u,error:null}))},[]),A=_react.useCallback.call(void 0, async()=>t.getTokenInfo(),[t]);_react.useEffect.call(void 0, ()=>{n()},[n]),_react.useEffect.call(void 0, ()=>{if(!i.isAuthenticated||!i.tokens)return;let u=_chunkMFYHD6S5js.p.getInstance(),l=()=>{t.updateLastActivity()},f=u.subscribe(l);window.addEventListener("popstate",l);let s=async()=>{let R=(await t.getTokenInfo()).crudifyTokens.expiresIn||0;return R<300*1e3?30*1e3:R<1800*1e3?60*1e3:120*1e3},E,k=async()=>{let S=await s();E=setTimeout(async()=>{if(t.isRefreshing()){k();return}let R=await t.getTokenInfo(),w=R.crudifyTokens.expiresIn||0,C=((R.crudifyTokens.expiresAt||0)-(Date.now()-w))*.5;if(w>0&&w<=C)if(e(K=>({...K,isLoading:!0})),await t.refreshTokens()){let K=await t.getTokenInfo();e(ce=>({...ce,isLoading:!1,tokens:K.crudifyTokens.accessToken?{accessToken:K.crudifyTokens.accessToken,refreshToken:K.crudifyTokens.refreshToken,expiresAt:K.crudifyTokens.expiresAt,refreshExpiresAt:K.crudifyTokens.refreshExpiresAt}:null}))}else e(K=>({...K,isLoading:!1,isAuthenticated:!1,tokens:null}));let v=t.getTimeSinceLastActivity(),X=1800*1e3;v>X?await m():k()},S)};return k(),()=>{clearTimeout(E),window.removeEventListener("popstate",l),f()}},[i.isAuthenticated,i.tokens,t,r.enableLogging,m]),_react.useEffect.call(void 0, ()=>{let u=_chunkMFYHD6S5js.e.subscribe(async l=>{if(l.type==="TOKEN_EXPIRED"){if(t.isRefreshing())return;e(f=>({...f,isLoading:!0}));try{if(await t.refreshTokens()){let s=await t.getTokenInfo();e(E=>({...E,isLoading:!1,tokens:s.crudifyTokens.accessToken?{accessToken:s.crudifyTokens.accessToken,refreshToken:s.crudifyTokens.refreshToken,expiresAt:s.crudifyTokens.expiresAt,refreshExpiresAt:s.crudifyTokens.refreshExpiresAt}:null}))}else _chunkMFYHD6S5js.e.emit("SESSION_EXPIRED",{message:"Failed to refresh token after detecting expiration",source:"useSession.TOKEN_EXPIRED handler"})}catch(f){_chunkMFYHD6S5js.e.emit("SESSION_EXPIRED",{message:f instanceof Error?f.message:"Unknown error during refresh",source:"useSession.TOKEN_EXPIRED handler (error)"})}}(l.type==="SESSION_EXPIRED"||l.type==="TOKEN_REFRESH_FAILED")&&(e(f=>({...f,isAuthenticated:!1,tokens:null,isLoading:!1,error:_optionalChain([l, 'access', _73 => _73.details, 'optionalAccess', _74 => _74.message])||"Session expired"})),_optionalChain([r, 'access', _75 => _75.onSessionExpired, 'optionalCall', _76 => _76()]))});return()=>u()},[r.onSessionExpired,t]),_react.useEffect.call(void 0, ()=>{let u=b.subscribeToChanges((l,f,s)=>{f===b.SYNC_EVENTS.TOKENS_CLEARED?s&&i.isAuthenticated?(_chunkMFYHD6S5js.a.debug("[useSession] Cross-tab logout detected"),e(E=>({...E,isAuthenticated:!1,tokens:null})),_optionalChain([r, 'access', _77 => _77.onSessionExpired, 'optionalCall', _78 => _78()])):s&&e(E=>({...E,isAuthenticated:!1,tokens:null})):f===b.SYNC_EVENTS.TOKENS_UPDATED&&l&&(_chunkMFYHD6S5js.a.debug("[useSession] Cross-tab login/refresh detected"),e(E=>({...E,tokens:l,isAuthenticated:!0,error:null})))});return()=>u()},[i.isAuthenticated,r.onSessionExpired]);let F=_react.useCallback.call(void 0, ()=>{t.updateLastActivity()},[t]);return{...i,login:o,logout:m,refreshTokens:T,clearError:x,getTokenInfo:A,updateActivity:F,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}}var _material = require('@mui/material');var _uuid = require('uuid');var _dompurify = require('dompurify'); var _dompurify2 = _interopRequireDefault(_dompurify);var _jsxruntime = require('react/jsx-runtime');var Le=_react.createContext.call(void 0, null),Ai=r=>_dompurify2.default.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}),fe= exports.d =({children:r,maxNotifications:i=5,defaultAutoHideDuration:e=6e3,position:t={vertical:"top",horizontal:"right"},enabled:n=!1,allowHtml:o=!1})=>{let[m,T]=_react.useState.call(void 0, []),x=_react.useCallback.call(void 0, (l,f="info",s)=>{if(!n)return"";if(!l||typeof l!="string")return _chunkMFYHD6S5js.a.warn("GlobalNotificationProvider: Invalid message provided"),"";l.length>1e3&&(_chunkMFYHD6S5js.a.warn("GlobalNotificationProvider: Message too long, truncating"),l=l.substring(0,1e3)+"...");let E=_uuid.v4.call(void 0, ),k={id:E,message:l,severity:f,autoHideDuration:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _79 => _79.autoHideDuration]), () => (e)),persistent:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _80 => _80.persistent]), () => (!1)),allowHtml:_nullishCoalesce(_optionalChain([s, 'optionalAccess', _81 => _81.allowHtml]), () => (o))};return T(S=>[...S.length>=i?S.slice(-(i-1)):S,k]),E},[i,e,n,o]),A=_react.useCallback.call(void 0, l=>{T(f=>f.filter(s=>s.id!==l))},[]),F=_react.useCallback.call(void 0, ()=>{T([])},[]),u={showNotification:x,hideNotification:A,clearAllNotifications:F};return _jsxruntime.jsxs.call(void 0, Le.Provider,{value:u,children:[r,n&&_jsxruntime.jsx.call(void 0, _material.Portal,{children:_jsxruntime.jsx.call(void 0, _material.Box,{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:m.map(l=>_jsxruntime.jsx.call(void 0, Ii,{notification:l,onClose:()=>A(l.id)},l.id))})})]})},Ii=({notification:r,onClose:i})=>{let[e,t]=_react.useState.call(void 0, !0),n=_react.useCallback.call(void 0, (o,m)=>{m!=="clickaway"&&(t(!1),setTimeout(i,300))},[i]);return _react.useEffect.call(void 0, ()=>{if(!r.persistent&&r.autoHideDuration){let o=setTimeout(()=>{n()},r.autoHideDuration);return()=>clearTimeout(o)}},[r.autoHideDuration,r.persistent,n]),_jsxruntime.jsx.call(void 0, _material.Snackbar,{open:e,onClose:n,sx:{position:"relative","& .MuiSnackbarContent-root":{minWidth:"auto"}},TransitionProps:{enter:!0,exit:!0},children:_jsxruntime.jsx.call(void 0, _material.Alert,{variant:"filled",severity:r.severity,onClose:n,sx:{width:"100%",minWidth:"280px",maxWidth:"400px",wordBreak:"break-word"},children:r.allowHtml?_jsxruntime.jsx.call(void 0, "span",{dangerouslySetInnerHTML:{__html:Ai(r.message)}}):_jsxruntime.jsx.call(void 0, "span",{children:r.message})})})},Fe= exports.e =()=>{let r=_react.useContext.call(void 0, Le);if(!r)throw new Error("useGlobalNotification debe ser usado dentro de un GlobalNotificationProvider");return r};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){_chunkMFYHD6S5js.a.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}},re= exports.f =ge.getInstance();var ze=_react.createContext.call(void 0, void 0),Ke= exports.g =({config:r,children:i})=>{let[e,t]=_react.useState.call(void 0, !0),[n,o]=_react.useState.call(void 0, null),[m,T]=_react.useState.call(void 0, !1),[x,A]=_react.useState.call(void 0, ""),[F,u]=_react.useState.call(void 0, );_react.useEffect.call(void 0, ()=>{if(!r.publicApiKey){o("No publicApiKey provided"),t(!1),T(!1);return}let f=`${r.publicApiKey}-${r.env}`;if(f===x&&m){t(!1);return}(async()=>{t(!0),o(null),T(!1);try{_crudifybrowser2.default.config(r.env||"prod");let E=await _crudifybrowser2.default.init(r.publicApiKey,"none");if(u(E),typeof _crudifybrowser2.default.transaction=="function"&&typeof _crudifybrowser2.default.login=="function")T(!0),A(f),E.apiEndpointAdmin&&E.apiKeyEndpointAdmin&&re.notifyCredentialsReady({apiUrl:E.apiEndpointAdmin,apiKey:E.apiKeyEndpointAdmin});else throw new Error("Crudify methods not properly initialized")}catch(E){let k=E instanceof Error?E.message:"Failed to initialize Crudify";_chunkMFYHD6S5js.a.error("[CrudifyProvider] Initialization error",E instanceof Error?E:{message:String(E)}),o(k),T(!1)}finally{t(!1)}})()},[r.publicApiKey,r.env,x,m]);let l={crudify:m?_crudifybrowser2.default:null,isLoading:e,error:n,isInitialized:m,adminCredentials:F};return _jsxruntime.jsx.call(void 0, ze.Provider,{value:l,children:i})},Oe= exports.h =()=>{let r=_react.useContext.call(void 0, ze);if(r===void 0)throw new Error("useCrudify must be used within a CrudifyProvider");return r};var He=_react.createContext.call(void 0, void 0);function Ue({children:r,options:i={},config:e,showNotifications:t=!1,notificationOptions:n={}}){let o;try{let{showNotification:s}=Fe();o=s}catch (e10){}let m={};try{let s=Oe();s.isInitialized&&s.adminCredentials&&(m=s.adminCredentials)}catch (e11){}let T=_react.useMemo.call(void 0, ()=>{let s=_chunkMFYHD6S5js.c.call(void 0, {publicApiKey:_optionalChain([e, 'optionalAccess', _82 => _82.publicApiKey]),env:_optionalChain([e, 'optionalAccess', _83 => _83.env]),enableDebug:_optionalChain([i, 'optionalAccess', _84 => _84.enableLogging])});return{publicApiKey:s.publicApiKey,env:s.env||"prod"}},[e,_optionalChain([i, 'optionalAccess', _85 => _85.enableLogging])]),x=_react2.default.useMemo(()=>({...i,showNotification:o,apiEndpointAdmin:m.apiEndpointAdmin,apiKeyEndpointAdmin:m.apiKeyEndpointAdmin,publicApiKey:T.publicApiKey,env:T.env,onSessionExpired:()=>{_optionalChain([i, 'access', _86 => _86.onSessionExpired, 'optionalCall', _87 => _87()])}}),[i,o,m.apiEndpointAdmin,m.apiKeyEndpointAdmin,T]),A=Ce(x),F=_react.useMemo.call(void 0, ()=>{let s=_chunkMFYHD6S5js.c.call(void 0, {publicApiKey:_optionalChain([e, 'optionalAccess', _88 => _88.publicApiKey]),env:_optionalChain([e, 'optionalAccess', _89 => _89.env]),appName:_optionalChain([e, 'optionalAccess', _90 => _90.appName]),logo:_optionalChain([e, 'optionalAccess', _91 => _91.logo]),loginActions:_optionalChain([e, 'optionalAccess', _92 => _92.loginActions]),enableDebug:_optionalChain([i, 'optionalAccess', _93 => _93.enableLogging])});return{publicApiKey:s.publicApiKey,env:s.env,appName:s.appName,loginActions:s.loginActions,logo:s.logo}},[e,_optionalChain([i, 'optionalAccess', _94 => _94.enableLogging])]),u=_react.useMemo.call(void 0, ()=>{if(!_optionalChain([A, 'access', _95 => _95.tokens, 'optionalAccess', _96 => _96.accessToken])||!A.isAuthenticated)return null;try{let s=_chunkMFYHD6S5js.q.call(void 0, A.tokens.accessToken);if(s&&s.sub&&s.email&&s.subscriber){let E={_id:s.sub,email:s.email,subscriberKey:s.subscriber};return Object.keys(s).forEach(k=>{["sub","email","subscriber"].includes(k)||(E[k]=s[k])}),E}}catch(s){_chunkMFYHD6S5js.a.error("Error decoding JWT token for sessionData",s instanceof Error?s:{message:String(s)})}return null},[_optionalChain([A, 'access', _97 => _97.tokens, 'optionalAccess', _98 => _98.accessToken]),A.isAuthenticated]),l={...A,sessionData:u,config:F},f={enabled:t,maxNotifications:n.maxNotifications||5,defaultAutoHideDuration:n.defaultAutoHideDuration||6e3,position:n.position||{vertical:"top",horizontal:"right"}};return _jsxruntime.jsx.call(void 0, He.Provider,{value:l,children:r})}function Ft(r){let i={enabled:r.showNotifications,maxNotifications:_optionalChain([r, 'access', _99 => _99.notificationOptions, 'optionalAccess', _100 => _100.maxNotifications])||5,defaultAutoHideDuration:_optionalChain([r, 'access', _101 => _101.notificationOptions, 'optionalAccess', _102 => _102.defaultAutoHideDuration])||6e3,position:_optionalChain([r, 'access', _103 => _103.notificationOptions, 'optionalAccess', _104 => _104.position])||{vertical:"top",horizontal:"right"},allowHtml:_optionalChain([r, 'access', _105 => _105.notificationOptions, 'optionalAccess', _106 => _106.allowHtml])||!1};return _optionalChain([r, 'access', _107 => _107.config, 'optionalAccess', _108 => _108.publicApiKey])?_jsxruntime.jsx.call(void 0, Ke,{config:{publicApiKey:r.config.publicApiKey,env:r.config.env||"prod",appName:r.config.appName,loginActions:r.config.loginActions,logo:r.config.logo},children:_jsxruntime.jsx.call(void 0, fe,{...i,children:_jsxruntime.jsx.call(void 0, Ue,{...r})})}):_jsxruntime.jsx.call(void 0, fe,{...i,children:_jsxruntime.jsx.call(void 0, Ue,{...r})})}function Di(){let r=_react.useContext.call(void 0, He);if(r===void 0)throw new Error("useSessionContext must be used within a SessionProvider");return r}function zt(){let r=Di();return r.isInitialized?_jsxruntime.jsxs.call(void 0, "div",{style:{padding:"10px",margin:"10px",border:"1px solid #ccc",borderRadius:"4px",fontSize:"12px",fontFamily:"monospace"},children:[_jsxruntime.jsx.call(void 0, "h4",{children:"Session Debug Info"}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Authenticated:"})," ",r.isAuthenticated?"Yes":"No"]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Loading:"})," ",r.isLoading?"Yes":"No"]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Error:"})," ",r.error||"None"]}),r.tokens&&_jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment,{children:[_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Access Token:"})," ",r.tokens.accessToken.substring(0,20),"..."]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Refresh Token:"})," ",r.tokens.refreshToken.substring(0,20),"..."]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Access Expires In:"})," ",Math.round(r.expiresIn/1e3/60)," minutes"]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Refresh Expires In:"})," ",Math.round(r.refreshExpiresIn/1e3/60/60)," hours"]}),_jsxruntime.jsxs.call(void 0, "div",{children:[_jsxruntime.jsx.call(void 0, "strong",{children:"Expiring Soon:"})," ",r.isExpiringSoon?"Yes":"No"]})]})]}):_jsxruntime.jsx.call(void 0, "div",{children:"Session not initialized"})}var Gt=(r={})=>{let{autoFetch:i=!0,retryOnError:e=!1,maxRetries:t=3}=r,[n,o]=_react.useState.call(void 0, null),[m,T]=_react.useState.call(void 0, !1),[x,A]=_react.useState.call(void 0, null),[F,u]=_react.useState.call(void 0, {}),l=_react.useRef.call(void 0, null),f=_react.useRef.call(void 0, !0),s=_react.useRef.call(void 0, 0),E=_react.useRef.call(void 0, 0),k=_react.useCallback.call(void 0, ()=>{o(null),A(null),T(!1),u({})},[]),S=_react.useCallback.call(void 0, async()=>{let R=_chunkMFYHD6S5js.r.call(void 0, );if(!R){f.current&&(A("No user email available"),T(!1));return}l.current&&l.current.abort();let w=new AbortController;l.current=w;let z=++s.current;try{f.current&&(T(!0),A(null));let O=await _crudifybrowser2.default.readItems("users",{filter:{email:R},pagination:{limit:1}});if(z===s.current&&f.current&&!w.signal.aborted){let C=O.data;if(O.success&&C&&C.length>0){let v=C[0];o(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(V=>!["id","email","username","firstName","lastName","fullName","role","permissions","isActive","lastLogin","createdAt","updatedAt"].includes(V)).reduce((V,K)=>({...V,[K]:v[K]}),{})}};u(X),A(null),E.current=0}else A("User profile not found"),o(null),u({})}}catch(O){if(z===s.current&&f.current){let C=O;if(C.name==="AbortError")return;e&&E.current<t&&(_optionalChain([C, 'access', _109 => _109.message, 'optionalAccess', _110 => _110.includes, 'call', _111 => _111("Network Error")])||_optionalChain([C, 'access', _112 => _112.message, 'optionalAccess', _113 => _113.includes, 'call', _114 => _114("Failed to fetch")]))?(E.current++,setTimeout(()=>{f.current&&S()},1e3*E.current)):(A("Failed to load user profile"),o(null),u({}))}}finally{z===s.current&&f.current&&T(!1),l.current===w&&(l.current=null)}},[e,t]);return _react.useEffect.call(void 0, ()=>{i&&S()},[i,S]),_react.useEffect.call(void 0, ()=>(f.current=!0,()=>{f.current=!1,l.current&&(l.current.abort(),l.current=null)}),[]),{userProfile:n,loading:m,error:x,extendedData:F,refreshProfile:S,clearProfile:k}};var $t=(r,i={})=>{let{autoFetch:e=!0,onSuccess:t,onError:n}=i,{prefix:o,padding:m=0,separator:T=""}=r,[x,A]=_react.useState.call(void 0, ""),[F,u]=_react.useState.call(void 0, !1),[l,f]=_react.useState.call(void 0, null),s=_react.useRef.call(void 0, !1),E=_react.useCallback.call(void 0, w=>{let z=String(w).padStart(m,"0");return`${o}${T}${z}`},[o,m,T]),k=_react.useCallback.call(void 0, async()=>{u(!0),f(null);try{let w=await _crudifybrowser2.default.getNextSequence(o),z=w.data;if(w.success&&_optionalChain([z, 'optionalAccess', _115 => _115.value])){let O=E(z.value);A(O),_optionalChain([t, 'optionalCall', _116 => _116(O)])}else{let O=_optionalChain([w, 'access', _117 => _117.errors, 'optionalAccess', _118 => _118._error, 'optionalAccess', _119 => _119[0]])||"Failed to generate code";f(O),_optionalChain([n, 'optionalCall', _120 => _120(O)])}}catch(w){let z=w instanceof Error?w.message:"Unknown error";f(z),_optionalChain([n, 'optionalCall', _121 => _121(z)])}finally{u(!1)}},[o,E,t,n]),S=_react.useCallback.call(void 0, async()=>{await k()},[k]),R=_react.useCallback.call(void 0, ()=>{f(null)},[]);return _react.useEffect.call(void 0, ()=>{e&&!x&&!s.current&&(s.current=!0,k())},[e,x,k]),{value:x,loading:F,error:l,regenerate:S,clearError:R}};var he=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:n,enableLogging:o,requestedBy:m}=i;if(this.state.status==="INITIALIZED"){this.state.publicApiKey!==t&&_chunkMFYHD6S5js.a.warn(`[CrudifyInitialization] ${m} attempted to initialize with different key. Already initialized with key: ${_optionalChain([this, 'access', _122 => _122.state, 'access', _123 => _123.publicApiKey, 'optionalAccess', _124 => _124.slice, 'call', _125 => _125(0,10)])}... by ${this.state.initializedBy}`);return}if(this.initializationPromise)return o&&_chunkMFYHD6S5js.a.debug(`[CrudifyInitialization] ${m} waiting for ongoing initialization...`),this.initializationPromise;if(e==="LOW"&&this.highPriorityInitializerPresent&&this.state.status==="UNINITIALIZED"){if(o&&_chunkMFYHD6S5js.a.debug(`[CrudifyInitialization] ${m} (LOW priority) waiting for HIGH priority initializer...`),this.waitingForHighPriority.add(m),await this.waitForHighPriorityOrTimeout(o),this.waitingForHighPriority.delete(m),this.getState().status==="INITIALIZED"){o&&_chunkMFYHD6S5js.a.debug(`[CrudifyInitialization] ${m} found initialization completed by HIGH priority`);return}o&&_chunkMFYHD6S5js.a.warn(`[CrudifyInitialization] ${m} timeout waiting for HIGH priority, initializing with LOW priority`)}e==="HIGH"&&this.state.status==="INITIALIZING"&&this.state.priority==="LOW"&&(_chunkMFYHD6S5js.a.warn(`[CrudifyInitialization] HIGH priority request from ${m} interrupting LOW priority initialization by ${this.state.initializedBy}`),this.state.status="UNINITIALIZED",this.initializationPromise=null),o&&_chunkMFYHD6S5js.a.debug(`[CrudifyInitialization] ${m} starting initialization (${e} priority)...`),this.state.status="INITIALIZING",this.state.priority=e,this.state.initializedBy=m,this.initializationPromise=this.performInitialization(t,n,o);try{await this.initializationPromise,this.state.status="INITIALIZED",this.state.publicApiKey=t,this.state.env=n,this.state.error=null,o&&_chunkMFYHD6S5js.a.info(`[CrudifyInitialization] Successfully initialized by ${m} (${e} priority)`)}catch(T){throw this.state.status="ERROR",this.state.error=T instanceof Error?T:new Error(String(T)),this.initializationPromise=null,_chunkMFYHD6S5js.a.error(`[CrudifyInitialization] Initialization failed for ${m}`,T instanceof Error?T:{message:String(T)}),T}}async waitForHighPriorityOrTimeout(i){return new Promise(e=>{let n=0,o=setInterval(()=>{if(n+=10,this.state.status==="INITIALIZED"&&this.state.priority==="HIGH"){clearInterval(o),e();return}if(this.state.status==="INITIALIZING"&&this.state.priority==="HIGH"){n=0;return}n>=this.HIGH_PRIORITY_WAIT_TIMEOUT&&(clearInterval(o),i&&_chunkMFYHD6S5js.a.debug(`[CrudifyInitialization] Timeout waiting for HIGH priority (${this.HIGH_PRIORITY_WAIT_TIMEOUT}ms)`),e())},10)})}async performInitialization(i,e,t){let n=_crudifybrowser2.default.getTokenData();if(n&&n.endpoint){t&&_chunkMFYHD6S5js.a.debug("[CrudifyInitialization] SDK already initialized externally");return}_crudifybrowser2.default.config(e);let o=t?"debug":"none",m=await _crudifybrowser2.default.init(i,o);if(m.success===!1)throw new Error(`Crudify initialization failed: ${JSON.stringify(m.errors||"Unknown error")}`);m.apiEndpointAdmin&&m.apiKeyEndpointAdmin&&re.notifyCredentialsReady({apiUrl:m.apiEndpointAdmin,apiKey:m.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= exports.o =he.getInstance();var _e=r=>{let i=new Uint8Array(r);return crypto.getRandomValues(i),Array.from(i,e=>e.toString(36).padStart(2,"0")).join("").substring(0,r)},Ve=()=>`file_${Date.now()}_${_e(7)}`,Hi=r=>{let i=r.lastIndexOf("."),e=i>0?r.substring(i):"",t=Date.now(),n=_e(6);return`${t}_${n}${e}`},Ee=(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 (e12){if(i&&r.startsWith(i))return r.substring(i.length)}return i&&r.startsWith(i)?r.substring(i.length):r},ir= exports.p =(r={})=>{let{acceptedTypes:i,maxFileSize:e=10*1024*1024,maxFiles:t,minFiles:n=0,visibility:o="private",onUploadComplete:m,onUploadError:T,onFileRemoved:x,onFilesChange:A,mode:F="edit"}=r,[u,l]=_react.useState.call(void 0, []),[f,s]=_react.useState.call(void 0, !1),[E,k]=_react.useState.call(void 0, !1),[S,R]=_react.useState.call(void 0, []),w=_react.useRef.call(void 0, new Map),z=_react.useCallback.call(void 0, ()=>{s(!0)},[]),O=_react.useCallback.call(void 0, ()=>{k(!0),s(!0)},[]),C=_react.useCallback.call(void 0, (c,p)=>{l(d=>d.map(h=>h.id===c?{...h,...p}:h))},[]),v=_react.useCallback.call(void 0, c=>{_optionalChain([A, 'optionalCall', _126 => _126(c)])},[A]),X=_react.useCallback.call(void 0, c=>i&&i.length>0&&!i.includes(c.type)?{valid:!1,error:`File type not allowed: ${c.type}`}:c.size>e?{valid:!1,error:`File exceeds maximum size of ${(e/1048576).toFixed(1)}MB`}:{valid:!0},[i,e]),V=_react.useCallback.call(void 0, async(c,p)=>{try{if(!Q.isInitialized())throw new Error("Crudify is not initialized. Please wait for the application to finish loading.");let d=Hi(p.name),y=await _crudifybrowser2.default.generateSignedUrl({fileName:d,contentType:p.type,visibility:o});if(!y.success||!y.data)throw new Error("Failed to get upload URL");let h=y.data,{uploadUrl:P,s3Key:I,publicUrl:H}=h;if(!P||!I)throw new Error("Incomplete signed URL response");let Y=I.indexOf("/"),ci=Y>0?I.substring(Y+1):I;C(c.id,{status:"uploading",progress:0}),await new Promise((ue,$)=>{let U=new XMLHttpRequest;U.upload.addEventListener("progress",_=>{if(_.lengthComputable){let di=Math.round(_.loaded/_.total*100);C(c.id,{progress:di})}}),U.addEventListener("load",()=>{U.status>=200&&U.status<300?ue():$(new Error(`Upload failed with status ${U.status}`))}),U.addEventListener("error",()=>{$(new Error("Network error during upload"))}),U.addEventListener("abort",()=>{$(new Error("Upload cancelled"))}),U.open("PUT",P),U.setRequestHeader("Content-Type",p.type),U.send(p)});let ui={status:"completed",progress:100,filePath:ci,visibility:o,publicUrl:o==="public"?H:void 0,file:void 0};l(ue=>{let $=ue.map(_=>_.id===c.id?{..._,...ui}:_);v($);let U=$.find(_=>_.id===c.id);return U&&_optionalChain([m, 'optionalCall', _127 => _127(U)]),$})}catch(d){let y=d instanceof Error?d.message:"Unknown error";C(c.id,{status:"error",progress:0,errorMessage:y}),l(h=>{let P=h.find(I=>I.id===c.id);return P&&_optionalChain([T, 'optionalCall', _128 => _128(P,y)]),h})}},[C,m,T,o]),K=_react.useCallback.call(void 0, async c=>{let p=Array.from(c),d=[];l(y=>{if(t!==void 0){let I=y.filter(Y=>Y.status!=="pendingDeletion"&&Y.status!=="error").length,H=t-I;if(H<=0)return _chunkMFYHD6S5js.a.warn(`File limit of ${t} already reached`),y;p.length>H&&(p=p.slice(0,H),_chunkMFYHD6S5js.a.warn(`Only ${H} files will be added to not exceed limit`))}let h=[];for(let I of p){let H=X(I),Y={id:Ve(),name:I.name,size:I.size,contentType:I.type,status:H.valid?"pending":"error",progress:0,createdAt:Date.now(),file:H.valid?I:void 0,errorMessage:H.error,isExisting:!1};h.push(Y)}d=h;let P=[...y,...h];return v(P),P}),setTimeout(()=>{let y=d.filter(h=>h.status==="pending"&&h.file);for(let h of y)if(h.file){let P=V(h,h.file);w.current.set(h.id,P),P.finally(()=>{w.current.delete(h.id)})}},0)},[t,X,V,v]),ce=_react.useCallback.call(void 0, async c=>{let p=u.find(y=>y.id===c);if(!p)return{needsConfirmation:!1,isExisting:!1};let d=p.isExisting===!0;return F==="create"||!d?{needsConfirmation:!0,isExisting:d}:(R(y=>[...y,c]),l(y=>{let h=y.map(I=>I.id===c?{...I,status:"pendingDeletion"}:I),P=h.filter(I=>I.status!=="pendingDeletion");return v(P),h}),{needsConfirmation:!1,isExisting:d})},[u,F,v]),Ye=_react.useCallback.call(void 0, async c=>{let p=u.find(d=>d.id===c);if(!p)return{success:!1,error:"File not found"};if(!p.filePath)return l(d=>{let y=d.filter(h=>h.id!==c);return v(y),y}),{success:!0};try{if(!Q.isInitialized())return{success:!1,error:"Crudify not initialized"};let d=Ee(p.filePath);return(await _crudifybrowser2.default.disableFile({filePath:d})).success?(l(h=>{let P=h.filter(I=>I.id!==c);return v(P),P}),_optionalChain([x, 'optionalCall', _129 => _129(p)]),{success:!0}):{success:!1,error:"Failed to delete file"}}catch(d){return{success:!1,error:d instanceof Error?d.message:"Unknown error"}}},[u,v,x]),$e=_react.useCallback.call(void 0, c=>{let p=u.find(d=>d.id===c);return!p||!p.isExisting?!1:(R(d=>d.filter(y=>y!==c)),l(d=>{let y=d.map(h=>h.id===c?{...h,status:"completed"}:h);return v(y),y}),!0)},[u,v]),We=_react.useCallback.call(void 0, ()=>{S.length!==0&&(l(c=>{let p=c.map(d=>S.includes(d.id)?{...d,status:"completed"}:d);return v(p),p}),R([]))},[S,v]),Be=_react.useCallback.call(void 0, async()=>{if(S.length===0)return{success:!0,errors:[]};let c=[],p=[];if(!Q.isInitialized())return{success:!1,errors:["Crudify is not initialized. Please wait for the application to finish loading."]};for(let d of S){let y=u.find(h=>h.id===d);if(!_optionalChain([y, 'optionalAccess', _130 => _130.filePath])){p.push(d);continue}try{let h=Ee(y.filePath);(await _crudifybrowser2.default.disableFile({filePath:h})).success?(p.push(d),_optionalChain([x, 'optionalCall', _131 => _131(y)])):c.push(`Failed to delete ${y.name}`)}catch(h){c.push(`Error deleting ${y.name}: ${h instanceof Error?h.message:"Unknown error"}`)}}return p.length>0&&(l(d=>d.filter(h=>!p.includes(h.id))),R(d=>d.filter(y=>!p.includes(y)))),{success:c.length===0,errors:c}},[u,S,x]),Xe=_react.useCallback.call(void 0, ()=>{l([]),v([])},[v]),Ze=_react.useCallback.call(void 0, async c=>{let p=u.find(y=>y.id===c);if(!p||p.status!=="error"||!p.file){_chunkMFYHD6S5js.a.warn("Cannot retry: file not found or no original file");return}C(c,{status:"pending",progress:0,errorMessage:void 0});let d=V(p,p.file);w.current.set(c,d),d.finally(()=>{w.current.delete(c)})},[u,C,V]),qe=_react.useCallback.call(void 0, async()=>{let c=Array.from(w.current.values());return c.length>0&&await Promise.allSettled(c),new Promise(p=>{setTimeout(()=>{l(d=>{let y=d.filter(h=>h.status==="completed"&&h.filePath).map(h=>h.filePath);return p(y),d})},0)})},[]),je=c=>{let p=_optionalChain([c, 'access', _132 => _132.split, 'call', _133 => _133("."), 'access', _134 => _134.pop, 'call', _135 => _135(), 'optionalAccess', _136 => _136.toLowerCase, 'call', _137 => _137()])||"";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"}[p]||"application/octet-stream"},Je=_react.useCallback.call(void 0, (c,p)=>{let d=c.map(y=>{let h=Ee(y.filePath,p),P=h.includes("/public/")||h.startsWith("public/")?"public":"private",I=y.contentType||je(y.name);return{id:Ve(),name:y.name,size:y.size||0,contentType:I,status:"completed",progress:100,filePath:h,visibility:P,createdAt:Date.now(),isExisting:!0}});l(d),v(d)},[v]),Qe=_react.useCallback.call(void 0, async c=>{let p=u.find(d=>d.id===c);if(!p||!p.filePath)return null;if(p.visibility==="public"&&p.publicUrl)return p.publicUrl;try{if(!Q.isInitialized())return null;let d=await _crudifybrowser2.default.getFileUrl({filePath:p.filePath,expiresIn:3600}),y=d.data;return d.success&&_optionalChain([y, 'optionalAccess', _138 => _138.url])?y.url:null}catch (e13){return null}},[u]),ei=_react.useMemo.call(void 0, ()=>u.some(c=>c.status==="uploading"||c.status==="pending"),[u]),ii=_react.useMemo.call(void 0, ()=>u.filter(c=>c.status==="uploading"||c.status==="pending").length,[u]),ti=_react.useMemo.call(void 0, ()=>u.filter(c=>c.status==="completed"&&c.filePath).map(c=>c.filePath),[u]),Z=_react.useMemo.call(void 0, ()=>u.filter(c=>c.status!=="pendingDeletion"),[u]),ri=_react.useMemo.call(void 0, ()=>Z.filter(c=>c.status==="completed"||c.status==="pending"||c.status==="uploading").length,[Z]),{isValid:ni,validationError:si,validationErrorKey:oi,validationErrorParams:ai}=_react.useMemo.call(void 0, ()=>{let c=Z.filter(d=>d.status==="completed").length;if(c<n){let d=n===1?"file.validation.minFilesRequired":"file.validation.minFilesRequiredPlural";return{isValid:!1,validationError:d,validationErrorKey:d,validationErrorParams:{count:n}}}return t!==void 0&&c>t?{isValid:!1,validationError:"file.validation.maxFilesExceeded",validationErrorKey:"file.validation.maxFilesExceeded",validationErrorParams:{count:t}}:Z.some(d=>d.status==="error")?{isValid:!1,validationError:"file.validation.filesWithErrors",validationErrorKey:"file.validation.filesWithErrors",validationErrorParams:{}}:{isValid:!0,validationError:null,validationErrorKey:null,validationErrorParams:{}}},[Z,n,t]),li=S.length>0;return{files:u,activeFiles:Z,activeFileCount:ri,isUploading:ei,pendingCount:ii,addFiles:K,removeFile:ce,deleteFileImmediately:Ye,restoreFile:$e,clearFiles:Xe,retryUpload:Ze,isValid:ni,validationError:si,validationErrorKey:oi,validationErrorParams:ai,waitForUploads:qe,completedFilePaths:ti,initializeFiles:Je,isTouched:f,markAsTouched:z,isSubmitted:E,markAsSubmitted:O,getPreviewUrl:Qe,pendingDeletions:S,hasPendingDeletions:li,commitDeletions:Be,restorePendingDeletions:We}};exports.a = b; exports.b = ee; exports.c = Ce; exports.d = fe; exports.e = Fe; exports.f = re; exports.g = Ke; exports.h = Oe; exports.i = Ft; exports.j = Di; exports.k = zt; exports.l = Gt; exports.m = $t; exports.n = he; exports.o = Q; exports.p = ir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as n,
|
|
1
|
+
import{a as n,f as h,g as m,h as p,i as u,j as y,k as l}from"./chunk-MGJZTOEM.mjs";var c="crudify_login_storage_version",d=2,g="crudify_login_encryption_salt",a=class{constructor(t="sessionStorage"){this.encryptionKey=null;this.salt=null;this.initPromise=null;this.initialized=!1;this.storage=t==="localStorage"?window.localStorage:window.sessionStorage}async ensureInitialized(){if(!(this.initialized&&this.encryptionKey)){if(this.initPromise){await this.initPromise;return}this.initPromise=this.initialize(),await this.initPromise}}async initialize(){try{parseInt(this.storage.getItem(c)||"1")<d&&(this.clearLegacyData(),this.storage.setItem(c,d.toString()));let e=this.storage.getItem(g);e&&l(`v2:x:${e}:x`)?this.salt=this.base64ToUint8Array(e):(this.salt=y(),this.storage.setItem(g,this.uint8ArrayToBase64(this.salt)));let i=await this.generateFingerprint();this.encryptionKey=await m(i,this.salt),this.initialized=!0}catch(t){n.error("SecureStorage initialization failed",t instanceof Error?t:{message:String(t)}),this.initialized=!1}}async generateFingerprint(){let t=[navigator.userAgent,navigator.language,new Date().getTimezoneOffset().toString(),screen.colorDepth.toString(),screen.width.toString(),screen.height.toString(),"crudify-login"].join("|");return h(t)}clearLegacyData(){let t=[];for(let e=0;e<this.storage.length;e++){let i=this.storage.key(e);i&&!i.startsWith(c)&&!i.startsWith(g)&&t.push(i)}t.forEach(e=>this.storage.removeItem(e))}async setItem(t,e,i){try{if(await this.ensureInitialized(),!this.encryptionKey||!this.salt){n.error("SecureStorage not properly initialized");return}let r=await p(e,this.encryptionKey,this.salt);if(this.storage.setItem(t,r),i){let o=Date.now()+i*60*1e3;this.storage.setItem(`${t}_expiry`,o.toString())}}catch(r){n.error("Failed to encrypt and store data",r instanceof Error?r:{message:String(r)})}}async getItem(t){try{await this.ensureInitialized();let e=`${t}_expiry`,i=this.storage.getItem(e);if(i){let f=parseInt(i,10);if(Date.now()>f)return this.removeItem(t),null}let r=this.storage.getItem(t);if(!r)return null;if(!l(r))return this.removeItem(t),null;let o=await this.generateFingerprint(),s=await u(r,o);return s||(n.warn("Failed to decrypt stored data - may be corrupted"),this.removeItem(t),null)}catch(e){return n.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`)}clear(){this.storage.clear()}async setToken(t){try{let e=t.split(".");if(e.length===3){let i=JSON.parse(atob(e[1]));if(i.exp){let r=i.exp*1e3,o=Date.now(),s=Math.floor((r-o)/(60*1e3));if(s>0){await this.setItem("authToken",t,s);return}}}}catch{n.warn("Failed to parse token expiry, using default expiry")}await this.setItem("authToken",t,1440)}async getToken(){let t=await this.getItem("authToken");if(t)try{let e=t.split(".");if(e.length===3){let i=JSON.parse(atob(e[1]));if(i.exp){let r=Math.floor(Date.now()/1e3);if(i.exp<r)return this.removeItem("authToken"),null}}}catch{return n.warn("Failed to validate token expiry"),this.removeItem("authToken"),null}return t}async hasValidToken(){return await this.getToken()!==null}async migrateFromLocalStorage(t){let e=window.localStorage.getItem(t);e&&(window.localStorage.removeItem(t),t==="authToken"?await this.setToken(e):await this.setItem(t,e))}uint8ArrayToBase64(t){let e="";for(let i=0;i<t.length;i++)e+=String.fromCharCode(t[i]);return btoa(e)}base64ToUint8Array(t){let e=atob(t),i=new Uint8Array(e.length);for(let r=0;r<e.length;r++)i[r]=e.charCodeAt(r);return i}},I=new a("sessionStorage"),T=new a("localStorage");export{I as a,T as b};
|