@lead-routing/cli 0.1.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 (54) hide show
  1. package/dist/index.js +1916 -0
  2. package/dist/prisma/migrations/20260101000000_init/migration.sql +276 -0
  3. package/dist/prisma/migrations/20260223000000_add_routing_log_dismissed/migration.sql +2 -0
  4. package/dist/prisma/migrations/20260224000000_add_org_notification_webhook/migration.sql +2 -0
  5. package/dist/prisma/migrations/20260227000000_self_hosted_schema_updates/migration.sql +68 -0
  6. package/dist/prisma/schema.prisma +315 -0
  7. package/dist/sfdc-package/force-app/main/default/applications/Lead_Router_Setup.app-meta.xml +12 -0
  8. package/dist/sfdc-package/force-app/main/default/classes/AccountTriggerTest.cls +58 -0
  9. package/dist/sfdc-package/force-app/main/default/classes/AccountTriggerTest.cls-meta.xml +5 -0
  10. package/dist/sfdc-package/force-app/main/default/classes/ContactTriggerTest.cls +62 -0
  11. package/dist/sfdc-package/force-app/main/default/classes/ContactTriggerTest.cls-meta.xml +5 -0
  12. package/dist/sfdc-package/force-app/main/default/classes/LeadTriggerTest.cls +95 -0
  13. package/dist/sfdc-package/force-app/main/default/classes/LeadTriggerTest.cls-meta.xml +5 -0
  14. package/dist/sfdc-package/force-app/main/default/classes/OnboardingController.cls +183 -0
  15. package/dist/sfdc-package/force-app/main/default/classes/OnboardingController.cls-meta.xml +5 -0
  16. package/dist/sfdc-package/force-app/main/default/classes/RoutingEngineCallout.cls +96 -0
  17. package/dist/sfdc-package/force-app/main/default/classes/RoutingEngineCallout.cls-meta.xml +5 -0
  18. package/dist/sfdc-package/force-app/main/default/classes/RoutingEngineMock.cls +28 -0
  19. package/dist/sfdc-package/force-app/main/default/classes/RoutingEngineMock.cls-meta.xml +5 -0
  20. package/dist/sfdc-package/force-app/main/default/classes/RoutingPayloadBuilder.cls +50 -0
  21. package/dist/sfdc-package/force-app/main/default/classes/RoutingPayloadBuilder.cls-meta.xml +5 -0
  22. package/dist/sfdc-package/force-app/main/default/lwc/onboardingWizard/onboardingWizard.html +230 -0
  23. package/dist/sfdc-package/force-app/main/default/lwc/onboardingWizard/onboardingWizard.js +222 -0
  24. package/dist/sfdc-package/force-app/main/default/lwc/onboardingWizard/onboardingWizard.js-meta.xml +11 -0
  25. package/dist/sfdc-package/force-app/main/default/namedCredentials/RoutingEngine.namedCredential-meta.xml +10 -0
  26. package/dist/sfdc-package/force-app/main/default/objects/Routing_Error_Log__c/Routing_Error_Log__c.object-meta.xml +21 -0
  27. package/dist/sfdc-package/force-app/main/default/objects/Routing_Error_Log__c/fields/Created_At__c.field-meta.xml +6 -0
  28. package/dist/sfdc-package/force-app/main/default/objects/Routing_Error_Log__c/fields/Payload__c.field-meta.xml +8 -0
  29. package/dist/sfdc-package/force-app/main/default/objects/Routing_Error_Log__c/fields/Response_Body__c.field-meta.xml +8 -0
  30. package/dist/sfdc-package/force-app/main/default/objects/Routing_Error_Log__c/fields/Status_Code__c.field-meta.xml +9 -0
  31. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/Routing_Settings__c.object-meta.xml +8 -0
  32. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Account_Insert_Enabled__c.field-meta.xml +7 -0
  33. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Account_Routing_Enabled__c.field-meta.xml +7 -0
  34. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Account_Update_Enabled__c.field-meta.xml +7 -0
  35. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/App_Url__c.field-meta.xml +8 -0
  36. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Contact_Insert_Enabled__c.field-meta.xml +7 -0
  37. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Contact_Routing_Enabled__c.field-meta.xml +7 -0
  38. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Contact_Update_Enabled__c.field-meta.xml +7 -0
  39. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Engine_Endpoint__c.field-meta.xml +8 -0
  40. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Lead_Insert_Enabled__c.field-meta.xml +7 -0
  41. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Lead_Routing_Enabled__c.field-meta.xml +7 -0
  42. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Lead_Update_Enabled__c.field-meta.xml +7 -0
  43. package/dist/sfdc-package/force-app/main/default/objects/Routing_Settings__c/fields/Webhook_Secret__c.field-meta.xml +8 -0
  44. package/dist/sfdc-package/force-app/main/default/permissionsets/LeadRouterAdmin.permissionset-meta.xml +14 -0
  45. package/dist/sfdc-package/force-app/main/default/remoteSiteSettings/LeadRouterEngine.remoteSite-meta.xml +7 -0
  46. package/dist/sfdc-package/force-app/main/default/tabs/Lead_Router_Setup.tab-meta.xml +7 -0
  47. package/dist/sfdc-package/force-app/main/default/triggers/AccountTrigger.trigger +28 -0
  48. package/dist/sfdc-package/force-app/main/default/triggers/AccountTrigger.trigger-meta.xml +5 -0
  49. package/dist/sfdc-package/force-app/main/default/triggers/ContactTrigger.trigger +28 -0
  50. package/dist/sfdc-package/force-app/main/default/triggers/ContactTrigger.trigger-meta.xml +5 -0
  51. package/dist/sfdc-package/force-app/main/default/triggers/LeadTrigger.trigger +28 -0
  52. package/dist/sfdc-package/force-app/main/default/triggers/LeadTrigger.trigger-meta.xml +5 -0
  53. package/dist/sfdc-package/sfdx-project.json +14 -0
  54. package/package.json +41 -0
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CustomField xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <fullName>Webhook_Secret__c</fullName>
4
+ <label>Webhook Secret</label>
5
+ <length>255</length>
6
+ <type>Text</type>
7
+ <unique>false</unique>
8
+ </CustomField>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <description>Grants access to the Lead Router Setup app and tab.</description>
4
+ <hasActivationRequired>false</hasActivationRequired>
5
+ <label>Lead Router Admin</label>
6
+ <applicationVisibilities>
7
+ <application>Lead_Router_Setup</application>
8
+ <visible>true</visible>
9
+ </applicationVisibilities>
10
+ <tabSettings>
11
+ <tab>Lead_Router_Setup</tab>
12
+ <visibility>Visible</visibility>
13
+ </tabSettings>
14
+ </PermissionSet>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <RemoteSiteSetting xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <description>Lead Router Engine endpoint — patched by lead-routing sfdc deploy</description>
4
+ <disableProtocolSecurity>false</disableProtocolSecurity>
5
+ <isActive>true</isActive>
6
+ <url>https://engine.openedgeai.tech</url>
7
+ </RemoteSiteSetting>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <lwcComponent>onboardingWizard</lwcComponent>
4
+ <label>Lead Router Setup</label>
5
+ <description>Lead Router Onboarding Wizard</description>
6
+ <motif>Custom45: Money</motif>
7
+ </CustomTab>
@@ -0,0 +1,28 @@
1
+ trigger AccountTrigger on Account (after insert, after update) {
2
+
3
+ Routing_Settings__c settings = Routing_Settings__c.getOrgDefaults();
4
+
5
+ if (!settings.Account_Routing_Enabled__c) return;
6
+
7
+ List<Id> insertIds = new List<Id>();
8
+ List<Id> updateIds = new List<Id>();
9
+
10
+ if (Trigger.isInsert && settings.Account_Insert_Enabled__c) {
11
+ for (Account a : Trigger.new) {
12
+ insertIds.add(a.Id);
13
+ }
14
+ }
15
+
16
+ if (Trigger.isUpdate && settings.Account_Update_Enabled__c) {
17
+ for (Account a : Trigger.new) {
18
+ updateIds.add(a.Id);
19
+ }
20
+ }
21
+
22
+ if (!insertIds.isEmpty()) {
23
+ RoutingEngineCallout.sendAsync('Account', insertIds, 'INSERT');
24
+ }
25
+ if (!updateIds.isEmpty()) {
26
+ RoutingEngineCallout.sendAsync('Account', updateIds, 'UPDATE');
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <apiVersion>59.0</apiVersion>
4
+ <status>Active</status>
5
+ </ApexTrigger>
@@ -0,0 +1,28 @@
1
+ trigger ContactTrigger on Contact (after insert, after update) {
2
+
3
+ Routing_Settings__c settings = Routing_Settings__c.getOrgDefaults();
4
+
5
+ if (!settings.Contact_Routing_Enabled__c) return;
6
+
7
+ List<Id> insertIds = new List<Id>();
8
+ List<Id> updateIds = new List<Id>();
9
+
10
+ if (Trigger.isInsert && settings.Contact_Insert_Enabled__c) {
11
+ for (Contact c : Trigger.new) {
12
+ insertIds.add(c.Id);
13
+ }
14
+ }
15
+
16
+ if (Trigger.isUpdate && settings.Contact_Update_Enabled__c) {
17
+ for (Contact c : Trigger.new) {
18
+ updateIds.add(c.Id);
19
+ }
20
+ }
21
+
22
+ if (!insertIds.isEmpty()) {
23
+ RoutingEngineCallout.sendAsync('Contact', insertIds, 'INSERT');
24
+ }
25
+ if (!updateIds.isEmpty()) {
26
+ RoutingEngineCallout.sendAsync('Contact', updateIds, 'UPDATE');
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <apiVersion>59.0</apiVersion>
4
+ <status>Active</status>
5
+ </ApexTrigger>
@@ -0,0 +1,28 @@
1
+ trigger LeadTrigger on Lead (after insert, after update) {
2
+
3
+ Routing_Settings__c settings = Routing_Settings__c.getOrgDefaults();
4
+
5
+ if (!settings.Lead_Routing_Enabled__c) return;
6
+
7
+ List<Id> insertIds = new List<Id>();
8
+ List<Id> updateIds = new List<Id>();
9
+
10
+ if (Trigger.isInsert && settings.Lead_Insert_Enabled__c) {
11
+ for (Lead l : Trigger.new) {
12
+ insertIds.add(l.Id);
13
+ }
14
+ }
15
+
16
+ if (Trigger.isUpdate && settings.Lead_Update_Enabled__c) {
17
+ for (Lead l : Trigger.new) {
18
+ updateIds.add(l.Id);
19
+ }
20
+ }
21
+
22
+ if (!insertIds.isEmpty()) {
23
+ RoutingEngineCallout.sendAsync('Lead', insertIds, 'INSERT');
24
+ }
25
+ if (!updateIds.isEmpty()) {
26
+ RoutingEngineCallout.sendAsync('Lead', updateIds, 'UPDATE');
27
+ }
28
+ }
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ApexTrigger xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <apiVersion>59.0</apiVersion>
4
+ <status>Active</status>
5
+ </ApexTrigger>
@@ -0,0 +1,14 @@
1
+ {
2
+ "packageDirectories": [
3
+ {
4
+ "path": "force-app",
5
+ "default": true,
6
+ "package": "LeadRouter",
7
+ "versionName": "ver 1.0",
8
+ "versionNumber": "1.0.0.NEXT"
9
+ }
10
+ ],
11
+ "name": "LeadRouter",
12
+ "namespace": "lrt",
13
+ "sourceApiVersion": "59.0"
14
+ }
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@lead-routing/cli",
3
+ "version": "0.1.0",
4
+ "description": "Self-hosted deployment CLI for Lead Routing",
5
+ "homepage": "https://github.com/lead-routing/lead-routing",
6
+ "keywords": ["salesforce", "lead-routing", "self-hosted", "deployment", "cli"],
7
+ "type": "module",
8
+ "bin": {
9
+ "lead-routing": "./dist/index.js"
10
+ },
11
+ "engines": {
12
+ "node": ">=20"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "prepare": "node -e \"const{cpSync,existsSync,rmSync}=require('fs');const src='../../sfdc-package';if(existsSync(src)){rmSync('sfdc-package',{recursive:true,force:true});cpSync(src,'sfdc-package',{recursive:true})}\"",
19
+ "build": "tsup",
20
+ "dev": "tsup --watch",
21
+ "type-check": "tsc --noEmit",
22
+ "prepublishOnly": "pnpm build"
23
+ },
24
+ "files": [
25
+ "dist/"
26
+ ],
27
+ "dependencies": {
28
+ "@clack/prompts": "^0.9.1",
29
+ "chalk": "^5.4.1",
30
+ "commander": "^13.1.0",
31
+ "execa": "^9.5.2",
32
+ "node-ssh": "^13.2.1",
33
+ "@prisma/client": "^6.5.0",
34
+ "prisma": "^6.5.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^22.0.0",
38
+ "tsup": "^8.4.0",
39
+ "typescript": "^5.9.3"
40
+ }
41
+ }