@m5kdev/backend 0.7.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (559) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +13 -0
  2. 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.mts +1 -0
  3. 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.mts +1 -0
  4. 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.mts +1 -0
  5. 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.mts +1 -0
  6. 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.mts +1 -0
  7. 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.mts +1 -0
  8. 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.mts +1 -0
  9. 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.mts +1 -0
  10. 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.mts +1 -0
  11. 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.mts +1 -0
  12. 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.mts +1 -0
  13. 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.mts +1 -0
  14. 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.mts +1 -0
  15. 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.mts +1 -0
  16. 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.mts +1 -0
  17. 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.mts +1 -0
  18. 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.mts +1 -0
  19. 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.mts +7 -0
  20. 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.mts +1 -0
  21. 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.mts +1 -0
  22. 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.mts +1 -0
  23. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/dialect-adapter-base.d.mts +1 -0
  24. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/dialect-adapter.d.mts +1 -0
  25. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/dialect.d.mts +1 -0
  26. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mssql/mssql-adapter.d.mts +1 -0
  27. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mssql/mssql-dialect.d.mts +1 -0
  28. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mssql/mssql-introspector.d.mts +1 -0
  29. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mysql/mysql-adapter.d.mts +1 -0
  30. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mysql/mysql-dialect.d.mts +1 -0
  31. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/mysql/mysql-introspector.d.mts +1 -0
  32. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/postgres/postgres-adapter.d.mts +1 -0
  33. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/postgres/postgres-dialect.d.mts +1 -0
  34. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/postgres/postgres-introspector.d.mts +1 -0
  35. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-adapter.d.mts +1 -0
  36. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-dialect.d.mts +1 -0
  37. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/dialect/sqlite/sqlite-introspector.d.mts +1 -0
  38. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/expression/expression-builder.d.mts +1 -0
  39. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/index.d.mts +1 -0
  40. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/kysely.d.mts +38 -0
  41. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/migration/file-migration-provider.d.mts +1 -0
  42. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/migration/migrator.d.mts +1 -0
  43. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/binary-operation-parser.d.mts +1 -0
  44. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/delete-from-parser.d.mts +1 -0
  45. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/expression-parser.d.mts +1 -0
  46. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/group-by-parser.d.mts +1 -0
  47. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/insert-values-parser.d.mts +1 -0
  48. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/join-parser.d.mts +1 -0
  49. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/merge-into-parser.d.mts +1 -0
  50. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/reference-parser.d.mts +1 -0
  51. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/returning-parser.d.mts +1 -0
  52. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/select-from-parser.d.mts +1 -0
  53. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/select-parser.d.mts +1 -0
  54. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/set-operation-parser.d.mts +1 -0
  55. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/tuple-parser.d.mts +1 -0
  56. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/unary-operation-parser.d.mts +1 -0
  57. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/update-parser.d.mts +1 -0
  58. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/update-set-parser.d.mts +1 -0
  59. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/value-parser.d.mts +1 -0
  60. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/parser/with-parser.d.mts +1 -0
  61. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/case-builder.d.mts +1 -0
  62. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/delete-query-builder.d.mts +1 -0
  63. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/having-interface.d.mts +1 -0
  64. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/insert-query-builder.d.mts +1 -0
  65. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/join-builder.d.mts +1 -0
  66. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/merge-query-builder.d.mts +1 -0
  67. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/on-conflict-builder.d.mts +1 -0
  68. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/output-interface.d.mts +1 -0
  69. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/returning-interface.d.mts +1 -0
  70. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/select-query-builder.d.mts +1 -0
  71. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/update-query-builder.d.mts +1 -0
  72. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-builder/where-interface.d.mts +1 -0
  73. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-creator.d.mts +1 -0
  74. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/default-query-executor.d.mts +1 -0
  75. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/noop-query-executor.d.mts +1 -0
  76. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/query-executor-base.d.mts +1 -0
  77. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/query-executor-provider.d.mts +1 -0
  78. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/query-executor/query-executor.d.mts +1 -0
  79. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/raw-builder/raw-builder.d.mts +1 -0
  80. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/raw-builder/sql.d.mts +1 -0
  81. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-add-foreign-key-constraint-builder.d.mts +1 -0
  82. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-add-index-builder.d.mts +1 -0
  83. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-builder.d.mts +1 -0
  84. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-drop-constraint-builder.d.mts +1 -0
  85. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/alter-table-executor.d.mts +1 -0
  86. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-index-builder.d.mts +1 -0
  87. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-schema-builder.d.mts +1 -0
  88. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-table-builder.d.mts +1 -0
  89. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-type-builder.d.mts +1 -0
  90. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/create-view-builder.d.mts +1 -0
  91. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-index-builder.d.mts +1 -0
  92. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-schema-builder.d.mts +1 -0
  93. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-table-builder.d.mts +1 -0
  94. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-type-builder.d.mts +1 -0
  95. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/drop-view-builder.d.mts +1 -0
  96. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/refresh-materialized-view-builder.d.mts +1 -0
  97. package/dist/node_modules/.pnpm/kysely@0.28.5/node_modules/kysely/dist/esm/schema/schema.d.mts +1 -0
  98. package/dist/src/lib/posthog.d.mts +7 -0
  99. package/dist/src/lib/posthog.mjs +7 -0
  100. package/dist/src/lib/posthog.mjs.map +1 -0
  101. package/dist/src/lib/sentry.d.mts +1 -0
  102. package/dist/src/lib/sentry.mjs +10 -0
  103. package/dist/src/lib/sentry.mjs.map +1 -0
  104. package/dist/src/modules/access/access.repository.d.mts +2352 -0
  105. package/dist/src/modules/access/access.repository.mjs +24 -0
  106. package/dist/src/modules/access/access.repository.mjs.map +1 -0
  107. package/dist/src/modules/access/access.service.d.mts +25 -0
  108. package/dist/src/modules/access/access.service.mjs +40 -0
  109. package/dist/src/modules/access/access.service.mjs.map +1 -0
  110. package/dist/src/modules/access/access.utils.d.mts +19 -0
  111. package/dist/src/modules/access/access.utils.mjs +21 -0
  112. package/dist/src/modules/access/access.utils.mjs.map +1 -0
  113. package/dist/src/modules/ai/ai.db.d.mts +401 -0
  114. package/dist/src/modules/ai/ai.db.mjs +38 -0
  115. package/dist/src/modules/ai/ai.db.mjs.map +1 -0
  116. package/dist/src/modules/ai/ai.prompt.d.mts +30 -0
  117. package/dist/src/modules/ai/ai.prompt.mjs +30 -0
  118. package/dist/src/modules/ai/ai.prompt.mjs.map +1 -0
  119. package/dist/src/modules/ai/ai.prompts.d.mts +10 -0
  120. package/dist/src/modules/ai/{ai.prompts.js → ai.prompts.mjs} +17 -15
  121. package/dist/src/modules/ai/ai.prompts.mjs.map +1 -0
  122. package/dist/src/modules/ai/ai.repository.d.mts +428 -0
  123. package/dist/src/modules/ai/ai.repository.mjs +23 -0
  124. package/dist/src/modules/ai/ai.repository.mjs.map +1 -0
  125. package/dist/src/modules/ai/ai.router.d.mts +1 -0
  126. package/dist/src/modules/ai/ai.service.d.mts +129 -0
  127. package/dist/src/modules/ai/ai.service.mjs +267 -0
  128. package/dist/src/modules/ai/ai.service.mjs.map +1 -0
  129. package/dist/src/modules/ai/ai.trpc.d.mts +31 -0
  130. package/dist/src/modules/ai/ai.trpc.mjs +17 -0
  131. package/dist/src/modules/ai/ai.trpc.mjs.map +1 -0
  132. package/dist/src/modules/ai/ideogram/ideogram.constants.d.mts +11 -0
  133. package/dist/src/modules/ai/ideogram/ideogram.constants.mjs +184 -0
  134. package/dist/src/modules/ai/ideogram/ideogram.constants.mjs.map +1 -0
  135. package/dist/src/modules/ai/ideogram/ideogram.dto.d.mts +234 -0
  136. package/dist/src/modules/ai/ideogram/ideogram.dto.mjs +45 -0
  137. package/dist/src/modules/ai/ideogram/ideogram.dto.mjs.map +1 -0
  138. package/dist/src/modules/ai/ideogram/ideogram.prompt.d.mts +7 -0
  139. package/dist/src/modules/ai/ideogram/{ideogram.prompt.js → ideogram.prompt.mjs} +861 -859
  140. package/dist/src/modules/ai/ideogram/ideogram.prompt.mjs.map +1 -0
  141. package/dist/src/modules/ai/ideogram/ideogram.repository.d.mts +11 -0
  142. package/dist/src/modules/ai/ideogram/ideogram.repository.mjs +32 -0
  143. package/dist/src/modules/ai/ideogram/ideogram.repository.mjs.map +1 -0
  144. package/dist/src/modules/ai/ideogram/ideogram.service.d.mts +14 -0
  145. package/dist/src/modules/ai/ideogram/ideogram.service.mjs +11 -0
  146. package/dist/src/modules/ai/ideogram/ideogram.service.mjs.map +1 -0
  147. package/dist/src/modules/auth/auth.db.d.mts +2341 -0
  148. package/dist/src/modules/auth/auth.db.mjs +169 -0
  149. package/dist/src/modules/auth/auth.db.mjs.map +1 -0
  150. package/dist/src/modules/auth/auth.dto.d.mts +70 -0
  151. package/dist/src/modules/auth/auth.dto.mjs +43 -0
  152. package/dist/src/modules/auth/auth.dto.mjs.map +1 -0
  153. package/dist/src/modules/auth/auth.lib.d.mts +4894 -0
  154. package/dist/src/modules/auth/auth.lib.mjs +232 -0
  155. package/dist/src/modules/auth/auth.lib.mjs.map +1 -0
  156. package/dist/src/modules/auth/auth.middleware.d.mts +619 -0
  157. package/dist/src/modules/auth/auth.middleware.mjs +38 -0
  158. package/dist/src/modules/auth/auth.middleware.mjs.map +1 -0
  159. package/dist/src/modules/auth/auth.repository.d.mts +2453 -0
  160. package/dist/src/modules/auth/auth.repository.mjs +401 -0
  161. package/dist/src/modules/auth/auth.repository.mjs.map +1 -0
  162. package/dist/src/modules/auth/auth.service.d.mts +105 -0
  163. package/dist/src/modules/auth/auth.service.mjs +227 -0
  164. package/dist/src/modules/auth/auth.service.mjs.map +1 -0
  165. package/dist/src/modules/auth/auth.trpc.d.mts +303 -0
  166. package/dist/src/modules/auth/auth.trpc.mjs +108 -0
  167. package/dist/src/modules/auth/auth.trpc.mjs.map +1 -0
  168. package/dist/src/modules/auth/auth.utils.d.mts +2356 -0
  169. package/dist/src/modules/auth/auth.utils.mjs +77 -0
  170. package/dist/src/modules/auth/auth.utils.mjs.map +1 -0
  171. package/dist/src/modules/base/base.abstract.d.mts +29 -0
  172. package/dist/src/modules/base/base.abstract.mjs +60 -0
  173. package/dist/src/modules/base/base.abstract.mjs.map +1 -0
  174. package/dist/src/modules/base/base.actor.d.mts +73 -0
  175. package/dist/src/modules/base/base.actor.mjs +78 -0
  176. package/dist/src/modules/base/base.actor.mjs.map +1 -0
  177. package/dist/src/modules/base/base.dto.d.mts +67 -0
  178. package/dist/src/modules/base/base.dto.mjs +79 -0
  179. package/dist/src/modules/base/base.dto.mjs.map +1 -0
  180. package/dist/src/modules/base/base.grants.d.mts +28 -0
  181. package/dist/src/modules/base/base.grants.mjs +103 -0
  182. package/dist/src/modules/base/base.grants.mjs.map +1 -0
  183. package/dist/src/modules/base/base.procedure.d.mts +111 -0
  184. package/dist/src/modules/base/base.procedure.mjs +252 -0
  185. package/dist/src/modules/base/base.procedure.mjs.map +1 -0
  186. package/dist/src/modules/base/base.repository.d.mts +123 -0
  187. package/dist/src/modules/base/base.repository.mjs +250 -0
  188. package/dist/src/modules/base/base.repository.mjs.map +1 -0
  189. package/dist/src/modules/base/base.service.d.mts +44 -0
  190. package/dist/src/modules/base/base.service.mjs +116 -0
  191. package/dist/src/modules/base/base.service.mjs.map +1 -0
  192. package/dist/src/modules/base/base.types.d.mts +5 -0
  193. package/dist/src/modules/billing/billing.db.d.mts +371 -0
  194. package/dist/src/modules/billing/billing.db.mjs +31 -0
  195. package/dist/src/modules/billing/billing.db.mjs.map +1 -0
  196. package/dist/src/modules/billing/billing.repository.d.mts +2787 -0
  197. package/dist/src/modules/billing/billing.repository.mjs +188 -0
  198. package/dist/src/modules/billing/billing.repository.mjs.map +1 -0
  199. package/dist/src/modules/billing/billing.router.d.mts +9 -0
  200. package/dist/src/modules/billing/billing.router.mjs +40 -0
  201. package/dist/src/modules/billing/billing.router.mjs.map +1 -0
  202. package/dist/src/modules/billing/billing.service.d.mts +53 -0
  203. package/dist/src/modules/billing/billing.service.mjs +125 -0
  204. package/dist/src/modules/billing/billing.service.mjs.map +1 -0
  205. package/dist/src/modules/billing/billing.trpc.d.mts +48 -0
  206. package/dist/src/modules/billing/billing.trpc.mjs +17 -0
  207. package/dist/src/modules/billing/billing.trpc.mjs.map +1 -0
  208. package/dist/src/modules/clay/clay.repository.d.mts +10 -0
  209. package/dist/src/modules/clay/clay.repository.mjs +27 -0
  210. package/dist/src/modules/clay/clay.repository.mjs.map +1 -0
  211. package/dist/src/modules/clay/clay.service.d.mts +32 -0
  212. package/dist/src/modules/clay/clay.service.mjs +23 -0
  213. package/dist/src/modules/clay/clay.service.mjs.map +1 -0
  214. package/dist/src/modules/connect/connect.db.d.mts +362 -0
  215. package/dist/src/modules/connect/connect.db.mjs +30 -0
  216. package/dist/src/modules/connect/connect.db.mjs.map +1 -0
  217. package/dist/src/modules/connect/connect.dto.d.mts +79 -0
  218. package/dist/src/modules/connect/connect.dto.mjs +38 -0
  219. package/dist/src/modules/connect/connect.dto.mjs.map +1 -0
  220. package/dist/src/modules/connect/connect.linkedin.d.mts +7 -0
  221. package/dist/src/modules/connect/connect.linkedin.mjs +47 -0
  222. package/dist/src/modules/connect/connect.linkedin.mjs.map +1 -0
  223. package/dist/src/modules/connect/connect.oauth.d.mts +32 -0
  224. package/dist/src/modules/connect/connect.oauth.mjs +145 -0
  225. package/dist/src/modules/connect/connect.oauth.mjs.map +1 -0
  226. package/dist/src/modules/connect/connect.repository.d.mts +419 -0
  227. package/dist/src/modules/connect/connect.repository.mjs +40 -0
  228. package/dist/src/modules/connect/connect.repository.mjs.map +1 -0
  229. package/dist/src/modules/connect/connect.router.d.mts +9 -0
  230. package/dist/src/modules/connect/connect.router.mjs +46 -0
  231. package/dist/src/modules/connect/connect.router.mjs.map +1 -0
  232. package/dist/src/modules/connect/connect.service.d.mts +103 -0
  233. package/dist/src/modules/connect/connect.service.mjs +88 -0
  234. package/dist/src/modules/connect/connect.service.mjs.map +1 -0
  235. package/dist/src/modules/connect/connect.trpc.d.mts +53 -0
  236. package/dist/src/modules/connect/connect.trpc.mjs +17 -0
  237. package/dist/src/modules/connect/connect.trpc.mjs.map +1 -0
  238. package/dist/src/modules/connect/connect.types.d.mts +29 -0
  239. package/dist/src/modules/crypto/crypto.db.d.mts +157 -0
  240. package/dist/src/modules/crypto/crypto.db.mjs +19 -0
  241. package/dist/src/modules/crypto/crypto.db.mjs.map +1 -0
  242. package/dist/src/modules/crypto/crypto.repository.d.mts +163 -0
  243. package/dist/src/modules/crypto/crypto.repository.mjs +9 -0
  244. package/dist/src/modules/crypto/crypto.repository.mjs.map +1 -0
  245. package/dist/src/modules/crypto/crypto.service.d.mts +15 -0
  246. package/dist/src/modules/crypto/crypto.service.mjs +40 -0
  247. package/dist/src/modules/crypto/crypto.service.mjs.map +1 -0
  248. package/dist/src/modules/email/email.service.d.mts +62 -0
  249. package/dist/src/modules/email/email.service.mjs +105 -0
  250. package/dist/src/modules/email/email.service.mjs.map +1 -0
  251. package/dist/src/modules/file/file.repository.d.mts +17 -0
  252. package/dist/src/modules/file/file.repository.mjs +72 -0
  253. package/dist/src/modules/file/file.repository.mjs.map +1 -0
  254. package/dist/src/modules/file/{file.router.d.ts → file.router.d.mts} +4 -0
  255. package/dist/src/modules/file/file.router.mjs +88 -0
  256. package/dist/src/modules/file/file.router.mjs.map +1 -0
  257. package/dist/src/modules/file/file.service.d.mts +30 -0
  258. package/dist/src/modules/file/file.service.mjs +117 -0
  259. package/dist/src/modules/file/file.service.mjs.map +1 -0
  260. package/dist/src/modules/recurrence/recurrence.db.d.mts +568 -0
  261. package/dist/src/modules/recurrence/recurrence.db.mjs +47 -0
  262. package/dist/src/modules/recurrence/recurrence.db.mjs.map +1 -0
  263. package/dist/src/modules/recurrence/recurrence.repository.d.mts +588 -0
  264. package/dist/src/modules/recurrence/recurrence.repository.mjs +28 -0
  265. package/dist/src/modules/recurrence/recurrence.repository.mjs.map +1 -0
  266. package/dist/src/modules/recurrence/recurrence.service.d.mts +87 -0
  267. package/dist/src/modules/recurrence/recurrence.service.mjs +64 -0
  268. package/dist/src/modules/recurrence/recurrence.service.mjs.map +1 -0
  269. package/dist/src/modules/recurrence/recurrence.trpc.d.mts +215 -0
  270. package/dist/src/modules/recurrence/recurrence.trpc.mjs +44 -0
  271. package/dist/src/modules/recurrence/recurrence.trpc.mjs.map +1 -0
  272. package/dist/src/modules/social/social.dto.d.mts +39 -0
  273. package/dist/src/modules/social/social.dto.mjs +22 -0
  274. package/dist/src/modules/social/social.dto.mjs.map +1 -0
  275. package/dist/src/modules/social/{social.linkedin.d.ts → social.linkedin.d.mts} +8 -3
  276. package/dist/src/modules/social/social.linkedin.mjs +346 -0
  277. package/dist/src/modules/social/social.linkedin.mjs.map +1 -0
  278. package/dist/src/modules/social/social.service.d.mts +34 -0
  279. package/dist/src/modules/social/social.service.mjs +55 -0
  280. package/dist/src/modules/social/social.service.mjs.map +1 -0
  281. package/dist/src/modules/social/social.types.d.mts +40 -0
  282. package/dist/src/modules/tag/tag.db.d.mts +352 -0
  283. package/dist/src/modules/tag/tag.db.mjs +35 -0
  284. package/dist/src/modules/tag/tag.db.mjs.map +1 -0
  285. package/dist/src/modules/tag/tag.dto.d.mts +1025 -0
  286. package/dist/src/modules/tag/tag.dto.mjs +11 -0
  287. package/dist/src/modules/tag/tag.dto.mjs.map +1 -0
  288. package/dist/src/modules/tag/tag.repository.d.mts +394 -0
  289. package/dist/src/modules/tag/tag.repository.mjs +114 -0
  290. package/dist/src/modules/tag/tag.repository.mjs.map +1 -0
  291. package/dist/src/modules/tag/tag.service.d.mts +120 -0
  292. package/dist/src/modules/tag/tag.service.mjs +47 -0
  293. package/dist/src/modules/tag/tag.service.mjs.map +1 -0
  294. package/dist/src/modules/tag/tag.trpc.d.mts +173 -0
  295. package/dist/src/modules/tag/tag.trpc.mjs +30 -0
  296. package/dist/src/modules/tag/tag.trpc.mjs.map +1 -0
  297. package/dist/src/modules/utils/{applyPagination.d.ts → applyPagination.d.mts} +5 -1
  298. package/dist/src/modules/utils/applyPagination.mjs +15 -0
  299. package/dist/src/modules/utils/applyPagination.mjs.map +1 -0
  300. package/dist/src/modules/utils/applySorting.d.mts +13 -0
  301. package/dist/src/modules/utils/applySorting.mjs +18 -0
  302. package/dist/src/modules/utils/applySorting.mjs.map +1 -0
  303. package/dist/src/modules/utils/getConditionsFromFilters.d.mts +9 -0
  304. package/dist/src/modules/utils/getConditionsFromFilters.mjs +150 -0
  305. package/dist/src/modules/utils/getConditionsFromFilters.mjs.map +1 -0
  306. package/dist/src/modules/video/video.service.d.mts +12 -0
  307. package/dist/src/modules/video/video.service.mjs +50 -0
  308. package/dist/src/modules/video/video.service.mjs.map +1 -0
  309. package/dist/src/modules/webhook/webhook.constants.d.mts +12 -0
  310. package/dist/src/modules/webhook/webhook.constants.mjs +12 -0
  311. package/dist/src/modules/webhook/webhook.constants.mjs.map +1 -0
  312. package/dist/src/modules/webhook/webhook.db.d.mts +142 -0
  313. package/dist/src/modules/webhook/webhook.db.mjs +17 -0
  314. package/dist/src/modules/webhook/webhook.db.mjs.map +1 -0
  315. package/dist/src/modules/webhook/webhook.dto.d.mts +402 -0
  316. package/dist/src/modules/webhook/webhook.dto.mjs +9 -0
  317. package/dist/src/modules/webhook/webhook.dto.mjs.map +1 -0
  318. package/dist/src/modules/webhook/webhook.repository.d.mts +154 -0
  319. package/dist/src/modules/webhook/webhook.repository.mjs +50 -0
  320. package/dist/src/modules/webhook/webhook.repository.mjs.map +1 -0
  321. package/dist/src/modules/webhook/webhook.router.d.mts +8 -0
  322. package/dist/src/modules/webhook/webhook.router.mjs +23 -0
  323. package/dist/src/modules/webhook/webhook.router.mjs.map +1 -0
  324. package/dist/src/modules/webhook/webhook.service.d.mts +14 -0
  325. package/dist/src/modules/webhook/webhook.service.mjs +59 -0
  326. package/dist/src/modules/webhook/webhook.service.mjs.map +1 -0
  327. package/dist/src/modules/workflow/workflow.db.d.mts +302 -0
  328. package/dist/src/modules/workflow/workflow.db.mjs +28 -0
  329. package/dist/src/modules/workflow/workflow.db.mjs.map +1 -0
  330. package/dist/src/modules/workflow/workflow.repository.d.mts +371 -0
  331. package/dist/src/modules/workflow/workflow.repository.mjs +93 -0
  332. package/dist/src/modules/workflow/workflow.repository.mjs.map +1 -0
  333. package/dist/src/modules/workflow/workflow.service.d.mts +68 -0
  334. package/dist/src/modules/workflow/workflow.service.mjs +40 -0
  335. package/dist/src/modules/workflow/workflow.service.mjs.map +1 -0
  336. package/dist/src/modules/workflow/workflow.trpc.d.mts +65 -0
  337. package/dist/src/modules/workflow/workflow.trpc.mjs +17 -0
  338. package/dist/src/modules/workflow/workflow.trpc.mjs.map +1 -0
  339. package/dist/src/modules/workflow/workflow.types.d.mts +25 -0
  340. package/dist/src/modules/workflow/workflow.utils.d.mts +36 -0
  341. package/dist/src/modules/workflow/workflow.utils.mjs +181 -0
  342. package/dist/src/modules/workflow/workflow.utils.mjs.map +1 -0
  343. package/dist/src/types.d.mts +344 -0
  344. package/dist/src/types.mjs +11 -0
  345. package/dist/src/types.mjs.map +1 -0
  346. package/dist/src/utils/errors.d.mts +62 -0
  347. package/dist/src/utils/errors.mjs +96 -0
  348. package/dist/src/utils/errors.mjs.map +1 -0
  349. package/dist/src/utils/logger.d.mts +7 -0
  350. package/dist/src/utils/logger.mjs +10 -0
  351. package/dist/src/utils/logger.mjs.map +1 -0
  352. package/dist/src/utils/posthog.d.mts +17 -0
  353. package/dist/src/utils/posthog.mjs +25 -0
  354. package/dist/src/utils/posthog.mjs.map +1 -0
  355. package/dist/src/utils/trpc.d.mts +54 -0
  356. package/dist/src/utils/trpc.mjs +146 -0
  357. package/dist/src/utils/trpc.mjs.map +1 -0
  358. package/dist/src/utils/types.d.mts +9 -0
  359. package/package.json +47 -46
  360. package/dist/src/lib/posthog.d.ts +0 -2
  361. package/dist/src/lib/posthog.js +0 -7
  362. package/dist/src/lib/sentry.d.ts +0 -1
  363. package/dist/src/lib/sentry.js +0 -9
  364. package/dist/src/modules/access/access.repository.d.ts +0 -2347
  365. package/dist/src/modules/access/access.repository.js +0 -32
  366. package/dist/src/modules/access/access.service.d.ts +0 -21
  367. package/dist/src/modules/access/access.service.js +0 -51
  368. package/dist/src/modules/access/access.test.d.ts +0 -1
  369. package/dist/src/modules/access/access.test.js +0 -182
  370. package/dist/src/modules/access/access.utils.d.ts +0 -16
  371. package/dist/src/modules/access/access.utils.js +0 -20
  372. package/dist/src/modules/ai/ai.db.d.ts +0 -395
  373. package/dist/src/modules/ai/ai.db.js +0 -39
  374. package/dist/src/modules/ai/ai.prompt.d.ts +0 -26
  375. package/dist/src/modules/ai/ai.prompt.js +0 -30
  376. package/dist/src/modules/ai/ai.prompts.d.ts +0 -5
  377. package/dist/src/modules/ai/ai.repository.d.ts +0 -423
  378. package/dist/src/modules/ai/ai.repository.js +0 -26
  379. package/dist/src/modules/ai/ai.router.js +0 -132
  380. package/dist/src/modules/ai/ai.service.d.ts +0 -125
  381. package/dist/src/modules/ai/ai.service.js +0 -297
  382. package/dist/src/modules/ai/ai.trpc.d.ts +0 -22
  383. package/dist/src/modules/ai/ai.trpc.js +0 -20
  384. package/dist/src/modules/ai/ideogram/ideogram.constants.d.ts +0 -7
  385. package/dist/src/modules/ai/ideogram/ideogram.constants.js +0 -167
  386. package/dist/src/modules/ai/ideogram/ideogram.dto.d.ts +0 -229
  387. package/dist/src/modules/ai/ideogram/ideogram.dto.js +0 -49
  388. package/dist/src/modules/ai/ideogram/ideogram.prompt.d.ts +0 -2
  389. package/dist/src/modules/ai/ideogram/ideogram.repository.d.ts +0 -6
  390. package/dist/src/modules/ai/ideogram/ideogram.repository.js +0 -46
  391. package/dist/src/modules/ai/ideogram/ideogram.service.d.ts +0 -9
  392. package/dist/src/modules/ai/ideogram/ideogram.service.js +0 -11
  393. package/dist/src/modules/auth/auth.db.d.ts +0 -2335
  394. package/dist/src/modules/auth/auth.db.js +0 -215
  395. package/dist/src/modules/auth/auth.dto.d.ts +0 -65
  396. package/dist/src/modules/auth/auth.dto.js +0 -38
  397. package/dist/src/modules/auth/auth.lib.d.ts +0 -4869
  398. package/dist/src/modules/auth/auth.lib.js +0 -284
  399. package/dist/src/modules/auth/auth.middleware.d.ts +0 -614
  400. package/dist/src/modules/auth/auth.middleware.js +0 -52
  401. package/dist/src/modules/auth/auth.repository.d.ts +0 -2421
  402. package/dist/src/modules/auth/auth.repository.js +0 -636
  403. package/dist/src/modules/auth/auth.service.d.ts +0 -78
  404. package/dist/src/modules/auth/auth.service.js +0 -259
  405. package/dist/src/modules/auth/auth.trpc.d.ts +0 -292
  406. package/dist/src/modules/auth/auth.trpc.js +0 -179
  407. package/dist/src/modules/auth/auth.utils.d.ts +0 -2351
  408. package/dist/src/modules/auth/auth.utils.js +0 -97
  409. package/dist/src/modules/base/base.abstract.d.ts +0 -19
  410. package/dist/src/modules/base/base.abstract.js +0 -62
  411. package/dist/src/modules/base/base.actor.d.ts +0 -68
  412. package/dist/src/modules/base/base.actor.js +0 -99
  413. package/dist/src/modules/base/base.actor.test.js +0 -58
  414. package/dist/src/modules/base/base.dto.d.ts +0 -69
  415. package/dist/src/modules/base/base.dto.js +0 -112
  416. package/dist/src/modules/base/base.grants.d.ts +0 -24
  417. package/dist/src/modules/base/base.grants.js +0 -135
  418. package/dist/src/modules/base/base.grants.test.js +0 -639
  419. package/dist/src/modules/base/base.procedure.d.ts +0 -109
  420. package/dist/src/modules/base/base.procedure.js +0 -301
  421. package/dist/src/modules/base/base.repository.d.ts +0 -97
  422. package/dist/src/modules/base/base.repository.js +0 -317
  423. package/dist/src/modules/base/base.service.d.ts +0 -40
  424. package/dist/src/modules/base/base.service.js +0 -123
  425. package/dist/src/modules/base/base.service.test.js +0 -443
  426. package/dist/src/modules/base/base.types.d.ts +0 -1
  427. package/dist/src/modules/base/base.types.js +0 -2
  428. package/dist/src/modules/billing/billing.db.d.ts +0 -365
  429. package/dist/src/modules/billing/billing.db.js +0 -29
  430. package/dist/src/modules/billing/billing.repository.d.ts +0 -2763
  431. package/dist/src/modules/billing/billing.repository.js +0 -235
  432. package/dist/src/modules/billing/billing.router.d.ts +0 -4
  433. package/dist/src/modules/billing/billing.router.js +0 -56
  434. package/dist/src/modules/billing/billing.service.d.ts +0 -38
  435. package/dist/src/modules/billing/billing.service.js +0 -147
  436. package/dist/src/modules/billing/billing.trpc.d.ts +0 -38
  437. package/dist/src/modules/billing/billing.trpc.js +0 -15
  438. package/dist/src/modules/clay/clay.repository.d.ts +0 -5
  439. package/dist/src/modules/clay/clay.repository.js +0 -26
  440. package/dist/src/modules/clay/clay.service.d.ts +0 -28
  441. package/dist/src/modules/clay/clay.service.js +0 -24
  442. package/dist/src/modules/connect/connect.db.d.ts +0 -356
  443. package/dist/src/modules/connect/connect.db.js +0 -30
  444. package/dist/src/modules/connect/connect.dto.d.ts +0 -74
  445. package/dist/src/modules/connect/connect.dto.js +0 -36
  446. package/dist/src/modules/connect/connect.linkedin.d.ts +0 -2
  447. package/dist/src/modules/connect/connect.linkedin.js +0 -53
  448. package/dist/src/modules/connect/connect.oauth.d.ts +0 -27
  449. package/dist/src/modules/connect/connect.oauth.js +0 -198
  450. package/dist/src/modules/connect/connect.repository.d.ts +0 -413
  451. package/dist/src/modules/connect/connect.repository.js +0 -54
  452. package/dist/src/modules/connect/connect.router.d.ts +0 -4
  453. package/dist/src/modules/connect/connect.router.js +0 -54
  454. package/dist/src/modules/connect/connect.service.d.ts +0 -96
  455. package/dist/src/modules/connect/connect.service.js +0 -116
  456. package/dist/src/modules/connect/connect.trpc.d.ts +0 -44
  457. package/dist/src/modules/connect/connect.trpc.js +0 -21
  458. package/dist/src/modules/connect/connect.types.d.ts +0 -25
  459. package/dist/src/modules/connect/connect.types.js +0 -2
  460. package/dist/src/modules/crypto/crypto.db.d.ts +0 -151
  461. package/dist/src/modules/crypto/crypto.db.js +0 -17
  462. package/dist/src/modules/crypto/crypto.repository.d.ts +0 -159
  463. package/dist/src/modules/crypto/crypto.repository.js +0 -10
  464. package/dist/src/modules/crypto/crypto.service.d.ts +0 -10
  465. package/dist/src/modules/crypto/crypto.service.js +0 -52
  466. package/dist/src/modules/email/email.service.d.ts +0 -56
  467. package/dist/src/modules/email/email.service.js +0 -106
  468. package/dist/src/modules/file/file.repository.d.ts +0 -12
  469. package/dist/src/modules/file/file.repository.js +0 -79
  470. package/dist/src/modules/file/file.router.js +0 -99
  471. package/dist/src/modules/file/file.service.d.ts +0 -24
  472. package/dist/src/modules/file/file.service.js +0 -150
  473. package/dist/src/modules/recurrence/recurrence.db.d.ts +0 -562
  474. package/dist/src/modules/recurrence/recurrence.db.js +0 -66
  475. package/dist/src/modules/recurrence/recurrence.repository.d.ts +0 -584
  476. package/dist/src/modules/recurrence/recurrence.repository.js +0 -39
  477. package/dist/src/modules/recurrence/recurrence.service.d.ts +0 -80
  478. package/dist/src/modules/recurrence/recurrence.service.js +0 -72
  479. package/dist/src/modules/recurrence/recurrence.trpc.d.ts +0 -206
  480. package/dist/src/modules/recurrence/recurrence.trpc.js +0 -65
  481. package/dist/src/modules/social/social.dto.d.ts +0 -34
  482. package/dist/src/modules/social/social.dto.js +0 -18
  483. package/dist/src/modules/social/social.linkedin.js +0 -427
  484. package/dist/src/modules/social/social.linkedin.test.js +0 -235
  485. package/dist/src/modules/social/social.service.d.ts +0 -27
  486. package/dist/src/modules/social/social.service.js +0 -76
  487. package/dist/src/modules/social/social.types.d.ts +0 -35
  488. package/dist/src/modules/social/social.types.js +0 -2
  489. package/dist/src/modules/tag/tag.db.d.ts +0 -346
  490. package/dist/src/modules/tag/tag.db.js +0 -42
  491. package/dist/src/modules/tag/tag.dto.d.ts +0 -1018
  492. package/dist/src/modules/tag/tag.dto.js +0 -9
  493. package/dist/src/modules/tag/tag.repository.d.ts +0 -383
  494. package/dist/src/modules/tag/tag.repository.js +0 -156
  495. package/dist/src/modules/tag/tag.service.d.ts +0 -113
  496. package/dist/src/modules/tag/tag.service.js +0 -42
  497. package/dist/src/modules/tag/tag.trpc.d.ts +0 -164
  498. package/dist/src/modules/tag/tag.trpc.js +0 -53
  499. package/dist/src/modules/utils/applyPagination.js +0 -16
  500. package/dist/src/modules/utils/applySorting.d.ts +0 -8
  501. package/dist/src/modules/utils/applySorting.js +0 -18
  502. package/dist/src/modules/utils/getConditionsFromFilters.d.ts +0 -4
  503. package/dist/src/modules/utils/getConditionsFromFilters.js +0 -200
  504. package/dist/src/modules/video/video.service.d.ts +0 -7
  505. package/dist/src/modules/video/video.service.js +0 -84
  506. package/dist/src/modules/webhook/webhook.constants.d.ts +0 -8
  507. package/dist/src/modules/webhook/webhook.constants.js +0 -10
  508. package/dist/src/modules/webhook/webhook.db.d.ts +0 -136
  509. package/dist/src/modules/webhook/webhook.db.js +0 -17
  510. package/dist/src/modules/webhook/webhook.dto.d.ts +0 -394
  511. package/dist/src/modules/webhook/webhook.dto.js +0 -7
  512. package/dist/src/modules/webhook/webhook.repository.d.ts +0 -148
  513. package/dist/src/modules/webhook/webhook.repository.js +0 -56
  514. package/dist/src/modules/webhook/webhook.router.d.ts +0 -3
  515. package/dist/src/modules/webhook/webhook.router.js +0 -30
  516. package/dist/src/modules/webhook/webhook.service.d.ts +0 -9
  517. package/dist/src/modules/webhook/webhook.service.js +0 -68
  518. package/dist/src/modules/workflow/workflow.db.d.ts +0 -296
  519. package/dist/src/modules/workflow/workflow.db.js +0 -30
  520. package/dist/src/modules/workflow/workflow.repository.d.ts +0 -343
  521. package/dist/src/modules/workflow/workflow.repository.js +0 -105
  522. package/dist/src/modules/workflow/workflow.service.d.ts +0 -61
  523. package/dist/src/modules/workflow/workflow.service.js +0 -37
  524. package/dist/src/modules/workflow/workflow.trpc.d.ts +0 -56
  525. package/dist/src/modules/workflow/workflow.trpc.js +0 -21
  526. package/dist/src/modules/workflow/workflow.types.d.ts +0 -20
  527. package/dist/src/modules/workflow/workflow.types.js +0 -2
  528. package/dist/src/modules/workflow/workflow.utils.d.ts +0 -21
  529. package/dist/src/modules/workflow/workflow.utils.js +0 -173
  530. package/dist/src/test/stubs/utils.d.ts +0 -2
  531. package/dist/src/test/stubs/utils.js +0 -5
  532. package/dist/src/trpc/context.d.ts +0 -41
  533. package/dist/src/trpc/context.js +0 -17
  534. package/dist/src/trpc/index.d.ts +0 -3
  535. package/dist/src/trpc/index.js +0 -6
  536. package/dist/src/trpc/procedures.d.ts +0 -233
  537. package/dist/src/trpc/procedures.js +0 -32
  538. package/dist/src/trpc/utils.d.ts +0 -4
  539. package/dist/src/trpc/utils.js +0 -20
  540. package/dist/src/types.d.ts +0 -358
  541. package/dist/src/types.js +0 -12
  542. package/dist/src/utils/errors.d.ts +0 -49
  543. package/dist/src/utils/errors.js +0 -104
  544. package/dist/src/utils/logger.d.ts +0 -1
  545. package/dist/src/utils/logger.js +0 -11
  546. package/dist/src/utils/posthog.d.ts +0 -13
  547. package/dist/src/utils/posthog.js +0 -31
  548. package/dist/src/utils/trpc.d.ts +0 -48
  549. package/dist/src/utils/trpc.js +0 -158
  550. package/dist/src/utils/trpc.test.js +0 -154
  551. package/dist/src/utils/types.d.ts +0 -4
  552. package/dist/src/utils/types.js +0 -2
  553. package/dist/tsconfig.tsbuildinfo +0 -1
  554. /package/dist/src/{utils/trpc.test.d.ts → modules/ai/ai.router.mjs} +0 -0
  555. /package/dist/src/modules/{social/social.linkedin.test.d.ts → base/base.types.mjs} +0 -0
  556. /package/dist/src/modules/{base/base.service.test.d.ts → connect/connect.types.mjs} +0 -0
  557. /package/dist/src/modules/{base/base.grants.test.d.ts → social/social.types.mjs} +0 -0
  558. /package/dist/src/modules/{base/base.actor.test.d.ts → workflow/workflow.types.mjs} +0 -0
  559. /package/dist/src/{modules/ai/ai.router.d.ts → utils/types.mjs} +0 -0
@@ -0,0 +1,77 @@
1
+ import { auth_db_exports } from "./auth.db.mjs";
2
+ import { desc, eq } from "drizzle-orm";
3
+ import { v4 } from "uuid";
4
+ //#region src/modules/auth/auth.utils.ts
5
+ ({ ...auth_db_exports });
6
+ async function getActiveOrganizationAndTeam(orm, schema, userId) {
7
+ let organizationId;
8
+ let teamId;
9
+ let organizationRole;
10
+ let teamRole;
11
+ const [lastSession] = await orm.select({
12
+ activeOrganizationId: schema.sessions.activeOrganizationId,
13
+ activeTeamId: schema.sessions.activeTeamId,
14
+ activeOrganizationRole: schema.sessions.activeOrganizationRole,
15
+ activeTeamRole: schema.sessions.activeTeamRole
16
+ }).from(schema.sessions).where(eq(schema.sessions.userId, userId)).orderBy(desc(schema.sessions.createdAt)).limit(1);
17
+ if (lastSession) {
18
+ organizationId = lastSession.activeOrganizationId ?? void 0;
19
+ teamId = lastSession.activeTeamId ?? void 0;
20
+ organizationRole = lastSession.activeOrganizationRole ?? void 0;
21
+ teamRole = lastSession.activeTeamRole ?? void 0;
22
+ }
23
+ if (!organizationId || !organizationRole) {
24
+ const [member] = await orm.select({
25
+ organizationId: schema.members.organizationId,
26
+ role: schema.members.role
27
+ }).from(schema.members).orderBy(desc(schema.members.createdAt)).where(eq(schema.members.userId, userId)).limit(1);
28
+ organizationId = member?.organizationId;
29
+ organizationRole = member?.role;
30
+ }
31
+ if (!teamId || !teamRole) {
32
+ const [teamMember] = await orm.select({
33
+ teamId: schema.teamMembers.teamId,
34
+ role: schema.teamMembers.role
35
+ }).from(schema.teamMembers).orderBy(desc(schema.teamMembers.createdAt)).where(eq(schema.teamMembers.userId, userId)).limit(1);
36
+ teamId = teamMember?.teamId;
37
+ teamRole = teamMember?.role;
38
+ }
39
+ return {
40
+ organizationId,
41
+ teamId,
42
+ organizationRole,
43
+ teamRole
44
+ };
45
+ }
46
+ async function createOrganizationAndTeam(orm, schema, user) {
47
+ const organizationId = v4();
48
+ await orm.transaction(async (tx) => {
49
+ const [organization] = await tx.insert(schema.organizations).values({
50
+ id: organizationId,
51
+ name: organizationId,
52
+ slug: organizationId
53
+ }).returning();
54
+ if (!organization) throw new Error("createOrganizationAndTeam: Failed to create organization");
55
+ const [member] = await tx.insert(schema.members).values({
56
+ userId: user.id,
57
+ organizationId: organization.id,
58
+ role: "owner"
59
+ }).returning();
60
+ if (!member) throw new Error("createOrganizationAndTeam: Failed to create member");
61
+ const [team] = await tx.insert(schema.teams).values({
62
+ name: organization.id,
63
+ organizationId: organization.id
64
+ }).returning();
65
+ if (!team) throw new Error("createOrganizationAndTeam: Failed to create team");
66
+ const [teamMember] = await tx.insert(schema.teamMembers).values({
67
+ userId: user.id,
68
+ teamId: team.id,
69
+ role: "owner"
70
+ }).returning();
71
+ if (!teamMember) throw new Error("createOrganizationAndTeam: Failed to create team member");
72
+ });
73
+ }
74
+ //#endregion
75
+ export { createOrganizationAndTeam, getActiveOrganizationAndTeam };
76
+
77
+ //# sourceMappingURL=auth.utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.utils.mjs","names":["auth","uuidv4"],"sources":["../../../../src/modules/auth/auth.utils.ts"],"sourcesContent":["import { desc, eq } from \"drizzle-orm\";\r\nimport type { LibSQLDatabase } from \"drizzle-orm/libsql\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport * as auth from \"./auth.db\";\r\n\r\nconst schema = { ...auth };\r\ntype Schema = typeof schema;\r\nexport type Orm = LibSQLDatabase<Schema>;\r\n\r\nexport async function getActiveOrganizationAndTeam<O extends Orm, S extends Schema>(\r\n orm: O,\r\n schema: S,\r\n userId: string\r\n): Promise<{\r\n organizationId: string | undefined;\r\n teamId: string | undefined;\r\n organizationRole: string | undefined;\r\n teamRole: string | undefined;\r\n}> {\r\n let organizationId: string | undefined;\r\n let teamId: string | undefined;\r\n let organizationRole: string | undefined;\r\n let teamRole: string | undefined;\r\n const [lastSession] = await orm\r\n .select({\r\n activeOrganizationId: schema.sessions.activeOrganizationId,\r\n activeTeamId: schema.sessions.activeTeamId,\r\n activeOrganizationRole: schema.sessions.activeOrganizationRole,\r\n activeTeamRole: schema.sessions.activeTeamRole,\r\n })\r\n .from(schema.sessions)\r\n .where(eq(schema.sessions.userId, userId))\r\n .orderBy(desc(schema.sessions.createdAt))\r\n .limit(1);\r\n if (lastSession) {\r\n organizationId = lastSession.activeOrganizationId ?? undefined;\r\n teamId = lastSession.activeTeamId ?? undefined;\r\n organizationRole = lastSession.activeOrganizationRole ?? undefined;\r\n teamRole = lastSession.activeTeamRole ?? undefined;\r\n }\r\n\r\n if (!organizationId || !organizationRole) {\r\n const [member] = await orm\r\n .select({ organizationId: schema.members.organizationId, role: schema.members.role })\r\n .from(schema.members)\r\n .orderBy(desc(schema.members.createdAt))\r\n .where(eq(schema.members.userId, userId))\r\n .limit(1);\r\n organizationId = member?.organizationId;\r\n organizationRole = member?.role;\r\n }\r\n\r\n if (!teamId || !teamRole) {\r\n const [teamMember] = await orm\r\n .select({ teamId: schema.teamMembers.teamId, role: schema.teamMembers.role })\r\n .from(schema.teamMembers)\r\n .orderBy(desc(schema.teamMembers.createdAt))\r\n .where(eq(schema.teamMembers.userId, userId))\r\n .limit(1);\r\n teamId = teamMember?.teamId;\r\n teamRole = teamMember?.role;\r\n }\r\n\r\n return { organizationId, teamId, organizationRole, teamRole };\r\n}\r\n\r\nexport async function createOrganizationAndTeam<O extends Orm, S extends Schema>(\r\n orm: O,\r\n schema: S,\r\n user: { id: string; email: string }\r\n): Promise<void> {\r\n const organizationId = uuidv4();\r\n await orm.transaction(async (tx) => {\r\n const [organization] = await tx\r\n .insert(schema.organizations)\r\n .values({\r\n id: organizationId,\r\n name: organizationId,\r\n slug: organizationId,\r\n })\r\n .returning();\r\n\r\n if (!organization) throw new Error(\"createOrganizationAndTeam: Failed to create organization\");\r\n\r\n const [member] = await tx\r\n .insert(schema.members)\r\n .values({\r\n userId: user.id,\r\n organizationId: organization.id,\r\n role: \"owner\",\r\n })\r\n .returning();\r\n\r\n if (!member) throw new Error(\"createOrganizationAndTeam: Failed to create member\");\r\n\r\n const [team] = await tx\r\n .insert(schema.teams)\r\n .values({\r\n name: organization.id,\r\n organizationId: organization.id,\r\n })\r\n .returning();\r\n\r\n if (!team) throw new Error(\"createOrganizationAndTeam: Failed to create team\");\r\n\r\n const [teamMember] = await tx\r\n .insert(schema.teamMembers)\r\n .values({\r\n userId: user.id,\r\n teamId: team.id,\r\n role: \"owner\",\r\n })\r\n .returning();\r\n\r\n if (!teamMember) throw new Error(\"createOrganizationAndTeam: Failed to create team member\");\r\n });\r\n}\r\n"],"mappings":";;;;CAKe,EAAE,GAAGA,iBAAM;AAI1B,eAAsB,6BACpB,KACA,QACA,QAMC;CACD,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM,CAAC,eAAe,MAAM,IACzB,OAAO;EACN,sBAAsB,OAAO,SAAS;EACtC,cAAc,OAAO,SAAS;EAC9B,wBAAwB,OAAO,SAAS;EACxC,gBAAgB,OAAO,SAAS;EACjC,CAAC,CACD,KAAK,OAAO,SAAS,CACrB,MAAM,GAAG,OAAO,SAAS,QAAQ,OAAO,CAAC,CACzC,QAAQ,KAAK,OAAO,SAAS,UAAU,CAAC,CACxC,MAAM,EAAE;AACX,KAAI,aAAa;AACf,mBAAiB,YAAY,wBAAwB,KAAA;AACrD,WAAS,YAAY,gBAAgB,KAAA;AACrC,qBAAmB,YAAY,0BAA0B,KAAA;AACzD,aAAW,YAAY,kBAAkB,KAAA;;AAG3C,KAAI,CAAC,kBAAkB,CAAC,kBAAkB;EACxC,MAAM,CAAC,UAAU,MAAM,IACpB,OAAO;GAAE,gBAAgB,OAAO,QAAQ;GAAgB,MAAM,OAAO,QAAQ;GAAM,CAAC,CACpF,KAAK,OAAO,QAAQ,CACpB,QAAQ,KAAK,OAAO,QAAQ,UAAU,CAAC,CACvC,MAAM,GAAG,OAAO,QAAQ,QAAQ,OAAO,CAAC,CACxC,MAAM,EAAE;AACX,mBAAiB,QAAQ;AACzB,qBAAmB,QAAQ;;AAG7B,KAAI,CAAC,UAAU,CAAC,UAAU;EACxB,MAAM,CAAC,cAAc,MAAM,IACxB,OAAO;GAAE,QAAQ,OAAO,YAAY;GAAQ,MAAM,OAAO,YAAY;GAAM,CAAC,CAC5E,KAAK,OAAO,YAAY,CACxB,QAAQ,KAAK,OAAO,YAAY,UAAU,CAAC,CAC3C,MAAM,GAAG,OAAO,YAAY,QAAQ,OAAO,CAAC,CAC5C,MAAM,EAAE;AACX,WAAS,YAAY;AACrB,aAAW,YAAY;;AAGzB,QAAO;EAAE;EAAgB;EAAQ;EAAkB;EAAU;;AAG/D,eAAsB,0BACpB,KACA,QACA,MACe;CACf,MAAM,iBAAiBC,IAAQ;AAC/B,OAAM,IAAI,YAAY,OAAO,OAAO;EAClC,MAAM,CAAC,gBAAgB,MAAM,GAC1B,OAAO,OAAO,cAAc,CAC5B,OAAO;GACN,IAAI;GACJ,MAAM;GACN,MAAM;GACP,CAAC,CACD,WAAW;AAEd,MAAI,CAAC,aAAc,OAAM,IAAI,MAAM,2DAA2D;EAE9F,MAAM,CAAC,UAAU,MAAM,GACpB,OAAO,OAAO,QAAQ,CACtB,OAAO;GACN,QAAQ,KAAK;GACb,gBAAgB,aAAa;GAC7B,MAAM;GACP,CAAC,CACD,WAAW;AAEd,MAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,qDAAqD;EAElF,MAAM,CAAC,QAAQ,MAAM,GAClB,OAAO,OAAO,MAAM,CACpB,OAAO;GACN,MAAM,aAAa;GACnB,gBAAgB,aAAa;GAC9B,CAAC,CACD,WAAW;AAEd,MAAI,CAAC,KAAM,OAAM,IAAI,MAAM,mDAAmD;EAE9E,MAAM,CAAC,cAAc,MAAM,GACxB,OAAO,OAAO,YAAY,CAC1B,OAAO;GACN,QAAQ,KAAK;GACb,QAAQ,KAAK;GACb,MAAM;GACP,CAAC,CACD,WAAW;AAEd,MAAI,CAAC,WAAY,OAAM,IAAI,MAAM,0DAA0D;GAC3F"}
@@ -0,0 +1,29 @@
1
+ import { ServerErrorLayer } from "./base.types.mjs";
2
+ import { ServerError } from "../../utils/errors.mjs";
3
+ import { ServerResult, ServerResultAsync } from "./base.dto.mjs";
4
+ import { logger } from "../../utils/logger.mjs";
5
+ import { TRPC_ERROR_CODE_KEY } from "@trpc/server";
6
+ import * as _$neverthrow from "neverthrow";
7
+
8
+ //#region src/modules/base/base.abstract.d.ts
9
+ declare abstract class Base {
10
+ layer: ServerErrorLayer;
11
+ logger: ReturnType<typeof logger.child>;
12
+ constructor(layer: ServerErrorLayer);
13
+ error(code: TRPC_ERROR_CODE_KEY, message?: string, {
14
+ cause,
15
+ clientMessage,
16
+ log
17
+ }?: {
18
+ cause?: unknown;
19
+ clientMessage?: string;
20
+ log?: boolean;
21
+ }): _$neverthrow.Err<never, ServerError>;
22
+ handleUnknownError(error: unknown): ServerError;
23
+ throwable<T>(fn: () => ServerResult<T>): ServerResult<T>;
24
+ throwableAsync<T>(fn: () => ServerResultAsync<T>): ServerResultAsync<T>;
25
+ throwablePromise<T>(fn: () => Promise<T>, errorHandler?: (error: unknown) => ServerError): ServerResultAsync<T>;
26
+ }
27
+ //#endregion
28
+ export { Base };
29
+ //# sourceMappingURL=base.abstract.d.mts.map
@@ -0,0 +1,60 @@
1
+ import { logger } from "../../utils/logger.mjs";
2
+ import { ServerError, reportError } from "../../utils/errors.mjs";
3
+ import { err, ok } from "neverthrow";
4
+ //#region src/modules/base/base.abstract.ts
5
+ var Base = class {
6
+ layer;
7
+ logger;
8
+ constructor(layer) {
9
+ this.layer = layer;
10
+ this.logger = logger.child({
11
+ layer: this.layer,
12
+ layerName: this.constructor.name
13
+ });
14
+ }
15
+ error(code, message, { cause, clientMessage, log = process.env.NODE_ENV === "development" } = {}) {
16
+ const serverError = new ServerError({
17
+ code,
18
+ layer: this.layer,
19
+ layerName: this.constructor.name,
20
+ message,
21
+ clientMessage,
22
+ cause,
23
+ captureBoundary: true
24
+ });
25
+ if (serverError.is5xxError()) reportError(serverError);
26
+ if (log) logger.error(serverError);
27
+ return err(serverError);
28
+ }
29
+ handleUnknownError(error) {
30
+ return ServerError.fromUnknown("INTERNAL_SERVER_ERROR", error, {
31
+ layer: this.layer,
32
+ layerName: this.constructor.name
33
+ });
34
+ }
35
+ throwable(fn) {
36
+ try {
37
+ return fn();
38
+ } catch (error) {
39
+ return err(this.handleUnknownError(error));
40
+ }
41
+ }
42
+ async throwableAsync(fn) {
43
+ try {
44
+ return await fn();
45
+ } catch (error) {
46
+ return err(this.handleUnknownError(error));
47
+ }
48
+ }
49
+ async throwablePromise(fn, errorHandler) {
50
+ try {
51
+ return ok(await fn());
52
+ } catch (error) {
53
+ return err(errorHandler ? errorHandler(error) : this.handleUnknownError(error));
54
+ }
55
+ }
56
+ };
57
+ //#endregion
58
+ export { Base };
59
+
60
+ //# sourceMappingURL=base.abstract.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.abstract.mjs","names":[],"sources":["../../../../src/modules/base/base.abstract.ts"],"sourcesContent":["import type { TRPC_ERROR_CODE_KEY } from \"@trpc/server\";\r\nimport { err, ok } from \"neverthrow\";\r\nimport { reportError, ServerError } from \"../../utils/errors\";\r\nimport { logger } from \"../../utils/logger\";\r\nimport type { ServerResult, ServerResultAsync } from \"./base.dto\";\r\nimport type { ServerErrorLayer } from \"./base.types\";\r\n\r\nexport abstract class Base {\r\n public layer: ServerErrorLayer;\r\n public logger: ReturnType<typeof logger.child>;\r\n\r\n constructor(layer: ServerErrorLayer) {\r\n this.layer = layer;\r\n this.logger = logger.child({ layer: this.layer, layerName: this.constructor.name });\r\n }\r\n\r\n error(\r\n code: TRPC_ERROR_CODE_KEY,\r\n message?: string,\r\n {\r\n cause,\r\n clientMessage,\r\n log = process.env.NODE_ENV === \"development\",\r\n }: { cause?: unknown; clientMessage?: string; log?: boolean } = {}\r\n ) {\r\n const serverError = new ServerError({\r\n code,\r\n layer: this.layer,\r\n layerName: this.constructor.name,\r\n message,\r\n clientMessage,\r\n cause,\r\n captureBoundary: true,\r\n });\r\n if (serverError.is5xxError()) reportError(serverError);\r\n if (log) logger.error(serverError);\r\n return err(serverError);\r\n }\r\n\r\n handleUnknownError(error: unknown) {\r\n return ServerError.fromUnknown(\"INTERNAL_SERVER_ERROR\", error, {\r\n layer: this.layer,\r\n layerName: this.constructor.name,\r\n });\r\n }\r\n\r\n throwable<T>(fn: () => ServerResult<T>): ServerResult<T> {\r\n try {\r\n return fn();\r\n } catch (error) {\r\n return err(this.handleUnknownError(error));\r\n }\r\n }\r\n\r\n async throwableAsync<T>(fn: () => ServerResultAsync<T>): ServerResultAsync<T> {\r\n try {\r\n return await fn();\r\n } catch (error) {\r\n return err(this.handleUnknownError(error));\r\n }\r\n }\r\n\r\n async throwablePromise<T>(\r\n fn: () => Promise<T>,\r\n errorHandler?: (error: unknown) => ServerError\r\n ): ServerResultAsync<T> {\r\n try {\r\n const result = await fn();\r\n return ok(result);\r\n } catch (error) {\r\n return err(errorHandler ? errorHandler(error) : this.handleUnknownError(error));\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;AAOA,IAAsB,OAAtB,MAA2B;CACzB;CACA;CAEA,YAAY,OAAyB;AACnC,OAAK,QAAQ;AACb,OAAK,SAAS,OAAO,MAAM;GAAE,OAAO,KAAK;GAAO,WAAW,KAAK,YAAY;GAAM,CAAC;;CAGrF,MACE,MACA,SACA,EACE,OACA,eACA,MAAM,QAAQ,IAAI,aAAa,kBAC+B,EAAE,EAClE;EACA,MAAM,cAAc,IAAI,YAAY;GAClC;GACA,OAAO,KAAK;GACZ,WAAW,KAAK,YAAY;GAC5B;GACA;GACA;GACA,iBAAiB;GAClB,CAAC;AACF,MAAI,YAAY,YAAY,CAAE,aAAY,YAAY;AACtD,MAAI,IAAK,QAAO,MAAM,YAAY;AAClC,SAAO,IAAI,YAAY;;CAGzB,mBAAmB,OAAgB;AACjC,SAAO,YAAY,YAAY,yBAAyB,OAAO;GAC7D,OAAO,KAAK;GACZ,WAAW,KAAK,YAAY;GAC7B,CAAC;;CAGJ,UAAa,IAA4C;AACvD,MAAI;AACF,UAAO,IAAI;WACJ,OAAO;AACd,UAAO,IAAI,KAAK,mBAAmB,MAAM,CAAC;;;CAI9C,MAAM,eAAkB,IAAsD;AAC5E,MAAI;AACF,UAAO,MAAM,IAAI;WACV,OAAO;AACd,UAAO,IAAI,KAAK,mBAAmB,MAAM,CAAC;;;CAI9C,MAAM,iBACJ,IACA,cACsB;AACtB,MAAI;AAEF,UAAO,GADQ,MAAM,IAAI,CACR;WACV,OAAO;AACd,UAAO,IAAI,eAAe,aAAa,MAAM,GAAG,KAAK,mBAAmB,MAAM,CAAC"}
@@ -0,0 +1,73 @@
1
+ import { Session, User } from "../auth/auth.lib.mjs";
2
+
3
+ //#region src/modules/base/base.actor.d.ts
4
+ type UserActor = {
5
+ userId: string;
6
+ userRole: string;
7
+ organizationId: string | null;
8
+ organizationRole: string | null;
9
+ teamId: string | null;
10
+ teamRole: string | null;
11
+ };
12
+ type OrganizationActor = {
13
+ userId: string;
14
+ userRole: string;
15
+ organizationId: string;
16
+ organizationRole: string;
17
+ teamId: string | null;
18
+ teamRole: string | null;
19
+ };
20
+ type TeamActor = {
21
+ userId: string;
22
+ userRole: string;
23
+ organizationId: string;
24
+ organizationRole: string;
25
+ teamId: string;
26
+ teamRole: string;
27
+ };
28
+ type AuthenticatedActor = UserActor | OrganizationActor | TeamActor;
29
+ /** @deprecated Prefer `AuthenticatedActor` — kept for grants and legacy call sites */
30
+ type ServiceActor = AuthenticatedActor;
31
+ type Actor = {
32
+ user: UserActor;
33
+ organization: OrganizationActor;
34
+ team: TeamActor;
35
+ authenticated: AuthenticatedActor;
36
+ };
37
+ type ActorScope = "user" | "organization" | "team";
38
+ type RequiredServiceActor<Scope extends ActorScope> = Actor[Scope];
39
+ /** Claims shape used by tests and factories */
40
+ type ServiceActorClaims = {
41
+ userId: string;
42
+ userRole: string;
43
+ organizationId?: string | null;
44
+ organizationRole?: string | null;
45
+ teamId?: string | null;
46
+ teamRole?: string | null;
47
+ };
48
+ /** @deprecated Prefer `OrganizationActor` */
49
+ type ServiceOrganizationActor = OrganizationActor;
50
+ /** @deprecated Prefer `TeamActor` */
51
+ type ServiceTeamActor = TeamActor;
52
+ declare function createActorFromContext(context: {
53
+ user: User;
54
+ session: Session;
55
+ }, scope: "team"): TeamActor;
56
+ declare function createActorFromContext(context: {
57
+ user: User;
58
+ session: Session;
59
+ }, scope: "organization"): OrganizationActor;
60
+ declare function createActorFromContext(context: {
61
+ user: User;
62
+ session: Session;
63
+ }, scope: "user"): UserActor;
64
+ declare function validateActor(actor: AuthenticatedActor, scope: ActorScope): boolean;
65
+ /**
66
+ * Builds a flat actor for tests / grants without session. Validates that team scope implies organization.
67
+ */
68
+ declare function createServiceActor(claims: ServiceActorClaims): AuthenticatedActor;
69
+ declare function getServiceActorScope(actor: AuthenticatedActor): ActorScope;
70
+ declare function hasServiceActorScope(actor: AuthenticatedActor, scope: ActorScope): boolean;
71
+ //#endregion
72
+ export { Actor, ActorScope, AuthenticatedActor, OrganizationActor, RequiredServiceActor, ServiceActor, ServiceActorClaims, ServiceOrganizationActor, ServiceTeamActor, TeamActor, UserActor, createActorFromContext, createServiceActor, getServiceActorScope, hasServiceActorScope, validateActor };
73
+ //# sourceMappingURL=base.actor.d.mts.map
@@ -0,0 +1,78 @@
1
+ import { ServerError } from "../../utils/errors.mjs";
2
+ //#region src/modules/base/base.actor.ts
3
+ function createActorFromContext(context, scope) {
4
+ if (!context.user.role) throw new ServerError({
5
+ code: "BAD_REQUEST",
6
+ message: "User role not found in context",
7
+ layer: "controller",
8
+ layerName: "ActorValidation"
9
+ });
10
+ if (scope === "organization") {
11
+ if (!context.session.activeOrganizationId || !context.session.activeOrganizationRole) throw new ServerError({
12
+ code: "FORBIDDEN",
13
+ message: "Active organization context required",
14
+ layer: "controller",
15
+ layerName: "ActorValidation"
16
+ });
17
+ }
18
+ if (scope === "team") {
19
+ if (!context.session.activeOrganizationId || !context.session.activeOrganizationRole) throw new ServerError({
20
+ code: "FORBIDDEN",
21
+ message: "Active organization context required for team scope",
22
+ layer: "controller",
23
+ layerName: "ActorValidation"
24
+ });
25
+ if (!context.session.activeTeamId || !context.session.activeTeamRole) throw new ServerError({
26
+ code: "FORBIDDEN",
27
+ message: "Active team context required",
28
+ layer: "controller",
29
+ layerName: "ActorValidation"
30
+ });
31
+ }
32
+ return {
33
+ userId: context.user.id,
34
+ userRole: context.user.role,
35
+ organizationId: context.session.activeOrganizationId,
36
+ organizationRole: context.session.activeOrganizationRole,
37
+ teamId: context.session.activeTeamId,
38
+ teamRole: context.session.activeTeamRole
39
+ };
40
+ }
41
+ function validateActor(actor, scope) {
42
+ if (!actor.userId || !actor.userRole) return false;
43
+ if (scope === "user") return true;
44
+ if (scope === "organization") return Boolean(actor.organizationId && actor.organizationRole);
45
+ return Boolean(actor.organizationId && actor.organizationRole && actor.teamId && actor.teamRole);
46
+ }
47
+ /**
48
+ * Builds a flat actor for tests / grants without session. Validates that team scope implies organization.
49
+ */
50
+ function createServiceActor(claims) {
51
+ const organizationId = claims.organizationId ?? null;
52
+ const organizationRole = claims.organizationRole ?? null;
53
+ const teamId = claims.teamId ?? null;
54
+ const teamRole = claims.teamRole ?? null;
55
+ if ((teamId || teamRole) && (!organizationId || !organizationRole)) throw new Error("organization access before team access");
56
+ return {
57
+ userId: claims.userId,
58
+ userRole: claims.userRole,
59
+ organizationId,
60
+ organizationRole,
61
+ teamId,
62
+ teamRole
63
+ };
64
+ }
65
+ function getServiceActorScope(actor) {
66
+ if (validateActor(actor, "team")) return "team";
67
+ if (validateActor(actor, "organization")) return "organization";
68
+ return "user";
69
+ }
70
+ function hasServiceActorScope(actor, scope) {
71
+ if (scope === "team") return validateActor(actor, "team");
72
+ if (scope === "organization") return validateActor(actor, "organization") || validateActor(actor, "team");
73
+ return validateActor(actor, "user");
74
+ }
75
+ //#endregion
76
+ export { createActorFromContext, createServiceActor, getServiceActorScope, hasServiceActorScope, validateActor };
77
+
78
+ //# sourceMappingURL=base.actor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.actor.mjs","names":[],"sources":["../../../../src/modules/base/base.actor.ts"],"sourcesContent":["import { ServerError } from \"../../utils/errors\";\r\nimport type { Session, User } from \"../auth/auth.lib\";\r\n\r\nexport type UserActor = {\r\n userId: string;\r\n userRole: string;\r\n organizationId: string | null;\r\n organizationRole: string | null;\r\n teamId: string | null;\r\n teamRole: string | null;\r\n};\r\n\r\nexport type OrganizationActor = {\r\n userId: string;\r\n userRole: string;\r\n organizationId: string;\r\n organizationRole: string;\r\n teamId: string | null;\r\n teamRole: string | null;\r\n};\r\n\r\nexport type TeamActor = {\r\n userId: string;\r\n userRole: string;\r\n organizationId: string;\r\n organizationRole: string;\r\n teamId: string;\r\n teamRole: string;\r\n};\r\n\r\nexport type AuthenticatedActor = UserActor | OrganizationActor | TeamActor;\r\n\r\n/** @deprecated Prefer `AuthenticatedActor` — kept for grants and legacy call sites */\r\nexport type ServiceActor = AuthenticatedActor;\r\n\r\nexport type Actor = {\r\n user: UserActor;\r\n organization: OrganizationActor;\r\n team: TeamActor;\r\n authenticated: AuthenticatedActor;\r\n};\r\n\r\nexport type ActorScope = \"user\" | \"organization\" | \"team\";\r\n\r\nexport type RequiredServiceActor<Scope extends ActorScope> = Actor[Scope];\r\n\r\n/** Claims shape used by tests and factories */\r\nexport type ServiceActorClaims = {\r\n userId: string;\r\n userRole: string;\r\n organizationId?: string | null;\r\n organizationRole?: string | null;\r\n teamId?: string | null;\r\n teamRole?: string | null;\r\n};\r\n\r\n/** @deprecated Prefer `OrganizationActor` */\r\nexport type ServiceOrganizationActor = OrganizationActor;\r\n/** @deprecated Prefer `TeamActor` */\r\nexport type ServiceTeamActor = TeamActor;\r\n\r\nexport function createActorFromContext(\r\n context: { user: User; session: Session },\r\n scope: \"team\"\r\n): TeamActor;\r\nexport function createActorFromContext(\r\n context: { user: User; session: Session },\r\n scope: \"organization\"\r\n): OrganizationActor;\r\nexport function createActorFromContext(\r\n context: { user: User; session: Session },\r\n scope: \"user\"\r\n): UserActor;\r\nexport function createActorFromContext(\r\n context: { user: User; session: Session },\r\n scope: ActorScope\r\n): AuthenticatedActor {\r\n if (!context.user.role) {\r\n throw new ServerError({\r\n code: \"BAD_REQUEST\",\r\n message: \"User role not found in context\",\r\n layer: \"controller\",\r\n layerName: \"ActorValidation\",\r\n });\r\n }\r\n\r\n if (scope === \"organization\") {\r\n if (!context.session.activeOrganizationId || !context.session.activeOrganizationRole) {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n message: \"Active organization context required\",\r\n layer: \"controller\",\r\n layerName: \"ActorValidation\",\r\n });\r\n }\r\n }\r\n\r\n if (scope === \"team\") {\r\n if (!context.session.activeOrganizationId || !context.session.activeOrganizationRole) {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n message: \"Active organization context required for team scope\",\r\n layer: \"controller\",\r\n layerName: \"ActorValidation\",\r\n });\r\n }\r\n if (!context.session.activeTeamId || !context.session.activeTeamRole) {\r\n throw new ServerError({\r\n code: \"FORBIDDEN\",\r\n message: \"Active team context required\",\r\n layer: \"controller\",\r\n layerName: \"ActorValidation\",\r\n });\r\n }\r\n }\r\n\r\n return {\r\n userId: context.user.id,\r\n userRole: context.user.role,\r\n organizationId: context.session.activeOrganizationId,\r\n organizationRole: context.session.activeOrganizationRole,\r\n teamId: context.session.activeTeamId,\r\n teamRole: context.session.activeTeamRole,\r\n };\r\n}\r\n\r\nexport function validateActor(actor: AuthenticatedActor, scope: ActorScope): boolean {\r\n if (!actor.userId || !actor.userRole) return false;\r\n if (scope === \"user\") return true;\r\n if (scope === \"organization\") {\r\n return Boolean(actor.organizationId && actor.organizationRole);\r\n }\r\n return Boolean(\r\n actor.organizationId && actor.organizationRole && actor.teamId && actor.teamRole\r\n );\r\n}\r\n\r\n/**\r\n * Builds a flat actor for tests / grants without session. Validates that team scope implies organization.\r\n */\r\nexport function createServiceActor(claims: ServiceActorClaims): AuthenticatedActor {\r\n const organizationId = claims.organizationId ?? null;\r\n const organizationRole = claims.organizationRole ?? null;\r\n const teamId = claims.teamId ?? null;\r\n const teamRole = claims.teamRole ?? null;\r\n\r\n if ((teamId || teamRole) && (!organizationId || !organizationRole)) {\r\n throw new Error(\"organization access before team access\");\r\n }\r\n\r\n return {\r\n userId: claims.userId,\r\n userRole: claims.userRole,\r\n organizationId,\r\n organizationRole,\r\n teamId,\r\n teamRole,\r\n };\r\n}\r\n\r\nexport function getServiceActorScope(actor: AuthenticatedActor): ActorScope {\r\n if (validateActor(actor, \"team\")) return \"team\";\r\n if (validateActor(actor, \"organization\")) return \"organization\";\r\n return \"user\";\r\n}\r\n\r\nexport function hasServiceActorScope(actor: AuthenticatedActor, scope: ActorScope): boolean {\r\n if (scope === \"team\") return validateActor(actor, \"team\");\r\n if (scope === \"organization\") {\r\n return validateActor(actor, \"organization\") || validateActor(actor, \"team\");\r\n }\r\n return validateActor(actor, \"user\");\r\n}\r\n"],"mappings":";;AAyEA,SAAgB,uBACd,SACA,OACoB;AACpB,KAAI,CAAC,QAAQ,KAAK,KAChB,OAAM,IAAI,YAAY;EACpB,MAAM;EACN,SAAS;EACT,OAAO;EACP,WAAW;EACZ,CAAC;AAGJ,KAAI,UAAU;MACR,CAAC,QAAQ,QAAQ,wBAAwB,CAAC,QAAQ,QAAQ,uBAC5D,OAAM,IAAI,YAAY;GACpB,MAAM;GACN,SAAS;GACT,OAAO;GACP,WAAW;GACZ,CAAC;;AAIN,KAAI,UAAU,QAAQ;AACpB,MAAI,CAAC,QAAQ,QAAQ,wBAAwB,CAAC,QAAQ,QAAQ,uBAC5D,OAAM,IAAI,YAAY;GACpB,MAAM;GACN,SAAS;GACT,OAAO;GACP,WAAW;GACZ,CAAC;AAEJ,MAAI,CAAC,QAAQ,QAAQ,gBAAgB,CAAC,QAAQ,QAAQ,eACpD,OAAM,IAAI,YAAY;GACpB,MAAM;GACN,SAAS;GACT,OAAO;GACP,WAAW;GACZ,CAAC;;AAIN,QAAO;EACL,QAAQ,QAAQ,KAAK;EACrB,UAAU,QAAQ,KAAK;EACvB,gBAAgB,QAAQ,QAAQ;EAChC,kBAAkB,QAAQ,QAAQ;EAClC,QAAQ,QAAQ,QAAQ;EACxB,UAAU,QAAQ,QAAQ;EAC3B;;AAGH,SAAgB,cAAc,OAA2B,OAA4B;AACnF,KAAI,CAAC,MAAM,UAAU,CAAC,MAAM,SAAU,QAAO;AAC7C,KAAI,UAAU,OAAQ,QAAO;AAC7B,KAAI,UAAU,eACZ,QAAO,QAAQ,MAAM,kBAAkB,MAAM,iBAAiB;AAEhE,QAAO,QACL,MAAM,kBAAkB,MAAM,oBAAoB,MAAM,UAAU,MAAM,SACzE;;;;;AAMH,SAAgB,mBAAmB,QAAgD;CACjF,MAAM,iBAAiB,OAAO,kBAAkB;CAChD,MAAM,mBAAmB,OAAO,oBAAoB;CACpD,MAAM,SAAS,OAAO,UAAU;CAChC,MAAM,WAAW,OAAO,YAAY;AAEpC,MAAK,UAAU,cAAc,CAAC,kBAAkB,CAAC,kBAC/C,OAAM,IAAI,MAAM,yCAAyC;AAG3D,QAAO;EACL,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB;EACA;EACA;EACA;EACD;;AAGH,SAAgB,qBAAqB,OAAuC;AAC1E,KAAI,cAAc,OAAO,OAAO,CAAE,QAAO;AACzC,KAAI,cAAc,OAAO,eAAe,CAAE,QAAO;AACjD,QAAO;;AAGT,SAAgB,qBAAqB,OAA2B,OAA4B;AAC1F,KAAI,UAAU,OAAQ,QAAO,cAAc,OAAO,OAAO;AACzD,KAAI,UAAU,eACZ,QAAO,cAAc,OAAO,eAAe,IAAI,cAAc,OAAO,OAAO;AAE7E,QAAO,cAAc,OAAO,OAAO"}
@@ -0,0 +1,67 @@
1
+ import { ServerError } from "../../utils/errors.mjs";
2
+ import { z } from "zod";
3
+ import * as _$drizzle_orm0 from "drizzle-orm";
4
+ import { InferSelectModel, Table, getTableColumns } from "drizzle-orm";
5
+ import { Result } from "neverthrow";
6
+ import * as _$drizzle_zod0 from "drizzle-zod";
7
+
8
+ //#region src/modules/base/base.dto.d.ts
9
+ type Simplify<T> = { [K in keyof T]: T[K] } & {};
10
+ type StringKeys<T> = Extract<keyof T, string>;
11
+ type ServerResult<T> = Result<T, ServerError>;
12
+ type ServerResultAsync<T> = Promise<ServerResult<T>>;
13
+ declare const createTableSelectSchema: <T extends Table>(table: T) => _$drizzle_zod0.BuildSchema<"select", T["_"]["columns"], undefined, undefined>;
14
+ type ExtractColumnTypes<T extends Table, C extends Record<string, unknown>> = Simplify<Pick<InferSelectModel<T>, Extract<keyof C, keyof InferSelectModel<T>>>>;
15
+ declare function toZodFilter<const T extends readonly string[]>(array: T): Record<T[number], true>;
16
+ declare function pickSchema<Shape extends z.ZodRawShape, const Keys extends readonly StringKeys<Shape>[]>(schema: z.ZodObject<Shape>, keys: Keys): z.ZodObject<Pick<Shape, Keys[number]>>;
17
+ declare function pickTableSchema<T extends Table, K extends keyof InferSelectModel<T>>(table: T, columns: readonly K[]): z.ZodObject<Pick<(T["_"]["columns"] extends infer T_2 extends Record<string, any> ? { [K_2 in keyof T_2 as _$drizzle_zod0.ColumnIsGeneratedAlwaysAs<T["_"]["columns"][K_2]> extends true ? K_2 : K_2]: T_2[K_2] extends infer TColumn extends _$drizzle_orm0.Column<_$drizzle_orm0.ColumnBaseConfig<_$drizzle_orm0.ColumnDataType, string>, object, object> ? (TRefinements extends object ? TRefinements[K_2] extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | ((schema: any) => any) ? true : false : false) extends true ? _$drizzle_orm0.Assume<TRefinements[K_2 & keyof TRefinements] extends infer T_3 ? T_3 extends TRefinements[K_2 & keyof TRefinements] ? T_3 extends ((schema: any) => z.ZodType) ? (TColumn["_"]["notNull"] extends true ? ReturnType<T_3> : z.ZodNullable<ReturnType<T_3>>) extends infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> ? TType extends "update" ? z.ZodOptional<TSchema> : TSchema : z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> : T_3 : never : never, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> : _$drizzle_zod0.HandleColumn<TType, TColumn, TCoerce> : T_2[K_2] extends infer TObject extends Table<_$drizzle_orm0.TableConfig<_$drizzle_orm0.Column<any, object, object>>> | _$drizzle_orm0.SelectedFieldsFlat<_$drizzle_orm0.Column<_$drizzle_orm0.ColumnBaseConfig<_$drizzle_orm0.ColumnDataType, string>, object, object>> | _$drizzle_orm0.View<string, boolean, _$drizzle_orm0.ColumnsSelection> ? _$drizzle_zod0.BuildSchema<TType, _$drizzle_zod0.GetSelection<TObject>, TRefinements extends object ? TRefinements[K_2 & keyof TRefinements] : undefined, TCoerce> : z.ZodAny } : never) extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1] } : never, K>, z.core.$strip>;
18
+ declare function omitSchema<Shape extends z.ZodRawShape, const Keys extends readonly StringKeys<Shape>[]>(schema: z.ZodObject<Shape>, keys: Keys): z.ZodObject<Omit<Shape, Keys[number]>>;
19
+ declare function omitTableSchema<T extends Table, K extends keyof InferSelectModel<T>>(table: T, columns: readonly K[]): z.ZodObject<Omit<(T["_"]["columns"] extends infer T_2 extends Record<string, any> ? { [K_2 in keyof T_2 as _$drizzle_zod0.ColumnIsGeneratedAlwaysAs<T["_"]["columns"][K_2]> extends true ? K_2 : K_2]: T_2[K_2] extends infer TColumn extends _$drizzle_orm0.Column<_$drizzle_orm0.ColumnBaseConfig<_$drizzle_orm0.ColumnDataType, string>, object, object> ? (TRefinements extends object ? TRefinements[K_2] extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | ((schema: any) => any) ? true : false : false) extends true ? _$drizzle_orm0.Assume<TRefinements[K_2 & keyof TRefinements] extends infer T_3 ? T_3 extends TRefinements[K_2 & keyof TRefinements] ? T_3 extends ((schema: any) => z.ZodType) ? (TColumn["_"]["notNull"] extends true ? ReturnType<T_3> : z.ZodNullable<ReturnType<T_3>>) extends infer TSchema extends z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> ? TType extends "update" ? z.ZodOptional<TSchema> : TSchema : z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> : T_3 : never : never, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>> : _$drizzle_zod0.HandleColumn<TType, TColumn, TCoerce> : T_2[K_2] extends infer TObject extends Table<_$drizzle_orm0.TableConfig<_$drizzle_orm0.Column<any, object, object>>> | _$drizzle_orm0.SelectedFieldsFlat<_$drizzle_orm0.Column<_$drizzle_orm0.ColumnBaseConfig<_$drizzle_orm0.ColumnDataType, string>, object, object>> | _$drizzle_orm0.View<string, boolean, _$drizzle_orm0.ColumnsSelection> ? _$drizzle_zod0.BuildSchema<TType, _$drizzle_zod0.GetSelection<TObject>, TRefinements extends object ? TRefinements[K_2 & keyof TRefinements] : undefined, TCoerce> : z.ZodAny } : never) extends infer T_1 ? { [K_1 in keyof T_1]: T_1[K_1] } : never, K>, z.core.$strip>;
20
+ declare function pickColumns<T extends Table, Shape extends z.ZodRawShape>(table: T, schema: z.ZodObject<Shape>): Pick<ReturnType<typeof getTableColumns<T>>, Extract<keyof Shape, string>>;
21
+ declare function pickTableColumns<T extends Table, K extends keyof InferSelectModel<T>>(table: T, columns: readonly K[]): Pick<ReturnType<typeof getTableColumns<T>>, K>;
22
+ declare function omitTableColumns<T extends Table, K extends keyof InferSelectModel<T>>(table: T, columns: readonly K[]): Omit<ReturnType<typeof getTableColumns<T>>, K>;
23
+ declare function createSelectDTO<T extends Table>(table: T): {
24
+ columns: ReturnType<typeof getTableColumns<T>>;
25
+ schema: ReturnType<typeof createTableSelectSchema<T>>;
26
+ };
27
+ declare function createSelectDTO<T extends Table, K extends Extract<keyof InferSelectModel<T>, string>>(table: T, partial: {
28
+ omit: readonly K[];
29
+ }): {
30
+ columns: ReturnType<typeof omitTableColumns<T, K>>;
31
+ schema: ReturnType<typeof omitTableSchema<T, K>>;
32
+ };
33
+ declare function createSelectDTO<T extends Table, K extends Extract<keyof InferSelectModel<T>, string>>(table: T, partial: {
34
+ pick: readonly K[];
35
+ }): {
36
+ columns: ReturnType<typeof pickTableColumns<T, K>>;
37
+ schema: ReturnType<typeof pickTableSchema<T, K>>;
38
+ };
39
+ declare function createSelectUtils<T extends Record<string, {
40
+ columns: unknown;
41
+ schema: z.ZodTypeAny;
42
+ }>, S extends z.ZodTypeAny>(dtos: T, output: S, transformer: (rows: Array<{ [K in keyof T]: z.infer<T[K]["schema"]> }>) => z.infer<S>): {
43
+ select: { [K in keyof T]: T[K]["columns"] };
44
+ output: S;
45
+ transformer: (rows: Array<{ [K in keyof T]: z.infer<T[K]["schema"]> }>) => z.infer<S>;
46
+ };
47
+ declare const uuidOutput: z.ZodObject<{
48
+ id: z.ZodUUID;
49
+ }, z.core.$strip>;
50
+ declare const uuidManyOutput: z.ZodObject<{
51
+ ids: z.ZodArray<z.ZodUUID>;
52
+ }, z.core.$strip>;
53
+ declare const scheduleOutput: z.ZodObject<{
54
+ jobId: z.ZodString;
55
+ }, z.core.$strip>;
56
+ declare const scheduleManyOutput: z.ZodObject<{
57
+ jobIds: z.ZodArray<z.ZodString>;
58
+ }, z.core.$strip>;
59
+ declare const deleteOutput: z.ZodObject<{
60
+ id: z.ZodUUID;
61
+ }, z.core.$strip>;
62
+ declare const deleteManyOutput: z.ZodObject<{
63
+ ids: z.ZodArray<z.ZodUUID>;
64
+ }, z.core.$strip>;
65
+ //#endregion
66
+ export { ExtractColumnTypes, ServerResult, ServerResultAsync, createSelectDTO, createSelectUtils, createTableSelectSchema, deleteManyOutput, deleteOutput, getTableColumns, omitSchema, omitTableColumns, omitTableSchema, pickColumns, pickSchema, pickTableColumns, pickTableSchema, scheduleManyOutput, scheduleOutput, toZodFilter, uuidManyOutput, uuidOutput };
67
+ //# sourceMappingURL=base.dto.d.mts.map
@@ -0,0 +1,79 @@
1
+ import { z } from "zod";
2
+ import { getTableColumns } from "drizzle-orm";
3
+ import { createSelectSchema } from "drizzle-zod";
4
+ //#region src/modules/base/base.dto.ts
5
+ const createTableSelectSchema = (table) => createSelectSchema(table);
6
+ function toZodFilter(array) {
7
+ return array.reduce((acc, column) => {
8
+ acc[column] = true;
9
+ return acc;
10
+ }, {});
11
+ }
12
+ function pickSchema(schema, keys) {
13
+ const mask = {};
14
+ for (const k of keys) mask[k] = true;
15
+ return schema.pick(mask);
16
+ }
17
+ function pickTableSchema(table, columns) {
18
+ return pickSchema(createSelectSchema(table), columns);
19
+ }
20
+ function omitSchema(schema, keys) {
21
+ const mask = {};
22
+ for (const k of keys) mask[k] = true;
23
+ return schema.omit(mask);
24
+ }
25
+ function omitTableSchema(table, columns) {
26
+ return omitSchema(createSelectSchema(table), columns);
27
+ }
28
+ function pickColumns(table, schema) {
29
+ const allColumns = getTableColumns(table);
30
+ const schemaKeys = Object.keys(schema.shape);
31
+ const result = {};
32
+ for (const key of schemaKeys) if (key in allColumns) result[key] = allColumns[key];
33
+ return result;
34
+ }
35
+ function pickTableColumns(table, columns) {
36
+ const allColumns = getTableColumns(table);
37
+ const result = {};
38
+ for (const key of columns) if (key in allColumns) result[key] = allColumns[key];
39
+ return result;
40
+ }
41
+ function omitTableColumns(table, columns) {
42
+ const allColumns = getTableColumns(table);
43
+ const columnsToOmit = new Set(columns);
44
+ const filteredEntries = Object.entries(allColumns).filter(([key]) => !columnsToOmit.has(key));
45
+ return Object.fromEntries(filteredEntries);
46
+ }
47
+ function createSelectDTO(table, partial) {
48
+ if (partial) {
49
+ if ("omit" in partial && partial.omit) return {
50
+ columns: omitTableColumns(table, partial.omit),
51
+ schema: omitTableSchema(table, partial.omit)
52
+ };
53
+ if ("pick" in partial && partial.pick) return {
54
+ columns: pickTableColumns(table, partial.pick),
55
+ schema: pickTableSchema(table, partial.pick)
56
+ };
57
+ }
58
+ return {
59
+ columns: getTableColumns(table),
60
+ schema: createTableSelectSchema(table)
61
+ };
62
+ }
63
+ function createSelectUtils(dtos, output, transformer) {
64
+ return {
65
+ select: Object.fromEntries(Object.entries(dtos).map(([key, dto]) => [key, dto.columns])),
66
+ output,
67
+ transformer
68
+ };
69
+ }
70
+ const uuidOutput = z.object({ id: z.uuid() });
71
+ const uuidManyOutput = z.object({ ids: z.array(z.uuid()) });
72
+ const scheduleOutput = z.object({ jobId: z.string() });
73
+ const scheduleManyOutput = z.object({ jobIds: z.array(z.string()) });
74
+ const deleteOutput = uuidOutput;
75
+ const deleteManyOutput = uuidManyOutput;
76
+ //#endregion
77
+ export { createSelectDTO, createSelectUtils, createTableSelectSchema, deleteManyOutput, deleteOutput, getTableColumns, omitSchema, omitTableColumns, omitTableSchema, pickColumns, pickSchema, pickTableColumns, pickTableSchema, scheduleManyOutput, scheduleOutput, toZodFilter, uuidManyOutput, uuidOutput };
78
+
79
+ //# sourceMappingURL=base.dto.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.dto.mjs","names":[],"sources":["../../../../src/modules/base/base.dto.ts"],"sourcesContent":["import { getTableColumns, type InferSelectModel, type Table } from \"drizzle-orm\";\r\nimport { createSelectSchema } from \"drizzle-zod\";\r\nimport type { Result } from \"neverthrow\";\r\nimport { z } from \"zod\";\r\nimport type { ServerError } from \"../../utils/errors\";\r\n\r\ntype Simplify<T> = { [K in keyof T]: T[K] } & {};\r\ntype StringKeys<T> = Extract<keyof T, string>;\r\n\r\nexport type ServerResult<T> = Result<T, ServerError>;\r\nexport type ServerResultAsync<T> = Promise<ServerResult<T>>;\r\n\r\n// Wrapper to force the drizzle-zod overload to the Table version\r\nexport const createTableSelectSchema = <T extends Table>(table: T) => createSelectSchema(table);\r\n\r\nexport type ExtractColumnTypes<T extends Table, C extends Record<string, unknown>> = Simplify<\r\n Pick<InferSelectModel<T>, Extract<keyof C, keyof InferSelectModel<T>>>\r\n>;\r\n\r\nexport function toZodFilter<const T extends readonly string[]>(array: T): Record<T[number], true> {\r\n return array.reduce(\r\n (acc, column) => {\r\n acc[column as T[number]] = true;\r\n return acc;\r\n },\r\n {} as Record<T[number], true>\r\n );\r\n}\r\n\r\nexport function pickSchema<\r\n Shape extends z.ZodRawShape,\r\n const Keys extends readonly StringKeys<Shape>[],\r\n>(schema: z.ZodObject<Shape>, keys: Keys): z.ZodObject<Pick<Shape, Keys[number]>> {\r\n const mask: Record<keyof Shape, true> = {} as Record<keyof Shape, true>;\r\n for (const k of keys) {\r\n mask[k] = true;\r\n }\r\n return schema.pick(mask) as z.ZodObject<Pick<Shape, Keys[number]>>;\r\n}\r\n\r\nexport function pickTableSchema<T extends Table, K extends keyof InferSelectModel<T>>(\r\n table: T,\r\n columns: readonly K[]\r\n) {\r\n return pickSchema(createSelectSchema(table), columns);\r\n}\r\n\r\nexport function omitSchema<\r\n Shape extends z.ZodRawShape,\r\n const Keys extends readonly StringKeys<Shape>[],\r\n>(schema: z.ZodObject<Shape>, keys: Keys): z.ZodObject<Omit<Shape, Keys[number]>> {\r\n const mask: Record<keyof Shape, true> = {} as Record<keyof Shape, true>;\r\n for (const k of keys) {\r\n mask[k] = true;\r\n }\r\n return schema.omit(mask) as z.ZodObject<Omit<Shape, Keys[number]>>;\r\n}\r\n\r\nexport function omitTableSchema<T extends Table, K extends keyof InferSelectModel<T>>(\r\n table: T,\r\n columns: readonly K[]\r\n) {\r\n return omitSchema(createSelectSchema(table), columns);\r\n}\r\n\r\nexport { getTableColumns };\r\n\r\nexport function pickColumns<T extends Table, Shape extends z.ZodRawShape>(\r\n table: T,\r\n schema: z.ZodObject<Shape>\r\n): Pick<ReturnType<typeof getTableColumns<T>>, Extract<keyof Shape, string>> {\r\n const allColumns = getTableColumns(table);\r\n const schemaKeys = Object.keys(schema.shape) as Array<Extract<keyof Shape, string>>;\r\n\r\n const result = {} as Pick<typeof allColumns, Extract<keyof Shape, string>>;\r\n for (const key of schemaKeys) {\r\n if (key in allColumns) {\r\n (result as any)[key] = allColumns[key as keyof typeof allColumns];\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function pickTableColumns<T extends Table, K extends keyof InferSelectModel<T>>(\r\n table: T,\r\n columns: readonly K[]\r\n): Pick<ReturnType<typeof getTableColumns<T>>, K> {\r\n const allColumns = getTableColumns(table);\r\n const result = {} as Pick<typeof allColumns, K>;\r\n for (const key of columns) {\r\n if (key in allColumns) {\r\n result[key] = allColumns[key];\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function omitTableColumns<T extends Table, K extends keyof InferSelectModel<T>>(\r\n table: T,\r\n columns: readonly K[]\r\n): Omit<ReturnType<typeof getTableColumns<T>>, K> {\r\n const allColumns = getTableColumns(table);\r\n const columnsToOmit = new Set(columns as readonly string[]);\r\n const filteredEntries = Object.entries(allColumns).filter(([key]) => !columnsToOmit.has(key));\r\n return Object.fromEntries(filteredEntries) as Omit<typeof allColumns, K>;\r\n}\r\n\r\n// Overloads to narrow return type based on provided partial\r\nexport function createSelectDTO<T extends Table>(\r\n table: T\r\n): {\r\n columns: ReturnType<typeof getTableColumns<T>>;\r\n schema: ReturnType<typeof createTableSelectSchema<T>>;\r\n};\r\nexport function createSelectDTO<\r\n T extends Table,\r\n K extends Extract<keyof InferSelectModel<T>, string>,\r\n>(\r\n table: T,\r\n partial: { omit: readonly K[] }\r\n): {\r\n columns: ReturnType<typeof omitTableColumns<T, K>>;\r\n schema: ReturnType<typeof omitTableSchema<T, K>>;\r\n};\r\nexport function createSelectDTO<\r\n T extends Table,\r\n K extends Extract<keyof InferSelectModel<T>, string>,\r\n>(\r\n table: T,\r\n partial: { pick: readonly K[] }\r\n): {\r\n columns: ReturnType<typeof pickTableColumns<T, K>>;\r\n schema: ReturnType<typeof pickTableSchema<T, K>>;\r\n};\r\n\r\n// Implementation\r\nexport function createSelectDTO<T extends Table>(\r\n table: T,\r\n partial?:\r\n | { omit: readonly (keyof InferSelectModel<T>)[] }\r\n | { pick: readonly (keyof InferSelectModel<T>)[] }\r\n): { columns: unknown; schema: unknown } {\r\n if (partial) {\r\n if (\"omit\" in partial && partial.omit) {\r\n return {\r\n columns: omitTableColumns(table, partial.omit),\r\n schema: omitTableSchema(table, partial.omit),\r\n };\r\n }\r\n if (\"pick\" in partial && partial.pick) {\r\n return {\r\n columns: pickTableColumns(table, partial.pick),\r\n schema: pickTableSchema(table, partial.pick),\r\n };\r\n }\r\n }\r\n return { columns: getTableColumns(table), schema: createTableSelectSchema(table) };\r\n}\r\n\r\nexport function createSelectUtils<\r\n T extends Record<\r\n string,\r\n {\r\n columns: unknown;\r\n schema: z.ZodTypeAny;\r\n }\r\n >,\r\n S extends z.ZodTypeAny,\r\n>(\r\n dtos: T,\r\n output: S,\r\n transformer: (rows: Array<{ [K in keyof T]: z.infer<T[K][\"schema\"]> }>) => z.infer<S>\r\n): {\r\n select: { [K in keyof T]: T[K][\"columns\"] };\r\n output: S;\r\n transformer: (rows: Array<{ [K in keyof T]: z.infer<T[K][\"schema\"]> }>) => z.infer<S>;\r\n} {\r\n return {\r\n select: Object.fromEntries(Object.entries(dtos).map(([key, dto]) => [key, dto.columns])) as {\r\n [K in keyof T]: T[K][\"columns\"];\r\n },\r\n output,\r\n transformer,\r\n };\r\n}\r\n\r\nexport const uuidOutput = z.object({\r\n id: z.uuid(),\r\n});\r\n\r\nexport const uuidManyOutput = z.object({\r\n ids: z.array(z.uuid()),\r\n});\r\n\r\nexport const scheduleOutput = z.object({\r\n jobId: z.string(),\r\n});\r\n\r\nexport const scheduleManyOutput = z.object({\r\n jobIds: z.array(z.string()),\r\n});\r\n\r\nexport const deleteOutput = uuidOutput;\r\n\r\nexport const deleteManyOutput = uuidManyOutput;\r\n"],"mappings":";;;;AAaA,MAAa,2BAA4C,UAAa,mBAAmB,MAAM;AAM/F,SAAgB,YAA+C,OAAmC;AAChG,QAAO,MAAM,QACV,KAAK,WAAW;AACf,MAAI,UAAuB;AAC3B,SAAO;IAET,EAAE,CACH;;AAGH,SAAgB,WAGd,QAA4B,MAAoD;CAChF,MAAM,OAAkC,EAAE;AAC1C,MAAK,MAAM,KAAK,KACd,MAAK,KAAK;AAEZ,QAAO,OAAO,KAAK,KAAK;;AAG1B,SAAgB,gBACd,OACA,SACA;AACA,QAAO,WAAW,mBAAmB,MAAM,EAAE,QAAQ;;AAGvD,SAAgB,WAGd,QAA4B,MAAoD;CAChF,MAAM,OAAkC,EAAE;AAC1C,MAAK,MAAM,KAAK,KACd,MAAK,KAAK;AAEZ,QAAO,OAAO,KAAK,KAAK;;AAG1B,SAAgB,gBACd,OACA,SACA;AACA,QAAO,WAAW,mBAAmB,MAAM,EAAE,QAAQ;;AAKvD,SAAgB,YACd,OACA,QAC2E;CAC3E,MAAM,aAAa,gBAAgB,MAAM;CACzC,MAAM,aAAa,OAAO,KAAK,OAAO,MAAM;CAE5C,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,OAAO,WAChB,KAAI,OAAO,WACR,QAAe,OAAO,WAAW;AAItC,QAAO;;AAGT,SAAgB,iBACd,OACA,SACgD;CAChD,MAAM,aAAa,gBAAgB,MAAM;CACzC,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,OAAO,QAChB,KAAI,OAAO,WACT,QAAO,OAAO,WAAW;AAG7B,QAAO;;AAGT,SAAgB,iBACd,OACA,SACgD;CAChD,MAAM,aAAa,gBAAgB,MAAM;CACzC,MAAM,gBAAgB,IAAI,IAAI,QAA6B;CAC3D,MAAM,kBAAkB,OAAO,QAAQ,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,IAAI,IAAI,CAAC;AAC7F,QAAO,OAAO,YAAY,gBAAgB;;AAgC5C,SAAgB,gBACd,OACA,SAGuC;AACvC,KAAI,SAAS;AACX,MAAI,UAAU,WAAW,QAAQ,KAC/B,QAAO;GACL,SAAS,iBAAiB,OAAO,QAAQ,KAAK;GAC9C,QAAQ,gBAAgB,OAAO,QAAQ,KAAK;GAC7C;AAEH,MAAI,UAAU,WAAW,QAAQ,KAC/B,QAAO;GACL,SAAS,iBAAiB,OAAO,QAAQ,KAAK;GAC9C,QAAQ,gBAAgB,OAAO,QAAQ,KAAK;GAC7C;;AAGL,QAAO;EAAE,SAAS,gBAAgB,MAAM;EAAE,QAAQ,wBAAwB,MAAM;EAAE;;AAGpF,SAAgB,kBAUd,MACA,QACA,aAKA;AACA,QAAO;EACL,QAAQ,OAAO,YAAY,OAAO,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;EAGxF;EACA;EACD;;AAGH,MAAa,aAAa,EAAE,OAAO,EACjC,IAAI,EAAE,MAAM,EACb,CAAC;AAEF,MAAa,iBAAiB,EAAE,OAAO,EACrC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EACvB,CAAC;AAEF,MAAa,iBAAiB,EAAE,OAAO,EACrC,OAAO,EAAE,QAAQ,EAClB,CAAC;AAEF,MAAa,qBAAqB,EAAE,OAAO,EACzC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC5B,CAAC;AAEF,MAAa,eAAe;AAE5B,MAAa,mBAAmB"}
@@ -0,0 +1,28 @@
1
+ import { ServerResultAsync } from "./base.dto.mjs";
2
+ import { ServiceActor } from "./base.actor.mjs";
3
+
4
+ //#region src/modules/base/base.grants.d.ts
5
+ type Level = "user" | "team" | "organization";
6
+ type Access = "all" | "own";
7
+ type Entity = Partial<{
8
+ userId: string | null;
9
+ teamId: string | null;
10
+ organizationId: string | null;
11
+ }>;
12
+ type Grant = {
13
+ level: Level;
14
+ role: string;
15
+ action: string;
16
+ resource: string;
17
+ access: Access;
18
+ attributes?: string[];
19
+ };
20
+ type NestedGrants = Record<string, Partial<Record<Level, Record<string, Record<string, Access>>>>>;
21
+ type ResourceGrant = Omit<Grant, "resource">;
22
+ type ResourceActionGrant = Omit<ResourceGrant, "action">;
23
+ declare function flattenNestedGrants(nestedGrants: NestedGrants): Grant[];
24
+ declare function checkPermissionSync<T extends Entity>(actor: ServiceActor, grants: ResourceActionGrant[], entities?: T | T[]): boolean;
25
+ declare function checkPermissionAsync<T extends Entity>(actor: ServiceActor, grants: ResourceActionGrant[], getEntities: () => ServerResultAsync<T | T[] | undefined>): ServerResultAsync<boolean>;
26
+ //#endregion
27
+ export { Entity, Grant, NestedGrants, ResourceActionGrant, ResourceGrant, checkPermissionAsync, checkPermissionSync, flattenNestedGrants };
28
+ //# sourceMappingURL=base.grants.d.mts.map