@cparra/apexdocs 3.13.0 → 3.15.0-alpha.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.
@@ -5,14 +5,17 @@ var TE = require('fp-ts/TaskEither');
5
5
  var E = require('fp-ts/Either');
6
6
  var yaml = require('js-yaml');
7
7
  var path = require('path');
8
- var T = require('fp-ts/Task');
9
- var A = require('fp-ts/lib/Array');
10
- var apexReflection = require('@cparra/apex-reflection');
11
8
  var O = require('fp-ts/Option');
12
- var fastXmlParser = require('fast-xml-parser');
13
9
  var Handlebars = require('handlebars');
14
10
  var boolean = require('fp-ts/boolean');
15
- var A$1 = require('fp-ts/Array');
11
+ var fastXmlParser = require('fast-xml-parser');
12
+ var T = require('fp-ts/Task');
13
+ var A = require('fp-ts/Array');
14
+ var worker_threads = require('worker_threads');
15
+ var os = require('os');
16
+ var A$1 = require('fp-ts/lib/Array');
17
+ var apexReflection = require('@cparra/apex-reflection');
18
+ var uuid = require('uuid');
16
19
  var fs = require('fs');
17
20
  var TE$1 = require('fp-ts/lib/TaskEither');
18
21
  var minimatch = require('minimatch');
@@ -40,9 +43,9 @@ var TE__namespace = /*#__PURE__*/_interopNamespaceDefault(TE);
40
43
  var E__namespace = /*#__PURE__*/_interopNamespaceDefault(E);
41
44
  var yaml__namespace = /*#__PURE__*/_interopNamespaceDefault(yaml);
42
45
  var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
46
+ var O__namespace = /*#__PURE__*/_interopNamespaceDefault(O);
43
47
  var T__namespace = /*#__PURE__*/_interopNamespaceDefault(T);
44
48
  var A__namespace = /*#__PURE__*/_interopNamespaceDefault(A);
45
- var O__namespace = /*#__PURE__*/_interopNamespaceDefault(O);
46
49
  var A__namespace$1 = /*#__PURE__*/_interopNamespaceDefault(A$1);
47
50
  var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
48
51
  var TE__namespace$1 = /*#__PURE__*/_interopNamespaceDefault(TE$1);
@@ -51,6 +54,171 @@ function apply(fn, ...front) {
51
54
  return (...tailArgs) => fn(...front, ...tailArgs);
52
55
  }
53
56
 
57
+ const defaultTranslations = {
58
+ changelog: {
59
+ title: "Changelog",
60
+ newClasses: {
61
+ heading: "New Classes",
62
+ description: "These classes are new."
63
+ },
64
+ newInterfaces: {
65
+ heading: "New Interfaces",
66
+ description: "These interfaces are new."
67
+ },
68
+ newEnums: {
69
+ heading: "New Enums",
70
+ description: "These enums are new."
71
+ },
72
+ newCustomObjects: {
73
+ heading: "New Custom Objects",
74
+ description: "These custom objects are new."
75
+ },
76
+ newTriggers: {
77
+ heading: "New Triggers",
78
+ description: "These triggers are new."
79
+ },
80
+ removedTypes: {
81
+ heading: "Removed Types",
82
+ description: "These types have been removed."
83
+ },
84
+ removedCustomObjects: {
85
+ heading: "Removed Custom Objects",
86
+ description: "These custom objects have been removed."
87
+ },
88
+ removedTriggers: {
89
+ heading: "Removed Triggers",
90
+ description: "These triggers have been removed."
91
+ },
92
+ newOrModifiedMembers: {
93
+ heading: "New or Modified Members in Existing Types",
94
+ description: "These members have been added or modified."
95
+ },
96
+ newOrRemovedCustomFields: {
97
+ heading: "New or Removed Fields to Custom Objects or Standard Objects",
98
+ description: "These custom fields have been added or removed."
99
+ },
100
+ newOrRemovedCustomMetadataTypeRecords: {
101
+ heading: "New or Removed Custom Metadata Type Records",
102
+ description: "These custom metadata type records have been added or removed."
103
+ },
104
+ memberModifications: {
105
+ newEnumValue: "New Enum Value",
106
+ removedEnumValue: "Removed Enum Value",
107
+ newMethod: "New Method",
108
+ removedMethod: "Removed Method",
109
+ newProperty: "New Property",
110
+ removedProperty: "Removed Property",
111
+ newField: "New Field",
112
+ removedField: "Removed Field",
113
+ newType: "New Type",
114
+ removedType: "Removed Type",
115
+ newCustomMetadataRecord: "New Custom Metadata Record",
116
+ removedCustomMetadataRecord: "Removed Custom Metadata Record",
117
+ newTrigger: "New Trigger",
118
+ removedTrigger: "Removed Trigger"
119
+ }
120
+ },
121
+ markdown: {
122
+ sections: {
123
+ methods: "Methods",
124
+ properties: "Properties",
125
+ fields: "Fields",
126
+ constructors: "Constructors",
127
+ values: "Values",
128
+ classes: "Classes",
129
+ enums: "Enums",
130
+ interfaces: "Interfaces",
131
+ namespace: "Namespace",
132
+ records: "Records",
133
+ publishBehavior: "Publish Behavior"
134
+ },
135
+ details: {
136
+ type: "Type",
137
+ signature: "Signature",
138
+ group: "Group",
139
+ author: "Author",
140
+ date: "Date",
141
+ see: "See",
142
+ possibleValues: "Possible values are",
143
+ parameters: "Parameters",
144
+ throws: "Throws",
145
+ returnType: "Return Type",
146
+ apiName: "API Name",
147
+ required: "Required",
148
+ inlineHelpText: "Inline Help Text",
149
+ complianceGroup: "Compliance Group",
150
+ securityClassification: "Security Classification",
151
+ protected: "Protected"
152
+ },
153
+ typeSuffixes: {
154
+ class: "Class",
155
+ interface: "Interface",
156
+ enum: "Enum",
157
+ trigger: "Trigger"
158
+ },
159
+ triggerEvents: {
160
+ beforeInsert: "Before Insert",
161
+ beforeUpdate: "Before Update",
162
+ beforeDelete: "Before Delete",
163
+ afterInsert: "After Insert",
164
+ afterUpdate: "After Update",
165
+ afterDelete: "After Delete",
166
+ afterUndelete: "After Undelete"
167
+ },
168
+ publishBehaviors: {
169
+ publishImmediately: "Publish Immediately",
170
+ publishAfterCommit: "Publish After Commit"
171
+ },
172
+ inheritance: {
173
+ inheritance: "Inheritance",
174
+ implements: "Implements"
175
+ }
176
+ }
177
+ };
178
+
179
+ var __defProp$t = Object.defineProperty;
180
+ var __getOwnPropSymbols$t = Object.getOwnPropertySymbols;
181
+ var __hasOwnProp$t = Object.prototype.hasOwnProperty;
182
+ var __propIsEnum$t = Object.prototype.propertyIsEnumerable;
183
+ var __defNormalProp$t = (obj, key, value) => key in obj ? __defProp$t(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
184
+ var __spreadValues$t = (a, b) => {
185
+ for (var prop in b || (b = {}))
186
+ if (__hasOwnProp$t.call(b, prop))
187
+ __defNormalProp$t(a, prop, b[prop]);
188
+ if (__getOwnPropSymbols$t)
189
+ for (var prop of __getOwnPropSymbols$t(b)) {
190
+ if (__propIsEnum$t.call(b, prop))
191
+ __defNormalProp$t(a, prop, b[prop]);
192
+ }
193
+ return a;
194
+ };
195
+ function mergeTranslations(userTranslations) {
196
+ if (!userTranslations) {
197
+ return defaultTranslations;
198
+ }
199
+ return JSON.parse(
200
+ JSON.stringify(Object.assign({}, defaultTranslations, deepMerge(defaultTranslations, userTranslations)))
201
+ );
202
+ }
203
+ function isObjectWithStringKeys(value) {
204
+ return value !== null && typeof value === "object" && !Array.isArray(value);
205
+ }
206
+ function deepMerge(target, source) {
207
+ const result = __spreadValues$t({}, target);
208
+ for (const key in source) {
209
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
210
+ const sourceValue = source[key];
211
+ const targetValue = result[key];
212
+ if (isObjectWithStringKeys(sourceValue) && isObjectWithStringKeys(targetValue)) {
213
+ result[key] = deepMerge(targetValue, sourceValue);
214
+ } else if (sourceValue !== void 0) {
215
+ result[key] = sourceValue;
216
+ }
217
+ }
218
+ }
219
+ return result;
220
+ }
221
+
54
222
  function defaultGetEmailByReference(email) {
55
223
  return {
56
224
  __type: "link",
@@ -150,25 +318,25 @@ function isInlineCode(content) {
150
318
  return Object.keys(content).includes("__type") && content.__type === "inline-code";
151
319
  }
152
320
 
153
- var __defProp$o = Object.defineProperty;
154
- var __defProps$o = Object.defineProperties;
155
- var __getOwnPropDescs$o = Object.getOwnPropertyDescriptors;
156
- var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
157
- var __hasOwnProp$o = Object.prototype.hasOwnProperty;
158
- var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
159
- var __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
160
- var __spreadValues$o = (a, b) => {
321
+ var __defProp$s = Object.defineProperty;
322
+ var __defProps$r = Object.defineProperties;
323
+ var __getOwnPropDescs$r = Object.getOwnPropertyDescriptors;
324
+ var __getOwnPropSymbols$s = Object.getOwnPropertySymbols;
325
+ var __hasOwnProp$s = Object.prototype.hasOwnProperty;
326
+ var __propIsEnum$s = Object.prototype.propertyIsEnumerable;
327
+ var __defNormalProp$s = (obj, key, value) => key in obj ? __defProp$s(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
328
+ var __spreadValues$s = (a, b) => {
161
329
  for (var prop in b || (b = {}))
162
- if (__hasOwnProp$o.call(b, prop))
163
- __defNormalProp$o(a, prop, b[prop]);
164
- if (__getOwnPropSymbols$o)
165
- for (var prop of __getOwnPropSymbols$o(b)) {
166
- if (__propIsEnum$o.call(b, prop))
167
- __defNormalProp$o(a, prop, b[prop]);
330
+ if (__hasOwnProp$s.call(b, prop))
331
+ __defNormalProp$s(a, prop, b[prop]);
332
+ if (__getOwnPropSymbols$s)
333
+ for (var prop of __getOwnPropSymbols$s(b)) {
334
+ if (__propIsEnum$s.call(b, prop))
335
+ __defNormalProp$s(a, prop, b[prop]);
168
336
  }
169
337
  return a;
170
338
  };
171
- var __spreadProps$o = (a, b) => __defProps$o(a, __getOwnPropDescs$o(b));
339
+ var __spreadProps$r = (a, b) => __defProps$r(a, __getOwnPropDescs$r(b));
172
340
  function adaptDescribable(describable, linkGenerator) {
173
341
  return {
174
342
  description: describableToRenderableContent(describable, linkGenerator)
@@ -220,7 +388,7 @@ function adaptDocumentable(documentable, linkGenerator, subHeadingLevel) {
220
388
  function extractCustomTags(type) {
221
389
  var _a2, _b2;
222
390
  const baseTags = ["description", "group", "author", "date", "see", "example", "throws", "exception"];
223
- return (_b2 = (_a2 = type.docComment) == null ? void 0 : _a2.annotations.filter((currentAnnotation) => !baseTags.includes(currentAnnotation.name.toLowerCase())).map((currentAnnotation) => __spreadProps$o(__spreadValues$o({}, adaptDescribable(currentAnnotation.bodyLines, linkGenerator)), {
391
+ return (_b2 = (_a2 = type.docComment) == null ? void 0 : _a2.annotations.filter((currentAnnotation) => !baseTags.includes(currentAnnotation.name.toLowerCase())).map((currentAnnotation) => __spreadProps$r(__spreadValues$s({}, adaptDescribable(currentAnnotation.bodyLines, linkGenerator)), {
224
392
  name: currentAnnotation.name
225
393
  }))) != null ? _b2 : [];
226
394
  }
@@ -234,7 +402,7 @@ function adaptDocumentable(documentable, linkGenerator, subHeadingLevel) {
234
402
  var _a2, _b2;
235
403
  return (_b2 = (_a2 = type.docComment) == null ? void 0 : _a2.annotations.filter((currentAnnotation) => currentAnnotation.name.toLowerCase() === "see").map((currentAnnotation) => currentAnnotation.body)) != null ? _b2 : [];
236
404
  }
237
- return __spreadProps$o(__spreadValues$o({}, adaptDescribable((_a = documentable.docComment) == null ? void 0 : _a.descriptionLines, linkGenerator)), {
405
+ return __spreadProps$r(__spreadValues$s({}, adaptDescribable((_a = documentable.docComment) == null ? void 0 : _a.descriptionLines, linkGenerator)), {
238
406
  annotations: documentable.annotations.map((annotation) => annotation.type.toUpperCase()),
239
407
  customTags: extractCustomTags(documentable),
240
408
  example: {
@@ -249,26 +417,26 @@ function adaptDocumentable(documentable, linkGenerator, subHeadingLevel) {
249
417
  });
250
418
  }
251
419
 
252
- var __defProp$n = Object.defineProperty;
253
- var __defProps$n = Object.defineProperties;
254
- var __getOwnPropDescs$n = Object.getOwnPropertyDescriptors;
255
- var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
256
- var __hasOwnProp$n = Object.prototype.hasOwnProperty;
257
- var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
258
- var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
259
- var __spreadValues$n = (a, b) => {
420
+ var __defProp$r = Object.defineProperty;
421
+ var __defProps$q = Object.defineProperties;
422
+ var __getOwnPropDescs$q = Object.getOwnPropertyDescriptors;
423
+ var __getOwnPropSymbols$r = Object.getOwnPropertySymbols;
424
+ var __hasOwnProp$r = Object.prototype.hasOwnProperty;
425
+ var __propIsEnum$r = Object.prototype.propertyIsEnumerable;
426
+ var __defNormalProp$r = (obj, key, value) => key in obj ? __defProp$r(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
427
+ var __spreadValues$r = (a, b) => {
260
428
  for (var prop in b || (b = {}))
261
- if (__hasOwnProp$n.call(b, prop))
262
- __defNormalProp$n(a, prop, b[prop]);
263
- if (__getOwnPropSymbols$n)
264
- for (var prop of __getOwnPropSymbols$n(b)) {
265
- if (__propIsEnum$n.call(b, prop))
266
- __defNormalProp$n(a, prop, b[prop]);
429
+ if (__hasOwnProp$r.call(b, prop))
430
+ __defNormalProp$r(a, prop, b[prop]);
431
+ if (__getOwnPropSymbols$r)
432
+ for (var prop of __getOwnPropSymbols$r(b)) {
433
+ if (__propIsEnum$r.call(b, prop))
434
+ __defNormalProp$r(a, prop, b[prop]);
267
435
  }
268
436
  return a;
269
437
  };
270
- var __spreadProps$n = (a, b) => __defProps$n(a, __getOwnPropDescs$n(b));
271
- function adaptMethod(method, linkGenerator, baseHeadingLevel) {
438
+ var __spreadProps$q = (a, b) => __defProps$q(a, __getOwnPropDescs$q(b));
439
+ function adaptMethod(method, linkGenerator, baseHeadingLevel, translations) {
272
440
  var _a, _b, _c;
273
441
  function buildTitle(method2) {
274
442
  const { name, parameters } = method2;
@@ -291,30 +459,30 @@ function adaptMethod(method, linkGenerator, baseHeadingLevel) {
291
459
  heading: buildTitle(method),
292
460
  signature: {
293
461
  headingLevel: baseHeadingLevel + 1,
294
- heading: "Signature",
462
+ heading: translations.markdown.details.signature,
295
463
  value: buildSignature(method)
296
464
  },
297
465
  returnType: {
298
466
  headingLevel: baseHeadingLevel + 1,
299
- heading: "Return Type",
300
- value: __spreadProps$n(__spreadValues$n({}, adaptDescribable((_b = (_a = method.docComment) == null ? void 0 : _a.returnAnnotation) == null ? void 0 : _b.bodyLines, linkGenerator)), {
467
+ heading: translations.markdown.details.returnType,
468
+ value: __spreadProps$q(__spreadValues$r({}, adaptDescribable((_b = (_a = method.docComment) == null ? void 0 : _a.returnAnnotation) == null ? void 0 : _b.bodyLines, linkGenerator)), {
301
469
  type: linkGenerator(method.typeReference.rawDeclaration)
302
470
  })
303
471
  },
304
472
  throws: {
305
473
  headingLevel: baseHeadingLevel + 1,
306
- heading: "Throws",
474
+ heading: translations.markdown.details.throws,
307
475
  value: (_c = method.docComment) == null ? void 0 : _c.throwsAnnotations.map((thrown) => mapThrows(thrown, linkGenerator))
308
476
  },
309
477
  parameters: {
310
478
  headingLevel: baseHeadingLevel + 1,
311
- heading: "Parameters",
479
+ heading: translations.markdown.details.parameters,
312
480
  value: method.parameters.map((param) => mapParameters(method, param, linkGenerator))
313
481
  },
314
482
  inherited: method.inherited
315
483
  };
316
484
  }
317
- function adaptConstructor(typeName, constructor, linkGenerator, baseHeadingLevel) {
485
+ function adaptConstructor(typeName, constructor, linkGenerator, baseHeadingLevel, translations) {
318
486
  var _a;
319
487
  function buildTitle(name, constructor2) {
320
488
  const { parameters } = constructor2;
@@ -336,17 +504,17 @@ function adaptConstructor(typeName, constructor, linkGenerator, baseHeadingLevel
336
504
  heading: buildTitle(typeName, constructor),
337
505
  signature: {
338
506
  headingLevel: baseHeadingLevel + 1,
339
- heading: "Signature",
507
+ heading: translations.markdown.details.signature,
340
508
  value: buildSignature(typeName, constructor)
341
509
  },
342
510
  parameters: {
343
511
  headingLevel: baseHeadingLevel + 1,
344
- heading: "Parameters",
512
+ heading: translations.markdown.details.parameters,
345
513
  value: constructor.parameters.map((param) => mapParameters(constructor, param, linkGenerator))
346
514
  },
347
515
  throws: {
348
516
  headingLevel: baseHeadingLevel + 1,
349
- heading: "Throws",
517
+ heading: translations.markdown.details.throws,
350
518
  value: (_a = constructor.docComment) == null ? void 0 : _a.throwsAnnotations.map((thrown) => mapThrows(thrown, linkGenerator))
351
519
  }
352
520
  };
@@ -356,18 +524,18 @@ function mapParameters(documentable, param, linkGenerator) {
356
524
  const paramAnnotation = (_a = documentable.docComment) == null ? void 0 : _a.paramAnnotations.find(
357
525
  (pa) => pa.paramName.toLowerCase() === param.name.toLowerCase()
358
526
  );
359
- return __spreadProps$n(__spreadValues$n({}, adaptDescribable(paramAnnotation == null ? void 0 : paramAnnotation.bodyLines, linkGenerator)), {
527
+ return __spreadProps$q(__spreadValues$r({}, adaptDescribable(paramAnnotation == null ? void 0 : paramAnnotation.bodyLines, linkGenerator)), {
360
528
  name: param.name,
361
529
  type: linkGenerator(param.typeReference.rawDeclaration)
362
530
  });
363
531
  }
364
532
  function mapThrows(thrown, linkGenerator) {
365
- return __spreadProps$n(__spreadValues$n({}, adaptDescribable(thrown.bodyLines, linkGenerator)), {
533
+ return __spreadProps$q(__spreadValues$r({}, adaptDescribable(thrown.bodyLines, linkGenerator)), {
366
534
  type: linkGenerator(thrown.exceptionName)
367
535
  });
368
536
  }
369
537
 
370
- function adaptFieldOrProperty(field, linkGenerator, baseHeadingLevel) {
538
+ function adaptFieldOrProperty(field, linkGenerator, baseHeadingLevel, translations) {
371
539
  function buildSignature() {
372
540
  const { access_modifier, name } = field;
373
541
  const memberModifiers = field.memberModifiers.join(" ");
@@ -384,14 +552,14 @@ function adaptFieldOrProperty(field, linkGenerator, baseHeadingLevel) {
384
552
  heading: field.name,
385
553
  type: {
386
554
  headingLevel: baseHeadingLevel + 1,
387
- heading: "Type",
555
+ heading: translations.markdown.details.type,
388
556
  value: linkGenerator(field.typeReference.rawDeclaration)
389
557
  },
390
558
  inherited: field.inherited,
391
559
  accessModifier: field.access_modifier,
392
560
  signature: {
393
561
  headingLevel: baseHeadingLevel + 1,
394
- heading: "Signature",
562
+ heading: translations.markdown.details.signature,
395
563
  value: buildSignature()
396
564
  }
397
565
  };
@@ -450,52 +618,52 @@ ${yamlString}---
450
618
  `;
451
619
  }
452
620
 
453
- var __defProp$m = Object.defineProperty;
454
- var __defProps$m = Object.defineProperties;
455
- var __getOwnPropDescs$m = Object.getOwnPropertyDescriptors;
456
- var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
457
- var __hasOwnProp$m = Object.prototype.hasOwnProperty;
458
- var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
459
- var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
460
- var __spreadValues$m = (a, b) => {
621
+ var __defProp$q = Object.defineProperty;
622
+ var __defProps$p = Object.defineProperties;
623
+ var __getOwnPropDescs$p = Object.getOwnPropertyDescriptors;
624
+ var __getOwnPropSymbols$q = Object.getOwnPropertySymbols;
625
+ var __hasOwnProp$q = Object.prototype.hasOwnProperty;
626
+ var __propIsEnum$q = Object.prototype.propertyIsEnumerable;
627
+ var __defNormalProp$q = (obj, key, value) => key in obj ? __defProp$q(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
628
+ var __spreadValues$q = (a, b) => {
461
629
  for (var prop in b || (b = {}))
462
- if (__hasOwnProp$m.call(b, prop))
463
- __defNormalProp$m(a, prop, b[prop]);
464
- if (__getOwnPropSymbols$m)
465
- for (var prop of __getOwnPropSymbols$m(b)) {
466
- if (__propIsEnum$m.call(b, prop))
467
- __defNormalProp$m(a, prop, b[prop]);
630
+ if (__hasOwnProp$q.call(b, prop))
631
+ __defNormalProp$q(a, prop, b[prop]);
632
+ if (__getOwnPropSymbols$q)
633
+ for (var prop of __getOwnPropSymbols$q(b)) {
634
+ if (__propIsEnum$q.call(b, prop))
635
+ __defNormalProp$q(a, prop, b[prop]);
468
636
  }
469
637
  return a;
470
638
  };
471
- var __spreadProps$m = (a, b) => __defProps$m(a, __getOwnPropDescs$m(b));
472
- function typeToRenderable$1(parsedFile, linkGenerator, config) {
639
+ var __spreadProps$p = (a, b) => __defProps$p(a, __getOwnPropDescs$p(b));
640
+ function typeToRenderable$1(parsedFile, linkGenerator, config, translations) {
473
641
  function getRenderable() {
474
642
  const { type } = parsedFile;
475
643
  switch (type.type_name) {
476
644
  case "enum":
477
- return enumTypeToEnumSource(type, linkGenerator);
645
+ return enumTypeToEnumSource(type, linkGenerator, 1, translations);
478
646
  case "interface":
479
- return interfaceTypeToInterfaceSource(type, linkGenerator);
647
+ return interfaceTypeToInterfaceSource(type, linkGenerator, 1, translations);
480
648
  case "class":
481
- return classTypeToClassSource(type, linkGenerator);
649
+ return classTypeToClassSource(type, linkGenerator, 1, translations);
482
650
  case "trigger":
483
- return triggerMetadataToRenderable(type, linkGenerator);
651
+ return triggerMetadataToRenderable(type, linkGenerator, 1, translations);
484
652
  case "customobject":
485
- return objectMetadataToRenderable(type, config);
653
+ return objectMetadataToRenderable(type, config, translations);
486
654
  }
487
655
  }
488
- return __spreadProps$m(__spreadValues$m({}, getRenderable()), {
656
+ return __spreadProps$p(__spreadValues$q({}, getRenderable()), {
489
657
  filePath: isInSource(parsedFile.source) ? parsedFile.source.filePath : void 0,
490
658
  namespace: config.namespace
491
659
  });
492
660
  }
493
- function baseTypeAdapter(type, linkGenerator, baseHeadingLevel) {
661
+ function baseTypeAdapter(type, linkGenerator, baseHeadingLevel, translations) {
494
662
  function getHeading(type2) {
495
663
  const suffixMap = {
496
- class: "Class",
497
- interface: "Interface",
498
- enum: "Enum"
664
+ class: translations.markdown.typeSuffixes.class,
665
+ interface: translations.markdown.typeSuffixes.interface,
666
+ enum: translations.markdown.typeSuffixes.enum
499
667
  };
500
668
  return `${type2.name} ${suffixMap[type2.type_name]}`;
501
669
  }
@@ -509,103 +677,122 @@ function baseTypeAdapter(type, linkGenerator, baseHeadingLevel) {
509
677
  }
510
678
  };
511
679
  }
512
- function enumTypeToEnumSource(enumType, linkGenerator, baseHeadingLevel = 1) {
513
- return __spreadProps$m(__spreadValues$m({
680
+ function enumTypeToEnumSource(enumType, linkGenerator, baseHeadingLevel = 1, translations) {
681
+ return __spreadProps$p(__spreadValues$q({
514
682
  type: "enum"
515
- }, baseTypeAdapter(enumType, linkGenerator, baseHeadingLevel)), {
683
+ }, baseTypeAdapter(enumType, linkGenerator, baseHeadingLevel, translations)), {
516
684
  values: {
517
685
  headingLevel: baseHeadingLevel + 1,
518
- heading: "Values",
686
+ heading: translations.markdown.sections.values,
519
687
  value: enumType.values.map((value) => {
520
688
  var _a;
521
- return __spreadProps$m(__spreadValues$m({}, adaptDescribable((_a = value.docComment) == null ? void 0 : _a.descriptionLines, linkGenerator)), {
689
+ return __spreadProps$p(__spreadValues$q({}, adaptDescribable((_a = value.docComment) == null ? void 0 : _a.descriptionLines, linkGenerator)), {
522
690
  value: value.name
523
691
  });
524
692
  })
525
693
  }
526
694
  });
527
695
  }
528
- function interfaceTypeToInterfaceSource(interfaceType, linkGenerator, baseHeadingLevel = 1) {
529
- return __spreadProps$m(__spreadValues$m({
696
+ function interfaceTypeToInterfaceSource(interfaceType, linkGenerator, baseHeadingLevel = 1, translations) {
697
+ return __spreadProps$p(__spreadValues$q({
530
698
  type: "interface"
531
- }, baseTypeAdapter(interfaceType, linkGenerator, baseHeadingLevel)), {
699
+ }, baseTypeAdapter(interfaceType, linkGenerator, baseHeadingLevel, translations)), {
532
700
  extends: interfaceType.extended_interfaces.map(linkGenerator),
533
701
  methods: {
534
702
  headingLevel: baseHeadingLevel + 1,
535
- heading: "Methods",
536
- value: interfaceType.methods.map((method) => adaptMethod(method, linkGenerator, baseHeadingLevel + 2))
703
+ heading: translations.markdown.sections.methods,
704
+ value: interfaceType.methods.map(
705
+ (method) => adaptMethod(method, linkGenerator, baseHeadingLevel + 2, translations)
706
+ )
537
707
  }
538
708
  });
539
709
  }
540
- function classTypeToClassSource(classType, linkGenerator, baseHeadingLevel = 1) {
541
- return __spreadProps$m(__spreadValues$m({
710
+ function classTypeToClassSource(classType, linkGenerator, baseHeadingLevel = 1, translations) {
711
+ return __spreadProps$p(__spreadValues$q({
542
712
  type: "class"
543
- }, baseTypeAdapter(classType, linkGenerator, baseHeadingLevel)), {
713
+ }, baseTypeAdapter(classType, linkGenerator, baseHeadingLevel, translations)), {
544
714
  classModifier: classType.classModifier,
545
715
  sharingModifier: classType.sharingModifier,
546
716
  implements: classType.implemented_interfaces.map(linkGenerator),
547
717
  extends: classType.inheritanceChain.map(linkGenerator),
548
- methods: adaptMembers("Methods", classType.methods, adaptMethod, linkGenerator, baseHeadingLevel + 1),
718
+ methods: adaptMembers(
719
+ translations.markdown.sections.methods,
720
+ classType.methods,
721
+ adaptMethod,
722
+ linkGenerator,
723
+ baseHeadingLevel + 1,
724
+ translations
725
+ ),
549
726
  constructors: adaptMembers(
550
- "Constructors",
727
+ translations.markdown.sections.constructors,
551
728
  classType.constructors,
552
- (constructor, linkGenerator2, baseHeadingLevel2) => adaptConstructor(classType.name, constructor, linkGenerator2, baseHeadingLevel2),
729
+ (constructor, linkGenerator2, baseHeadingLevel2, translations2) => adaptConstructor(classType.name, constructor, linkGenerator2, baseHeadingLevel2, translations2),
553
730
  linkGenerator,
554
- baseHeadingLevel + 1
731
+ baseHeadingLevel + 1,
732
+ translations
555
733
  ),
556
734
  fields: adaptMembers(
557
- "Fields",
735
+ translations.markdown.sections.fields,
558
736
  classType.fields,
559
737
  adaptFieldOrProperty,
560
738
  linkGenerator,
561
- baseHeadingLevel + 1
739
+ baseHeadingLevel + 1,
740
+ translations
562
741
  ),
563
742
  properties: adaptMembers(
564
- "Properties",
743
+ translations.markdown.sections.properties,
565
744
  classType.properties,
566
745
  adaptFieldOrProperty,
567
746
  linkGenerator,
568
- baseHeadingLevel + 1
747
+ baseHeadingLevel + 1,
748
+ translations
569
749
  ),
570
750
  innerClasses: {
571
751
  headingLevel: baseHeadingLevel + 1,
572
- heading: "Classes",
752
+ heading: translations.markdown.sections.classes,
573
753
  value: classType.classes.map(
574
- (innerClass) => classTypeToClassSource(__spreadProps$m(__spreadValues$m({}, innerClass), { inheritanceChain: [] }), linkGenerator, baseHeadingLevel + 2)
754
+ (innerClass) => classTypeToClassSource(
755
+ __spreadProps$p(__spreadValues$q({}, innerClass), { inheritanceChain: [] }),
756
+ linkGenerator,
757
+ baseHeadingLevel + 2,
758
+ translations
759
+ )
575
760
  )
576
761
  },
577
762
  innerEnums: {
578
763
  headingLevel: baseHeadingLevel + 1,
579
- heading: "Enums",
580
- value: classType.enums.map((innerEnum) => enumTypeToEnumSource(innerEnum, linkGenerator, baseHeadingLevel + 2))
764
+ heading: translations.markdown.sections.enums,
765
+ value: classType.enums.map(
766
+ (innerEnum) => enumTypeToEnumSource(innerEnum, linkGenerator, baseHeadingLevel + 2, translations)
767
+ )
581
768
  },
582
769
  innerInterfaces: {
583
770
  headingLevel: baseHeadingLevel + 1,
584
- heading: "Interfaces",
771
+ heading: translations.markdown.sections.interfaces,
585
772
  value: classType.interfaces.map(
586
- (innerInterface) => interfaceTypeToInterfaceSource(innerInterface, linkGenerator, baseHeadingLevel + 2)
773
+ (innerInterface) => interfaceTypeToInterfaceSource(innerInterface, linkGenerator, baseHeadingLevel + 2, translations)
587
774
  )
588
775
  }
589
776
  });
590
777
  }
591
- function adaptMembers(heading, members, adapter, linkFromTypeNameGenerator, headingLevel) {
778
+ function adaptMembers(heading, members, adapter, linkFromTypeNameGenerator, headingLevel, translations) {
592
779
  return {
593
780
  headingLevel,
594
781
  heading,
595
782
  isGrouped: hasGroup(members),
596
- value: hasGroup(members) ? toGroupedMembers(members, adapter, linkFromTypeNameGenerator, headingLevel + 1) : toFlat(members, adapter, linkFromTypeNameGenerator, headingLevel + 1)
783
+ value: hasGroup(members) ? toGroupedMembers(members, adapter, linkFromTypeNameGenerator, headingLevel + 1, translations) : toFlat(members, adapter, linkFromTypeNameGenerator, headingLevel + 1, translations)
597
784
  };
598
785
  }
599
786
  function hasGroup(members) {
600
787
  return members.some((member) => member.group);
601
788
  }
602
- function toFlat(members, adapter, linkGenerator, baseHeadingLevel) {
603
- return members.map((member) => adapter(member, linkGenerator, baseHeadingLevel));
789
+ function toFlat(members, adapter, linkGenerator, baseHeadingLevel, translations) {
790
+ return members.map((member) => adapter(member, linkGenerator, baseHeadingLevel, translations));
604
791
  }
605
- function toGroupedMembers(members, adapter, linkGenerator, baseHeadingLevel) {
792
+ function toGroupedMembers(members, adapter, linkGenerator, baseHeadingLevel, translations) {
606
793
  const groupedMembers = groupByGroupName(members);
607
794
  return Object.entries(groupedMembers).map(
608
- ([groupName, members2]) => singleGroup(baseHeadingLevel, groupName, adapter, members2, linkGenerator)
795
+ ([groupName, members2]) => singleGroup(baseHeadingLevel, groupName, adapter, members2, linkGenerator, translations)
609
796
  );
610
797
  }
611
798
  function groupByGroupName(members) {
@@ -620,32 +807,32 @@ function groupByGroupName(members) {
620
807
  {}
621
808
  );
622
809
  }
623
- function singleGroup(headingLevel, groupName, adapter, members, linkGenerator) {
810
+ function singleGroup(headingLevel, groupName, adapter, members, linkGenerator, translations) {
624
811
  return {
625
812
  headingLevel,
626
813
  heading: groupName,
627
814
  groupDescription: members[0].groupDescription,
628
815
  // All fields in the group have the same description
629
- value: toFlat(members, adapter, linkGenerator, headingLevel + 1)
816
+ value: toFlat(members, adapter, linkGenerator, headingLevel + 1, translations)
630
817
  };
631
818
  }
632
- function triggerMetadataToRenderable(triggerMetadata, linkGenerator, baseHeadingLevel = 1) {
819
+ function triggerMetadataToRenderable(triggerMetadata, linkGenerator, baseHeadingLevel = 1, translations) {
633
820
  function formatEvent(event) {
634
821
  switch (event) {
635
822
  case "beforeinsert":
636
- return "Before Insert";
823
+ return translations.markdown.triggerEvents.beforeInsert;
637
824
  case "beforeupdate":
638
- return "Before Update";
825
+ return translations.markdown.triggerEvents.beforeUpdate;
639
826
  case "beforedelete":
640
- return "Before Delete";
827
+ return translations.markdown.triggerEvents.beforeDelete;
641
828
  case "afterinsert":
642
- return "After Insert";
829
+ return translations.markdown.triggerEvents.afterInsert;
643
830
  case "afterupdate":
644
- return "After Update";
831
+ return translations.markdown.triggerEvents.afterUpdate;
645
832
  case "afterdelete":
646
- return "After Delete";
833
+ return translations.markdown.triggerEvents.afterDelete;
647
834
  case "afterundelete":
648
- return "After Undelete";
835
+ return translations.markdown.triggerEvents.afterUndelete;
649
836
  default:
650
837
  return event;
651
838
  }
@@ -662,19 +849,19 @@ function triggerMetadataToRenderable(triggerMetadata, linkGenerator, baseHeading
662
849
  name: triggerMetadata.name,
663
850
  type: "trigger",
664
851
  headingLevel: 1,
665
- heading: triggerMetadata.name + " Trigger",
852
+ heading: triggerMetadata.name + " " + translations.markdown.typeSuffixes.trigger,
666
853
  objectName: triggerMetadata.object_name,
667
854
  events: triggerMetadata.events.map(formatEvent)
668
855
  };
669
856
  }
670
- function objectMetadataToRenderable(objectMetadata, config) {
857
+ function objectMetadataToRenderable(objectMetadata, config, translations) {
671
858
  var _a;
672
859
  function toRenderablePublishBehavior(publishBehavior) {
673
860
  switch (publishBehavior) {
674
861
  case "PublishImmediately":
675
- return "Publish Immediately";
862
+ return translations.markdown.publishBehaviors.publishImmediately;
676
863
  case "PublishAfterCommit":
677
- return "Publish After Commit";
864
+ return translations.markdown.publishBehaviors.publishAfterCommit;
678
865
  default:
679
866
  return null;
680
867
  }
@@ -692,19 +879,19 @@ function objectMetadataToRenderable(objectMetadata, config) {
692
879
  hasFields: objectMetadata.fields.length > 0,
693
880
  fields: {
694
881
  headingLevel: 2,
695
- heading: "Fields",
696
- value: objectMetadata.fields.map((field) => fieldMetadataToRenderable(field, config, 3))
882
+ heading: translations.markdown.sections.fields,
883
+ value: objectMetadata.fields.map((field) => fieldMetadataToRenderable(field, config, 3, translations))
697
884
  },
698
885
  hasRecords: objectMetadata.metadataRecords.length > 0,
699
886
  metadataRecords: {
700
887
  headingLevel: 2,
701
- heading: "Records",
888
+ heading: translations.markdown.sections.records,
702
889
  value: objectMetadata.metadataRecords.map((metadata) => customMetadataToRenderable(metadata, 3))
703
890
  },
704
891
  publishBehavior: toRenderablePublishBehavior(objectMetadata.publishBehavior)
705
892
  };
706
893
  }
707
- function fieldMetadataToRenderable(field, config, headingLevel) {
894
+ function fieldMetadataToRenderable(field, config, headingLevel, translations) {
708
895
  var _a;
709
896
  return {
710
897
  type: "field",
@@ -719,7 +906,7 @@ function fieldMetadataToRenderable(field, config, headingLevel) {
719
906
  inlineHelpText: renderInlineHelpText(field.inlineHelpText, config),
720
907
  pickListValues: field.pickListValues ? {
721
908
  headingLevel: headingLevel + 1,
722
- heading: "Possible values are",
909
+ heading: translations.markdown.details.possibleValues,
723
910
  value: field.pickListValues
724
911
  } : void 0
725
912
  };
@@ -811,7 +998,7 @@ const returnReferenceAsIs = (references, _from, referenceName) => {
811
998
  };
812
999
  };
813
1000
 
814
- function parsedFilesToRenderableBundle(config, parsedFiles, references) {
1001
+ function parsedFilesToRenderableBundle(config, parsedFiles, references, translations) {
815
1002
  const referenceFinder = apply(generateLink(config.linkingStrategy), references);
816
1003
  function toReferenceGuide(parsedFiles2) {
817
1004
  return parsedFiles2.reduce(
@@ -821,7 +1008,12 @@ function parsedFilesToRenderableBundle(config, parsedFiles, references) {
821
1008
  }
822
1009
  function toRenderables(parsedFiles2) {
823
1010
  return parsedFiles2.reduce((acc, parsedFile) => {
824
- const renderable = typeToRenderable$1(parsedFile, apply(referenceFinder, parsedFile.source.name), config);
1011
+ const renderable = typeToRenderable$1(
1012
+ parsedFile,
1013
+ apply(referenceFinder, parsedFile.source.name),
1014
+ config,
1015
+ translations
1016
+ );
825
1017
  acc.push(renderable);
826
1018
  return acc;
827
1019
  }, []);
@@ -855,250 +1047,92 @@ function getRenderableDescription(type, findLinkFromHome) {
855
1047
  }
856
1048
  }
857
1049
 
858
- class ReflectionError {
859
- constructor(file, message) {
860
- this.file = file;
861
- this.message = message;
862
- }
863
- }
864
- class ReflectionErrors {
865
- constructor(errors) {
866
- this.errors = errors;
867
- this._tag = "ReflectionErrors";
868
- }
1050
+ function createInheritanceChain(repository, classMirror) {
1051
+ return _function.pipe(
1052
+ O__namespace.fromNullable(classMirror.extended_class),
1053
+ O__namespace.match(
1054
+ () => [],
1055
+ (extendedClassName) => inheritanceChainFromParentClassName(repository, extendedClassName)
1056
+ )
1057
+ );
869
1058
  }
870
- class HookError {
871
- constructor(error) {
872
- this.error = error;
873
- this._tag = "HookError";
874
- }
1059
+ function inheritanceChainFromParentClassName(repository, className) {
1060
+ return _function.pipe(
1061
+ O__namespace.fromNullable(repository.find((type) => type.name.toLowerCase() === className.toLowerCase())),
1062
+ O__namespace.match(
1063
+ () => [className],
1064
+ (extendedClass) => [className, ...createInheritanceChain(repository, extendedClass)]
1065
+ )
1066
+ );
875
1067
  }
876
1068
 
877
- function parseApexMetadata(input) {
878
- return _function.pipe(input, parse, E__namespace.map(toMap));
879
- }
880
- function parse(input) {
881
- return E__namespace.tryCatch(() => new fastXmlParser.XMLParser().parse(input), E__namespace.toError);
882
- }
883
- function toMap(metadata) {
884
- const map = /* @__PURE__ */ new Map();
885
- map.set("apiVersion", String(metadata.ApexClass.apiVersion));
886
- if (metadata.ApexClass.status) {
887
- map.set("status", String(metadata.ApexClass.status));
1069
+ const parsedFilesToTypes = (parsedFiles) => parsedFiles.map((parsedFile) => parsedFile.type);
1070
+
1071
+ var __defProp$p = Object.defineProperty;
1072
+ var __defProps$o = Object.defineProperties;
1073
+ var __getOwnPropDescs$o = Object.getOwnPropertyDescriptors;
1074
+ var __getOwnPropSymbols$p = Object.getOwnPropertySymbols;
1075
+ var __hasOwnProp$p = Object.prototype.hasOwnProperty;
1076
+ var __propIsEnum$p = Object.prototype.propertyIsEnumerable;
1077
+ var __defNormalProp$p = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1078
+ var __spreadValues$p = (a, b) => {
1079
+ for (var prop in b || (b = {}))
1080
+ if (__hasOwnProp$p.call(b, prop))
1081
+ __defNormalProp$p(a, prop, b[prop]);
1082
+ if (__getOwnPropSymbols$p)
1083
+ for (var prop of __getOwnPropSymbols$p(b)) {
1084
+ if (__propIsEnum$p.call(b, prop))
1085
+ __defNormalProp$p(a, prop, b[prop]);
1086
+ }
1087
+ return a;
1088
+ };
1089
+ var __spreadProps$o = (a, b) => __defProps$o(a, __getOwnPropDescs$o(b));
1090
+ const addInheritanceChainToTypes = (parsedFiles) => parsedFiles.map((parsedFile) => __spreadProps$o(__spreadValues$p({}, parsedFile), {
1091
+ type: addInheritanceChain(parsedFile.type, parsedFilesToTypes(parsedFiles))
1092
+ }));
1093
+ function addInheritanceChain(current, repository) {
1094
+ if (current.type_name === "enum" || current.type_name === "interface") {
1095
+ return current;
1096
+ } else {
1097
+ const inheritanceChain = createInheritanceChain(repository, current);
1098
+ return __spreadProps$o(__spreadValues$p({}, current), {
1099
+ inheritanceChain
1100
+ });
888
1101
  }
889
- return map;
890
1102
  }
891
1103
 
892
- var __defProp$l = Object.defineProperty;
893
- var __defProps$l = Object.defineProperties;
894
- var __getOwnPropDescs$l = Object.getOwnPropertyDescriptors;
895
- var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
896
- var __hasOwnProp$l = Object.prototype.hasOwnProperty;
897
- var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
898
- var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
899
- var __spreadValues$l = (a, b) => {
1104
+ var __defProp$o = Object.defineProperty;
1105
+ var __defProps$n = Object.defineProperties;
1106
+ var __getOwnPropDescs$n = Object.getOwnPropertyDescriptors;
1107
+ var __getOwnPropSymbols$o = Object.getOwnPropertySymbols;
1108
+ var __hasOwnProp$o = Object.prototype.hasOwnProperty;
1109
+ var __propIsEnum$o = Object.prototype.propertyIsEnumerable;
1110
+ var __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1111
+ var __spreadValues$o = (a, b) => {
900
1112
  for (var prop in b || (b = {}))
901
- if (__hasOwnProp$l.call(b, prop))
902
- __defNormalProp$l(a, prop, b[prop]);
903
- if (__getOwnPropSymbols$l)
904
- for (var prop of __getOwnPropSymbols$l(b)) {
905
- if (__propIsEnum$l.call(b, prop))
906
- __defNormalProp$l(a, prop, b[prop]);
1113
+ if (__hasOwnProp$o.call(b, prop))
1114
+ __defNormalProp$o(a, prop, b[prop]);
1115
+ if (__getOwnPropSymbols$o)
1116
+ for (var prop of __getOwnPropSymbols$o(b)) {
1117
+ if (__propIsEnum$o.call(b, prop))
1118
+ __defNormalProp$o(a, prop, b[prop]);
907
1119
  }
908
1120
  return a;
909
1121
  };
910
- var __spreadProps$l = (a, b) => __defProps$l(a, __getOwnPropDescs$l(b));
911
- var __async$5 = (__this, __arguments, generator) => {
912
- return new Promise((resolve, reject) => {
913
- var fulfilled = (value) => {
914
- try {
915
- step(generator.next(value));
916
- } catch (e) {
917
- reject(e);
918
- }
919
- };
920
- var rejected = (value) => {
921
- try {
922
- step(generator.throw(value));
923
- } catch (e) {
924
- reject(e);
925
- }
926
- };
927
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
928
- step((generator = generator.apply(__this, __arguments)).next());
929
- });
930
- };
931
- function reflectAsync$1(rawSource) {
932
- return __async$5(this, null, function* () {
933
- return new Promise((resolve, reject) => {
934
- const result = apexReflection.reflect(rawSource);
935
- if (result.typeMirror) {
936
- return resolve(result.typeMirror);
937
- } else if (result.error) {
938
- return reject(result.error);
939
- } else {
940
- return reject(new Error("Unknown error"));
941
- }
942
- });
943
- });
944
- }
945
- function reflectApexSource(apexBundles) {
946
- const semiGroupReflectionError = {
947
- concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors])
948
- };
949
- const Ap = TE__namespace.getApplicativeTaskValidation(T__namespace.ApplyPar, semiGroupReflectionError);
950
- return _function.pipe(apexBundles, A__namespace.traverse(Ap)(reflectBundle$1));
951
- }
952
- function reflectBundle$1(apexBundle) {
953
- const convertToParsedFile = apply(toParsedFile$4, apexBundle.filePath);
954
- const withMetadata = apply(addMetadata, apexBundle.metadataContent);
955
- return _function.pipe(apexBundle, reflectAsTask$1, TE__namespace.map(convertToParsedFile), TE__namespace.flatMap(withMetadata));
956
- }
957
- function reflectAsTask$1(apexBundle) {
958
- return TE__namespace.tryCatch(
959
- () => reflectAsync$1(apexBundle.content),
960
- (error) => new ReflectionErrors([new ReflectionError(apexBundle.filePath, error.message)])
961
- );
962
- }
963
- function toParsedFile$4(filePath, typeMirror) {
964
- return {
965
- source: {
966
- filePath,
967
- name: typeMirror.name,
968
- type: typeMirror.type_name
969
- },
970
- type: typeMirror
971
- };
972
- }
973
- function addMetadata(rawMetadataContent, parsedFile) {
974
- return TE__namespace.fromEither(
975
- _function.pipe(
976
- parsedFile.type,
977
- (type) => addFileMetadataToTypeAnnotation(type, rawMetadataContent),
978
- E__namespace.map((type) => __spreadProps$l(__spreadValues$l({}, parsedFile), { type })),
979
- E__namespace.mapLeft(
980
- (error) => errorToReflectionErrors(error, isInSource(parsedFile.source) ? parsedFile.source.filePath : "")
981
- )
982
- )
983
- );
984
- }
985
- function errorToReflectionErrors(error, filePath) {
986
- return new ReflectionErrors([new ReflectionError(filePath, error.message)]);
987
- }
988
- function addFileMetadataToTypeAnnotation(type, metadata) {
989
- const concatAnnotationToType = apply(concatAnnotations, type);
990
- return _function.pipe(
991
- O__namespace.fromNullable(metadata),
992
- O__namespace.map(concatAnnotationToType),
993
- O__namespace.getOrElse(() => E__namespace.right(type))
994
- );
995
- }
996
- function concatAnnotations(type, metadataInput) {
997
- return _function.pipe(
998
- metadataInput,
999
- parseApexMetadata,
1000
- E__namespace.map((metadataMap) => __spreadProps$l(__spreadValues$l({}, type), {
1001
- annotations: [...type.annotations, ...mapToAnnotations(metadataMap)]
1002
- }))
1003
- );
1004
- }
1005
- function mapToAnnotations(metadata) {
1006
- return Array.from(metadata.entries()).map(([key, value]) => {
1007
- const declaration = `${key}: ${value}`;
1008
- return {
1009
- name: declaration,
1010
- type: declaration,
1011
- rawDeclaration: declaration
1012
- };
1013
- });
1014
- }
1015
-
1016
- function createInheritanceChain(repository, classMirror) {
1017
- return _function.pipe(
1018
- O__namespace.fromNullable(classMirror.extended_class),
1019
- O__namespace.match(
1020
- () => [],
1021
- (extendedClassName) => inheritanceChainFromParentClassName(repository, extendedClassName)
1022
- )
1023
- );
1024
- }
1025
- function inheritanceChainFromParentClassName(repository, className) {
1026
- return _function.pipe(
1027
- O__namespace.fromNullable(repository.find((type) => type.name.toLowerCase() === className.toLowerCase())),
1028
- O__namespace.match(
1029
- () => [className],
1030
- (extendedClass) => [className, ...createInheritanceChain(repository, extendedClass)]
1031
- )
1032
- );
1033
- }
1034
-
1035
- const parsedFilesToTypes = (parsedFiles) => parsedFiles.map((parsedFile) => parsedFile.type);
1036
-
1037
- var __defProp$k = Object.defineProperty;
1038
- var __defProps$k = Object.defineProperties;
1039
- var __getOwnPropDescs$k = Object.getOwnPropertyDescriptors;
1040
- var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
1041
- var __hasOwnProp$k = Object.prototype.hasOwnProperty;
1042
- var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
1043
- var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1044
- var __spreadValues$k = (a, b) => {
1045
- for (var prop in b || (b = {}))
1046
- if (__hasOwnProp$k.call(b, prop))
1047
- __defNormalProp$k(a, prop, b[prop]);
1048
- if (__getOwnPropSymbols$k)
1049
- for (var prop of __getOwnPropSymbols$k(b)) {
1050
- if (__propIsEnum$k.call(b, prop))
1051
- __defNormalProp$k(a, prop, b[prop]);
1052
- }
1053
- return a;
1054
- };
1055
- var __spreadProps$k = (a, b) => __defProps$k(a, __getOwnPropDescs$k(b));
1056
- const addInheritanceChainToTypes = (parsedFiles) => parsedFiles.map((parsedFile) => __spreadProps$k(__spreadValues$k({}, parsedFile), {
1057
- type: addInheritanceChain(parsedFile.type, parsedFilesToTypes(parsedFiles))
1058
- }));
1059
- function addInheritanceChain(current, repository) {
1060
- if (current.type_name === "enum" || current.type_name === "interface") {
1061
- return current;
1062
- } else {
1063
- const inheritanceChain = createInheritanceChain(repository, current);
1064
- return __spreadProps$k(__spreadValues$k({}, current), {
1065
- inheritanceChain
1066
- });
1067
- }
1068
- }
1069
-
1070
- var __defProp$j = Object.defineProperty;
1071
- var __defProps$j = Object.defineProperties;
1072
- var __getOwnPropDescs$j = Object.getOwnPropertyDescriptors;
1073
- var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
1074
- var __hasOwnProp$j = Object.prototype.hasOwnProperty;
1075
- var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
1076
- var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1077
- var __spreadValues$j = (a, b) => {
1078
- for (var prop in b || (b = {}))
1079
- if (__hasOwnProp$j.call(b, prop))
1080
- __defNormalProp$j(a, prop, b[prop]);
1081
- if (__getOwnPropSymbols$j)
1082
- for (var prop of __getOwnPropSymbols$j(b)) {
1083
- if (__propIsEnum$j.call(b, prop))
1084
- __defNormalProp$j(a, prop, b[prop]);
1085
- }
1086
- return a;
1087
- };
1088
- var __spreadProps$j = (a, b) => __defProps$j(a, __getOwnPropDescs$j(b));
1089
- const addInheritedMembersToTypes = (parsedFiles) => parsedFiles.map((parsedFile) => addInheritedMembers(parsedFilesToTypes(parsedFiles), parsedFile));
1090
- function addInheritedMembers(repository, parsedFile) {
1091
- function addInheritedMembersToType(repository2, current) {
1092
- if (current.type_name === "enum") {
1093
- return current;
1094
- } else if (current.type_name === "interface") {
1095
- return addInheritedInterfaceMethods(current, repository2);
1096
- } else {
1097
- return addInheritedClassMembers(current, repository2);
1098
- }
1099
- }
1100
- return __spreadProps$j(__spreadValues$j({}, parsedFile), {
1101
- type: addInheritedMembersToType(repository, parsedFile.type)
1122
+ var __spreadProps$n = (a, b) => __defProps$n(a, __getOwnPropDescs$n(b));
1123
+ const addInheritedMembersToTypes = (parsedFiles) => parsedFiles.map((parsedFile) => addInheritedMembers(parsedFilesToTypes(parsedFiles), parsedFile));
1124
+ function addInheritedMembers(repository, parsedFile) {
1125
+ function addInheritedMembersToType(repository2, current) {
1126
+ if (current.type_name === "enum") {
1127
+ return current;
1128
+ } else if (current.type_name === "interface") {
1129
+ return addInheritedInterfaceMethods(current, repository2);
1130
+ } else {
1131
+ return addInheritedClassMembers(current, repository2);
1132
+ }
1133
+ }
1134
+ return __spreadProps$n(__spreadValues$o({}, parsedFile), {
1135
+ type: addInheritedMembersToType(repository, parsedFile.type)
1102
1136
  });
1103
1137
  }
1104
1138
  function addInheritedInterfaceMethods(interfaceMirror, repository) {
@@ -1109,11 +1143,11 @@ function addInheritedInterfaceMethods(interfaceMirror, repository) {
1109
1143
  return interfaceMirror2.extended_interfaces;
1110
1144
  }
1111
1145
  const parents = getParents(parentExtractor, interfaceMirror, repository);
1112
- return __spreadProps$j(__spreadValues$j({}, interfaceMirror), {
1146
+ return __spreadProps$n(__spreadValues$o({}, interfaceMirror), {
1113
1147
  methods: parents.reduce(
1114
1148
  (acc, currentValue) => [
1115
1149
  ...acc,
1116
- ...currentValue.methods.filter((method) => !methodAlreadyExists(method.name, acc)).map((method) => __spreadProps$j(__spreadValues$j({}, method), {
1150
+ ...currentValue.methods.filter((method) => !methodAlreadyExists(method.name, acc)).map((method) => __spreadProps$n(__spreadValues$o({}, method), {
1117
1151
  inherited: true
1118
1152
  }))
1119
1153
  ],
@@ -1129,12 +1163,12 @@ function addInheritedClassMembers(classMirror, repository) {
1129
1163
  return classMirror2.extended_class ? [classMirror2.extended_class] : [];
1130
1164
  }
1131
1165
  function filterMember(members, existing) {
1132
- return members.filter((member) => member.access_modifier.toLowerCase() !== "private").filter((member) => !memberAlreadyExists(member.name, existing)).map((member) => __spreadProps$j(__spreadValues$j({}, member), {
1166
+ return members.filter((member) => member.access_modifier.toLowerCase() !== "private").filter((member) => !memberAlreadyExists(member.name, existing)).map((member) => __spreadProps$n(__spreadValues$o({}, member), {
1133
1167
  inherited: true
1134
1168
  }));
1135
1169
  }
1136
1170
  const parents = getParents(parentExtractor, classMirror, repository);
1137
- return __spreadProps$j(__spreadValues$j({}, classMirror), {
1171
+ return __spreadProps$n(__spreadValues$o({}, classMirror), {
1138
1172
  fields: parents.reduce(
1139
1173
  (acc, currentValue) => [...acc, ...filterMember(currentValue.fields, acc)],
1140
1174
  classMirror.fields
@@ -1165,24 +1199,24 @@ const typeDocPartial = `
1165
1199
  {{#> documentablePartialTemplate}}
1166
1200
 
1167
1201
  {{#if doc.group}}
1168
- **Group** {{doc.group}}
1202
+ **{{@root.translations.markdown.details.group}}** {{doc.group}}
1169
1203
  {{/if}}
1170
1204
 
1171
1205
  {{#if doc.author}}
1172
- **Author** {{doc.author}}
1206
+ **{{@root.translations.markdown.details.author}}** {{doc.author}}
1173
1207
  {{/if}}
1174
1208
 
1175
1209
  {{#if doc.date}}
1176
- **Date** {{doc.date}}
1210
+ **{{@root.translations.markdown.details.date}}** {{doc.date}}
1177
1211
  {{/if}}
1178
1212
 
1179
1213
  {{#each doc.sees}}
1180
- **See** {{link this}}
1214
+ **{{@root.translations.markdown.details.see}}** {{link this}}
1181
1215
 
1182
1216
  {{/each}}
1183
1217
 
1184
1218
  {{#if namespace}}
1185
- ## Namespace
1219
+ ## {{@root.translations.markdown.sections.namespace}}
1186
1220
  {{namespace}}
1187
1221
  {{/if}}
1188
1222
 
@@ -1333,13 +1367,13 @@ const classMarkdownTemplate = `
1333
1367
  {{> typeDocumentation}}
1334
1368
 
1335
1369
  {{#if extends.length}}
1336
- **Inheritance**
1370
+ **{{@root.translations.markdown.inheritance.inheritance}}**
1337
1371
 
1338
1372
  {{#each extends}}{{link this}}{{#unless @last}} < {{/unless}}{{/each}}
1339
1373
  {{/if}}
1340
1374
 
1341
1375
  {{#if implements}}
1342
- **Implements**
1376
+ **{{@root.translations.markdown.inheritance.implements}}**
1343
1377
 
1344
1378
  {{#each implements}}
1345
1379
  {{link this}}{{#unless @last}}, {{/unless}}
@@ -1509,34 +1543,36 @@ const link = (source) => {
1509
1543
  }
1510
1544
  };
1511
1545
 
1512
- var __defProp$i = Object.defineProperty;
1513
- var __defProps$i = Object.defineProperties;
1514
- var __getOwnPropDescs$i = Object.getOwnPropertyDescriptors;
1515
- var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
1516
- var __hasOwnProp$i = Object.prototype.hasOwnProperty;
1517
- var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
1518
- var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1519
- var __spreadValues$i = (a, b) => {
1546
+ var __defProp$n = Object.defineProperty;
1547
+ var __defProps$m = Object.defineProperties;
1548
+ var __getOwnPropDescs$m = Object.getOwnPropertyDescriptors;
1549
+ var __getOwnPropSymbols$n = Object.getOwnPropertySymbols;
1550
+ var __hasOwnProp$n = Object.prototype.hasOwnProperty;
1551
+ var __propIsEnum$n = Object.prototype.propertyIsEnumerable;
1552
+ var __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1553
+ var __spreadValues$n = (a, b) => {
1520
1554
  for (var prop in b || (b = {}))
1521
- if (__hasOwnProp$i.call(b, prop))
1522
- __defNormalProp$i(a, prop, b[prop]);
1523
- if (__getOwnPropSymbols$i)
1524
- for (var prop of __getOwnPropSymbols$i(b)) {
1525
- if (__propIsEnum$i.call(b, prop))
1526
- __defNormalProp$i(a, prop, b[prop]);
1555
+ if (__hasOwnProp$n.call(b, prop))
1556
+ __defNormalProp$n(a, prop, b[prop]);
1557
+ if (__getOwnPropSymbols$n)
1558
+ for (var prop of __getOwnPropSymbols$n(b)) {
1559
+ if (__propIsEnum$n.call(b, prop))
1560
+ __defNormalProp$n(a, prop, b[prop]);
1527
1561
  }
1528
1562
  return a;
1529
1563
  };
1530
- var __spreadProps$i = (a, b) => __defProps$i(a, __getOwnPropDescs$i(b));
1564
+ var __spreadProps$m = (a, b) => __defProps$m(a, __getOwnPropDescs$m(b));
1531
1565
  const commonDefaults = {
1532
1566
  targetDir: "./docs/"
1533
1567
  };
1534
- const markdownAndChangelogDefaults = __spreadProps$i(__spreadValues$i({}, commonDefaults), {
1568
+ const markdownAndChangelogDefaults = __spreadProps$m(__spreadValues$n({}, commonDefaults), {
1535
1569
  scope: ["global"],
1536
1570
  customObjectVisibility: ["public"],
1537
- exclude: []
1571
+ exclude: [],
1572
+ parallelProcessing: process.env.NODE_ENV !== "test"
1573
+ // Disable parallel processing during tests
1538
1574
  });
1539
- const markdownDefaults = __spreadProps$i(__spreadValues$i({}, markdownAndChangelogDefaults), {
1575
+ const markdownDefaults = __spreadProps$m(__spreadValues$n({}, markdownAndChangelogDefaults), {
1540
1576
  defaultGroupName: "Miscellaneous",
1541
1577
  customObjectsGroupName: "Custom Objects",
1542
1578
  triggersGroupName: "Triggers",
@@ -1548,13 +1584,13 @@ const markdownDefaults = __spreadProps$i(__spreadValues$i({}, markdownAndChangel
1548
1584
  includeFieldSecurityMetadata: false,
1549
1585
  includeInlineHelpTextMetadata: false
1550
1586
  });
1551
- const openApiDefaults = __spreadProps$i(__spreadValues$i({}, commonDefaults), {
1587
+ const openApiDefaults = __spreadProps$m(__spreadValues$n({}, commonDefaults), {
1552
1588
  fileName: "openapi",
1553
1589
  title: "Apex REST API",
1554
1590
  apiVersion: "1.0.0",
1555
1591
  exclude: []
1556
1592
  });
1557
- const changeLogDefaults = __spreadProps$i(__spreadValues$i({}, markdownAndChangelogDefaults), {
1593
+ const changeLogDefaults = __spreadProps$m(__spreadValues$n({}, markdownAndChangelogDefaults), {
1558
1594
  fileName: "changelog",
1559
1595
  skipIfNoChanges: true
1560
1596
  });
@@ -1564,11 +1600,11 @@ const customObjectTemplate = `
1564
1600
 
1565
1601
  {{{renderContent doc.description}}}
1566
1602
 
1567
- ## API Name
1603
+ ## {{@root.translations.markdown.details.apiName}}
1568
1604
  \`{{apiName}}\`
1569
1605
 
1570
1606
  {{#if publishBehavior}}
1571
- ## Publish Behavior
1607
+ ## {{@root.translations.markdown.sections.publishBehavior}}
1572
1608
 
1573
1609
  **{{publishBehavior}}**
1574
1610
  {{/if}}
@@ -1578,7 +1614,7 @@ const customObjectTemplate = `
1578
1614
  {{#each fields.value}}
1579
1615
  {{ heading headingLevel heading }}
1580
1616
  {{#if required}}
1581
- **Required**
1617
+ **{{@root.translations.markdown.details.required}}**
1582
1618
  {{/if}}
1583
1619
 
1584
1620
  {{#if description}}
@@ -1586,26 +1622,26 @@ const customObjectTemplate = `
1586
1622
  {{/if}}
1587
1623
 
1588
1624
  {{#if inlineHelpText}}
1589
- **Inline Help Text**
1625
+ **{{@root.translations.markdown.details.inlineHelpText}}**
1590
1626
  {{inlineHelpText}}
1591
1627
  {{/if}}
1592
1628
 
1593
1629
  {{#if complianceGroup}}
1594
- **Compliance Group**
1630
+ **{{@root.translations.markdown.details.complianceGroup}}**
1595
1631
  {{complianceGroup}}
1596
1632
  {{/if}}
1597
1633
 
1598
1634
  {{#if securityClassification}}
1599
- **Security Classification**
1635
+ **{{@root.translations.markdown.details.securityClassification}}**
1600
1636
  {{securityClassification}}
1601
1637
  {{/if}}
1602
1638
 
1603
- **API Name**
1639
+ **{{@root.translations.markdown.details.apiName}}**
1604
1640
 
1605
1641
  \`{{{apiName}}}\`
1606
1642
 
1607
1643
  {{#if fieldType}}
1608
- **Type**
1644
+ **{{@root.translations.markdown.details.type}}**
1609
1645
 
1610
1646
  *{{fieldType}}*
1611
1647
 
@@ -1627,14 +1663,14 @@ const customObjectTemplate = `
1627
1663
  {{ heading headingLevel heading }}
1628
1664
 
1629
1665
  {{#if protected}}
1630
- \`Protected\`
1666
+ \`{{@root.translations.markdown.details.protected}}\`
1631
1667
  {{/if}}
1632
1668
 
1633
1669
  {{#if description}}
1634
1670
  {{{renderContent description}}}
1635
1671
  {{/if}}
1636
1672
 
1637
- **API Name**
1673
+ **{{@root.translations.markdown.details.apiName}}**
1638
1674
 
1639
1675
  \`{{{apiName}}}\`
1640
1676
 
@@ -1657,14 +1693,33 @@ const triggerMarkdownTemplate = `
1657
1693
  {{/each}}
1658
1694
  `.trim();
1659
1695
 
1660
- const convertToDocumentationBundle = (referenceGuideTitle, referenceGuideTemplate, { referencesByGroup, renderables }) => ({
1696
+ var __defProp$m = Object.defineProperty;
1697
+ var __defProps$l = Object.defineProperties;
1698
+ var __getOwnPropDescs$l = Object.getOwnPropertyDescriptors;
1699
+ var __getOwnPropSymbols$m = Object.getOwnPropertySymbols;
1700
+ var __hasOwnProp$m = Object.prototype.hasOwnProperty;
1701
+ var __propIsEnum$m = Object.prototype.propertyIsEnumerable;
1702
+ var __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1703
+ var __spreadValues$m = (a, b) => {
1704
+ for (var prop in b || (b = {}))
1705
+ if (__hasOwnProp$m.call(b, prop))
1706
+ __defNormalProp$m(a, prop, b[prop]);
1707
+ if (__getOwnPropSymbols$m)
1708
+ for (var prop of __getOwnPropSymbols$m(b)) {
1709
+ if (__propIsEnum$m.call(b, prop))
1710
+ __defNormalProp$m(a, prop, b[prop]);
1711
+ }
1712
+ return a;
1713
+ };
1714
+ var __spreadProps$l = (a, b) => __defProps$l(a, __getOwnPropDescs$l(b));
1715
+ const convertToDocumentationBundle = (referenceGuideTitle, referenceGuideTemplate, translations, { referencesByGroup, renderables }) => ({
1661
1716
  referenceGuide: {
1662
1717
  frontmatter: null,
1663
1718
  content: referencesToReferenceGuideContent(referenceGuideTitle, referencesByGroup, referenceGuideTemplate),
1664
1719
  outputDocPath: "index.md"
1665
1720
  },
1666
1721
  docs: renderables.map(
1667
- (renderable) => renderableToPageData(Object.values(referencesByGroup).flat(), renderable)
1722
+ (renderable) => renderableToPageData(Object.values(referencesByGroup).flat(), renderable, translations)
1668
1723
  )
1669
1724
  });
1670
1725
  function referencesToReferenceGuideContent(referenceGuideTitle, references, template) {
@@ -1683,7 +1738,7 @@ function referencesToReferenceGuideContent(referenceGuideTitle, references, temp
1683
1738
  })
1684
1739
  );
1685
1740
  }
1686
- function renderableToPageData(referenceGuideReference, renderable) {
1741
+ function renderableToPageData(referenceGuideReference, renderable, translations) {
1687
1742
  function buildDocOutput(renderable2, docContents) {
1688
1743
  var _a;
1689
1744
  const reference = referenceGuideReference.find(
@@ -1702,9 +1757,14 @@ function renderableToPageData(referenceGuideReference, renderable) {
1702
1757
  type: renderable2.type
1703
1758
  };
1704
1759
  }
1705
- return _function.pipe(renderable, resolveApexTypeTemplate, compile$1, (docContents) => buildDocOutput(renderable, docContents));
1760
+ return _function.pipe(
1761
+ renderable,
1762
+ (r) => resolveApexTypeTemplate(r, translations),
1763
+ compile$1,
1764
+ (docContents) => buildDocOutput(renderable, docContents)
1765
+ );
1706
1766
  }
1707
- function resolveApexTypeTemplate(renderable) {
1767
+ function resolveApexTypeTemplate(renderable, translations) {
1708
1768
  function getTemplate(renderable2) {
1709
1769
  switch (renderable2.type) {
1710
1770
  case "enum":
@@ -1721,32 +1781,34 @@ function resolveApexTypeTemplate(renderable) {
1721
1781
  }
1722
1782
  return {
1723
1783
  template: getTemplate(renderable),
1724
- source: renderable
1784
+ source: __spreadProps$l(__spreadValues$m({}, renderable), {
1785
+ translations
1786
+ })
1725
1787
  };
1726
1788
  }
1727
1789
  function compile$1(request) {
1728
1790
  return Template.getInstance().compile(request);
1729
1791
  }
1730
1792
 
1731
- var __defProp$h = Object.defineProperty;
1732
- var __defProps$h = Object.defineProperties;
1733
- var __getOwnPropDescs$h = Object.getOwnPropertyDescriptors;
1734
- var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
1735
- var __hasOwnProp$h = Object.prototype.hasOwnProperty;
1736
- var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
1737
- var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1738
- var __spreadValues$h = (a, b) => {
1793
+ var __defProp$l = Object.defineProperty;
1794
+ var __defProps$k = Object.defineProperties;
1795
+ var __getOwnPropDescs$k = Object.getOwnPropertyDescriptors;
1796
+ var __getOwnPropSymbols$l = Object.getOwnPropertySymbols;
1797
+ var __hasOwnProp$l = Object.prototype.hasOwnProperty;
1798
+ var __propIsEnum$l = Object.prototype.propertyIsEnumerable;
1799
+ var __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1800
+ var __spreadValues$l = (a, b) => {
1739
1801
  for (var prop in b || (b = {}))
1740
- if (__hasOwnProp$h.call(b, prop))
1741
- __defNormalProp$h(a, prop, b[prop]);
1742
- if (__getOwnPropSymbols$h)
1743
- for (var prop of __getOwnPropSymbols$h(b)) {
1744
- if (__propIsEnum$h.call(b, prop))
1745
- __defNormalProp$h(a, prop, b[prop]);
1802
+ if (__hasOwnProp$l.call(b, prop))
1803
+ __defNormalProp$l(a, prop, b[prop]);
1804
+ if (__getOwnPropSymbols$l)
1805
+ for (var prop of __getOwnPropSymbols$l(b)) {
1806
+ if (__propIsEnum$l.call(b, prop))
1807
+ __defNormalProp$l(a, prop, b[prop]);
1746
1808
  }
1747
1809
  return a;
1748
1810
  };
1749
- var __spreadProps$h = (a, b) => __defProps$h(a, __getOwnPropDescs$h(b));
1811
+ var __spreadProps$k = (a, b) => __defProps$k(a, __getOwnPropDescs$k(b));
1750
1812
  class Manifest {
1751
1813
  /**
1752
1814
  * Constructs a new Manifest object.
@@ -1771,19 +1833,19 @@ class Manifest {
1771
1833
  }
1772
1834
  if (currentType.type_name === "interface") {
1773
1835
  const currentInterface = currentType;
1774
- return __spreadProps$h(__spreadValues$h({}, currentType), {
1836
+ return __spreadProps$k(__spreadValues$l({}, currentType), {
1775
1837
  methods: this.filterAccessibleModifier(currentInterface.methods, modifiers)
1776
1838
  });
1777
1839
  }
1778
1840
  const currentClass = currentType;
1779
- const filteredClass = __spreadProps$h(__spreadValues$h({}, currentType), {
1841
+ const filteredClass = __spreadProps$k(__spreadValues$l({}, currentType), {
1780
1842
  methods: this.filterAccessibleModifier(currentClass.methods, modifiers),
1781
1843
  properties: this.filterAccessibleModifier(currentClass.properties, modifiers),
1782
1844
  fields: this.filterAccessibleModifier(currentClass.fields, modifiers),
1783
1845
  constructors: this.filterAccessibleModifier(currentClass.constructors, modifiers)
1784
1846
  });
1785
1847
  if (!isForInnerTypes) {
1786
- return __spreadProps$h(__spreadValues$h({}, filteredClass), {
1848
+ return __spreadProps$k(__spreadValues$l({}, filteredClass), {
1787
1849
  enums: this.filterAccessibleModifier(currentClass.enums, modifiers),
1788
1850
  interfaces: this.filterAccessibleModifier(currentClass.interfaces, modifiers),
1789
1851
  classes: new Manifest(currentClass.classes, true).filteredByAccessModifierAndAnnotations(
@@ -1808,28 +1870,28 @@ class Manifest {
1808
1870
  }
1809
1871
  }
1810
1872
 
1811
- var __defProp$g = Object.defineProperty;
1812
- var __defProps$g = Object.defineProperties;
1813
- var __getOwnPropDescs$g = Object.getOwnPropertyDescriptors;
1814
- var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
1815
- var __hasOwnProp$g = Object.prototype.hasOwnProperty;
1816
- var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
1817
- var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1818
- var __spreadValues$g = (a, b) => {
1873
+ var __defProp$k = Object.defineProperty;
1874
+ var __defProps$j = Object.defineProperties;
1875
+ var __getOwnPropDescs$j = Object.getOwnPropertyDescriptors;
1876
+ var __getOwnPropSymbols$k = Object.getOwnPropertySymbols;
1877
+ var __hasOwnProp$k = Object.prototype.hasOwnProperty;
1878
+ var __propIsEnum$k = Object.prototype.propertyIsEnumerable;
1879
+ var __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1880
+ var __spreadValues$k = (a, b) => {
1819
1881
  for (var prop in b || (b = {}))
1820
- if (__hasOwnProp$g.call(b, prop))
1821
- __defNormalProp$g(a, prop, b[prop]);
1822
- if (__getOwnPropSymbols$g)
1823
- for (var prop of __getOwnPropSymbols$g(b)) {
1824
- if (__propIsEnum$g.call(b, prop))
1825
- __defNormalProp$g(a, prop, b[prop]);
1882
+ if (__hasOwnProp$k.call(b, prop))
1883
+ __defNormalProp$k(a, prop, b[prop]);
1884
+ if (__getOwnPropSymbols$k)
1885
+ for (var prop of __getOwnPropSymbols$k(b)) {
1886
+ if (__propIsEnum$k.call(b, prop))
1887
+ __defNormalProp$k(a, prop, b[prop]);
1826
1888
  }
1827
1889
  return a;
1828
1890
  };
1829
- var __spreadProps$g = (a, b) => __defProps$g(a, __getOwnPropDescs$g(b));
1891
+ var __spreadProps$j = (a, b) => __defProps$j(a, __getOwnPropDescs$j(b));
1830
1892
  function filterScope(scopes, parsedFiles) {
1831
1893
  return parsedFiles.filter(({ type }) => Manifest.shouldFilterType(type, scopes)).map((parsedFile) => {
1832
- return __spreadProps$g(__spreadValues$g({}, parsedFile), {
1894
+ return __spreadProps$j(__spreadValues$k({}, parsedFile), {
1833
1895
  type: Manifest.filterSingleType(parsedFile.type, scopes, false)
1834
1896
  });
1835
1897
  });
@@ -1843,34 +1905,34 @@ const hookableTemplate = `
1843
1905
  {{{content}}}
1844
1906
  `.trim();
1845
1907
 
1846
- var __defProp$f = Object.defineProperty;
1847
- var __defProps$f = Object.defineProperties;
1848
- var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
1849
- var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
1850
- var __hasOwnProp$f = Object.prototype.hasOwnProperty;
1851
- var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
1852
- var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1853
- var __spreadValues$f = (a, b) => {
1908
+ var __defProp$j = Object.defineProperty;
1909
+ var __defProps$i = Object.defineProperties;
1910
+ var __getOwnPropDescs$i = Object.getOwnPropertyDescriptors;
1911
+ var __getOwnPropSymbols$j = Object.getOwnPropertySymbols;
1912
+ var __hasOwnProp$j = Object.prototype.hasOwnProperty;
1913
+ var __propIsEnum$j = Object.prototype.propertyIsEnumerable;
1914
+ var __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1915
+ var __spreadValues$j = (a, b) => {
1854
1916
  for (var prop in b || (b = {}))
1855
- if (__hasOwnProp$f.call(b, prop))
1856
- __defNormalProp$f(a, prop, b[prop]);
1857
- if (__getOwnPropSymbols$f)
1858
- for (var prop of __getOwnPropSymbols$f(b)) {
1859
- if (__propIsEnum$f.call(b, prop))
1860
- __defNormalProp$f(a, prop, b[prop]);
1917
+ if (__hasOwnProp$j.call(b, prop))
1918
+ __defNormalProp$j(a, prop, b[prop]);
1919
+ if (__getOwnPropSymbols$j)
1920
+ for (var prop of __getOwnPropSymbols$j(b)) {
1921
+ if (__propIsEnum$j.call(b, prop))
1922
+ __defNormalProp$j(a, prop, b[prop]);
1861
1923
  }
1862
1924
  return a;
1863
1925
  };
1864
- var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
1926
+ var __spreadProps$i = (a, b) => __defProps$i(a, __getOwnPropDescs$i(b));
1865
1927
  function sortTypesAndMembers(shouldSort, parsedFiles) {
1866
1928
  return parsedFiles.map((parsedFile) => {
1867
1929
  if (isApexType(parsedFile.type)) {
1868
- return __spreadProps$f(__spreadValues$f({}, parsedFile), {
1930
+ return __spreadProps$i(__spreadValues$j({}, parsedFile), {
1869
1931
  type: sortTypeMember(parsedFile.type, shouldSort)
1870
1932
  });
1871
1933
  }
1872
1934
  if (isObjectType(parsedFile.type)) {
1873
- return __spreadProps$f(__spreadValues$f({}, parsedFile), {
1935
+ return __spreadProps$i(__spreadValues$j({}, parsedFile), {
1874
1936
  type: sortCustomObjectFields(parsedFile.type, shouldSort)
1875
1937
  });
1876
1938
  }
@@ -1897,22 +1959,22 @@ function sortTypeMember(type, shouldSort) {
1897
1959
  }
1898
1960
  }
1899
1961
  function sortCustomObjectFields(type, shouldSort) {
1900
- return __spreadProps$f(__spreadValues$f({}, type), {
1962
+ return __spreadProps$i(__spreadValues$j({}, type), {
1901
1963
  fields: sortNamed(shouldSort, type.fields)
1902
1964
  });
1903
1965
  }
1904
1966
  function sortEnumValues(shouldSort, enumType) {
1905
- return __spreadProps$f(__spreadValues$f({}, enumType), {
1967
+ return __spreadProps$i(__spreadValues$j({}, enumType), {
1906
1968
  values: sortNamed(shouldSort, enumType.values)
1907
1969
  });
1908
1970
  }
1909
1971
  function sortInterfaceMethods(shouldSort, interfaceType) {
1910
- return __spreadProps$f(__spreadValues$f({}, interfaceType), {
1972
+ return __spreadProps$i(__spreadValues$j({}, interfaceType), {
1911
1973
  methods: sortNamed(shouldSort, interfaceType.methods)
1912
1974
  });
1913
1975
  }
1914
1976
  function sortClassMembers(shouldSort, classType) {
1915
- return __spreadProps$f(__spreadValues$f({}, classType), {
1977
+ return __spreadProps$i(__spreadValues$j({}, classType), {
1916
1978
  fields: sortNamed(shouldSort, classType.fields),
1917
1979
  classes: sortNamed(shouldSort, classType.classes),
1918
1980
  enums: sortNamed(shouldSort, classType.enums),
@@ -1941,34 +2003,34 @@ function slugify(text) {
1941
2003
  return text.toLowerCase().replace(/[^a-z0-9\s-]/g, "").trim().replace(/\s+/g, "-").replace(/-+/g, "-");
1942
2004
  }
1943
2005
 
1944
- var __defProp$e = Object.defineProperty;
1945
- var __defProps$e = Object.defineProperties;
1946
- var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
1947
- var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
1948
- var __hasOwnProp$e = Object.prototype.hasOwnProperty;
1949
- var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
1950
- var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1951
- var __spreadValues$e = (a, b) => {
2006
+ var __defProp$i = Object.defineProperty;
2007
+ var __defProps$h = Object.defineProperties;
2008
+ var __getOwnPropDescs$h = Object.getOwnPropertyDescriptors;
2009
+ var __getOwnPropSymbols$i = Object.getOwnPropertySymbols;
2010
+ var __hasOwnProp$i = Object.prototype.hasOwnProperty;
2011
+ var __propIsEnum$i = Object.prototype.propertyIsEnumerable;
2012
+ var __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2013
+ var __spreadValues$i = (a, b) => {
1952
2014
  for (var prop in b || (b = {}))
1953
- if (__hasOwnProp$e.call(b, prop))
1954
- __defNormalProp$e(a, prop, b[prop]);
1955
- if (__getOwnPropSymbols$e)
1956
- for (var prop of __getOwnPropSymbols$e(b)) {
1957
- if (__propIsEnum$e.call(b, prop))
1958
- __defNormalProp$e(a, prop, b[prop]);
2015
+ if (__hasOwnProp$i.call(b, prop))
2016
+ __defNormalProp$i(a, prop, b[prop]);
2017
+ if (__getOwnPropSymbols$i)
2018
+ for (var prop of __getOwnPropSymbols$i(b)) {
2019
+ if (__propIsEnum$i.call(b, prop))
2020
+ __defNormalProp$i(a, prop, b[prop]);
1959
2021
  }
1960
2022
  return a;
1961
2023
  };
1962
- var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
2024
+ var __spreadProps$h = (a, b) => __defProps$h(a, __getOwnPropDescs$h(b));
1963
2025
  const removeExcludedTags = (excludedTags, parsedFiles) => {
1964
2026
  return parsedFiles.map((parsedFile) => {
1965
- return __spreadProps$e(__spreadValues$e({}, parsedFile), {
2027
+ return __spreadProps$h(__spreadValues$i({}, parsedFile), {
1966
2028
  type: removeExcludedTagsFromType(excludedTags, parsedFile.type)
1967
2029
  });
1968
2030
  });
1969
2031
  };
1970
2032
  const removeExcludedTagsFromType = (excludedTags, type) => {
1971
- return __spreadProps$e(__spreadValues$e({}, handleType(excludedTags, type)), {
2033
+ return __spreadProps$h(__spreadValues$i({}, handleType(excludedTags, type)), {
1972
2034
  docComment: removeExcludedTagsFromDocComment(excludedTags, type.docComment)
1973
2035
  });
1974
2036
  };
@@ -1983,7 +2045,7 @@ const handleType = (excludedTags, type) => {
1983
2045
  }
1984
2046
  };
1985
2047
  const handleClass = (excludedTags, classMirror) => {
1986
- return __spreadProps$e(__spreadValues$e({}, classMirror), {
2048
+ return __spreadProps$h(__spreadValues$i({}, classMirror), {
1987
2049
  methods: classMirror.methods.map((method) => removeExcludedTagsFromDocumentable(excludedTags, method)),
1988
2050
  properties: classMirror.properties.map((property) => removeExcludedTagsFromDocumentable(excludedTags, property)),
1989
2051
  fields: classMirror.fields.map((field) => removeExcludedTagsFromDocumentable(excludedTags, field)),
@@ -1996,12 +2058,12 @@ const handleClass = (excludedTags, classMirror) => {
1996
2058
  });
1997
2059
  };
1998
2060
  const handleInterface = (excludedTags, interfaceMirror) => {
1999
- return __spreadProps$e(__spreadValues$e({}, interfaceMirror), {
2061
+ return __spreadProps$h(__spreadValues$i({}, interfaceMirror), {
2000
2062
  methods: interfaceMirror.methods.map((method) => removeExcludedTagsFromDocumentable(excludedTags, method))
2001
2063
  });
2002
2064
  };
2003
2065
  const removeExcludedTagsFromDocumentable = (excludedTags, documentable) => {
2004
- return __spreadProps$e(__spreadValues$e({}, documentable), {
2066
+ return __spreadProps$h(__spreadValues$i({}, documentable), {
2005
2067
  docComment: removeExcludedTagsFromDocComment(excludedTags, documentable.docComment)
2006
2068
  });
2007
2069
  };
@@ -2028,7 +2090,7 @@ const removeExcludedTagsFromAnnotations = (excludedTags, docComment) => {
2028
2090
  O__namespace.map((annotations) => annotations.filter((annotation) => !includesIgnoreCase(excludedTags, annotation.name))),
2029
2091
  O__namespace.fold(
2030
2092
  () => docComment,
2031
- (filteredAnnotations) => __spreadProps$e(__spreadValues$e({}, docComment), {
2093
+ (filteredAnnotations) => __spreadProps$h(__spreadValues$i({}, docComment), {
2032
2094
  annotations: filteredAnnotations
2033
2095
  })
2034
2096
  )
@@ -2036,42 +2098,42 @@ const removeExcludedTagsFromAnnotations = (excludedTags, docComment) => {
2036
2098
  };
2037
2099
  const removeExampleTag = (remover) => {
2038
2100
  return remover("example", (docComment) => {
2039
- return __spreadProps$e(__spreadValues$e({}, docComment), {
2101
+ return __spreadProps$h(__spreadValues$i({}, docComment), {
2040
2102
  exampleAnnotation: null
2041
2103
  });
2042
2104
  });
2043
2105
  };
2044
2106
  const removeParamTags = (remover) => {
2045
2107
  return remover("param", (docComment) => {
2046
- return __spreadProps$e(__spreadValues$e({}, docComment), {
2108
+ return __spreadProps$h(__spreadValues$i({}, docComment), {
2047
2109
  paramAnnotations: []
2048
2110
  });
2049
2111
  });
2050
2112
  };
2051
2113
  const removeReturnTag = (remover) => {
2052
2114
  return remover("return", (docComment) => {
2053
- return __spreadProps$e(__spreadValues$e({}, docComment), {
2115
+ return __spreadProps$h(__spreadValues$i({}, docComment), {
2054
2116
  returnAnnotation: null
2055
2117
  });
2056
2118
  });
2057
2119
  };
2058
2120
  const removeThrowsTag = (remover) => {
2059
2121
  return remover("throws", (docComment) => {
2060
- return __spreadProps$e(__spreadValues$e({}, docComment), {
2122
+ return __spreadProps$h(__spreadValues$i({}, docComment), {
2061
2123
  throwsAnnotations: []
2062
2124
  });
2063
2125
  });
2064
2126
  };
2065
2127
  const removeExceptionTag = (remover) => {
2066
2128
  return remover("exception", (docComment) => {
2067
- return __spreadProps$e(__spreadValues$e({}, docComment), {
2129
+ return __spreadProps$h(__spreadValues$i({}, docComment), {
2068
2130
  throwsAnnotations: []
2069
2131
  });
2070
2132
  });
2071
2133
  };
2072
2134
  const removeDescription = (remover) => {
2073
2135
  return remover("description", (docComment) => {
2074
- return __spreadProps$e(__spreadValues$e({}, docComment), {
2136
+ return __spreadProps$h(__spreadValues$i({}, docComment), {
2075
2137
  description: "",
2076
2138
  descriptionLines: []
2077
2139
  });
@@ -2087,6 +2149,25 @@ const includesIgnoreCase = (excluded, value) => {
2087
2149
  return excluded.some((element) => element.toLowerCase() === value.toLowerCase());
2088
2150
  };
2089
2151
 
2152
+ class ReflectionError {
2153
+ constructor(file, message) {
2154
+ this.file = file;
2155
+ this.message = message;
2156
+ }
2157
+ }
2158
+ class ReflectionErrors {
2159
+ constructor(errors) {
2160
+ this.errors = errors;
2161
+ this._tag = "ReflectionErrors";
2162
+ }
2163
+ }
2164
+ class HookError {
2165
+ constructor(error) {
2166
+ this.error = error;
2167
+ this._tag = "HookError";
2168
+ }
2169
+ }
2170
+
2090
2171
  function getPickListValues(customField) {
2091
2172
  return hasType(customField) && isPicklist(customField) ? toPickListValues(customField) : void 0;
2092
2173
  }
@@ -2117,31 +2198,31 @@ function isArrayOfValues(value) {
2117
2198
  return Array.isArray(value);
2118
2199
  }
2119
2200
 
2120
- var __defProp$d = Object.defineProperty;
2121
- var __defProps$d = Object.defineProperties;
2122
- var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
2123
- var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
2124
- var __hasOwnProp$d = Object.prototype.hasOwnProperty;
2125
- var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
2126
- var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2127
- var __spreadValues$d = (a, b) => {
2201
+ var __defProp$h = Object.defineProperty;
2202
+ var __defProps$g = Object.defineProperties;
2203
+ var __getOwnPropDescs$g = Object.getOwnPropertyDescriptors;
2204
+ var __getOwnPropSymbols$h = Object.getOwnPropertySymbols;
2205
+ var __hasOwnProp$h = Object.prototype.hasOwnProperty;
2206
+ var __propIsEnum$h = Object.prototype.propertyIsEnumerable;
2207
+ var __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2208
+ var __spreadValues$h = (a, b) => {
2128
2209
  for (var prop in b || (b = {}))
2129
- if (__hasOwnProp$d.call(b, prop))
2130
- __defNormalProp$d(a, prop, b[prop]);
2131
- if (__getOwnPropSymbols$d)
2132
- for (var prop of __getOwnPropSymbols$d(b)) {
2133
- if (__propIsEnum$d.call(b, prop))
2134
- __defNormalProp$d(a, prop, b[prop]);
2210
+ if (__hasOwnProp$h.call(b, prop))
2211
+ __defNormalProp$h(a, prop, b[prop]);
2212
+ if (__getOwnPropSymbols$h)
2213
+ for (var prop of __getOwnPropSymbols$h(b)) {
2214
+ if (__propIsEnum$h.call(b, prop))
2215
+ __defNormalProp$h(a, prop, b[prop]);
2135
2216
  }
2136
2217
  return a;
2137
2218
  };
2138
- var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
2219
+ var __spreadProps$g = (a, b) => __defProps$g(a, __getOwnPropDescs$g(b));
2139
2220
  function reflectCustomObjectSources(objectBundles) {
2140
2221
  const semiGroupReflectionError = {
2141
2222
  concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors])
2142
2223
  };
2143
2224
  const Ap = TE__namespace.getApplicativeTaskValidation(T__namespace.ApplyPar, semiGroupReflectionError);
2144
- return _function.pipe(objectBundles, A__namespace$1.traverse(Ap)(reflectCustomObjectSource));
2225
+ return _function.pipe(objectBundles, A__namespace.traverse(Ap)(reflectCustomObjectSource));
2145
2226
  }
2146
2227
  function reflectCustomObjectSource(objectSource) {
2147
2228
  return _function.pipe(
@@ -2151,7 +2232,7 @@ function reflectCustomObjectSource(objectSource) {
2151
2232
  E__namespace.map((metadata) => addName$1(metadata, objectSource.name)),
2152
2233
  E__namespace.map(parseInlineFields),
2153
2234
  E__namespace.map(addTypeName),
2154
- E__namespace.map((metadata) => toParsedFile$3(objectSource.filePath, metadata)),
2235
+ E__namespace.map((metadata) => toParsedFile$6(objectSource.filePath, metadata)),
2155
2236
  E__namespace.mapLeft((error) => new ReflectionErrors([new ReflectionError(objectSource.filePath, error.message)])),
2156
2237
  TE__namespace.fromEither
2157
2238
  );
@@ -2175,10 +2256,10 @@ function toObjectMetadata(parserResult) {
2175
2256
  fields: [],
2176
2257
  metadataRecords: []
2177
2258
  };
2178
- return __spreadValues$d(__spreadValues$d({}, defaultValues), customObject);
2259
+ return __spreadValues$h(__spreadValues$h({}, defaultValues), customObject);
2179
2260
  }
2180
2261
  function addName$1(objectMetadata, name) {
2181
- return __spreadProps$d(__spreadValues$d({}, objectMetadata), {
2262
+ return __spreadProps$g(__spreadValues$h({}, objectMetadata), {
2182
2263
  name
2183
2264
  });
2184
2265
  }
@@ -2186,7 +2267,7 @@ function parseInlineFields(metadata) {
2186
2267
  if (!Array.isArray(metadata.fields)) {
2187
2268
  metadata.fields = [metadata.fields];
2188
2269
  }
2189
- return __spreadProps$d(__spreadValues$d({}, metadata), {
2270
+ return __spreadProps$g(__spreadValues$h({}, metadata), {
2190
2271
  fields: metadata.fields.map((field) => convertInlineFieldsToCustomFieldMetadata(field, metadata.name))
2191
2272
  });
2192
2273
  }
@@ -2214,11 +2295,11 @@ function convertInlineFieldsToCustomFieldMetadata(inlineField, parentName) {
2214
2295
  };
2215
2296
  }
2216
2297
  function addTypeName(objectMetadata) {
2217
- return __spreadProps$d(__spreadValues$d({}, objectMetadata), {
2298
+ return __spreadProps$g(__spreadValues$h({}, objectMetadata), {
2218
2299
  type_name: "customobject"
2219
2300
  });
2220
2301
  }
2221
- function toParsedFile$3(filePath, typeMirror) {
2302
+ function toParsedFile$6(filePath, typeMirror) {
2222
2303
  return {
2223
2304
  source: {
2224
2305
  filePath,
@@ -2229,31 +2310,31 @@ function toParsedFile$3(filePath, typeMirror) {
2229
2310
  };
2230
2311
  }
2231
2312
 
2232
- var __defProp$c = Object.defineProperty;
2233
- var __defProps$c = Object.defineProperties;
2234
- var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
2235
- var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
2236
- var __hasOwnProp$c = Object.prototype.hasOwnProperty;
2237
- var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
2238
- var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2239
- var __spreadValues$c = (a, b) => {
2313
+ var __defProp$g = Object.defineProperty;
2314
+ var __defProps$f = Object.defineProperties;
2315
+ var __getOwnPropDescs$f = Object.getOwnPropertyDescriptors;
2316
+ var __getOwnPropSymbols$g = Object.getOwnPropertySymbols;
2317
+ var __hasOwnProp$g = Object.prototype.hasOwnProperty;
2318
+ var __propIsEnum$g = Object.prototype.propertyIsEnumerable;
2319
+ var __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2320
+ var __spreadValues$g = (a, b) => {
2240
2321
  for (var prop in b || (b = {}))
2241
- if (__hasOwnProp$c.call(b, prop))
2242
- __defNormalProp$c(a, prop, b[prop]);
2243
- if (__getOwnPropSymbols$c)
2244
- for (var prop of __getOwnPropSymbols$c(b)) {
2245
- if (__propIsEnum$c.call(b, prop))
2246
- __defNormalProp$c(a, prop, b[prop]);
2322
+ if (__hasOwnProp$g.call(b, prop))
2323
+ __defNormalProp$g(a, prop, b[prop]);
2324
+ if (__getOwnPropSymbols$g)
2325
+ for (var prop of __getOwnPropSymbols$g(b)) {
2326
+ if (__propIsEnum$g.call(b, prop))
2327
+ __defNormalProp$g(a, prop, b[prop]);
2247
2328
  }
2248
2329
  return a;
2249
2330
  };
2250
- var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
2331
+ var __spreadProps$f = (a, b) => __defProps$f(a, __getOwnPropDescs$f(b));
2251
2332
  function reflectCustomFieldSources(customFieldSources) {
2252
2333
  const semiGroupReflectionError = {
2253
2334
  concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors])
2254
2335
  };
2255
2336
  const Ap = TE__namespace.getApplicativeTaskValidation(T__namespace.ApplyPar, semiGroupReflectionError);
2256
- return _function.pipe(customFieldSources, A__namespace$1.traverse(Ap)(reflectCustomFieldSource));
2337
+ return _function.pipe(customFieldSources, A__namespace.traverse(Ap)(reflectCustomFieldSource));
2257
2338
  }
2258
2339
  function reflectCustomFieldSource(customFieldSource) {
2259
2340
  return _function.pipe(
@@ -2262,7 +2343,7 @@ function reflectCustomFieldSource(customFieldSource) {
2262
2343
  E__namespace.map(toCustomFieldMetadata),
2263
2344
  E__namespace.map((metadata) => addName(metadata, customFieldSource.name)),
2264
2345
  E__namespace.map((metadata) => addParentName$1(metadata, customFieldSource.parentName)),
2265
- E__namespace.map((metadata) => toParsedFile$2(customFieldSource.filePath, metadata)),
2346
+ E__namespace.map((metadata) => toParsedFile$5(customFieldSource.filePath, metadata)),
2266
2347
  E__namespace.mapLeft((error) => new ReflectionErrors([new ReflectionError(customFieldSource.filePath, error.message)])),
2267
2348
  TE__namespace.fromEither
2268
2349
  );
@@ -2286,18 +2367,18 @@ function toCustomFieldMetadata(parserResult) {
2286
2367
  complianceGroup: null,
2287
2368
  inlineHelpText: null
2288
2369
  };
2289
- return __spreadProps$c(__spreadValues$c(__spreadValues$c({}, defaultValues), customField), {
2370
+ return __spreadProps$f(__spreadValues$g(__spreadValues$g({}, defaultValues), customField), {
2290
2371
  type_name: "customfield",
2291
2372
  pickListValues: getPickListValues(customField)
2292
2373
  });
2293
2374
  }
2294
2375
  function addName(metadata, name) {
2295
- return __spreadProps$c(__spreadValues$c({}, metadata), { name });
2376
+ return __spreadProps$f(__spreadValues$g({}, metadata), { name });
2296
2377
  }
2297
2378
  function addParentName$1(metadata, parentName) {
2298
- return __spreadProps$c(__spreadValues$c({}, metadata), { parentName });
2379
+ return __spreadProps$f(__spreadValues$g({}, metadata), { parentName });
2299
2380
  }
2300
- function toParsedFile$2(filePath, typeMirror) {
2381
+ function toParsedFile$5(filePath, typeMirror) {
2301
2382
  return {
2302
2383
  source: {
2303
2384
  filePath,
@@ -2308,27 +2389,27 @@ function toParsedFile$2(filePath, typeMirror) {
2308
2389
  };
2309
2390
  }
2310
2391
 
2311
- var __defProp$b = Object.defineProperty;
2312
- var __defProps$b = Object.defineProperties;
2313
- var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
2314
- var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
2315
- var __hasOwnProp$b = Object.prototype.hasOwnProperty;
2316
- var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
2317
- var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2318
- var __spreadValues$b = (a, b) => {
2392
+ var __defProp$f = Object.defineProperty;
2393
+ var __defProps$e = Object.defineProperties;
2394
+ var __getOwnPropDescs$e = Object.getOwnPropertyDescriptors;
2395
+ var __getOwnPropSymbols$f = Object.getOwnPropertySymbols;
2396
+ var __hasOwnProp$f = Object.prototype.hasOwnProperty;
2397
+ var __propIsEnum$f = Object.prototype.propertyIsEnumerable;
2398
+ var __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2399
+ var __spreadValues$f = (a, b) => {
2319
2400
  for (var prop in b || (b = {}))
2320
- if (__hasOwnProp$b.call(b, prop))
2321
- __defNormalProp$b(a, prop, b[prop]);
2322
- if (__getOwnPropSymbols$b)
2323
- for (var prop of __getOwnPropSymbols$b(b)) {
2324
- if (__propIsEnum$b.call(b, prop))
2325
- __defNormalProp$b(a, prop, b[prop]);
2401
+ if (__hasOwnProp$f.call(b, prop))
2402
+ __defNormalProp$f(a, prop, b[prop]);
2403
+ if (__getOwnPropSymbols$f)
2404
+ for (var prop of __getOwnPropSymbols$f(b)) {
2405
+ if (__propIsEnum$f.call(b, prop))
2406
+ __defNormalProp$f(a, prop, b[prop]);
2326
2407
  }
2327
2408
  return a;
2328
2409
  };
2329
- var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
2410
+ var __spreadProps$e = (a, b) => __defProps$e(a, __getOwnPropDescs$e(b));
2330
2411
  function reflectCustomMetadataSources(customMetadataSources) {
2331
- return _function.pipe(customMetadataSources, A__namespace$1.traverse(TE__namespace.ApplicativePar)(reflectCustomMetadataSource));
2412
+ return _function.pipe(customMetadataSources, A__namespace.traverse(TE__namespace.ApplicativePar)(reflectCustomMetadataSource));
2332
2413
  }
2333
2414
  function reflectCustomMetadataSource(customMetadataSource) {
2334
2415
  return _function.pipe(
@@ -2337,7 +2418,7 @@ function reflectCustomMetadataSource(customMetadataSource) {
2337
2418
  E__namespace.map(toCustomMetadataMetadata),
2338
2419
  E__namespace.map((metadata) => addNames(metadata, customMetadataSource.name, customMetadataSource.apiName)),
2339
2420
  E__namespace.map((metadata) => addParentName(metadata, customMetadataSource.parentName)),
2340
- E__namespace.map((metadata) => toParsedFile$1(customMetadataSource.filePath, metadata)),
2421
+ E__namespace.map((metadata) => toParsedFile$4(customMetadataSource.filePath, metadata)),
2341
2422
  E__namespace.mapLeft((error) => new ReflectionErrors([new ReflectionError(customMetadataSource.filePath, error.message)])),
2342
2423
  TE__namespace.fromEither
2343
2424
  );
@@ -2357,26 +2438,548 @@ function toCustomMetadataMetadata(parserResult) {
2357
2438
  const defaultValues = {
2358
2439
  label: null
2359
2440
  };
2360
- return __spreadProps$b(__spreadValues$b(__spreadValues$b({}, defaultValues), customMetadata), {
2361
- type_name: "custommetadata"
2362
- });
2363
- }
2364
- function addNames(metadata, name, apiName) {
2365
- return __spreadProps$b(__spreadValues$b({}, metadata), { name, apiName });
2441
+ return __spreadProps$e(__spreadValues$f(__spreadValues$f({}, defaultValues), customMetadata), {
2442
+ type_name: "custommetadata"
2443
+ });
2444
+ }
2445
+ function addNames(metadata, name, apiName) {
2446
+ return __spreadProps$e(__spreadValues$f({}, metadata), { name, apiName });
2447
+ }
2448
+ function addParentName(metadata, parentName) {
2449
+ return __spreadProps$e(__spreadValues$f({}, metadata), { parentName });
2450
+ }
2451
+ function toParsedFile$4(filePath, typeMirror) {
2452
+ return {
2453
+ source: {
2454
+ filePath,
2455
+ name: typeMirror.name,
2456
+ type: typeMirror.type_name
2457
+ },
2458
+ type: typeMirror
2459
+ };
2460
+ }
2461
+
2462
+ var __defProp$e = Object.defineProperty;
2463
+ var __defProps$d = Object.defineProperties;
2464
+ var __getOwnPropDescs$d = Object.getOwnPropertyDescriptors;
2465
+ var __getOwnPropSymbols$e = Object.getOwnPropertySymbols;
2466
+ var __hasOwnProp$e = Object.prototype.hasOwnProperty;
2467
+ var __propIsEnum$e = Object.prototype.propertyIsEnumerable;
2468
+ var __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2469
+ var __spreadValues$e = (a, b) => {
2470
+ for (var prop in b || (b = {}))
2471
+ if (__hasOwnProp$e.call(b, prop))
2472
+ __defNormalProp$e(a, prop, b[prop]);
2473
+ if (__getOwnPropSymbols$e)
2474
+ for (var prop of __getOwnPropSymbols$e(b)) {
2475
+ if (__propIsEnum$e.call(b, prop))
2476
+ __defNormalProp$e(a, prop, b[prop]);
2477
+ }
2478
+ return a;
2479
+ };
2480
+ var __spreadProps$d = (a, b) => __defProps$d(a, __getOwnPropDescs$d(b));
2481
+ function reflectCustomFieldsAndObjectsAndMetadataRecords(objectBundles, visibilitiesToDocument) {
2482
+ function filterNonPublished(parsedFiles) {
2483
+ return parsedFiles.filter((parsedFile) => parsedFile.type.deploymentStatus === "Deployed");
2484
+ }
2485
+ function filter(parsedFiles) {
2486
+ function shouldBeDocumented(parsedFile) {
2487
+ return visibilitiesToDocument.includes(parsedFile.type.visibility.toLowerCase());
2488
+ }
2489
+ const objectsToDocument = parsedFiles.filter(shouldBeDocumented);
2490
+ const objectsToIgnore = parsedFiles.filter((parsedFile) => !shouldBeDocumented(parsedFile)).map((parsedFile) => parsedFile.type.name);
2491
+ return [objectsToDocument, objectsToIgnore];
2492
+ }
2493
+ const customObjects = objectBundles.filter(
2494
+ (object) => object.type === "customobject"
2495
+ );
2496
+ const customFields = objectBundles.filter(
2497
+ (object) => object.type === "customfield"
2498
+ );
2499
+ const customMetadata = objectBundles.filter(
2500
+ (object) => object.type === "custommetadata"
2501
+ );
2502
+ function generateForFields(fields) {
2503
+ return _function.pipe(fields, reflectCustomFieldSources);
2504
+ }
2505
+ function generateForMetadata(metadata) {
2506
+ return _function.pipe(metadata, reflectCustomMetadataSources);
2507
+ }
2508
+ return _function.pipe(
2509
+ customObjects,
2510
+ reflectCustomObjectSources,
2511
+ TE__namespace.map(filterNonPublished),
2512
+ TE__namespace.map(filter),
2513
+ TE__namespace.bindTo("filterResult"),
2514
+ TE__namespace.bind("fields", () => generateForFields(customFields)),
2515
+ TE__namespace.bind("metadata", () => generateForMetadata(customMetadata)),
2516
+ TE__namespace.map(({ filterResult, fields, metadata }) => {
2517
+ return [...mapFieldsAndMetadata(filterResult[0], fields, metadata), ...mapExtensionFields(filterResult, fields)];
2518
+ })
2519
+ );
2520
+ }
2521
+ function mapFieldsAndMetadata(objects, fields, metadata) {
2522
+ return objects.map((object) => {
2523
+ const objectFields = fields.filter((field) => field.type.parentName === object.type.name);
2524
+ const objectMetadata = metadata.filter((meta) => `${meta.type.parentName}__mdt` === object.type.name);
2525
+ return __spreadProps$d(__spreadValues$e({}, object), {
2526
+ type: __spreadProps$d(__spreadValues$e({}, object.type), {
2527
+ fields: [...object.type.fields, ...objectFields.map((field) => field.type)],
2528
+ metadataRecords: [...object.type.metadataRecords, ...objectMetadata.map((meta) => meta.type)]
2529
+ })
2530
+ });
2531
+ });
2532
+ }
2533
+ function mapExtensionFields(filterResult, fields) {
2534
+ const objects = filterResult[0];
2535
+ const ignoredObjectNames = filterResult[1];
2536
+ const extensionFields = fields.filter(
2537
+ (field) => !objects.some((object) => object.type.name.toLowerCase() === field.type.parentName.toLowerCase()) && !ignoredObjectNames.map((name) => name.toLowerCase()).includes(field.type.parentName.toLowerCase())
2538
+ );
2539
+ const extensionFieldsByParent = extensionFields.reduce(
2540
+ (acc, field) => {
2541
+ if (!acc[field.type.parentName]) {
2542
+ acc[field.type.parentName] = [];
2543
+ }
2544
+ acc[field.type.parentName].push(field.type);
2545
+ return acc;
2546
+ },
2547
+ {}
2548
+ );
2549
+ return Object.keys(extensionFieldsByParent).map((key) => {
2550
+ const fields2 = extensionFieldsByParent[key];
2551
+ return {
2552
+ source: {
2553
+ name: key,
2554
+ type: "customobject"
2555
+ },
2556
+ type: {
2557
+ type_name: "customobject",
2558
+ deploymentStatus: "Deployed",
2559
+ visibility: "Public",
2560
+ label: key,
2561
+ name: key,
2562
+ description: null,
2563
+ fields: fields2,
2564
+ metadataRecords: []
2565
+ }
2566
+ };
2567
+ });
2568
+ }
2569
+
2570
+ function filterApexSourceFiles(sourceFiles) {
2571
+ return sourceFiles.filter((sourceFile) => sourceFile.type === "apex");
2572
+ }
2573
+ function filterCustomObjectsFieldsAndMetadataRecords(sourceFiles) {
2574
+ return sourceFiles.filter(
2575
+ (sourceFile) => sourceFile.type === "customobject" || sourceFile.type === "customfield" || sourceFile.type === "custommetadata"
2576
+ );
2577
+ }
2578
+ function filterTriggerFiles(sourceFiles) {
2579
+ return sourceFiles.filter((sourceFile) => sourceFile.type === "trigger");
2580
+ }
2581
+
2582
+ var __async$9 = (__this, __arguments, generator) => {
2583
+ return new Promise((resolve2, reject) => {
2584
+ var fulfilled = (value) => {
2585
+ try {
2586
+ step(generator.next(value));
2587
+ } catch (e) {
2588
+ reject(e);
2589
+ }
2590
+ };
2591
+ var rejected = (value) => {
2592
+ try {
2593
+ step(generator.throw(value));
2594
+ } catch (e) {
2595
+ reject(e);
2596
+ }
2597
+ };
2598
+ var step = (x) => x.done ? resolve2(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
2599
+ step((generator = generator.apply(__this, __arguments)).next());
2600
+ });
2601
+ };
2602
+ class WorkerPool {
2603
+ constructor(poolSize) {
2604
+ this.workers = [];
2605
+ this.freeWorkers = [];
2606
+ this.busyWorkers = /* @__PURE__ */ new Set();
2607
+ this.taskQueue = [];
2608
+ this.terminatingWorkers = /* @__PURE__ */ new Set();
2609
+ const size = poolSize || os.cpus().length;
2610
+ this.workerPath = this.getWorkerPath();
2611
+ for (let i = 0; i < size; i++) {
2612
+ this.createWorker();
2613
+ }
2614
+ }
2615
+ getWorkerPath() {
2616
+ if (__filename.endsWith(".ts")) {
2617
+ const rootDir = path.resolve(__dirname, "../../../..");
2618
+ return path.resolve(rootDir, "dist/core/reflection/worker-thread/reflection-worker.js");
2619
+ } else {
2620
+ return path.resolve(__dirname, "./reflection-worker.js");
2621
+ }
2622
+ }
2623
+ createWorker() {
2624
+ const worker = new worker_threads.Worker(this.workerPath);
2625
+ worker.on("message", (result) => {
2626
+ this.handleWorkerResult(worker, result);
2627
+ });
2628
+ worker.on("error", (error) => {
2629
+ console.error("Worker error:", error);
2630
+ this.handleWorkerError(worker);
2631
+ });
2632
+ worker.on("exit", (code) => {
2633
+ if (code !== 0 && !this.terminatingWorkers.has(worker)) {
2634
+ console.error(`Worker stopped with exit code ${code}`);
2635
+ }
2636
+ this.handleWorkerExit(worker);
2637
+ });
2638
+ this.workers.push(worker);
2639
+ this.freeWorkers.push(worker);
2640
+ return worker;
2641
+ }
2642
+ handleWorkerResult(worker, result) {
2643
+ const taskIndex = this.taskQueue.findIndex(({ task }) => task.id === result.id);
2644
+ if (taskIndex !== -1) {
2645
+ const { resolve: resolve2 } = this.taskQueue[taskIndex];
2646
+ this.taskQueue.splice(taskIndex, 1);
2647
+ resolve2(result);
2648
+ }
2649
+ this.busyWorkers.delete(worker);
2650
+ this.freeWorkers.push(worker);
2651
+ this.processNextTask();
2652
+ }
2653
+ handleWorkerError(worker) {
2654
+ this.busyWorkers.delete(worker);
2655
+ const newWorker = this.createWorker();
2656
+ const workerIndex = this.workers.indexOf(worker);
2657
+ if (workerIndex !== -1) {
2658
+ this.workers[workerIndex] = newWorker;
2659
+ }
2660
+ this.terminatingWorkers.add(worker);
2661
+ worker.terminate();
2662
+ this.processNextTask();
2663
+ }
2664
+ handleWorkerExit(worker) {
2665
+ this.busyWorkers.delete(worker);
2666
+ this.terminatingWorkers.delete(worker);
2667
+ const freeIndex = this.freeWorkers.indexOf(worker);
2668
+ if (freeIndex !== -1) {
2669
+ this.freeWorkers.splice(freeIndex, 1);
2670
+ }
2671
+ const workerIndex = this.workers.indexOf(worker);
2672
+ if (workerIndex !== -1) {
2673
+ this.workers.splice(workerIndex, 1);
2674
+ }
2675
+ }
2676
+ processNextTask() {
2677
+ if (this.taskQueue.length === 0 || this.freeWorkers.length === 0) {
2678
+ return;
2679
+ }
2680
+ const worker = this.freeWorkers.pop();
2681
+ const { task } = this.taskQueue[0];
2682
+ this.busyWorkers.add(worker);
2683
+ worker.postMessage(task);
2684
+ }
2685
+ execute(task) {
2686
+ return __async$9(this, null, function* () {
2687
+ return new Promise((resolve2) => {
2688
+ this.taskQueue.push({ task, resolve: resolve2 });
2689
+ this.processNextTask();
2690
+ });
2691
+ });
2692
+ }
2693
+ executeAll(tasks) {
2694
+ return __async$9(this, null, function* () {
2695
+ const promises = tasks.map((task) => this.execute(task));
2696
+ return Promise.all(promises);
2697
+ });
2698
+ }
2699
+ terminate() {
2700
+ return __async$9(this, null, function* () {
2701
+ this.workers.forEach((worker) => this.terminatingWorkers.add(worker));
2702
+ yield Promise.all(this.workers.map((worker) => worker.terminate()));
2703
+ this.workers = [];
2704
+ this.freeWorkers = [];
2705
+ this.busyWorkers.clear();
2706
+ this.terminatingWorkers.clear();
2707
+ this.taskQueue = [];
2708
+ });
2709
+ }
2710
+ }
2711
+ let workerPool = null;
2712
+ function getWorkerPool() {
2713
+ if (!workerPool) {
2714
+ workerPool = new WorkerPool();
2715
+ }
2716
+ return workerPool;
2717
+ }
2718
+ function terminateWorkerPool() {
2719
+ if (workerPool) {
2720
+ const pool = workerPool;
2721
+ workerPool = null;
2722
+ return pool.terminate();
2723
+ }
2724
+ return Promise.resolve();
2725
+ }
2726
+
2727
+ var workerPool$1 = /*#__PURE__*/Object.freeze({
2728
+ __proto__: null,
2729
+ WorkerPool: WorkerPool,
2730
+ getWorkerPool: getWorkerPool,
2731
+ terminateWorkerPool: terminateWorkerPool
2732
+ });
2733
+
2734
+ var __defProp$d = Object.defineProperty;
2735
+ var __getOwnPropSymbols$d = Object.getOwnPropertySymbols;
2736
+ var __hasOwnProp$d = Object.prototype.hasOwnProperty;
2737
+ var __propIsEnum$d = Object.prototype.propertyIsEnumerable;
2738
+ var __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2739
+ var __spreadValues$d = (a, b) => {
2740
+ for (var prop in b || (b = {}))
2741
+ if (__hasOwnProp$d.call(b, prop))
2742
+ __defNormalProp$d(a, prop, b[prop]);
2743
+ if (__getOwnPropSymbols$d)
2744
+ for (var prop of __getOwnPropSymbols$d(b)) {
2745
+ if (__propIsEnum$d.call(b, prop))
2746
+ __defNormalProp$d(a, prop, b[prop]);
2747
+ }
2748
+ return a;
2749
+ };
2750
+ const defaultReflectionConfig = {
2751
+ parallel: process.env.NODE_ENV !== "test",
2752
+ // Disable parallel processing during tests
2753
+ workerThreads: void 0
2754
+ // Will default to CPU cores
2755
+ };
2756
+ let globalReflectionConfig = __spreadValues$d({}, defaultReflectionConfig);
2757
+ function setReflectionConfig(config) {
2758
+ globalReflectionConfig = __spreadValues$d(__spreadValues$d({}, globalReflectionConfig), config);
2759
+ }
2760
+ function getReflectionConfig() {
2761
+ return globalReflectionConfig;
2762
+ }
2763
+
2764
+ function parseApexMetadata(input) {
2765
+ return _function.pipe(input, parse, E__namespace.map(toMap));
2766
+ }
2767
+ function parse(input) {
2768
+ return E__namespace.tryCatch(() => new fastXmlParser.XMLParser().parse(input), E__namespace.toError);
2769
+ }
2770
+ function toMap(metadata) {
2771
+ const map = /* @__PURE__ */ new Map();
2772
+ map.set("apiVersion", String(metadata.ApexClass.apiVersion));
2773
+ if (metadata.ApexClass.status) {
2774
+ map.set("status", String(metadata.ApexClass.status));
2775
+ }
2776
+ return map;
2777
+ }
2778
+
2779
+ var __defProp$c = Object.defineProperty;
2780
+ var __defProps$c = Object.defineProperties;
2781
+ var __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;
2782
+ var __getOwnPropSymbols$c = Object.getOwnPropertySymbols;
2783
+ var __hasOwnProp$c = Object.prototype.hasOwnProperty;
2784
+ var __propIsEnum$c = Object.prototype.propertyIsEnumerable;
2785
+ var __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2786
+ var __spreadValues$c = (a, b) => {
2787
+ for (var prop in b || (b = {}))
2788
+ if (__hasOwnProp$c.call(b, prop))
2789
+ __defNormalProp$c(a, prop, b[prop]);
2790
+ if (__getOwnPropSymbols$c)
2791
+ for (var prop of __getOwnPropSymbols$c(b)) {
2792
+ if (__propIsEnum$c.call(b, prop))
2793
+ __defNormalProp$c(a, prop, b[prop]);
2794
+ }
2795
+ return a;
2796
+ };
2797
+ var __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));
2798
+ var __async$8 = (__this, __arguments, generator) => {
2799
+ return new Promise((resolve, reject) => {
2800
+ var fulfilled = (value) => {
2801
+ try {
2802
+ step(generator.next(value));
2803
+ } catch (e) {
2804
+ reject(e);
2805
+ }
2806
+ };
2807
+ var rejected = (value) => {
2808
+ try {
2809
+ step(generator.throw(value));
2810
+ } catch (e) {
2811
+ reject(e);
2812
+ }
2813
+ };
2814
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
2815
+ step((generator = generator.apply(__this, __arguments)).next());
2816
+ });
2817
+ };
2818
+ function reflectAsync$1(rawSource) {
2819
+ return __async$8(this, null, function* () {
2820
+ return new Promise((resolve, reject) => {
2821
+ const result = apexReflection.reflect(rawSource);
2822
+ if (result.typeMirror) {
2823
+ return resolve(result.typeMirror);
2824
+ } else if (result.error) {
2825
+ return reject(result.error);
2826
+ } else {
2827
+ return reject(new Error("Unknown error"));
2828
+ }
2829
+ });
2830
+ });
2831
+ }
2832
+ function reflectApexSource(apexBundles) {
2833
+ const semiGroupReflectionError = {
2834
+ concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors])
2835
+ };
2836
+ const Ap = TE__namespace.getApplicativeTaskValidation(T__namespace.ApplyPar, semiGroupReflectionError);
2837
+ return _function.pipe(apexBundles, A__namespace$1.traverse(Ap)(reflectBundle$1));
2838
+ }
2839
+ function reflectBundle$1(apexBundle) {
2840
+ const convertToParsedFile = apply(toParsedFile$3, apexBundle.filePath);
2841
+ const withMetadata = apply(addMetadata$1, apexBundle.metadataContent);
2842
+ return _function.pipe(apexBundle, reflectAsTask$1, TE__namespace.map(convertToParsedFile), TE__namespace.flatMap(withMetadata));
2843
+ }
2844
+ function reflectAsTask$1(apexBundle) {
2845
+ return TE__namespace.tryCatch(
2846
+ () => reflectAsync$1(apexBundle.content),
2847
+ (error) => new ReflectionErrors([new ReflectionError(apexBundle.filePath, error.message)])
2848
+ );
2849
+ }
2850
+ function toParsedFile$3(filePath, typeMirror) {
2851
+ return {
2852
+ source: {
2853
+ filePath,
2854
+ name: typeMirror.name,
2855
+ type: typeMirror.type_name
2856
+ },
2857
+ type: typeMirror
2858
+ };
2859
+ }
2860
+ function addMetadata$1(rawMetadataContent, parsedFile) {
2861
+ return TE__namespace.fromEither(
2862
+ _function.pipe(
2863
+ parsedFile.type,
2864
+ (type) => addFileMetadataToTypeAnnotation$1(type, rawMetadataContent),
2865
+ E__namespace.map((type) => __spreadProps$c(__spreadValues$c({}, parsedFile), { type })),
2866
+ E__namespace.mapLeft(
2867
+ (error) => errorToReflectionErrors(error, isInSource(parsedFile.source) ? parsedFile.source.filePath : "")
2868
+ )
2869
+ )
2870
+ );
2871
+ }
2872
+ function errorToReflectionErrors(error, filePath) {
2873
+ return new ReflectionErrors([new ReflectionError(filePath, error.message)]);
2874
+ }
2875
+ function addFileMetadataToTypeAnnotation$1(type, metadata) {
2876
+ const concatAnnotationToType = apply(concatAnnotations$1, type);
2877
+ return _function.pipe(
2878
+ O__namespace.fromNullable(metadata),
2879
+ O__namespace.map(concatAnnotationToType),
2880
+ O__namespace.getOrElse(() => E__namespace.right(type))
2881
+ );
2882
+ }
2883
+ function concatAnnotations$1(type, metadataInput) {
2884
+ return _function.pipe(
2885
+ metadataInput,
2886
+ parseApexMetadata,
2887
+ E__namespace.map((metadataMap) => __spreadProps$c(__spreadValues$c({}, type), {
2888
+ annotations: [...type.annotations, ...mapToAnnotations$1(metadataMap)]
2889
+ }))
2890
+ );
2891
+ }
2892
+ function mapToAnnotations$1(metadata) {
2893
+ return Array.from(metadata.entries()).map(([key, value]) => {
2894
+ const declaration = `${key}: ${value}`;
2895
+ return {
2896
+ name: declaration,
2897
+ type: declaration,
2898
+ rawDeclaration: declaration
2899
+ };
2900
+ });
2901
+ }
2902
+
2903
+ var __defProp$b = Object.defineProperty;
2904
+ var __defProps$b = Object.defineProperties;
2905
+ var __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;
2906
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
2907
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
2908
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
2909
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2910
+ var __spreadValues$b = (a, b) => {
2911
+ for (var prop in b || (b = {}))
2912
+ if (__hasOwnProp$b.call(b, prop))
2913
+ __defNormalProp$b(a, prop, b[prop]);
2914
+ if (__getOwnPropSymbols$b)
2915
+ for (var prop of __getOwnPropSymbols$b(b)) {
2916
+ if (__propIsEnum$b.call(b, prop))
2917
+ __defNormalProp$b(a, prop, b[prop]);
2918
+ }
2919
+ return a;
2920
+ };
2921
+ var __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));
2922
+ var __async$7 = (__this, __arguments, generator) => {
2923
+ return new Promise((resolve, reject) => {
2924
+ var fulfilled = (value) => {
2925
+ try {
2926
+ step(generator.next(value));
2927
+ } catch (e) {
2928
+ reject(e);
2929
+ }
2930
+ };
2931
+ var rejected = (value) => {
2932
+ try {
2933
+ step(generator.throw(value));
2934
+ } catch (e) {
2935
+ reject(e);
2936
+ }
2937
+ };
2938
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
2939
+ step((generator = generator.apply(__this, __arguments)).next());
2940
+ });
2941
+ };
2942
+ function reflectTriggerSource(triggerBundles) {
2943
+ const semiGroupReflectionError = {
2944
+ concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors])
2945
+ };
2946
+ const Ap = TE__namespace.getApplicativeTaskValidation(T__namespace.ApplyPar, semiGroupReflectionError);
2947
+ return _function.pipe(triggerBundles, A__namespace$1.traverse(Ap)(reflectBundle));
2366
2948
  }
2367
- function addParentName(metadata, parentName) {
2368
- return __spreadProps$b(__spreadValues$b({}, metadata), { parentName });
2949
+ function reflectBundle(triggerBundle) {
2950
+ const convertToParsedFile = apply(
2951
+ toParsedFile$2,
2952
+ triggerBundle.filePath
2953
+ );
2954
+ return _function.pipe(triggerBundle, reflectAsTask, TE__namespace.map(convertToParsedFile));
2369
2955
  }
2370
- function toParsedFile$1(filePath, typeMirror) {
2956
+ function toParsedFile$2(filePath, triggerMirror) {
2371
2957
  return {
2372
2958
  source: {
2373
2959
  filePath,
2374
- name: typeMirror.name,
2375
- type: typeMirror.type_name
2960
+ name: triggerMirror.name,
2961
+ type: "trigger"
2376
2962
  },
2377
- type: typeMirror
2963
+ type: __spreadProps$b(__spreadValues$b({}, triggerMirror), {
2964
+ type_name: "trigger"
2965
+ })
2378
2966
  };
2379
2967
  }
2968
+ function reflectAsTask(triggerContent) {
2969
+ return TE__namespace.tryCatch(
2970
+ () => reflectAsync(triggerContent.content),
2971
+ (error) => new ReflectionErrors([new ReflectionError(triggerContent.filePath, error.message)])
2972
+ );
2973
+ }
2974
+ function reflectAsync(triggerContent) {
2975
+ return __async$7(this, null, function* () {
2976
+ const reflectionResult = yield apexReflection.reflectTriggerAsync(triggerContent);
2977
+ if (reflectionResult.error) {
2978
+ throw reflectionResult.error;
2979
+ }
2980
+ return reflectionResult.triggerMirror;
2981
+ });
2982
+ }
2380
2983
 
2381
2984
  var __defProp$a = Object.defineProperty;
2382
2985
  var __defProps$a = Object.defineProperties;
@@ -2397,107 +3000,112 @@ var __spreadValues$a = (a, b) => {
2397
3000
  return a;
2398
3001
  };
2399
3002
  var __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));
2400
- function reflectCustomFieldsAndObjectsAndMetadataRecords(objectBundles, visibilitiesToDocument) {
2401
- function filterNonPublished(parsedFiles) {
2402
- return parsedFiles.filter((parsedFile) => parsedFile.type.deploymentStatus === "Deployed");
2403
- }
2404
- function filter(parsedFiles) {
2405
- function shouldBeDocumented(parsedFile) {
2406
- return visibilitiesToDocument.includes(parsedFile.type.visibility.toLowerCase());
3003
+ var __async$6 = (__this, __arguments, generator) => {
3004
+ return new Promise((resolve, reject) => {
3005
+ var fulfilled = (value) => {
3006
+ try {
3007
+ step(generator.next(value));
3008
+ } catch (e) {
3009
+ reject(e);
3010
+ }
3011
+ };
3012
+ var rejected = (value) => {
3013
+ try {
3014
+ step(generator.throw(value));
3015
+ } catch (e) {
3016
+ reject(e);
3017
+ }
3018
+ };
3019
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
3020
+ step((generator = generator.apply(__this, __arguments)).next());
3021
+ });
3022
+ };
3023
+ function reflectApexSourceParallel(apexBundles) {
3024
+ return TE__namespace.tryCatch(
3025
+ () => __async$6(null, null, function* () {
3026
+ const workerPool = getWorkerPool();
3027
+ const tasks = apexBundles.map((bundle) => ({
3028
+ id: uuid.v4(),
3029
+ type: "apex",
3030
+ content: bundle.content,
3031
+ filePath: bundle.filePath
3032
+ }));
3033
+ const results = yield workerPool.executeAll(tasks);
3034
+ const parsedFiles = [];
3035
+ const errors = [];
3036
+ for (let i = 0; i < results.length; i++) {
3037
+ const result = results[i];
3038
+ const originalBundle = apexBundles[i];
3039
+ if (result.success && result.result) {
3040
+ const parsedFile = toParsedFile$1(originalBundle.filePath, result.result);
3041
+ const withMetadataResult = addMetadata(originalBundle.metadataContent, parsedFile);
3042
+ if (E__namespace.isRight(withMetadataResult)) {
3043
+ parsedFiles.push(withMetadataResult.right);
3044
+ } else {
3045
+ errors.push(new ReflectionError(originalBundle.filePath, withMetadataResult.left.message));
3046
+ }
3047
+ } else if (result.error) {
3048
+ errors.push(new ReflectionError(result.error.filePath, result.error.message));
3049
+ }
3050
+ }
3051
+ if (errors.length > 0) {
3052
+ throw new ReflectionErrors(errors);
3053
+ }
3054
+ return parsedFiles;
3055
+ }),
3056
+ (error) => {
3057
+ if (error instanceof ReflectionErrors) {
3058
+ return error;
3059
+ }
3060
+ return new ReflectionErrors([new ReflectionError("", error.message)]);
2407
3061
  }
2408
- const objectsToDocument = parsedFiles.filter(shouldBeDocumented);
2409
- const objectsToIgnore = parsedFiles.filter((parsedFile) => !shouldBeDocumented(parsedFile)).map((parsedFile) => parsedFile.type.name);
2410
- return [objectsToDocument, objectsToIgnore];
2411
- }
2412
- const customObjects = objectBundles.filter(
2413
- (object) => object.type === "customobject"
2414
- );
2415
- const customFields = objectBundles.filter(
2416
- (object) => object.type === "customfield"
2417
- );
2418
- const customMetadata = objectBundles.filter(
2419
- (object) => object.type === "custommetadata"
2420
3062
  );
2421
- function generateForFields(fields) {
2422
- return _function.pipe(fields, reflectCustomFieldSources);
2423
- }
2424
- function generateForMetadata(metadata) {
2425
- return _function.pipe(metadata, reflectCustomMetadataSources);
2426
- }
3063
+ }
3064
+ function toParsedFile$1(filePath, typeMirror) {
3065
+ return {
3066
+ source: {
3067
+ filePath,
3068
+ name: typeMirror.name,
3069
+ type: typeMirror.type_name
3070
+ },
3071
+ type: typeMirror
3072
+ };
3073
+ }
3074
+ function addMetadata(rawMetadataContent, parsedFile) {
2427
3075
  return _function.pipe(
2428
- customObjects,
2429
- reflectCustomObjectSources,
2430
- TE__namespace.map(filterNonPublished),
2431
- TE__namespace.map(filter),
2432
- TE__namespace.bindTo("filterResult"),
2433
- TE__namespace.bind("fields", () => generateForFields(customFields)),
2434
- TE__namespace.bind("metadata", () => generateForMetadata(customMetadata)),
2435
- TE__namespace.map(({ filterResult, fields, metadata }) => {
2436
- return [...mapFieldsAndMetadata(filterResult[0], fields, metadata), ...mapExtensionFields(filterResult, fields)];
2437
- })
3076
+ parsedFile.type,
3077
+ (type) => addFileMetadataToTypeAnnotation(type, rawMetadataContent),
3078
+ E__namespace.map((type) => __spreadProps$a(__spreadValues$a({}, parsedFile), { type }))
2438
3079
  );
2439
3080
  }
2440
- function mapFieldsAndMetadata(objects, fields, metadata) {
2441
- return objects.map((object) => {
2442
- const objectFields = fields.filter((field) => field.type.parentName === object.type.name);
2443
- const objectMetadata = metadata.filter((meta) => `${meta.type.parentName}__mdt` === object.type.name);
2444
- return __spreadProps$a(__spreadValues$a({}, object), {
2445
- type: __spreadProps$a(__spreadValues$a({}, object.type), {
2446
- fields: [...object.type.fields, ...objectFields.map((field) => field.type)],
2447
- metadataRecords: [...object.type.metadataRecords, ...objectMetadata.map((meta) => meta.type)]
2448
- })
2449
- });
2450
- });
2451
- }
2452
- function mapExtensionFields(filterResult, fields) {
2453
- const objects = filterResult[0];
2454
- const ignoredObjectNames = filterResult[1];
2455
- const extensionFields = fields.filter(
2456
- (field) => !objects.some((object) => object.type.name.toLowerCase() === field.type.parentName.toLowerCase()) && !ignoredObjectNames.map((name) => name.toLowerCase()).includes(field.type.parentName.toLowerCase())
3081
+ function addFileMetadataToTypeAnnotation(type, metadata) {
3082
+ const concatAnnotationToType = apply(concatAnnotations, type);
3083
+ return _function.pipe(
3084
+ O__namespace.fromNullable(metadata),
3085
+ O__namespace.map(concatAnnotationToType),
3086
+ O__namespace.getOrElse(() => E__namespace.right(type))
2457
3087
  );
2458
- const extensionFieldsByParent = extensionFields.reduce(
2459
- (acc, field) => {
2460
- if (!acc[field.type.parentName]) {
2461
- acc[field.type.parentName] = [];
2462
- }
2463
- acc[field.type.parentName].push(field.type);
2464
- return acc;
2465
- },
2466
- {}
3088
+ }
3089
+ function concatAnnotations(type, metadataInput) {
3090
+ return _function.pipe(
3091
+ metadataInput,
3092
+ parseApexMetadata,
3093
+ E__namespace.map((metadataMap) => __spreadProps$a(__spreadValues$a({}, type), {
3094
+ annotations: [...type.annotations, ...mapToAnnotations(metadataMap)]
3095
+ }))
2467
3096
  );
2468
- return Object.keys(extensionFieldsByParent).map((key) => {
2469
- const fields2 = extensionFieldsByParent[key];
3097
+ }
3098
+ function mapToAnnotations(metadata) {
3099
+ return Array.from(metadata.entries()).map(([key, value]) => {
3100
+ const declaration = `${key}: ${value}`;
2470
3101
  return {
2471
- source: {
2472
- name: key,
2473
- type: "customobject"
2474
- },
2475
- type: {
2476
- type_name: "customobject",
2477
- deploymentStatus: "Deployed",
2478
- visibility: "Public",
2479
- label: key,
2480
- name: key,
2481
- description: null,
2482
- fields: fields2,
2483
- metadataRecords: []
2484
- }
3102
+ name: declaration,
3103
+ type: declaration,
3104
+ rawDeclaration: declaration
2485
3105
  };
2486
3106
  });
2487
3107
  }
2488
3108
 
2489
- function filterApexSourceFiles(sourceFiles) {
2490
- return sourceFiles.filter((sourceFile) => sourceFile.type === "apex");
2491
- }
2492
- function filterCustomObjectsFieldsAndMetadataRecords(sourceFiles) {
2493
- return sourceFiles.filter(
2494
- (sourceFile) => sourceFile.type === "customobject" || sourceFile.type === "customfield" || sourceFile.type === "custommetadata"
2495
- );
2496
- }
2497
- function filterTriggerFiles(sourceFiles) {
2498
- return sourceFiles.filter((sourceFile) => sourceFile.type === "trigger");
2499
- }
2500
-
2501
3109
  var __defProp$9 = Object.defineProperty;
2502
3110
  var __defProps$9 = Object.defineProperties;
2503
3111
  var __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;
@@ -2517,7 +3125,7 @@ var __spreadValues$9 = (a, b) => {
2517
3125
  return a;
2518
3126
  };
2519
3127
  var __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));
2520
- var __async$4 = (__this, __arguments, generator) => {
3128
+ var __async$5 = (__this, __arguments, generator) => {
2521
3129
  return new Promise((resolve, reject) => {
2522
3130
  var fulfilled = (value) => {
2523
3131
  try {
@@ -2537,19 +3145,41 @@ var __async$4 = (__this, __arguments, generator) => {
2537
3145
  step((generator = generator.apply(__this, __arguments)).next());
2538
3146
  });
2539
3147
  };
2540
- function reflectTriggerSource(triggerBundles) {
2541
- const semiGroupReflectionError = {
2542
- concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors])
2543
- };
2544
- const Ap = TE__namespace.getApplicativeTaskValidation(T__namespace.ApplyPar, semiGroupReflectionError);
2545
- return _function.pipe(triggerBundles, A__namespace.traverse(Ap)(reflectBundle));
2546
- }
2547
- function reflectBundle(triggerBundle) {
2548
- const convertToParsedFile = apply(
2549
- toParsedFile,
2550
- triggerBundle.filePath
3148
+ function reflectTriggerSourceParallel(triggerBundles) {
3149
+ return TE__namespace.tryCatch(
3150
+ () => __async$5(null, null, function* () {
3151
+ const workerPool = getWorkerPool();
3152
+ const tasks = triggerBundles.map((bundle) => ({
3153
+ id: uuid.v4(),
3154
+ type: "trigger",
3155
+ content: bundle.content,
3156
+ filePath: bundle.filePath
3157
+ }));
3158
+ const results = yield workerPool.executeAll(tasks);
3159
+ const parsedFiles = [];
3160
+ const errors = [];
3161
+ for (let i = 0; i < results.length; i++) {
3162
+ const result = results[i];
3163
+ const originalBundle = triggerBundles[i];
3164
+ if (result.success && result.result) {
3165
+ const parsedFile = toParsedFile(originalBundle.filePath, result.result);
3166
+ parsedFiles.push(parsedFile);
3167
+ } else if (result.error) {
3168
+ errors.push(new ReflectionError(result.error.filePath, result.error.message));
3169
+ }
3170
+ }
3171
+ if (errors.length > 0) {
3172
+ throw new ReflectionErrors(errors);
3173
+ }
3174
+ return parsedFiles;
3175
+ }),
3176
+ (error) => {
3177
+ if (error instanceof ReflectionErrors) {
3178
+ return error;
3179
+ }
3180
+ return new ReflectionErrors([new ReflectionError("", error.message)]);
3181
+ }
2551
3182
  );
2552
- return _function.pipe(triggerBundle, reflectAsTask, TE__namespace.map(convertToParsedFile));
2553
3183
  }
2554
3184
  function toParsedFile(filePath, triggerMirror) {
2555
3185
  return {
@@ -2563,19 +3193,45 @@ function toParsedFile(filePath, triggerMirror) {
2563
3193
  })
2564
3194
  };
2565
3195
  }
2566
- function reflectAsTask(triggerContent) {
2567
- return TE__namespace.tryCatch(
2568
- () => reflectAsync(triggerContent.content),
2569
- (error) => new ReflectionErrors([new ReflectionError(triggerContent.filePath, error.message)])
2570
- );
3196
+
3197
+ var __async$4 = (__this, __arguments, generator) => {
3198
+ return new Promise((resolve, reject) => {
3199
+ var fulfilled = (value) => {
3200
+ try {
3201
+ step(generator.next(value));
3202
+ } catch (e) {
3203
+ reject(e);
3204
+ }
3205
+ };
3206
+ var rejected = (value) => {
3207
+ try {
3208
+ step(generator.throw(value));
3209
+ } catch (e) {
3210
+ reject(e);
3211
+ }
3212
+ };
3213
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
3214
+ step((generator = generator.apply(__this, __arguments)).next());
3215
+ });
3216
+ };
3217
+ function reflectApexSourceAdaptive(apexBundles) {
3218
+ const config = getReflectionConfig();
3219
+ if (config.parallel && apexBundles.length > 1 && process.env.NODE_ENV !== "test") {
3220
+ return reflectApexSourceParallel(apexBundles);
3221
+ }
3222
+ return reflectApexSource(apexBundles);
2571
3223
  }
2572
- function reflectAsync(triggerContent) {
3224
+ function reflectTriggerSourceAdaptive(triggerBundles) {
3225
+ const config = getReflectionConfig();
3226
+ if (config.parallel && triggerBundles.length > 1 && process.env.NODE_ENV !== "test") {
3227
+ return reflectTriggerSourceParallel(triggerBundles);
3228
+ }
3229
+ return reflectTriggerSource(triggerBundles);
3230
+ }
3231
+ function cleanupReflectionWorkers() {
2573
3232
  return __async$4(this, null, function* () {
2574
- const reflectionResult = yield apexReflection.reflectTriggerAsync(triggerContent);
2575
- if (reflectionResult.error) {
2576
- throw reflectionResult.error;
2577
- }
2578
- return reflectionResult.triggerMirror;
3233
+ const { terminateWorkerPool } = yield Promise.resolve().then(function () { return workerPool$1; });
3234
+ return terminateWorkerPool();
2579
3235
  });
2580
3236
  }
2581
3237
 
@@ -2619,12 +3275,21 @@ var __async$3 = (__this, __arguments, generator) => {
2619
3275
  });
2620
3276
  };
2621
3277
  function generateDocs(unparsedBundles, config) {
3278
+ var _a;
3279
+ if (config.parallelProcessing !== void 0 || config.workerThreads !== void 0) {
3280
+ setReflectionConfig({
3281
+ parallel: (_a = config.parallelProcessing) != null ? _a : true,
3282
+ workerThreads: config.workerThreads
3283
+ });
3284
+ }
3285
+ const translations = mergeTranslations({ markdown: config.translations });
2622
3286
  const convertToReferences = apply(parsedFilesToReferenceGuide, config);
2623
3287
  const convertToRenderableBundle = apply(parsedFilesToRenderableBundle, config);
2624
3288
  const convertToDocumentationBundleForTemplate = apply(
2625
3289
  convertToDocumentationBundle,
2626
3290
  config.referenceGuideTitle,
2627
- config.referenceGuideTemplate
3291
+ config.referenceGuideTemplate,
3292
+ translations
2628
3293
  );
2629
3294
  const sort = apply(sortTypesAndMembers, config.sortAlphabetically);
2630
3295
  function filterOutCustomFieldsAndMetadata(parsedFiles) {
@@ -2646,7 +3311,7 @@ function generateDocs(unparsedBundles, config) {
2646
3311
  }),
2647
3312
  TE__namespace.chain((parsedFiles) => {
2648
3313
  return _function.pipe(
2649
- reflectTriggerSource(filterTriggerFiles(unparsedBundles)),
3314
+ reflectTriggerSourceAdaptive(filterTriggerFiles(unparsedBundles)),
2650
3315
  TE__namespace.map((parsedTriggerFiles) => [...parsedFiles, ...parsedTriggerFiles])
2651
3316
  );
2652
3317
  }),
@@ -2661,7 +3326,7 @@ function generateDocs(unparsedBundles, config) {
2661
3326
  ),
2662
3327
  TE__namespace.flatMap(({ parsedFiles, references }) => transformReferenceHook(config)({ references, parsedFiles })),
2663
3328
  TE__namespace.map(
2664
- ({ parsedFiles, references }) => convertToRenderableBundle(filterOutCustomFieldsAndMetadata(parsedFiles), references)
3329
+ ({ parsedFiles, references }) => convertToRenderableBundle(filterOutCustomFieldsAndMetadata(parsedFiles), references, translations)
2665
3330
  ),
2666
3331
  TE__namespace.map(convertToDocumentationBundleForTemplate),
2667
3332
  TE__namespace.flatMap(transformDocumentationBundleHook(config)),
@@ -2692,7 +3357,7 @@ function generateForApex(apexBundles, config) {
2692
3357
  const removeExcluded = apply(removeExcludedTags, config.excludeTags);
2693
3358
  return _function.pipe(
2694
3359
  apexBundles,
2695
- reflectApexSource,
3360
+ reflectApexSourceAdaptive,
2696
3361
  TE__namespace.map(filterOutOfScope),
2697
3362
  TE__namespace.map(addInheritedMembersToTypes),
2698
3363
  TE__namespace.map(addInheritanceChainToTypes),
@@ -4117,7 +4782,7 @@ function getRemovedValues(oldPlaceToSearch, newPlaceToSearch, keyToSearch, typeN
4117
4782
  return oldPlaceToSearch[keyToSearch].filter((oldValue) => !newPlaceToSearch[keyToSearch].some((newValue) => areEqualFn(oldValue, newValue))).map((value) => value.name).map((name) => ({ __typename: typeName, name }));
4118
4783
  }
4119
4784
 
4120
- function convertToRenderableChangelog(changelog, newManifest) {
4785
+ function convertToRenderableChangelog(changelog, newManifest, translations) {
4121
4786
  const allNewTypes = [...changelog.newApexTypes, ...changelog.newCustomObjects].map(
4122
4787
  (newType) => newManifest.find((type) => type.name.toLowerCase() === newType.toLowerCase())
4123
4788
  );
@@ -4138,63 +4803,71 @@ function convertToRenderableChangelog(changelog, newManifest) {
4138
4803
  return {
4139
4804
  newClasses: newClasses.length > 0 ? {
4140
4805
  __type: "class",
4141
- heading: "New Classes",
4142
- description: "These classes are new.",
4806
+ heading: translations.changelog.newClasses.heading,
4807
+ description: translations.changelog.newClasses.description,
4143
4808
  types: newClasses.map(typeToRenderable)
4144
4809
  } : null,
4145
4810
  newInterfaces: newInterfaces.length > 0 ? {
4146
4811
  __type: "interface",
4147
- heading: "New Interfaces",
4148
- description: "These interfaces are new.",
4812
+ heading: translations.changelog.newInterfaces.heading,
4813
+ description: translations.changelog.newInterfaces.description,
4149
4814
  types: newInterfaces.map(typeToRenderable)
4150
4815
  } : null,
4151
4816
  newEnums: newEnums.length > 0 ? {
4152
4817
  __type: "enum",
4153
- heading: "New Enums",
4154
- description: "These enums are new.",
4818
+ heading: translations.changelog.newEnums.heading,
4819
+ description: translations.changelog.newEnums.description,
4155
4820
  types: newEnums.map(typeToRenderable)
4156
4821
  } : null,
4157
- removedTypes: changelog.removedApexTypes.length > 0 ? { heading: "Removed Types", description: "These types have been removed.", types: changelog.removedApexTypes } : null,
4822
+ removedTypes: changelog.removedApexTypes.length > 0 ? {
4823
+ heading: translations.changelog.removedTypes.heading,
4824
+ description: translations.changelog.removedTypes.description,
4825
+ types: changelog.removedApexTypes
4826
+ } : null,
4158
4827
  newOrModifiedMembers: changelog.newOrModifiedApexMembers.length > 0 ? {
4159
- heading: "New or Modified Members in Existing Types",
4160
- description: "These members have been added or modified.",
4161
- modifications: changelog.newOrModifiedApexMembers.map(toRenderableModification)
4828
+ heading: translations.changelog.newOrModifiedMembers.heading,
4829
+ description: translations.changelog.newOrModifiedMembers.description,
4830
+ modifications: changelog.newOrModifiedApexMembers.map(
4831
+ (member) => toRenderableModification(member, translations)
4832
+ )
4162
4833
  } : null,
4163
4834
  newCustomObjects: newCustomObjects.length > 0 ? {
4164
4835
  __type: "customobject",
4165
- heading: "New Custom Objects",
4166
- description: "These custom objects are new.",
4836
+ heading: translations.changelog.newCustomObjects.heading,
4837
+ description: translations.changelog.newCustomObjects.description,
4167
4838
  types: newCustomObjects.map((type) => ({
4168
4839
  name: type.name,
4169
4840
  description: type.description ? [type.description] : void 0
4170
4841
  }))
4171
4842
  } : null,
4172
4843
  removedCustomObjects: changelog.removedCustomObjects.length > 0 ? {
4173
- heading: "Removed Custom Objects",
4174
- description: "These custom objects have been removed.",
4844
+ heading: translations.changelog.removedCustomObjects.heading,
4845
+ description: translations.changelog.removedCustomObjects.description,
4175
4846
  types: changelog.removedCustomObjects
4176
4847
  } : null,
4177
4848
  newOrRemovedCustomFields: newOrModifiedCustomFields.length > 0 ? {
4178
- heading: "New or Removed Fields to Custom Objects or Standard Objects",
4179
- description: "These custom fields have been added or removed.",
4180
- modifications: newOrModifiedCustomFields.map(toRenderableModification)
4849
+ heading: translations.changelog.newOrRemovedCustomFields.heading,
4850
+ description: translations.changelog.newOrRemovedCustomFields.description,
4851
+ modifications: newOrModifiedCustomFields.map((member) => toRenderableModification(member, translations))
4181
4852
  } : null,
4182
4853
  newOrRemovedCustomMetadataTypeRecords: newOrModifiedCustomMetadataTypeRecords.length > 0 ? {
4183
- heading: "New or Removed Custom Metadata Type Records",
4184
- description: "These custom metadata type records have been added or removed.",
4185
- modifications: newOrModifiedCustomMetadataTypeRecords.map(toRenderableModification)
4854
+ heading: translations.changelog.newOrRemovedCustomMetadataTypeRecords.heading,
4855
+ description: translations.changelog.newOrRemovedCustomMetadataTypeRecords.description,
4856
+ modifications: newOrModifiedCustomMetadataTypeRecords.map(
4857
+ (member) => toRenderableModification(member, translations)
4858
+ )
4186
4859
  } : null,
4187
4860
  newTriggers: changelog.newTriggers.length > 0 ? {
4188
- heading: "New Triggers",
4189
- description: "These triggers are new.",
4861
+ heading: translations.changelog.newTriggers.heading,
4862
+ description: translations.changelog.newTriggers.description,
4190
4863
  triggerData: changelog.newTriggers.map((trigger) => ({
4191
4864
  triggerName: trigger.triggerName,
4192
4865
  objectName: trigger.objectName
4193
4866
  }))
4194
4867
  } : null,
4195
4868
  removedTriggers: changelog.removedTriggers.length > 0 ? {
4196
- heading: "Removed Triggers",
4197
- description: "These triggers have been removed.",
4869
+ heading: translations.changelog.removedTriggers.heading,
4870
+ description: translations.changelog.removedTriggers.description,
4198
4871
  triggerData: changelog.removedTriggers.map((trigger) => ({
4199
4872
  triggerName: trigger.triggerName,
4200
4873
  objectName: trigger.objectName
@@ -4213,13 +4886,15 @@ function typeToRenderable(type) {
4213
4886
  description: adapt()
4214
4887
  };
4215
4888
  }
4216
- function toRenderableModification(newOrModifiedMember) {
4889
+ function toRenderableModification(newOrModifiedMember, translations) {
4217
4890
  return {
4218
4891
  typeName: newOrModifiedMember.typeName,
4219
- modifications: newOrModifiedMember.modifications.map(toRenderableModificationDescription)
4892
+ modifications: newOrModifiedMember.modifications.map(
4893
+ (mod) => toRenderableModificationDescription(mod, translations)
4894
+ )
4220
4895
  };
4221
4896
  }
4222
- function toRenderableModificationDescription(memberModificationType) {
4897
+ function toRenderableModificationDescription(memberModificationType, translations) {
4223
4898
  function withDescription(memberModificationType2) {
4224
4899
  if (memberModificationType2.description) {
4225
4900
  return `${memberModificationType2.name}. ${memberModificationType2.description}`;
@@ -4228,38 +4903,38 @@ function toRenderableModificationDescription(memberModificationType) {
4228
4903
  }
4229
4904
  switch (memberModificationType.__typename) {
4230
4905
  case "NewEnumValue":
4231
- return `New Enum Value: ${withDescription(memberModificationType)}`;
4906
+ return `${translations.changelog.memberModifications.newEnumValue}: ${withDescription(memberModificationType)}`;
4232
4907
  case "RemovedEnumValue":
4233
- return `Removed Enum Value: ${memberModificationType.name}`;
4908
+ return `${translations.changelog.memberModifications.removedEnumValue}: ${memberModificationType.name}`;
4234
4909
  case "NewMethod":
4235
- return `New Method: ${withDescription(memberModificationType)}`;
4910
+ return `${translations.changelog.memberModifications.newMethod}: ${withDescription(memberModificationType)}`;
4236
4911
  case "RemovedMethod":
4237
- return `Removed Method: ${memberModificationType.name}`;
4912
+ return `${translations.changelog.memberModifications.removedMethod}: ${memberModificationType.name}`;
4238
4913
  case "NewProperty":
4239
- return `New Property: ${withDescription(memberModificationType)}`;
4914
+ return `${translations.changelog.memberModifications.newProperty}: ${withDescription(memberModificationType)}`;
4240
4915
  case "RemovedProperty":
4241
- return `Removed Property: ${memberModificationType.name}`;
4916
+ return `${translations.changelog.memberModifications.removedProperty}: ${memberModificationType.name}`;
4242
4917
  case "NewField":
4243
- return `New Field: ${withDescription(memberModificationType)}`;
4918
+ return `${translations.changelog.memberModifications.newField}: ${withDescription(memberModificationType)}`;
4244
4919
  case "RemovedField":
4245
- return `Removed Field: ${memberModificationType.name}`;
4920
+ return `${translations.changelog.memberModifications.removedField}: ${memberModificationType.name}`;
4246
4921
  case "NewType":
4247
- return `New Type: ${withDescription(memberModificationType)}`;
4922
+ return `${translations.changelog.memberModifications.newType}: ${withDescription(memberModificationType)}`;
4248
4923
  case "RemovedType":
4249
- return `Removed Type: ${memberModificationType.name}`;
4924
+ return `${translations.changelog.memberModifications.removedType}: ${memberModificationType.name}`;
4250
4925
  case "NewCustomMetadataRecord":
4251
- return `New Custom Metadata Record: ${withDescription(memberModificationType)}`;
4926
+ return `${translations.changelog.memberModifications.newCustomMetadataRecord}: ${withDescription(memberModificationType)}`;
4252
4927
  case "RemovedCustomMetadataRecord":
4253
- return `Removed Custom Metadata Record: ${memberModificationType.name}`;
4928
+ return `${translations.changelog.memberModifications.removedCustomMetadataRecord}: ${memberModificationType.name}`;
4254
4929
  case "NewTrigger":
4255
- return `New Trigger: ${withDescription(memberModificationType)}`;
4930
+ return `${translations.changelog.memberModifications.newTrigger}: ${withDescription(memberModificationType)}`;
4256
4931
  case "RemovedTrigger":
4257
- return `Removed Trigger: ${memberModificationType.name}`;
4932
+ return `${translations.changelog.memberModifications.removedTrigger}: ${memberModificationType.name}`;
4258
4933
  }
4259
4934
  }
4260
4935
 
4261
4936
  const changelogTemplate = `
4262
- # Changelog
4937
+ # {{#if title}}{{title}}{{else}}Changelog{{/if}}
4263
4938
 
4264
4939
  {{#if newClasses}}
4265
4940
  ## {{newClasses.heading}}
@@ -4505,14 +5180,22 @@ var __async$1 = (__this, __arguments, generator) => {
4505
5180
  });
4506
5181
  };
4507
5182
  function generateChangeLog(oldBundles, newBundles, config) {
5183
+ var _a;
5184
+ if (config.parallelProcessing !== void 0 || config.workerThreads !== void 0) {
5185
+ setReflectionConfig({
5186
+ parallel: (_a = config.parallelProcessing) != null ? _a : true,
5187
+ workerThreads: config.workerThreads
5188
+ });
5189
+ }
4508
5190
  const convertToPageData = apply(toPageData, config.fileName);
4509
5191
  function handleConversion({ changelog, newManifest }) {
4510
5192
  if (config.skipIfNoChanges && !hasChanges(changelog)) {
4511
5193
  return skip();
4512
5194
  }
5195
+ const translations = mergeTranslations({ changelog: config.translations });
4513
5196
  return _function.pipe(
4514
- convertToRenderableChangelog(changelog, newManifest.types),
4515
- compile,
5197
+ convertToRenderableChangelog(changelog, newManifest.types, translations),
5198
+ compile(translations),
4516
5199
  (content) => convertToPageData(content, changelog)
4517
5200
  );
4518
5201
  }
@@ -4533,7 +5216,7 @@ function generateChangeLog(oldBundles, newBundles, config) {
4533
5216
  function reflect(bundles, config) {
4534
5217
  const filterOutOfScopeApex = apply(filterScope, config.scope);
4535
5218
  function reflectApexFiles(sourceFiles) {
4536
- return _function.pipe(reflectApexSource(sourceFiles), TE__namespace.map(filterOutOfScopeApex));
5219
+ return _function.pipe(reflectApexSourceAdaptive(sourceFiles), TE__namespace.map(filterOutOfScopeApex));
4537
5220
  }
4538
5221
  return _function.pipe(
4539
5222
  reflectApexFiles(filterApexSourceFiles(bundles)),
@@ -4548,7 +5231,7 @@ function reflect(bundles, config) {
4548
5231
  }),
4549
5232
  TE__namespace.chain((parsedFiles) => {
4550
5233
  return _function.pipe(
4551
- reflectTriggerSource(filterTriggerFiles(bundles)),
5234
+ reflectTriggerSourceAdaptive(filterTriggerFiles(bundles)),
4552
5235
  TE__namespace.map((parsedTriggerFiles) => [...parsedFiles, ...parsedTriggerFiles])
4553
5236
  );
4554
5237
  })
@@ -4570,12 +5253,16 @@ function toManifests({ oldVersion, newVersion }) {
4570
5253
  newManifest: parsedFilesToManifest(newVersion)
4571
5254
  };
4572
5255
  }
4573
- function compile(renderable) {
4574
- const compilationRequest = {
4575
- template: changelogTemplate,
4576
- source: renderable
5256
+ function compile(translations) {
5257
+ return (renderable) => {
5258
+ const compilationRequest = {
5259
+ template: changelogTemplate,
5260
+ source: __spreadProps$1(__spreadValues$1({}, renderable), {
5261
+ title: translations.changelog.title
5262
+ })
5263
+ };
5264
+ return Template.getInstance().compile(compilationRequest);
4577
5265
  };
4578
- return Template.getInstance().compile(compilationRequest);
4579
5266
  }
4580
5267
  function toPageData(fileName, content, changelog) {
4581
5268
  return {
@@ -4984,16 +5671,23 @@ class Apexdocs {
4984
5671
  return __async(this, null, function* () {
4985
5672
  logger.logSingle(`Generating ${config.targetGenerator} documentation...`);
4986
5673
  try {
5674
+ let result;
4987
5675
  switch (config.targetGenerator) {
4988
5676
  case "markdown":
4989
- return (yield processMarkdown(config))();
5677
+ result = yield (yield processMarkdown(config))();
5678
+ break;
4990
5679
  case "openapi":
4991
5680
  yield processOpenApi(config, logger);
4992
- return E__namespace.right("\u2714\uFE0F Documentation generated successfully!");
5681
+ result = E__namespace.right("\u2714\uFE0F Documentation generated successfully!");
5682
+ break;
4993
5683
  case "changelog":
4994
- return (yield processChangeLog(config))();
5684
+ result = yield (yield processChangeLog(config))();
5685
+ break;
4995
5686
  }
5687
+ yield cleanupReflectionWorkers();
5688
+ return result;
4996
5689
  } catch (error) {
5690
+ yield cleanupReflectionWorkers();
4997
5691
  return E__namespace.left([error]);
4998
5692
  }
4999
5693
  });