@sync-in/server 1.9.6 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -4
- package/environment/environment.dist.yaml +15 -5
- package/package.json +13 -14
- package/server/app.bootstrap.js +1 -1
- package/server/app.bootstrap.js.map +1 -1
- package/server/app.constants.js +3 -2
- package/server/app.constants.js.map +1 -1
- package/server/applications/files/constants/cache.js +2 -5
- package/server/applications/files/constants/cache.js.map +1 -1
- package/server/applications/files/constants/files.js +4 -0
- package/server/applications/files/constants/files.js.map +1 -1
- package/server/applications/files/constants/operations.js +4 -0
- package/server/applications/files/constants/operations.js.map +1 -1
- package/server/applications/files/constants/routes.js +1 -26
- package/server/applications/files/constants/routes.js.map +1 -1
- package/server/applications/files/files.config.js +15 -39
- package/server/applications/files/files.config.js.map +1 -1
- package/server/applications/files/files.controller.js +4 -4
- package/server/applications/files/files.controller.js.map +1 -1
- package/server/applications/files/files.module.js +12 -9
- package/server/applications/files/files.module.js.map +1 -1
- package/server/applications/files/interfaces/file-lock.interface.js.map +1 -1
- package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js +32 -0
- package/server/applications/files/modules/collabora-online/collabora-online-environment.decorator.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js +280 -0
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js +552 -0
- package/server/applications/files/modules/collabora-online/collabora-online-manager.service.spec.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.config.js +40 -0
- package/server/applications/files/modules/collabora-online/collabora-online.config.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.constants.js +110 -0
- package/server/applications/files/modules/collabora-online/collabora-online.constants.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.controller.js +128 -0
- package/server/applications/files/modules/collabora-online/collabora-online.controller.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js +47 -0
- package/server/applications/files/modules/collabora-online/collabora-online.controller.spec.js.map +1 -0
- package/server/applications/files/{interfaces/only-office-config.interface.js → modules/collabora-online/collabora-online.dtos.js} +1 -1
- package/server/applications/files/modules/collabora-online/collabora-online.dtos.js.map +1 -0
- package/server/applications/files/{guards/files-only-office.guard.js → modules/collabora-online/collabora-online.guard.js} +7 -21
- package/server/applications/files/modules/collabora-online/collabora-online.guard.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js +86 -0
- package/server/applications/files/modules/collabora-online/collabora-online.guard.spec.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.interface.js +10 -0
- package/server/applications/files/modules/collabora-online/collabora-online.interface.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.module.js +41 -0
- package/server/applications/files/modules/collabora-online/collabora-online.module.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.routes.js +35 -0
- package/server/applications/files/modules/collabora-online/collabora-online.routes.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.strategy.js +59 -0
- package/server/applications/files/modules/collabora-online/collabora-online.strategy.js.map +1 -0
- package/server/applications/files/modules/collabora-online/collabora-online.utils.js +28 -0
- package/server/applications/files/modules/collabora-online/collabora-online.utils.js.map +1 -0
- package/server/applications/files/{decorators → modules/only-office}/only-office-environment.decorator.js +5 -5
- package/server/applications/files/modules/only-office/only-office-environment.decorator.js.map +1 -0
- package/server/applications/files/{services/files-only-office-manager.service.js → modules/only-office/only-office-manager.service.js} +101 -97
- package/server/applications/files/modules/only-office/only-office-manager.service.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office-manager.service.spec.js +477 -0
- package/server/applications/files/modules/only-office/only-office-manager.service.spec.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.config.js +51 -0
- package/server/applications/files/modules/only-office/only-office.config.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.constants.js +417 -0
- package/server/applications/files/modules/only-office/only-office.constants.js.map +1 -0
- package/server/applications/files/{files-only-office.controller.js → modules/only-office/only-office.controller.js} +35 -52
- package/server/applications/files/modules/only-office/only-office.controller.js.map +1 -0
- package/server/applications/files/{files-only-office.controller.spec.js → modules/only-office/only-office.controller.spec.js} +24 -21
- package/server/applications/files/modules/only-office/only-office.controller.spec.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.dtos.js +10 -0
- package/server/applications/files/modules/only-office/only-office.dtos.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.guard.js +40 -0
- package/server/applications/files/modules/only-office/only-office.guard.js.map +1 -0
- package/server/applications/files/{guards/files-only-office.guard.spec.js → modules/only-office/only-office.guard.spec.js} +15 -21
- package/server/applications/files/modules/only-office/only-office.guard.spec.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.interface.js +10 -0
- package/server/applications/files/modules/only-office/only-office.interface.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.module.js +41 -0
- package/server/applications/files/modules/only-office/only-office.module.js.map +1 -0
- package/server/applications/files/modules/only-office/only-office.routes.js +45 -0
- package/server/applications/files/modules/only-office/only-office.routes.js.map +1 -0
- package/server/applications/files/{guards/files-only-office.strategy.js → modules/only-office/only-office.strategy.js} +11 -11
- package/server/applications/files/modules/only-office/only-office.strategy.js.map +1 -0
- package/server/applications/files/services/files-lock-manager.service.js +25 -33
- package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
- package/server/applications/files/services/files-manager.service.js +17 -16
- package/server/applications/files/services/files-manager.service.js.map +1 -1
- package/server/applications/files/services/files-methods.service.js +2 -2
- package/server/applications/files/services/files-methods.service.js.map +1 -1
- package/server/applications/files/services/files-methods.service.spec.js +3 -1
- package/server/applications/files/services/files-methods.service.spec.js.map +1 -1
- package/server/applications/files/services/files-scheduler.service.js +2 -2
- package/server/applications/files/services/files-scheduler.service.js.map +1 -1
- package/server/applications/files/utils/files.js +10 -2
- package/server/applications/files/utils/files.js.map +1 -1
- package/server/applications/links/constants/routes.js +5 -0
- package/server/applications/links/constants/routes.js.map +1 -1
- package/server/applications/links/interfaces/link-space.interface.js.map +1 -1
- package/server/applications/links/links.controller.js +25 -5
- package/server/applications/links/links.controller.js.map +1 -1
- package/server/applications/links/services/links-manager.service.js +43 -21
- package/server/applications/links/services/links-manager.service.js.map +1 -1
- package/server/applications/links/services/links-manager.service.spec.js +4 -3
- package/server/applications/links/services/links-manager.service.spec.js.map +1 -1
- package/server/applications/links/services/links-queries.service.js +9 -2
- package/server/applications/links/services/links-queries.service.js.map +1 -1
- package/server/applications/shares/interfaces/share-link.interface.js.map +1 -1
- package/server/applications/shares/services/shares-manager.service.js +3 -0
- package/server/applications/shares/services/shares-manager.service.js.map +1 -1
- package/server/applications/shares/services/shares-manager.service.spec.js +2 -1
- package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
- package/server/applications/shares/services/shares-queries.service.js +1 -0
- package/server/applications/shares/services/shares-queries.service.js.map +1 -1
- package/server/applications/spaces/constants/spaces.js +2 -2
- package/server/applications/spaces/constants/spaces.js.map +1 -1
- package/server/applications/spaces/decorators/space-override-permission.decorator.js +18 -0
- package/server/applications/spaces/decorators/space-override-permission.decorator.js.map +1 -0
- package/server/applications/spaces/guards/space.guard.js +40 -33
- package/server/applications/spaces/guards/space.guard.js.map +1 -1
- package/server/applications/spaces/guards/space.guard.spec.js +10 -15
- package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
- package/server/applications/webdav/constants/webdav.js +4 -0
- package/server/applications/webdav/constants/webdav.js.map +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.js +9 -8
- package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +1 -1
- package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
- package/server/applications/webdav/interfaces/webdav.interface.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.js +40 -17
- package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
- package/server/applications/webdav/services/webdav-methods.service.spec.js +2157 -1289
- package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
- package/server/applications/webdav/utils/webdav.js +8 -4
- package/server/applications/webdav/utils/webdav.js.map +1 -1
- package/server/applications/webdav/webdav.controller.js +4 -4
- package/server/applications/webdav/webdav.controller.js.map +1 -1
- package/server/authentication/guards/auth-token-access.guard.js +8 -3
- package/server/authentication/guards/auth-token-access.guard.js.map +1 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.js +1 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.js.map +1 -1
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js +350 -4
- package/server/authentication/services/auth-methods/auth-method-two-fa.service.spec.js.map +1 -1
- package/server/configuration/config.environment.js +5 -1
- package/server/configuration/config.environment.js.map +1 -1
- package/server/configuration/config.interfaces.js.map +1 -1
- package/static/3rdpartylicenses.txt +507 -507
- package/static/assets/pdfjs/build/pdf.mjs +93 -33
- package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
- package/static/assets/pdfjs/build/pdf.sandbox.mjs +3 -3
- package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -1
- package/static/assets/pdfjs/build/pdf.worker.mjs +166 -54
- package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
- package/static/assets/pdfjs/version +1 -1
- package/static/assets/pdfjs/web/images/checkmark.svg +5 -0
- package/static/assets/pdfjs/web/images/pages_closeButton.svg +3 -0
- package/static/assets/pdfjs/web/images/pages_selected.svg +7 -0
- package/static/assets/pdfjs/web/images/pages_viewArrow.svg +3 -0
- package/static/assets/pdfjs/web/images/pages_viewButton.svg +3 -0
- package/static/assets/pdfjs/web/locale/be/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/bs/viewer.ftl +0 -5
- package/static/assets/pdfjs/web/locale/cs/viewer.ftl +4 -6
- package/static/assets/pdfjs/web/locale/cy/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/da/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/de/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/el/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +6 -2
- package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +82 -17
- package/static/assets/pdfjs/web/locale/eo/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/es-ES/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/eu/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/fi/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/fr/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/fur/viewer.ftl +0 -5
- package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +3 -5
- package/static/assets/pdfjs/web/locale/gn/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/he/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/hr/viewer.ftl +66 -0
- package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/hu/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +3 -8
- package/static/assets/pdfjs/web/locale/ia/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/id/viewer.ftl +0 -5
- package/static/assets/pdfjs/web/locale/is/viewer.ftl +0 -5
- package/static/assets/pdfjs/web/locale/it/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/ja/viewer.ftl +0 -14
- package/static/assets/pdfjs/web/locale/ka/viewer.ftl +4 -6
- package/static/assets/pdfjs/web/locale/kab/viewer.ftl +0 -5
- package/static/assets/pdfjs/web/locale/kk/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/ko/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +1 -3
- package/static/assets/pdfjs/web/locale/nl/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +4 -2
- package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/pl/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/pt-PT/viewer.ftl +35 -0
- package/static/assets/pdfjs/web/locale/rm/viewer.ftl +0 -5
- package/static/assets/pdfjs/web/locale/ro/viewer.ftl +4 -6
- package/static/assets/pdfjs/web/locale/ru/viewer.ftl +3 -5
- package/static/assets/pdfjs/web/locale/sk/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/sl/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/sq/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/tg/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/th/viewer.ftl +2 -2
- package/static/assets/pdfjs/web/locale/tr/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/vi/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +0 -2
- package/static/assets/pdfjs/web/viewer.css +1778 -835
- package/static/assets/pdfjs/web/viewer.html +167 -86
- package/static/assets/pdfjs/web/viewer.mjs +1106 -801
- package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
- package/static/chunk-27V66YJV.js +2 -0
- package/static/{chunk-BVKDW5XO.js → chunk-27Z3SYRL.js} +1 -1
- package/static/{chunk-HLKZCMKV.js → chunk-2RWLNKZH.js} +1 -1
- package/static/chunk-2YQ4SX3A.js +13 -0
- package/static/{chunk-GENTF6JM.js → chunk-3JYMJQYT.js} +1 -1
- package/static/chunk-3QTROEHV.js +1 -0
- package/static/{chunk-C5T7RZSD.js → chunk-3RPUQ22U.js} +1 -1
- package/static/{chunk-EPDWJEPD.js → chunk-3WZ6F3LC.js} +1 -1
- package/static/chunk-3ZLBVUCX.js +2 -0
- package/static/{chunk-SF6Q6VRC.js → chunk-45AZ6ZML.js} +1 -1
- package/static/chunk-46TJLPJY.js +1 -0
- package/static/chunk-4NIYCYRS.js +2 -0
- package/static/{chunk-GLPKRULI.js → chunk-4TPFERL6.js} +1 -1
- package/static/{chunk-KAAFVHYE.js → chunk-5O66CLTD.js} +1 -1
- package/static/chunk-6OEOADR6.js +1 -0
- package/static/chunk-6WMXMIE4.js +1 -0
- package/static/{chunk-QKMN3S4M.js → chunk-7VRYTDX4.js} +1 -1
- package/static/{chunk-Z2KBIZ5D.js → chunk-ARS47O5X.js} +1 -1
- package/static/chunk-B6HQYQYG.js +1 -0
- package/static/chunk-BCN4T5DO.js +2 -0
- package/static/{chunk-7HL5Z6PF.js → chunk-CCZWPM7Q.js} +1 -1
- package/static/{chunk-DU4Q4RWJ.js → chunk-CMNMPG6Z.js} +1 -1
- package/static/{chunk-BX3QZ7IL.js → chunk-CSVPAZHK.js} +1 -1
- package/static/{chunk-BJARRIS6.js → chunk-D55YR5X7.js} +4 -4
- package/static/{chunk-NHMYAVJK.js → chunk-D5FQ72R4.js} +1 -1
- package/static/{chunk-7QYALK5T.js → chunk-DGCVA6BM.js} +1 -1
- package/static/{chunk-IBC7CFBQ.js → chunk-DVCN3P7Q.js} +1 -1
- package/static/chunk-E32J777S.js +5 -0
- package/static/{chunk-FEQUP26G.js → chunk-FIUF2JM4.js} +1 -1
- package/static/{chunk-ODAQRAPO.js → chunk-G3PL6YX3.js} +1 -1
- package/static/chunk-G7RZN7HN.js +1 -0
- package/static/{chunk-IIKL33TV.js → chunk-GQHXYX6Z.js} +1 -1
- package/static/{chunk-5HYSNQR4.js → chunk-GWRAGN3M.js} +1 -1
- package/static/{chunk-ANH4VNOS.js → chunk-GXWGB7WO.js} +1 -1
- package/static/{chunk-25PWAXTJ.js → chunk-HGODIZTV.js} +1 -1
- package/static/{chunk-X5UDV4ZB.js → chunk-HZAB6F4Q.js} +1 -1
- package/static/chunk-I3FR3A45.js +1 -0
- package/static/{chunk-JYHTSSKW.js → chunk-I5SPA4G2.js} +1 -1
- package/static/{chunk-DQAQUSVW.js → chunk-IMFO2MI7.js} +1 -1
- package/static/{chunk-AYYJZMBE.js → chunk-JNTNMIUH.js} +1 -1
- package/static/chunk-JRXG43AA.js +2 -0
- package/static/{chunk-3AR5VNJE.js → chunk-KAUCN24H.js} +1 -1
- package/static/{chunk-3WS72A6C.js → chunk-KDUAB76O.js} +1 -1
- package/static/chunk-KPOQLDWF.js +1 -0
- package/static/{chunk-UO7ATVQG.js → chunk-KWFELZTM.js} +1 -1
- package/static/{chunk-2CAAJBRO.js → chunk-L3BIP4AA.js} +1 -1
- package/static/{chunk-DK2LAJEL.js → chunk-LGIVVJDD.js} +1 -1
- package/static/{chunk-5ATJIR5S.js → chunk-LNLBIJZD.js} +1 -1
- package/static/chunk-LTJNLOX2.js +1 -0
- package/static/{chunk-GRV44RYI.js → chunk-LZUHREOF.js} +1 -1
- package/static/{chunk-XIQXRSZ2.js → chunk-NIR4YE2E.js} +1 -1
- package/static/{chunk-TOCCCZP2.js → chunk-NJJURHX4.js} +1 -1
- package/static/chunk-NNZWSNAW.js +1 -0
- package/static/chunk-NWKBB7J4.js +1 -0
- package/static/chunk-O3YLAEVE.js +3 -0
- package/static/chunk-OUHCDDT6.js +1 -0
- package/static/{chunk-B4TDS6AQ.js → chunk-PDG7DOEF.js} +1 -1
- package/static/chunk-POUWUMC4.js +1 -0
- package/static/{chunk-NQCKX2AD.js → chunk-PPJCVBJH.js} +1 -1
- package/static/{chunk-ZCOEP4O2.js → chunk-PQZLR4P3.js} +1 -1
- package/static/chunk-PVYVY3GD.js +1 -0
- package/static/chunk-Q5X5TPAG.js +1 -0
- package/static/{chunk-LFAQLJZK.js → chunk-QHJT5H4M.js} +1 -1
- package/static/{chunk-D6QWQHWE.js → chunk-R4VMWCM5.js} +1 -1
- package/static/{chunk-O233BXWK.js → chunk-R7PLNX75.js} +1 -1
- package/static/chunk-RJULB733.js +1 -0
- package/static/{chunk-E5C4QRNQ.js → chunk-RNVPQQKT.js} +5 -5
- package/static/chunk-RTNEBRKJ.js +1 -0
- package/static/{chunk-GYYJ4FWN.js → chunk-S3TTWPQA.js} +1 -1
- package/static/{chunk-4GBA6EJ4.js → chunk-SDJNZULP.js} +1 -1
- package/static/chunk-SNOOCDJD.js +1 -0
- package/static/chunk-T42BV6TR.js +1 -0
- package/static/{chunk-5KVI243T.js → chunk-TNCKNU6I.js} +1 -1
- package/static/{chunk-OVUMPMVM.js → chunk-ULSPQ3HP.js} +1 -1
- package/static/{chunk-5NFH4E2B.js → chunk-UOK3LKSX.js} +1 -1
- package/static/{chunk-CHMDM2ZW.js → chunk-VD5JHSDS.js} +1 -1
- package/static/{chunk-2F42MZQ5.js → chunk-XBKCQCBI.js} +1 -1
- package/static/{chunk-2U5VKTML.js → chunk-XEWLBWFF.js} +1 -1
- package/static/{chunk-FSGT46LM.js → chunk-XTVNHFKX.js} +1 -1
- package/static/chunk-ZCSHU3D7.js +1 -0
- package/static/{chunk-QUUQOBTF.js → chunk-ZEJLIGAY.js} +1 -1
- package/static/{chunk-7H5O4BLV.js → chunk-ZHOE5VEY.js} +1 -1
- package/static/chunk-ZOMRIN3G.js +2 -0
- package/static/index.html +2 -2
- package/static/main-YKDNJ7LK.js +11 -0
- package/static/{styles-S5HVK4H5.css → styles-XLLEY5Y3.css} +1 -1
- package/server/applications/files/constants/only-office.js +0 -531
- package/server/applications/files/constants/only-office.js.map +0 -1
- package/server/applications/files/decorators/only-office-environment.decorator.js.map +0 -1
- package/server/applications/files/files-only-office.controller.js.map +0 -1
- package/server/applications/files/files-only-office.controller.spec.js.map +0 -1
- package/server/applications/files/guards/files-only-office.guard.js.map +0 -1
- package/server/applications/files/guards/files-only-office.guard.spec.js.map +0 -1
- package/server/applications/files/guards/files-only-office.strategy.js.map +0 -1
- package/server/applications/files/interfaces/only-office-config.interface.js.map +0 -1
- package/server/applications/files/services/files-only-office-manager.service.js.map +0 -1
- package/server/applications/files/services/files-only-office-manager.service.spec.js +0 -58
- package/server/applications/files/services/files-only-office-manager.service.spec.js.map +0 -1
- package/static/chunk-42L6C5MT.js +0 -1
- package/static/chunk-4ZKAVMB4.js +0 -1
- package/static/chunk-5GIWZKNS.js +0 -1
- package/static/chunk-5WCQBTXW.js +0 -1
- package/static/chunk-B2A4HNDC.js +0 -1
- package/static/chunk-BSB4VROD.js +0 -2
- package/static/chunk-CUC7R6C2.js +0 -1
- package/static/chunk-DHFQIFOF.js +0 -1
- package/static/chunk-DRHPEERW.js +0 -2
- package/static/chunk-FCGTI42I.js +0 -1
- package/static/chunk-FCR5AEHR.js +0 -3
- package/static/chunk-HB5DC7RJ.js +0 -1
- package/static/chunk-ITVA26X2.js +0 -2
- package/static/chunk-KWKZN53T.js +0 -1
- package/static/chunk-LBXOAKBD.js +0 -1
- package/static/chunk-LZKI5P5T.js +0 -1
- package/static/chunk-MGMDT4VN.js +0 -1
- package/static/chunk-MWUUM2NK.js +0 -13
- package/static/chunk-MYM43ENO.js +0 -1
- package/static/chunk-NAH4V2R6.js +0 -2
- package/static/chunk-PCFH5HCI.js +0 -2
- package/static/chunk-Q6B4OVER.js +0 -5
- package/static/chunk-QV5LQKTS.js +0 -1
- package/static/chunk-S4UTSOPV.js +0 -1
- package/static/chunk-SRBOO7AO.js +0 -1
- package/static/chunk-VZPCXSRG.js +0 -2
- package/static/chunk-XKEBQNQJ.js +0 -1
- package/static/chunk-YYTDPI5S.js +0 -1
- package/static/main-ODUA232E.js +0 -11
- /package/static/assets/pdfjs/web/images/{toolbarButton-sidebarToggle.svg → toolbarButton-viewsManagerToggle.svg} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/files/services/files-only-office-manager.service.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { HttpService } from '@nestjs/axios'\nimport { HttpException, HttpStatus, Injectable, Logger } from '@nestjs/common'\nimport { JwtService } from '@nestjs/jwt'\nimport { AxiosResponse } from 'axios'\nimport https from 'https'\nimport crypto from 'node:crypto'\nimport os from 'node:os'\nimport path from 'node:path'\nimport { JwtIdentityPayload } from '../../../authentication/interfaces/jwt-payload.interface'\nimport { convertHumanTimeToSeconds, generateShortUUID } from '../../../common/functions'\nimport { configuration } from '../../../configuration/config.environment'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { ContextManager } from '../../../infrastructure/context/services/context-manager.service'\nimport { HTTP_METHOD } from '../../applications.constants'\nimport { SPACE_OPERATION } from '../../spaces/constants/spaces'\nimport { FastifySpaceRequest } from '../../spaces/interfaces/space-request.interface'\nimport type { SpaceEnv } from '../../spaces/models/space-env.model'\nimport { haveSpaceEnvPermissions } from '../../spaces/utils/permissions'\nimport type { UserModel } from '../../users/models/user.model'\nimport { getAvatarBase64 } from '../../users/utils/avatar'\nimport { DEPTH, LOCK_SCOPE } from '../../webdav/constants/webdav'\nimport { WebDAVLock } from '../../webdav/interfaces/webdav.interface'\nimport { CACHE_ONLY_OFFICE } from '../constants/cache'\nimport {\n ONLY_OFFICE_CONVERT_ERROR,\n ONLY_OFFICE_CONVERT_EXTENSIONS,\n ONLY_OFFICE_EXTENSIONS,\n ONLY_OFFICE_INTERNAL_URI,\n ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME\n} from '../constants/only-office'\nimport { FILE_MODE } from '../constants/operations'\nimport { API_FILES_ONLY_OFFICE_CALLBACK, API_FILES_ONLY_OFFICE_DOCUMENT } from '../constants/routes'\nimport type { FileProps } from '../interfaces/file-props.interface'\nimport { OnlyOfficeCallBack, OnlyOfficeConfig, OnlyOfficeConvertForm, OnlyOfficeReqConfig } from '../interfaces/only-office-config.interface'\nimport { copyFileContent, fileSize, getProps, isPathExists, isPathIsDir, removeFiles, uniqueFilePathFromDir, writeFromStream } from '../utils/files'\nimport { FilesLockManager } from './files-lock-manager.service'\nimport { FilesQueries } from './files-queries.service'\n\n@Injectable()\nexport class FilesOnlyOfficeManager {\n private logger = new Logger(FilesOnlyOfficeManager.name)\n private readonly externalOnlyOfficeServer = configuration.applications.files.onlyoffice.externalServer || null\n private readonly rejectUnauthorized: boolean = !configuration.applications.files.onlyoffice?.verifySSL\n private readonly convertUrl = this.externalOnlyOfficeServer ? `${this.externalOnlyOfficeServer}/ConvertService.ashx` : null\n private readonly expiration = convertHumanTimeToSeconds(configuration.auth.token.refresh.expiration)\n private readonly mobileRegex: RegExp = /android|webos|iphone|ipad|ipod|blackberry|windows phone|opera mini|iemobile|mobile/i\n\n constructor(\n private readonly http: HttpService,\n private readonly contextManager: ContextManager,\n private readonly cache: Cache,\n private readonly jwt: JwtService,\n private readonly filesLockManager: FilesLockManager,\n private readonly filesQueries: FilesQueries\n ) {}\n\n getStatus(): { enabled: boolean } {\n return { enabled: configuration.applications.files.onlyoffice.enabled }\n }\n\n async getSettings(user: UserModel, space: SpaceEnv, mode: FILE_MODE, req: FastifySpaceRequest): Promise<OnlyOfficeReqConfig> {\n if (!(await isPathExists(space.realPath))) {\n throw new HttpException('Document not found', HttpStatus.NOT_FOUND)\n }\n if (await isPathIsDir(space.realPath)) {\n throw new HttpException('Document must be a file', HttpStatus.BAD_REQUEST)\n }\n const fileExtension = path.extname(space.realPath).slice(1)\n if (!ONLY_OFFICE_EXTENSIONS.VIEWABLE.has(fileExtension) && !ONLY_OFFICE_EXTENSIONS.EDITABLE.has(fileExtension)) {\n throw new HttpException('Document not supported', HttpStatus.BAD_REQUEST)\n }\n if (mode === FILE_MODE.EDIT && (!ONLY_OFFICE_EXTENSIONS.EDITABLE.has(fileExtension) || !haveSpaceEnvPermissions(space, SPACE_OPERATION.MODIFY))) {\n mode = FILE_MODE.VIEW\n }\n if (mode === FILE_MODE.EDIT) {\n // check lock conflicts\n try {\n await this.filesLockManager.checkConflicts(space.dbFile, DEPTH.RESOURCE, { userId: user.id, lockScope: LOCK_SCOPE.SHARED })\n } catch {\n throw new HttpException('The file is locked', HttpStatus.LOCKED)\n }\n }\n const isMobile: boolean = this.mobileRegex.test(req.headers['user-agent'])\n const fileProps: FileProps = await getProps(space.realPath, space.dbFile.path)\n const fileId: string = ((await this.filesQueries.getSpaceFileId(fileProps, space.dbFile)) || fileProps.id).toString()\n const userToken: string = await this.genUserToken(user)\n const fileUrl = this.getDocumentUrl(space, userToken)\n const callBackUrl = this.getCallBackUrl(space, userToken, fileId)\n const config: OnlyOfficeReqConfig = await this.genConfiguration(user, space, mode, fileId, fileUrl, fileExtension, callBackUrl, isMobile)\n config.config.token = await this.genPayloadToken(config.config)\n return config\n }\n\n async callBack(user: UserModel, space: SpaceEnv, token: string, fileId: string) {\n const callBackData: OnlyOfficeCallBack = await this.jwt.verifyAsync(token, { secret: configuration.applications.files.onlyoffice.secret })\n try {\n switch (callBackData.status) {\n case 1:\n await this.checkFileLock(user, space, callBackData)\n this.logger.debug(`document is being edited : ${space.url}`)\n break\n case 2:\n await this.checkFileLock(user, space, callBackData)\n if (callBackData.notmodified) {\n this.logger.debug(`document was edited but closed with no changes : ${space.url}`)\n } else {\n this.logger.debug(`document was edited but not saved (let's do it) : ${space.url}`)\n await this.saveDocument(space, callBackData.url)\n }\n await this.removeDocumentKey(fileId, space)\n break\n case 3:\n this.logger.error(`document cannot be saved, an error has occurred (try to save it) : ${space.url}`)\n await this.saveDocument(space, callBackData.url)\n break\n case 4:\n await this.removeFileLock(user.id, space)\n await this.removeDocumentKey(fileId, space)\n this.logger.debug(`document was closed with no changes : ${space.url}`)\n break\n case 6:\n this.logger.debug(`document is edited but save was requested : ${space.url}`)\n await this.saveDocument(space, callBackData.url)\n break\n case 7:\n this.logger.error(`document cannot be force saved, an error has occurred (try to save it) : ${space.url}`)\n await this.saveDocument(space, callBackData.url)\n break\n default:\n this.logger.error('unhandled case')\n }\n } catch (e) {\n this.logger.error(`${this.callBack.name} - ${e.message} : ${space.url}`)\n return { error: e.message }\n }\n return { error: 0 }\n }\n\n private async genConfiguration(\n user: UserModel,\n space: SpaceEnv,\n mode: FILE_MODE,\n fileId: string,\n fileUrl: string,\n fileExtension: string,\n callBackUrl: string,\n isMobile: boolean\n ): Promise<OnlyOfficeReqConfig> {\n const documentType = ONLY_OFFICE_EXTENSIONS.EDITABLE.get(fileExtension) || ONLY_OFFICE_EXTENSIONS.VIEWABLE.get(fileExtension)\n return {\n documentServerUrl: this.externalOnlyOfficeServer || `${this.contextManager.headerOriginUrl()}${ONLY_OFFICE_INTERNAL_URI}`,\n config: {\n type: isMobile ? 'mobile' : 'desktop',\n height: '100%',\n width: '100%',\n documentType: documentType,\n document: {\n title: path.basename(space.relativeUrl),\n fileType: fileExtension,\n key: await this.getDocumentKey(fileId),\n permissions: {\n download: true,\n edit: mode === FILE_MODE.EDIT,\n changeHistory: false,\n comment: true,\n fillForms: true,\n print: true,\n review: mode === FILE_MODE.EDIT\n },\n url: fileUrl\n },\n editorConfig: {\n mode: mode,\n lang: 'en',\n region: 'en',\n callbackUrl: callBackUrl,\n user: { id: user.id.toString(), name: `${user.fullName} (${user.email})`, image: await getAvatarBase64(user.login) },\n coEditing: {\n mode: 'fast',\n change: true\n },\n embedded: {\n embedUrl: fileUrl,\n saveUrl: fileUrl,\n shareUrl: fileUrl,\n toolbarDocked: 'top'\n },\n customization: {\n about: false,\n autosave: false,\n forcesave: true,\n zoom: documentType === 'slide' ? 60 : 90,\n help: false,\n features: { featuresTips: false },\n plugins: false\n }\n }\n }\n }\n }\n\n private getDocumentUrl(space: SpaceEnv, token: string): string {\n // user refresh token is used here for long session\n return `${this.contextManager.headerOriginUrl()}${API_FILES_ONLY_OFFICE_DOCUMENT}/${space.url}?${ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME}=${token}`\n }\n\n private getCallBackUrl(space: SpaceEnv, token: string, fileId: string): string {\n // user refresh token is used here for long session\n return `${this.contextManager.headerOriginUrl()}${API_FILES_ONLY_OFFICE_CALLBACK}/${space.url}?fid=${fileId}&${ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME}=${token}`\n }\n\n private genPayloadToken(payload: OnlyOfficeConfig | OnlyOfficeConvertForm): Promise<string> {\n return this.jwt.signAsync(payload, { secret: configuration.applications.files.onlyoffice.secret, expiresIn: 60 })\n }\n\n private genUserToken(user: UserModel): Promise<string> {\n // use refresh expiration to allow long session\n return this.jwt.signAsync(\n {\n identity: {\n id: user.id,\n login: user.login,\n email: user.email,\n fullName: user.fullName,\n language: user.language,\n role: user.role,\n applications: user.applications\n } satisfies JwtIdentityPayload\n },\n {\n secret: configuration.auth.token.access.secret,\n expiresIn: this.expiration\n }\n )\n }\n\n private async checkFileLock(user: UserModel, space: SpaceEnv, callBackData: OnlyOfficeCallBack) {\n for (const action of callBackData.actions) {\n if (action.type === 0) {\n // disconnect\n await this.removeFileLock(parseInt(action.userid), space)\n } else if (action.type === 1) {\n // connect\n await this.genFileLock(user, space)\n }\n }\n }\n\n private async genFileLock(user: UserModel, space: SpaceEnv): Promise<void> {\n const [ok, _fileLock] = await this.filesLockManager.create(\n user,\n space.dbFile,\n DEPTH.RESOURCE,\n {\n lockroot: null,\n locktoken: null,\n lockscope: LOCK_SCOPE.SHARED,\n owner: `OnlyOffice - ${user.fullName} (${user.email})`\n } satisfies WebDAVLock,\n this.expiration\n )\n if (!ok) {\n throw new Error('document is locked')\n }\n }\n\n private async removeFileLock(userId: number, space: SpaceEnv): Promise<void> {\n for (const lock of await this.filesLockManager.getLocksByPath(space.dbFile)) {\n if (lock.owner.id === userId) {\n await this.filesLockManager.removeLock(lock.key)\n }\n }\n }\n\n private async removeDocumentKey(fileId: string, space: SpaceEnv): Promise<void> {\n if (!(await this.filesLockManager.isPathLocked(space.dbFile))) {\n const cacheKey = this.getCacheKey(fileId)\n const r = await this.cache.del(cacheKey)\n this.logger.debug(`${this.removeDocumentKey.name} - ${cacheKey} ${r ? '' : 'not'} removed`)\n }\n }\n\n private async getDocumentKey(fileId: string): Promise<string> {\n const cacheKey = this.getCacheKey(fileId)\n const existingDocKey: string = await this.cache.get(cacheKey)\n if (existingDocKey) {\n return existingDocKey\n }\n const docKey = generateShortUUID(64)\n await this.cache.set(cacheKey, docKey, this.expiration)\n this.logger.debug(`${this.getDocumentKey.name} - ${cacheKey} (${docKey}) created`)\n return docKey\n }\n\n private async saveDocument(space: SpaceEnv, url: string): Promise<void> {\n /* url format:\n https://onlyoffice-server.com/cache/files/data/-33120641_7158/output.pptx/output.pptx\n ?md5=duFHKC-5d47s-RRcYn3hAw&expires=1739400549&shardkey=-33120641&filename=output.pptx\n */\n const urlParams = new URLSearchParams(url.split('?').at(-1))\n // it is not the md5 of the file but a md5 generated by the combination of the elements of the url\n const md5: string = urlParams.get('md5')\n const tmpFilePath = await uniqueFilePathFromDir(path.join(os.tmpdir(), `${md5}-${urlParams.get('filename')}`))\n\n // convert remote file to the local file with the current extension if these extensions aren't equal\n const localExtension = path.extname(space.realPath).slice(1)\n const remoteExtension = path.extname(urlParams.get('filename')).slice(1)\n\n let downloadUrl: string\n if (localExtension !== remoteExtension && !ONLY_OFFICE_CONVERT_EXTENSIONS.ALLOW_AUTO.has(localExtension)) {\n if (ONLY_OFFICE_CONVERT_EXTENSIONS.FROM.has(remoteExtension) && ONLY_OFFICE_CONVERT_EXTENSIONS.TO.has(localExtension)) {\n downloadUrl = await this.convertDocument(urlParams.get('shardkey'), url, remoteExtension, localExtension, space.url)\n } else {\n throw new Error(`document cannot be converted from ${remoteExtension} -> ${localExtension} : ${space.url}`)\n }\n } else {\n downloadUrl = url\n }\n\n // download file\n let res: AxiosResponse\n try {\n res = await this.http.axiosRef({\n method: HTTP_METHOD.GET,\n url: downloadUrl,\n responseType: 'stream',\n httpsAgent: new https.Agent({ rejectUnauthorized: this.rejectUnauthorized })\n })\n await writeFromStream(tmpFilePath, res.data)\n } catch (e) {\n throw new Error(`unable to get document : ${e.message}`)\n }\n\n // try to verify the downloaded size\n const contentLength = parseInt(res.headers['content-length'], 10)\n if (!isNaN(contentLength)) {\n if (contentLength === 0) {\n this.logger.debug(`${this.saveDocument.name} - content length is 0 : ${space.url}`)\n return\n }\n const tmpFileSize = await fileSize(tmpFilePath)\n if (tmpFileSize !== contentLength) {\n throw new Error(`document size differs (${tmpFileSize} != ${contentLength})`)\n }\n }\n // copy contents to avoid inode changes (fileId in some cases)\n try {\n await copyFileContent(tmpFilePath, space.realPath)\n await removeFiles(tmpFilePath)\n } catch (e) {\n throw new Error(`unable to save document : ${e.message}`)\n }\n }\n\n private async convertDocument(id: string, url: string, fileType: string, outputType: string, spaceUrl: string): Promise<string> {\n const key: string = `${id}-${crypto.randomBytes(20).toString('hex')}`.slice(0, 20).replace('-', '_')\n const payload: OnlyOfficeConvertForm = {\n key: key,\n url: url,\n filetype: fileType,\n outputtype: outputType,\n async: false\n }\n payload.token = await this.genPayloadToken(payload)\n let result: { fileUrl?: string; fileType?: string; endConvert?: boolean; error?: number }\n try {\n const res: AxiosResponse = await this.http.axiosRef({\n method: HTTP_METHOD.POST,\n url: this.convertUrl,\n data: payload,\n httpsAgent: new https.Agent({ rejectUnauthorized: this.rejectUnauthorized })\n })\n result = res.data\n } catch (e) {\n throw new Error(`convert failed with status : ${e.response.status}`)\n }\n if (result.error) {\n throw new Error(`convert failed with reason : ${ONLY_OFFICE_CONVERT_ERROR.get(result.error)}`)\n }\n if (result.endConvert) {\n this.logger.log(`${this.convertDocument.name} - ${fileType} -> ${outputType} : ${spaceUrl}`)\n return result.fileUrl\n }\n }\n\n private getCacheKey(fileId: string): string {\n return `${CACHE_ONLY_OFFICE}|${fileId}`\n }\n}\n"],"names":["FilesOnlyOfficeManager","getStatus","enabled","configuration","applications","files","onlyoffice","getSettings","user","space","mode","req","isPathExists","realPath","HttpException","HttpStatus","NOT_FOUND","isPathIsDir","BAD_REQUEST","fileExtension","path","extname","slice","ONLY_OFFICE_EXTENSIONS","VIEWABLE","has","EDITABLE","FILE_MODE","EDIT","haveSpaceEnvPermissions","SPACE_OPERATION","MODIFY","VIEW","filesLockManager","checkConflicts","dbFile","DEPTH","RESOURCE","userId","id","lockScope","LOCK_SCOPE","SHARED","LOCKED","isMobile","mobileRegex","test","headers","fileProps","getProps","fileId","filesQueries","getSpaceFileId","toString","userToken","genUserToken","fileUrl","getDocumentUrl","callBackUrl","getCallBackUrl","config","genConfiguration","token","genPayloadToken","callBack","callBackData","jwt","verifyAsync","secret","status","checkFileLock","logger","debug","url","notmodified","saveDocument","removeDocumentKey","error","removeFileLock","e","name","message","documentType","get","documentServerUrl","externalOnlyOfficeServer","contextManager","headerOriginUrl","ONLY_OFFICE_INTERNAL_URI","type","height","width","document","title","basename","relativeUrl","fileType","key","getDocumentKey","permissions","download","edit","changeHistory","comment","fillForms","print","review","editorConfig","lang","region","callbackUrl","fullName","email","image","getAvatarBase64","login","coEditing","change","embedded","embedUrl","saveUrl","shareUrl","toolbarDocked","customization","about","autosave","forcesave","zoom","help","features","featuresTips","plugins","API_FILES_ONLY_OFFICE_DOCUMENT","ONLY_OFFICE_TOKEN_QUERY_PARAM_NAME","API_FILES_ONLY_OFFICE_CALLBACK","payload","signAsync","expiresIn","identity","language","role","auth","access","expiration","action","actions","parseInt","userid","genFileLock","ok","_fileLock","create","lockroot","locktoken","lockscope","owner","Error","lock","getLocksByPath","removeLock","isPathLocked","cacheKey","getCacheKey","r","cache","del","existingDocKey","docKey","generateShortUUID","set","urlParams","URLSearchParams","split","at","md5","tmpFilePath","uniqueFilePathFromDir","join","os","tmpdir","localExtension","remoteExtension","downloadUrl","ONLY_OFFICE_CONVERT_EXTENSIONS","ALLOW_AUTO","FROM","TO","convertDocument","res","http","axiosRef","method","HTTP_METHOD","GET","responseType","httpsAgent","https","Agent","rejectUnauthorized","writeFromStream","data","contentLength","isNaN","tmpFileSize","fileSize","copyFileContent","removeFiles","outputType","spaceUrl","crypto","randomBytes","replace","filetype","outputtype","async","result","POST","convertUrl","response","ONLY_OFFICE_CONVERT_ERROR","endConvert","log","CACHE_ONLY_OFFICE","Logger","externalServer","verifySSL","convertHumanTimeToSeconds","refresh"],"mappings":"AAAA;;;;CAIC;;;;+BAyCYA;;;eAAAA;;;uBAvCe;wBACkC;qBACnC;8DAET;mEACC;+DACJ;iEACE;2BAE4C;mCAC/B;8BACR;uCACS;uCACH;wBACI;6BAGQ;wBAER;wBACE;uBAEA;4BAO3B;4BACmB;wBACqD;uBAGqD;yCACnG;qCACJ;;;;;;;;;;;;;;;AAGtB,IAAA,AAAMA,yBAAN,MAAMA;IAiBXC,YAAkC;QAChC,OAAO;YAAEC,SAASC,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,UAAU,CAACJ,OAAO;QAAC;IACxE;IAEA,MAAMK,YAAYC,IAAe,EAAEC,KAAe,EAAEC,IAAe,EAAEC,GAAwB,EAAgC;QAC3H,IAAI,CAAE,MAAMC,IAAAA,mBAAY,EAACH,MAAMI,QAAQ,GAAI;YACzC,MAAM,IAAIC,qBAAa,CAAC,sBAAsBC,kBAAU,CAACC,SAAS;QACpE;QACA,IAAI,MAAMC,IAAAA,kBAAW,EAACR,MAAMI,QAAQ,GAAG;YACrC,MAAM,IAAIC,qBAAa,CAAC,2BAA2BC,kBAAU,CAACG,WAAW;QAC3E;QACA,MAAMC,gBAAgBC,iBAAI,CAACC,OAAO,CAACZ,MAAMI,QAAQ,EAAES,KAAK,CAAC;QACzD,IAAI,CAACC,kCAAsB,CAACC,QAAQ,CAACC,GAAG,CAACN,kBAAkB,CAACI,kCAAsB,CAACG,QAAQ,CAACD,GAAG,CAACN,gBAAgB;YAC9G,MAAM,IAAIL,qBAAa,CAAC,0BAA0BC,kBAAU,CAACG,WAAW;QAC1E;QACA,IAAIR,SAASiB,qBAAS,CAACC,IAAI,IAAK,CAAA,CAACL,kCAAsB,CAACG,QAAQ,CAACD,GAAG,CAACN,kBAAkB,CAACU,IAAAA,oCAAuB,EAACpB,OAAOqB,uBAAe,CAACC,MAAM,CAAA,GAAI;YAC/IrB,OAAOiB,qBAAS,CAACK,IAAI;QACvB;QACA,IAAItB,SAASiB,qBAAS,CAACC,IAAI,EAAE;YAC3B,uBAAuB;YACvB,IAAI;gBACF,MAAM,IAAI,CAACK,gBAAgB,CAACC,cAAc,CAACzB,MAAM0B,MAAM,EAAEC,aAAK,CAACC,QAAQ,EAAE;oBAAEC,QAAQ9B,KAAK+B,EAAE;oBAAEC,WAAWC,kBAAU,CAACC,MAAM;gBAAC;YAC3H,EAAE,OAAM;gBACN,MAAM,IAAI5B,qBAAa,CAAC,sBAAsBC,kBAAU,CAAC4B,MAAM;YACjE;QACF;QACA,MAAMC,WAAoB,IAAI,CAACC,WAAW,CAACC,IAAI,CAACnC,IAAIoC,OAAO,CAAC,aAAa;QACzE,MAAMC,YAAuB,MAAMC,IAAAA,eAAQ,EAACxC,MAAMI,QAAQ,EAAEJ,MAAM0B,MAAM,CAACf,IAAI;QAC7E,MAAM8B,SAAiB,AAAC,CAAA,AAAC,MAAM,IAAI,CAACC,YAAY,CAACC,cAAc,CAACJ,WAAWvC,MAAM0B,MAAM,KAAMa,UAAUT,EAAE,AAAD,EAAGc,QAAQ;QACnH,MAAMC,YAAoB,MAAM,IAAI,CAACC,YAAY,CAAC/C;QAClD,MAAMgD,UAAU,IAAI,CAACC,cAAc,CAAChD,OAAO6C;QAC3C,MAAMI,cAAc,IAAI,CAACC,cAAc,CAAClD,OAAO6C,WAAWJ;QAC1D,MAAMU,SAA8B,MAAM,IAAI,CAACC,gBAAgB,CAACrD,MAAMC,OAAOC,MAAMwC,QAAQM,SAASrC,eAAeuC,aAAad;QAChIgB,OAAOA,MAAM,CAACE,KAAK,GAAG,MAAM,IAAI,CAACC,eAAe,CAACH,OAAOA,MAAM;QAC9D,OAAOA;IACT;IAEA,MAAMI,SAASxD,IAAe,EAAEC,KAAe,EAAEqD,KAAa,EAAEZ,MAAc,EAAE;QAC9E,MAAMe,eAAmC,MAAM,IAAI,CAACC,GAAG,CAACC,WAAW,CAACL,OAAO;YAAEM,QAAQjE,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,UAAU,CAAC8D,MAAM;QAAC;QACxI,IAAI;YACF,OAAQH,aAAaI,MAAM;gBACzB,KAAK;oBACH,MAAM,IAAI,CAACC,aAAa,CAAC9D,MAAMC,OAAOwD;oBACtC,IAAI,CAACM,MAAM,CAACC,KAAK,CAAC,CAAC,2BAA2B,EAAE/D,MAAMgE,GAAG,EAAE;oBAC3D;gBACF,KAAK;oBACH,MAAM,IAAI,CAACH,aAAa,CAAC9D,MAAMC,OAAOwD;oBACtC,IAAIA,aAAaS,WAAW,EAAE;wBAC5B,IAAI,CAACH,MAAM,CAACC,KAAK,CAAC,CAAC,iDAAiD,EAAE/D,MAAMgE,GAAG,EAAE;oBACnF,OAAO;wBACL,IAAI,CAACF,MAAM,CAACC,KAAK,CAAC,CAAC,kDAAkD,EAAE/D,MAAMgE,GAAG,EAAE;wBAClF,MAAM,IAAI,CAACE,YAAY,CAAClE,OAAOwD,aAAaQ,GAAG;oBACjD;oBACA,MAAM,IAAI,CAACG,iBAAiB,CAAC1B,QAAQzC;oBACrC;gBACF,KAAK;oBACH,IAAI,CAAC8D,MAAM,CAACM,KAAK,CAAC,CAAC,mEAAmE,EAAEpE,MAAMgE,GAAG,EAAE;oBACnG,MAAM,IAAI,CAACE,YAAY,CAAClE,OAAOwD,aAAaQ,GAAG;oBAC/C;gBACF,KAAK;oBACH,MAAM,IAAI,CAACK,cAAc,CAACtE,KAAK+B,EAAE,EAAE9B;oBACnC,MAAM,IAAI,CAACmE,iBAAiB,CAAC1B,QAAQzC;oBACrC,IAAI,CAAC8D,MAAM,CAACC,KAAK,CAAC,CAAC,sCAAsC,EAAE/D,MAAMgE,GAAG,EAAE;oBACtE;gBACF,KAAK;oBACH,IAAI,CAACF,MAAM,CAACC,KAAK,CAAC,CAAC,4CAA4C,EAAE/D,MAAMgE,GAAG,EAAE;oBAC5E,MAAM,IAAI,CAACE,YAAY,CAAClE,OAAOwD,aAAaQ,GAAG;oBAC/C;gBACF,KAAK;oBACH,IAAI,CAACF,MAAM,CAACM,KAAK,CAAC,CAAC,yEAAyE,EAAEpE,MAAMgE,GAAG,EAAE;oBACzG,MAAM,IAAI,CAACE,YAAY,CAAClE,OAAOwD,aAAaQ,GAAG;oBAC/C;gBACF;oBACE,IAAI,CAACF,MAAM,CAACM,KAAK,CAAC;YACtB;QACF,EAAE,OAAOE,GAAG;YACV,IAAI,CAACR,MAAM,CAACM,KAAK,CAAC,GAAG,IAAI,CAACb,QAAQ,CAACgB,IAAI,CAAC,GAAG,EAAED,EAAEE,OAAO,CAAC,GAAG,EAAExE,MAAMgE,GAAG,EAAE;YACvE,OAAO;gBAAEI,OAAOE,EAAEE,OAAO;YAAC;QAC5B;QACA,OAAO;YAAEJ,OAAO;QAAE;IACpB;IAEA,MAAchB,iBACZrD,IAAe,EACfC,KAAe,EACfC,IAAe,EACfwC,MAAc,EACdM,OAAe,EACfrC,aAAqB,EACrBuC,WAAmB,EACnBd,QAAiB,EACa;QAC9B,MAAMsC,eAAe3D,kCAAsB,CAACG,QAAQ,CAACyD,GAAG,CAAChE,kBAAkBI,kCAAsB,CAACC,QAAQ,CAAC2D,GAAG,CAAChE;QAC/G,OAAO;YACLiE,mBAAmB,IAAI,CAACC,wBAAwB,IAAI,GAAG,IAAI,CAACC,cAAc,CAACC,eAAe,KAAKC,oCAAwB,EAAE;YACzH5B,QAAQ;gBACN6B,MAAM7C,WAAW,WAAW;gBAC5B8C,QAAQ;gBACRC,OAAO;gBACPT,cAAcA;gBACdU,UAAU;oBACRC,OAAOzE,iBAAI,CAAC0E,QAAQ,CAACrF,MAAMsF,WAAW;oBACtCC,UAAU7E;oBACV8E,KAAK,MAAM,IAAI,CAACC,cAAc,CAAChD;oBAC/BiD,aAAa;wBACXC,UAAU;wBACVC,MAAM3F,SAASiB,qBAAS,CAACC,IAAI;wBAC7B0E,eAAe;wBACfC,SAAS;wBACTC,WAAW;wBACXC,OAAO;wBACPC,QAAQhG,SAASiB,qBAAS,CAACC,IAAI;oBACjC;oBACA6C,KAAKjB;gBACP;gBACAmD,cAAc;oBACZjG,MAAMA;oBACNkG,MAAM;oBACNC,QAAQ;oBACRC,aAAapD;oBACblD,MAAM;wBAAE+B,IAAI/B,KAAK+B,EAAE,CAACc,QAAQ;wBAAI2B,MAAM,GAAGxE,KAAKuG,QAAQ,CAAC,EAAE,EAAEvG,KAAKwG,KAAK,CAAC,CAAC,CAAC;wBAAEC,OAAO,MAAMC,IAAAA,uBAAe,EAAC1G,KAAK2G,KAAK;oBAAE;oBACnHC,WAAW;wBACT1G,MAAM;wBACN2G,QAAQ;oBACV;oBACAC,UAAU;wBACRC,UAAU/D;wBACVgE,SAAShE;wBACTiE,UAAUjE;wBACVkE,eAAe;oBACjB;oBACAC,eAAe;wBACbC,OAAO;wBACPC,UAAU;wBACVC,WAAW;wBACXC,MAAM7C,iBAAiB,UAAU,KAAK;wBACtC8C,MAAM;wBACNC,UAAU;4BAAEC,cAAc;wBAAM;wBAChCC,SAAS;oBACX;gBACF;YACF;QACF;IACF;IAEQ1E,eAAehD,KAAe,EAAEqD,KAAa,EAAU;QAC7D,mDAAmD;QACnD,OAAO,GAAG,IAAI,CAACwB,cAAc,CAACC,eAAe,KAAK6C,sCAA8B,CAAC,CAAC,EAAE3H,MAAMgE,GAAG,CAAC,CAAC,EAAE4D,8CAAkC,CAAC,CAAC,EAAEvE,OAAO;IAChJ;IAEQH,eAAelD,KAAe,EAAEqD,KAAa,EAAEZ,MAAc,EAAU;QAC7E,mDAAmD;QACnD,OAAO,GAAG,IAAI,CAACoC,cAAc,CAACC,eAAe,KAAK+C,sCAA8B,CAAC,CAAC,EAAE7H,MAAMgE,GAAG,CAAC,KAAK,EAAEvB,OAAO,CAAC,EAAEmF,8CAAkC,CAAC,CAAC,EAAEvE,OAAO;IAC9J;IAEQC,gBAAgBwE,OAAiD,EAAmB;QAC1F,OAAO,IAAI,CAACrE,GAAG,CAACsE,SAAS,CAACD,SAAS;YAAEnE,QAAQjE,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,UAAU,CAAC8D,MAAM;YAAEqE,WAAW;QAAG;IACjH;IAEQlF,aAAa/C,IAAe,EAAmB;QACrD,+CAA+C;QAC/C,OAAO,IAAI,CAAC0D,GAAG,CAACsE,SAAS,CACvB;YACEE,UAAU;gBACRnG,IAAI/B,KAAK+B,EAAE;gBACX4E,OAAO3G,KAAK2G,KAAK;gBACjBH,OAAOxG,KAAKwG,KAAK;gBACjBD,UAAUvG,KAAKuG,QAAQ;gBACvB4B,UAAUnI,KAAKmI,QAAQ;gBACvBC,MAAMpI,KAAKoI,IAAI;gBACfxI,cAAcI,KAAKJ,YAAY;YACjC;QACF,GACA;YACEgE,QAAQjE,gCAAa,CAAC0I,IAAI,CAAC/E,KAAK,CAACgF,MAAM,CAAC1E,MAAM;YAC9CqE,WAAW,IAAI,CAACM,UAAU;QAC5B;IAEJ;IAEA,MAAczE,cAAc9D,IAAe,EAAEC,KAAe,EAAEwD,YAAgC,EAAE;QAC9F,KAAK,MAAM+E,UAAU/E,aAAagF,OAAO,CAAE;YACzC,IAAID,OAAOvD,IAAI,KAAK,GAAG;gBACrB,aAAa;gBACb,MAAM,IAAI,CAACX,cAAc,CAACoE,SAASF,OAAOG,MAAM,GAAG1I;YACrD,OAAO,IAAIuI,OAAOvD,IAAI,KAAK,GAAG;gBAC5B,UAAU;gBACV,MAAM,IAAI,CAAC2D,WAAW,CAAC5I,MAAMC;YAC/B;QACF;IACF;IAEA,MAAc2I,YAAY5I,IAAe,EAAEC,KAAe,EAAiB;QACzE,MAAM,CAAC4I,IAAIC,UAAU,GAAG,MAAM,IAAI,CAACrH,gBAAgB,CAACsH,MAAM,CACxD/I,MACAC,MAAM0B,MAAM,EACZC,aAAK,CAACC,QAAQ,EACd;YACEmH,UAAU;YACVC,WAAW;YACXC,WAAWjH,kBAAU,CAACC,MAAM;YAC5BiH,OAAO,CAAC,aAAa,EAAEnJ,KAAKuG,QAAQ,CAAC,EAAE,EAAEvG,KAAKwG,KAAK,CAAC,CAAC,CAAC;QACxD,GACA,IAAI,CAAC+B,UAAU;QAEjB,IAAI,CAACM,IAAI;YACP,MAAM,IAAIO,MAAM;QAClB;IACF;IAEA,MAAc9E,eAAexC,MAAc,EAAE7B,KAAe,EAAiB;QAC3E,KAAK,MAAMoJ,QAAQ,CAAA,MAAM,IAAI,CAAC5H,gBAAgB,CAAC6H,cAAc,CAACrJ,MAAM0B,MAAM,CAAA,EAAG;YAC3E,IAAI0H,KAAKF,KAAK,CAACpH,EAAE,KAAKD,QAAQ;gBAC5B,MAAM,IAAI,CAACL,gBAAgB,CAAC8H,UAAU,CAACF,KAAK5D,GAAG;YACjD;QACF;IACF;IAEA,MAAcrB,kBAAkB1B,MAAc,EAAEzC,KAAe,EAAiB;QAC9E,IAAI,CAAE,MAAM,IAAI,CAACwB,gBAAgB,CAAC+H,YAAY,CAACvJ,MAAM0B,MAAM,GAAI;YAC7D,MAAM8H,WAAW,IAAI,CAACC,WAAW,CAAChH;YAClC,MAAMiH,IAAI,MAAM,IAAI,CAACC,KAAK,CAACC,GAAG,CAACJ;YAC/B,IAAI,CAAC1F,MAAM,CAACC,KAAK,CAAC,GAAG,IAAI,CAACI,iBAAiB,CAACI,IAAI,CAAC,GAAG,EAAEiF,SAAS,CAAC,EAAEE,IAAI,KAAK,MAAM,QAAQ,CAAC;QAC5F;IACF;IAEA,MAAcjE,eAAehD,MAAc,EAAmB;QAC5D,MAAM+G,WAAW,IAAI,CAACC,WAAW,CAAChH;QAClC,MAAMoH,iBAAyB,MAAM,IAAI,CAACF,KAAK,CAACjF,GAAG,CAAC8E;QACpD,IAAIK,gBAAgB;YAClB,OAAOA;QACT;QACA,MAAMC,SAASC,IAAAA,4BAAiB,EAAC;QACjC,MAAM,IAAI,CAACJ,KAAK,CAACK,GAAG,CAACR,UAAUM,QAAQ,IAAI,CAACxB,UAAU;QACtD,IAAI,CAACxE,MAAM,CAACC,KAAK,CAAC,GAAG,IAAI,CAAC0B,cAAc,CAAClB,IAAI,CAAC,GAAG,EAAEiF,SAAS,EAAE,EAAEM,OAAO,SAAS,CAAC;QACjF,OAAOA;IACT;IAEA,MAAc5F,aAAalE,KAAe,EAAEgE,GAAW,EAAiB;QACtE;;;KAGC,GACD,MAAMiG,YAAY,IAAIC,gBAAgBlG,IAAImG,KAAK,CAAC,KAAKC,EAAE,CAAC,CAAC;QACzD,kGAAkG;QAClG,MAAMC,MAAcJ,UAAUvF,GAAG,CAAC;QAClC,MAAM4F,cAAc,MAAMC,IAAAA,4BAAqB,EAAC5J,iBAAI,CAAC6J,IAAI,CAACC,eAAE,CAACC,MAAM,IAAI,GAAGL,IAAI,CAAC,EAAEJ,UAAUvF,GAAG,CAAC,aAAa;QAE5G,oGAAoG;QACpG,MAAMiG,iBAAiBhK,iBAAI,CAACC,OAAO,CAACZ,MAAMI,QAAQ,EAAES,KAAK,CAAC;QAC1D,MAAM+J,kBAAkBjK,iBAAI,CAACC,OAAO,CAACqJ,UAAUvF,GAAG,CAAC,aAAa7D,KAAK,CAAC;QAEtE,IAAIgK;QACJ,IAAIF,mBAAmBC,mBAAmB,CAACE,0CAA8B,CAACC,UAAU,CAAC/J,GAAG,CAAC2J,iBAAiB;YACxG,IAAIG,0CAA8B,CAACE,IAAI,CAAChK,GAAG,CAAC4J,oBAAoBE,0CAA8B,CAACG,EAAE,CAACjK,GAAG,CAAC2J,iBAAiB;gBACrHE,cAAc,MAAM,IAAI,CAACK,eAAe,CAACjB,UAAUvF,GAAG,CAAC,aAAaV,KAAK4G,iBAAiBD,gBAAgB3K,MAAMgE,GAAG;YACrH,OAAO;gBACL,MAAM,IAAImF,MAAM,CAAC,kCAAkC,EAAEyB,gBAAgB,IAAI,EAAED,eAAe,GAAG,EAAE3K,MAAMgE,GAAG,EAAE;YAC5G;QACF,OAAO;YACL6G,cAAc7G;QAChB;QAEA,gBAAgB;QAChB,IAAImH;QACJ,IAAI;YACFA,MAAM,MAAM,IAAI,CAACC,IAAI,CAACC,QAAQ,CAAC;gBAC7BC,QAAQC,kCAAW,CAACC,GAAG;gBACvBxH,KAAK6G;gBACLY,cAAc;gBACdC,YAAY,IAAIC,cAAK,CAACC,KAAK,CAAC;oBAAEC,oBAAoB,IAAI,CAACA,kBAAkB;gBAAC;YAC5E;YACA,MAAMC,IAAAA,sBAAe,EAACxB,aAAaa,IAAIY,IAAI;QAC7C,EAAE,OAAOzH,GAAG;YACV,MAAM,IAAI6E,MAAM,CAAC,yBAAyB,EAAE7E,EAAEE,OAAO,EAAE;QACzD;QAEA,oCAAoC;QACpC,MAAMwH,gBAAgBvD,SAAS0C,IAAI7I,OAAO,CAAC,iBAAiB,EAAE;QAC9D,IAAI,CAAC2J,MAAMD,gBAAgB;YACzB,IAAIA,kBAAkB,GAAG;gBACvB,IAAI,CAAClI,MAAM,CAACC,KAAK,CAAC,GAAG,IAAI,CAACG,YAAY,CAACK,IAAI,CAAC,yBAAyB,EAAEvE,MAAMgE,GAAG,EAAE;gBAClF;YACF;YACA,MAAMkI,cAAc,MAAMC,IAAAA,eAAQ,EAAC7B;YACnC,IAAI4B,gBAAgBF,eAAe;gBACjC,MAAM,IAAI7C,MAAM,CAAC,uBAAuB,EAAE+C,YAAY,IAAI,EAAEF,cAAc,CAAC,CAAC;YAC9E;QACF;QACA,8DAA8D;QAC9D,IAAI;YACF,MAAMI,IAAAA,sBAAe,EAAC9B,aAAatK,MAAMI,QAAQ;YACjD,MAAMiM,IAAAA,kBAAW,EAAC/B;QACpB,EAAE,OAAOhG,GAAG;YACV,MAAM,IAAI6E,MAAM,CAAC,0BAA0B,EAAE7E,EAAEE,OAAO,EAAE;QAC1D;IACF;IAEA,MAAc0G,gBAAgBpJ,EAAU,EAAEkC,GAAW,EAAEuB,QAAgB,EAAE+G,UAAkB,EAAEC,QAAgB,EAAmB;QAC9H,MAAM/G,MAAc,GAAG1D,GAAG,CAAC,EAAE0K,mBAAM,CAACC,WAAW,CAAC,IAAI7J,QAAQ,CAAC,QAAQ,CAAC/B,KAAK,CAAC,GAAG,IAAI6L,OAAO,CAAC,KAAK;QAChG,MAAM5E,UAAiC;YACrCtC,KAAKA;YACLxB,KAAKA;YACL2I,UAAUpH;YACVqH,YAAYN;YACZO,OAAO;QACT;QACA/E,QAAQzE,KAAK,GAAG,MAAM,IAAI,CAACC,eAAe,CAACwE;QAC3C,IAAIgF;QACJ,IAAI;YACF,MAAM3B,MAAqB,MAAM,IAAI,CAACC,IAAI,CAACC,QAAQ,CAAC;gBAClDC,QAAQC,kCAAW,CAACwB,IAAI;gBACxB/I,KAAK,IAAI,CAACgJ,UAAU;gBACpBjB,MAAMjE;gBACN4D,YAAY,IAAIC,cAAK,CAACC,KAAK,CAAC;oBAAEC,oBAAoB,IAAI,CAACA,kBAAkB;gBAAC;YAC5E;YACAiB,SAAS3B,IAAIY,IAAI;QACnB,EAAE,OAAOzH,GAAG;YACV,MAAM,IAAI6E,MAAM,CAAC,6BAA6B,EAAE7E,EAAE2I,QAAQ,CAACrJ,MAAM,EAAE;QACrE;QACA,IAAIkJ,OAAO1I,KAAK,EAAE;YAChB,MAAM,IAAI+E,MAAM,CAAC,6BAA6B,EAAE+D,qCAAyB,CAACxI,GAAG,CAACoI,OAAO1I,KAAK,GAAG;QAC/F;QACA,IAAI0I,OAAOK,UAAU,EAAE;YACrB,IAAI,CAACrJ,MAAM,CAACsJ,GAAG,CAAC,GAAG,IAAI,CAAClC,eAAe,CAAC3G,IAAI,CAAC,GAAG,EAAEgB,SAAS,IAAI,EAAE+G,WAAW,GAAG,EAAEC,UAAU;YAC3F,OAAOO,OAAO/J,OAAO;QACvB;IACF;IAEQ0G,YAAYhH,MAAc,EAAU;QAC1C,OAAO,GAAG4K,wBAAiB,CAAC,CAAC,EAAE5K,QAAQ;IACzC;IApVA,YACE,AAAiB2I,IAAiB,EAClC,AAAiBvG,cAA8B,EAC/C,AAAiB8E,KAAY,EAC7B,AAAiBlG,GAAe,EAChC,AAAiBjC,gBAAkC,EACnD,AAAiBkB,YAA0B,CAC3C;aANiB0I,OAAAA;aACAvG,iBAAAA;aACA8E,QAAAA;aACAlG,MAAAA;aACAjC,mBAAAA;aACAkB,eAAAA;aAbXoB,SAAS,IAAIwJ,cAAM,CAAC/N,uBAAuBgF,IAAI;aACtCK,2BAA2BlF,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,UAAU,CAAC0N,cAAc,IAAI;aACzF1B,qBAA8B,CAACnM,gCAAa,CAACC,YAAY,CAACC,KAAK,CAACC,UAAU,EAAE2N;aAC5ER,aAAa,IAAI,CAACpI,wBAAwB,GAAG,GAAG,IAAI,CAACA,wBAAwB,CAAC,oBAAoB,CAAC,GAAG;aACtG0D,aAAamF,IAAAA,oCAAyB,EAAC/N,gCAAa,CAAC0I,IAAI,CAAC/E,KAAK,CAACqK,OAAO,CAACpF,UAAU;aAClFlG,cAAsB;IASpC;AA8UL"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>
|
|
3
|
-
* This file is part of Sync-in | The open source file sync and share solution
|
|
4
|
-
* See the LICENSE file for licensing details
|
|
5
|
-
*/ "use strict";
|
|
6
|
-
Object.defineProperty(exports, "__esModule", {
|
|
7
|
-
value: true
|
|
8
|
-
});
|
|
9
|
-
const _axios = require("@nestjs/axios");
|
|
10
|
-
const _jwt = require("@nestjs/jwt");
|
|
11
|
-
const _testing = require("@nestjs/testing");
|
|
12
|
-
const _cacheservice = require("../../../infrastructure/cache/services/cache.service");
|
|
13
|
-
const _contextmanagerservice = require("../../../infrastructure/context/services/context-manager.service");
|
|
14
|
-
const _usersmanagerservice = require("../../users/services/users-manager.service");
|
|
15
|
-
const _fileslockmanagerservice = require("./files-lock-manager.service");
|
|
16
|
-
const _filesonlyofficemanagerservice = require("./files-only-office-manager.service");
|
|
17
|
-
const _filesqueriesservice = require("./files-queries.service");
|
|
18
|
-
describe(_filesonlyofficemanagerservice.FilesOnlyOfficeManager.name, ()=>{
|
|
19
|
-
let service;
|
|
20
|
-
beforeAll(async ()=>{
|
|
21
|
-
const module = await _testing.Test.createTestingModule({
|
|
22
|
-
providers: [
|
|
23
|
-
_filesonlyofficemanagerservice.FilesOnlyOfficeManager,
|
|
24
|
-
_contextmanagerservice.ContextManager,
|
|
25
|
-
{
|
|
26
|
-
provide: _axios.HttpService,
|
|
27
|
-
useValue: {}
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
provide: _cacheservice.Cache,
|
|
31
|
-
useValue: {}
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
provide: _jwt.JwtService,
|
|
35
|
-
useValue: {}
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
provide: _usersmanagerservice.UsersManager,
|
|
39
|
-
useValue: {}
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
provide: _fileslockmanagerservice.FilesLockManager,
|
|
43
|
-
useValue: {}
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
provide: _filesqueriesservice.FilesQueries,
|
|
47
|
-
useValue: {}
|
|
48
|
-
}
|
|
49
|
-
]
|
|
50
|
-
}).compile();
|
|
51
|
-
service = module.get(_filesonlyofficemanagerservice.FilesOnlyOfficeManager);
|
|
52
|
-
});
|
|
53
|
-
it('should be defined', ()=>{
|
|
54
|
-
expect(service).toBeDefined();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
//# sourceMappingURL=files-only-office-manager.service.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../backend/src/applications/files/services/files-only-office-manager.service.spec.ts"],"sourcesContent":["/*\n * Copyright (C) 2012-2025 Johan Legrand <johan.legrand@sync-in.com>\n * This file is part of Sync-in | The open source file sync and share solution\n * See the LICENSE file for licensing details\n */\n\nimport { HttpService } from '@nestjs/axios'\nimport { JwtService } from '@nestjs/jwt'\nimport { Test, TestingModule } from '@nestjs/testing'\nimport { Cache } from '../../../infrastructure/cache/services/cache.service'\nimport { ContextManager } from '../../../infrastructure/context/services/context-manager.service'\nimport { UsersManager } from '../../users/services/users-manager.service'\nimport { FilesLockManager } from './files-lock-manager.service'\nimport { FilesOnlyOfficeManager } from './files-only-office-manager.service'\nimport { FilesQueries } from './files-queries.service'\n\ndescribe(FilesOnlyOfficeManager.name, () => {\n let service: FilesOnlyOfficeManager\n\n beforeAll(async () => {\n const module: TestingModule = await Test.createTestingModule({\n providers: [\n FilesOnlyOfficeManager,\n ContextManager,\n { provide: HttpService, useValue: {} },\n {\n provide: Cache,\n useValue: {}\n },\n { provide: JwtService, useValue: {} },\n { provide: UsersManager, useValue: {} },\n { provide: FilesLockManager, useValue: {} },\n { provide: FilesQueries, useValue: {} }\n ]\n }).compile()\n\n service = module.get<FilesOnlyOfficeManager>(FilesOnlyOfficeManager)\n })\n\n it('should be defined', () => {\n expect(service).toBeDefined()\n })\n})\n"],"names":["describe","FilesOnlyOfficeManager","name","service","beforeAll","module","Test","createTestingModule","providers","ContextManager","provide","HttpService","useValue","Cache","JwtService","UsersManager","FilesLockManager","FilesQueries","compile","get","it","expect","toBeDefined"],"mappings":"AAAA;;;;CAIC;;;;uBAE2B;qBACD;yBACS;8BACd;uCACS;qCACF;yCACI;+CACM;qCACV;AAE7BA,SAASC,qDAAsB,CAACC,IAAI,EAAE;IACpC,IAAIC;IAEJC,UAAU;QACR,MAAMC,SAAwB,MAAMC,aAAI,CAACC,mBAAmB,CAAC;YAC3DC,WAAW;gBACTP,qDAAsB;gBACtBQ,qCAAc;gBACd;oBAAEC,SAASC,kBAAW;oBAAEC,UAAU,CAAC;gBAAE;gBACrC;oBACEF,SAASG,mBAAK;oBACdD,UAAU,CAAC;gBACb;gBACA;oBAAEF,SAASI,eAAU;oBAAEF,UAAU,CAAC;gBAAE;gBACpC;oBAAEF,SAASK,iCAAY;oBAAEH,UAAU,CAAC;gBAAE;gBACtC;oBAAEF,SAASM,yCAAgB;oBAAEJ,UAAU,CAAC;gBAAE;gBAC1C;oBAAEF,SAASO,iCAAY;oBAAEL,UAAU,CAAC;gBAAE;aACvC;QACH,GAAGM,OAAO;QAEVf,UAAUE,OAAOc,GAAG,CAAyBlB,qDAAsB;IACrE;IAEAmB,GAAG,qBAAqB;QACtBC,OAAOlB,SAASmB,WAAW;IAC7B;AACF"}
|
package/static/chunk-42L6C5MT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-KAVP6UXH.js";var a="Uwierzytelnianie",i="Login",n="Has\u0142o",t="Potwierd\u017A",s="Anuluj",r="Zamknij",d="Filtr",l="Filtry",c="szukaj",z="Szukaj",u="Zobacz",p="Brak zada\u0144",w="Uko\u0144czono {{ nb }} zadanie",y="Uko\u0144czono {{ nb }} zada\u0144",k="{{ nba }} zadanie w toku z {{ nb }}",m="{{ nba }} zada\u0144 w toku z {{ nb }}",h="{{nb}} element\xF3w",j="{{nb}} akcji",g="{{ nb }} nowa wiadomo\u015B\u0107",b="{{ nb }} nowe wiadomo\u015Bci",f="{{ nb }} nieprzeczytane powiadomienie",S="{{ nb }} nieprzeczytane powiadomienia",N="Aplikacja",U="aplikacja",T="Powiadomienie",P="Powiadomienia",v="Zdarzenie",A="Plik",C="Pliki",D="Osobiste",W="Zewn\u0119trzne",Z="Grupy",_="Grupa",E="grupa",L="grupy",x="Widoczna",R="Prywatna",M="Izolowana",F="Dodaj",G="Administrator",B="Administracja",O="U\u017Cytkownik",K="u\u017Cytkownik",Y="U\u017Cytkownicy",I="u\u017Cytkownicy",q="konto",V="Konto",J="E-mail",H="Status",Q="Rola",X="IP",$="Wy\u015Bwietlenia",ee="Po\u0142\u0105czenie",oe="Po\u0142\u0105czenia",ae="Ma\u0142o dost\u0119pnego miejsca ({{ nb }}%)",ie="online",ne="Nieograniczony",te="cz\u0142onek",se="cz\u0142onkowie",re="Cz\u0142onek",de="Cz\u0142onkowie",le="Mened\u017Cer",ce="mened\u017Cer",ze="Mened\u017Cerowie",ue="Generuj",pe="Importuj",we="Konfiguracja",ye="Aplikacje",ke="aplikacje",me="Awatar",he="Zaktualizuj",je="J\u0119zyk",ge="Strona g\u0142\xF3wna",be="Ostatnie",fe="ostatnie",Se="Kosz",Ne="Udost\u0119pnienia",Ue="Udost\u0119pnij",Te="udost\u0119pnienia",Pe="udost\u0119pniono",ve="Dost\u0119p do przestrzeni osobistej",Ae="Dost\u0119p do przestrzeni",Ce="Zarz\u0105dzanie przestrzeniami",De="Dost\u0119p do udost\u0119pnie\u0144",We="Zarz\u0105dzanie udost\u0119pnieniami",Ze="Zarz\u0105dzanie go\u015B\u0107mi",_e="Zarz\u0105dzanie grupami osobistymi",Ee="Dost\u0119p z aplikacji desktopowej",Le="Synchronizacja z aplikacji desktopowej",xe="Dost\u0119p WebDAV",Re="WebDAV",Me="Przestrze\u0144",Fe="Przestrzenie",Ge="przestrzenie",Be="zakotwiczy\u0142",Oe="odkotwiczy\u0142",Ke="Lokalizacja",Ye="Zakotwiczone",Ie="Ustawienia",qe="Opcje",Ve="Nazwa",Je="Pobierz",He="Przenie\u015B",Qe="Kopiuj",Xe="Zmie\u0144 nazw\u0119",$e="Edytuj",eo="Usu\u0144",oo="Schowek",ao="Od\u015Bwie\u017C",io="Opr\xF3\u017Cnij",no="Lista",to="Wy\u015Bwietlanie",so="Czy przenie\u015B\u0107 <b>{{arg}}</b> do kosza?",ro="Czy trwale usun\u0105\u0107 <b>{{arg}}</b>?",lo="Czy przenie\u015B\u0107 te <b>{{arg}} pliki</b> do kosza?",co="Czy trwale usun\u0105\u0107 te <b>{{arg}} pliki</b>?",zo="synchronizacja",uo="Synchronizacja",po="Synchronizacje",wo="Synchronizuj",yo="Sync",ko="Zsynchronizowano",mo="Skompresuj",ho="Dekompresuj",jo="Info",go="Rozmiar",bo="Zmodyfikowano",fo="zmodyfikowano",So="Zadania",No="Tekst",Uo="Elementy",To="Nowy",Po="Folder",vo="folder",Ao="plik",Co="pliki",Do="katalog",Wo="katalogi",Zo="Razem",_o="brak zaznaczenia",Eo="Zaznaczono {{ nb }} element",Lo="Zaznaczono {{ nb }} element\xF3w",xo="element",Ro="elementy",Mo="utw\xF3rz",Fo="zapisz",Go="przenie\u015B",Bo="usu\u0144",Oo="modyfikuj",Ko="udost\u0119pnienie",Yo="Link",Io="link",qo="Linki",Vo="linki",Jo="Go\u015B\u0107",Ho="Go\u015Bcie",Qo="go\u015B\u0107",Xo="go\u015Bcie",$o="Wygas\u0142o",ea="wygas\u0142o",oa="brak",aa="Uprawnienia",ia="W\u0142a\u015Bciciel",na="Ja",ta="Udost\u0119pnione",sa="Utworzono",ra="Data",da="\u015Acie\u017Cka",la="aktywne",ca="Aktywne",za="zawieszone",ua="Typ",pa="Opis",wa="Widoczno\u015B\u0107",ya="Nieznane",ka="Wyga\u015Bni\u0119cie",ma="Dost\u0119p",ha="Uzyskano dost\u0119p",ja="Komentarz",ga="Komentarze",ba="komentarze",fa="skomentowa\u0142",Sa="tak",Na="nie",Ua="Klient",Ta="Klienci",Pa="dost\u0119pny",va="zaj\u0119ty",Aa="nieobecny",Ca="offline",Da="Zobacz",Wa="wyloguj",Za="dni",_a="dzie\u0144",Ea="Usu\u0144",La="Harmonogram",xa="r\xF3wnoleg\u0142y",Ra="sekwencyjny",Ma="Transfery",Fa="Symuluj",Ga="Resetuj",Ba="Przegl\u0105daj",Oa="Akcja",Ka="Dodano",Ya="Usuni\u0119to",Ia="Skopiowano",qa="Przeniesiono",Va="Przefiltrowano",Ja="B\u0142\u0105d",Ha="Serwer",Qa="Kierunek",Xa="Konflikt",$a="ostatnie",ei="\u0179r\xF3d\u0142o",oi="Miejsce docelowe",ai="Tryb",ii="Sekwencyjnie",ni="R\xF3wnolegle",ti="szybki",si="bezpieczny",ri="w\u0142\u0105czony",di="W\u0142\u0105cz",li="wy\u0142\u0105czony",ci="Wy\u0142\u0105cz",zi="godziny",ui="minuty",pi="dni",wi="oba kierunki",yi="nigdy",ki="Kreator",mi="Dalej",hi="Wstecz",ji="Zako\u0144cz",gi="do",bi="Repozytorium",fi="publiczne",Si="lokalne",Ni="zdalne",Ui="Strona internetowa",Ti="Dokumentacja",Pi="Wersje",vi="Bezpiecze\u0144stwo",Ai="Zarz\u0105dzaj",Ci="Czy chcesz zmieni\u0107 nazw\u0119 <b>{{ old }}</b> na <b>{{ new }}</b>?",Di="Zapisz",Wi="Cofnij",Zi="Pon\xF3w",_i="ja",Ei="Odblokuj",Li="Blokada",xi="Wy\u0142\u0105czna",Ri="Pe\u0142ny ekran",Mi="Wymiary",Fi={"Sign-in to your account":"Zaloguj si\u0119 na swoje konto","Wrong login or password":"Nieprawid\u0142owy login lub has\u0142o","Authentication service error":"B\u0142\u0105d us\u0142ugi uwierzytelniania","Account locked":"Konto zablokowane","Account is not allowed":"Konto nie jest uprawnione","Account matching error":"B\u0142\u0105d dopasowania konta",Authentication:a,"Sign in":"Zaloguj si\u0119",Login:i,Password:n,"Login or Email":"Login lub e-mail","Login already used":"Login jest ju\u017C u\u017Cywany","You are already logged in":"Jeste\u015B ju\u017C zalogowany","Name already used":"Nazwa jest ju\u017C u\u017Cywana","Token has expired":"Token wygas\u0142",Confirm:t,Cancel:s,Close:r,"Server connection error":"B\u0142\u0105d po\u0142\u0105czenia z serwerem",Filter:d,Filters:l,search:c,Search:z,"Search for content":"Szukaj tre\u015Bci","Search for files":"Szukaj plik\xF3w","Full-text search":"Wyszukiwanie pe\u0142notekstowe","Full-text search is disabled":"Wyszukiwanie pe\u0142notekstowe jest wy\u0142\u0105czone","Type to search for users or groups to add":"Wpisz, aby wyszuka\u0107 u\u017Cytkownik\xF3w lub grupy do dodania","Type to search for groups to add":"Wpisz, aby wyszuka\u0107 grupy do dodania","Type to search for users to add":"Wpisz, aby wyszuka\u0107 u\u017Cytkownik\xF3w do dodania","Type to search for managers to add":"Wpisz, aby wyszuka\u0107 mened\u017Cer\xF3w do dodania","Member since":"Cz\u0142onek od","Windows Manager":"Mened\u017Cer okien","Mark as read":"Oznacz jako przeczytane",See:u,no_task:p,one_task:w,nb_tasks:y,one_active_task:k,nb_active_tasks:m,nb_elements:h,nb_actions:j,one_message:g,nb_messages:b,one_notification:f,nb_notifications:S,Application:N,application:U,"application and email":"aplikacja i e-mail",Notification:T,Notifications:P,Event:v,File:A,Files:C,"Personal files":"Pliki osobiste","for personal files":"dla plik\xF3w osobistych",Personal:D,External:W,"Share status":"Status udost\u0119pnienia","Share description":"Opis udost\u0119pnienia","No recent files":"Brak ostatnich plik\xF3w",Groups:Z,Group:_,group:E,"New personal group":"Nowa grupa osobista","Edit personal group":"Edytuj grup\u0119 osobist\u0105","personal group":"grupa osobista","Personal group":"Grupa osobista","Personal groups":"Grupy osobiste",groups:L,"Parent group":"Grupa nadrz\u0119dna","Group updated":"Zaktualizowano grup\u0119","Group created":"Utworzono grup\u0119","Group not found":"Nie znaleziono grupy","Group error":"B\u0142\u0105d grupy","Set as group manager":"Ustaw jako mened\u017Cera grupy","As a manager, the user will be able to manage the group and its members.":"Jako mened\u017Cer u\u017Cytkownik b\u0119dzie m\xF3g\u0142 zarz\u0105dza\u0107 grup\u0105 i jej cz\u0142onkami.","As a manager, the user will be able to manage group members but not group properties.":"Jako mened\u017Cer u\u017Cytkownik b\u0119dzie m\xF3g\u0142 zarz\u0105dza\u0107 cz\u0142onkami grupy, ale nie jej w\u0142a\u015Bciwo\u015Bciami.",Visible:x,Private:R,Isolated:M,"Select the parent group":"Wybierz grup\u0119 nadrz\u0119dn\u0105","from the group":"z grupy","New group":"Nowa grupa","Edit group":"Edytuj grup\u0119","Leave group":"Opu\u015B\u0107 grup\u0119","Delete group":"Usu\u0144 grup\u0119","Remove from group":"Usu\u0144 z grupy","Group must have at least one manager":"Grupa musi mie\u0107 co najmniej jednego mened\u017Cera","The group was left":"Grupa zosta\u0142a opuszczona","The group was not left":"Nie uda\u0142o si\u0119 opu\u015Bci\u0107 grupy","will be left, you will no longer be a member of this group":"zostanie opuszczona, nie b\u0119dziesz ju\u017C cz\u0142onkiem tej grupy","All users can see this group.":"Wszyscy u\u017Cytkownicy mog\u0105 zobaczy\u0107 t\u0119 grup\u0119.","Users who are not members of this group cannot see it.":"U\u017Cytkownicy, kt\xF3rzy nie s\u0105 cz\u0142onkami tej grupy, nie widz\u0105 jej.","The group is not visible, its members cannot see it and cannot see each other.":"Grupa nie jest widoczna, jej cz\u0142onkowie nie widz\u0105 jej ani siebie nawzajem.",Add:F,"Add members":"Dodaj cz\u0142onk\xF3w","See members":"Zobacz cz\u0142onk\xF3w",Administrator:G,Administration:B,User:O,user:K,Users:Y,users:I,"New user":"Nowy u\u017Cytkownik",account:q,Account:V,"Account status":"Status konta",Email:J,"Email already used":"E-mail jest ju\u017C u\u017Cywany","First name":"Imi\u0119","Last name":"Nazwisko","Full name":"Imi\u0119 i nazwisko",Status:H,Role:Q,IP:X,"IP Addresses":"Adresy IP",Seen:$,Connection:ee,Connections:oe,"Confirm deletion":"Potwierd\u017A usuni\u0119cie","Confirm permanent deletion of data":"Potwierd\u017A trwa\u0142e usuni\u0119cie danych","Space and data will be deleted in":"Przestrze\u0144 i dane zostan\u0105 usuni\u0119te za","Space is disabled":"Przestrze\u0144 jest wy\u0142\u0105czona","Storage Space":"Przestrze\u0144 dyskowa","Storage Quota":"Limit przestrzeni","Storage Usage":"Wykorzystanie przestrzeni","Space status":"Status przestrzeni","Storage quota exceeded":"Przekroczono limit przestrzeni","Storage quota will be exceeded":"Limit przestrzeni zostanie przekroczony","No more space available":"Brak dost\u0119pnego miejsca",available_space_is_low:ae,online:ie,"Online users":"U\u017Cytkownicy online",Unlimited:ne,member:te,members:se,Member:re,Members:de,Manager:le,manager:ce,Managers:ze,"At least one manager is required":"Wymagany jest co najmniej jeden mened\u017Cer",Generate:ue,Import:pe,Configuration:we,Applications:ye,applications:ke,"Permissions inherited from groups":"Uprawnienia odziedziczone po grupach","Only the group will be deleted, the members will no longer be part of it.":"Usuni\u0119ta zostanie tylko grupa, cz\u0142onkowie nie b\u0119d\u0105 ju\u017C do niej nale\u017Ce\u0107.",Avatar:me,Update:he,"current password":"aktualne has\u0142o","new password":"nowe has\u0142o","Change me !":"Zmie\u0144 mnie!","Current password missing !":"Brak aktualnego has\u0142a!","New password missing !":"Brak nowego has\u0142a!","New password must have 8 characters minimum":"Nowe has\u0142o musi mie\u0107 co najmniej 8 znak\xF3w","Current password does not match":"Aktualne has\u0142o nie jest poprawne","Password has been updated":"Has\u0142o zosta\u0142o zaktualizowane","Unable to update password":"Nie mo\u017Cna zaktualizowa\u0107 has\u0142a","Bad password":"Nieprawid\u0142owe has\u0142o","too many login attempts":"zbyt wiele pr\xF3b logowania",Language:je,"Language updated":"Zaktualizowano j\u0119zyk","Unable to update language":"Nie mo\u017Cna zaktualizowa\u0107 j\u0119zyka","Notification preference updated":"Zaktualizowano preferencje powiadomie\u0144","Full-text search preference updated":"Zaktualizowano preferencje wyszukiwania pe\u0142notekstowego","Unable to update notification preference":"Nie mo\u017Cna zaktualizowa\u0107 preferencji powiadomie\u0144","Unable to update full-text search preference":"Nie mo\u017Cna zaktualizowa\u0107 preferencji wyszukiwania pe\u0142notekstowego","Unable to open document":"Nie mo\u017Cna otworzy\u0107 dokumentu","Unable to save document":"Nie mo\u017Cna zapisa\u0107 dokumentu",Home:ge,Recents:be,recents:fe,Trash:Se,"trash bins":"kosze",Shares:Ne,Share:Ue,shares:Te,shared:Pe,personal_space:ve,spaces_access:Ae,spaces_admin:Ce,shares_access:De,shares_admin:We,guests_admin:Ze,personal_groups_admin:_e,desktop_app_access:Ee,desktop_app_sync:Le,webdav_access:xe,"Create share":"Utw\xF3rz udost\u0119pnienie","Edit share":"Edytuj udost\u0119pnienie","Delete share":"Usu\u0144 udost\u0119pnienie","Child shares":"Udost\u0119pnienia podrz\u0119dne",webdav:Re,"Share is disabled":"Udost\u0119pnienie jest wy\u0142\u0105czone",Space:Me,Spaces:Fe,spaces:Ge,"Space name":"Nazwa przestrzeni","New space":"Nowa przestrze\u0144","Create a new space":"Utw\xF3rz now\u0105 przestrze\u0144","Create space":"Utw\xF3rz przestrze\u0144","Edit space":"Edytuj przestrze\u0144","Delete space":"Usu\u0144 przestrze\u0144","Create a new share":"Utw\xF3rz nowe udost\u0119pnienie","Type to search for space to select":"Wpisz, aby wyszuka\u0107 przestrze\u0144 do wyboru","Anchor to a space":"Zaka\u0144cz do przestrzeni","Anchor files to a space":"Zaka\u0144cz pliki do przestrzeni","You have been invited to join this space":"Otrzyma\u0142e\u015B zaproszenie do do\u0142\u0105czenia do tej przestrzeni","You have been invited to join this share":"Otrzyma\u0142e\u015B zaproszenie do do\u0142\u0105czenia do tego udost\u0119pnienia","Shared with others":"Udost\u0119pnione innym","With others":"Z innymi","Shared with me":"Udost\u0119pnione mnie","With me":"Ze mn\u0105","Shared via links":"Udost\u0119pnione poprzez linki","Via links":"Przez linki","Shared from":"Udost\u0119pnione przez","share with you this":"udost\u0119pnia Ci to","shared with you":"udost\u0119pni\u0142 Ci","no longer share with you":"ju\u017C Ci nie udost\u0119pnia","You now have access to the space":"Masz teraz dost\u0119p do przestrzeni","You no longer have access to the space":"Nie masz ju\u017C dost\u0119pu do przestrzeni","This space has been permanently deleted":"Ta przestrze\u0144 zosta\u0142a trwale usuni\u0119ta","You now have access to the share":"Masz teraz dost\u0119p do udost\u0119pnienia","You no longer have access to the share":"Nie masz ju\u017C dost\u0119pu do udost\u0119pnienia","You are no longer a member of the parent share, your child share has been deleted":"Nie jeste\u015B ju\u017C cz\u0142onkiem udost\u0119pnienia nadrz\u0119dnego, Twoje udost\u0119pnienie podrz\u0119dne zosta\u0142o usuni\u0119te",anchored:Be,unanchored:Oe,"Share not found":"Nie znaleziono udost\u0119pnienia","Go to":"Przejd\u017A",Location:Ke,"Name and location are required":"Nazwa i lokalizacja s\u0105 wymagane","Parent location already exists in files":"Lokalizacja nadrz\u0119dna ju\u017C istnieje w plikach","Check the location":"Sprawd\u017A lokalizacj\u0119","Location not found":"Nie znaleziono lokalizacji","Forbidden resource":"Niedozwolona lokalizacja","Resource already exists":"Element ju\u017C istnieje","The location does not exist":"Lokalizacja nie istnieje","The location is not readable":"Lokalizacja nie jest czytelna","The location is not writeable":"Lokalizacja nie jest zapisywalna","The location is a directory":"Lokalizacja jest katalogiem","The file is locked":"Plik jest zablokowany","This share is protected by a password":"To udost\u0119pnienie jest chronione has\u0142em","You do not have share permission":"Nie masz uprawnie\u0144 do udost\u0119pniania","You can not share a space":"Nie mo\u017Cesz udost\u0119pni\u0107 przestrzeni","You can not remove an anchored file":"Nie mo\u017Cesz usun\u0105\u0107 zakotwiczonego pliku","You are not allowed to write here":"Nie masz uprawnie\u0144 do zapisu tutaj","You are not allowed to do this action":"Nie masz uprawnie\u0144 do wykonania tej akcji","You can not move an anchored file":"Nie mo\u017Cesz przenie\u015B\u0107 zakotwiczonego pliku","You can not move a locked file":"Nie mo\u017Cesz przenie\u015B\u0107 zablokowanego pliku",Anchored:Ye,"Anchored by":"Zakotwiczone przez","Manage my anchored files":"Zarz\u0105dzaj moimi zakotwiczonymi plikami","You have no files anchored on this space":"Nie masz zakotwiczonych plik\xF3w w tej przestrzeni","An anchored file already has this name":"Zakotwiczony plik o tej nazwie ju\u017C istnieje",Settings:Ie,Options:qe,Name:Ve,Download:Je,"Download done":"Pobieranie zako\u0144czone","Download failed":"B\u0142\u0105d pobierania","Upload done":"Przesy\u0142anie zako\u0144czone","Upload failed":"B\u0142\u0105d przesy\u0142ania","Copy/Move":"Kopiuj/Przenie\u015B",Move:He,"Move done":"Przenoszenie zako\u0144czone","Move failed":"B\u0142\u0105d przenoszenia","Deletion done":"Usuwanie zako\u0144czone","Deletion failed":"B\u0142\u0105d usuwania","Creation failed":"B\u0142\u0105d tworzenia",Copy:Qe,"Copy done":"Kopiowanie zako\u0144czone","Copy failed":"B\u0142\u0105d kopiowania","Copy-Paste":"Kopiuj-Wklej","Cut-Paste":"Wytnij-Wklej",Rename:Xe,Edit:$e,"Share inside":"Udost\u0119pnij wewn\u0105trz","Share outside":"Udost\u0119pnij na zewn\u0105trz",Remove:eo,Clipboard:oo,"Send to Clipboard":"Wy\u015Blij do schowka","will be removed":"zostanie usuni\u0119ty",Refresh:ao,Empty:io,List:no,Display:to,"Sort by":"Sortuj wed\u0142ug",trash_one_file:so,delete_one_file:ro,trash_multiple_files:lo,delete_multiple_files:co,"Moving to trash":"Przenoszenie do kosza","Permanent deletion":"Trwa\u0142e usuni\u0119cie","Would you like to empty the trash ?":"Czy chcesz opr\xF3\u017Cni\u0107 kosz?","All items will be permanently deleted":"Wszystkie elementy zostan\u0105 trwale usuni\u0119te","Actions will be performed in the current folder":"Akcje zostan\u0105 wykonane w bie\u017C\u0105cym folderze","The client will no longer have permission to access your account and will no longer be able to synchronize.":"Klient nie b\u0119dzie mia\u0142 uprawnie\u0144 do dost\u0119pu do twojego konta i nie b\u0119dzie m\xF3g\u0142 synchronizowa\u0107.","The access expires":"Dost\u0119p wygasa","The access has expired":"Dost\u0119p wygas\u0142","Never expires":"Nigdy nie wygasa",synchronization:zo,Synchronization:uo,Synchronizations:po,Synchronize:wo,Sync:yo,"Stop synchronization":"Zatrzymaj synchronizacj\u0119","Synchronize all":"Synchronizuj wszystko","Stop synchronizations":"Zatrzymaj synchronizacje",Synced:ko,"Sync already exists":"Synchronizacja ju\u017C istnieje","Sync was reset":"Zresetowano synchronizacj\u0119","Sync deleted":"Usuni\u0119to synchronizacj\u0119","This client":"Ten klient","You are no longer synchronizing":"Nie synchronizujesz ju\u017C",Compress:mo,Decompress:ho,"Compress and Download":"Skompresuj i pobierz","Compress and Save":"Skompresuj i zapisz","Enable compression":"W\u0142\u0105cz kompresj\u0119","Compression done":"Kompresja zako\u0144czona","Compression failed":"B\u0142\u0105d kompresji","Decompression done":"Dekompresja zako\u0144czona","Decompression failed":"B\u0142\u0105d dekompresji","(this may take longer)":"(mo\u017Ce to potrwa\u0107 d\u0142u\u017Cej)","Save in the current directory":"Zapisz w bie\u017C\u0105cym katalogu","This name is already used":"Ta nazwa jest ju\u017C u\u017Cywana",Info:jo,Size:go,Modified:bo,modified:fo,Tasks:So,"Download from URL":"Pobierz z URL","Upload files":"Prze\u015Blij pliki","Upload folders":"Prze\u015Blij foldery","Folder name":"Nazwa folderu","New folder":"Nowy folder","Document name":"Nazwa dokumentu","New document":"Nowy dokument","File name":"Nazwa pliku","File permissions":"Uprawnienia do pliku",Text:No,"Rich Text Format":"Rich Text Format","Forbidden characters":"Niedozwolone znaki",Elements:Uo,"Malformed URL":"Nieprawid\u0142owy URL",New:To,Folder:Po,folder:vo,file:Ao,files:Co,directory:Do,directories:Wo,Total:Zo,no_selection:_o,one_selection:Eo,nb_selections:Lo,"Archive name":"Nazwa archiwum","Drag and drop your files here":"Przeci\u0105gnij i upu\u015B\u0107 pliki tutaj","The destination already exists":"Miejsce docelowe ju\u017C istnieje","This item is already selected":"Ten element jest ju\u017C zaznaczony","Parent item is already selected":"Element nadrz\u0119dny jest ju\u017C zaznaczony","This file contains binary data that can not be read":"Ten plik zawiera dane binarne, kt\xF3rych nie mo\u017Cna odczyta\u0107","Navigation Tree":"Drzewo nawigacji",item:xo,items:Ro,create:Mo,write:Fo,move:Go,delete:Bo,modify:Oo,"Delete user":"Usu\u0144 u\u017Cytkownika","Delete all user files":"Usu\u0144 wszystkie pliki u\u017Cytkownika",share:Ko,"Share name":"Nazwa udost\u0119pnienia","New share":"Nowe udost\u0119pnienie","New share link":"Nowy link udost\u0119pnienia","New link":"Nowy link","Edit children shares":"Edytuj udost\u0119pnienia podrz\u0119dne",Link:Yo,link:Io,Links:qo,links:Vo,"Link copied":"Skopiowano link","Link created":"Utworzono link","Link deleted":"Usuni\u0119to link","Link error":"B\u0142\u0105d linku","Copy link":"Kopiuj link","Edit link":"Edytuj link","Guest Link":"Link go\u015Bcia","Guest name":"Nazwa go\u015Bcia","Guest email":"E-mail go\u015Bcia","Guest language":"J\u0119zyk go\u015Bcia",Guest:Jo,Guests:Ho,guest:Qo,guests:Xo,"New guest":"Nowy go\u015B\u0107","Edit guest":"Edytuj go\u015Bcia","Guest created":"Utworzono go\u015Bcia","Guest deleted":"Usuni\u0119to go\u015Bcia","Guest updated":"Zaktualizowano go\u015Bcia","Guest error":"B\u0142\u0105d go\u015Bcia","Add an external location":"Dodaj zewn\u0119trzn\u0105 lokalizacj\u0119","External location":"Zewn\u0119trzna lokalizacja","Select a file":"Wybierz plik","The link is expired":"Link wygas\u0142","The link is disabled":"Link jest wy\u0142\u0105czony","The link was not found":"Nie znaleziono linku",Expired:$o,expired:ea,none:oa,"The maximum number of access allowed to the link is exceeded":"Przekroczono maksymaln\u0105 liczb\u0119 dost\u0119p\xF3w do linku","Set a password":"Ustaw has\u0142o","Enter your password":"Wpisz has\u0142o",Permissions:aa,"No permissions":"Brak uprawnie\u0144",Owner:ia,Me:na,Shared:ta,Created:sa,"Created & Modified":"Utworzono i zmodyfikowano","Creation date":"Data utworzenia","Modification date":"Data modyfikacji","Deactivation date":"Data dezaktywacji",Date:ra,Path:da,active:la,Active:ca,suspended:za,"Unable to rename user space":"Nie mo\u017Cna zmieni\u0107 nazwy przestrzeni u\u017Cytkownika","Unable to delete user space":"Nie mo\u017Cna usun\u0105\u0107 przestrzeni u\u017Cytkownika","Unable to update user":"Nie mo\u017Cna zaktualizowa\u0107 u\u017Cytkownika","Unable to update user groups":"Nie mo\u017Cna zaktualizowa\u0107 grup u\u017Cytkownika","User created":"Utworzono u\u017Cytkownika","User updated":"Zaktualizowano u\u017Cytkownika","User not found":"Nie znaleziono u\u017Cytkownika","Edit user":"Edytuj u\u017Cytkownika","Impersonate identity":"Przyjmij to\u017Csamo\u015B\u0107 u\u017Cytkownika",Type:ua,Description:pa,Visibility:wa,"Unknown error !":"Nieznany b\u0142\u0105d!",Unknown:ya,Expiration:ka,"Limit access":"Ogranicz dost\u0119p","Current access count":"Bie\u017C\u0105ca liczba dost\u0119p\xF3w",Access:ma,Accessed:ha,"Last access":"Ostatni dost\u0119p","Last accesses":"Ostatnie dost\u0119py",Comment:ja,Comments:ga,comments:ba,commented:fa,"No recent comments":"Brak ostatnich komentarzy","Write a comment ...":"Napisz komentarz...",yes:Sa,no:Na,Client:Ua,Clients:Ta,available:Pa,busy:va,absent:Aa,offline:Ca,View:Da,"Session has expired":"Sesja wygas\u0142a","Please sign in":"Zaloguj si\u0119 ponownie",logout:Wa,days:Za,day:_a,Delete:Ea,Scheduler:La,async:xa,seq:Ra,Transfers:Ma,Simulate:Fa,Reset:Ga,Browse:Ba,Action:Oa,Added:Ka,Removed:Ya,Copied:Ia,Moved:qa,Filtered:Va,Error:Ja,Server:Ha,Direction:Qa,Conflict:Xa,"Show filtered files":"Poka\u017C przefiltrowane pliki",recent:$a,Source:ei,Destination:oi,Mode:ai,Sequentially:ii,Asynchronously:ni,fast:ti,secure:si,enabled:ri,Enable:di,disabled:li,Disable:ci,scheduler_unit_hour:zi,scheduler_unit_minute:ui,scheduler_unit_day:pi,"You must have permission to modify the server folder to choose a different sync mode":"Aby wybra\u0107 inny tryb synchronizacji, musisz mie\u0107 uprawnienia do modyfikacji folderu serwera","upload only":"tylko wysy\u0142anie","download only":"tylko pobieranie",both:wi,never:yi,"Clear events":"Wyczy\u015B\u0107 zdarzenia","Events from":"Zdarzenia z","All syncs":"Wszystkie synchronizacje","All events":"Wszystkie zdarzenia","will be cleared":"zostan\u0105 wyczyszczone","No differences":"Brak r\xF3\u017Cnic","Select a folder":"Wybierz folder","The files containing":"Pliki zawieraj\u0105ce","The files starting":"Pliki zaczynaj\u0105ce si\u0119 na","The files ending":"Pliki ko\u0144cz\u0105ce si\u0119 na","Expert (Regexp)":"Zaawansowane (Regexp)","click on the browse button":"kliknij przycisk przegl\u0105dania","with a name or pattern":"po nazwie lub wzorcu","with the extension ('.mp3', '.avi', '.mov' ...)":"po rozszerzeniu ('.mp3', '.avi', '.mov' ...)",Wizard:ki,Next:mi,Previous:hi,Done:ji,"This wizard will help you synchronize a directory on your computer with a Sync-in directory.":"Ten kreator pomo\u017Ce zsynchronizowa\u0107 katalog na komputerze z katalogiem Sync-in.","To begin, select a folder on your computer.":"Aby rozpocz\u0105\u0107, wybierz folder na swoim komputerze.",'You can drag the folder into the area below or click on the "Select" button.':"Mo\u017Cesz przeci\u0105gn\u0105\u0107 folder w poni\u017Cszy obszar lub klikn\u0105\u0107 przycisk \u201EWybierz\u201D.","Drop folder here":"Upu\u015B\u0107 folder tutaj","This directory is already synced":"Ten katalog jest ju\u017C zsynchronizowany","The parent directory is already synced":"Katalog nadrz\u0119dny jest ju\u017C zsynchronizowany","This directory is not accessible":"Ten katalog jest niedost\u0119pny","This directory is read-only, you will not be able to modify it":"Ten katalog jest tylko do odczytu, nie mo\u017Cesz go modyfikowa\u0107","Please select the server directory to sync, if it doesn't exist you can create it.":"Wybierz katalog na serwerze do synchronizacji, a je\u015Bli nie istnieje, mo\u017Cesz go utworzy\u0107.","Double click to browse directories":"Kliknij dwukrotnie, aby przegl\u0105da\u0107 katalogi","The data will be synchronized from":"Dane b\u0119d\u0105 synchronizowane z","the client folder":"folderu klienta","the server folder":"folderu serwera","(One-Way)":"(jednokierunkowe)","(Two-Way)":"(dwukierunkowe)",to:gi,"and from":"i z","All files created or modified in":"Wszystkie pliki utworzone lub zmodyfikowane w","will be ignored and deleted":"zostan\u0105 zignorowane i usuni\u0119te","In case of conflict,":"W przypadku konfliktu","the most recent files will be kept":"zostan\u0105 zachowane najnowsze pliki","the client\u2019s files take precedence":"pliki klienta maj\u0105 pierwsze\u0144stwo","the server\u2019s files take precedence":"pliki serwera maj\u0105 pierwsze\u0144stwo","the files in":"pliki w","will be preferred":"b\u0119d\u0105 preferowane","Loading...":"\u0141adowanie...","No results":"Brak wynik\xF3w","Download ARM64 version":"Pobierz wersj\u0119 ARM64","Download Apple Silicon ARM64 version":"Pobierz wersj\u0119 Apple Silicon ARM64","Download tar.gz version":"Pobierz wersj\u0119 tar.gz",Repository:bi,public:fi,local:Si,remote:Ni,"System requirements":"Wymagania systemowe","Feature not enabled":"Funkcja nie jest w\u0142\u0105czona","Check the settings":"Sprawd\u017A ustawienia",Website:Ui,Documentation:Ti,Versions:Pi,Security:vi,"Recovery code":"Kod odzyskiwania","Use a recovery code":"U\u017Cyj kodu odzyskiwania","Authentication code":"Kod uwierzytelniaj\u0105cy","Secret copied":"Skopiowano sekret","Recovery codes copied":"Skopiowano kody odzyskiwania","Invalid code":"Nieprawid\u0142owy kod","Incorrect code or password":"Nieprawid\u0142owy kod lub has\u0142o","Application Passwords":"Has\u0142a aplikacji","Generate a new app password":"Wygeneruj nowe has\u0142o aplikacji","Generated password":"Wygenerowane has\u0142o","This password will only be shown once after it is generated":"To has\u0142o zostanie wy\u015Bwietlone tylko raz po wygenerowaniu","Password name":"Nazwa has\u0142a",Manage:Ai,"Manage app passwords":"Zarz\u0105dzaj has\u0142ami aplikacji","Password Authentication":"Uwierzytelnianie has\u0142em","Two-Factor Authentication":"Uwierzytelnianie dwusk\u0142adnikowe","Two-Factor Authentication is enabled":"Uwierzytelnianie dwusk\u0142adnikowe jest w\u0142\u0105czone","Two-Factor Authentication is disabled":"Uwierzytelnianie dwusk\u0142adnikowe jest wy\u0142\u0105czone","Scan this QR code using your authenticator app.":"Zeskanuj ten kod QR za pomoc\u0105 aplikacji uwierzytelniaj\u0105cej.","(Such as FreeOTP, Proton Authenticator etc.)":"(np. FreeOTP, Proton Authenticator itp.)","Or enter this secret manually":"Lub wprowad\u017A ten sekret r\u0119cznie","Valid with your TOTP code":"Potwierd\u017A kodem TOTP","The secret has expired":"Sekret wygas\u0142","Keep these codes in a safe place. They will allow you to access your account if you lose access to your two-factor authentication.":"Przechowuj te kody w bezpiecznym miejscu. Umo\u017Cliwi\u0105 dost\u0119p do konta, je\u015Bli utracisz dost\u0119p do uwierzytelniania dwusk\u0142adnikowego.","These recovery codes are for one-time use only and will only be displayed here once.":"Te kody odzyskiwania s\u0105 jednorazowe i zostan\u0105 tu wy\u015Bwietlone tylko raz.","Overwrite Existing File(s)":"Nadpisa\u0107 istniej\u0105cy(e) plik(i)","Replace Existing File":"Zast\u0105pi\u0107 istniej\u0105cy plik","Do you want to replace the existing file(s)?":"Czy chcesz zast\u0105pi\u0107 istniej\u0105cy(e) plik(i)?",RenameFileToExisting:Ci,Save:Di,"Line Wrap":"Zawijanie wierszy","Read-only":"Tylko do odczytu","Read-write":"Odczyt i zapis","Save And Exit":"Zapisz i wyjd\u017A","Close Without Saving":"Zamknij bez zapisywania",Undo:Wi,Redo:Zi,me:_i,"The file is locked by":"Plik jest zablokowany przez",Unlock:Ei,Lock:Li,Exclusive:xi,"Send an unlock request":"Wy\u015Blij pro\u015Bb\u0119 o odblokowanie","sends you a request to unlock the file":"wysy\u0142a do Ciebie pro\u015Bb\u0119 o odblokowanie pliku","As the file owner, you can unlock the file or request the current lock owner to release it.":"Jako w\u0142a\u015Bciciel pliku mo\u017Cesz odblokowa\u0107 plik lub poprosi\u0107 obecnego w\u0142a\u015Bciciela blokady o jej zwolnienie.","The file is edited by":"Plik jest edytowany przez","A new update is available":"Dost\u0119pna jest nowa aktualizacja",Fullscreen:Ri,Dimensions:Mi,"Start Slideshow":"Uruchom pokaz slajd\xF3w"};export{ma as Access,ha as Accessed,V as Account,Oa as Action,ca as Active,F as Add,Ka as Added,B as Administration,G as Administrator,Ye as Anchored,N as Application,ye as Applications,ni as Asynchronously,a as Authentication,me as Avatar,Ba as Browse,s as Cancel,Ua as Client,Ta as Clients,oo as Clipboard,r as Close,ja as Comment,ga as Comments,mo as Compress,we as Configuration,t as Confirm,Xa as Conflict,ee as Connection,oe as Connections,Ia as Copied,Qe as Copy,sa as Created,ra as Date,ho as Decompress,Ea as Delete,pa as Description,oi as Destination,Mi as Dimensions,Qa as Direction,ci as Disable,to as Display,Ti as Documentation,ji as Done,Je as Download,$e as Edit,Uo as Elements,J as Email,io as Empty,di as Enable,Ja as Error,v as Event,xi as Exclusive,ka as Expiration,$o as Expired,W as External,A as File,C as Files,d as Filter,Va as Filtered,l as Filters,Po as Folder,Ri as Fullscreen,ue as Generate,_ as Group,Z as Groups,Jo as Guest,Ho as Guests,ge as Home,X as IP,pe as Import,jo as Info,M as Isolated,je as Language,Yo as Link,qo as Links,no as List,Ke as Location,Li as Lock,i as Login,Ai as Manage,le as Manager,ze as Managers,na as Me,re as Member,de as Members,ai as Mode,bo as Modified,He as Move,qa as Moved,Ve as Name,To as New,mi as Next,T as Notification,P as Notifications,qe as Options,ia as Owner,n as Password,da as Path,aa as Permissions,D as Personal,hi as Previous,R as Private,be as Recents,Zi as Redo,ao as Refresh,eo as Remove,Ya as Removed,Xe as Rename,Ci as RenameFileToExisting,bi as Repository,Ga as Reset,Q as Role,Di as Save,La as Scheduler,z as Search,vi as Security,u as See,$ as Seen,ii as Sequentially,Ha as Server,Ie as Settings,Ue as Share,ta as Shared,Ne as Shares,Fa as Simulate,go as Size,ei as Source,Me as Space,Fe as Spaces,H as Status,yo as Sync,ko as Synced,uo as Synchronization,po as Synchronizations,wo as Synchronize,So as Tasks,No as Text,Zo as Total,Ma as Transfers,Se as Trash,ua as Type,Wi as Undo,ya as Unknown,ne as Unlimited,Ei as Unlock,he as Update,O as User,Y as Users,Pi as Versions,Da as View,wa as Visibility,x as Visible,Ui as Website,ki as Wizard,Aa as absent,q as account,la as active,Be as anchored,U as application,ke as applications,xa as async,Pa as available,ae as available_space_is_low,wi as both,va as busy,fa as commented,ba as comments,Mo as create,_a as day,Za as days,Fi as default,Bo as delete,co as delete_multiple_files,ro as delete_one_file,Ee as desktop_app_access,Le as desktop_app_sync,Wo as directories,Do as directory,li as disabled,ri as enabled,ea as expired,ti as fast,Ao as file,Co as files,vo as folder,E as group,L as groups,Qo as guest,Xo as guests,Ze as guests_admin,xo as item,Ro as items,Io as link,Vo as links,Si as local,Wa as logout,ce as manager,_i as me,te as member,se as members,fo as modified,Oo as modify,Go as move,j as nb_actions,m as nb_active_tasks,h as nb_elements,b as nb_messages,S as nb_notifications,Lo as nb_selections,y as nb_tasks,yi as never,Na as no,_o as no_selection,p as no_task,oa as none,Ca as offline,k as one_active_task,g as one_message,f as one_notification,Eo as one_selection,w as one_task,ie as online,_e as personal_groups_admin,ve as personal_space,fi as public,$a as recent,fe as recents,Ni as remote,pi as scheduler_unit_day,zi as scheduler_unit_hour,ui as scheduler_unit_minute,c as search,si as secure,Ra as seq,Ko as share,Pe as shared,Te as shares,De as shares_access,We as shares_admin,Ge as spaces,Ae as spaces_access,Ce as spaces_admin,za as suspended,zo as synchronization,gi as to,lo as trash_multiple_files,so as trash_one_file,Oe as unanchored,K as user,I as users,Re as webdav,xe as webdav_access,Fo as write,Sa as yes};
|
package/static/chunk-4ZKAVMB4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$a as at,B as Kt,Ba as di,Cb as z,I as ni,Ma as mi,Mb as wi,Na as _i,Nb as ct,Pb as bi,Qb as Ai,Ua as gi,W as ai,X as Qt,_ as ot,aa as ci,ab as yi,ba as hi,ca as xt,da as ui,ea as li,fa as jt,ga as q,ha as pi,ia as fi,ja as X,qb as Ei,tb as M,ub as Si,vb as Pt}from"./chunk-FCR5AEHR.js";import{Aa as Ce,Bb as st,Bd as je,Cd as Je,Dd as Rt,Eb as B,Ed as Ot,Ef as ii,G as we,Gb as D,Jd as Xe,Kb as Ne,Kd as kt,L as be,Lb as Pe,Mb as Fe,Oa as m,Pb as Yt,Qa as Re,Qb as Le,Rb as At,Tb as A,Vb as Ie,Vc as We,W as Ae,Wf as ri,Xb as Ue,Yb as Be,Yc as Tt,Zb as De,ab as bt,bb as Oe,c as Se,cb as ke,ea as wt,fa as Te,fd as vt,ha as ve,hd as nt,he as ze,ie as Ze,ja as p,jb as xe,jd as Ct,kc as Me,kd as $e,lb as k,mb as x,mc as Ve,mg as si,oa as W,od as qe,og as Nt,pa as $,pd as Ge,rb as C,sb as f,sd as He,tb as _,td as Ye,ub as J,v as S,wf as ti,yd as Ke,yf as ei,zd as Qe}from"./chunk-BJARRIS6.js";import{n as oi}from"./chunk-DM4NXKEP.js";import{a as O,b as _e,d as ge,e as ye,i as Ee}from"./chunk-KAVP6UXH.js";var V=(function(r){return r.USER="user",r.GUEST="guest",r.LINK="link",r.GROUP="group",r.PGROUP="personal group",r})(V||{});function Ti(r,t=[]){let e=O({},Object.fromEntries(Object.entries(Ai).filter(([i,s])=>t.indexOf(i)===-1)));if(!r)return e;for(let i of r.split(":"))i in e&&(e[i]=!0);return e}function jr(r,t,e=[]){let i={};if(!r)return i;for(let s of r.split(":"))e.indexOf(s)===-1&&(i[s]=t.indexOf(s)>-1);return i}function Jr(r,t=[]){let e={};if(!r)return e;for(let i of r.split(":"))t.indexOf(i)===-1&&(e[i]=bi[i]);return e}function Xr(r){return Object.entries(r).filter(([t,e])=>e).map(([t,e])=>t).join(":")}var T=class{constructor(t,e=[]){this.newly=0,this.linkSettings=null,Object.assign(this,t),this.mid=`${t.type[0]}${t.id}`,this.hPerms=Ti(t.permissions,e),t.login&&(this.avatarUrl=M(t.login)),this.isLink=!!this.linkId,this.isGuest=this.type===V.GUEST,this.isUser=this.isGuest||this.type===V.USER&&!this.isLink,this.isGroup=this.type===V.GROUP||this.type===V.PGROUP,this.isPersonalGroup=this.type===V.PGROUP,this.setGroupRole(),this.modifiedAt?this.newly=at(this.modifiedAt):this.createdAt&&(this.newly=at(this.createdAt))}setGroupRole(t){typeof t<"u"&&(this.groupRole=t),this.isGroupManager=this.groupRole===Kt.MANAGER}};function os(r,t,e){return new T({id:r.id,login:r.login,name:r.fullName,description:r.email,type:V.USER,spaceRole:t||di.IS_MEMBER,groupRole:e||Kt.MEMBER,permissions:""})}var vi={NAME_SPACE:"/",EVENTS:{NOTIFICATION:"notification"}};var ht={NAME_SPACE:"/",EVENTS:{ONLINE_STATUS:"onlineStatus",ONLINE_USERS:"onlineUsers",ONLINE_USER:"onlineUser"}};var l=(function(r){return r.BASE="/api/auth",r.LOGIN="login",r.LOGOUT="logout",r.REFRESH="refresh",r.TOKEN="token",r.TOKEN_REFRESH="token/refresh",r.WS="socket.io",r.TWO_FA_BASE="2fa",r.TWO_FA_ENABLE="enable",r.TWO_FA_DISABLE="disable",r.TWO_FA_LOGIN_VERIFY="login/verify",r.TWO_FA_ADMIN_RESET_USER="reset/user",r})(l||{}),us=`${l.BASE}/${l.LOGIN}`,ls=`${l.BASE}/${l.LOGOUT}`,Ci=`${l.BASE}/${l.REFRESH}`,ps=`${l.BASE}/${l.TOKEN}`,fs=`${l.BASE}/${l.TOKEN_REFRESH}`,Ri=`/${l.WS}`,Jt=`${l.BASE}/${l.TWO_FA_BASE}/${l.TWO_FA_ENABLE}`,Oi=`${l.BASE}/${l.TWO_FA_BASE}/${l.TWO_FA_DISABLE}`,ki=`${l.BASE}/${l.TWO_FA_BASE}/${l.TWO_FA_LOGIN_VERIFY}`,xi=`${l.BASE}/${l.TWO_FA_BASE}/${l.TWO_FA_ADMIN_RESET_USER}`;var pe={};ye(pe,{Fetch:()=>mt,Manager:()=>K,NodeWebSocket:()=>I,NodeXHR:()=>L,Socket:()=>H,WebSocket:()=>I,WebTransport:()=>G,XHR:()=>L,connect:()=>Q,default:()=>Q,io:()=>Q,protocol:()=>ue});var v=Object.create(null);v.open="0";v.close="1";v.ping="2";v.pong="3";v.message="4";v.upgrade="5";v.noop="6";var ut=Object.create(null);Object.keys(v).forEach(r=>{ut[v[r]]=r});var lt={type:"error",data:"parser error"};var Fi=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Li=typeof ArrayBuffer=="function",Ii=r=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(r):r&&r.buffer instanceof ArrayBuffer,pt=({type:r,data:t},e,i)=>Fi&&t instanceof Blob?e?i(t):Ni(t,i):Li&&(t instanceof ArrayBuffer||Ii(t))?e?i(t):Ni(new Blob([t]),i):i(v[r]+(t||"")),Ni=(r,t)=>{let e=new FileReader;return e.onload=function(){let i=e.result.split(",")[1];t("b"+(i||""))},e.readAsDataURL(r)};function Pi(r){return r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}var Xt;function Ui(r,t){if(Fi&&r.data instanceof Blob)return r.data.arrayBuffer().then(Pi).then(t);if(Li&&(r.data instanceof ArrayBuffer||Ii(r.data)))return t(Pi(r.data));pt(r,!1,e=>{Xt||(Xt=new TextEncoder),t(Xt.encode(e))})}var Bi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ft=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let r=0;r<Bi.length;r++)ft[Bi.charCodeAt(r)]=r;var Di=r=>{let t=r.length*.75,e=r.length,i,s=0,n,o,a,c;r[r.length-1]==="="&&(t--,r[r.length-2]==="="&&t--);let R=new ArrayBuffer(t),b=new Uint8Array(R);for(i=0;i<e;i+=4)n=ft[r.charCodeAt(i)],o=ft[r.charCodeAt(i+1)],a=ft[r.charCodeAt(i+2)],c=ft[r.charCodeAt(i+3)],b[s++]=n<<2|o>>4,b[s++]=(o&15)<<4|a>>2,b[s++]=(a&3)<<6|c&63;return R};var dr=typeof ArrayBuffer=="function",dt=(r,t)=>{if(typeof r!="string")return{type:"message",data:Mi(r,t)};let e=r.charAt(0);return e==="b"?{type:"message",data:mr(r.substring(1),t)}:ut[e]?r.length>1?{type:ut[e],data:r.substring(1)}:{type:ut[e]}:lt},mr=(r,t)=>{if(dr){let e=Di(r);return Mi(e,t)}else return{base64:!0,data:r}},Mi=(r,t)=>{switch(t){case"blob":return r instanceof Blob?r:new Blob([r]);case"arraybuffer":default:return r instanceof ArrayBuffer?r:r.buffer}};var Vi="",Wi=(r,t)=>{let e=r.length,i=new Array(e),s=0;r.forEach((n,o)=>{pt(n,!1,a=>{i[o]=a,++s===e&&t(i.join(Vi))})})},$i=(r,t)=>{let e=r.split(Vi),i=[];for(let s=0;s<e.length;s++){let n=dt(e[s],t);if(i.push(n),n.type==="error")break}return i};function qi(){return new TransformStream({transform(r,t){Ui(r,e=>{let i=e.length,s;if(i<126)s=new Uint8Array(1),new DataView(s.buffer).setUint8(0,i);else if(i<65536){s=new Uint8Array(3);let n=new DataView(s.buffer);n.setUint8(0,126),n.setUint16(1,i)}else{s=new Uint8Array(9);let n=new DataView(s.buffer);n.setUint8(0,127),n.setBigUint64(1,BigInt(i))}r.data&&typeof r.data!="string"&&(s[0]|=128),t.enqueue(s),t.enqueue(e)})}})}var zt;function Lt(r){return r.reduce((t,e)=>t+e.length,0)}function It(r,t){if(r[0].length===t)return r.shift();let e=new Uint8Array(t),i=0;for(let s=0;s<t;s++)e[s]=r[0][i++],i===r[0].length&&(r.shift(),i=0);return r.length&&i<r[0].length&&(r[0]=r[0].slice(i)),e}function Gi(r,t){zt||(zt=new TextDecoder);let e=[],i=0,s=-1,n=!1;return new TransformStream({transform(o,a){for(e.push(o);;){if(i===0){if(Lt(e)<1)break;let c=It(e,1);n=(c[0]&128)===128,s=c[0]&127,s<126?i=3:s===126?i=1:i=2}else if(i===1){if(Lt(e)<2)break;let c=It(e,2);s=new DataView(c.buffer,c.byteOffset,c.length).getUint16(0),i=3}else if(i===2){if(Lt(e)<8)break;let c=It(e,8),R=new DataView(c.buffer,c.byteOffset,c.length),b=R.getUint32(0);if(b>Math.pow(2,21)-1){a.enqueue(lt);break}s=b*Math.pow(2,32)+R.getUint32(4),i=3}else{if(Lt(e)<s)break;let c=It(e,s);a.enqueue(dt(n?c:zt.decode(c),t)),i=0}if(s===0||s>r){a.enqueue(lt);break}}}})}var Zt=4;function u(r){if(r)return _r(r)}function _r(r){for(var t in u.prototype)r[t]=u.prototype[t];return r}u.prototype.on=u.prototype.addEventListener=function(r,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+r]=this._callbacks["$"+r]||[]).push(t),this};u.prototype.once=function(r,t){function e(){this.off(r,e),t.apply(this,arguments)}return e.fn=t,this.on(r,e),this};u.prototype.off=u.prototype.removeListener=u.prototype.removeAllListeners=u.prototype.removeEventListener=function(r,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var e=this._callbacks["$"+r];if(!e)return this;if(arguments.length==1)return delete this._callbacks["$"+r],this;for(var i,s=0;s<e.length;s++)if(i=e[s],i===t||i.fn===t){e.splice(s,1);break}return e.length===0&&delete this._callbacks["$"+r],this};u.prototype.emit=function(r){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),e=this._callbacks["$"+r],i=1;i<arguments.length;i++)t[i-1]=arguments[i];if(e){e=e.slice(0);for(var i=0,s=e.length;i<s;++i)e[i].apply(this,t)}return this};u.prototype.emitReserved=u.prototype.emit;u.prototype.listeners=function(r){return this._callbacks=this._callbacks||{},this._callbacks["$"+r]||[]};u.prototype.hasListeners=function(r){return!!this.listeners(r).length};var N=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,e)=>e(t,0),g=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),Hi="arraybuffer";function Ut(r,...t){return t.reduce((e,i)=>(r.hasOwnProperty(i)&&(e[i]=r[i]),e),{})}var gr=g.setTimeout,yr=g.clearTimeout;function P(r,t){t.useNativeTimers?(r.setTimeoutFn=gr.bind(g),r.clearTimeoutFn=yr.bind(g)):(r.setTimeoutFn=g.setTimeout.bind(g),r.clearTimeoutFn=g.clearTimeout.bind(g))}var Er=1.33;function Yi(r){return typeof r=="string"?Sr(r):Math.ceil((r.byteLength||r.size)*Er)}function Sr(r){let t=0,e=0;for(let i=0,s=r.length;i<s;i++)t=r.charCodeAt(i),t<128?e+=1:t<2048?e+=2:t<55296||t>=57344?e+=3:(i++,e+=4);return e}function Bt(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Ki(r){let t="";for(let e in r)r.hasOwnProperty(e)&&(t.length&&(t+="&"),t+=encodeURIComponent(e)+"="+encodeURIComponent(r[e]));return t}function Qi(r){let t={},e=r.split("&");for(let i=0,s=e.length;i<s;i++){let n=e[i].split("=");t[decodeURIComponent(n[0])]=decodeURIComponent(n[1])}return t}var Dt=class extends Error{constructor(t,e,i){super(t),this.description=e,this.context=i,this.type="TransportError"}},F=class extends u{constructor(t){super(),this.writable=!1,P(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,e,i){return super.emitReserved("error",new Dt(t,e,i)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){let e=dt(t,this.socket.binaryType);this.onPacket(e)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,e={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(e)}_hostname(){let t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){let e=Ki(t);return e.length?"?"+e:""}};var Z=class extends F{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";let e=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let i=0;this._polling&&(i++,this.once("pollComplete",function(){--i||e()})),this.writable||(i++,this.once("drain",function(){--i||e()}))}else e()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){let e=i=>{if(this.readyState==="opening"&&i.type==="open"&&this.onOpen(),i.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(i)};$i(t,this.socket.binaryType).forEach(e),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){let t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,Wi(t,e=>{this.doWrite(e,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){let t=this.opts.secure?"https":"http",e=this.query||{};return this.opts.timestampRequests!==!1&&(e[this.opts.timestampParam]=Bt()),!this.supportsBinary&&!e.sid&&(e.b64=1),this.createUri(t,e)}};var ji=!1;try{ji=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}var Ji=ji;function wr(){}var te=class extends Z{constructor(t){if(super(t),typeof location<"u"){let e=location.protocol==="https:",i=location.port;i||(i=e?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||i!==t.port}}doWrite(t,e){let i=this.request({method:"POST",data:t});i.on("success",e),i.on("error",(s,n)=>{this.onError("xhr post error",s,n)})}doPoll(){let t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(e,i)=>{this.onError("xhr poll error",e,i)}),this.pollXhr=t}},Mt=(()=>{class r extends u{constructor(e,i,s){super(),this.createRequest=e,P(this,s),this._opts=s,this._method=s.method||"GET",this._uri=i,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;let i=Ut(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");i.xdomain=!!this._opts.xd;let s=this._xhr=this.createRequest(i);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let n in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(n)&&s.setRequestHeader(n,this._opts.extraHeaders[n])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var n;s.readyState===3&&((n=this._opts.cookieJar)===null||n===void 0||n.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(n){this.setTimeoutFn(()=>{this._onError(n)},0);return}typeof document<"u"&&(this._index=r.requestsCount++,r.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=wr,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete r.requests[this._index],this._xhr=null}}_onLoad(){let e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}return r.requestsCount=0,r.requests={},r})();if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Xi);else if(typeof addEventListener=="function"){let r="onpagehide"in g?"pagehide":"unload";addEventListener(r,Xi,!1)}}function Xi(){for(let r in Mt.requests)Mt.requests.hasOwnProperty(r)&&Mt.requests[r].abort()}var br=(function(){let r=zi({xdomain:!1});return r&&r.responseType!==null})(),L=class extends te{constructor(t){super(t);let e=t&&t.forceBase64;this.supportsBinary=br&&!e}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Mt(zi,this.uri(),t)}};function zi(r){let t=r.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||Ji))return new XMLHttpRequest}catch{}if(!t)try{return new g[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}var Zi=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative",ie=class extends F{get name(){return"websocket"}doOpen(){let t=this.uri(),e=this.opts.protocols,i=Zi?{}:Ut(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(i.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,e,i)}catch(s){return this.emitReserved("error",s)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let e=0;e<t.length;e++){let i=t[e],s=e===t.length-1;pt(i,this.supportsBinary,n=>{try{this.doWrite(i,n)}catch{}s&&N(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let t=this.opts.secure?"wss":"ws",e=this.query||{};return this.opts.timestampRequests&&(e[this.opts.timestampParam]=Bt()),this.supportsBinary||(e.b64=1),this.createUri(t,e)}},ee=g.WebSocket||g.MozWebSocket,I=class extends ie{createSocket(t,e,i){return Zi?new ee(t,e,i):e?new ee(t,e):new ee(t)}doWrite(t,e){this.ws.send(e)}};var G=class extends F{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{let e=Gi(Number.MAX_SAFE_INTEGER,this.socket.binaryType),i=t.readable.pipeThrough(e).getReader(),s=qi();s.readable.pipeTo(t.writable),this._writer=s.writable.getWriter();let n=()=>{i.read().then(({done:a,value:c})=>{a||(this.onPacket(c),n())}).catch(a=>{})};n();let o={type:"open"};this.query.sid&&(o.data=`{"sid":"${this.query.sid}"}`),this._writer.write(o).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let e=0;e<t.length;e++){let i=t[e],s=e===t.length-1;this._writer.write(i).then(()=>{s&&N(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}};var re={websocket:I,webtransport:G,polling:L};var Ar=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,Tr=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function tt(r){if(r.length>8e3)throw"URI too long";let t=r,e=r.indexOf("["),i=r.indexOf("]");e!=-1&&i!=-1&&(r=r.substring(0,e)+r.substring(e,i).replace(/:/g,";")+r.substring(i,r.length));let s=Ar.exec(r||""),n={},o=14;for(;o--;)n[Tr[o]]=s[o]||"";return e!=-1&&i!=-1&&(n.source=t,n.host=n.host.substring(1,n.host.length-1).replace(/;/g,":"),n.authority=n.authority.replace("[","").replace("]","").replace(/;/g,":"),n.ipv6uri=!0),n.pathNames=vr(n,n.path),n.queryKey=Cr(n,n.query),n}function vr(r,t){let e=/\/{2,9}/g,i=t.replace(e,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&i.splice(0,1),t.slice(-1)=="/"&&i.splice(i.length-1,1),i}function Cr(r,t){let e={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(i,s,n){s&&(e[s]=n)}),e}var se=typeof addEventListener=="function"&&typeof removeEventListener=="function",Vt=[];se&&addEventListener("offline",()=>{Vt.forEach(r=>r())},!1);var Wt=(()=>{class r extends u{constructor(e,i){if(super(),this.binaryType=Hi,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(i=e,e=null),e){let s=tt(e);i.hostname=s.host,i.secure=s.protocol==="https"||s.protocol==="wss",i.port=s.port,s.query&&(i.query=s.query)}else i.host&&(i.hostname=tt(i.host).host);P(this,i),this.secure=i.secure!=null?i.secure:typeof location<"u"&&location.protocol==="https:",i.hostname&&!i.port&&(i.port=this.secure?"443":"80"),this.hostname=i.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=i.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},i.transports.forEach(s=>{let n=s.prototype.name;this.transports.push(n),this._transportsByName[n]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},i),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Qi(this.opts.query)),se&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Vt.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){let i=Object.assign({},this.opts.query);i.EIO=Zt,i.transport=e,this.id&&(i.sid=this.id);let s=Object.assign({},this.opts,{query:i,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}let e=this.opts.rememberUpgrade&&r.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";let i=this.createTransport(e);i.open(),this.setTransport(i)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",i=>this._onClose("transport close",i))}onOpen(){this.readyState="open",r.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let i=new Error("server error");i.code=e.data,this._onError(i);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let i=1;for(let s=0;s<this.writeBuffer.length;s++){let n=this.writeBuffer[s].data;if(n&&(i+=Yi(n)),s>0&&i>this._maxPayload)return this.writeBuffer.slice(0,s);i+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,N(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,i,s){return this._sendPacket("message",e,i,s),this}send(e,i,s){return this._sendPacket("message",e,i,s),this}_sendPacket(e,i,s,n){if(typeof i=="function"&&(n=i,i=void 0),typeof s=="function"&&(n=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;let o={type:e,data:i,options:s};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),n&&this.once("flush",n),this.flush()}close(){let e=()=>{this._onClose("forced close"),this.transport.close()},i=()=>{this.off("upgrade",i),this.off("upgradeError",i),e()},s=()=>{this.once("upgrade",i),this.once("upgradeError",i)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(r.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,i){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),se&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let s=Vt.indexOf(this._offlineEventListener);s!==-1&&Vt.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,i),this.writeBuffer=[],this._prevBufferLen=0}}}return r.protocol=Zt,r})(),$t=class extends Wt{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let e=this.createTransport(t),i=!1;Wt.priorWebsocketSuccess=!1;let s=()=>{i||(e.send([{type:"ping",data:"probe"}]),e.once("packet",U=>{if(!i)if(U.type==="pong"&&U.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",e),!e)return;Wt.priorWebsocketSuccess=e.name==="websocket",this.transport.pause(()=>{i||this.readyState!=="closed"&&(b(),this.setTransport(e),e.send([{type:"upgrade"}]),this.emitReserved("upgrade",e),e=null,this.upgrading=!1,this.flush())})}else{let rt=new Error("probe error");rt.transport=e.name,this.emitReserved("upgradeError",rt)}}))};function n(){i||(i=!0,b(),e.close(),e=null)}let o=U=>{let rt=new Error("probe error: "+U);rt.transport=e.name,n(),this.emitReserved("upgradeError",rt)};function a(){o("transport closed")}function c(){o("socket closed")}function R(U){e&&U.name!==e.name&&n()}let b=()=>{e.removeListener("open",s),e.removeListener("error",o),e.removeListener("close",a),this.off("close",c),this.off("upgrading",R)};e.once("open",s),e.once("error",o),e.once("close",a),this.once("close",c),this.once("upgrading",R),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{i||e.open()},200):e.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){let e=[];for(let i=0;i<t.length;i++)~this.transports.indexOf(t[i])&&e.push(t[i]);return e}},et=class extends $t{constructor(t,e={}){let i=typeof t=="object"?t:e;(!i.transports||i.transports&&typeof i.transports[0]=="string")&&(i.transports=(i.transports||["polling","websocket","webtransport"]).map(s=>re[s]).filter(s=>!!s)),super(t,i)}};var mt=class extends Z{doPoll(){this._fetch().then(t=>{if(!t.ok)return this.onError("fetch read error",t.status,t);t.text().then(e=>this.onData(e))}).catch(t=>{this.onError("fetch read error",t)})}doWrite(t,e){this._fetch(t).then(i=>{if(!i.ok)return this.onError("fetch write error",i.status,i);e()}).catch(i=>{this.onError("fetch write error",i)})}_fetch(t){var e;let i=t!==void 0,s=new Headers(this.opts.extraHeaders);return i&&s.set("content-type","text/plain;charset=UTF-8"),(e=this.socket._cookieJar)===null||e===void 0||e.appendCookies(s),fetch(this.uri(),{method:i?"POST":"GET",body:i?t:null,headers:s,credentials:this.opts.withCredentials?"include":"omit"}).then(n=>{var o;return(o=this.socket._cookieJar)===null||o===void 0||o.parseCookies(n.headers.getSetCookie()),n})}};var Sn=et.protocol;function tr(r,t="",e){let i=r;e=e||typeof location<"u"&&location,r==null&&(r=e.protocol+"//"+e.host),typeof r=="string"&&(r.charAt(0)==="/"&&(r.charAt(1)==="/"?r=e.protocol+r:r=e.host+r),/^(https?|wss?):\/\//.test(r)||(typeof e<"u"?r=e.protocol+"//"+r:r="https://"+r),i=tt(r)),i.port||(/^(http|ws)$/.test(i.protocol)?i.port="80":/^(http|ws)s$/.test(i.protocol)&&(i.port="443")),i.path=i.path||"/";let n=i.host.indexOf(":")!==-1?"["+i.host+"]":i.host;return i.id=i.protocol+"://"+n+":"+i.port+t,i.href=i.protocol+"://"+n+(e&&e.port===i.port?"":":"+i.port),i}var le={};ye(le,{Decoder:()=>ce,Encoder:()=>ae,PacketType:()=>h,protocol:()=>ue});var Rr=typeof ArrayBuffer=="function",Or=r=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(r):r.buffer instanceof ArrayBuffer,er=Object.prototype.toString,kr=typeof Blob=="function"||typeof Blob<"u"&&er.call(Blob)==="[object BlobConstructor]",xr=typeof File=="function"||typeof File<"u"&&er.call(File)==="[object FileConstructor]";function gt(r){return Rr&&(r instanceof ArrayBuffer||Or(r))||kr&&r instanceof Blob||xr&&r instanceof File}function _t(r,t){if(!r||typeof r!="object")return!1;if(Array.isArray(r)){for(let e=0,i=r.length;e<i;e++)if(_t(r[e]))return!0;return!1}if(gt(r))return!0;if(r.toJSON&&typeof r.toJSON=="function"&&arguments.length===1)return _t(r.toJSON(),!0);for(let e in r)if(Object.prototype.hasOwnProperty.call(r,e)&&_t(r[e]))return!0;return!1}function ir(r){let t=[],e=r.data,i=r;return i.data=ne(e,t),i.attachments=t.length,{packet:i,buffers:t}}function ne(r,t){if(!r)return r;if(gt(r)){let e={_placeholder:!0,num:t.length};return t.push(r),e}else if(Array.isArray(r)){let e=new Array(r.length);for(let i=0;i<r.length;i++)e[i]=ne(r[i],t);return e}else if(typeof r=="object"&&!(r instanceof Date)){let e={};for(let i in r)Object.prototype.hasOwnProperty.call(r,i)&&(e[i]=ne(r[i],t));return e}return r}function rr(r,t){return r.data=oe(r.data,t),delete r.attachments,r}function oe(r,t){if(!r)return r;if(r&&r._placeholder===!0){if(typeof r.num=="number"&&r.num>=0&&r.num<t.length)return t[r.num];throw new Error("illegal attachments")}else if(Array.isArray(r))for(let e=0;e<r.length;e++)r[e]=oe(r[e],t);else if(typeof r=="object")for(let e in r)Object.prototype.hasOwnProperty.call(r,e)&&(r[e]=oe(r[e],t));return r}var Nr=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"],ue=5,h=(function(r){return r[r.CONNECT=0]="CONNECT",r[r.DISCONNECT=1]="DISCONNECT",r[r.EVENT=2]="EVENT",r[r.ACK=3]="ACK",r[r.CONNECT_ERROR=4]="CONNECT_ERROR",r[r.BINARY_EVENT=5]="BINARY_EVENT",r[r.BINARY_ACK=6]="BINARY_ACK",r})(h||{}),ae=class{constructor(t){this.replacer=t}encode(t){return(t.type===h.EVENT||t.type===h.ACK)&&_t(t)?this.encodeAsBinary({type:t.type===h.EVENT?h.BINARY_EVENT:h.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let e=""+t.type;return(t.type===h.BINARY_EVENT||t.type===h.BINARY_ACK)&&(e+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(e+=t.nsp+","),t.id!=null&&(e+=t.id),t.data!=null&&(e+=JSON.stringify(t.data,this.replacer)),e}encodeAsBinary(t){let e=ir(t),i=this.encodeAsString(e.packet),s=e.buffers;return s.unshift(i),s}};function sr(r){return Object.prototype.toString.call(r)==="[object Object]"}var ce=class r extends u{constructor(t){super(),this.reviver=t}add(t){let e;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");e=this.decodeString(t);let i=e.type===h.BINARY_EVENT;i||e.type===h.BINARY_ACK?(e.type=i?h.EVENT:h.ACK,this.reconstructor=new he(e),e.attachments===0&&super.emitReserved("decoded",e)):super.emitReserved("decoded",e)}else if(gt(t)||t.base64)if(this.reconstructor)e=this.reconstructor.takeBinaryData(t),e&&(this.reconstructor=null,super.emitReserved("decoded",e));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let e=0,i={type:Number(t.charAt(0))};if(h[i.type]===void 0)throw new Error("unknown packet type "+i.type);if(i.type===h.BINARY_EVENT||i.type===h.BINARY_ACK){let n=e+1;for(;t.charAt(++e)!=="-"&&e!=t.length;);let o=t.substring(n,e);if(o!=Number(o)||t.charAt(e)!=="-")throw new Error("Illegal attachments");i.attachments=Number(o)}if(t.charAt(e+1)==="/"){let n=e+1;for(;++e&&!(t.charAt(e)===","||e===t.length););i.nsp=t.substring(n,e)}else i.nsp="/";let s=t.charAt(e+1);if(s!==""&&Number(s)==s){let n=e+1;for(;++e;){let o=t.charAt(e);if(o==null||Number(o)!=o){--e;break}if(e===t.length)break}i.id=Number(t.substring(n,e+1))}if(t.charAt(++e)){let n=this.tryParse(t.substr(e));if(r.isPayloadValid(i.type,n))i.data=n;else throw new Error("invalid payload")}return i}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,e){switch(t){case h.CONNECT:return sr(e);case h.DISCONNECT:return e===void 0;case h.CONNECT_ERROR:return typeof e=="string"||sr(e);case h.EVENT:case h.BINARY_EVENT:return Array.isArray(e)&&(typeof e[0]=="number"||typeof e[0]=="string"&&Nr.indexOf(e[0])===-1);case h.ACK:case h.BINARY_ACK:return Array.isArray(e)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}},he=class{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){let e=rr(this.reconPack,this.buffers);return this.finishedReconstruction(),e}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}};function w(r,t,e){return r.on(t,e),function(){r.off(t,e)}}var Pr=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1}),H=class extends u{constructor(t,e,i){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=e,i&&i.auth&&(this.auth=i.auth),this._opts=Object.assign({},i),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let t=this.io;this.subs=[w(t,"open",this.onopen.bind(this)),w(t,"packet",this.onpacket.bind(this)),w(t,"error",this.onerror.bind(this)),w(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...e){var i,s,n;if(Pr.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(e.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(e),this;let o={type:h.EVENT,data:e};if(o.options={},o.options.compress=this.flags.compress!==!1,typeof e[e.length-1]=="function"){let b=this.ids++,U=e.pop();this._registerAckCallback(b,U),o.id=b}let a=(s=(i=this.io.engine)===null||i===void 0?void 0:i.transport)===null||s===void 0?void 0:s.writable,c=this.connected&&!(!((n=this.io.engine)===null||n===void 0)&&n._hasPingExpired());return this.flags.volatile&&!a||(c?(this.notifyOutgoingListeners(o),this.packet(o)):this.sendBuffer.push(o)),this.flags={},this}_registerAckCallback(t,e){var i;let s=(i=this.flags.timeout)!==null&&i!==void 0?i:this._opts.ackTimeout;if(s===void 0){this.acks[t]=e;return}let n=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let a=0;a<this.sendBuffer.length;a++)this.sendBuffer[a].id===t&&this.sendBuffer.splice(a,1);e.call(this,new Error("operation has timed out"))},s),o=(...a)=>{this.io.clearTimeoutFn(n),e.apply(this,a)};o.withError=!0,this.acks[t]=o}emitWithAck(t,...e){return new Promise((i,s)=>{let n=(o,a)=>o?s(o):i(a);n.withError=!0,e.push(n),this.emit(t,...e)})}_addToQueue(t){let e;typeof t[t.length-1]=="function"&&(e=t.pop());let i={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((s,...n)=>i!==this._queue[0]?void 0:(s!==null?i.tryCount>this._opts.retries&&(this._queue.shift(),e&&e(s)):(this._queue.shift(),e&&e(null,...n)),i.pending=!1,this._drainQueue())),this._queue.push(i),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;let e=this._queue[0];e.pending&&!t||(e.pending=!0,e.tryCount++,this.flags=e.flags,this.emit.apply(this,e.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:h.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,e){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,e),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(i=>String(i.id)===t)){let i=this.acks[t];delete this.acks[t],i.withError&&i.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case h.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case h.EVENT:case h.BINARY_EVENT:this.onevent(t);break;case h.ACK:case h.BINARY_ACK:this.onack(t);break;case h.DISCONNECT:this.ondisconnect();break;case h.CONNECT_ERROR:this.destroy();let i=new Error(t.data.message);i.data=t.data.data,this.emitReserved("connect_error",i);break}}onevent(t){let e=t.data||[];t.id!=null&&e.push(this.ack(t.id)),this.connected?this.emitEvent(e):this.receiveBuffer.push(Object.freeze(e))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){let e=this._anyListeners.slice();for(let i of e)i.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){let e=this,i=!1;return function(...s){i||(i=!0,e.packet({type:h.ACK,id:t,data:s}))}}onack(t){let e=this.acks[t.id];typeof e=="function"&&(delete this.acks[t.id],e.withError&&t.data.unshift(null),e.apply(this,t.data))}onconnect(t,e){this.id=t,this.recovered=e&&this._pid===e,this._pid=e,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:h.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){let e=this._anyListeners;for(let i=0;i<e.length;i++)if(t===e[i])return e.splice(i,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){let e=this._anyOutgoingListeners;for(let i=0;i<e.length;i++)if(t===e[i])return e.splice(i,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){let e=this._anyOutgoingListeners.slice();for(let i of e)i.apply(this,t.data)}}};function Y(r){r=r||{},this.ms=r.min||100,this.max=r.max||1e4,this.factor=r.factor||2,this.jitter=r.jitter>0&&r.jitter<=1?r.jitter:0,this.attempts=0}Y.prototype.duration=function(){var r=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),e=Math.floor(t*this.jitter*r);r=(Math.floor(t*10)&1)==0?r-e:r+e}return Math.min(r,this.max)|0};Y.prototype.reset=function(){this.attempts=0};Y.prototype.setMin=function(r){this.ms=r};Y.prototype.setMax=function(r){this.max=r};Y.prototype.setJitter=function(r){this.jitter=r};var K=class extends u{constructor(t,e){var i;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(e=t,t=void 0),e=e||{},e.path=e.path||"/socket.io",this.opts=e,P(this,e),this.reconnection(e.reconnection!==!1),this.reconnectionAttempts(e.reconnectionAttempts||1/0),this.reconnectionDelay(e.reconnectionDelay||1e3),this.reconnectionDelayMax(e.reconnectionDelayMax||5e3),this.randomizationFactor((i=e.randomizationFactor)!==null&&i!==void 0?i:.5),this.backoff=new Y({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(e.timeout==null?2e4:e.timeout),this._readyState="closed",this.uri=t;let s=e.parser||le;this.encoder=new s.Encoder,this.decoder=new s.Decoder,this._autoConnect=e.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var e;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(e=this.backoff)===null||e===void 0||e.setMin(t),this)}randomizationFactor(t){var e;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(e=this.backoff)===null||e===void 0||e.setJitter(t),this)}reconnectionDelayMax(t){var e;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(e=this.backoff)===null||e===void 0||e.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new et(this.uri,this.opts);let e=this.engine,i=this;this._readyState="opening",this.skipReconnect=!1;let s=w(e,"open",function(){i.onopen(),t&&t()}),n=a=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",a),t?t(a):this.maybeReconnectOnOpen()},o=w(e,"error",n);if(this._timeout!==!1){let a=this._timeout,c=this.setTimeoutFn(()=>{s(),n(new Error("timeout")),e.close()},a);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(s),this.subs.push(o),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");let t=this.engine;this.subs.push(w(t,"ping",this.onping.bind(this)),w(t,"data",this.ondata.bind(this)),w(t,"error",this.onerror.bind(this)),w(t,"close",this.onclose.bind(this)),w(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(e){this.onclose("parse error",e)}}ondecoded(t){N(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,e){let i=this.nsps[t];return i?this._autoConnect&&!i.active&&i.connect():(i=new H(this,t,e),this.nsps[t]=i),i}_destroy(t){let e=Object.keys(this.nsps);for(let i of e)if(this.nsps[i].active)return;this._close()}_packet(t){let e=this.encoder.encode(t);for(let i=0;i<e.length;i++)this.engine.write(e[i],t.options)}cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,e){var i;this.cleanup(),(i=this.engine)===null||i===void 0||i.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,e),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let e=this.backoff.duration();this._reconnecting=!0;let i=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(s=>{s?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",s)):t.onreconnect()}))},e);this.opts.autoUnref&&i.unref(),this.subs.push(()=>{this.clearTimeoutFn(i)})}}onreconnect(){let t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}};var yt={};function Q(r,t){typeof r=="object"&&(t=r,r=void 0),t=t||{};let e=tr(r,t.path||"/socket.io"),i=e.source,s=e.id,n=e.path,o=yt[s]&&n in yt[s].nsps,a=t.forceNew||t["force new connection"]||t.multiplex===!1||o,c;return a?c=new K(i,t):(yt[s]||(yt[s]=new K(i,t)),c=yt[s]),e.query&&!t.query&&(t.query=e.queryKey),c.socket(e.path,t)}Object.assign(Q,{Manager:K,Socket:H,io:Q,connect:Q});var it=class r{config;appRef;subscribersCounter={};eventObservables$={};namespaces={};ioSocket;emptyConfig={url:"",options:{}};constructor(t,e){this.config=t,this.appRef=e,t===void 0&&(t=this.emptyConfig);let i=t.url,s=t.options,n=Q?Q:pe;this.ioSocket=n(i,s)}get auth(){return this.ioSocket.auth}set auth(t){this.ioSocket.auth=t}get io(){return this.ioSocket.io}get open(){return this.connect}get close(){return this.disconnect}of(t){if(!t||t==="/")return this;let e=this.namespaces[t];if(e)return e;let a=this.config,{url:i}=a,s=ge(a,["url"]),n=O({url:!i.endsWith("/")&&!t.startsWith("/")?`${i}/${t}`:`${i}${t}`},s),o=new r(n,this.appRef);return this.namespaces[t]=o,o}on(t,e){return this.ioSocket.on(t,e),this}once(t,e){return this.ioSocket.once(t,e),this}connect(){return this.ioSocket.connect(),this}disconnect(){return this.ioSocket.disconnect(),this}emit(t,...e){return this.ioSocket.emit(t,...e),this}send(...t){return this.ioSocket.send.apply(this.ioSocket,arguments),this}emitWithAck(t,...e){return this.ioSocket.emitWithAck(t,...e)}removeListener(t,e){return this.ioSocket.removeListener(t,e),this}removeAllListeners(t){return this.ioSocket.removeAllListeners(t),this}fromEvent(t){return this.subscribersCounter[t]||(this.subscribersCounter[t]=0),this.subscribersCounter[t]++,this.eventObservables$[t]||(this.eventObservables$[t]=new Se(e=>{let i=s=>{e.next(s),this.appRef.tick()};return this.ioSocket.on(t,i),()=>{this.subscribersCounter[t]--,this.subscribersCounter[t]===0&&(this.ioSocket.removeListener(t,i),delete this.eventObservables$[t])}}).pipe(Ae())),this.eventObservables$[t]}fromOneTimeEvent(t){return new Promise(e=>this.once(t,e))}listeners(t){return this.ioSocket.listeners(t)}hasListeners(t){return this.ioSocket.hasListeners(t)}listenersAny(){return this.ioSocket.listenersAny()}listenersAnyOutgoing(){return this.ioSocket.listenersAnyOutgoing()}off(t,e){return this.ioSocket.off(t,e),this}offAny(t){return this.ioSocket.offAny(t),this}offAnyOutgoing(t){return this.ioSocket.offAnyOutgoing(t),this}onAny(t){return this.ioSocket.onAny(t),this}onAnyOutgoing(t){return this.ioSocket.onAnyOutgoing(t),this}prependAny(t){return this.ioSocket.prependAny(t),this}prependAnyOutgoing(t){return this.ioSocket.prependAnyOutgoing(t),this}timeout(t){return this.ioSocket.timeout(t),this}get volatile(){let t=this.ioSocket.volatile;return this}get active(){return this.ioSocket.active}get connected(){return this.ioSocket.connected}get disconnected(){return this.ioSocket.disconnected}get recovered(){return this.ioSocket.recovered}get id(){return this.ioSocket.id}compress(t){return this.ioSocket.compress(t),this}};function Fr(r,t){return new it(r,t)}var nr=new ve("__SOCKET_IO_CONFIG__"),uo=(()=>{class r{static forRoot(e){return{ngModule:r,providers:[{provide:nr,useValue:e},{provide:it,useFactory:Fr,deps:[nr,xe]}]}}static \u0275fac=function(i){return new(i||r)};static \u0275mod=Oe({type:r});static \u0275inj=Te({})}return r})();var fe={BASE:`${ai}/notifications`,UNREAD:"unread"},qt=fe.BASE;var d=(function(r){return r.ADD="add",r.UPDATE="update",r.DELETE="delete",r.DELETE_PERMANENTLY="deletePermanently",r})(d||{});var y=(function(r){return r.COMMENTS="comments",r.SPACES="spaces",r.SPACE_ROOTS="spaces_roots",r.SHARES="shares",r.LINKS="links",r.SYNC="sync",r.AUTH_LOCKED="auth_locked",r.AUTH_2FA="auth_2fa",r.UNLOCK_REQUEST="unlock_request",r.UPDATE_AVAILABLE="server_update_available",r})(y||{}),yo={COMMENTS:"commented",SPACES:{[d.ADD]:"You now have access to the space",[d.DELETE]:"You no longer have access to the space",[d.DELETE_PERMANENTLY]:"This space has been permanently deleted"},SPACE_ROOTS:{[d.ADD]:"anchored",[d.DELETE]:"unanchored"},SHARES:{[d.ADD]:"shared with you",[d.DELETE]:"no longer share with you"},SHARES_WITHOUT_OWNER:{[d.ADD]:"You now have access to the share",[d.DELETE]:"You no longer have access to the share",[d.DELETE_PERMANENTLY]:"You are no longer a member of the parent share, your child share has been deleted"},LINKS:{[d.ADD]:"shared with you",[d.UPDATE]:"You now have access to the space"},SYNC:{[d.DELETE]:"You are no longer synchronizing"},AUTH_2FA:{[d.ADD]:"Two-factor authentication (2FA) on your account has been enabled",[d.DELETE]:"Two-factor authentication (2FA) on your account has been disabled"},AUTH_LOCKED:{[d.DELETE]:"Your account has been locked after several unsuccessful authentication attempts"},UNLOCK_REQUEST:"sends you a request to unlock the file",UPDATE_AVAILABLE:"A new update is available"};var or=ei;var ar={[y.COMMENTS]:or,[y.SPACES]:ct.SPACES,[y.SPACE_ROOTS]:ct.SPACES,[y.SHARES]:ct.SHARES,[y.LINKS]:ct.LINKS,[y.SYNC]:Ei.SYNC,[y.UNLOCK_REQUEST]:ti};var Gt=class{constructor(t){this.soonRead=!1,Object.assign(this,t),this.fromUser?this.fromUser.avatarUrl=M(this.fromUser.login):this.fromUser={id:-1,login:null,email:null,fullName:"Info",avatarUrl:null},this.appIcon=ar[this.content.app],this.setMainElement()}setMainElement(){if(!(this.content.app===y.COMMENTS||this.content.app===y.SHARES||this.content.app===y.UPDATE_AVAILABLE||this.content.app===y.SYNC)&&this.content?.url){let t=this.content.url.split("/");t.length>1&&(this.mainElement=t[t.length-1])}}};var cr=(()=>{let t=class t{constructor(){this.http=p(Tt),this.store=p(Pt),this.layout=p(z)}getNotifications(i=!1){return this.http.get(`${qt}${i?`/${fe.UNREAD}`:""}`).pipe(S(s=>s.map(n=>new Gt(n))))}wasReadNotification(i){return this.http.patch(`${qt}/${i}`,null)}deleteNotification(i){return this.http.delete(`${qt}${i?`/${i}`:""}`)}checkUnreadNotifications(i=!1){this.getNotifications().subscribe(s=>{let n;if(i&&s.length){let o=s[0];n=this.layout.sendNotification("info",o.fromUser.fullName,this.layout.translateString(`${this.layout.translateString(o.content.event)}: <b>${o.content.element}</b>`),null,{enableHtml:!0})}else{let o=s.filter(a=>!a.wasRead).length;o&&(n=this.layout.sendNotification("info","Notifications",this.layout.translateString(o===1?"one_notification":"nb_notifications",{nb:o})))}n&&n.onTap.pipe(be(1)).subscribe(()=>this.layout.showRSideBarTab(gi.NOTIFICATIONS,!0)),this.store.notifications.set(s)})}};t.\u0275fac=function(s){return new(s||t)},t.\u0275prov=wt({token:t,factory:t.\u0275fac,providedIn:"root"});let r=t;return r})();var E=(function(r){return r.ACCESS="access",r.ACCESS_2FA="access_2fa",r.REFRESH="refresh",r.WS="ws",r.CSRF="csrf",r.CSRF_2FA="csrf_2fa",r})(E||{});var Yo="sync-in-csrf";var de=6;var hr="sync-in-two-fa-code",ur="sync-in-two-fa-password",Ko={[E.ACCESS]:"/",[E.REFRESH]:Ci,[E.WS]:Ri,[E.CSRF]:"/",[E.ACCESS_2FA]:ki,[E.CSRF_2FA]:"/"},Qo=[E.REFRESH,E.ACCESS,E.WS,E.CSRF],jo=[E.ACCESS_2FA,E.CSRF_2FA];var Ir=["Password"];function Ur(r,t){r&1&&(f(0,"label",1),A(1,"Password"),_())}function Br(r,t){if(r&1){let e=st();f(0,"div",5),B("click",function(){W(e);let s=D();return $(s.randomPassword())}),f(1,"span"),J(2,"fa-icon",6),_()()}if(r&2){let e=D();m(2),C("icon",e.icons.faDice)}}var lr=(()=>{let t=class t{constructor(){this.passwordChange=new Re,this.passwordMinLength=8,this.showGenerator=!1,this.showLabel=!1,this.disabled=!1,this.isRequired=!1,this.focus=!1,this.centered=!1,this.locale=p(Ot),this.toggleVisiblePassword=yi,this.icons={faEye:Ze,faEyeSlash:ri,faDice:si}}ngOnInit(){this.focus&&setTimeout(()=>{this.passwordElement.nativeElement.focus(),this.passwordElement.nativeElement.select()},0)}randomPassword(){this.disabled||this.passwordChange.emit(mi(this.passwordMinLength+2))}};t.\u0275fac=function(s){return new(s||t)},t.\u0275cmp=bt({type:t,selectors:[["app-input-password"]],viewQuery:function(s,n){if(s&1&&Ne(Ir,7),s&2){let o;Pe(o=Fe())&&(n.passwordElement=o.first)}},inputs:{password:"password",passwordMinLength:"passwordMinLength",placeholder:"placeholder",showGenerator:"showGenerator",showLabel:"showLabel",disabled:"disabled",isRequired:"isRequired",focus:"focus",centered:"centered"},outputs:{passwordChange:"passwordChange"},decls:9,vars:16,consts:[["Password",""],["for","password","l10nTranslate",""],["id","password",1,"input-group","input-group-sm",2,"min-width","150px"],["autocomplete","off","type","password",1,"form-control","form-control-sm","pe-0",3,"ngModelChange","keyup","ngModel","disabled","placeholder","required"],[1,"input-group-text","cursor-pointer"],[1,"input-group-text","cursor-pointer",3,"click"],[3,"icon"]],template:function(s,n){if(s&1){let o=st();k(0,Ur,2,0,"label",1),f(1,"div",2)(2,"input",3,0),Me(4,"translate"),De("ngModelChange",function(c){return W(o),Be(n.password,c)||(n.password=c),$(c)}),B("keyup",function(){return W(o),$(n.passwordChange.emit(n.password))}),_(),k(5,Br,3,1,"div",4),f(6,"div",5),B("click",function(){W(o);let c=Yt(3);return $(n.toggleVisiblePassword(c))}),f(7,"span"),J(8,"fa-icon",6),_()()()}if(s&2){let o=Yt(3);x(n.showLabel?0:-1),m(2),Le("padding-left",n.centered?"2rem":""),At("is-invalid",n.isRequired&&(n.password==null?null:n.password.length)<n.passwordMinLength)("text-center",n.centered),Ue("ngModel",n.password),C("disabled",n.disabled)("placeholder",Ve(4,13,n.placeholder,n.locale.language))("required",n.isRequired),m(3),x(n.showGenerator?5:-1),m(3),C("icon",o.type==="text"?n.icons.faEye:n.icons.faEyeSlash)}},dependencies:[Je,vt,Ct,Ke,qe,Rt,Nt,kt,Xe],encapsulation:2});let r=t;return r})();var pr=(()=>{let t=class t{constructor(){this.autoFocus=!0,this.autoSelect=!0,this.elementRef=p(Ce)}ngOnInit(){setTimeout(()=>{this.autoFocus&&this.elementRef.nativeElement.focus(),this.autoSelect&&this.elementRef.nativeElement.select()},0)}};t.\u0275fac=function(s){return new(s||t)},t.\u0275dir=ke({type:t,selectors:[["","appAutofocus",""]],inputs:{autoFocus:"autoFocus",autoSelect:"autoSelect"}});let r=t;return r})();function Dr(r,t){r&1&&(f(0,"span",3),A(1,"Two-Factor Authentication"),_())}function Mr(r,t){r&1&&(f(0,"span",3),A(1,"Password Authentication"),_())}function Vr(r,t){if(r&1&&A(0),r&2){let e=D();Ie(" ",e.hasError," ")}}function Wr(r,t){r&1&&A(0," Enter your password ")}function $r(r,t){r&1&&A(0," Valid with your TOTP code ")}function qr(r,t){if(r&1){let e=st();f(0,"div",9)(1,"app-input-password",13),B("passwordChange",function(s){W(e);let n=D();return $(n.updatePassword(s))}),_()()}if(r&2){let e=D();m(),C("password",e.twoFaForm.value.password)("focus",!0)("centered",!0)}}function Gr(r,t){r&1&&(f(0,"div",14),A(1,"Valid with your TOTP code"),_())}function Hr(r,t){if(r&1&&(k(0,Gr,2,0,"div",14),f(1,"div",15),J(2,"input",16),_()),r&2){let e=D();x(e.withPassword?0:-1),m(2),C("autoFocus",!e.withPassword)("autoSelect",!e.withPassword)("maxlength",e.twoFaCodelength)}}var fr=(()=>{let t=class t{constructor(){this.withPassword=!1,this.withTwoFaEnabled=!0,this.submitted=!1,this.hasError=null,this.icons={faKey:ze,faLock:ii},this.twoFaCodelength=de,this.locale=p(Ot),this.fb=p(je),this.layout=p(z)}ngOnInit(){this.twoFaForm=this.fb.group({totpCode:this.fb.control("",this.withTwoFaEnabled?[nt.required,nt.pattern(new RegExp(`^\\d{${de}}$`))]:null),password:this.fb.control("",this.withPassword?[nt.required,nt.minLength(8)]:null)})}onClose(i=!1){this.isValid(i),this.layout.closeDialog()}onSubmit(){this.submitted=!0;let i=new We(O(O({},this.withTwoFaEnabled?{[hr]:this.twoFaForm.value.totpCode}:{}),this.withPassword?{[ur]:this.twoFaForm.value.password}:{}));this.onClose(i)}updatePassword(i){this.twoFaForm.patchValue({password:i})}};t.\u0275fac=function(s){return new(s||t)},t.\u0275cmp=bt({type:t,selectors:[["app-user-auth-2fa-verify-dialog"]],inputs:{withPassword:"withPassword",withTwoFaEnabled:"withTwoFaEnabled"},decls:20,vars:9,consts:[[1,"modal-header","align-items-center","justify-content-center"],[1,"modal-title"],[1,"me-2",3,"icon"],["l10nTranslate",""],[1,"modal-body","modal-auth-verify-2fa"],[1,"card","shadow-sm"],[1,"card-body"],["l10nTranslate","",1,"d-flex","justify-content-center","align-items-center","mb-3"],[3,"ngSubmit","formGroup"],[1,"mb-4"],[1,"d-grid","gap-2"],["type","submit","l10nTranslate","",1,"btn","btn-primary",3,"disabled"],["type","button","l10nTranslate","",1,"btn","btn-secondary",3,"click"],["id","password","placeholder","\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",3,"passwordChange","password","focus","centered"],["l10nTranslate","",1,"text-align-center","mb-3"],[1,"mb-3"],["appAutofocus","","type","text","formControlName","totpCode","placeholder","\u2022\u2022\u2022\u2022\u2022\u2022","inputmode","numeric","autocomplete","one-time-code","name","totp",1,"form-control","text-center","fs-4",3,"autoFocus","autoSelect","maxlength"]],template:function(s,n){s&1&&(f(0,"div",0)(1,"h4",1),J(2,"fa-icon",2),k(3,Dr,2,0,"span",3)(4,Mr,2,0,"span",3),_()(),f(5,"div",4)(6,"div",5)(7,"div",6)(8,"p",7),k(9,Vr,1,1)(10,Wr,1,0)(11,$r,1,0),_(),f(12,"form",8),B("ngSubmit",function(){return n.onSubmit()}),k(13,qr,2,3,"div",9),k(14,Hr,3,4),f(15,"div",10)(16,"button",11),A(17,"Confirm"),_(),f(18,"button",12),B("click",function(){return n.onClose()}),A(19,"Cancel"),_()()()()()()),s&2&&(m(2),C("icon",n.icons.faLock),m(),x(n.withTwoFaEnabled?3:4),m(5),At("text-danger",n.hasError),m(),x(n.hasError?9:n.withPassword?10:11),m(3),C("formGroup",n.twoFaForm),m(),x(n.withPassword?13:-1),m(),x(n.withTwoFaEnabled?14:-1),m(2),C("disabled",n.twoFaForm.invalid||n.submitted))},dependencies:[Nt,kt,pr,Rt,Ge,vt,Ct,$e,Qe,He,Ye,lr],encapsulation:2});let r=t;return r})();var Ht=class{constructor(t){this.parentGroup=t.parentGroup,this.members=t.members.map(e=>new T(e))}};var j=class{constructor(t){this.newly=0,this.currentAccessHover=!1,this.setManagers(t),Object.assign(this,t),this.avatarUrl=M(t.login),this.userIsActiveText=this.isActive?"active":"suspended",this.hTimeAgo=oi(this.currentAccess).fromNow(!0),this.newly=at(this.currentAccess)}setManagers(t){t?.managers&&(t.managers=t.managers.map(e=>new T(e)))}};var St=class{constructor(t){this.setOnlineStatus(_i("status",t)),this.avatarUrl=M(t.login),Object.assign(this,t)}setOnlineStatus(t){this.onlineStatus=t,this.onlineTextStatus=ni[t]}};var oc=(()=>{let t=class t{constructor(){this.http=p(Tt),this.layout=p(z),this.store=p(Pt),this.webSocket=p(it),this.notifications=p(cr),this.webSocket.fromEvent("connect").subscribe(()=>this.notifications.checkUnreadNotifications()),this.webSocket.fromEvent("disconnect").subscribe(()=>this.store.onlineUsers.set([])),this.webSocket.fromEvent(vi.EVENTS.NOTIFICATION).subscribe(()=>this.notifications.checkUnreadNotifications(!0)),this.webSocket.fromEvent(ht.EVENTS.ONLINE_USER).pipe(S(i=>new St(i))).subscribe(i=>this.newOnlineUser(i)),this.webSocket.fromEvent(ht.EVENTS.ONLINE_USERS).pipe(S(i=>i.map(s=>new St(s)))).subscribe(i=>this.setOnlineUsers(i)),this.webSocket.fromEvent(ht.EVENTS.ONLINE_STATUS).subscribe(i=>this.receiveOnlineStatus(i))}get user(){return this.store.user.getValue()}initUser(i,s=!1){this.refreshAvatar(),this.layout.setLanguage(i.language).catch(console.error),this.store.userImpersonate.set(s||i.impersonated),this.store.user.next(i),this.checkQuota(this.store.user.getValue()),s&&this.disconnectWebSocket(),this.connectWebSocket()}connectWebSocket(){this.webSocket.ioSocket.io.opts.query={onlineStatus:this.user.onlineStatus},this.webSocket.connect()}disconnectWebSocket(){this.webSocket.disconnect()}setOnlineUsers(i){this.store.onlineUsers.set(i)}newOnlineUser(i){this.store.onlineUsers().find(s=>s.id===i.id)?this.receiveOnlineStatus({userId:i.id,status:i.onlineStatus}):this.store.onlineUsers.update(s=>[i,...s])}userHavePermission(i){return this.user.isAdmin?!0:this.user?this.user.applications.indexOf(i)!==-1:!1}browseGroup(i){return this.http.get(`${pi}${i?`/${i}`:""}`).pipe(S(s=>new Ht(s)))}createPersonalGroup(i){return this.http.post(q,i).pipe(S(s=>new T(s)))}updatePersonalGroup(i,s){return this.http.put(`${q}/${i}`,s).pipe(S(n=>new T(n)))}leavePersonalGroup(i){return this.http.delete(`${fi}/${i}`)}addUsersToGroup(i,s){return this.http.patch(`${q}/${i}/${ot.USERS}`,s)}deletePersonalGroup(i){return this.http.delete(`${q}/${i}`)}updateUserFromPersonalGroup(i,s,n){return this.http.patch(`${q}/${i}/${ot.USERS}/${s}`,n)}removeUserFromGroup(i,s){return this.http.delete(`${q}/${i}/${ot.USERS}/${s}`)}listGuests(){return this.http.get(X).pipe(S(i=>i.map(s=>new j(s))))}getGuest(i){return this.http.get(`${X}/${i}`).pipe(S(s=>new j(s)))}createGuest(i){return this.http.post(X,i).pipe(S(s=>new j(s)))}updateGuest(i,s){return this.http.put(`${X}/${i}`,s).pipe(S(n=>n?new j(n):null))}deleteGuest(i){return this.http.delete(`${X}/${i}`)}genAvatar(){this.http.patch(jt,null).subscribe({next:()=>this.refreshAvatar(),error:i=>this.layout.sendNotification("error","Configuration","Avatar",i)})}uploadAvatar(i){let s=new FormData;s.append("file",i),this.http.put(jt,s).subscribe({next:()=>this.refreshAvatar(),error:n=>this.layout.sendNotification("error","Configuration","Avatar",n)})}changePassword(i,s){return this.http.put(hi,i,{headers:s})}changeLanguage(i){return this.http.put(ci,i)}changeNotification(i){return this.http.put(ui,i)}changeStorageIndexing(i){return this.http.put(li,i)}changeOnlineStatus(i,s=!0){this.webSocket.emit(ht.EVENTS.ONLINE_STATUS,{status:i,store:s})}receiveOnlineStatus(i){this.user.id===i.userId?this.user.onlineStatus=i.status:this.store.onlineUsers().length&&this.store.onlineUsers.update(s=>s.map(n=>n.id===i.userId?_e(O({},n),{onlineStatus:i.status}):n))}searchMembers(i,s=[]){return this.http.request("search",ot.BASE,{body:i}).pipe(S(n=>n.map(o=>new T(o,s))),we(()=>[]))}setMenusVisibility(i){for(let s of i)if(!(s.id&&(s.hide=!this.userHavePermission(s.id),s.hide))&&(s.checks?.length&&(s.hide=!s.checks.map(n=>n.negate?!this[n.prop][n.value]:this[n.prop][n.value]).every(n=>!!n)),s.submenus?.length&&this.setMenusVisibility(s.submenus),s.title===wi.FILES)){for(let n of s.submenus)if(!n.hide){s.link=n.link;break}}}refreshAvatar(){this.store.userAvatarUrl.next(Si())}checkAppStoreAvailability(){this.http.get(`${Qt.BASE}/${Qt.APP_STORE}`).subscribe({next:i=>this.store.appStoreManifest.set(i),error:i=>console.error(i)})}listAppPasswords(i){return this.http.get(xt,{headers:i})}generateAppPassword(i,s){return this.http.post(xt,i,{headers:s})}deleteAppPassword(i){return this.http.delete(`${xt}/${i}`)}init2Fa(){return this.http.get(Jt)}enable2Fa(i){return this.http.post(Jt,i)}disable2Fa(i){return this.http.post(Oi,i)}adminResetUser2Fa(i,s){return this.http.post(`${xi}/${i}`,null,{headers:s})}auth2FaVerifyDialog(i=!1){return Ee(this,null,function*(){let s=this.store.server().twoFaEnabled&&this.user.twoFaEnabled;if(i||s)return new Promise(n=>{let o=this.layout.openDialog(fr,"xs",{initialState:{withPassword:i,withTwoFaEnabled:s}},{keyboard:!1});o.content.isValid=a=>{n(a)}})})}checkQuota(i){if(!(i.isGuest||i.isLink)&&i.storageQuota){let s=Math.round(100/i.storageQuota*(i.storageQuota-i.storageUsage));s<=1?this.layout.sendNotification("error","Storage Quota","No more space available",null,{disableTimeOut:!0,closeButton:!0}):s<=5?this.layout.sendNotification("warning","Storage Quota",this.layout.translateString("available_space_is_low",{nb:s}),null,{disableTimeOut:!0,closeButton:!0}):s<=10&&this.layout.sendNotification("info","Storage Quota",this.layout.translateString("available_space_is_low",{nb:s}),null,{disableTimeOut:!0,closeButton:!0})}}};t.\u0275fac=function(s){return new(s||t)},t.\u0275prov=wt({token:t,factory:t.\u0275fac,providedIn:"root"});let r=t;return r})();export{us as a,ls as b,Ci as c,ki as d,Yo as e,de as f,hr as g,ur as h,uo as i,y as j,cr as k,lr as l,pr as m,V as n,Ti as o,jr as p,Jr as q,Xr as r,T as s,os as t,Ht as u,j as v,oc as w};
|
package/static/chunk-5GIWZKNS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as Y,d as Te,h as ee,m as ue}from"./chunk-MYM43ENO.js";import{a as Ht}from"./chunk-25PWAXTJ.js";import{b as Ut}from"./chunk-S4UTSOPV.js";import{l as Pt,n as Rt,o as Nt,p as $t,q as U,r as Ot,s as H,w as Mt}from"./chunk-4ZKAVMB4.js";import{a as Ft,b as Bt}from"./chunk-5HYSNQR4.js";import{b as Q}from"./chunk-BVKDW5XO.js";import{$a as de,Ba as he,Ca as Et,Cb as Z,Db as u,Gb as wt,Hb as xt,Ib as Tt,Ja as Ie,K as Ct,Mb as xe,N as At,Na as N,Nb as B,Ob as I,Pb as Dt,W as ce,Wa as bt,gb as yt,ib as vt,s as lt,t as pt,tb as It,w as ct,x as mt,y as ht,ya as k}from"./chunk-FCR5AEHR.js";import{d as se}from"./chunk-LFAQLJZK.js";import{Bb as oe,Cd as ot,Dd as st,De as St,Eb as D,Ed as le,Ef as _t,G as _e,Gb as d,Jd as pe,Kd as at,L as Oe,Oa as l,Od as dt,Pc as qe,Qa as ke,Qb as je,Ra as Ue,Rb as J,Sb as P,Tb as c,Ub as q,Vb as O,Wb as Ke,Wf as kt,Xb as Ee,Yb as be,Yc as W,Zb as ye,ab as re,cc as G,ea as R,ed as Ge,f as Ne,fd as We,gc as Ve,ha as Me,hd as ae,ia as ne,ie as ut,ja as S,jd as Ze,kc as b,kd as Ye,lb as A,ld as ve,le as ft,mb as E,mc as y,nb as He,nd as _,oa as K,od as Xe,og as me,p as z,pa as V,pb as Ce,pd as ze,pg as we,qb as Ae,qd as Je,qg as Lt,ra as Fe,rb as m,rg as F,sb as s,sd as Qe,t as $e,tb as a,td as et,ub as g,ud as tt,v as f,vd as it,wd as nt,wf as gt,xa as Be,xd as rt}from"./chunk-BJARRIS6.js";import{n as M}from"./chunk-DM4NXKEP.js";import{a as v,b as L,d as Re}from"./chunk-KAVP6UXH.js";var X={BASE:`${ce}/link`,LINK:"link",VALIDATION:"validation",ACCESS:"access",AUTH:"auth"},jt=`${X.BASE}/${X.VALIDATION}`,Le=`${X.BASE}/${X.ACCESS}`,Kt=`${X.BASE}/${X.AUTH}`;var h={BASE:`${ce}/shares`,LIST:"list",CHILDREN:"children",LINKS:"links",LINKS_LIST:"links/list",LINKS_UUID:"links/uuid"},Vt=`${h.BASE}/${h.LIST}`,te=`${h.BASE}/${h.LINKS}`,qt=`${h.BASE}/${h.LINKS_LIST}`,Gt=`${h.BASE}/${h.LINKS_UUID}`;var Wt=new Me("WindowToken",typeof window<"u"&&window.document?{providedIn:"root",factory:()=>window}:{providedIn:"root",factory:()=>{}});var Zt=(()=>{class o{constructor(i,e,t){this.ngZone=i,this.document=e,this.window=t,this.copySubject=new Ne,this.copyResponse$=this.copySubject.asObservable(),this.config={}}configure(i){this.config=i}copy(i){if(!this.isSupported||!i)return this.pushCopyResponse({isSuccess:!1,content:i});let e=this.copyFromContent(i);return e?this.pushCopyResponse({content:i,isSuccess:e}):this.pushCopyResponse({isSuccess:!1,content:i})}get isSupported(){return!!this.document.queryCommandSupported&&!!this.document.queryCommandSupported("copy")&&!!this.window}isTargetValid(i){if(i instanceof HTMLInputElement||i instanceof HTMLTextAreaElement){if(i.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');return!0}throw new Error("Target should be input or textarea")}copyFromInputElement(i,e=!0){try{this.selectTarget(i);let t=this.copyText();return this.clearSelection(e?i:void 0,this.window),t&&this.isCopySuccessInIE11()}catch{return!1}}isCopySuccessInIE11(){let i=this.window.clipboardData;return!(i&&i.getData&&!i.getData("Text"))}copyFromContent(i,e=this.document.body){if(this.tempTextArea&&!e.contains(this.tempTextArea)&&this.destroy(this.tempTextArea.parentElement||void 0),!this.tempTextArea){this.tempTextArea=this.createTempTextArea(this.document,this.window);try{e.appendChild(this.tempTextArea)}catch{throw new Error("Container should be a Dom element")}}this.tempTextArea.value=i;let t=this.copyFromInputElement(this.tempTextArea,!1);return this.config.cleanUpAfterCopy&&this.destroy(this.tempTextArea.parentElement||void 0),t}destroy(i=this.document.body){this.tempTextArea&&(i.removeChild(this.tempTextArea),this.tempTextArea=void 0)}selectTarget(i){return i.select(),i.setSelectionRange(0,i.value.length),i.value.length}copyText(){return this.document.execCommand("copy")}clearSelection(i,e){i&&i.focus(),e.getSelection()?.removeAllRanges()}createTempTextArea(i,e){let t=i.documentElement.getAttribute("dir")==="rtl",n;n=i.createElement("textarea"),n.style.fontSize="12pt",n.style.border="0",n.style.padding="0",n.style.margin="0",n.style.position="absolute",n.style[t?"right":"left"]="-9999px";let p=e.pageYOffset||i.documentElement.scrollTop;return n.style.top=p+"px",n.setAttribute("readonly",""),n}pushCopyResponse(i){this.copySubject.observers.length>0&&this.ngZone.run(()=>{this.copySubject.next(i)})}pushCopyReponse(i){this.pushCopyResponse(i)}}return o.\u0275fac=function(i){return new(i||o)(ne(Ue),ne(Fe),ne(Wt,8))},o.\u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"}),o})();var De=(function(o){return o[o.COMMON=0]="COMMON",o[o.LINK=1]="LINK",o})(De||{}),Yt=Object.values(k).filter(o=>o!==k.SHARE_INSIDE).sort().join(":");function ti(o,r){if(o&1&&g(0,"fa-icon",2),o&2){let i=d();P(i.repository.class),je("min-width",i.galleryMode.dimensions/3,"px")("min-height",i.galleryMode.dimensions/3,"px")("font-size",i.galleryMode.faSize/1.8,"px"),m("icon",i.repository.icon)}}function ii(o,r){if(o&1&&g(0,"fa-icon",5),o&2){let i=d(2);P(i.repository.class),m("icon",i.repository.icon)}}function ni(o,r){if(o&1&&(c(0),b(1,"translate")),o&2){let i=d(2);O(" ",y(1,1,i.repository.label,i.locale.language)," ")}}function ri(o,r){if(o&1&&c(0),o&2){let i=d(2);O(" ",i.repository.label," ")}}function oi(o,r){if(o&1&&(s(0,"div",1),A(1,ii,1,3,"fa-icon",3),s(2,"span",4),A(3,ni,2,4)(4,ri,1,1),a()()),o&2){let i=d();l(),E(i.showIcon?1:-1),l(2),E(i.repository.translate?3:4)}}var Xt=(()=>{let r=class r{constructor(){this.showIcon=!0,this.showFullPath=!1,this.locale=S(le),this.layout=S(Z),this.unknownRepository={icon:dt,label:"",class:"circle-primary-icon",translate:!1}}ngOnInit(){this.setRepository()}ngOnChanges(){this.setRepository()}setRepository(){this.share.parent?.id||this.share.parent?.id===0?this.repository={icon:B.SHARES,label:this.share.parent.name,class:"circle-purple-icon",translate:!1}:this.share.file?.ownerId?this.repository={icon:B.PERSONAL,label:xe.PERSONAL_FILES,class:"circle-primary-icon",translate:!0}:this.share.file?.space?.alias?this.repository={icon:B.SPACES,label:`${this.share.file.space.name}`,class:"circle-primary-icon",translate:!1}:this.share.externalPath?this.repository={icon:B.EXTERNAL,label:"External",class:"circle-primary-icon",translate:!0}:this.repository=v({},this.unknownRepository),this.showFullPath&&this.setFullPath()}setFullPath(){if(!this.repository.label)return;let e=this.share.file?.path?this.share.file.path.split("/").filter(t=>t&&t!=="."):[];this.share.parent?.id&&!this.share.file?.id&&this.share.file?.path.indexOf("/")===-1?e.shift():this.share.file?.space?.alias&&this.share.file.space?.root?.alias&&(e.length?e.unshift(this.share.file.space.root.name):e.push(this.share.file.space.root.name)),this.repository.label===xe.PERSONAL_FILES&&(this.repository.label=this.layout.translateString(this.repository.label)),e.length&&(this.repository.label=`${this.repository.label}/${e.join("/")}`)}};r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=re({type:r,selectors:[["app-share-repository"]],inputs:{share:"share",galleryMode:"galleryMode",showIcon:"showIcon",showFullPath:"showFullPath"},features:[Be],decls:2,vars:1,consts:[[3,"icon","class","min-width","min-height","font-size"],[1,"d-flex","align-items-center","overflow-wrap-and-whitespace"],[3,"icon"],[1,"me-2",3,"icon","class"],["draggable","false",1,"no-pointer-events"],[1,"me-2",3,"icon"]],template:function(t,n){t&1&&A(0,ti,1,9,"fa-icon",0)(1,oi,5,2,"div",1),t&2&&E(n.galleryMode?0:1)},dependencies:[me,pe],encapsulation:2});let o=r;return o})();function Se(o){o.file?.id?(o.file.isDir&&(o.file.mime=o.parent?.alias?Te:Y),o.mimeUrl=ee(o.file.mime)):o.mimeUrl=ee(o.parent?.alias?Te:Y)}function zt(o){let r,i=o.file.path?o.file.path.split("/").filter(t=>t&&t!=="."):[];if(o.parent?.id){if(!i.length)return[I.SPACES_SHARES,o.parent.alias];r=`${I.SPACES_SHARES}/${o.parent.alias}`}else o.file.space?.alias?o.file.inTrash?r=`${I.SPACES_TRASH}/${o.file.space.alias}`:(r=`${I.SPACES_FILES}/${o.file.space.alias}`,o.file.space?.root?.alias&&(i.length?r=`${r}/${o.file.space.root.alias}`:i.push(o.file.space.root.name))):o.file?.ownerId?r=`${o.file.inTrash?I.PERSONAL_TRASH:I.PERSONAL_FILES}`:console.warn("unable to find the right file path",o);let e=i.pop();return r&&i.length&&(r=`${r}/${i.join("/")}`),[r,e]}var w=class{constructor(r){this.members=[],this.links=[],this.hPerms={},this.setMembers(N("members",r),r.externalPath||r.file?.isDir?[k.SHARE_INSIDE]:[]),Object.assign(this,r),Se(this),this.checkFile(),this.setPermissions()}fallBackMimeUrl(){this.mimeUrl=ue}setMembers(r,i){if(r)for(let e of r)e.linkId?this.links.push(new H(e,[...i,k.SHARE_OUTSIDE])):this.members.push(new H(e,i))}checkFile(){this.file&&(!this.file.path&&this.file.space.root?.name&&(this.file.path=this.file.space.root.name,this.file.name=this.file.space.root.name),this.file.permissions&&(this.file.permissions=this.file.permissions.split(":").filter(r=>r===k.SHARE_INSIDE||r===k.ADD&&this.file.id&&!this.file.isDir?!1:!(r===k.DELETE&&this.file.id&&!this.file.isDir)).join(":")))}setPermissions(){typeof this.file?.permissions=="string"?this.hPerms=U(this.file.permissions):this.externalPath&&(this.hPerms=U(Yt))}};var Jt=(()=>{let r=class r{constructor(){this.http=S(W),this.router=S(se)}getShare(e){return this.http.get(`${h.BASE}/${e}`).pipe(f(t=>new w(t)))}createShare(e){return this.http.post(h.BASE,e).pipe(f(t=>new w(t)))}updateShare(e){return this.http.put(`${h.BASE}/${e.id}`,e).pipe(f(t=>new w(t)))}deleteShare(e){return this.http.delete(`${h.BASE}/${e}`)}listShares(){return this.http.get(Vt)}getShareChild(e,t){return this.http.get(`${h.BASE}/${e}/${h.CHILDREN}/${t}`).pipe(f(n=>new w(n)))}updateShareChild(e,t,n){return this.http.put(`${h.BASE}/${e}/${h.CHILDREN}/${t}`,n).pipe(f(p=>new w(p)))}deleteShareChild(e,t){return this.http.delete(`${h.BASE}/${e}/${h.CHILDREN}/${t}`)}listChildShares(e){return this.http.get(`${h.BASE}/${e}/${h.CHILDREN}`)}initShareFromFile(e,t,n=!1,p=!1){let C,x=null,T=v({id:0,name:"",createdAt:new Date,modifiedAt:new Date,storageIndexing:!0,enabled:!0},n?{parent:{id:0,ownerId:0,alias:t.space.alias,name:t.space.name}}:{});if(t){p&&(x=t.root.id);let Pe=null;(t?.root?.owner.login===e.login||!t?.space?.alias)&&(t.space=null,Pe=e.id),C=new w(L(v({},T),{name:t.name,file:L(v({},t),{path:p?".":bt(t.path,2),ownerId:Pe})}))}else C=new w(T);return[C,x]}goTo(e){if(!e.id)return $e(z(!1));if(e.externalPath&&!e.parent?.id)return this.router.navigate([I.SPACES_SHARES],{queryParams:{select:e.name}});if(e.parent?.id&&!e.file?.id&&e.file?.path.indexOf("/")===-1)return this.router.navigate([I.SPACES_SHARES],{queryParams:{select:e.parent.name}});{let[t,n]=zt(e);return this.router.navigate([t],{queryParams:{select:n}})}}};r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=R({token:r,factory:r.\u0275fac,providedIn:"root"});let o=r;return o})();var $=class{constructor(r){this.hTimeExpirationAgo=0,this.hPerms={},this.newly=0,Object.assign(this,r),Se(this),this.updatePermission(),this.updateTimes()}fallBackMimeUrl(){this.mimeUrl=ue}updatePermission(){this.hPerms=U(this.link.permissions)}updateTimes(){if(this.hTimeAccessAgo=M(this.link.currentAccess).fromNow(!0),this.newly=de(this.link.currentAccess),this.link.expiresAt){this.link.expiresAt=new Date(M(this.link.expiresAt).local().format("YYYY-MM-DD"));let r=Math.max(0,M(this.link.expiresAt).diff(M(),"hours"));r===0?this.hTimeExpirationAgo=0:r<=24?this.hTimeExpirationAgo=1:this.hTimeExpirationAgo=Math.round(r/24)+1}else this.hTimeExpirationAgo=0}};var j=class{constructor(r){this.roots=[],this.managers=[],this.members=[],this.links=[],this.hPerms={},this.newly=0,this.hPerms=U(r.permissions),this.setMembers(N("members",r)),this.setRoots(N("roots",r)),Object.assign(this,r),this.hTimeAgo=M(this.modifiedAt).fromNow(!0),this.newly=de(this.modifiedAt),this.sort()}addRoot(r,i=!1){r.hPerms=Nt(r.permissions,[k.SHARE_INSIDE]),r.owner?.login&&(r.owner.avatarUrl=It(r.owner.login)),r.file.mimeUrl=ee(r.file?.mime?r.file.mime:Y),i?this.roots.unshift(r):this.roots.push(r),r.isDir=r.file.mime===Y||!!r.externalPath}havePermission(r){return this.permissions.indexOf(r)>-1}setMembers(r){if(r)for(let i of r){let e=new H(i);e.isLink?this.links.push(e):e.spaceRole===he.IS_MANAGER?this.managers.push(e):this.members.push(e)}}setRoots(r){if(r)for(let i of r)this.addRoot(i)}sort(){Q(this.roots,"createdAt",!1),Q(this.managers,"createdAt",!1),Q(this.members,"createdAt",!1),Q(this.links,"createdAt",!1)}};var Qt=(()=>{let r=class r{constructor(){this.http=S(W)}listSpaces(){return this.http.get(wt).pipe(f(e=>e.map(t=>new j(t))))}getSpace(e){return this.http.get(`${u.BASE}/${e}`).pipe(f(t=>new j(t)))}getUserSpaceRoots(e){return this.http.get(`${u.BASE}/${e}/${u.ROOTS}`)}createUserSpaceRoots(e,t){return this.http.post(`${u.BASE}/${e}/${u.ROOTS}`,t)}updateUserSpaceRoots(e,t){return this.http.put(`${u.BASE}/${e}/${u.ROOTS}`,t)}updateSpace(e){return this.http.put(`${u.BASE}/${e.id}`,e).pipe(f(t=>t?new j(t):null))}createSpace(e){return this.http.post(u.BASE,e).pipe(f(t=>(t.permissions=Et,new j(t))))}deleteSpace(e,t){return this.http.request("delete",`${u.BASE}/${e}`,{body:t})}searchSpaces(e){return this.http.request("search",u.BASE,{body:e})}listSpaceShares(e){return this.http.get(`${u.BASE}/${e}/${u.SHARES}`)}getSpaceShare(e,t){return this.http.get(`${u.BASE}/${e}/${u.SHARES}/${t}`).pipe(f(n=>new w(n)))}updateSpaceShare(e,t){return this.http.put(`${u.BASE}/${e}/${u.SHARES}/${t.id}`,t).pipe(f(n=>new w(n)))}deleteSpaceShare(e,t){return this.http.delete(`${u.BASE}/${e}/${u.SHARES}/${t}`)}getSpaceShareLink(e,t){return this.http.get(`${u.BASE}/${e}/${u.LINKS}/${t}`).pipe(f(n=>new $(n)))}listTrashBins(){return this.http.get(xt)}checkSpaceRootPath(e){return this.http.post(Tt,{path:e})}};r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=R({token:r,factory:r.\u0275fac,providedIn:"root"});let o=r;return o})();var ai=o=>({dateInputFormat:"YYYY-MM-DD",containerClass:"theme-dark-blue",returnFocusToInput:!0,minDate:o,showWeekNumbers:!1}),li=(o,r)=>r.key;function pi(o,r){o&1&&(s(0,"span",4),c(1,"Edit link"),a())}function ci(o,r){o&1&&(s(0,"span",4),c(1,"New link"),a())}function mi(o,r){o&1&&g(0,"div",54)}function hi(o,r){if(o&1){let i=oe();s(0,"button",53),b(1,"translate"),ye("ngModelChange",function(t){let n=K(i).$implicit,p=d(3);return be(p.permissions[n.key],t)||(p.permissions[n.key]=t),V(t)}),D("ngModelChange",function(){K(i);let t=d(3);return V(t.onPermissionChange())}),g(2,"fa-icon",50),a(),A(3,mi,1,0,"div",54)}if(o&2){let i=r.$implicit,e=r.$index,t=r.$count,n=d(3);Ee("ngModel",n.permissions[i.key]),m("tooltip",y(1,4,n.SPACES_PERMISSIONS_TEXT[i.key].text,n.locale.language)),l(2),m("icon",n.SPACES_PERMISSIONS_TEXT[i.key].icon),l(),E(e===t-1?3:-1)}}function di(o,r){if(o&1&&(Ce(0,hi,4,7,null,null,li),b(2,"keyvalue")),o&2){let i=d(2);Ae(y(2,0,i.permissions,i.originalOrderKeyValue))}}function ui(o,r){if(o&1&&(s(0,"div",51),g(1,"app-share-repository",55),a()),o&2){let i=d(2);l(),m("share",i.share)("showIcon",!0)("showFullPath",!0)}}function fi(o,r){if(o&1){let i=oe();s(0,"div",44),g(1,"fa-icon",45),s(2,"div",46)(3,"span"),c(4),a(),s(5,"span",47),c(6),a()(),s(7,"div",48),A(8,di,3,3),s(9,"button",49),b(10,"translate"),D("click",function(){K(i);let t=d();return V(t.toggleRequireAuth())}),g(11,"fa-icon",50),a(),s(12,"button",49),b(13,"translate"),D("click",function(){K(i);let t=d();return V(t.copyToClipboard())}),g(14,"fa-icon",50),a()()(),A(15,ui,2,3,"div",51),g(16,"hr",52)}if(o&2){let i=d();l(),m("icon",i.icons.links),l(3),q(i.linkForm.value.name||i.linkForm.value.shareName),l(2),q(i.linkForm.value.email),l(2),E(i.share&&i.permissions?8:-1),l(),P(G("btn btn-sm ",i.linkForm.value.requireAuth?"btn-success":"btn-warning")),m("tooltip",y(10,15,"Password",i.locale.language)),l(2),m("icon",i.linkForm.value.requireAuth?i.icons.faLock:i.icons.faLockOpen),l(),P(G("btn btn-sm ms-2 ",i.linkWasCopied?"btn-info":"btn-secondary")),m("tooltip",y(13,18,"Copy link",i.locale.language)),l(2),m("icon",i.linkWasCopied?i.icons.faClipboardCheck:i.icons.faClipboard),l(),E(i.share?15:-1)}}function Si(o,r){if(o&1&&(s(0,"span"),c(1),a()),o&2){let i=d();P(G("badge rounded-pill ",(i.share?i.share.link.nbAccess:i.link.nbAccess)>=i.linkForm.value.limitAccess?"bg-danger":"bg-success")),l(),Ke(" ",i.share?i.share.link.nbAccess:i.link.nbAccess,"/",i.linkForm.value.limitAccess," ")}}function gi(o,r){if(o&1&&(s(0,"span",20),c(1),a()),o&2){let i=d();l(),q(i.share?i.share.link.nbAccess:i.link.nbAccess)}}function _i(o,r){if(o&1&&(s(0,"div",27)(1,"label",56),c(2,"Share name"),a(),g(3,"input",57),b(4,"translate"),a(),s(5,"div",27)(6,"label",58),c(7,"Share description"),a(),g(8,"input",59),b(9,"translate"),a()),o&2){let i=d();l(3),J("is-invalid",i.linkForm.controls.shareName.invalid),m("placeholder",y(4,4,"Share name",i.locale.language)),l(5),m("placeholder",y(9,7,"Share description",i.locale.language))}}function ki(o,r){if(o&1&&(s(0,"option",30),c(1),a()),o&2){let i=r.$implicit,e=d();m("ngValue",i),l(),q(e.i18nLanguageText[i])}}function Ci(o,r){if(o&1&&(s(0,"div",37),g(1,"app-password-strength-bar",60),a()),o&2){let i=d();l(),m("passwordToCheck",i.password)}}function Ai(o,r){if(o&1){let i=oe();s(0,"button",61),D("click",function(){K(i);let t=d();return V(t.confirmDeletion=!0)}),c(1," Remove "),a()}if(o&2){let i=d();m("disabled",i.confirmDeletion)}}var ge=(()=>{let r=class r{constructor(){this.layout=S(Z),this.parentSpaceId=null,this.isSharesRepo=!1,this.inSharesList=!1,this.submitEvent=new ke,this.shareChange=new ke,this.locale=S(le),this.confirmDeletion=!1,this.submitted=!1,this.SPACES_PERMISSIONS_TEXT=Dt,this.originalOrderKeyValue=yt,this.icons={faEye:ut,faEyeSlash:kt,links:B.LINKS,faClipboard:St,faClipboardCheck:ft,faLock:_t,faLockOpen:gt},this.languages=this.layout.getLanguages(),this.minDate=Ie(),this.defaultPassword=this.layout.translateString(Ct),this.passwordMinLength=8,this.password="",this.linkIsExpired=!1,this.linkIsHovered=!1,this.linkWasCopied=!1,this.i18nLanguageText=At,this.userService=S(Mt),this.sharesService=S(Jt),this.linksService=S(ei),this.spacesService=S(Qt),this.minDate.setDate(this.minDate.getDate()+1)}ngOnInit(){this.link?this.initLink():this.file?this.initFile():this.initShareLink(),this.linkForm.value.requireAuth&&(this.password=this.defaultPassword),this.linkForm.value.expiresAt&&this.isLinkIsExpired(this.share?this.share.link.expiresAt:this.link.expiresAt),this.linkForm.controls.expiresAt.valueChanges.subscribe(e=>this.isLinkIsExpired(e))}onPermissionChange(){let e=Ot(this.permissions);this.linkForm.controls.permissions.setValue(e),e!==this.share.link.permissions?this.linkForm.controls.permissions.markAsDirty():this.linkForm.controls.permissions.markAsPristine()}toggleRequireAuth(){this.linkForm.controls.requireAuth.setValue(!this.linkForm.value.requireAuth),this.linkForm.controls.requireAuth.markAsDirty()}copyToClipboard(){this.linksService.copyLinkToClipboard(this.share?this.share.link.uuid:this.link.uuid),this.linkWasCopied=!0,this.layout.sendNotification("info","Link copied",this.linkForm.value.name||this.linkForm.value.shareName),setTimeout(()=>this.linkWasCopied=!1,3e3)}onCancel(){this.confirmDeletion?this.confirmDeletion=!1:this.layout.closeDialog()}onSubmit(){if(this.submitted=!0,this.confirmDeletion){(this.parentSpaceId?this.spacesService.deleteSpaceShare(this.parentSpaceId,this.share.id):this.sharesService.deleteShare(this.share.id)).subscribe({next:()=>{this.layout.sendNotification("success","Link deleted",this.share.link.name||this.share.name),this.shareChange.emit(["delete",this.share]),this.layout.closeDialog()},error:p=>{this.layout.sendNotification("error","Delete share",this.share.name,p),this.layout.closeDialog()}});return}if(this.file?.id){let t=this.share,{link:n}=t,p=Re(t,["link"]),C=L(v(v({},n),this.linkForm.value),{password:this.mustIncludePassword()?this.password:void 0});p.name=N("shareName",C),p.description=N("shareDescription",C);let x=this.linksService.shareLinkGuestToMember(-1,-1,C);this.sharesService.createShare(L(v({},p),{type:De.LINK,links:[x]})).subscribe({next:T=>{this.shareChange.emit(["add",T]),this.layout.sendNotification("success","Link created",n.name||T.name),this.layout.closeDialog()},error:T=>{this.layout.sendNotification("error","Link error",this.share.name,T),this.layout.closeDialog()}});return}let e={};for(let n in this.linkForm.controls)this.linkForm.controls[n].dirty&&(e[n]=this.linkForm.controls[n].value);if(this.mustIncludePassword()&&(e.password=this.password),this.share?.id){Object.keys(e).length&&this.linksService.updateLinkFromSpaceOrShare(this.share.link.id,this.share.id,Lt.SHARE,e).subscribe({next:n=>{this.share.name=this.linkForm.value.shareName,this.share.description=this.linkForm.value.shareDescription,this.share.link=Object.assign(this.share.link,n),this.share.updateTimes(),this.share.updatePermission(),this.shareChange.emit(["update",this.share]),this.layout.closeDialog()},error:n=>{this.layout.sendNotification("error","Link error",this.share.link.name||this.share.name,n),this.layout.closeDialog()}}),this.layout.closeDialog();return}this.submitEvent.emit(e)}initFile(){let e=this.sharesService.initShareFromFile(this.userService.user,this.file,this.isSharesRepo,this.inSharesList)[0];this.share=L(v({},e),{link:{id:-1,userId:-1,uuid:"",isActive:!0,requireAuth:!1,permissions:"",nbAccess:0,limitAccess:0}}),this.linksService.genUUID().subscribe(t=>this.share.link.uuid=t),this.initShareLink(),this.onPermissionChange()}initShareLink(){this.linkForm=new ve({shareName:new _(this.share.name,ae.required),shareDescription:new _(this.share.description||""),name:new _(this.share.link?.name||""),email:new _(this.share.link?.email||"",ae.email),language:new _(this.share.link.language||null),limitAccess:new _(this.share.link.limitAccess||null),expiresAt:new _(this.share.link.expiresAt||null),requireAuth:new _(this.share.link.requireAuth||!1),permissions:new _(this.share.link.permissions),isActive:new _(this.share.link.isActive)}),this.permissions=$t(this.share.file.permissions,this.share.link.permissions,[k.SHARE_INSIDE,k.SHARE_OUTSIDE,...this.share.file.isDir?[]:[k.DELETE,k.ADD]])}initLink(){this.linkForm=new ve({shareName:new _(""),shareDescription:new _(""),name:new _(this.link.name||""),email:new _(this.link.email||"",ae.email),language:new _(this.link.language||null),limitAccess:new _(this.link.limitAccess||null),expiresAt:new _(this.link.expiresAt||null),requireAuth:new _(this.link.requireAuth||!1),permissions:new _(this.link.permissions),isActive:new _(this.link.isActive)}),this.link.id||(this.linkForm.controls.name.markAsDirty(),this.linkForm.controls.isActive.markAsDirty())}isLinkIsExpired(e){if(e==null){if(this.linkIsExpired=!1,e===null)return;this.linkForm.controls.expiresAt.setValue(null)}this.linkIsExpired=Ie()>=e}mustIncludePassword(){return!!this.password.length&&this.password!==this.defaultPassword}};r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=re({type:r,selectors:[["app-link-dialog"]],inputs:{share:"share",parentSpaceId:"parentSpaceId",link:"link",file:"file",isSharesRepo:"isSharesRepo",inSharesList:"inSharesList"},outputs:{submitEvent:"submitEvent",shareChange:"shareChange"},decls:73,vars:52,consts:[[1,"modal-header","align-items-center"],[1,"modal-title"],[1,"me-2",3,"icon"],[1,"modal-title","ms-auto"],["l10nTranslate",""],["aria-label","Close","type","button",1,"btn-close","btn-close-white","ms-2",3,"click"],[1,"modal-body"],["autocomplete","off",3,"formGroup"],[1,"d-flex"],[1,"d-flex","flex-column","flex-grow-1"],[1,"d-flex","align-items-center","cursor-pointer","py-2",3,"mouseover","mouseleave","focus","click"],["for","link","l10nTranslate",""],["id","link",1,"ms-auto"],[1,"d-flex","align-items-center","py-2"],["for","state","l10nTranslate","",1,"cursor-pointer","me-auto"],[1,"d-flex","align-items-center","form-check","form-switch","cursor-pointer"],["id","state","formControlName","isActive","type","checkbox","role","button",1,"form-check-input"],["for","access","l10nTranslate",""],["id","access",1,"ms-auto"],[3,"class"],[1,"badge","rounded-pill","bg-success"],[1,"d-flex","align-items-center"],["for","guestName","l10nTranslate",""],["id","guestName","formControlName","name","type","text",1,"form-control","form-control-sm","ms-auto","w-50",3,"placeholder"],[1,"d-flex","align-items-center","justify-content-between","px-0"],["for","guestEmail","l10nTranslate",""],["id","guestEmail","autocomplete","off","formControlName","email","type","email",1,"form-control","form-control-sm","ms-auto","w-50",3,"placeholder"],[1,"d-flex","align-items-center","justify-content-between"],["for","guestLanguage","l10nTranslate",""],["id","guestLanguage","formControlName","language",1,"form-control","form-select","form-select-sm","ms-auto","w-50"],[3,"ngValue"],["for","limitAccess","l10nTranslate",""],["id","limitAccess","formControlName","limitAccess","min","1","type","number",1,"form-control","form-control-sm","ms-auto","w-50",3,"placeholder"],["for","expiration","l10nTranslate",""],["bsDatepicker","","id","expiration","formControlName","expiresAt","placement","left","type","text",1,"form-control","form-control-sm","ms-auto","w-50",3,"placeholder","bsConfig"],[1,"d-flex","align-items-center","px-0"],["for","requireAuth","translate","",1,"cursor-pointer","me-auto"],[1,"d-flex","align-items-center","d-none","d-sm-flex","mx-auto"],["id","requireAuth","formControlName","requireAuth","type","checkbox","role","button",1,"form-check-input"],["placeholder","Set a password",2,"width","45%",3,"passwordChange","isRequired","disabled","passwordMinLength","password","showGenerator"],[1,"modal-footer"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"disabled"],["data-dismiss","modal","type","button","l10nTranslate","",1,"btn","btn-sm","btn-secondary","ms-auto",3,"click"],["type","button","l10nTranslate","",3,"click","disabled"],[1,"d-flex","flex-fill","align-items-center"],[1,"circle-primary-icon","me-2",3,"icon"],[1,"d-flex","flex-column","overflow-wrap-and-whitespace","me-2"],[1,"fs-xxxs"],[1,"d-flex","ms-auto"],["container","body","type","button",3,"click","tooltip"],["size","lg",3,"icon"],[1,"d-flex","align-items-center","d-none","d-sm-flex","py-2"],[1,"my-2"],["btnCheckbox","","type","button",1,"btn","btn-sm","btn-custom","me-0","ms-2",3,"ngModelChange","ngModel","tooltip"],[1,"vr","mx-2"],["id","file",3,"share","showIcon","showFullPath"],["for","shareName","l10nTranslate",""],["id","shareName","formControlName","shareName","type","email",1,"form-control","form-control-sm","ms-auto","w-50",3,"placeholder"],["for","shareDescription","l10nTranslate",""],["id","shareDescription","formControlName","shareDescription","type","email",1,"form-control","form-control-sm","ms-auto","w-50",3,"placeholder"],[3,"passwordToCheck"],["type","button","l10nTranslate","",1,"btn","btn-sm","btn-danger",3,"click","disabled"]],template:function(t,n){t&1&&(s(0,"div",0)(1,"h4",1),g(2,"fa-icon",2),s(3,"span"),c(4),a()(),s(5,"h4",3),A(6,pi,2,0,"span",4)(7,ci,2,0,"span",4),a(),s(8,"button",5),D("click",function(){return n.layout.closeDialog()}),a()(),s(9,"div",6),A(10,fi,17,21),s(11,"form",7)(12,"div",8)(13,"div",9)(14,"div",10),D("mouseover",function(){return n.linkIsHovered=!0})("mouseleave",function(){return n.linkIsHovered=!1})("focus",function(){return n.linkIsHovered=!0})("click",function(){return n.copyToClipboard()}),s(15,"label",11),c(16,"Link"),a(),s(17,"span",12),c(18),a()(),s(19,"div",13)(20,"label",14),c(21,"Active"),a(),s(22,"div",15),g(23,"input",16),s(24,"span"),c(25),b(26,"translate"),a()()(),s(27,"div",13)(28,"label",17),c(29,"Current access count"),a(),s(30,"span",18),A(31,Si,2,5,"span",19)(32,gi,2,1,"span",20),a()(),A(33,_i,10,10),s(34,"div",21)(35,"label",22),c(36,"Guest name"),a(),g(37,"input",23),b(38,"translate"),a(),s(39,"div",24)(40,"label",25),c(41,"Guest email"),a(),g(42,"input",26),b(43,"translate"),a(),s(44,"div",27)(45,"label",28),c(46,"Guest language"),a(),s(47,"select",29),Ce(48,ki,2,2,"option",30,He),a()(),s(50,"div",27)(51,"label",31),c(52,"Limit access"),a(),g(53,"input",32),b(54,"translate"),a(),s(55,"div",27)(56,"label",33),c(57,"Expiration"),a(),g(58,"input",34),b(59,"translate"),a(),s(60,"div",35)(61,"label",36),c(62,"Password"),a(),A(63,Ci,2,1,"div",37),s(64,"div",15),g(65,"input",38),a(),s(66,"app-input-password",39),ye("passwordChange",function(C){return be(n.password,C)||(n.password=C),C}),a()()()()()(),s(67,"div",40),A(68,Ai,2,1,"button",41),s(69,"button",42),D("click",function(){return n.onCancel()}),c(70,"Cancel"),a(),s(71,"button",43),D("click",function(){return n.onSubmit()}),c(72),a()()),t&2&&(l(2),m("icon",n.icons.links),l(2),q(n.linkForm.value.name||n.linkForm.value.shareName),l(2),E(n.share!=null&&n.share.id||n.link!=null&&n.link.id?6:7),l(4),E(n.share||n.link?10:-1),l(),m("formGroup",n.linkForm),l(6),J("text-primary",n.linkIsHovered),l(),O(" ",n.share?n.share.link.uuid:n.link.uuid," "),l(6),P(G("badge rounded-pill ms-3 ",n.linkForm.value.isActive?"bg-primary":"bg-danger")),l(),O(" ",y(26,35,n.linkForm.value.isActive?"yes":"no",n.locale.language)," "),l(6),E(n.linkForm.value.limitAccess?31:32),l(2),E(n.share?33:-1),l(4),m("placeholder",y(38,38,"Guest name",n.locale.language)),l(5),J("is-invalid",n.linkForm.controls.email.invalid),m("placeholder",y(43,41,"Guest email",n.locale.language)),l(6),Ae(n.languages),l(5),m("placeholder",y(54,44,"Unlimited",n.locale.language)),l(5),J("text-danger",n.linkIsExpired),m("placeholder",y(59,47,"Never expires",n.locale.language))("bsConfig",Ve(50,ai,n.minDate)),l(5),E(n.linkForm.value.requireAuth&&n.password!==n.defaultPassword?63:-1),l(3),m("isRequired",n.linkForm.value.requireAuth)("disabled",!n.linkForm.value.requireAuth)("passwordMinLength",n.passwordMinLength),Ee("password",n.password),m("showGenerator",!0),l(2),E(n.share!=null&&n.share.id?68:-1),l(3),P(G("btn btn-sm ",n.confirmDeletion?"btn-danger":"btn-primary")),m("disabled",n.linkForm.invalid||n.linkForm.controls.requireAuth.value&&n.password.length<n.passwordMinLength||n.submitted),l(),O(" ",n.confirmDeletion?"Confirm deletion":"Confirm"," "))},dependencies:[me,at,ht,ct,mt,Bt,Ft,ot,ze,it,nt,We,Je,Ge,tt,Ze,Ye,rt,Xe,Pt,pt,lt,st,Qe,et,Xt,Ht,qe,pe],encapsulation:2});let o=r;return o})();var ei=(()=>{let r=class r{constructor(){this.router=S(se),this.http=S(W),this.layout=S(Z),this.authService=S(Ut),this.clipboard=S(Zt)}shareLinksList(){return this.http.get(qt).pipe(f(e=>e.map(t=>new $(t))))}shareLink(e){return this.http.get(`${te}/${e}`).pipe(f(t=>new $(t)))}shareLinkChild(e,t){return this.http.get(`${te}/${e}/${h.CHILDREN}/${t}`).pipe(f(n=>new $(n)))}linkFromSpaceOrShare(e,t,n){return this.http.get(`${te}/${e}/${n}/${t}`)}linkValidation(e){return this.http.get(`${jt}/${e}`).pipe(f(t=>t.ok?t.link:(t.error&&(t.error===we.UNAUTHORIZED?this.router.navigate([`${F.LINK}/${e}/${F.AUTH}`]).catch(console.error):this.router.navigate([`${F.LINK}/${e}/${t.error}`]).catch(console.error)),!1)),_e(()=>(this.authService.logout(),z(!1))))}linkAccess(e,t){t.share?.isDir||t.space?.alias?this.http.get(`${Le}/${e}`).subscribe(n=>{this.authService.initUserFromResponse(n),t.space?this.router.navigate([I.SPACES,t.space.alias]).catch(console.error):this.router.navigate([I.SPACES_SHARES,t.share.alias]).catch(console.error)}):vt(`${Le}/${e}`)}linkAuthentication(e,t){return this.http.post(`${Kt}/${e}`,{password:t}).pipe(f(n=>(this.authService.initUserFromResponse(n),this.router.navigate([`${F.LINK}/${e}`]).catch(console.error),!0)),_e(n=>(n.error.message===we.UNAUTHORIZED?this.layout.sendNotification("warning","Link","Bad password"):this.router.navigate([`${F.LINK}/${e}/${n.error.message}`]).catch(console.error),z(!1))))}copyLinkToClipboard(e){this.clipboard.copyFromContent(this.genLink(e))}genUUID(){return this.http.get(Gt).pipe(f(e=>e.uuid))}createLinkDialog(e){this.genUUID().subscribe(t=>{let n=this.layout.openDialog(ge,"md",{initialState:{link:{name:e.name,uuid:t,isActive:!0,nbAccess:0}}});this.subscribeToSubmitLinkModal(n,e)})}updateLinkFromSpaceOrShare(e,t,n,p){return this.http.put(`${te}/${e}/${n}/${t}`,p)}editLinkDialog(e,t,n){if(t.id===0||e?.linkSettings?.uuid){let p=this.layout.openDialog(ge,"md",{initialState:{link:e.linkSettings}});this.subscribeToSubmitLinkModal(p,t,e)}else this.linkFromSpaceOrShare(e.linkId,t.id,n).subscribe({next:p=>{let C=this.layout.openDialog(ge,"md",{initialState:{link:L(v({},p),{permissions:e.permissions})}});this.subscribeToSubmitLinkModal(C,t,e)},error:p=>this.layout.sendNotification("error","Link error",e.name||t.name,p)})}shareLinkGuestToMember(e,t,n){return new H({id:e,linkId:t,name:n.name,description:n.email,createdAt:n.createdAt,permissions:n.permissions,type:Rt.LINK,spaceRole:he.IS_MEMBER,linkSettings:n},[k.SHARE_INSIDE,k.SHARE_OUTSIDE])}subscribeToSubmitLinkModal(e,t,n){e.content.submitEvent.pipe(Oe(1)).subscribe(p=>{if(Object.keys(p).length){let C=Object.assign(e.content.link,p),x=this.shareLinkGuestToMember(C.userId||-(t.links.length+1),n?.linkId||-(t.links.length+1),C);x.linkId?t.links=[x,...t.links.filter(T=>T.linkId!==x.linkId)]:t.links=[x,...t.links]}e.content.layout.closeDialog()})}genLink(e){return`${document.location.origin}/#/${F.LINK}/${e}`}};r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=R({token:r,factory:r.\u0275fac,providedIn:"root"});let o=r;return o})();export{Zt as a,De as b,Xt as c,Se as d,w as e,Jt as f,j as g,Qt as h,ge as i,ei as j};
|