@coopenomics/notifications 2025.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.cursor/rules/notifications.mdc +20 -0
  2. package/.env-example +2 -0
  3. package/README.md +218 -0
  4. package/build.config.ts +13 -0
  5. package/dist/index.cjs +3027 -0
  6. package/dist/index.d.cts +792 -0
  7. package/dist/index.d.mts +792 -0
  8. package/dist/index.d.ts +792 -0
  9. package/dist/index.mjs +3016 -0
  10. package/dist/sync/novu-sync.service.d.ts +30 -0
  11. package/dist/sync/novu-sync.service.js +128 -0
  12. package/dist/sync/sync-runner.d.ts +4 -0
  13. package/dist/sync/sync-runner.js +130 -0
  14. package/dist/utils/role-utils.d.ts +8 -0
  15. package/dist/utils/role-utils.js +18 -0
  16. package/dist/workflows/incoming-transfer/incoming-transfer-workflow.d.ts +3 -0
  17. package/dist/workflows/incoming-transfer/incoming-transfer-workflow.js +16 -0
  18. package/dist/workflows/incoming-transfer/index.d.ts +3 -0
  19. package/dist/workflows/incoming-transfer/index.js +2 -0
  20. package/dist/workflows/incoming-transfer/types.d.ts +12 -0
  21. package/dist/workflows/incoming-transfer/types.js +5 -0
  22. package/dist/workflows/new-agenda-item/index.d.ts +3 -0
  23. package/dist/workflows/new-agenda-item/index.js +2 -0
  24. package/dist/workflows/new-agenda-item/new-agenda-item-workflow.d.ts +3 -0
  25. package/dist/workflows/new-agenda-item/new-agenda-item-workflow.js +16 -0
  26. package/dist/workflows/new-agenda-item/types.d.ts +27 -0
  27. package/dist/workflows/new-agenda-item/types.js +10 -0
  28. package/dist/workflows/role-based-workflows.d.ts +21 -0
  29. package/dist/workflows/role-based-workflows.js +65 -0
  30. package/package.json +51 -0
  31. package/src/base/defaults.ts +66 -0
  32. package/src/base/workflow-builder.ts +128 -0
  33. package/src/index.ts +9 -0
  34. package/src/sync/README.md +54 -0
  35. package/src/sync/novu-sync.service.ts +246 -0
  36. package/src/sync/sync-runner.ts +154 -0
  37. package/src/types/index.ts +99 -0
  38. package/src/utils/index.ts +1 -0
  39. package/src/utils/slugify/builtinReplacements.ts +2065 -0
  40. package/src/utils/slugify/slugify.ts +284 -0
  41. package/src/utils/slugify/transliterate.ts +48 -0
  42. package/src/workflows/approval-request/index.ts +52 -0
  43. package/src/workflows/approval-response/index.ts +54 -0
  44. package/src/workflows/decision-approved/index.ts +50 -0
  45. package/src/workflows/email-verification/index.ts +35 -0
  46. package/src/workflows/incoming-transfer/index.ts +43 -0
  47. package/src/workflows/index.ts +74 -0
  48. package/src/workflows/invite/index.ts +34 -0
  49. package/src/workflows/meet-ended/index.ts +51 -0
  50. package/src/workflows/meet-initial/index.ts +53 -0
  51. package/src/workflows/meet-reminder-end/index.ts +52 -0
  52. package/src/workflows/meet-reminder-start/index.ts +51 -0
  53. package/src/workflows/meet-restart/index.ts +53 -0
  54. package/src/workflows/meet-started/index.ts +51 -0
  55. package/src/workflows/new-agenda-item/index.ts +51 -0
  56. package/src/workflows/new-deposit-payment-request/index.ts +50 -0
  57. package/src/workflows/new-initial-payment-request/index.ts +50 -0
  58. package/src/workflows/payment-cancelled/index.ts +51 -0
  59. package/src/workflows/payment-paid/index.ts +50 -0
  60. package/src/workflows/reset-key/index.ts +36 -0
  61. package/src/workflows/server-provisioned/index.ts +45 -0
  62. package/src/workflows/welcome/index.ts +43 -0
  63. package/tsconfig.json +18 -0
@@ -0,0 +1,43 @@
1
+
2
+ import { z } from 'zod';
3
+ import { WorkflowDefinition } from '../../types';
4
+ import { WorkflowBuilder } from '../../base/workflow-builder';
5
+ import { createEmailStep, createInAppStep, createPushStep } from '../../base/defaults';
6
+ import { BaseWorkflowPayload } from '../../types';
7
+ import { slugify } from '../../utils';
8
+
9
+ // Схема для welcome воркфлоу
10
+ export const welcomePayloadSchema = z.object({
11
+ userName: z.string(),
12
+ });
13
+ export type IPayload = z.infer<typeof welcomePayloadSchema>;
14
+ export interface IWorkflow extends BaseWorkflowPayload, IPayload {}
15
+
16
+ export const name = 'Добро пожаловать';
17
+ export const id = slugify(name);
18
+
19
+ export const workflow: WorkflowDefinition<IWorkflow> = WorkflowBuilder
20
+ .create<IWorkflow>()
21
+ .name(name)
22
+ .workflowId(id)
23
+ .description('Приветственные уведомления для новых пользователей')
24
+ .payloadSchema(welcomePayloadSchema)
25
+ .tags(['user'])
26
+ .addSteps([
27
+ createEmailStep(
28
+ 'welcome-email',
29
+ 'Добро пожаловать, {{payload.userName}}',
30
+ 'Здравствуйте, {{payload.userName}}!<br><br>Для завершения процедуры вступления совершите взносы по предоставленным в личном кабинете реквизитам. После получения взноса совет примет Вас в пайщики. Обычно, это занимает не более 1-2 дней.'
31
+ ),
32
+ createInAppStep(
33
+ 'welcome-notification',
34
+ 'Добро пожаловать в систему',
35
+ 'Привет, {{payload.userName}}! Добро пожаловать в кооператив!'
36
+ ),
37
+ createPushStep(
38
+ 'welcome-push',
39
+ 'Добро пожаловать, {{payload.userName}}!',
40
+ 'Добро пожаловать в кооператив!'
41
+ ),
42
+ ])
43
+ .build();
package/tsconfig.json ADDED
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "ES2020",
5
+ "moduleResolution": "node",
6
+ "declaration": true,
7
+ "outDir": "./dist",
8
+ "rootDir": "./src",
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "allowSyntheticDefaultImports": true,
12
+ "skipLibCheck": true,
13
+ "forceConsistentCasingInFileNames": true,
14
+ "resolveJsonModule": true
15
+ },
16
+ "include": ["src/**/*"],
17
+ "exclude": ["node_modules", "dist"]
18
+ }