@m5kdev/backend 0.8.6 → 0.8.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +33 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/api/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/adapter/factory.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/adapter/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/adapter/types.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/get-tables.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/schema/account.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/schema/session.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/schema/shared.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/schema/user.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/db/schema/verification.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/social-providers/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/types/context.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/types/helper.d.cts +7 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/types/init-options.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/types/plugin-client.d.cts +1 -0
- package/dist/node_modules/.pnpm/@better-auth_core@1.4.18_@better-auth_utils@0.3.0_@better-fetch_fetch@1.1.21_better-cal_347838d331444e5371f256b914727290/node_modules/@better-auth/core/dist/types/plugin.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/dialect.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mssql/mssql-adapter.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mssql/mssql-dialect.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mssql/mssql-introspector.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mysql/mysql-adapter.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mysql/mysql-dialect.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mysql/mysql-introspector.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/postgres/postgres-adapter.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/postgres/postgres-dialect.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/postgres/postgres-introspector.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-introspector.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/expression/expression-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/kysely.d.cts +38 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/migration/file-migration-provider.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/migration/migrator.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/binary-operation-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/delete-from-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/expression-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/group-by-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/insert-values-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/join-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/merge-into-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/reference-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/returning-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/select-from-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/select-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/set-operation-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/tuple-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/unary-operation-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/update-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/update-set-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/value-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/with-parser.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/case-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/delete-query-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/having-interface.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/join-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/merge-query-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/output-interface.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/returning-interface.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/select-query-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/where-interface.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-creator.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/default-query-executor.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/noop-query-executor.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/query-executor-base.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/query-executor-provider.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/query-executor.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/raw-builder/raw-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/raw-builder/sql.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-drop-constraint-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-executor.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-index-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-schema-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-table-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-type-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-view-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-index-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-schema-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-table-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-type-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-view-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/refresh-materialized-view-builder.d.cts +1 -0
- package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/schema.d.cts +1 -0
- package/dist/src/lib/posthog.cjs +8 -0
- package/dist/src/lib/posthog.cjs.map +1 -0
- package/dist/src/lib/posthog.d.cts +7 -0
- package/dist/src/lib/sentry.cjs +11 -0
- package/dist/src/lib/sentry.cjs.map +1 -0
- package/dist/src/lib/sentry.d.cts +1 -0
- package/dist/src/modules/access/access.repository.cjs +26 -0
- package/dist/src/modules/access/access.repository.cjs.map +1 -0
- package/dist/src/modules/access/access.repository.d.cts +2352 -0
- package/dist/src/modules/access/access.service.cjs +42 -0
- package/dist/src/modules/access/access.service.cjs.map +1 -0
- package/dist/src/modules/access/access.service.d.cts +25 -0
- package/dist/src/modules/access/access.utils.cjs +23 -0
- package/dist/src/modules/access/access.utils.cjs.map +1 -0
- package/dist/src/modules/access/access.utils.d.cts +19 -0
- package/dist/src/modules/ai/ai.db.cjs +46 -0
- package/dist/src/modules/ai/ai.db.cjs.map +1 -0
- package/dist/src/modules/ai/ai.db.d.cts +401 -0
- package/dist/src/modules/ai/ai.prompt.cjs +33 -0
- package/dist/src/modules/ai/ai.prompt.cjs.map +1 -0
- package/dist/src/modules/ai/ai.prompt.d.cts +30 -0
- package/dist/src/modules/ai/ai.prompts.cjs +18 -0
- package/dist/src/modules/ai/ai.prompts.cjs.map +1 -0
- package/dist/src/modules/ai/ai.prompts.d.cts +10 -0
- package/dist/src/modules/ai/ai.repository.cjs +25 -0
- package/dist/src/modules/ai/ai.repository.cjs.map +1 -0
- package/dist/src/modules/ai/ai.repository.d.cts +428 -0
- package/dist/src/modules/ai/ai.router.cjs +0 -0
- package/dist/src/modules/ai/ai.router.d.cts +1 -0
- package/dist/src/modules/ai/ai.service.cjs +312 -0
- package/dist/src/modules/ai/ai.service.cjs.map +1 -0
- package/dist/src/modules/ai/ai.service.d.cts +141 -0
- package/dist/src/modules/ai/ai.trpc.cjs +19 -0
- package/dist/src/modules/ai/ai.trpc.cjs.map +1 -0
- package/dist/src/modules/ai/ai.trpc.d.cts +31 -0
- package/dist/src/modules/ai/ideogram/ideogram.constants.cjs +191 -0
- package/dist/src/modules/ai/ideogram/ideogram.constants.cjs.map +1 -0
- package/dist/src/modules/ai/ideogram/ideogram.constants.d.cts +11 -0
- package/dist/src/modules/ai/ideogram/ideogram.dto.cjs +49 -0
- package/dist/src/modules/ai/ideogram/ideogram.dto.cjs.map +1 -0
- package/dist/src/modules/ai/ideogram/ideogram.dto.d.cts +234 -0
- package/dist/src/modules/ai/ideogram/ideogram.prompt.cjs +862 -0
- package/dist/src/modules/ai/ideogram/ideogram.prompt.cjs.map +1 -0
- package/dist/src/modules/ai/ideogram/ideogram.prompt.d.cts +7 -0
- package/dist/src/modules/ai/ideogram/ideogram.repository.cjs +34 -0
- package/dist/src/modules/ai/ideogram/ideogram.repository.cjs.map +1 -0
- package/dist/src/modules/ai/ideogram/ideogram.repository.d.cts +11 -0
- package/dist/src/modules/ai/ideogram/ideogram.service.cjs +12 -0
- package/dist/src/modules/ai/ideogram/ideogram.service.cjs.map +1 -0
- package/dist/src/modules/ai/ideogram/ideogram.service.d.cts +14 -0
- package/dist/src/modules/auth/auth.db.cjs +187 -0
- package/dist/src/modules/auth/auth.db.cjs.map +1 -0
- package/dist/src/modules/auth/auth.db.d.cts +2341 -0
- package/dist/src/modules/auth/auth.dto.cjs +50 -0
- package/dist/src/modules/auth/auth.dto.cjs.map +1 -0
- package/dist/src/modules/auth/auth.dto.d.cts +70 -0
- package/dist/src/modules/auth/auth.lib.cjs +234 -0
- package/dist/src/modules/auth/auth.lib.cjs.map +1 -0
- package/dist/src/modules/auth/auth.lib.d.cts +4894 -0
- package/dist/src/modules/auth/auth.middleware.cjs +41 -0
- package/dist/src/modules/auth/auth.middleware.cjs.map +1 -0
- package/dist/src/modules/auth/auth.middleware.d.cts +619 -0
- package/dist/src/modules/auth/auth.repository.cjs +403 -0
- package/dist/src/modules/auth/auth.repository.cjs.map +1 -0
- package/dist/src/modules/auth/auth.repository.d.cts +2453 -0
- package/dist/src/modules/auth/auth.service.cjs +229 -0
- package/dist/src/modules/auth/auth.service.cjs.map +1 -0
- package/dist/src/modules/auth/auth.service.d.cts +105 -0
- package/dist/src/modules/auth/auth.trpc.cjs +110 -0
- package/dist/src/modules/auth/auth.trpc.cjs.map +1 -0
- package/dist/src/modules/auth/auth.trpc.d.cts +303 -0
- package/dist/src/modules/auth/auth.utils.cjs +80 -0
- package/dist/src/modules/auth/auth.utils.cjs.map +1 -0
- package/dist/src/modules/auth/auth.utils.d.cts +2356 -0
- package/dist/src/modules/base/base.abstract.cjs +62 -0
- package/dist/src/modules/base/base.abstract.cjs.map +1 -0
- package/dist/src/modules/base/base.abstract.d.cts +29 -0
- package/dist/src/modules/base/base.actor.cjs +83 -0
- package/dist/src/modules/base/base.actor.cjs.map +1 -0
- package/dist/src/modules/base/base.actor.d.cts +73 -0
- package/dist/src/modules/base/base.dto.cjs +98 -0
- package/dist/src/modules/base/base.dto.cjs.map +1 -0
- package/dist/src/modules/base/base.dto.d.cts +67 -0
- package/dist/src/modules/base/base.grants.cjs +107 -0
- package/dist/src/modules/base/base.grants.cjs.map +1 -0
- package/dist/src/modules/base/base.grants.d.cts +28 -0
- package/dist/src/modules/base/base.procedure.cjs +255 -0
- package/dist/src/modules/base/base.procedure.cjs.map +1 -0
- package/dist/src/modules/base/base.procedure.d.cts +111 -0
- package/dist/src/modules/base/base.repository.cjs +269 -0
- package/dist/src/modules/base/base.repository.cjs.map +1 -0
- package/dist/src/modules/base/base.repository.d.cts +125 -0
- package/dist/src/modules/base/base.repository.d.mts +2 -0
- package/dist/src/modules/base/base.repository.mjs +12 -0
- package/dist/src/modules/base/base.repository.mjs.map +1 -1
- package/dist/src/modules/base/base.service.cjs +119 -0
- package/dist/src/modules/base/base.service.cjs.map +1 -0
- package/dist/src/modules/base/base.service.d.cts +44 -0
- package/dist/src/modules/base/base.types.cjs +0 -0
- package/dist/src/modules/base/base.types.d.cts +5 -0
- package/dist/src/modules/billing/billing.db.cjs +38 -0
- package/dist/src/modules/billing/billing.db.cjs.map +1 -0
- package/dist/src/modules/billing/billing.db.d.cts +371 -0
- package/dist/src/modules/billing/billing.repository.cjs +190 -0
- package/dist/src/modules/billing/billing.repository.cjs.map +1 -0
- package/dist/src/modules/billing/billing.repository.d.cts +2787 -0
- package/dist/src/modules/billing/billing.repository.d.mts +11 -11
- package/dist/src/modules/billing/billing.router.cjs +43 -0
- package/dist/src/modules/billing/billing.router.cjs.map +1 -0
- package/dist/src/modules/billing/billing.router.d.cts +9 -0
- package/dist/src/modules/billing/billing.service.cjs +127 -0
- package/dist/src/modules/billing/billing.service.cjs.map +1 -0
- package/dist/src/modules/billing/billing.service.d.cts +53 -0
- package/dist/src/modules/billing/billing.service.d.mts +7 -7
- package/dist/src/modules/billing/billing.trpc.cjs +19 -0
- package/dist/src/modules/billing/billing.trpc.cjs.map +1 -0
- package/dist/src/modules/billing/billing.trpc.d.cts +48 -0
- package/dist/src/modules/clay/clay.repository.cjs +29 -0
- package/dist/src/modules/clay/clay.repository.cjs.map +1 -0
- package/dist/src/modules/clay/clay.repository.d.cts +10 -0
- package/dist/src/modules/clay/clay.service.cjs +24 -0
- package/dist/src/modules/clay/clay.service.cjs.map +1 -0
- package/dist/src/modules/clay/clay.service.d.cts +32 -0
- package/dist/src/modules/connect/connect.db.cjs +37 -0
- package/dist/src/modules/connect/connect.db.cjs.map +1 -0
- package/dist/src/modules/connect/connect.db.d.cts +362 -0
- package/dist/src/modules/connect/connect.dto.cjs +45 -0
- package/dist/src/modules/connect/connect.dto.cjs.map +1 -0
- package/dist/src/modules/connect/connect.dto.d.cts +79 -0
- package/dist/src/modules/connect/connect.linkedin.cjs +48 -0
- package/dist/src/modules/connect/connect.linkedin.cjs.map +1 -0
- package/dist/src/modules/connect/connect.linkedin.d.cts +7 -0
- package/dist/src/modules/connect/connect.oauth.cjs +153 -0
- package/dist/src/modules/connect/connect.oauth.cjs.map +1 -0
- package/dist/src/modules/connect/connect.oauth.d.cts +32 -0
- package/dist/src/modules/connect/connect.repository.cjs +42 -0
- package/dist/src/modules/connect/connect.repository.cjs.map +1 -0
- package/dist/src/modules/connect/connect.repository.d.cts +419 -0
- package/dist/src/modules/connect/connect.router.cjs +48 -0
- package/dist/src/modules/connect/connect.router.cjs.map +1 -0
- package/dist/src/modules/connect/connect.router.d.cts +9 -0
- package/dist/src/modules/connect/connect.service.cjs +90 -0
- package/dist/src/modules/connect/connect.service.cjs.map +1 -0
- package/dist/src/modules/connect/connect.service.d.cts +103 -0
- package/dist/src/modules/connect/connect.trpc.cjs +18 -0
- package/dist/src/modules/connect/connect.trpc.cjs.map +1 -0
- package/dist/src/modules/connect/connect.trpc.d.cts +53 -0
- package/dist/src/modules/connect/connect.types.cjs +0 -0
- package/dist/src/modules/connect/connect.types.d.cts +29 -0
- package/dist/src/modules/crypto/crypto.db.cjs +26 -0
- package/dist/src/modules/crypto/crypto.db.cjs.map +1 -0
- package/dist/src/modules/crypto/crypto.db.d.cts +157 -0
- package/dist/src/modules/crypto/crypto.repository.cjs +9 -0
- package/dist/src/modules/crypto/crypto.repository.cjs.map +1 -0
- package/dist/src/modules/crypto/crypto.repository.d.cts +163 -0
- package/dist/src/modules/crypto/crypto.service.cjs +46 -0
- package/dist/src/modules/crypto/crypto.service.cjs.map +1 -0
- package/dist/src/modules/crypto/crypto.service.d.cts +15 -0
- package/dist/src/modules/email/email.service.cjs +107 -0
- package/dist/src/modules/email/email.service.cjs.map +1 -0
- package/dist/src/modules/email/email.service.d.cts +62 -0
- package/dist/src/modules/file/file.repository.cjs +74 -0
- package/dist/src/modules/file/file.repository.cjs.map +1 -0
- package/dist/src/modules/file/file.repository.d.cts +17 -0
- package/dist/src/modules/file/file.router.cjs +94 -0
- package/dist/src/modules/file/file.router.cjs.map +1 -0
- package/dist/src/modules/file/file.router.d.cts +7 -0
- package/dist/src/modules/file/file.service.cjs +120 -0
- package/dist/src/modules/file/file.service.cjs.map +1 -0
- package/dist/src/modules/file/file.service.d.cts +30 -0
- package/dist/src/modules/recurrence/recurrence.db.cjs +55 -0
- package/dist/src/modules/recurrence/recurrence.db.cjs.map +1 -0
- package/dist/src/modules/recurrence/recurrence.db.d.cts +568 -0
- package/dist/src/modules/recurrence/recurrence.repository.cjs +31 -0
- package/dist/src/modules/recurrence/recurrence.repository.cjs.map +1 -0
- package/dist/src/modules/recurrence/recurrence.repository.d.cts +588 -0
- package/dist/src/modules/recurrence/recurrence.service.cjs +66 -0
- package/dist/src/modules/recurrence/recurrence.service.cjs.map +1 -0
- package/dist/src/modules/recurrence/recurrence.service.d.cts +88 -0
- package/dist/src/modules/recurrence/recurrence.service.d.mts +2 -1
- package/dist/src/modules/recurrence/recurrence.service.mjs +1 -1
- package/dist/src/modules/recurrence/recurrence.service.mjs.map +1 -1
- package/dist/src/modules/recurrence/recurrence.trpc.cjs +46 -0
- package/dist/src/modules/recurrence/recurrence.trpc.cjs.map +1 -0
- package/dist/src/modules/recurrence/recurrence.trpc.d.cts +216 -0
- package/dist/src/modules/recurrence/recurrence.trpc.d.mts +2 -1
- package/dist/src/modules/social/social.dto.cjs +26 -0
- package/dist/src/modules/social/social.dto.cjs.map +1 -0
- package/dist/src/modules/social/social.dto.d.cts +39 -0
- package/dist/src/modules/social/social.linkedin.cjs +349 -0
- package/dist/src/modules/social/social.linkedin.cjs.map +1 -0
- package/dist/src/modules/social/social.linkedin.d.cts +15 -0
- package/dist/src/modules/social/social.service.cjs +57 -0
- package/dist/src/modules/social/social.service.cjs.map +1 -0
- package/dist/src/modules/social/social.service.d.cts +34 -0
- package/dist/src/modules/social/social.types.cjs +0 -0
- package/dist/src/modules/social/social.types.d.cts +40 -0
- package/dist/src/modules/tag/tag.db.cjs +43 -0
- package/dist/src/modules/tag/tag.db.cjs.map +1 -0
- package/dist/src/modules/tag/tag.db.d.cts +352 -0
- package/dist/src/modules/tag/tag.dto.cjs +15 -0
- package/dist/src/modules/tag/tag.dto.cjs.map +1 -0
- package/dist/src/modules/tag/tag.dto.d.cts +1025 -0
- package/dist/src/modules/tag/tag.repository.cjs +116 -0
- package/dist/src/modules/tag/tag.repository.cjs.map +1 -0
- package/dist/src/modules/tag/tag.repository.d.cts +394 -0
- package/dist/src/modules/tag/tag.service.cjs +48 -0
- package/dist/src/modules/tag/tag.service.cjs.map +1 -0
- package/dist/src/modules/tag/tag.service.d.cts +120 -0
- package/dist/src/modules/tag/tag.trpc.cjs +32 -0
- package/dist/src/modules/tag/tag.trpc.cjs.map +1 -0
- package/dist/src/modules/tag/tag.trpc.d.cts +174 -0
- package/dist/src/modules/tag/tag.trpc.d.mts +3 -2
- package/dist/src/modules/utils/applyPagination.cjs +16 -0
- package/dist/src/modules/utils/applyPagination.cjs.map +1 -0
- package/dist/src/modules/utils/applyPagination.d.cts +10 -0
- package/dist/src/modules/utils/applySorting.cjs +20 -0
- package/dist/src/modules/utils/applySorting.cjs.map +1 -0
- package/dist/src/modules/utils/applySorting.d.cts +13 -0
- package/dist/src/modules/utils/getConditionsFromFilters.cjs +152 -0
- package/dist/src/modules/utils/getConditionsFromFilters.cjs.map +1 -0
- package/dist/src/modules/utils/getConditionsFromFilters.d.cts +9 -0
- package/dist/src/modules/utils/getGlobalSearchCondition.cjs +30 -0
- package/dist/src/modules/utils/getGlobalSearchCondition.cjs.map +1 -0
- package/dist/src/modules/utils/getGlobalSearchCondition.d.cts +18 -0
- package/dist/src/modules/utils/getGlobalSearchCondition.d.mts +18 -0
- package/dist/src/modules/utils/getGlobalSearchCondition.mjs +26 -0
- package/dist/src/modules/utils/getGlobalSearchCondition.mjs.map +1 -0
- package/dist/src/modules/video/video.service.cjs +114 -0
- package/dist/src/modules/video/video.service.cjs.map +1 -0
- package/dist/src/modules/video/video.service.d.cts +12 -0
- package/dist/src/modules/video/video.service.mjs +73 -13
- package/dist/src/modules/video/video.service.mjs.map +1 -1
- package/dist/src/modules/webhook/webhook.constants.cjs +13 -0
- package/dist/src/modules/webhook/webhook.constants.cjs.map +1 -0
- package/dist/src/modules/webhook/webhook.constants.d.cts +12 -0
- package/dist/src/modules/webhook/webhook.db.cjs +19 -0
- package/dist/src/modules/webhook/webhook.db.cjs.map +1 -0
- package/dist/src/modules/webhook/webhook.db.d.cts +142 -0
- package/dist/src/modules/webhook/webhook.dto.cjs +11 -0
- package/dist/src/modules/webhook/webhook.dto.cjs.map +1 -0
- package/dist/src/modules/webhook/webhook.dto.d.cts +402 -0
- package/dist/src/modules/webhook/webhook.repository.cjs +52 -0
- package/dist/src/modules/webhook/webhook.repository.cjs.map +1 -0
- package/dist/src/modules/webhook/webhook.repository.d.cts +154 -0
- package/dist/src/modules/webhook/webhook.router.cjs +26 -0
- package/dist/src/modules/webhook/webhook.router.cjs.map +1 -0
- package/dist/src/modules/webhook/webhook.router.d.cts +8 -0
- package/dist/src/modules/webhook/webhook.service.cjs +61 -0
- package/dist/src/modules/webhook/webhook.service.cjs.map +1 -0
- package/dist/src/modules/webhook/webhook.service.d.cts +14 -0
- package/dist/src/modules/workflow/workflow.db.cjs +35 -0
- package/dist/src/modules/workflow/workflow.db.cjs.map +1 -0
- package/dist/src/modules/workflow/workflow.db.d.cts +302 -0
- package/dist/src/modules/workflow/workflow.repository.cjs +95 -0
- package/dist/src/modules/workflow/workflow.repository.cjs.map +1 -0
- package/dist/src/modules/workflow/workflow.repository.d.cts +371 -0
- package/dist/src/modules/workflow/workflow.service.cjs +41 -0
- package/dist/src/modules/workflow/workflow.service.cjs.map +1 -0
- package/dist/src/modules/workflow/workflow.service.d.cts +68 -0
- package/dist/src/modules/workflow/workflow.trpc.cjs +19 -0
- package/dist/src/modules/workflow/workflow.trpc.cjs.map +1 -0
- package/dist/src/modules/workflow/workflow.trpc.d.cts +65 -0
- package/dist/src/modules/workflow/workflow.types.cjs +0 -0
- package/dist/src/modules/workflow/workflow.types.d.cts +25 -0
- package/dist/src/modules/workflow/workflow.utils.cjs +185 -0
- package/dist/src/modules/workflow/workflow.utils.cjs.map +1 -0
- package/dist/src/modules/workflow/workflow.utils.d.cts +36 -0
- package/dist/src/types.cjs +12 -0
- package/dist/src/types.cjs.map +1 -0
- package/dist/src/types.d.cts +344 -0
- package/dist/src/utils/errors.cjs +101 -0
- package/dist/src/utils/errors.cjs.map +1 -0
- package/dist/src/utils/errors.d.cts +62 -0
- package/dist/src/utils/logger.cjs +13 -0
- package/dist/src/utils/logger.cjs.map +1 -0
- package/dist/src/utils/logger.d.cts +7 -0
- package/dist/src/utils/posthog.cjs +31 -0
- package/dist/src/utils/posthog.cjs.map +1 -0
- package/dist/src/utils/posthog.d.cts +17 -0
- package/dist/src/utils/trpc.cjs +156 -0
- package/dist/src/utils/trpc.cjs.map +1 -0
- package/dist/src/utils/trpc.d.cts +54 -0
- package/dist/src/utils/types.cjs +0 -0
- package/dist/src/utils/types.d.cts +9 -0
- package/package.json +171 -47
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_src_utils_logger = require("./logger.cjs");
|
|
4
|
+
let _trpc_server = require("@trpc/server");
|
|
5
|
+
let _trpc_server_http = require("@trpc/server/http");
|
|
6
|
+
let radashi = require("radashi");
|
|
7
|
+
//#region src/utils/errors.ts
|
|
8
|
+
var ServerError = class ServerError extends Error {
|
|
9
|
+
code;
|
|
10
|
+
layer;
|
|
11
|
+
layerName;
|
|
12
|
+
clientMessage;
|
|
13
|
+
context;
|
|
14
|
+
boundaryStack;
|
|
15
|
+
constructor({ code, layer, layerName, message, clientMessage, cause, context, captureBoundary = true }) {
|
|
16
|
+
super(message ?? `server.error.${layer}.${(0, radashi.camel)(code)}`, { cause: cause instanceof Error ? cause : void 0 });
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.layer = layer ?? "unknown";
|
|
19
|
+
this.layerName = layerName ?? "UnknownLayer";
|
|
20
|
+
this.clientMessage = clientMessage ?? `server.error.${layer}.${(0, radashi.camel)(code)}`;
|
|
21
|
+
this.context = context;
|
|
22
|
+
if (captureBoundary) this.boundaryStack = (/* @__PURE__ */ new Error()).stack;
|
|
23
|
+
Error.captureStackTrace?.(this, ServerError);
|
|
24
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
25
|
+
}
|
|
26
|
+
is5xxError() {
|
|
27
|
+
const statusCode = this.getHTTPStatusCode();
|
|
28
|
+
return statusCode >= 500 && statusCode < 600;
|
|
29
|
+
}
|
|
30
|
+
getHTTPStatusCode() {
|
|
31
|
+
return (0, _trpc_server_http.getHTTPStatusCodeFromError)(this.toTRPC());
|
|
32
|
+
}
|
|
33
|
+
toTRPC() {
|
|
34
|
+
return new _trpc_server.TRPCError({
|
|
35
|
+
code: this.code,
|
|
36
|
+
message: this.message,
|
|
37
|
+
cause: this.cause
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
toJSON() {
|
|
41
|
+
return {
|
|
42
|
+
code: this.code,
|
|
43
|
+
layer: this.layer,
|
|
44
|
+
layerName: this.layerName,
|
|
45
|
+
message: this.message,
|
|
46
|
+
context: this.context,
|
|
47
|
+
stack: process.env.NODE_ENV !== "production" ? this.stack : void 0,
|
|
48
|
+
boundaryStack: process.env.NODE_ENV !== "production" ? this.boundaryStack : void 0,
|
|
49
|
+
cause: this.cause instanceof Error ? {
|
|
50
|
+
name: this.cause.name,
|
|
51
|
+
message: this.cause.message,
|
|
52
|
+
stack: this.cause.stack
|
|
53
|
+
} : this.cause
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
static fromUnknown(code, cause, opts) {
|
|
57
|
+
const msg = cause instanceof Error ? cause.message : void 0;
|
|
58
|
+
return new ServerError({
|
|
59
|
+
code,
|
|
60
|
+
layer: opts?.layer,
|
|
61
|
+
layerName: opts?.layerName,
|
|
62
|
+
message: msg,
|
|
63
|
+
cause,
|
|
64
|
+
context: opts?.context,
|
|
65
|
+
captureBoundary: true
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
function getErrorReporter() {
|
|
70
|
+
return globalThis.m5ErrorReporter;
|
|
71
|
+
}
|
|
72
|
+
function setErrorReporter(reporter) {
|
|
73
|
+
globalThis.m5ErrorReporter = reporter;
|
|
74
|
+
}
|
|
75
|
+
function reportError(err, hint) {
|
|
76
|
+
let eventHint = hint;
|
|
77
|
+
const reporter = getErrorReporter();
|
|
78
|
+
if (!reporter) {
|
|
79
|
+
require_src_utils_logger.logger.error("[reportError] No error reporter set!");
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (err instanceof ServerError) eventHint = {
|
|
83
|
+
...hint,
|
|
84
|
+
captureContext: {
|
|
85
|
+
...hint?.captureContext,
|
|
86
|
+
extra: {
|
|
87
|
+
...hint?.captureContext?.extra ?? {},
|
|
88
|
+
layer: err.layer,
|
|
89
|
+
layerName: err.layerName
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
return reporter.captureException(err, eventHint);
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
exports.ServerError = ServerError;
|
|
97
|
+
exports.getErrorReporter = getErrorReporter;
|
|
98
|
+
exports.reportError = reportError;
|
|
99
|
+
exports.setErrorReporter = setErrorReporter;
|
|
100
|
+
|
|
101
|
+
//# sourceMappingURL=errors.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.cjs","names":["TRPCError"],"sources":["../../../src/utils/errors.ts"],"sourcesContent":["import type { captureException } from \"@sentry/node\";\r\nimport { type TRPC_ERROR_CODE_KEY, TRPCError } from \"@trpc/server\";\r\nimport { getHTTPStatusCodeFromError } from \"@trpc/server/http\";\r\nimport { camel } from \"radashi\";\r\nimport type { ServerErrorLayer } from \"../modules/base/base.types\";\r\nimport { logger } from \"./logger\";\r\n\r\nexport type { ServerErrorLayer };\r\nexport class ServerError extends Error {\r\n readonly code: TRPC_ERROR_CODE_KEY;\r\n readonly layer: ServerErrorLayer;\r\n readonly layerName: string;\r\n readonly clientMessage?: string;\r\n readonly context?: Record<string, unknown>;\r\n readonly boundaryStack?: string; // where we wrapped it\r\n\r\n constructor({\r\n code,\r\n layer,\r\n layerName,\r\n message,\r\n clientMessage,\r\n cause,\r\n context,\r\n captureBoundary = true,\r\n }: {\r\n code: TRPC_ERROR_CODE_KEY;\r\n layer?: ServerErrorLayer;\r\n layerName?: string;\r\n message?: string;\r\n clientMessage?: string;\r\n cause?: unknown;\r\n context?: Record<string, unknown>;\r\n captureBoundary?: boolean;\r\n }) {\r\n // keep native cause chain when the cause is an Error\r\n super(message ?? `server.error.${layer}.${camel(code)}`, {\r\n cause: cause instanceof Error ? cause : undefined,\r\n });\r\n\r\n this.code = code;\r\n this.layer = layer ?? \"unknown\";\r\n this.layerName = layerName ?? \"UnknownLayer\";\r\n this.clientMessage = clientMessage ?? `server.error.${layer}.${camel(code)}`;\r\n this.context = context;\r\n if (captureBoundary) this.boundaryStack = new Error().stack;\r\n\r\n Error.captureStackTrace?.(this, ServerError);\r\n Object.setPrototypeOf(this, new.target.prototype);\r\n }\r\n\r\n is5xxError(): boolean {\r\n const statusCode = this.getHTTPStatusCode();\r\n return statusCode >= 500 && statusCode < 600;\r\n }\r\n\r\n getHTTPStatusCode(): number {\r\n return getHTTPStatusCodeFromError(this.toTRPC());\r\n }\r\n\r\n toTRPC(): TRPCError {\r\n return new TRPCError({\r\n code: this.code,\r\n message: this.message,\r\n cause: this.cause,\r\n });\r\n }\r\n\r\n toJSON() {\r\n return {\r\n code: this.code,\r\n layer: this.layer,\r\n layerName: this.layerName,\r\n message: this.message,\r\n context: this.context,\r\n stack: process.env.NODE_ENV !== \"production\" ? this.stack : undefined,\r\n boundaryStack: process.env.NODE_ENV !== \"production\" ? this.boundaryStack : undefined,\r\n // Shallow representation of cause to avoid cycles\r\n cause:\r\n this.cause instanceof Error\r\n ? { name: this.cause.name, message: this.cause.message, stack: this.cause.stack }\r\n : this.cause,\r\n };\r\n }\r\n\r\n static fromUnknown(\r\n code: TRPC_ERROR_CODE_KEY,\r\n cause: unknown,\r\n opts?: { layer?: ServerErrorLayer; layerName?: string; context?: Record<string, unknown> }\r\n ) {\r\n const msg = cause instanceof Error ? cause.message : undefined;\r\n return new ServerError({\r\n code,\r\n layer: opts?.layer,\r\n layerName: opts?.layerName,\r\n message: msg,\r\n cause,\r\n context: opts?.context,\r\n captureBoundary: true,\r\n });\r\n }\r\n}\r\n\r\nexport type ErrorReporter = {\r\n captureException: (\r\n err: Parameters<typeof captureException>[0],\r\n hint?: Parameters<typeof captureException>[1]\r\n ) => string;\r\n};\r\ndeclare global {\r\n // eslint-disable-next-line no-var\r\n var m5ErrorReporter: ErrorReporter | undefined;\r\n}\r\n\r\nexport function getErrorReporter(): ErrorReporter | undefined {\r\n return globalThis.m5ErrorReporter;\r\n}\r\n\r\nexport function setErrorReporter(reporter: ErrorReporter) {\r\n globalThis.m5ErrorReporter = reporter;\r\n}\r\n\r\nexport function reportError(\r\n err: ServerError | Error | unknown,\r\n hint?: Parameters<typeof captureException>[1]\r\n): string | undefined {\r\n let eventHint = hint;\r\n const reporter = getErrorReporter();\r\n if (!reporter) {\r\n logger.error(\"[reportError] No error reporter set!\");\r\n return;\r\n }\r\n if (err instanceof ServerError) {\r\n // Merge - don't clobber caller-provided hint\r\n eventHint = {\r\n ...hint,\r\n captureContext: {\r\n ...(hint as any)?.captureContext,\r\n extra: {\r\n ...((hint as any)?.captureContext?.extra ?? {}),\r\n layer: err.layer,\r\n layerName: err.layerName,\r\n },\r\n },\r\n };\r\n }\r\n return reporter.captureException(err, eventHint);\r\n}\r\n"],"mappings":";;;;;;;AAQA,IAAa,cAAb,MAAa,oBAAoB,MAAM;CACrC;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,EACV,MACA,OACA,WACA,SACA,eACA,OACA,SACA,kBAAkB,QAUjB;AAED,QAAM,WAAW,gBAAgB,MAAM,IAAA,GAAA,QAAA,OAAS,KAAK,IAAI,EACvD,OAAO,iBAAiB,QAAQ,QAAQ,KAAA,GACzC,CAAC;AAEF,OAAK,OAAO;AACZ,OAAK,QAAQ,SAAS;AACtB,OAAK,YAAY,aAAa;AAC9B,OAAK,gBAAgB,iBAAiB,gBAAgB,MAAM,IAAA,GAAA,QAAA,OAAS,KAAK;AAC1E,OAAK,UAAU;AACf,MAAI,gBAAiB,MAAK,iCAAgB,IAAI,OAAO,EAAC;AAEtD,QAAM,oBAAoB,MAAM,YAAY;AAC5C,SAAO,eAAe,MAAM,IAAI,OAAO,UAAU;;CAGnD,aAAsB;EACpB,MAAM,aAAa,KAAK,mBAAmB;AAC3C,SAAO,cAAc,OAAO,aAAa;;CAG3C,oBAA4B;AAC1B,UAAA,GAAA,kBAAA,4BAAkC,KAAK,QAAQ,CAAC;;CAGlD,SAAoB;AAClB,SAAO,IAAIA,aAAAA,UAAU;GACnB,MAAM,KAAK;GACX,SAAS,KAAK;GACd,OAAO,KAAK;GACb,CAAC;;CAGJ,SAAS;AACP,SAAO;GACL,MAAM,KAAK;GACX,OAAO,KAAK;GACZ,WAAW,KAAK;GAChB,SAAS,KAAK;GACd,SAAS,KAAK;GACd,OAAO,QAAQ,IAAI,aAAa,eAAe,KAAK,QAAQ,KAAA;GAC5D,eAAe,QAAQ,IAAI,aAAa,eAAe,KAAK,gBAAgB,KAAA;GAE5E,OACE,KAAK,iBAAiB,QAClB;IAAE,MAAM,KAAK,MAAM;IAAM,SAAS,KAAK,MAAM;IAAS,OAAO,KAAK,MAAM;IAAO,GAC/E,KAAK;GACZ;;CAGH,OAAO,YACL,MACA,OACA,MACA;EACA,MAAM,MAAM,iBAAiB,QAAQ,MAAM,UAAU,KAAA;AACrD,SAAO,IAAI,YAAY;GACrB;GACA,OAAO,MAAM;GACb,WAAW,MAAM;GACjB,SAAS;GACT;GACA,SAAS,MAAM;GACf,iBAAiB;GAClB,CAAC;;;AAeN,SAAgB,mBAA8C;AAC5D,QAAO,WAAW;;AAGpB,SAAgB,iBAAiB,UAAyB;AACxD,YAAW,kBAAkB;;AAG/B,SAAgB,YACd,KACA,MACoB;CACpB,IAAI,YAAY;CAChB,MAAM,WAAW,kBAAkB;AACnC,KAAI,CAAC,UAAU;AACb,2BAAA,OAAO,MAAM,uCAAuC;AACpD;;AAEF,KAAI,eAAe,YAEjB,aAAY;EACV,GAAG;EACH,gBAAgB;GACd,GAAI,MAAc;GAClB,OAAO;IACL,GAAK,MAAc,gBAAgB,SAAS,EAAE;IAC9C,OAAO,IAAI;IACX,WAAW,IAAI;IAChB;GACF;EACF;AAEH,QAAO,SAAS,iBAAiB,KAAK,UAAU"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ServerErrorLayer } from "../modules/base/base.types.cjs";
|
|
2
|
+
import { captureException } from "@sentry/node";
|
|
3
|
+
import { TRPCError, TRPC_ERROR_CODE_KEY } from "@trpc/server";
|
|
4
|
+
|
|
5
|
+
//#region src/utils/errors.d.ts
|
|
6
|
+
declare class ServerError extends Error {
|
|
7
|
+
readonly code: TRPC_ERROR_CODE_KEY;
|
|
8
|
+
readonly layer: ServerErrorLayer;
|
|
9
|
+
readonly layerName: string;
|
|
10
|
+
readonly clientMessage?: string;
|
|
11
|
+
readonly context?: Record<string, unknown>;
|
|
12
|
+
readonly boundaryStack?: string;
|
|
13
|
+
constructor({
|
|
14
|
+
code,
|
|
15
|
+
layer,
|
|
16
|
+
layerName,
|
|
17
|
+
message,
|
|
18
|
+
clientMessage,
|
|
19
|
+
cause,
|
|
20
|
+
context,
|
|
21
|
+
captureBoundary
|
|
22
|
+
}: {
|
|
23
|
+
code: TRPC_ERROR_CODE_KEY;
|
|
24
|
+
layer?: ServerErrorLayer;
|
|
25
|
+
layerName?: string;
|
|
26
|
+
message?: string;
|
|
27
|
+
clientMessage?: string;
|
|
28
|
+
cause?: unknown;
|
|
29
|
+
context?: Record<string, unknown>;
|
|
30
|
+
captureBoundary?: boolean;
|
|
31
|
+
});
|
|
32
|
+
is5xxError(): boolean;
|
|
33
|
+
getHTTPStatusCode(): number;
|
|
34
|
+
toTRPC(): TRPCError;
|
|
35
|
+
toJSON(): {
|
|
36
|
+
code: "PARSE_ERROR" | "BAD_REQUEST" | "INTERNAL_SERVER_ERROR" | "NOT_IMPLEMENTED" | "BAD_GATEWAY" | "SERVICE_UNAVAILABLE" | "GATEWAY_TIMEOUT" | "UNAUTHORIZED" | "PAYMENT_REQUIRED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_SUPPORTED" | "TIMEOUT" | "CONFLICT" | "PRECONDITION_FAILED" | "PAYLOAD_TOO_LARGE" | "UNSUPPORTED_MEDIA_TYPE" | "UNPROCESSABLE_CONTENT" | "TOO_MANY_REQUESTS" | "CLIENT_CLOSED_REQUEST";
|
|
37
|
+
layer: ServerErrorLayer;
|
|
38
|
+
layerName: string;
|
|
39
|
+
message: string;
|
|
40
|
+
context: Record<string, unknown> | undefined;
|
|
41
|
+
stack: string | undefined;
|
|
42
|
+
boundaryStack: string | undefined;
|
|
43
|
+
cause: unknown;
|
|
44
|
+
};
|
|
45
|
+
static fromUnknown(code: TRPC_ERROR_CODE_KEY, cause: unknown, opts?: {
|
|
46
|
+
layer?: ServerErrorLayer;
|
|
47
|
+
layerName?: string;
|
|
48
|
+
context?: Record<string, unknown>;
|
|
49
|
+
}): ServerError;
|
|
50
|
+
}
|
|
51
|
+
type ErrorReporter = {
|
|
52
|
+
captureException: (err: Parameters<typeof captureException>[0], hint?: Parameters<typeof captureException>[1]) => string;
|
|
53
|
+
};
|
|
54
|
+
declare global {
|
|
55
|
+
var m5ErrorReporter: ErrorReporter | undefined;
|
|
56
|
+
}
|
|
57
|
+
declare function getErrorReporter(): ErrorReporter | undefined;
|
|
58
|
+
declare function setErrorReporter(reporter: ErrorReporter): void;
|
|
59
|
+
declare function reportError(err: ServerError | Error | unknown, hint?: Parameters<typeof captureException>[1]): string | undefined;
|
|
60
|
+
//#endregion
|
|
61
|
+
export { ErrorReporter, ServerError, type ServerErrorLayer, getErrorReporter, reportError, setErrorReporter };
|
|
62
|
+
//# sourceMappingURL=errors.d.cts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
let pino = require("pino");
|
|
4
|
+
pino = require_runtime.__toESM(pino);
|
|
5
|
+
//#region src/utils/logger.ts
|
|
6
|
+
const logger = (0, pino.default)({
|
|
7
|
+
transport: { target: "pino-pretty" },
|
|
8
|
+
level: "debug"
|
|
9
|
+
});
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.logger = logger;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=logger.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.cjs","names":[],"sources":["../../../src/utils/logger.ts"],"sourcesContent":["import pino from \"pino\";\r\n\r\nexport const logger = pino({\r\n transport: {\r\n target: \"pino-pretty\",\r\n },\r\n level: \"debug\",\r\n});\r\n"],"mappings":";;;;;AAEA,MAAa,UAAA,GAAA,KAAA,SAAc;CACzB,WAAW,EACT,QAAQ,eACT;CACD,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
let node_async_hooks = require("node:async_hooks");
|
|
4
|
+
//#region src/utils/posthog.ts
|
|
5
|
+
function getPosthog() {
|
|
6
|
+
return globalThis.m5Posthog;
|
|
7
|
+
}
|
|
8
|
+
function setPosthog(posthog) {
|
|
9
|
+
globalThis.m5Posthog = posthog;
|
|
10
|
+
}
|
|
11
|
+
const posthogRequestState = new node_async_hooks.AsyncLocalStorage();
|
|
12
|
+
function runWithPosthogRequestState(state, callback) {
|
|
13
|
+
return posthogRequestState.run(state, callback);
|
|
14
|
+
}
|
|
15
|
+
function isPosthogCaptureDisabled() {
|
|
16
|
+
return posthogRequestState.getStore()?.disableCapture ?? false;
|
|
17
|
+
}
|
|
18
|
+
function posthogCapture(event) {
|
|
19
|
+
if (isPosthogCaptureDisabled()) return;
|
|
20
|
+
const posthog = getPosthog();
|
|
21
|
+
if (!posthog) return;
|
|
22
|
+
return posthog.capture(event);
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
exports.getPosthog = getPosthog;
|
|
26
|
+
exports.isPosthogCaptureDisabled = isPosthogCaptureDisabled;
|
|
27
|
+
exports.posthogCapture = posthogCapture;
|
|
28
|
+
exports.runWithPosthogRequestState = runWithPosthogRequestState;
|
|
29
|
+
exports.setPosthog = setPosthog;
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=posthog.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"posthog.cjs","names":["AsyncLocalStorage"],"sources":["../../../src/utils/posthog.ts"],"sourcesContent":["import { AsyncLocalStorage } from \"node:async_hooks\";\r\nimport type { PostHog } from \"posthog-node\";\r\n\r\ndeclare global {\r\n // eslint-disable-next-line no-var\r\n var m5Posthog: PostHog | undefined;\r\n}\r\n\r\nexport function getPosthog(): PostHog | undefined {\r\n return globalThis.m5Posthog;\r\n}\r\n\r\nexport function setPosthog(posthog: PostHog) {\r\n globalThis.m5Posthog = posthog;\r\n}\r\n\r\ntype PosthogRequestState = {\r\n disableCapture: boolean;\r\n};\r\n\r\nconst posthogRequestState = new AsyncLocalStorage<PosthogRequestState>();\r\n\r\nexport function runWithPosthogRequestState<T>(state: PosthogRequestState, callback: () => T): T {\r\n return posthogRequestState.run(state, callback);\r\n}\r\n\r\nexport function isPosthogCaptureDisabled(): boolean {\r\n return posthogRequestState.getStore()?.disableCapture ?? false;\r\n}\r\n\r\nexport function posthogCapture(\r\n event: Parameters<PostHog[\"capture\"]>[0]\r\n): ReturnType<PostHog[\"capture\"]> | undefined {\r\n if (isPosthogCaptureDisabled()) {\r\n return undefined;\r\n }\r\n\r\n const posthog = getPosthog();\r\n if (!posthog) {\r\n return undefined;\r\n }\r\n return posthog.capture(event);\r\n}\r\n"],"mappings":";;;;AAQA,SAAgB,aAAkC;AAChD,QAAO,WAAW;;AAGpB,SAAgB,WAAW,SAAkB;AAC3C,YAAW,YAAY;;AAOzB,MAAM,sBAAsB,IAAIA,iBAAAA,mBAAwC;AAExE,SAAgB,2BAA8B,OAA4B,UAAsB;AAC9F,QAAO,oBAAoB,IAAI,OAAO,SAAS;;AAGjD,SAAgB,2BAAoC;AAClD,QAAO,oBAAoB,UAAU,EAAE,kBAAkB;;AAG3D,SAAgB,eACd,OAC4C;AAC5C,KAAI,0BAA0B,CAC5B;CAGF,MAAM,UAAU,YAAY;AAC5B,KAAI,CAAC,QACH;AAEF,QAAO,QAAQ,QAAQ,MAAM"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PostHog } from "posthog-node";
|
|
2
|
+
|
|
3
|
+
//#region src/utils/posthog.d.ts
|
|
4
|
+
declare global {
|
|
5
|
+
var m5Posthog: PostHog | undefined;
|
|
6
|
+
}
|
|
7
|
+
declare function getPosthog(): PostHog | undefined;
|
|
8
|
+
declare function setPosthog(posthog: PostHog): void;
|
|
9
|
+
type PosthogRequestState = {
|
|
10
|
+
disableCapture: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare function runWithPosthogRequestState<T>(state: PosthogRequestState, callback: () => T): T;
|
|
13
|
+
declare function isPosthogCaptureDisabled(): boolean;
|
|
14
|
+
declare function posthogCapture(event: Parameters<PostHog["capture"]>[0]): ReturnType<PostHog["capture"]> | undefined;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { getPosthog, isPosthogCaptureDisabled, posthogCapture, runWithPosthogRequestState, setPosthog };
|
|
17
|
+
//# sourceMappingURL=posthog.d.cts.map
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_src_utils_logger = require("./logger.cjs");
|
|
4
|
+
const require_src_utils_errors = require("./errors.cjs");
|
|
5
|
+
const require_src_modules_base_base_actor = require("../modules/base/base.actor.cjs");
|
|
6
|
+
let better_auth_node = require("better-auth/node");
|
|
7
|
+
//#region src/utils/trpc.ts
|
|
8
|
+
function createAuthContext(auth) {
|
|
9
|
+
return async function createContext({ req }) {
|
|
10
|
+
const data = await auth.api.getSession({ headers: (0, better_auth_node.fromNodeHeaders)(req.headers) });
|
|
11
|
+
const user = data?.user || null;
|
|
12
|
+
const session = data?.session || null;
|
|
13
|
+
return {
|
|
14
|
+
session,
|
|
15
|
+
user,
|
|
16
|
+
actor: user && session ? require_src_modules_base_base_actor.createActorFromContext({
|
|
17
|
+
user,
|
|
18
|
+
session
|
|
19
|
+
}, "user") : null
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function handleAsyncTRPCResult(result) {
|
|
24
|
+
return handleTRPCResult(await result);
|
|
25
|
+
}
|
|
26
|
+
function handleTRPCResult(result) {
|
|
27
|
+
if (result.isErr()) {
|
|
28
|
+
require_src_utils_logger.logger.debug("Is tRPC Error");
|
|
29
|
+
require_src_utils_logger.logger.error({
|
|
30
|
+
layer: result.error.layer,
|
|
31
|
+
layerName: result.error.layerName,
|
|
32
|
+
error: result.error.toJSON()
|
|
33
|
+
});
|
|
34
|
+
throw result.error.toTRPC();
|
|
35
|
+
}
|
|
36
|
+
return result.value;
|
|
37
|
+
}
|
|
38
|
+
function verifyProtectedProcedureContext(ctx) {
|
|
39
|
+
if (!ctx.user || !ctx.session || !ctx.actor) throw new require_src_utils_errors.ServerError({
|
|
40
|
+
code: "UNAUTHORIZED",
|
|
41
|
+
layer: "controller",
|
|
42
|
+
layerName: "TRPCController"
|
|
43
|
+
}).toTRPC();
|
|
44
|
+
return ctx;
|
|
45
|
+
}
|
|
46
|
+
function verifyOrganizationProcedureContext(ctx) {
|
|
47
|
+
if (!ctx.user || !ctx.session) throw new require_src_utils_errors.ServerError({
|
|
48
|
+
code: "UNAUTHORIZED",
|
|
49
|
+
layer: "controller",
|
|
50
|
+
layerName: "TRPCController"
|
|
51
|
+
}).toTRPC();
|
|
52
|
+
try {
|
|
53
|
+
const actor = require_src_modules_base_base_actor.createActorFromContext({
|
|
54
|
+
user: ctx.user,
|
|
55
|
+
session: ctx.session
|
|
56
|
+
}, "organization");
|
|
57
|
+
return {
|
|
58
|
+
...ctx,
|
|
59
|
+
actor
|
|
60
|
+
};
|
|
61
|
+
} catch (e) {
|
|
62
|
+
if (e instanceof require_src_utils_errors.ServerError) throw e.toTRPC();
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function verifyTeamProcedureContext(ctx) {
|
|
67
|
+
if (!ctx.user || !ctx.session) throw new require_src_utils_errors.ServerError({
|
|
68
|
+
code: "UNAUTHORIZED",
|
|
69
|
+
layer: "controller",
|
|
70
|
+
layerName: "TRPCController"
|
|
71
|
+
}).toTRPC();
|
|
72
|
+
try {
|
|
73
|
+
const actor = require_src_modules_base_base_actor.createActorFromContext({
|
|
74
|
+
user: ctx.user,
|
|
75
|
+
session: ctx.session
|
|
76
|
+
}, "team");
|
|
77
|
+
return {
|
|
78
|
+
...ctx,
|
|
79
|
+
actor
|
|
80
|
+
};
|
|
81
|
+
} catch (e) {
|
|
82
|
+
if (e instanceof require_src_utils_errors.ServerError) throw e.toTRPC();
|
|
83
|
+
throw e;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function verifyAdminProcedureContext(ctx) {
|
|
87
|
+
if (!ctx.user || !ctx.session) throw new require_src_utils_errors.ServerError({
|
|
88
|
+
code: "UNAUTHORIZED",
|
|
89
|
+
layer: "controller",
|
|
90
|
+
layerName: "TRPCController"
|
|
91
|
+
}).toTRPC();
|
|
92
|
+
if (ctx.user.role !== "admin") throw new require_src_utils_errors.ServerError({
|
|
93
|
+
code: "FORBIDDEN",
|
|
94
|
+
layer: "controller",
|
|
95
|
+
layerName: "TRPCController"
|
|
96
|
+
}).toTRPC();
|
|
97
|
+
if (!ctx.actor) throw new require_src_utils_errors.ServerError({
|
|
98
|
+
code: "UNAUTHORIZED",
|
|
99
|
+
layer: "controller",
|
|
100
|
+
layerName: "TRPCController"
|
|
101
|
+
}).toTRPC();
|
|
102
|
+
return ctx;
|
|
103
|
+
}
|
|
104
|
+
function requireRequestUser(ctx) {
|
|
105
|
+
return verifyProtectedProcedureContext(ctx).user;
|
|
106
|
+
}
|
|
107
|
+
function requireRequestActor(ctx, scope = "user") {
|
|
108
|
+
const verified = verifyProtectedProcedureContext(ctx);
|
|
109
|
+
if (scope === "user") {
|
|
110
|
+
if (!require_src_modules_base_base_actor.validateActor(verified.actor, "user")) throw new require_src_utils_errors.ServerError({
|
|
111
|
+
code: "FORBIDDEN",
|
|
112
|
+
layer: "controller",
|
|
113
|
+
layerName: "TRPCController"
|
|
114
|
+
}).toTRPC();
|
|
115
|
+
return verified.actor;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
if (scope === "organization") {
|
|
119
|
+
const actor = require_src_modules_base_base_actor.createActorFromContext({
|
|
120
|
+
user: verified.user,
|
|
121
|
+
session: verified.session
|
|
122
|
+
}, "organization");
|
|
123
|
+
if (!require_src_modules_base_base_actor.validateActor(actor, "organization")) throw new require_src_utils_errors.ServerError({
|
|
124
|
+
code: "FORBIDDEN",
|
|
125
|
+
layer: "controller",
|
|
126
|
+
layerName: "TRPCController"
|
|
127
|
+
}).toTRPC();
|
|
128
|
+
return actor;
|
|
129
|
+
}
|
|
130
|
+
const actor = require_src_modules_base_base_actor.createActorFromContext({
|
|
131
|
+
user: verified.user,
|
|
132
|
+
session: verified.session
|
|
133
|
+
}, "team");
|
|
134
|
+
if (!require_src_modules_base_base_actor.validateActor(actor, "team")) throw new require_src_utils_errors.ServerError({
|
|
135
|
+
code: "FORBIDDEN",
|
|
136
|
+
layer: "controller",
|
|
137
|
+
layerName: "TRPCController"
|
|
138
|
+
}).toTRPC();
|
|
139
|
+
return actor;
|
|
140
|
+
} catch (e) {
|
|
141
|
+
if (e instanceof require_src_utils_errors.ServerError) throw e.toTRPC();
|
|
142
|
+
throw e;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//#endregion
|
|
146
|
+
exports.createAuthContext = createAuthContext;
|
|
147
|
+
exports.handleAsyncTRPCResult = handleAsyncTRPCResult;
|
|
148
|
+
exports.handleTRPCResult = handleTRPCResult;
|
|
149
|
+
exports.requireRequestActor = requireRequestActor;
|
|
150
|
+
exports.requireRequestUser = requireRequestUser;
|
|
151
|
+
exports.verifyAdminProcedureContext = verifyAdminProcedureContext;
|
|
152
|
+
exports.verifyOrganizationProcedureContext = verifyOrganizationProcedureContext;
|
|
153
|
+
exports.verifyProtectedProcedureContext = verifyProtectedProcedureContext;
|
|
154
|
+
exports.verifyTeamProcedureContext = verifyTeamProcedureContext;
|
|
155
|
+
|
|
156
|
+
//# sourceMappingURL=trpc.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trpc.cjs","names":["createActorFromContext","ServerError","validateActor"],"sources":["../../../src/utils/trpc.ts"],"sourcesContent":["import type { transformer } from \"@m5kdev/commons/utils/trpc\";\r\nimport type { TRPCRootObject } from \"@trpc/server\";\r\nimport type { CreateExpressContextOptions } from \"@trpc/server/adapters/express\";\r\nimport { fromNodeHeaders } from \"better-auth/node\";\r\nimport type { Result } from \"neverthrow\";\r\nimport type { BetterAuth, Session, User } from \"../modules/auth/auth.lib\";\r\nimport {\r\n createActorFromContext,\r\n validateActor,\r\n type ActorScope,\r\n type AuthenticatedActor,\r\n type OrganizationActor,\r\n type TeamActor,\r\n type UserActor,\r\n} from \"../modules/base/base.actor\";\r\nimport { ServerError } from \"./errors\";\r\nimport { logger } from \"./logger\";\r\n\r\nexport type RequestContext = {\r\n session: Session | null;\r\n user: User | null;\r\n actor: UserActor | null;\r\n};\r\n\r\nexport type Context = {\r\n session: Session;\r\n user: User;\r\n actor: UserActor;\r\n};\r\n\r\nexport type OrganizationContext = {\r\n session: Session;\r\n user: User;\r\n actor: OrganizationActor;\r\n};\r\n\r\nexport type TeamContext = {\r\n session: Session;\r\n user: User;\r\n actor: TeamActor;\r\n};\r\n\r\ntype TRPCCreate = TRPCRootObject<Context, any, { transformer: typeof transformer }>;\r\n\r\nexport type TRPCMethods = {\r\n router: TRPCCreate[\"router\"];\r\n publicProcedure: TRPCCreate[\"procedure\"];\r\n privateProcedure: TRPCCreate[\"procedure\"];\r\n adminProcedure: TRPCCreate[\"procedure\"];\r\n};\r\n\r\nexport function createAuthContext(auth: BetterAuth) {\r\n return async function createContext({ req }: CreateExpressContextOptions): Promise<RequestContext> {\r\n const data = await auth.api.getSession({\r\n headers: fromNodeHeaders(req.headers),\r\n });\r\n\r\n const user = (data?.user as User) || null;\r\n const session = (data?.session as Session) || null;\r\n const actor =\r\n user && session ? createActorFromContext({ user, session }, \"user\") : null;\r\n\r\n return {\r\n session,\r\n user,\r\n actor,\r\n };\r\n };\r\n}\r\n\r\nexport async function handleAsyncTRPCResult<T>(result: Promise<Result<T, ServerError>>) {\r\n return handleTRPCResult(await result);\r\n}\r\n\r\nexport function handleTRPCResult<T>(result: Result<T, ServerError>) {\r\n if (result.isErr()) {\r\n logger.debug(\"Is tRPC Error\");\r\n logger.error({\r\n layer: result.error.layer,\r\n layerName: result.error.layerName,\r\n error: result.error.toJSON(),\r\n });\r\n throw result.error.toTRPC();\r\n }\r\n return result.value;\r\n}\r\n\r\nexport function verifyProtectedProcedureContext(ctx: RequestContext): Context {\r\n if (!ctx.user || !ctx.session || !ctx.actor) {\r\n throw new ServerError({\r\n code: \"UNAUTHORIZED\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n return ctx as Context;\r\n}\r\n\r\nexport function verifyOrganizationProcedureContext(ctx: Context): OrganizationContext {\r\n if (!ctx.user || !ctx.session) {\r\n throw new ServerError({\r\n code: \"UNAUTHORIZED\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n try {\r\n const actor = createActorFromContext({ user: ctx.user, session: ctx.session }, \"organization\");\r\n return { ...ctx, actor };\r\n } catch (e) {\r\n if (e instanceof ServerError) throw e.toTRPC();\r\n throw e;\r\n }\r\n}\r\n\r\nexport function verifyTeamProcedureContext(ctx: Context): TeamContext {\r\n if (!ctx.user || !ctx.session) {\r\n throw new ServerError({\r\n code: \"UNAUTHORIZED\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n try {\r\n const actor = createActorFromContext({ user: ctx.user, session: ctx.session }, \"team\");\r\n return { ...ctx, actor };\r\n } catch (e) {\r\n if (e instanceof ServerError) throw e.toTRPC();\r\n throw e;\r\n }\r\n}\r\n\r\nexport function verifyAdminProcedureContext(ctx: RequestContext): Context {\r\n if (!ctx.user || !ctx.session) {\r\n throw new ServerError({\r\n code: \"UNAUTHORIZED\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n\r\n if (ctx.user.role !== \"admin\") {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n if (!ctx.actor) {\r\n throw new ServerError({\r\n code: \"UNAUTHORIZED\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n return ctx as Context;\r\n}\r\n\r\nexport function requireRequestUser(ctx: RequestContext): User {\r\n return verifyProtectedProcedureContext(ctx).user;\r\n}\r\n\r\nexport function requireRequestActor(ctx: RequestContext): UserActor;\r\nexport function requireRequestActor(ctx: RequestContext, scope: \"organization\"): OrganizationActor;\r\nexport function requireRequestActor(ctx: RequestContext, scope: \"team\"): TeamActor;\r\nexport function requireRequestActor(\r\n ctx: RequestContext,\r\n scope: ActorScope = \"user\"\r\n): AuthenticatedActor {\r\n const verified = verifyProtectedProcedureContext(ctx);\r\n\r\n if (scope === \"user\") {\r\n if (!validateActor(verified.actor, \"user\")) {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n return verified.actor;\r\n }\r\n\r\n try {\r\n if (scope === \"organization\") {\r\n const actor = createActorFromContext(\r\n { user: verified.user, session: verified.session },\r\n \"organization\"\r\n );\r\n if (!validateActor(actor, \"organization\")) {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n return actor;\r\n }\r\n\r\n const actor = createActorFromContext(\r\n { user: verified.user, session: verified.session },\r\n \"team\"\r\n );\r\n if (!validateActor(actor, \"team\")) {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n layer: \"controller\",\r\n layerName: \"TRPCController\",\r\n }).toTRPC();\r\n }\r\n return actor;\r\n } catch (e) {\r\n if (e instanceof ServerError) throw e.toTRPC();\r\n throw e;\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAmDA,SAAgB,kBAAkB,MAAkB;AAClD,QAAO,eAAe,cAAc,EAAE,OAA6D;EACjG,MAAM,OAAO,MAAM,KAAK,IAAI,WAAW,EACrC,UAAA,GAAA,iBAAA,iBAAyB,IAAI,QAAQ,EACtC,CAAC;EAEF,MAAM,OAAQ,MAAM,QAAiB;EACrC,MAAM,UAAW,MAAM,WAAuB;AAI9C,SAAO;GACL;GACA;GACA,OALA,QAAQ,UAAUA,oCAAAA,uBAAuB;IAAE;IAAM;IAAS,EAAE,OAAO,GAAG;GAMvE;;;AAIL,eAAsB,sBAAyB,QAAyC;AACtF,QAAO,iBAAiB,MAAM,OAAO;;AAGvC,SAAgB,iBAAoB,QAAgC;AAClE,KAAI,OAAO,OAAO,EAAE;AAClB,2BAAA,OAAO,MAAM,gBAAgB;AAC7B,2BAAA,OAAO,MAAM;GACX,OAAO,OAAO,MAAM;GACpB,WAAW,OAAO,MAAM;GACxB,OAAO,OAAO,MAAM,QAAQ;GAC7B,CAAC;AACF,QAAM,OAAO,MAAM,QAAQ;;AAE7B,QAAO,OAAO;;AAGhB,SAAgB,gCAAgC,KAA8B;AAC5E,KAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,WAAW,CAAC,IAAI,MACpC,OAAM,IAAIC,yBAAAA,YAAY;EACpB,MAAM;EACN,OAAO;EACP,WAAW;EACZ,CAAC,CAAC,QAAQ;AAEb,QAAO;;AAGT,SAAgB,mCAAmC,KAAmC;AACpF,KAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,QACpB,OAAM,IAAIA,yBAAAA,YAAY;EACpB,MAAM;EACN,OAAO;EACP,WAAW;EACZ,CAAC,CAAC,QAAQ;AAEb,KAAI;EACF,MAAM,QAAQD,oCAAAA,uBAAuB;GAAE,MAAM,IAAI;GAAM,SAAS,IAAI;GAAS,EAAE,eAAe;AAC9F,SAAO;GAAE,GAAG;GAAK;GAAO;UACjB,GAAG;AACV,MAAI,aAAaC,yBAAAA,YAAa,OAAM,EAAE,QAAQ;AAC9C,QAAM;;;AAIV,SAAgB,2BAA2B,KAA2B;AACpE,KAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,QACpB,OAAM,IAAIA,yBAAAA,YAAY;EACpB,MAAM;EACN,OAAO;EACP,WAAW;EACZ,CAAC,CAAC,QAAQ;AAEb,KAAI;EACF,MAAM,QAAQD,oCAAAA,uBAAuB;GAAE,MAAM,IAAI;GAAM,SAAS,IAAI;GAAS,EAAE,OAAO;AACtF,SAAO;GAAE,GAAG;GAAK;GAAO;UACjB,GAAG;AACV,MAAI,aAAaC,yBAAAA,YAAa,OAAM,EAAE,QAAQ;AAC9C,QAAM;;;AAIV,SAAgB,4BAA4B,KAA8B;AACxE,KAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,QACpB,OAAM,IAAIA,yBAAAA,YAAY;EACpB,MAAM;EACN,OAAO;EACP,WAAW;EACZ,CAAC,CAAC,QAAQ;AAGb,KAAI,IAAI,KAAK,SAAS,QACpB,OAAM,IAAIA,yBAAAA,YAAY;EACpB,MAAM;EACN,OAAO;EACP,WAAW;EACZ,CAAC,CAAC,QAAQ;AAEb,KAAI,CAAC,IAAI,MACP,OAAM,IAAIA,yBAAAA,YAAY;EACpB,MAAM;EACN,OAAO;EACP,WAAW;EACZ,CAAC,CAAC,QAAQ;AAEb,QAAO;;AAGT,SAAgB,mBAAmB,KAA2B;AAC5D,QAAO,gCAAgC,IAAI,CAAC;;AAM9C,SAAgB,oBACd,KACA,QAAoB,QACA;CACpB,MAAM,WAAW,gCAAgC,IAAI;AAErD,KAAI,UAAU,QAAQ;AACpB,MAAI,CAACC,oCAAAA,cAAc,SAAS,OAAO,OAAO,CACxC,OAAM,IAAID,yBAAAA,YAAY;GACpB,MAAM;GACN,OAAO;GACP,WAAW;GACZ,CAAC,CAAC,QAAQ;AAEb,SAAO,SAAS;;AAGlB,KAAI;AACF,MAAI,UAAU,gBAAgB;GAC5B,MAAM,QAAQD,oCAAAA,uBACZ;IAAE,MAAM,SAAS;IAAM,SAAS,SAAS;IAAS,EAClD,eACD;AACD,OAAI,CAACE,oCAAAA,cAAc,OAAO,eAAe,CACvC,OAAM,IAAID,yBAAAA,YAAY;IACpB,MAAM;IACN,OAAO;IACP,WAAW;IACZ,CAAC,CAAC,QAAQ;AAEb,UAAO;;EAGT,MAAM,QAAQD,oCAAAA,uBACZ;GAAE,MAAM,SAAS;GAAM,SAAS,SAAS;GAAS,EAClD,OACD;AACD,MAAI,CAACE,oCAAAA,cAAc,OAAO,OAAO,CAC/B,OAAM,IAAID,yBAAAA,YAAY;GACpB,MAAM;GACN,OAAO;GACP,WAAW;GACZ,CAAC,CAAC,QAAQ;AAEb,SAAO;UACA,GAAG;AACV,MAAI,aAAaA,yBAAAA,YAAa,OAAM,EAAE,QAAQ;AAC9C,QAAM"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ServerError } from "./errors.cjs";
|
|
2
|
+
import { BetterAuth, Session, User } from "../modules/auth/auth.lib.cjs";
|
|
3
|
+
import { OrganizationActor, TeamActor, UserActor } from "../modules/base/base.actor.cjs";
|
|
4
|
+
import { Result } from "neverthrow";
|
|
5
|
+
import { TRPCRootObject } from "@trpc/server";
|
|
6
|
+
import { transformer } from "@m5kdev/commons/utils/trpc";
|
|
7
|
+
import { CreateExpressContextOptions } from "@trpc/server/adapters/express";
|
|
8
|
+
|
|
9
|
+
//#region src/utils/trpc.d.ts
|
|
10
|
+
type RequestContext = {
|
|
11
|
+
session: Session | null;
|
|
12
|
+
user: User | null;
|
|
13
|
+
actor: UserActor | null;
|
|
14
|
+
};
|
|
15
|
+
type Context = {
|
|
16
|
+
session: Session;
|
|
17
|
+
user: User;
|
|
18
|
+
actor: UserActor;
|
|
19
|
+
};
|
|
20
|
+
type OrganizationContext = {
|
|
21
|
+
session: Session;
|
|
22
|
+
user: User;
|
|
23
|
+
actor: OrganizationActor;
|
|
24
|
+
};
|
|
25
|
+
type TeamContext = {
|
|
26
|
+
session: Session;
|
|
27
|
+
user: User;
|
|
28
|
+
actor: TeamActor;
|
|
29
|
+
};
|
|
30
|
+
type TRPCCreate = TRPCRootObject<Context, any, {
|
|
31
|
+
transformer: typeof transformer;
|
|
32
|
+
}>;
|
|
33
|
+
type TRPCMethods = {
|
|
34
|
+
router: TRPCCreate["router"];
|
|
35
|
+
publicProcedure: TRPCCreate["procedure"];
|
|
36
|
+
privateProcedure: TRPCCreate["procedure"];
|
|
37
|
+
adminProcedure: TRPCCreate["procedure"];
|
|
38
|
+
};
|
|
39
|
+
declare function createAuthContext(auth: BetterAuth): ({
|
|
40
|
+
req
|
|
41
|
+
}: CreateExpressContextOptions) => Promise<RequestContext>;
|
|
42
|
+
declare function handleAsyncTRPCResult<T>(result: Promise<Result<T, ServerError>>): Promise<T>;
|
|
43
|
+
declare function handleTRPCResult<T>(result: Result<T, ServerError>): T;
|
|
44
|
+
declare function verifyProtectedProcedureContext(ctx: RequestContext): Context;
|
|
45
|
+
declare function verifyOrganizationProcedureContext(ctx: Context): OrganizationContext;
|
|
46
|
+
declare function verifyTeamProcedureContext(ctx: Context): TeamContext;
|
|
47
|
+
declare function verifyAdminProcedureContext(ctx: RequestContext): Context;
|
|
48
|
+
declare function requireRequestUser(ctx: RequestContext): User;
|
|
49
|
+
declare function requireRequestActor(ctx: RequestContext): UserActor;
|
|
50
|
+
declare function requireRequestActor(ctx: RequestContext, scope: "organization"): OrganizationActor;
|
|
51
|
+
declare function requireRequestActor(ctx: RequestContext, scope: "team"): TeamActor;
|
|
52
|
+
//#endregion
|
|
53
|
+
export { Context, OrganizationContext, RequestContext, TRPCMethods, TeamContext, createAuthContext, handleAsyncTRPCResult, handleTRPCResult, requireRequestActor, requireRequestUser, verifyAdminProcedureContext, verifyOrganizationProcedureContext, verifyProtectedProcedureContext, verifyTeamProcedureContext };
|
|
54
|
+
//# sourceMappingURL=trpc.d.cts.map
|
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ServerError } from "./errors.cjs";
|
|
2
|
+
import { Result } from "neverthrow";
|
|
3
|
+
|
|
4
|
+
//#region src/utils/types.d.ts
|
|
5
|
+
type ServerResult<T> = Result<T, ServerError>;
|
|
6
|
+
type ServerResultAsync<T> = Promise<ServerResult<T>>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { ServerResult, ServerResultAsync };
|
|
9
|
+
//# sourceMappingURL=types.d.cts.map
|