@ever-works/novu-channel-plugin 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -96,10 +96,14 @@ var USER_SELECTABLE_WORK_KINDS = [
96
96
  "repo",
97
97
  "app"
98
98
  ];
99
- var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "default"];
99
+ var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "project", "default"];
100
100
  new Set(WORK_KINDS);
101
101
  var GOAL_KINDS = ["metric", "delivery"];
102
102
  new Set(GOAL_KINDS);
103
+ var RECORD_VISIBILITIES = ["private", "team", "organization"];
104
+ new Set(RECORD_VISIBILITIES);
105
+ var RECORD_LIST_VIEWS = ["mine", "shared", "organization"];
106
+ new Set(RECORD_LIST_VIEWS);
103
107
  var VERSION = "1.0.0";
104
108
  var GTM_SKILLS = [
105
109
  // ── research ────────────────────────────────────────────────────────
@@ -805,6 +809,115 @@ var ACTION_CATEGORIES = Object.freeze([
805
809
  Object.freeze(
806
810
  ACTION_CATEGORIES.filter((c) => c !== "read.internal")
807
811
  );
812
+ var DOMAIN_EVENT_CATALOG = [
813
+ // EW-P2-6 — `org:write` (and the app) create Organizations.
814
+ { type: "organization.created", domain: "organization", aggregateType: "organization", phase: "P2" },
815
+ { type: "organization.updated", domain: "organization", aggregateType: "organization", phase: "P1" },
816
+ {
817
+ type: "organization.member.added",
818
+ domain: "organization",
819
+ aggregateType: "organization",
820
+ phase: "P1",
821
+ child: "member"
822
+ },
823
+ {
824
+ type: "organization.member.updated",
825
+ domain: "organization",
826
+ aggregateType: "organization",
827
+ phase: "P1",
828
+ child: "member"
829
+ },
830
+ {
831
+ type: "organization.member.removed",
832
+ domain: "organization",
833
+ aggregateType: "organization",
834
+ phase: "P1",
835
+ child: "member"
836
+ },
837
+ { type: "agent.created", domain: "agents", aggregateType: "agent", phase: "P1" },
838
+ { type: "agent.updated", domain: "agents", aggregateType: "agent", phase: "P1" },
839
+ { type: "agent.status_changed", domain: "agents", aggregateType: "agent", phase: "P1" },
840
+ { type: "agent.archived", domain: "agents", aggregateType: "agent", phase: "P1" },
841
+ { type: "agent.deleted", domain: "agents", aggregateType: "agent", phase: "P1" },
842
+ { type: "team.created", domain: "teams", aggregateType: "team", phase: "P1" },
843
+ { type: "team.updated", domain: "teams", aggregateType: "team", phase: "P1" },
844
+ { type: "team.deleted", domain: "teams", aggregateType: "team", phase: "P1" },
845
+ { type: "team.member.added", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
846
+ { type: "team.member.updated", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
847
+ { type: "team.member.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
848
+ { type: "team.resource.added", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
849
+ { type: "team.resource.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
850
+ { type: "work.created", domain: "works", aggregateType: "work", phase: "P1" },
851
+ { type: "work.updated", domain: "works", aggregateType: "work", phase: "P1" },
852
+ { type: "work.archived", domain: "works", aggregateType: "work", phase: "P1" },
853
+ { type: "work.deleted", domain: "works", aggregateType: "work", phase: "P1" },
854
+ { type: "work.member.added", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
855
+ { type: "work.member.updated", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
856
+ { type: "work.member.removed", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
857
+ { type: "mission.created", domain: "missions", aggregateType: "mission", phase: "P2" },
858
+ { type: "mission.updated", domain: "missions", aggregateType: "mission", phase: "P2" },
859
+ { type: "mission.status_changed", domain: "missions", aggregateType: "mission", phase: "P2" },
860
+ { type: "mission.deleted", domain: "missions", aggregateType: "mission", phase: "P2" },
861
+ { type: "mission.goal.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
862
+ { type: "mission.goal.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
863
+ { type: "mission.work.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
864
+ { type: "mission.work.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
865
+ { type: "goal.created", domain: "goals", aggregateType: "goal", phase: "P2" },
866
+ { type: "goal.updated", domain: "goals", aggregateType: "goal", phase: "P2" },
867
+ { type: "goal.status_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
868
+ { type: "goal.archived", domain: "goals", aggregateType: "goal", phase: "P2" },
869
+ { type: "goal.unarchived", domain: "goals", aggregateType: "goal", phase: "P2" },
870
+ { type: "goal.deleted", domain: "goals", aggregateType: "goal", phase: "P2" },
871
+ { type: "goal.progress_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
872
+ { type: "idea.created", domain: "ideas", aggregateType: "idea", phase: "P2" },
873
+ { type: "idea.updated", domain: "ideas", aggregateType: "idea", phase: "P2" },
874
+ { type: "idea.status_changed", domain: "ideas", aggregateType: "idea", phase: "P2" },
875
+ { type: "idea.deleted", domain: "ideas", aggregateType: "idea", phase: "P2" },
876
+ { type: "task.created", domain: "tasks", aggregateType: "task", phase: "P1" },
877
+ { type: "task.updated", domain: "tasks", aggregateType: "task", phase: "P1" },
878
+ { type: "task.transitioned", domain: "tasks", aggregateType: "task", phase: "P1" },
879
+ { type: "task.deleted", domain: "tasks", aggregateType: "task", phase: "P1" },
880
+ { type: "task.assignee.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
881
+ { type: "task.assignee.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
882
+ { type: "task.watcher.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
883
+ { type: "task.watcher.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
884
+ { type: "task.block.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
885
+ { type: "task.block.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
886
+ { type: "task.relation.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
887
+ { type: "task.relation.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
888
+ { type: "task.comment.created", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
889
+ { type: "task.comment.updated", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
890
+ { type: "task.comment.deleted", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
891
+ { type: "task.attachment.added", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
892
+ { type: "task.attachment.removed", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
893
+ { type: "task.runtime_updated", domain: "tasks", aggregateType: "task", phase: "P1", optIn: true },
894
+ { type: "inbox.item.created", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
895
+ { type: "inbox.item.answered", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
896
+ { type: "inbox.item.state_changed", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
897
+ { type: "inbox.item.deleted", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
898
+ { type: "kb.document.created", domain: "kb", aggregateType: "kb_document", phase: "P3" },
899
+ { type: "kb.document.updated", domain: "kb", aggregateType: "kb_document", phase: "P3" },
900
+ { type: "kb.document.moved", domain: "kb", aggregateType: "kb_document", phase: "P3" },
901
+ { type: "kb.document.archived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
902
+ { type: "kb.document.unarchived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
903
+ { type: "kb.document.deleted", domain: "kb", aggregateType: "kb_document", phase: "P3" },
904
+ { type: "kb.document.review_changed", domain: "kb", aggregateType: "kb_document", phase: "P3" },
905
+ { type: "kb.folder.created", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
906
+ { type: "kb.folder.updated", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
907
+ { type: "kb.folder.deleted", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
908
+ { type: "email.message.received", domain: "email", aggregateType: "email_message", phase: "P4" },
909
+ { type: "email.message.sent", domain: "email", aggregateType: "email_message", phase: "P4" },
910
+ { type: "email.message.status_changed", domain: "email", aggregateType: "email_message", phase: "P4" },
911
+ { type: "task.visibility_changed", domain: "visibility", aggregateType: "task", phase: "P1" },
912
+ { type: "agent.visibility_changed", domain: "visibility", aggregateType: "agent", phase: "P1" },
913
+ { type: "goal.visibility_changed", domain: "visibility", aggregateType: "goal", phase: "P2" },
914
+ { type: "mission.visibility_changed", domain: "visibility", aggregateType: "mission", phase: "P2" },
915
+ { type: "idea.visibility_changed", domain: "visibility", aggregateType: "idea", phase: "P2" }
916
+ ];
917
+ DOMAIN_EVENT_CATALOG.map((entry) => entry.type);
918
+ new Map(
919
+ DOMAIN_EVENT_CATALOG.map((entry) => [entry.type, entry])
920
+ );
808
921
  var PLUGIN_CAPABILITIES = {
809
922
  // Notifications v2 (sibling of EW-650) — Notification Channels.
810
923
  // Plugins declare `NOTIFICATION_CHANNEL` (umbrella) plus the
package/dist/index.js CHANGED
@@ -94,10 +94,14 @@ var USER_SELECTABLE_WORK_KINDS = [
94
94
  "repo",
95
95
  "app"
96
96
  ];
97
- var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "default"];
97
+ var WORK_KINDS = [...USER_SELECTABLE_WORK_KINDS, "company", "campaign", "project", "default"];
98
98
  new Set(WORK_KINDS);
99
99
  var GOAL_KINDS = ["metric", "delivery"];
100
100
  new Set(GOAL_KINDS);
101
+ var RECORD_VISIBILITIES = ["private", "team", "organization"];
102
+ new Set(RECORD_VISIBILITIES);
103
+ var RECORD_LIST_VIEWS = ["mine", "shared", "organization"];
104
+ new Set(RECORD_LIST_VIEWS);
101
105
  var VERSION = "1.0.0";
102
106
  var GTM_SKILLS = [
103
107
  // ── research ────────────────────────────────────────────────────────
@@ -803,6 +807,115 @@ var ACTION_CATEGORIES = Object.freeze([
803
807
  Object.freeze(
804
808
  ACTION_CATEGORIES.filter((c) => c !== "read.internal")
805
809
  );
810
+ var DOMAIN_EVENT_CATALOG = [
811
+ // EW-P2-6 — `org:write` (and the app) create Organizations.
812
+ { type: "organization.created", domain: "organization", aggregateType: "organization", phase: "P2" },
813
+ { type: "organization.updated", domain: "organization", aggregateType: "organization", phase: "P1" },
814
+ {
815
+ type: "organization.member.added",
816
+ domain: "organization",
817
+ aggregateType: "organization",
818
+ phase: "P1",
819
+ child: "member"
820
+ },
821
+ {
822
+ type: "organization.member.updated",
823
+ domain: "organization",
824
+ aggregateType: "organization",
825
+ phase: "P1",
826
+ child: "member"
827
+ },
828
+ {
829
+ type: "organization.member.removed",
830
+ domain: "organization",
831
+ aggregateType: "organization",
832
+ phase: "P1",
833
+ child: "member"
834
+ },
835
+ { type: "agent.created", domain: "agents", aggregateType: "agent", phase: "P1" },
836
+ { type: "agent.updated", domain: "agents", aggregateType: "agent", phase: "P1" },
837
+ { type: "agent.status_changed", domain: "agents", aggregateType: "agent", phase: "P1" },
838
+ { type: "agent.archived", domain: "agents", aggregateType: "agent", phase: "P1" },
839
+ { type: "agent.deleted", domain: "agents", aggregateType: "agent", phase: "P1" },
840
+ { type: "team.created", domain: "teams", aggregateType: "team", phase: "P1" },
841
+ { type: "team.updated", domain: "teams", aggregateType: "team", phase: "P1" },
842
+ { type: "team.deleted", domain: "teams", aggregateType: "team", phase: "P1" },
843
+ { type: "team.member.added", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
844
+ { type: "team.member.updated", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
845
+ { type: "team.member.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "member" },
846
+ { type: "team.resource.added", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
847
+ { type: "team.resource.removed", domain: "teams", aggregateType: "team", phase: "P1", child: "resource" },
848
+ { type: "work.created", domain: "works", aggregateType: "work", phase: "P1" },
849
+ { type: "work.updated", domain: "works", aggregateType: "work", phase: "P1" },
850
+ { type: "work.archived", domain: "works", aggregateType: "work", phase: "P1" },
851
+ { type: "work.deleted", domain: "works", aggregateType: "work", phase: "P1" },
852
+ { type: "work.member.added", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
853
+ { type: "work.member.updated", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
854
+ { type: "work.member.removed", domain: "works", aggregateType: "work", phase: "P1", child: "member" },
855
+ { type: "mission.created", domain: "missions", aggregateType: "mission", phase: "P2" },
856
+ { type: "mission.updated", domain: "missions", aggregateType: "mission", phase: "P2" },
857
+ { type: "mission.status_changed", domain: "missions", aggregateType: "mission", phase: "P2" },
858
+ { type: "mission.deleted", domain: "missions", aggregateType: "mission", phase: "P2" },
859
+ { type: "mission.goal.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
860
+ { type: "mission.goal.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "goal" },
861
+ { type: "mission.work.linked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
862
+ { type: "mission.work.unlinked", domain: "missions", aggregateType: "mission", phase: "P2", child: "work" },
863
+ { type: "goal.created", domain: "goals", aggregateType: "goal", phase: "P2" },
864
+ { type: "goal.updated", domain: "goals", aggregateType: "goal", phase: "P2" },
865
+ { type: "goal.status_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
866
+ { type: "goal.archived", domain: "goals", aggregateType: "goal", phase: "P2" },
867
+ { type: "goal.unarchived", domain: "goals", aggregateType: "goal", phase: "P2" },
868
+ { type: "goal.deleted", domain: "goals", aggregateType: "goal", phase: "P2" },
869
+ { type: "goal.progress_changed", domain: "goals", aggregateType: "goal", phase: "P2" },
870
+ { type: "idea.created", domain: "ideas", aggregateType: "idea", phase: "P2" },
871
+ { type: "idea.updated", domain: "ideas", aggregateType: "idea", phase: "P2" },
872
+ { type: "idea.status_changed", domain: "ideas", aggregateType: "idea", phase: "P2" },
873
+ { type: "idea.deleted", domain: "ideas", aggregateType: "idea", phase: "P2" },
874
+ { type: "task.created", domain: "tasks", aggregateType: "task", phase: "P1" },
875
+ { type: "task.updated", domain: "tasks", aggregateType: "task", phase: "P1" },
876
+ { type: "task.transitioned", domain: "tasks", aggregateType: "task", phase: "P1" },
877
+ { type: "task.deleted", domain: "tasks", aggregateType: "task", phase: "P1" },
878
+ { type: "task.assignee.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
879
+ { type: "task.assignee.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "assignee" },
880
+ { type: "task.watcher.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
881
+ { type: "task.watcher.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "watcher" },
882
+ { type: "task.block.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
883
+ { type: "task.block.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "block" },
884
+ { type: "task.relation.added", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
885
+ { type: "task.relation.removed", domain: "tasks", aggregateType: "task", phase: "P1", child: "relation" },
886
+ { type: "task.comment.created", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
887
+ { type: "task.comment.updated", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
888
+ { type: "task.comment.deleted", domain: "tasks", aggregateType: "task", phase: "P1", child: "comment" },
889
+ { type: "task.attachment.added", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
890
+ { type: "task.attachment.removed", domain: "tasks", aggregateType: "task", phase: "P3", child: "attachment" },
891
+ { type: "task.runtime_updated", domain: "tasks", aggregateType: "task", phase: "P1", optIn: true },
892
+ { type: "inbox.item.created", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
893
+ { type: "inbox.item.answered", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
894
+ { type: "inbox.item.state_changed", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
895
+ { type: "inbox.item.deleted", domain: "inbox", aggregateType: "inbox_item", phase: "P3" },
896
+ { type: "kb.document.created", domain: "kb", aggregateType: "kb_document", phase: "P3" },
897
+ { type: "kb.document.updated", domain: "kb", aggregateType: "kb_document", phase: "P3" },
898
+ { type: "kb.document.moved", domain: "kb", aggregateType: "kb_document", phase: "P3" },
899
+ { type: "kb.document.archived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
900
+ { type: "kb.document.unarchived", domain: "kb", aggregateType: "kb_document", phase: "P3" },
901
+ { type: "kb.document.deleted", domain: "kb", aggregateType: "kb_document", phase: "P3" },
902
+ { type: "kb.document.review_changed", domain: "kb", aggregateType: "kb_document", phase: "P3" },
903
+ { type: "kb.folder.created", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
904
+ { type: "kb.folder.updated", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
905
+ { type: "kb.folder.deleted", domain: "kb", aggregateType: "kb_folder", phase: "P3" },
906
+ { type: "email.message.received", domain: "email", aggregateType: "email_message", phase: "P4" },
907
+ { type: "email.message.sent", domain: "email", aggregateType: "email_message", phase: "P4" },
908
+ { type: "email.message.status_changed", domain: "email", aggregateType: "email_message", phase: "P4" },
909
+ { type: "task.visibility_changed", domain: "visibility", aggregateType: "task", phase: "P1" },
910
+ { type: "agent.visibility_changed", domain: "visibility", aggregateType: "agent", phase: "P1" },
911
+ { type: "goal.visibility_changed", domain: "visibility", aggregateType: "goal", phase: "P2" },
912
+ { type: "mission.visibility_changed", domain: "visibility", aggregateType: "mission", phase: "P2" },
913
+ { type: "idea.visibility_changed", domain: "visibility", aggregateType: "idea", phase: "P2" }
914
+ ];
915
+ DOMAIN_EVENT_CATALOG.map((entry) => entry.type);
916
+ new Map(
917
+ DOMAIN_EVENT_CATALOG.map((entry) => [entry.type, entry])
918
+ );
806
919
  var PLUGIN_CAPABILITIES = {
807
920
  // Notifications v2 (sibling of EW-650) — Notification Channels.
808
921
  // Plugins declare `NOTIFICATION_CHANNEL` (umbrella) plus the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ever-works/novu-channel-plugin",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "Novu notification-channel plugin (workflow meta-router) for Ever Works platform",
5
5
  "author": {
6
6
  "name": "Ever Co. LTD",
@@ -32,13 +32,13 @@
32
32
  "test:watch": "vitest"
33
33
  },
34
34
  "dependencies": {
35
- "@ever-works/plugin": "^1.2.4"
35
+ "@ever-works/plugin": "^1.2.5"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/node": "^26.6.4",
39
39
  "tsup": "^8.0.0",
40
40
  "typescript": "^5.9.3",
41
- "vitest": "^4.1.0"
41
+ "vitest": "^5.0.5"
42
42
  },
43
43
  "everworks": {
44
44
  "plugin": {
@@ -73,8 +73,8 @@
73
73
  "url": "https://github.com/ever-works/ever-works/issues"
74
74
  },
75
75
  "everworksRelease": {
76
- "contentHash": "sha256:2e42c8fc56bd8a88163f623c55d19f3f5b5c961bf011f6906a3ba065968968f6",
77
- "commit": "61b8320b4ad7d30bf5161acf7ee13b250a6172b9",
78
- "source": "https://github.com/ever-works/ever-works/tree/61b8320b4ad7d30bf5161acf7ee13b250a6172b9/packages/plugins/novu-channel"
76
+ "contentHash": "sha256:84d5a7501ddab679ac534e317efdd0a458cf4a86d334c68c79a9ec8dd99aeeeb",
77
+ "commit": "19905c70cf05be3bc523db030597046067cd322a",
78
+ "source": "https://github.com/ever-works/ever-works/tree/19905c70cf05be3bc523db030597046067cd322a/packages/plugins/novu-channel"
79
79
  }
80
80
  }