@simplysf/simply-document 0.3.7 → 0.4.1

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.
@@ -1,1254 +0,0 @@
1
- /*
2
- * Copyright (c) 2026, Clay Chipps.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import Handlebars from 'handlebars';
17
- const handlebars = Handlebars.create();
18
- handlebars.registerHelper('loud', (aString) => aString.toUpperCase());
19
- const technicalDesignDocumentSource = `<h2>Objects</h2>
20
- <h3>Standard Objects</h3>
21
- {{#each standardObjects}}
22
- <h4 class="auto-cursor-target">{{this.label}}</h4>
23
- <h5>Record Types</h5>
24
- {{#if this.recordTypes}}
25
- <table class="wrapped">
26
- <colgroup>
27
- <col />
28
- <col />
29
- <col />
30
- <col />
31
- </colgroup>
32
- <tbody>
33
- <tr>
34
- <th>Name</th>
35
- <th>API Name</th>
36
- <th>Active</th>
37
- <th>Description</th>
38
- </tr>
39
- {{#each this.recordTypes}}
40
- <tr>
41
- <td>{{this.label}}</td>
42
- <td>{{this.fullName}}</td>
43
- <td style="text-align: center">
44
- {{#if this.active}} {{loud this.active}} {{else}} FALSE {{/if}}
45
- </td>
46
- <td>{{this.description}}</td>
47
- </tr>
48
- {{/each}}
49
- </tbody>
50
- </table>
51
- {{else}}
52
- <p>None</p>
53
- {{/if}}
54
- <h5>Page Layouts</h5>
55
- {{#if this.layouts}}
56
- <table class="wrapped">
57
- <colgroup>
58
- <col />
59
- </colgroup>
60
- <tbody>
61
- <tr>
62
- <th>Name</th>
63
- </tr>
64
- {{#each this.layouts}}
65
- <tr>
66
- <td>{{this.nameOnly}}</td>
67
- </tr>
68
- {{/each}}
69
- </tbody>
70
- </table>
71
- {{else}}
72
- <p>None</p>
73
- {{/if}}
74
- <h5>Fields</h5>
75
- {{#if this.customFields}}
76
- <table class="wrapped">
77
- <colgroup>
78
- <col />
79
- <col />
80
- <col />
81
- <col />
82
- <col />
83
- <col />
84
- </colgroup>
85
- <tbody>
86
- <tr>
87
- <th>Name</th>
88
- <th>API Name</th>
89
- <th>Type</th>
90
- <th>Required</th>
91
- <th>External ID</th>
92
- <th>Unique</th>
93
- <th>Description</th>
94
- </tr>
95
- {{#each this.customFields}}
96
- <tr>
97
- <td>{{this.label}}</td>
98
- <td>{{this.fullName}}</td>
99
- <td>{{this.type}}</td>
100
- <td style="text-align: center">
101
- {{#if this.required}} {{loud this.required}} {{else}} FALSE {{/if}}
102
- </td>
103
- <td style="text-align: center">
104
- {{#if this.externalId}} {{loud this.externalId}} {{else}} FALSE {{/if}}
105
- </td>
106
- <td style="text-align: center">
107
- {{#if this.unique}} {{loud this.unique}} {{else}} FALSE {{/if}}
108
- </td>
109
- <td>{{this.miniDescription}}</td>
110
- </tr>
111
- {{/each}}
112
- </tbody>
113
- </table>
114
- {{else}}
115
- <p>None</p>
116
- {{/if}}
117
- <h5>Field Sets</h5>
118
- {{#if this.fieldSets}}
119
- <table class="wrapped">
120
- <colgroup>
121
- <col />
122
- <col />
123
- <col />
124
- </colgroup>
125
- <tbody>
126
- <tr>
127
- <th>API Name</th>
128
- <th>Label</th>
129
- <th>Description</th>
130
- </tr>
131
- {{#each this.fieldSets}}
132
- <tr>
133
- <td>{{this.fullName}}</td>
134
- <td>{{this.label}}</td>
135
- <td>{{this.description}}</td>
136
- </tr>
137
- {{/each}}
138
- </tbody>
139
- </table>
140
- <h6>Displayed Fields</h6>
141
- {{#each this.fieldSets}}
142
- <ol>
143
- {{#each this.displayedFields}}
144
- <li>{{this.field}}</li>
145
- {{/each}}
146
- </ol>
147
- {{/each}}
148
- {{else}}
149
- <p>None</p>
150
- {{/if}}
151
- <h5>Validation Rules</h5>
152
- {{#if this.validationRules}}
153
- <table class="wrapped">
154
- <colgroup>
155
- <col />
156
- <col />
157
- <col />
158
- </colgroup>
159
- <tbody>
160
- <tr>
161
- <th>API Name</th>
162
- <th>Active</th>
163
- <th>Description</th>
164
- </tr>
165
- {{#each this.validationRules}}
166
- <tr>
167
- <td>{{this.fullName}}</td>
168
- <td style="text-align: center">
169
- {{#if this.active}} {{loud this.active}} {{else}} FALSE {{/if}}
170
- </td>
171
- <td>{{this.description}}</td>
172
- </tr>
173
- {{/each}}
174
- </tbody>
175
- </table>
176
- {{else}}
177
- <p>None</p>
178
- {{/if}} {{/each}}
179
- <h3>Custom Objects</h3>
180
- <table class="wrapped">
181
- <colgroup>
182
- <col />
183
- <col />
184
- <col />
185
- </colgroup>
186
- <tbody>
187
- <tr>
188
- <th>Name</th>
189
- <th>API Name</th>
190
- <th>Description</th>
191
- </tr>
192
- {{#each customObjects}}
193
- <tr>
194
- <td><ac:link ac:anchor="{{this.label}}"/></td>
195
- <td>{{this.name}}</td>
196
- <td>{{this.miniDescription}}</td>
197
- </tr>
198
- {{/each}}
199
- </tbody>
200
- </table>
201
- {{#each customObjects}}
202
- <h4 class="auto-cursor-target">{{this.label}}</h4>
203
- <h5>Record Types</h5>
204
- {{#if this.recordTypes}}
205
- <table class="wrapped">
206
- <colgroup>
207
- <col />
208
- <col />
209
- <col />
210
- <col />
211
- </colgroup>
212
- <tbody>
213
- <tr>
214
- <th>Name</th>
215
- <th>API Name</th>
216
- <th>Active</th>
217
- <th>Description</th>
218
- </tr>
219
- {{#each this.recordTypes}}
220
- <tr>
221
- <td>{{this.label}}</td>
222
- <td>{{this.fullName}}</td>
223
- <td style="text-align: center">
224
- {{#if this.active}} {{loud this.active}} {{else}} FALSE {{/if}}
225
- </td>
226
- <td>{{this.description}}</td>
227
- </tr>
228
- {{/each}}
229
- </tbody>
230
- </table>
231
- {{else}}
232
- <p>None</p>
233
- {{/if}}
234
- <h5>Page Layouts</h5>
235
- {{#if this.layouts}}
236
- <table class="wrapped">
237
- <colgroup>
238
- <col />
239
- </colgroup>
240
- <tbody>
241
- <tr>
242
- <th>Name</th>
243
- </tr>
244
- {{#each this.layouts}}
245
- <tr>
246
- <td>{{this.nameOnly}}</td>
247
- </tr>
248
- {{/each}}
249
- </tbody>
250
- </table>
251
- {{else}}
252
- <p>None</p>
253
- {{/if}}
254
- <h5>Fields</h5>
255
- {{#if this.customFields}}
256
- <table class="wrapped">
257
- <colgroup>
258
- <col />
259
- <col />
260
- <col />
261
- <col />
262
- <col />
263
- <col />
264
- </colgroup>
265
- <tbody>
266
- <tr>
267
- <th>Name</th>
268
- <th>API Name</th>
269
- <th>Type</th>
270
- <th>Required</th>
271
- <th>External ID</th>
272
- <th>Unique</th>
273
- <th>Description</th>
274
- </tr>
275
- {{#each this.customFields}}
276
- <tr>
277
- <td>{{this.label}}</td>
278
- <td>{{this.fullName}}</td>
279
- <td>{{this.type}}</td>
280
- <td style="text-align: center">
281
- {{#if this.required}} {{loud this.required}} {{else}} FALSE {{/if}}
282
- </td>
283
- <td style="text-align: center">
284
- {{#if this.externalId}} {{loud this.externalId}} {{else}} FALSE {{/if}}
285
- </td>
286
- <td style="text-align: center">
287
- {{#if this.unique}} {{loud this.unique}} {{else}} FALSE {{/if}}
288
- </td>
289
- <td>{{this.miniDescription}}</td>
290
- </tr>
291
- {{/each}}
292
- </tbody>
293
- </table>
294
- {{else}}
295
- <p>None</p>
296
- {{/if}}
297
- <h5>Field Sets</h5>
298
- {{#if this.fieldSets}}
299
- <table class="wrapped">
300
- <colgroup>
301
- <col />
302
- <col />
303
- <col />
304
- </colgroup>
305
- <tbody>
306
- <tr>
307
- <th>API Name</th>
308
- <th>Label</th>
309
- <th>Description</th>
310
- </tr>
311
- {{#each this.fieldSets}}
312
- <tr>
313
- <td>{{this.fullName}}</td>
314
- <td>{{this.label}}</td>
315
- <td>{{this.description}}</td>
316
- </tr>
317
- {{/each}}
318
- </tbody>
319
- </table>
320
- <h6>Displayed Fields</h6>
321
- {{#each this.fieldSets}}
322
- <ol>
323
- {{#each this.displayedFields}}
324
- <li>{{this.field}}</li>
325
- {{/each}}
326
- </ol>
327
- {{/each}}
328
- {{else}}
329
- <p>None</p>
330
- {{/if}}
331
- <h5>Validation Rules</h5>
332
- {{#if this.validationRules}}
333
- <table class="wrapped">
334
- <colgroup>
335
- <col />
336
- <col />
337
- <col />
338
- </colgroup>
339
- <tbody>
340
- <tr>
341
- <th>API Name</th>
342
- <th>Active</th>
343
- <th>Description</th>
344
- </tr>
345
- {{#each this.validationRules}}
346
- <tr>
347
- <td>{{this.fullName}}</td>
348
- <td style="text-align: center">
349
- {{#if this.active}} {{loud this.active}} {{else}} FALSE {{/if}}
350
- </td>
351
- <td>{{this.description}}</td>
352
- </tr>
353
- {{/each}}
354
- </tbody>
355
- </table>
356
- {{else}}
357
- <p>None</p>
358
- {{/if}} {{/each}}
359
- <h1 class="auto-cursor-target">Security Model</h1>
360
- <h2>Organization-Wide Defaults</h2>
361
- <p>
362
- A Salesforce object&#8217;s visibility is controlled at the top level by the
363
- security model of visibility defined for the object.
364
- </p>
365
- <p>The object visibility may be:</p>
366
- <ul>
367
- <li>Public Read Only</li>
368
- <li>Public Read/Write</li>
369
- <li>Private</li>
370
- <li>Controlled By Parent</li>
371
- </ul>
372
- <table class="wrapped">
373
- <colgroup>
374
- <col />
375
- <col />
376
- <col />
377
- </colgroup>
378
- <thead>
379
- <tr>
380
- <th>Object</th>
381
- <th>Default Internal Access</th>
382
- <th>Default External Access</th>
383
- </tr>
384
- </thead>
385
- <tbody>
386
- {{#if customObjects}} {{#each customObjects}}<tr>
387
- <td>{{this.name}}</td>
388
- <td>{{this.sharingModel}}</td>
389
- <td>{{this.externalSharingModel}}</td>
390
- </tr>
391
- {{/each}} {{else}}<tr>
392
- <td><br /></td>
393
- <td><br /></td>
394
- <td><br /></td>
395
- </tr>{{/if}}
396
- </tbody>
397
- </table>
398
- <h2 class="auto-cursor-target">Sharing Rules</h2>
399
- <p>Salesforce records can be shared in the following ways:</p>
400
- <ul>
401
- <li>Criteria-Based Sharing Rules</li>
402
- <li>Owner-Based Sharing Rules</li>
403
- <li>Apex Managed Sharing Rules</li>
404
- </ul>
405
- <p>
406
- A private object can be shared from a public group; a role; a role and all its
407
- subordinates to a public group; a role; and / or a role and all its
408
- subordinates.
409
- </p>
410
- <table class="wrapped">
411
- <colgroup>
412
- <col />
413
- <col />
414
- <col />
415
- <col />
416
- <col />
417
- </colgroup>
418
- <thead>
419
- <tr>
420
- <th>Label</th>
421
- <th>API Name</th>
422
- <th>Object</th>
423
- <th>Type</th>
424
- <th>Access Level</th>
425
- <th>Description</th>
426
- </tr>
427
- </thead>
428
- <tbody>
429
- {{#if sharingRules}} {{#each sharingRules}}<tr>
430
- <td>{{this.label}}</td>
431
- <td>{{this.fullName}}</td>
432
- <td>{{this.object}}</td>
433
- <td>{{this.type}}</td>
434
- <td>{{this.accessLevel}}</td>
435
- <td>{{this.description}}</td>
436
- </tr>
437
- {{/each}} {{else}}<tr>
438
- <td><br /></td>
439
- <td><br /></td>
440
- <td><br /></td>
441
- <td><br /></td>
442
- <td><br /></td>
443
- <td><br /></td>
444
- </tr>
445
- {{/if}}
446
- </tbody>
447
- </table>
448
- <h1 class="auto-cursor-target">Groups/Queues/Permissions</h1>
449
- <h2>Groups</h2>
450
- {{#if groups}}
451
- <table class="wrapped">
452
- <colgroup>
453
- <col />
454
- <col />
455
- <col />
456
- </colgroup>
457
- <thead>
458
- <tr>
459
- <th>Label</th>
460
- <th>Name</th>
461
- <th>Includes Bosses?</th>
462
- </tr>
463
- </thead>
464
- <tbody>
465
- {{#each groups}}
466
- <tr>
467
- <td>{{this.label}}</td>
468
- <td>{{this.apiName}}</td>
469
- <td>{{this.doesIncludeBosses}}</td>
470
- </tr>
471
- {{/each}}
472
- </tbody>
473
- </table>
474
- {{else}}
475
- <p>None</p>
476
- {{/if}}
477
- <h2>Queues</h2>
478
- {{#if queues}}
479
- <table class="wrapped">
480
- <colgroup>
481
- <col />
482
- <col />
483
- <col />
484
- </colgroup>
485
- <thead>
486
- <tr>
487
- <th>Label</th>
488
- <th>Name</th>
489
- <th>Send Email?</th>
490
- <th>Supported Objects</th>
491
- </tr>
492
- </thead>
493
- <tbody>
494
- {{#each queues}}
495
- <tr>
496
- <td>{{this.label}}</td>
497
- <td>{{this.name}}</td>
498
- <td style="text-align: center">
499
- {{#if this.doesSendEmailToMembers}} {{loud this.doesSendEmailToMembers}}
500
- {{else}} FALSE {{/if}}
501
- </td>
502
- <td>
503
- {{#each this.queueObjects}}
504
- <p>{{this}}</p>
505
- {{/each}}
506
- </td>
507
- </tr>
508
- {{/each}}
509
- </tbody>
510
- </table>
511
- {{else}}
512
- <p>None</p>
513
- {{/if}}
514
- <h2>Permission Set Groups</h2>
515
- {{#if permissionSetGroups}}
516
- <table class="wrapped">
517
- <colgroup>
518
- <col />
519
- <col />
520
- <col />
521
- </colgroup>
522
- <thead>
523
- <tr>
524
- <th>Label</th>
525
- <th>Name</th>
526
- <th>Description</th>
527
- </tr>
528
- </thead>
529
- <tbody>
530
- {{#each permissionSetGroups}}
531
- <tr>
532
- <td>{{this.label}}</td>
533
- <td>{{this.name}}</td>
534
- <td>{{this.description}}</td>
535
- </tr>
536
- {{/each}}
537
- </tbody>
538
- </table>
539
- {{else}}
540
- <p>None</p>
541
- {{/if}}
542
- <h2>Permission Sets</h2>
543
- {{#if permissionSets}}
544
- <table class="wrapped">
545
- <colgroup>
546
- <col />
547
- <col />
548
- <col />
549
- </colgroup>
550
- <thead>
551
- <tr>
552
- <th>Label</th>
553
- <th>Name</th>
554
- <th>Description</th>
555
- </tr>
556
- </thead>
557
- <tbody>
558
- {{#each permissionSets}}
559
- <tr>
560
- <td>{{this.label}}</td>
561
- <td>{{this.name}}</td>
562
- <td>{{this.description}}</td>
563
- </tr>
564
- {{/each}}
565
- </tbody>
566
- </table>
567
- {{else}}
568
- <p>None</p>
569
- {{/if}}
570
- <h1 class="auto-cursor-target">Solution Inventory</h1>
571
- <h2>Apps</h2>
572
- {{#if customApplications}}
573
- <table class="wrapped">
574
- <colgroup>
575
- <col />
576
- <col />
577
- <col />
578
- </colgroup>
579
- <thead>
580
- <tr>
581
- <th>Label</th>
582
- <th>Name</th>
583
- <th>Description</th>
584
- </tr>
585
- </thead>
586
- <tbody>
587
- {{#each customApplications}}
588
- <tr>
589
- <td>{{this.label}}</td>
590
- <td>{{this.name}}</td>
591
- <td>{{this.description}}</td>
592
- </tr>
593
- {{/each}}
594
- </tbody>
595
- </table>
596
- {{else}}
597
- <p>None</p>
598
- {{/if}}
599
- <!-- TODO: Workflow -->
600
- <h2>Flows</h2>
601
- {{#if flows}}
602
- <table class="wrapped">
603
- <colgroup>
604
- <col />
605
- <col />
606
- <col />
607
- </colgroup>
608
- <thead>
609
- <tr>
610
- <th>Label</th>
611
- <th>Name</th>
612
- <th>Process Type</th>
613
- <th>Description</th>
614
- </tr>
615
- </thead>
616
- <tbody>
617
- {{#each flows}}
618
- <tr>
619
- <td>{{this.label}}</td>
620
- <td>{{this.name}}</td>
621
- <td>{{this.processType}}</td>
622
- <td>{{this.description}}</td>
623
- </tr>
624
- {{/each}}
625
- </tbody>
626
- </table>
627
- {{else}}
628
- <p>None</p>
629
- {{/if}}
630
- <h2>Lightning App Pages</h2>
631
- {{#if flexipages}}
632
- <table class="wrapped">
633
- <colgroup>
634
- <col />
635
- <col />
636
- <col />
637
- </colgroup>
638
- <thead>
639
- <tr>
640
- <th>Label</th>
641
- <th>Name</th>
642
- <th>Type</th>
643
- </tr>
644
- </thead>
645
- <tbody>
646
- {{#each flexipages}}
647
- <tr>
648
- <td>{{this.masterLabel}}</td>
649
- <td>{{this.name}}</td>
650
- <td>{{this.type}}</td>
651
- </tr>
652
- {{/each}}
653
- </tbody>
654
- </table>
655
- {{else}}
656
- <p>None</p>
657
- {{/if}}
658
- <h2>Approval Processes</h2>
659
- {{#if approvalProcesses}}
660
- <table class="wrapped">
661
- <colgroup>
662
- <col />
663
- <col />
664
- <col />
665
- <col />
666
- </colgroup>
667
- <thead>
668
- <tr>
669
- <th>Label</th>
670
- <th>Name</th>
671
- <th>Active</th>
672
- <th>Description</th>
673
- </tr>
674
- </thead>
675
- <tbody>
676
- {{#each approvalProcesses}}
677
- <tr>
678
- <td>{{this.label}}</td>
679
- <td>{{this.name}}</td>
680
- <td>{{this.active}}</td>
681
- <td>{{this.description}}</td>
682
- </tr>
683
- {{/each}}
684
- </tbody>
685
- </table>
686
- {{else}}
687
- <p>None</p>
688
- {{/if}}
689
- <h2>Custom Settings</h2>
690
- {{#if customSettings}}
691
- <table class="wrapped">
692
- <colgroup>
693
- <col />
694
- <col />
695
- <col />
696
- </colgroup>
697
- <thead>
698
- <tr>
699
- <th>Label</th>
700
- <th>Name</th>
701
- <th>Type</th>
702
- </tr>
703
- </thead>
704
- <tbody>
705
- {{#each customSettings}}
706
- <tr>
707
- <td>{{this.label}}</td>
708
- <td>{{this.name}}</td>
709
- <td>{{this.customSettingsType}}</td>
710
- </tr>
711
- {{/each}}
712
- </tbody>
713
- </table>
714
- {{#each customSettings}}
715
- <h4 class="auto-cursor-target">{{this.label}}</h4>
716
- <h5>Fields</h5>
717
- <table class="wrapped">
718
- <colgroup>
719
- <col />
720
- <col />
721
- <col />
722
- <col />
723
- <col />
724
- <col />
725
- </colgroup>
726
- <tbody>
727
- <tr>
728
- <th>Name</th>
729
- <th>API Name</th>
730
- <th>Type</th>
731
- <th>Required</th>
732
- <th>Description</th>
733
- </tr>
734
- {{#each this.customFields}}
735
- <tr>
736
- <td>{{this.label}}</td>
737
- <td>{{this.fullName}}</td>
738
- <td>{{this.type}}</td>
739
- <td style="text-align: center">
740
- {{#if this.required}} {{loud this.required}} {{else}} FALSE {{/if}}
741
- </td>
742
- <td>{{this.miniDescription}}</td>
743
- </tr>
744
- {{/each}}
745
- </tbody>
746
- </table>
747
- {{/each}}
748
- {{else}}
749
- <p>None</p>
750
- {{/if}}
751
- <h2>Custom Metadata Types</h2>
752
- {{#if customMetadataTypes}}
753
- <table class="wrapped">
754
- <colgroup>
755
- <col />
756
- <col />
757
- <col />
758
- </colgroup>
759
- <thead>
760
- <tr>
761
- <th>Label</th>
762
- <th>Name</th>
763
- <th>Description</th>
764
- </tr>
765
- </thead>
766
- <tbody>
767
- {{#each customMetadataTypes}}
768
- <tr>
769
- <td>{{this.label}}</td>
770
- <td>{{this.name}}</td>
771
- <td>{{this.description}}</td>
772
- </tr>
773
- {{/each}}
774
- </tbody>
775
- </table>
776
- {{#each customMetadataTypes}}
777
- <h4 class="auto-cursor-target">{{this.label}}</h4>
778
- <h5>Fields</h5>
779
- <table class="wrapped">
780
- <colgroup>
781
- <col />
782
- <col />
783
- <col />
784
- <col />
785
- <col />
786
- <col />
787
- </colgroup>
788
- <tbody>
789
- <tr>
790
- <th>Name</th>
791
- <th>API Name</th>
792
- <th>Type</th>
793
- <th>Required</th>
794
- <th>Description</th>
795
- </tr>
796
- {{#each this.customFields}}
797
- <tr>
798
- <td>{{this.label}}</td>
799
- <td>{{this.fullName}}</td>
800
- <td>{{this.type}}</td>
801
- <td style="text-align: center">
802
- {{#if this.required}} {{loud this.required}} {{else}} FALSE {{/if}}
803
- </td>
804
- <td>{{this.miniDescription}}</td>
805
- </tr>
806
- {{/each}}
807
- </tbody>
808
- </table>
809
- {{/each}}
810
- {{else}}
811
- <p>None</p>
812
- {{/if}}
813
- <h2>Custom Metadata</h2>
814
- {{#if customMetadata}}
815
- <table class="wrapped">
816
- <colgroup>
817
- <col />
818
- <col />
819
- <col />
820
- </colgroup>
821
- <thead>
822
- <tr>
823
- <th>Label</th>
824
- <th>Name</th>
825
- </tr>
826
- </thead>
827
- <tbody>
828
- {{#each customMetadata}}
829
- <tr>
830
- <td>{{this.label}}</td>
831
- <td>{{this.name}}</td>
832
- </tr>
833
- {{/each}}
834
- </tbody>
835
- </table>
836
- {{else}}
837
- <p>None</p>
838
- {{/if}}
839
- <h2>Platform Events</h2>
840
- {{#if platformEvents}}
841
- <table class="wrapped">
842
- <colgroup>
843
- <col />
844
- <col />
845
- <col />
846
- <col />
847
- </colgroup>
848
- <thead>
849
- <tr>
850
- <th>Label</th>
851
- <th>Name</th>
852
- <th>Type</th>
853
- <th>Publish Behavior</th>
854
- </tr>
855
- </thead>
856
- <tbody>
857
- {{#each platformEvents}}
858
- <tr>
859
- <td>{{this.label}}</td>
860
- <td>{{this.name}}</td>
861
- <td>{{this.eventType}}</td>
862
- <td>{{this.publishBehavior}}</td>
863
- </tr>
864
- {{/each}}
865
- </tbody>
866
- </table>
867
- {{#each platformEvents}}
868
- <h4 class="auto-cursor-target">{{this.label}}</h4>
869
- <h5>Fields</h5>
870
- <table class="wrapped">
871
- <colgroup>
872
- <col />
873
- <col />
874
- <col />
875
- <col />
876
- <col />
877
- <col />
878
- </colgroup>
879
- <tbody>
880
- <tr>
881
- <th>Name</th>
882
- <th>API Name</th>
883
- <th>Type</th>
884
- <th>Required</th>
885
- <th>Description</th>
886
- </tr>
887
- {{#each this.customFields}}
888
- <tr>
889
- <td>{{this.label}}</td>
890
- <td>{{this.fullName}}</td>
891
- <td>{{this.type}}</td>
892
- <td style="text-align: center">
893
- {{#if this.required}} {{loud this.required}} {{else}} FALSE {{/if}}
894
- </td>
895
- <td>{{this.miniDescription}}</td>
896
- </tr>
897
- {{/each}}
898
- </tbody>
899
- </table>
900
- {{/each}}
901
- {{else}}
902
- <p>None</p>
903
- {{/if}}
904
- <h2>Custom Labels</h2>
905
- {{#if customLabels}}
906
- <table class="wrapped">
907
- <colgroup>
908
- <col />
909
- <col />
910
- </colgroup>
911
- <thead>
912
- <tr>
913
- <th>Name</th>
914
- <th>Short Description</th>
915
- </tr>
916
- </thead>
917
- <tbody>
918
- {{#each customLabels}}
919
- <tr>
920
- <td>{{this.fullName}}</td>
921
- <td>{{this.shortDescription}}</td>
922
- </tr>
923
- {{/each}}
924
- </tbody>
925
- </table>
926
- {{else}}
927
- <p>None</p>
928
- {{/if}}
929
- <h2>Email Templates</h2>
930
- {{#if emailTemplates}}
931
- <table class="wrapped">
932
- <colgroup>
933
- <col />
934
- <col />
935
- <col />
936
- <col />
937
- </colgroup>
938
- <thead>
939
- <tr>
940
- <th>Name</th>
941
- <th>Label</th>
942
- <th>Type</th>
943
- <th>Description</th>
944
- </tr>
945
- </thead>
946
- <tbody>
947
- {{#each emailTemplates}}
948
- <tr>
949
- <td>{{this.apiName}}</td>
950
- <td>{{this.label}}</td>
951
- <td>{{this.type}}</td>
952
- <td>{{this.description}}</td>
953
- </tr>
954
- {{/each}}
955
- </tbody>
956
- </table>
957
- {{else}}
958
- <p>None</p>
959
- {{/if}}
960
- <h2>Reports</h2>
961
- {{#if reports}}
962
- <table class="wrapped">
963
- <colgroup>
964
- <col />
965
- <col />
966
- <col />
967
- </colgroup>
968
- <thead>
969
- <tr>
970
- <th>Name</th>
971
- <th>Folder Name</th>
972
- <th>Description</th>
973
- </tr>
974
- </thead>
975
- <tbody>
976
- {{#each reports}}
977
- <tr>
978
- <td>{{this.name}}</td>
979
- <td>{{this.folderName}}</td>
980
- <td>{{this.description}}</td>
981
- </tr>
982
- {{/each}}
983
- </tbody>
984
- </table>
985
- {{else}}
986
- <p>None</p>
987
- {{/if}}
988
- <h2>Dashboards</h2>
989
- {{#if dashboards}}
990
- <table class="wrapped">
991
- <colgroup>
992
- <col />
993
- <col />
994
- <col />
995
- </colgroup>
996
- <thead>
997
- <tr>
998
- <th>Name</th>
999
- <th>Folder Name</th>
1000
- <th>Description</th>
1001
- </tr>
1002
- </thead>
1003
- <tbody>
1004
- {{#each dashboards}}
1005
- <tr>
1006
- <td>{{this.name}}</td>
1007
- <td>{{this.folderName}}</td>
1008
- <td>{{this.description}}</td>
1009
- </tr>
1010
- {{/each}}
1011
- </tbody>
1012
- </table>
1013
- {{else}}
1014
- <p>None</p>
1015
- {{/if}}
1016
- <h1 class="auto-cursor-target">Custom Code Inventory</h1>
1017
- <h2>Apex Triggers</h2>
1018
- {{#if apexTriggers}}
1019
- <table class="wrapped">
1020
- <colgroup>
1021
- <col />
1022
- <col />
1023
- <col />
1024
- </colgroup>
1025
- <thead>
1026
- <tr>
1027
- <th>Name</th>
1028
- <th>Status</th>
1029
- <th>API Version</th>
1030
- </tr>
1031
- </thead>
1032
- <tbody>
1033
- {{#each apexTriggers}}
1034
- <tr>
1035
- <td>{{this.name}}</td>
1036
- <td>{{this.status}}</td>
1037
- <td>{{this.apiVersion}}</td>
1038
- </tr>
1039
- {{/each}}
1040
- </tbody>
1041
- </table>
1042
- {{else}}
1043
- <p>None</p>
1044
- {{/if}}
1045
- <h2>Apex Classes</h2>
1046
- {{#if apexClasses}}
1047
- <table class="wrapped">
1048
- <colgroup>
1049
- <col />
1050
- <col />
1051
- <col />
1052
- </colgroup>
1053
- <thead>
1054
- <tr>
1055
- <th>Name</th>
1056
- <th>Status</th>
1057
- <th>API Version</th>
1058
- </tr>
1059
- </thead>
1060
- <tbody>
1061
- {{#each apexClasses}}
1062
- <tr>
1063
- <td>{{this.name}}</td>
1064
- <td>{{this.status}}</td>
1065
- <td>{{this.apiVersion}}</td>
1066
- </tr>
1067
- {{/each}}
1068
- </tbody>
1069
- </table>
1070
- {{else}}
1071
- <p>None</p>
1072
- {{/if}}
1073
- <h2>Lightning Web Components</h2>
1074
- {{#if lightningComponents}}
1075
- <table class="wrapped">
1076
- <colgroup>
1077
- <col />
1078
- <col />
1079
- <col />
1080
- </colgroup>
1081
- <thead>
1082
- <tr>
1083
- <th>Name</th>
1084
- <th>Description</th>
1085
- <th>API Version</th>
1086
- </tr>
1087
- </thead>
1088
- <tbody>
1089
- {{#each lightningComponents}}
1090
- <tr>
1091
- <td>{{this.name}}</td>
1092
- <td>{{this.description}}</td>
1093
- <td>{{this.apiVersion}}</td>
1094
- </tr>
1095
- {{/each}}
1096
- </tbody>
1097
- </table>
1098
- {{else}}
1099
- <p>None</p>
1100
- {{/if}}
1101
- <h2>Aura Components</h2>
1102
- {{#if auraComponents}}
1103
- <table class="wrapped">
1104
- <colgroup>
1105
- <col />
1106
- <col />
1107
- <col />
1108
- </colgroup>
1109
- <thead>
1110
- <tr>
1111
- <th>Name</th>
1112
- <th>Description</th>
1113
- <th>API Version</th>
1114
- </tr>
1115
- </thead>
1116
- <tbody>
1117
- {{#each auraComponents}}
1118
- <tr>
1119
- <td>{{this.name}}</td>
1120
- <td>{{this.description}}</td>
1121
- <td>{{this.apiVersion}}</td>
1122
- </tr>
1123
- {{/each}}
1124
- </tbody>
1125
- </table>
1126
- {{else}}
1127
- <p>None</p>
1128
- {{/if}}
1129
- <h2>Visualforce Pages</h2>
1130
- {{#if visualforcePages}}
1131
- <table class="wrapped">
1132
- <colgroup>
1133
- <col />
1134
- <col />
1135
- <col />
1136
- <col />
1137
- </colgroup>
1138
- <thead>
1139
- <tr>
1140
- <th>Name</th>
1141
- <th>Label</th>
1142
- <th>Description</th>
1143
- <th>API Version</th>
1144
- </tr>
1145
- </thead>
1146
- <tbody>
1147
- {{#each visualforcePages}}
1148
- <tr>
1149
- <td>{{this.name}}</td>
1150
- <td>{{this.label}}</td>
1151
- <td>{{this.description}}</td>
1152
- <td>{{this.apiVersion}}</td>
1153
- </tr>
1154
- {{/each}}
1155
- </tbody>
1156
- </table>
1157
- {{else}}
1158
- <p>None</p>
1159
- {{/if}}
1160
- <h2>Static Resources</h2>
1161
- {{#if staticResources}}
1162
- <table class="wrapped">
1163
- <colgroup>
1164
- <col />
1165
- <col />
1166
- <col />
1167
- <col />
1168
- </colgroup>
1169
- <thead>
1170
- <tr>
1171
- <th>Name</th>
1172
- <th>Content Type</th>
1173
- <th>Cache Control</th>
1174
- <th>Description</th>
1175
- </tr>
1176
- </thead>
1177
- <tbody>
1178
- {{#each staticResources}}
1179
- <tr>
1180
- <td>{{this.name}}</td>
1181
- <td>{{this.contentType}}</td>
1182
- <td>{{this.cacheControl}}</td>
1183
- <td>{{this.description}}</td>
1184
- </tr>
1185
- {{/each}}
1186
- </tbody>
1187
- </table>
1188
- {{else}}
1189
- <p>None</p>
1190
- {{/if}}
1191
- <h1 class="auto-cursor-target">Digital Experiences</h1>
1192
- <h2>Experience Bundles</h2>
1193
- {{#if experienceBundles}}
1194
- <table class="wrapped">
1195
- <colgroup>
1196
- <col />
1197
- </colgroup>
1198
- <thead>
1199
- <tr>
1200
- <th>Name</th>
1201
- </tr>
1202
- </thead>
1203
- <tbody>
1204
- {{#each experienceBundles}}
1205
- <tr>
1206
- <td>{{this.name}}</td>
1207
- </tr>
1208
- {{/each}}
1209
- </tbody>
1210
- </table>
1211
- {{else}}
1212
- <p>None</p>
1213
- {{/if}}
1214
- <h2>Digital Experience Bundles</h2>
1215
- {{#if digitalExperienceBundles}}
1216
- <table class="wrapped">
1217
- <colgroup>
1218
- <col />
1219
- </colgroup>
1220
- <thead>
1221
- <tr>
1222
- <th>Name</th>
1223
- </tr>
1224
- </thead>
1225
- <tbody>
1226
- {{#each digitalExperienceBundles}}
1227
- <tr>
1228
- <td>{{this.name}}</td>
1229
- </tr>
1230
- {{/each}}
1231
- </tbody>
1232
- </table>
1233
- {{else}}
1234
- <p>None</p>
1235
- {{/if}}
1236
- `;
1237
- const renderTechnicalDesignDocument = handlebars.compile(technicalDesignDocumentSource);
1238
- /**
1239
- * Render a Confluence-storage-format technical design document from a Salesforce project's
1240
- * scanned metadata, covering objects/data model, security model, groups/queues/permissions,
1241
- * solution inventory, and custom code inventory.
1242
- *
1243
- * @param data - The scanned project metadata to render.
1244
- * @param customTemplateSource - A user-supplied Handlebars template to render instead of the
1245
- * built-in one. Compiled against the same Handlebars instance as the built-in template, so it
1246
- * can also use the `loud` helper. See the README's "Custom Templates" section for the `data`
1247
- * shape.
1248
- * @returns The rendered XHTML document.
1249
- */
1250
- export function buildTechnicalDesignDocumentHtml(data, customTemplateSource) {
1251
- const render = customTemplateSource ? handlebars.compile(customTemplateSource) : renderTechnicalDesignDocument;
1252
- return render(data);
1253
- }
1254
- //# sourceMappingURL=technicalDesignDocumentTemplate.js.map