@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
@@ -1,639 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const neverthrow_1 = require("neverthrow");
4
- const errors_1 = require("../../utils/errors");
5
- const base_actor_1 = require("./base.actor");
6
- const base_grants_1 = require("./base.grants");
7
- function createMockContext(userOverrides = {}, sessionOverrides = {}) {
8
- const organizationId = sessionOverrides.activeOrganizationId ?? (sessionOverrides.activeTeamId ? "org-123" : null);
9
- const organizationRole = sessionOverrides.activeOrganizationRole ?? (sessionOverrides.activeTeamRole ? "member" : null);
10
- const actor = (0, base_actor_1.createServiceActor)({
11
- userId: userOverrides.id ?? "user-123",
12
- userRole: userOverrides.role ?? "member",
13
- organizationId,
14
- organizationRole,
15
- teamId: sessionOverrides.activeTeamId ?? null,
16
- teamRole: sessionOverrides.activeTeamRole ?? null,
17
- });
18
- if (!actor) {
19
- throw new Error("Expected actor");
20
- }
21
- return actor;
22
- }
23
- function createMockEntity(overrides = {}) {
24
- return {
25
- userId: "user-123",
26
- teamId: undefined,
27
- organizationId: undefined,
28
- ...overrides,
29
- };
30
- }
31
- // ============================================
32
- // flattenNestedGrants
33
- // ============================================
34
- describe("flattenNestedGrants", () => {
35
- it("converts permission object to grants array", () => {
36
- const permission = {
37
- posts: {
38
- user: {
39
- member: { read: "own", create: "own" },
40
- },
41
- team: {
42
- admin: { write: "all" },
43
- },
44
- },
45
- };
46
- const result = (0, base_grants_1.flattenNestedGrants)(permission);
47
- expect(result).toHaveLength(3);
48
- expect(result).toContainEqual({
49
- resource: "posts",
50
- level: "user",
51
- role: "member",
52
- action: "read",
53
- access: "own",
54
- });
55
- expect(result).toContainEqual({
56
- resource: "posts",
57
- level: "user",
58
- role: "member",
59
- action: "create",
60
- access: "own",
61
- });
62
- expect(result).toContainEqual({
63
- resource: "posts",
64
- level: "team",
65
- role: "admin",
66
- action: "write",
67
- access: "all",
68
- });
69
- });
70
- it("handles multiple resources", () => {
71
- const permission = {
72
- posts: {
73
- user: { member: { read: "own" } },
74
- },
75
- comments: {
76
- team: { admin: { delete: "all" } },
77
- },
78
- };
79
- const result = (0, base_grants_1.flattenNestedGrants)(permission);
80
- expect(result).toHaveLength(2);
81
- expect(result).toContainEqual({
82
- resource: "posts",
83
- level: "user",
84
- role: "member",
85
- action: "read",
86
- access: "own",
87
- });
88
- expect(result).toContainEqual({
89
- resource: "comments",
90
- level: "team",
91
- role: "admin",
92
- action: "delete",
93
- access: "all",
94
- });
95
- });
96
- it("handles permission with only some levels defined", () => {
97
- const permission = {
98
- posts: {
99
- organization: {
100
- owner: { delete: "all" },
101
- },
102
- },
103
- };
104
- const result = (0, base_grants_1.flattenNestedGrants)(permission);
105
- expect(result).toHaveLength(1);
106
- expect(result[0]).toEqual({
107
- resource: "posts",
108
- level: "organization",
109
- role: "owner",
110
- action: "delete",
111
- access: "all",
112
- });
113
- });
114
- it("returns empty array for empty permission", () => {
115
- const result = (0, base_grants_1.flattenNestedGrants)({});
116
- expect(result).toEqual([]);
117
- });
118
- it("handles multiple roles per level", () => {
119
- const permission = {
120
- posts: {
121
- user: {
122
- member: { read: "own" },
123
- admin: { read: "all", write: "all" },
124
- },
125
- },
126
- };
127
- const result = (0, base_grants_1.flattenNestedGrants)(permission);
128
- expect(result).toHaveLength(3);
129
- expect(result).toContainEqual({
130
- resource: "posts",
131
- level: "user",
132
- role: "member",
133
- action: "read",
134
- access: "own",
135
- });
136
- expect(result).toContainEqual({
137
- resource: "posts",
138
- level: "user",
139
- role: "admin",
140
- action: "read",
141
- access: "all",
142
- });
143
- expect(result).toContainEqual({
144
- resource: "posts",
145
- level: "user",
146
- role: "admin",
147
- action: "write",
148
- access: "all",
149
- });
150
- });
151
- });
152
- // ============================================
153
- // checkPermissionSync
154
- // ============================================
155
- describe("checkPermissionSync", () => {
156
- describe("edge cases", () => {
157
- it("returns false for empty grants array", () => {
158
- const ctx = createMockContext();
159
- const result = (0, base_grants_1.checkPermissionSync)(ctx, []);
160
- expect(result).toBe(false);
161
- });
162
- it("returns false for undefined grants", () => {
163
- const ctx = createMockContext();
164
- const result = (0, base_grants_1.checkPermissionSync)(ctx, undefined);
165
- expect(result).toBe(false);
166
- });
167
- });
168
- describe("user-level permissions", () => {
169
- it("grants access with 'all' access regardless of entity", () => {
170
- const ctx = createMockContext({ role: "member" });
171
- const grants = [{ level: "user", role: "member", access: "all" }];
172
- // No entity provided
173
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
174
- // Entity with different userId - still allowed because "all" access
175
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, { userId: "other-user" })).toBe(true);
176
- });
177
- it("grants access with 'own' access when userId matches", () => {
178
- const ctx = createMockContext({ id: "user-123", role: "member" });
179
- const grants = [{ level: "user", role: "member", access: "own" }];
180
- const entity = createMockEntity({ userId: "user-123" });
181
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
182
- });
183
- it("denies access with 'own' access when userId does not match", () => {
184
- const ctx = createMockContext({ id: "user-123", role: "member" });
185
- const grants = [{ level: "user", role: "member", access: "own" }];
186
- const entity = createMockEntity({ userId: "other-user" });
187
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(false);
188
- });
189
- it("denies access with 'own' access when no entity provided", () => {
190
- const ctx = createMockContext({ id: "user-123", role: "member" });
191
- const grants = [{ level: "user", role: "member", access: "own" }];
192
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(false);
193
- });
194
- it("denies access when user role does not match grant role", () => {
195
- const ctx = createMockContext({ role: "viewer" });
196
- const grants = [{ level: "user", role: "admin", access: "all" }];
197
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(false);
198
- });
199
- });
200
- describe("team-level permissions", () => {
201
- it("grants access with 'all' access when team role matches", () => {
202
- const ctx = createMockContext({}, { activeTeamId: "team-1", activeTeamRole: "admin" });
203
- const grants = [{ level: "team", role: "admin", access: "all" }];
204
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
205
- });
206
- it("grants access with 'own' access when teamId matches", () => {
207
- const ctx = createMockContext({}, { activeTeamId: "team-1", activeTeamRole: "member" });
208
- const grants = [{ level: "team", role: "member", access: "own" }];
209
- const entity = createMockEntity({ teamId: "team-1" });
210
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
211
- });
212
- it("denies access with 'own' access when teamId does not match", () => {
213
- const ctx = createMockContext({}, { activeTeamId: "team-1", activeTeamRole: "member" });
214
- const grants = [{ level: "team", role: "member", access: "own" }];
215
- const entity = createMockEntity({ teamId: "team-2" });
216
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(false);
217
- });
218
- it("denies access when team role does not match", () => {
219
- const ctx = createMockContext({}, { activeTeamId: "team-1", activeTeamRole: "viewer" });
220
- const grants = [{ level: "team", role: "admin", access: "all" }];
221
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(false);
222
- });
223
- it("denies access when no active team", () => {
224
- const ctx = createMockContext({}, { activeTeamId: null, activeTeamRole: null });
225
- const grants = [{ level: "team", role: "admin", access: "all" }];
226
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(false);
227
- });
228
- });
229
- describe("organization-level permissions", () => {
230
- it("grants access with 'all' access when organization role matches", () => {
231
- const ctx = createMockContext({}, { activeOrganizationId: "org-1", activeOrganizationRole: "owner" });
232
- const grants = [
233
- { level: "organization", role: "owner", access: "all" },
234
- ];
235
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
236
- });
237
- it("grants access with 'own' access when organizationId matches", () => {
238
- const ctx = createMockContext({}, { activeOrganizationId: "org-1", activeOrganizationRole: "member" });
239
- const grants = [
240
- { level: "organization", role: "member", access: "own" },
241
- ];
242
- const entity = createMockEntity({ organizationId: "org-1" });
243
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
244
- });
245
- it("denies access with 'own' access when organizationId does not match", () => {
246
- const ctx = createMockContext({}, { activeOrganizationId: "org-1", activeOrganizationRole: "member" });
247
- const grants = [
248
- { level: "organization", role: "member", access: "own" },
249
- ];
250
- const entity = createMockEntity({ organizationId: "org-2" });
251
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(false);
252
- });
253
- });
254
- describe("multiple grants", () => {
255
- it("checks 'all' access before 'own' access (optimization)", () => {
256
- const ctx = createMockContext({ id: "user-123", role: "admin" });
257
- const grants = [
258
- { level: "user", role: "member", access: "own" }, // Would need entity check
259
- { level: "user", role: "admin", access: "all" }, // Should match first in pass 1
260
- ];
261
- // No entity provided, but should still pass because "all" is checked first
262
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
263
- });
264
- it("falls back to 'own' access if no 'all' access matches", () => {
265
- const ctx = createMockContext({ id: "user-123", role: "member" });
266
- const grants = [
267
- { level: "user", role: "admin", access: "all" }, // Role doesn't match
268
- { level: "user", role: "member", access: "own" }, // Should match in pass 2
269
- ];
270
- const entity = createMockEntity({ userId: "user-123" });
271
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
272
- });
273
- it("grants access if any level matches with 'all'", () => {
274
- const ctx = createMockContext({ role: "viewer" }, { activeTeamId: "team-1", activeTeamRole: "admin" });
275
- const grants = [
276
- { level: "user", role: "member", access: "all" }, // User role doesn't match
277
- { level: "team", role: "admin", access: "all" }, // Team role matches
278
- ];
279
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
280
- });
281
- });
282
- describe("multiple entities", () => {
283
- it("requires all entities to match for 'own' access", () => {
284
- const ctx = createMockContext({ id: "user-123", role: "member" });
285
- const grants = [{ level: "user", role: "member", access: "own" }];
286
- const matchingEntities = [{ userId: "user-123" }, { userId: "user-123" }];
287
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, matchingEntities)).toBe(true);
288
- const mixedEntities = [{ userId: "user-123" }, { userId: "other-user" }];
289
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, mixedEntities)).toBe(false);
290
- });
291
- it("denies access if any entity does not match", () => {
292
- const ctx = createMockContext({}, { activeTeamId: "team-1", activeTeamRole: "member" });
293
- const grants = [{ level: "team", role: "member", access: "own" }];
294
- const entities = [{ teamId: "team-1" }, { teamId: "team-1" }, { teamId: "team-2" }];
295
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entities)).toBe(false);
296
- });
297
- });
298
- describe("level priority (user -> team -> organization)", () => {
299
- it("checks user level before team level", () => {
300
- const ctx = createMockContext({ id: "user-123", role: "member" }, { activeTeamId: "team-1", activeTeamRole: "member" });
301
- // Both levels have matching grants, but user should be checked first
302
- const grants = [
303
- { level: "team", role: "member", access: "own" },
304
- { level: "user", role: "member", access: "all" },
305
- ];
306
- // Should return true from user-level "all" without needing entity
307
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
308
- });
309
- it("checks team level before organization level", () => {
310
- const ctx = createMockContext({ role: "viewer" }, {
311
- activeTeamId: "team-1",
312
- activeTeamRole: "admin",
313
- activeOrganizationId: "org-1",
314
- activeOrganizationRole: "admin",
315
- });
316
- const grants = [
317
- { level: "organization", role: "admin", access: "all" },
318
- { level: "team", role: "admin", access: "all" },
319
- ];
320
- // Both would match, but team is checked before org in the priority
321
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
322
- });
323
- });
324
- describe("multi-level grants with different roles per level", () => {
325
- it("user with different roles at each level - matches user level", () => {
326
- const ctx = createMockContext({ id: "user-123", role: "viewer" }, {
327
- activeTeamId: "team-1",
328
- activeTeamRole: "member",
329
- activeOrganizationId: "org-1",
330
- activeOrganizationRole: "admin",
331
- });
332
- // Grant requires "viewer" at user level
333
- const grants = [{ level: "user", role: "viewer", access: "all" }];
334
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
335
- });
336
- it("user with different roles at each level - matches team level only", () => {
337
- const ctx = createMockContext({ id: "user-123", role: "viewer" }, {
338
- activeTeamId: "team-1",
339
- activeTeamRole: "manager",
340
- activeOrganizationId: "org-1",
341
- activeOrganizationRole: "member",
342
- });
343
- // Grant requires "admin" at user level (no match) or "manager" at team level (match)
344
- const grants = [
345
- { level: "user", role: "admin", access: "all" },
346
- { level: "team", role: "manager", access: "all" },
347
- ];
348
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
349
- });
350
- it("user with different roles at each level - matches organization level only", () => {
351
- const ctx = createMockContext({ id: "user-123", role: "viewer" }, {
352
- activeTeamId: "team-1",
353
- activeTeamRole: "member",
354
- activeOrganizationId: "org-1",
355
- activeOrganizationRole: "owner",
356
- });
357
- // Grant requires roles that only match at organization level
358
- const grants = [
359
- { level: "user", role: "admin", access: "all" },
360
- { level: "team", role: "admin", access: "all" },
361
- { level: "organization", role: "owner", access: "all" },
362
- ];
363
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
364
- });
365
- it("user with different roles at each level - no level matches", () => {
366
- const ctx = createMockContext({ id: "user-123", role: "viewer" }, {
367
- activeTeamId: "team-1",
368
- activeTeamRole: "member",
369
- activeOrganizationId: "org-1",
370
- activeOrganizationRole: "member",
371
- });
372
- // Grant requires roles that don't match any level
373
- const grants = [
374
- { level: "user", role: "admin", access: "all" },
375
- { level: "team", role: "admin", access: "all" },
376
- { level: "organization", role: "owner", access: "all" },
377
- ];
378
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(false);
379
- });
380
- it("user with mixed 'all' and 'own' grants across levels - 'all' wins", () => {
381
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
382
- activeTeamId: "team-1",
383
- activeTeamRole: "admin",
384
- activeOrganizationId: "org-1",
385
- activeOrganizationRole: "member",
386
- });
387
- // User level has "own" (would need entity), team level has "all" (no entity needed)
388
- const grants = [
389
- { level: "user", role: "member", access: "own" },
390
- { level: "team", role: "admin", access: "all" },
391
- { level: "organization", role: "owner", access: "own" },
392
- ];
393
- // Should pass because team-level "all" is checked in pass 1
394
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants)).toBe(true);
395
- });
396
- it("user with 'own' grants at multiple levels - first matching level wins", () => {
397
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
398
- activeTeamId: "team-1",
399
- activeTeamRole: "member",
400
- activeOrganizationId: "org-1",
401
- activeOrganizationRole: "member",
402
- });
403
- // All levels have "own" access, entity matches user level
404
- const grants = [
405
- { level: "user", role: "member", access: "own" },
406
- { level: "team", role: "member", access: "own" },
407
- { level: "organization", role: "member", access: "own" },
408
- ];
409
- const entity = createMockEntity({
410
- userId: "user-123",
411
- teamId: "team-2",
412
- organizationId: "org-2",
413
- });
414
- // Should pass because user-level "own" matches (checked first in pass 2)
415
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
416
- });
417
- it("user with 'own' grants - team level matches when user level does not", () => {
418
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
419
- activeTeamId: "team-1",
420
- activeTeamRole: "member",
421
- activeOrganizationId: "org-1",
422
- activeOrganizationRole: "member",
423
- });
424
- const grants = [
425
- { level: "user", role: "member", access: "own" },
426
- { level: "team", role: "member", access: "own" },
427
- { level: "organization", role: "member", access: "own" },
428
- ];
429
- // Entity belongs to a different user but same team
430
- const entity = createMockEntity({
431
- userId: "other-user",
432
- teamId: "team-1",
433
- organizationId: "org-2",
434
- });
435
- // User-level fails (userId mismatch), team-level passes (teamId matches)
436
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
437
- });
438
- it("user with 'own' grants - organization level matches when user and team do not", () => {
439
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
440
- activeTeamId: "team-1",
441
- activeTeamRole: "member",
442
- activeOrganizationId: "org-1",
443
- activeOrganizationRole: "member",
444
- });
445
- const grants = [
446
- { level: "user", role: "member", access: "own" },
447
- { level: "team", role: "member", access: "own" },
448
- { level: "organization", role: "member", access: "own" },
449
- ];
450
- // Entity belongs to a different user and team, but same organization
451
- const entity = createMockEntity({
452
- userId: "other-user",
453
- teamId: "team-2",
454
- organizationId: "org-1",
455
- });
456
- // User-level fails, team-level fails, organization-level passes
457
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
458
- });
459
- it("complex scenario: admin user bypasses ownership checks", () => {
460
- const ctx = createMockContext({ id: "admin-user", role: "admin" }, {
461
- activeTeamId: "team-1",
462
- activeTeamRole: "member",
463
- activeOrganizationId: "org-1",
464
- activeOrganizationRole: "member",
465
- });
466
- // Grant allows admins to access all, or regular members to access own
467
- const grants = [
468
- { level: "user", role: "admin", access: "all" },
469
- { level: "user", role: "member", access: "own" },
470
- ];
471
- // Entity belongs to someone else, but admin has "all" access
472
- const entity = createMockEntity({ userId: "other-user" });
473
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
474
- });
475
- it("complex scenario: regular user limited to own resources", () => {
476
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
477
- activeTeamId: "team-1",
478
- activeTeamRole: "member",
479
- activeOrganizationId: "org-1",
480
- activeOrganizationRole: "member",
481
- });
482
- // Grant allows admins to access all, or regular members to access own
483
- const grants = [
484
- { level: "user", role: "admin", access: "all" },
485
- { level: "user", role: "member", access: "own" },
486
- ];
487
- // Entity belongs to someone else - member can't access
488
- const otherEntity = createMockEntity({ userId: "other-user" });
489
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, otherEntity)).toBe(false);
490
- // Entity belongs to the user - member can access
491
- const ownEntity = createMockEntity({ userId: "user-123" });
492
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, ownEntity)).toBe(true);
493
- });
494
- it("team admin can access all team resources regardless of user ownership", () => {
495
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
496
- activeTeamId: "team-1",
497
- activeTeamRole: "admin",
498
- activeOrganizationId: "org-1",
499
- activeOrganizationRole: "member",
500
- });
501
- // Grant: user-level own OR team-level all for admins
502
- const grants = [
503
- { level: "user", role: "member", access: "own" },
504
- { level: "team", role: "admin", access: "all" },
505
- ];
506
- // Entity belongs to another user in the same team
507
- const entity = createMockEntity({ userId: "other-user", teamId: "team-1" });
508
- // Team admin has "all" access, so ownership doesn't matter
509
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
510
- });
511
- it("organization owner can access all organization resources", () => {
512
- const ctx = createMockContext({ id: "user-123", role: "member" }, {
513
- activeTeamId: "team-1",
514
- activeTeamRole: "member",
515
- activeOrganizationId: "org-1",
516
- activeOrganizationRole: "owner",
517
- });
518
- // Grant: owner at org level has all access
519
- const grants = [
520
- { level: "user", role: "member", access: "own" },
521
- { level: "team", role: "admin", access: "own" },
522
- { level: "organization", role: "owner", access: "all" },
523
- ];
524
- // Entity belongs to another user and team, but in the same org
525
- const entity = createMockEntity({
526
- userId: "other-user",
527
- teamId: "team-2",
528
- organizationId: "org-1",
529
- });
530
- // Org owner has "all" access
531
- expect((0, base_grants_1.checkPermissionSync)(ctx, grants, entity)).toBe(true);
532
- });
533
- });
534
- });
535
- // ============================================
536
- // checkPermissionAsync
537
- // ============================================
538
- describe("checkPermissionAsync", () => {
539
- describe("edge cases", () => {
540
- it("returns ok(false) for empty grants array", async () => {
541
- const ctx = createMockContext();
542
- const getEntities = jest.fn();
543
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, [], getEntities);
544
- expect(result.isOk()).toBe(true);
545
- if (result.isOk())
546
- expect(result.value).toBe(false);
547
- expect(getEntities).not.toHaveBeenCalled();
548
- });
549
- });
550
- describe("'all' access optimization", () => {
551
- it("returns ok(true) without calling getEntities when 'all' access matches", async () => {
552
- const ctx = createMockContext({ role: "admin" });
553
- const grants = [{ level: "user", role: "admin", access: "all" }];
554
- const getEntities = jest.fn();
555
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
556
- expect(result.isOk()).toBe(true);
557
- if (result.isOk())
558
- expect(result.value).toBe(true);
559
- expect(getEntities).not.toHaveBeenCalled();
560
- });
561
- });
562
- describe("'own' access with entity fetch", () => {
563
- it("calls getEntities and grants access when ownership matches", async () => {
564
- const ctx = createMockContext({ id: "user-123", role: "member" });
565
- const grants = [{ level: "user", role: "member", access: "own" }];
566
- const entity = createMockEntity({ userId: "user-123" });
567
- const getEntities = jest.fn().mockResolvedValue((0, neverthrow_1.ok)(entity));
568
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
569
- expect(result.isOk()).toBe(true);
570
- if (result.isOk())
571
- expect(result.value).toBe(true);
572
- expect(getEntities).toHaveBeenCalledTimes(1);
573
- });
574
- it("calls getEntities and denies access when ownership does not match", async () => {
575
- const ctx = createMockContext({ id: "user-123", role: "member" });
576
- const grants = [{ level: "user", role: "member", access: "own" }];
577
- const entity = createMockEntity({ userId: "other-user" });
578
- const getEntities = jest.fn().mockResolvedValue((0, neverthrow_1.ok)(entity));
579
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
580
- expect(result.isOk()).toBe(true);
581
- if (result.isOk())
582
- expect(result.value).toBe(false);
583
- expect(getEntities).toHaveBeenCalledTimes(1);
584
- });
585
- it("handles undefined entities from getEntities", async () => {
586
- const ctx = createMockContext({ id: "user-123", role: "member" });
587
- const grants = [{ level: "user", role: "member", access: "own" }];
588
- const getEntities = jest.fn().mockResolvedValue((0, neverthrow_1.ok)(undefined));
589
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
590
- expect(result.isOk()).toBe(true);
591
- if (result.isOk())
592
- expect(result.value).toBe(false);
593
- });
594
- });
595
- describe("error propagation", () => {
596
- it("propagates errors from getEntities", async () => {
597
- const ctx = createMockContext({ id: "user-123", role: "member" });
598
- const grants = [{ level: "user", role: "member", access: "own" }];
599
- const mockError = new errors_1.ServerError({
600
- layer: "service",
601
- layerName: "BasePermissionService",
602
- code: "NOT_FOUND",
603
- message: "Entity not found",
604
- cause: null,
605
- });
606
- const getEntities = jest.fn().mockResolvedValue((0, neverthrow_1.err)(mockError));
607
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
608
- expect(result.isErr()).toBe(true);
609
- if (result.isErr()) {
610
- expect(result.error.code).toBe("NOT_FOUND");
611
- expect(result.error.message).toBe("Entity not found");
612
- }
613
- });
614
- });
615
- describe("team and organization levels", () => {
616
- it("checks team-level 'own' access correctly", async () => {
617
- const ctx = createMockContext({}, { activeTeamId: "team-1", activeTeamRole: "member" });
618
- const grants = [{ level: "team", role: "member", access: "own" }];
619
- const entity = createMockEntity({ teamId: "team-1" });
620
- const getEntities = jest.fn().mockResolvedValue((0, neverthrow_1.ok)(entity));
621
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
622
- expect(result.isOk()).toBe(true);
623
- if (result.isOk())
624
- expect(result.value).toBe(true);
625
- });
626
- it("checks organization-level 'all' access without fetching entities", async () => {
627
- const ctx = createMockContext({}, { activeOrganizationId: "org-1", activeOrganizationRole: "owner" });
628
- const grants = [
629
- { level: "organization", role: "owner", access: "all" },
630
- ];
631
- const getEntities = jest.fn();
632
- const result = await (0, base_grants_1.checkPermissionAsync)(ctx, grants, getEntities);
633
- expect(result.isOk()).toBe(true);
634
- if (result.isOk())
635
- expect(result.value).toBe(true);
636
- expect(getEntities).not.toHaveBeenCalled();
637
- });
638
- });
639
- });