@salesforce/webapp-template-app-react-b2e-experimental 1.35.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 (144) hide show
  1. package/LICENSE.txt +82 -0
  2. package/dist/.a4drules/build-validation.md +81 -0
  3. package/dist/.a4drules/code-quality.md +150 -0
  4. package/dist/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md +227 -0
  5. package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md +212 -0
  6. package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md +185 -0
  7. package/dist/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +205 -0
  8. package/dist/.a4drules/graphql/tools/schemas/shared.graphqls +1150 -0
  9. package/dist/.a4drules/graphql.md +408 -0
  10. package/dist/.a4drules/images.md +13 -0
  11. package/dist/.a4drules/react.md +361 -0
  12. package/dist/.a4drules/react_image_processing.md +45 -0
  13. package/dist/.a4drules/skills/install-feature/SKILL.md +67 -0
  14. package/dist/.a4drules/skills/install-feature/scripts/copy-feature-assets.sh +36 -0
  15. package/dist/.a4drules/typescript.md +224 -0
  16. package/dist/.forceignore +15 -0
  17. package/dist/.husky/pre-commit +4 -0
  18. package/dist/.prettierignore +11 -0
  19. package/dist/.prettierrc +17 -0
  20. package/dist/CHANGELOG.md +479 -0
  21. package/dist/README.md +18 -0
  22. package/dist/config/project-scratch-def.json +13 -0
  23. package/dist/force-app/main/default/applications/Property_Management.app-meta.xml +26 -0
  24. package/dist/force-app/main/default/data/Application__c.json +124 -0
  25. package/dist/force-app/main/default/data/Maintenance_Request__c.json +514 -0
  26. package/dist/force-app/main/default/data/Maintenance_Worker__c.json +304 -0
  27. package/dist/force-app/main/default/data/Notification__c.json +214 -0
  28. package/dist/force-app/main/default/data/Property__c.json +654 -0
  29. package/dist/force-app/main/default/data/Tenant__c.json +184 -0
  30. package/dist/force-app/main/default/data/data-plan.json +38 -0
  31. package/dist/force-app/main/default/objects/Application__c/Application__c.object-meta.xml +67 -0
  32. package/dist/force-app/main/default/objects/Application__c/fields/Employment__c.field-meta.xml +10 -0
  33. package/dist/force-app/main/default/objects/Application__c/fields/Property__c.field-meta.xml +15 -0
  34. package/dist/force-app/main/default/objects/Application__c/fields/References__c.field-meta.xml +10 -0
  35. package/dist/force-app/main/default/objects/Application__c/fields/Start_Date__c.field-meta.xml +9 -0
  36. package/dist/force-app/main/default/objects/Application__c/fields/Status__c.field-meta.xml +42 -0
  37. package/dist/force-app/main/default/objects/Application__c/fields/User__c.field-meta.xml +15 -0
  38. package/dist/force-app/main/default/objects/Maintenance_Request__c/Maintenance_Request__c.object-meta.xml +67 -0
  39. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Actual_Cost__c.field-meta.xml +13 -0
  40. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Completed__c.field-meta.xml +11 -0
  41. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Description__c.field-meta.xml +12 -0
  42. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Est_Cost__c.field-meta.xml +13 -0
  43. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Priority__c.field-meta.xml +32 -0
  44. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Property__c.field-meta.xml +15 -0
  45. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Scheduled__c.field-meta.xml +11 -0
  46. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Status__c.field-meta.xml +42 -0
  47. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Tenant_Home__c.field-meta.xml +11 -0
  48. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Type__c.field-meta.xml +42 -0
  49. package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/User__c.field-meta.xml +15 -0
  50. package/dist/force-app/main/default/objects/Maintenance_Worker__c/Maintenance_Worker__c.object-meta.xml +66 -0
  51. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Certifications__c.field-meta.xml +12 -0
  52. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Employment_Type__c.field-meta.xml +32 -0
  53. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Hourly_Rate__c.field-meta.xml +13 -0
  54. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/IsActive__c.field-meta.xml +11 -0
  55. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Location__c.field-meta.xml +13 -0
  56. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Phone__c.field-meta.xml +11 -0
  57. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Rating__c.field-meta.xml +14 -0
  58. package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Type__c.field-meta.xml +57 -0
  59. package/dist/force-app/main/default/objects/Notification__c/Notification__c.object-meta.xml +67 -0
  60. package/dist/force-app/main/default/objects/Notification__c/fields/Is_Read__c.field-meta.xml +10 -0
  61. package/dist/force-app/main/default/objects/Notification__c/fields/Message__c.field-meta.xml +11 -0
  62. package/dist/force-app/main/default/objects/Notification__c/fields/Priority__c.field-meta.xml +36 -0
  63. package/dist/force-app/main/default/objects/Notification__c/fields/Related_Object_Type__c.field-meta.xml +12 -0
  64. package/dist/force-app/main/default/objects/Notification__c/fields/Related_Record_Id__c.field-meta.xml +12 -0
  65. package/dist/force-app/main/default/objects/Notification__c/fields/Title__c.field-meta.xml +12 -0
  66. package/dist/force-app/main/default/objects/Notification__c/fields/Type__c.field-meta.xml +36 -0
  67. package/dist/force-app/main/default/objects/Notification__c/fields/User__c.field-meta.xml +14 -0
  68. package/dist/force-app/main/default/objects/Property__c/Property__c.object-meta.xml +66 -0
  69. package/dist/force-app/main/default/objects/Property__c/fields/Address__c.field-meta.xml +13 -0
  70. package/dist/force-app/main/default/objects/Property__c/fields/Agent__c.field-meta.xml +15 -0
  71. package/dist/force-app/main/default/objects/Property__c/fields/Available_Date__c.field-meta.xml +11 -0
  72. package/dist/force-app/main/default/objects/Property__c/fields/Bathrooms__c.field-meta.xml +14 -0
  73. package/dist/force-app/main/default/objects/Property__c/fields/Bedrooms__c.field-meta.xml +14 -0
  74. package/dist/force-app/main/default/objects/Property__c/fields/Deposit__c.field-meta.xml +13 -0
  75. package/dist/force-app/main/default/objects/Property__c/fields/Description__c.field-meta.xml +12 -0
  76. package/dist/force-app/main/default/objects/Property__c/fields/Features__c.field-meta.xml +38 -0
  77. package/dist/force-app/main/default/objects/Property__c/fields/Hero_Image__c.field-meta.xml +11 -0
  78. package/dist/force-app/main/default/objects/Property__c/fields/Lease_Term__c.field-meta.xml +14 -0
  79. package/dist/force-app/main/default/objects/Property__c/fields/Monthly_Rent__c.field-meta.xml +13 -0
  80. package/dist/force-app/main/default/objects/Property__c/fields/Parking__c.field-meta.xml +14 -0
  81. package/dist/force-app/main/default/objects/Property__c/fields/Pet_Friendly__c.field-meta.xml +11 -0
  82. package/dist/force-app/main/default/objects/Property__c/fields/Sq_Ft__c.field-meta.xml +14 -0
  83. package/dist/force-app/main/default/objects/Property__c/fields/Status__c.field-meta.xml +37 -0
  84. package/dist/force-app/main/default/objects/Property__c/fields/Tour_URL__c.field-meta.xml +11 -0
  85. package/dist/force-app/main/default/objects/Property__c/fields/Type__c.field-meta.xml +37 -0
  86. package/dist/force-app/main/default/objects/Property__c/fields/Utilities__c.field-meta.xml +38 -0
  87. package/dist/force-app/main/default/objects/Property__c/fields/Year_Built__c.field-meta.xml +14 -0
  88. package/dist/force-app/main/default/objects/Tenant__c/Tenant__c.object-meta.xml +67 -0
  89. package/dist/force-app/main/default/objects/Tenant__c/fields/End_Date__c.field-meta.xml +11 -0
  90. package/dist/force-app/main/default/objects/Tenant__c/fields/Property__c.field-meta.xml +15 -0
  91. package/dist/force-app/main/default/objects/Tenant__c/fields/Start_Date__c.field-meta.xml +11 -0
  92. package/dist/force-app/main/default/objects/Tenant__c/fields/Status__c.field-meta.xml +37 -0
  93. package/dist/force-app/main/default/objects/Tenant__c/fields/User_Status__c.field-meta.xml +42 -0
  94. package/dist/force-app/main/default/objects/Tenant__c/fields/User__c.field-meta.xml +15 -0
  95. package/dist/force-app/main/default/permissionsets/Property_Management_Access.permissionset-meta.xml +453 -0
  96. package/dist/force-app/main/default/tabs/Application__c.tab-meta.xml +6 -0
  97. package/dist/force-app/main/default/tabs/Maintenance_Request__c.tab-meta.xml +7 -0
  98. package/dist/force-app/main/default/tabs/Maintenance_Worker__c.tab-meta.xml +6 -0
  99. package/dist/force-app/main/default/tabs/Notification__c.tab-meta.xml +6 -0
  100. package/dist/force-app/main/default/tabs/Property__c.tab-meta.xml +7 -0
  101. package/dist/force-app/main/default/tabs/Tenant__c.tab-meta.xml +7 -0
  102. package/dist/force-app/main/default/webapplications/appreactb2e/.prettierignore +9 -0
  103. package/dist/force-app/main/default/webapplications/appreactb2e/.prettierrc +11 -0
  104. package/dist/force-app/main/default/webapplications/appreactb2e/appreactb2e.webapplication-meta.xml +7 -0
  105. package/dist/force-app/main/default/webapplications/appreactb2e/build/vite.config.d.ts +2 -0
  106. package/dist/force-app/main/default/webapplications/appreactb2e/build/vite.config.js +76 -0
  107. package/dist/force-app/main/default/webapplications/appreactb2e/e2e/app.spec.ts +24 -0
  108. package/dist/force-app/main/default/webapplications/appreactb2e/eslint.config.js +113 -0
  109. package/dist/force-app/main/default/webapplications/appreactb2e/index.html +13 -0
  110. package/dist/force-app/main/default/webapplications/appreactb2e/package-lock.json +7157 -0
  111. package/dist/force-app/main/default/webapplications/appreactb2e/package.json +45 -0
  112. package/dist/force-app/main/default/webapplications/appreactb2e/playwright.config.ts +24 -0
  113. package/dist/force-app/main/default/webapplications/appreactb2e/scripts/rewrite-e2e-assets.mjs +23 -0
  114. package/dist/force-app/main/default/webapplications/appreactb2e/src/api/graphql-operations-types.ts +127 -0
  115. package/dist/force-app/main/default/webapplications/appreactb2e/src/api/utils/query/highRevenueAccountsQuery.graphql +29 -0
  116. package/dist/force-app/main/default/webapplications/appreactb2e/src/app.tsx +22 -0
  117. package/dist/force-app/main/default/webapplications/appreactb2e/src/appLayout.tsx +29 -0
  118. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/book.svg +3 -0
  119. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/copy.svg +4 -0
  120. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/rocket.svg +3 -0
  121. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/star.svg +3 -0
  122. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/codey-1.png +0 -0
  123. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/codey-2.png +0 -0
  124. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/codey-3.png +0 -0
  125. package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/vibe-codey.svg +194 -0
  126. package/dist/force-app/main/default/webapplications/appreactb2e/src/pages/About.tsx +12 -0
  127. package/dist/force-app/main/default/webapplications/appreactb2e/src/pages/Home.tsx +12 -0
  128. package/dist/force-app/main/default/webapplications/appreactb2e/src/pages/NotFound.tsx +18 -0
  129. package/dist/force-app/main/default/webapplications/appreactb2e/src/routes.tsx +28 -0
  130. package/dist/force-app/main/default/webapplications/appreactb2e/src/styles/global.css +13 -0
  131. package/dist/force-app/main/default/webapplications/appreactb2e/tsconfig.json +36 -0
  132. package/dist/force-app/main/default/webapplications/appreactb2e/tsconfig.node.json +13 -0
  133. package/dist/force-app/main/default/webapplications/appreactb2e/vite-env.d.ts +1 -0
  134. package/dist/force-app/main/default/webapplications/appreactb2e/vite.config.ts +85 -0
  135. package/dist/force-app/main/default/webapplications/appreactb2e/vitest-env.d.ts +2 -0
  136. package/dist/force-app/main/default/webapplications/appreactb2e/vitest.config.ts +11 -0
  137. package/dist/force-app/main/default/webapplications/appreactb2e/vitest.setup.ts +1 -0
  138. package/dist/force-app/main/default/webapplications/appreactb2e/webapplication.json +7 -0
  139. package/dist/jest.config.js +6 -0
  140. package/dist/package.json +37 -0
  141. package/dist/scripts/apex/hello.apex +10 -0
  142. package/dist/scripts/soql/account.soql +6 -0
  143. package/dist/sfdx-project.json +12 -0
  144. package/package.json +34 -0
@@ -0,0 +1,453 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <description>Permission set to provide access to Property Management custom objects and tabs</description>
4
+ <hasActivationRequired>false</hasActivationRequired>
5
+ <label>Property Management Access</label>
6
+
7
+ <!-- Object Permissions -->
8
+ <objectPermissions>
9
+ <allowCreate>true</allowCreate>
10
+ <allowDelete>true</allowDelete>
11
+ <allowEdit>true</allowEdit>
12
+ <allowRead>true</allowRead>
13
+ <modifyAllRecords>true</modifyAllRecords>
14
+ <object>Property__c</object>
15
+ <viewAllRecords>true</viewAllRecords>
16
+ </objectPermissions>
17
+
18
+ <objectPermissions>
19
+ <allowCreate>true</allowCreate>
20
+ <allowDelete>true</allowDelete>
21
+ <allowEdit>true</allowEdit>
22
+ <allowRead>true</allowRead>
23
+ <modifyAllRecords>true</modifyAllRecords>
24
+ <object>Application__c</object>
25
+ <viewAllRecords>true</viewAllRecords>
26
+ </objectPermissions>
27
+
28
+ <objectPermissions>
29
+ <allowCreate>true</allowCreate>
30
+ <allowDelete>true</allowDelete>
31
+ <allowEdit>true</allowEdit>
32
+ <allowRead>true</allowRead>
33
+ <modifyAllRecords>true</modifyAllRecords>
34
+ <object>Tenant__c</object>
35
+ <viewAllRecords>true</viewAllRecords>
36
+ </objectPermissions>
37
+
38
+ <objectPermissions>
39
+ <allowCreate>true</allowCreate>
40
+ <allowDelete>true</allowDelete>
41
+ <allowEdit>true</allowEdit>
42
+ <allowRead>true</allowRead>
43
+ <modifyAllRecords>true</modifyAllRecords>
44
+ <object>Maintenance_Request__c</object>
45
+ <viewAllRecords>true</viewAllRecords>
46
+ </objectPermissions>
47
+
48
+ <objectPermissions>
49
+ <allowCreate>true</allowCreate>
50
+ <allowDelete>true</allowDelete>
51
+ <allowEdit>true</allowEdit>
52
+ <allowRead>true</allowRead>
53
+ <modifyAllRecords>true</modifyAllRecords>
54
+ <object>Maintenance_Worker__c</object>
55
+ <viewAllRecords>true</viewAllRecords>
56
+ </objectPermissions>
57
+
58
+ <objectPermissions>
59
+ <allowCreate>true</allowCreate>
60
+ <allowDelete>true</allowDelete>
61
+ <allowEdit>true</allowEdit>
62
+ <allowRead>true</allowRead>
63
+ <modifyAllRecords>true</modifyAllRecords>
64
+ <object>Notification__c</object>
65
+ <viewAllRecords>true</viewAllRecords>
66
+ </objectPermissions>
67
+
68
+ <!-- Field Permissions -->
69
+ <!-- Property Field Permissions -->
70
+ <fieldPermissions>
71
+ <editable>true</editable>
72
+ <field>Property__c.Address__c</field>
73
+ <readable>true</readable>
74
+ </fieldPermissions>
75
+
76
+ <fieldPermissions>
77
+ <editable>true</editable>
78
+ <field>Property__c.Type__c</field>
79
+ <readable>true</readable>
80
+ </fieldPermissions>
81
+
82
+ <fieldPermissions>
83
+ <editable>true</editable>
84
+ <field>Property__c.Sq_Ft__c</field>
85
+ <readable>true</readable>
86
+ </fieldPermissions>
87
+
88
+ <fieldPermissions>
89
+ <editable>true</editable>
90
+ <field>Property__c.Status__c</field>
91
+ <readable>true</readable>
92
+ </fieldPermissions>
93
+
94
+ <fieldPermissions>
95
+ <editable>true</editable>
96
+ <field>Property__c.Bedrooms__c</field>
97
+ <readable>true</readable>
98
+ </fieldPermissions>
99
+
100
+ <fieldPermissions>
101
+ <editable>true</editable>
102
+ <field>Property__c.Bathrooms__c</field>
103
+ <readable>true</readable>
104
+ </fieldPermissions>
105
+
106
+ <fieldPermissions>
107
+ <editable>true</editable>
108
+ <field>Property__c.Year_Built__c</field>
109
+ <readable>true</readable>
110
+ </fieldPermissions>
111
+
112
+ <fieldPermissions>
113
+ <editable>true</editable>
114
+ <field>Property__c.Parking__c</field>
115
+ <readable>true</readable>
116
+ </fieldPermissions>
117
+
118
+ <fieldPermissions>
119
+ <editable>true</editable>
120
+ <field>Property__c.Pet_Friendly__c</field>
121
+ <readable>true</readable>
122
+ </fieldPermissions>
123
+
124
+ <fieldPermissions>
125
+ <editable>true</editable>
126
+ <field>Property__c.Features__c</field>
127
+ <readable>true</readable>
128
+ </fieldPermissions>
129
+
130
+ <fieldPermissions>
131
+ <editable>true</editable>
132
+ <field>Property__c.Monthly_Rent__c</field>
133
+ <readable>true</readable>
134
+ </fieldPermissions>
135
+
136
+ <fieldPermissions>
137
+ <editable>true</editable>
138
+ <field>Property__c.Deposit__c</field>
139
+ <readable>true</readable>
140
+ </fieldPermissions>
141
+
142
+ <fieldPermissions>
143
+ <editable>true</editable>
144
+ <field>Property__c.Available_Date__c</field>
145
+ <readable>true</readable>
146
+ </fieldPermissions>
147
+
148
+ <fieldPermissions>
149
+ <editable>true</editable>
150
+ <field>Property__c.Lease_Term__c</field>
151
+ <readable>true</readable>
152
+ </fieldPermissions>
153
+
154
+ <fieldPermissions>
155
+ <editable>true</editable>
156
+ <field>Property__c.Utilities__c</field>
157
+ <readable>true</readable>
158
+ </fieldPermissions>
159
+
160
+ <fieldPermissions>
161
+ <editable>true</editable>
162
+ <field>Property__c.Description__c</field>
163
+ <readable>true</readable>
164
+ </fieldPermissions>
165
+
166
+ <fieldPermissions>
167
+ <editable>true</editable>
168
+ <field>Property__c.Tour_URL__c</field>
169
+ <readable>true</readable>
170
+ </fieldPermissions>
171
+
172
+ <fieldPermissions>
173
+ <editable>true</editable>
174
+ <field>Property__c.Hero_Image__c</field>
175
+ <readable>true</readable>
176
+ </fieldPermissions>
177
+
178
+ <fieldPermissions>
179
+ <editable>true</editable>
180
+ <field>Property__c.Agent__c</field>
181
+ <readable>true</readable>
182
+ </fieldPermissions>
183
+
184
+ <!-- Application Field Permissions -->
185
+ <fieldPermissions>
186
+ <editable>true</editable>
187
+ <field>Application__c.Property__c</field>
188
+ <readable>true</readable>
189
+ </fieldPermissions>
190
+
191
+ <fieldPermissions>
192
+ <editable>true</editable>
193
+ <field>Application__c.User__c</field>
194
+ <readable>true</readable>
195
+ </fieldPermissions>
196
+
197
+ <fieldPermissions>
198
+ <editable>true</editable>
199
+ <field>Application__c.Status__c</field>
200
+ <readable>true</readable>
201
+ </fieldPermissions>
202
+
203
+ <fieldPermissions>
204
+ <editable>true</editable>
205
+ <field>Application__c.Employment__c</field>
206
+ <readable>true</readable>
207
+ </fieldPermissions>
208
+
209
+ <fieldPermissions>
210
+ <editable>true</editable>
211
+ <field>Application__c.References__c</field>
212
+ <readable>true</readable>
213
+ </fieldPermissions>
214
+
215
+ <fieldPermissions>
216
+ <editable>true</editable>
217
+ <field>Application__c.Start_Date__c</field>
218
+ <readable>true</readable>
219
+ </fieldPermissions>
220
+
221
+ <!-- Tenant Field Permissions -->
222
+ <fieldPermissions>
223
+ <editable>true</editable>
224
+ <field>Tenant__c.User__c</field>
225
+ <readable>true</readable>
226
+ </fieldPermissions>
227
+
228
+ <fieldPermissions>
229
+ <editable>true</editable>
230
+ <field>Tenant__c.User_Status__c</field>
231
+ <readable>true</readable>
232
+ </fieldPermissions>
233
+
234
+ <fieldPermissions>
235
+ <editable>true</editable>
236
+ <field>Tenant__c.Property__c</field>
237
+ <readable>true</readable>
238
+ </fieldPermissions>
239
+
240
+ <fieldPermissions>
241
+ <editable>true</editable>
242
+ <field>Tenant__c.Start_Date__c</field>
243
+ <readable>true</readable>
244
+ </fieldPermissions>
245
+
246
+ <fieldPermissions>
247
+ <editable>true</editable>
248
+ <field>Tenant__c.End_Date__c</field>
249
+ <readable>true</readable>
250
+ </fieldPermissions>
251
+
252
+ <fieldPermissions>
253
+ <editable>true</editable>
254
+ <field>Tenant__c.Status__c</field>
255
+ <readable>true</readable>
256
+ </fieldPermissions>
257
+
258
+ <!-- Maintenance Request Field Permissions -->
259
+ <fieldPermissions>
260
+ <editable>true</editable>
261
+ <field>Maintenance_Request__c.User__c</field>
262
+ <readable>true</readable>
263
+ </fieldPermissions>
264
+
265
+ <fieldPermissions>
266
+ <editable>true</editable>
267
+ <field>Maintenance_Request__c.Property__c</field>
268
+ <readable>true</readable>
269
+ </fieldPermissions>
270
+
271
+ <fieldPermissions>
272
+ <editable>true</editable>
273
+ <field>Maintenance_Request__c.Type__c</field>
274
+ <readable>true</readable>
275
+ </fieldPermissions>
276
+
277
+ <fieldPermissions>
278
+ <editable>true</editable>
279
+ <field>Maintenance_Request__c.Priority__c</field>
280
+ <readable>true</readable>
281
+ </fieldPermissions>
282
+
283
+ <fieldPermissions>
284
+ <editable>true</editable>
285
+ <field>Maintenance_Request__c.Status__c</field>
286
+ <readable>true</readable>
287
+ </fieldPermissions>
288
+
289
+ <fieldPermissions>
290
+ <editable>true</editable>
291
+ <field>Maintenance_Request__c.Description__c</field>
292
+ <readable>true</readable>
293
+ </fieldPermissions>
294
+
295
+ <fieldPermissions>
296
+ <editable>true</editable>
297
+ <field>Maintenance_Request__c.Scheduled__c</field>
298
+ <readable>true</readable>
299
+ </fieldPermissions>
300
+
301
+ <fieldPermissions>
302
+ <editable>true</editable>
303
+ <field>Maintenance_Request__c.Completed__c</field>
304
+ <readable>true</readable>
305
+ </fieldPermissions>
306
+
307
+ <fieldPermissions>
308
+ <editable>true</editable>
309
+ <field>Maintenance_Request__c.Est_Cost__c</field>
310
+ <readable>true</readable>
311
+ </fieldPermissions>
312
+
313
+ <fieldPermissions>
314
+ <editable>true</editable>
315
+ <field>Maintenance_Request__c.Actual_Cost__c</field>
316
+ <readable>true</readable>
317
+ </fieldPermissions>
318
+
319
+ <fieldPermissions>
320
+ <editable>true</editable>
321
+ <field>Maintenance_Request__c.Tenant_Home__c</field>
322
+ <readable>true</readable>
323
+ </fieldPermissions>
324
+
325
+ <!-- Maintenance Worker Field Permissions -->
326
+ <fieldPermissions>
327
+ <editable>true</editable>
328
+ <field>Maintenance_Worker__c.Employment_Type__c</field>
329
+ <readable>true</readable>
330
+ </fieldPermissions>
331
+
332
+ <fieldPermissions>
333
+ <editable>true</editable>
334
+ <field>Maintenance_Worker__c.Type__c</field>
335
+ <readable>true</readable>
336
+ </fieldPermissions>
337
+
338
+ <fieldPermissions>
339
+ <editable>true</editable>
340
+ <field>Maintenance_Worker__c.Phone__c</field>
341
+ <readable>true</readable>
342
+ </fieldPermissions>
343
+
344
+ <fieldPermissions>
345
+ <editable>true</editable>
346
+ <field>Maintenance_Worker__c.IsActive__c</field>
347
+ <readable>true</readable>
348
+ </fieldPermissions>
349
+
350
+ <fieldPermissions>
351
+ <editable>true</editable>
352
+ <field>Maintenance_Worker__c.Rating__c</field>
353
+ <readable>true</readable>
354
+ </fieldPermissions>
355
+
356
+ <fieldPermissions>
357
+ <editable>true</editable>
358
+ <field>Maintenance_Worker__c.Hourly_Rate__c</field>
359
+ <readable>true</readable>
360
+ </fieldPermissions>
361
+
362
+ <fieldPermissions>
363
+ <editable>true</editable>
364
+ <field>Maintenance_Worker__c.Certifications__c</field>
365
+ <readable>true</readable>
366
+ </fieldPermissions>
367
+
368
+ <fieldPermissions>
369
+ <editable>true</editable>
370
+ <field>Maintenance_Worker__c.Location__c</field>
371
+ <readable>true</readable>
372
+ </fieldPermissions>
373
+
374
+ <!-- Notification Field Permissions -->
375
+ <fieldPermissions>
376
+ <editable>true</editable>
377
+ <field>Notification__c.User__c</field>
378
+ <readable>true</readable>
379
+ </fieldPermissions>
380
+
381
+ <fieldPermissions>
382
+ <editable>true</editable>
383
+ <field>Notification__c.Type__c</field>
384
+ <readable>true</readable>
385
+ </fieldPermissions>
386
+
387
+ <fieldPermissions>
388
+ <editable>true</editable>
389
+ <field>Notification__c.Title__c</field>
390
+ <readable>true</readable>
391
+ </fieldPermissions>
392
+
393
+ <fieldPermissions>
394
+ <editable>true</editable>
395
+ <field>Notification__c.Message__c</field>
396
+ <readable>true</readable>
397
+ </fieldPermissions>
398
+
399
+ <fieldPermissions>
400
+ <editable>true</editable>
401
+ <field>Notification__c.Related_Record_Id__c</field>
402
+ <readable>true</readable>
403
+ </fieldPermissions>
404
+
405
+ <fieldPermissions>
406
+ <editable>true</editable>
407
+ <field>Notification__c.Related_Object_Type__c</field>
408
+ <readable>true</readable>
409
+ </fieldPermissions>
410
+
411
+ <fieldPermissions>
412
+ <editable>true</editable>
413
+ <field>Notification__c.Is_Read__c</field>
414
+ <readable>true</readable>
415
+ </fieldPermissions>
416
+
417
+ <fieldPermissions>
418
+ <editable>true</editable>
419
+ <field>Notification__c.Priority__c</field>
420
+ <readable>true</readable>
421
+ </fieldPermissions>
422
+
423
+ <!-- Tab Visibility -->
424
+ <tabSettings>
425
+ <tab>Property__c</tab>
426
+ <visibility>Visible</visibility>
427
+ </tabSettings>
428
+
429
+ <tabSettings>
430
+ <tab>Application__c</tab>
431
+ <visibility>Visible</visibility>
432
+ </tabSettings>
433
+
434
+ <tabSettings>
435
+ <tab>Tenant__c</tab>
436
+ <visibility>Visible</visibility>
437
+ </tabSettings>
438
+
439
+ <tabSettings>
440
+ <tab>Maintenance_Request__c</tab>
441
+ <visibility>Visible</visibility>
442
+ </tabSettings>
443
+
444
+ <tabSettings>
445
+ <tab>Maintenance_Worker__c</tab>
446
+ <visibility>Visible</visibility>
447
+ </tabSettings>
448
+
449
+ <tabSettings>
450
+ <tab>Notification__c</tab>
451
+ <visibility>Visible</visibility>
452
+ </tabSettings>
453
+ </PermissionSet>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <customObject>true</customObject>
4
+ <label>Applications</label>
5
+ <motif>Custom9: Airplane</motif>
6
+ </CustomTab>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <customObject>true</customObject>
4
+ <description>Tab for Maintenance Request management</description>
5
+ <label>Maintenance Requests</label>
6
+ <motif>Custom19: Wrench</motif>
7
+ </CustomTab>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <customObject>true</customObject>
4
+ <description>Tab for Maintenance Worker records</description>
5
+ <motif>Custom70: Wrench</motif>
6
+ </CustomTab>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <customObject>true</customObject>
4
+ <label>Notifications</label>
5
+ <motif>Custom48: Bell</motif>
6
+ </CustomTab>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <customObject>true</customObject>
4
+ <description>Tab for Property management</description>
5
+ <label>Properties</label>
6
+ <motif>Custom18: Building</motif>
7
+ </CustomTab>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <CustomTab xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <customObject>true</customObject>
4
+ <description>Tab for Tenant management</description>
5
+ <label>Tenants</label>
6
+ <motif>Custom78: Person</motif>
7
+ </CustomTab>
@@ -0,0 +1,9 @@
1
+ node_modules
2
+ dist
3
+ build
4
+ .vite
5
+ coverage
6
+ *.min.js
7
+ *.min.css
8
+ *.map
9
+ package-lock.json
@@ -0,0 +1,11 @@
1
+ {
2
+ "semi": true,
3
+ "trailingComma": "es5",
4
+ "singleQuote": true,
5
+ "printWidth": 80,
6
+ "tabWidth": 2,
7
+ "useTabs": false,
8
+ "bracketSpacing": true,
9
+ "arrowParens": "avoid",
10
+ "endOfLine": "lf"
11
+ }
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <WebApplication xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <masterLabel>appreactb2e</masterLabel>
4
+ <description>A Salesforce web application.</description>
5
+ <isActive>true</isActive>
6
+ <version>1</version>
7
+ </WebApplication>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfigFnObject;
2
+ export default _default;
@@ -0,0 +1,76 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import path from 'path';
4
+ import { resolve } from 'path';
5
+ import tailwindcss from '@tailwindcss/vite';
6
+ import salesforce from '@salesforce/vite-plugin-webapp-experimental';
7
+ export default defineConfig(function (_a) {
8
+ var mode = _a.mode;
9
+ return {
10
+ // Ensure root base for e2e/static serve; plugin may override when deployed under a path
11
+ base: '/',
12
+ plugins: [tailwindcss(), react(), salesforce()],
13
+ // Build configuration for MPA
14
+ build: {
15
+ outDir: resolve(__dirname, 'dist'),
16
+ assetsDir: 'assets',
17
+ sourcemap: false,
18
+ },
19
+ // Resolve aliases (shared between build and test)
20
+ resolve: {
21
+ dedupe: ['react', 'react-dom'],
22
+ alias: {
23
+ '@': path.resolve(__dirname, './src'),
24
+ '@api': path.resolve(__dirname, './src/api'),
25
+ '@components': path.resolve(__dirname, './src/components'),
26
+ '@utils': path.resolve(__dirname, './src/utils'),
27
+ '@styles': path.resolve(__dirname, './src/styles'),
28
+ '@assets': path.resolve(__dirname, './src/assets'),
29
+ },
30
+ },
31
+ // Vitest configuration
32
+ test: {
33
+ // Override root for tests (build uses src/pages as root)
34
+ root: resolve(__dirname),
35
+ // Use jsdom environment for React component testing
36
+ environment: 'jsdom',
37
+ // Setup files to run before each test
38
+ setupFiles: ['./src/test/setup.ts'],
39
+ // Global test patterns
40
+ include: [
41
+ 'src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
42
+ 'src/**/__tests__/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
43
+ ],
44
+ // Coverage configuration
45
+ coverage: {
46
+ provider: 'v8',
47
+ reporter: ['text', 'html', 'clover', 'json'],
48
+ exclude: [
49
+ 'node_modules/',
50
+ 'src/test/',
51
+ 'src/**/*.d.ts',
52
+ 'src/main.tsx',
53
+ 'src/vite-env.d.ts',
54
+ 'src/components/**/index.ts',
55
+ '**/*.config.ts',
56
+ 'build/',
57
+ 'dist/',
58
+ 'coverage/',
59
+ 'eslint.config.js',
60
+ ],
61
+ thresholds: {
62
+ global: {
63
+ branches: 85,
64
+ functions: 85,
65
+ lines: 85,
66
+ statements: 85,
67
+ },
68
+ },
69
+ },
70
+ // Test timeout
71
+ testTimeout: 10000,
72
+ // Globals for easier testing
73
+ globals: true,
74
+ },
75
+ };
76
+ });
@@ -0,0 +1,24 @@
1
+ import { test, expect } from '@playwright/test';
2
+
3
+ test.describe('base-react-app', () => {
4
+ test('home page loads and shows welcome content', async ({ page }) => {
5
+ await page.goto('/');
6
+ await expect(page.getByRole('heading', { name: 'Home' })).toBeVisible();
7
+ await expect(
8
+ page.getByText('Welcome to your React application.')
9
+ ).toBeVisible();
10
+ });
11
+
12
+ test('about page loads', async ({ page }) => {
13
+ await page.goto('/about');
14
+ await expect(page).toHaveURL(/\/about/);
15
+ await expect(page.getByRole('heading', { name: 'About' })).toBeVisible();
16
+ await expect(page.getByText('This is the about page.')).toBeVisible();
17
+ });
18
+
19
+ test('not found route shows 404', async ({ page }) => {
20
+ await page.goto('/non-existent-route');
21
+ await expect(page.getByRole('heading', { name: '404' })).toBeVisible();
22
+ await expect(page.getByText('Page not found')).toBeVisible();
23
+ });
24
+ });