@cyberskill/shared 2.28.0 → 3.1.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/dist/config/commitlint/index.js +1 -0
- package/dist/config/commitlint/index.js.map +1 -0
- package/dist/config/config.test.unit.d.ts +1 -0
- package/dist/config/config.type.js +1 -0
- package/dist/config/config.type.js.map +1 -0
- package/dist/config/config.type.test.unit.d.ts +1 -0
- package/dist/config/config.util.js +25 -33
- package/dist/config/config.util.js.map +1 -0
- package/dist/config/env/env.constant.js +1 -0
- package/dist/config/env/env.constant.js.map +1 -0
- package/dist/config/env/env.util.js +1 -0
- package/dist/config/env/env.util.js.map +1 -0
- package/dist/config/env/index.js +1 -0
- package/dist/config/env/index.js.map +1 -0
- package/dist/config/eslint/index.d.ts +4 -0
- package/dist/config/eslint/index.js +5 -12
- package/dist/config/eslint/index.js.map +1 -0
- package/dist/config/graphql-codegen/graphql-codegen.util.js +29 -33
- package/dist/config/graphql-codegen/graphql-codegen.util.js.map +1 -0
- package/dist/config/graphql-codegen/index.js +1 -0
- package/dist/config/graphql-codegen/index.js.map +1 -0
- package/dist/config/index.js +1 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/lint-staged/index.js +1 -0
- package/dist/config/lint-staged/index.js.map +1 -0
- package/dist/config/storybook/index.js +1 -0
- package/dist/config/storybook/index.js.map +1 -0
- package/dist/config/storybook/storybook.main.js +1 -0
- package/dist/config/storybook/storybook.main.js.map +1 -0
- package/dist/config/storybook/storybook.preview.js +11 -13
- package/dist/config/storybook/storybook.preview.js.map +1 -0
- package/dist/config/vitest/index.js +1 -0
- package/dist/config/vitest/index.js.map +1 -0
- package/dist/config/vitest/vitest.e2e.js +2 -1
- package/dist/config/vitest/vitest.e2e.js.map +1 -0
- package/dist/config/vitest/vitest.unit.js +20 -8
- package/dist/config/vitest/vitest.unit.js.map +1 -0
- package/dist/constant/common.js +2 -1
- package/dist/constant/common.js.map +1 -0
- package/dist/constant/constant.test.unit.d.ts +1 -0
- package/dist/constant/index.js +1 -0
- package/dist/constant/index.js.map +1 -0
- package/dist/constant/response-status.js +1 -0
- package/dist/constant/response-status.js.map +1 -0
- package/dist/node/apollo-server/apollo-server.util.js +22 -48
- package/dist/node/apollo-server/apollo-server.util.js.map +1 -0
- package/dist/node/apollo-server/index.js +1 -0
- package/dist/node/apollo-server/index.js.map +1 -0
- package/dist/node/cli/index.js +110 -165
- package/dist/node/cli/index.js.map +1 -0
- package/dist/node/command/command.test.unit.d.ts +1 -0
- package/dist/node/command/command.type.js +1 -0
- package/dist/node/command/command.type.js.map +1 -0
- package/dist/node/command/command.util.js +142 -169
- package/dist/node/command/command.util.js.map +1 -0
- package/dist/node/command/index.js +1 -0
- package/dist/node/command/index.js.map +1 -0
- package/dist/node/express/express.type.d.ts +4 -0
- package/dist/node/express/express.util.js +56 -71
- package/dist/node/express/express.util.js.map +1 -0
- package/dist/node/express/index.js +1 -0
- package/dist/node/express/index.js.map +1 -0
- package/dist/node/fs/fs.test.unit.d.ts +1 -0
- package/dist/node/fs/fs.util.js +46 -60
- package/dist/node/fs/fs.util.js.map +1 -0
- package/dist/node/fs/index.js +1 -0
- package/dist/node/fs/index.js.map +1 -0
- package/dist/node/log/index.js +1 -0
- package/dist/node/log/index.js.map +1 -0
- package/dist/node/log/log.test.unit.d.ts +1 -0
- package/dist/node/log/log.type.js +1 -0
- package/dist/node/log/log.type.js.map +1 -0
- package/dist/node/log/log.util.js +30 -30
- package/dist/node/log/log.util.js.map +1 -0
- package/dist/node/mongo/index.d.ts +2 -0
- package/dist/node/mongo/index.js +21 -12
- package/dist/node/mongo/index.js.map +1 -0
- package/dist/node/mongo/mongo.constant.js +1 -0
- package/dist/node/mongo/mongo.constant.js.map +1 -0
- package/dist/node/mongo/mongo.controller.d.ts +5 -315
- package/dist/node/mongo/mongo.controller.mongoose.d.ts +234 -0
- package/dist/node/mongo/mongo.controller.mongoose.js +468 -0
- package/dist/node/mongo/mongo.controller.mongoose.js.map +1 -0
- package/dist/node/mongo/mongo.controller.native.d.ts +84 -0
- package/dist/node/mongo/mongo.controller.native.js +214 -0
- package/dist/node/mongo/mongo.controller.native.js.map +1 -0
- package/dist/node/mongo/mongo.dynamic-populate.d.ts +61 -0
- package/dist/node/mongo/mongo.dynamic-populate.js +197 -0
- package/dist/node/mongo/mongo.dynamic-populate.js.map +1 -0
- package/dist/node/mongo/mongo.populate.d.ts +15 -0
- package/dist/node/mongo/mongo.populate.js +269 -0
- package/dist/node/mongo/mongo.populate.js.map +1 -0
- package/dist/node/mongo/mongo.type.js +1 -0
- package/dist/node/mongo/mongo.type.js.map +1 -0
- package/dist/node/mongo/mongo.util.d.ts +52 -0
- package/dist/node/mongo/mongo.util.js +111 -409
- package/dist/node/mongo/mongo.util.js.map +1 -0
- package/dist/node/package/index.js +1 -0
- package/dist/node/package/index.js.map +1 -0
- package/dist/node/package/package.test.unit.d.ts +1 -0
- package/dist/node/package/package.type.js +1 -0
- package/dist/node/package/package.type.js.map +1 -0
- package/dist/node/package/package.util.js +197 -226
- package/dist/node/package/package.util.js.map +1 -0
- package/dist/node/path/index.js +27 -25
- package/dist/node/path/index.js.map +1 -0
- package/dist/node/path/path.constant.d.ts +2 -0
- package/dist/node/path/path.constant.js +131 -150
- package/dist/node/path/path.constant.js.map +1 -0
- package/dist/node/path/path.util.js +1 -0
- package/dist/node/path/path.util.js.map +1 -0
- package/dist/node/storage/index.js +1 -0
- package/dist/node/storage/index.js.map +1 -0
- package/dist/node/storage/storage.constant.js +1 -0
- package/dist/node/storage/storage.constant.js.map +1 -0
- package/dist/node/storage/storage.util.js +111 -158
- package/dist/node/storage/storage.util.js.map +1 -0
- package/dist/node/upload/index.js +1 -0
- package/dist/node/upload/index.js.map +1 -0
- package/dist/node/upload/upload.constant.js +1 -0
- package/dist/node/upload/upload.constant.js.map +1 -0
- package/dist/node/upload/upload.type.js +1 -0
- package/dist/node/upload/upload.type.js.map +1 -0
- package/dist/node/upload/upload.util.js +120 -150
- package/dist/node/upload/upload.util.js.map +1 -0
- package/dist/node/ws/index.d.ts +1 -1
- package/dist/node/ws/index.js +2 -1
- package/dist/node/ws/index.js.map +1 -0
- package/dist/node/ws/ws.util.js +46 -0
- package/dist/node/ws/ws.util.js.map +1 -0
- package/dist/node_modules/.pnpm/{vitest@4.0.18_@types_node@25.3.0_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2 → vitest@4.0.18_@types_node@25.3.3_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2}/node_modules/vitest/dist/config.js +1 -0
- package/dist/node_modules/.pnpm/vitest@4.0.18_@types_node@25.3.3_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2/node_modules/vitest/dist/config.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.component.js +5 -4
- package/dist/react/apollo-client/apollo-client.component.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.constant.js +1 -0
- package/dist/react/apollo-client/apollo-client.constant.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.context.js +1 -0
- package/dist/react/apollo-client/apollo-client.context.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.module.scss.js +1 -0
- package/dist/react/apollo-client/apollo-client.module.scss.js.map +1 -0
- package/dist/react/apollo-client/apollo-client.util.js +52 -58
- package/dist/react/apollo-client/apollo-client.util.js.map +1 -0
- package/dist/react/apollo-client/index.js +1 -0
- package/dist/react/apollo-client/index.js.map +1 -0
- package/dist/react/apollo-client/links/index.js +1 -0
- package/dist/react/apollo-client/links/index.js.map +1 -0
- package/dist/react/apollo-client/links/upload.js +72 -74
- package/dist/react/apollo-client/links/upload.js.map +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.js +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.js.map +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.js +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.js.map +1 -0
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.js +12 -18
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.js.map +1 -0
- package/dist/react/apollo-client-nextjs/index.js +1 -0
- package/dist/react/apollo-client-nextjs/index.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.component.js +62 -23
- package/dist/react/apollo-error/apollo-error.component.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.context.js +1 -0
- package/dist/react/apollo-error/apollo-error.context.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.hook.js +1 -0
- package/dist/react/apollo-error/apollo-error.hook.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.module.scss.js +7 -6
- package/dist/react/apollo-error/apollo-error.module.scss.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.provider.js +1 -0
- package/dist/react/apollo-error/apollo-error.provider.js.map +1 -0
- package/dist/react/apollo-error/apollo-error.test.unit.d.ts +1 -0
- package/dist/react/apollo-error/apollo-error.util.js +7 -6
- package/dist/react/apollo-error/apollo-error.util.js.map +1 -0
- package/dist/react/apollo-error/index.js +1 -0
- package/dist/react/apollo-error/index.js.map +1 -0
- package/dist/react/i18next/i18next.hook.js +1 -0
- package/dist/react/i18next/i18next.hook.js.map +1 -0
- package/dist/react/i18next/i18next.util.js +1 -0
- package/dist/react/i18next/i18next.util.js.map +1 -0
- package/dist/react/i18next/index.js +1 -0
- package/dist/react/i18next/index.js.map +1 -0
- package/dist/react/loading/index.js +1 -0
- package/dist/react/loading/index.js.map +1 -0
- package/dist/react/loading/loading.component.js +31 -46
- package/dist/react/loading/loading.component.js.map +1 -0
- package/dist/react/loading/loading.context.js +1 -0
- package/dist/react/loading/loading.context.js.map +1 -0
- package/dist/react/loading/loading.hook.js +1 -0
- package/dist/react/loading/loading.hook.js.map +1 -0
- package/dist/react/loading/loading.module.scss.js +1 -0
- package/dist/react/loading/loading.module.scss.js.map +1 -0
- package/dist/react/loading/loading.provider.js +1 -0
- package/dist/react/loading/loading.provider.js.map +1 -0
- package/dist/react/log/index.js +1 -0
- package/dist/react/log/index.js.map +1 -0
- package/dist/react/log/log.util.js +5 -4
- package/dist/react/log/log.util.js.map +1 -0
- package/dist/react/next-intl/index.js +1 -0
- package/dist/react/next-intl/index.js.map +1 -0
- package/dist/react/next-intl/next-intl.constant.js +1 -0
- package/dist/react/next-intl/next-intl.constant.js.map +1 -0
- package/dist/react/next-intl/next-intl.context.js +1 -0
- package/dist/react/next-intl/next-intl.context.js.map +1 -0
- package/dist/react/next-intl/next-intl.hoc.js +14 -22
- package/dist/react/next-intl/next-intl.hoc.js.map +1 -0
- package/dist/react/next-intl/next-intl.hook.js +1 -0
- package/dist/react/next-intl/next-intl.hook.js.map +1 -0
- package/dist/react/next-intl/next-intl.provider.js +8 -7
- package/dist/react/next-intl/next-intl.provider.js.map +1 -0
- package/dist/react/storage/index.js +1 -0
- package/dist/react/storage/index.js.map +1 -0
- package/dist/react/storage/storage.hook.js +44 -59
- package/dist/react/storage/storage.hook.js.map +1 -0
- package/dist/react/storage/storage.test.unit.d.ts +1 -0
- package/dist/react/storage/storage.util.js +29 -53
- package/dist/react/storage/storage.util.js.map +1 -0
- package/dist/react/toast/index.js +1 -0
- package/dist/react/toast/index.js.map +1 -0
- package/dist/react/userback/index.js +1 -0
- package/dist/react/userback/index.js.map +1 -0
- package/dist/react/userback/userback.component.js +19 -42
- package/dist/react/userback/userback.component.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/typescript/common.type.js +1 -0
- package/dist/typescript/common.type.js.map +1 -0
- package/dist/typescript/index.js +1 -0
- package/dist/typescript/index.js.map +1 -0
- package/dist/typescript/typescript.test.unit.d.ts +1 -0
- package/dist/util/common/common.util.d.ts +2 -0
- package/dist/util/common/common.util.js +30 -37
- package/dist/util/common/common.util.js.map +1 -0
- package/dist/util/common/index.js +1 -0
- package/dist/util/common/index.js.map +1 -0
- package/dist/util/index.js +11 -9
- package/dist/util/index.js.map +1 -0
- package/dist/util/object/index.js +1 -0
- package/dist/util/object/index.js.map +1 -0
- package/dist/util/object/object.util.js +73 -76
- package/dist/util/object/object.util.js.map +1 -0
- package/dist/util/serializer/index.js +1 -0
- package/dist/util/serializer/index.js.map +1 -0
- package/dist/util/serializer/serializer.util.js +1 -0
- package/dist/util/serializer/serializer.util.js.map +1 -0
- package/dist/util/string/index.js +5 -3
- package/dist/util/string/index.js.map +1 -0
- package/dist/util/string/string.util.d.ts +12 -0
- package/dist/util/string/string.util.js +64 -44
- package/dist/util/string/string.util.js.map +1 -0
- package/dist/util/validate/index.js +1 -0
- package/dist/util/validate/index.js.map +1 -0
- package/dist/util/validate/validate.util.js +1 -0
- package/dist/util/validate/validate.util.js.map +1 -0
- package/package.json +76 -96
- package/public/tsconfig.base.json +7 -3
- package/README.md +0 -470
- package/dist/config/commitlint/index.cjs +0 -1
- package/dist/config/config.type.cjs +0 -1
- package/dist/config/config.util.cjs +0 -1
- package/dist/config/env/env.constant.cjs +0 -1
- package/dist/config/env/env.util.cjs +0 -1
- package/dist/config/env/index.cjs +0 -1
- package/dist/config/eslint/index.cjs +0 -1
- package/dist/config/graphql-codegen/graphql-codegen.util.cjs +0 -1
- package/dist/config/graphql-codegen/index.cjs +0 -1
- package/dist/config/index.cjs +0 -1
- package/dist/config/lint-staged/index.cjs +0 -1
- package/dist/config/storybook/index.cjs +0 -1
- package/dist/config/storybook/storybook.main.cjs +0 -1
- package/dist/config/storybook/storybook.preview.cjs +0 -1
- package/dist/config/vitest/index.cjs +0 -1
- package/dist/config/vitest/vitest.e2e.cjs +0 -1
- package/dist/config/vitest/vitest.unit.cjs +0 -1
- package/dist/constant/common.cjs +0 -1
- package/dist/constant/index.cjs +0 -1
- package/dist/constant/response-status.cjs +0 -1
- package/dist/node/apollo-server/apollo-server.util.cjs +0 -1
- package/dist/node/apollo-server/index.cjs +0 -1
- package/dist/node/cli/index.cjs +0 -3
- package/dist/node/command/command.type.cjs +0 -1
- package/dist/node/command/command.util.cjs +0 -2
- package/dist/node/command/index.cjs +0 -1
- package/dist/node/express/express.util.cjs +0 -1
- package/dist/node/express/index.cjs +0 -1
- package/dist/node/fs/fs.util.cjs +0 -4
- package/dist/node/fs/index.cjs +0 -1
- package/dist/node/log/index.cjs +0 -1
- package/dist/node/log/log.type.cjs +0 -1
- package/dist/node/log/log.util.cjs +0 -1
- package/dist/node/mongo/index.cjs +0 -1
- package/dist/node/mongo/mongo.constant.cjs +0 -1
- package/dist/node/mongo/mongo.controller.cjs +0 -1
- package/dist/node/mongo/mongo.controller.js +0 -956
- package/dist/node/mongo/mongo.type.cjs +0 -1
- package/dist/node/mongo/mongo.util.cjs +0 -2
- package/dist/node/package/index.cjs +0 -1
- package/dist/node/package/package.type.cjs +0 -1
- package/dist/node/package/package.util.cjs +0 -1
- package/dist/node/path/index.cjs +0 -1
- package/dist/node/path/path.constant.cjs +0 -1
- package/dist/node/path/path.util.cjs +0 -1
- package/dist/node/storage/index.cjs +0 -1
- package/dist/node/storage/storage.constant.cjs +0 -1
- package/dist/node/storage/storage.util.cjs +0 -1
- package/dist/node/upload/index.cjs +0 -1
- package/dist/node/upload/upload.constant.cjs +0 -1
- package/dist/node/upload/upload.type.cjs +0 -1
- package/dist/node/upload/upload.util.cjs +0 -1
- package/dist/node/ws/index.cjs +0 -1
- package/dist/node/ws/ts.util.cjs +0 -1
- package/dist/node/ws/ts.util.js +0 -68
- package/dist/node_modules/.pnpm/vitest@4.0.18_@types_node@25.3.0_jiti@2.6.1_jsdom@28.1.0_@noble_hashes@1.8.0__sass@1.97.3_tsx@4.21.0_yaml@2.8.2/node_modules/vitest/dist/config.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.component.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.constant.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.context.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.module.scss.cjs +0 -1
- package/dist/react/apollo-client/apollo-client.util.cjs +0 -1
- package/dist/react/apollo-client/index.cjs +0 -1
- package/dist/react/apollo-client/links/index.cjs +0 -1
- package/dist/react/apollo-client/links/upload.cjs +0 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.component.cjs +0 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.cjs +0 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.util.cjs +0 -1
- package/dist/react/apollo-client-nextjs/index.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.component.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.context.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.hook.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.module.scss.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.provider.cjs +0 -1
- package/dist/react/apollo-error/apollo-error.util.cjs +0 -1
- package/dist/react/apollo-error/index.cjs +0 -1
- package/dist/react/i18next/i18next.hook.cjs +0 -1
- package/dist/react/i18next/i18next.util.cjs +0 -1
- package/dist/react/i18next/index.cjs +0 -1
- package/dist/react/loading/index.cjs +0 -1
- package/dist/react/loading/loading.component.cjs +0 -6
- package/dist/react/loading/loading.context.cjs +0 -1
- package/dist/react/loading/loading.hook.cjs +0 -1
- package/dist/react/loading/loading.module.scss.cjs +0 -1
- package/dist/react/loading/loading.provider.cjs +0 -1
- package/dist/react/log/index.cjs +0 -1
- package/dist/react/log/log.util.cjs +0 -1
- package/dist/react/next-intl/index.cjs +0 -1
- package/dist/react/next-intl/next-intl.constant.cjs +0 -1
- package/dist/react/next-intl/next-intl.context.cjs +0 -1
- package/dist/react/next-intl/next-intl.hoc.cjs +0 -1
- package/dist/react/next-intl/next-intl.hook.cjs +0 -1
- package/dist/react/next-intl/next-intl.provider.cjs +0 -1
- package/dist/react/storage/index.cjs +0 -1
- package/dist/react/storage/storage.hook.cjs +0 -1
- package/dist/react/storage/storage.util.cjs +0 -1
- package/dist/react/toast/index.cjs +0 -1
- package/dist/react/userback/index.cjs +0 -1
- package/dist/react/userback/userback.component.cjs +0 -1
- package/dist/typescript/common.type.cjs +0 -1
- package/dist/typescript/index.cjs +0 -1
- package/dist/util/common/common.util.cjs +0 -1
- package/dist/util/common/index.cjs +0 -1
- package/dist/util/index.cjs +0 -1
- package/dist/util/object/index.cjs +0 -1
- package/dist/util/object/object.util.cjs +0 -1
- package/dist/util/serializer/index.cjs +0 -1
- package/dist/util/serializer/serializer.util.cjs +0 -1
- package/dist/util/string/index.cjs +0 -1
- package/dist/util/string/string.util.cjs +0 -1
- package/dist/util/validate/index.cjs +0 -1
- package/dist/util/validate/validate.util.cjs +0 -1
- /package/dist/node/ws/{ts.util.d.ts → ws.util.d.ts} +0 -0
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { catchError as
|
|
3
|
-
|
|
4
|
-
var y = (t) => {
|
|
5
|
-
try {
|
|
6
|
-
c(n.next(t));
|
|
7
|
-
} catch (a) {
|
|
8
|
-
i(a);
|
|
9
|
-
}
|
|
10
|
-
}, h = (t) => {
|
|
11
|
-
try {
|
|
12
|
-
c(n.throw(t));
|
|
13
|
-
} catch (a) {
|
|
14
|
-
i(a);
|
|
15
|
-
}
|
|
16
|
-
}, c = (t) => t.done ? s(t.value) : Promise.resolve(t.value).then(y, h);
|
|
17
|
-
c((n = n.apply(r, e)).next());
|
|
18
|
-
});
|
|
19
|
-
const f = {
|
|
1
|
+
import e from "localforage";
|
|
2
|
+
import { catchError as a } from "../log/log.util.js";
|
|
3
|
+
const s = {
|
|
20
4
|
/**
|
|
21
5
|
* Retrieves a value from browser storage by key.
|
|
22
6
|
* This method fetches data that was previously stored using the set method.
|
|
@@ -25,14 +9,12 @@ const f = {
|
|
|
25
9
|
* @param key - The unique identifier for the stored value.
|
|
26
10
|
* @returns A promise that resolves to the stored value or null if not found.
|
|
27
11
|
*/
|
|
28
|
-
get(r) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
});
|
|
12
|
+
async get(r) {
|
|
13
|
+
try {
|
|
14
|
+
return await e.getItem(r);
|
|
15
|
+
} catch (t) {
|
|
16
|
+
return a(t, { returnValue: null });
|
|
17
|
+
}
|
|
36
18
|
},
|
|
37
19
|
/**
|
|
38
20
|
* Stores a value in browser storage with a unique key.
|
|
@@ -44,14 +26,12 @@ const f = {
|
|
|
44
26
|
* @param value - The data to store (will be automatically handled by localForage).
|
|
45
27
|
* @returns A promise that resolves when the storage operation is complete.
|
|
46
28
|
*/
|
|
47
|
-
set(r,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
});
|
|
29
|
+
async set(r, t) {
|
|
30
|
+
try {
|
|
31
|
+
await e.setItem(r, t);
|
|
32
|
+
} catch (c) {
|
|
33
|
+
a(c);
|
|
34
|
+
}
|
|
55
35
|
},
|
|
56
36
|
/**
|
|
57
37
|
* Removes a value from browser storage by key.
|
|
@@ -61,14 +41,12 @@ const f = {
|
|
|
61
41
|
* @param key - The unique identifier of the value to remove.
|
|
62
42
|
* @returns A promise that resolves when the removal operation is complete.
|
|
63
43
|
*/
|
|
64
|
-
remove(r) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
});
|
|
44
|
+
async remove(r) {
|
|
45
|
+
try {
|
|
46
|
+
await e.removeItem(r);
|
|
47
|
+
} catch (t) {
|
|
48
|
+
a(t);
|
|
49
|
+
}
|
|
72
50
|
},
|
|
73
51
|
/**
|
|
74
52
|
* Retrieves all storage keys.
|
|
@@ -77,17 +55,15 @@ const f = {
|
|
|
77
55
|
*
|
|
78
56
|
* @returns A promise that resolves to an array of storage keys.
|
|
79
57
|
*/
|
|
80
|
-
keys() {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
return u(r, { returnValue: [] });
|
|
87
|
-
}
|
|
88
|
-
});
|
|
58
|
+
async keys() {
|
|
59
|
+
try {
|
|
60
|
+
return await e.keys() ?? [];
|
|
61
|
+
} catch (r) {
|
|
62
|
+
return a(r, { returnValue: [] });
|
|
63
|
+
}
|
|
89
64
|
}
|
|
90
65
|
};
|
|
91
66
|
export {
|
|
92
|
-
|
|
67
|
+
s as storage
|
|
93
68
|
};
|
|
69
|
+
//# sourceMappingURL=storage.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.util.js","sources":["../../../src/react/storage/storage.util.ts"],"sourcesContent":["import localForage from 'localforage';\n\nimport { catchError } from '../log/index.js';\n\n/**\n * Browser storage utility object using localForage for cross-browser compatibility.\n * This object provides a unified interface for browser storage operations using localForage,\n * which automatically chooses the best available storage method (IndexedDB, WebSQL, or localStorage)\n * based on browser capabilities. It includes comprehensive error handling and type safety.\n */\nexport const storage = {\n /**\n * Retrieves a value from browser storage by key.\n * This method fetches data that was previously stored using the set method.\n * Returns null if the key doesn't exist or if an error occurs during retrieval.\n *\n * @param key - The unique identifier for the stored value.\n * @returns A promise that resolves to the stored value or null if not found.\n */\n async get<T = unknown>(key: string): Promise<T | null> {\n try {\n return await localForage.getItem<T>(key);\n }\n catch (error) {\n return catchError(error, { returnValue: null });\n }\n },\n /**\n * Stores a value in browser storage with a unique key.\n * This method saves data that can be retrieved later using the get method.\n * The data is automatically handled by localForage which chooses the optimal\n * storage method for the browser environment.\n *\n * @param key - The unique identifier for the value to store.\n * @param value - The data to store (will be automatically handled by localForage).\n * @returns A promise that resolves when the storage operation is complete.\n */\n async set<T = unknown>(key: string, value: T): Promise<void> {\n try {\n await localForage.setItem(key, value);\n }\n catch (error) {\n catchError(error);\n }\n },\n /**\n * Removes a value from browser storage by key.\n * This method permanently deletes the stored data associated with the specified key.\n * If the key doesn't exist, the operation completes successfully without error.\n *\n * @param key - The unique identifier of the value to remove.\n * @returns A promise that resolves when the removal operation is complete.\n */\n async remove(key: string): Promise<void> {\n try {\n await localForage.removeItem(key);\n }\n catch (error) {\n catchError(error);\n }\n },\n /**\n * Retrieves all storage keys.\n * This method returns an array of all keys that currently have stored values.\n * Returns an empty array if no keys exist or if an error occurs during retrieval.\n *\n * @returns A promise that resolves to an array of storage keys.\n */\n async keys(): Promise<string[]> {\n try {\n const keys = await localForage.keys();\n\n return keys ?? [];\n }\n catch (error) {\n return catchError(error, { returnValue: [] });\n }\n },\n};\n"],"names":["localForage","catchError","storage","key","error","value"],"mappings":"AAUO,OAAAA,OAAA;AAAA,SAAA,cAAAC,SAAA;AAAA,MAAMC,IAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASnB,MAAM,IAAiBC,GAAgC;AACnD,QAAI;AACA,aAAO,MAAMH,EAAY,QAAWG,CAAG;AAAA,IAC3C,SACOC,GAAO;AACV,aAAOH,EAAWG,GAAO,EAAE,aAAa,MAAM;AAAA,IAClD;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,IAAiBD,GAAaE,GAAyB;AACzD,QAAI;AACA,YAAML,EAAY,QAAQG,GAAKE,CAAK;AAAA,IACxC,SACOD,GAAO;AACV,MAAAH,EAAWG,CAAK;AAAA,IACpB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,OAAOD,GAA4B;AACrC,QAAI;AACA,YAAMH,EAAY,WAAWG,CAAG;AAAA,IACpC,SACOC,GAAO;AACV,MAAAH,EAAWG,CAAK;AAAA,IACpB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,OAA0B;AAC5B,QAAI;AAGA,aAFa,MAAMJ,EAAY,KAAA,KAEhB,CAAA;AAAA,IACnB,SACOI,GAAO;AACV,aAAOH,EAAWG,GAAO,EAAE,aAAa,CAAA,GAAI;AAAA,IAChD;AAAA,EACJ;AACJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,51 +1,28 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useEffect as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
d.call(e, t) && o.indexOf(t) < 0 && (r[t] = e[t]);
|
|
7
|
-
if (e != null && u)
|
|
8
|
-
for (var t of u(e))
|
|
9
|
-
o.indexOf(t) < 0 && b.call(e, t) && (r[t] = e[t]);
|
|
10
|
-
return r;
|
|
11
|
-
}, m = (e, o, r) => new Promise((t, c) => {
|
|
12
|
-
var n = (l) => {
|
|
13
|
-
try {
|
|
14
|
-
a(r.next(l));
|
|
15
|
-
} catch (f) {
|
|
16
|
-
c(f);
|
|
17
|
-
}
|
|
18
|
-
}, i = (l) => {
|
|
19
|
-
try {
|
|
20
|
-
a(r.throw(l));
|
|
21
|
-
} catch (f) {
|
|
22
|
-
c(f);
|
|
23
|
-
}
|
|
24
|
-
}, a = (l) => l.done ? t(l.value) : Promise.resolve(l.value).then(n, i);
|
|
25
|
-
a((r = r.apply(e, o)).next());
|
|
26
|
-
});
|
|
27
|
-
function _({ token: e, options: o }) {
|
|
28
|
-
return s(() => {
|
|
29
|
-
if (!e)
|
|
1
|
+
import a from "@userback/widget";
|
|
2
|
+
import { useEffect as l } from "react";
|
|
3
|
+
function d({ token: r, options: n }) {
|
|
4
|
+
return l(() => {
|
|
5
|
+
if (!r)
|
|
30
6
|
return;
|
|
31
|
-
let
|
|
32
|
-
return
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
document.querySelectorAll(
|
|
36
|
-
}),
|
|
37
|
-
|
|
38
|
-
document.querySelectorAll(
|
|
7
|
+
let t;
|
|
8
|
+
return (async () => {
|
|
9
|
+
const { hide: e, ...u } = n || {};
|
|
10
|
+
await a(r, u), e && e.length > 0 && e.forEach((o) => {
|
|
11
|
+
document.querySelectorAll(o).forEach((c) => c.remove());
|
|
12
|
+
}), t = new MutationObserver(() => {
|
|
13
|
+
e && e.length > 0 && e.forEach((o) => {
|
|
14
|
+
document.querySelectorAll(o).forEach((c) => c.remove());
|
|
39
15
|
});
|
|
40
|
-
}),
|
|
16
|
+
}), t.observe(document.body, {
|
|
41
17
|
childList: !0,
|
|
42
18
|
subtree: !0
|
|
43
19
|
});
|
|
44
|
-
}), () => {
|
|
45
|
-
|
|
20
|
+
})(), () => {
|
|
21
|
+
t?.disconnect();
|
|
46
22
|
};
|
|
47
|
-
}, [
|
|
23
|
+
}, [r, n]), null;
|
|
48
24
|
}
|
|
49
25
|
export {
|
|
50
|
-
|
|
26
|
+
d as Userback
|
|
51
27
|
};
|
|
28
|
+
//# sourceMappingURL=userback.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userback.component.js","sources":["../../../src/react/userback/userback.component.tsx"],"sourcesContent":["import UserbackWidget from '@userback/widget';\nimport { useEffect } from 'react';\n\nimport type { I_UserBackProps } from './userback.type.js';\n\n/**\n * Userback feedback widget component for collecting user feedback.\n * This component integrates the Userback feedback widget into React applications,\n * providing a customizable feedback collection interface for users to submit\n * bug reports, feature requests, and general feedback.\n *\n * Features:\n * - Userback widget integration\n * - Customizable feedback collection\n * - Automatic widget initialization\n * - Token-based configuration\n * - Responsive design support\n *\n * @param props - Component props containing token and options.\n * @param props.token - The Userback token for widget authentication.\n * @param props.options - Optional configuration options for the Userback widget.\n * @returns A React component that renders the Userback feedback widget.\n */\nexport function Userback({ token, options }: I_UserBackProps) {\n useEffect(() => {\n if (!token) {\n return;\n }\n\n let observer: MutationObserver;\n\n const loadUserback = async () => {\n const { hide, ...rest } = options || {};\n\n await UserbackWidget(token, rest);\n\n if (hide && hide.length > 0) {\n hide.forEach((selector: string) => {\n document.querySelectorAll(selector).forEach(el => el.remove());\n });\n }\n\n observer = new MutationObserver(() => {\n if (hide && hide.length > 0) {\n hide.forEach((selector: string) => {\n document.querySelectorAll(selector).forEach(el => el.remove());\n });\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n };\n\n loadUserback();\n\n return () => {\n observer?.disconnect();\n };\n }, [token, options]);\n\n return null;\n}\n"],"names":["UserbackWidget","useEffect","Userback","token","options","observer","hide","rest","selector","el"],"mappings":"AAuBO,OAAAA,OAAA;AAAA,SAAA,aAAAC,SAAA;AAAA,SAASC,EAAS,EAAE,OAAAC,GAAO,SAAAC,KAA4B;AAC1D,SAAAH,EAAU,MAAM;AACZ,QAAI,CAACE;AACD;AAGJ,QAAIE;AA2BJ,YAzBqB,YAAY;AAC7B,YAAM,EAAE,MAAAC,GAAM,GAAGC,EAAA,IAASH,KAAW,CAAA;AAErC,YAAMJ,EAAeG,GAAOI,CAAI,GAE5BD,KAAQA,EAAK,SAAS,KACtBA,EAAK,QAAQ,CAACE,MAAqB;AAC/B,iBAAS,iBAAiBA,CAAQ,EAAE,QAAQ,CAAAC,MAAMA,EAAG,QAAQ;AAAA,MACjE,CAAC,GAGLJ,IAAW,IAAI,iBAAiB,MAAM;AAClC,QAAIC,KAAQA,EAAK,SAAS,KACtBA,EAAK,QAAQ,CAACE,MAAqB;AAC/B,mBAAS,iBAAiBA,CAAQ,EAAE,QAAQ,CAAAC,MAAMA,EAAG,QAAQ;AAAA,QACjE,CAAC;AAAA,MAET,CAAC,GAEDJ,EAAS,QAAQ,SAAS,MAAM;AAAA,QAC5B,WAAW;AAAA,QACX,SAAS;AAAA,MAAA,CACZ;AAAA,IACL,GAEA,GAEO,MAAM;AACT,MAAAA,GAAU,WAAA;AAAA,IACd;AAAA,EACJ,GAAG,CAACF,GAAOC,CAAO,CAAC,GAEZ;AACX;"}
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
._overlay_b1d9o_1,._full_b1d9o_1,._block_b1d9o_2{z-index:999999;background:linear-gradient(135deg,#ffffff59,#ffffffb3);backdrop-filter:blur(20px) saturate(200%);display:flex;justify-content:center;align-items:center;width:100%;height:100%;animation:_overlay-fade-in_b1d9o_1 .5s ease-out;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 4px 32px #1f26872e,inset 0 1.5px 8px #ffffff40}._full_b1d9o_1,._block_b1d9o_2{pointer-events:none}._full_b1d9o_1{position:fixed;inset:0}._block_b1d9o_2{position:absolute;width:100%;height:100%;left:50%;top:50%;transform:translate(-50%,-50%);background:#ffffff1a;backdrop-filter:blur(4px)}._container_b1d9o_40{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1rem;gap:1.5rem;text-align:center}._container_b1d9o_40 ._ring_b1d9o_50{width:clamp(60px,10vw,150px);height:clamp(60px,10vw,150px);border:2px solid transparent;border-radius:50%;position:absolute;transition:transform .3s ease}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(1){border-bottom:8px solid hsl(315,90%,60%);animation:_rotate1_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(2){border-bottom:8px solid hsl(345,90%,50%);animation:_rotate2_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(3){border-bottom:8px solid hsl(180,80%,40%);animation:_rotate3_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(4){border-bottom:8px solid hsl(40,100%,45%);animation:_rotate4_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._message_b1d9o_74{font-weight:700;color:#2f2f37;text-shadow:0 1px 2px rgba(255,255,255,.8);animation:_text-fade_b1d9o_1 2s ease-in-out infinite alternate;word-break:break-word;hyphens:auto}@keyframes _rotate1_b1d9o_1{0%{transform:rotateX(50deg) rotate(110deg)}to{transform:rotateX(50deg) rotate(470deg)}}@keyframes _rotate2_b1d9o_1{0%{transform:rotateX(20deg) rotateY(50deg) rotate(20deg)}to{transform:rotateX(20deg) rotateY(50deg) rotate(380deg)}}@keyframes _rotate3_b1d9o_1{0%{transform:rotateX(40deg) rotateY(130deg) rotate(450deg)}to{transform:rotateX(40deg) rotateY(130deg) rotate(90deg)}}@keyframes _rotate4_b1d9o_1{0%{transform:rotateX(70deg) rotate(270deg)}to{transform:rotateX(70deg) rotate(630deg)}}@keyframes _text-fade_b1d9o_1{0%{opacity:.6}to{opacity:1}}@keyframes _overlay-fade-in_b1d9o_1{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){._ring_b1d9o_50,._message_b1d9o_74,._overlay_b1d9o_1,._full_b1d9o_1,._block_b1d9o_2{animation:none!important}}._modal-
|
|
1
|
+
._overlay_b1d9o_1,._full_b1d9o_1,._block_b1d9o_2{z-index:999999;background:linear-gradient(135deg,#ffffff59,#ffffffb3);backdrop-filter:blur(20px) saturate(200%);display:flex;justify-content:center;align-items:center;width:100%;height:100%;animation:_overlay-fade-in_b1d9o_1 .5s ease-out;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 4px 32px #1f26872e,inset 0 1.5px 8px #ffffff40}._full_b1d9o_1,._block_b1d9o_2{pointer-events:none}._full_b1d9o_1{position:fixed;inset:0}._block_b1d9o_2{position:absolute;width:100%;height:100%;left:50%;top:50%;transform:translate(-50%,-50%);background:#ffffff1a;backdrop-filter:blur(4px)}._container_b1d9o_40{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;padding:1rem;gap:1.5rem;text-align:center}._container_b1d9o_40 ._ring_b1d9o_50{width:clamp(60px,10vw,150px);height:clamp(60px,10vw,150px);border:2px solid transparent;border-radius:50%;position:absolute;transition:transform .3s ease}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(1){border-bottom:8px solid hsl(315,90%,60%);animation:_rotate1_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(2){border-bottom:8px solid hsl(345,90%,50%);animation:_rotate2_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(3){border-bottom:8px solid hsl(180,80%,40%);animation:_rotate3_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._ring_b1d9o_50:nth-child(4){border-bottom:8px solid hsl(40,100%,45%);animation:_rotate4_b1d9o_1 1s linear infinite}._container_b1d9o_40 ._message_b1d9o_74{font-weight:700;color:#2f2f37;text-shadow:0 1px 2px rgba(255,255,255,.8);animation:_text-fade_b1d9o_1 2s ease-in-out infinite alternate;word-break:break-word;hyphens:auto}@keyframes _rotate1_b1d9o_1{0%{transform:rotateX(50deg) rotate(110deg)}to{transform:rotateX(50deg) rotate(470deg)}}@keyframes _rotate2_b1d9o_1{0%{transform:rotateX(20deg) rotateY(50deg) rotate(20deg)}to{transform:rotateX(20deg) rotateY(50deg) rotate(380deg)}}@keyframes _rotate3_b1d9o_1{0%{transform:rotateX(40deg) rotateY(130deg) rotate(450deg)}to{transform:rotateX(40deg) rotateY(130deg) rotate(90deg)}}@keyframes _rotate4_b1d9o_1{0%{transform:rotateX(70deg) rotate(270deg)}to{transform:rotateX(70deg) rotate(630deg)}}@keyframes _text-fade_b1d9o_1{0%{opacity:.6}to{opacity:1}}@keyframes _overlay-fade-in_b1d9o_1{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){._ring_b1d9o_50,._message_b1d9o_74,._overlay_b1d9o_1,._full_b1d9o_1,._block_b1d9o_2{animation:none!important}}._modal-backdrop_199u4_1{position:fixed;inset:0;z-index:9999999;background-color:#0009;display:flex;align-items:center;justify-content:center;padding:1rem}._modal-backdrop_199u4_1 ._modal-content_199u4_11{position:relative;background-color:#0f172a;color:#fff;max-width:80vw;width:100%;border-radius:.75rem;box-shadow:0 10px 20px #00000080;overflow:hidden;padding:2rem}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._btn-close_199u4_22{position:absolute;top:.75rem;right:1rem;font-size:1.25rem;color:#fff;background:none;border:none;cursor:pointer;transition:color .2s}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._btn-close_199u4_22:hover{color:#f87171}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._btn-close_199u4_22:focus-visible{outline:none;box-shadow:0 0 0 2px #f87171;border-radius:.125rem}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-title_199u4_41{font-weight:700;margin-bottom:1rem}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-title_199u4_41 ._btn-retry_199u4_45{background:linear-gradient(to right,#3b82f6,#06b6d4);color:#fff;font-weight:600;padding:.5rem 1.5rem;border-radius:.75rem;transition:background .3s ease;border:none;cursor:pointer}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-title_199u4_41 ._btn-retry_199u4_45:hover{background:linear-gradient(to right,#2563eb,#0891b2)}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-title_199u4_41 ._btn-retry_199u4_45:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-details_199u4_62{background-color:#1e293b;text-align:left;font-size:.875rem;border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;max-height:50vh;overflow-y:auto;border:1px solid #334155;display:flex;flex-direction:column;gap:.5rem}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-details_199u4_62 pre{white-space:pre-wrap;word-break:break-word}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-details_199u4_62 pre._main_199u4_80{color:#fca5a5}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-details_199u4_62 pre._network_199u4_83{color:#fde68a}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-details_199u4_62 pre._extra_199u4_86{color:#67e8f9;overflow-x:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;background-color:#0f172a;padding:.5rem;border-radius:.375rem}._modal-backdrop_199u4_1 ._modal-content_199u4_11 ._error-details_199u4_62 ul{padding-left:1rem;color:#fda4af;list-style:disc}._error-container_oofeh_1{display:flex;align-items:center;justify-content:center;gap:.5rem}._error-details-button_oofeh_8{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;background-color:#ef4444;color:#fff;border:2px solid #dc2626;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease-in-out}._error-details-button_oofeh_8:hover{background-color:#dc2626;border-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}._error-details-button_oofeh_8:active{transform:translateY(0);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}._error-details-button_oofeh_8:focus{outline:none;ring:2px;ring-color:#fca5a5;ring-offset:2px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.type.js","sources":["../../src/typescript/common.type.ts"],"sourcesContent":["import type consola from 'consola';\n\n/**\n * Generic object type with string keys and values of type T (defaults to unknown).\n */\nexport type T_Object<T = unknown> = Record<string, T>;\n\n/**\n * Logging interface for browser and Node.js environments, compatible with consola.\n */\nexport interface I_Log {\n silent: typeof consola['silent'];\n level: typeof consola['level'];\n fatal: typeof consola['fatal'];\n error: typeof consola['error'];\n warn: typeof consola['warn'];\n log: typeof consola['log'];\n info: typeof consola['info'];\n success: typeof consola['success'];\n ready: typeof consola['ready'];\n start: typeof consola['start'];\n box: typeof consola['box'];\n debug: typeof consola['debug'];\n trace: typeof consola['trace'];\n verbose: typeof consola['verbose'];\n}\n\n/**\n * Base interface for return types with common properties.\n */\nexport interface I_ReturnBase {\n success: boolean;\n message?: string;\n code?: number | string;\n}\n\n/**\n * Success return type with result data.\n * @template T - The main result type\n * @template E - Additional properties to merge with the result (defaults to unknown)\n */\nexport interface I_ReturnSuccess<T, E = unknown> extends I_ReturnBase {\n success: true;\n result: T & E;\n}\n\n/**\n * Failure return type with error information.\n */\nexport interface I_ReturnFailure extends I_ReturnBase {\n success: false;\n message: string;\n code: number | string;\n}\n\n/**\n * Discriminated union type for function return values.\n * Provides type-safe handling of success and failure cases.\n *\n * @template T - The success result type (defaults to void)\n * @template E - Additional properties to merge with the result (defaults to unknown)\n *\n * @example\n * ```typescript\n * function fetchUser(id: string): I_Return<User> {\n * try {\n * const user = await getUser(id);\n * return { success: true, result: user };\n * } catch (error) {\n * return { success: false, message: error.message, code: 'USER_NOT_FOUND' };\n * }\n * }\n * ```\n */\nexport type I_Return<T = void, E = unknown> = I_ReturnSuccess<T, E> | I_ReturnFailure;\n\nexport enum E_Environment {\n PRODUCTION = 'production',\n STAGING = 'staging',\n DEVELOPMENT = 'development',\n}\n"],"names":["E_Environment"],"mappings":"AA4EO,IAAKA,sBAAAA,OACRA,EAAA,aAAa,cACbA,EAAA,UAAU,WACVA,EAAA,cAAc,eAHNA,IAAAA,KAAA,CAAA,CAAA;"}
|
package/dist/typescript/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -15,6 +15,8 @@ export declare function escapeRegExp(str: string): string;
|
|
|
15
15
|
*
|
|
16
16
|
* Optimization: Uses pre-computed regex and map to perform replacement in a single pass (O(N)),
|
|
17
17
|
* instead of iterating through all character groups (O(K*N)).
|
|
18
|
+
* Removed unnecessary NFD normalization which improves performance and fixes
|
|
19
|
+
* matching against NFC target strings.
|
|
18
20
|
*
|
|
19
21
|
* @param str - The string to convert to a regex pattern.
|
|
20
22
|
* @returns The regex pattern as a string that matches the original string and its accented variations.
|
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import { E_Environment as
|
|
2
|
-
|
|
3
|
-
for (var n in r || (r = {}))
|
|
4
|
-
m.call(r, n) && i(e, n, r[n]);
|
|
5
|
-
if (p)
|
|
6
|
-
for (var n of p(r))
|
|
7
|
-
_.call(r, n) && i(e, n, r[n]);
|
|
8
|
-
return e;
|
|
9
|
-
};
|
|
10
|
-
const s = {
|
|
1
|
+
import { E_Environment as r } from "../../typescript/common.type.js";
|
|
2
|
+
const p = {
|
|
11
3
|
a: ["à", "á", "ạ", "ả", "ã", "â", "ầ", "ấ", "ậ", "ẩ", "ẫ", "ă", "ằ", "ắ", "ặ", "ẳ", "ẵ"],
|
|
12
4
|
e: ["è", "é", "ẹ", "ẻ", "ẽ", "ê", "ề", "ế", "ệ", "ể", "ễ"],
|
|
13
5
|
i: ["ì", "í", "ị", "ỉ", "ĩ"],
|
|
@@ -15,46 +7,47 @@ const s = {
|
|
|
15
7
|
u: ["ù", "ú", "ụ", "ủ", "ũ", "ư", "ừ", "ứ", "ự", "ử", "ữ"],
|
|
16
8
|
y: ["ỳ", "ý", "ỵ", "ỷ", "ỹ"],
|
|
17
9
|
d: ["đ"]
|
|
18
|
-
},
|
|
19
|
-
(e, [
|
|
10
|
+
}, s = Object.entries(p).reduce(
|
|
11
|
+
(e, [n, t]) => (e[n.toUpperCase()] = t.map((o) => o.toUpperCase()), e),
|
|
20
12
|
{}
|
|
21
|
-
),
|
|
22
|
-
Object.entries(
|
|
23
|
-
const
|
|
24
|
-
[e, ...
|
|
25
|
-
|
|
13
|
+
), u = { ...p, ...s }, a = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
|
|
14
|
+
Object.entries(u).forEach(([e, n]) => {
|
|
15
|
+
const t = `(${[e, ...n].join("|")})`;
|
|
16
|
+
[e, ...n].forEach((o) => {
|
|
17
|
+
a.set(o, t), i.add(o);
|
|
26
18
|
});
|
|
27
19
|
});
|
|
28
|
-
const
|
|
29
|
-
function
|
|
20
|
+
const O = Array.from(i).join(""), D = new RegExp(`[${O}]`, "g");
|
|
21
|
+
function N(e) {
|
|
30
22
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
31
23
|
}
|
|
32
|
-
function
|
|
33
|
-
return e =
|
|
24
|
+
function m(e) {
|
|
25
|
+
return e = N(e), e.replace(D, (n) => a.get(n) || n);
|
|
34
26
|
}
|
|
35
|
-
function
|
|
36
|
-
return e.normalize("NFD").replace(
|
|
27
|
+
function M(e) {
|
|
28
|
+
return e.normalize("NFD").replace(/\p{Diacritic}/gu, "");
|
|
37
29
|
}
|
|
38
|
-
function
|
|
39
|
-
if (!
|
|
30
|
+
function T(e, n) {
|
|
31
|
+
if (!n)
|
|
40
32
|
return Array.from(new Set(e));
|
|
41
|
-
const
|
|
33
|
+
const t = /* @__PURE__ */ new Set(), o = [];
|
|
42
34
|
for (const c of e) {
|
|
43
|
-
const
|
|
44
|
-
|
|
35
|
+
const E = n(c);
|
|
36
|
+
t.has(E) || (t.add(E), o.push(c));
|
|
45
37
|
}
|
|
46
38
|
return o;
|
|
47
39
|
}
|
|
48
|
-
function
|
|
49
|
-
const { NODE_ENV:
|
|
50
|
-
if (
|
|
40
|
+
function g(e) {
|
|
41
|
+
const { NODE_ENV: n = r.DEVELOPMENT, NODE_ENV_MODE: t = r.DEVELOPMENT } = e, o = n === r.DEVELOPMENT && t === r.DEVELOPMENT, c = n === r.PRODUCTION && t === r.STAGING, E = n === r.PRODUCTION && t === r.PRODUCTION;
|
|
42
|
+
if (n === r.PRODUCTION && t === r.DEVELOPMENT)
|
|
51
43
|
throw new Error("NODE_ENV_MODE must be set to staging or production in production environment");
|
|
52
|
-
return { IS_DEV: o, IS_STAG: c, IS_PROD:
|
|
44
|
+
return { IS_DEV: o, IS_STAG: c, IS_PROD: E };
|
|
53
45
|
}
|
|
54
46
|
export {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
N as escapeRegExp,
|
|
48
|
+
g as mapEnvironment,
|
|
49
|
+
m as regexSearchMapper,
|
|
50
|
+
M as removeAccent,
|
|
51
|
+
T as uniqueArray
|
|
60
52
|
};
|
|
53
|
+
//# sourceMappingURL=common.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.util.js","sources":["../../../src/util/common/common.util.ts"],"sourcesContent":["import { E_Environment } from '#typescript/index.js';\n\nimport type { I_EnvFlags, I_NodeEnvInput } from './common.type.js';\n\nconst charMap: Record<string, string[]> = {\n a: ['à', 'á', 'ạ', 'ả', 'ã', 'â', 'ầ', 'ấ', 'ậ', 'ẩ', 'ẫ', 'ă', 'ằ', 'ắ', 'ặ', 'ẳ', 'ẵ'],\n e: ['è', 'é', 'ẹ', 'ẻ', 'ẽ', 'ê', 'ề', 'ế', 'ệ', 'ể', 'ễ'],\n i: ['ì', 'í', 'ị', 'ỉ', 'ĩ'],\n o: ['ò', 'ó', 'ọ', 'ỏ', 'õ', 'ô', 'ồ', 'ố', 'ộ', 'ổ', 'ỗ', 'ơ', 'ờ', 'ớ', 'ợ', 'ở', 'ỡ'],\n u: ['ù', 'ú', 'ụ', 'ủ', 'ũ', 'ư', 'ừ', 'ứ', 'ự', 'ử', 'ữ'],\n y: ['ỳ', 'ý', 'ỵ', 'ỷ', 'ỹ'],\n d: ['đ'],\n};\n\nconst upperCharMap: Record<string, string[]> = Object.entries(charMap).reduce(\n (map, [key, value]) => {\n map[key.toUpperCase()] = value.map(char => char.toUpperCase());\n return map;\n },\n {} as Record<string, string[]>,\n);\n\nconst combinedMap = { ...charMap, ...upperCharMap };\n\n// Pre-compute replacement map and search regex for better performance\n// This avoids rebuilding regexes and maps on every function call\nconst replacementMap = new Map<string, string>();\nconst charsToMatch = new Set<string>();\n\nObject.entries(combinedMap).forEach(([baseChar, variations]) => {\n // The replacement pattern is the same for the base char and all its variations\n // Example: 'a', 'à', 'á'... all map to '(a|à|á...)'\n const replacement = `(${[baseChar, ...variations].join('|')})`;\n\n [baseChar, ...variations].forEach((char) => {\n replacementMap.set(char, replacement);\n charsToMatch.add(char);\n });\n});\n\n// Construct a single regex that matches any character in our map\nconst patternString = Array.from(charsToMatch).join('');\n// We use a character class regex: [abc...]\nconst searchRegex = new RegExp(`[${patternString}]`, 'g');\n\n/**\n * Escapes special characters in a string for use in a regular expression.\n * This function escapes characters that have special meaning in regex (e.g., ., *, +, ?, etc.)\n * so they are treated as literal characters.\n *\n * @param str - The string to escape.\n * @returns The escaped string safe for use in a RegExp.\n */\nexport function escapeRegExp(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\n/**\n * Convert a string to a regex pattern that matches the string and its accented variations.\n * This function normalizes the input string and creates a regex pattern that can match\n * both the original characters and their accented equivalents.\n *\n * Optimization: Uses pre-computed regex and map to perform replacement in a single pass (O(N)),\n * instead of iterating through all character groups (O(K*N)).\n * Removed unnecessary NFD normalization which improves performance and fixes\n * matching against NFC target strings.\n *\n * @param str - The string to convert to a regex pattern.\n * @returns The regex pattern as a string that matches the original string and its accented variations.\n */\nexport function regexSearchMapper(str: string) {\n str = escapeRegExp(str);\n return str.replace(searchRegex, match => replacementMap.get(match) || match);\n}\n\n/**\n * Remove accents from a string.\n * This function normalizes the string using NFD normalization and removes all diacritical marks.\n *\n * @param str - The string to remove accents from.\n * @returns The string without any accents or diacritical marks.\n */\nexport function removeAccent(str: string) {\n return str.normalize('NFD').replace(/\\p{Diacritic}/gu, '');\n}\n\n/**\n * Remove duplicates from an array based on a key function.\n * This function can remove duplicates either by comparing values directly (when no keyFn is provided)\n * or by using a custom key function to determine uniqueness.\n *\n * @param arr - The array to remove duplicates from.\n * @param keyFn - Optional function that returns a unique key for each item in the array.\n * @returns A new array with duplicates removed, maintaining the original order.\n */\nexport function uniqueArray<T>(\n arr: T[],\n keyFn?: (item: T) => string | number,\n): T[] {\n if (!keyFn) {\n return Array.from(new Set(arr));\n }\n\n const seen = new Set<string | number>();\n const result: T[] = [];\n\n for (const item of arr) {\n const key = keyFn(item);\n if (!seen.has(key)) {\n seen.add(key);\n result.push(item);\n }\n }\n\n return result;\n}\n\n/**\n * Map environment variables to boolean flags indicating the current environment.\n * This function takes NODE_ENV and NODE_ENV_MODE variables and returns flags\n * indicating whether the current environment is development, staging, or production.\n *\n * @param env - The environment variables object containing NODE_ENV and NODE_ENV_MODE.\n * @returns An object containing boolean flags for the environment (IS_DEV, IS_STAG, IS_PROD).\n * @throws {Error} When NODE_ENV is production but NODE_ENV_MODE is development.\n */\nexport function mapEnvironment(env: I_NodeEnvInput): I_EnvFlags {\n const { NODE_ENV = E_Environment.DEVELOPMENT, NODE_ENV_MODE = E_Environment.DEVELOPMENT } = env;\n\n const IS_DEV = NODE_ENV === E_Environment.DEVELOPMENT && NODE_ENV_MODE === E_Environment.DEVELOPMENT;\n const IS_STAG = NODE_ENV === E_Environment.PRODUCTION && NODE_ENV_MODE === E_Environment.STAGING;\n const IS_PROD = NODE_ENV === E_Environment.PRODUCTION && NODE_ENV_MODE === E_Environment.PRODUCTION;\n\n if (NODE_ENV === E_Environment.PRODUCTION && NODE_ENV_MODE === E_Environment.DEVELOPMENT) {\n throw new Error('NODE_ENV_MODE must be set to staging or production in production environment');\n }\n\n return { IS_DEV, IS_STAG, IS_PROD };\n}\n"],"names":["E_Environment","charMap","upperCharMap","map","key","value","char","combinedMap","replacementMap","charsToMatch","baseChar","variations","replacement","patternString","searchRegex","escapeRegExp","str","regexSearchMapper","match","removeAccent","uniqueArray","arr","keyFn","seen","result","item","mapEnvironment","env","NODE_ENV","NODE_ENV_MODE","IS_DEV","IS_STAG","IS_PROD"],"mappings":"AAIA,SAAA,iBAAAA,SAAA;AAAA,MAAMC,IAAoC;AAAA,EACtC,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EACvF,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EACzD,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EAC3B,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EACvF,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EACzD,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG;AAAA,EAC3B,GAAG,CAAC,GAAG;AACX,GAEMC,IAAyC,OAAO,QAAQD,CAAO,EAAE;AAAA,EACnE,CAACE,GAAK,CAACC,GAAKC,CAAK,OACbF,EAAIC,EAAI,aAAa,IAAIC,EAAM,IAAI,CAAAC,MAAQA,EAAK,aAAa,GACtDH;AAAA,EAEX,CAAA;AACJ,GAEMI,IAAc,EAAE,GAAGN,GAAS,GAAGC,EAAA,GAI/BM,wBAAqB,IAAA,GACrBC,wBAAmB,IAAA;AAEzB,OAAO,QAAQF,CAAW,EAAE,QAAQ,CAAC,CAACG,GAAUC,CAAU,MAAM;AAG5D,QAAMC,IAAc,IAAI,CAACF,GAAU,GAAGC,CAAU,EAAE,KAAK,GAAG,CAAC;AAE3D,GAACD,GAAU,GAAGC,CAAU,EAAE,QAAQ,CAACL,MAAS;AACxC,IAAAE,EAAe,IAAIF,GAAMM,CAAW,GACpCH,EAAa,IAAIH,CAAI;AAAA,EACzB,CAAC;AACL,CAAC;AAGD,MAAMO,IAAgB,MAAM,KAAKJ,CAAY,EAAE,KAAK,EAAE,GAEhDK,IAAc,IAAI,OAAO,IAAID,CAAa,KAAK,GAAG;AAUjD,SAASE,EAAaC,GAAqB;AAC9C,SAAOA,EAAI,QAAQ,uBAAuB,MAAM;AACpD;AAeO,SAASC,EAAkBD,GAAa;AAC3C,SAAAA,IAAMD,EAAaC,CAAG,GACfA,EAAI,QAAQF,GAAa,CAAAI,MAASV,EAAe,IAAIU,CAAK,KAAKA,CAAK;AAC/E;AASO,SAASC,EAAaH,GAAa;AACtC,SAAOA,EAAI,UAAU,KAAK,EAAE,QAAQ,mBAAmB,EAAE;AAC7D;AAWO,SAASI,EACZC,GACAC,GACG;AACH,MAAI,CAACA;AACD,WAAO,MAAM,KAAK,IAAI,IAAID,CAAG,CAAC;AAGlC,QAAME,wBAAW,IAAA,GACXC,IAAc,CAAA;AAEpB,aAAWC,KAAQJ,GAAK;AACpB,UAAMjB,IAAMkB,EAAMG,CAAI;AACtB,IAAKF,EAAK,IAAInB,CAAG,MACbmB,EAAK,IAAInB,CAAG,GACZoB,EAAO,KAAKC,CAAI;AAAA,EAExB;AAEA,SAAOD;AACX;AAWO,SAASE,EAAeC,GAAiC;AAC5D,QAAM,EAAE,UAAAC,IAAW5B,EAAc,aAAa,eAAA6B,IAAgB7B,EAAc,gBAAgB2B,GAEtFG,IAASF,MAAa5B,EAAc,eAAe6B,MAAkB7B,EAAc,aACnF+B,IAAUH,MAAa5B,EAAc,cAAc6B,MAAkB7B,EAAc,SACnFgC,IAAUJ,MAAa5B,EAAc,cAAc6B,MAAkB7B,EAAc;AAEzF,MAAI4B,MAAa5B,EAAc,cAAc6B,MAAkB7B,EAAc;AACzE,UAAM,IAAI,MAAM,8EAA8E;AAGlG,SAAO,EAAE,QAAA8B,GAAQ,SAAAC,GAAS,SAAAC,EAAA;AAC9B;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/util/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { deepClone as t, deepMerge as o, getNestedValue as a, isJSON as n, normalizeMongoFilter as
|
|
2
|
-
import { escapeRegExp as i, mapEnvironment as s, regexSearchMapper as
|
|
3
|
-
import { generateRandomPassword as f, generateShortId as c, generateSlug as N, getFileName as
|
|
1
|
+
import { deepClone as t, deepMerge as o, getNestedValue as a, isJSON as n, normalizeMongoFilter as g, setNestedValue as m } from "./object/object.util.js";
|
|
2
|
+
import { escapeRegExp as i, mapEnvironment as s, regexSearchMapper as d, removeAccent as l, uniqueArray as x } from "./common/common.util.js";
|
|
3
|
+
import { generateRandomPassword as f, generateRandomString as S, generateShortId as c, generateSlug as N, getFileName as v, substringBetween as M } from "./string/string.util.js";
|
|
4
4
|
import { serializer as h } from "./serializer/serializer.util.js";
|
|
5
5
|
import { validate as z } from "./validate/validate.util.js";
|
|
6
6
|
export {
|
|
@@ -8,18 +8,20 @@ export {
|
|
|
8
8
|
o as deepMerge,
|
|
9
9
|
i as escapeRegExp,
|
|
10
10
|
f as generateRandomPassword,
|
|
11
|
+
S as generateRandomString,
|
|
11
12
|
c as generateShortId,
|
|
12
13
|
N as generateSlug,
|
|
13
|
-
|
|
14
|
+
v as getFileName,
|
|
14
15
|
a as getNestedValue,
|
|
15
16
|
n as isJSON,
|
|
16
17
|
s as mapEnvironment,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
g as normalizeMongoFilter,
|
|
19
|
+
d as regexSearchMapper,
|
|
20
|
+
l as removeAccent,
|
|
20
21
|
h as serializer,
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
m as setNestedValue,
|
|
23
|
+
M as substringBetween,
|
|
23
24
|
x as uniqueArray,
|
|
24
25
|
z as validate
|
|
25
26
|
};
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|