@m5kdev/backend 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (553) 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 +128 -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 +29 -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 +51 -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 +65 -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 +93 -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 +109 -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 +31 -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 +28 -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 +346 -0
  344. package/dist/src/types.mjs +13 -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 +5 -4
  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.js +0 -9
  363. package/dist/src/modules/access/access.repository.d.ts +0 -2347
  364. package/dist/src/modules/access/access.repository.js +0 -32
  365. package/dist/src/modules/access/access.service.d.ts +0 -21
  366. package/dist/src/modules/access/access.service.js +0 -51
  367. package/dist/src/modules/access/access.test.js +0 -182
  368. package/dist/src/modules/access/access.utils.d.ts +0 -16
  369. package/dist/src/modules/access/access.utils.js +0 -20
  370. package/dist/src/modules/ai/ai.db.d.ts +0 -395
  371. package/dist/src/modules/ai/ai.db.js +0 -39
  372. package/dist/src/modules/ai/ai.prompt.d.ts +0 -26
  373. package/dist/src/modules/ai/ai.prompt.js +0 -30
  374. package/dist/src/modules/ai/ai.prompts.d.ts +0 -5
  375. package/dist/src/modules/ai/ai.repository.d.ts +0 -423
  376. package/dist/src/modules/ai/ai.repository.js +0 -26
  377. package/dist/src/modules/ai/ai.router.js +0 -132
  378. package/dist/src/modules/ai/ai.service.d.ts +0 -127
  379. package/dist/src/modules/ai/ai.service.js +0 -297
  380. package/dist/src/modules/ai/ai.trpc.d.ts +0 -22
  381. package/dist/src/modules/ai/ai.trpc.js +0 -20
  382. package/dist/src/modules/ai/ideogram/ideogram.constants.d.ts +0 -7
  383. package/dist/src/modules/ai/ideogram/ideogram.constants.js +0 -167
  384. package/dist/src/modules/ai/ideogram/ideogram.dto.d.ts +0 -229
  385. package/dist/src/modules/ai/ideogram/ideogram.dto.js +0 -49
  386. package/dist/src/modules/ai/ideogram/ideogram.prompt.d.ts +0 -2
  387. package/dist/src/modules/ai/ideogram/ideogram.repository.d.ts +0 -6
  388. package/dist/src/modules/ai/ideogram/ideogram.repository.js +0 -46
  389. package/dist/src/modules/ai/ideogram/ideogram.service.d.ts +0 -9
  390. package/dist/src/modules/ai/ideogram/ideogram.service.js +0 -11
  391. package/dist/src/modules/auth/auth.db.d.ts +0 -2335
  392. package/dist/src/modules/auth/auth.db.js +0 -215
  393. package/dist/src/modules/auth/auth.dto.d.ts +0 -65
  394. package/dist/src/modules/auth/auth.dto.js +0 -38
  395. package/dist/src/modules/auth/auth.lib.d.ts +0 -4873
  396. package/dist/src/modules/auth/auth.lib.js +0 -284
  397. package/dist/src/modules/auth/auth.middleware.d.ts +0 -614
  398. package/dist/src/modules/auth/auth.middleware.js +0 -52
  399. package/dist/src/modules/auth/auth.repository.d.ts +0 -2421
  400. package/dist/src/modules/auth/auth.repository.js +0 -636
  401. package/dist/src/modules/auth/auth.service.d.ts +0 -108
  402. package/dist/src/modules/auth/auth.service.js +0 -246
  403. package/dist/src/modules/auth/auth.trpc.d.ts +0 -292
  404. package/dist/src/modules/auth/auth.trpc.js +0 -179
  405. package/dist/src/modules/auth/auth.utils.d.ts +0 -2351
  406. package/dist/src/modules/auth/auth.utils.js +0 -97
  407. package/dist/src/modules/base/base.abstract.d.ts +0 -19
  408. package/dist/src/modules/base/base.abstract.js +0 -62
  409. package/dist/src/modules/base/base.dto.d.ts +0 -69
  410. package/dist/src/modules/base/base.dto.js +0 -112
  411. package/dist/src/modules/base/base.grants.d.ts +0 -28
  412. package/dist/src/modules/base/base.grants.js +0 -123
  413. package/dist/src/modules/base/base.grants.test.js +0 -668
  414. package/dist/src/modules/base/base.procedure.d.ts +0 -112
  415. package/dist/src/modules/base/base.procedure.js +0 -289
  416. package/dist/src/modules/base/base.repository.d.ts +0 -97
  417. package/dist/src/modules/base/base.repository.js +0 -317
  418. package/dist/src/modules/base/base.service.d.ts +0 -52
  419. package/dist/src/modules/base/base.service.js +0 -116
  420. package/dist/src/modules/base/base.service.test.js +0 -415
  421. package/dist/src/modules/base/base.types.d.ts +0 -1
  422. package/dist/src/modules/base/base.types.js +0 -2
  423. package/dist/src/modules/billing/billing.db.d.ts +0 -365
  424. package/dist/src/modules/billing/billing.db.js +0 -29
  425. package/dist/src/modules/billing/billing.repository.d.ts +0 -2763
  426. package/dist/src/modules/billing/billing.repository.js +0 -235
  427. package/dist/src/modules/billing/billing.router.d.ts +0 -4
  428. package/dist/src/modules/billing/billing.router.js +0 -56
  429. package/dist/src/modules/billing/billing.service.d.ts +0 -59
  430. package/dist/src/modules/billing/billing.service.js +0 -147
  431. package/dist/src/modules/billing/billing.trpc.d.ts +0 -38
  432. package/dist/src/modules/billing/billing.trpc.js +0 -17
  433. package/dist/src/modules/clay/clay.repository.d.ts +0 -5
  434. package/dist/src/modules/clay/clay.repository.js +0 -26
  435. package/dist/src/modules/clay/clay.service.d.ts +0 -28
  436. package/dist/src/modules/clay/clay.service.js +0 -24
  437. package/dist/src/modules/connect/connect.db.d.ts +0 -356
  438. package/dist/src/modules/connect/connect.db.js +0 -30
  439. package/dist/src/modules/connect/connect.dto.d.ts +0 -74
  440. package/dist/src/modules/connect/connect.dto.js +0 -36
  441. package/dist/src/modules/connect/connect.linkedin.d.ts +0 -2
  442. package/dist/src/modules/connect/connect.linkedin.js +0 -53
  443. package/dist/src/modules/connect/connect.oauth.d.ts +0 -27
  444. package/dist/src/modules/connect/connect.oauth.js +0 -198
  445. package/dist/src/modules/connect/connect.repository.d.ts +0 -413
  446. package/dist/src/modules/connect/connect.repository.js +0 -54
  447. package/dist/src/modules/connect/connect.router.d.ts +0 -4
  448. package/dist/src/modules/connect/connect.router.js +0 -54
  449. package/dist/src/modules/connect/connect.service.d.ts +0 -88
  450. package/dist/src/modules/connect/connect.service.js +0 -114
  451. package/dist/src/modules/connect/connect.trpc.d.ts +0 -44
  452. package/dist/src/modules/connect/connect.trpc.js +0 -21
  453. package/dist/src/modules/connect/connect.types.d.ts +0 -25
  454. package/dist/src/modules/connect/connect.types.js +0 -2
  455. package/dist/src/modules/crypto/crypto.db.d.ts +0 -151
  456. package/dist/src/modules/crypto/crypto.db.js +0 -17
  457. package/dist/src/modules/crypto/crypto.repository.d.ts +0 -159
  458. package/dist/src/modules/crypto/crypto.repository.js +0 -10
  459. package/dist/src/modules/crypto/crypto.service.d.ts +0 -10
  460. package/dist/src/modules/crypto/crypto.service.js +0 -52
  461. package/dist/src/modules/email/email.service.d.ts +0 -56
  462. package/dist/src/modules/email/email.service.js +0 -106
  463. package/dist/src/modules/file/file.repository.d.ts +0 -12
  464. package/dist/src/modules/file/file.repository.js +0 -79
  465. package/dist/src/modules/file/file.router.js +0 -99
  466. package/dist/src/modules/file/file.service.d.ts +0 -24
  467. package/dist/src/modules/file/file.service.js +0 -150
  468. package/dist/src/modules/recurrence/recurrence.db.d.ts +0 -562
  469. package/dist/src/modules/recurrence/recurrence.db.js +0 -66
  470. package/dist/src/modules/recurrence/recurrence.repository.d.ts +0 -584
  471. package/dist/src/modules/recurrence/recurrence.repository.js +0 -39
  472. package/dist/src/modules/recurrence/recurrence.service.d.ts +0 -50
  473. package/dist/src/modules/recurrence/recurrence.service.js +0 -69
  474. package/dist/src/modules/recurrence/recurrence.trpc.d.ts +0 -206
  475. package/dist/src/modules/recurrence/recurrence.trpc.js +0 -65
  476. package/dist/src/modules/social/social.dto.d.ts +0 -34
  477. package/dist/src/modules/social/social.dto.js +0 -18
  478. package/dist/src/modules/social/social.linkedin.js +0 -427
  479. package/dist/src/modules/social/social.linkedin.test.js +0 -235
  480. package/dist/src/modules/social/social.service.d.ts +0 -28
  481. package/dist/src/modules/social/social.service.js +0 -76
  482. package/dist/src/modules/social/social.types.d.ts +0 -35
  483. package/dist/src/modules/social/social.types.js +0 -2
  484. package/dist/src/modules/tag/tag.db.d.ts +0 -346
  485. package/dist/src/modules/tag/tag.db.js +0 -42
  486. package/dist/src/modules/tag/tag.dto.d.ts +0 -1018
  487. package/dist/src/modules/tag/tag.dto.js +0 -9
  488. package/dist/src/modules/tag/tag.repository.d.ts +0 -383
  489. package/dist/src/modules/tag/tag.repository.js +0 -156
  490. package/dist/src/modules/tag/tag.service.d.ts +0 -109
  491. package/dist/src/modules/tag/tag.service.js +0 -42
  492. package/dist/src/modules/tag/tag.trpc.d.ts +0 -164
  493. package/dist/src/modules/tag/tag.trpc.js +0 -53
  494. package/dist/src/modules/utils/applyPagination.js +0 -16
  495. package/dist/src/modules/utils/applySorting.d.ts +0 -8
  496. package/dist/src/modules/utils/applySorting.js +0 -18
  497. package/dist/src/modules/utils/getConditionsFromFilters.d.ts +0 -4
  498. package/dist/src/modules/utils/getConditionsFromFilters.js +0 -200
  499. package/dist/src/modules/video/video.service.d.ts +0 -7
  500. package/dist/src/modules/video/video.service.js +0 -84
  501. package/dist/src/modules/webhook/webhook.constants.d.ts +0 -8
  502. package/dist/src/modules/webhook/webhook.constants.js +0 -10
  503. package/dist/src/modules/webhook/webhook.db.d.ts +0 -136
  504. package/dist/src/modules/webhook/webhook.db.js +0 -17
  505. package/dist/src/modules/webhook/webhook.dto.d.ts +0 -394
  506. package/dist/src/modules/webhook/webhook.dto.js +0 -7
  507. package/dist/src/modules/webhook/webhook.repository.d.ts +0 -148
  508. package/dist/src/modules/webhook/webhook.repository.js +0 -56
  509. package/dist/src/modules/webhook/webhook.router.d.ts +0 -3
  510. package/dist/src/modules/webhook/webhook.router.js +0 -30
  511. package/dist/src/modules/webhook/webhook.service.d.ts +0 -9
  512. package/dist/src/modules/webhook/webhook.service.js +0 -68
  513. package/dist/src/modules/workflow/workflow.db.d.ts +0 -296
  514. package/dist/src/modules/workflow/workflow.db.js +0 -30
  515. package/dist/src/modules/workflow/workflow.repository.d.ts +0 -343
  516. package/dist/src/modules/workflow/workflow.repository.js +0 -105
  517. package/dist/src/modules/workflow/workflow.service.d.ts +0 -21
  518. package/dist/src/modules/workflow/workflow.service.js +0 -37
  519. package/dist/src/modules/workflow/workflow.trpc.d.ts +0 -56
  520. package/dist/src/modules/workflow/workflow.trpc.js +0 -21
  521. package/dist/src/modules/workflow/workflow.types.d.ts +0 -20
  522. package/dist/src/modules/workflow/workflow.types.js +0 -2
  523. package/dist/src/modules/workflow/workflow.utils.d.ts +0 -21
  524. package/dist/src/modules/workflow/workflow.utils.js +0 -173
  525. package/dist/src/test/stubs/utils.d.ts +0 -2
  526. package/dist/src/test/stubs/utils.js +0 -5
  527. package/dist/src/trpc/context.d.ts +0 -41
  528. package/dist/src/trpc/context.js +0 -17
  529. package/dist/src/trpc/index.d.ts +0 -3
  530. package/dist/src/trpc/index.js +0 -6
  531. package/dist/src/trpc/procedures.d.ts +0 -233
  532. package/dist/src/trpc/procedures.js +0 -32
  533. package/dist/src/trpc/utils.d.ts +0 -4
  534. package/dist/src/trpc/utils.js +0 -20
  535. package/dist/src/types.d.ts +0 -358
  536. package/dist/src/types.js +0 -12
  537. package/dist/src/utils/errors.d.ts +0 -49
  538. package/dist/src/utils/errors.js +0 -104
  539. package/dist/src/utils/logger.d.ts +0 -1
  540. package/dist/src/utils/logger.js +0 -11
  541. package/dist/src/utils/posthog.d.ts +0 -13
  542. package/dist/src/utils/posthog.js +0 -31
  543. package/dist/src/utils/trpc.d.ts +0 -58
  544. package/dist/src/utils/trpc.js +0 -63
  545. package/dist/src/utils/types.d.ts +0 -4
  546. package/dist/src/utils/types.js +0 -2
  547. package/dist/tsconfig.tsbuildinfo +0 -1
  548. /package/dist/src/{lib/sentry.d.ts → modules/ai/ai.router.mjs} +0 -0
  549. /package/dist/src/modules/{access/access.test.d.ts → base/base.types.mjs} +0 -0
  550. /package/dist/src/modules/{ai/ai.router.d.ts → connect/connect.types.mjs} +0 -0
  551. /package/dist/src/modules/{base/base.grants.test.d.ts → social/social.types.mjs} +0 -0
  552. /package/dist/src/modules/{base/base.service.test.d.ts → workflow/workflow.types.mjs} +0 -0
  553. /package/dist/src/{modules/social/social.linkedin.test.d.ts → utils/types.mjs} +0 -0
@@ -0,0 +1,64 @@
1
+ import { BaseService } from "../base/base.service.mjs";
2
+ import { err, ok } from "neverthrow";
3
+ //#region src/modules/recurrence/recurrence.service.ts
4
+ const RECURRENCE_RULE_INSERT_KEYS = [
5
+ "freq",
6
+ "dtstart",
7
+ "interval",
8
+ "wkst",
9
+ "count",
10
+ "until",
11
+ "tzid",
12
+ "bysetpos",
13
+ "bymonth",
14
+ "bymonthday",
15
+ "byyearday",
16
+ "byweekno",
17
+ "byweekday",
18
+ "byhour",
19
+ "byminute",
20
+ "bysecond"
21
+ ];
22
+ function mapRuleToInsert(rule) {
23
+ const out = {};
24
+ for (const key of RECURRENCE_RULE_INSERT_KEYS) if (key in rule && rule[key] !== void 0) out[key] = rule[key];
25
+ return out;
26
+ }
27
+ var RecurrenceService = class extends BaseService {
28
+ list = this.procedure("list").addContextFilter(["user"]).handle(({ input }) => this.repository.recurrence.queryList(input));
29
+ create = this.procedure("create").requireAuth().handle(({ input, ctx }) => {
30
+ const { actor } = ctx;
31
+ const recurrenceData = {
32
+ name: input.name,
33
+ kind: input.kind,
34
+ enabled: input.enabled,
35
+ metadata: input.metadata ?? null,
36
+ userId: actor.userId,
37
+ organizationId: actor.organizationId,
38
+ teamId: actor.teamId
39
+ };
40
+ const rulesData = input.recurrenceRules.map(mapRuleToInsert);
41
+ return this.repository.recurrence.createWithRules(recurrenceData, rulesData);
42
+ });
43
+ async findById(id) {
44
+ const result = await this.repository.recurrence.findById(id);
45
+ if (result.isErr()) return err(result.error);
46
+ return ok(result.value ?? null);
47
+ }
48
+ async update(data) {
49
+ return this.repository.recurrence.update(data);
50
+ }
51
+ async updateRule(data) {
52
+ return this.repository.recurrenceRules.update(data);
53
+ }
54
+ async delete(data) {
55
+ return this.repository.recurrence.deleteById(data.id);
56
+ }
57
+ async deleteRule(data) {
58
+ return this.repository.recurrenceRules.deleteById(data.id);
59
+ }
60
+ };
61
+ //#endregion
62
+ export { RecurrenceService };
63
+
64
+ //# sourceMappingURL=recurrence.service.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recurrence.service.mjs","names":[],"sources":["../../../../src/modules/recurrence/recurrence.service.ts"],"sourcesContent":["import type {\r\n CreateRecurrenceSchema,\r\n DeleteRecurrenceRulesSchema,\r\n DeleteRecurrenceSchema,\r\n UpdateRecurrenceRulesSchema,\r\n UpdateRecurrenceSchema,\r\n} from \"@m5kdev/commons/modules/recurrence/recurrence.schema\";\r\nimport type { QueryInput } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport { err, ok } from \"neverthrow\";\r\nimport type { ServerResultAsync } from \"../base/base.dto\";\r\nimport { BaseService } from \"../base/base.service\";\r\nimport type {\r\n CreateRecurrenceRuleInput,\r\n CreateWithRulesResult,\r\n RecurrenceRepository,\r\n RecurrenceRulesRepository,\r\n} from \"./recurrence.repository\";\r\n\r\nconst RECURRENCE_RULE_INSERT_KEYS = [\r\n \"freq\",\r\n \"dtstart\",\r\n \"interval\",\r\n \"wkst\",\r\n \"count\",\r\n \"until\",\r\n \"tzid\",\r\n \"bysetpos\",\r\n \"bymonth\",\r\n \"bymonthday\",\r\n \"byyearday\",\r\n \"byweekno\",\r\n \"byweekday\",\r\n \"byhour\",\r\n \"byminute\",\r\n \"bysecond\",\r\n] as const;\r\n\r\nfunction mapRuleToInsert(\r\n rule: CreateRecurrenceSchema[\"recurrenceRules\"][number]\r\n): CreateRecurrenceRuleInput {\r\n const out: Record<string, unknown> = {};\r\n for (const key of RECURRENCE_RULE_INSERT_KEYS) {\r\n if (key in rule && rule[key as keyof typeof rule] !== undefined) {\r\n out[key] = rule[key as keyof typeof rule];\r\n }\r\n }\r\n return out as CreateRecurrenceRuleInput;\r\n}\r\n\r\nexport class RecurrenceService extends BaseService<\r\n { recurrence: RecurrenceRepository; recurrenceRules: RecurrenceRulesRepository },\r\n Record<string, never>\r\n> {\r\n readonly list = this.procedure<QueryInput>(\"list\")\r\n .addContextFilter([\"user\"])\r\n .handle(({ input }) => this.repository.recurrence.queryList(input));\r\n\r\n readonly create = this.procedure<CreateRecurrenceSchema>(\"create\")\r\n .requireAuth()\r\n .handle(({ input, ctx }): ServerResultAsync<CreateWithRulesResult> => {\r\n const { actor } = ctx;\r\n const recurrenceData = {\r\n name: input.name,\r\n kind: input.kind,\r\n enabled: input.enabled,\r\n metadata: input.metadata ?? null,\r\n userId: actor.userId,\r\n organizationId: actor.organizationId,\r\n teamId: actor.teamId,\r\n };\r\n const rulesData = input.recurrenceRules.map(mapRuleToInsert);\r\n return this.repository.recurrence.createWithRules(recurrenceData, rulesData);\r\n });\r\n\r\n async findById(id: string): ServerResultAsync<CreateWithRulesResult[\"recurrence\"] | null> {\r\n const result = await this.repository.recurrence.findById(id);\r\n if (result.isErr()) return err(result.error);\r\n return ok(result.value ?? null);\r\n }\r\n\r\n async update(\r\n data: UpdateRecurrenceSchema & { id: string }\r\n ): ServerResultAsync<CreateWithRulesResult[\"recurrence\"]> {\r\n return this.repository.recurrence.update(data);\r\n }\r\n\r\n async updateRule(\r\n data: UpdateRecurrenceRulesSchema\r\n ): ServerResultAsync<CreateWithRulesResult[\"rules\"][number]> {\r\n return this.repository.recurrenceRules.update(data);\r\n }\r\n\r\n async delete(data: DeleteRecurrenceSchema): ServerResultAsync<{ id: string }> {\r\n return this.repository.recurrence.deleteById(data.id);\r\n }\r\n\r\n async deleteRule(data: DeleteRecurrenceRulesSchema): ServerResultAsync<{ id: string }> {\r\n return this.repository.recurrenceRules.deleteById(data.id);\r\n }\r\n}\r\n"],"mappings":";;;AAkBA,MAAM,8BAA8B;CAClC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,SAAS,gBACP,MAC2B;CAC3B,MAAM,MAA+B,EAAE;AACvC,MAAK,MAAM,OAAO,4BAChB,KAAI,OAAO,QAAQ,KAAK,SAA8B,KAAA,EACpD,KAAI,OAAO,KAAK;AAGpB,QAAO;;AAGT,IAAa,oBAAb,cAAuC,YAGrC;CACA,OAAgB,KAAK,UAAsB,OAAO,CAC/C,iBAAiB,CAAC,OAAO,CAAC,CAC1B,QAAQ,EAAE,YAAY,KAAK,WAAW,WAAW,UAAU,MAAM,CAAC;CAErE,SAAkB,KAAK,UAAkC,SAAS,CAC/D,aAAa,CACb,QAAQ,EAAE,OAAO,UAAoD;EACpE,MAAM,EAAE,UAAU;EAClB,MAAM,iBAAiB;GACrB,MAAM,MAAM;GACZ,MAAM,MAAM;GACZ,SAAS,MAAM;GACf,UAAU,MAAM,YAAY;GAC5B,QAAQ,MAAM;GACd,gBAAgB,MAAM;GACtB,QAAQ,MAAM;GACf;EACD,MAAM,YAAY,MAAM,gBAAgB,IAAI,gBAAgB;AAC5D,SAAO,KAAK,WAAW,WAAW,gBAAgB,gBAAgB,UAAU;GAC5E;CAEJ,MAAM,SAAS,IAA2E;EACxF,MAAM,SAAS,MAAM,KAAK,WAAW,WAAW,SAAS,GAAG;AAC5D,MAAI,OAAO,OAAO,CAAE,QAAO,IAAI,OAAO,MAAM;AAC5C,SAAO,GAAG,OAAO,SAAS,KAAK;;CAGjC,MAAM,OACJ,MACwD;AACxD,SAAO,KAAK,WAAW,WAAW,OAAO,KAAK;;CAGhD,MAAM,WACJ,MAC2D;AAC3D,SAAO,KAAK,WAAW,gBAAgB,OAAO,KAAK;;CAGrD,MAAM,OAAO,MAAiE;AAC5E,SAAO,KAAK,WAAW,WAAW,WAAW,KAAK,GAAG;;CAGvD,MAAM,WAAW,MAAsE;AACrF,SAAO,KAAK,WAAW,gBAAgB,WAAW,KAAK,GAAG"}
@@ -0,0 +1,65 @@
1
+ import { Context, TRPCMethods } from "../../utils/trpc.mjs";
2
+ import { RecurrenceService } from "./recurrence.service.mjs";
3
+ import * as _$_trpc_server0 from "@trpc/server";
4
+
5
+ //#region src/modules/recurrence/recurrence.trpc.d.ts
6
+ declare function createRecurrenceTRPC({
7
+ router,
8
+ privateProcedure: procedure
9
+ }: TRPCMethods, recurrenceService: RecurrenceService): _$_trpc_server0.TRPCBuiltRouter<{
10
+ ctx: Context;
11
+ meta: any;
12
+ errorShape: _$_trpc_server0.TRPCDefaultErrorShape;
13
+ transformer: any;
14
+ }, _$_trpc_server0.TRPCDecorateCreateRouterOptions<{
15
+ list: _$_trpc_server0.TRPCQueryProcedure<{
16
+ input: any;
17
+ output: {
18
+ rows: any[];
19
+ total: number;
20
+ };
21
+ meta: any;
22
+ }>;
23
+ create: _$_trpc_server0.TRPCMutationProcedure<{
24
+ input: any;
25
+ output: {
26
+ [x: string]: any;
27
+ rules: any[];
28
+ };
29
+ meta: any;
30
+ }>;
31
+ findById: _$_trpc_server0.TRPCQueryProcedure<{
32
+ input: {
33
+ id: string;
34
+ };
35
+ output: any;
36
+ meta: any;
37
+ }>;
38
+ update: _$_trpc_server0.TRPCMutationProcedure<{
39
+ input: any;
40
+ output: any;
41
+ meta: any;
42
+ }>;
43
+ updateRule: _$_trpc_server0.TRPCMutationProcedure<{
44
+ input: any;
45
+ output: any;
46
+ meta: any;
47
+ }>;
48
+ delete: _$_trpc_server0.TRPCMutationProcedure<{
49
+ input: any;
50
+ output: {
51
+ id: string;
52
+ };
53
+ meta: any;
54
+ }>;
55
+ deleteRule: _$_trpc_server0.TRPCMutationProcedure<{
56
+ input: any;
57
+ output: {
58
+ id: string;
59
+ };
60
+ meta: any;
61
+ }>;
62
+ }>>;
63
+ //#endregion
64
+ export { createRecurrenceTRPC };
65
+ //# sourceMappingURL=recurrence.trpc.d.mts.map
@@ -0,0 +1,44 @@
1
+ import { handleTRPCResult } from "../../utils/trpc.mjs";
2
+ import { z } from "zod";
3
+ import { createRecurrenceSchema, deleteRecurrenceRulesSchema, deleteRecurrenceSchema, recurrenceRulesSchema, recurrenceSchema, updateRecurrenceRulesSchema, updateRecurrenceSchema } from "@m5kdev/commons/modules/recurrence/recurrence.schema";
4
+ import { querySchema } from "@m5kdev/commons/modules/schemas/query.schema";
5
+ //#region src/modules/recurrence/recurrence.trpc.ts
6
+ const createRecurrenceOutputSchema = z.object({
7
+ recurrence: recurrenceSchema,
8
+ rules: z.array(recurrenceRulesSchema)
9
+ });
10
+ const listRecurrenceOutputSchema = z.object({
11
+ rows: z.array(recurrenceSchema),
12
+ total: z.number()
13
+ });
14
+ const updateRecurrenceInputSchema = updateRecurrenceSchema.extend({ id: z.string() });
15
+ const deleteRecurrenceOutputSchema = z.object({ id: z.string() });
16
+ function createRecurrenceTRPC({ router, privateProcedure: procedure }, recurrenceService) {
17
+ return router({
18
+ list: procedure.input(querySchema.default({})).output(listRecurrenceOutputSchema).query(async ({ ctx, input }) => {
19
+ return handleTRPCResult(await recurrenceService.list(input, ctx));
20
+ }),
21
+ create: procedure.input(createRecurrenceSchema).output(createRecurrenceOutputSchema).mutation(async ({ ctx, input }) => {
22
+ return handleTRPCResult(await recurrenceService.create(input, ctx));
23
+ }),
24
+ findById: procedure.input(z.object({ id: z.string() })).output(recurrenceSchema.nullable()).query(async ({ input }) => {
25
+ return handleTRPCResult(await recurrenceService.findById(input.id));
26
+ }),
27
+ update: procedure.input(updateRecurrenceInputSchema).output(recurrenceSchema).mutation(async ({ input }) => {
28
+ return handleTRPCResult(await recurrenceService.update(input));
29
+ }),
30
+ updateRule: procedure.input(updateRecurrenceRulesSchema).output(recurrenceRulesSchema).mutation(async ({ input }) => {
31
+ return handleTRPCResult(await recurrenceService.updateRule(input));
32
+ }),
33
+ delete: procedure.input(deleteRecurrenceSchema).output(deleteRecurrenceOutputSchema).mutation(async ({ input }) => {
34
+ return handleTRPCResult(await recurrenceService.delete(input));
35
+ }),
36
+ deleteRule: procedure.input(deleteRecurrenceRulesSchema).output(deleteRecurrenceOutputSchema).mutation(async ({ input }) => {
37
+ return handleTRPCResult(await recurrenceService.deleteRule(input));
38
+ })
39
+ });
40
+ }
41
+ //#endregion
42
+ export { createRecurrenceTRPC };
43
+
44
+ //# sourceMappingURL=recurrence.trpc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recurrence.trpc.mjs","names":[],"sources":["../../../../src/modules/recurrence/recurrence.trpc.ts"],"sourcesContent":["import {\r\n createRecurrenceSchema,\r\n deleteRecurrenceRulesSchema,\r\n deleteRecurrenceSchema,\r\n recurrenceRulesSchema,\r\n recurrenceSchema,\r\n updateRecurrenceRulesSchema,\r\n updateRecurrenceSchema,\r\n} from \"@m5kdev/commons/modules/recurrence/recurrence.schema\";\r\nimport { querySchema } from \"@m5kdev/commons/modules/schemas/query.schema\";\r\nimport { z } from \"zod\";\r\nimport { handleTRPCResult, type TRPCMethods } from \"../../utils/trpc\";\r\nimport type { RecurrenceService } from \"./recurrence.service\";\r\n\r\nconst createRecurrenceOutputSchema = z.object({\r\n recurrence: recurrenceSchema,\r\n rules: z.array(recurrenceRulesSchema),\r\n});\r\n\r\nconst listRecurrenceOutputSchema = z.object({\r\n rows: z.array(recurrenceSchema),\r\n total: z.number(),\r\n});\r\n\r\nconst updateRecurrenceInputSchema = updateRecurrenceSchema.extend({\r\n id: z.string(),\r\n});\r\n\r\nconst deleteRecurrenceOutputSchema = z.object({ id: z.string() });\r\n\r\nexport function createRecurrenceTRPC(\r\n { router, privateProcedure: procedure }: TRPCMethods,\r\n recurrenceService: RecurrenceService\r\n) {\r\n return router({\r\n list: procedure\r\n .input(querySchema.default({}))\r\n .output(listRecurrenceOutputSchema)\r\n .query(async ({ ctx, input }) => {\r\n return handleTRPCResult(await recurrenceService.list(input, ctx));\r\n }),\r\n\r\n create: procedure\r\n .input(createRecurrenceSchema)\r\n .output(createRecurrenceOutputSchema)\r\n .mutation(async ({ ctx, input }) => {\r\n return handleTRPCResult(await recurrenceService.create(input, ctx));\r\n }),\r\n\r\n findById: procedure\r\n .input(z.object({ id: z.string() }))\r\n .output(recurrenceSchema.nullable())\r\n .query(async ({ input }) => {\r\n return handleTRPCResult(await recurrenceService.findById(input.id));\r\n }),\r\n\r\n update: procedure\r\n .input(updateRecurrenceInputSchema)\r\n .output(recurrenceSchema)\r\n .mutation(async ({ input }) => {\r\n return handleTRPCResult(await recurrenceService.update(input));\r\n }),\r\n\r\n updateRule: procedure\r\n .input(updateRecurrenceRulesSchema)\r\n .output(recurrenceRulesSchema)\r\n .mutation(async ({ input }) => {\r\n return handleTRPCResult(await recurrenceService.updateRule(input));\r\n }),\r\n\r\n delete: procedure\r\n .input(deleteRecurrenceSchema)\r\n .output(deleteRecurrenceOutputSchema)\r\n .mutation(async ({ input }) => {\r\n return handleTRPCResult(await recurrenceService.delete(input));\r\n }),\r\n\r\n deleteRule: procedure\r\n .input(deleteRecurrenceRulesSchema)\r\n .output(deleteRecurrenceOutputSchema)\r\n .mutation(async ({ input }) => {\r\n return handleTRPCResult(await recurrenceService.deleteRule(input));\r\n }),\r\n });\r\n}\r\n"],"mappings":";;;;;AAcA,MAAM,+BAA+B,EAAE,OAAO;CAC5C,YAAY;CACZ,OAAO,EAAE,MAAM,sBAAsB;CACtC,CAAC;AAEF,MAAM,6BAA6B,EAAE,OAAO;CAC1C,MAAM,EAAE,MAAM,iBAAiB;CAC/B,OAAO,EAAE,QAAQ;CAClB,CAAC;AAEF,MAAM,8BAA8B,uBAAuB,OAAO,EAChE,IAAI,EAAE,QAAQ,EACf,CAAC;AAEF,MAAM,+BAA+B,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAEjE,SAAgB,qBACd,EAAE,QAAQ,kBAAkB,aAC5B,mBACA;AACA,QAAO,OAAO;EACZ,MAAM,UACH,MAAM,YAAY,QAAQ,EAAE,CAAC,CAAC,CAC9B,OAAO,2BAA2B,CAClC,MAAM,OAAO,EAAE,KAAK,YAAY;AAC/B,UAAO,iBAAiB,MAAM,kBAAkB,KAAK,OAAO,IAAI,CAAC;IACjE;EAEJ,QAAQ,UACL,MAAM,uBAAuB,CAC7B,OAAO,6BAA6B,CACpC,SAAS,OAAO,EAAE,KAAK,YAAY;AAClC,UAAO,iBAAiB,MAAM,kBAAkB,OAAO,OAAO,IAAI,CAAC;IACnE;EAEJ,UAAU,UACP,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CACnC,OAAO,iBAAiB,UAAU,CAAC,CACnC,MAAM,OAAO,EAAE,YAAY;AAC1B,UAAO,iBAAiB,MAAM,kBAAkB,SAAS,MAAM,GAAG,CAAC;IACnE;EAEJ,QAAQ,UACL,MAAM,4BAA4B,CAClC,OAAO,iBAAiB,CACxB,SAAS,OAAO,EAAE,YAAY;AAC7B,UAAO,iBAAiB,MAAM,kBAAkB,OAAO,MAAM,CAAC;IAC9D;EAEJ,YAAY,UACT,MAAM,4BAA4B,CAClC,OAAO,sBAAsB,CAC7B,SAAS,OAAO,EAAE,YAAY;AAC7B,UAAO,iBAAiB,MAAM,kBAAkB,WAAW,MAAM,CAAC;IAClE;EAEJ,QAAQ,UACL,MAAM,uBAAuB,CAC7B,OAAO,6BAA6B,CACpC,SAAS,OAAO,EAAE,YAAY;AAC7B,UAAO,iBAAiB,MAAM,kBAAkB,OAAO,MAAM,CAAC;IAC9D;EAEJ,YAAY,UACT,MAAM,4BAA4B,CAClC,OAAO,6BAA6B,CACpC,SAAS,OAAO,EAAE,YAAY;AAC7B,UAAO,iBAAiB,MAAM,kBAAkB,WAAW,MAAM,CAAC;IAClE;EACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { z } from "zod";
2
+
3
+ //#region src/modules/social/social.dto.d.ts
4
+ declare const socialMediaInputSchema: z.ZodObject<{
5
+ s3Path: z.ZodString;
6
+ mediaType: z.ZodOptional<z.ZodEnum<{
7
+ image: "image";
8
+ video: "video";
9
+ document: "document";
10
+ }>>;
11
+ title: z.ZodOptional<z.ZodString>;
12
+ description: z.ZodOptional<z.ZodString>;
13
+ }, z.core.$strip>;
14
+ declare const socialPostInputSchema: z.ZodObject<{
15
+ text: z.ZodString;
16
+ media: z.ZodOptional<z.ZodArray<z.ZodObject<{
17
+ s3Path: z.ZodString;
18
+ mediaType: z.ZodOptional<z.ZodEnum<{
19
+ image: "image";
20
+ video: "video";
21
+ document: "document";
22
+ }>>;
23
+ title: z.ZodOptional<z.ZodString>;
24
+ description: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strip>>>;
26
+ visibility: z.ZodDefault<z.ZodEnum<{
27
+ PUBLIC: "PUBLIC";
28
+ CONNECTIONS: "CONNECTIONS";
29
+ }>>;
30
+ }, z.core.$strip>;
31
+ declare const socialPostOutputSchema: z.ZodObject<{
32
+ shareUrn: z.ZodOptional<z.ZodString>;
33
+ }, z.core.$strip>;
34
+ type SocialPostInput = z.infer<typeof socialPostInputSchema>;
35
+ type SocialMediaInput = z.infer<typeof socialMediaInputSchema>;
36
+ type SocialPostOutput = z.infer<typeof socialPostOutputSchema>;
37
+ //#endregion
38
+ export { SocialMediaInput, SocialPostInput, SocialPostOutput, socialMediaInputSchema, socialPostInputSchema, socialPostOutputSchema };
39
+ //# sourceMappingURL=social.dto.d.mts.map
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ //#region src/modules/social/social.dto.ts
3
+ const socialMediaInputSchema = z.object({
4
+ s3Path: z.string().min(1, "Media S3 path is required"),
5
+ mediaType: z.enum([
6
+ "image",
7
+ "video",
8
+ "document"
9
+ ]).optional(),
10
+ title: z.string().max(300).optional(),
11
+ description: z.string().max(2e3).optional()
12
+ });
13
+ const socialPostInputSchema = z.object({
14
+ text: z.string().min(1, "Post text is required"),
15
+ media: z.array(socialMediaInputSchema).max(4).optional(),
16
+ visibility: z.enum(["PUBLIC", "CONNECTIONS"]).default("PUBLIC")
17
+ });
18
+ const socialPostOutputSchema = z.object({ shareUrn: z.string().optional() });
19
+ //#endregion
20
+ export { socialMediaInputSchema, socialPostInputSchema, socialPostOutputSchema };
21
+
22
+ //# sourceMappingURL=social.dto.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.dto.mjs","names":[],"sources":["../../../../src/modules/social/social.dto.ts"],"sourcesContent":["import { z } from \"zod\";\r\n\r\nexport const socialMediaInputSchema = z.object({\r\n s3Path: z.string().min(1, \"Media S3 path is required\"),\r\n mediaType: z.enum([\"image\", \"video\", \"document\"]).optional(),\r\n title: z.string().max(300).optional(),\r\n description: z.string().max(2000).optional(),\r\n});\r\n\r\nexport const socialPostInputSchema = z.object({\r\n text: z.string().min(1, \"Post text is required\"),\r\n media: z.array(socialMediaInputSchema).max(4).optional(),\r\n visibility: z.enum([\"PUBLIC\", \"CONNECTIONS\"]).default(\"PUBLIC\"),\r\n});\r\n\r\nexport const socialPostOutputSchema = z.object({\r\n shareUrn: z.string().optional(),\r\n});\r\n\r\nexport type SocialPostInput = z.infer<typeof socialPostInputSchema>;\r\nexport type SocialMediaInput = z.infer<typeof socialMediaInputSchema>;\r\nexport type SocialPostOutput = z.infer<typeof socialPostOutputSchema>;\r\n"],"mappings":";;AAEA,MAAa,yBAAyB,EAAE,OAAO;CAC7C,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,4BAA4B;CACtD,WAAW,EAAE,KAAK;EAAC;EAAS;EAAS;EAAW,CAAC,CAAC,UAAU;CAC5D,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU;CACrC,aAAa,EAAE,QAAQ,CAAC,IAAI,IAAK,CAAC,UAAU;CAC7C,CAAC;AAEF,MAAa,wBAAwB,EAAE,OAAO;CAC5C,MAAM,EAAE,QAAQ,CAAC,IAAI,GAAG,wBAAwB;CAChD,OAAO,EAAE,MAAM,uBAAuB,CAAC,IAAI,EAAE,CAAC,UAAU;CACxD,YAAY,EAAE,KAAK,CAAC,UAAU,cAAc,CAAC,CAAC,QAAQ,SAAS;CAChE,CAAC;AAEF,MAAa,yBAAyB,EAAE,OAAO,EAC7C,UAAU,EAAE,QAAQ,CAAC,UAAU,EAChC,CAAC"}
@@ -1,5 +1,7 @@
1
- import type { SocialProvider } from "./social.types";
2
- export declare function createLinkedInSocialProvider(): SocialProvider;
1
+ import { SocialProvider } from "./social.types.mjs";
2
+
3
+ //#region src/modules/social/social.linkedin.d.ts
4
+ declare function createLinkedInSocialProvider(): SocialProvider;
3
5
  /**
4
6
  * Escapes special characters in text for LinkedIn's post commentary field.
5
7
  * LinkedIn requires certain characters to be backslash-escaped.
@@ -7,4 +9,7 @@ export declare function createLinkedInSocialProvider(): SocialProvider;
7
9
  * Converts simple hashtags (#tag) to the template format.
8
10
  * @see https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/little-text-format
9
11
  */
10
- export declare function escapeLinkedInText(text: string): string;
12
+ declare function escapeLinkedInText(text: string): string;
13
+ //#endregion
14
+ export { createLinkedInSocialProvider, escapeLinkedInText };
15
+ //# sourceMappingURL=social.linkedin.d.mts.map
@@ -0,0 +1,346 @@
1
+ import { createReadStream } from "node:fs";
2
+ import { stat, unlink } from "node:fs/promises";
3
+ //#region src/modules/social/social.linkedin.ts
4
+ const LINKEDIN_API_BASE = "https://api.linkedin.com/rest";
5
+ const LINKEDIN_VERSION = "202601";
6
+ const IMAGES_URL = `${LINKEDIN_API_BASE}/images?action=initializeUpload`;
7
+ const VIDEOS_URL = `${LINKEDIN_API_BASE}/videos?action=initializeUpload`;
8
+ const VIDEOS_FINALIZE_URL = `${LINKEDIN_API_BASE}/videos?action=finalizeUpload`;
9
+ const DOCUMENTS_URL = `${LINKEDIN_API_BASE}/documents?action=initializeUpload`;
10
+ const POSTS_URL = `${LINKEDIN_API_BASE}/posts`;
11
+ function getApiHeaders(accessToken) {
12
+ return {
13
+ Authorization: `Bearer ${accessToken}`,
14
+ "Content-Type": "application/json",
15
+ "Linkedin-Version": LINKEDIN_VERSION,
16
+ "X-Restli-Protocol-Version": "2.0.0"
17
+ };
18
+ }
19
+ function createLinkedInSocialProvider() {
20
+ return {
21
+ id: "linkedin",
22
+ async post({ deps, context, payload }) {
23
+ const personUrn = resolveAuthorUrn(context.connection);
24
+ const mediaDescriptors = payload.media ?? [];
25
+ let uploadedAssets = [];
26
+ if (mediaDescriptors.length > 0) uploadedAssets = await uploadMediaAssets({
27
+ accessToken: context.accessToken,
28
+ fileService: deps.fileService,
29
+ mediaDescriptors,
30
+ personUrn
31
+ });
32
+ const response = await publishPost({
33
+ accessToken: context.accessToken,
34
+ personUrn,
35
+ payload,
36
+ uploadedAssets
37
+ });
38
+ return {
39
+ shareUrn: response.postUrn,
40
+ rawResponse: response.raw
41
+ };
42
+ }
43
+ };
44
+ }
45
+ function resolveAuthorUrn(connection) {
46
+ if (connection.metadataJson) try {
47
+ const metadata = connection.metadataJson;
48
+ if (metadata.linkedInUrn && typeof metadata.linkedInUrn === "string") return metadata.linkedInUrn;
49
+ } catch {
50
+ throw new Error("Failed to parse LinkedIn connection metadata");
51
+ }
52
+ if (connection.providerAccountId) return `urn:li:person:${connection.providerAccountId}`;
53
+ throw new Error("LinkedIn connection is missing a person URN");
54
+ }
55
+ async function uploadMediaAssets(params) {
56
+ const results = [];
57
+ for (const descriptor of params.mediaDescriptors) {
58
+ const download = await params.fileService.downloadS3ToFile(descriptor.s3Path);
59
+ if (download.isErr()) throw download.error;
60
+ const localPath = download.value;
61
+ try {
62
+ const mediaType = determineMediaType(descriptor.mediaType, localPath);
63
+ let assetUrn;
64
+ switch (mediaType) {
65
+ case "image":
66
+ assetUrn = await uploadImage({
67
+ accessToken: params.accessToken,
68
+ personUrn: params.personUrn,
69
+ localPath
70
+ });
71
+ break;
72
+ case "video":
73
+ assetUrn = await uploadVideo({
74
+ accessToken: params.accessToken,
75
+ personUrn: params.personUrn,
76
+ localPath
77
+ });
78
+ break;
79
+ case "document":
80
+ assetUrn = await uploadDocument({
81
+ accessToken: params.accessToken,
82
+ personUrn: params.personUrn,
83
+ localPath
84
+ });
85
+ break;
86
+ }
87
+ results.push({
88
+ assetUrn,
89
+ mediaType,
90
+ title: descriptor.title,
91
+ description: descriptor.description
92
+ });
93
+ } finally {
94
+ await unlink(localPath).catch(() => void 0);
95
+ }
96
+ }
97
+ return results;
98
+ }
99
+ function determineMediaType(explicitType, localPath) {
100
+ if (explicitType) return explicitType;
101
+ const extension = localPath.split(".").pop()?.toLowerCase();
102
+ if (!extension) throw new Error("Unable to determine media type from file extension");
103
+ const imageExtensions = new Set([
104
+ "jpg",
105
+ "jpeg",
106
+ "png",
107
+ "gif",
108
+ "webp"
109
+ ]);
110
+ const videoExtensions = new Set([
111
+ "mp4",
112
+ "mov",
113
+ "m4v",
114
+ "avi",
115
+ "mkv",
116
+ "webm"
117
+ ]);
118
+ const documentExtensions = new Set([
119
+ "pdf",
120
+ "ppt",
121
+ "pptx",
122
+ "doc",
123
+ "docx"
124
+ ]);
125
+ if (imageExtensions.has(extension)) return "image";
126
+ if (videoExtensions.has(extension)) return "video";
127
+ if (documentExtensions.has(extension)) return "document";
128
+ throw new Error(`Unsupported media extension: ${extension}`);
129
+ }
130
+ async function uploadImage(params) {
131
+ const initResponse = await fetch(IMAGES_URL, {
132
+ method: "POST",
133
+ headers: getApiHeaders(params.accessToken),
134
+ body: JSON.stringify({ initializeUploadRequest: { owner: params.personUrn } })
135
+ });
136
+ if (!initResponse.ok) {
137
+ const errorText = await initResponse.text().catch(() => "");
138
+ throw new Error(`LinkedIn image upload initialization failed: ${initResponse.status} ${errorText}`);
139
+ }
140
+ const { uploadUrl, image } = (await initResponse.json()).value;
141
+ if (!uploadUrl || !image) throw new Error("LinkedIn image initialization response missing required fields");
142
+ await uploadBinaryToLinkedIn({
143
+ uploadUrl,
144
+ localPath: params.localPath,
145
+ mimeType: inferImageMime(params.localPath)
146
+ });
147
+ return image;
148
+ }
149
+ async function uploadVideo(params) {
150
+ const fileSizeBytes = await getFileSize(params.localPath);
151
+ const initResponse = await fetch(VIDEOS_URL, {
152
+ method: "POST",
153
+ headers: getApiHeaders(params.accessToken),
154
+ body: JSON.stringify({ initializeUploadRequest: {
155
+ owner: params.personUrn,
156
+ fileSizeBytes,
157
+ uploadCaptions: false,
158
+ uploadThumbnail: false
159
+ } })
160
+ });
161
+ if (!initResponse.ok) {
162
+ const errorText = await initResponse.text().catch(() => "");
163
+ throw new Error(`LinkedIn video upload initialization failed: ${initResponse.status} ${errorText}`);
164
+ }
165
+ const { uploadInstructions, video, uploadToken } = (await initResponse.json()).value;
166
+ if (!uploadInstructions || !video || !uploadToken) throw new Error("LinkedIn video initialization response missing required fields");
167
+ const uploadedPartIds = await uploadVideoMultipart({
168
+ localPath: params.localPath,
169
+ uploadInstructions
170
+ });
171
+ await finalizeVideoUpload({
172
+ accessToken: params.accessToken,
173
+ video,
174
+ uploadToken,
175
+ uploadedPartIds
176
+ });
177
+ return video;
178
+ }
179
+ async function uploadVideoMultipart(params) {
180
+ const uploadedPartIds = [];
181
+ for (const instruction of params.uploadInstructions) {
182
+ const chunkStream = createReadStream(params.localPath, {
183
+ start: instruction.firstByte,
184
+ end: instruction.lastByte
185
+ });
186
+ const uploadResponse = await fetch(instruction.uploadUrl, {
187
+ method: "PUT",
188
+ headers: { "Content-Type": "application/octet-stream" },
189
+ body: chunkStream,
190
+ duplex: "half"
191
+ });
192
+ if (!uploadResponse.ok) {
193
+ const errorText = await uploadResponse.text().catch(() => "");
194
+ throw new Error(`LinkedIn video part upload failed: ${uploadResponse.status} ${errorText}`);
195
+ }
196
+ const etag = uploadResponse.headers.get("etag");
197
+ if (!etag) throw new Error("LinkedIn video part upload response missing ETag header");
198
+ uploadedPartIds.push(etag.replace(/"/g, ""));
199
+ }
200
+ return uploadedPartIds;
201
+ }
202
+ async function finalizeVideoUpload(params) {
203
+ const response = await fetch(VIDEOS_FINALIZE_URL, {
204
+ method: "POST",
205
+ headers: getApiHeaders(params.accessToken),
206
+ body: JSON.stringify({ finalizeUploadRequest: {
207
+ video: params.video,
208
+ uploadToken: params.uploadToken,
209
+ uploadedPartIds: params.uploadedPartIds
210
+ } })
211
+ });
212
+ if (!response.ok) {
213
+ const errorText = await response.text().catch(() => "");
214
+ throw new Error(`LinkedIn video finalize failed: ${response.status} ${errorText}`);
215
+ }
216
+ }
217
+ async function uploadDocument(params) {
218
+ const initResponse = await fetch(DOCUMENTS_URL, {
219
+ method: "POST",
220
+ headers: getApiHeaders(params.accessToken),
221
+ body: JSON.stringify({ initializeUploadRequest: { owner: params.personUrn } })
222
+ });
223
+ if (!initResponse.ok) {
224
+ const errorText = await initResponse.text().catch(() => "");
225
+ throw new Error(`LinkedIn document upload initialization failed: ${initResponse.status} ${errorText}`);
226
+ }
227
+ const { uploadUrl, document } = (await initResponse.json()).value;
228
+ if (!uploadUrl || !document) throw new Error("LinkedIn document initialization response missing required fields");
229
+ await uploadBinaryToLinkedIn({
230
+ uploadUrl,
231
+ localPath: params.localPath,
232
+ mimeType: inferDocumentMime(params.localPath)
233
+ });
234
+ return document;
235
+ }
236
+ async function uploadBinaryToLinkedIn(params) {
237
+ const uploadResponse = await fetch(params.uploadUrl, {
238
+ method: "PUT",
239
+ headers: { "Content-Type": params.mimeType },
240
+ body: createReadStream(params.localPath),
241
+ duplex: "half"
242
+ });
243
+ if (!uploadResponse.ok) {
244
+ const errorText = await uploadResponse.text().catch(() => "");
245
+ throw new Error(`LinkedIn media upload failed: ${uploadResponse.status} ${errorText}`);
246
+ }
247
+ }
248
+ async function getFileSize(filePath) {
249
+ return (await stat(filePath)).size;
250
+ }
251
+ function inferImageMime(localPath) {
252
+ switch (localPath.split(".").pop()?.toLowerCase()) {
253
+ case "png": return "image/png";
254
+ case "webp": return "image/webp";
255
+ case "gif": return "image/gif";
256
+ case "jpg":
257
+ case "jpeg": return "image/jpeg";
258
+ default: return "application/octet-stream";
259
+ }
260
+ }
261
+ function inferDocumentMime(localPath) {
262
+ switch (localPath.split(".").pop()?.toLowerCase()) {
263
+ case "pdf": return "application/pdf";
264
+ case "doc": return "application/msword";
265
+ case "docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
266
+ case "ppt": return "application/vnd.ms-powerpoint";
267
+ case "pptx": return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
268
+ default: return "application/octet-stream";
269
+ }
270
+ }
271
+ async function publishPost(params) {
272
+ const body = buildPostBody(params);
273
+ const response = await fetch(POSTS_URL, {
274
+ method: "POST",
275
+ headers: getApiHeaders(params.accessToken),
276
+ body: JSON.stringify(body)
277
+ });
278
+ if (!response.ok) {
279
+ const errorText = await response.text().catch(() => "");
280
+ throw new Error(`LinkedIn post failed: ${response.status} ${errorText}`);
281
+ }
282
+ return {
283
+ postUrn: response.headers.get("x-restli-id") ?? void 0,
284
+ raw: await safeJson(response)
285
+ };
286
+ }
287
+ /**
288
+ * Escapes special characters in text for LinkedIn's post commentary field.
289
+ * LinkedIn requires certain characters to be backslash-escaped.
290
+ * Preserves mentions (@[Name](urn:li:...)) and hashtag templates ({hashtag|#|tag}).
291
+ * Converts simple hashtags (#tag) to the template format.
292
+ * @see https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/little-text-format
293
+ */
294
+ function escapeLinkedInText(text) {
295
+ const mentionPattern = /@\[[^\]]*\]\(urn:li:[^)]+\)/g;
296
+ const hashtagTemplatePattern = /\{hashtag\|\\?[##]\|[^}]+\}/g;
297
+ const simpleHashtagPattern = /#([a-zA-Z\u00C0-\u024F\u1E00-\u1EFF][\w\u00C0-\u024F\u1E00-\u1EFF]*)/g;
298
+ const preserved = [];
299
+ const createPlaceholder = (content) => {
300
+ const index = preserved.length;
301
+ preserved.push(content);
302
+ return `\x00${index}\x00`;
303
+ };
304
+ let result = text.replace(mentionPattern, (match) => createPlaceholder(match));
305
+ result = result.replace(hashtagTemplatePattern, (match) => createPlaceholder(match));
306
+ result = result.replace(simpleHashtagPattern, (_match, tag) => createPlaceholder(`{hashtag|\\#|${tag}}`));
307
+ result = result.replace(/\\/g, "\\\\").replace(/\|/g, "\\|").replace(/\{/g, "\\{").replace(/\}/g, "\\}").replace(/@/g, "\\@").replace(/\[/g, "\\[").replace(/\]/g, "\\]").replace(/\(/g, "\\(").replace(/\)/g, "\\)").replace(/</g, "\\<").replace(/>/g, "\\>").replace(/#/g, "\\#").replace(/\*/g, "\\*").replace(/_/g, "\\_").replace(/~/g, "\\~");
308
+ result = result.replace(/\x00(\d+)\x00/g, (_match, index) => preserved[Number(index)]);
309
+ return result;
310
+ }
311
+ function buildPostBody(params) {
312
+ const { personUrn, payload, uploadedAssets } = params;
313
+ const basePost = {
314
+ author: personUrn,
315
+ commentary: escapeLinkedInText(payload.text),
316
+ visibility: payload.visibility,
317
+ distribution: {
318
+ feedDistribution: "MAIN_FEED",
319
+ targetEntities: [],
320
+ thirdPartyDistributionChannels: []
321
+ },
322
+ lifecycleState: "PUBLISHED",
323
+ isReshareDisabledByAuthor: false
324
+ };
325
+ if (uploadedAssets.length === 0) return basePost;
326
+ if (uploadedAssets.length > 1) throw new Error("LinkedIn Posts API currently supports only a single media asset per post");
327
+ const asset = uploadedAssets[0];
328
+ const mediaContent = { id: asset.assetUrn };
329
+ if (asset.title) mediaContent.title = asset.title;
330
+ if (asset.description && asset.mediaType === "image") mediaContent.altText = asset.description;
331
+ return {
332
+ ...basePost,
333
+ content: { media: mediaContent }
334
+ };
335
+ }
336
+ async function safeJson(response) {
337
+ try {
338
+ return await response.json();
339
+ } catch {
340
+ return;
341
+ }
342
+ }
343
+ //#endregion
344
+ export { createLinkedInSocialProvider, escapeLinkedInText };
345
+
346
+ //# sourceMappingURL=social.linkedin.mjs.map