@oj-module/cli 0.2.64 → 0.2.67
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/bin/.oj-version +1 -0
- package/bin/oj +4 -0
- package/devkit/README.md +18 -4
- package/devkit/SKILL.md +35 -3
- package/devkit/framework-dev.md +22 -11
- package/devkit/manual.md +161 -68
- package/devkit/menu-rules.md +4 -1
- package/devkit/publish-walkthrough.md +110 -37
- package/devkit/wecom-internal-app.md +7 -2
- package/devkit/wecom-multi-corp-links.md +163 -0
- package/package.json +3 -2
- package/shell-dist/assets/ahooks.2l850ymmh0.js +18 -0
- package/shell-dist/assets/antd-es-locale-zh_CN.1gjjsvxbf0.js +1 -0
- package/shell-dist/assets/antd-img-crop.196rkty480.js +99 -0
- package/shell-dist/assets/antd-locale-en_US.561tozx860.js +1 -0
- package/shell-dist/assets/antd-locale-zh_CN.1cmpmgzh70.js +1 -0
- package/shell-dist/assets/antd.uw1coq15l0.js +348 -0
- package/shell-dist/assets/clsx.jotilrt2e0.js +1 -0
- package/shell-dist/assets/contract-errors.2o17vz9u50.js +1 -0
- package/shell-dist/assets/contract.3h327o3mj0.js +57 -0
- package/shell-dist/assets/cssinjs.atgmhan7m0.js +3 -0
- package/shell-dist/assets/dayjs-plugin-advancedFormat.3vsyd2eis0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-customParseFormat.13xhghv1d0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-isoWeek.1fn1tw82p0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-localeData.2rwbjp9nk0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-quarterOfYear.2oqo1lcx80.js +1 -0
- package/shell-dist/assets/dayjs-plugin-relativeTime.2pqs3et4y0.js +1 -0
- package/shell-dist/assets/dayjs-plugin-weekOfYear.gvn9iph080.js +1 -0
- package/shell-dist/assets/dayjs-plugin-weekYear.2u78l3ex10.js +1 -0
- package/shell-dist/assets/dayjs-plugin-weekday.2d56a4tml0.js +1 -0
- package/shell-dist/assets/dayjs.pa60l6wjo0.js +1 -0
- package/shell-dist/assets/dnd-kit-core.1xyreig6r0.js +5 -0
- package/shell-dist/assets/dnd-kit-sortable.s94qciuft0.js +1 -0
- package/shell-dist/assets/dnd-kit-utilities.1umw4xphb0.js +1 -0
- package/shell-dist/assets/i18next.33zqofapj0.js +1 -0
- package/shell-dist/assets/icons-es-components-Context.365qmflwg0.js +1 -0
- package/shell-dist/assets/icons.159wjwals0.js +57 -0
- package/shell-dist/assets/{index-xZhmujjM.js → index.6alqyx6ae0.js} +21 -1
- package/shell-dist/assets/jsx-dev-runtime.3uibuc82f0.js +14 -0
- package/shell-dist/assets/jsx-runtime.h40xu4o5b0.js +14 -0
- package/shell-dist/assets/keepalive-for-react.xenu5vam70.js +1 -0
- package/shell-dist/assets/kit.37kr8ui390.js +1 -0
- package/shell-dist/assets/ky.1cgch7gu60.js +6 -0
- package/shell-dist/assets/motion-react.pjsxytvjs0.js +12 -0
- package/shell-dist/assets/motion.21tciqutg0.js +4 -0
- package/shell-dist/assets/nprogress.2nz76n9ny0.js +7 -0
- package/shell-dist/assets/ojm-dayjs-locale-zh-cn.3vr3beiyp0.js +9 -0
- package/shell-dist/assets/pinyin-pro.3v0mnxczn0.js +1 -0
- package/shell-dist/assets/pro-components.2kyot1vcl0.js +83 -0
- package/shell-dist/assets/react-countup.2x8idnr8y0.js +10 -0
- package/shell-dist/assets/react-dom-client.ick0v05ob0.js +43 -0
- package/shell-dist/assets/react-dom.2so9uxg3f0.js +22 -0
- package/shell-dist/assets/react-error-boundary.2dncdfj3b0.js +1 -0
- package/shell-dist/assets/react-i18next.auhvjhqv00.js +1 -0
- package/shell-dist/assets/react-jss.1ei6dr9e00.js +29 -0
- package/shell-dist/assets/react-query.3rln45ow00.js +1 -0
- package/shell-dist/assets/react-router-dom.3c6zld8h40.js +44 -0
- package/shell-dist/assets/react-router.2h9rebcv50.js +56 -0
- package/shell-dist/assets/react.1ew63mwts0.js +14 -0
- package/shell-dist/assets/runtime.2dgstpjsu0.js +21702 -0
- package/shell-dist/assets/simplebar-react.2g739uvai0.js +1 -0
- package/shell-dist/assets/spin-delay.yjeyj6iwp0.js +9 -0
- package/shell-dist/assets/tailwind-merge.125ehiqjw0.js +1 -0
- package/shell-dist/assets/use-sync-external-store-shim.1nz1pi9bb0.js +22 -0
- package/shell-dist/assets/zustand-middleware.1xaxjueme0.js +6 -0
- package/shell-dist/assets/zustand-react-shallow.pybayv1hx0.js +1 -0
- package/shell-dist/assets/zustand-react.9fsl9brxy0.js +1 -0
- package/shell-dist/assets/zustand-shallow.6cz0yyv9x0.js +1 -0
- package/shell-dist/assets/zustand-vanilla-shallow.3424monv50.js +1 -0
- package/shell-dist/assets/zustand-vanilla.1mo3ka3g30.js +1 -0
- package/shell-dist/assets/zustand.3gjgzlnqo0.js +1 -0
- package/shell-dist/index.html +67 -118
- package/shell-dist/versions.json +3 -3
- package/src/__tests__/publish-keygen.test.ts +157 -0
- package/src/__tests__/templates-migration-schema-parity.test.ts +540 -0
- package/src/__tests__/templates-schema-columns.test.ts +15 -2
- package/src/__tests__/templates-tenant-scope.test.ts +6 -2
- package/src/bundle.ts +8 -3
- package/src/cli.ts +17 -5
- package/src/dev.ts +15 -10
- package/src/esm-exports.ts +152 -70
- package/src/install.ts +11 -4
- package/src/keygen.ts +54 -0
- package/src/lifecycle/__tests__/bundle.test.ts +21 -3
- package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/manifest.yaml +1 -1
- package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/migrations/0001__init.sql +2 -2
- package/src/lifecycle/__tests__/fixtures/fixture-valid/api/src/demo-solution/schema.yaml +5 -2
- package/src/lifecycle/__tests__/fixtures/fixture-valid/manifest.yaml +1 -1
- package/src/lifecycle/__tests__/manifest-contract.test.ts +75 -3
- package/src/lifecycle/__tests__/smoke.test.ts +2 -2
- package/src/manifest-contract.ts +91 -8
- package/src/market/bootstrap.ts +26 -2
- package/src/market/command.ts +1 -0
- package/src/market/publish.ts +5 -1
- package/src/market/walkthrough.ts +24 -8
- package/src/shared-deps.ts +69 -19
- package/src/site-base.ts +4 -0
- package/src/site.ts +2 -0
- package/src/usage.ts +8 -4
- package/src/vendor.ts +5 -1
- package/templates/config.yaml +4 -2
- package/templates/init.include.yaml +8 -3
- package/templates/openapi.json +460 -1
- package/templates/src/app/api/_platform/_lifecycle/compensate.ts +136 -0
- package/templates/src/app/api/_platform/_lifecycle/installer.ts +71 -22
- package/templates/src/app/api/_platform/_lifecycle/lock.ts +23 -0
- package/templates/src/app/api/_platform/_lifecycle/steps/deploy-web.ts +28 -0
- package/templates/src/app/api/_platform/_lifecycle/steps/preflight.ts +46 -0
- package/templates/src/app/api/_platform/_lifecycle/steps/reload.ts +100 -36
- package/templates/src/app/api/_platform/_lifecycle/steps/smoke.ts +7 -15
- package/templates/src/app/api/_platform/_lifecycle/text-edit.ts +71 -19
- package/templates/src/app/api/_platform/_lifecycle/types.ts +26 -2
- package/templates/src/app/api/_platform/_lifecycle/uninstall.ts +93 -14
- package/templates/src/app/api/_platform/_shared/service/domain/settings.ts +8 -4
- package/templates/src/app/api/_platform/manifest.yaml +1 -0
- package/templates/src/app/api/_platform/market/api.ts +235 -10
- package/templates/src/app/api/_platform/migrations/0001__baseline.mysql.sql +178 -0
- package/templates/src/app/api/_platform/migrations/0001__baseline.pg.sql +173 -0
- package/templates/src/app/api/_platform/migrations/0001__baseline.sql +188 -0
- package/templates/src/app/api/_platform/migrations/0002__market_release.mysql.sql +17 -0
- package/templates/src/app/api/_platform/migrations/0002__market_release.pg.sql +16 -0
- package/templates/src/app/api/_platform/migrations/0002__market_release.sql +33 -0
- package/templates/src/app/api/_platform/schema.yaml +18 -0
- package/templates/src/app/api/_platform/seed.mysql.sql +10 -0
- package/templates/src/app/api/_platform/seed.pg.sql +10 -0
- package/templates/src/app/api/auth/_shared/wecom/client.ts +24 -4
- package/templates/src/app/api/home/migrations/0001__create_home_tables.mysql.sql +14 -0
- package/templates/src/app/api/home/migrations/0001__create_home_tables.pg.sql +14 -0
- package/templates/src/app/api/home/migrations/0002__tenant.pg.sql +4 -0
- package/templates/src/app/api/home/seed.mysql.sql +71 -0
- package/templates/src/app/api/home/seed.pg.sql +71 -0
- package/templates/src/app/api/notification/_shared/notify.ts +6 -6
- package/templates/src/app/api/notification/migrations/0001__create_notifications.mysql.sql +11 -0
- package/templates/src/app/api/notification/migrations/0001__create_notifications.pg.sql +11 -0
- package/templates/src/app/api/notification/migrations/0002__notifications_user.mysql.sql +8 -0
- package/templates/src/app/api/notification/migrations/0003__notifications_broadcast.mysql.sql +21 -0
- package/templates/src/app/api/notification/migrations/0003__notifications_broadcast.pg.sql +22 -0
- package/templates/src/app/api/notification/migrations/0004__notifications_broadcast_hidden.mysql.sql +10 -0
- package/templates/src/app/api/notification/migrations/0004__notifications_broadcast_hidden.pg.sql +11 -0
- package/templates/src/app/api/notification/migrations/0005__tenant.pg.sql +6 -0
- package/templates/src/app/api/notification/seed.mysql.sql +8 -0
- package/templates/src/app/api/notification/seed.pg.sql +11 -0
- package/templates/src/app/api/publish/_shared/identity.ts +69 -0
- package/templates/src/app/api/publish/api.ts +349 -0
- package/templates/src/app/api/publish/manifest.yaml +8 -0
- package/templates/src/app/api/publish/migrations/0001__publish_credential.mysql.sql +23 -0
- package/templates/src/app/api/publish/migrations/0001__publish_credential.pg.sql +23 -0
- package/templates/src/app/api/publish/migrations/0001__publish_credential.sql +39 -0
- package/templates/src/app/api/publish/schema.yaml +33 -0
- package/templates/src/app/api/system/login-methods/api.ts +2 -1
- package/templates/src/app/web/_platform/__client/api.schemas.ts +15 -0
- package/templates/src/app/web/_platform/__client/index.ts +25 -1
- package/templates/src/app/web/entry.ts +9 -5
- package/templates/src/app/web/home/pages/components/bar-chart.tsx +5 -3
- package/templates/src/app/web/home/pages/components/echarts-setup.ts +30 -0
- package/templates/src/app/web/home/pages/components/line-chart.tsx +5 -3
- package/templates/src/app/web/home/pages/components/pie-chart.tsx +6 -3
- package/templates/src/app/web/home/pages/index.tsx +3 -2
- package/templates/src/app/web/home/routes.ts +8 -2
- package/templates/src/app/web/login/locales/en-US.json +7 -1
- package/templates/src/app/web/login/locales/zh-CN.json +7 -1
- package/templates/src/app/web/login/pages/login.tsx +79 -86
- package/templates/src/app/web/login/routes.ts +54 -1
- package/templates/src/app/web/personal-center/locales/en-US.json +1 -0
- package/templates/src/app/web/personal-center/locales/zh-CN.json +1 -0
- package/templates/src/app/web/personal-center/pages/my-profile/index.tsx +5 -0
- package/templates/src/app/web/system/__client/api.schemas.ts +2 -1
- package/templates/src/app/web/system/locales/en-US.json +1 -8
- package/templates/src/app/web/system/locales/zh-CN.json +1 -8
- package/templates/src/app/web/system/pages/settings/index.tsx +17 -4
- package/templates/src/app/web/system/routes.ts +0 -6
- package/templates/src/oj-market/web/__tests__/CardGrid.test.tsx +33 -0
- package/templates/src/oj-market/web/__tests__/DetailDrawer.test.tsx +69 -0
- package/templates/src/oj-market/web/__tests__/marketClient.fake.ts +7 -1
- package/templates/src/oj-market/web/api/client.ts +3 -0
- package/templates/src/oj-market/web/api/defaultClient.ts +5 -0
- package/templates/src/oj-market/web/components/CardItem.tsx +44 -1
- package/templates/src/oj-market/web/components/DetailDrawer.tsx +17 -1
- package/templates/src/oj-market/web/entry.ts +31 -2
- package/templates/src/oj-market/web/locales/en-US.json +5 -1
- package/templates/src/oj-market/web/locales/zh-CN.json +5 -1
- package/templates/src/oj-market/web/publish/__client/api.schemas.ts +61 -0
- package/templates/src/oj-market/web/publish/__client/index.ts +164 -0
- package/templates/src/oj-market/web/publish/locales/en-US.json +80 -0
- package/templates/src/oj-market/web/publish/locales/zh-CN.json +80 -0
- package/templates/src/oj-market/web/publish/pages/history.tsx +112 -0
- package/templates/src/oj-market/web/publish/pages/index.tsx +196 -0
- package/templates/src/oj-market/web/publish/pages/model.ts +52 -0
- package/templates/src/oj-market/web/publish/pages/token-modal.tsx +82 -0
- package/templates/src/oj-market/web/publish/routes.ts +41 -0
- package/templates/src/oj-market/web/types.ts +30 -0
- package/templates/tests/lifecycle/compensate.spec.ts +207 -0
- package/templates/tests/lifecycle/deploy-smoke.spec.ts +38 -14
- package/templates/tests/lifecycle/installer.spec.ts +28 -9
- package/templates/tests/lifecycle/market-api.spec.ts +164 -12
- package/templates/tests/lifecycle/preflight.spec.ts +68 -0
- package/templates/tests/lifecycle/role-title-translate.spec.ts +2 -32
- package/templates/tests/lifecycle/text-edit.spec.ts +45 -27
- package/templates/tests/lifecycle/uninstall.spec.ts +36 -0
- package/templates/tests/publish-credential.spec.ts +354 -0
- package/templates/tests/publish-identity.spec.ts +44 -0
- package/templates/tests/wecom-client-timeout.spec.ts +33 -3
- package/templates/tests/wecom-landing.spec.ts +63 -1
- package/templates/tsconfig.paths.json +1 -0
- package/templates/web.config.ts +6 -4
- package/vendor/host-versions.json +3 -3
- package/shell-dist/assets/ahooks.js +0 -6909
- package/shell-dist/assets/antd-es-locale-zh_CN.js +0 -257
- package/shell-dist/assets/antd-img-crop.js +0 -1495
- package/shell-dist/assets/antd-locale-en_US.js +0 -374
- package/shell-dist/assets/antd-locale-zh_CN.js +0 -379
- package/shell-dist/assets/antd.js +0 -106874
- package/shell-dist/assets/clsx.js +0 -33
- package/shell-dist/assets/contract-errors.js +0 -30
- package/shell-dist/assets/contract.js +0 -18900
- package/shell-dist/assets/cssinjs.js +0 -2595
- package/shell-dist/assets/dayjs-plugin-advancedFormat.js +0 -98
- package/shell-dist/assets/dayjs-plugin-customParseFormat.js +0 -173
- package/shell-dist/assets/dayjs-plugin-isoWeek.js +0 -77
- package/shell-dist/assets/dayjs-plugin-localeData.js +0 -126
- package/shell-dist/assets/dayjs-plugin-quarterOfYear.js +0 -77
- package/shell-dist/assets/dayjs-plugin-relativeTime.js +0 -92
- package/shell-dist/assets/dayjs-plugin-weekOfYear.js +0 -73
- package/shell-dist/assets/dayjs-plugin-weekYear.js +0 -63
- package/shell-dist/assets/dayjs-plugin-weekday.js +0 -63
- package/shell-dist/assets/dayjs.js +0 -326
- package/shell-dist/assets/dnd-kit-core.js +0 -3601
- package/shell-dist/assets/dnd-kit-sortable.js +0 -717
- package/shell-dist/assets/dnd-kit-utilities.js +0 -340
- package/shell-dist/assets/i18next.js +0 -2321
- package/shell-dist/assets/icons-es-components-Context.js +0 -20
- package/shell-dist/assets/icons.js +0 -34961
- package/shell-dist/assets/jsx-dev-runtime.js +0 -75
- package/shell-dist/assets/jsx-runtime.js +0 -97
- package/shell-dist/assets/keepalive-for-react.js +0 -283
- package/shell-dist/assets/kit.js +0 -151
- package/shell-dist/assets/ky.js +0 -1427
- package/shell-dist/assets/motion-react.js +0 -13589
- package/shell-dist/assets/motion.js +0 -9959
- package/shell-dist/assets/nprogress.js +0 -314
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-BarsOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CalendarOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretDownOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CaretUpOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CheckOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ClockCircleOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CloseOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-CopyOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DeleteOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleLeftOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DoubleRightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-DownloadOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EditOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EllipsisOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EnterOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ExclamationCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeInvisibleOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-EyeOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FileTextOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FilterFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOpenOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-FolderOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-HolderOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-InfoCircleFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-LeftOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-LoadingOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-MinusSquareOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PaperClipOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PictureOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-PlusSquareOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-QuestionCircleOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ReloadOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-RightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateLeftOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-RotateRightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-SearchOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-StarFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-SwapRightOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-UpOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-VerticalAlignTopOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-WarningFilled.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomInOutlined.js +0 -7
- package/shell-dist/assets/ojm--ant-design-icons-es-icons-ZoomOutOutlined.js +0 -7
- package/shell-dist/assets/ojm-dayjs-locale-zh-cn.js +0 -81
- package/shell-dist/assets/pinyin-pro.js +0 -25175
- package/shell-dist/assets/pro-components.js +0 -44627
- package/shell-dist/assets/react-countup.js +0 -525
- package/shell-dist/assets/react-dom-client.js +0 -12134
- package/shell-dist/assets/react-dom.js +0 -266
- package/shell-dist/assets/react-error-boundary.js +0 -141
- package/shell-dist/assets/react-i18next.js +0 -1773
- package/shell-dist/assets/react-jss.js +0 -4089
- package/shell-dist/assets/react-query.js +0 -3072
- package/shell-dist/assets/react-router-dom.js +0 -9927
- package/shell-dist/assets/react-router.js +0 -14584
- package/shell-dist/assets/react.js +0 -590
- package/shell-dist/assets/runtime.js +0 -28311
- package/shell-dist/assets/simplebar-react.js +0 -1119
- package/shell-dist/assets/spin-delay.js +0 -111
- package/shell-dist/assets/tailwind-merge.js +0 -3364
- package/shell-dist/assets/use-sync-external-store-shim.js +0 -130
- package/shell-dist/assets/zustand-middleware.js +0 -513
- package/shell-dist/assets/zustand-react-shallow.js +0 -27
- package/shell-dist/assets/zustand-react.js +0 -39
- package/shell-dist/assets/zustand-shallow.js +0 -22
- package/shell-dist/assets/zustand-vanilla-shallow.js +0 -71
- package/shell-dist/assets/zustand-vanilla.js +0 -40
- package/shell-dist/assets/zustand.js +0 -32
- package/templates/seed.mysql.sql +0 -6
- package/templates/seed.pg.sql +0 -6
- package/templates/src/app/api/_platform/migrations/0001__create_users.mysql.sql +0 -9
- package/templates/src/app/api/_platform/migrations/0001__create_users.pg.sql +0 -9
- package/templates/src/app/api/_platform/migrations/0001__create_users.sql +0 -7
- package/templates/src/app/api/_platform/migrations/0002__add_users_avatar_base64.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0002__add_users_avatar_base64.sql +0 -2
- package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.mysql.sql +0 -5
- package/templates/src/app/api/_platform/migrations/0003__users_source_display_name.sql +0 -5
- package/templates/src/app/api/_platform/migrations/0004__sys_rbac.mysql.sql +0 -70
- package/templates/src/app/api/_platform/migrations/0004__sys_rbac.pg.sql +0 -67
- package/templates/src/app/api/_platform/migrations/0004__sys_rbac.sql +0 -67
- package/templates/src/app/api/_platform/migrations/0005__users_must_change.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0005__users_must_change.sql +0 -2
- package/templates/src/app/api/_platform/migrations/0006__users_is_forbidden.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0006__users_is_forbidden.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0007__users_email.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.mysql.sql +0 -10
- package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.pg.sql +0 -10
- package/templates/src/app/api/_platform/migrations/0008__sys_refresh_token.sql +0 -11
- package/templates/src/app/api/_platform/migrations/0009__sys_throttle.mysql.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0009__sys_throttle.pg.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0009__sys_throttle.sql +0 -13
- package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.mysql.sql +0 -17
- package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.pg.sql +0 -16
- package/templates/src/app/api/_platform/migrations/0010__sys_solution_route.sql +0 -18
- package/templates/src/app/api/_platform/migrations/0011__sys_setting_group_label.mysql.sql +0 -2
- package/templates/src/app/api/_platform/migrations/0011__sys_setting_group_label.sql +0 -4
- package/templates/src/app/api/_platform/migrations/0012__market_history.mysql.sql +0 -13
- package/templates/src/app/api/_platform/migrations/0012__market_history.pg.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0012__market_history.sql +0 -14
- package/templates/src/app/api/_platform/migrations/0013__users_profile.sql +0 -4
- package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.mysql.sql +0 -9
- package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.pg.sql +0 -7
- package/templates/src/app/api/_platform/migrations/0014__reg_source_seq.sql +0 -8
- package/templates/src/app/api/_platform/migrations/0015__tenant.mysql.sql +0 -12
- package/templates/src/app/api/_platform/migrations/0015__tenant.pg.sql +0 -11
- package/templates/src/app/api/_platform/migrations/0015__tenant.sql +0 -44
- package/templates/src/app/api/_platform/migrations/0016__org.mysql.sql +0 -41
- package/templates/src/app/api/_platform/migrations/0016__org.pg.sql +0 -40
- package/templates/src/app/api/_platform/migrations/0016__org.sql +0 -62
- package/templates/src/app/api/_platform/migrations/0017__users_employee_no.mysql.sql +0 -7
- package/templates/src/app/api/_platform/migrations/0017__users_employee_no.pg.sql +0 -4
- package/templates/src/app/api/_platform/migrations/0017__users_employee_no.sql +0 -8
- package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.mysql.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.pg.sql +0 -3
- package/templates/src/app/api/_platform/migrations/0018__sys_role_title_key.sql +0 -8
- package/templates/src/app/web/system/pages/login-methods/index.tsx +0 -30
- /package/shell-dist/assets/{nprogress-css.js → nprogress-css.1cq2pzkre0.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-button.js → ojm-antd-es-button.2uriphio50.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-modal.js → ojm-antd-es-modal.bf3tgdh8v0.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-slider.js → ojm-antd-es-slider.xyvptuhid0.js} +0 -0
- /package/shell-dist/assets/{ojm-antd-es-upload.js → ojm-antd-es-upload.13gx45e0g0.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var __defProp=Object.defineProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})};var i18next_exports={};__export(i18next_exports,{changeLanguage:()=>changeLanguage,createInstance:()=>createInstance,default:()=>instance,dir:()=>dir,exists:()=>exists,getFixedT:()=>getFixedT,hasLoadedNamespace:()=>hasLoadedNamespace,init:()=>init,keyFromSelector:()=>keysFromSelector,loadLanguages:()=>loadLanguages,loadNamespaces:()=>loadNamespaces,loadResources:()=>loadResources,reloadResources:()=>reloadResources,setDefaultNamespace:()=>setDefaultNamespace,t:()=>t,use:()=>use});var isString=obj=>typeof obj=="string",defer=()=>{let res,rej,promise=new Promise((resolve,reject)=>{res=resolve,rej=reject});return promise.resolve=res,promise.reject=rej,promise},makeString=object=>object==null?"":String(object),copy=(a,s,t2)=>{a.forEach(m=>{s[m]&&(t2[m]=s[m])})},lastOfPathSeparatorRegExp=/###/g,cleanKey=key=>key&&key.includes("###")?key.replace(lastOfPathSeparatorRegExp,"."):key,canNotTraverseDeeper=object=>!object||isString(object),getLastOfPath=(object,path,Empty)=>{let stack=isString(path)?path.split("."):path,stackIndex=0;for(;stackIndex<stack.length-1;){if(canNotTraverseDeeper(object))return{};let key=cleanKey(stack[stackIndex]);!object[key]&&Empty&&(object[key]=new Empty),Object.prototype.hasOwnProperty.call(object,key)?object=object[key]:object={},++stackIndex}return canNotTraverseDeeper(object)?{}:{obj:object,k:cleanKey(stack[stackIndex])}},setPath=(object,path,newValue)=>{let{obj,k}=getLastOfPath(object,path,Object);if(obj!==void 0||path.length===1){obj[k]=newValue;return}let e=path[path.length-1],p=path.slice(0,path.length-1),last=getLastOfPath(object,p,Object);for(;last.obj===void 0&&p.length;)e=`${p[p.length-1]}.${e}`,p=p.slice(0,p.length-1),last=getLastOfPath(object,p,Object),last?.obj&&typeof last.obj[`${last.k}.${e}`]<"u"&&(last.obj=void 0);last.obj[`${last.k}.${e}`]=newValue},pushPath=(object,path,newValue,concat)=>{let{obj,k}=getLastOfPath(object,path,Object);obj[k]=obj[k]||[],obj[k].push(newValue)},getPath=(object,path)=>{let{obj,k}=getLastOfPath(object,path);if(obj&&Object.prototype.hasOwnProperty.call(obj,k))return obj[k]},getPathWithDefaults=(data,defaultData,key)=>{let value=getPath(data,key);return value!==void 0?value:getPath(defaultData,key)},deepExtend=(target,source,overwrite)=>{for(let prop in source)prop!=="__proto__"&&prop!=="constructor"&&(Object.prototype.hasOwnProperty.call(target,prop)?isString(target[prop])||target[prop]instanceof String||isString(source[prop])||source[prop]instanceof String?overwrite&&(target[prop]=source[prop]):deepExtend(target[prop],source[prop],overwrite):target[prop]=source[prop]);return target},regexEscape=str=>str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),_entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},escape=data=>isString(data)?data.replace(/[&<>"'\/]/g,s=>_entityMap[s]):data,RegExpCache=class{constructor(capacity){this.capacity=capacity,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(pattern){let regExpFromCache=this.regExpMap.get(pattern);if(regExpFromCache!==void 0)return regExpFromCache;let regExpNew=new RegExp(pattern);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(pattern,regExpNew),this.regExpQueue.push(pattern),regExpNew}},chars=[" ",",","?","!",";"],looksLikeObjectPathRegExpCache=new RegExpCache(20),looksLikeObjectPath=(key,nsSeparator,keySeparator)=>{nsSeparator=nsSeparator||"",keySeparator=keySeparator||"";let possibleChars=chars.filter(c=>!nsSeparator.includes(c)&&!keySeparator.includes(c));if(possibleChars.length===0)return!0;let r=looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c=>c==="?"?"\\?":c).join("|")})`),matched=!r.test(key);if(!matched){let ki=key.indexOf(keySeparator);ki>0&&!r.test(key.substring(0,ki))&&(matched=!0)}return matched},deepFind=(obj,path,keySeparator=".")=>{if(!obj)return;if(obj[path])return Object.prototype.hasOwnProperty.call(obj,path)?obj[path]:void 0;let tokens=path.split(keySeparator),current=obj;for(let i=0;i<tokens.length;){if(!current||typeof current!="object")return;let next,nextPath="";for(let j=i;j<tokens.length;++j)if(j!==i&&(nextPath+=keySeparator),nextPath+=tokens[j],next=current[nextPath],next!==void 0){if(["string","number","boolean"].includes(typeof next)&&j<tokens.length-1)continue;i+=j-i+1;break}current=next}return current},getCleanedCode=code=>code?.replace(/_/g,"-"),consoleLogger={type:"logger",log(args){this.output("log",args)},warn(args){this.output("warn",args)},error(args){this.output("error",args)},output(type,args){console?.[type]?.apply?.(console,args)}},Logger=class _Logger{constructor(concreteLogger,options={}){this.init(concreteLogger,options)}init(concreteLogger,options={}){this.prefix=options.prefix||"i18next:",this.logger=concreteLogger||consoleLogger,this.options=options,this.debug=options.debug}log(...args){return this.forward(args,"log","",!0)}warn(...args){return this.forward(args,"warn","",!0)}error(...args){return this.forward(args,"error","")}deprecate(...args){return this.forward(args,"warn","WARNING DEPRECATED: ",!0)}forward(args,lvl,prefix,debugOnly){return debugOnly&&!this.debug?null:(args=args.map(a=>isString(a)?a.replace(/[\r\n\x00-\x1F\x7F]/g," "):a),isString(args[0])&&(args[0]=`${prefix}${this.prefix} ${args[0]}`),this.logger[lvl](args))}create(moduleName){return new _Logger(this.logger,{prefix:`${this.prefix}:${moduleName}:`,...this.options})}clone(options){return options=options||this.options,options.prefix=options.prefix||this.prefix,new _Logger(this.logger,options)}},baseLogger=new Logger,EventEmitter=class{constructor(){this.observers={}}on(events,listener){return events.split(" ").forEach(event=>{this.observers[event]||(this.observers[event]=new Map);let numListeners=this.observers[event].get(listener)||0;this.observers[event].set(listener,numListeners+1)}),this}off(event,listener){if(this.observers[event]){if(!listener){delete this.observers[event];return}this.observers[event].delete(listener)}}once(event,listener){let wrapper=(...args)=>{listener(...args),this.off(event,wrapper)};return this.on(event,wrapper),this}emit(event,...args){this.observers[event]&&Array.from(this.observers[event].entries()).forEach(([observer,numTimesAdded])=>{for(let i=0;i<numTimesAdded;i++)observer(...args)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([observer,numTimesAdded])=>{for(let i=0;i<numTimesAdded;i++)observer(event,...args)})}},ResourceStore=class extends EventEmitter{constructor(data,options={ns:["translation"],defaultNS:"translation"}){super(),this.data=data||{},this.options=options,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(ns){this.options.ns.includes(ns)||this.options.ns.push(ns)}removeNamespaces(ns){let index=this.options.ns.indexOf(ns);index>-1&&this.options.ns.splice(index,1)}getResource(lng,ns,key,options={}){let keySeparator=options.keySeparator!==void 0?options.keySeparator:this.options.keySeparator,ignoreJSONStructure=options.ignoreJSONStructure!==void 0?options.ignoreJSONStructure:this.options.ignoreJSONStructure,path;lng.includes(".")?path=lng.split("."):(path=[lng,ns],key&&(Array.isArray(key)?path.push(...key):isString(key)&&keySeparator?path.push(...key.split(keySeparator)):path.push(key)));let result=getPath(this.data,path);return!result&&!ns&&!key&&lng.includes(".")&&(lng=path[0],ns=path[1],key=path.slice(2).join(".")),result||!ignoreJSONStructure||!isString(key)?result:deepFind(this.data?.[lng]?.[ns],key,keySeparator)}addResource(lng,ns,key,value,options={silent:!1}){let keySeparator=options.keySeparator!==void 0?options.keySeparator:this.options.keySeparator,path=[lng,ns];key&&(path=path.concat(keySeparator?key.split(keySeparator):key)),lng.includes(".")&&(path=lng.split("."),value=ns,ns=path[1]),this.addNamespaces(ns),setPath(this.data,path,value),options.silent||this.emit("added",lng,ns,key,value)}addResources(lng,ns,resources,options={silent:!1}){for(let m in resources)(isString(resources[m])||Array.isArray(resources[m]))&&this.addResource(lng,ns,m,resources[m],{silent:!0});options.silent||this.emit("added",lng,ns,resources)}addResourceBundle(lng,ns,resources,deep,overwrite,options={silent:!1,skipCopy:!1}){let path=[lng,ns];lng.includes(".")&&(path=lng.split("."),deep=resources,resources=ns,ns=path[1]),this.addNamespaces(ns);let pack=getPath(this.data,path)||{};options.skipCopy||(resources=JSON.parse(JSON.stringify(resources))),deep?deepExtend(pack,resources,overwrite):pack={...pack,...resources},setPath(this.data,path,pack),options.silent||this.emit("added",lng,ns,resources)}removeResourceBundle(lng,ns){this.hasResourceBundle(lng,ns)&&delete this.data[lng][ns],this.removeNamespaces(ns),this.emit("removed",lng,ns)}hasResourceBundle(lng,ns){return this.getResource(lng,ns)!==void 0}getResourceBundle(lng,ns){return ns||(ns=this.options.defaultNS),this.getResource(lng,ns)}getDataByLanguage(lng){return this.data[lng]}hasLanguageSomeTranslations(lng){let data=this.getDataByLanguage(lng);return!!(data&&Object.keys(data)||[]).find(v=>data[v]&&Object.keys(data[v]).length>0)}toJSON(){return this.data}},postProcessor={processors:{},addPostProcessor(module){this.processors[module.name]=module},handle(processors,value,key,options,translator){return processors.forEach(processor=>{value=this.processors[processor]?.process(value,key,options,translator)??value}),value}},PATH_KEY=Symbol("i18next/PATH_KEY");function createProxy(){let state=[],handler=Object.create(null),proxy;return handler.get=(target,key)=>(proxy?.revoke?.(),key===PATH_KEY?state:(state.push(key),proxy=Proxy.revocable(target,handler),proxy.proxy)),Proxy.revocable(Object.create(null),handler).proxy}function keysFromSelector(selector,opts){let{[PATH_KEY]:path}=selector(createProxy()),keySeparator=opts?.keySeparator??".",nsSeparator=opts?.nsSeparator??":",strict=opts?.enableSelector==="strict";if(path.length>1&&nsSeparator){let ns=opts?.ns,nsList=strict?Array.isArray(ns)?ns:ns?[ns]:null:Array.isArray(ns)?ns:null;if(nsList&&(strict?nsList:nsList.length>1?nsList.slice(1):[]).includes(path[0]))return`${path[0]}${nsSeparator}${path.slice(1).join(keySeparator)}`}return path.join(keySeparator)}var shouldHandleAsObject=res=>!isString(res)&&typeof res!="boolean"&&typeof res!="number",Translator=class _Translator extends EventEmitter{constructor(services,options={}){super(),copy(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],services,this),this.options=options,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=baseLogger.create("translator"),this.checkedLoadedFor={}}changeLanguage(lng){lng&&(this.language=lng)}exists(key,o={interpolation:{}}){let opt={...o};if(key==null)return!1;let resolved=this.resolve(key,opt);if(resolved?.res===void 0)return!1;let isObject=shouldHandleAsObject(resolved.res);return!(opt.returnObjects===!1&&isObject)}extractFromKey(key,opt){let nsSeparator=opt.nsSeparator!==void 0?opt.nsSeparator:this.options.nsSeparator;nsSeparator===void 0&&(nsSeparator=":");let keySeparator=opt.keySeparator!==void 0?opt.keySeparator:this.options.keySeparator,namespaces=opt.ns||this.options.defaultNS||[],wouldCheckForNsInKey=nsSeparator&&key.includes(nsSeparator),seemsNaturalLanguage=!this.options.userDefinedKeySeparator&&!opt.keySeparator&&!this.options.userDefinedNsSeparator&&!opt.nsSeparator&&!looksLikeObjectPath(key,nsSeparator,keySeparator);if(wouldCheckForNsInKey&&!seemsNaturalLanguage){let m=key.match(this.interpolator.nestingRegexp);if(m&&m.length>0)return{key,namespaces:isString(namespaces)?[namespaces]:namespaces};let parts=key.split(nsSeparator);(nsSeparator!==keySeparator||nsSeparator===keySeparator&&this.options.ns.includes(parts[0]))&&(namespaces=parts.shift()),key=parts.join(keySeparator)}return{key,namespaces:isString(namespaces)?[namespaces]:namespaces}}translate(keys,o,lastKey){let opt=typeof o=="object"?{...o}:o;if(typeof opt!="object"&&this.options.overloadTranslationOptionHandler&&(opt=this.options.overloadTranslationOptionHandler(arguments)),typeof opt=="object"&&(opt={...opt}),opt||(opt={}),keys==null)return"";typeof keys=="function"&&(keys=keysFromSelector(keys,{...this.options,...opt})),Array.isArray(keys)||(keys=[String(keys)]),keys=keys.map(k=>typeof k=="function"?keysFromSelector(k,{...this.options,...opt}):String(k));let returnDetails=opt.returnDetails!==void 0?opt.returnDetails:this.options.returnDetails,keySeparator=opt.keySeparator!==void 0?opt.keySeparator:this.options.keySeparator,{key,namespaces}=this.extractFromKey(keys[keys.length-1],opt),namespace=namespaces[namespaces.length-1],nsSeparator=opt.nsSeparator!==void 0?opt.nsSeparator:this.options.nsSeparator;nsSeparator===void 0&&(nsSeparator=":");let lng=opt.lng||this.language,appendNamespaceToCIMode=opt.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(lng?.toLowerCase()==="cimode")return appendNamespaceToCIMode?returnDetails?{res:`${namespace}${nsSeparator}${key}`,usedKey:key,exactUsedKey:key,usedLng:lng,usedNS:namespace,usedParams:this.getUsedParamsDetails(opt)}:`${namespace}${nsSeparator}${key}`:returnDetails?{res:key,usedKey:key,exactUsedKey:key,usedLng:lng,usedNS:namespace,usedParams:this.getUsedParamsDetails(opt)}:key;let resolved=this.resolve(keys,opt),res=resolved?.res,resUsedKey=resolved?.usedKey||key,resExactUsedKey=resolved?.exactUsedKey||key,noObject=["[object Number]","[object Function]","[object RegExp]"],joinArrays=opt.joinArrays!==void 0?opt.joinArrays:this.options.joinArrays,handleAsObjectInI18nFormat=!this.i18nFormat||this.i18nFormat.handleAsObject,needsPluralHandling=opt.count!==void 0&&!isString(opt.count),hasDefaultValue=_Translator.hasDefaultValue(opt),defaultValueSuffix=needsPluralHandling?this.pluralResolver.getSuffix(lng,opt.count,opt):"",defaultValueSuffixOrdinalFallback=opt.ordinal&&needsPluralHandling?this.pluralResolver.getSuffix(lng,opt.count,{ordinal:!1}):"",needsZeroSuffixLookup=needsPluralHandling&&!opt.ordinal&&opt.count===0,defaultValue=needsZeroSuffixLookup&&opt[`defaultValue${this.options.pluralSeparator}zero`]||opt[`defaultValue${defaultValueSuffix}`]||opt[`defaultValue${defaultValueSuffixOrdinalFallback}`]||opt.defaultValue,resForObjHndl=res;handleAsObjectInI18nFormat&&!res&&hasDefaultValue&&(resForObjHndl=defaultValue);let handleAsObject=shouldHandleAsObject(resForObjHndl),resType=Object.prototype.toString.apply(resForObjHndl);if(handleAsObjectInI18nFormat&&resForObjHndl&&handleAsObject&&!noObject.includes(resType)&&!(isString(joinArrays)&&Array.isArray(resForObjHndl))){if(!opt.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");let r=this.options.returnedObjectHandler?this.options.returnedObjectHandler(resUsedKey,resForObjHndl,{...opt,ns:namespaces}):`key '${key} (${this.language})' returned an object instead of string.`;return returnDetails?(resolved.res=r,resolved.usedParams=this.getUsedParamsDetails(opt),resolved):r}if(keySeparator){let resTypeIsArray=Array.isArray(resForObjHndl),copy2=resTypeIsArray?[]:{},newKeyToUse=resTypeIsArray?resExactUsedKey:resUsedKey;for(let m in resForObjHndl)if(Object.prototype.hasOwnProperty.call(resForObjHndl,m)){let deepKey=`${newKeyToUse}${keySeparator}${m}`;hasDefaultValue&&!res?copy2[m]=this.translate(deepKey,{...opt,defaultValue:shouldHandleAsObject(defaultValue)?defaultValue[m]:void 0,joinArrays:!1,ns:namespaces}):copy2[m]=this.translate(deepKey,{...opt,joinArrays:!1,ns:namespaces}),copy2[m]===deepKey&&(copy2[m]=resForObjHndl[m])}res=copy2}}else if(handleAsObjectInI18nFormat&&isString(joinArrays)&&Array.isArray(res))res=res.join(joinArrays),res&&(res=this.extendTranslation(res,keys,opt,lastKey));else{let usedDefault=!1,usedKey=!1;!this.isValidLookup(res)&&hasDefaultValue&&(usedDefault=!0,res=defaultValue),this.isValidLookup(res)||(usedKey=!0,res=key);let resForMissing=(opt.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&usedKey?void 0:res,updateMissing=hasDefaultValue&&defaultValue!==res&&this.options.updateMissing;if(usedKey||usedDefault||updateMissing){if(this.logger.log(updateMissing?"updateKey":"missingKey",lng,namespace,needsPluralHandling&&!updateMissing?`${key}${this.pluralResolver.getSuffix(lng,opt.count,opt)}`:key,updateMissing?defaultValue:res),keySeparator){let fk=this.resolve(key,{...opt,keySeparator:!1});fk&&fk.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let lngs=[],fallbackLngs=this.languageUtils.getFallbackCodes(this.options.fallbackLng,opt.lng||this.language);if(this.options.saveMissingTo==="fallback"&&fallbackLngs&&fallbackLngs[0])for(let i=0;i<fallbackLngs.length;i++)lngs.push(fallbackLngs[i]);else this.options.saveMissingTo==="all"?lngs=this.languageUtils.toResolveHierarchy(opt.lng||this.language):lngs.push(opt.lng||this.language);let send=(l,k,specificDefaultValue)=>{let defaultForMissing=hasDefaultValue&&specificDefaultValue!==res?specificDefaultValue:resForMissing;this.options.missingKeyHandler?this.options.missingKeyHandler(l,namespace,k,defaultForMissing,updateMissing,opt):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(l,namespace,k,defaultForMissing,updateMissing,opt),this.emit("missingKey",l,namespace,k,res)};this.options.saveMissing&&(this.options.saveMissingPlurals&&needsPluralHandling?lngs.forEach(language=>{let suffixes=this.pluralResolver.getSuffixes(language,opt);needsZeroSuffixLookup&&opt[`defaultValue${this.options.pluralSeparator}zero`]&&!suffixes.includes(`${this.options.pluralSeparator}zero`)&&suffixes.push(`${this.options.pluralSeparator}zero`),suffixes.forEach(suffix=>{send([language],key+suffix,opt[`defaultValue${suffix}`]||defaultValue)})}):send(lngs,key,defaultValue))}res=this.extendTranslation(res,keys,opt,resolved,lastKey),usedKey&&res===key&&this.options.appendNamespaceToMissingKey&&(res=`${namespace}${nsSeparator}${key}`),(usedKey||usedDefault)&&this.options.parseMissingKeyHandler&&(res=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${namespace}${nsSeparator}${key}`:key,usedDefault?res:void 0,opt))}return returnDetails?(resolved.res=res,resolved.usedParams=this.getUsedParamsDetails(opt),resolved):res}extendTranslation(res,key,opt,resolved,lastKey){if(this.i18nFormat?.parse)res=this.i18nFormat.parse(res,{...this.options.interpolation.defaultVariables,...opt},opt.lng||this.language||resolved.usedLng,resolved.usedNS,resolved.usedKey,{resolved});else if(!opt.skipInterpolation){opt.interpolation&&this.interpolator.init({...opt,interpolation:{...this.options.interpolation,...opt.interpolation}});let skipOnVariables=isString(res)&&(opt?.interpolation?.skipOnVariables!==void 0?opt.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables),nestBef;if(skipOnVariables){let nb=res.match(this.interpolator.nestingRegexp);nestBef=nb&&nb.length}let data=opt.replace&&!isString(opt.replace)?opt.replace:opt;if(this.options.interpolation.defaultVariables&&(data={...this.options.interpolation.defaultVariables,...data}),res=this.interpolator.interpolate(res,data,opt.lng||this.language||resolved.usedLng,opt),skipOnVariables){let na=res.match(this.interpolator.nestingRegexp),nestAft=na&&na.length;nestBef<nestAft&&(opt.nest=!1)}!opt.lng&&resolved&&resolved.res&&(opt.lng=this.language||resolved.usedLng),opt.nest!==!1&&(res=this.interpolator.nest(res,(...args)=>lastKey?.[0]===args[0]&&!opt.context?(this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`),null):this.translate(...args,key),opt)),opt.interpolation&&this.interpolator.reset()}let postProcess=opt.postProcess||this.options.postProcess,postProcessorNames=isString(postProcess)?[postProcess]:postProcess;return res!=null&&postProcessorNames?.length&&opt.applyPostProcessor!==!1&&(res=postProcessor.handle(postProcessorNames,res,key,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...resolved,usedParams:this.getUsedParamsDetails(opt)},...opt}:opt,this)),res}resolve(keys,opt={}){let found,usedKey,exactUsedKey,usedLng,usedNS;return isString(keys)&&(keys=[keys]),Array.isArray(keys)&&(keys=keys.map(k=>typeof k=="function"?keysFromSelector(k,{...this.options,...opt}):k)),keys.forEach(k=>{if(this.isValidLookup(found))return;let extracted=this.extractFromKey(k,opt),key=extracted.key;usedKey=key;let namespaces=extracted.namespaces;this.options.fallbackNS&&(namespaces=namespaces.concat(this.options.fallbackNS));let needsPluralHandling=opt.count!==void 0&&!isString(opt.count),needsZeroSuffixLookup=needsPluralHandling&&!opt.ordinal&&opt.count===0,needsContextHandling=opt.context!==void 0&&(isString(opt.context)||typeof opt.context=="number")&&opt.context!=="",codes=opt.lngs?opt.lngs:this.languageUtils.toResolveHierarchy(opt.lng||this.language,opt.fallbackLng);namespaces.forEach(ns=>{this.isValidLookup(found)||(usedNS=ns,!this.checkedLoadedFor[`${codes[0]}-${ns}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(usedNS)&&(this.checkedLoadedFor[`${codes[0]}-${ns}`]=!0,this.logger.warn(`key "${usedKey}" for languages "${codes.join(", ")}" won't get resolved as namespace "${usedNS}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),codes.forEach(code=>{if(this.isValidLookup(found))return;usedLng=code;let finalKeys=[key];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(finalKeys,key,code,ns,opt);else{let pluralSuffix;needsPluralHandling&&(pluralSuffix=this.pluralResolver.getSuffix(code,opt.count,opt));let zeroSuffix=`${this.options.pluralSeparator}zero`,ordinalPrefix=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(needsPluralHandling&&(opt.ordinal&&pluralSuffix.startsWith(ordinalPrefix)&&finalKeys.push(key+pluralSuffix.replace(ordinalPrefix,this.options.pluralSeparator)),finalKeys.push(key+pluralSuffix),needsZeroSuffixLookup&&finalKeys.push(key+zeroSuffix)),needsContextHandling){let contextKey=`${key}${this.options.contextSeparator||"_"}${opt.context}`;finalKeys.push(contextKey),needsPluralHandling&&(opt.ordinal&&pluralSuffix.startsWith(ordinalPrefix)&&finalKeys.push(contextKey+pluralSuffix.replace(ordinalPrefix,this.options.pluralSeparator)),finalKeys.push(contextKey+pluralSuffix),needsZeroSuffixLookup&&finalKeys.push(contextKey+zeroSuffix))}}let possibleKey;for(;possibleKey=finalKeys.pop();)this.isValidLookup(found)||(exactUsedKey=possibleKey,found=this.getResource(code,ns,possibleKey,opt))}))})}),{res:found,usedKey,exactUsedKey,usedLng,usedNS}}isValidLookup(res){return res!==void 0&&!(!this.options.returnNull&&res===null)&&!(!this.options.returnEmptyString&&res==="")}getResource(code,ns,key,options={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(code,ns,key,options):this.resourceStore.getResource(code,ns,key,options)}getUsedParamsDetails(options={}){let optionsKeys=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],useOptionsReplaceForData=options.replace&&!isString(options.replace),data=useOptionsReplaceForData?options.replace:options;if(useOptionsReplaceForData&&typeof options.count<"u"&&(data={...data,count:options.count}),this.options.interpolation.defaultVariables&&(data={...this.options.interpolation.defaultVariables,...data}),!useOptionsReplaceForData){data={...data};for(let key of optionsKeys)delete data[key]}return data}static hasDefaultValue(options){let prefix="defaultValue";for(let option in options)if(Object.prototype.hasOwnProperty.call(options,option)&&option.startsWith(prefix)&&options[option]!==void 0)return!0;return!1}},LanguageUtil=class{constructor(options){this.options=options,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils"),this.resolveHierarchyCache={}}clearCache(){this.resolveHierarchyCache={}}getScriptPartFromCode(code){if(code=getCleanedCode(code),!code||!code.includes("-"))return null;let p=code.split("-");return p.length===2||(p.pop(),p[p.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(p.join("-"))}getLanguagePartFromCode(code){if(code=getCleanedCode(code),!code||!code.includes("-"))return code;let p=code.split("-");return this.formatLanguageCode(p[0])}formatLanguageCode(code){if(isString(code)&&code.includes("-")){let formattedCode;try{formattedCode=Intl.getCanonicalLocales(code)[0]}catch{}return formattedCode&&this.options.lowerCaseLng&&(formattedCode=formattedCode.toLowerCase()),formattedCode||(this.options.lowerCaseLng?code.toLowerCase():code)}return this.options.cleanCode||this.options.lowerCaseLng?code.toLowerCase():code}isSupportedCode(code){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(code=this.getLanguagePartFromCode(code)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.includes(code)}getBestMatchFromCodes(codes){if(!codes)return null;let found;return codes.forEach(code=>{if(found)return;let cleanedLng=this.formatLanguageCode(code);(!this.options.supportedLngs||this.isSupportedCode(cleanedLng))&&(found=cleanedLng)}),!found&&this.options.supportedLngs&&codes.forEach(code=>{if(found)return;let lngScOnly=this.getScriptPartFromCode(code);if(this.isSupportedCode(lngScOnly))return found=lngScOnly;let lngOnly=this.getLanguagePartFromCode(code);if(this.isSupportedCode(lngOnly))return found=lngOnly;found=this.options.supportedLngs.find(supportedLng=>supportedLng===lngOnly?!0:!supportedLng.includes("-")&&!lngOnly.includes("-")?!1:!!(supportedLng.includes("-")&&!lngOnly.includes("-")&&supportedLng.slice(0,supportedLng.indexOf("-"))===lngOnly||supportedLng.startsWith(lngOnly)&&lngOnly.length>1))}),found||(found=this.getFallbackCodes(this.options.fallbackLng)[0]),found}getFallbackCodes(fallbacks,code){if(!fallbacks)return[];if(typeof fallbacks=="function"&&(fallbacks=fallbacks(code)),isString(fallbacks)&&(fallbacks=[fallbacks]),Array.isArray(fallbacks))return fallbacks;if(!code)return fallbacks.default||[];let found=fallbacks[code];return found||(found=fallbacks[this.getScriptPartFromCode(code)]),found||(found=fallbacks[this.formatLanguageCode(code)]),found||(found=fallbacks[this.getLanguagePartFromCode(code)]),found||(found=fallbacks.default),found||[]}toResolveHierarchy(code,fallbackCode){let fallbackLng=this.options.fallbackLng,fallbackLngKey=Array.isArray(fallbackLng)?fallbackLng.join("|"):fallbackLng;fallbackLngKey!==this._cachedFallbackLng&&(this.resolveHierarchyCache={},this._cachedFallbackLng=fallbackLngKey);let hasCacheableFallback=fallbackCode===void 0||fallbackCode===!1||isString(fallbackCode),usesUncacheableOptionsFallback=fallbackCode===void 0&&typeof this.options.fallbackLng=="function",cacheable=isString(code)&&hasCacheableFallback&&!usesUncacheableOptionsFallback,cacheKey=null;if(cacheable){let fallbackCacheKey;fallbackCode===void 0?fallbackCacheKey="undefined":fallbackCode===!1?fallbackCacheKey="boolean:false":fallbackCacheKey=`string:${fallbackCode}`,cacheKey=`${code.length}:${code}|${fallbackCacheKey}`}if(cacheKey!==null){let cached=this.resolveHierarchyCache[cacheKey];if(cached!==void 0)return cached.slice()}let fallbackCodes=this.getFallbackCodes((fallbackCode===!1?[]:fallbackCode)||this.options.fallbackLng||[],code),codes=[],addCode=c=>{c&&(this.isSupportedCode(c)?codes.push(c):this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`))};return isString(code)&&(code.includes("-")||code.includes("_"))?(this.options.load!=="languageOnly"&&addCode(this.formatLanguageCode(code)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&addCode(this.getScriptPartFromCode(code)),this.options.load!=="currentOnly"&&addCode(this.getLanguagePartFromCode(code))):isString(code)&&addCode(this.formatLanguageCode(code)),fallbackCodes.forEach(fc=>{codes.includes(fc)||addCode(this.formatLanguageCode(fc))}),cacheKey!==null?(this.resolveHierarchyCache[cacheKey]=codes,codes.slice()):codes}},suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5},dummyRule={select:count=>count===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})},PluralResolver=class{constructor(languageUtils,options={}){this.languageUtils=languageUtils,this.options=options,this.logger=baseLogger.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(code,options={}){let cleanedCode=getCleanedCode(code==="dev"?"en":code),type=options.ordinal?"ordinal":"cardinal",cacheKey=JSON.stringify({cleanedCode,type});if(cacheKey in this.pluralRulesCache)return this.pluralRulesCache[cacheKey];let rule;try{rule=new Intl.PluralRules(cleanedCode,{type})}catch{if(typeof Intl>"u")return this.logger.error("No Intl support, please use an Intl polyfill!"),dummyRule;if(!code.match(/-|_/))return dummyRule;let lngPart=this.languageUtils.getLanguagePartFromCode(code);rule=this.getRule(lngPart,options)}return this.pluralRulesCache[cacheKey]=rule,rule}needsPlural(code,options={}){let rule=this.getRule(code,options);return rule||(rule=this.getRule("dev",options)),rule?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(code,key,options={}){return this.getSuffixes(code,options).map(suffix=>`${key}${suffix}`)}getSuffixes(code,options={}){let rule=this.getRule(code,options);return rule||(rule=this.getRule("dev",options)),rule?rule.resolvedOptions().pluralCategories.sort((pluralCategory1,pluralCategory2)=>suffixesOrder[pluralCategory1]-suffixesOrder[pluralCategory2]).map(pluralCategory=>`${this.options.prepend}${options.ordinal?`ordinal${this.options.prepend}`:""}${pluralCategory}`):[]}getSuffix(code,count,options={}){let rule=this.getRule(code,options);return rule?`${this.options.prepend}${options.ordinal?`ordinal${this.options.prepend}`:""}${rule.select(count)}`:(this.logger.warn(`no plural rule found for: ${code}`),this.getSuffix("dev",count,options))}},deepFindWithDefaults=(data,defaultData,key,keySeparator=".",ignoreJSONStructure=!0)=>{let path=getPathWithDefaults(data,defaultData,key);return!path&&ignoreJSONStructure&&isString(key)&&(path=deepFind(data,key,keySeparator),path===void 0&&(path=deepFind(defaultData,key,keySeparator))),path},regexSafe=val=>val.replace(/\$/g,"$$$$"),Interpolator=class{constructor(options={}){this.logger=baseLogger.create("interpolator"),this.options=options,this.format=options?.interpolation?.format||(value=>value),this.init(options)}init(options={}){options.interpolation||(options.interpolation={escapeValue:!0});let{escape:escape$1,escapeValue,useRawValueToEscape,prefix,prefixEscaped,suffix,suffixEscaped,formatSeparator,unescapeSuffix,unescapePrefix,nestingPrefix,nestingPrefixEscaped,nestingSuffix,nestingSuffixEscaped,nestingOptionsSeparator,maxReplaces,alwaysFormat}=options.interpolation;this.escape=escape$1!==void 0?escape$1:escape,this.escapeValue=escapeValue!==void 0?escapeValue:!0,this.useRawValueToEscape=useRawValueToEscape!==void 0?useRawValueToEscape:!1,this.prefix=prefix?regexEscape(prefix):prefixEscaped||"{{",this.suffix=suffix?regexEscape(suffix):suffixEscaped||"}}",this.formatSeparator=formatSeparator||",",this.unescapePrefix=unescapeSuffix?"":unescapePrefix?regexEscape(unescapePrefix):"-",this.unescapeSuffix=this.unescapePrefix?"":unescapeSuffix?regexEscape(unescapeSuffix):"",this.nestingPrefix=nestingPrefix?regexEscape(nestingPrefix):nestingPrefixEscaped||regexEscape("$t("),this.nestingSuffix=nestingSuffix?regexEscape(nestingSuffix):nestingSuffixEscaped||regexEscape(")"),this.nestingOptionsSeparator=nestingOptionsSeparator||",",this.maxReplaces=maxReplaces||1e3,this.alwaysFormat=alwaysFormat!==void 0?alwaysFormat:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let getOrResetRegExp=(existingRegExp,pattern)=>existingRegExp?.source===pattern?(existingRegExp.lastIndex=0,existingRegExp):new RegExp(pattern,"g");this.regexp=getOrResetRegExp(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=getOrResetRegExp(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=getOrResetRegExp(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(str,data,lng,options){let match,value,replaces,defaultData=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},handleFormat=key=>{if(!key.includes(this.formatSeparator)){let path=deepFindWithDefaults(data,defaultData,key,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(path,void 0,lng,{...options,...data,interpolationkey:key}):path}let p=key.split(this.formatSeparator),k=p.shift().trim(),f=p.join(this.formatSeparator).trim();return this.format(deepFindWithDefaults(data,defaultData,k,this.options.keySeparator,this.options.ignoreJSONStructure),f,lng,{...options,...data,interpolationkey:k})};this.resetRegExp(),!this.escapeValue&&typeof str=="string"&&/\$t\([^)]*\{[^}]*\{\{/.test(str)&&this.logger.warn("nesting options string contains interpolated variables with escapeValue: false \u2014 if any of those values are attacker-controlled they can inject additional nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing it to t(), or keep escapeValue: true.");let missingInterpolationHandler=options?.missingInterpolationHandler||this.options.missingInterpolationHandler,skipOnVariables=options?.interpolation?.skipOnVariables!==void 0?options.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:val=>val},{regex:this.regexp,safeValue:val=>this.escapeValue?this.escape(val):val}].forEach(todo=>{for(replaces=0;match=todo.regex.exec(str);){let matchedVar=match[1].trim();if(value=handleFormat(matchedVar),value===void 0)if(typeof missingInterpolationHandler=="function"){let temp=missingInterpolationHandler(str,match,options);value=isString(temp)?temp:""}else if(options&&Object.prototype.hasOwnProperty.call(options,matchedVar))value="";else if(skipOnVariables){value=match[0];continue}else this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`),value="";else!isString(value)&&!this.useRawValueToEscape&&(value=makeString(value));let safeValue=todo.safeValue(value);if(str=str.replace(match[0],regexSafe(safeValue)),skipOnVariables?(todo.regex.lastIndex+=safeValue.length,todo.regex.lastIndex-=match[0].length):todo.regex.lastIndex=0,replaces++,replaces>=this.maxReplaces)break}}),str}nest(str,fc,options={}){let match,value,clonedOptions,handleHasOptions=(key,inheritedOptions)=>{let sep=this.nestingOptionsSeparator;if(!key.includes(sep))return key;let c=key.split(new RegExp(`${regexEscape(sep)}[ ]*{`)),optionsString=`{${c[1]}`;key=c[0],optionsString=this.interpolate(optionsString,clonedOptions);let matchedSingleQuotes=optionsString.match(/'/g),matchedDoubleQuotes=optionsString.match(/"/g);((matchedSingleQuotes?.length??0)%2===0&&!matchedDoubleQuotes||(matchedDoubleQuotes?.length??0)%2!==0)&&(optionsString=optionsString.replace(/'/g,'"'));try{clonedOptions=JSON.parse(optionsString),inheritedOptions&&(clonedOptions={...inheritedOptions,...clonedOptions})}catch(e){return this.logger.warn(`failed parsing options string in nesting for key ${key}`,e),`${key}${sep}${optionsString}`}return clonedOptions.defaultValue&&clonedOptions.defaultValue.includes(this.prefix)&&delete clonedOptions.defaultValue,key};for(;match=this.nestingRegexp.exec(str);){let formatters=[];clonedOptions={...options},clonedOptions=clonedOptions.replace&&!isString(clonedOptions.replace)?clonedOptions.replace:clonedOptions,clonedOptions.applyPostProcessor=!1,delete clonedOptions.defaultValue;let keyEndIndex=/{.*}/s.test(match[1])?match[1].lastIndexOf("}")+1:match[1].indexOf(this.formatSeparator);if(keyEndIndex!==-1&&(formatters=match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem=>elem.trim()).filter(Boolean),match[1]=match[1].slice(0,keyEndIndex)),value=fc(handleHasOptions.call(this,match[1].trim(),clonedOptions),clonedOptions),value&&match[0]===str&&!isString(value))return value;isString(value)||(value=makeString(value)),value||(this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`),value=""),formatters.length&&(value=formatters.reduce((v,f)=>this.format(v,f,options.lng,{...options,interpolationkey:match[1].trim()}),value.trim())),str=str.replace(match[0],value),this.regexp.lastIndex=0}return str}},parseFormatStr=formatStr=>{let formatName=formatStr.toLowerCase().trim(),formatOptions={};if(formatStr.includes("(")){let p=formatStr.split("(");formatName=p[0].toLowerCase().trim();let optStr=p[1].slice(0,-1);formatName==="currency"&&!optStr.includes(":")?formatOptions.currency||(formatOptions.currency=optStr.trim()):formatName==="relativetime"&&!optStr.includes(":")?formatOptions.range||(formatOptions.range=optStr.trim()):optStr.split(";").forEach(opt=>{if(opt){let[key,...rest]=opt.split(":"),val=rest.join(":").trim().replace(/^'+|'+$/g,""),trimmedKey=key.trim();formatOptions[trimmedKey]||(formatOptions[trimmedKey]=val),val==="false"&&(formatOptions[trimmedKey]=!1),val==="true"&&(formatOptions[trimmedKey]=!0),isNaN(val)||(formatOptions[trimmedKey]=parseInt(val,10))}})}return{formatName,formatOptions}},createCachedFormatter=fn=>{let cache={};return(v,l,o)=>{let optForCache=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(optForCache={...optForCache,[o.interpolationkey]:void 0});let key=l+JSON.stringify(optForCache),frm=cache[key];return frm||(frm=fn(getCleanedCode(l),o),cache[key]=frm),frm(v)}},createNonCachedFormatter=fn=>(v,l,o)=>fn(getCleanedCode(l),o)(v),Formatter=class{constructor(options={}){this.logger=baseLogger.create("formatter"),this.options=options,this.init(options)}init(services,options={interpolation:{}}){this.formatSeparator=options.interpolation.formatSeparator||",";let cf=options.cacheInBuiltFormats?createCachedFormatter:createNonCachedFormatter;this.formats={number:cf((lng,opt)=>{let formatter=new Intl.NumberFormat(lng,{...opt});return val=>formatter.format(val)}),currency:cf((lng,opt)=>{let formatter=new Intl.NumberFormat(lng,{...opt,style:"currency"});return val=>formatter.format(val)}),datetime:cf((lng,opt)=>{let formatter=new Intl.DateTimeFormat(lng,{...opt});return val=>formatter.format(val)}),relativetime:cf((lng,opt)=>{let formatter=new Intl.RelativeTimeFormat(lng,{...opt});return val=>formatter.format(val,opt.range||"day")}),list:cf((lng,opt)=>{let formatter=new Intl.ListFormat(lng,{...opt});return val=>formatter.format(val)})}}add(name,fc){this.formats[name.toLowerCase().trim()]=fc}addCached(name,fc){this.formats[name.toLowerCase().trim()]=createCachedFormatter(fc)}format(value,format,lng,options={}){if(!format||value==null)return value;let rawFormats=format.split(this.formatSeparator),formats=[];for(let i=0;i<rawFormats.length;i++){let f=rawFormats[i];for(;f.indexOf("(")>-1&&!f.includes(")")&&i+1<rawFormats.length;)f=`${f}${this.formatSeparator}${rawFormats[++i]}`;formats.push(f)}return formats.reduce((mem,f)=>{let{formatName,formatOptions}=parseFormatStr(f);if(this.formats[formatName]){let formatted=mem;try{let valOptions=options?.formatParams?.[options.interpolationkey]||{},l=valOptions.locale||valOptions.lng||options.locale||options.lng||lng;formatted=this.formats[formatName](mem,l,{...formatOptions,...options,...valOptions})}catch(error){this.logger.warn(error)}return formatted}else this.logger.warn(`there was no format function for ${formatName}`);return mem},value)}},removePending=(q,name)=>{q.pending[name]!==void 0&&(delete q.pending[name],q.pendingCount--)},Connector=class extends EventEmitter{constructor(backend,store,services,options={}){super(),this.backend=backend,this.store=store,this.services=services,this.languageUtils=services.languageUtils,this.options=options,this.logger=baseLogger.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=options.maxParallelReads||10,this.readingCalls=0,this.maxRetries=options.maxRetries>=0?options.maxRetries:5,this.retryTimeout=options.retryTimeout>=1?options.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(services,options.backend,options)}queueLoad(languages,namespaces,options,callback){let toLoad={},pending={},toLoadLanguages={},toLoadNamespaces={};return languages.forEach(lng=>{let hasAllNamespaces=!0;namespaces.forEach(ns=>{let name=`${lng}|${ns}`;!options.reload&&this.store.hasResourceBundle(lng,ns)?this.state[name]=2:this.state[name]<0||(this.state[name]===1?pending[name]===void 0&&(pending[name]=!0):(this.state[name]=1,hasAllNamespaces=!1,pending[name]===void 0&&(pending[name]=!0),toLoad[name]===void 0&&(toLoad[name]=!0),toLoadNamespaces[ns]===void 0&&(toLoadNamespaces[ns]=!0)))}),hasAllNamespaces||(toLoadLanguages[lng]=!0)}),(Object.keys(toLoad).length||Object.keys(pending).length)&&this.queue.push({pending,pendingCount:Object.keys(pending).length,loaded:{},errors:[],callback}),{toLoad:Object.keys(toLoad),pending:Object.keys(pending),toLoadLanguages:Object.keys(toLoadLanguages),toLoadNamespaces:Object.keys(toLoadNamespaces)}}loaded(name,err,data){let s=name.split("|"),lng=s[0],ns=s[1];err&&this.emit("failedLoading",lng,ns,err),!err&&data&&this.store.addResourceBundle(lng,ns,data,void 0,void 0,{skipCopy:!0}),this.state[name]=err?-1:2,err&&data&&(this.state[name]=0);let loaded={};this.queue.forEach(q=>{pushPath(q.loaded,[lng],ns),removePending(q,name),err&&q.errors.push(err),q.pendingCount===0&&!q.done&&(Object.keys(q.loaded).forEach(l=>{loaded[l]||(loaded[l]={});let loadedKeys=q.loaded[l];loadedKeys.length&&loadedKeys.forEach(n=>{loaded[l][n]===void 0&&(loaded[l][n]=!0)})}),q.done=!0,q.errors.length?q.callback(q.errors):q.callback())}),this.emit("loaded",loaded),this.queue=this.queue.filter(q=>!q.done)}read(lng,ns,fcName,tried=0,wait=this.retryTimeout,callback){if(!lng.length)return callback(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng,ns,fcName,tried,wait,callback});return}this.readingCalls++;let resolver=(err,data)=>{if(this.readingCalls--,this.waitingReads.length>0){let next=this.waitingReads.shift();this.read(next.lng,next.ns,next.fcName,next.tried,next.wait,next.callback)}if(err&&data&&tried<this.maxRetries){setTimeout(()=>{this.read(lng,ns,fcName,tried+1,wait*2,callback)},wait);return}callback(err,data)},fc=this.backend[fcName].bind(this.backend);if(fc.length===2){try{let r=fc(lng,ns);r&&typeof r.then=="function"?r.then(data=>resolver(null,data)).catch(resolver):resolver(null,r)}catch(err){resolver(err)}return}return fc(lng,ns,resolver)}prepareLoading(languages,namespaces,options={},callback){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),callback&&callback();isString(languages)&&(languages=this.languageUtils.toResolveHierarchy(languages)),isString(namespaces)&&(namespaces=[namespaces]);let toLoad=this.queueLoad(languages,namespaces,options,callback);if(!toLoad.toLoad.length)return toLoad.pending.length||callback(),null;toLoad.toLoad.forEach(name=>{this.loadOne(name)})}load(languages,namespaces,callback){this.prepareLoading(languages,namespaces,{},callback)}reload(languages,namespaces,callback){this.prepareLoading(languages,namespaces,{reload:!0},callback)}loadOne(name,prefix=""){let s=name.split("|"),lng=s[0],ns=s[1];this.read(lng,ns,"read",void 0,void 0,(err,data)=>{err&&this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`,err),!err&&data&&this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`,data),this.loaded(name,err,data)})}saveMissing(languages,namespace,key,fallbackValue,isUpdate,options={},clb=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(namespace)){this.logger.warn(`did not save key "${key}" as the namespace "${namespace}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(key==null||key==="")){if(this.backend?.create){let opts={...options,isUpdate},fc=this.backend.create.bind(this.backend);if(fc.length<6)try{let r;fc.length===5?r=fc(languages,namespace,key,fallbackValue,opts):r=fc(languages,namespace,key,fallbackValue),r&&typeof r.then=="function"?r.then(data=>clb(null,data)).catch(clb):clb(null,r)}catch(err){clb(err)}else fc(languages,namespace,key,fallbackValue,clb,opts)}!languages||!languages[0]||this.store.addResource(languages[0],namespace,key,fallbackValue)}}},get=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",enableSelector:!1,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:args=>{let ret={};if(typeof args[1]=="object"&&(ret=args[1]),isString(args[1])&&(ret.defaultValue=args[1]),isString(args[2])&&(ret.tDescription=args[2]),typeof args[2]=="object"||typeof args[3]=="object"){let options=args[3]||args[2];Object.keys(options).forEach(key=>{ret[key]=options[key]})}return ret},interpolation:{escapeValue:!0,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),transformOptions=options=>(isString(options.ns)&&(options.ns=[options.ns]),isString(options.fallbackLng)&&(options.fallbackLng=[options.fallbackLng]),isString(options.fallbackNS)&&(options.fallbackNS=[options.fallbackNS]),options.supportedLngs&&!options.supportedLngs.includes("cimode")&&(options.supportedLngs=options.supportedLngs.concat(["cimode"])),options),noop=()=>{},bindMemberFunctions=inst=>{Object.getOwnPropertyNames(Object.getPrototypeOf(inst)).forEach(mem=>{typeof inst[mem]=="function"&&(inst[mem]=inst[mem].bind(inst))})},I18n=class _I18n extends EventEmitter{constructor(options={},callback){if(super(),this.options=transformOptions(options),this.services={},this.logger=baseLogger,this.modules={external:[]},bindMemberFunctions(this),callback&&!this.isInitialized&&!options.isClone){if(!this.options.initAsync)return this.init(options,callback),this;setTimeout(()=>{this.init(options,callback)},0)}}init(options={},callback){this.isInitializing=!0,typeof options=="function"&&(callback=options,options={}),options.defaultNS==null&&options.ns&&(isString(options.ns)?options.defaultNS=options.ns:options.ns.includes("translation")||(options.defaultNS=options.ns[0]));let defOpts=get();this.options={...defOpts,...this.options,...transformOptions(options)},this.options.interpolation={...defOpts.interpolation,...this.options.interpolation},options.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=options.keySeparator),options.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=options.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=defOpts.overloadTranslationOptionHandler);let createClassOnDemand=ClassOrObject=>ClassOrObject?typeof ClassOrObject=="function"?new ClassOrObject:ClassOrObject:null;if(!this.options.isClone){this.modules.logger?baseLogger.init(createClassOnDemand(this.modules.logger),this.options):baseLogger.init(null,this.options);let formatter;this.modules.formatter?formatter=this.modules.formatter:formatter=Formatter;let lu=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);let s=this.services;s.logger=baseLogger,s.resourceStore=this.store,s.languageUtils=lu,s.pluralResolver=new PluralResolver(lu,{prepend:this.options.pluralSeparator}),formatter&&(s.formatter=createClassOnDemand(formatter),s.formatter.init&&s.formatter.init(s,this.options),this.options.interpolation.format=s.formatter.format.bind(s.formatter)),s.interpolator=new Interpolator(this.options),s.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},s.backendConnector=new Connector(createClassOnDemand(this.modules.backend),s.resourceStore,s,this.options),s.backendConnector.on("*",(event,...args)=>{this.emit(event,...args)}),this.modules.languageDetector&&(s.languageDetector=createClassOnDemand(this.modules.languageDetector),s.languageDetector.init&&s.languageDetector.init(s,this.options.detection,this.options)),this.modules.i18nFormat&&(s.i18nFormat=createClassOnDemand(this.modules.i18nFormat),s.i18nFormat.init&&s.i18nFormat.init(this)),this.translator=new Translator(this.services,this.options),this.translator.on("*",(event,...args)=>{this.emit(event,...args)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,callback||(callback=noop),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let codes=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);codes.length>0&&codes[0]!=="dev"&&(this.options.lng=codes[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(fcName=>{this[fcName]=(...args)=>this.store[fcName](...args)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(fcName=>{this[fcName]=(...args)=>(this.store[fcName](...args),this)});let deferred=defer(),load=()=>{let finish=(err,t2)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),deferred.resolve(t2),callback(err,t2)};if((this.languages||this.isLanguageChangingTo)&&!this.isInitialized)return finish(null,this.t.bind(this));this.changeLanguage(this.options.lng,finish)};return this.options.resources||!this.options.initAsync?load():setTimeout(load,0),deferred}loadResources(language,callback=noop){let usedCallback=callback,usedLng=isString(language)?language:this.language;if(typeof language=="function"&&(usedCallback=language),!this.options.resources||this.options.partialBundledLanguages){if(usedLng?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return usedCallback();let toLoad=[],append=lng=>{if(!lng||lng==="cimode")return;this.services.languageUtils.toResolveHierarchy(lng).forEach(l=>{l!=="cimode"&&(toLoad.includes(l)||toLoad.push(l))})};usedLng?append(usedLng):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>append(l)),this.options.preload?.forEach?.(l=>append(l)),this.services.backendConnector.load(toLoad,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),usedCallback(e)})}else usedCallback(null)}reloadResources(lngs,ns,callback){let deferred=defer();return typeof lngs=="function"&&(callback=lngs,lngs=void 0),typeof ns=="function"&&(callback=ns,ns=void 0),lngs||(lngs=this.languages),ns||(ns=this.options.ns),callback||(callback=noop),this.services.backendConnector.reload(lngs,ns,err=>{deferred.resolve(),callback(err)}),deferred}use(module){if(!module)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!module.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return module.type==="backend"&&(this.modules.backend=module),(module.type==="logger"||module.log&&module.warn&&module.error)&&(this.modules.logger=module),module.type==="languageDetector"&&(this.modules.languageDetector=module),module.type==="i18nFormat"&&(this.modules.i18nFormat=module),module.type==="postProcessor"&&postProcessor.addPostProcessor(module),module.type==="formatter"&&(this.modules.formatter=module),module.type==="3rdParty"&&this.modules.external.push(module),this}setResolvedLanguage(l){if(!(!l||!this.languages)&&!["cimode","dev"].includes(l)){for(let li=0;li<this.languages.length;li++){let lngInLngs=this.languages[li];if(!["cimode","dev"].includes(lngInLngs)&&this.store.hasLanguageSomeTranslations(lngInLngs)){this.resolvedLanguage=lngInLngs;break}}!this.resolvedLanguage&&!this.languages.includes(l)&&this.store.hasLanguageSomeTranslations(l)&&(this.resolvedLanguage=l,this.languages.unshift(l))}}changeLanguage(lng,callback){this.isLanguageChangingTo=lng;let deferred=defer();this.emit("languageChanging",lng);let setLngProps=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},done=(err,l)=>{l?this.isLanguageChangingTo===lng&&(setLngProps(l),this.translator.changeLanguage(l),this.isLanguageChangingTo=void 0,this.emit("languageChanged",l),this.logger.log("languageChanged",l)):this.isLanguageChangingTo=void 0,deferred.resolve((...args)=>this.t(...args)),callback&&callback(err,(...args)=>this.t(...args))},setLng=lngs=>{!lng&&!lngs&&this.services.languageDetector&&(lngs=[]);let fl=isString(lngs)?lngs:lngs&&lngs[0],l=this.store.hasLanguageSomeTranslations(fl)?fl:this.services.languageUtils.getBestMatchFromCodes(isString(lngs)?[lngs]:lngs);l&&(this.language||setLngProps(l),this.translator.language||this.translator.changeLanguage(l),this.services.languageDetector?.cacheUserLanguage?.(l)),this.loadResources(l,err=>{done(err,l)})};return!lng&&this.services.languageDetector&&!this.services.languageDetector.async?setLng(this.services.languageDetector.detect()):!lng&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(setLng):this.services.languageDetector.detect(setLng):setLng(lng),deferred}getFixedT(lng,ns,keyPrefix,fixedOpts){let scopeNs=fixedOpts?.scopeNs,fixedT=(key,opts,...rest)=>{let o;typeof opts!="object"?o=this.options.overloadTranslationOptionHandler([key,opts].concat(rest)):o={...opts},o.lng=o.lng||fixedT.lng,o.lngs=o.lngs||fixedT.lngs;let explicitCallNs=o.ns!==void 0&&o.ns!==null;o.ns=o.ns||fixedT.ns,o.keyPrefix!==""&&(o.keyPrefix=o.keyPrefix||keyPrefix||fixedT.keyPrefix);let selectorOpts={...this.options,...o};Array.isArray(scopeNs)&&!explicitCallNs&&(selectorOpts.ns=scopeNs),typeof o.keyPrefix=="function"&&(o.keyPrefix=keysFromSelector(o.keyPrefix,selectorOpts));let keySeparator=this.options.keySeparator||".",resultKey;return o.keyPrefix&&Array.isArray(key)?resultKey=key.map(k=>(typeof k=="function"&&(k=keysFromSelector(k,selectorOpts)),`${o.keyPrefix}${keySeparator}${k}`)):(typeof key=="function"&&(key=keysFromSelector(key,selectorOpts)),resultKey=o.keyPrefix?`${o.keyPrefix}${keySeparator}${key}`:key),this.t(resultKey,o)};return isString(lng)?fixedT.lng=lng:fixedT.lngs=lng,fixedT.ns=ns,fixedT.keyPrefix=keyPrefix,fixedT}t(...args){return this.translator?.translate(...args)}exists(...args){return this.translator?.exists(...args)}setDefaultNamespace(ns){this.options.defaultNS=ns}hasLoadedNamespace(ns,options={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;let lng=options.lng||this.resolvedLanguage||this.languages[0],fallbackLng=this.options?this.options.fallbackLng:!1,lastLng=this.languages[this.languages.length-1];if(lng.toLowerCase()==="cimode")return!0;let loadNotPending=(l,n)=>{let loadState=this.services.backendConnector.state[`${l}|${n}`];return loadState===-1||loadState===0||loadState===2};if(options.precheck){let preResult=options.precheck(this,loadNotPending);if(preResult!==void 0)return preResult}return!!(this.hasResourceBundle(lng,ns)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||loadNotPending(lng,ns)&&(!fallbackLng||loadNotPending(lastLng,ns)))}loadNamespaces(ns,callback){let deferred=defer();return this.options.ns?(isString(ns)&&(ns=[ns]),ns.forEach(n=>{this.options.ns.includes(n)||this.options.ns.push(n)}),this.loadResources(err=>{deferred.resolve(),callback&&callback(err)}),deferred):(callback&&callback(),Promise.resolve())}loadLanguages(lngs,callback){let deferred=defer();isString(lngs)&&(lngs=[lngs]);let preloaded=this.options.preload||[],newLngs=lngs.filter(lng=>!preloaded.includes(lng)&&this.services.languageUtils.isSupportedCode(lng));return newLngs.length?(this.options.preload=preloaded.concat(newLngs),this.loadResources(err=>{deferred.resolve(),callback&&callback(err)}),deferred):(callback&&callback(),Promise.resolve())}dir(lng){if(lng||(lng=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!lng)return"rtl";try{let l=new Intl.Locale(lng);if(l&&l.getTextInfo){let ti=l.getTextInfo();if(ti&&ti.direction)return ti.direction}}catch{}let rtlLngs=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],languageUtils=this.services?.languageUtils||new LanguageUtil(get());return lng.toLowerCase().indexOf("-latn")>1?"ltr":rtlLngs.includes(languageUtils.getLanguagePartFromCode(lng))||lng.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(options={},callback){let instance2=new _I18n(options,callback);return instance2.createInstance=_I18n.createInstance,instance2}cloneInstance(options={},callback=noop){let forkResourceStore=options.forkResourceStore;forkResourceStore&&delete options.forkResourceStore;let mergedOptions={...this.options,...options,isClone:!0},clone=new _I18n(mergedOptions);if((options.debug!==void 0||options.prefix!==void 0)&&(clone.logger=clone.logger.clone(options)),["store","services","language"].forEach(m=>{clone[m]=this[m]}),clone.services={...this.services},clone.services.utils={hasLoadedNamespace:clone.hasLoadedNamespace.bind(clone)},forkResourceStore){let clonedData=Object.keys(this.store.data).reduce((prev,l)=>(prev[l]={...this.store.data[l]},prev[l]=Object.keys(prev[l]).reduce((acc,n)=>(acc[n]={...prev[l][n]},acc),prev[l]),prev),{});clone.store=new ResourceStore(clonedData,mergedOptions),clone.services.resourceStore=clone.store}if(options.interpolation){let mergedInterpolation={...get().interpolation,...this.options.interpolation,...options.interpolation},mergedForInterpolator={...mergedOptions,interpolation:mergedInterpolation};clone.services.interpolator=new Interpolator(mergedForInterpolator)}return clone.translator=new Translator(clone.services,mergedOptions),clone.translator.on("*",(event,...args)=>{clone.emit(event,...args)}),clone.init(mergedOptions,callback),clone.translator.options=mergedOptions,clone.translator.backendConnector.services.utils={hasLoadedNamespace:clone.hasLoadedNamespace.bind(clone)},clone}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}},instance=I18n.createInstance(),createInstance=instance.createInstance,dir=instance.dir,init=instance.init,loadResources=instance.loadResources,reloadResources=instance.reloadResources,use=instance.use,changeLanguage=instance.changeLanguage,getFixedT=instance.getFixedT,t=instance.t,exists=instance.exists,setDefaultNamespace=instance.setDefaultNamespace,hasLoadedNamespace=instance.hasLoadedNamespace,loadNamespaces=instance.loadNamespaces,loadLanguages=instance.loadLanguages;var ojm_shim_i18next_default=instance??i18next_exports;export{changeLanguage,createInstance,ojm_shim_i18next_default as default,dir,exists,getFixedT,hasLoadedNamespace,init,keysFromSelector as keyFromSelector,loadLanguages,loadNamespaces,loadResources,reloadResources,setDefaultNamespace,t,use};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var __defProp=Object.defineProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})};var Context_exports={};__export(Context_exports,{default:()=>Context_default});import{createContext}from"react";var IconContext=createContext({}),Context_default=IconContext;var ojm_shim_icons_es_components_Context_default=Context_default??Context_exports;export{ojm_shim_icons_es_components_Context_default as default};
|