@flipdish/portal-library 8.5.4 → 8.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/components/atoms/Button/buttonThemeOverrides.cjs.js +1 -1
  2. package/dist/components/atoms/Button/buttonThemeOverrides.cjs.js.map +1 -1
  3. package/dist/components/atoms/Button/buttonThemeOverrides.d.ts +3 -0
  4. package/dist/components/atoms/Button/buttonThemeOverrides.js +1 -1
  5. package/dist/components/atoms/Button/buttonThemeOverrides.js.map +1 -1
  6. package/dist/components/atoms/Button/getButtonStyles.cjs.js +1 -1
  7. package/dist/components/atoms/Button/getButtonStyles.cjs.js.map +1 -1
  8. package/dist/components/atoms/Button/getButtonStyles.js +1 -1
  9. package/dist/components/atoms/Button/getButtonStyles.js.map +1 -1
  10. package/dist/components/atoms/Button/index.cjs.js +1 -1
  11. package/dist/components/atoms/Button/index.cjs.js.map +1 -1
  12. package/dist/components/atoms/Button/index.d.ts +2 -1
  13. package/dist/components/atoms/Button/index.js +1 -1
  14. package/dist/components/atoms/Button/index.js.map +1 -1
  15. package/dist/components/organisms/AssetManager/index.cjs.js +1 -1
  16. package/dist/components/organisms/AssetManager/index.cjs.js.map +1 -1
  17. package/dist/components/organisms/AssetManager/index.js +1 -1
  18. package/dist/components/organisms/AssetManager/index.js.map +1 -1
  19. package/dist/components/organisms/AssetManager/services/asset.service.cjs.js +1 -1
  20. package/dist/components/organisms/AssetManager/services/asset.service.cjs.js.map +1 -1
  21. package/dist/components/organisms/AssetManager/services/asset.service.js +1 -1
  22. package/dist/components/organisms/AssetManager/services/asset.service.js.map +1 -1
  23. package/dist/mocks/msw/handlers.cjs.js +1 -1
  24. package/dist/mocks/msw/handlers.cjs.js.map +1 -1
  25. package/dist/mocks/msw/handlers.d.ts +1 -1
  26. package/dist/mocks/msw/handlers.js +1 -1
  27. package/dist/mocks/msw/handlers.js.map +1 -1
  28. package/dist/mocks/msw/server.cjs.js +1 -1
  29. package/dist/mocks/msw/server.d.ts +1 -1
  30. package/dist/mocks/msw/server.js +1 -1
  31. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/HttpResponse.cjs.js.map +1 -1
  32. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/HttpResponse.js.map +1 -1
  33. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/SetupApi.cjs.js.map +1 -1
  34. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/SetupApi.js.map +1 -1
  35. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/HttpHandler.cjs.js.map +1 -1
  36. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/HttpHandler.js.map +1 -1
  37. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/RequestHandler.cjs.js.map +1 -1
  38. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/RequestHandler.js.map +1 -1
  39. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/http.cjs.js.map +1 -1
  40. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/http.js.map +1 -1
  41. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/index.cjs.js.map +1 -1
  42. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/index.js.map +1 -1
  43. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/isCommonAssetRequest.cjs.js.map +1 -1
  44. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/isCommonAssetRequest.js.map +1 -1
  45. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/HttpResponse/decorators.cjs.js.map +1 -1
  46. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/HttpResponse/decorators.js.map +1 -1
  47. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/cookieStore.cjs.js.map +1 -1
  48. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/cookieStore.js.map +1 -1
  49. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/executeHandlers.cjs.js.map +1 -1
  50. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/executeHandlers.js.map +1 -1
  51. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/handleRequest.cjs.js.map +1 -1
  52. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/handleRequest.js.map +1 -1
  53. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/Disposable.cjs.js.map +1 -1
  54. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/Disposable.js.map +1 -1
  55. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/checkGlobals.cjs.js.map +1 -1
  56. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/checkGlobals.js.map +1 -1
  57. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/devUtils.cjs.js.map +1 -1
  58. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/devUtils.js.map +1 -1
  59. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/getCallFrame.cjs.js.map +1 -1
  60. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/getCallFrame.js.map +1 -1
  61. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isHandlerKind.cjs.js.map +1 -1
  62. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isHandlerKind.js.map +1 -1
  63. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isIterable.cjs.js.map +1 -1
  64. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isIterable.js.map +1 -1
  65. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isObject.cjs.js.map +1 -1
  66. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isObject.js.map +1 -1
  67. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isStringEqual.cjs.js.map +1 -1
  68. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isStringEqual.js.map +1 -1
  69. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/jsonParse.cjs.js.map +1 -1
  70. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/jsonParse.js.map +1 -1
  71. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/mergeRight.cjs.js.map +1 -1
  72. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/mergeRight.js.map +1 -1
  73. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/pipeEvents.cjs.js.map +1 -1
  74. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/pipeEvents.js.map +1 -1
  75. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/toReadonlyArray.cjs.js.map +1 -1
  76. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/toReadonlyArray.js.map +1 -1
  77. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.cjs.js.map +1 -1
  78. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.js.map +1 -1
  79. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getTimestamp.cjs.js.map +1 -1
  80. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getTimestamp.js.map +1 -1
  81. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeRequest.cjs.js.map +1 -1
  82. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeRequest.js.map +1 -1
  83. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeResponse.cjs.js.map +1 -1
  84. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeResponse.js.map +1 -1
  85. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/matchRequestUrl.cjs.js.map +1 -1
  86. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/matchRequestUrl.js.map +1 -1
  87. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/normalizePath.cjs.js.map +1 -1
  88. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/normalizePath.js.map +1 -1
  89. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/getRequestCookies.cjs.js.map +1 -1
  90. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/getRequestCookies.js.map +1 -1
  91. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/onUnhandledRequest.cjs.js.map +1 -1
  92. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/onUnhandledRequest.js.map +1 -1
  93. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/storeResponseCookies.cjs.js.map +1 -1
  94. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/storeResponseCookies.js.map +1 -1
  95. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/toPublicUrl.cjs.js.map +1 -1
  96. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/toPublicUrl.js.map +1 -1
  97. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/cleanUrl.cjs.js.map +1 -1
  98. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/cleanUrl.js.map +1 -1
  99. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.cjs.js.map +1 -1
  100. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.js.map +1 -1
  101. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.cjs.js.map +1 -1
  102. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.js.map +1 -1
  103. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/handleWebSocketEvent.cjs.js.map +1 -1
  104. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/handleWebSocketEvent.js.map +1 -1
  105. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/webSocketInterceptor.cjs.js.map +1 -1
  106. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/webSocketInterceptor.js.map +1 -1
  107. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/node/index.cjs.js.map +1 -1
  108. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/node/index.js.map +1 -1
  109. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/cookie.cjs.js.map +1 -1
  110. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/cookie.js.map +1 -1
  111. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/statuses.cjs.js.map +1 -1
  112. package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/statuses.js.map +1 -1
  113. package/package.json +1 -1
  114. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/HttpResponse-CVs3ngx3.d.d.ts +0 -0
  115. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/HttpResponse.cjs.js +0 -0
  116. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/HttpResponse.js +0 -0
  117. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/SetupApi.cjs.js +0 -0
  118. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/SetupApi.d.d.ts +0 -0
  119. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/SetupApi.js +0 -0
  120. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/HttpHandler.cjs.js +0 -0
  121. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/HttpHandler.d.d.ts +0 -0
  122. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/HttpHandler.js +0 -0
  123. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/RequestHandler.cjs.js +0 -0
  124. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/RequestHandler.js +0 -0
  125. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/handlers/WebSocketHandler.d.d.ts +0 -0
  126. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/http.cjs.js +0 -0
  127. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/http.js +0 -0
  128. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/index.cjs.js +0 -0
  129. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/index.js +0 -0
  130. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/isCommonAssetRequest.cjs.js +0 -0
  131. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/isCommonAssetRequest.js +0 -0
  132. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/sharedOptions.d.d.ts +0 -0
  133. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/typeUtils.d.d.ts +0 -0
  134. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/HttpResponse/decorators.cjs.js +0 -0
  135. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/HttpResponse/decorators.js +0 -0
  136. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/cookieStore.cjs.js +0 -0
  137. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/cookieStore.js +0 -0
  138. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/executeHandlers.cjs.js +0 -0
  139. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/executeHandlers.js +0 -0
  140. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/handleRequest.cjs.js +0 -0
  141. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/handleRequest.js +0 -0
  142. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/Disposable.cjs.js +0 -0
  143. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/Disposable.d.d.ts +0 -0
  144. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/Disposable.js +0 -0
  145. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/checkGlobals.cjs.js +0 -0
  146. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/checkGlobals.js +0 -0
  147. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/devUtils.cjs.js +0 -0
  148. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/devUtils.js +0 -0
  149. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/getCallFrame.cjs.js +0 -0
  150. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/getCallFrame.js +0 -0
  151. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isHandlerKind.cjs.js +0 -0
  152. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isHandlerKind.js +0 -0
  153. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isIterable.cjs.js +0 -0
  154. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isIterable.d.d.ts +0 -0
  155. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isIterable.js +0 -0
  156. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isObject.cjs.js +0 -0
  157. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isObject.js +0 -0
  158. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isStringEqual.cjs.js +0 -0
  159. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/isStringEqual.js +0 -0
  160. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/jsonParse.cjs.js +0 -0
  161. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/jsonParse.js +0 -0
  162. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/mergeRight.cjs.js +0 -0
  163. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/mergeRight.js +0 -0
  164. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/pipeEvents.cjs.js +0 -0
  165. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/pipeEvents.js +0 -0
  166. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/toReadonlyArray.cjs.js +0 -0
  167. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/internal/toReadonlyArray.js +0 -0
  168. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.cjs.js +0 -0
  169. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getStatusCodeColor.js +0 -0
  170. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getTimestamp.cjs.js +0 -0
  171. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/getTimestamp.js +0 -0
  172. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeRequest.cjs.js +0 -0
  173. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeRequest.js +0 -0
  174. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeResponse.cjs.js +0 -0
  175. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/logging/serializeResponse.js +0 -0
  176. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/matchRequestUrl.cjs.js +0 -0
  177. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/matchRequestUrl.d.d.ts +0 -0
  178. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/matchRequestUrl.js +0 -0
  179. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/normalizePath.cjs.js +0 -0
  180. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/matching/normalizePath.js +0 -0
  181. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/getRequestCookies.cjs.js +0 -0
  182. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/getRequestCookies.js +0 -0
  183. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/onUnhandledRequest.cjs.js +0 -0
  184. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/onUnhandledRequest.d.d.ts +0 -0
  185. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/onUnhandledRequest.js +0 -0
  186. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/storeResponseCookies.cjs.js +0 -0
  187. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/storeResponseCookies.js +0 -0
  188. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/toPublicUrl.cjs.js +0 -0
  189. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/request/toPublicUrl.js +0 -0
  190. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/cleanUrl.cjs.js +0 -0
  191. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/cleanUrl.js +0 -0
  192. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.cjs.js +0 -0
  193. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/getAbsoluteUrl.js +0 -0
  194. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.cjs.js +0 -0
  195. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/utils/url/isAbsoluteUrl.js +0 -0
  196. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/handleWebSocketEvent.cjs.js +0 -0
  197. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/handleWebSocketEvent.js +0 -0
  198. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/webSocketInterceptor.cjs.js +0 -0
  199. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/core/ws/webSocketInterceptor.js +0 -0
  200. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/node/index.cjs.js +0 -0
  201. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/node/index.d.d.ts +0 -0
  202. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/node/index.js +0 -0
  203. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/cookie.cjs.js +0 -0
  204. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/cookie.js +0 -0
  205. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/statuses.cjs.js +0 -0
  206. /package/dist/node_modules/.pnpm/{msw@2.12.10_@types_node@20.19.33_typescript@5.4.5 → msw@2.12.10_@types_node@20.19.34_typescript@5.4.5}/node_modules/msw/lib/shims/statuses.js +0 -0
@@ -1,2 +1,2 @@
1
- import{jsx as t}from"react/jsx-runtime";import"react";import e from"@mui/material/Button";import{styled as r}from"@mui/material/styles";import i from"./getButtonStyles.js";const a=r(e,{shouldForwardProp:t=>!["casingOverride","customVariant","tone"].includes(t)})((({theme:t,customVariant:e="primary",tone:r="brand",casingOverride:a="none",fullWidth:o=!1})=>{const n=i(t,e,r);return{...n.default,width:o?"100%":"fit-content",maxWidth:o?"100%":"fit-content",textTransform:a,transition:"all 0.2s ease-in-out","&:hover":{...n.hover},"&:focus":{outline:"none"},"&:focus-visible":{...n.focus},"&:active":{...n.press},"&:disabled":{...n.disabled,cursor:"not-allowed"}}})),o={primary:"contained",secondary:"outlined",tertiary:"text"},n=({casingOverride:e="none",children:r,className:i,disabled:n=!1,endIcon:s,fdKey:d,form:l,fullWidth:c=!1,href:m,onKeyDown:u,size:f="medium",startIcon:p,target:h,tone:y,type:v="button",variant:b="primary",...g})=>t(a,{...g,disableRipple:!0,casingOverride:e,className:i,customVariant:b,"data-fd":d,disabled:n,endIcon:s,form:l,fullWidth:c,href:m,size:f,startIcon:p,target:h,tone:y,type:v,variant:o[b],children:r});export{n as Button,n as default};
1
+ import{jsx as t}from"react/jsx-runtime";import"react";import e from"@mui/material/Button";import{styled as r}from"@mui/material/styles";import i from"./getButtonStyles.js";const a=r(e,{shouldForwardProp:t=>!["casingOverride","customVariant","tone"].includes(t)})((({theme:t,customVariant:e="primary",tone:r="brand",casingOverride:a="none",fullWidth:o=!1})=>{const n=i(t,e,r);return{...n.default,width:o?"100%":"fit-content",maxWidth:o?"100%":"fit-content",textTransform:a,transition:"all 0.2s ease-in-out","&:hover":{...n.hover},"&:focus":{outline:"none"},"&:focus-visible":{...n.focus},"&:active":{...n.press},"&:disabled":{...n.disabled,cursor:"not-allowed"}}})),o={primary:"contained",secondary:"outlined",tertiary:"text"},n=({casingOverride:e="none",children:r,className:i,disabled:n=!1,endIcon:s,fdKey:d,form:l,fullWidth:c=!1,href:m,loading:u=!1,onKeyDown:f,size:p="medium",startIcon:h,target:y,tone:g,type:v="button",variant:b="primary",...x})=>t(a,{...x,disableRipple:!0,casingOverride:e,className:i,customVariant:b,"data-fd":d,"data-tone":g,disabled:n,endIcon:s,form:l,fullWidth:c,href:m,loading:u,loadingPosition:"start",size:p,startIcon:h,target:y,tone:g,type:v,variant:o[b],children:r});export{n as Button,n as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/Button/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport MuiButton, { type ButtonProps as MuiButtonProps } from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\n\nimport getButtonStyles, { type ButtonTone, type ButtonType } from './getButtonStyles';\n\ntype CasingOverride = 'capitalize' | 'lowercase' | 'none' | 'uppercase';\n\nexport interface ButtonProps extends Omit<MuiButtonProps, 'variant'> {\n className?: string;\n children: React.ReactNode;\n disabled?: boolean;\n form?: string;\n fullWidth?: boolean;\n casingOverride?: CasingOverride;\n type?: 'button' | 'reset' | 'submit';\n fdKey: string;\n variant?: ButtonType;\n tone?: ButtonTone;\n target?: '_blank';\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n}\n\nconst StyledButton = styled(MuiButton, {\n shouldForwardProp: (prop) => !['casingOverride', 'customVariant', 'tone'].includes(prop as string),\n})<{ casingOverride?: CasingOverride; customVariant?: ButtonType; tone?: ButtonTone }>(({\n theme,\n customVariant = 'primary',\n tone = 'brand',\n casingOverride = 'none',\n fullWidth = false,\n}) => {\n const styles = getButtonStyles(theme, customVariant, tone);\n\n return {\n ...styles.default,\n width: fullWidth ? '100%' : 'fit-content',\n maxWidth: fullWidth ? '100%' : 'fit-content',\n textTransform: casingOverride,\n transition: 'all 0.2s ease-in-out',\n\n '&:hover': { ...styles.hover },\n '&:focus': {\n outline: 'none', // Removes the focus ring on click\n },\n // focus visible so that the focus ring only shows for keyboard users\n '&:focus-visible': { ...styles.focus },\n '&:active': { ...styles.press },\n '&:disabled': { ...styles.disabled, cursor: 'not-allowed' },\n };\n});\n\nconst MUI_VARIANT_MAP = {\n primary: 'contained',\n secondary: 'outlined',\n tertiary: 'text',\n};\n\nexport const Button = ({\n casingOverride = 'none',\n children,\n className,\n disabled = false,\n endIcon,\n fdKey,\n form,\n fullWidth = false,\n href,\n onKeyDown,\n size = 'medium',\n startIcon,\n target,\n tone,\n type = 'button',\n variant = 'primary',\n ...props\n}: ButtonProps): JSX.Element => {\n return (\n <StyledButton\n {...props}\n disableRipple\n casingOverride={casingOverride}\n className={className}\n customVariant={variant}\n data-fd={fdKey}\n disabled={disabled}\n endIcon={endIcon}\n form={form}\n fullWidth={fullWidth}\n href={href}\n size={size}\n startIcon={startIcon}\n // @ts-expect-error - target is not a valid prop for MuiButton\n target={target}\n tone={tone}\n type={type}\n variant={MUI_VARIANT_MAP[variant] as MuiButtonProps['variant']}\n >\n {children}\n </StyledButton>\n );\n};\n\nexport default Button;\n"],"names":["StyledButton","styled","MuiButton","shouldForwardProp","prop","includes","theme","customVariant","tone","casingOverride","fullWidth","styles","getButtonStyles","default","width","maxWidth","textTransform","transition","hover","outline","focus","press","disabled","cursor","MUI_VARIANT_MAP","primary","secondary","tertiary","Button","children","className","endIcon","fdKey","form","href","onKeyDown","size","startIcon","target","type","variant","props","_jsx","disableRipple"],"mappings":"4KAyBA,MAAMA,EAAeC,EAAOC,EAAW,CACrCC,kBAAoBC,IAAU,CAAC,iBAAkB,gBAAiB,QAAQC,SAASD,IADhEH,EAEkE,EACrFK,QACAC,gBAAgB,UAChBC,OAAO,QACPC,iBAAiB,OACjBC,aAAY,MAEZ,MAAMC,EAASC,EAAgBN,EAAOC,EAAeC,GAErD,MAAO,IACFG,EAAOE,QACVC,MAAOJ,EAAY,OAAS,cAC5BK,SAAUL,EAAY,OAAS,cAC/BM,cAAeP,EACfQ,WAAY,uBAEZ,UAAW,IAAKN,EAAOO,OACvB,UAAW,CACTC,QAAS,QAGX,kBAAmB,IAAKR,EAAOS,OAC/B,WAAY,IAAKT,EAAOU,OACxB,aAAc,IAAKV,EAAOW,SAAUC,OAAQ,mBAI1CC,EAAkB,CACtBC,QAAS,YACTC,UAAW,WACXC,SAAU,QAGCC,EAAS,EACpBnB,iBAAiB,OACjBoB,WACAC,YACAR,YAAW,EACXS,UACAC,QACAC,OACAvB,aAAY,EACZwB,OACAC,YACAC,OAAO,SACPC,YACAC,SACA9B,OACA+B,OAAO,SACPC,UAAU,aACPC,KAGDC,EAAC1C,EAAY,IACPyC,EACJE,eAAa,EACblC,eAAgBA,EAChBqB,UAAWA,EACXvB,cAAeiC,EAAO,UACbR,EACTV,SAAUA,EACVS,QAASA,EACTE,KAAMA,EACNvB,UAAWA,EACXwB,KAAMA,EACNE,KAAMA,EACNC,UAAWA,EAEXC,OAAQA,EACR9B,KAAMA,EACN+B,KAAMA,EACNC,QAAShB,EAAgBgB,GAAqCX,SAE7DA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/Button/index.tsx"],"sourcesContent":["import React from 'react';\n\nimport MuiButton, { type ButtonProps as MuiButtonProps } from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\n\nimport getButtonStyles, { type ButtonTone, type ButtonType } from './getButtonStyles';\n\ntype CasingOverride = 'capitalize' | 'lowercase' | 'none' | 'uppercase';\n\nexport interface ButtonProps extends Omit<MuiButtonProps, 'variant'> {\n className?: string;\n children: React.ReactNode;\n disabled?: boolean;\n form?: string;\n fullWidth?: boolean;\n casingOverride?: CasingOverride;\n type?: 'button' | 'reset' | 'submit';\n fdKey: string;\n variant?: ButtonType;\n tone?: ButtonTone;\n target?: '_blank';\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n loading?: boolean;\n}\n\nconst StyledButton = styled(MuiButton, {\n shouldForwardProp: (prop) => !['casingOverride', 'customVariant', 'tone'].includes(prop as string),\n})<{ casingOverride?: CasingOverride; customVariant?: ButtonType; tone?: ButtonTone }>(({\n theme,\n customVariant = 'primary',\n tone = 'brand',\n casingOverride = 'none',\n fullWidth = false,\n}) => {\n const styles = getButtonStyles(theme, customVariant, tone);\n\n return {\n ...styles.default,\n width: fullWidth ? '100%' : 'fit-content',\n maxWidth: fullWidth ? '100%' : 'fit-content',\n textTransform: casingOverride,\n transition: 'all 0.2s ease-in-out',\n\n '&:hover': { ...styles.hover },\n '&:focus': {\n outline: 'none', // Removes the focus ring on click\n },\n // focus visible so that the focus ring only shows for keyboard users\n '&:focus-visible': { ...styles.focus },\n '&:active': { ...styles.press },\n '&:disabled': { ...styles.disabled, cursor: 'not-allowed' },\n };\n});\n\nconst MUI_VARIANT_MAP = {\n primary: 'contained',\n secondary: 'outlined',\n tertiary: 'text',\n};\n\nexport const Button = ({\n casingOverride = 'none',\n children,\n className,\n disabled = false,\n endIcon,\n fdKey,\n form,\n fullWidth = false,\n href,\n loading = false,\n onKeyDown,\n size = 'medium',\n startIcon,\n target,\n tone,\n type = 'button',\n variant = 'primary',\n ...props\n}: ButtonProps): JSX.Element => {\n return (\n <StyledButton\n {...props}\n disableRipple\n casingOverride={casingOverride}\n className={className}\n customVariant={variant}\n data-fd={fdKey}\n data-tone={tone}\n disabled={disabled}\n endIcon={endIcon}\n form={form}\n fullWidth={fullWidth}\n href={href}\n loading={loading}\n loadingPosition=\"start\"\n size={size}\n startIcon={startIcon}\n // @ts-expect-error - target is not a valid prop for MuiButton\n target={target}\n tone={tone}\n type={type}\n variant={MUI_VARIANT_MAP[variant] as MuiButtonProps['variant']}\n >\n {children}\n </StyledButton>\n );\n};\n\nexport default Button;\n"],"names":["StyledButton","styled","MuiButton","shouldForwardProp","prop","includes","theme","customVariant","tone","casingOverride","fullWidth","styles","getButtonStyles","default","width","maxWidth","textTransform","transition","hover","outline","focus","press","disabled","cursor","MUI_VARIANT_MAP","primary","secondary","tertiary","Button","children","className","endIcon","fdKey","form","href","loading","onKeyDown","size","startIcon","target","type","variant","props","_jsx","disableRipple","loadingPosition"],"mappings":"4KA0BA,MAAMA,EAAeC,EAAOC,EAAW,CACrCC,kBAAoBC,IAAU,CAAC,iBAAkB,gBAAiB,QAAQC,SAASD,IADhEH,EAEkE,EACrFK,QACAC,gBAAgB,UAChBC,OAAO,QACPC,iBAAiB,OACjBC,aAAY,MAEZ,MAAMC,EAASC,EAAgBN,EAAOC,EAAeC,GAErD,MAAO,IACFG,EAAOE,QACVC,MAAOJ,EAAY,OAAS,cAC5BK,SAAUL,EAAY,OAAS,cAC/BM,cAAeP,EACfQ,WAAY,uBAEZ,UAAW,IAAKN,EAAOO,OACvB,UAAW,CACTC,QAAS,QAGX,kBAAmB,IAAKR,EAAOS,OAC/B,WAAY,IAAKT,EAAOU,OACxB,aAAc,IAAKV,EAAOW,SAAUC,OAAQ,mBAI1CC,EAAkB,CACtBC,QAAS,YACTC,UAAW,WACXC,SAAU,QAGCC,EAAS,EACpBnB,iBAAiB,OACjBoB,WACAC,YACAR,YAAW,EACXS,UACAC,QACAC,OACAvB,aAAY,EACZwB,OACAC,WAAU,EACVC,YACAC,OAAO,SACPC,YACAC,SACA/B,OACAgC,OAAO,SACPC,UAAU,aACPC,KAGDC,EAAC3C,EAAY,IACP0C,EACJE,eAAa,EACbnC,eAAgBA,EAChBqB,UAAWA,EACXvB,cAAekC,EAAO,UACbT,EAAK,YACHxB,EACXc,SAAUA,EACVS,QAASA,EACTE,KAAMA,EACNvB,UAAWA,EACXwB,KAAMA,EACNC,QAASA,EACTU,gBAAgB,QAChBR,KAAMA,EACNC,UAAWA,EAEXC,OAAQA,EACR/B,KAAMA,EACNgC,KAAMA,EACNC,QAASjB,EAAgBiB,GAAqCZ,SAE7DA"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),a=require("react"),s=require("@mui/material/styles"),r=require("@mui/material/Box"),l=require("../../atoms/Tab/index.cjs.js"),i=require("../../molecules/Modal/index.cjs.js"),t=require("../../molecules/Tabs/index.cjs.js"),n=require("../../../providers/TranslationProvider.cjs.js"),o=require("@tanstack/react-query"),d=require("./hooks/useAssetSelection.cjs.js"),c=require("./hooks/useAssetUploadManager.cjs.js"),u=require("./hooks/useGetAssets.cjs.js"),p=require("./LibraryTabContent/index.cjs.js"),g=require("./UploadTabContent/index.cjs.js");const m=s.styled(r)((({theme:e})=>({height:"calc(70vh - 200px)",overflowY:"auto",marginTop:e.spacing(2),marginRight:e.spacing(-2),marginLeft:e.spacing(-1),marginBottom:e.spacing(-1),paddingRight:e.spacing(2),paddingLeft:e.spacing(1),paddingBottom:e.spacing(1)}))),j=new o.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:2}}}),b=({open:s,onClose:r,onSelect:o,orgId:j,brandId:b,maxSelect:y=1})=>{const[h,x]=a.useState("library"),{translate:v}=n.useTranslation(),{data:q,isLoading:C,error:S}=u.useGetAssets(j,s,b),{selectedAssetsMap:A,handleAssetClick:f,clearSelection:k,addAssetsToSelection:U}=d.useAssetSelection({maxSelect:y}),{uploadedFiles:T,uploadError:_,isUploading:I,handleUpload:L,handleRemove:M,handleSave:E,clearUploadedFiles:F,clearSaveUploadError:R}=c.useAssetUploadManager({orgId:j,brandId:b,onUploadSuccess:e=>{U(e),x("library")},getErrorMessage:()=>v("Failed_to_upload_assets_try_again")});a.useEffect((()=>{s||(k(),F(),R())}),[s,k,F,R]);const w=a.useCallback((()=>{k(),r()}),[r,k]),B=a.useCallback((()=>{if(0===A.size)return void r();const e=Array.from(A.values());o&&e.length>0&&o(e),k(),r()}),[o,A,r,k]),z=a.useMemo((()=>{const e={label:v("Cancel"),onClick:w,variant:"secondary",tone:"neutral",id:"asset-manager-cancel"},a={library:[e,{label:v("Select"),onClick:B,variant:"primary",id:"asset-manager-select"}],upload:[e,{label:v("Save"),onClick:E,disabled:I,variant:"primary",id:"asset-manager-upload"}]};return a[h]??a.library}),[h,I,w,B,E,v]);return e.jsxs(i,{actions:z,onClose:w,open:s,size:"large",title:v("library"===h?"Select_Images":"Upload_Images"),children:[e.jsxs(t,{fdKey:"asset-manager-tabs",onChange:(e,a)=>{x(a),F()},value:h,children:[e.jsx(l,{label:v("Upload"),value:"upload"}),e.jsx(l,{label:v("Library"),value:"library"})]}),e.jsx(m,{children:"library"===h?e.jsx(p,{assets:q?.data,error:S,isLoading:C,onAssetClick:f,selectedAssets:A}):e.jsx(g,{error:_,files:T,onRemove:M,onUpload:L})})]})};module.exports=a=>e.jsx(o.QueryClientProvider,{client:j,children:e.jsx(b,{...a})});
1
+ "use strict";var e=require("react/jsx-runtime"),a=require("react"),s=require("@mui/material/styles"),r=require("@mui/material/Box"),l=require("../../atoms/Tab/index.cjs.js"),i=require("../../molecules/Modal/index.cjs.js"),t=require("../../molecules/Tabs/index.cjs.js"),n=require("../../../providers/TranslationProvider.cjs.js"),o=require("@tanstack/react-query"),d=require("./hooks/useAssetSelection.cjs.js"),c=require("./hooks/useAssetUploadManager.cjs.js"),u=require("./hooks/useGetAssets.cjs.js"),g=require("./LibraryTabContent/index.cjs.js"),p=require("./UploadTabContent/index.cjs.js");const m=s.styled(r)((({theme:e})=>({height:"calc(70vh - 200px)",overflowY:"auto",marginTop:e.spacing(2),marginRight:e.spacing(-2),marginLeft:e.spacing(-1),marginBottom:e.spacing(-1),paddingRight:e.spacing(2),paddingLeft:e.spacing(1),paddingBottom:e.spacing(1)}))),j=new o.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:2}}}),b=({open:s,onClose:r,onSelect:o,orgId:j,brandId:b,maxSelect:y=1})=>{const[h,x]=a.useState("library"),{translate:v}=n.useTranslation(),{data:q,isLoading:C,error:S}=u.useGetAssets(j,s,b),{selectedAssetsMap:A,handleAssetClick:f,clearSelection:k,addAssetsToSelection:U}=d.useAssetSelection({maxSelect:y}),{uploadedFiles:T,uploadError:_,isUploading:I,handleUpload:L,handleRemove:M,handleSave:E,clearUploadedFiles:F,clearSaveUploadError:R}=c.useAssetUploadManager({orgId:j,brandId:b,onUploadSuccess:e=>{U(e),x("library")},getErrorMessage:()=>v("Failed_to_upload_assets_try_again")});a.useEffect((()=>{s||(k(),F(),R())}),[s,k,F,R]);const w=a.useCallback((()=>{k(),r()}),[r,k]),B=a.useCallback((()=>{if(0===A.size)return void r();const e=Array.from(A.values());o&&e.length>0&&o(e),k(),r()}),[o,A,r,k]),z=a.useMemo((()=>{const e={label:v("Cancel"),onClick:w,variant:"secondary",tone:"neutral",id:"asset-manager-cancel"},a={library:[e,{label:v("Select"),onClick:B,variant:"primary",id:"asset-manager-select"}],upload:[e,{label:v("Save"),onClick:E,loading:I,variant:"primary",id:"asset-manager-upload"}]};return a[h]??a.library}),[h,I,w,B,E,v]);return e.jsxs(i,{actions:z,onClose:w,open:s,size:"large",title:v("library"===h?"Select_Images":"Upload_Images"),children:[e.jsxs(t,{fdKey:"asset-manager-tabs",onChange:(e,a)=>{x(a),F()},value:h,children:[e.jsx(l,{label:v("Upload"),value:"upload"}),e.jsx(l,{label:v("Library"),value:"library"})]}),e.jsx(m,{children:"library"===h?e.jsx(g,{assets:q?.data,error:S,isLoading:C,onAssetClick:f,selectedAssets:A}):e.jsx(p,{error:_,files:T,onRemove:M,onUpload:L})})]})};module.exports=a=>e.jsx(o.QueryClientProvider,{client:j,children:e.jsx(b,{...a})});
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../../src/components/organisms/AssetManager/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { styled } from '@mui/material/styles';\n\nimport Box from '@fd/components/atoms/Box';\nimport Tab from '@fd/components/atoms/Tab';\nimport Modal, { type ModalAction } from '@fd/components/molecules/Modal';\nimport Tabs from '@fd/components/molecules/Tabs';\nimport { useTranslation } from '@fd/providers/TranslationProvider';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n\nimport { useAssetSelection } from './hooks/useAssetSelection';\nimport { useAssetUploadManager } from './hooks/useAssetUploadManager';\nimport { useGetAssets } from './hooks/useGetAssets';\nimport LibraryTabContent from './LibraryTabContent';\nimport type { Asset } from './types/assets.type';\nimport UploadAssetContent from './UploadTabContent';\n/**\n * Scrollable container for the tab content.\n * Allows the asset list to scroll while keeping the modal title, tabs, and actions visible.\n * Uses fixed height to prevent modal resizing when switching tabs.\n */\nconst StyledScrollableContent = styled(Box)(({ theme }) => ({\n height: 'calc(70vh - 200px)', // Fixed height for consistent modal size across tabs\n overflowY: 'auto',\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(-2), // Extend to edge for scrollbar\n marginLeft: theme.spacing(-1), // Allow space for shadows on left\n marginBottom: theme.spacing(-1), // Allow space for shadows on bottom\n paddingRight: theme.spacing(2), // Compensate for negative margin\n paddingLeft: theme.spacing(1), // Compensate for negative margin\n paddingBottom: theme.spacing(1), // Compensate for negative margin\n}));\n\n/**\n * Props for the AssetManager component.\n * Provides a modal interface for selecting images from a grid display.\n * It supports both single and multiple image selection modes with configurable limits.\n *\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n *\n * ```tsx\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n */\nexport interface AssetManagerProps {\n /** Whether the asset manager modal is open */\n open: boolean;\n /** Callback function when the modal is closed or cancelled */\n onClose: () => void;\n /** Callback function when assets are selected */\n onSelect?: (selectedAssets: Asset[]) => void;\n /**\n * Organization ID for fetching assets\n */\n orgId: string;\n /** Brand ID for fetching assets */\n brandId?: string;\n /** Maximum number of assets that can be selected. Defaults to 1 */\n maxSelect?: number;\n}\n\n// Create a QueryClient instance for the AssetManager component\n// This allows the component to be used without requiring clients to wrap it in QueryClientProvider\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retry: 2,\n },\n },\n});\n\n/**\n * Inner component that contains the AssetManager logic.\n * Must be rendered inside QueryClientProvider to use React Query hooks.\n */\nconst AssetManagerContent: React.FC<AssetManagerProps> = ({\n open,\n onClose,\n onSelect,\n orgId,\n brandId,\n maxSelect = 1,\n}) => {\n const [selectedTab, setSelectedTab] = useState<string>('library');\n const { translate } = useTranslation();\n\n // Fetch assets at the parent level to enable future reuse across tabs\n const {\n data: assetResponse,\n isLoading: isLoadingAssets,\n error: assetsError,\n } = useGetAssets(orgId, open, brandId);\n\n // Asset selection hook - manages selected assets from library\n const { selectedAssetsMap, handleAssetClick, clearSelection, addAssetsToSelection } = useAssetSelection({\n maxSelect,\n });\n\n // Asset upload hook - manages file uploads and upload state\n const {\n uploadedFiles,\n uploadError,\n isUploading,\n handleUpload,\n handleRemove,\n handleSave,\n clearUploadedFiles,\n clearSaveUploadError,\n } = useAssetUploadManager({\n orgId,\n brandId,\n onUploadSuccess: (uploadedAssets) => {\n // Add uploaded assets to selection and switch to library tab\n addAssetsToSelection(uploadedAssets);\n setSelectedTab('library');\n },\n getErrorMessage: () => translate('Failed_to_upload_assets_try_again'),\n });\n\n // Reset state when modal opens/closes\n useEffect(() => {\n if (!open) {\n clearSelection();\n clearUploadedFiles();\n clearSaveUploadError();\n }\n }, [open, clearSelection, clearUploadedFiles, clearSaveUploadError]);\n\n const handleCancel = useCallback((): void => {\n clearSelection();\n onClose();\n }, [onClose, clearSelection]);\n\n const handleSelectAssets = useCallback((): void => {\n if (selectedAssetsMap.size === 0) {\n onClose();\n return;\n }\n const selectedAssets = Array.from(selectedAssetsMap.values());\n if (onSelect && selectedAssets.length > 0) {\n onSelect(selectedAssets);\n }\n clearSelection();\n onClose();\n }, [onSelect, selectedAssetsMap, onClose, clearSelection]);\n\n const getTitle = (): string => {\n switch (selectedTab) {\n case 'library':\n return translate('Select_Images');\n default:\n return translate('Upload_Images');\n }\n };\n\n // Tab-specific action button configurations\n const actionButtons = useMemo<ModalAction[]>(() => {\n // Common cancel button configuration\n const cancelButton: ModalAction = {\n label: translate('Cancel'),\n onClick: handleCancel,\n variant: 'secondary',\n tone: 'neutral',\n id: 'asset-manager-cancel',\n };\n\n const tabActions: Record<string, ModalAction[]> = {\n library: [\n cancelButton,\n {\n label: translate('Select'),\n onClick: handleSelectAssets,\n variant: 'primary',\n id: 'asset-manager-select',\n },\n ],\n upload: [\n cancelButton,\n {\n label: translate('Save'),\n onClick: handleSave,\n disabled: isUploading,\n variant: 'primary',\n id: 'asset-manager-upload',\n },\n ],\n };\n\n return tabActions[selectedTab] ?? (tabActions['library'] as ModalAction[]);\n }, [selectedTab, isUploading, handleCancel, handleSelectAssets, handleSave, translate]);\n\n return (\n <Modal actions={actionButtons} onClose={handleCancel} open={open} size=\"large\" title={getTitle()}>\n <Tabs\n fdKey=\"asset-manager-tabs\"\n onChange={(_, value: string) => {\n setSelectedTab(value);\n clearUploadedFiles();\n }}\n value={selectedTab}\n >\n <Tab label={translate('Upload')} value=\"upload\" />\n <Tab label={translate('Library')} value=\"library\" />\n </Tabs>\n <StyledScrollableContent>\n {selectedTab === 'library' ? (\n <LibraryTabContent\n assets={assetResponse?.data}\n error={assetsError}\n isLoading={isLoadingAssets}\n onAssetClick={handleAssetClick}\n selectedAssets={selectedAssetsMap}\n />\n ) : (\n <UploadAssetContent\n error={uploadError}\n files={uploadedFiles}\n onRemove={handleRemove}\n onUpload={handleUpload}\n />\n )}\n </StyledScrollableContent>\n </Modal>\n );\n};\n\n/**\n * AssetManager component used to select assets from the library or upload new assets.\n * Can manage assets at a organization or brand level.\n *\n * @example\n * ```tsx\n * <AssetManager\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * onSelect={(assets) => console.log(assets)}\n * orgId=\"org123\"\n * brandId=\"brand456\"\n * maxSelect={3}\n * />\n * ```\n */\nconst AssetManager: React.FC<AssetManagerProps> = (props) => {\n return (\n <QueryClientProvider client={queryClient}>\n <AssetManagerContent {...props} />\n </QueryClientProvider>\n );\n};\n\nexport type { Asset, AssetMetadata, AssetMetadataDimensions, AssetType } from './types/assets.type';\nexport default AssetManager;\n"],"names":["StyledScrollableContent","styled","Box","theme","height","overflowY","marginTop","spacing","marginRight","marginLeft","marginBottom","paddingRight","paddingLeft","paddingBottom","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","retry","AssetManagerContent","open","onClose","onSelect","orgId","brandId","maxSelect","selectedTab","setSelectedTab","useState","translate","useTranslation","data","assetResponse","isLoading","isLoadingAssets","error","assetsError","useGetAssets","selectedAssetsMap","handleAssetClick","clearSelection","addAssetsToSelection","useAssetSelection","uploadedFiles","uploadError","isUploading","handleUpload","handleRemove","handleSave","clearUploadedFiles","clearSaveUploadError","useAssetUploadManager","onUploadSuccess","uploadedAssets","getErrorMessage","useEffect","handleCancel","useCallback","handleSelectAssets","size","selectedAssets","Array","from","values","length","actionButtons","useMemo","cancelButton","label","onClick","variant","tone","id","tabActions","library","upload","disabled","_jsxs","Modal","actions","title","Tabs","fdKey","onChange","_","value","_jsx","Tab","children","LibraryTabContent","assets","onAssetClick","UploadAssetContent","files","onRemove","onUpload","props","QueryClientProvider","client"],"mappings":"+kBAsBA,MAAMA,EAA0BC,EAAAA,OAAOC,EAAPD,EAAY,EAAGE,YAAO,CACpDC,OAAQ,qBACRC,UAAW,OACXC,UAAWH,EAAMI,QAAQ,GACzBC,YAAaL,EAAMI,YACnBE,WAAYN,EAAMI,YAClBG,aAAcP,EAAMI,YACpBI,aAAcR,EAAMI,QAAQ,GAC5BK,YAAaT,EAAMI,QAAQ,GAC3BM,cAAeV,EAAMI,QAAQ,OAgCzBO,EAAc,IAAIC,EAAAA,YAAY,CAClCC,eAAgB,CACdC,QAAS,CACPC,sBAAsB,EACtBC,MAAO,MASPC,EAAmD,EACvDC,OACAC,UACAC,WACAC,QACAC,UACAC,YAAY,MAEZ,MAAOC,EAAaC,GAAkBC,EAAAA,SAAiB,YACjDC,UAAEA,GAAcC,oBAIpBC,KAAMC,EACNC,UAAWC,EACXC,MAAOC,GACLC,EAAAA,aAAad,EAAOH,EAAMI,IAGxBc,kBAAEA,EAAiBC,iBAAEA,EAAgBC,eAAEA,EAAcC,qBAAEA,GAAyBC,EAAAA,kBAAkB,CACtGjB,eAIIkB,cACJA,EAAaC,YACbA,EAAWC,YACXA,EAAWC,aACXA,EAAYC,aACZA,EAAYC,WACZA,EAAUC,mBACVA,EAAkBC,qBAClBA,GACEC,wBAAsB,CACxB5B,QACAC,UACA4B,gBAAkBC,IAEhBZ,EAAqBY,GACrB1B,EAAe,YAEjB2B,gBAAiB,IAAMzB,EAAU,uCAInC0B,EAAAA,WAAU,KACHnC,IACHoB,IACAS,IACAC,OAED,CAAC9B,EAAMoB,EAAgBS,EAAoBC,IAE9C,MAAMM,EAAeC,EAAAA,aAAY,KAC/BjB,IACAnB,MACC,CAACA,EAASmB,IAEPkB,EAAqBD,EAAAA,aAAY,KACrC,GAA+B,IAA3BnB,EAAkBqB,KAEpB,YADAtC,IAGF,MAAMuC,EAAiBC,MAAMC,KAAKxB,EAAkByB,UAChDzC,GAAYsC,EAAeI,OAAS,GACtC1C,EAASsC,GAEXpB,IACAnB,MACC,CAACC,EAAUgB,EAAmBjB,EAASmB,IAYpCyB,EAAgBC,EAAAA,SAAuB,KAE3C,MAAMC,EAA4B,CAChCC,MAAOvC,EAAU,UACjBwC,QAASb,EACTc,QAAS,YACTC,KAAM,UACNC,GAAI,wBAGAC,EAA4C,CAChDC,QAAS,CACPP,EACA,CACEC,MAAOvC,EAAU,UACjBwC,QAASX,EACTY,QAAS,UACTE,GAAI,yBAGRG,OAAQ,CACNR,EACA,CACEC,MAAOvC,EAAU,QACjBwC,QAASrB,EACT4B,SAAU/B,EACVyB,QAAS,UACTE,GAAI,0BAKV,OAAOC,EAAW/C,IAAiB+C,EAAoB,UACtD,CAAC/C,EAAamB,EAAaW,EAAcE,EAAoBV,EAAYnB,IAE5E,OACEgD,OAACC,EAAK,CAACC,QAASd,EAAe5C,QAASmC,EAAcpC,KAAMA,EAAMuC,KAAK,QAAQqB,MA3CpEnD,EADJ,YADCH,EAEa,gBAEA,2BA0CnBmD,EAAAA,KAACI,GACCC,MAAM,qBACNC,SAAU,CAACC,EAAGC,KACZ1D,EAAe0D,GACfpC,KAEFoC,MAAO3D,YAEP4D,EAAAA,IAACC,GAAInB,MAAOvC,EAAU,UAAWwD,MAAM,WACvCC,MAACC,EAAG,CAACnB,MAAOvC,EAAU,WAAYwD,MAAM,eAE1CC,EAAAA,IAACvF,EAAuB,CAAAyF,SACL,YAAhB9D,EACC4D,EAAAA,IAACG,EAAiB,CAChBC,OAAQ1D,GAAeD,KACvBI,MAAOC,EACPH,UAAWC,EACXyD,aAAcpD,EACdqB,eAAgBtB,IAGlBgD,EAAAA,IAACM,GACCzD,MAAOS,EACPiD,MAAOlD,EACPmD,SAAU/C,EACVgD,SAAUjD,yBAwB6BkD,GAE/CV,MAACW,EAAAA,oBAAmB,CAACC,OAAQrF,EAAW2E,SACtCF,EAAAA,IAACnE,EAAmB,IAAK6E"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../../src/components/organisms/AssetManager/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { styled } from '@mui/material/styles';\n\nimport Box from '@fd/components/atoms/Box';\nimport Tab from '@fd/components/atoms/Tab';\nimport Modal, { type ModalAction } from '@fd/components/molecules/Modal';\nimport Tabs from '@fd/components/molecules/Tabs';\nimport { useTranslation } from '@fd/providers/TranslationProvider';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n\nimport { useAssetSelection } from './hooks/useAssetSelection';\nimport { useAssetUploadManager } from './hooks/useAssetUploadManager';\nimport { useGetAssets } from './hooks/useGetAssets';\nimport LibraryTabContent from './LibraryTabContent';\nimport type { Asset } from './types/assets.type';\nimport UploadAssetContent from './UploadTabContent';\n/**\n * Scrollable container for the tab content.\n * Allows the asset list to scroll while keeping the modal title, tabs, and actions visible.\n * Uses fixed height to prevent modal resizing when switching tabs.\n */\nconst StyledScrollableContent = styled(Box)(({ theme }) => ({\n height: 'calc(70vh - 200px)', // Fixed height for consistent modal size across tabs\n overflowY: 'auto',\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(-2), // Extend to edge for scrollbar\n marginLeft: theme.spacing(-1), // Allow space for shadows on left\n marginBottom: theme.spacing(-1), // Allow space for shadows on bottom\n paddingRight: theme.spacing(2), // Compensate for negative margin\n paddingLeft: theme.spacing(1), // Compensate for negative margin\n paddingBottom: theme.spacing(1), // Compensate for negative margin\n}));\n\n/**\n * Props for the AssetManager component.\n * Provides a modal interface for selecting images from a grid display.\n * It supports both single and multiple image selection modes with configurable limits.\n *\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n *\n * ```tsx\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n */\nexport interface AssetManagerProps {\n /** Whether the asset manager modal is open */\n open: boolean;\n /** Callback function when the modal is closed or cancelled */\n onClose: () => void;\n /** Callback function when assets are selected */\n onSelect?: (selectedAssets: Asset[]) => void;\n /**\n * Organization ID for fetching assets\n */\n orgId: string;\n /** Brand ID for fetching assets */\n brandId?: string;\n /** Maximum number of assets that can be selected. Defaults to 1 */\n maxSelect?: number;\n}\n\n// Create a QueryClient instance for the AssetManager component\n// This allows the component to be used without requiring clients to wrap it in QueryClientProvider\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retry: 2,\n },\n },\n});\n\n/**\n * Inner component that contains the AssetManager logic.\n * Must be rendered inside QueryClientProvider to use React Query hooks.\n */\nconst AssetManagerContent: React.FC<AssetManagerProps> = ({\n open,\n onClose,\n onSelect,\n orgId,\n brandId,\n maxSelect = 1,\n}) => {\n const [selectedTab, setSelectedTab] = useState<string>('library');\n const { translate } = useTranslation();\n\n // Fetch assets at the parent level to enable future reuse across tabs\n const {\n data: assetResponse,\n isLoading: isLoadingAssets,\n error: assetsError,\n } = useGetAssets(orgId, open, brandId);\n\n // Asset selection hook - manages selected assets from library\n const { selectedAssetsMap, handleAssetClick, clearSelection, addAssetsToSelection } = useAssetSelection({\n maxSelect,\n });\n\n // Asset upload hook - manages file uploads and upload state\n const {\n uploadedFiles,\n uploadError,\n isUploading,\n handleUpload,\n handleRemove,\n handleSave,\n clearUploadedFiles,\n clearSaveUploadError,\n } = useAssetUploadManager({\n orgId,\n brandId,\n onUploadSuccess: (uploadedAssets) => {\n // Add uploaded assets to selection and switch to library tab\n addAssetsToSelection(uploadedAssets);\n setSelectedTab('library');\n },\n getErrorMessage: () => translate('Failed_to_upload_assets_try_again'),\n });\n\n // Reset state when modal opens/closes\n useEffect(() => {\n if (!open) {\n clearSelection();\n clearUploadedFiles();\n clearSaveUploadError();\n }\n }, [open, clearSelection, clearUploadedFiles, clearSaveUploadError]);\n\n const handleCancel = useCallback((): void => {\n clearSelection();\n onClose();\n }, [onClose, clearSelection]);\n\n const handleSelectAssets = useCallback((): void => {\n if (selectedAssetsMap.size === 0) {\n onClose();\n return;\n }\n const selectedAssets = Array.from(selectedAssetsMap.values());\n if (onSelect && selectedAssets.length > 0) {\n onSelect(selectedAssets);\n }\n clearSelection();\n onClose();\n }, [onSelect, selectedAssetsMap, onClose, clearSelection]);\n\n const getTitle = (): string => {\n switch (selectedTab) {\n case 'library':\n return translate('Select_Images');\n default:\n return translate('Upload_Images');\n }\n };\n\n // Tab-specific action button configurations\n const actionButtons = useMemo<ModalAction[]>(() => {\n // Common cancel button configuration\n const cancelButton: ModalAction = {\n label: translate('Cancel'),\n onClick: handleCancel,\n variant: 'secondary',\n tone: 'neutral',\n id: 'asset-manager-cancel',\n };\n\n const tabActions: Record<string, ModalAction[]> = {\n library: [\n cancelButton,\n {\n label: translate('Select'),\n onClick: handleSelectAssets,\n variant: 'primary',\n id: 'asset-manager-select',\n },\n ],\n upload: [\n cancelButton,\n {\n label: translate('Save'),\n onClick: handleSave,\n loading: isUploading,\n variant: 'primary',\n id: 'asset-manager-upload',\n },\n ],\n };\n\n return tabActions[selectedTab] ?? (tabActions['library'] as ModalAction[]);\n }, [selectedTab, isUploading, handleCancel, handleSelectAssets, handleSave, translate]);\n\n return (\n <Modal actions={actionButtons} onClose={handleCancel} open={open} size=\"large\" title={getTitle()}>\n <Tabs\n fdKey=\"asset-manager-tabs\"\n onChange={(_, value: string) => {\n setSelectedTab(value);\n clearUploadedFiles();\n }}\n value={selectedTab}\n >\n <Tab label={translate('Upload')} value=\"upload\" />\n <Tab label={translate('Library')} value=\"library\" />\n </Tabs>\n <StyledScrollableContent>\n {selectedTab === 'library' ? (\n <LibraryTabContent\n assets={assetResponse?.data}\n error={assetsError}\n isLoading={isLoadingAssets}\n onAssetClick={handleAssetClick}\n selectedAssets={selectedAssetsMap}\n />\n ) : (\n <UploadAssetContent\n error={uploadError}\n files={uploadedFiles}\n onRemove={handleRemove}\n onUpload={handleUpload}\n />\n )}\n </StyledScrollableContent>\n </Modal>\n );\n};\n\n/**\n * AssetManager component used to select assets from the library or upload new assets.\n * Can manage assets at a organization or brand level.\n *\n * @example\n * ```tsx\n * <AssetManager\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * onSelect={(assets) => console.log(assets)}\n * orgId=\"org123\"\n * brandId=\"brand456\"\n * maxSelect={3}\n * />\n * ```\n */\nconst AssetManager: React.FC<AssetManagerProps> = (props) => {\n return (\n <QueryClientProvider client={queryClient}>\n <AssetManagerContent {...props} />\n </QueryClientProvider>\n );\n};\n\nexport type { Asset, AssetMetadata, AssetMetadataDimensions, AssetType } from './types/assets.type';\nexport default AssetManager;\n"],"names":["StyledScrollableContent","styled","Box","theme","height","overflowY","marginTop","spacing","marginRight","marginLeft","marginBottom","paddingRight","paddingLeft","paddingBottom","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","retry","AssetManagerContent","open","onClose","onSelect","orgId","brandId","maxSelect","selectedTab","setSelectedTab","useState","translate","useTranslation","data","assetResponse","isLoading","isLoadingAssets","error","assetsError","useGetAssets","selectedAssetsMap","handleAssetClick","clearSelection","addAssetsToSelection","useAssetSelection","uploadedFiles","uploadError","isUploading","handleUpload","handleRemove","handleSave","clearUploadedFiles","clearSaveUploadError","useAssetUploadManager","onUploadSuccess","uploadedAssets","getErrorMessage","useEffect","handleCancel","useCallback","handleSelectAssets","size","selectedAssets","Array","from","values","length","actionButtons","useMemo","cancelButton","label","onClick","variant","tone","id","tabActions","library","upload","loading","_jsxs","Modal","actions","title","Tabs","fdKey","onChange","_","value","_jsx","Tab","children","LibraryTabContent","assets","onAssetClick","UploadAssetContent","files","onRemove","onUpload","props","QueryClientProvider","client"],"mappings":"+kBAsBA,MAAMA,EAA0BC,EAAAA,OAAOC,EAAPD,EAAY,EAAGE,YAAO,CACpDC,OAAQ,qBACRC,UAAW,OACXC,UAAWH,EAAMI,QAAQ,GACzBC,YAAaL,EAAMI,YACnBE,WAAYN,EAAMI,YAClBG,aAAcP,EAAMI,YACpBI,aAAcR,EAAMI,QAAQ,GAC5BK,YAAaT,EAAMI,QAAQ,GAC3BM,cAAeV,EAAMI,QAAQ,OAgCzBO,EAAc,IAAIC,EAAAA,YAAY,CAClCC,eAAgB,CACdC,QAAS,CACPC,sBAAsB,EACtBC,MAAO,MASPC,EAAmD,EACvDC,OACAC,UACAC,WACAC,QACAC,UACAC,YAAY,MAEZ,MAAOC,EAAaC,GAAkBC,EAAAA,SAAiB,YACjDC,UAAEA,GAAcC,oBAIpBC,KAAMC,EACNC,UAAWC,EACXC,MAAOC,GACLC,EAAAA,aAAad,EAAOH,EAAMI,IAGxBc,kBAAEA,EAAiBC,iBAAEA,EAAgBC,eAAEA,EAAcC,qBAAEA,GAAyBC,EAAAA,kBAAkB,CACtGjB,eAIIkB,cACJA,EAAaC,YACbA,EAAWC,YACXA,EAAWC,aACXA,EAAYC,aACZA,EAAYC,WACZA,EAAUC,mBACVA,EAAkBC,qBAClBA,GACEC,wBAAsB,CACxB5B,QACAC,UACA4B,gBAAkBC,IAEhBZ,EAAqBY,GACrB1B,EAAe,YAEjB2B,gBAAiB,IAAMzB,EAAU,uCAInC0B,EAAAA,WAAU,KACHnC,IACHoB,IACAS,IACAC,OAED,CAAC9B,EAAMoB,EAAgBS,EAAoBC,IAE9C,MAAMM,EAAeC,EAAAA,aAAY,KAC/BjB,IACAnB,MACC,CAACA,EAASmB,IAEPkB,EAAqBD,EAAAA,aAAY,KACrC,GAA+B,IAA3BnB,EAAkBqB,KAEpB,YADAtC,IAGF,MAAMuC,EAAiBC,MAAMC,KAAKxB,EAAkByB,UAChDzC,GAAYsC,EAAeI,OAAS,GACtC1C,EAASsC,GAEXpB,IACAnB,MACC,CAACC,EAAUgB,EAAmBjB,EAASmB,IAYpCyB,EAAgBC,EAAAA,SAAuB,KAE3C,MAAMC,EAA4B,CAChCC,MAAOvC,EAAU,UACjBwC,QAASb,EACTc,QAAS,YACTC,KAAM,UACNC,GAAI,wBAGAC,EAA4C,CAChDC,QAAS,CACPP,EACA,CACEC,MAAOvC,EAAU,UACjBwC,QAASX,EACTY,QAAS,UACTE,GAAI,yBAGRG,OAAQ,CACNR,EACA,CACEC,MAAOvC,EAAU,QACjBwC,QAASrB,EACT4B,QAAS/B,EACTyB,QAAS,UACTE,GAAI,0BAKV,OAAOC,EAAW/C,IAAiB+C,EAAoB,UACtD,CAAC/C,EAAamB,EAAaW,EAAcE,EAAoBV,EAAYnB,IAE5E,OACEgD,OAACC,EAAK,CAACC,QAASd,EAAe5C,QAASmC,EAAcpC,KAAMA,EAAMuC,KAAK,QAAQqB,MA3CpEnD,EADJ,YADCH,EAEa,gBAEA,2BA0CnBmD,EAAAA,KAACI,GACCC,MAAM,qBACNC,SAAU,CAACC,EAAGC,KACZ1D,EAAe0D,GACfpC,KAEFoC,MAAO3D,YAEP4D,EAAAA,IAACC,GAAInB,MAAOvC,EAAU,UAAWwD,MAAM,WACvCC,MAACC,EAAG,CAACnB,MAAOvC,EAAU,WAAYwD,MAAM,eAE1CC,EAAAA,IAACvF,EAAuB,CAAAyF,SACL,YAAhB9D,EACC4D,EAAAA,IAACG,EAAiB,CAChBC,OAAQ1D,GAAeD,KACvBI,MAAOC,EACPH,UAAWC,EACXyD,aAAcpD,EACdqB,eAAgBtB,IAGlBgD,EAAAA,IAACM,GACCzD,MAAOS,EACPiD,MAAOlD,EACPmD,SAAU/C,EACVgD,SAAUjD,yBAwB6BkD,GAE/CV,MAACW,EAAAA,oBAAmB,CAACC,OAAQrF,EAAW2E,SACtCF,EAAAA,IAACnE,EAAmB,IAAK6E"}
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useState as r,useEffect as o,useCallback as s,useMemo as t}from"react";import{styled as i}from"@mui/material/styles";import l from"@mui/material/Box";import n from"../../atoms/Tab/index.js";import d from"../../molecules/Modal/index.js";import m from"../../molecules/Tabs/index.js";import{useTranslation as c}from"../../../providers/TranslationProvider.js";import{QueryClient as p,QueryClientProvider as g}from"@tanstack/react-query";import{useAssetSelection as u}from"./hooks/useAssetSelection.js";import{useAssetUploadManager as f}from"./hooks/useAssetUploadManager.js";import{useGetAssets as b}from"./hooks/useGetAssets.js";import h from"./LibraryTabContent/index.js";import y from"./UploadTabContent/index.js";const v=i(l)((({theme:e})=>({height:"calc(70vh - 200px)",overflowY:"auto",marginTop:e.spacing(2),marginRight:e.spacing(-2),marginLeft:e.spacing(-1),marginBottom:e.spacing(-1),paddingRight:e.spacing(2),paddingLeft:e.spacing(1),paddingBottom:e.spacing(1)}))),S=new p({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:2}}}),x=({open:i,onClose:l,onSelect:p,orgId:g,brandId:S,maxSelect:x=1})=>{const[C,j]=r("library"),{translate:U}=c(),{data:k,isLoading:A,error:T}=b(g,i,S),{selectedAssetsMap:_,handleAssetClick:I,clearSelection:L,addAssetsToSelection:F}=u({maxSelect:x}),{uploadedFiles:M,uploadError:R,isUploading:w,handleUpload:B,handleRemove:E,handleSave:q,clearUploadedFiles:z,clearSaveUploadError:O}=f({orgId:g,brandId:S,onUploadSuccess:e=>{F(e),j("library")},getErrorMessage:()=>U("Failed_to_upload_assets_try_again")});o((()=>{i||(L(),z(),O())}),[i,L,z,O]);const G=s((()=>{L(),l()}),[l,L]),K=s((()=>{if(0===_.size)return void l();const e=Array.from(_.values());p&&e.length>0&&p(e),L(),l()}),[p,_,l,L]),P=t((()=>{const e={label:U("Cancel"),onClick:G,variant:"secondary",tone:"neutral",id:"asset-manager-cancel"},a={library:[e,{label:U("Select"),onClick:K,variant:"primary",id:"asset-manager-select"}],upload:[e,{label:U("Save"),onClick:q,disabled:w,variant:"primary",id:"asset-manager-upload"}]};return a[C]??a.library}),[C,w,G,K,q,U]);return a(d,{actions:P,onClose:G,open:i,size:"large",title:U("library"===C?"Select_Images":"Upload_Images"),children:[a(m,{fdKey:"asset-manager-tabs",onChange:(e,a)=>{j(a),z()},value:C,children:[e(n,{label:U("Upload"),value:"upload"}),e(n,{label:U("Library"),value:"library"})]}),e(v,{children:"library"===C?e(h,{assets:k?.data,error:T,isLoading:A,onAssetClick:I,selectedAssets:_}):e(y,{error:R,files:M,onRemove:E,onUpload:B})})]})},C=a=>e(g,{client:S,children:e(x,{...a})});export{C as default};
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useState as r,useEffect as o,useCallback as s,useMemo as t}from"react";import{styled as i}from"@mui/material/styles";import l from"@mui/material/Box";import n from"../../atoms/Tab/index.js";import d from"../../molecules/Modal/index.js";import m from"../../molecules/Tabs/index.js";import{useTranslation as c}from"../../../providers/TranslationProvider.js";import{QueryClient as p,QueryClientProvider as g}from"@tanstack/react-query";import{useAssetSelection as u}from"./hooks/useAssetSelection.js";import{useAssetUploadManager as f}from"./hooks/useAssetUploadManager.js";import{useGetAssets as b}from"./hooks/useGetAssets.js";import h from"./LibraryTabContent/index.js";import y from"./UploadTabContent/index.js";const v=i(l)((({theme:e})=>({height:"calc(70vh - 200px)",overflowY:"auto",marginTop:e.spacing(2),marginRight:e.spacing(-2),marginLeft:e.spacing(-1),marginBottom:e.spacing(-1),paddingRight:e.spacing(2),paddingLeft:e.spacing(1),paddingBottom:e.spacing(1)}))),S=new p({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:2}}}),x=({open:i,onClose:l,onSelect:p,orgId:g,brandId:S,maxSelect:x=1})=>{const[C,j]=r("library"),{translate:U}=c(),{data:k,isLoading:A,error:T}=b(g,i,S),{selectedAssetsMap:_,handleAssetClick:I,clearSelection:L,addAssetsToSelection:F}=u({maxSelect:x}),{uploadedFiles:M,uploadError:R,isUploading:w,handleUpload:B,handleRemove:E,handleSave:q,clearUploadedFiles:z,clearSaveUploadError:O}=f({orgId:g,brandId:S,onUploadSuccess:e=>{F(e),j("library")},getErrorMessage:()=>U("Failed_to_upload_assets_try_again")});o((()=>{i||(L(),z(),O())}),[i,L,z,O]);const G=s((()=>{L(),l()}),[l,L]),K=s((()=>{if(0===_.size)return void l();const e=Array.from(_.values());p&&e.length>0&&p(e),L(),l()}),[p,_,l,L]),P=t((()=>{const e={label:U("Cancel"),onClick:G,variant:"secondary",tone:"neutral",id:"asset-manager-cancel"},a={library:[e,{label:U("Select"),onClick:K,variant:"primary",id:"asset-manager-select"}],upload:[e,{label:U("Save"),onClick:q,loading:w,variant:"primary",id:"asset-manager-upload"}]};return a[C]??a.library}),[C,w,G,K,q,U]);return a(d,{actions:P,onClose:G,open:i,size:"large",title:U("library"===C?"Select_Images":"Upload_Images"),children:[a(m,{fdKey:"asset-manager-tabs",onChange:(e,a)=>{j(a),z()},value:C,children:[e(n,{label:U("Upload"),value:"upload"}),e(n,{label:U("Library"),value:"library"})]}),e(v,{children:"library"===C?e(h,{assets:k?.data,error:T,isLoading:A,onAssetClick:I,selectedAssets:_}):e(y,{error:R,files:M,onRemove:E,onUpload:B})})]})},C=a=>e(g,{client:S,children:e(x,{...a})});export{C as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/AssetManager/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { styled } from '@mui/material/styles';\n\nimport Box from '@fd/components/atoms/Box';\nimport Tab from '@fd/components/atoms/Tab';\nimport Modal, { type ModalAction } from '@fd/components/molecules/Modal';\nimport Tabs from '@fd/components/molecules/Tabs';\nimport { useTranslation } from '@fd/providers/TranslationProvider';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n\nimport { useAssetSelection } from './hooks/useAssetSelection';\nimport { useAssetUploadManager } from './hooks/useAssetUploadManager';\nimport { useGetAssets } from './hooks/useGetAssets';\nimport LibraryTabContent from './LibraryTabContent';\nimport type { Asset } from './types/assets.type';\nimport UploadAssetContent from './UploadTabContent';\n/**\n * Scrollable container for the tab content.\n * Allows the asset list to scroll while keeping the modal title, tabs, and actions visible.\n * Uses fixed height to prevent modal resizing when switching tabs.\n */\nconst StyledScrollableContent = styled(Box)(({ theme }) => ({\n height: 'calc(70vh - 200px)', // Fixed height for consistent modal size across tabs\n overflowY: 'auto',\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(-2), // Extend to edge for scrollbar\n marginLeft: theme.spacing(-1), // Allow space for shadows on left\n marginBottom: theme.spacing(-1), // Allow space for shadows on bottom\n paddingRight: theme.spacing(2), // Compensate for negative margin\n paddingLeft: theme.spacing(1), // Compensate for negative margin\n paddingBottom: theme.spacing(1), // Compensate for negative margin\n}));\n\n/**\n * Props for the AssetManager component.\n * Provides a modal interface for selecting images from a grid display.\n * It supports both single and multiple image selection modes with configurable limits.\n *\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n *\n * ```tsx\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n */\nexport interface AssetManagerProps {\n /** Whether the asset manager modal is open */\n open: boolean;\n /** Callback function when the modal is closed or cancelled */\n onClose: () => void;\n /** Callback function when assets are selected */\n onSelect?: (selectedAssets: Asset[]) => void;\n /**\n * Organization ID for fetching assets\n */\n orgId: string;\n /** Brand ID for fetching assets */\n brandId?: string;\n /** Maximum number of assets that can be selected. Defaults to 1 */\n maxSelect?: number;\n}\n\n// Create a QueryClient instance for the AssetManager component\n// This allows the component to be used without requiring clients to wrap it in QueryClientProvider\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retry: 2,\n },\n },\n});\n\n/**\n * Inner component that contains the AssetManager logic.\n * Must be rendered inside QueryClientProvider to use React Query hooks.\n */\nconst AssetManagerContent: React.FC<AssetManagerProps> = ({\n open,\n onClose,\n onSelect,\n orgId,\n brandId,\n maxSelect = 1,\n}) => {\n const [selectedTab, setSelectedTab] = useState<string>('library');\n const { translate } = useTranslation();\n\n // Fetch assets at the parent level to enable future reuse across tabs\n const {\n data: assetResponse,\n isLoading: isLoadingAssets,\n error: assetsError,\n } = useGetAssets(orgId, open, brandId);\n\n // Asset selection hook - manages selected assets from library\n const { selectedAssetsMap, handleAssetClick, clearSelection, addAssetsToSelection } = useAssetSelection({\n maxSelect,\n });\n\n // Asset upload hook - manages file uploads and upload state\n const {\n uploadedFiles,\n uploadError,\n isUploading,\n handleUpload,\n handleRemove,\n handleSave,\n clearUploadedFiles,\n clearSaveUploadError,\n } = useAssetUploadManager({\n orgId,\n brandId,\n onUploadSuccess: (uploadedAssets) => {\n // Add uploaded assets to selection and switch to library tab\n addAssetsToSelection(uploadedAssets);\n setSelectedTab('library');\n },\n getErrorMessage: () => translate('Failed_to_upload_assets_try_again'),\n });\n\n // Reset state when modal opens/closes\n useEffect(() => {\n if (!open) {\n clearSelection();\n clearUploadedFiles();\n clearSaveUploadError();\n }\n }, [open, clearSelection, clearUploadedFiles, clearSaveUploadError]);\n\n const handleCancel = useCallback((): void => {\n clearSelection();\n onClose();\n }, [onClose, clearSelection]);\n\n const handleSelectAssets = useCallback((): void => {\n if (selectedAssetsMap.size === 0) {\n onClose();\n return;\n }\n const selectedAssets = Array.from(selectedAssetsMap.values());\n if (onSelect && selectedAssets.length > 0) {\n onSelect(selectedAssets);\n }\n clearSelection();\n onClose();\n }, [onSelect, selectedAssetsMap, onClose, clearSelection]);\n\n const getTitle = (): string => {\n switch (selectedTab) {\n case 'library':\n return translate('Select_Images');\n default:\n return translate('Upload_Images');\n }\n };\n\n // Tab-specific action button configurations\n const actionButtons = useMemo<ModalAction[]>(() => {\n // Common cancel button configuration\n const cancelButton: ModalAction = {\n label: translate('Cancel'),\n onClick: handleCancel,\n variant: 'secondary',\n tone: 'neutral',\n id: 'asset-manager-cancel',\n };\n\n const tabActions: Record<string, ModalAction[]> = {\n library: [\n cancelButton,\n {\n label: translate('Select'),\n onClick: handleSelectAssets,\n variant: 'primary',\n id: 'asset-manager-select',\n },\n ],\n upload: [\n cancelButton,\n {\n label: translate('Save'),\n onClick: handleSave,\n disabled: isUploading,\n variant: 'primary',\n id: 'asset-manager-upload',\n },\n ],\n };\n\n return tabActions[selectedTab] ?? (tabActions['library'] as ModalAction[]);\n }, [selectedTab, isUploading, handleCancel, handleSelectAssets, handleSave, translate]);\n\n return (\n <Modal actions={actionButtons} onClose={handleCancel} open={open} size=\"large\" title={getTitle()}>\n <Tabs\n fdKey=\"asset-manager-tabs\"\n onChange={(_, value: string) => {\n setSelectedTab(value);\n clearUploadedFiles();\n }}\n value={selectedTab}\n >\n <Tab label={translate('Upload')} value=\"upload\" />\n <Tab label={translate('Library')} value=\"library\" />\n </Tabs>\n <StyledScrollableContent>\n {selectedTab === 'library' ? (\n <LibraryTabContent\n assets={assetResponse?.data}\n error={assetsError}\n isLoading={isLoadingAssets}\n onAssetClick={handleAssetClick}\n selectedAssets={selectedAssetsMap}\n />\n ) : (\n <UploadAssetContent\n error={uploadError}\n files={uploadedFiles}\n onRemove={handleRemove}\n onUpload={handleUpload}\n />\n )}\n </StyledScrollableContent>\n </Modal>\n );\n};\n\n/**\n * AssetManager component used to select assets from the library or upload new assets.\n * Can manage assets at a organization or brand level.\n *\n * @example\n * ```tsx\n * <AssetManager\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * onSelect={(assets) => console.log(assets)}\n * orgId=\"org123\"\n * brandId=\"brand456\"\n * maxSelect={3}\n * />\n * ```\n */\nconst AssetManager: React.FC<AssetManagerProps> = (props) => {\n return (\n <QueryClientProvider client={queryClient}>\n <AssetManagerContent {...props} />\n </QueryClientProvider>\n );\n};\n\nexport type { Asset, AssetMetadata, AssetMetadataDimensions, AssetType } from './types/assets.type';\nexport default AssetManager;\n"],"names":["StyledScrollableContent","styled","Box","theme","height","overflowY","marginTop","spacing","marginRight","marginLeft","marginBottom","paddingRight","paddingLeft","paddingBottom","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","retry","AssetManagerContent","open","onClose","onSelect","orgId","brandId","maxSelect","selectedTab","setSelectedTab","useState","translate","useTranslation","data","assetResponse","isLoading","isLoadingAssets","error","assetsError","useGetAssets","selectedAssetsMap","handleAssetClick","clearSelection","addAssetsToSelection","useAssetSelection","uploadedFiles","uploadError","isUploading","handleUpload","handleRemove","handleSave","clearUploadedFiles","clearSaveUploadError","useAssetUploadManager","onUploadSuccess","uploadedAssets","getErrorMessage","useEffect","handleCancel","useCallback","handleSelectAssets","size","selectedAssets","Array","from","values","length","actionButtons","useMemo","cancelButton","label","onClick","variant","tone","id","tabActions","library","upload","disabled","_jsxs","Modal","actions","title","Tabs","fdKey","onChange","_","value","_jsx","Tab","children","LibraryTabContent","assets","onAssetClick","UploadAssetContent","files","onRemove","onUpload","AssetManager","props","QueryClientProvider","client"],"mappings":"kwBAsBA,MAAMA,EAA0BC,EAAOC,EAAPD,EAAY,EAAGE,YAAO,CACpDC,OAAQ,qBACRC,UAAW,OACXC,UAAWH,EAAMI,QAAQ,GACzBC,YAAaL,EAAMI,YACnBE,WAAYN,EAAMI,YAClBG,aAAcP,EAAMI,YACpBI,aAAcR,EAAMI,QAAQ,GAC5BK,YAAaT,EAAMI,QAAQ,GAC3BM,cAAeV,EAAMI,QAAQ,OAgCzBO,EAAc,IAAIC,EAAY,CAClCC,eAAgB,CACdC,QAAS,CACPC,sBAAsB,EACtBC,MAAO,MASPC,EAAmD,EACvDC,OACAC,UACAC,WACAC,QACAC,UACAC,YAAY,MAEZ,MAAOC,EAAaC,GAAkBC,EAAiB,YACjDC,UAAEA,GAAcC,KAIpBC,KAAMC,EACNC,UAAWC,EACXC,MAAOC,GACLC,EAAad,EAAOH,EAAMI,IAGxBc,kBAAEA,EAAiBC,iBAAEA,EAAgBC,eAAEA,EAAcC,qBAAEA,GAAyBC,EAAkB,CACtGjB,eAIIkB,cACJA,EAAaC,YACbA,EAAWC,YACXA,EAAWC,aACXA,EAAYC,aACZA,EAAYC,WACZA,EAAUC,mBACVA,EAAkBC,qBAClBA,GACEC,EAAsB,CACxB5B,QACAC,UACA4B,gBAAkBC,IAEhBZ,EAAqBY,GACrB1B,EAAe,YAEjB2B,gBAAiB,IAAMzB,EAAU,uCAInC0B,GAAU,KACHnC,IACHoB,IACAS,IACAC,OAED,CAAC9B,EAAMoB,EAAgBS,EAAoBC,IAE9C,MAAMM,EAAeC,GAAY,KAC/BjB,IACAnB,MACC,CAACA,EAASmB,IAEPkB,EAAqBD,GAAY,KACrC,GAA+B,IAA3BnB,EAAkBqB,KAEpB,YADAtC,IAGF,MAAMuC,EAAiBC,MAAMC,KAAKxB,EAAkByB,UAChDzC,GAAYsC,EAAeI,OAAS,GACtC1C,EAASsC,GAEXpB,IACAnB,MACC,CAACC,EAAUgB,EAAmBjB,EAASmB,IAYpCyB,EAAgBC,GAAuB,KAE3C,MAAMC,EAA4B,CAChCC,MAAOvC,EAAU,UACjBwC,QAASb,EACTc,QAAS,YACTC,KAAM,UACNC,GAAI,wBAGAC,EAA4C,CAChDC,QAAS,CACPP,EACA,CACEC,MAAOvC,EAAU,UACjBwC,QAASX,EACTY,QAAS,UACTE,GAAI,yBAGRG,OAAQ,CACNR,EACA,CACEC,MAAOvC,EAAU,QACjBwC,QAASrB,EACT4B,SAAU/B,EACVyB,QAAS,UACTE,GAAI,0BAKV,OAAOC,EAAW/C,IAAiB+C,EAAoB,UACtD,CAAC/C,EAAamB,EAAaW,EAAcE,EAAoBV,EAAYnB,IAE5E,OACEgD,EAACC,EAAK,CAACC,QAASd,EAAe5C,QAASmC,EAAcpC,KAAMA,EAAMuC,KAAK,QAAQqB,MA3CpEnD,EADJ,YADCH,EAEa,gBAEA,2BA0CnBmD,EAACI,GACCC,MAAM,qBACNC,SAAU,CAACC,EAAGC,KACZ1D,EAAe0D,GACfpC,KAEFoC,MAAO3D,YAEP4D,EAACC,GAAInB,MAAOvC,EAAU,UAAWwD,MAAM,WACvCC,EAACC,EAAG,CAACnB,MAAOvC,EAAU,WAAYwD,MAAM,eAE1CC,EAACvF,EAAuB,CAAAyF,SACL,YAAhB9D,EACC4D,EAACG,EAAiB,CAChBC,OAAQ1D,GAAeD,KACvBI,MAAOC,EACPH,UAAWC,EACXyD,aAAcpD,EACdqB,eAAgBtB,IAGlBgD,EAACM,GACCzD,MAAOS,EACPiD,MAAOlD,EACPmD,SAAU/C,EACVgD,SAAUjD,UAwBhBkD,EAA6CC,GAE/CX,EAACY,EAAmB,CAACC,OAAQtF,EAAW2E,SACtCF,EAACnE,EAAmB,IAAK8E"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/AssetManager/index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { styled } from '@mui/material/styles';\n\nimport Box from '@fd/components/atoms/Box';\nimport Tab from '@fd/components/atoms/Tab';\nimport Modal, { type ModalAction } from '@fd/components/molecules/Modal';\nimport Tabs from '@fd/components/molecules/Tabs';\nimport { useTranslation } from '@fd/providers/TranslationProvider';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n\nimport { useAssetSelection } from './hooks/useAssetSelection';\nimport { useAssetUploadManager } from './hooks/useAssetUploadManager';\nimport { useGetAssets } from './hooks/useGetAssets';\nimport LibraryTabContent from './LibraryTabContent';\nimport type { Asset } from './types/assets.type';\nimport UploadAssetContent from './UploadTabContent';\n/**\n * Scrollable container for the tab content.\n * Allows the asset list to scroll while keeping the modal title, tabs, and actions visible.\n * Uses fixed height to prevent modal resizing when switching tabs.\n */\nconst StyledScrollableContent = styled(Box)(({ theme }) => ({\n height: 'calc(70vh - 200px)', // Fixed height for consistent modal size across tabs\n overflowY: 'auto',\n marginTop: theme.spacing(2),\n marginRight: theme.spacing(-2), // Extend to edge for scrollbar\n marginLeft: theme.spacing(-1), // Allow space for shadows on left\n marginBottom: theme.spacing(-1), // Allow space for shadows on bottom\n paddingRight: theme.spacing(2), // Compensate for negative margin\n paddingLeft: theme.spacing(1), // Compensate for negative margin\n paddingBottom: theme.spacing(1), // Compensate for negative margin\n}));\n\n/**\n * Props for the AssetManager component.\n * Provides a modal interface for selecting images from a grid display.\n * It supports both single and multiple image selection modes with configurable limits.\n *\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n *\n * ```tsx\n * import AssetManager from '@flipdish/portal-library/components/organisms/AssetManager';\n */\nexport interface AssetManagerProps {\n /** Whether the asset manager modal is open */\n open: boolean;\n /** Callback function when the modal is closed or cancelled */\n onClose: () => void;\n /** Callback function when assets are selected */\n onSelect?: (selectedAssets: Asset[]) => void;\n /**\n * Organization ID for fetching assets\n */\n orgId: string;\n /** Brand ID for fetching assets */\n brandId?: string;\n /** Maximum number of assets that can be selected. Defaults to 1 */\n maxSelect?: number;\n}\n\n// Create a QueryClient instance for the AssetManager component\n// This allows the component to be used without requiring clients to wrap it in QueryClientProvider\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n retry: 2,\n },\n },\n});\n\n/**\n * Inner component that contains the AssetManager logic.\n * Must be rendered inside QueryClientProvider to use React Query hooks.\n */\nconst AssetManagerContent: React.FC<AssetManagerProps> = ({\n open,\n onClose,\n onSelect,\n orgId,\n brandId,\n maxSelect = 1,\n}) => {\n const [selectedTab, setSelectedTab] = useState<string>('library');\n const { translate } = useTranslation();\n\n // Fetch assets at the parent level to enable future reuse across tabs\n const {\n data: assetResponse,\n isLoading: isLoadingAssets,\n error: assetsError,\n } = useGetAssets(orgId, open, brandId);\n\n // Asset selection hook - manages selected assets from library\n const { selectedAssetsMap, handleAssetClick, clearSelection, addAssetsToSelection } = useAssetSelection({\n maxSelect,\n });\n\n // Asset upload hook - manages file uploads and upload state\n const {\n uploadedFiles,\n uploadError,\n isUploading,\n handleUpload,\n handleRemove,\n handleSave,\n clearUploadedFiles,\n clearSaveUploadError,\n } = useAssetUploadManager({\n orgId,\n brandId,\n onUploadSuccess: (uploadedAssets) => {\n // Add uploaded assets to selection and switch to library tab\n addAssetsToSelection(uploadedAssets);\n setSelectedTab('library');\n },\n getErrorMessage: () => translate('Failed_to_upload_assets_try_again'),\n });\n\n // Reset state when modal opens/closes\n useEffect(() => {\n if (!open) {\n clearSelection();\n clearUploadedFiles();\n clearSaveUploadError();\n }\n }, [open, clearSelection, clearUploadedFiles, clearSaveUploadError]);\n\n const handleCancel = useCallback((): void => {\n clearSelection();\n onClose();\n }, [onClose, clearSelection]);\n\n const handleSelectAssets = useCallback((): void => {\n if (selectedAssetsMap.size === 0) {\n onClose();\n return;\n }\n const selectedAssets = Array.from(selectedAssetsMap.values());\n if (onSelect && selectedAssets.length > 0) {\n onSelect(selectedAssets);\n }\n clearSelection();\n onClose();\n }, [onSelect, selectedAssetsMap, onClose, clearSelection]);\n\n const getTitle = (): string => {\n switch (selectedTab) {\n case 'library':\n return translate('Select_Images');\n default:\n return translate('Upload_Images');\n }\n };\n\n // Tab-specific action button configurations\n const actionButtons = useMemo<ModalAction[]>(() => {\n // Common cancel button configuration\n const cancelButton: ModalAction = {\n label: translate('Cancel'),\n onClick: handleCancel,\n variant: 'secondary',\n tone: 'neutral',\n id: 'asset-manager-cancel',\n };\n\n const tabActions: Record<string, ModalAction[]> = {\n library: [\n cancelButton,\n {\n label: translate('Select'),\n onClick: handleSelectAssets,\n variant: 'primary',\n id: 'asset-manager-select',\n },\n ],\n upload: [\n cancelButton,\n {\n label: translate('Save'),\n onClick: handleSave,\n loading: isUploading,\n variant: 'primary',\n id: 'asset-manager-upload',\n },\n ],\n };\n\n return tabActions[selectedTab] ?? (tabActions['library'] as ModalAction[]);\n }, [selectedTab, isUploading, handleCancel, handleSelectAssets, handleSave, translate]);\n\n return (\n <Modal actions={actionButtons} onClose={handleCancel} open={open} size=\"large\" title={getTitle()}>\n <Tabs\n fdKey=\"asset-manager-tabs\"\n onChange={(_, value: string) => {\n setSelectedTab(value);\n clearUploadedFiles();\n }}\n value={selectedTab}\n >\n <Tab label={translate('Upload')} value=\"upload\" />\n <Tab label={translate('Library')} value=\"library\" />\n </Tabs>\n <StyledScrollableContent>\n {selectedTab === 'library' ? (\n <LibraryTabContent\n assets={assetResponse?.data}\n error={assetsError}\n isLoading={isLoadingAssets}\n onAssetClick={handleAssetClick}\n selectedAssets={selectedAssetsMap}\n />\n ) : (\n <UploadAssetContent\n error={uploadError}\n files={uploadedFiles}\n onRemove={handleRemove}\n onUpload={handleUpload}\n />\n )}\n </StyledScrollableContent>\n </Modal>\n );\n};\n\n/**\n * AssetManager component used to select assets from the library or upload new assets.\n * Can manage assets at a organization or brand level.\n *\n * @example\n * ```tsx\n * <AssetManager\n * open={isOpen}\n * onClose={() => setIsOpen(false)}\n * onSelect={(assets) => console.log(assets)}\n * orgId=\"org123\"\n * brandId=\"brand456\"\n * maxSelect={3}\n * />\n * ```\n */\nconst AssetManager: React.FC<AssetManagerProps> = (props) => {\n return (\n <QueryClientProvider client={queryClient}>\n <AssetManagerContent {...props} />\n </QueryClientProvider>\n );\n};\n\nexport type { Asset, AssetMetadata, AssetMetadataDimensions, AssetType } from './types/assets.type';\nexport default AssetManager;\n"],"names":["StyledScrollableContent","styled","Box","theme","height","overflowY","marginTop","spacing","marginRight","marginLeft","marginBottom","paddingRight","paddingLeft","paddingBottom","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","retry","AssetManagerContent","open","onClose","onSelect","orgId","brandId","maxSelect","selectedTab","setSelectedTab","useState","translate","useTranslation","data","assetResponse","isLoading","isLoadingAssets","error","assetsError","useGetAssets","selectedAssetsMap","handleAssetClick","clearSelection","addAssetsToSelection","useAssetSelection","uploadedFiles","uploadError","isUploading","handleUpload","handleRemove","handleSave","clearUploadedFiles","clearSaveUploadError","useAssetUploadManager","onUploadSuccess","uploadedAssets","getErrorMessage","useEffect","handleCancel","useCallback","handleSelectAssets","size","selectedAssets","Array","from","values","length","actionButtons","useMemo","cancelButton","label","onClick","variant","tone","id","tabActions","library","upload","loading","_jsxs","Modal","actions","title","Tabs","fdKey","onChange","_","value","_jsx","Tab","children","LibraryTabContent","assets","onAssetClick","UploadAssetContent","files","onRemove","onUpload","AssetManager","props","QueryClientProvider","client"],"mappings":"kwBAsBA,MAAMA,EAA0BC,EAAOC,EAAPD,EAAY,EAAGE,YAAO,CACpDC,OAAQ,qBACRC,UAAW,OACXC,UAAWH,EAAMI,QAAQ,GACzBC,YAAaL,EAAMI,YACnBE,WAAYN,EAAMI,YAClBG,aAAcP,EAAMI,YACpBI,aAAcR,EAAMI,QAAQ,GAC5BK,YAAaT,EAAMI,QAAQ,GAC3BM,cAAeV,EAAMI,QAAQ,OAgCzBO,EAAc,IAAIC,EAAY,CAClCC,eAAgB,CACdC,QAAS,CACPC,sBAAsB,EACtBC,MAAO,MASPC,EAAmD,EACvDC,OACAC,UACAC,WACAC,QACAC,UACAC,YAAY,MAEZ,MAAOC,EAAaC,GAAkBC,EAAiB,YACjDC,UAAEA,GAAcC,KAIpBC,KAAMC,EACNC,UAAWC,EACXC,MAAOC,GACLC,EAAad,EAAOH,EAAMI,IAGxBc,kBAAEA,EAAiBC,iBAAEA,EAAgBC,eAAEA,EAAcC,qBAAEA,GAAyBC,EAAkB,CACtGjB,eAIIkB,cACJA,EAAaC,YACbA,EAAWC,YACXA,EAAWC,aACXA,EAAYC,aACZA,EAAYC,WACZA,EAAUC,mBACVA,EAAkBC,qBAClBA,GACEC,EAAsB,CACxB5B,QACAC,UACA4B,gBAAkBC,IAEhBZ,EAAqBY,GACrB1B,EAAe,YAEjB2B,gBAAiB,IAAMzB,EAAU,uCAInC0B,GAAU,KACHnC,IACHoB,IACAS,IACAC,OAED,CAAC9B,EAAMoB,EAAgBS,EAAoBC,IAE9C,MAAMM,EAAeC,GAAY,KAC/BjB,IACAnB,MACC,CAACA,EAASmB,IAEPkB,EAAqBD,GAAY,KACrC,GAA+B,IAA3BnB,EAAkBqB,KAEpB,YADAtC,IAGF,MAAMuC,EAAiBC,MAAMC,KAAKxB,EAAkByB,UAChDzC,GAAYsC,EAAeI,OAAS,GACtC1C,EAASsC,GAEXpB,IACAnB,MACC,CAACC,EAAUgB,EAAmBjB,EAASmB,IAYpCyB,EAAgBC,GAAuB,KAE3C,MAAMC,EAA4B,CAChCC,MAAOvC,EAAU,UACjBwC,QAASb,EACTc,QAAS,YACTC,KAAM,UACNC,GAAI,wBAGAC,EAA4C,CAChDC,QAAS,CACPP,EACA,CACEC,MAAOvC,EAAU,UACjBwC,QAASX,EACTY,QAAS,UACTE,GAAI,yBAGRG,OAAQ,CACNR,EACA,CACEC,MAAOvC,EAAU,QACjBwC,QAASrB,EACT4B,QAAS/B,EACTyB,QAAS,UACTE,GAAI,0BAKV,OAAOC,EAAW/C,IAAiB+C,EAAoB,UACtD,CAAC/C,EAAamB,EAAaW,EAAcE,EAAoBV,EAAYnB,IAE5E,OACEgD,EAACC,EAAK,CAACC,QAASd,EAAe5C,QAASmC,EAAcpC,KAAMA,EAAMuC,KAAK,QAAQqB,MA3CpEnD,EADJ,YADCH,EAEa,gBAEA,2BA0CnBmD,EAACI,GACCC,MAAM,qBACNC,SAAU,CAACC,EAAGC,KACZ1D,EAAe0D,GACfpC,KAEFoC,MAAO3D,YAEP4D,EAACC,GAAInB,MAAOvC,EAAU,UAAWwD,MAAM,WACvCC,EAACC,EAAG,CAACnB,MAAOvC,EAAU,WAAYwD,MAAM,eAE1CC,EAACvF,EAAuB,CAAAyF,SACL,YAAhB9D,EACC4D,EAACG,EAAiB,CAChBC,OAAQ1D,GAAeD,KACvBI,MAAOC,EACPH,UAAWC,EACXyD,aAAcpD,EACdqB,eAAgBtB,IAGlBgD,EAACM,GACCzD,MAAOS,EACPiD,MAAOlD,EACPmD,SAAU/C,EACVgD,SAAUjD,UAwBhBkD,EAA6CC,GAE/CX,EAACY,EAAmB,CAACC,OAAQtF,EAAW2E,SACtCF,EAACnE,EAAmB,IAAK8E"}
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("../../../../utilities/apiUtils.cjs.js"),s=require("@flipdish/asset-management"),e=require("../../../../utilities/fileUtils.cjs.js");const r=()=>{const t=window.location?.host?.includes("portal.flipdish.com");return t?"https://api.portal.flipdish.com/assets":"https://api-prod-staging.portal.flipdishdev.com/assets"},i=new s.Configuration({basePath:r(),baseOptions:{withCredentials:!0}}),a=new s.AssetsApi(i);exports.getAssets=async(t,s)=>{const e=((t,s)=>{if(!t)return;const e=s?`?brandId=${s}`:"";return`${r()}/orgs/${t}/assets${e}`})(t,s);if(!e)throw new Error("Organization ID is required to fetch assets");const i=await fetch(e,{method:"GET",credentials:"include"});if(!i.ok)throw new Error(`Failed to fetch assets: ${i.statusText}`);return await i.json()},exports.uploadAsset=async s=>{const{orgId:r,brandId:i,files:o}=s;if(!r)throw new Error("Organization ID is required to upload assets");if(!o||0===o.length)throw new Error("At least one file is required to upload");const n=o.map(e.sanitizeFile);try{return(await a.uploadAsset(r,n,i)).data}catch(s){const e=t.getErrorMessage(s,"Failed to upload assets");throw new Error(e)}};
1
+ "use strict";var t=require("../../../../utilities/apiUtils.cjs.js"),s=require("../../../../utilities/fileUtils.cjs.js");const e=()=>{const t=window.location?.host?.includes("portal.flipdish.com");return t?"https://api.portal.flipdish.com/assets":"https://api-prod-staging.portal.flipdishdev.com/assets"};exports.getAssets=async(t,s)=>{const r=((t,s)=>{if(!t)return;const r=s?`?brandId=${s}`:"";return`${e()}/orgs/${t}/assets${r}`})(t,s);if(!r)throw new Error("Organization ID is required to fetch assets");const o=await fetch(r,{method:"GET",credentials:"include"});if(!o.ok)throw new Error(`Failed to fetch assets: ${o.statusText}`);return await o.json()},exports.uploadAsset=async r=>{const{orgId:o,brandId:a,files:i}=r;if(!o)throw new Error("Organization ID is required to upload assets");if(!i||0===i.length)throw new Error("At least one file is required to upload");const n=i.map(s.sanitizeFile),d=`${e()}/orgs/${encodeURIComponent(o)}/assets/upload`,c=new FormData;for(const t of n)c.append("files",t);void 0!==a&&c.append("brandId",a);try{const t=await fetch(d,{method:"POST",credentials:"include",body:c});if(!t.ok){let s=t.statusText;try{const e=await t.json();s=e?.error?.message??e?.Message??s}catch{}throw new Error(s||"Failed to upload assets")}return await t.json()}catch(s){const e=t.getErrorMessage(s,"Failed to upload assets");throw new Error(e)}};
2
2
  //# sourceMappingURL=asset.service.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset.service.cjs.js","sources":["../../../../../src/components/organisms/AssetManager/services/asset.service.ts"],"sourcesContent":["import { getErrorMessage } from '@fd/utilities/apiUtils';\nimport { AssetsApi, Configuration } from '@flipdish/asset-management';\n\nimport { sanitizeFile } from '../../../../utilities/fileUtils';\nimport type { ListAssetsResponse, UploadAssetResponse } from '../types/assets.type';\n\nconst PROD_API_URL = 'https://api.portal.flipdish.com/assets';\nconst DEV_STAGING_API_URL = 'https://api-prod-staging.portal.flipdishdev.com/assets';\n\n/**\n * Gets the asset management API base URL based on the current environment\n * @returns The appropriate API URL for the current environment\n */\nconst getAssetManagementApiUrl = (): string => {\n const isProd = window.location?.host?.includes('portal.flipdish.com');\n\n if (isProd) {\n return PROD_API_URL;\n }\n\n return DEV_STAGING_API_URL;\n};\n\n/**\n * Configuration for the asset management API client\n * - basePath: API base URL based on environment\n * - baseOptions.withCredentials: Send cookies/credentials with requests\n */\nconst configuration = new Configuration({\n basePath: getAssetManagementApiUrl(),\n baseOptions: {\n withCredentials: true,\n },\n});\n\nconst assetsApi = new AssetsApi(configuration);\n\nconst buildApiUrl = (orgId: string, brandId?: string): string | undefined => {\n if (!orgId) return undefined;\n const brandIdQueryParam = brandId ? `?brandId=${brandId}` : '';\n const baseUrl = getAssetManagementApiUrl();\n return `${baseUrl}/orgs/${orgId}/assets${brandIdQueryParam}`;\n};\n\n/**\n * Fetches assets from the asset management service API\n * @param orgId - organization ID.\n * @param brandId - brand ID.\n * @returns Promise resolving to an array of assets\n */\nexport const getAssets = async (orgId: string, brandId?: string): Promise<ListAssetsResponse> => {\n const apiUrl = buildApiUrl(orgId, brandId);\n\n if (!apiUrl) {\n throw new Error('Organization ID is required to fetch assets');\n }\n\n const response = await fetch(apiUrl, {\n method: 'GET',\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch assets: ${response.statusText}`);\n }\n\n return (await response.json()) as ListAssetsResponse;\n};\n\n/**\n * Upload parameters for asset upload\n */\nexport interface UploadAssetParams {\n /** Organization ID */\n orgId: string;\n /** Optional brand ID */\n brandId?: string;\n /** The files to upload */\n files: File[];\n}\n\n/**\n * Uploads multiple assets to the asset management service API\n * Sanitizes filenames by replacing spaces with dashes before uploading\n * @param params - Upload parameters containing orgId, brandId, and files\n * @returns Promise resolving to an array of uploaded assets\n */\nexport const uploadAsset = async (params: UploadAssetParams): Promise<UploadAssetResponse> => {\n const { orgId, brandId, files } = params;\n\n if (!orgId) {\n throw new Error('Organization ID is required to upload assets');\n }\n\n if (!files || files.length === 0) {\n throw new Error('At least one file is required to upload');\n }\n\n // Sanitize filenames by replacing spaces with dashes\n const sanitizedFiles = files.map(sanitizeFile);\n\n try {\n const response = await assetsApi.uploadAsset(orgId, sanitizedFiles, brandId);\n return response.data;\n } catch (error: unknown) {\n const errorMessage = getErrorMessage(error, 'Failed to upload assets');\n throw new Error(errorMessage);\n }\n};\n"],"names":["getAssetManagementApiUrl","isProd","window","location","host","includes","configuration","Configuration","basePath","baseOptions","withCredentials","assetsApi","AssetsApi","async","orgId","brandId","apiUrl","brandIdQueryParam","buildApiUrl","Error","response","fetch","method","credentials","ok","statusText","json","params","files","length","sanitizedFiles","map","sanitizeFile","uploadAsset","data","error","errorMessage","getErrorMessage"],"mappings":"gKAMA,MAOMA,EAA2B,KAC/B,MAAMC,EAASC,OAAOC,UAAUC,MAAMC,SAAS,uBAE/C,OAAIJ,EAVe,yCACO,0DAqBtBK,EAAgB,IAAIC,EAAAA,cAAc,CACtCC,SAAUR,IACVS,YAAa,CACXC,iBAAiB,KAIfC,EAAY,IAAIC,EAAAA,UAAUN,qBAePO,MAAOC,EAAeC,KAC7C,MAAMC,EAdY,EAACF,EAAeC,KAClC,IAAKD,EAAO,OACZ,MAAMG,EAAoBF,EAAU,YAAYA,IAAY,GAE5D,MAAO,GADSf,YACUc,WAAeG,KAU1BC,CAAYJ,EAAOC,GAElC,IAAKC,EACH,MAAM,IAAIG,MAAM,+CAGlB,MAAMC,QAAiBC,MAAML,EAAQ,CACnCM,OAAQ,MACRC,YAAa,YAGf,IAAKH,EAASI,GACZ,MAAM,IAAIL,MAAM,2BAA2BC,EAASK,cAGtD,aAAcL,EAASM,4BAqBEb,MAAOc,IAChC,MAAMb,MAAEA,EAAKC,QAAEA,EAAOa,MAAEA,GAAUD,EAElC,IAAKb,EACH,MAAM,IAAIK,MAAM,gDAGlB,IAAKS,GAA0B,IAAjBA,EAAMC,OAClB,MAAM,IAAIV,MAAM,2CAIlB,MAAMW,EAAiBF,EAAMG,IAAIC,gBAEjC,IAEE,aADuBrB,EAAUsB,YAAYnB,EAAOgB,EAAgBf,IACpDmB,IAClB,CAAE,MAAOC,GACP,MAAMC,EAAeC,EAAAA,gBAAgBF,EAAO,2BAC5C,MAAM,IAAIhB,MAAMiB,EAClB"}
1
+ {"version":3,"file":"asset.service.cjs.js","sources":["../../../../../src/components/organisms/AssetManager/services/asset.service.ts"],"sourcesContent":["import { getErrorMessage } from '@fd/utilities/apiUtils';\n\nimport { sanitizeFile } from '../../../../utilities/fileUtils';\nimport type { ListAssetsResponse, UploadAssetResponse } from '../types/assets.type';\n\nconst PROD_API_URL = 'https://api.portal.flipdish.com/assets';\nconst DEV_STAGING_API_URL = 'https://api-prod-staging.portal.flipdishdev.com/assets';\n\n/**\n * Gets the asset management API base URL based on the current environment\n * @returns The appropriate API URL for the current environment\n */\nconst getAssetManagementApiUrl = (): string => {\n const isProd = window.location?.host?.includes('portal.flipdish.com');\n\n if (isProd) {\n return PROD_API_URL;\n }\n\n return DEV_STAGING_API_URL;\n};\n\nconst buildApiUrl = (orgId: string, brandId?: string): string | undefined => {\n if (!orgId) return undefined;\n const brandIdQueryParam = brandId ? `?brandId=${brandId}` : '';\n const baseUrl = getAssetManagementApiUrl();\n return `${baseUrl}/orgs/${orgId}/assets${brandIdQueryParam}`;\n};\n\n/**\n * Fetches assets from the asset management service API\n * @param orgId - organization ID.\n * @param brandId - brand ID.\n * @returns Promise resolving to an array of assets\n */\nexport const getAssets = async (orgId: string, brandId?: string): Promise<ListAssetsResponse> => {\n const apiUrl = buildApiUrl(orgId, brandId);\n\n if (!apiUrl) {\n throw new Error('Organization ID is required to fetch assets');\n }\n\n const response = await fetch(apiUrl, {\n method: 'GET',\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch assets: ${response.statusText}`);\n }\n\n return (await response.json()) as ListAssetsResponse;\n};\n\n/**\n * Upload parameters for asset upload\n */\nexport interface UploadAssetParams {\n /** Organization ID */\n orgId: string;\n /** Optional brand ID */\n brandId?: string;\n /** The files to upload */\n files: File[];\n}\n\n/**\n * Uploads multiple assets to the asset management service API\n * Sanitizes filenames by replacing spaces with dashes before uploading\n * @param params - Upload parameters containing orgId, brandId, and files\n * @returns Promise resolving to an array of uploaded assets\n */\nexport const uploadAsset = async (params: UploadAssetParams): Promise<UploadAssetResponse> => {\n const { orgId, brandId, files } = params;\n\n if (!orgId) {\n throw new Error('Organization ID is required to upload assets');\n }\n\n if (!files || files.length === 0) {\n throw new Error('At least one file is required to upload');\n }\n\n // Sanitize filenames by replacing spaces with dashes\n const sanitizedFiles = files.map(sanitizeFile);\n\n const baseUrl = getAssetManagementApiUrl();\n const uploadUrl = `${baseUrl}/orgs/${encodeURIComponent(orgId)}/assets/upload`;\n\n const formData = new FormData();\n for (const file of sanitizedFiles) {\n formData.append('files', file);\n }\n if (brandId !== undefined) {\n formData.append('brandId', brandId);\n }\n\n try {\n const response = await fetch(uploadUrl, {\n method: 'POST',\n credentials: 'include',\n body: formData,\n });\n\n if (!response.ok) {\n let message = response.statusText;\n try {\n const body = (await response.json()) as { error?: { message?: string }; Message?: string };\n message = body?.error?.message ?? body?.Message ?? message;\n } catch {\n // ignore JSON parse failure\n }\n throw new Error(message || 'Failed to upload assets');\n }\n\n return (await response.json()) as UploadAssetResponse;\n } catch (error: unknown) {\n const errorMessage = getErrorMessage(error, 'Failed to upload assets');\n throw new Error(errorMessage);\n }\n};\n"],"names":["getAssetManagementApiUrl","isProd","window","location","host","includes","async","orgId","brandId","apiUrl","brandIdQueryParam","buildApiUrl","Error","response","fetch","method","credentials","ok","statusText","json","params","files","length","sanitizedFiles","map","sanitizeFile","uploadUrl","encodeURIComponent","formData","FormData","file","append","undefined","body","message","error","Message","errorMessage","getErrorMessage"],"mappings":"wHAKA,MAOMA,EAA2B,KAC/B,MAAMC,EAASC,OAAOC,UAAUC,MAAMC,SAAS,uBAE/C,OAAIJ,EAVe,yCACO,4EA6BHK,MAAOC,EAAeC,KAC7C,MAAMC,EAdY,EAACF,EAAeC,KAClC,IAAKD,EAAO,OACZ,MAAMG,EAAoBF,EAAU,YAAYA,IAAY,GAE5D,MAAO,GADSR,YACUO,WAAeG,KAU1BC,CAAYJ,EAAOC,GAElC,IAAKC,EACH,MAAM,IAAIG,MAAM,+CAGlB,MAAMC,QAAiBC,MAAML,EAAQ,CACnCM,OAAQ,MACRC,YAAa,YAGf,IAAKH,EAASI,GACZ,MAAM,IAAIL,MAAM,2BAA2BC,EAASK,cAGtD,aAAcL,EAASM,4BAqBEb,MAAOc,IAChC,MAAMb,MAAEA,EAAKC,QAAEA,EAAOa,MAAEA,GAAUD,EAElC,IAAKb,EACH,MAAM,IAAIK,MAAM,gDAGlB,IAAKS,GAA0B,IAAjBA,EAAMC,OAClB,MAAM,IAAIV,MAAM,2CAIlB,MAAMW,EAAiBF,EAAMG,IAAIC,gBAG3BC,EAAY,GADF1B,YACqB2B,mBAAmBpB,mBAElDqB,EAAW,IAAIC,SACrB,IAAK,MAAMC,KAAQP,EACjBK,EAASG,OAAO,QAASD,QAEXE,IAAZxB,GACFoB,EAASG,OAAO,UAAWvB,GAG7B,IACE,MAAMK,QAAiBC,MAAMY,EAAW,CACtCX,OAAQ,OACRC,YAAa,UACbiB,KAAML,IAGR,IAAKf,EAASI,GAAI,CAChB,IAAIiB,EAAUrB,EAASK,WACvB,IACE,MAAMe,QAAcpB,EAASM,OAC7Be,EAAUD,GAAME,OAAOD,SAAWD,GAAMG,SAAWF,CACrD,CAAE,MAEF,CACA,MAAM,IAAItB,MAAMsB,GAAW,0BAC7B,CAEA,aAAcrB,EAASM,MACzB,CAAE,MAAOgB,GACP,MAAME,EAAeC,EAAAA,gBAAgBH,EAAO,2BAC5C,MAAM,IAAIvB,MAAMyB,EAClB"}
@@ -1,2 +1,2 @@
1
- import{getErrorMessage as t}from"../../../../utilities/apiUtils.js";import{Configuration as s,AssetsApi as r}from"@flipdish/asset-management";import{sanitizeFile as e}from"../../../../utilities/fileUtils.js";const i=()=>{const t=window.location?.host?.includes("portal.flipdish.com");return t?"https://api.portal.flipdish.com/assets":"https://api-prod-staging.portal.flipdishdev.com/assets"},o=new r(new s({basePath:i(),baseOptions:{withCredentials:!0}})),a=async(t,s)=>{const r=((t,s)=>{if(!t)return;const r=s?`?brandId=${s}`:"";return`${i()}/orgs/${t}/assets${r}`})(t,s);if(!r)throw new Error("Organization ID is required to fetch assets");const e=await fetch(r,{method:"GET",credentials:"include"});if(!e.ok)throw new Error(`Failed to fetch assets: ${e.statusText}`);return await e.json()},n=async s=>{const{orgId:r,brandId:i,files:a}=s;if(!r)throw new Error("Organization ID is required to upload assets");if(!a||0===a.length)throw new Error("At least one file is required to upload");const n=a.map(e);try{return(await o.uploadAsset(r,n,i)).data}catch(s){const r=t(s,"Failed to upload assets");throw new Error(r)}};export{a as getAssets,n as uploadAsset};
1
+ import{getErrorMessage as t}from"../../../../utilities/apiUtils.js";import{sanitizeFile as s}from"../../../../utilities/fileUtils.js";const o=()=>{const t=window.location?.host?.includes("portal.flipdish.com");return t?"https://api.portal.flipdish.com/assets":"https://api-prod-staging.portal.flipdishdev.com/assets"},e=async(t,s)=>{const e=((t,s)=>{if(!t)return;const e=s?`?brandId=${s}`:"";return`${o()}/orgs/${t}/assets${e}`})(t,s);if(!e)throw new Error("Organization ID is required to fetch assets");const r=await fetch(e,{method:"GET",credentials:"include"});if(!r.ok)throw new Error(`Failed to fetch assets: ${r.statusText}`);return await r.json()},r=async e=>{const{orgId:r,brandId:a,files:i}=e;if(!r)throw new Error("Organization ID is required to upload assets");if(!i||0===i.length)throw new Error("At least one file is required to upload");const n=i.map(s),d=`${o()}/orgs/${encodeURIComponent(r)}/assets/upload`,c=new FormData;for(const t of n)c.append("files",t);void 0!==a&&c.append("brandId",a);try{const t=await fetch(d,{method:"POST",credentials:"include",body:c});if(!t.ok){let s=t.statusText;try{const o=await t.json();s=o?.error?.message??o?.Message??s}catch{}throw new Error(s||"Failed to upload assets")}return await t.json()}catch(s){const o=t(s,"Failed to upload assets");throw new Error(o)}};export{e as getAssets,r as uploadAsset};
2
2
  //# sourceMappingURL=asset.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset.service.js","sources":["../../../../../src/components/organisms/AssetManager/services/asset.service.ts"],"sourcesContent":["import { getErrorMessage } from '@fd/utilities/apiUtils';\nimport { AssetsApi, Configuration } from '@flipdish/asset-management';\n\nimport { sanitizeFile } from '../../../../utilities/fileUtils';\nimport type { ListAssetsResponse, UploadAssetResponse } from '../types/assets.type';\n\nconst PROD_API_URL = 'https://api.portal.flipdish.com/assets';\nconst DEV_STAGING_API_URL = 'https://api-prod-staging.portal.flipdishdev.com/assets';\n\n/**\n * Gets the asset management API base URL based on the current environment\n * @returns The appropriate API URL for the current environment\n */\nconst getAssetManagementApiUrl = (): string => {\n const isProd = window.location?.host?.includes('portal.flipdish.com');\n\n if (isProd) {\n return PROD_API_URL;\n }\n\n return DEV_STAGING_API_URL;\n};\n\n/**\n * Configuration for the asset management API client\n * - basePath: API base URL based on environment\n * - baseOptions.withCredentials: Send cookies/credentials with requests\n */\nconst configuration = new Configuration({\n basePath: getAssetManagementApiUrl(),\n baseOptions: {\n withCredentials: true,\n },\n});\n\nconst assetsApi = new AssetsApi(configuration);\n\nconst buildApiUrl = (orgId: string, brandId?: string): string | undefined => {\n if (!orgId) return undefined;\n const brandIdQueryParam = brandId ? `?brandId=${brandId}` : '';\n const baseUrl = getAssetManagementApiUrl();\n return `${baseUrl}/orgs/${orgId}/assets${brandIdQueryParam}`;\n};\n\n/**\n * Fetches assets from the asset management service API\n * @param orgId - organization ID.\n * @param brandId - brand ID.\n * @returns Promise resolving to an array of assets\n */\nexport const getAssets = async (orgId: string, brandId?: string): Promise<ListAssetsResponse> => {\n const apiUrl = buildApiUrl(orgId, brandId);\n\n if (!apiUrl) {\n throw new Error('Organization ID is required to fetch assets');\n }\n\n const response = await fetch(apiUrl, {\n method: 'GET',\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch assets: ${response.statusText}`);\n }\n\n return (await response.json()) as ListAssetsResponse;\n};\n\n/**\n * Upload parameters for asset upload\n */\nexport interface UploadAssetParams {\n /** Organization ID */\n orgId: string;\n /** Optional brand ID */\n brandId?: string;\n /** The files to upload */\n files: File[];\n}\n\n/**\n * Uploads multiple assets to the asset management service API\n * Sanitizes filenames by replacing spaces with dashes before uploading\n * @param params - Upload parameters containing orgId, brandId, and files\n * @returns Promise resolving to an array of uploaded assets\n */\nexport const uploadAsset = async (params: UploadAssetParams): Promise<UploadAssetResponse> => {\n const { orgId, brandId, files } = params;\n\n if (!orgId) {\n throw new Error('Organization ID is required to upload assets');\n }\n\n if (!files || files.length === 0) {\n throw new Error('At least one file is required to upload');\n }\n\n // Sanitize filenames by replacing spaces with dashes\n const sanitizedFiles = files.map(sanitizeFile);\n\n try {\n const response = await assetsApi.uploadAsset(orgId, sanitizedFiles, brandId);\n return response.data;\n } catch (error: unknown) {\n const errorMessage = getErrorMessage(error, 'Failed to upload assets');\n throw new Error(errorMessage);\n }\n};\n"],"names":["getAssetManagementApiUrl","isProd","window","location","host","includes","assetsApi","AssetsApi","Configuration","basePath","baseOptions","withCredentials","getAssets","async","orgId","brandId","apiUrl","brandIdQueryParam","buildApiUrl","Error","response","fetch","method","credentials","ok","statusText","json","uploadAsset","params","files","length","sanitizedFiles","map","sanitizeFile","data","error","errorMessage","getErrorMessage"],"mappings":"gNAMA,MAOMA,EAA2B,KAC/B,MAAMC,EAASC,OAAOC,UAAUC,MAAMC,SAAS,uBAE/C,OAAIJ,EAVe,yCACO,0DA4BtBK,EAAY,IAAIC,EAPA,IAAIC,EAAc,CACtCC,SAAUT,IACVU,YAAa,CACXC,iBAAiB,MAmBRC,EAAYC,MAAOC,EAAeC,KAC7C,MAAMC,EAdY,EAACF,EAAeC,KAClC,IAAKD,EAAO,OACZ,MAAMG,EAAoBF,EAAU,YAAYA,IAAY,GAE5D,MAAO,GADSf,YACUc,WAAeG,KAU1BC,CAAYJ,EAAOC,GAElC,IAAKC,EACH,MAAM,IAAIG,MAAM,+CAGlB,MAAMC,QAAiBC,MAAML,EAAQ,CACnCM,OAAQ,MACRC,YAAa,YAGf,IAAKH,EAASI,GACZ,MAAM,IAAIL,MAAM,2BAA2BC,EAASK,cAGtD,aAAcL,EAASM,QAqBZC,EAAcd,MAAOe,IAChC,MAAMd,MAAEA,EAAKC,QAAEA,EAAOc,MAAEA,GAAUD,EAElC,IAAKd,EACH,MAAM,IAAIK,MAAM,gDAGlB,IAAKU,GAA0B,IAAjBA,EAAMC,OAClB,MAAM,IAAIX,MAAM,2CAIlB,MAAMY,EAAiBF,EAAMG,IAAIC,GAEjC,IAEE,aADuB3B,EAAUqB,YAAYb,EAAOiB,EAAgBhB,IACpDmB,IAClB,CAAE,MAAOC,GACP,MAAMC,EAAeC,EAAgBF,EAAO,2BAC5C,MAAM,IAAIhB,MAAMiB,EAClB"}
1
+ {"version":3,"file":"asset.service.js","sources":["../../../../../src/components/organisms/AssetManager/services/asset.service.ts"],"sourcesContent":["import { getErrorMessage } from '@fd/utilities/apiUtils';\n\nimport { sanitizeFile } from '../../../../utilities/fileUtils';\nimport type { ListAssetsResponse, UploadAssetResponse } from '../types/assets.type';\n\nconst PROD_API_URL = 'https://api.portal.flipdish.com/assets';\nconst DEV_STAGING_API_URL = 'https://api-prod-staging.portal.flipdishdev.com/assets';\n\n/**\n * Gets the asset management API base URL based on the current environment\n * @returns The appropriate API URL for the current environment\n */\nconst getAssetManagementApiUrl = (): string => {\n const isProd = window.location?.host?.includes('portal.flipdish.com');\n\n if (isProd) {\n return PROD_API_URL;\n }\n\n return DEV_STAGING_API_URL;\n};\n\nconst buildApiUrl = (orgId: string, brandId?: string): string | undefined => {\n if (!orgId) return undefined;\n const brandIdQueryParam = brandId ? `?brandId=${brandId}` : '';\n const baseUrl = getAssetManagementApiUrl();\n return `${baseUrl}/orgs/${orgId}/assets${brandIdQueryParam}`;\n};\n\n/**\n * Fetches assets from the asset management service API\n * @param orgId - organization ID.\n * @param brandId - brand ID.\n * @returns Promise resolving to an array of assets\n */\nexport const getAssets = async (orgId: string, brandId?: string): Promise<ListAssetsResponse> => {\n const apiUrl = buildApiUrl(orgId, brandId);\n\n if (!apiUrl) {\n throw new Error('Organization ID is required to fetch assets');\n }\n\n const response = await fetch(apiUrl, {\n method: 'GET',\n credentials: 'include',\n });\n\n if (!response.ok) {\n throw new Error(`Failed to fetch assets: ${response.statusText}`);\n }\n\n return (await response.json()) as ListAssetsResponse;\n};\n\n/**\n * Upload parameters for asset upload\n */\nexport interface UploadAssetParams {\n /** Organization ID */\n orgId: string;\n /** Optional brand ID */\n brandId?: string;\n /** The files to upload */\n files: File[];\n}\n\n/**\n * Uploads multiple assets to the asset management service API\n * Sanitizes filenames by replacing spaces with dashes before uploading\n * @param params - Upload parameters containing orgId, brandId, and files\n * @returns Promise resolving to an array of uploaded assets\n */\nexport const uploadAsset = async (params: UploadAssetParams): Promise<UploadAssetResponse> => {\n const { orgId, brandId, files } = params;\n\n if (!orgId) {\n throw new Error('Organization ID is required to upload assets');\n }\n\n if (!files || files.length === 0) {\n throw new Error('At least one file is required to upload');\n }\n\n // Sanitize filenames by replacing spaces with dashes\n const sanitizedFiles = files.map(sanitizeFile);\n\n const baseUrl = getAssetManagementApiUrl();\n const uploadUrl = `${baseUrl}/orgs/${encodeURIComponent(orgId)}/assets/upload`;\n\n const formData = new FormData();\n for (const file of sanitizedFiles) {\n formData.append('files', file);\n }\n if (brandId !== undefined) {\n formData.append('brandId', brandId);\n }\n\n try {\n const response = await fetch(uploadUrl, {\n method: 'POST',\n credentials: 'include',\n body: formData,\n });\n\n if (!response.ok) {\n let message = response.statusText;\n try {\n const body = (await response.json()) as { error?: { message?: string }; Message?: string };\n message = body?.error?.message ?? body?.Message ?? message;\n } catch {\n // ignore JSON parse failure\n }\n throw new Error(message || 'Failed to upload assets');\n }\n\n return (await response.json()) as UploadAssetResponse;\n } catch (error: unknown) {\n const errorMessage = getErrorMessage(error, 'Failed to upload assets');\n throw new Error(errorMessage);\n }\n};\n"],"names":["getAssetManagementApiUrl","isProd","window","location","host","includes","getAssets","async","orgId","brandId","apiUrl","brandIdQueryParam","buildApiUrl","Error","response","fetch","method","credentials","ok","statusText","json","uploadAsset","params","files","length","sanitizedFiles","map","sanitizeFile","uploadUrl","encodeURIComponent","formData","FormData","file","append","undefined","body","message","error","Message","errorMessage","getErrorMessage"],"mappings":"sIAKA,MAOMA,EAA2B,KAC/B,MAAMC,EAASC,OAAOC,UAAUC,MAAMC,SAAS,uBAE/C,OAAIJ,EAVe,yCACO,0DA6BfK,EAAYC,MAAOC,EAAeC,KAC7C,MAAMC,EAdY,EAACF,EAAeC,KAClC,IAAKD,EAAO,OACZ,MAAMG,EAAoBF,EAAU,YAAYA,IAAY,GAE5D,MAAO,GADST,YACUQ,WAAeG,KAU1BC,CAAYJ,EAAOC,GAElC,IAAKC,EACH,MAAM,IAAIG,MAAM,+CAGlB,MAAMC,QAAiBC,MAAML,EAAQ,CACnCM,OAAQ,MACRC,YAAa,YAGf,IAAKH,EAASI,GACZ,MAAM,IAAIL,MAAM,2BAA2BC,EAASK,cAGtD,aAAcL,EAASM,QAqBZC,EAAcd,MAAOe,IAChC,MAAMd,MAAEA,EAAKC,QAAEA,EAAOc,MAAEA,GAAUD,EAElC,IAAKd,EACH,MAAM,IAAIK,MAAM,gDAGlB,IAAKU,GAA0B,IAAjBA,EAAMC,OAClB,MAAM,IAAIX,MAAM,2CAIlB,MAAMY,EAAiBF,EAAMG,IAAIC,GAG3BC,EAAY,GADF5B,YACqB6B,mBAAmBrB,mBAElDsB,EAAW,IAAIC,SACrB,IAAK,MAAMC,KAAQP,EACjBK,EAASG,OAAO,QAASD,QAEXE,IAAZzB,GACFqB,EAASG,OAAO,UAAWxB,GAG7B,IACE,MAAMK,QAAiBC,MAAMa,EAAW,CACtCZ,OAAQ,OACRC,YAAa,UACbkB,KAAML,IAGR,IAAKhB,EAASI,GAAI,CAChB,IAAIkB,EAAUtB,EAASK,WACvB,IACE,MAAMgB,QAAcrB,EAASM,OAC7BgB,EAAUD,GAAME,OAAOD,SAAWD,GAAMG,SAAWF,CACrD,CAAE,MAEF,CACA,MAAM,IAAIvB,MAAMuB,GAAW,0BAC7B,CAEA,aAActB,EAASM,MACzB,CAAE,MAAOiB,GACP,MAAME,EAAeC,EAAgBH,EAAO,2BAC5C,MAAM,IAAIxB,MAAM0B,EAClB"}
@@ -1,2 +1,2 @@
1
- "use strict";require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/index.cjs.js");var e=require("../../components/organisms/AssetManager/__mocks__/mockAssets.cjs.js"),s=require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/http.cjs.js"),t=require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.cjs.js");const o=[...[s.http.get("*/assets/orgs/:orgId/assets",(({request:s,params:o})=>(console.log("[MSW] Intercepted GET assets request:",s.url,"orgId:",o.orgId),t.HttpResponse.json(e.mockAssets)))),s.http.post("*/assets/orgs/:orgId/assets/upload",(async({request:s,params:o})=>{console.log("[MSW] Intercepted POST upload request:",s.url,"orgId:",o.orgId);const r=(await s.formData()).getAll("files").map((s=>e.createMockAsset({id:"asset_e3454351fw5",fileName:s.name,contentType:s.type||"image/jpeg",createdBy:"Test User",updatedBy:"Test User"})));return t.HttpResponse.json(r)}))]];exports.handlers=o;
1
+ "use strict";require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/index.cjs.js");var e=require("../../components/organisms/AssetManager/__mocks__/mockAssets.cjs.js"),s=require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/http.cjs.js"),t=require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.cjs.js");const o=[...[s.http.get("*/assets/orgs/:orgId/assets",(({request:s,params:o})=>(console.log("[MSW] Intercepted GET assets request:",s.url,"orgId:",o.orgId),t.HttpResponse.json(e.mockAssets)))),s.http.post("*/assets/orgs/:orgId/assets/upload",(async({request:s,params:o})=>{console.log("[MSW] Intercepted POST upload request:",s.url,"orgId:",o.orgId),await new Promise((e=>setTimeout(e,2e3)));const r=(await s.formData()).getAll("files").map((s=>e.createMockAsset({id:"asset_e3454351fw5",fileName:s.name,contentType:s.type||"image/jpeg",createdBy:"Test User",updatedBy:"Test User"})));return t.HttpResponse.json(r)}))]];exports.handlers=o;
2
2
  //# sourceMappingURL=handlers.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.cjs.js","sources":["../../../src/mocks/msw/handlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\n\nimport { createMockAsset, mockAssets } from '../../components/organisms/AssetManager/__mocks__/mockAssets';\n\nconst assetManagementHandlers = [\n // GET assets handler\n http.get('*/assets/orgs/:orgId/assets', ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted GET assets request:', request.url, 'orgId:', params['orgId']);\n return HttpResponse.json(mockAssets);\n }),\n\n // POST upload handler\n http.post('*/assets/orgs/:orgId/assets/upload', async ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted POST upload request:', request.url, 'orgId:', params['orgId']);\n const formData = await request.formData();\n const files = formData.getAll('files') as File[];\n\n const uploadedAssets = files.map((file) =>\n createMockAsset({\n id: `asset_e3454351fw5`,\n fileName: file.name,\n contentType: file.type || 'image/jpeg',\n createdBy: 'Test User',\n updatedBy: 'Test User',\n }),\n );\n\n return HttpResponse.json(uploadedAssets);\n }),\n];\n\nexport const handlers = [...assetManagementHandlers];\n"],"names":["handlers","http","get","request","params","console","log","url","HttpResponse","json","mockAssets","post","async","uploadedAssets","formData","getAll","map","file","createMockAsset","id","fileName","name","contentType","type","createdBy","updatedBy"],"mappings":"meAIA,MA6BaA,EAAW,IA7BQ,CAE9BC,EAAAA,KAAKC,IAAI,+BAA+B,EAAGC,UAASC,aAElDC,QAAQC,IAAI,wCAAyCH,EAAQI,IAAK,SAAUH,EAAc,OACnFI,EAAAA,aAAaC,KAAKC,iBAI3BT,EAAAA,KAAKU,KAAK,sCAAsCC,OAAST,UAASC,aAEhEC,QAAQC,IAAI,yCAA0CH,EAAQI,IAAK,SAAUH,EAAc,OAC3F,MAGMS,SAHiBV,EAAQW,YACRC,OAAO,SAEDC,KAAKC,GAChCC,EAAAA,gBAAgB,CACdC,GAAI,oBACJC,SAAUH,EAAKI,KACfC,YAAaL,EAAKM,MAAQ,aAC1BC,UAAW,YACXC,UAAW,gBAIf,OAAOjB,EAAAA,aAAaC,KAAKI"}
1
+ {"version":3,"file":"handlers.cjs.js","sources":["../../../src/mocks/msw/handlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\n\nimport { createMockAsset, mockAssets } from '../../components/organisms/AssetManager/__mocks__/mockAssets';\n\n/** Mock delay (ms) for upload so loading indicator is visible in Storybook */\nconst UPLOAD_MOCK_DELAY_MS = 2000;\n\nconst assetManagementHandlers = [\n // GET assets handler\n http.get('*/assets/orgs/:orgId/assets', ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted GET assets request:', request.url, 'orgId:', params['orgId']);\n return HttpResponse.json(mockAssets);\n }),\n\n // POST upload handler\n http.post('*/assets/orgs/:orgId/assets/upload', async ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted POST upload request:', request.url, 'orgId:', params['orgId']);\n await new Promise((resolve) => setTimeout(resolve, UPLOAD_MOCK_DELAY_MS));\n const formData = await request.formData();\n const files = formData.getAll('files') as File[];\n\n const uploadedAssets = files.map((file) =>\n createMockAsset({\n id: `asset_e3454351fw5`,\n fileName: file.name,\n contentType: file.type || 'image/jpeg',\n createdBy: 'Test User',\n updatedBy: 'Test User',\n }),\n );\n\n return HttpResponse.json(uploadedAssets);\n }),\n];\n\nexport const handlers = [...assetManagementHandlers];\n"],"names":["handlers","http","get","request","params","console","log","url","HttpResponse","json","mockAssets","post","async","Promise","resolve","setTimeout","uploadedAssets","formData","getAll","map","file","createMockAsset","id","fileName","name","contentType","type","createdBy","updatedBy"],"mappings":"meAKA,MAgCaA,EAAW,IA9BQ,CAE9BC,EAAAA,KAAKC,IAAI,+BAA+B,EAAGC,UAASC,aAElDC,QAAQC,IAAI,wCAAyCH,EAAQI,IAAK,SAAUH,EAAc,OACnFI,EAAAA,aAAaC,KAAKC,iBAI3BT,EAAAA,KAAKU,KAAK,sCAAsCC,OAAST,UAASC,aAEhEC,QAAQC,IAAI,yCAA0CH,EAAQI,IAAK,SAAUH,EAAc,aACrF,IAAIS,SAASC,GAAYC,WAAWD,EAdjB,OAezB,MAGME,SAHiBb,EAAQc,YACRC,OAAO,SAEDC,KAAKC,GAChCC,EAAAA,gBAAgB,CACdC,GAAI,oBACJC,SAAUH,EAAKI,KACfC,YAAaL,EAAKM,MAAQ,aAC1BC,UAAW,YACXC,UAAW,gBAIf,OAAOpB,EAAAA,aAAaC,KAAKO"}
@@ -1,4 +1,4 @@
1
- import { HttpHandler } from '../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/handlers/HttpHandler.d.js';
1
+ import { HttpHandler } from '../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/handlers/HttpHandler.d.js';
2
2
 
3
3
  declare const handlers: HttpHandler[];
4
4
 
@@ -1,2 +1,2 @@
1
- import"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/index.js";import{mockAssets as e,createMockAsset as s}from"../../components/organisms/AssetManager/__mocks__/mockAssets.js";import{http as o}from"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/http.js";import{HttpResponse as t}from"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.js";const r=[...[o.get("*/assets/orgs/:orgId/assets",(({request:s,params:o})=>(console.log("[MSW] Intercepted GET assets request:",s.url,"orgId:",o.orgId),t.json(e)))),o.post("*/assets/orgs/:orgId/assets/upload",(async({request:e,params:o})=>{console.log("[MSW] Intercepted POST upload request:",e.url,"orgId:",o.orgId);const r=(await e.formData()).getAll("files").map((e=>s({id:"asset_e3454351fw5",fileName:e.name,contentType:e.type||"image/jpeg",createdBy:"Test User",updatedBy:"Test User"})));return t.json(r)}))]];export{r as handlers};
1
+ import"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/index.js";import{mockAssets as e,createMockAsset as s}from"../../components/organisms/AssetManager/__mocks__/mockAssets.js";import{http as o}from"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/http.js";import{HttpResponse as t}from"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.js";const r=[...[o.get("*/assets/orgs/:orgId/assets",(({request:s,params:o})=>(console.log("[MSW] Intercepted GET assets request:",s.url,"orgId:",o.orgId),t.json(e)))),o.post("*/assets/orgs/:orgId/assets/upload",(async({request:e,params:o})=>{console.log("[MSW] Intercepted POST upload request:",e.url,"orgId:",o.orgId),await new Promise((e=>setTimeout(e,2e3)));const r=(await e.formData()).getAll("files").map((e=>s({id:"asset_e3454351fw5",fileName:e.name,contentType:e.type||"image/jpeg",createdBy:"Test User",updatedBy:"Test User"})));return t.json(r)}))]];export{r as handlers};
2
2
  //# sourceMappingURL=handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sources":["../../../src/mocks/msw/handlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\n\nimport { createMockAsset, mockAssets } from '../../components/organisms/AssetManager/__mocks__/mockAssets';\n\nconst assetManagementHandlers = [\n // GET assets handler\n http.get('*/assets/orgs/:orgId/assets', ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted GET assets request:', request.url, 'orgId:', params['orgId']);\n return HttpResponse.json(mockAssets);\n }),\n\n // POST upload handler\n http.post('*/assets/orgs/:orgId/assets/upload', async ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted POST upload request:', request.url, 'orgId:', params['orgId']);\n const formData = await request.formData();\n const files = formData.getAll('files') as File[];\n\n const uploadedAssets = files.map((file) =>\n createMockAsset({\n id: `asset_e3454351fw5`,\n fileName: file.name,\n contentType: file.type || 'image/jpeg',\n createdBy: 'Test User',\n updatedBy: 'Test User',\n }),\n );\n\n return HttpResponse.json(uploadedAssets);\n }),\n];\n\nexport const handlers = [...assetManagementHandlers];\n"],"names":["handlers","http","get","request","params","console","log","url","HttpResponse","json","mockAssets","post","async","uploadedAssets","formData","getAll","map","file","createMockAsset","id","fileName","name","contentType","type","createdBy","updatedBy"],"mappings":"ggBAIA,MA6BaA,EAAW,IA7BQ,CAE9BC,EAAKC,IAAI,+BAA+B,EAAGC,UAASC,aAElDC,QAAQC,IAAI,wCAAyCH,EAAQI,IAAK,SAAUH,EAAc,OACnFI,EAAaC,KAAKC,MAI3BT,EAAKU,KAAK,sCAAsCC,OAAST,UAASC,aAEhEC,QAAQC,IAAI,yCAA0CH,EAAQI,IAAK,SAAUH,EAAc,OAC3F,MAGMS,SAHiBV,EAAQW,YACRC,OAAO,SAEDC,KAAKC,GAChCC,EAAgB,CACdC,GAAI,oBACJC,SAAUH,EAAKI,KACfC,YAAaL,EAAKM,MAAQ,aAC1BC,UAAW,YACXC,UAAW,gBAIf,OAAOjB,EAAaC,KAAKI"}
1
+ {"version":3,"file":"handlers.js","sources":["../../../src/mocks/msw/handlers.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\n\nimport { createMockAsset, mockAssets } from '../../components/organisms/AssetManager/__mocks__/mockAssets';\n\n/** Mock delay (ms) for upload so loading indicator is visible in Storybook */\nconst UPLOAD_MOCK_DELAY_MS = 2000;\n\nconst assetManagementHandlers = [\n // GET assets handler\n http.get('*/assets/orgs/:orgId/assets', ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted GET assets request:', request.url, 'orgId:', params['orgId']);\n return HttpResponse.json(mockAssets);\n }),\n\n // POST upload handler\n http.post('*/assets/orgs/:orgId/assets/upload', async ({ request, params }) => {\n // eslint-disable-next-line no-console\n console.log('[MSW] Intercepted POST upload request:', request.url, 'orgId:', params['orgId']);\n await new Promise((resolve) => setTimeout(resolve, UPLOAD_MOCK_DELAY_MS));\n const formData = await request.formData();\n const files = formData.getAll('files') as File[];\n\n const uploadedAssets = files.map((file) =>\n createMockAsset({\n id: `asset_e3454351fw5`,\n fileName: file.name,\n contentType: file.type || 'image/jpeg',\n createdBy: 'Test User',\n updatedBy: 'Test User',\n }),\n );\n\n return HttpResponse.json(uploadedAssets);\n }),\n];\n\nexport const handlers = [...assetManagementHandlers];\n"],"names":["handlers","http","get","request","params","console","log","url","HttpResponse","json","mockAssets","post","async","Promise","resolve","setTimeout","uploadedAssets","formData","getAll","map","file","createMockAsset","id","fileName","name","contentType","type","createdBy","updatedBy"],"mappings":"ggBAKA,MAgCaA,EAAW,IA9BQ,CAE9BC,EAAKC,IAAI,+BAA+B,EAAGC,UAASC,aAElDC,QAAQC,IAAI,wCAAyCH,EAAQI,IAAK,SAAUH,EAAc,OACnFI,EAAaC,KAAKC,MAI3BT,EAAKU,KAAK,sCAAsCC,OAAST,UAASC,aAEhEC,QAAQC,IAAI,yCAA0CH,EAAQI,IAAK,SAAUH,EAAc,aACrF,IAAIS,SAASC,GAAYC,WAAWD,EAdjB,OAezB,MAGME,SAHiBb,EAAQc,YACRC,OAAO,SAEDC,KAAKC,GAChCC,EAAgB,CACdC,GAAI,oBACJC,SAAUH,EAAKI,KACfC,YAAaL,EAAKM,MAAQ,aAC1BC,UAAW,YACXC,UAAW,gBAIf,OAAOpB,EAAaC,KAAKO"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/node/index.cjs.js"),s=require("./handlers.cjs.js");const r=e.setupServer(...s.handlers);exports.server=r;
1
+ "use strict";var e=require("../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/node/index.cjs.js"),s=require("./handlers.cjs.js");const r=e.setupServer(...s.handlers);exports.server=r;
2
2
  //# sourceMappingURL=server.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { SetupServerApi } from '../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/node/index.d.js';
1
+ import { SetupServerApi } from '../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/node/index.d.js';
2
2
 
3
3
  declare const server: SetupServerApi;
4
4
 
@@ -1,2 +1,2 @@
1
- import{setupServer as o}from"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.33_typescript@5.4.5/node_modules/msw/lib/node/index.js";import{handlers as e}from"./handlers.js";const s=o(...e);export{s as server};
1
+ import{setupServer as o}from"../../node_modules/.pnpm/msw@2.12.10_@types_node@20.19.34_typescript@5.4.5/node_modules/msw/lib/node/index.js";import{handlers as e}from"./handlers.js";const s=o(...e);export{s as server};
2
2
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpResponse.cjs.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.mjs"],"sourcesContent":["import { FetchResponse } from \"@mswjs/interceptors\";\nimport {\n decorateResponse,\n normalizeResponseInit\n} from './utils/HttpResponse/decorators.mjs';\nconst bodyType = Symbol(\"bodyType\");\nclass HttpResponse extends FetchResponse {\n [bodyType] = null;\n constructor(body, init) {\n const responseInit = normalizeResponseInit(init);\n super(body, responseInit);\n decorateResponse(this, responseInit);\n }\n static error() {\n return super.error();\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/plain\");\n }\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n body ? new Blob([body]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/json\");\n }\n const responseText = JSON.stringify(body);\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n responseText ? new Blob([responseText]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(responseText, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/xml\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/html\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n if (body && !responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\"Content-Length\", body.byteLength.toString());\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body, init) {\n return new HttpResponse(body, normalizeResponseInit(init));\n }\n}\nexport {\n HttpResponse,\n bodyType\n};\n//# sourceMappingURL=HttpResponse.mjs.map"],"names":["bodyType","Symbol","HttpResponse","FetchResponse","constructor","body","init","responseInit","normalizeResponseInit","super","decorateResponse","this","error","text","headers","has","set","Blob","size","toString","json","responseText","JSON","stringify","xml","html","arrayBuffer","byteLength","formData"],"mappings":"gUAKK,MAACA,EAAWC,OAAO,YACxB,MAAMC,UAAqBC,EAAAA,EACzBH,CAACA,GAAY,KACb,WAAAI,CAAYC,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAC3CG,MAAMJ,EAAME,GACZG,EAAAA,iBAAiBC,KAAMJ,EACzB,CACA,YAAOK,GACL,OAAOH,MAAMG,OACf,CAOA,WAAOC,CAAKR,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAU3C,OATKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,cAEtCT,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAX,EAAO,IAAIY,KAAK,CAACZ,IAAOa,KAAKC,WAAa,KAGvC,IAAIjB,EAAaG,EAAME,EAChC,CAOA,WAAOa,CAAKf,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GACtCC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,oBAE3C,MAAMK,EAAeC,KAAKC,UAAUlB,GAOpC,OANKE,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAK,EAAe,IAAIJ,KAAK,CAACI,IAAeH,KAAKC,WAAa,KAGvD,IAAIjB,EAAamB,EAAcd,EACxC,CAOA,UAAOiB,CAAInB,EAAMC,GACf,MAAMC,EAAeC,EAAAA,sBAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,YAEpC,IAAId,EAAaG,EAAME,EAChC,CAOA,WAAOkB,CAAKpB,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,aAEpC,IAAId,EAAaG,EAAME,EAChC,CAUA,kBAAOmB,CAAYrB,EAAMC,GACvB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAO3C,OANKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,4BAEvCX,IAASE,EAAaO,QAAQC,IAAI,mBACpCR,EAAaO,QAAQE,IAAI,iBAAkBX,EAAKsB,WAAWR,YAEtD,IAAIjB,EAAaG,EAAME,EAChC,CASA,eAAOqB,CAASvB,EAAMC,GACpB,OAAO,IAAIJ,EAAaG,EAAMG,EAAAA,sBAAsBF,GACtD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"HttpResponse.cjs.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.mjs"],"sourcesContent":["import { FetchResponse } from \"@mswjs/interceptors\";\nimport {\n decorateResponse,\n normalizeResponseInit\n} from './utils/HttpResponse/decorators.mjs';\nconst bodyType = Symbol(\"bodyType\");\nclass HttpResponse extends FetchResponse {\n [bodyType] = null;\n constructor(body, init) {\n const responseInit = normalizeResponseInit(init);\n super(body, responseInit);\n decorateResponse(this, responseInit);\n }\n static error() {\n return super.error();\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/plain\");\n }\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n body ? new Blob([body]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/json\");\n }\n const responseText = JSON.stringify(body);\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n responseText ? new Blob([responseText]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(responseText, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/xml\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/html\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n if (body && !responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\"Content-Length\", body.byteLength.toString());\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body, init) {\n return new HttpResponse(body, normalizeResponseInit(init));\n }\n}\nexport {\n HttpResponse,\n bodyType\n};\n//# sourceMappingURL=HttpResponse.mjs.map"],"names":["bodyType","Symbol","HttpResponse","FetchResponse","constructor","body","init","responseInit","normalizeResponseInit","super","decorateResponse","this","error","text","headers","has","set","Blob","size","toString","json","responseText","JSON","stringify","xml","html","arrayBuffer","byteLength","formData"],"mappings":"gUAKK,MAACA,EAAWC,OAAO,YACxB,MAAMC,UAAqBC,EAAAA,EACzBH,CAACA,GAAY,KACb,WAAAI,CAAYC,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAC3CG,MAAMJ,EAAME,GACZG,EAAAA,iBAAiBC,KAAMJ,EACzB,CACA,YAAOK,GACL,OAAOH,MAAMG,OACf,CAOA,WAAOC,CAAKR,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAU3C,OATKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,cAEtCT,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAX,EAAO,IAAIY,KAAK,CAACZ,IAAOa,KAAKC,WAAa,KAGvC,IAAIjB,EAAaG,EAAME,EAChC,CAOA,WAAOa,CAAKf,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GACtCC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,oBAE3C,MAAMK,EAAeC,KAAKC,UAAUlB,GAOpC,OANKE,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAK,EAAe,IAAIJ,KAAK,CAACI,IAAeH,KAAKC,WAAa,KAGvD,IAAIjB,EAAamB,EAAcd,EACxC,CAOA,UAAOiB,CAAInB,EAAMC,GACf,MAAMC,EAAeC,EAAAA,sBAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,YAEpC,IAAId,EAAaG,EAAME,EAChC,CAOA,WAAOkB,CAAKpB,EAAMC,GAChB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,aAEpC,IAAId,EAAaG,EAAME,EAChC,CAUA,kBAAOmB,CAAYrB,EAAMC,GACvB,MAAMC,EAAeC,EAAAA,sBAAsBF,GAO3C,OANKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,4BAEvCX,IAASE,EAAaO,QAAQC,IAAI,mBACpCR,EAAaO,QAAQE,IAAI,iBAAkBX,EAAKsB,WAAWR,YAEtD,IAAIjB,EAAaG,EAAME,EAChC,CASA,eAAOqB,CAASvB,EAAMC,GACpB,OAAO,IAAIJ,EAAaG,EAAMG,EAAAA,sBAAsBF,GACtD","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"HttpResponse.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.mjs"],"sourcesContent":["import { FetchResponse } from \"@mswjs/interceptors\";\nimport {\n decorateResponse,\n normalizeResponseInit\n} from './utils/HttpResponse/decorators.mjs';\nconst bodyType = Symbol(\"bodyType\");\nclass HttpResponse extends FetchResponse {\n [bodyType] = null;\n constructor(body, init) {\n const responseInit = normalizeResponseInit(init);\n super(body, responseInit);\n decorateResponse(this, responseInit);\n }\n static error() {\n return super.error();\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/plain\");\n }\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n body ? new Blob([body]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/json\");\n }\n const responseText = JSON.stringify(body);\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n responseText ? new Blob([responseText]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(responseText, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/xml\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/html\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n if (body && !responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\"Content-Length\", body.byteLength.toString());\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body, init) {\n return new HttpResponse(body, normalizeResponseInit(init));\n }\n}\nexport {\n HttpResponse,\n bodyType\n};\n//# sourceMappingURL=HttpResponse.mjs.map"],"names":["bodyType","Symbol","HttpResponse","FetchResponse","constructor","body","init","responseInit","normalizeResponseInit","super","decorateResponse","this","error","text","headers","has","set","Blob","size","toString","json","responseText","JSON","stringify","xml","html","arrayBuffer","byteLength","formData"],"mappings":"oVAKK,MAACA,EAAWC,OAAO,YACxB,MAAMC,UAAqBC,EACzBH,CAACA,GAAY,KACb,WAAAI,CAAYC,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GAC3CG,MAAMJ,EAAME,GACZG,EAAiBC,KAAMJ,EACzB,CACA,YAAOK,GACL,OAAOH,MAAMG,OACf,CAOA,WAAOC,CAAKR,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GAU3C,OATKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,cAEtCT,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAX,EAAO,IAAIY,KAAK,CAACZ,IAAOa,KAAKC,WAAa,KAGvC,IAAIjB,EAAaG,EAAME,EAChC,CAOA,WAAOa,CAAKf,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GACtCC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,oBAE3C,MAAMK,EAAeC,KAAKC,UAAUlB,GAOpC,OANKE,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAK,EAAe,IAAIJ,KAAK,CAACI,IAAeH,KAAKC,WAAa,KAGvD,IAAIjB,EAAamB,EAAcd,EACxC,CAOA,UAAOiB,CAAInB,EAAMC,GACf,MAAMC,EAAeC,EAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,YAEpC,IAAId,EAAaG,EAAME,EAChC,CAOA,WAAOkB,CAAKpB,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,aAEpC,IAAId,EAAaG,EAAME,EAChC,CAUA,kBAAOmB,CAAYrB,EAAMC,GACvB,MAAMC,EAAeC,EAAsBF,GAO3C,OANKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,4BAEvCX,IAASE,EAAaO,QAAQC,IAAI,mBACpCR,EAAaO,QAAQE,IAAI,iBAAkBX,EAAKsB,WAAWR,YAEtD,IAAIjB,EAAaG,EAAME,EAChC,CASA,eAAOqB,CAASvB,EAAMC,GACpB,OAAO,IAAIJ,EAAaG,EAAMG,EAAsBF,GACtD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"HttpResponse.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/HttpResponse.mjs"],"sourcesContent":["import { FetchResponse } from \"@mswjs/interceptors\";\nimport {\n decorateResponse,\n normalizeResponseInit\n} from './utils/HttpResponse/decorators.mjs';\nconst bodyType = Symbol(\"bodyType\");\nclass HttpResponse extends FetchResponse {\n [bodyType] = null;\n constructor(body, init) {\n const responseInit = normalizeResponseInit(init);\n super(body, responseInit);\n decorateResponse(this, responseInit);\n }\n static error() {\n return super.error();\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/plain\"` body.\n * @example\n * HttpResponse.text('hello world')\n * HttpResponse.text('Error', { status: 500 })\n */\n static text(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/plain\");\n }\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n body ? new Blob([body]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/json\"` body.\n * @example\n * HttpResponse.json({ firstName: 'John' })\n * HttpResponse.json({ error: 'Not Authorized' }, { status: 401 })\n */\n static json(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/json\");\n }\n const responseText = JSON.stringify(body);\n if (!responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\n \"Content-Length\",\n responseText ? new Blob([responseText]).size.toString() : \"0\"\n );\n }\n return new HttpResponse(responseText, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"application/xml\"` body.\n * @example\n * HttpResponse.xml(`<user name=\"John\" />`)\n * HttpResponse.xml(`<article id=\"abc-123\" />`, { status: 201 })\n */\n static xml(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/xml\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `Content-Type: \"text/html\"` body.\n * @example\n * HttpResponse.html(`<p class=\"author\">Jane Doe</p>`)\n * HttpResponse.html(`<main id=\"abc-123\">Main text</main>`, { status: 201 })\n */\n static html(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"text/html\");\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with an `ArrayBuffer` body.\n * @example\n * const buffer = new ArrayBuffer(3)\n * const view = new Uint8Array(buffer)\n * view.set([1, 2, 3])\n *\n * HttpResponse.arrayBuffer(buffer)\n */\n static arrayBuffer(body, init) {\n const responseInit = normalizeResponseInit(init);\n if (!responseInit.headers.has(\"Content-Type\")) {\n responseInit.headers.set(\"Content-Type\", \"application/octet-stream\");\n }\n if (body && !responseInit.headers.has(\"Content-Length\")) {\n responseInit.headers.set(\"Content-Length\", body.byteLength.toString());\n }\n return new HttpResponse(body, responseInit);\n }\n /**\n * Create a `Response` with a `FormData` body.\n * @example\n * const data = new FormData()\n * data.set('name', 'Alice')\n *\n * HttpResponse.formData(data)\n */\n static formData(body, init) {\n return new HttpResponse(body, normalizeResponseInit(init));\n }\n}\nexport {\n HttpResponse,\n bodyType\n};\n//# sourceMappingURL=HttpResponse.mjs.map"],"names":["bodyType","Symbol","HttpResponse","FetchResponse","constructor","body","init","responseInit","normalizeResponseInit","super","decorateResponse","this","error","text","headers","has","set","Blob","size","toString","json","responseText","JSON","stringify","xml","html","arrayBuffer","byteLength","formData"],"mappings":"oVAKK,MAACA,EAAWC,OAAO,YACxB,MAAMC,UAAqBC,EACzBH,CAACA,GAAY,KACb,WAAAI,CAAYC,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GAC3CG,MAAMJ,EAAME,GACZG,EAAiBC,KAAMJ,EACzB,CACA,YAAOK,GACL,OAAOH,MAAMG,OACf,CAOA,WAAOC,CAAKR,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GAU3C,OATKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,cAEtCT,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAX,EAAO,IAAIY,KAAK,CAACZ,IAAOa,KAAKC,WAAa,KAGvC,IAAIjB,EAAaG,EAAME,EAChC,CAOA,WAAOa,CAAKf,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GACtCC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,oBAE3C,MAAMK,EAAeC,KAAKC,UAAUlB,GAOpC,OANKE,EAAaO,QAAQC,IAAI,mBAC5BR,EAAaO,QAAQE,IACnB,iBACAK,EAAe,IAAIJ,KAAK,CAACI,IAAeH,KAAKC,WAAa,KAGvD,IAAIjB,EAAamB,EAAcd,EACxC,CAOA,UAAOiB,CAAInB,EAAMC,GACf,MAAMC,EAAeC,EAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,YAEpC,IAAId,EAAaG,EAAME,EAChC,CAOA,WAAOkB,CAAKpB,EAAMC,GAChB,MAAMC,EAAeC,EAAsBF,GAI3C,OAHKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,aAEpC,IAAId,EAAaG,EAAME,EAChC,CAUA,kBAAOmB,CAAYrB,EAAMC,GACvB,MAAMC,EAAeC,EAAsBF,GAO3C,OANKC,EAAaO,QAAQC,IAAI,iBAC5BR,EAAaO,QAAQE,IAAI,eAAgB,4BAEvCX,IAASE,EAAaO,QAAQC,IAAI,mBACpCR,EAAaO,QAAQE,IAAI,iBAAkBX,EAAKsB,WAAWR,YAEtD,IAAIjB,EAAaG,EAAME,EAChC,CASA,eAAOqB,CAASvB,EAAMC,GACpB,OAAO,IAAIJ,EAAaG,EAAMG,EAAsBF,GACtD","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"SetupApi.cjs.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/SetupApi.mjs"],"sourcesContent":["import { invariant } from \"outvariant\";\nimport { Emitter } from \"strict-event-emitter\";\nimport { devUtils } from './utils/internal/devUtils.mjs';\nimport { pipeEvents } from './utils/internal/pipeEvents.mjs';\nimport { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';\nimport { Disposable } from './utils/internal/Disposable.mjs';\nclass HandlersController {\n}\nclass InMemoryHandlersController {\n constructor(initialHandlers) {\n this.initialHandlers = initialHandlers;\n this.handlers = [...initialHandlers];\n }\n handlers;\n prepend(runtimeHandles) {\n this.handlers.unshift(...runtimeHandles);\n }\n reset(nextHandlers) {\n this.handlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];\n }\n currentHandlers() {\n return this.handlers;\n }\n}\nclass SetupApi extends Disposable {\n handlersController;\n emitter;\n publicEmitter;\n events;\n constructor(...initialHandlers) {\n super();\n invariant(\n this.validateHandlers(initialHandlers),\n devUtils.formatMessage(\n `Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?`\n )\n );\n this.handlersController = new InMemoryHandlersController(initialHandlers);\n this.emitter = new Emitter();\n this.publicEmitter = new Emitter();\n pipeEvents(this.emitter, this.publicEmitter);\n this.events = this.createLifeCycleEvents();\n this.subscriptions.push(() => {\n this.emitter.removeAllListeners();\n this.publicEmitter.removeAllListeners();\n });\n }\n validateHandlers(handlers) {\n return handlers.every((handler) => !Array.isArray(handler));\n }\n use(...runtimeHandlers) {\n invariant(\n this.validateHandlers(runtimeHandlers),\n devUtils.formatMessage(\n `Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?`\n )\n );\n this.handlersController.prepend(runtimeHandlers);\n }\n restoreHandlers() {\n this.handlersController.currentHandlers().forEach((handler) => {\n if (\"isUsed\" in handler) {\n handler.isUsed = false;\n }\n });\n }\n resetHandlers(...nextHandlers) {\n this.handlersController.reset(nextHandlers);\n }\n listHandlers() {\n return toReadonlyArray(this.handlersController.currentHandlers());\n }\n createLifeCycleEvents() {\n return {\n on: (...args) => {\n return this.publicEmitter.on(...args);\n },\n removeListener: (...args) => {\n return this.publicEmitter.removeListener(...args);\n },\n removeAllListeners: (...args) => {\n return this.publicEmitter.removeAllListeners(...args);\n }\n };\n }\n}\nexport {\n HandlersController,\n InMemoryHandlersController,\n SetupApi\n};\n//# sourceMappingURL=SetupApi.mjs.map"],"names":["InMemoryHandlersController","constructor","initialHandlers","this","handlers","prepend","runtimeHandles","unshift","reset","nextHandlers","length","currentHandlers","SetupApi","Disposable","handlersController","emitter","publicEmitter","events","super","invariant","validateHandlers","devUtils","formatMessage","Emitter","pipeEvents","createLifeCycleEvents","subscriptions","push","removeAllListeners","every","handler","Array","isArray","use","runtimeHandlers","restoreHandlers","forEach","isUsed","resetHandlers","listHandlers","toReadonlyArray","on","args","removeListener"],"mappings":"oZAQA,MAAMA,EACJ,WAAAC,CAAYC,GACVC,KAAKD,gBAAkBA,EACvBC,KAAKC,SAAW,IAAIF,EACtB,CACAE,SACA,OAAAC,CAAQC,GACNH,KAAKC,SAASG,WAAWD,EAC3B,CACA,KAAAE,CAAMC,GACJN,KAAKC,SAAWK,EAAaC,OAAS,EAAI,IAAID,GAAgB,IAAIN,KAAKD,gBACzE,CACA,eAAAS,GACE,OAAOR,KAAKC,QACd,EAEF,MAAMQ,UAAiBC,EAAAA,WACrBC,mBACAC,QACAC,cACAC,OACA,WAAAhB,IAAeC,GACbgB,QACAC,EAAAA,UACEhB,KAAKiB,iBAAiBlB,GACtBmB,EAAAA,SAASC,cACP,gHAGJnB,KAAKW,mBAAqB,IAAId,EAA2BE,GACzDC,KAAKY,QAAU,IAAIQ,UACnBpB,KAAKa,cAAgB,IAAIO,UACzBC,EAAAA,WAAWrB,KAAKY,QAASZ,KAAKa,eAC9Bb,KAAKc,OAASd,KAAKsB,wBACnBtB,KAAKuB,cAAcC,MAAK,KACtBxB,KAAKY,QAAQa,qBACbzB,KAAKa,cAAcY,uBAEvB,CACA,gBAAAR,CAAiBhB,GACf,OAAOA,EAASyB,OAAOC,IAAaC,MAAMC,QAAQF,IACpD,CACA,GAAAG,IAAOC,GACLf,EAAAA,UACEhB,KAAKiB,iBAAiBc,GACtBb,EAAAA,SAASC,cACP,mIAGJnB,KAAKW,mBAAmBT,QAAQ6B,EAClC,CACA,eAAAC,GACEhC,KAAKW,mBAAmBH,kBAAkByB,SAASN,IAC7C,WAAYA,IACdA,EAAQO,QAAS,KAGvB,CACA,aAAAC,IAAiB7B,GACfN,KAAKW,mBAAmBN,MAAMC,EAChC,CACA,YAAA8B,GACE,OAAOC,kBAAgBrC,KAAKW,mBAAmBH,kBACjD,CACA,qBAAAc,GACE,MAAO,CACLgB,GAAI,IAAIC,IACCvC,KAAKa,cAAcyB,MAAMC,GAElCC,eAAgB,IAAID,IACXvC,KAAKa,cAAc2B,kBAAkBD,GAE9Cd,mBAAoB,IAAIc,IACfvC,KAAKa,cAAcY,sBAAsBc,GAGtD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"SetupApi.cjs.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/SetupApi.mjs"],"sourcesContent":["import { invariant } from \"outvariant\";\nimport { Emitter } from \"strict-event-emitter\";\nimport { devUtils } from './utils/internal/devUtils.mjs';\nimport { pipeEvents } from './utils/internal/pipeEvents.mjs';\nimport { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';\nimport { Disposable } from './utils/internal/Disposable.mjs';\nclass HandlersController {\n}\nclass InMemoryHandlersController {\n constructor(initialHandlers) {\n this.initialHandlers = initialHandlers;\n this.handlers = [...initialHandlers];\n }\n handlers;\n prepend(runtimeHandles) {\n this.handlers.unshift(...runtimeHandles);\n }\n reset(nextHandlers) {\n this.handlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];\n }\n currentHandlers() {\n return this.handlers;\n }\n}\nclass SetupApi extends Disposable {\n handlersController;\n emitter;\n publicEmitter;\n events;\n constructor(...initialHandlers) {\n super();\n invariant(\n this.validateHandlers(initialHandlers),\n devUtils.formatMessage(\n `Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?`\n )\n );\n this.handlersController = new InMemoryHandlersController(initialHandlers);\n this.emitter = new Emitter();\n this.publicEmitter = new Emitter();\n pipeEvents(this.emitter, this.publicEmitter);\n this.events = this.createLifeCycleEvents();\n this.subscriptions.push(() => {\n this.emitter.removeAllListeners();\n this.publicEmitter.removeAllListeners();\n });\n }\n validateHandlers(handlers) {\n return handlers.every((handler) => !Array.isArray(handler));\n }\n use(...runtimeHandlers) {\n invariant(\n this.validateHandlers(runtimeHandlers),\n devUtils.formatMessage(\n `Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?`\n )\n );\n this.handlersController.prepend(runtimeHandlers);\n }\n restoreHandlers() {\n this.handlersController.currentHandlers().forEach((handler) => {\n if (\"isUsed\" in handler) {\n handler.isUsed = false;\n }\n });\n }\n resetHandlers(...nextHandlers) {\n this.handlersController.reset(nextHandlers);\n }\n listHandlers() {\n return toReadonlyArray(this.handlersController.currentHandlers());\n }\n createLifeCycleEvents() {\n return {\n on: (...args) => {\n return this.publicEmitter.on(...args);\n },\n removeListener: (...args) => {\n return this.publicEmitter.removeListener(...args);\n },\n removeAllListeners: (...args) => {\n return this.publicEmitter.removeAllListeners(...args);\n }\n };\n }\n}\nexport {\n HandlersController,\n InMemoryHandlersController,\n SetupApi\n};\n//# sourceMappingURL=SetupApi.mjs.map"],"names":["InMemoryHandlersController","constructor","initialHandlers","this","handlers","prepend","runtimeHandles","unshift","reset","nextHandlers","length","currentHandlers","SetupApi","Disposable","handlersController","emitter","publicEmitter","events","super","invariant","validateHandlers","devUtils","formatMessage","Emitter","pipeEvents","createLifeCycleEvents","subscriptions","push","removeAllListeners","every","handler","Array","isArray","use","runtimeHandlers","restoreHandlers","forEach","isUsed","resetHandlers","listHandlers","toReadonlyArray","on","args","removeListener"],"mappings":"oZAQA,MAAMA,EACJ,WAAAC,CAAYC,GACVC,KAAKD,gBAAkBA,EACvBC,KAAKC,SAAW,IAAIF,EACtB,CACAE,SACA,OAAAC,CAAQC,GACNH,KAAKC,SAASG,WAAWD,EAC3B,CACA,KAAAE,CAAMC,GACJN,KAAKC,SAAWK,EAAaC,OAAS,EAAI,IAAID,GAAgB,IAAIN,KAAKD,gBACzE,CACA,eAAAS,GACE,OAAOR,KAAKC,QACd,EAEF,MAAMQ,UAAiBC,EAAAA,WACrBC,mBACAC,QACAC,cACAC,OACA,WAAAhB,IAAeC,GACbgB,QACAC,EAAAA,UACEhB,KAAKiB,iBAAiBlB,GACtBmB,EAAAA,SAASC,cACP,gHAGJnB,KAAKW,mBAAqB,IAAId,EAA2BE,GACzDC,KAAKY,QAAU,IAAIQ,UACnBpB,KAAKa,cAAgB,IAAIO,UACzBC,EAAAA,WAAWrB,KAAKY,QAASZ,KAAKa,eAC9Bb,KAAKc,OAASd,KAAKsB,wBACnBtB,KAAKuB,cAAcC,MAAK,KACtBxB,KAAKY,QAAQa,qBACbzB,KAAKa,cAAcY,uBAEvB,CACA,gBAAAR,CAAiBhB,GACf,OAAOA,EAASyB,OAAOC,IAAaC,MAAMC,QAAQF,IACpD,CACA,GAAAG,IAAOC,GACLf,EAAAA,UACEhB,KAAKiB,iBAAiBc,GACtBb,EAAAA,SAASC,cACP,mIAGJnB,KAAKW,mBAAmBT,QAAQ6B,EAClC,CACA,eAAAC,GACEhC,KAAKW,mBAAmBH,kBAAkByB,SAASN,IAC7C,WAAYA,IACdA,EAAQO,QAAS,KAGvB,CACA,aAAAC,IAAiB7B,GACfN,KAAKW,mBAAmBN,MAAMC,EAChC,CACA,YAAA8B,GACE,OAAOC,kBAAgBrC,KAAKW,mBAAmBH,kBACjD,CACA,qBAAAc,GACE,MAAO,CACLgB,GAAI,IAAIC,IACCvC,KAAKa,cAAcyB,MAAMC,GAElCC,eAAgB,IAAID,IACXvC,KAAKa,cAAc2B,kBAAkBD,GAE9Cd,mBAAoB,IAAIc,IACfvC,KAAKa,cAAcY,sBAAsBc,GAGtD","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"SetupApi.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/SetupApi.mjs"],"sourcesContent":["import { invariant } from \"outvariant\";\nimport { Emitter } from \"strict-event-emitter\";\nimport { devUtils } from './utils/internal/devUtils.mjs';\nimport { pipeEvents } from './utils/internal/pipeEvents.mjs';\nimport { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';\nimport { Disposable } from './utils/internal/Disposable.mjs';\nclass HandlersController {\n}\nclass InMemoryHandlersController {\n constructor(initialHandlers) {\n this.initialHandlers = initialHandlers;\n this.handlers = [...initialHandlers];\n }\n handlers;\n prepend(runtimeHandles) {\n this.handlers.unshift(...runtimeHandles);\n }\n reset(nextHandlers) {\n this.handlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];\n }\n currentHandlers() {\n return this.handlers;\n }\n}\nclass SetupApi extends Disposable {\n handlersController;\n emitter;\n publicEmitter;\n events;\n constructor(...initialHandlers) {\n super();\n invariant(\n this.validateHandlers(initialHandlers),\n devUtils.formatMessage(\n `Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?`\n )\n );\n this.handlersController = new InMemoryHandlersController(initialHandlers);\n this.emitter = new Emitter();\n this.publicEmitter = new Emitter();\n pipeEvents(this.emitter, this.publicEmitter);\n this.events = this.createLifeCycleEvents();\n this.subscriptions.push(() => {\n this.emitter.removeAllListeners();\n this.publicEmitter.removeAllListeners();\n });\n }\n validateHandlers(handlers) {\n return handlers.every((handler) => !Array.isArray(handler));\n }\n use(...runtimeHandlers) {\n invariant(\n this.validateHandlers(runtimeHandlers),\n devUtils.formatMessage(\n `Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?`\n )\n );\n this.handlersController.prepend(runtimeHandlers);\n }\n restoreHandlers() {\n this.handlersController.currentHandlers().forEach((handler) => {\n if (\"isUsed\" in handler) {\n handler.isUsed = false;\n }\n });\n }\n resetHandlers(...nextHandlers) {\n this.handlersController.reset(nextHandlers);\n }\n listHandlers() {\n return toReadonlyArray(this.handlersController.currentHandlers());\n }\n createLifeCycleEvents() {\n return {\n on: (...args) => {\n return this.publicEmitter.on(...args);\n },\n removeListener: (...args) => {\n return this.publicEmitter.removeListener(...args);\n },\n removeAllListeners: (...args) => {\n return this.publicEmitter.removeAllListeners(...args);\n }\n };\n }\n}\nexport {\n HandlersController,\n InMemoryHandlersController,\n SetupApi\n};\n//# sourceMappingURL=SetupApi.mjs.map"],"names":["InMemoryHandlersController","constructor","initialHandlers","this","handlers","prepend","runtimeHandles","unshift","reset","nextHandlers","length","currentHandlers","SetupApi","Disposable","handlersController","emitter","publicEmitter","events","super","invariant","validateHandlers","devUtils","formatMessage","Emitter","pipeEvents","createLifeCycleEvents","subscriptions","push","removeAllListeners","every","handler","Array","isArray","use","runtimeHandlers","restoreHandlers","forEach","isUsed","resetHandlers","listHandlers","toReadonlyArray","on","args","removeListener"],"mappings":"0cAQA,MAAMA,EACJ,WAAAC,CAAYC,GACVC,KAAKD,gBAAkBA,EACvBC,KAAKC,SAAW,IAAIF,EACtB,CACAE,SACA,OAAAC,CAAQC,GACNH,KAAKC,SAASG,WAAWD,EAC3B,CACA,KAAAE,CAAMC,GACJN,KAAKC,SAAWK,EAAaC,OAAS,EAAI,IAAID,GAAgB,IAAIN,KAAKD,gBACzE,CACA,eAAAS,GACE,OAAOR,KAAKC,QACd,EAEF,MAAMQ,UAAiBC,EACrBC,mBACAC,QACAC,cACAC,OACA,WAAAhB,IAAeC,GACbgB,QACAC,EACEhB,KAAKiB,iBAAiBlB,GACtBmB,EAASC,cACP,gHAGJnB,KAAKW,mBAAqB,IAAId,EAA2BE,GACzDC,KAAKY,QAAU,IAAIQ,EACnBpB,KAAKa,cAAgB,IAAIO,EACzBC,EAAWrB,KAAKY,QAASZ,KAAKa,eAC9Bb,KAAKc,OAASd,KAAKsB,wBACnBtB,KAAKuB,cAAcC,MAAK,KACtBxB,KAAKY,QAAQa,qBACbzB,KAAKa,cAAcY,uBAEvB,CACA,gBAAAR,CAAiBhB,GACf,OAAOA,EAASyB,OAAOC,IAAaC,MAAMC,QAAQF,IACpD,CACA,GAAAG,IAAOC,GACLf,EACEhB,KAAKiB,iBAAiBc,GACtBb,EAASC,cACP,mIAGJnB,KAAKW,mBAAmBT,QAAQ6B,EAClC,CACA,eAAAC,GACEhC,KAAKW,mBAAmBH,kBAAkByB,SAASN,IAC7C,WAAYA,IACdA,EAAQO,QAAS,KAGvB,CACA,aAAAC,IAAiB7B,GACfN,KAAKW,mBAAmBN,MAAMC,EAChC,CACA,YAAA8B,GACE,OAAOC,EAAgBrC,KAAKW,mBAAmBH,kBACjD,CACA,qBAAAc,GACE,MAAO,CACLgB,GAAI,IAAIC,IACCvC,KAAKa,cAAcyB,MAAMC,GAElCC,eAAgB,IAAID,IACXvC,KAAKa,cAAc2B,kBAAkBD,GAE9Cd,mBAAoB,IAAIc,IACfvC,KAAKa,cAAcY,sBAAsBc,GAGtD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"SetupApi.js","sources":["../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/SetupApi.mjs"],"sourcesContent":["import { invariant } from \"outvariant\";\nimport { Emitter } from \"strict-event-emitter\";\nimport { devUtils } from './utils/internal/devUtils.mjs';\nimport { pipeEvents } from './utils/internal/pipeEvents.mjs';\nimport { toReadonlyArray } from './utils/internal/toReadonlyArray.mjs';\nimport { Disposable } from './utils/internal/Disposable.mjs';\nclass HandlersController {\n}\nclass InMemoryHandlersController {\n constructor(initialHandlers) {\n this.initialHandlers = initialHandlers;\n this.handlers = [...initialHandlers];\n }\n handlers;\n prepend(runtimeHandles) {\n this.handlers.unshift(...runtimeHandles);\n }\n reset(nextHandlers) {\n this.handlers = nextHandlers.length > 0 ? [...nextHandlers] : [...this.initialHandlers];\n }\n currentHandlers() {\n return this.handlers;\n }\n}\nclass SetupApi extends Disposable {\n handlersController;\n emitter;\n publicEmitter;\n events;\n constructor(...initialHandlers) {\n super();\n invariant(\n this.validateHandlers(initialHandlers),\n devUtils.formatMessage(\n `Failed to apply given request handlers: invalid input. Did you forget to spread the request handlers Array?`\n )\n );\n this.handlersController = new InMemoryHandlersController(initialHandlers);\n this.emitter = new Emitter();\n this.publicEmitter = new Emitter();\n pipeEvents(this.emitter, this.publicEmitter);\n this.events = this.createLifeCycleEvents();\n this.subscriptions.push(() => {\n this.emitter.removeAllListeners();\n this.publicEmitter.removeAllListeners();\n });\n }\n validateHandlers(handlers) {\n return handlers.every((handler) => !Array.isArray(handler));\n }\n use(...runtimeHandlers) {\n invariant(\n this.validateHandlers(runtimeHandlers),\n devUtils.formatMessage(\n `Failed to call \"use()\" with the given request handlers: invalid input. Did you forget to spread the array of request handlers?`\n )\n );\n this.handlersController.prepend(runtimeHandlers);\n }\n restoreHandlers() {\n this.handlersController.currentHandlers().forEach((handler) => {\n if (\"isUsed\" in handler) {\n handler.isUsed = false;\n }\n });\n }\n resetHandlers(...nextHandlers) {\n this.handlersController.reset(nextHandlers);\n }\n listHandlers() {\n return toReadonlyArray(this.handlersController.currentHandlers());\n }\n createLifeCycleEvents() {\n return {\n on: (...args) => {\n return this.publicEmitter.on(...args);\n },\n removeListener: (...args) => {\n return this.publicEmitter.removeListener(...args);\n },\n removeAllListeners: (...args) => {\n return this.publicEmitter.removeAllListeners(...args);\n }\n };\n }\n}\nexport {\n HandlersController,\n InMemoryHandlersController,\n SetupApi\n};\n//# sourceMappingURL=SetupApi.mjs.map"],"names":["InMemoryHandlersController","constructor","initialHandlers","this","handlers","prepend","runtimeHandles","unshift","reset","nextHandlers","length","currentHandlers","SetupApi","Disposable","handlersController","emitter","publicEmitter","events","super","invariant","validateHandlers","devUtils","formatMessage","Emitter","pipeEvents","createLifeCycleEvents","subscriptions","push","removeAllListeners","every","handler","Array","isArray","use","runtimeHandlers","restoreHandlers","forEach","isUsed","resetHandlers","listHandlers","toReadonlyArray","on","args","removeListener"],"mappings":"0cAQA,MAAMA,EACJ,WAAAC,CAAYC,GACVC,KAAKD,gBAAkBA,EACvBC,KAAKC,SAAW,IAAIF,EACtB,CACAE,SACA,OAAAC,CAAQC,GACNH,KAAKC,SAASG,WAAWD,EAC3B,CACA,KAAAE,CAAMC,GACJN,KAAKC,SAAWK,EAAaC,OAAS,EAAI,IAAID,GAAgB,IAAIN,KAAKD,gBACzE,CACA,eAAAS,GACE,OAAOR,KAAKC,QACd,EAEF,MAAMQ,UAAiBC,EACrBC,mBACAC,QACAC,cACAC,OACA,WAAAhB,IAAeC,GACbgB,QACAC,EACEhB,KAAKiB,iBAAiBlB,GACtBmB,EAASC,cACP,gHAGJnB,KAAKW,mBAAqB,IAAId,EAA2BE,GACzDC,KAAKY,QAAU,IAAIQ,EACnBpB,KAAKa,cAAgB,IAAIO,EACzBC,EAAWrB,KAAKY,QAASZ,KAAKa,eAC9Bb,KAAKc,OAASd,KAAKsB,wBACnBtB,KAAKuB,cAAcC,MAAK,KACtBxB,KAAKY,QAAQa,qBACbzB,KAAKa,cAAcY,uBAEvB,CACA,gBAAAR,CAAiBhB,GACf,OAAOA,EAASyB,OAAOC,IAAaC,MAAMC,QAAQF,IACpD,CACA,GAAAG,IAAOC,GACLf,EACEhB,KAAKiB,iBAAiBc,GACtBb,EAASC,cACP,mIAGJnB,KAAKW,mBAAmBT,QAAQ6B,EAClC,CACA,eAAAC,GACEhC,KAAKW,mBAAmBH,kBAAkByB,SAASN,IAC7C,WAAYA,IACdA,EAAQO,QAAS,KAGvB,CACA,aAAAC,IAAiB7B,GACfN,KAAKW,mBAAmBN,MAAMC,EAChC,CACA,YAAA8B,GACE,OAAOC,EAAgBrC,KAAKW,mBAAmBH,kBACjD,CACA,qBAAAc,GACE,MAAO,CACLgB,GAAI,IAAIC,IACCvC,KAAKa,cAAcyB,MAAMC,GAElCC,eAAgB,IAAID,IACXvC,KAAKa,cAAc2B,kBAAkBD,GAE9Cd,mBAAoB,IAAIc,IACfvC,KAAKa,cAAcY,sBAAsBc,GAGtD","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"HttpHandler.cjs.js","sources":["../../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.33_typescript@5.4.5/node_modules/msw/lib/core/handlers/HttpHandler.mjs"],"sourcesContent":["import { devUtils } from '../utils/internal/devUtils.mjs';\nimport { isStringEqual } from '../utils/internal/isStringEqual.mjs';\nimport { getStatusCodeColor } from '../utils/logging/getStatusCodeColor.mjs';\nimport { getTimestamp } from '../utils/logging/getTimestamp.mjs';\nimport { serializeRequest } from '../utils/logging/serializeRequest.mjs';\nimport { serializeResponse } from '../utils/logging/serializeResponse.mjs';\nimport {\n matchRequestUrl\n} from '../utils/matching/matchRequestUrl.mjs';\nimport { toPublicUrl } from '../utils/request/toPublicUrl.mjs';\nimport { getAllRequestCookies } from '../utils/request/getRequestCookies.mjs';\nimport { cleanUrl } from '../utils/url/cleanUrl.mjs';\nimport {\n RequestHandler\n} from './RequestHandler.mjs';\nvar HttpMethods = /* @__PURE__ */ ((HttpMethods2) => {\n HttpMethods2[\"HEAD\"] = \"HEAD\";\n HttpMethods2[\"GET\"] = \"GET\";\n HttpMethods2[\"POST\"] = \"POST\";\n HttpMethods2[\"PUT\"] = \"PUT\";\n HttpMethods2[\"PATCH\"] = \"PATCH\";\n HttpMethods2[\"OPTIONS\"] = \"OPTIONS\";\n HttpMethods2[\"DELETE\"] = \"DELETE\";\n return HttpMethods2;\n})(HttpMethods || {});\nclass HttpHandler extends RequestHandler {\n constructor(method, predicate, resolver, options) {\n const displayPath = typeof predicate === \"function\" ? \"[custom predicate]\" : predicate;\n super({\n info: {\n header: `${method}${displayPath ? ` ${displayPath}` : \"\"}`,\n path: predicate,\n method\n },\n resolver,\n options\n });\n this.checkRedundantQueryParameters();\n }\n checkRedundantQueryParameters() {\n const { method, path } = this.info;\n if (!path || path instanceof RegExp || typeof path === \"function\") {\n return;\n }\n const url = cleanUrl(path);\n if (url === path) {\n return;\n }\n devUtils.warn(\n `Found a redundant usage of query parameters in the request handler URL for \"${method} ${path}\". Please match against a path instead and access query parameters using \"new URL(request.url).searchParams\" instead. Learn more: https://mswjs.io/docs/http/intercepting-requests#querysearch-parameters`\n );\n }\n async parse(args) {\n const url = new URL(args.request.url);\n const cookies = getAllRequestCookies(args.request);\n if (typeof this.info.path === \"function\") {\n const customPredicateResult = await this.info.path({\n request: args.request,\n cookies\n });\n const match2 = typeof customPredicateResult === \"boolean\" ? {\n matches: customPredicateResult,\n params: {}\n } : customPredicateResult;\n return {\n match: match2,\n cookies\n };\n }\n const match = this.info.path ? matchRequestUrl(url, this.info.path, args.resolutionContext?.baseUrl) : { matches: false, params: {} };\n return {\n match,\n cookies\n };\n }\n async predicate(args) {\n const hasMatchingMethod = this.matchMethod(args.request.method);\n const hasMatchingUrl = args.parsedResult.match.matches;\n return hasMatchingMethod && hasMatchingUrl;\n }\n matchMethod(actualMethod) {\n return this.info.method instanceof RegExp ? this.info.method.test(actualMethod) : isStringEqual(this.info.method, actualMethod);\n }\n extendResolverArgs(args) {\n return {\n params: args.parsedResult.match?.params || {},\n cookies: args.parsedResult.cookies\n };\n }\n async log(args) {\n const publicUrl = toPublicUrl(args.request.url);\n const loggedRequest = await serializeRequest(args.request);\n const loggedResponse = await serializeResponse(args.response);\n const statusColor = getStatusCodeColor(loggedResponse.status);\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp()} ${args.request.method} ${publicUrl} (%c${loggedResponse.status} ${loggedResponse.statusText}%c)`\n ),\n `color:${statusColor}`,\n \"color:inherit\"\n );\n console.log(\"Request\", loggedRequest);\n console.log(\"Handler:\", this);\n console.log(\"Response\", loggedResponse);\n console.groupEnd();\n }\n}\nexport {\n HttpHandler,\n HttpMethods\n};\n//# sourceMappingURL=HttpHandler.mjs.map"],"names":["HttpMethods","HttpMethods2","HttpHandler","RequestHandler","constructor","method","predicate","resolver","options","displayPath","super","info","header","path","this","checkRedundantQueryParameters","RegExp","cleanUrl","devUtils","warn","parse","args","url","URL","request","cookies","getAllRequestCookies","customPredicateResult","match","matches","params","matchRequestUrl","resolutionContext","baseUrl","hasMatchingMethod","matchMethod","hasMatchingUrl","parsedResult","actualMethod","test","isStringEqual","extendResolverArgs","log","publicUrl","toPublicUrl","loggedRequest","serializeRequest","loggedResponse","serializeResponse","response","statusColor","getStatusCodeColor","status","console","groupCollapsed","formatMessage","getTimestamp","statusText","groupEnd"],"mappings":"wjBAeIA,EAA8B,CAAEC,IAClCA,EAAmB,KAAI,OACvBA,EAAkB,IAAI,MACtBA,EAAmB,KAAI,OACvBA,EAAkB,IAAI,MACtBA,EAAoB,MAAI,QACxBA,EAAsB,QAAI,UAC1BA,EAAqB,OAAI,SAClBA,GARyB,CAS/BD,GAAe,CAAA,GAClB,MAAME,UAAoBC,EAAAA,eACxB,WAAAC,CAAYC,EAAQC,EAAWC,EAAUC,GACvC,MAAMC,EAAmC,mBAAdH,EAA2B,qBAAuBA,EAC7EI,MAAM,CACJC,KAAM,CACJC,OAAQ,GAAGP,IAASI,EAAc,IAAIA,IAAgB,KACtDI,KAAMP,EACND,UAEFE,WACAC,YAEFM,KAAKC,+BACP,CACA,6BAAAA,GACE,MAAMV,OAAEA,EAAMQ,KAAEA,GAASC,KAAKH,KAC9B,IAAKE,GAAQA,aAAgBG,QAA0B,mBAATH,EAC5C,OAEUI,EAAAA,SAASJ,KACTA,GAGZK,EAAAA,SAASC,KACP,+EAA+Ed,KAAUQ,6MAE7F,CACA,WAAMO,CAAMC,GACV,MAAMC,EAAM,IAAIC,IAAIF,EAAKG,QAAQF,KAC3BG,EAAUC,EAAAA,qBAAqBL,EAAKG,SAC1C,GAA8B,mBAAnBV,KAAKH,KAAKE,KAAqB,CACxC,MAAMc,QAA8Bb,KAAKH,KAAKE,KAAK,CACjDW,QAASH,EAAKG,QACdC,YAMF,MAAO,CACLG,MAL8C,kBAA1BD,EAAsC,CAC1DE,QAASF,EACTG,OAAQ,CAAA,GACNH,EAGFF,UAEJ,CAEA,MAAO,CACLG,MAFYd,KAAKH,KAAKE,KAAOkB,kBAAgBT,EAAKR,KAAKH,KAAKE,KAAMQ,EAAKW,mBAAmBC,SAAW,CAAEJ,SAAS,EAAOC,OAAQ,IAG/HL,UAEJ,CACA,eAAMnB,CAAUe,GACd,MAAMa,EAAoBpB,KAAKqB,YAAYd,EAAKG,QAAQnB,QAClD+B,EAAiBf,EAAKgB,aAAaT,MAAMC,QAC/C,OAAOK,GAAqBE,CAC9B,CACA,WAAAD,CAAYG,GACV,OAAOxB,KAAKH,KAAKN,kBAAkBW,OAASF,KAAKH,KAAKN,OAAOkC,KAAKD,GAAgBE,EAAAA,cAAc1B,KAAKH,KAAKN,OAAQiC,EACpH,CACA,kBAAAG,CAAmBpB,GACjB,MAAO,CACLS,OAAQT,EAAKgB,aAAaT,OAAOE,QAAU,CAAA,EAC3CL,QAASJ,EAAKgB,aAAaZ,QAE/B,CACA,SAAMiB,CAAIrB,GACR,MAAMsB,EAAYC,EAAAA,YAAYvB,EAAKG,QAAQF,KACrCuB,QAAsBC,mBAAiBzB,EAAKG,SAC5CuB,QAAuBC,oBAAkB3B,EAAK4B,UAC9CC,EAAcC,EAAAA,mBAAmBJ,EAAeK,QACtDC,QAAQC,eACNpC,EAAAA,SAASqC,cACP,GAAGC,EAAAA,kBAAkBnC,EAAKG,QAAQnB,UAAUsC,QAAgBI,EAAeK,UAAUL,EAAeU,iBAEtG,SAASP,IACT,iBAEFG,QAAQX,IAAI,UAAWG,GACvBQ,QAAQX,IAAI,WAAY5B,MACxBuC,QAAQX,IAAI,WAAYK,GACxBM,QAAQK,UACV","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"HttpHandler.cjs.js","sources":["../../../../../../../../../../../node_modules/.pnpm/msw@2.12.10_@types+node@20.19.34_typescript@5.4.5/node_modules/msw/lib/core/handlers/HttpHandler.mjs"],"sourcesContent":["import { devUtils } from '../utils/internal/devUtils.mjs';\nimport { isStringEqual } from '../utils/internal/isStringEqual.mjs';\nimport { getStatusCodeColor } from '../utils/logging/getStatusCodeColor.mjs';\nimport { getTimestamp } from '../utils/logging/getTimestamp.mjs';\nimport { serializeRequest } from '../utils/logging/serializeRequest.mjs';\nimport { serializeResponse } from '../utils/logging/serializeResponse.mjs';\nimport {\n matchRequestUrl\n} from '../utils/matching/matchRequestUrl.mjs';\nimport { toPublicUrl } from '../utils/request/toPublicUrl.mjs';\nimport { getAllRequestCookies } from '../utils/request/getRequestCookies.mjs';\nimport { cleanUrl } from '../utils/url/cleanUrl.mjs';\nimport {\n RequestHandler\n} from './RequestHandler.mjs';\nvar HttpMethods = /* @__PURE__ */ ((HttpMethods2) => {\n HttpMethods2[\"HEAD\"] = \"HEAD\";\n HttpMethods2[\"GET\"] = \"GET\";\n HttpMethods2[\"POST\"] = \"POST\";\n HttpMethods2[\"PUT\"] = \"PUT\";\n HttpMethods2[\"PATCH\"] = \"PATCH\";\n HttpMethods2[\"OPTIONS\"] = \"OPTIONS\";\n HttpMethods2[\"DELETE\"] = \"DELETE\";\n return HttpMethods2;\n})(HttpMethods || {});\nclass HttpHandler extends RequestHandler {\n constructor(method, predicate, resolver, options) {\n const displayPath = typeof predicate === \"function\" ? \"[custom predicate]\" : predicate;\n super({\n info: {\n header: `${method}${displayPath ? ` ${displayPath}` : \"\"}`,\n path: predicate,\n method\n },\n resolver,\n options\n });\n this.checkRedundantQueryParameters();\n }\n checkRedundantQueryParameters() {\n const { method, path } = this.info;\n if (!path || path instanceof RegExp || typeof path === \"function\") {\n return;\n }\n const url = cleanUrl(path);\n if (url === path) {\n return;\n }\n devUtils.warn(\n `Found a redundant usage of query parameters in the request handler URL for \"${method} ${path}\". Please match against a path instead and access query parameters using \"new URL(request.url).searchParams\" instead. Learn more: https://mswjs.io/docs/http/intercepting-requests#querysearch-parameters`\n );\n }\n async parse(args) {\n const url = new URL(args.request.url);\n const cookies = getAllRequestCookies(args.request);\n if (typeof this.info.path === \"function\") {\n const customPredicateResult = await this.info.path({\n request: args.request,\n cookies\n });\n const match2 = typeof customPredicateResult === \"boolean\" ? {\n matches: customPredicateResult,\n params: {}\n } : customPredicateResult;\n return {\n match: match2,\n cookies\n };\n }\n const match = this.info.path ? matchRequestUrl(url, this.info.path, args.resolutionContext?.baseUrl) : { matches: false, params: {} };\n return {\n match,\n cookies\n };\n }\n async predicate(args) {\n const hasMatchingMethod = this.matchMethod(args.request.method);\n const hasMatchingUrl = args.parsedResult.match.matches;\n return hasMatchingMethod && hasMatchingUrl;\n }\n matchMethod(actualMethod) {\n return this.info.method instanceof RegExp ? this.info.method.test(actualMethod) : isStringEqual(this.info.method, actualMethod);\n }\n extendResolverArgs(args) {\n return {\n params: args.parsedResult.match?.params || {},\n cookies: args.parsedResult.cookies\n };\n }\n async log(args) {\n const publicUrl = toPublicUrl(args.request.url);\n const loggedRequest = await serializeRequest(args.request);\n const loggedResponse = await serializeResponse(args.response);\n const statusColor = getStatusCodeColor(loggedResponse.status);\n console.groupCollapsed(\n devUtils.formatMessage(\n `${getTimestamp()} ${args.request.method} ${publicUrl} (%c${loggedResponse.status} ${loggedResponse.statusText}%c)`\n ),\n `color:${statusColor}`,\n \"color:inherit\"\n );\n console.log(\"Request\", loggedRequest);\n console.log(\"Handler:\", this);\n console.log(\"Response\", loggedResponse);\n console.groupEnd();\n }\n}\nexport {\n HttpHandler,\n HttpMethods\n};\n//# sourceMappingURL=HttpHandler.mjs.map"],"names":["HttpMethods","HttpMethods2","HttpHandler","RequestHandler","constructor","method","predicate","resolver","options","displayPath","super","info","header","path","this","checkRedundantQueryParameters","RegExp","cleanUrl","devUtils","warn","parse","args","url","URL","request","cookies","getAllRequestCookies","customPredicateResult","match","matches","params","matchRequestUrl","resolutionContext","baseUrl","hasMatchingMethod","matchMethod","hasMatchingUrl","parsedResult","actualMethod","test","isStringEqual","extendResolverArgs","log","publicUrl","toPublicUrl","loggedRequest","serializeRequest","loggedResponse","serializeResponse","response","statusColor","getStatusCodeColor","status","console","groupCollapsed","formatMessage","getTimestamp","statusText","groupEnd"],"mappings":"wjBAeIA,EAA8B,CAAEC,IAClCA,EAAmB,KAAI,OACvBA,EAAkB,IAAI,MACtBA,EAAmB,KAAI,OACvBA,EAAkB,IAAI,MACtBA,EAAoB,MAAI,QACxBA,EAAsB,QAAI,UAC1BA,EAAqB,OAAI,SAClBA,GARyB,CAS/BD,GAAe,CAAA,GAClB,MAAME,UAAoBC,EAAAA,eACxB,WAAAC,CAAYC,EAAQC,EAAWC,EAAUC,GACvC,MAAMC,EAAmC,mBAAdH,EAA2B,qBAAuBA,EAC7EI,MAAM,CACJC,KAAM,CACJC,OAAQ,GAAGP,IAASI,EAAc,IAAIA,IAAgB,KACtDI,KAAMP,EACND,UAEFE,WACAC,YAEFM,KAAKC,+BACP,CACA,6BAAAA,GACE,MAAMV,OAAEA,EAAMQ,KAAEA,GAASC,KAAKH,KAC9B,IAAKE,GAAQA,aAAgBG,QAA0B,mBAATH,EAC5C,OAEUI,EAAAA,SAASJ,KACTA,GAGZK,EAAAA,SAASC,KACP,+EAA+Ed,KAAUQ,6MAE7F,CACA,WAAMO,CAAMC,GACV,MAAMC,EAAM,IAAIC,IAAIF,EAAKG,QAAQF,KAC3BG,EAAUC,EAAAA,qBAAqBL,EAAKG,SAC1C,GAA8B,mBAAnBV,KAAKH,KAAKE,KAAqB,CACxC,MAAMc,QAA8Bb,KAAKH,KAAKE,KAAK,CACjDW,QAASH,EAAKG,QACdC,YAMF,MAAO,CACLG,MAL8C,kBAA1BD,EAAsC,CAC1DE,QAASF,EACTG,OAAQ,CAAA,GACNH,EAGFF,UAEJ,CAEA,MAAO,CACLG,MAFYd,KAAKH,KAAKE,KAAOkB,kBAAgBT,EAAKR,KAAKH,KAAKE,KAAMQ,EAAKW,mBAAmBC,SAAW,CAAEJ,SAAS,EAAOC,OAAQ,IAG/HL,UAEJ,CACA,eAAMnB,CAAUe,GACd,MAAMa,EAAoBpB,KAAKqB,YAAYd,EAAKG,QAAQnB,QAClD+B,EAAiBf,EAAKgB,aAAaT,MAAMC,QAC/C,OAAOK,GAAqBE,CAC9B,CACA,WAAAD,CAAYG,GACV,OAAOxB,KAAKH,KAAKN,kBAAkBW,OAASF,KAAKH,KAAKN,OAAOkC,KAAKD,GAAgBE,EAAAA,cAAc1B,KAAKH,KAAKN,OAAQiC,EACpH,CACA,kBAAAG,CAAmBpB,GACjB,MAAO,CACLS,OAAQT,EAAKgB,aAAaT,OAAOE,QAAU,CAAA,EAC3CL,QAASJ,EAAKgB,aAAaZ,QAE/B,CACA,SAAMiB,CAAIrB,GACR,MAAMsB,EAAYC,EAAAA,YAAYvB,EAAKG,QAAQF,KACrCuB,QAAsBC,mBAAiBzB,EAAKG,SAC5CuB,QAAuBC,oBAAkB3B,EAAK4B,UAC9CC,EAAcC,EAAAA,mBAAmBJ,EAAeK,QACtDC,QAAQC,eACNpC,EAAAA,SAASqC,cACP,GAAGC,EAAAA,kBAAkBnC,EAAKG,QAAQnB,UAAUsC,QAAgBI,EAAeK,UAAUL,EAAeU,iBAEtG,SAASP,IACT,iBAEFG,QAAQX,IAAI,UAAWG,GACvBQ,QAAQX,IAAI,WAAY5B,MACxBuC,QAAQX,IAAI,WAAYK,GACxBM,QAAQK,UACV","x_google_ignoreList":[0]}