From 4cdea0edc5622184d76887763c4671d3f3706505 Mon Sep 17 00:00:00 2001 From: cesarParra Date: Thu, 10 Oct 2024 07:20:01 -0400 Subject: [PATCH 1/7] Cleaning up `dist` after every build --- package.json | 2 +- src/core/changelog/generate-change-log.ts | 2 +- src/core/shared/utils.ts | 9 +++++++++ src/index.ts | 10 +--------- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index d247aaac..64870dd9 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "scripts": { "test": "npm run build && jest", "test:cov": "npm run build && jest --coverage", - "build": "rimraf ./lib && npm run lint && tsc --noEmit && pkgroll", + "build": "rimraf ./dist && npm run lint && tsc --noEmit && pkgroll", "lint": "eslint \"./src/**/*.{js,ts}\" --quiet --fix", "prepare": "npm run build", "version": "npm run format && git add -A src", diff --git a/src/core/changelog/generate-change-log.ts b/src/core/changelog/generate-change-log.ts index fbce605a..371073ca 100644 --- a/src/core/changelog/generate-change-log.ts +++ b/src/core/changelog/generate-change-log.ts @@ -9,7 +9,7 @@ import { changelogTemplate } from './templates/changelog-template'; import { ReflectionErrors } from '../errors/errors'; import { apply } from '#utils/fp'; import { filterScope } from '../reflection/filter-scope'; -import { skip } from '../../index'; +import { skip } from '../shared/utils'; export type ChangeLogPageData = { content: string; diff --git a/src/core/shared/utils.ts b/src/core/shared/utils.ts index 73ec83a8..233b0899 100644 --- a/src/core/shared/utils.ts +++ b/src/core/shared/utils.ts @@ -1,5 +1,14 @@ import { Skip } from './types'; +/** + * Represents a file to be skipped. + */ +export function skip(): Skip { + return { + _tag: 'Skip', + }; +} + export function isSkip(value: unknown): value is Skip { return Object.prototype.hasOwnProperty.call(value, '_tag') && (value as Skip)._tag === 'Skip'; } diff --git a/src/index.ts b/src/index.ts index 37b5ae82..dc7c2aa1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -14,6 +14,7 @@ import type { UserDefinedOpenApiConfig, UserDefinedChangelogConfig, } from './core/shared/types'; +import { skip } from './core/shared/utils'; import { changeLogDefaults, markdownDefaults, openApiDefaults } from './defaults'; import { process } from './node/process'; @@ -59,15 +60,6 @@ function defineChangelogConfig(config: ConfigurableChangelogConfig): Partial Date: Thu, 10 Oct 2024 07:20:28 -0400 Subject: [PATCH 2/7] Cleaning up `dist` after every build --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 64870dd9..2b7631ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cparra/apexdocs", - "version": "3.3.0", + "version": "3.3.1", "description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.", "keywords": [ "apex", From 4f03bff67cf12c4b9d73960fd953dcacb5ee9cec Mon Sep 17 00:00:00 2001 From: Cesar Parra Date: Sun, 20 Oct 2024 07:44:15 -0400 Subject: [PATCH 3/7] SObject support (Markdown subcommand) (#198) --- examples/vitepress/apexdocs.config.ts | 38 +- .../vitepress/docs/.vitepress/sidebar.json | 162 +- .../vitepress/docs/custom-objects/Event__c.md | 65 + .../docs/custom-objects/Price_Component__c.md | 69 + .../Product_Price_Component__c.md | 30 + .../docs/custom-objects/Product__c.md | 43 + .../custom-objects/Sales_Order_Line__c.md | 65 + .../docs/custom-objects/Sales_Order__c.md | 10 + .../docs/custom-objects/Speaker__c.md | 43 + examples/vitepress/docs/index.md | 28 +- .../default/classes/BaseClass.cls-meta.xml | 5 + .../MultiInheritanceClass.cls-meta.xml | 5 + .../classes/ParentInterface.cls-meta.xml | 5 + .../classes/ReferencedEnum.cls-meta.xml | 5 + .../main/default/classes/Url.cls-meta.xml | 5 + .../feature-a/SampleClass.cls-meta.xml | 5 + .../classes/feature-a/SampleEnum.cls-meta.xml | 5 + .../feature-a/SampleException.cls-meta.xml | 5 + .../feature-a/SampleInterface.cls-meta.xml | 5 + .../Contact/fields/PhotoUrl__c.field-meta.xml | 9 + .../objects/Event__c/Event__c.object-meta.xml | 167 ++ .../fields/Description__c.field-meta.xml | 10 + .../fields/End_Date__c.field-meta.xml | 9 + .../fields/Location__c.field-meta.xml | 11 + .../fields/Start_Date__c.field-meta.xml | 9 + .../fields/Tag_Line__c.field-meta.xml | 11 + .../Price_Component__c.object-meta.xml | 169 ++ .../fields/Description__c.field-meta.xml | 11 + .../fields/Expression__c.field-meta.xml | 12 + .../fields/Percent__c.field-meta.xml | 13 + .../fields/Price__c.field-meta.xml | 13 + .../fields/Type__c.field-meta.xml | 30 + ...Product_Price_Component__c.object-meta.xml | 166 ++ .../fields/Price_Component__c.field-meta.xml | 14 + .../fields/Product__c.field-meta.xml | 14 + .../Product__c/Product__c.object-meta.xml | 169 ++ .../fields/Description__c.field-meta.xml | 11 + .../Product__c/fields/Event__c.field-meta.xml | 12 + .../fields/Features__c.field-meta.xml | 10 + .../Sales_Order_Line__c.object-meta.xml | 167 ++ .../fields/Amount__c.field-meta.xml | 11 + .../fields/Product__c.field-meta.xml | 13 + .../fields/Sales_Order__c.field-meta.xml | 14 + .../Source_Price_Component__c.field-meta.xml | 13 + .../fields/Type__c.field-meta.xml | 26 + .../Sales_Order__c.object-meta.xml | 170 ++ .../Speaker__c/Speaker__c.object-meta.xml | 167 ++ .../Speaker__c/fields/About__c.field-meta.xml | 10 + .../Speaker__c/fields/Event__c.field-meta.xml | 14 + .../fields/Person__c.field-meta.xml | 14 + package-lock.json | 2085 ++++++++++++++++- package.json | 1 + src/application/Apexdocs.ts | 27 +- .../__tests__/apex-file-reader.spec.ts | 211 -- .../__tests__/source-code-file-reader.spec.ts | 130 + src/application/apex-file-reader.ts | 63 - src/application/file-system.ts | 87 +- src/application/generators/changelog.ts | 6 +- src/application/generators/markdown.ts | 6 +- src/application/generators/openapi.ts | 8 +- src/application/source-code-file-reader.ts | 168 ++ src/cli/args.ts | 3 - src/cli/commands/markdown.ts | 5 + .../__test__/generating-change-log.spec.ts | 102 +- src/core/changelog/generate-change-log.ts | 21 +- .../__test__/generating-any-apex-doc.spec.ts | 269 +++ .../__test__/generating-class-docs.spec.ts | 49 +- .../generating-custom-object-docs.spec.ts | 129 + .../markdown/__test__/generating-docs.spec.ts | 359 +-- .../__test__/generating-enum-docs.spec.ts | 8 +- .../generating-interface-docs.spec.ts | 25 +- .../generating-reference-guide.spec.ts | 105 +- .../__test__/inheritance-chain.test.ts | 2 +- src/core/markdown/__test__/test-helpers.ts | 66 +- .../__tests__/interface-adapter.spec.ts | 3 +- .../adapters/fields-and-properties.ts | 4 +- src/core/markdown/adapters/reference-guide.ts | 20 +- .../markdown/adapters/renderable-bundle.ts | 43 +- .../adapters/renderable-to-page-data.ts | 4 + .../{apex-types.ts => type-to-renderable.ts} | 75 +- src/core/markdown/generate-docs.ts | 125 +- .../templates/custom-object-template.ts | 30 + src/core/markdown/utils.ts | 4 +- .../__tests__/open-api-docs-processor.spec.ts | 2 +- src/core/openapi/manifest-factory.ts | 4 +- src/core/openapi/open-api-docs-processor.ts | 2 +- src/core/{ => openapi}/openApiSettings.ts | 0 src/core/openapi/parser.ts | 8 +- .../{ => apex}/__test__/filter-scope.spec.ts | 3 +- .../reflection/{ => apex}/__test__/helpers.ts | 6 +- .../__test__/remove-excluded-tags.spec.ts | 2 +- .../reflection/{ => apex}/filter-scope.ts | 7 +- .../{ => apex}/inheritance-chain-expanion.ts | 6 +- .../{ => apex}/inheritance-chain.ts | 0 .../{ => apex}/inherited-member-expansion.ts | 8 +- .../apex}/parse-apex-metadata.ts | 0 .../reflect-apex-source.ts} | 22 +- .../{ => apex}/remove-excluded-tags.ts | 4 +- .../reflect-custom-field-sources.spec.ts | 202 ++ .../reflect-custom-object-sources.spec.ts | 181 ++ .../sobject/reflect-custom-field-source.ts | 104 + .../sobject/reflect-custom-object-sources.ts | 109 + src/core/reflection/sort-types-and-members.ts | 23 +- src/core/renderables/types.d.ts | 28 +- src/core/shared/types.d.ts | 38 +- src/core/shared/utils.ts | 28 + src/defaults.ts | 3 +- src/test-helpers/SettingsBuilder.ts | 2 +- 108 files changed, 6101 insertions(+), 1021 deletions(-) create mode 100644 examples/vitepress/docs/custom-objects/Event__c.md create mode 100644 examples/vitepress/docs/custom-objects/Price_Component__c.md create mode 100644 examples/vitepress/docs/custom-objects/Product_Price_Component__c.md create mode 100644 examples/vitepress/docs/custom-objects/Product__c.md create mode 100644 examples/vitepress/docs/custom-objects/Sales_Order_Line__c.md create mode 100644 examples/vitepress/docs/custom-objects/Sales_Order__c.md create mode 100644 examples/vitepress/docs/custom-objects/Speaker__c.md create mode 100644 examples/vitepress/force-app/main/default/classes/BaseClass.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/ParentInterface.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/Url.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/classes/feature-a/SampleInterface.cls-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Contact/fields/PhotoUrl__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Event__c/Event__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Event__c/fields/Description__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Event__c/fields/End_Date__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Event__c/fields/Location__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Event__c/fields/Start_Date__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Event__c/fields/Tag_Line__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Price_Component__c/Price_Component__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Description__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Expression__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Percent__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Price__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Type__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/Product_Price_Component__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Price_Component__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Product__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product__c/Product__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product__c/fields/Description__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product__c/fields/Event__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Product__c/fields/Features__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/Sales_Order_Line__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Amount__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Product__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Sales_Order__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Source_Price_Component__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Type__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Sales_Order__c/Sales_Order__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Speaker__c/Speaker__c.object-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Speaker__c/fields/About__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Event__c.field-meta.xml create mode 100644 examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Person__c.field-meta.xml delete mode 100644 src/application/__tests__/apex-file-reader.spec.ts create mode 100644 src/application/__tests__/source-code-file-reader.spec.ts delete mode 100644 src/application/apex-file-reader.ts create mode 100644 src/application/source-code-file-reader.ts create mode 100644 src/core/markdown/__test__/generating-any-apex-doc.spec.ts create mode 100644 src/core/markdown/__test__/generating-custom-object-docs.spec.ts rename src/core/markdown/adapters/{apex-types.ts => type-to-renderable.ts} (77%) create mode 100644 src/core/markdown/templates/custom-object-template.ts rename src/core/{ => openapi}/openApiSettings.ts (100%) rename src/core/reflection/{ => apex}/__test__/filter-scope.spec.ts (99%) rename src/core/reflection/{ => apex}/__test__/helpers.ts (73%) rename src/core/reflection/{ => apex}/__test__/remove-excluded-tags.spec.ts (100%) rename src/core/reflection/{ => apex}/filter-scope.ts (64%) rename src/core/reflection/{ => apex}/inheritance-chain-expanion.ts (82%) rename src/core/reflection/{ => apex}/inheritance-chain.ts (100%) rename src/core/reflection/{ => apex}/inherited-member-expansion.ts (95%) rename src/core/{ => reflection/apex}/parse-apex-metadata.ts (100%) rename src/core/reflection/{reflect-source.ts => apex/reflect-apex-source.ts} (80%) rename src/core/reflection/{ => apex}/remove-excluded-tags.ts (98%) create mode 100644 src/core/reflection/sobject/__test__/reflect-custom-field-sources.spec.ts create mode 100644 src/core/reflection/sobject/__test__/reflect-custom-object-sources.spec.ts create mode 100644 src/core/reflection/sobject/reflect-custom-field-source.ts create mode 100644 src/core/reflection/sobject/reflect-custom-object-sources.ts diff --git a/examples/vitepress/apexdocs.config.ts b/examples/vitepress/apexdocs.config.ts index 4a76b64f..15db7a60 100644 --- a/examples/vitepress/apexdocs.config.ts +++ b/examples/vitepress/apexdocs.config.ts @@ -33,6 +33,7 @@ export default { }), markdown: defineMarkdownConfig({ sourceDir: 'force-app', + includeMetadata: false, scope: ['global', 'public', 'protected', 'private', 'namespaceaccessible'], sortAlphabetically: true, namespace: 'apexdocs', @@ -50,36 +51,21 @@ export default { }, excludeTags: ['internal'], transformDocs: async (docs) => { + const apexOnlyDocs = docs.filter((doc) => doc.type !== 'customobject'); + const objectOnlyDocs = docs.filter((doc) => doc.type === 'customobject'); + // Update sidebar const sidebar = [ { text: 'API Reference', - items: [ - { - text: 'Grouped By Type', - items: [ - { - text: 'Classes', - items: docs.filter((doc) => doc.source.type === 'class').map(toSidebarLink), - }, - { - text: 'Interfaces', - items: docs.filter((doc) => doc.source.type === 'interface').map(toSidebarLink), - }, - { - text: 'Enums', - items: docs.filter((doc) => doc.source.type === 'enum').map(toSidebarLink), - }, - ], - }, - { - text: 'Grouped by Group', - items: Array.from(extractGroups(docs)).map(([groupName, groupDocs]) => ({ - text: groupName, - items: groupDocs.map(toSidebarLink), - })), - }, - ], + items: Array.from(extractGroups(apexOnlyDocs)).map(([groupName, groupDocs]) => ({ + text: groupName, + items: groupDocs.map(toSidebarLink), + })), + }, + { + text: 'Object Reference', + items: objectOnlyDocs.map(toSidebarLink), }, ]; await writeFileAsync('./docs/.vitepress/sidebar.json', JSON.stringify(sidebar, null, 2)); diff --git a/examples/vitepress/docs/.vitepress/sidebar.json b/examples/vitepress/docs/.vitepress/sidebar.json index a4e2b837..dd5afb72 100644 --- a/examples/vitepress/docs/.vitepress/sidebar.json +++ b/examples/vitepress/docs/.vitepress/sidebar.json @@ -3,117 +3,89 @@ "text": "API Reference", "items": [ { - "text": "Grouped By Type", + "text": "Miscellaneous", "items": [ { - "text": "Classes", - "items": [ - { - "text": "BaseClass", - "link": "miscellaneous/BaseClass.md" - }, - { - "text": "MultiInheritanceClass", - "link": "miscellaneous/MultiInheritanceClass.md" - }, - { - "text": "SampleClass", - "link": "samplegroup/SampleClass.md" - }, - { - "text": "SampleException", - "link": "miscellaneous/SampleException.md" - }, - { - "text": "Url", - "link": "miscellaneous/Url.md" - } - ] + "text": "BaseClass", + "link": "miscellaneous/BaseClass.md" }, { - "text": "Interfaces", - "items": [ - { - "text": "ParentInterface", - "link": "miscellaneous/ParentInterface.md" - }, - { - "text": "SampleInterface", - "link": "miscellaneous/SampleInterface.md" - } - ] + "text": "MultiInheritanceClass", + "link": "miscellaneous/MultiInheritanceClass.md" }, { - "text": "Enums", - "items": [ - { - "text": "ReferencedEnum", - "link": "miscellaneous/ReferencedEnum.md" - }, - { - "text": "SampleEnum", - "link": "sample-enums/SampleEnum.md" - } - ] + "text": "ParentInterface", + "link": "miscellaneous/ParentInterface.md" + }, + { + "text": "ReferencedEnum", + "link": "miscellaneous/ReferencedEnum.md" + }, + { + "text": "SampleException", + "link": "miscellaneous/SampleException.md" + }, + { + "text": "SampleInterface", + "link": "miscellaneous/SampleInterface.md" + }, + { + "text": "Url", + "link": "miscellaneous/Url.md" } ] }, { - "text": "Grouped by Group", + "text": "SampleGroup", "items": [ { - "text": "Miscellaneous", - "items": [ - { - "text": "BaseClass", - "link": "miscellaneous/BaseClass.md" - }, - { - "text": "MultiInheritanceClass", - "link": "miscellaneous/MultiInheritanceClass.md" - }, - { - "text": "ParentInterface", - "link": "miscellaneous/ParentInterface.md" - }, - { - "text": "ReferencedEnum", - "link": "miscellaneous/ReferencedEnum.md" - }, - { - "text": "SampleException", - "link": "miscellaneous/SampleException.md" - }, - { - "text": "SampleInterface", - "link": "miscellaneous/SampleInterface.md" - }, - { - "text": "Url", - "link": "miscellaneous/Url.md" - } - ] - }, - { - "text": "SampleGroup", - "items": [ - { - "text": "SampleClass", - "link": "samplegroup/SampleClass.md" - } - ] - }, + "text": "SampleClass", + "link": "samplegroup/SampleClass.md" + } + ] + }, + { + "text": "Sample Enums", + "items": [ { - "text": "Sample Enums", - "items": [ - { - "text": "SampleEnum", - "link": "sample-enums/SampleEnum.md" - } - ] + "text": "SampleEnum", + "link": "sample-enums/SampleEnum.md" } ] } ] + }, + { + "text": "Object Reference", + "items": [ + { + "text": "Event__c", + "link": "custom-objects/Event__c.md" + }, + { + "text": "Price_Component__c", + "link": "custom-objects/Price_Component__c.md" + }, + { + "text": "Product__c", + "link": "custom-objects/Product__c.md" + }, + { + "text": "Product_Price_Component__c", + "link": "custom-objects/Product_Price_Component__c.md" + }, + { + "text": "Sales_Order__c", + "link": "custom-objects/Sales_Order__c.md" + }, + { + "text": "Sales_Order_Line__c", + "link": "custom-objects/Sales_Order_Line__c.md" + }, + { + "text": "Speaker__c", + "link": "custom-objects/Speaker__c.md" + } + ] } ] \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Event__c.md b/examples/vitepress/docs/custom-objects/Event__c.md new file mode 100644 index 00000000..892379a4 --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Event__c.md @@ -0,0 +1,65 @@ +--- +title: Event__c +--- + +# Event + +Represents an event that people can register for. + +## API Name +`apexdocs__Event__c` + +## Fields +### Description + +**API Name** + +`apexdocs__Description__c` + +**Type** + +*LongTextArea* + +--- +### End Date + +**API Name** + +`apexdocs__End_Date__c` + +**Type** + +*Date* + +--- +### Location + +**API Name** + +`apexdocs__Location__c` + +**Type** + +*Location* + +--- +### Start Date + +**API Name** + +`apexdocs__Start_Date__c` + +**Type** + +*Date* + +--- +### Tag Line + +**API Name** + +`apexdocs__Tag_Line__c` + +**Type** + +*Text* \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Price_Component__c.md b/examples/vitepress/docs/custom-objects/Price_Component__c.md new file mode 100644 index 00000000..053ccb3c --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Price_Component__c.md @@ -0,0 +1,69 @@ +--- +title: Price_Component__c +--- + +# Price Component + +## API Name +`apexdocs__Price_Component__c` + +## Fields +### Description + +**API Name** + +`apexdocs__Description__c` + +**Type** + +*Text* + +--- +### Expression + +The Expression that determines if this price should take effect or not. + +**API Name** + +`apexdocs__Expression__c` + +**Type** + +*LongTextArea* + +--- +### Percent + +Use this field to calculate the price based on the list price's percentage instead of providing a flat price. + +**API Name** + +`apexdocs__Percent__c` + +**Type** + +*Percent* + +--- +### Price + +Use this when the Price Component represents a Flat Price. To represent a Percentage use the Percent field. + +**API Name** + +`apexdocs__Price__c` + +**Type** + +*Currency* + +--- +### Type + +**API Name** + +`apexdocs__Type__c` + +**Type** + +*Picklist* \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Product_Price_Component__c.md b/examples/vitepress/docs/custom-objects/Product_Price_Component__c.md new file mode 100644 index 00000000..cfe9dffa --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Product_Price_Component__c.md @@ -0,0 +1,30 @@ +--- +title: Product_Price_Component__c +--- + +# Product Price Component + +## API Name +`apexdocs__Product_Price_Component__c` + +## Fields +### Price Component + +**API Name** + +`apexdocs__Price_Component__c` + +**Type** + +*MasterDetail* + +--- +### Product + +**API Name** + +`apexdocs__Product__c` + +**Type** + +*MasterDetail* \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Product__c.md b/examples/vitepress/docs/custom-objects/Product__c.md new file mode 100644 index 00000000..ba3e70d6 --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Product__c.md @@ -0,0 +1,43 @@ +--- +title: Product__c +--- + +# Product (Custom) + +Product that is sold or available for sale. + +## API Name +`apexdocs__Product__c` + +## Fields +### Description + +**API Name** + +`apexdocs__Description__c` + +**Type** + +*Text* + +--- +### Event + +**API Name** + +`apexdocs__Event__c` + +**Type** + +*Lookup* + +--- +### Features + +**API Name** + +`apexdocs__Features__c` + +**Type** + +*LongTextArea* \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Sales_Order_Line__c.md b/examples/vitepress/docs/custom-objects/Sales_Order_Line__c.md new file mode 100644 index 00000000..041e94ce --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Sales_Order_Line__c.md @@ -0,0 +1,65 @@ +--- +title: Sales_Order_Line__c +--- + +# Sales Order Line + +Represents a line item on a sales order. + +## API Name +`apexdocs__Sales_Order_Line__c` + +## Fields +### Amount + +**API Name** + +`apexdocs__Amount__c` + +**Type** + +*Currency* + +--- +### Product + +**API Name** + +`apexdocs__Product__c` + +**Type** + +*Lookup* + +--- +### Sales Order + +**API Name** + +`apexdocs__Sales_Order__c` + +**Type** + +*MasterDetail* + +--- +### Source Price Component + +**API Name** + +`apexdocs__Source_Price_Component__c` + +**Type** + +*Lookup* + +--- +### Type + +**API Name** + +`apexdocs__Type__c` + +**Type** + +*Picklist* \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Sales_Order__c.md b/examples/vitepress/docs/custom-objects/Sales_Order__c.md new file mode 100644 index 00000000..220efa21 --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Sales_Order__c.md @@ -0,0 +1,10 @@ +--- +title: Sales_Order__c +--- + +# Sales Order + +Custom object for tracking sales orders. + +## API Name +`apexdocs__Sales_Order__c` \ No newline at end of file diff --git a/examples/vitepress/docs/custom-objects/Speaker__c.md b/examples/vitepress/docs/custom-objects/Speaker__c.md new file mode 100644 index 00000000..093efbf4 --- /dev/null +++ b/examples/vitepress/docs/custom-objects/Speaker__c.md @@ -0,0 +1,43 @@ +--- +title: Speaker__c +--- + +# Speaker + +Represents a speaker at an event. + +## API Name +`apexdocs__Speaker__c` + +## Fields +### About + +**API Name** + +`apexdocs__About__c` + +**Type** + +*LongTextArea* + +--- +### Event + +**API Name** + +`apexdocs__Event__c` + +**Type** + +*MasterDetail* + +--- +### Person + +**API Name** + +`apexdocs__Person__c` + +**Type** + +*MasterDetail* \ No newline at end of file diff --git a/examples/vitepress/docs/index.md b/examples/vitepress/docs/index.md index cdb614cd..e8629caa 100644 --- a/examples/vitepress/docs/index.md +++ b/examples/vitepress/docs/index.md @@ -15,7 +15,33 @@ hero: link: /api-examples --- -# Apex Reference Guide +# Reference Guide + +## Custom Objects + +### [Event__c](custom-objects/Event__c) + +Represents an event that people can register for. + +### [Price_Component__c](custom-objects/Price_Component__c) + +### [Product__c](custom-objects/Product__c) + +Product that is sold or available for sale. + +### [Product_Price_Component__c](custom-objects/Product_Price_Component__c) + +### [Sales_Order__c](custom-objects/Sales_Order__c) + +Custom object for tracking sales orders. + +### [Sales_Order_Line__c](custom-objects/Sales_Order_Line__c) + +Represents a line item on a sales order. + +### [Speaker__c](custom-objects/Speaker__c) + +Represents a speaker at an event. ## Miscellaneous diff --git a/examples/vitepress/force-app/main/default/classes/BaseClass.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/BaseClass.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/BaseClass.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/ParentInterface.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/ParentInterface.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/ParentInterface.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/Url.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/Url.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/Url.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/feature-a/SampleClass.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/feature-a/SampleEnum.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/feature-a/SampleException.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/classes/feature-a/SampleInterface.cls-meta.xml b/examples/vitepress/force-app/main/default/classes/feature-a/SampleInterface.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/classes/feature-a/SampleInterface.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/vitepress/force-app/main/default/objects/Contact/fields/PhotoUrl__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Contact/fields/PhotoUrl__c.field-meta.xml new file mode 100644 index 00000000..a9117781 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Contact/fields/PhotoUrl__c.field-meta.xml @@ -0,0 +1,9 @@ + + + PhotoUrl__c + false + + false + false + Url + diff --git a/examples/vitepress/force-app/main/default/objects/Event__c/Event__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Event__c/Event__c.object-meta.xml new file mode 100644 index 00000000..d30dde5c --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Event__c/Event__c.object-meta.xml @@ -0,0 +1,167 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Default + + + View + Large + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + Private + + + + Text + + Events + Represents an event that people can register for. + + ReadWrite + Vowel + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Event__c/fields/Description__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Description__c.field-meta.xml new file mode 100644 index 00000000..c1b682a4 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Description__c.field-meta.xml @@ -0,0 +1,10 @@ + + + Description__c + false + + 32768 + false + LongTextArea + 10 + diff --git a/examples/vitepress/force-app/main/default/objects/Event__c/fields/End_Date__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Event__c/fields/End_Date__c.field-meta.xml new file mode 100644 index 00000000..422a0003 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Event__c/fields/End_Date__c.field-meta.xml @@ -0,0 +1,9 @@ + + + End_Date__c + false + + true + false + Date + diff --git a/examples/vitepress/force-app/main/default/objects/Event__c/fields/Location__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Location__c.field-meta.xml new file mode 100644 index 00000000..b8f32121 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Location__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Location__c + false + false + + true + 3 + false + Location + diff --git a/examples/vitepress/force-app/main/default/objects/Event__c/fields/Start_Date__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Start_Date__c.field-meta.xml new file mode 100644 index 00000000..81fb3f6d --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Start_Date__c.field-meta.xml @@ -0,0 +1,9 @@ + + + Start_Date__c + false + + true + false + Date + diff --git a/examples/vitepress/force-app/main/default/objects/Event__c/fields/Tag_Line__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Tag_Line__c.field-meta.xml new file mode 100644 index 00000000..652ee2e0 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Event__c/fields/Tag_Line__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Tag_Line__c + false + + 255 + false + false + Text + false + diff --git a/examples/vitepress/force-app/main/default/objects/Price_Component__c/Price_Component__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Price_Component__c/Price_Component__c.object-meta.xml new file mode 100644 index 00000000..ae72fd0c --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Price_Component__c/Price_Component__c.object-meta.xml @@ -0,0 +1,169 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Action override created by Lightning App Builder during activation. + Price_Component_Record_Page + Large + false + Flexipage + + + View + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + Private + + + PC-{0000} + + AutoNumber + + Price Components + + ReadWrite + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Description__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Description__c.field-meta.xml new file mode 100644 index 00000000..69050ca6 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Description__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Description__c + false + + 255 + false + false + Text + false + diff --git a/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Expression__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Expression__c.field-meta.xml new file mode 100644 index 00000000..c0bf4e45 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Expression__c.field-meta.xml @@ -0,0 +1,12 @@ + + + Expression__c + The Expression that determines if this price should take effect or not. + false + The Expression that determines if this price should take effect or not. + + 131072 + false + LongTextArea + 20 + diff --git a/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Percent__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Percent__c.field-meta.xml new file mode 100644 index 00000000..9c303bc4 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Percent__c.field-meta.xml @@ -0,0 +1,13 @@ + + + Percent__c + Use this field to calculate the price based on the list price's percentage instead of providing a flat price. + false + Use this field to calculate the price based on the list price's percentage instead of providing a flat price. + + 18 + false + 0 + false + Percent + diff --git a/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Price__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Price__c.field-meta.xml new file mode 100644 index 00000000..84136dec --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Price__c.field-meta.xml @@ -0,0 +1,13 @@ + + + Price__c + Use this when the Price Component represents a Flat Price. To represent a Percentage use the Percent field. + false + Use this when the Price Component represents a Flat Price. To represent a Percentage use the Percent field. + + 18 + false + 2 + false + Currency + diff --git a/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Type__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Type__c.field-meta.xml new file mode 100644 index 00000000..c430b305 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Price_Component__c/fields/Type__c.field-meta.xml @@ -0,0 +1,30 @@ + + + Type__c + false + + true + false + Picklist + + true + + false + + List Price + false + + + + Surcharge + false + + + + Discount + false + + + + + diff --git a/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/Product_Price_Component__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/Product_Price_Component__c.object-meta.xml new file mode 100644 index 00000000..8a9a6348 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/Product_Price_Component__c.object-meta.xml @@ -0,0 +1,166 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Default + + + View + Large + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + ControlledByParent + + + PPC-{0000} + + AutoNumber + + Product Price Components + + ControlledByParent + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Price_Component__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Price_Component__c.field-meta.xml new file mode 100644 index 00000000..f152ecb6 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Price_Component__c.field-meta.xml @@ -0,0 +1,14 @@ + + + Price_Component__c + false + + Price_Component__c + Product Price Components + Product_Price_Components + 1 + false + false + MasterDetail + false + diff --git a/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Product__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Product__c.field-meta.xml new file mode 100644 index 00000000..16ec5b33 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product_Price_Component__c/fields/Product__c.field-meta.xml @@ -0,0 +1,14 @@ + + + Product__c + false + + Product__c + Product Price Components + Product_Price_Components + 0 + false + false + MasterDetail + false + diff --git a/examples/vitepress/force-app/main/default/objects/Product__c/Product__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Product__c/Product__c.object-meta.xml new file mode 100644 index 00000000..cdeb52a9 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product__c/Product__c.object-meta.xml @@ -0,0 +1,169 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Action override created by Lightning App Builder during activation. + Product_Record_Page + Large + false + Flexipage + + + View + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + Private + + Product that is sold or available for sale. + + + Text + + Products + + ReadWrite + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Product__c/fields/Description__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Product__c/fields/Description__c.field-meta.xml new file mode 100644 index 00000000..69050ca6 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product__c/fields/Description__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Description__c + false + + 255 + false + false + Text + false + diff --git a/examples/vitepress/force-app/main/default/objects/Product__c/fields/Event__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Product__c/fields/Event__c.field-meta.xml new file mode 100644 index 00000000..82947d0b --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product__c/fields/Event__c.field-meta.xml @@ -0,0 +1,12 @@ + + + Event__c + Restrict + false + + Event__c + Products + true + false + Lookup + diff --git a/examples/vitepress/force-app/main/default/objects/Product__c/fields/Features__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Product__c/fields/Features__c.field-meta.xml new file mode 100644 index 00000000..6b67a859 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Product__c/fields/Features__c.field-meta.xml @@ -0,0 +1,10 @@ + + + Features__c + false + + 32768 + false + LongTextArea + 10 + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/Sales_Order_Line__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/Sales_Order_Line__c.object-meta.xml new file mode 100644 index 00000000..36e9348d --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/Sales_Order_Line__c.object-meta.xml @@ -0,0 +1,167 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Default + + + View + Large + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + ControlledByParent + + Represents a line item on a sales order. + + SOL-{0000} + + AutoNumber + + Sales Order Lines + + ControlledByParent + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Amount__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Amount__c.field-meta.xml new file mode 100644 index 00000000..3a464e2d --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Amount__c.field-meta.xml @@ -0,0 +1,11 @@ + + + Amount__c + false + + 18 + true + 2 + false + Currency + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Product__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Product__c.field-meta.xml new file mode 100644 index 00000000..b6b5369f --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Product__c.field-meta.xml @@ -0,0 +1,13 @@ + + + Product__c + Restrict + false + + Product__c + Sales Order Lines + Sales_Order_Lines + true + false + Lookup + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Sales_Order__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Sales_Order__c.field-meta.xml new file mode 100644 index 00000000..c1d881c8 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Sales_Order__c.field-meta.xml @@ -0,0 +1,14 @@ + + + Sales_Order__c + false + + Sales_Order__c + Sales Order Lines + Sales_Order_Lines + 0 + false + false + MasterDetail + false + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Source_Price_Component__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Source_Price_Component__c.field-meta.xml new file mode 100644 index 00000000..69817d96 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Source_Price_Component__c.field-meta.xml @@ -0,0 +1,13 @@ + + + Source_Price_Component__c + SetNull + false + + Price_Component__c + Sales Order Lines + Sales_Order_Lines + false + false + Lookup + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Type__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Type__c.field-meta.xml new file mode 100644 index 00000000..328b5529 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order_Line__c/fields/Type__c.field-meta.xml @@ -0,0 +1,26 @@ + + + Type__c + "Charge" + false + + true + false + Picklist + + true + + false + + Charge + false + + + + Discount + false + + + + + diff --git a/examples/vitepress/force-app/main/default/objects/Sales_Order__c/Sales_Order__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Sales_Order__c/Sales_Order__c.object-meta.xml new file mode 100644 index 00000000..2225e4f9 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Sales_Order__c/Sales_Order__c.object-meta.xml @@ -0,0 +1,170 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Action override created by Lightning App Builder during activation. + Sales_Order_Record_Page + Large + false + Flexipage + + + View + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + Private + + Custom object for tracking sales orders. + + SO-{0000} + + AutoNumber + + Sales Orders + + ReadWrite + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Speaker__c/Speaker__c.object-meta.xml b/examples/vitepress/force-app/main/default/objects/Speaker__c/Speaker__c.object-meta.xml new file mode 100644 index 00000000..6bdf2199 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Speaker__c/Speaker__c.object-meta.xml @@ -0,0 +1,167 @@ + + + + Accept + Default + + + Accept + Large + Default + + + Accept + Small + Default + + + CancelEdit + Default + + + CancelEdit + Large + Default + + + CancelEdit + Small + Default + + + Clone + Default + + + Clone + Large + Default + + + Clone + Small + Default + + + Delete + Default + + + Delete + Large + Default + + + Delete + Small + Default + + + Edit + Default + + + Edit + Large + Default + + + Edit + Small + Default + + + List + Default + + + List + Large + Default + + + List + Small + Default + + + New + Default + + + New + Large + Default + + + New + Small + Default + + + SaveEdit + Default + + + SaveEdit + Large + Default + + + SaveEdit + Small + Default + + + Tab + Default + + + Tab + Large + Default + + + Tab + Small + Default + + + View + Default + + + View + Large + Default + + + View + Small + Default + + false + SYSTEM + Deployed + false + true + false + false + false + false + false + true + true + ControlledByParent + + Represents a speaker at an event. + + SPEAK-{0000} + + AutoNumber + + Speakers + + ControlledByParent + Public + diff --git a/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/About__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/About__c.field-meta.xml new file mode 100644 index 00000000..2fc71d94 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/About__c.field-meta.xml @@ -0,0 +1,10 @@ + + + About__c + false + + 32768 + false + LongTextArea + 3 + diff --git a/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Event__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Event__c.field-meta.xml new file mode 100644 index 00000000..cf6bfc63 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Event__c.field-meta.xml @@ -0,0 +1,14 @@ + + + Event__c + false + + Event__c + Speakers + Speakers + 0 + false + false + MasterDetail + false + diff --git a/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Person__c.field-meta.xml b/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Person__c.field-meta.xml new file mode 100644 index 00000000..b7ac07b1 --- /dev/null +++ b/examples/vitepress/force-app/main/default/objects/Speaker__c/fields/Person__c.field-meta.xml @@ -0,0 +1,14 @@ + + + Person__c + false + + Contact + Speakers + Speakers + 1 + false + false + MasterDetail + false + diff --git a/package-lock.json b/package-lock.json index 6c811b16..4cb39f91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,16 @@ { "name": "@cparra/apexdocs", - "version": "3.2.2", + "version": "3.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@cparra/apexdocs", - "version": "3.2.2", + "version": "3.3.1", "license": "MIT", "dependencies": { "@cparra/apex-reflection": "2.15.0", + "@salesforce/source-deploy-retrieve": "^12.8.1", "@types/js-yaml": "^4.0.9", "@types/yargs": "^17.0.32", "chalk": "^4.1.2", @@ -1950,6 +1951,28 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsforce/jsforce-node": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@jsforce/jsforce-node/-/jsforce-node-3.5.2.tgz", + "integrity": "sha512-WZZo7HVFQsTeHRfykMJBrEK3ACr9sQnWSm3EVLasAnAUxjh+hjU4SfJ7HB1UaPRliHjLVZcSCUwF+OoJqjbfoA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4", + "base64url": "^3.0.1", + "csv-parse": "^5.5.2", + "csv-stringify": "^6.4.4", + "faye": "^1.4.0", + "form-data": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "multistream": "^3.1.0", + "node-fetch": "^2.6.1", + "strip-ansi": "^6.0.0", + "xml2js": "^0.6.2" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2449,12 +2472,168 @@ "win32" ] }, + "node_modules/@salesforce/core": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/@salesforce/core/-/core-8.6.2.tgz", + "integrity": "sha512-LFzTLnavDeWsZBB7b2iuVz0F6yeuTcJzQxCy5n+rACY2/Lbw6UJDK/bOSt4wlss6fKrkyU1FTHNlUK5ZoBEveg==", + "license": "BSD-3-Clause", + "dependencies": { + "@jsforce/jsforce-node": "^3.4.1", + "@salesforce/kit": "^3.2.2", + "@salesforce/schemas": "^1.9.0", + "@salesforce/ts-types": "^2.0.10", + "ajv": "^8.17.1", + "change-case": "^4.1.2", + "fast-levenshtein": "^3.0.0", + "faye": "^1.4.0", + "form-data": "^4.0.0", + "js2xmlparser": "^4.0.1", + "jsonwebtoken": "9.0.2", + "jszip": "3.10.1", + "pino": "^9.4.0", + "pino-abstract-transport": "^1.2.0", + "pino-pretty": "^11.2.2", + "proper-lockfile": "^4.1.2", + "semver": "^7.6.3", + "ts-retry-promise": "^0.8.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@salesforce/core/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@salesforce/core/node_modules/fast-levenshtein": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "license": "MIT", + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } + }, + "node_modules/@salesforce/core/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@salesforce/core/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@salesforce/kit": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@salesforce/kit/-/kit-3.2.3.tgz", + "integrity": "sha512-X8rZouLt06dxRkn+uYTwywWDS/NqZ783AyomGqgtWdUxF61EOJvu0ehtcYeutx9Ng08uuZ+s6wNvWiDsdhUcPg==", + "license": "BSD-3-Clause", + "dependencies": { + "@salesforce/ts-types": "^2.0.12" + } + }, + "node_modules/@salesforce/schemas": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@salesforce/schemas/-/schemas-1.9.0.tgz", + "integrity": "sha512-LiN37zG5ODT6z70sL1fxF7BQwtCX9JOWofSU8iliSNIM+WDEeinnoFtVqPInRSNt8I0RiJxIKCrqstsmQRBNvA==", + "license": "ISC" + }, + "node_modules/@salesforce/source-deploy-retrieve": { + "version": "12.8.1", + "resolved": "https://registry.npmjs.org/@salesforce/source-deploy-retrieve/-/source-deploy-retrieve-12.8.1.tgz", + "integrity": "sha512-1wTP6Qa9aWuToY5VMMO0Xg8ea5Vtnaf79ZYJry4BTK9y2XyzhrmwSHTvvO7UuhDb//zx2REfKT53JltCysEADA==", + "license": "BSD-3-Clause", + "dependencies": { + "@salesforce/core": "^8.6.2", + "@salesforce/kit": "^3.2.2", + "@salesforce/ts-types": "^2.0.12", + "fast-levenshtein": "^3.0.0", + "fast-xml-parser": "^4.5.0", + "got": "^11.8.6", + "graceful-fs": "^4.2.11", + "ignore": "^5.3.2", + "isbinaryfile": "^5.0.2", + "jszip": "^3.10.1", + "mime": "2.6.0", + "minimatch": "^9.0.5", + "proxy-agent": "^6.4.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@salesforce/source-deploy-retrieve/node_modules/fast-levenshtein": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "license": "MIT", + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } + }, + "node_modules/@salesforce/source-deploy-retrieve/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@salesforce/ts-types": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@salesforce/ts-types/-/ts-types-2.0.12.tgz", + "integrity": "sha512-BIJyduJC18Kc8z+arUm5AZ9VkPRyw1KKAm+Tk+9LT99eOzhNilyfKzhZ4t+tG2lIGgnJpmytZfVDZ0e2kFul8g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@sinonjs/commons": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", @@ -2473,6 +2652,24 @@ "@sinonjs/commons": "^3.0.0" } }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, "node_modules/@types/babel__core": { "version": "7.1.18", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", @@ -2514,6 +2711,18 @@ "@babel/types": "^7.3.0" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/eslint": { "version": "8.56.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", @@ -2551,6 +2760,12 @@ "@types/node": "*" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "license": "MIT" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -2597,6 +2812,15 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/node": { "version": "20.14.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", @@ -2612,6 +2836,15 @@ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", "dev": true }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", @@ -2861,6 +3094,18 @@ "dev": true, "license": "ISC" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -2884,6 +3129,18 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2976,6 +3233,39 @@ "node": ">=8" } }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -3020,6 +3310,44 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -3093,6 +3421,36 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -3111,6 +3469,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3119,6 +3519,16 @@ "node": ">=6" } }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -3148,6 +3558,17 @@ } ] }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3218,6 +3639,26 @@ "node": ">=8" } }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -3383,6 +3824,18 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -3416,9 +3869,20 @@ "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, "license": "MIT" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", @@ -3442,6 +3906,23 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -3519,12 +4000,53 @@ "node": ">= 8" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { + "node_modules/csprng": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/csprng/-/csprng-0.1.2.tgz", + "integrity": "sha512-D3WAbvvgUVIqSxUfdvLeGjuotsB32bvfVPd+AaaTWMtyUeC9zgCnw5xs94no89yFLVsafvY9dMZEhTwsY/ZecA==", + "license": "MIT", + "dependencies": { + "sequin": "*" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/csv-parse": { + "version": "5.5.6", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.6.tgz", + "integrity": "sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==", + "license": "MIT" + }, + "node_modules/csv-stringify": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.5.1.tgz", + "integrity": "sha512-+9lpZfwpLntpTIEpFbwQyWuW/hmI/eHuJZD1XzeZpfZTqkf1fyvBbBLXTJJMsBuuS11uTShMqPwzx4A6ffXgRQ==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { "ms": "2.1.2" }, "engines": { @@ -3536,6 +4058,33 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dedent": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", @@ -3565,6 +4114,38 @@ "node": ">=0.10.0" } }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -3609,6 +4190,16 @@ "node": ">=6.0.0" } }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -3616,6 +4207,15 @@ "dev": true, "license": "MIT" }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.795", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.795.tgz", @@ -3639,6 +4239,15 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -3711,6 +4320,27 @@ "node": ">=0.8.0" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", @@ -3965,7 +4595,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -4003,7 +4632,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -4018,12 +4646,20 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -4031,6 +4667,15 @@ "dev": true, "license": "MIT" }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -4079,11 +4724,16 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/fast-copy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", + "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { @@ -4128,10 +4778,31 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "license": "BSD-3-Clause" + }, "node_modules/fast-xml-parser": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz", - "integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.0.tgz", + "integrity": "sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==", "funding": [ { "type": "github", @@ -4150,6 +4821,15 @@ "fxparser": "src/cli/cli.js" } }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -4159,6 +4839,35 @@ "reusify": "^1.0.4" } }, + "node_modules/faye": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/faye/-/faye-1.4.0.tgz", + "integrity": "sha512-kRrIg4be8VNYhycS2PY//hpBJSzZPr/DBbcy9VWelhZMW3KhyLkQR0HL0k0MNpmVoNFF4EdfMFkNAWjTP65g6w==", + "license": "Apache-2.0", + "dependencies": { + "asap": "*", + "csprng": "*", + "faye-websocket": ">=0.9.1", + "safe-buffer": "*", + "tough-cookie": "*", + "tunnel-agent": "*" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", @@ -4275,12 +4984,40 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fp-ts": { "version": "2.16.8", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.8.tgz", "integrity": "sha512-nmDtNqmMZkOxu0M5hkrS9YA15/KPkYkILb6Axg9XBAoUoYEtzg+LFmVWqZrl9FNttsW0qIUpx9RCA9INbv+Bxw==", "license": "MIT" }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -4361,6 +5098,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-uri": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.3.tgz", + "integrity": "sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4", + "fs-extra": "^11.2.0" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", @@ -4445,11 +5197,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", - "dev": true + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", @@ -4497,12 +5274,91 @@ "node": ">= 0.4" } }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "license": "MIT", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/help-me": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", + "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", + "license": "MIT" + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "license": "BSD-2-Clause" + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -4528,15 +5384,41 @@ "url": "https://github.com/sponsors/typicode" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -4593,8 +5475,26 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause" }, "node_modules/is-arrayish": { "version": "0.2.1", @@ -4712,11 +5612,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isbinaryfile": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.3.tgz", + "integrity": "sha512-VR4gNjFaDP8csJQvzInG20JvBj8MaHYLxNOMXysxRbGM7tcsHZwCjhch3FubFtZBkuDbN55i4dUukGeIrzF+6g==", + "license": "MIT", + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -5987,6 +6905,15 @@ "jiti": "bin/jiti.js" } }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -6003,6 +6930,21 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/js2xmlparser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.2.tgz", + "integrity": "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==", + "license": "Apache-2.0", + "dependencies": { + "xmlcreate": "^2.0.4" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "license": "MIT" + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -6019,7 +6961,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, "license": "MIT" }, "node_modules/json-parse-even-better-errors": { @@ -6052,11 +6993,89 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, "license": "MIT", "dependencies": { "json-buffer": "3.0.1" @@ -6093,6 +7112,15 @@ "node": ">= 0.8.0" } }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", @@ -6467,6 +7495,42 @@ "node": ">=8" } }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -6479,6 +7543,30 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/lru-cache": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.0.tgz", @@ -6570,6 +7658,39 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -6579,6 +7700,15 @@ "node": ">=6" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", @@ -6614,8 +7744,31 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multistream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-3.1.0.tgz", + "integrity": "sha512-zBgD3kn8izQAN/TaL1PCMv15vYpf+Vcrsfub06njuYVYlzUldzpopTlrEZ53pZVEbfn3Shtv7vRFoOv6LOV87Q==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^3.4.0" + } + }, + "node_modules/multistream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/natural-compare": { "version": "1.4.0", @@ -6628,6 +7781,45 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -6649,6 +7841,18 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -6661,11 +7865,19 @@ "node": ">=8" } }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -6702,6 +7914,15 @@ "node": ">= 0.8.0" } }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -6738,6 +7959,63 @@ "node": ">=6" } }, + "node_modules/pac-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.2.tgz", + "integrity": "sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==", + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.5", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", @@ -6745,6 +8023,22 @@ "dev": true, "license": "BlueOak-1.0.0" }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6773,6 +8067,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6862,37 +8176,168 @@ "node": ">=0.10" } }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" + "node_modules/pino": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz", + "integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-abstract-transport/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/pkgroll": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/pkgroll/-/pkgroll-2.4.2.tgz", - "integrity": "sha512-9seL/4BNQsE+eL+kefjfh5jSLqQPSKXQE/adw1L76k49KFw/XnOnyU8dRwuWpVtvMyIVyecaSBIpvFYrmnZq6A==", - "dev": true, + "node_modules/pino-abstract-transport/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "license": "MIT", "dependencies": { - "@rollup/plugin-alias": "^5.1.0", - "@rollup/plugin-commonjs": "^26.0.1", - "@rollup/plugin-inject": "^5.0.5", + "safe-buffer": "~5.2.0" + } + }, + "node_modules/pino-pretty": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.3.0.tgz", + "integrity": "sha512-oXwn7ICywaZPHmu3epHGU2oJX4nPmKvHvB/bwrJHlGcbEWaVcotkpyVHMKLKmiVryWYByNp0jpgAcXpFJDXJzA==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-copy": "^3.0.2", + "fast-safe-stringify": "^2.1.1", + "help-me": "^5.0.0", + "joycon": "^3.1.1", + "minimist": "^1.2.6", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pump": "^3.0.0", + "readable-stream": "^4.0.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^4.0.1", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/pino-pretty/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, + "node_modules/pino/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkgroll": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/pkgroll/-/pkgroll-2.4.2.tgz", + "integrity": "sha512-9seL/4BNQsE+eL+kefjfh5jSLqQPSKXQE/adw1L76k49KFw/XnOnyU8dRwuWpVtvMyIVyecaSBIpvFYrmnZq6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-alias": "^5.1.0", + "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-inject": "^5.0.5", "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-replace": "^5.0.7", @@ -6970,6 +8415,27 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "license": "MIT" + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -6983,6 +8449,86 @@ "node": ">= 6" } }, + "node_modules/proper-lockfile": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", + "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "retry": "^0.12.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/proxy-agent": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.4.0.tgz", + "integrity": "sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.0.1", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -7029,12 +8575,60 @@ } ] }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7043,6 +8637,15 @@ "node": ">=0.10.0" } }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -7060,6 +8663,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" + }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -7098,6 +8707,27 @@ "node": ">=10" } }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -7217,6 +8847,47 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "license": "ISC" + }, + "node_modules/secure-json-parse": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", + "license": "BSD-3-Clause" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -7226,6 +8897,32 @@ "semver": "bin/semver.js" } }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/sequin": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sequin/-/sequin-0.1.1.tgz", + "integrity": "sha512-hJWMZRwP75ocoBM+1/YaCsvS0j5MTPeBHJkS2/wruehl9xwtX30HlDF1Gt6UZ8HHHY8SJa2/IL+jo+JJCd59rA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -7250,8 +8947,7 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/sisteransi": { "version": "1.0.5", @@ -7311,6 +9007,75 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7329,6 +9094,15 @@ "source-map": "^0.6.0" } }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -7356,6 +9130,21 @@ "node": ">=8" } }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, "node_modules/string-argv": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", @@ -7455,7 +9244,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" }, @@ -7533,6 +9321,33 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/tldts": { + "version": "6.1.52", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.52.tgz", + "integrity": "sha512-fgrDJXDjbAverY6XnIt0lNfv8A0cf7maTEaZxNykLGsLG7XP+5xhjBTrt/ieAsFjAlZ+G5nmXomLcZDkxXnDzw==", + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.52" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.52", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.52.tgz", + "integrity": "sha512-j4OxQI5rc1Ve/4m/9o2WhWSC4jGc4uVbCINdOEJRAraCi0YqTqgMcxUx7DbmuP0G3PCixoof/RZB0Q5Kh9tagw==", + "license": "MIT" + }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -7560,6 +9375,24 @@ "node": ">=8.0" } }, + "node_modules/tough-cookie": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.0.0.tgz", + "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -7632,6 +9465,33 @@ "node": ">=10" } }, + "node_modules/ts-retry-promise": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/ts-retry-promise/-/ts-retry-promise-0.8.1.tgz", + "integrity": "sha512-+AHPUmAhr5bSRRK5CurE9kNH8gZlEHnCgusZ0zy2bjfatUBDX0h6vGQjiT0YrGwSDwRZmU+bapeX6mj55FOPvg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7710,6 +9570,15 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/update-browserslist-db": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", @@ -7740,6 +9609,24 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -7750,6 +9637,12 @@ "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, "node_modules/v8-to-istanbul": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", @@ -7779,6 +9672,45 @@ "makeerror": "1.0.12" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -7951,8 +9883,35 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlcreate": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", + "integrity": "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==", + "license": "Apache-2.0" }, "node_modules/y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index 2b7631ed..01e49836 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ }, "dependencies": { "@cparra/apex-reflection": "2.15.0", + "@salesforce/source-deploy-retrieve": "^12.8.1", "@types/js-yaml": "^4.0.9", "@types/yargs": "^17.0.32", "chalk": "^4.1.2", diff --git a/src/application/Apexdocs.ts b/src/application/Apexdocs.ts index 7ee33925..e153bc73 100644 --- a/src/application/Apexdocs.ts +++ b/src/application/Apexdocs.ts @@ -6,11 +6,11 @@ import markdown from './generators/markdown'; import openApi from './generators/openapi'; import changelog from './generators/changelog'; -import { processFiles } from './apex-file-reader'; +import { processFiles } from './source-code-file-reader'; import { DefaultFileSystem } from './file-system'; import { Logger } from '#utils/logger'; import { - UnparsedSourceFile, + UnparsedApexBundle, UserDefinedChangelogConfig, UserDefinedConfig, UserDefinedMarkdownConfig, @@ -18,7 +18,6 @@ import { } from '../core/shared/types'; import { ReflectionError, ReflectionErrors, HookError } from '../core/errors/errors'; import { FileReadingError, FileWritingError } from './errors'; -import { apply } from '#utils/fp'; /** * Application entry-point to generate documentation out of Apex source files. @@ -46,14 +45,19 @@ export class Apexdocs { } } -const readFiles = apply(processFiles, new DefaultFileSystem()); +const readFiles = processFiles(new DefaultFileSystem()); async function processMarkdown(config: UserDefinedMarkdownConfig) { return pipe( - TE.tryCatch( - () => readFiles(config.sourceDir, config.includeMetadata, config.exclude), + E.tryCatch( + () => + readFiles(['ApexClass', 'CustomObject', 'CustomField'], { includeMetadata: config.includeMetadata })( + config.sourceDir, + config.exclude, + ), (e) => new FileReadingError('An error occurred while reading files.', e), ), + TE.fromEither, TE.flatMap((fileBodies) => markdown(fileBodies, config)), TE.map(() => '✔️ Documentation generated successfully!'), TE.mapLeft(toErrors), @@ -61,20 +65,21 @@ async function processMarkdown(config: UserDefinedMarkdownConfig) { } async function processOpenApi(config: UserDefinedOpenApiConfig, logger: Logger) { - const fileBodies = await readFiles(config.sourceDir, false, config.exclude); + const fileBodies = readFiles(['ApexClass'])(config.sourceDir, config.exclude) as UnparsedApexBundle[]; return openApi(logger, fileBodies, config); } async function processChangeLog(config: UserDefinedChangelogConfig) { - async function loadFiles(): Promise<[UnparsedSourceFile[], UnparsedSourceFile[]]> { + function loadFiles(): [UnparsedApexBundle[], UnparsedApexBundle[]] { return [ - await readFiles(config.previousVersionDir, false, config.exclude), - await readFiles(config.currentVersionDir, false, config.exclude), + readFiles(['ApexClass'])(config.previousVersionDir, config.exclude) as UnparsedApexBundle[], + readFiles(['ApexClass'])(config.currentVersionDir, config.exclude) as UnparsedApexBundle[], ]; } return pipe( - TE.tryCatch(loadFiles, (e) => new FileReadingError('An error occurred while reading files.', e)), + E.tryCatch(loadFiles, (e) => new FileReadingError('An error occurred while reading files.', e)), + TE.fromEither, TE.flatMap(([previous, current]) => changelog(previous, current, config)), TE.mapLeft(toErrors), ); diff --git a/src/application/__tests__/apex-file-reader.spec.ts b/src/application/__tests__/apex-file-reader.spec.ts deleted file mode 100644 index 9b33fc5c..00000000 --- a/src/application/__tests__/apex-file-reader.spec.ts +++ /dev/null @@ -1,211 +0,0 @@ -import { FileSystem } from '../file-system'; -import { processFiles } from '../apex-file-reader'; - -type File = { - type: 'file'; - path: string; - content: string; -}; - -type Directory = { - type: 'directory'; - path: string; - files: (File | Directory)[]; -}; - -type Path = File | Directory; - -class TestFileSystem implements FileSystem { - constructor(private readonly paths: Path[]) {} - - async isDirectory(path: string): Promise { - const directory = this.findPath(path); - return directory ? directory.type === 'directory' : false; - } - - joinPath(...paths: string[]): string { - return paths.join('/'); - } - - async readDirectory(sourceDirectory: string): Promise { - const directory = this.findPath(sourceDirectory); - if (!directory || directory.type !== 'directory') { - throw new Error('Directory not found'); - } - return directory.files.map((f) => f.path); - } - - async readFile(path: string): Promise { - const file = this.findPath(path); - if (!file || file.type !== 'file') { - throw new Error('File not found'); - } - return file.content; - } - - exists(path: string): boolean { - return this.paths.some((p) => p.path === path); - } - - findPath(path: string): Path | undefined { - const splitPath = path.split('/'); - let currentPath = this.paths.find((p) => p.path === splitPath[0]); - for (let i = 1; i < splitPath.length; i++) { - if (!currentPath || currentPath.type !== 'directory') { - return undefined; - } - currentPath = currentPath.files.find((f) => f.path === splitPath[i]); - } - return currentPath; - } -} - -describe('File Reader', () => { - it('returns an empty list when there are no files in the directory', async () => { - const fileSystem = new TestFileSystem([ - { - type: 'directory', - path: '', - files: [], - }, - ]); - - const result = await processFiles(fileSystem, '', false, []); - - expect(result.length).toBe(0); - }); - - it('returns an empty list when there are no Apex files in the directory', async () => { - const fileSystem = new TestFileSystem([ - { - type: 'directory', - path: '', - files: [ - { - type: 'file', - path: 'SomeFile.md', - content: '## Some Markdown', - }, - ], - }, - ]); - - const result = await processFiles(fileSystem, '', false, []); - expect(result.length).toBe(0); - }); - - it('returns the file contents for all Apex files', async () => { - const fileSystem = new TestFileSystem([ - { - type: 'directory', - path: '', - files: [ - { - type: 'file', - path: 'SomeFile.cls', - content: 'public class MyClass{}', - }, - { - type: 'directory', - path: 'subdir', - files: [ - { - type: 'file', - path: 'AnotherFile.cls', - content: 'public class AnotherClass{}', - }, - ], - }, - ], - }, - ]); - - const result = await processFiles(fileSystem, '', false, []); - expect(result.length).toBe(2); - expect(result[0].content).toBe('public class MyClass{}'); - expect(result[1].content).toBe('public class AnotherClass{}'); - }); - - it('skips files that match the excluded glob pattern', async () => { - const fileSystem = new TestFileSystem([ - { - type: 'directory', - path: '', - files: [ - { - type: 'file', - path: 'SomeFile.cls', - content: 'public class MyClass{}', - }, - { - type: 'directory', - path: 'subdir', - files: [ - { - type: 'file', - path: 'AnotherFile.cls', - content: 'public class AnotherClass{}', - }, - ], - }, - ], - }, - ]); - - const result = await processFiles(fileSystem, '', false, ['**/AnotherFile.cls']); - expect(result.length).toBe(1); - expect(result[0].content).toBe('public class MyClass{}'); - }); - - it('returns the file contents for all Apex when there are multiple directories', async () => { - const fileSystem = new TestFileSystem([ - { - type: 'directory', - path: '', - files: [ - { - type: 'file', - path: 'SomeFile.cls', - content: 'public class MyClass{}', - }, - { - type: 'directory', - path: 'subdir', - files: [ - { - type: 'file', - path: 'AnotherFile.cls', - content: 'public class AnotherClass{}', - }, - ], - }, - { - type: 'directory', - path: 'subdir2', - files: [ - { - type: 'file', - path: 'SomeFile2.cls', - content: 'public class MyClass{}', - }, - { - type: 'directory', - path: 'subdir', - files: [ - { - type: 'file', - path: 'AnotherFile2.cls', - content: 'public class AnotherClass{}', - }, - ], - }, - ], - }, - ], - }, - ]); - - const result = await processFiles(fileSystem, '', false, []); - expect(result.length).toBe(4); - }); -}); diff --git a/src/application/__tests__/source-code-file-reader.spec.ts b/src/application/__tests__/source-code-file-reader.spec.ts new file mode 100644 index 00000000..7a24e7f0 --- /dev/null +++ b/src/application/__tests__/source-code-file-reader.spec.ts @@ -0,0 +1,130 @@ +import { FileSystem } from '../file-system'; +import { processFiles, SourceComponentAdapter } from '../source-code-file-reader'; + +class TestFileSystem implements FileSystem { + constructor(private readonly sourceComponents: SourceComponentAdapter[]) {} + + getComponents(): SourceComponentAdapter[] { + return this.sourceComponents; + } + + readFile(path: string): string { + switch (path) { + case 'Speaker.cls': + return 'public class Speaker{}'; + case 'AnotherSpeaker.cls': + return 'public class AnotherSpeaker{}'; + case 'SomeObject__c.object-meta.xml': + return ` + + + Deployed + test object for testing + + MyFirstObjects + `; + default: + return ''; + } + } +} + +describe('File Reader', () => { + it('returns an empty list when no source components are found', async () => { + const fileSystem = new TestFileSystem([]); + + const result = processFiles(fileSystem)(['ApexClass'])('', []); + + expect(result.length).toBe(0); + }); + + it('returns an empty list when reading Apex files and there are none', async () => { + const fileSystem = new TestFileSystem([ + { + name: 'Speaker__c', + type: { + id: 'customobject', + name: 'CustomObject', + }, + xml: 'force-app/main/default/objects/Speaker__c/Speaker__c.object-meta.xml', + content: 'force-app/main/default/objects/Speaker__c', + }, + ]); + + const result = processFiles(fileSystem)(['ApexClass'])('', []); + expect(result.length).toBe(0); + }); + + it('returns the file contents for all Apex files', async () => { + const fileSystem = new TestFileSystem([ + { + name: 'Speaker', + type: { + id: 'apexclass', + name: 'ApexClass', + }, + xml: 'Speaker.cls-meta.xml', + content: 'Speaker.cls', + }, + { + name: 'AnotherSpeaker', + type: { + id: 'apexclass', + name: 'ApexClass', + }, + xml: 'AnotherSpeaker.cls-meta.xml', + content: 'AnotherSpeaker.cls', + }, + ]); + + const result = processFiles(fileSystem)(['ApexClass'])('', []); + expect(result.length).toBe(2); + expect(result[0].content).toBe('public class Speaker{}'); + expect(result[1].content).toBe('public class AnotherSpeaker{}'); + }); + + it('returns the file contents of all Object files', async () => { + const fileSystem = new TestFileSystem([ + { + name: 'SomeObject__c', + type: { + id: 'customobject', + name: 'CustomObject', + }, + xml: 'SomeObject__c.object-meta.xml', + content: '', + }, + ]); + + const result = processFiles(fileSystem)(['CustomObject'])('', []); + expect(result.length).toBe(1); + expect(result[0].content).toContain('test object for testing'); + }); + + it('skips files that match the excluded glob pattern', async () => { + const fileSystem = new TestFileSystem([ + { + name: 'Speaker', + type: { + id: 'apexclass', + name: 'ApexClass', + }, + xml: 'Speaker.cls-meta.xml', + content: 'Speaker.cls', + }, + { + name: 'AnotherSpeaker', + type: { + id: 'apexclass', + name: 'ApexClass', + }, + xml: 'AnotherSpeaker.cls-meta.xml', + content: 'AnotherSpeaker.cls', + }, + ]); + + const result = processFiles(fileSystem)(['ApexClass'])('', ['**/Speaker.cls']); + expect(result.length).toBe(1); + expect(result[0].content).toBe('public class AnotherSpeaker{}'); + }); +}); diff --git a/src/application/apex-file-reader.ts b/src/application/apex-file-reader.ts deleted file mode 100644 index 4ddd3697..00000000 --- a/src/application/apex-file-reader.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { FileSystem } from './file-system'; -import { UnparsedSourceFile } from '../core/shared/types'; -import { minimatch } from 'minimatch'; -import { pipe } from 'fp-ts/function'; -import { apply } from '#utils/fp'; - -const APEX_FILE_EXTENSION = '.cls'; - -/** - * Reads from .cls files and returns their raw body. - */ -export async function processFiles( - fileSystem: FileSystem, - rootPath: string, - includeMetadata: boolean, - exclude: string[], -): Promise { - const processSingleFile = apply(processFile, fileSystem, includeMetadata); - - return pipe( - await getFilePaths(fileSystem, rootPath), - (filePaths) => filePaths.filter((filePath) => !isExcluded(filePath, exclude)), - (filePaths) => filePaths.filter(isApexFile), - (filePaths) => Promise.all(filePaths.map(processSingleFile)), - ); -} - -async function getFilePaths(fileSystem: FileSystem, rootPath: string): Promise { - const directoryContents = await fileSystem.readDirectory(rootPath); - const paths: string[] = []; - for (const filePath of directoryContents) { - const currentPath = fileSystem.joinPath(rootPath, filePath); - if (await fileSystem.isDirectory(currentPath)) { - paths.push(...(await getFilePaths(fileSystem, currentPath))); - } else { - paths.push(currentPath); - } - } - return paths; -} - -function isExcluded(filePath: string, exclude: string[]): boolean { - return exclude.some((pattern) => minimatch(filePath, pattern)); -} - -async function processFile( - fileSystem: FileSystem, - includeMetadata: boolean, - filePath: string, -): Promise { - const rawTypeContent = await fileSystem.readFile(filePath); - const metadataPath = `${filePath}-meta.xml`; - let rawMetadataContent = null; - if (includeMetadata) { - rawMetadataContent = fileSystem.exists(metadataPath) ? await fileSystem.readFile(metadataPath) : null; - } - - return { filePath, content: rawTypeContent, metadataContent: rawMetadataContent }; -} - -function isApexFile(currentFile: string): boolean { - return currentFile.endsWith(APEX_FILE_EXTENSION); -} diff --git a/src/application/file-system.ts b/src/application/file-system.ts index 3626bf1d..e45b401c 100644 --- a/src/application/file-system.ts +++ b/src/application/file-system.ts @@ -1,69 +1,38 @@ import * as fs from 'fs'; -import * as path from 'path'; +import { MetadataResolver } from '@salesforce/source-deploy-retrieve'; +import { SourceComponentAdapter } from './source-code-file-reader'; +import { pipe } from 'fp-ts/function'; +import * as nodePath from 'path'; export interface FileSystem { - isDirectory: (path: string) => Promise; - readDirectory: (sourceDirectory: string) => Promise; - readFile: (path: string) => Promise; - joinPath: (...paths: string[]) => string; - exists: (path: string) => boolean; -} - -function stat(path: string): Promise { - return new Promise((resolve, reject) => { - fs.stat(path, (err, stats) => { - if (err) { - reject(err); - } else { - resolve(stats); - } - }); - }); -} - -function readdir(path: string): Promise { - return new Promise((resolve, reject) => { - fs.readdir(path, (err, files) => { - if (err) { - reject(err); - } else { - resolve(files); - } - }); - }); -} - -function readFile(path: string): Promise { - return new Promise((resolve, reject) => { - fs.readFile(path, (err, data) => { - if (err) { - reject(err); - } else { - resolve(data.toString()); - } - }); - }); + getComponents(path: string): SourceComponentAdapter[]; + readFile: (path: string) => string; } export class DefaultFileSystem implements FileSystem { - async isDirectory(pathToRead: string): Promise { - const stats = await stat(pathToRead); - return stats.isDirectory(); - } - - readDirectory(sourceDirectory: string): Promise { - return readdir(sourceDirectory); - } - - readFile(pathToRead: string): Promise { - return readFile(pathToRead); - } - - joinPath(...paths: string[]): string { - return path.join(...paths); + getComponents(path: string): SourceComponentAdapter[] { + const components = new MetadataResolver().getComponentsFromPath(path); + + const fieldComponents = pipe( + components, + (components) => components.filter((component) => component.type.name === 'CustomObject'), + (components) => components.map((component) => component.content), + (contents) => contents.filter((content) => content !== undefined), + (contents) => contents.map((content) => nodePath.join(content!, 'fields')), + (potentialFieldLocations) => + potentialFieldLocations.filter((potentialFieldLocation) => fs.existsSync(potentialFieldLocation)), + (potentialFieldLocations) => + potentialFieldLocations.map((potentialFieldLocation) => + new MetadataResolver().getComponentsFromPath(potentialFieldLocation), + ), + (fieldComponents) => fieldComponents.flat(), + (fieldComponents) => fieldComponents.filter((fieldComponent) => fieldComponent.type.name === 'CustomField'), + ); + + return [...components, ...fieldComponents]; } - exists(path: string): boolean { - return fs.existsSync(path); + readFile(pathToRead: string): string { + return fs.readFileSync(pathToRead, 'utf8'); } } diff --git a/src/application/generators/changelog.ts b/src/application/generators/changelog.ts index 8556deb2..d72dd1f9 100644 --- a/src/application/generators/changelog.ts +++ b/src/application/generators/changelog.ts @@ -1,5 +1,5 @@ import { pipe } from 'fp-ts/function'; -import { PageData, Skip, UnparsedSourceFile, UserDefinedChangelogConfig } from '../../core/shared/types'; +import { PageData, Skip, UnparsedApexBundle, UserDefinedChangelogConfig } from '../../core/shared/types'; import * as TE from 'fp-ts/TaskEither'; import { writeFiles } from '../file-writer'; import { ChangeLogPageData, generateChangeLog } from '../../core/changelog/generate-change-log'; @@ -7,8 +7,8 @@ import { FileWritingError } from '../errors'; import { isSkip } from '../../core/shared/utils'; export default function generate( - oldBundles: UnparsedSourceFile[], - newBundles: UnparsedSourceFile[], + oldBundles: UnparsedApexBundle[], + newBundles: UnparsedApexBundle[], config: UserDefinedChangelogConfig, ) { function handleFile(file: ChangeLogPageData | Skip) { diff --git a/src/application/generators/markdown.ts b/src/application/generators/markdown.ts index 50fa766a..56f2e9e1 100644 --- a/src/application/generators/markdown.ts +++ b/src/application/generators/markdown.ts @@ -3,7 +3,7 @@ import { pipe } from 'fp-ts/function'; import { PageData, PostHookDocumentationBundle, - UnparsedSourceFile, + UnparsedSourceBundle, UserDefinedMarkdownConfig, } from '../../core/shared/types'; import { referenceGuideTemplate } from '../../core/markdown/templates/reference-guide'; @@ -12,14 +12,14 @@ import { isSkip } from '../../core/shared/utils'; import { writeFiles } from '../file-writer'; import { FileWritingError } from '../errors'; -export default function generate(bundles: UnparsedSourceFile[], config: UserDefinedMarkdownConfig) { +export default function generate(bundles: UnparsedSourceBundle[], config: UserDefinedMarkdownConfig) { return pipe( generateDocumentationBundle(bundles, config), TE.flatMap((files) => writeFilesToSystem(files, config.targetDir)), ); } -function generateDocumentationBundle(bundles: UnparsedSourceFile[], config: UserDefinedMarkdownConfig) { +function generateDocumentationBundle(bundles: UnparsedSourceBundle[], config: UserDefinedMarkdownConfig) { return generateDocs(bundles, { ...config, referenceGuideTemplate: referenceGuideTemplate, diff --git a/src/application/generators/openapi.ts b/src/application/generators/openapi.ts index 8a15d2cd..79ecf7ad 100644 --- a/src/application/generators/openapi.ts +++ b/src/application/generators/openapi.ts @@ -6,17 +6,17 @@ import { Logger } from '#utils/logger'; import ErrorLogger from '#utils/error-logger'; import { reflect, ReflectionResult } from '@cparra/apex-reflection'; import Manifest from '../../core/manifest'; -import { PageData, UnparsedSourceFile, UserDefinedOpenApiConfig } from '../../core/shared/types'; +import { PageData, UnparsedApexBundle, UserDefinedOpenApiConfig } from '../../core/shared/types'; import { OpenApiDocsProcessor } from '../../core/openapi/open-api-docs-processor'; import { writeFiles } from '../file-writer'; import { pipe } from 'fp-ts/function'; import * as TE from 'fp-ts/TaskEither'; -import { OpenApiSettings } from '../../core/openApiSettings'; +import { OpenApiSettings } from '../../core/openapi/openApiSettings'; import { apply } from '#utils/fp'; export default async function openApi( logger: Logger, - fileBodies: UnparsedSourceFile[], + fileBodies: UnparsedApexBundle[], config: UserDefinedOpenApiConfig, ) { OpenApiSettings.build({ @@ -46,7 +46,7 @@ export default async function openApi( ErrorLogger.logErrors(logger, filteredTypes); } -function reflectionWithLogger(logger: Logger, apexBundle: UnparsedSourceFile): ReflectionResult { +function reflectionWithLogger(logger: Logger, apexBundle: UnparsedApexBundle): ReflectionResult { const result = reflect(apexBundle.content); if (result.error) { logger.error(`${apexBundle.filePath} - Parsing error ${result.error?.message}`); diff --git a/src/application/source-code-file-reader.ts b/src/application/source-code-file-reader.ts new file mode 100644 index 00000000..7d9b5da3 --- /dev/null +++ b/src/application/source-code-file-reader.ts @@ -0,0 +1,168 @@ +import { FileSystem } from './file-system'; +import { UnparsedApexBundle, UnparsedCustomFieldBundle, UnparsedCustomObjectBundle } from '../core/shared/types'; +import { minimatch } from 'minimatch'; +import { flow, pipe } from 'fp-ts/function'; +import { apply } from '#utils/fp'; + +type ComponentTypes = 'ApexClass' | 'CustomObject' | 'CustomField'; + +/** + * Simplified representation of a source component, with only + * the required information we need. + */ +export type SourceComponentAdapter = { + name: string; + type: { + id: string; + name: string; + }; + xml?: string; + content?: string; + parent?: { + name: string; + }; +}; + +type ApexClassApexSourceComponent = { + type: 'ApexClass'; + name: string; + xmlPath?: string; + contentPath: string; +}; + +type CustomObjectSourceComponent = { + type: 'CustomObject'; + name: string; + contentPath: string; +}; + +type CustomFieldSourceComponent = { + type: 'CustomField'; + name: string; + contentPath: string; + parentName: string; +}; + +function getApexSourceComponents( + includeMetadata: boolean, + sourceComponents: SourceComponentAdapter[], +): ApexClassApexSourceComponent[] { + return sourceComponents + .filter((component) => component.type.name === 'ApexClass') + .map((component) => ({ + type: 'ApexClass' as const, + name: component.name, + xmlPath: includeMetadata ? component.xml : undefined, + contentPath: component.content!, + })); +} + +function toUnparsedApexBundle( + fileSystem: FileSystem, + apexSourceComponents: ApexClassApexSourceComponent[], +): UnparsedApexBundle[] { + return apexSourceComponents.map((component) => { + const apexComponentTuple: [string, string | null] = [ + fileSystem.readFile(component.contentPath), + component.xmlPath ? fileSystem.readFile(component.xmlPath) : null, + ]; + + return { + type: 'apex', + name: component.name, + filePath: component.contentPath, + content: apexComponentTuple[0], + metadataContent: apexComponentTuple[1], + }; + }); +} + +function getCustomObjectSourceComponents(sourceComponents: SourceComponentAdapter[]): CustomObjectSourceComponent[] { + return sourceComponents + .filter((component) => component.type.name === 'CustomObject') + .map((component) => ({ + name: component.name, + type: 'CustomObject' as const, + contentPath: component.xml!, + })); +} + +function toUnparsedSObjectBundle( + fileSystem: FileSystem, + customObjectSourceComponents: CustomObjectSourceComponent[], +): UnparsedCustomObjectBundle[] { + return customObjectSourceComponents.map((component) => { + return { + type: 'customobject', + name: component.name, + filePath: component.contentPath, + content: fileSystem.readFile(component.contentPath), + }; + }); +} + +function getCustomFieldSourceComponents(sourceComponents: SourceComponentAdapter[]): CustomFieldSourceComponent[] { + return sourceComponents + .filter((component) => component.type.name === 'CustomField') + .map((component) => ({ + name: component.name, + type: 'CustomField' as const, + contentPath: component.xml!, + parentName: component.parent!.name, + })); +} + +function toUnparsedCustomFieldBundle( + fileSystem: FileSystem, + customFieldSourceComponents: CustomFieldSourceComponent[], +): UnparsedCustomFieldBundle[] { + return customFieldSourceComponents.map((component) => ({ + type: 'customfield', + name: component.name, + filePath: component.contentPath, + content: fileSystem.readFile(component.contentPath), + parentName: component.parentName, + })); +} + +/** + * Reads from source code files and returns their raw body. + */ +export function processFiles(fileSystem: FileSystem) { + return ( + componentTypesToRetrieve: T, + options: { includeMetadata: boolean } = { includeMetadata: false }, + ) => { + const converters: Record< + ComponentTypes, + ( + components: SourceComponentAdapter[], + ) => (UnparsedApexBundle | UnparsedCustomObjectBundle | UnparsedCustomFieldBundle)[] + > = { + ApexClass: flow(apply(getApexSourceComponents, options.includeMetadata), (apexSourceComponents) => + toUnparsedApexBundle(fileSystem, apexSourceComponents), + ), + CustomObject: flow(getCustomObjectSourceComponents, (customObjectSourceComponents) => + toUnparsedSObjectBundle(fileSystem, customObjectSourceComponents), + ), + CustomField: flow(getCustomFieldSourceComponents, (customFieldSourceComponents) => + toUnparsedCustomFieldBundle(fileSystem, customFieldSourceComponents), + ), + }; + + const convertersToUse = componentTypesToRetrieve.map((componentType) => converters[componentType]); + + return (rootPath: string, exclude: string[]) => { + return pipe( + fileSystem.getComponents(rootPath), + (components) => components.filter((component) => !isExcluded(component.content!, exclude)), + (components) => convertersToUse.map((converter) => converter(components)), + (bundles) => bundles.flat(), + ); + }; + }; +} + +function isExcluded(filePath: string, exclude: string[]): boolean { + return exclude.some((pattern) => minimatch(filePath, pattern)); +} diff --git a/src/cli/args.ts b/src/cli/args.ts index 52e38f74..9f6cedc5 100644 --- a/src/cli/args.ts +++ b/src/cli/args.ts @@ -122,7 +122,6 @@ function extractArgsForCommandsProvidedInConfig( return pipe( extractMultiCommandConfig(extractFromProcessFn, 'markdown', generatorConfig), E.map((cliArgs) => { - console.log('markdown', cliArgs); return cliArgs; }), E.map((cliArgs) => ({ ...configOnlyMarkdownDefaults, ...generatorConfig, ...cliArgs })), @@ -136,7 +135,6 @@ function extractArgsForCommandsProvidedInConfig( return pipe( extractMultiCommandConfig(extractFromProcessFn, 'changelog', generatorConfig), E.map((cliArgs) => { - console.log('changelog', cliArgs); return cliArgs; }), E.map((cliArgs) => ({ ...configOnlyChangelogDefaults, ...generatorConfig, ...cliArgs })), @@ -224,7 +222,6 @@ function extractMultiCommandConfig( } const options = getOptions(command); - console.log('config', config); return E.tryCatch(() => { return yargs(extractFromProcessFn()) .config(config) diff --git a/src/cli/commands/markdown.ts b/src/cli/commands/markdown.ts index 46cfb46b..b8531a9f 100644 --- a/src/cli/commands/markdown.ts +++ b/src/cli/commands/markdown.ts @@ -28,6 +28,11 @@ export const markdownOptions: { [key: string]: Options } = { default: markdownDefaults.defaultGroupName, describe: 'Defines the @group name to be used when a file does not specify it.', }, + customObjectGroupName: { + type: 'string', + default: markdownDefaults.customObjectsGroupName, + describe: 'The name under which custom objects will be grouped in the Reference Guide', + }, namespace: { type: 'string', describe: 'The package namespace, if any. If provided, it will be added to the generated files.', diff --git a/src/core/changelog/__test__/generating-change-log.spec.ts b/src/core/changelog/__test__/generating-change-log.spec.ts index 55c9bf33..28e9512e 100644 --- a/src/core/changelog/__test__/generating-change-log.spec.ts +++ b/src/core/changelog/__test__/generating-change-log.spec.ts @@ -1,4 +1,4 @@ -import { UnparsedSourceFile } from '../../shared/types'; +import { UnparsedApexBundle } from '../../shared/types'; import { ChangeLogPageData, generateChangeLog } from '../generate-change-log'; import { assertEither } from '../../test-helpers/assert-either'; import { isSkip } from '../../shared/utils'; @@ -34,8 +34,8 @@ describe('when generating a changelog', () => { describe('that does not include new classes', () => { it('should not have a section for new classes', async () => { - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = []; + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = []; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -47,9 +47,9 @@ describe('when generating a changelog', () => { it('should include a section for new classes', async () => { const newClassSource = 'class Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -60,9 +60,9 @@ describe('when generating a changelog', () => { it('should include the new class name', async () => { const newClassSource = 'class Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -78,9 +78,9 @@ describe('when generating a changelog', () => { class Test {} `; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -93,9 +93,9 @@ describe('when generating a changelog', () => { it('should include a section for new interfaces', async () => { const newInterfaceSource = 'interface Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newInterfaceSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newInterfaceSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -106,9 +106,9 @@ describe('when generating a changelog', () => { it('should include the new interface name', async () => { const newInterfaceSource = 'interface Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newInterfaceSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newInterfaceSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -124,9 +124,9 @@ describe('when generating a changelog', () => { interface Test {} `; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newInterfaceSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newInterfaceSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -141,8 +141,10 @@ describe('when generating a changelog', () => { it('should include a section for new enums', async () => { const newEnumSource = 'enum Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [{ content: newEnumSource, filePath: 'Test.cls', metadataContent: null }]; + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newEnumSource, filePath: 'Test.cls', metadataContent: null }, + ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -152,8 +154,10 @@ describe('when generating a changelog', () => { it('should include the new enum name', async () => { const newEnumSource = 'enum Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [{ content: newEnumSource, filePath: 'Test.cls', metadataContent: null }]; + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newEnumSource, filePath: 'Test.cls', metadataContent: null }, + ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -168,8 +172,10 @@ describe('when generating a changelog', () => { enum Test {} `; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [{ content: newEnumSource, filePath: 'Test.cls', metadataContent: null }]; + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newEnumSource, filePath: 'Test.cls', metadataContent: null }, + ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -181,9 +187,9 @@ describe('when generating a changelog', () => { it('should not include them', async () => { const newClassSource = 'class Test {}'; - const oldBundle: UnparsedSourceFile[] = []; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = []; + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, { ...config, scope: ['global'] })(); @@ -196,10 +202,10 @@ describe('when generating a changelog', () => { it('should include a section for removed types', async () => { const oldClassSource = 'class Test {}'; - const oldBundle: UnparsedSourceFile[] = [ - { content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, ]; - const newBundle: UnparsedSourceFile[] = []; + const newBundle: UnparsedApexBundle[] = []; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -209,10 +215,10 @@ describe('when generating a changelog', () => { it('should include the removed type name', async () => { const oldClassSource = 'class Test {}'; - const oldBundle: UnparsedSourceFile[] = [ - { content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, ]; - const newBundle: UnparsedSourceFile[] = []; + const newBundle: UnparsedApexBundle[] = []; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -225,12 +231,12 @@ describe('when generating a changelog', () => { const oldClassSource = 'class Test {}'; const newClassSource = 'class Test { void myMethod() {} }'; - const oldBundle: UnparsedSourceFile[] = [ - { content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, ]; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -244,12 +250,12 @@ describe('when generating a changelog', () => { const oldClassSource = 'class Test {}'; const newClassSource = 'class Test { void myMethod() {} }'; - const oldBundle: UnparsedSourceFile[] = [ - { content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, ]; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); @@ -261,12 +267,12 @@ describe('when generating a changelog', () => { const oldClassSource = 'class Test {}'; const newClassSource = 'class Test { void myMethod() {} }'; - const oldBundle: UnparsedSourceFile[] = [ - { content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, + const oldBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: oldClassSource, filePath: 'Test.cls', metadataContent: null }, ]; - const newBundle: UnparsedSourceFile[] = [ - { content: newClassSource, filePath: 'Test.cls', metadataContent: null }, + const newBundle: UnparsedApexBundle[] = [ + { type: 'apex', name: 'Test', content: newClassSource, filePath: 'Test.cls', metadataContent: null }, ]; const result = await generateChangeLog(oldBundle, newBundle, config)(); diff --git a/src/core/changelog/generate-change-log.ts b/src/core/changelog/generate-change-log.ts index 371073ca..9552308f 100644 --- a/src/core/changelog/generate-change-log.ts +++ b/src/core/changelog/generate-change-log.ts @@ -1,15 +1,15 @@ -import { ParsedFile, Skip, UnparsedSourceFile, UserDefinedChangelogConfig } from '../shared/types'; +import { ParsedFile, Skip, UnparsedApexBundle, UserDefinedChangelogConfig } from '../shared/types'; import { pipe } from 'fp-ts/function'; import * as TE from 'fp-ts/TaskEither'; -import { reflectBundles } from '../reflection/reflect-source'; +import { reflectApexSource } from '../reflection/apex/reflect-apex-source'; import { Changelog, hasChanges, processChangelog, VersionManifest } from './process-changelog'; import { convertToRenderableChangelog, RenderableChangelog } from './renderable-changelog'; import { CompilationRequest, Template } from '../template'; import { changelogTemplate } from './templates/changelog-template'; import { ReflectionErrors } from '../errors/errors'; import { apply } from '#utils/fp'; -import { filterScope } from '../reflection/filter-scope'; -import { skip } from '../shared/utils'; +import { filterScope } from '../reflection/apex/filter-scope'; +import { isApexType, skip } from '../shared/utils'; export type ChangeLogPageData = { content: string; @@ -17,14 +17,14 @@ export type ChangeLogPageData = { }; export function generateChangeLog( - oldBundles: UnparsedSourceFile[], - newBundles: UnparsedSourceFile[], + oldBundles: UnparsedApexBundle[], + newBundles: UnparsedApexBundle[], config: Omit, ): TE.TaskEither { const filterOutOfScope = apply(filterScope, config.scope); - function reflect(sourceFiles: UnparsedSourceFile[]) { - return pipe(reflectBundles(sourceFiles), TE.map(filterOutOfScope)); + function reflect(sourceFiles: UnparsedApexBundle[]) { + return pipe(reflectApexSource(sourceFiles), TE.map(filterOutOfScope)); } const convertToPageData = apply(toPageData, config.fileName); @@ -52,7 +52,10 @@ export function generateChangeLog( function toManifests({ oldVersion, newVersion }: { oldVersion: ParsedFile[]; newVersion: ParsedFile[] }) { function parsedFilesToManifest(parsedFiles: ParsedFile[]): VersionManifest { return { - types: parsedFiles.map((parsedFile) => parsedFile.type), + types: parsedFiles + .map((parsedFile) => parsedFile.type) + // Changelog does not currently support object types + .filter((type) => isApexType(type)), }; } diff --git a/src/core/markdown/__test__/generating-any-apex-doc.spec.ts b/src/core/markdown/__test__/generating-any-apex-doc.spec.ts new file mode 100644 index 00000000..44ce4404 --- /dev/null +++ b/src/core/markdown/__test__/generating-any-apex-doc.spec.ts @@ -0,0 +1,269 @@ +import { extendExpect } from './expect-extensions'; +import { unparsedApexBundleFromRawString, generateDocs } from './test-helpers'; +import { assertEither } from '../../test-helpers/assert-either'; + +describe('When generating documentation', () => { + beforeAll(() => { + extendExpect(); + }); + + describe('the documentation content', () => { + it('displays type level annotations', async () => { + const input = ` + @NamespaceAccessible + public class MyClass { + @Deprecated + public void myMethod() {} + } + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE')); + assertEither(result, (data) => expect(data).firstDocContains('DEPRECATED')); + }); + + it('displays metadata as annotations', async () => { + const input = 'public class MyClass {}'; + const metadata = ` + + + 59.0 + Active + + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input, metadata)])(); + + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('APIVERSION')); + assertEither(result, (data) => expect(data).firstDocContains('STATUS')); + }); + + it('displays the description when no @description tag is used', async () => { + const input = ` + /** + * This is a description + */ + public class MyClass {} + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('This is a description')); + }); + + it('displays the description when a @description tag is used', async () => { + const input = ` + /** + * @description This is a description + */ + public class MyClass {}`; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('This is a description')); + }); + + it('display custom documentation tags', async () => { + const input = ` + /** + * @custom-tag My Value + */ + public class MyClass {} + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('Custom Tag')); + assertEither(result, (data) => expect(data).firstDocContains('My Value')); + }); + + it('displays the group', async () => { + const input = ` + /** + * @group MyGroup + */ + public class MyClass {}`; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('Group')); + assertEither(result, (data) => expect(data).firstDocContains('MyGroup')); + }); + + it('displays the author', async () => { + const input = ` + /** + * @author John Doe + */ + public class MyClass {}`; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('Author')); + assertEither(result, (data) => expect(data).firstDocContains('John Doe')); + }); + + it('displays the date', async () => { + const input = ` + /** + * @date 2021-01-01 + */ + public class MyClass {}`; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('Date')); + assertEither(result, (data) => expect(data).firstDocContains('2021-01-01')); + }); + + it('displays descriptions with links', async () => { + const input1 = ` + /** + * @description This is a description with a {@link ClassRef} reference + */ + public enum MyClass {} + `; + + const input2 = 'public class ClassRef {}'; + + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + ])(); + expect(result).documentationBundleHasLength(2); + assertEither(result, (data) => + expect(data).firstDocContains('This is a description with a [ClassRef](ClassRef.md) reference'), + ); + }); + + it('displays descriptions with emails', async () => { + const input = ` + /** + * @description This is a description with an {@email test@testerson.com} email + */ + public class MyClass {} + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => + expect(data).firstDocContains( + 'This is a description with an [test@testerson.com](mailto:test@testerson.com) email', + ), + ); + }); + + it('displays @sees with accurately resolved links', async () => { + const input1 = ` + /** + * @see ClassRef + */ + public class MyClass {} + `; + + const input2 = 'public class ClassRef {}'; + + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + ])(); + expect(result).documentationBundleHasLength(2); + assertEither(result, (data) => expect(data).firstDocContains('See')); + assertEither(result, (data) => expect(data).firstDocContains('[ClassRef](ClassRef.md)')); + }); + + it('displays @sees without links when the reference is not found', async () => { + const input = ` + /** + * @see ClassRef + */ + public class MyClass {} + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('See')); + assertEither(result, (data) => expect(data).firstDocContains('ClassRef')); + }); + + it('displays the namespace if present in the config', async () => { + const input = 'public class MyClass {}'; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { namespace: 'MyNamespace' })(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('## Namespace')); + assertEither(result, (data) => expect(data).firstDocContains('MyNamespace')); + }); + + it('does not display the namespace if not present in the config', async () => { + const input = 'public class MyClass {}'; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContainsNot('## Namespace')); + }); + + it('displays a mermaid diagram', async () => { + const input = ` + /** + * @mermaid + * \`\`\`mermaid + * graph TD + * A[Square Rect] -- Link text --> B((Circle)) + * A --> C(Round Rect) + * B --> D{Rhombus} + * C --> D + * \`\`\` + */ + public class MyClass {} + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('```mermaid')); + assertEither(result, (data) => expect(data).firstDocContains('graph TD')); + }); + + it('displays an example code block', async () => { + const input = ` + /** + * @example + * \`\`\`apex + * public class MyClass { + * public void myMethod() { + * System.debug('Hello, World!'); + * } + * } + * \`\`\` + */ + public class MyClass {}`; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); + + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('```apex')); + assertEither(result, (data) => expect(data).firstDocContains('public class MyClass')); + }); + + it('does not display tags marked as excluded', async () => { + const input = ` + /** + * @see ClassRef + */ + public class MyClass {} + `; + + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { + excludeTags: ['see'], + })(); + + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContainsNot('See')); + }); + }); +}); diff --git a/src/core/markdown/__test__/generating-class-docs.spec.ts b/src/core/markdown/__test__/generating-class-docs.spec.ts index 9c4ab2c5..56ad9a36 100644 --- a/src/core/markdown/__test__/generating-class-docs.spec.ts +++ b/src/core/markdown/__test__/generating-class-docs.spec.ts @@ -1,5 +1,5 @@ import { extendExpect } from './expect-extensions'; -import { apexBundleFromRawString, generateDocs } from './test-helpers'; +import { unparsedApexBundleFromRawString, generateDocs } from './test-helpers'; import { assertEither } from '../../test-helpers/assert-either'; describe('When generating documentation for a class', () => { @@ -15,7 +15,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Methods')); }); @@ -28,7 +28,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aMethodIndex = data.docs[0].content.indexOf('aMethod'); @@ -45,7 +45,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aMethodIndex = data.docs[0].content.indexOf('aMethod'); @@ -61,7 +61,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Properties')); }); @@ -74,7 +74,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aPropertyIndex = data.docs[0].content.indexOf('aProperty'); @@ -91,7 +91,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aPropertyIndex = data.docs[0].content.indexOf('aProperty'); @@ -107,7 +107,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Fields')); }); @@ -120,7 +120,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aFieldIndex = data.docs[0].content.indexOf('aField'); @@ -137,7 +137,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aFieldIndex = data.docs[0].content.indexOf('aField'); @@ -153,7 +153,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Constructors')); }); @@ -165,7 +165,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Classes')); }); @@ -178,7 +178,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aInnerClassIndex = data.docs[0].content.indexOf('AInnerClass'); @@ -195,7 +195,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aInnerClassIndex = data.docs[0].content.indexOf('AInnerClass'); @@ -211,7 +211,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Interfaces')); }); @@ -224,7 +224,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aInnerInterfaceIndex = data.docs[0].content.indexOf('AInnerInterface'); @@ -241,7 +241,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aInnerInterfaceIndex = data.docs[0].content.indexOf('AInnerInterface'); @@ -257,7 +257,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Enums')); }); @@ -270,7 +270,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aInnerEnumIndex = data.docs[0].content.indexOf('AInnerEnum'); @@ -287,7 +287,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { const aInnerEnumIndex = data.docs[0].content.indexOf('AInnerEnum'); @@ -313,7 +313,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('```mermaid')); assertEither(result, (data) => expect(data).firstDocContains('graph TD')); @@ -334,7 +334,7 @@ describe('When generating documentation for a class', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('```apex')); assertEither(result, (data) => expect(data).firstDocContains('public class MyClass')); @@ -351,7 +351,10 @@ describe('When generating documentation for a class', () => { public class AnotherClass extends MyClass {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + ])(); expect(result).documentationBundleHasLength(2); assertEither(result, (data) => expect(data.docs.find((doc) => doc.source.name === 'AnotherClass')?.content).toContain('Inherited'), diff --git a/src/core/markdown/__test__/generating-custom-object-docs.spec.ts b/src/core/markdown/__test__/generating-custom-object-docs.spec.ts new file mode 100644 index 00000000..f08d0499 --- /dev/null +++ b/src/core/markdown/__test__/generating-custom-object-docs.spec.ts @@ -0,0 +1,129 @@ +import { extendExpect } from './expect-extensions'; +import { + customField, + customObjectGenerator, + generateDocs, + unparsedFieldBundleFromRawString, + unparsedObjectBundleFromRawString, +} from './test-helpers'; +import { assertEither } from '../../test-helpers/assert-either'; + +describe('Generates Custom Object documentation', () => { + beforeAll(() => { + extendExpect(); + }); + + describe('documentation content', () => { + it('displays the object label as a heading', async () => { + const input = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const result = await generateDocs([input])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('# MyTestObject')); + }); + + it('displays the object description', async () => { + const input = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const result = await generateDocs([input])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('test object for testing')); + }); + + it('displays the object api name', async () => { + const input = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const result = await generateDocs([input])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('`TestObject__c`')); + }); + + it('displays the Fields heading if fields are present', async () => { + const customObjectBundle = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const customFieldBundle = unparsedFieldBundleFromRawString({ + rawContent: customField, + filePath: 'src/object/TestField__c.field-meta.xml', + parentName: 'TestObject__c', + }); + + const result = await generateDocs([customObjectBundle, customFieldBundle])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('## Fields')); + }); + + it('does not display the Fields heading if no fields are present', async () => { + const input = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const result = await generateDocs([input])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).not.firstDocContains('## Fields')); + }); + + it('displays the field label as a heading', async () => { + const customObjectBundle = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const customFieldBundle = unparsedFieldBundleFromRawString({ + rawContent: customField, + filePath: 'src/object/TestField__c.field-meta.xml', + parentName: 'TestObject__c', + }); + + const result = await generateDocs([customObjectBundle, customFieldBundle])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('## PhotoUrl')); + }); + + it('displays the field description', async () => { + const customObjectBundle = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const customFieldBundle = unparsedFieldBundleFromRawString({ + rawContent: customField, + filePath: 'src/object/TestField__c.field-meta.xml', + parentName: 'TestObject__c', + }); + + const result = await generateDocs([customObjectBundle, customFieldBundle])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('A URL that points to a photo')); + }); + + it('displays the field api name', async () => { + const customObjectBundle = unparsedObjectBundleFromRawString({ + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }); + + const customFieldBundle = unparsedFieldBundleFromRawString({ + rawContent: customField, + filePath: 'src/object/TestField__c.field-meta.xml', + parentName: 'TestObject__c', + }); + + const result = await generateDocs([customObjectBundle, customFieldBundle])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => expect(data).firstDocContains('`TestField__c`')); + }); + }); +}); diff --git a/src/core/markdown/__test__/generating-docs.spec.ts b/src/core/markdown/__test__/generating-docs.spec.ts index 769300f4..e8f6fb32 100644 --- a/src/core/markdown/__test__/generating-docs.spec.ts +++ b/src/core/markdown/__test__/generating-docs.spec.ts @@ -1,6 +1,11 @@ import { DocPageData, PostHookDocumentationBundle } from '../../shared/types'; import { extendExpect } from './expect-extensions'; -import { apexBundleFromRawString, generateDocs } from './test-helpers'; +import { + unparsedApexBundleFromRawString, + generateDocs, + unparsedObjectBundleFromRawString, + customObjectGenerator, +} from './test-helpers'; import { assertEither } from '../../test-helpers/assert-either'; function aSingleDoc(result: PostHookDocumentationBundle): DocPageData { @@ -14,7 +19,7 @@ describe('When generating documentation', () => { }); describe('the resulting files', () => { - it('are named after the type', async () => { + it('Apex code is named after the type', async () => { const properties: [string, string][] = [ ['public class MyClass {}', 'MyClass.md'], ['public interface MyInterface {}', 'MyInterface.md'], @@ -22,12 +27,12 @@ describe('When generating documentation', () => { ]; for (const [input, expected] of properties) { - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); assertEither(result, (data) => expect(aSingleDoc(data).outputDocPath).toContain(expected)); } }); - it('are placed in the miscellaneous folder if no group is provided', async () => { + it('Apex code is placed in the miscellaneous folder if no group is provided', async () => { const properties: [string, string][] = [ ['public class MyClass {}', 'miscellaneous'], ['public interface MyInterface {}', 'miscellaneous'], @@ -35,12 +40,42 @@ describe('When generating documentation', () => { ]; for (const [input, expected] of properties) { - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); assertEither(result, (data) => expect(aSingleDoc(data).outputDocPath).toContain(expected)); } }); - it('are placed in the slugified group folder if a group is provided', async () => { + it('SObject code is placed in the custom objects folder', async () => { + const properties: [ + { + rawContent: string; + filePath: string; + }, + string, + ][] = [ + [ + { + rawContent: customObjectGenerator(), + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + }, + 'custom-objects', + ], + [ + { + rawContent: customObjectGenerator(), + filePath: 'src/object/MySecondObject__c.object-meta.xml', + }, + 'custom-objects', + ], + ]; + + for (const [input, expected] of properties) { + const result = await generateDocs([unparsedObjectBundleFromRawString(input)])(); + assertEither(result, (data) => expect(aSingleDoc(data).outputDocPath).toContain(expected)); + } + }); + + it('Apex code is placed in the slugified group folder if a group is provided', async () => { const properties: [string, string][] = [ [ `/** @@ -66,14 +101,14 @@ describe('When generating documentation', () => { ]; for (const [input, expected] of properties) { - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); assertEither(result, (data) => expect(aSingleDoc(data).outputDocPath).toContain(expected)); } }); }); describe('the generated bundles', () => { - it('return the type', async () => { + it('Apex code returns the type', async () => { const properties: [string, string][] = [ ['public class MyClass {}', 'class'], ['public interface MyInterface {}', 'interface'], @@ -81,21 +116,61 @@ describe('When generating documentation', () => { ]; for (const [input, expected] of properties) { - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); assertEither(result, (data) => expect(aSingleDoc(data).source.type).toBe(expected)); } }); - it('do not return files out of scope', async () => { + it('SObjects return the type', async () => { + const properties: [ + { + rawContent: string; + filePath: string; + }, + string, + ][] = [ + [ + { + rawContent: customObjectGenerator(), + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + }, + 'customobject', + ], + ]; + + for (const [input, expected] of properties) { + const result = await generateDocs([unparsedObjectBundleFromRawString(input)])(); + assertEither(result, (data) => expect(aSingleDoc(data).source.type).toBe(expected)); + } + }); + + it('do not return Apex files out of scope', async () => { const input1 = 'global class MyClass {}'; const input2 = 'public class AnotherClass {}'; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)], { - scope: ['global'], - })(); + const result = await generateDocs( + [unparsedApexBundleFromRawString(input1), unparsedApexBundleFromRawString(input2)], + { + scope: ['global'], + }, + )(); expect(result).documentationBundleHasLength(1); }); + it('does not return non-deployed custom objects', async () => { + const input = customObjectGenerator({ deploymentStatus: 'InDevelopment', visibility: 'Public' }); + + const result = await generateDocs([unparsedObjectBundleFromRawString({ rawContent: input, filePath: 'test' })])(); + expect(result).documentationBundleHasLength(0); + }); + + it('does not return non-public custom objects', async () => { + const input = customObjectGenerator({ deploymentStatus: 'Deployed', visibility: 'Protected' }); + + const result = await generateDocs([unparsedObjectBundleFromRawString({ rawContent: input, filePath: 'test' })])(); + expect(result).documentationBundleHasLength(0); + }); + it('do not return files that have an @ignore in the docs', async () => { const input = ` /** @@ -103,13 +178,13 @@ describe('When generating documentation', () => { */ public class MyClass {}`; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(0); }); }); describe('the documentation content', () => { - it('includes a heading with the type name', async () => { + it('includes a heading with the type name for Apex code', async () => { const properties: [string, string][] = [ ['public class MyClass {}', 'MyClass Class'], ['public enum MyEnum {}', 'MyEnum Enum'], @@ -117,263 +192,19 @@ describe('When generating documentation', () => { ]; for (const [input, expected] of properties) { - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains(expected)); } }); - it('displays type level annotations', async () => { - const input = ` - @NamespaceAccessible - public class MyClass { - @Deprecated - public void myMethod() {} - } - `; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE')); - assertEither(result, (data) => expect(data).firstDocContains('DEPRECATED')); - }); - - it('displays metadata as annotations', async () => { - const input = 'public class MyClass {}'; - const metadata = ` - - - 59.0 - Active - - `; - - const result = await generateDocs([apexBundleFromRawString(input, metadata)])(); - - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('APIVERSION')); - assertEither(result, (data) => expect(data).firstDocContains('STATUS')); - }); - - it('displays the description when no @description tag is used', async () => { - const input = ` - /** - * This is a description - */ - public class MyClass {} - `; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('This is a description')); - }); - - it('displays the description when a @description tag is used', async () => { - const input = ` - /** - * @description This is a description - */ - public class MyClass {}`; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('This is a description')); - }); - - it('display custom documentation tags', async () => { - const input = ` - /** - * @custom-tag My Value - */ - public class MyClass {} - `; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('Custom Tag')); - assertEither(result, (data) => expect(data).firstDocContains('My Value')); - }); - - it('displays the group', async () => { - const input = ` - /** - * @group MyGroup - */ - public class MyClass {}`; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('Group')); - assertEither(result, (data) => expect(data).firstDocContains('MyGroup')); - }); - - it('displays the author', async () => { - const input = ` - /** - * @author John Doe - */ - public class MyClass {}`; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('Author')); - assertEither(result, (data) => expect(data).firstDocContains('John Doe')); - }); - - it('displays the date', async () => { - const input = ` - /** - * @date 2021-01-01 - */ - public class MyClass {}`; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('Date')); - assertEither(result, (data) => expect(data).firstDocContains('2021-01-01')); - }); - - it('displays descriptions with links', async () => { - const input1 = ` - /** - * @description This is a description with a {@link ClassRef} reference - */ - public enum MyClass {} - `; - - const input2 = 'public class ClassRef {}'; - - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); - expect(result).documentationBundleHasLength(2); - assertEither(result, (data) => - expect(data).firstDocContains('This is a description with a [ClassRef](ClassRef.md) reference'), - ); - }); - - it('displays descriptions with emails', async () => { - const input = ` - /** - * @description This is a description with an {@email test@testerson.com} email - */ - public class MyClass {} - `; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => - expect(data).firstDocContains( - 'This is a description with an [test@testerson.com](mailto:test@testerson.com) email', - ), - ); - }); - - it('displays @sees with accurately resolved links', async () => { - const input1 = ` - /** - * @see ClassRef - */ - public class MyClass {} - `; - - const input2 = 'public class ClassRef {}'; - - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); - expect(result).documentationBundleHasLength(2); - assertEither(result, (data) => expect(data).firstDocContains('See')); - assertEither(result, (data) => expect(data).firstDocContains('[ClassRef](ClassRef.md)')); - }); - - it('displays @sees without links when the reference is not found', async () => { - const input = ` - /** - * @see ClassRef - */ - public class MyClass {} - `; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('See')); - assertEither(result, (data) => expect(data).firstDocContains('ClassRef')); - }); - - it('displays the namespace if present in the config', async () => { - const input = 'public class MyClass {}'; - - const result = await generateDocs([apexBundleFromRawString(input)], { namespace: 'MyNamespace' })(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('## Namespace')); - assertEither(result, (data) => expect(data).firstDocContains('MyNamespace')); - }); - - it('does not display the namespace if not present in the config', async () => { - const input = 'public class MyClass {}'; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContainsNot('## Namespace')); - }); - - it('displays a mermaid diagram', async () => { - const input = ` - /** - * @mermaid - * \`\`\`mermaid - * graph TD - * A[Square Rect] -- Link text --> B((Circle)) - * A --> C(Round Rect) - * B --> D{Rhombus} - * C --> D - * \`\`\` - */ - public class MyClass {} - `; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('```mermaid')); - assertEither(result, (data) => expect(data).firstDocContains('graph TD')); - }); - - it('displays an example code block', async () => { - const input = ` - /** - * @example - * \`\`\`apex - * public class MyClass { - * public void myMethod() { - * System.debug('Hello, World!'); - * } - * } - * \`\`\` - */ - public class MyClass {}`; - - const result = await generateDocs([apexBundleFromRawString(input)])(); - - expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContains('```apex')); - assertEither(result, (data) => expect(data).firstDocContains('public class MyClass')); - }); - - it('does not display tags marked as excluded', async () => { - const input = ` - /** - * @see ClassRef - */ - public class MyClass {} - `; - - const result = await generateDocs([apexBundleFromRawString(input)], { - excludeTags: ['see'], - })(); + it('includes a heading with the Custom Object label', async () => { + const input = customObjectGenerator(); + const result = await generateDocs([unparsedObjectBundleFromRawString({ rawContent: input, filePath: 'test' })])(); expect(result).documentationBundleHasLength(1); - assertEither(result, (data) => expect(data).firstDocContainsNot('See')); + assertEither(result, (data) => expect(data).firstDocContains('MyTestObject')); }); }); }); diff --git a/src/core/markdown/__test__/generating-enum-docs.spec.ts b/src/core/markdown/__test__/generating-enum-docs.spec.ts index f0f7aa67..66bf94bb 100644 --- a/src/core/markdown/__test__/generating-enum-docs.spec.ts +++ b/src/core/markdown/__test__/generating-enum-docs.spec.ts @@ -1,5 +1,5 @@ import { extendExpect } from './expect-extensions'; -import { apexBundleFromRawString, generateDocs } from './test-helpers'; +import { unparsedApexBundleFromRawString, generateDocs } from './test-helpers'; import { assertEither } from '../../test-helpers/assert-either'; describe('Generates enum documentation', () => { @@ -16,7 +16,7 @@ describe('Generates enum documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Values')); assertEither(result, (data) => expect(data).firstDocContains('VALUE1')); @@ -31,7 +31,7 @@ describe('Generates enum documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Values')); assertEither(result, (data) => { @@ -49,7 +49,7 @@ describe('Generates enum documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Values')); assertEither(result, (data) => { diff --git a/src/core/markdown/__test__/generating-interface-docs.spec.ts b/src/core/markdown/__test__/generating-interface-docs.spec.ts index c6d7e964..21afaf9c 100644 --- a/src/core/markdown/__test__/generating-interface-docs.spec.ts +++ b/src/core/markdown/__test__/generating-interface-docs.spec.ts @@ -1,5 +1,5 @@ import { extendExpect } from './expect-extensions'; -import { apexBundleFromRawString, generateDocs } from './test-helpers'; +import { unparsedApexBundleFromRawString, generateDocs } from './test-helpers'; import { assertEither } from '../../test-helpers/assert-either'; describe('Generates interface documentation', () => { @@ -16,7 +16,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('## Methods')); }); @@ -29,7 +29,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: true })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: true })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { expect(data.docs[0].content.indexOf('anotherMethod')).toBeLessThan(data.docs[0].content.indexOf('myMethod')); @@ -44,7 +44,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)], { sortAlphabetically: false })(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)], { sortAlphabetically: false })(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => { expect(data.docs[0].content.indexOf('myMethod')).toBeLessThan(data.docs[0].content.indexOf('anotherMethod')); @@ -68,7 +68,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('```mermaid')); assertEither(result, (data) => expect(data).firstDocContains('graph TD')); @@ -89,7 +89,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('```apex')); assertEither(result, (data) => expect(data).firstDocContains('public class MyClass')); @@ -102,7 +102,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('### Signature')); }); @@ -114,7 +114,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('### Parameters')); }); @@ -126,7 +126,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('### Return Type')); }); @@ -141,7 +141,7 @@ describe('Generates interface documentation', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect(data).firstDocContains('### Throws')); }); @@ -157,7 +157,10 @@ describe('Generates interface documentation', () => { public interface AnotherInterface extends MyInterface {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + ])(); expect(result).documentationBundleHasLength(2); assertEither(result, (data) => expect(data.docs.find((doc) => doc.outputDocPath.includes('AnotherInterface'))?.content).toContain( diff --git a/src/core/markdown/__test__/generating-reference-guide.spec.ts b/src/core/markdown/__test__/generating-reference-guide.spec.ts index ad64980c..510e9458 100644 --- a/src/core/markdown/__test__/generating-reference-guide.spec.ts +++ b/src/core/markdown/__test__/generating-reference-guide.spec.ts @@ -1,7 +1,12 @@ import { extendExpect } from './expect-extensions'; import { pipe } from 'fp-ts/function'; import * as E from 'fp-ts/Either'; -import { apexBundleFromRawString, generateDocs } from './test-helpers'; +import { + unparsedApexBundleFromRawString, + generateDocs, + customObjectGenerator, + unparsedObjectBundleFromRawString, +} from './test-helpers'; import { ReferenceGuidePageData } from '../../shared/types'; import { assertEither } from '../../test-helpers/assert-either'; @@ -38,8 +43,17 @@ describe('When generating the Reference Guide', () => { public class MyClass {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); - expect(result).documentationBundleHasLength(2); + const input3 = { + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }; + + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + unparsedObjectBundleFromRawString(input3), + ])(); + expect(result).documentationBundleHasLength(3); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('[MyEnum](miscellaneous/MyEnum.md)'), @@ -47,9 +61,14 @@ describe('When generating the Reference Guide', () => { assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('[MyClass](miscellaneous/MyClass.md)'), ); + assertEither(result, (data) => + expect((data.referenceGuide as ReferenceGuidePageData).content).toContain( + '[TestObject__c](custom-objects/TestObject__c.md)', + ), + ); }); - it('groups things under Miscellaneous if no group is provided', async () => { + it('groups Apex code under Miscellaneous if no group is provided', async () => { const input = ` public enum MyEnum { VALUE1, @@ -57,14 +76,14 @@ describe('When generating the Reference Guide', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Miscellaneous'), ); }); - it('group things under the provided group', async () => { + it('group Apex code under the provided group', async () => { const input = ` /** * @group MyGroup @@ -75,13 +94,41 @@ describe('When generating the Reference Guide', () => { } `; - const result = await generateDocs([apexBundleFromRawString(input)])(); + const result = await generateDocs([unparsedApexBundleFromRawString(input)])(); expect(result).documentationBundleHasLength(1); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## MyGroup'), ); }); + it('group SObjects under the Custom Objects group by default', async () => { + const input = { + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }; + + const result = await generateDocs([unparsedObjectBundleFromRawString(input)])(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => + expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Custom Objects'), + ); + }); + + it('groups SObjects under the provided group', async () => { + const input = { + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }; + + const result = await generateDocs([unparsedObjectBundleFromRawString(input)], { + customObjectsGroupName: 'MyCustomObjects', + })(); + expect(result).documentationBundleHasLength(1); + assertEither(result, (data) => + expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## MyCustomObjects'), + ); + }); + it('displays groups in alphabetical order', async () => { const input1 = ` /** @@ -100,7 +147,10 @@ describe('When generating the Reference Guide', () => { public class MyClass {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + ])(); expect(result).documentationBundleHasLength(2); pipe( result, @@ -133,14 +183,27 @@ describe('When generating the Reference Guide', () => { public class MyClass {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); - expect(result).documentationBundleHasLength(2); + const input3 = { + rawContent: customObjectGenerator(), + filePath: 'src/object/TestObject__c.object-meta.xml', + }; + + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + unparsedObjectBundleFromRawString(input3), + ])(); + + expect(result).documentationBundleHasLength(3); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Group1'), ); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('MyClass'), ); + assertEither(result, (data) => + expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('TestObject__c'), + ); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('MyEnum')); }); @@ -162,11 +225,24 @@ describe('When generating the Reference Guide', () => { public class MyClass {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); - expect(result).documentationBundleHasLength(2); + const input3 = { + rawContent: customObjectGenerator(), + filePath: 'src/object/ATestObject__c.object-meta.xml', + }; + + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + unparsedObjectBundleFromRawString(input3), + ])(); + + expect(result).documentationBundleHasLength(3); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('This is a description'), ); + assertEither(result, (data) => + expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('test object for testing'), + ); }); it('returns a reference guide with descriptions with links to all other files', async () => { @@ -188,7 +264,10 @@ describe('When generating the Reference Guide', () => { public class MyClass {} `; - const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])(); + const result = await generateDocs([ + unparsedApexBundleFromRawString(input1), + unparsedApexBundleFromRawString(input2), + ])(); expect(result).documentationBundleHasLength(2); assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('with a [MyClass](group2/MyClass.md)'), diff --git a/src/core/markdown/__test__/inheritance-chain.test.ts b/src/core/markdown/__test__/inheritance-chain.test.ts index 4b97fdaa..f6c76e59 100644 --- a/src/core/markdown/__test__/inheritance-chain.test.ts +++ b/src/core/markdown/__test__/inheritance-chain.test.ts @@ -1,5 +1,5 @@ import { ClassMirrorBuilder } from '../../../test-helpers/ClassMirrorBuilder'; -import { createInheritanceChain } from '../../reflection/inheritance-chain'; +import { createInheritanceChain } from '../../reflection/apex/inheritance-chain'; describe('inheritance chain for classes', () => { test('returns an empty list of the class does not extend any other class', () => { diff --git a/src/core/markdown/__test__/test-helpers.ts b/src/core/markdown/__test__/test-helpers.ts index a3cd95a8..d884958f 100644 --- a/src/core/markdown/__test__/test-helpers.ts +++ b/src/core/markdown/__test__/test-helpers.ts @@ -1,20 +1,54 @@ -import { UnparsedSourceFile } from '../../shared/types'; +import { + UnparsedApexBundle, + UnparsedCustomFieldBundle, + UnparsedCustomObjectBundle, + UnparsedSourceBundle, +} from '../../shared/types'; import { generateDocs as gen, MarkdownGeneratorConfig } from '../generate-docs'; import { referenceGuideTemplate } from '../templates/reference-guide'; -export function apexBundleFromRawString(raw: string, rawMetadata?: string): UnparsedSourceFile { +export function unparsedApexBundleFromRawString(raw: string, rawMetadata?: string): UnparsedApexBundle { return { + type: 'apex', + name: 'Test', filePath: 'test.cls', content: raw, metadataContent: rawMetadata ?? null, }; } -export function generateDocs(apexBundles: UnparsedSourceFile[], config?: Partial) { +export function unparsedObjectBundleFromRawString(meta: { + rawContent: string; + filePath: string; +}): UnparsedCustomObjectBundle { + return { + type: 'customobject', + name: 'TestObject__c', + filePath: meta.filePath, + content: meta.rawContent, + }; +} + +export function unparsedFieldBundleFromRawString(meta: { + rawContent: string; + filePath: string; + parentName: string; +}): UnparsedCustomFieldBundle { + return { + type: 'customfield', + name: 'TestField__c', + filePath: meta.filePath, + content: meta.rawContent, + parentName: meta.parentName, + }; +} + +export function generateDocs(apexBundles: UnparsedSourceBundle[], config?: Partial) { return gen(apexBundles, { targetDir: 'target', scope: ['global', 'public'], defaultGroupName: 'Miscellaneous', + customObjectsGroupName: 'Custom Objects', sortAlphabetically: false, referenceGuideTemplate: referenceGuideTemplate, linkingStrategy: 'relative', @@ -24,3 +58,29 @@ export function generateDocs(apexBundles: UnparsedSourceFile[], config?: Partial ...config, }); } + +export function customObjectGenerator( + config: { deploymentStatus: string; visibility: string } = { deploymentStatus: 'Deployed', visibility: 'Public' }, +) { + return ` + + + ${config.deploymentStatus} + test object for testing + + MyFirstObjects + ${config.visibility} + `; +} + +export const customField = ` + + + PhotoUrl__c + false + + false + false + Url + A URL that points to a photo +`; diff --git a/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts b/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts index 6b818cea..b69fdd7b 100644 --- a/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +++ b/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts @@ -1,4 +1,4 @@ -import { typeToRenderable } from '../apex-types'; +import { typeToRenderable } from '../type-to-renderable'; import { InterfaceMirrorBuilder } from '../../../../test-helpers/InterfaceMirrorBuilder'; import { AnnotationBuilder } from '../../../../test-helpers/AnnotationBuilder'; import { MethodMirrorBuilder, ParameterBuilder } from '../../../../test-helpers/MethodMirrorBuilder'; @@ -13,6 +13,7 @@ const defaultMarkdownGeneratorConfig: MarkdownGeneratorConfig = { scope: ['global', 'public'], namespace: '', defaultGroupName: 'Miscellaneous', + customObjectsGroupName: 'Custom Objects', referenceGuideTemplate: '', sortAlphabetically: false, linkingStrategy: 'relative', diff --git a/src/core/markdown/adapters/fields-and-properties.ts b/src/core/markdown/adapters/fields-and-properties.ts index f8450ce1..500fe5cc 100644 --- a/src/core/markdown/adapters/fields-and-properties.ts +++ b/src/core/markdown/adapters/fields-and-properties.ts @@ -2,7 +2,7 @@ import { CodeBlock, FieldMirrorWithInheritance, PropertyMirrorWithInheritance, - RenderableField, + RenderableApexField, GetRenderableContentByTypeName, } from '../../renderables/types'; import { adaptDocumentable } from '../../renderables/documentables'; @@ -11,7 +11,7 @@ export function adaptFieldOrProperty( field: FieldMirrorWithInheritance | PropertyMirrorWithInheritance, linkGenerator: GetRenderableContentByTypeName, baseHeadingLevel: number, -): RenderableField { +): RenderableApexField { function buildSignature(): CodeBlock { const { access_modifier, name } = field; const memberModifiers = field.memberModifiers.join(' '); diff --git a/src/core/markdown/adapters/reference-guide.ts b/src/core/markdown/adapters/reference-guide.ts index 5e645cd7..81804530 100644 --- a/src/core/markdown/adapters/reference-guide.ts +++ b/src/core/markdown/adapters/reference-guide.ts @@ -1,32 +1,32 @@ import { MarkdownGeneratorConfig } from '../generate-docs'; import { DocPageReference, ParsedFile } from '../../shared/types'; +import { getTypeGroup } from '../../shared/utils'; +import { ObjectMetadata } from '../../reflection/sobject/reflect-custom-object-sources'; import { Type } from '@cparra/apex-reflection'; export function parsedFilesToReferenceGuide( config: MarkdownGeneratorConfig, - parsedFiles: ParsedFile[], + parsedFiles: ParsedFile[], ): Record { return parsedFiles.reduce>((acc, parsedFile) => { - acc[parsedFile.type.name] = parsedFileToDocPageReference(config, parsedFile); + acc[parsedFile.source.name] = parsedFileToDocPageReference(config, parsedFile); return acc; }, {}); } -function parsedFileToDocPageReference(config: MarkdownGeneratorConfig, parsedFile: ParsedFile): DocPageReference { - const path = `${slugify(getTypeGroup(parsedFile.type, config))}/${parsedFile.type.name}.md`; +function parsedFileToDocPageReference( + config: MarkdownGeneratorConfig, + parsedFile: ParsedFile, +): DocPageReference { + const path = `${slugify(getTypeGroup(parsedFile.type, config))}/${parsedFile.source.name}.md`; return { source: parsedFile.source, - displayName: parsedFile.type.name, + displayName: parsedFile.source.name, outputDocPath: path, referencePath: path, }; } -function getTypeGroup(type: Type, config: MarkdownGeneratorConfig): string { - const groupAnnotation = type.docComment?.annotations.find((annotation) => annotation.name.toLowerCase() === 'group'); - return groupAnnotation?.body ?? config.defaultGroupName; -} - function slugify(text: string): string { return text .toLowerCase() diff --git a/src/core/markdown/adapters/renderable-bundle.ts b/src/core/markdown/adapters/renderable-bundle.ts index 2b0e580d..af4cd633 100644 --- a/src/core/markdown/adapters/renderable-bundle.ts +++ b/src/core/markdown/adapters/renderable-bundle.ts @@ -1,27 +1,37 @@ import { DocPageReference, ParsedFile } from '../../shared/types'; -import { Link, ReferenceGuideReference, Renderable, RenderableBundle } from '../../renderables/types'; -import { typeToRenderable } from './apex-types'; +import { + Link, + ReferenceGuideReference, + Renderable, + RenderableBundle, + RenderableContent, +} from '../../renderables/types'; +import { typeToRenderable } from './type-to-renderable'; import { adaptDescribable } from '../../renderables/documentables'; import { MarkdownGeneratorConfig } from '../generate-docs'; import { apply } from '#utils/fp'; -import { Type } from '@cparra/apex-reflection'; import { generateLink } from './generate-link'; +import { getTypeGroup } from '../../shared/utils'; +import { Type } from '@cparra/apex-reflection'; +import { ObjectMetadata } from '../../reflection/sobject/reflect-custom-object-sources'; export function parsedFilesToRenderableBundle( config: MarkdownGeneratorConfig, - parsedFiles: ParsedFile[], + parsedFiles: ParsedFile[], references: Record, ): RenderableBundle { const referenceFinder = apply(generateLink(config.linkingStrategy), references); - function toReferenceGuide(parsedFiles: ParsedFile[]): Record { + function toReferenceGuide( + parsedFiles: ParsedFile[], + ): Record { return parsedFiles.reduce>( addToReferenceGuide(apply(referenceFinder, '__base__'), config, references), {}, ); } - function toRenderables(parsedFiles: ParsedFile[]): Renderable[] { + function toRenderables(parsedFiles: ParsedFile[]): Renderable[] { return parsedFiles.reduce((acc, parsedFile) => { const renderable = typeToRenderable(parsedFile, apply(referenceFinder, parsedFile.source.name), config); acc.push(renderable); @@ -40,22 +50,29 @@ function addToReferenceGuide( config: MarkdownGeneratorConfig, references: Record, ) { - return (acc: Record, parsedFile: ParsedFile) => { + return (acc: Record, parsedFile: ParsedFile) => { const group: string = getTypeGroup(parsedFile.type, config); if (!acc[group]) { acc[group] = []; } acc[group].push({ - reference: references[parsedFile.type.name], - title: findLinkFromHome(parsedFile.type.name) as Link, - description: adaptDescribable(parsedFile.type.docComment?.descriptionLines, findLinkFromHome).description ?? null, + reference: references[parsedFile.source.name], + title: findLinkFromHome(parsedFile.source.name) as Link, + description: getRenderableDescription(parsedFile.type, findLinkFromHome), }); return acc; }; } -function getTypeGroup(type: Type, config: MarkdownGeneratorConfig): string { - const groupAnnotation = type.docComment?.annotations.find((annotation) => annotation.name.toLowerCase() === 'group'); - return groupAnnotation?.body ?? config.defaultGroupName; +function getRenderableDescription( + type: Type | ObjectMetadata, + findLinkFromHome: (referenceName: string) => string | Link, +): RenderableContent[] | null { + switch (type.type_name) { + case 'customobject': + return type.description ? [type.description] : null; + default: + return adaptDescribable(type.docComment?.descriptionLines, findLinkFromHome).description ?? null; + } } diff --git a/src/core/markdown/adapters/renderable-to-page-data.ts b/src/core/markdown/adapters/renderable-to-page-data.ts index cc291602..f5d84776 100644 --- a/src/core/markdown/adapters/renderable-to-page-data.ts +++ b/src/core/markdown/adapters/renderable-to-page-data.ts @@ -6,6 +6,7 @@ import { enumMarkdownTemplate } from '../templates/enum-template'; import { interfaceMarkdownTemplate } from '../templates/interface-template'; import { classMarkdownTemplate } from '../templates/class-template'; import { markdownDefaults } from '../../../defaults'; +import { customObjectTemplate } from '../templates/custom-object-template'; export const convertToDocumentationBundle = ( referenceGuideTitle: string, @@ -62,6 +63,7 @@ function renderableToPageData(referenceGuideReference: ReferenceGuideReference[] frontmatter: null, content: docContents, group: renderable.doc.group ?? markdownDefaults.defaultGroupName, + type: renderable.type, }; } @@ -77,6 +79,8 @@ function resolveApexTypeTemplate(renderable: Renderable): CompilationRequest { return interfaceMarkdownTemplate; case 'class': return classMarkdownTemplate; + case 'customobject': + return customObjectTemplate; } } diff --git a/src/core/markdown/adapters/apex-types.ts b/src/core/markdown/adapters/type-to-renderable.ts similarity index 77% rename from src/core/markdown/adapters/apex-types.ts rename to src/core/markdown/adapters/type-to-renderable.ts index 35708c37..cd66d8ec 100644 --- a/src/core/markdown/adapters/apex-types.ts +++ b/src/core/markdown/adapters/type-to-renderable.ts @@ -10,33 +10,42 @@ import { FieldMirrorWithInheritance, PropertyMirrorWithInheritance, GetRenderableContentByTypeName, + RenderableCustomObject, + RenderableCustomField, } from '../../renderables/types'; import { adaptDescribable, adaptDocumentable } from '../../renderables/documentables'; import { adaptConstructor, adaptMethod } from './methods-and-constructors'; import { adaptFieldOrProperty } from './fields-and-properties'; import { MarkdownGeneratorConfig } from '../generate-docs'; import { SourceFileMetadata } from '../../shared/types'; +import { ObjectMetadata } from '../../reflection/sobject/reflect-custom-object-sources'; +import { getTypeGroup } from '../../shared/utils'; +import { CustomFieldMetadata } from '../../reflection/sobject/reflect-custom-field-source'; -type GetReturnRenderable = T extends InterfaceMirror +type GetReturnRenderable = T extends InterfaceMirror ? RenderableInterface : T extends ClassMirror ? RenderableClass - : RenderableEnum; + : T extends EnumMirror + ? RenderableEnum + : RenderableCustomObject; -export function typeToRenderable( +export function typeToRenderable( parsedFile: { source: SourceFileMetadata; type: T }, linkGenerator: GetRenderableContentByTypeName, config: MarkdownGeneratorConfig, ): GetReturnRenderable & { filePath: string; namespace?: string } { - function getRenderable(): RenderableInterface | RenderableClass | RenderableEnum { + function getRenderable(): RenderableInterface | RenderableClass | RenderableEnum | RenderableCustomObject { const { type } = parsedFile; switch (type.type_name) { case 'enum': - return enumTypeToEnumSource(type as EnumMirror, linkGenerator) as RenderableEnum; + return enumTypeToEnumSource(type as EnumMirror, linkGenerator); case 'interface': - return interfaceTypeToInterfaceSource(type as InterfaceMirror, linkGenerator) as RenderableInterface; + return interfaceTypeToInterfaceSource(type as InterfaceMirror, linkGenerator); case 'class': - return classTypeToClassSource(type as ClassMirrorWithInheritanceChain, linkGenerator) as RenderableClass; + return classTypeToClassSource(type as ClassMirrorWithInheritanceChain, linkGenerator); + case 'customobject': + return objectMetadataToRenderable(type as ObjectMetadata, config); } } @@ -236,3 +245,55 @@ function singleGroup( value: toFlat(members, adapter, linkGenerator, headingLevel + 1), }; } + +function objectMetadataToRenderable( + objectMetadata: ObjectMetadata, + config: MarkdownGeneratorConfig, +): RenderableCustomObject { + return { + type: 'customobject', + headingLevel: 1, + apiName: getApiName(objectMetadata.name, config), + heading: objectMetadata.label, + name: objectMetadata.name, + doc: { + description: objectMetadata.description ? [objectMetadata.description] : [], + group: getTypeGroup(objectMetadata, config), + }, + hasFields: objectMetadata.fields.length > 0, + fields: { + headingLevel: 2, + heading: 'Fields', + value: objectMetadata.fields.map((field) => fieldMetadataToRenderable(field.type, config, 3)), + }, + }; +} + +function fieldMetadataToRenderable( + field: CustomFieldMetadata, + config: MarkdownGeneratorConfig, + headingLevel: number, +): RenderableCustomField { + return { + type: 'field', + headingLevel: headingLevel, + heading: field.label, + description: field.description ? [field.description] : [], + apiName: getApiName(field.name, config), + fieldType: field.type, + }; +} + +function getApiName(currentName: string, config: MarkdownGeneratorConfig) { + if (config.namespace) { + // first remove any `__c` suffix + const name = currentName.replace(/__c$/, ''); + // if the name still has an __, it's already namespaced + if (name.includes('__')) { + return name; + } + + return `${config.namespace}__${currentName}`; + } + return currentName; +} diff --git a/src/core/markdown/generate-docs.ts b/src/core/markdown/generate-docs.ts index 6bb0d92d..71a53ec9 100644 --- a/src/core/markdown/generate-docs.ts +++ b/src/core/markdown/generate-docs.ts @@ -9,7 +9,7 @@ import { Frontmatter, PostHookDocumentationBundle, ReferenceGuidePageData, - UnparsedSourceFile, + UnparsedApexBundle, TransformDocPage, TransformDocs, TransformReferenceGuide, @@ -17,20 +17,26 @@ import { DocPageReference, TransformReference, ParsedFile, + UnparsedCustomObjectBundle, + UnparsedSourceBundle, + UnparsedCustomFieldBundle, } from '../shared/types'; import { parsedFilesToRenderableBundle } from './adapters/renderable-bundle'; -import { reflectBundles } from '../reflection/reflect-source'; -import { addInheritanceChainToTypes } from '../reflection/inheritance-chain-expanion'; -import { addInheritedMembersToTypes } from '../reflection/inherited-member-expansion'; +import { reflectApexSource } from '../reflection/apex/reflect-apex-source'; +import { addInheritanceChainToTypes } from '../reflection/apex/inheritance-chain-expanion'; +import { addInheritedMembersToTypes } from '../reflection/apex/inherited-member-expansion'; import { convertToDocumentationBundle } from './adapters/renderable-to-page-data'; -import { filterScope } from '../reflection/filter-scope'; +import { filterScope } from '../reflection/apex/filter-scope'; import { Template } from '../template'; import { hookableTemplate } from './templates/hookable'; import { sortTypesAndMembers } from '../reflection/sort-types-and-members'; import { isSkip } from '../shared/utils'; import { parsedFilesToReferenceGuide } from './adapters/reference-guide'; -import { removeExcludedTags } from '../reflection/remove-excluded-tags'; -import { HookError } from '../errors/errors'; +import { removeExcludedTags } from '../reflection/apex/remove-excluded-tags'; +import { HookError, ReflectionErrors } from '../errors/errors'; +import { ObjectMetadata, reflectCustomObjectSources } from '../reflection/sobject/reflect-custom-object-sources'; +import { CustomFieldMetadata, reflectCustomFieldSources } from '../reflection/sobject/reflect-custom-field-source'; +import { Type } from '@cparra/apex-reflection'; export type MarkdownGeneratorConfig = Omit< UserDefinedMarkdownConfig, @@ -39,8 +45,7 @@ export type MarkdownGeneratorConfig = Omit< referenceGuideTemplate: string; }; -export function generateDocs(apexBundles: UnparsedSourceFile[], config: MarkdownGeneratorConfig) { - const filterOutOfScope = apply(filterScope, config.scope); +export function generateDocs(unparsedApexFiles: UnparsedSourceBundle[], config: MarkdownGeneratorConfig) { const convertToReferences = apply(parsedFilesToReferenceGuide, config); const convertToRenderableBundle = apply(parsedFilesToRenderableBundle, config); const convertToDocumentationBundleForTemplate = apply( @@ -49,23 +54,107 @@ export function generateDocs(apexBundles: UnparsedSourceFile[], config: Markdown config.referenceGuideTemplate, ); const sort = apply(sortTypesAndMembers, config.sortAlphabetically); + + function filterApexSourceFiles(sourceFiles: UnparsedSourceBundle[]): UnparsedApexBundle[] { + return sourceFiles.filter((sourceFile): sourceFile is UnparsedApexBundle => sourceFile.type === 'apex'); + } + + function filterCustomObjectsAndFields( + sourceFiles: UnparsedSourceBundle[], + ): (UnparsedCustomObjectBundle | UnparsedCustomFieldBundle)[] { + return sourceFiles.filter( + (sourceFile): sourceFile is UnparsedCustomObjectBundle => + sourceFile.type === 'customobject' || sourceFile.type === 'customfield', + ); + } + + function filterOutCustomFields(parsedFiles: ParsedFile[]): ParsedFile[] { + return parsedFiles.filter( + (parsedFile): parsedFile is ParsedFile => parsedFile.source.type !== 'customfield', + ); + } + + return pipe( + generateForApex(filterApexSourceFiles(unparsedApexFiles), config), + TE.chain((parsedApexFiles) => { + return pipe( + generateForObject(filterCustomObjectsAndFields(unparsedApexFiles)), + TE.map((parsedObjectFiles) => [...parsedApexFiles, ...parsedObjectFiles]), + ); + }), + TE.map((parsedFiles) => sort(filterOutCustomFields(parsedFiles))), + TE.bindTo('parsedFiles'), + TE.bind('references', ({ parsedFiles }) => + TE.right( + // Custom fields should not show up in the reference guide + convertToReferences(parsedFiles), + ), + ), + TE.flatMap(({ parsedFiles, references }) => transformReferenceHook(config)({ references, parsedFiles })), + TE.map(({ parsedFiles, references }) => convertToRenderableBundle(filterOutCustomFields(parsedFiles), references)), + TE.map(convertToDocumentationBundleForTemplate), + TE.flatMap(transformDocumentationBundleHook(config)), + TE.map(postHookCompile), + ); +} + +function generateForApex(apexBundles: UnparsedApexBundle[], config: MarkdownGeneratorConfig) { + const filterOutOfScope = apply(filterScope, config.scope); const removeExcluded = apply(removeExcludedTags, config.excludeTags); return pipe( apexBundles, - reflectBundles, + reflectApexSource, TE.map(filterOutOfScope), TE.map(addInheritedMembersToTypes), TE.map(addInheritanceChainToTypes), - TE.map(sort), TE.map(removeExcluded), - TE.bindTo('parsedFiles'), - TE.bind('references', ({ parsedFiles }) => TE.right(convertToReferences(parsedFiles))), - TE.flatMap(({ parsedFiles, references }) => transformReferenceHook(config)({ references, parsedFiles })), - TE.map(({ parsedFiles, references }) => convertToRenderableBundle(parsedFiles, references)), - TE.map(convertToDocumentationBundleForTemplate), - TE.flatMap(transformDocumentationBundleHook(config)), - TE.map(postHookCompile), + ); +} + +function generateForObject(objectBundles: (UnparsedCustomObjectBundle | UnparsedCustomFieldBundle)[]) { + function filterNonPublished(parsedFiles: ParsedFile[]): ParsedFile[] { + return parsedFiles.filter((parsedFile) => parsedFile.type.deploymentStatus === 'Deployed'); + } + + function filterNonPublic(parsedFiles: ParsedFile[]): ParsedFile[] { + return parsedFiles.filter((parsedFile) => parsedFile.type.visibility === 'Public'); + } + + const customObjects = objectBundles.filter( + (object): object is UnparsedCustomObjectBundle => object.type === 'customobject', + ); + + const customFields = objectBundles.filter( + (object): object is UnparsedCustomFieldBundle => object.type === 'customfield', + ); + + function generateForFields( + fields: UnparsedCustomFieldBundle[], + ): TE.TaskEither[]> { + return pipe(fields, reflectCustomFieldSources); + } + + return pipe( + customObjects, + reflectCustomObjectSources, + TE.map(filterNonPublished), + TE.map(filterNonPublic), + TE.bindTo('objects'), + TE.bind('fields', () => generateForFields(customFields)), + // Locate the fields for each object by using the parentName property + TE.map(({ objects, fields }) => { + return objects.map((object) => { + const objectFields = fields.filter((field) => field.type.parentName === object.type.name); + return { + ...object, + type: { + ...object.type, + fields: objectFields, + }, + } as ParsedFile; + }); + }), ); } diff --git a/src/core/markdown/templates/custom-object-template.ts b/src/core/markdown/templates/custom-object-template.ts new file mode 100644 index 00000000..ff0af90b --- /dev/null +++ b/src/core/markdown/templates/custom-object-template.ts @@ -0,0 +1,30 @@ +export const customObjectTemplate = ` +{{ heading headingLevel heading }} + +{{{renderContent doc.description}}} + +## API Name +\`{{apiName}}\` + +{{#if hasFields}} +{{ heading fields.headingLevel fields.heading }} +{{#each fields.value}} +{{ heading headingLevel heading }} + +{{#if description}} +{{{renderContent description}}} +{{/if}} + +**API Name** + +\`{{{apiName}}}\` + +**Type** + +*{{fieldType}}* + +{{#unless @last}}---{{/unless}} +{{/each}} +{{/if}} + +`.trim(); diff --git a/src/core/markdown/utils.ts b/src/core/markdown/utils.ts index 06f54064..39df2217 100644 --- a/src/core/markdown/utils.ts +++ b/src/core/markdown/utils.ts @@ -1,3 +1,5 @@ import { ParsedFile } from '../shared/types'; +import { Type } from '@cparra/apex-reflection'; -export const parsedFilesToTypes = (parsedFiles: ParsedFile[]) => parsedFiles.map((parsedFile) => parsedFile.type); +export const parsedFilesToTypes = (parsedFiles: ParsedFile[]) => + parsedFiles.map((parsedFile) => parsedFile.type); diff --git a/src/core/openapi/__tests__/open-api-docs-processor.spec.ts b/src/core/openapi/__tests__/open-api-docs-processor.spec.ts index 45817899..3951b896 100644 --- a/src/core/openapi/__tests__/open-api-docs-processor.spec.ts +++ b/src/core/openapi/__tests__/open-api-docs-processor.spec.ts @@ -1,5 +1,5 @@ import { OpenApiDocsProcessor } from '../open-api-docs-processor'; -import { OpenApiSettings } from '../../openApiSettings'; +import { OpenApiSettings } from '../openApiSettings'; import { SettingsBuilder } from '../../../test-helpers/SettingsBuilder'; import { DocCommentBuilder } from '../../../test-helpers/DocCommentBuilder'; import { AnnotationBuilder } from '../../../test-helpers/AnnotationBuilder'; diff --git a/src/core/openapi/manifest-factory.ts b/src/core/openapi/manifest-factory.ts index 9ba277a1..19124275 100644 --- a/src/core/openapi/manifest-factory.ts +++ b/src/core/openapi/manifest-factory.ts @@ -1,7 +1,7 @@ import Manifest from '../manifest'; import { TypeParser } from './parser'; import { ReflectionResult } from '@cparra/apex-reflection'; -import { UnparsedSourceFile } from '../shared/types'; +import { UnparsedApexBundle } from '../shared/types'; /** * Builds a new Manifest object, sourcing its types from the received TypeParser. @@ -10,7 +10,7 @@ import { UnparsedSourceFile } from '../shared/types'; */ export function createManifest( typeParser: TypeParser, - reflect: (apexBundle: UnparsedSourceFile) => ReflectionResult, + reflect: (apexBundle: UnparsedApexBundle) => ReflectionResult, ): Manifest { return new Manifest(typeParser.parse(reflect)); } diff --git a/src/core/openapi/open-api-docs-processor.ts b/src/core/openapi/open-api-docs-processor.ts index 5f52ae21..5f076348 100644 --- a/src/core/openapi/open-api-docs-processor.ts +++ b/src/core/openapi/open-api-docs-processor.ts @@ -2,7 +2,7 @@ import { FileContainer } from './file-container'; import { ClassMirror, Type } from '@cparra/apex-reflection'; import { Logger } from '#utils/logger'; import { OpenApi } from './open-api'; -import { OpenApiSettings } from '../openApiSettings'; +import { OpenApiSettings } from './openApiSettings'; import { MethodParser } from './parsers/MethodParser'; import { camel2title } from '#utils/string-utils'; import { createOpenApiFile } from './openapi-type-file'; diff --git a/src/core/openApiSettings.ts b/src/core/openapi/openApiSettings.ts similarity index 100% rename from src/core/openApiSettings.ts rename to src/core/openapi/openApiSettings.ts diff --git a/src/core/openapi/parser.ts b/src/core/openapi/parser.ts index 1ce9594b..ea34f47e 100644 --- a/src/core/openapi/parser.ts +++ b/src/core/openapi/parser.ts @@ -1,9 +1,9 @@ import { ClassMirror, InterfaceMirror, ReflectionResult, Type } from '@cparra/apex-reflection'; import { Logger } from '#utils/logger'; -import { UnparsedSourceFile } from '../shared/types'; +import { UnparsedApexBundle } from '../shared/types'; export interface TypeParser { - parse(reflect: (apexBundle: UnparsedSourceFile) => ReflectionResult): Type[]; + parse(reflect: (apexBundle: UnparsedApexBundle) => ReflectionResult): Type[]; } type NameAware = { name: string }; @@ -11,10 +11,10 @@ type NameAware = { name: string }; export class RawBodyParser implements TypeParser { constructor( private logger: Logger, - public typeBundles: UnparsedSourceFile[], + public typeBundles: UnparsedApexBundle[], ) {} - parse(reflect: (apexBundle: UnparsedSourceFile) => ReflectionResult): Type[] { + parse(reflect: (apexBundle: UnparsedApexBundle) => ReflectionResult): Type[] { const types = this.typeBundles .map((currentBundle) => { this.logger.log(`Parsing file: ${currentBundle.filePath}`); diff --git a/src/core/reflection/__test__/filter-scope.spec.ts b/src/core/reflection/apex/__test__/filter-scope.spec.ts similarity index 99% rename from src/core/reflection/__test__/filter-scope.spec.ts rename to src/core/reflection/apex/__test__/filter-scope.spec.ts index edf8f2b8..8eb5e782 100644 --- a/src/core/reflection/__test__/filter-scope.spec.ts +++ b/src/core/reflection/apex/__test__/filter-scope.spec.ts @@ -1,6 +1,7 @@ import { ClassMirror, EnumMirror, InterfaceMirror } from '@cparra/apex-reflection'; -import { filterScope } from '../filter-scope'; + import { parsedFileFromRawString } from './helpers'; +import { filterScope } from '../filter-scope'; describe('When filtering scope', () => { it('filters out files with the @ignore annotation', () => { diff --git a/src/core/reflection/__test__/helpers.ts b/src/core/reflection/apex/__test__/helpers.ts similarity index 73% rename from src/core/reflection/__test__/helpers.ts rename to src/core/reflection/apex/__test__/helpers.ts index 15ca7a53..f9d1a5a0 100644 --- a/src/core/reflection/__test__/helpers.ts +++ b/src/core/reflection/apex/__test__/helpers.ts @@ -1,7 +1,7 @@ -import { reflect } from '@cparra/apex-reflection'; -import { ParsedFile } from '../../shared/types'; +import { reflect, Type } from '@cparra/apex-reflection'; +import { ParsedFile } from '../../../shared/types'; -export function parsedFileFromRawString(raw: string): ParsedFile { +export function parsedFileFromRawString(raw: string): ParsedFile { const { error, typeMirror } = reflect(raw); if (error) { throw new Error(error.message); diff --git a/src/core/reflection/__test__/remove-excluded-tags.spec.ts b/src/core/reflection/apex/__test__/remove-excluded-tags.spec.ts similarity index 100% rename from src/core/reflection/__test__/remove-excluded-tags.spec.ts rename to src/core/reflection/apex/__test__/remove-excluded-tags.spec.ts index 108e5c14..83daa879 100644 --- a/src/core/reflection/__test__/remove-excluded-tags.spec.ts +++ b/src/core/reflection/apex/__test__/remove-excluded-tags.spec.ts @@ -1,6 +1,6 @@ import { parsedFileFromRawString } from './helpers'; -import { removeExcludedTags } from '../remove-excluded-tags'; import { ClassMirror, InterfaceMirror } from '@cparra/apex-reflection'; +import { removeExcludedTags } from '../remove-excluded-tags'; describe('when removing excluded tags', () => { describe('from any type', () => { diff --git a/src/core/reflection/filter-scope.ts b/src/core/reflection/apex/filter-scope.ts similarity index 64% rename from src/core/reflection/filter-scope.ts rename to src/core/reflection/apex/filter-scope.ts index bb9c153e..2f0fa9b3 100644 --- a/src/core/reflection/filter-scope.ts +++ b/src/core/reflection/apex/filter-scope.ts @@ -1,7 +1,8 @@ -import Manifest from '../manifest'; -import { ParsedFile } from '../shared/types'; +import Manifest from '../../manifest'; +import { ParsedFile } from '../../shared/types'; +import { Type } from '@cparra/apex-reflection'; -export function filterScope(scopes: string[], parsedFiles: ParsedFile[]): ParsedFile[] { +export function filterScope(scopes: string[], parsedFiles: ParsedFile[]): ParsedFile[] { return parsedFiles .filter(({ type }) => Manifest.shouldFilterType(type, scopes)) .map((parsedFile) => { diff --git a/src/core/reflection/inheritance-chain-expanion.ts b/src/core/reflection/apex/inheritance-chain-expanion.ts similarity index 82% rename from src/core/reflection/inheritance-chain-expanion.ts rename to src/core/reflection/apex/inheritance-chain-expanion.ts index 108b84a8..77da29b0 100644 --- a/src/core/reflection/inheritance-chain-expanion.ts +++ b/src/core/reflection/apex/inheritance-chain-expanion.ts @@ -1,9 +1,9 @@ import { ClassMirror, Type } from '@cparra/apex-reflection'; import { createInheritanceChain } from './inheritance-chain'; -import { parsedFilesToTypes } from '../markdown/utils'; -import { ParsedFile } from '../shared/types'; +import { parsedFilesToTypes } from '../../markdown/utils'; +import { ParsedFile } from '../../shared/types'; -export const addInheritanceChainToTypes = (parsedFiles: ParsedFile[]): ParsedFile[] => +export const addInheritanceChainToTypes = (parsedFiles: ParsedFile[]): ParsedFile[] => parsedFiles.map((parsedFile) => ({ ...parsedFile, type: addInheritanceChain(parsedFile.type, parsedFilesToTypes(parsedFiles)), diff --git a/src/core/reflection/inheritance-chain.ts b/src/core/reflection/apex/inheritance-chain.ts similarity index 100% rename from src/core/reflection/inheritance-chain.ts rename to src/core/reflection/apex/inheritance-chain.ts diff --git a/src/core/reflection/inherited-member-expansion.ts b/src/core/reflection/apex/inherited-member-expansion.ts similarity index 95% rename from src/core/reflection/inherited-member-expansion.ts rename to src/core/reflection/apex/inherited-member-expansion.ts index 0cfba92a..0df9db3d 100644 --- a/src/core/reflection/inherited-member-expansion.ts +++ b/src/core/reflection/apex/inherited-member-expansion.ts @@ -1,12 +1,12 @@ import { ClassMirror, InterfaceMirror, Type } from '@cparra/apex-reflection'; import { pipe } from 'fp-ts/function'; -import { ParsedFile } from '../shared/types'; -import { parsedFilesToTypes } from '../markdown/utils'; +import { ParsedFile } from '../../shared/types'; +import { parsedFilesToTypes } from '../../markdown/utils'; -export const addInheritedMembersToTypes = (parsedFiles: ParsedFile[]) => +export const addInheritedMembersToTypes = (parsedFiles: ParsedFile[]) => parsedFiles.map((parsedFile) => addInheritedMembers(parsedFilesToTypes(parsedFiles), parsedFile)); -export function addInheritedMembers(repository: Type[], parsedFile: ParsedFile): ParsedFile { +export function addInheritedMembers(repository: Type[], parsedFile: ParsedFile): ParsedFile { function addInheritedMembersToType(repository: Type[], current: T): T { if (current.type_name === 'enum') { return current; diff --git a/src/core/parse-apex-metadata.ts b/src/core/reflection/apex/parse-apex-metadata.ts similarity index 100% rename from src/core/parse-apex-metadata.ts rename to src/core/reflection/apex/parse-apex-metadata.ts diff --git a/src/core/reflection/reflect-source.ts b/src/core/reflection/apex/reflect-apex-source.ts similarity index 80% rename from src/core/reflection/reflect-source.ts rename to src/core/reflection/apex/reflect-apex-source.ts index f83199ee..67206fcb 100644 --- a/src/core/reflection/reflect-source.ts +++ b/src/core/reflection/apex/reflect-apex-source.ts @@ -8,9 +8,9 @@ import * as O from 'fp-ts/Option'; import { ParsingError } from '@cparra/apex-reflection'; import { apply } from '#utils/fp'; import { Semigroup } from 'fp-ts/Semigroup'; -import { ParsedFile, UnparsedSourceFile } from '../shared/types'; -import { ReflectionError, ReflectionErrors } from '../errors/errors'; -import { parseApexMetadata } from '../parse-apex-metadata'; +import { ParsedFile, UnparsedApexBundle } from '../../shared/types'; +import { ReflectionError, ReflectionErrors } from '../../errors/errors'; +import { parseApexMetadata } from './parse-apex-metadata'; async function reflectAsync(rawSource: string): Promise { return new Promise((resolve, reject) => { @@ -25,7 +25,7 @@ async function reflectAsync(rawSource: string): Promise { }); } -export function reflectBundles(apexBundles: UnparsedSourceFile[]) { +export function reflectApexSource(apexBundles: UnparsedApexBundle[]) { const semiGroupReflectionError: Semigroup = { concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors]), }; @@ -34,14 +34,14 @@ export function reflectBundles(apexBundles: UnparsedSourceFile[]) { return pipe(apexBundles, A.traverse(Ap)(reflectBundle)); } -function reflectBundle(apexBundle: UnparsedSourceFile): TE.TaskEither { - const convertToParsedFile: (typeMirror: Type) => ParsedFile = apply(toParsedFile, apexBundle.filePath); +function reflectBundle(apexBundle: UnparsedApexBundle): TE.TaskEither> { + const convertToParsedFile: (typeMirror: Type) => ParsedFile = apply(toParsedFile, apexBundle.filePath); const withMetadata = apply(addMetadata, apexBundle.metadataContent); return pipe(apexBundle, reflectAsTask, TE.map(convertToParsedFile), TE.flatMap(withMetadata)); } -function reflectAsTask(apexBundle: UnparsedSourceFile): TE.TaskEither { +function reflectAsTask(apexBundle: UnparsedApexBundle): TE.TaskEither { return TE.tryCatch( () => reflectAsync(apexBundle.content), (error) => @@ -49,7 +49,7 @@ function reflectAsTask(apexBundle: UnparsedSourceFile): TE.TaskEither { return { source: { filePath: filePath, @@ -62,12 +62,12 @@ function toParsedFile(filePath: string, typeMirror: Type): ParsedFile { function addMetadata( rawMetadataContent: string | null, - parsedFile: ParsedFile, -): TE.TaskEither { + parsedFile: ParsedFile, +): TE.TaskEither> { return TE.fromEither( pipe( parsedFile.type, - (type) => addFileMetadataToTypeAnnotation(type, rawMetadataContent), + (type) => addFileMetadataToTypeAnnotation(type as Type, rawMetadataContent), E.map((type) => ({ ...parsedFile, type })), E.mapLeft((error) => errorToReflectionErrors(error, parsedFile.source.filePath)), ), diff --git a/src/core/reflection/remove-excluded-tags.ts b/src/core/reflection/apex/remove-excluded-tags.ts similarity index 98% rename from src/core/reflection/remove-excluded-tags.ts rename to src/core/reflection/apex/remove-excluded-tags.ts index 9c6a4b1d..fa88c66e 100644 --- a/src/core/reflection/remove-excluded-tags.ts +++ b/src/core/reflection/apex/remove-excluded-tags.ts @@ -3,13 +3,13 @@ import { match } from 'fp-ts/boolean'; import { ClassMirror, DocComment, InterfaceMirror, Type } from '@cparra/apex-reflection'; import { pipe } from 'fp-ts/function'; import { apply } from '#utils/fp'; -import { ParsedFile } from '../shared/types'; +import { ParsedFile } from '../../shared/types'; type AppliedRemoveTagFn = (tagName: string, removeFn: RemoveTagFn) => DocComment; type RemoveTagFn = (docComment: DocComment) => DocComment; type Documentable = { docComment?: DocComment }; -export const removeExcludedTags = (excludedTags: string[], parsedFiles: ParsedFile[]): ParsedFile[] => { +export const removeExcludedTags = (excludedTags: string[], parsedFiles: ParsedFile[]): ParsedFile[] => { return parsedFiles.map((parsedFile) => { return { ...parsedFile, diff --git a/src/core/reflection/sobject/__test__/reflect-custom-field-sources.spec.ts b/src/core/reflection/sobject/__test__/reflect-custom-field-sources.spec.ts new file mode 100644 index 00000000..0eba7e3c --- /dev/null +++ b/src/core/reflection/sobject/__test__/reflect-custom-field-sources.spec.ts @@ -0,0 +1,202 @@ +import { UnparsedCustomFieldBundle } from '../../../shared/types'; +import { reflectCustomFieldSources } from '../reflect-custom-field-source'; +import { assertEither } from '../../../test-helpers/assert-either'; +import * as E from 'fp-ts/Either'; + +const customFieldContent = ` + + + PhotoUrl__c + false + + false + false + Url + A Photo URL field +`; + +describe('when parsing custom field metadata', () => { + test('the resulting type contains the file path', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: customFieldContent, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].source.filePath).toBe('src/field/PhotoUrl__c.field-meta.xml')); + }); + + test('the resulting type contains the correct name', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: customFieldContent, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].type.name).toBe('PhotoUrl__c')); + }); + + test('the resulting type contains the correct parent name', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: customFieldContent, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].type.parentName).toBe('MyFirstObject__c')); + }); + + test('the resulting type contains the correct label', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: customFieldContent, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].type.label).toBe('PhotoUrl')); + }); + + test('the resulting type contains the correct type', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: customFieldContent, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].type.type).toBe('Url')); + }); + + test('the resulting type contains the correct description', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: customFieldContent, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].type.description).toBe('A Photo URL field')); + }); + + test('An error is returned when the XML is in an invalid format', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: 'invalid-xml', + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); + + test('An error is returned when the XML is missing the CustomField key', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: ` + + + PhotoUrl__c + false + + false + false + Url + A Photo URL field + `, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); + + test('An error is returned when the CustomField key is not an object', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: ` + + invalid`, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); + + test('An error is returned when the CustomKey object does not contain the label key', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: ` + + + PhotoUrl__c + false + false + false + Url + A Photo URL field + `, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); + + test('An error is returned when the CustomKey object does not contain the type key', async () => { + const unparsed: UnparsedCustomFieldBundle = { + type: 'customfield', + name: 'PhotoUrl__c', + parentName: 'MyFirstObject__c', + filePath: 'src/field/PhotoUrl__c.field-meta.xml', + content: ` + + + PhotoUrl__c + false + + false + false + A Photo URL field + `, + }; + + const result = await reflectCustomFieldSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); +}); diff --git a/src/core/reflection/sobject/__test__/reflect-custom-object-sources.spec.ts b/src/core/reflection/sobject/__test__/reflect-custom-object-sources.spec.ts new file mode 100644 index 00000000..f923feee --- /dev/null +++ b/src/core/reflection/sobject/__test__/reflect-custom-object-sources.spec.ts @@ -0,0 +1,181 @@ +import { reflectCustomObjectSources } from '../reflect-custom-object-sources'; +import { UnparsedCustomObjectBundle } from '../../../shared/types'; +import { assertEither } from '../../../test-helpers/assert-either'; +import * as E from 'fp-ts/Either'; + +const sObjectContent = ` + + + Deployed + test object for testing + + MyFirstObjects + Public + `; + +describe('when parsing SObject metadata', () => { + test('the resulting type contains the file path', async () => { + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => expect(data[0].source.filePath).toBe('src/object/MyFirstObject__c.object-meta.xml')); + }); + + test('the resulting type contains the correct label', async () => { + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => { + expect(data[0].type.label).toBe('MyFirstObject'); + }); + }); + + test('the resulting type contains the correct name', async () => { + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => { + expect(data[0].type.name).toBe('MyFirstObject__c'); + }); + }); + + test('the resulting type contains the deployment status', async () => { + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => { + expect(data[0].type.deploymentStatus).toBe('Deployed'); + }); + }); + + test('the deployment status is "Deployed" by default', async () => { + const sObjectContent = ` + + + test object for testing + + MyFirstObjects + `; + + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => { + expect(data[0].type.deploymentStatus).toBe('Deployed'); + }); + }); + + test('the resulting type contains the visibility', async () => { + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => { + expect(data[0].type.visibility).toBe('Public'); + }); + }); + + test('the visibility is "Public" by default', async () => { + const sObjectContent = ` + + + Deployed + test object for testing + + MyFirstObjects + `; + + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + assertEither(result, (data) => { + expect(data[0].type.visibility).toBe('Public'); + }); + }); + + test('an error is thrown when the XML is in an invalid format', async () => { + const sObjectContent = ` + + + Deployed + test object for testing + + MyFirstObjects + Public + `; + + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); + + test('an error is thrown when the label is missing', async () => { + const sObjectContent = ` + + + Deployed + test object for testing + MyFirstObjects + Public + `; + + const unparsed: UnparsedCustomObjectBundle = { + type: 'customobject', + name: 'MyFirstObject__c', + filePath: 'src/object/MyFirstObject__c.object-meta.xml', + content: sObjectContent, + }; + + const result = await reflectCustomObjectSources([unparsed])(); + + expect(E.isLeft(result)).toBe(true); + }); +}); diff --git a/src/core/reflection/sobject/reflect-custom-field-source.ts b/src/core/reflection/sobject/reflect-custom-field-source.ts new file mode 100644 index 00000000..a0affa80 --- /dev/null +++ b/src/core/reflection/sobject/reflect-custom-field-source.ts @@ -0,0 +1,104 @@ +import { ParsedFile, UnparsedCustomFieldBundle } from '../../shared/types'; +import { ReflectionError, ReflectionErrors } from '../../errors/errors'; +import { Semigroup } from 'fp-ts/Semigroup'; +import * as TE from 'fp-ts/TaskEither'; +import * as T from 'fp-ts/Task'; +import { pipe } from 'fp-ts/function'; +import * as A from 'fp-ts/Array'; +import { XMLParser } from 'fast-xml-parser'; +import * as E from 'fp-ts/Either'; + +export type CustomFieldMetadata = { + type_name: 'customfield'; + description: string | null; + name: string; + label: string; + type: string; + parentName: string; +}; + +export function reflectCustomFieldSources( + customFieldSources: UnparsedCustomFieldBundle[], +): TE.TaskEither[]> { + const semiGroupReflectionError: Semigroup = { + concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors]), + }; + const Ap = TE.getApplicativeTaskValidation(T.ApplyPar, semiGroupReflectionError); + + return pipe(customFieldSources, A.traverse(Ap)(reflectCustomFieldSource)); +} + +function reflectCustomFieldSource( + customFieldSource: UnparsedCustomFieldBundle, +): TE.TaskEither> { + return pipe( + E.tryCatch(() => new XMLParser().parse(customFieldSource.content), E.toError), + E.flatMap(validate), + E.map(toCustomFieldMetadata), + E.map((metadata) => addName(metadata, customFieldSource.name)), + E.map((metadata) => addParentName(metadata, customFieldSource.parentName)), + E.map((metadata) => toParsedFile(customFieldSource.filePath, metadata)), + E.mapLeft((error) => new ReflectionErrors([new ReflectionError(customFieldSource.filePath, error.message)])), + TE.fromEither, + ); +} + +function validate(parsedResult: unknown): E.Either { + const err = E.left(new Error('Invalid custom field metadata')); + + function isObject(value: unknown) { + return typeof value === 'object' && value !== null ? E.right(value) : err; + } + + function hasTheCustomFieldKey(value: object) { + return 'CustomField' in value ? E.right(value) : err; + } + + function theCustomFieldKeyIsAnObject(value: Record<'CustomField', unknown>) { + return typeof value.CustomField === 'object' ? E.right(value as Record<'CustomField', object>) : err; + } + + function theCustomFieldObjectContainsTheLabelKey(value: Record<'CustomField', object>) { + return 'label' in value.CustomField ? E.right(value) : err; + } + + function theCustomFieldObjectContainsTheTypeKey(value: Record<'CustomField', object>) { + return 'type' in value.CustomField ? E.right(value) : err; + } + + return pipe( + parsedResult, + isObject, + E.chain(hasTheCustomFieldKey), + E.chain(theCustomFieldKeyIsAnObject), + E.chain(theCustomFieldObjectContainsTheLabelKey), + E.chain(theCustomFieldObjectContainsTheTypeKey), + ); +} + +function toCustomFieldMetadata(parserResult: { CustomField: object }): CustomFieldMetadata { + const defaultValues = { + description: null, + }; + + return { ...defaultValues, ...parserResult.CustomField, type_name: 'customfield' } as CustomFieldMetadata; +} + +function addName(metadata: CustomFieldMetadata, name: string): CustomFieldMetadata { + return { ...metadata, name }; +} + +function addParentName(metadata: CustomFieldMetadata, parentName: string): CustomFieldMetadata { + return { ...metadata, parentName }; +} + +function toParsedFile(filePath: string, typeMirror: CustomFieldMetadata): ParsedFile { + return { + source: { + filePath, + name: typeMirror.name, + type: typeMirror.type_name, + }, + type: typeMirror, + }; +} diff --git a/src/core/reflection/sobject/reflect-custom-object-sources.ts b/src/core/reflection/sobject/reflect-custom-object-sources.ts new file mode 100644 index 00000000..e301c4c1 --- /dev/null +++ b/src/core/reflection/sobject/reflect-custom-object-sources.ts @@ -0,0 +1,109 @@ +import { ParsedFile, UnparsedCustomObjectBundle } from '../../shared/types'; +import { XMLParser } from 'fast-xml-parser'; +import * as TE from 'fp-ts/TaskEither'; +import { ReflectionError, ReflectionErrors } from '../../errors/errors'; +import { Semigroup } from 'fp-ts/Semigroup'; +import * as T from 'fp-ts/Task'; +import { pipe } from 'fp-ts/function'; +import * as A from 'fp-ts/Array'; +import * as E from 'fp-ts/Either'; +import { CustomFieldMetadata } from './reflect-custom-field-source'; + +export type ObjectMetadata = { + type_name: 'customobject'; + deploymentStatus: string; + visibility: string; + label: string; + name: string; + description: string | null; + fields: ParsedFile[]; +}; + +export function reflectCustomObjectSources( + objectSources: UnparsedCustomObjectBundle[], +): TE.TaskEither[]> { + const semiGroupReflectionError: Semigroup = { + concat: (x, y) => new ReflectionErrors([...x.errors, ...y.errors]), + }; + const Ap = TE.getApplicativeTaskValidation(T.ApplyPar, semiGroupReflectionError); + + return pipe(objectSources, A.traverse(Ap)(reflectCustomObjectSource)); +} + +function reflectCustomObjectSource( + objectSource: UnparsedCustomObjectBundle, +): TE.TaskEither> { + return pipe( + E.tryCatch(() => new XMLParser().parse(objectSource.content), E.toError), + E.flatMap(validate), + E.map(toObjectMetadata), + E.map((metadata) => addName(metadata, objectSource.name)), + E.map(addTypeName), + E.map((metadata) => toParsedFile(objectSource.filePath, metadata)), + E.mapLeft((error) => new ReflectionErrors([new ReflectionError(objectSource.filePath, error.message)])), + TE.fromEither, + ); +} + +function validate(parseResult: unknown): E.Either { + const err = E.left(new Error('Invalid SObject metadata')); + + function isObject(value: unknown) { + return typeof value === 'object' && value !== null ? E.right(value) : err; + } + + function hasTheCustomObjectKey(value: object) { + return 'CustomObject' in value ? E.right(value) : err; + } + + function theCustomObjectKeyIsAnObject(value: Record<'CustomObject', unknown>) { + return typeof value.CustomObject === 'object' ? E.right(value as Record<'CustomObject', object>) : err; + } + + function theCustomObjectContainsTheLabelKey(value: Record<'CustomObject', object>) { + return 'label' in value.CustomObject ? E.right(value) : err; + } + + return pipe( + parseResult, + isObject, + E.chain(hasTheCustomObjectKey), + E.chain(theCustomObjectKeyIsAnObject), + E.chain(theCustomObjectContainsTheLabelKey), + ); +} + +function toObjectMetadata(parserResult: { CustomObject: object }): ObjectMetadata { + const defaultValues = { + deploymentStatus: 'Deployed', + visibility: 'Public', + description: null, + fields: [] as ParsedFile[], + }; + return { ...defaultValues, ...parserResult.CustomObject } as ObjectMetadata; +} + +function addName(objectMetadata: ObjectMetadata, name: string): ObjectMetadata { + return { + ...objectMetadata, + name, + }; +} + +function addTypeName(objectMetadata: ObjectMetadata): ObjectMetadata { + return { + ...objectMetadata, + type_name: 'customobject', + }; +} + +function toParsedFile(filePath: string, typeMirror: ObjectMetadata): ParsedFile { + return { + source: { + filePath: filePath, + name: typeMirror.name, + type: typeMirror.type_name, + }, + type: typeMirror, + }; +} diff --git a/src/core/reflection/sort-types-and-members.ts b/src/core/reflection/sort-types-and-members.ts index 9c2e3e8e..fde5f41e 100644 --- a/src/core/reflection/sort-types-and-members.ts +++ b/src/core/reflection/sort-types-and-members.ts @@ -1,13 +1,21 @@ import { ClassMirror, EnumMirror, InterfaceMirror, Type } from '@cparra/apex-reflection'; import { ParsedFile } from '../shared/types'; +import { isApexType } from '../shared/utils'; +import { ObjectMetadata } from './sobject/reflect-custom-object-sources'; +import { CustomFieldMetadata } from './sobject/reflect-custom-field-source'; type Named = { name: string }; -export function sortTypesAndMembers(shouldSort: boolean, parsedFiles: ParsedFile[]): ParsedFile[] { +export function sortTypesAndMembers( + shouldSort: boolean, + parsedFiles: ParsedFile[], +): ParsedFile[] { return parsedFiles .map((parsedFile) => ({ ...parsedFile, - type: sortTypeMember(parsedFile.type, shouldSort), + type: isApexType(parsedFile.type) + ? sortTypeMember(parsedFile.type, shouldSort) + : sortCustomObjectFields(parsedFile.type, shouldSort), })) .sort((a, b) => sortByNames(shouldSort, a.type, b.type)); } @@ -34,6 +42,17 @@ function sortTypeMember(type: Type, shouldSort: boolean): Type { } } +function sortCustomObjectFields(type: ObjectMetadata, shouldSort: boolean): ObjectMetadata { + return { + ...type, + fields: sortFields(type.fields, shouldSort), + }; +} + +function sortFields(fields: ParsedFile[], shouldSort: boolean): ParsedFile[] { + return fields.sort((a, b) => sortByNames(shouldSort, a.type, b.type)); +} + function sortEnumValues(shouldSort: boolean, enumType: EnumMirror): EnumMirror { return { ...enumType, diff --git a/src/core/renderables/types.d.ts b/src/core/renderables/types.d.ts index 878bc918..ddf50728 100644 --- a/src/core/renderables/types.d.ts +++ b/src/core/renderables/types.d.ts @@ -82,7 +82,7 @@ type RenderableDocumentation = { annotations?: Annotation[]; description?: RenderableContent[]; customTags?: CustomTag[]; - example: RenderableSection; + example?: RenderableSection; group?: string; author?: string; date?: string; @@ -131,7 +131,7 @@ type RenderableMethod = { inherited?: boolean; }; -type RenderableField = { +type RenderableApexField = { headingLevel: number; heading: string; type: RenderableSection; @@ -159,8 +159,8 @@ export type RenderableClass = RenderableType & { isGrouped: boolean; }; methods: RenderableSection[]> & { isGrouped: boolean }; - fields: RenderableSection[]> & { isGrouped: boolean }; - properties: RenderableSection[]> & { isGrouped: boolean }; + fields: RenderableSection[]> & { isGrouped: boolean }; + properties: RenderableSection[]> & { isGrouped: boolean }; innerClasses: RenderableSection; innerEnums: RenderableSection; innerInterfaces: RenderableSection; @@ -177,4 +177,22 @@ export type RenderableEnum = RenderableType & { values: RenderableSection; }; -export type Renderable = (RenderableClass | RenderableInterface | RenderableEnum) & { filePath: string }; +export type RenderableCustomObject = Omit & { + apiName: string; + type: 'customobject'; + hasFields: boolean; + fields: RenderableSection; +}; + +export type RenderableCustomField = { + headingLevel: number; + heading: string; + apiName: string; + description: RenderableContent[]; + type: 'field'; + fieldType: string; +}; + +export type Renderable = (RenderableClass | RenderableInterface | RenderableEnum | RenderableCustomObject) & { + filePath: string; +}; diff --git a/src/core/shared/types.d.ts b/src/core/shared/types.d.ts index 74d31854..a3c5cac1 100644 --- a/src/core/shared/types.d.ts +++ b/src/core/shared/types.d.ts @@ -1,5 +1,7 @@ import { Type } from '@cparra/apex-reflection'; import { ChangeLogPageData } from '../changelog/generate-change-log'; +import { ObjectMetadata } from '../reflection/sobject/reflect-custom-object-sources'; +import { CustomFieldMetadata } from '../reflection/sobject/reflect-custom-field-source'; export type Generators = 'markdown' | 'openapi' | 'changelog'; @@ -21,11 +23,13 @@ export type UserDefinedMarkdownConfig = { scope: string[]; namespace?: string; defaultGroupName: string; + customObjectsGroupName: string; sortAlphabetically: boolean; includeMetadata: boolean; linkingStrategy: LinkingStrategy; excludeTags: string[]; referenceGuideTitle: string; + /** Glob patterns to exclude files from the documentation. */ exclude: string[]; } & Partial; @@ -53,7 +57,26 @@ export type UserDefinedChangelogConfig = { export type UserDefinedConfig = UserDefinedMarkdownConfig | UserDefinedOpenApiConfig | UserDefinedChangelogConfig; -export type UnparsedSourceFile = { +export type UnparsedSourceBundle = UnparsedApexBundle | UnparsedCustomObjectBundle | UnparsedCustomFieldBundle; + +export type UnparsedCustomObjectBundle = { + type: 'customobject'; + name: string; + filePath: string; + content: string; +}; + +export type UnparsedCustomFieldBundle = { + type: 'customfield'; + name: string; + filePath: string; + content: string; + parentName: string; +}; + +export type UnparsedApexBundle = { + type: 'apex'; + name: string; filePath: string; content: string; metadataContent: string | null; @@ -62,12 +85,14 @@ export type UnparsedSourceFile = { export type SourceFileMetadata = { filePath: string; name: string; - type: 'interface' | 'class' | 'enum'; + type: 'interface' | 'class' | 'enum' | 'customobject' | 'customfield'; }; -export type ParsedFile = { +export type ParsedFile< + T extends Type | ObjectMetadata | CustomFieldMetadata = Type | ObjectMetadata | CustomFieldMetadata, +> = { source: SourceFileMetadata; - type: Type; + type: T; }; export type DocPageReference = { @@ -84,7 +109,7 @@ export type DocPageReference = { referencePath: string; }; -type Frontmatter = string | Record | null; +export type Frontmatter = string | Record | null; export type ReferenceGuidePageData = { frontmatter: Frontmatter; @@ -98,9 +123,10 @@ export type DocPageData = { outputDocPath: string; frontmatter: Frontmatter; content: string; + type: 'class' | 'interface' | 'enum' | 'customobject'; }; -export type OpenApiPageData = Omit; +export type OpenApiPageData = Omit; export type PageData = DocPageData | OpenApiPageData | ReferenceGuidePageData | ChangeLogPageData; diff --git a/src/core/shared/utils.ts b/src/core/shared/utils.ts index 233b0899..12982c74 100644 --- a/src/core/shared/utils.ts +++ b/src/core/shared/utils.ts @@ -1,4 +1,8 @@ import { Skip } from './types'; +import { Type } from '@cparra/apex-reflection'; +import { ObjectMetadata } from '../reflection/sobject/reflect-custom-object-sources'; +import { MarkdownGeneratorConfig } from '../markdown/generate-docs'; +import { CustomFieldMetadata } from '../reflection/sobject/reflect-custom-field-source'; /** * Represents a file to be skipped. @@ -12,3 +16,27 @@ export function skip(): Skip { export function isSkip(value: unknown): value is Skip { return Object.prototype.hasOwnProperty.call(value, '_tag') && (value as Skip)._tag === 'Skip'; } + +export function isObjectType(type: Type | ObjectMetadata | CustomFieldMetadata): type is ObjectMetadata { + return (type as ObjectMetadata).type_name === 'customobject'; +} + +export function isApexType(type: Type | ObjectMetadata | CustomFieldMetadata): type is Type { + return !isObjectType(type); +} + +export function getTypeGroup(type: Type | ObjectMetadata, config: MarkdownGeneratorConfig): string { + function getGroup(type: Type, config: MarkdownGeneratorConfig): string { + const groupAnnotation = type.docComment?.annotations.find( + (annotation) => annotation.name.toLowerCase() === 'group', + ); + return groupAnnotation?.body ?? config.defaultGroupName; + } + + switch (type.type_name) { + case 'customobject': + return config.customObjectsGroupName; + default: + return getGroup(type, config); + } +} diff --git a/src/defaults.ts b/src/defaults.ts index 0182cb1f..8510cf7a 100644 --- a/src/defaults.ts +++ b/src/defaults.ts @@ -6,10 +6,11 @@ export const markdownDefaults = { ...commonDefaults, scope: ['global'], defaultGroupName: 'Miscellaneous', + customObjectsGroupName: 'Custom Objects', includeMetadata: false, sortAlphabetically: false, linkingStrategy: 'relative' as const, - referenceGuideTitle: 'Apex Reference Guide', + referenceGuideTitle: 'Reference Guide', excludeTags: [], exclude: [], }; diff --git a/src/test-helpers/SettingsBuilder.ts b/src/test-helpers/SettingsBuilder.ts index 72738598..64e992aa 100644 --- a/src/test-helpers/SettingsBuilder.ts +++ b/src/test-helpers/SettingsBuilder.ts @@ -1,4 +1,4 @@ -import { SettingsConfig } from '../core/openApiSettings'; +import { SettingsConfig } from '../core/openapi/openApiSettings'; /** * Builder class to create SettingsConfig objects. From fa0b5c5985b90f544eca66935adf6b9c82a9c39f Mon Sep 17 00:00:00 2001 From: Cesar Parra Date: Sun, 20 Oct 2024 08:25:13 -0400 Subject: [PATCH 4/7] Readme images (#199) --- .github/workflows/close_stale.yml | 22 ---- README.md | 94 +++++++++++------- examples/open-api/docs/openapi.json | 6 +- .../classes/dto/ChildClass.cls-meta.xml | 5 + .../classes/dto/Reference1.cls-meta.xml | 5 + .../classes/dto/Reference2.cls-meta.xml | 5 + .../classes/dto/Reference3.cls-meta.xml | 5 + .../classes/dto/Reference4.cls-meta.xml | 5 + .../classes/dto/Reference5.cls-meta.xml | 5 + .../classes/dto/Reference6.cls-meta.xml | 5 + .../classes/dto/Reference7.cls-meta.xml | 5 + .../classes/dto/SampleClass.cls-meta.xml | 5 + .../rest/SampleRestResource.cls-meta.xml | 5 + .../SampleRestResourceToSkip.cls-meta.xml | 5 + .../rest/SampleRestResourceWithInnerClass.cls | 2 +- ...pleRestResourceWithInnerClass.cls-meta.xml | 5 + .../SampleRestResourceWithoutApexDocs.cls | 2 +- ...leRestResourceWithoutApexDocs.cls-meta.xml | 5 + imgs/integration.png | Bin 0 -> 171072 bytes imgs/redocly.png | Bin 0 -> 120681 bytes imgs/vitepress-dark.png | Bin 0 -> 223154 bytes imgs/vitepress-light.png | Bin 0 -> 222120 bytes package-lock.json | 4 +- package.json | 2 +- .../__tests__/open-api-docs-processor.spec.ts | 8 +- src/core/openapi/open-api-docs-processor.ts | 10 +- 26 files changed, 140 insertions(+), 75 deletions(-) delete mode 100644 .github/workflows/close_stale.yml create mode 100644 examples/open-api/force-app/main/default/classes/dto/ChildClass.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference1.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference2.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference3.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference4.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference5.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference6.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/Reference7.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/dto/SampleClass.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/rest/SampleRestResource.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/rest/SampleRestResourceToSkip.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls-meta.xml create mode 100644 examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls-meta.xml create mode 100644 imgs/integration.png create mode 100644 imgs/redocly.png create mode 100644 imgs/vitepress-dark.png create mode 100644 imgs/vitepress-light.png diff --git a/.github/workflows/close_stale.yml b/.github/workflows/close_stale.yml deleted file mode 100644 index d5cd3cf1..00000000 --- a/.github/workflows/close_stale.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Close inactive issues -on: - schedule: - - cron: "30 1 * * *" - -jobs: - close-issues: - runs-on: ubuntu-latest - permissions: - issues: write - pull-requests: write - steps: - - uses: actions/stale@v5 - with: - days-before-issue-stale: 30 - days-before-issue-close: 14 - stale-issue-label: "stale" - stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." - close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." - days-before-pr-stale: -1 - days-before-pr-close: -1 - repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index e5902fdd..9ab183d5 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,64 @@ ApexDocs is a non-opinionated documentation generator for Salesforce Apex classes. -It can output documentation in Markdown -format, -which allows you to use the Static Site Generator of your choice to create a documentation site that fits your needs, -hosted in any static web hosting service. +It can output documentation in Markdown format, which allows you to use the Static Site Generator of your choice to +create a documentation site that fits your needs, hosted in any static web hosting service. + +## 👀 Examples + +ApexDocs generates Markdown files, which can be integrated into any Static Site Generation (SSG) engine, +(e.g. Jekyll, Vitepress, Hugo, Docosaurus, etc.) to create a documentation site that fits your needs. + +This gives you the flexibility to create beautiful leveraging your preferred SSG engine, which +usually provides a wide range of themes, dark mode support, and other features out of the box. + +
+ Vitepress Light + Vitepress Dark +
+ +*These are examples of documentation sites generated using Vitepress. +Head over to the `examples/vitepress` folder to see the code.* + +The extra flexibility also lets you integrate the output documentation with your existing documentation site, +allowing you to match the look and feel of your existing site. + +
+ Integration +
+ +OpenApi REST definitions can be visualized using a tool like ReDoc, Swagger UI, or any other OpenApi viewer. + +
+ OpenApi +
+ +This repo contains several other example implementations in the `examples` directory, showcasing how to integrate +with different tools. + +* [Examples](./examples) + +### In the wild + +Here are some live projects using ApexDocs: + +- [Trailhead Apex Recipes](https://github.com/trailheadapps/apex-recipes) +- [Salesforce Commerce Apex Reference](https://developer.salesforce.com/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.html) +- [Expression (API)](https://cesarparra.github.io/expression/) +- [Nimble AMS Docs](https://nimbleuser.github.io/nams-api-docs/#/api-reference/) + +## 🚀 Features + +* Generate documentation for Salesforce Apex classes as Markdown files +* Generate an OpenApi REST specification based on `@RestResource` classes +* Generate a changelog based on the differences between two versions of your Salesforce Apex classes +* Support for grouping blocks of related code within a class +* Support for ignoring files and members from being documented +* Namespace support +* Configuration file support +* Single line ApexDoc Blocks +* Custom tag support +* And much, much more! ## 💿 Installation @@ -49,38 +103,6 @@ Run the following command to generate a changelog for your Salesforce Apex class apexdocs changelog --previousVersionDir force-app-previous --currentVersionDir force-app ``` -## 🚀 Features - -* Generate documentation for Salesforce Apex classes as Markdown files -* Generate an OpenApi REST specification based on `@RestResource` classes -* Generate a changelog based on the differences between two versions of your Salesforce Apex classes -* Support for grouping blocks of related code within a class -* Support for ignoring files and members from being documented -* Namespace support -* Configuration file support -* Single line ApexDoc Blocks -* Custom tag support -* And much, much more! - -## 👀 Demo - -ApexDocs generates Markdown files, which can be integrated into any Static Site Generation engine, -(e.g. Jekyll, Vitepress, Hugo, Docosaurus, etc.) to create a documentation site that fits your needs. - -This repo contains several example implementations in the `examples` directory, showcasing how to integrate -with some of these tools. - -* [Examples](./examples) - -### In the wild - -Here are some live projects using ApexDocs: - -- [Trailhead Apex Recipes](https://github.com/trailheadapps/apex-recipes) -- [Salesforce Commerce Apex Reference](https://developer.salesforce.com/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.html) -- [Expression (API)](https://cesarparra.github.io/expression/) -- [Nimble AMS Docs](https://nimbleuser.github.io/nams-api-docs/#/api-reference/) - ## ▶️ Available Commands ### Markdown diff --git a/examples/open-api/docs/openapi.json b/examples/open-api/docs/openapi.json index 43c4b59f..f2e60a56 100644 --- a/examples/open-api/docs/openapi.json +++ b/examples/open-api/docs/openapi.json @@ -10,7 +10,7 @@ } ], "paths": { - "AccountService/": { + "/AccountService/": { "description": "Account related operations", "get": { "tags": [ @@ -338,7 +338,7 @@ } } }, - "Contact/": { + "/Contact/": { "description": "Contact related operations", "get": { "tags": [ @@ -359,7 +359,7 @@ } } }, - "Order/": { + "/Order/": { "description": "Order related operations", "get": { "tags": [ diff --git a/examples/open-api/force-app/main/default/classes/dto/ChildClass.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/ChildClass.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/ChildClass.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference1.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference1.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference1.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference2.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference2.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference2.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference3.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference3.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference3.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference4.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference4.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference4.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference5.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference5.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference5.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference6.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference6.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference6.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/Reference7.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/Reference7.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/Reference7.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/dto/SampleClass.cls-meta.xml b/examples/open-api/force-app/main/default/classes/dto/SampleClass.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/dto/SampleClass.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/rest/SampleRestResource.cls-meta.xml b/examples/open-api/force-app/main/default/classes/rest/SampleRestResource.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/rest/SampleRestResource.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceToSkip.cls-meta.xml b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceToSkip.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceToSkip.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls index f1847a67..c3a46488 100644 --- a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls +++ b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls @@ -1,7 +1,7 @@ /** * @description Contact related operations */ -@RestResource(urlMapping='/Contact/*') +@RestResource(UrlMapping='/Contact/*') global with sharing class SampleRestResourceWithInnerClass { /** * @description This is a sample HTTP Get method diff --git a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls-meta.xml b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithInnerClass.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls index c0981306..0742b893 100644 --- a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls +++ b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls @@ -1,7 +1,7 @@ /** * @description Order related operations */ -@RestResource(urlMapping='/Order/*') +@RestResource(UrlMapping='/Order/*') global with sharing class SampleRestResourceWithoutApexDocs { @HttpGet global static String doGet(String param1, Reference1 param2) { diff --git a/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls-meta.xml b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls-meta.xml new file mode 100644 index 00000000..998805a8 --- /dev/null +++ b/examples/open-api/force-app/main/default/classes/rest/SampleRestResourceWithoutApexDocs.cls-meta.xml @@ -0,0 +1,5 @@ + + + 62.0 + Active + diff --git a/imgs/integration.png b/imgs/integration.png new file mode 100644 index 0000000000000000000000000000000000000000..b6558d32b7216a7b240796b8716d29b7407128a5 GIT binary patch literal 171072 zcmeFZc|6qJ`#)|;n@V?yN|qL>Y?V;UD?;H!z@M%%D#xV~8;r!|$c-zTfxf_UG@vug3$gSzfPm&ULPHUC-;fp65K()mGiV_xN5WCZ_$j z)o$uBF|qY9F|ks2?*!g?@WRCa_{Z#_r+R~_xb4IY@WR^GC8;5z<=hg&(m3cf0L~zo%Q!MD;4;h>AJr1?c2bA zeH(XMTd>Cih^Hzx90J_f=U`ysX`-bmV*_y!yLTUAZ7b&M;<|MUlbo*%aOq;}c~8LC z#To1&<12sa$2Vkv>#euNPYL|^il>wODHAPS0cD80t$>u+MX`&g6!r=T2*|nLx0BJk zsq*V~;FbKT2cDj;GUDPsK0abT5@HZ{d+|%xu3Zzqcv<}NWl`W8q8@%=&wIY2V2{&3 zAM*P-H*Gy^+#Os!9Ux$Vt>@mehIo0(pE|YG(4U{5{j~LU_`4;r$FE@l0~Fu-MEsK2 zMe#q+25yzxdRIo*!PnN=^rnLgAReF%g-aJNNyz=U;s1Q}ca#6P)#M+yUb%MppSS+w zqkrFO=wa)w3~>P(^;GzKZhqbT&kujyC?~!(_J7FYr=Wkl3rJdFublXwSyR}nbIf;$ ziAjm+_RZ@CzRa_PU4iEHHME6IvohQM_<(v8_dr1X!+`hPtQou1YNQ{#p5JpmQ|X4l zqdFd$lLyVF>+kaL42aSO5#xgaFGOcjroP&v%u4QS#1~@Lq-o_i{mGWMt9-?$6lLj} z>Dood-@X%g$i%YyzyBx|vk1D&H{afIP>G58zyHkd*qyt`&$8VUm{{yjDk(8Up67;c z+X@r2*9OnF4JZwZ08ON^9Wva$69VaN!K~Yi0cbY)F%vVjTNPo#p9;?R$ApcM83Ykhg@>c0*u8g!tuV zT;}%)4ARsCQ($Fx-r69S`R_!W!A z6*n~tj7t=9gzT89BgW<#U%uQ#(cAEr4>yvJk6Zt@)&f&%eg2@aLf!x+(zgAyCr%Hs zK08GtC6(GBhiP*J#OaWp zUwhU)3^{()_e1J>b6TZ8CSO9~4WE2KzG`ghUnB;3CP!OVVFUq*ODwxi8=$cY3dUjI zbXuhuMQpFarNRdfGgCKMcTRUTi(&P36!Ki~RjHWnvb+A7b$(#(64P=O9R~F_W6568 zSVbjV`mh3QEm?V6De{I`^XpOuYNEmq@D`&LR;S7jWJf5}s!3ox*efUlrONG$F;n@K zj?Xw4B+af(?SM;+%eIm{dgNR$Gc_NRKNEwP>rzY$wggo+04>`wu&amvYy5MWQ+cZ9I{t~6vw1l~nTe7{$_0=H z`}^*8`pu_@F6d`JJ9J2$^krd8CN)0WMm1JNpL>RV%N{84vCaAfn42fRY)ZhE+NgT1 z%-<8I+VUl3$ow`J2lZL%rP2p$G>i@N4Q{t9(k8CSKcDH&nc1+CdtMYhpjZ3I=mdjm zOzbFq5BH)JAN!UG-BWpwXKR$hpZ?mtgXMy8aq_78mzgK*Rk}aSn6+|UZ*&>fjdtDP z#*I)KVxumEwW+0ImBjg5%)_5J&s8x~uZQh)>dEzB&&HolQ*gmulV81K1< zcI~|Tr5{6Z<2nbbD&*Ew^qw_wL&*;yYs-ecna{fZYE7yZy*Tj|7)?mjVP20iT2WBw^0v3<<+6bPDbnz{7J zcktPvUxrbe`&>LT)!PM6D!B7rn@6kN615aNwVBo=DCjT|d1P&{^>n3eb9^`PG5>UD zxqX$g-`fl@cUzLI@#*5~%OIZFpBCEn$RZ_ygXgM( za>jo2dG+wHPw>V-_1<67vQ|#-%L>dhtBmxX?Q=_nB9_U35j((`lSUg=I%2Lk_9R@} zIY=H2ee;$N_Y_#F-&ofE=-+Q;`R#Q>`Z&*dGgC7&zn5_ek7QY)H^fTT64X-_vOL4t4Joe}ap#(&m%MZBIy66o7KiXy_Um_o}H3j=plDQ0H6viS=UX zwLTO+Orfc8QeIZbHUA}(Dw`>fDJs?yvtK&KV0G_=1t0Cs)MD=d`;W;EdBd4&R#|3N z`5-&rFyD6!U*nVj3JiqBi&-6eHD;^(Tc>{vrS7qqYw<_Vq4rRsQ*Y6$2~+WBdb2D< zd=*$f;s9^CX=YYdo_S5#kG{t$tSd>p%qh5Oo~$S3d^HU=Y5DV6UtTNu3J~~{*?P&C zcYgY!R;7`3aE{NiEW6EJSp+rW4EEFZ6L{ys8f;F!iaew)l$%JGuW@NSz^l_-JK4h) z@#W!PKQUjr$=;Rn=AuQY_R_ong8vL{F$cfVw=jkpuE~135Q|@C7f0)zyS_DJR_J@E z<5Ep#1k9$m%~V^8<209`Xj7TnSi?J{JnbiFNbh6sd*;dh22^@%Mv8}EmjxKwBXHmTb61JoueE;zWpT2y1p*=NYLSH7|cWM_g`EXGO zd*>MQj(5iC?i1?pOk*FiqN`GhY?c1^mTNe;3&IgoSPZt1VT;vCzHAY&JR3b2(joDC ziUl<5Sf*Y?W`Ro+*qRuCm-hE=VIe7cQrE4c5^HsLm-lF_NS_m<>>}{Tf}|iuQSqW- z7M3t@QQ{RBt^s@2Un@8=?IFJ=?AY|H>@)W4Z|F0Yv&l!;Yo}mK#7+wi#t>s|;xh+P zXp?@LO7eLNnwNV%G`V*Po+#;*Yk{a@>#{pci@5(v<(BM7y3)=Yr*{h+%f5NELzD zNFPFeF9ps@rRmuvwV-SI7YW4_M4we!&?WU?|IypgJhUQz+U!YL?JXnv&LUm&ZJCVc$_H$#1;S?+ z_HC|FR+%?ENH~J9dRgoNU!Dp4jio%?ksd=ZtMGNmyl~8wk zn)nV^DGA`Y_C7Lxu3DMGpeYk()@-8QwulNo#S>R}gEIjXsk_Sp9j(#bV0fK?<4;ji=tXFiUo69Q?4M@gaFzh*U zI^1y%xtc%v{pjX!EyZauUKGAe6t-XxKb8nByE6wm1>fD=0B2B-4-Q@CI$EyR*m|Kz zKPTn@uUsan7-1G>K0jn<;Eb#2XMgDzcWV7X=ertgT88q@JkwVVGOokvPKfM*x(esj zy_Cq66vvFYvT#^IM3O> zOPIntpBX&kkD83t+=nzBG7Z7Y@T|wBU4;%d30!s&2jD}(D2t1P4aWUE>sgv5G>VZb z7kHIKy8*=y%luxRb=(hTH=uh`ZiCA^hc<_mHTzn-uSF8cb9pJ2s4Z!ixT?_==or6B5pa`=J$;3@C@Q@>oQ0ODcmRhYY!UnfImL$V*# z6atmYvo zq)Yw_Y4a%-JN!~_@F1qJ-@`&TFkOW0k=3YqFxbs$z{F=R3;m$hZ!IoJ(4BrG3ErmGYvaF4WrNlIp=5&9BOo)_RLT z$T<|1BE7VR9x_M}vp_M<>z^e_&|*I>Ege?(v(XZaM2mz}I4b2PnIjX764 ze*OTub)Z4MuJsATYawqSjMQ7~QI1@m@ZR%#Zqs+Oafz9aa!I)q^E2ixi!5N4QQYFa zUAE0(QLk|P?o=YCdnhf)GC*eovUV2ctx=h8*i)mg3b6}-fh~}4Qz^By5b0(@csZD{ zli))kB$G+{UjqjeQE#eYt7;aO~^W3l!6p}vi7WCOx&*8VayJ~1!d*FZ&m3Z zeW99TAD5`vZ0j4C>7tN!Wr4dp2#wGb;ym-Vd_}K@2&zTb? zeQLdDzpiC#`3gD5`-jqbuiP6o$jY(}`Yeq+K>rO@l80DUkLI*LVRm5zDu=umo(VV61;N_-aF=`jb z;hJac+)%~#fmF@5AtHK%et=wN!FTSjDXz`t#BVO=O^u2ydG}?5ZfWqBJ7OFwUGQh| zUfwO@m8AQkd#kN67dD^M6u!0ItwE;ct}vax)j?fMWe+5z(Gc;SVximsifGU`xVMl zJpPm2(?ic@BDfH)p~B^K>n@)Z2D&nQm@Mu&lOh+f68Xiro5*EG zET7W;5u>IvXYCMyNe3ew0vsh?$LrISXMrH&P!u0xeAkh0_}>eM=QU7YUX|Q<|i@7B7jr|A*^^s2#K;E320 zUPGT8-c=lKth}e}_<>a;p~U^XwPT(!4Ls)~Qr;7G(fK$0G1zU=w)E-EZE#q56+1k6 zL%ck+R{121w&qllZ$V!!TM{-Bc?hM@D7~LKHqtEpR_g-^L7&&C`IOr4v)uTN&e%=W zt;85;$@AsL`bygFZ2DE?uTYeUh3f>(J`bcTpJP2`R?W6rXmU`YBuih2Cat{L9F}0( zajiZm9n4NQy{&bd%7sh5=I4@KW?Na z?ee-+%!PQC^${0npd0|584+#%^xULqI3Y;3+($1h!b^2zS!>Gf-nq1;7m&_b-V zcg;|_9xQpDWx`vlCbMkA0b-6KjAl|vSZe58Yoe4}R5@Q)^}>*U-o4q_ZVmeKp584) zyw^D0yC~5zGLI@|0v>9se5@wzGDt*G+~_3f%m)Pc{xbiJdM<&KnOd395r&2sGdqEAy}%qgQRP@tgP4Uv|hsftb3+o zy~?FkC9Xqih_7tvMcNcgd9V5>_heiJNO-5J8-ZT1C)4xyln35T9zoWtx*&j{*gNV( z^N4Z;YJDuof(dTe%mu#Ftp~3*)UXI>H59X=51uHI?SAUe{SwniEsfHk>1I2>!$Lr6 zJ$i~Oww3IG6mQ`{JWDQs8TI?!ZF|a9eZ0tBruy01wEQB=@&?cuYQC^abs)JCRV9X~ zD1puAX0??s{Z*Aq#28zSa9L@&Pc@$d(#&sy2hrRVU=8@PEN@164UE3$#^jGEBs*nB z3w0~Ic#VgT5AJ8NX^d4Y;$fvz zWyyVS5A2&wqdB$p*kvxdO}uJih;=<3^_=a<2%F>2W%t5hu(>MHiDEfZqaMVKC~@?= z$yQLVR#H_yD5n?)wXGXj!g)_lKLZ7rSM2)g!l2Q>1jBG0XwM5#VaaF%!5&w zGt+IKo9t0~w{qfy4*MSG5?6=gj@1vnOH$>%R&9d}OKi>SkQp}T-)*3_c zS+$+}{M53{UYbbioP#76zTMz*2Gv?WHmi6r(keq4(NjL*Q*Npndu)siSM;%RjukL$ zV!i3itUb+a;~ac)x#H+`byW-XcUmKR6jjjy9@)en&8d_y^u(hna z3^D>=CRX>Gg9wzp^n;?OPYYYY*>Es0K7&E$@I|v%)uaa&#J3_LV`Ct7 z^V6g4y0E&MBkY;@ecp-?c&ic2!+Txx8rFlD#DJg}ltAsQN6o@uhrisLg;SqDAFjMN z!};B8)~q?&@_AN;2GxD(!JG@OTEsXIYy)!xp^_WGc{a0Q;RCpHU)?&nfP{5|Qos8| zg^lV)=t8IDA^)&n(4q6x-STG9hYCQ}>9{Ny2?er6{av*tcje^x;lWzkHuLzVnLuc4 z&&c(`Umuo|xO8Ft zlSYF;s07nCJPpZ)lPUcuRU;vg+p9phr%aF$+$!gyT@DC;>4+|^w70}6XU|Yjjz5(| zs=`BzyX{&H^Y8a!4{`7-%o>uqDwFtD&=E`PidL>QHwzFaW(u|{SCnM74k1MSR}pS{ z&-qsjJHH=!VE{>94EeM-H-d0>w3rR!5?{fF6J`3DKE0~ARaJ|X@cEfc9lpW&;UOH= zTL_wJHGuhm8k;Of1g{usu3Sq>ftoQXAoUbzHWwx|&al!WykT<$OqE3d?71nsxFXRg zVXETJ`-bBR);H&0CaDfihfW_3qyP5Hb#K}B3Qsh@rD*Qo5_-tHLjn^TcfNU8{hR`8 zD}gJ~QQVw9%wEDHGnRo*b2h#|LLUnhFEkL}*gwjMHVJ~2hzRMV&7qv189M(ZA$>Zi z@54xcIMRob>P-JTX!#ATerH*d6`7mU!1Z0|m8h4v4OR|$YlywbV_r?zfiHnd^5%XC zAY_XrGcB0Q83+(!&uS;<_Pl;QpFg{8eJWWMNZI3sJ*(EqCt9tX<6;FUJ+(a;)w|d9e)2aAtm>PA>d9`*fU#?Ghi;c3exqi6GTyg#IzdQYR z9+tCONqe=MtWuLAJRg(n{QRN+y>DG&zpE-g%L>1T3KU{A_Z-xX&1?L2_oq9(ie{+bv9=PGX9rfk-;_ES9FA!|zxi3%=>v+F~tP<46#<)vk1 zVS3}bjJFt49-Y!ba>f^vJKx*SyJ}NUVfI^&OBF&g>T!%!2FJO6>X7=1pDdT9ke+<7 z^9BO5N7Q>DQZZbDIwbNrYN%?+C{tzx`{8FSpak8~)!l9Q?&cob`}fDE+>3uG-Z?v# zW!WJpP5&1TU)}gm`QZ_;!9jjIfIK#f_|7#inyE@j`&B@KJs)Q1_=&+ScJh$_|yQq+@ zc$hE*^HJ<`VYXK6n`MjEX=^!9#KU*<0HhuAIkY*W`~&Ll_iuMAD($I-F~R7LfJazr z`zqP=A|Z6#n-Q$Iesy#o^{&7`Xx}{=6))S3s2tff&8Wpm)?T0XLyIPfLcEREH`bVWwn}@_9F{?&N}3!pa${l#_3xF?BL&l*KW>~I=^ojb8L|o z^H`2-`sd0Z#joUD;S7Nqezj#%crATOWZoISQJLX2`^KuBWdvH+U%W@$NV+06gR!KK zTnX_)x6XUdR!7&POVIq#5;c0pM|XUcHJ0u&E~Q;yLt83|>QQL?IdA7gLas<_EKHZa zS65RzR|x9(p{h!+clS~Je-xw6|5o+7#}{0oEJW~R6xfevIj-%%4fhw zC|qh)0hTOcU-~)CzwOyCSpY9X*4a7N-erE| z6cx)oq0o)v*jW4Msc85#jYTl$p6PsF@Pt8Q4E?&ZcsiM-b0g@Kg^kw@s|+uZVKR*X z>29MlDqUpxakW9uhq0~ab-`HEQn)uN8jqXDm)Z>O^YIxFhbC=6rx9;W7D_ne8>O~$ z7IigyIQ^9f>|BUry<7&%mSSor@=PxF**OF--YdN1#leCB6_JT zE6`2t+K5z|eJm&)S4_isQlzAWEiVpGuU!!U;|H%{Q~9Tt58PZCp>=AndNIz#rpAcRtE`hT*5DxRFWl*pdps?Lu_M3 zv4cSaDEH>W{CO6^f!-F{W09V`zf9H7%Gv+a5#70-2&Wm$`CLnD8+sd^mxrsqBsp5| zMe2=9F;?my(&?>Y`hZyo{Uk&hH`=U7y7>S|dUh~*Xa`kDp_~Q~7+3;Zqi7w&g9g67 z$+1C)&i6u7?lKKv78(v3wd3{$vGH838G+eg2VFl$U;k`Bu#00v&{Okz^K*5en-cS3 zq?0*)H~*(c|InVV5lTPEW~I+Ae+B>ls^X{-fx~1px08mE%@5PvY z6u|uADjZS8r~XSCTkmnE0OZYgi^SY0Zm}UN7b&A(C1yC-xx#eDMcOcDJgl@qFDrR3ZoLl01k@B z_bX@FU*oCoYx#JQ#V$#`M9ljLOW)PF;nKr1GfiK=?w;fBRe5zb+KY@a&UcKwrUt|MRe%OP8DUS%>f2{D5P2)_txJu320lj7}QBMMp47_iS%oc3FNr};3?G(;aKPM6x4p&X-YkIUomwLpo!vbH*IV278aW1ntRf{2m2 zV}AGnzQQkGy4EI?IUI*Vg4TjJ18-x^y|RE(MSh8D?48PdjAuK+hZq*C&Y^F>Gnl==)i9Rmp`Vc5D=C1803g?->4CgqO&zwN>C|^SNhCYr$F0U=4Zn~IR z6&}YF2n!0{($5icn(49~yhgug!!sFOl&AjsT!wA4(SwE-(~pbWVyaa@(5Y56A4q1^ zZ>LGUCGA|Aw1SpY3FGDO8h~PZ4#^K;abBdYiu3tl7IfIoC9H+dU`B$KpP|0_^FEe_ zV`AwF-UC;~wZ2{AzM_+QNtpom>;zGe@0SkGSb9hWAa9x*U0APPIaF3vf?htZl_Eu8 zn{LbpO|`-O#`oh8_9eY8CMCWJSVl1(Y^b+-CP>n*Lbg^1Af9y=!3IVxc&_%x4;cpx zRk>plIS{uY8qY3GE}o20g9`O=lGpEJ@PN zA1-{SI|o&8oR}0h%e=NYNdmH&MrBEz===Sb$%80-f$SHyCRv}^^gXZ6I#G$0j<||a zFlzPe)Iu@00S7N0Q0pCy-p!(?QKZ#Bq?~^tq2wsQj(Bvk*Hpboa;WvECJw(alXS|n zM9F*%!e8~Be;!{QNJLpUzNx6V!mSxR)Oy3`j)$?Ho*uOi!e=gZp-y+WNPSv((NX(!`g3oJw_VN^&G^TrpejeHb+ z*%sp_fhrL->|$FecwFJ`*lmZ2^(pTboepvsQZV~)H)B%NBwb!i4Pr|xCWuW3`v>pZ ze>DBAggr6pj%hhY`dodI;RaCc{i@}m=*0??B(SxkQ!ZZe6(K}>U{eVnOXIyI7RAvO zC4&K*tlX|?Qy6@iSJWZGvn6PPC6TSi<2dNHbQKYEDpu52S?d2-(Vqr5L}K?rT}4)1 zs19D!O+2gV+fIOwPGac@KtA+G`BOdXL?^GM2cw-^`Mt_JczQ~>-QokPBJKN3;m&>^ z!r5jMN=)+9j|lrW5^I*F!2_K8vgt>-#Vzys2=G-z4hmGf>>wtpiI8$Z9wUeCJkTSQ z2FzUkN|*lifRfb7a<4zoi!u6~ys<-uQO4 zcHLvJuMZxS%8evRLH5YME+L;*jk%AQd(+&R`ug=aZrw(<|!ri&7qH{H6cyrjk^*95Pw0UETPw|9Z!Wat0#DCE;1@ zVvJzCwr3uYZ`lKLU^d2kSS=T-k(h4@?JA>D*~v#cL+x zGkdPttF|udcB%F1XVI07nJKFs1^v(Fw2M8rEXES-bM{qGS9YvYG`W#cC?pfMmla_XIJQ+y}DSk)nwOaua} z7?B9~7L|ru&DH`@lUr2Q+ycifsLxwhmbW=f&L<6c=-=anIc0ztK1>u;l}uL>uvk3? z8c*{0ohtaZf?c%`aFT59j`cVb%R(Apd7oCpv|0rIOS_qBk+Xa&->5RtpGM5Pr@V{w zIaaZ=iY$vXvTu1)1n@T>%%_KdGurm%8|1wNS8tdB{i)9iy*7*~tvClzYQf9H~|ka@{?V}wBe0|0VTjVo^aOivf zk=T`04iK3004jstE{nZ~h2xzD?7}(tWp2jD1}(hIvK;i%AY6WMH<&w+l7IVEPPLK` zh*!~VAgR)&d|33VLMJcmia4~?e9pG%btiI_9r<=3%Hl#IS8F1|d*}2a=>mneEc?~< zMR5#eiZ{BeiO}9 z8N>3amIYjeDKW!_6mXkgy2>|b(%j>C66A|4%j%I_gPKTZMi?@_DNfjFv7rZPsS@-b z_&MYh=Wd`b_E`{{ekQKD>C#;LK}F*ihs2C);-2kZZBoWpz3t`Nt)P$UaN6rAJIK~m z)W=8ySX=>fwfbo2EKSD$%+zqY#jBCf5kE3y=1W&iRTB1+;A=5a4dGY%dw4nU(|%5dS+AD!C5kP%{p@tI_xg${MmQH7 zFAOq5`>$NDtX;7de-8fWDaEMCX9vORY@B8mNe>p~_ z4FE?@4HfrUuI7Q{yyn(d#bW&>EC$N5M6j#a_l=HY*;@79nw}@Nv9RZyfr#g^=!wT< zd}un4RHkpqxmiAoKiew)rTp*o9-biHSv8sF{BPV1R6HuSDjrorH-i6l>)$VdhdlH* zP~ehzyj`Gn&;^Jm-jknp@c)O7{1`|`E+-JR#Kk_=-i{}~`(_dV6&?hfTH3YE(3J!( z0J2k^u*uNhMz~BYoo9jY375K?@n>tp-{bgs^+X*I;QtfJKPT${iR7Qs_+eIli=+*b zvy+!k`)>vRWfnuM&m6RRwq_;*$7Op7^UAv$biaIs$p{JvlD#+Tz?j3+ z4ppL7tPP9I426x0x(56f0Rna8UDR>O{DRGigo4{+DmYj$I$jJ^oY$Q_(~cKQGgl10uAJq_3Q|}6=nWBuol3kGpHMoOZVpmEP8Wdw}O6S%K!_!&uj-T zjKEcBA2LU;4Tc>$bZBWVU=w4){ThrZdt6-mJ^!vm0wR579w4l@6UGF&S1ggfPm58+ z3jniK*rX9xLyR1`U?Fn{pd?XaICw9cu&!AYzb&^X#bK?mM2wRch2WECkoRcV%X=vD z$b}uW_6^I^6_6oI)G`iz#b#23I@1kGu;>!%JHWGz#Zq$Pz8mh(tne}O`)x;Db!kHk zZ%zur`@E#rd+Dga=J?J*3lZLDY`Kan^ETqSF1w_`xbfCeaBoFkm2-dopnSkN!o;Ou zMs)D5fT|$8x2Zs_UVY@&K7^h7PvpV|p{hV&zd$tMX^i2;NE%yZ<#oRbEB^#=)(Wv3 z)Ntb*PiqH@NxKF#V-AsszI&(Fi${89I74}B6B~*#&!43pCqoKw>HBaUP^Bg(>mc>W zq#&zXWQ(Sxg(0ookof-s1zYAD*ids(8O6k(G@&_!@JW-ZepnXg$Ij*J*TWj}5N1^Z zwxAH~aw53cWpt9S^vfEcq4J^@aFL}7?qnF#S}H2Q5N#=M>LF}g++x(&_35>UsUFo4 zdw`Ea>$HA}wgpi6hA&;p(Q7uT&uWgZ89VmT>4x-o_Y%Rmjg0y^3v({p{bXtUb~4un z@|*3q&+<3Q!jor!eWG_>oz+4XaPVK7Ws3u%E6Vq{663rTU-8_aQ;eH2MU4mz0Ow*DQ%F6AABgV9y^!93Z0* zeJ#}L>O+o$6{b~)Dkr>3ij4PCOjc$l{P9hYovc-r^RfMWSL;N@%q)3&5mM@}b>*e? zv*6*_bx`6;;sinMqhSDz29~jLiVZ?P&d?d6tz9evPef4-BIt^C=CUdchW^Hk~ zT2DiIQsoh-)RtsPjU!FQTgfW_YuyD#dGC0N(c1BQ?S^U@GJ)ey>{?UDifgU|`K;#? zD(GrkjcDYEj8>xDEg|ijsSI!p*1kQp00c%}2hvK5#ZH6Bn&KMAn=uljivcApr?QUy zAM5?ob_nF}(4N@!G#`8f-R9{!V`XnC7Cca4y17O}OL~4iNG0}bsK)ShUiKm6j5V;~H-_KGN?P~n z5=OZWR}Ry~U`)iD+?xE-8~D2^YCQab>o1Ctqk9SCp$h_~wTj_1LB zM9{RR((Bs)%9Z?iS#Kbqn`0E+VvVD*kiGS4&Xk~7cX4n&K-5SY$(+0%?^z^#S3Mp!dIu+5cx{ z9V}uQ*NyEJQbzyKq&Bm=CP6b3wQn!{b(N%%yT#=BGdgX7+WWUDhHs8a#~^PToBJ6S z!+e*p=uQUOR{$%Myj8z@cOCG4SLE2%wgPqYVHO=)OHU|C!VuxSA)tLl8YtMuqhP+tm>+YF6Qf{tQ2w+w zZ;?PDU|$swqn%p6xJCC?>e=)ByC9Ko5APP37840^7tA{8m9>w1AODD5BD(qtWsLvT zh3MP1{{Dj#)hvH7>hKND>ajM&Qpe}m=>~{*n1CQ*(TtS2 zTG9a&brKzy`0^c4ja_R8L5Rh&5bSBRzkz%J^}84x*vGmw2rPgn!o?lc5TOSc9CdA_ zyd9J6f}f2}9Vqwb*!*ssZ(5!WB(|4`YexX%4Y1~RNxC$Mh?*b`+8OBJeCK|Bt2>PD zvEW|i*!8ZGViE*-XXx3cHhY3dcX_*f+L%0#q~k2102;Q_e^gw@ajm64QO*Sp-E36M z(|mjRs znQkhxWXU!K1u)2lEsPiV46@l(z&gG<-_7r$#_uVk!dxT?(VWe*0pC z?WN0Ef8Vz+F zFEy(M^Wr1{f{lO*z|%YQo+JL=R!CQWJ>CCZ&-?Ht+GA#ys{*0}agrL0lEv~I$hBF$ z^BWJ`m1cy5GTQt2=IsiG2F~aQdtmkc>2!u?cWfQ}k@rey%EWJOwx8&6duZ5?{j%a( zf$9~=oH?bBXjpK?fp|q+Xbo!>y|=e~Kft7YMg#K3qHh!x@im9VRM%pIS6F#{DEir& zM&ax&o8MYDwAIu)E^${J5cMMVbYAB^u{qnV<2nBIFUBMm-IXGy70ot4=6lhUdHXPR zg@1E6rL49sO;P8tkd7e@OhC~YpIT#rr^uVr9O&Sd0tuhC6RjyW<^8X+`pc0vL3GP} zAla4c6AQ*6{mOluV+vlqd6RoqE6Ja}{28}4y4b!n)wns%3qn44u{_)V-e)k#DtHs$ z4HTMOKZpU4@L&LdL}F3)O-}$(gjk=xh^(!sXB1t7*c&CF`wq^3&y9%q+6a+5q6tfE z?8^EE%8bE8w(8ED`-eI0JU!f1GHxIusqvt{(kWrGJ&9Yc0!%O~vO;TT%;h_Kss9XffLXo3{XOxEMq?L$J%HdkNHjgxTNw0Q&95}Lr>WHBZD5kbvdIRQ$N?r(X z4F)!Kn3Y=B$kZ^^uzdklI%i!1GX9i%JV{b6UBI~vVU050bF*anN6*bK(?Iz`I?Sbi z*M3ES5BbrUqLA>_?gM_-A7F3)?}~I}Zhl+q9NSZn-GfIhXWfn;&C)kXUpHx(`FwRQ zrrv%Nw7H~y;-BGrh%?K#?wkVsoVNa$$8#pS0C{=Ec5@?W@LkqMEebeTLRWBf^ae+Y zTfk5)s-Jj5&a(p_8>NWibqZeT_~^fuht3aU*NsiPc&A;C&hdB`U71JDd-lO}F)T=q zT&)flfU&_@fjvtPYw5dGO-lQhprvrBFa>00R!ZV^3d|7h>0nrBa%rV3a2^4N401iktd3A{3??0?|kHTJ$1*XF3f#@5^e;wX!``C<#i3jEgX2Ve^aeP2+8FD~P+qz~D`*N9F%#XCk@@+g zTYP3B9Dxs#Jf_;*Xf8SP>+>1sT?>oigpGXJYc`g#u}#4YQY98S1~5AJqu2n*d@u~i z<=D(;Tt2e}E@4u*DK+`x~dtf@hGsjX#eD{L~^3rs<@!$+IqnA*^`EK@FtWU^_ z5ZpE&d~N1)rRE*+1MP_le@C`AW9u}f>FcFK3>9(oG8~Lv)RuhE(GfuKZshf!pa#$A z1h1f+-MZG}AG34i+O;N%ar+rVmc5}khk?vIh4q!g`;T7z+FUyLg^X`;Ww)C$sP(~< z;WLvUWPsW8^&;31l}muy_`OR*d|Fj;4X9Bu4v2FHkfdCe8j>LXsY5JwjnjBv=6;8PfYT32ao8d8TBppskI|qSAZ;ID!H=T7*k5nmpA! zy|p-Vk5qq}(Ahk9LusAFIRl&H$xY~aSxb10VW6vTsmmI+_9Q4@HY~p1JDTOAv-?3b z``15A+%2de0AYdDE`%>r@Fh;gDDBww?{_Gpra+a+I99GOR&nhjB>FMN60o&fuA+>o zTvQ5I7+p(R|TVN5B36>Kw0gw_fXj`=XjW zbxC4vyj&bP)(r%?T>6ah^7b%lVUeDo#!M~$x^D0)Ngp@<9Tm$fs}k%tx^R~ls9_0s zv$1$NV!m$3ul4ad6`$6)FqJI_cdui-%-%wI_QF4@CQ0(#!~Nz?R`-(Qk~dBH?LA^m z@+78kn(|UY>FrpJc%oou5NF_%+x(^9eUI(>W73rVV(@fK5aYK;o^%Nj+Tjc^m9U~t*cI+>Y47%2t8UaQKqo%#B^p{!UABMn7ch zdN26~e5!`6`}EWP!WA|4sPNv_^KUG()Q@N-UD62K$+5sPvk{tQY~>McRA>S<12V^F z-tb*$mSW)!2MFt8&!$?={a5wg{jWa2MmNOLRf0DgJ=VTt)tXiX*6iGWe0(Bob0fuP z++8pSIIri%p}XO0kC!TrZGl4FeQYW<$;7-}QTG~WF8>h|fQ&iebsIr+B$A>UbK?B- z0LEme)l7U6_%$1L*S@2tV^KY_aLl`Rs`ai6*E**Ps+B%tzLDn9=;(jUG(QU$>Aoz))3+eB!9 z&pQi{fZoVogh%}|MEEg1zy1In0Z2d%DTu!f%AZi;=T|r-wn#v;A)UW=qx=(A{Hm|M z`wL)9T$vl#o}Ke%iv(oH@oaAUW}*RL`Oa;s_@BK4)adV*^;?vfO96L1x&K55KimKF zGX24p%%Wv|wq@P`Jbqw1$s#L{%>55Uz_h1Qn#limK))W?X87>oTFqXS>W%Cd($lfA z3?tyU1v#=atk}W;*hkzQGc}=vmnx!u4xoH%7VO!!(W|O}1gCZ%h5Fr?>2kzoN2`CS z&jWUkjpVT3SNut15qn`rFRyuj z`eH6#bO)8V1{}QhZw^Wod+_qB%}!v?zL#48*H)yIt(BIY5w=VCQfUQrwIdAYb2n{c zNYSc^%J(BK{7*q#^F9MgL`!8Oo^bXXEDABTRA#W(N?zZA!9qc zY-1roLBm+akiv>D-v=R14%DfZ8nhkvfMAFFOkYwOW>fJCo0 zzKYTz(XNnCR1c6I9Oj2Z%F_K*{QavuBCQm~hR&ge zn0MoO&Uwz`Ip5#=--!Ej@4fF>d#!6->sq_!3-wY2{Sb{#1onbp-Nt?-bw=Lo|0(|W z3=rh{G_r<1tB(QMHCSqP$qV)9`0|MnV7vi{QmUinz!bCV@iDhfP<*%RN(OR#*bC7H z(9A@}I=Dra+I6NEnGTDD!eH6mf4!2*(=|I>orQ~U!8LNza&;fhsd>D#*S z@xutxzaO```Z1{^H8RqUszs8oTMqcVY54fdB{p<@K3&tIACuBHd#8R_Et$vjZ+VIb zIjGt0fl(OIj+f3c@Q;?iS=9gj^Yu-Y84W?$e?O0Z{U6)22i6}L-+`XS)RTotB)IB}3xh0@ z3gTjmb%lpnBXi9oJ*VhYG`J%A>(|FW4x(H+*4lGi;S0CTjWNsRoT%kET)gCT&1#a6 z^qOnDxGwyVo2U`9wi6@thT0=GY7*MRCxfwIYwx(wJ({U3jOApo8A_medbp=tnhk$@ zAv#uF!8ra0dFvuZQO)}nbE6((qk2A@VR z-L3WxYw*54vecQf0vR>i-+eX9b6|Tou{lnRhP1)J0sd!MPFpz_x$GZKyeX$%!#aTQzeu= zVG}7PJRkms^l%s4E!Tn!Od43g@`w%yG=c=3_HR@L3^(U zSjKJ82l4-bUjH~8$#na5pHM<6;tEK?if36hdGgvXnhd&R1#767+PBjx;Lm~=Lyq?k zQ)FO2Ab2e6f`jNI7XB{Au8_deAuB$E!S$sz)a9w`%`4juE2MN&H+uP^L!2Y6OA`EG z&Rf?G#nBDfKS<)`W+0rmR^QZKhqVM?1Z}ZaT++iQ{r8rgtPAvu+q7{mjH;G;8fW3$ z+{hV^YISF9+SmX*EOM)b$EM-`3lpMt;*@QxWIcUwO*)C#d4@h`(-hfx@uD5E}s)?0K7disG zNhkw7oH4JXDoB#^vJiz3d1$JqJx>W{Cfvl>DoI${MbKKRH?B&j!N!^v#yC_~W$si% z7spv!7V9r<+gC;Oej>)&YPHMltGqbO;+kuY$CPDg@kUApUmiCPptsHE_#O=GBP{RJ ztF)i>0CklS?g=Hb72(8(fp>t=icj0cxd5~| zf!}G@9U~9`|6)C5E^H|T@5y+c&TwU4jQefpyXf+74!*J@qF~eWR~eFB!BqJqa;H=V z=gf}G9vO8sD8p|VHf*d|VYFG5UG~c77Md88vvd;guTOK9Zt?mj(<5x=gOJR6vjN_#;CH1?#F}1F^h_zr7sRV;-WLsS zj&O#&a!q2gasQBydsVYxttE(%HSU;?ENs-f0Xr+0n&(yO`pRljxYQkI3jLrgtYj@i zgYp!T6c&f<6y1fPX|>eRZ3Nr-?CnyUaxaWL_l~;`p%3>SI9s4?H@679Z_{q&$|FC0 z4Q6l3k3FT_w-bAI^S00Nd-t^CcNe}xm!saedw7_XAxmj?KW+Xt6S^(lA#-sP&-&E# zKQ^M3{A7wUrAt<+@BM6Fa;d(R(7$-ihB1;uGbKSkG<_XH{nr0{yr%X(6mKhdMF)bZ zL7fWw$h|-`@W8u$>xuWn&9WYcZcUN@PV!&#?L+iPa_DWN{j-d>jpp3nyjao(W4|Jv z@lG-`1Rjg|BK&-Pw+{qFJCkLBclt>)jaY0pKY z32<>nHFKr+ zO1b9W|KGbWccDK}^s?dK#{Bhn^#^ATKWGH=%}wlleB25wisDBb;&%O98L0O=Bq&wB zKNXwk(0Hyb9!$h6n-G>gqO>R|kZ)GEJJBMcaCmsgJ|El@PC4FKV+Kg{KsT0sZX0gB zrTu-rX8^Z*v(|=u1nZAU7EZ*^S1kY#LS?a(`97dDeuX!YzW}~5K0b4RmoG7_Ys%5s zz&FQ7Pfu?;TNvxQvq&ne=g#E=AclDs-TeO;J^~n?%bsn7;AZ%;ruNY+31cf^;mrFT zM67gL7z9)i%BT%?uv~`m>r8fo0TPGrs)`TL(NnSk33VlVRs7W-uIEQYfUM|1boR%{ zr`%L)tU9uyP_l1XQ`3)k!f}5)kyH_fsCV=8E;)s9f9=ubhW1i&{&hQwlwee!3C87} z9XTfTvYhSNs;#_o^NmLcyE#?9a<8`5A?plbAKwW;wQ_T`h$u$}5~lwZF#$qm;`THv z*clG97Y7;qz6~Yc`PehKyOUA;vC|_M(e+}<^Md8I4o$h0Zy zJ)dRZB`-Pm5`C`tw-a~sb0$c5E(~oZh#m3A4(_8H$+yAV9Iq=gMb1_kF*>`zhRB1% zPl2%%r;0Vzu8y~+MnPUkg1y#BvkAp$8A4X2sKb>$(J1;0#Ic$E_e*rGA9eAUgshnX zxRixg^EG?IES|;@vNE-EP7*^h_3eA(%^%B7}(htr@I?zcv_G7Ed>ae z)n(NVezr2lbF*e_nre6Wq8DhSwW{WrsvY+I6lEzbrHO;E>SZ1an5-@ERx!}fyq;uM zFXr*!vrJxE^Y-*$5D?JuD1B4$D3pv-nwf}MUA1gH*Mgr>yEOS)lkoEDYGXR>!|nnWr0{2h%3LD*-PqxOBYAqJuZ|qhZ z9y5}#J5$LaPeC=|3)RHj*Dp6mN<+IWXjDhFrl%L!RubEknz&+DNN)l7R(g?rf8 zt4LCqNjTCnkF`r+5tkbiuc$R&^fw%ew;X*!>*T;xS{AG4b*`z+ z;R+F$j?R-+@)60xzU=7iRB55PE4bDfZoE?NWO9XYh~d@~y0KPjf^K1CxlNjI-Vfa& zuB4Ts2%3=3tSYt1Ld5F;xBroVF3|8|qlwaUMT$+krvO4LLl^}?lY){9`Cgy?#O2tS z*6U>sPEvxBk-e9w8aOwFShy7u8Io za1KzxMT;~_ve~jE3P^9+FoN{HubIvnVK}4^o-?b#9z#9jiibO3&rP(e59u)?q94gl zpUl_4yUh&#AyG14tyZ+MRcKPRws~32C*@Iha?B~viq;+w?j8=PPZx|$KDInMJbdb+ zR-~JPfNv>4J&rgBFP;3~5oE1?V_|_0l;KHPMkNrQgPxT&9&e5=KM~#VJC(3WUxHSX z2>mki|MhMp9Z|B~rSAMF1@ny(;dLK;?s?uf!lz_HQNsCAf+6#dkCW1yH_rfpqgQ$B zGZoRT$ulAsCv4QcIjPx;`_LBtA(oo0iJaJ?>93f%1CsFZJo$t5odJZgCZ+(A)8o$Z z7KloozqU~XbzwlGGz?ERJR~GLSfEl@M<2fqzrlnJam5C|h$%qOB(4o@0mAw4l|H=V zsK`03NTseh*BwDdM&)^P`1Jw(hmE}rBnkR>mh)4EgSb9H%7wPF>2Tu71>dP+XnZz4 zgUiuc7Ox$w&He?LZ>&PaXiPbOp~Vf-y1IN2OxVCSlJ6;a^m~QE)*>+K4K1yjK=KqJr;}}-N!s4i zo(U5gYWJF_S;Jmw98&1_YaH04bjA|y|5R#>ids>Tud8&Mmba)HYz_92_1w_Tk67wS zkEY*%rFmv^noTLe>(!Uk;UjzhQ$C;15Q0XhM7J-(5A6Y}Q~5%pZg_c0+2H1!-@G~iVa^%PQ#g?O7;L|?pYhc(w5rAIbQi&ABGZJK zQ6~GvccGZq=7;m6lNWlN4W(s{)w_bO$}NcFnsAQDG@UoC_6#WkF22>I3{i9&MOLlU zQry(5ULfR`^Oe(408l-?(*GW<&{Ozuz4CIo<2J(mi}PHiOLXdcNz1ifx!{B3N_v2F zu+pzUDw}YU*Em&)d+&e0*ghJx-rkL|IRL;ZAO4hLl*RLY0~yHQ^0A`TbR*|1|I9c* zW(^JF11d=PTz=44%vVIyP(d@LJ}`c9(RDeaL_c`eoU)+aw$w8DxxLxtNU@4ejwe6W zM~LJ|XtBi$;+Z5MR-=*WY*VP&!sueB3uV#}G2W`RC``#y$TFD?Qj2*hArBDrSO*ih z(-JvM^Tp4Z^=jtwSoMti!#J&V^V<&hEER~- zFdn@e*S%bsF!=YqR#A4;`EtqK{n@JPtQ3Byk*966jOZZ^G4%cyGhYtZ*(e`}HbdUJ z_MBL30G|)>#pt70RhpYh!i1_d#Yxl25Yz(kSiM70lUCxZ1NyYh63H+)HwF#|Nk*|n zj4Ib&>lLBJo3>QX1RkkXZAh7qo>!9WA|L&Awr^e@5&HJ5XlFo+=%Z?{(WgBz_B2|W zwf2Fv@tJ#l9v<4Yra5U)k!vJ116X#TG=;xFBiyn&E{!6BROQiquPjIML~f@rT{Tps zzlmy4{TTRrY78g|I5=m1COA3ECX0F-%>J{K*PULCe&b3*keK##)X*=3| zA?Oek@}7dvIb!y0IoFDsr>XJ8!3?LYvF&1UNc3Bkt}_Sd$R)}-g{{xAC@y2XxiEa)g={Y4n-iFe)Jr*B5$XL$ zd6eJOyQP2g6#J-vLq(tj)&b`~0FAjXFF$GQ=!gM4+#;pTxhMM7=UMxA8Nrp=wLvtu zyi#w!n6}c<$m%;<9gtDUyAs2|CC|VT(6XEjinZUpBl2 z*7n!cmtEX=z<|rL53g`a9|tpb^l%hi`Pq zCV|WM)4n!h^zJ4bzNoML)eK&b(T(tmD4{0{4K2rVQLsh$T1e{w0ZVhxmfNxEXHW6L z^DTyq!|(B2M<4TR^Vx#lc`+scw2g1UO zL4{E-uK-bf`-AfjKQVB~m0c!iExcpa*Ym2ake-F@uk0BrTXkmHlLNR7v(prGDdjtD zKke@88~U%VkDf_*NC`@Ks?G&dYJ*%aKYq8gzZfE)OdXZJrpo%RbmM?$bD|I%G=J!E zysGB2{|s7{7?`q<9Fvu7uwA`pG2bZ0OnR--_UiW4&mUq~Qgj>D)spuT&B$n~SCxT! zGVD*(?szB8s9C;p!#{!YE`W@zH9pCD)qnzBv0l!@&+auoBVdZtUdTn$f(@tTO)|MKJAD)sb)4SAzVh07`0!WQExWc+p4F^Q;h% zxK6HftRkma{CF{{$q;kXzDfqyR2OCzQcb^5j=#kex;a3crar+k%sak%V6P|tUHLP; zGgkOr*k!ZkGfLR$gtYKmDup;m+QNbkgI=q9%qTB)-e=xoF8=*&t5G@^7XwlJaB+qF z8Jog*`;Bd$x0H3d_<65hFynSoCYF9N`nCU_P!+K2i}ZZdb>rDla~Gqdp9~5aiJf3u zlg5z8%p&MpH7B_>*nXs`KS0QTUL}AM6Z4e8_+)o6DF&?T0!|Q6V?seWNHTShgtF`fCGjVyBHEC1K>=IEkWBap`4Wh2HG)N z{B~Sif+5w>^x@p$_g<#z43#rKzwuPdX?;SI2QH6>>6)z}Q^mSs?5cL!qvZsbXJQ6L*)i(^U3V@bek{qn&RLe;?1@XS7i{Un3s)qn~4z-GxpCA-5T}# zjHOnuU!&DnjwW}9rU?tWohlj8bFZml1nQEKcQjO_n{egHr1vY-J z943d9jNUBAG!D@r>X7MUvuVj|uQHtm-%F=GF6oDOdP#3^e+z?n(OxX{NEfaS#42?h zrg$le4B!W&&_bt9@@SYBe7T{p9T5j2Fa#_i1K%kRvohHedbRs!LF%X(i{kAKs9 z;v3W_kuYN7VK5=f$ndE34Cy2_Ha&~VXC3@_T$J%Hf}$>B1p`R774{HOl&SZh{IEvsYO&)EA0%CzPb=@)s(X( zD%ZCd1QS`5A>JTfST*c*UzlmInCbVG< z%WeD3kuV`=FOHpgqWs}NDt;+X56rpYl(q;ii$!su3`V+~+5F>w0vf7SbViM0NdsO^ zOWRm!GK~VoR(D&@aK|Tr{rbxEmW=Il9SIi=onn|oG9`~Sl{{wx8HZmq9s#qCB-GJ+ z+F*4w8W15JktiMLmbjGIsBS|ly|PZY+#L@W%Kp(6H0o6a+q~%am3`glrf}~U@_`kh@ErmTkIP9mqtml*}Xv7x}Pw*sZC!7+bX9bI}K-l`AdtrPj0!S^MS2F3+< zu*X{BlR{LBMMOg-^xRxs=n_V(KUzmQdA9nQv`>$Y_Wj6ZZ_<}9Fa4fxuP{u+11g(| zVZ)?&hDlmR60+&&bSn8Jl}$}<5ZF=4D_pwz0RUZe1aJc2V1tj2(hv;~k2=d)+1rTY z9ObTHWn`;|@kufAY@=ZYDUkryG5%o{t(NNG=J)DOu6z`W$&}a20=WS~)e3h_k}kZ< zQr(&;3IXSI4Q9o3DrRtnG$lcqRXggR-WDOIYJpCm5Gg3mcBS`SZ7UXXfdX`b=bEK1 zS2aIa@*G@9gH6maVyrTnDaJ!wUADsB))D(1V%LJmQww@-nZt5|2xK>K9ZOhLJ8 zizvRDezn4g(<6aJ?oz$H8bSpuiH@1w$46@fmMAwldE4ylUN zV!?#t+%k=k^L18RY0+-)roJV>kL#cXogAhMA7P4ph%Y@(r~B#b2K}4hxQF}x4gJU1 zn9s8(j$@JhK(`1b){WH5G*ZMAf41BqlgkwDKH3g)@RHkSsmDAj(8D0?woBhQR@9e` z#dn>*aNi@Cp1YLWrPFvpdiv{mkzc;g%`Cr1*Z*PVGS^}lYFe#tvLLk#fD$4JydLin zu;{LyU1DUEK!PEUlG`O`#f_ILyh+r4*MYRf|B>*B?}pS)CZVjtrf2?*ouVqa+q?dz z#D0B7N}Hy06&-6$1wZd|VA=LeD;TODPbaRI&@MvkX(~mR?>TFGv?iA&v^D^NX426L z`maPNqi40Pogct!onsB9g@Bl(z;v#k-)J>rGB4C&62Yy(!5V3j|B`j z<>w)oD|#+-Nw~%P#XxzmtnKRh6E57GjS16-csdJ88 z8ayHYK#xA9L03t&ksQYi7O~K(Nq=cHlt0HlCRoA29>@_q_y>6EGp#P{S*u>G_zJuC zuYyi%I!u79eeAxf_ptMsyP|!~&359s9FH zzZ=8m6GQZ-!kk#J-b>FR`vK^lRuHV%`UhN_S*v=2pWErg++%j(%NO*Dh8fxjK>$rz zE9}ywk7oBgS`5Ze!6uD~Vb$7KoEliym61*p^1v$rg0eJ7zrNcMD-<4qj=YT;fv%Ew*mE%0_THAuCWQo zp%I8)mv1)B`SrXNTvTdzKefemD~%bvKGlLTSxDeU{f1iH-MBeFlF!2s8-r|C_8(eske;w;kG2)Nixvf}NU&x=tUvTk8#z3*!G zIh9L%YT#pH=scgo)h!RAiTqdB21#A{ zCkr+5_#C!KEW@gv^G?*fpNp%d*!$zyq1>fmDfj4+FYE)k8MJ>?2YRHv;&*O&SD@KK zA_(M~{5Fo(w;PTGmVZ8%yV#=a|Cy2`0U=t+gMZl|L|PIPlZydOc+`(tO)dtO?a$96P6<8J<8s77HP&(84Q9bk_U@`L?}OS~FxEHH-K~M} z6nOwnk8J`^$tX^fh$)XRz?4L^&OeR&+$UvIMpD1lX5C|#cIztSH05ahjyQ{3tiIgK{X!S&X!KEtx9QC#FK<~Hk4z$I$$bj; z*B%z}O)iQB$_B?s@uH?h8uH=V67A3-6*|@u-7J4~uonb$asl6waM+q0pH8UF`J3Ai zc#jNZ|k6Zg(J|QmD^k~jfB%YUDv_1?bW09p&q+S z8ddoep%3s2cwqD^ff*|D2H3ZPwby;o^GRW8FRok8r%L8czq^#cdoEimaEZLY@rYGjk6Ze zrAPdz!sKwgMDth)%l0HjOwHrhb9;LQw#l+HwosjFCM~PXB^*O#@BPFiFgW}QVP<#P z%s&+$i!ouNt|LDS4^qm4YIF=lUrLOeAHjH#E|w0@nQd z3yMY7tO%O23r1pq%^yhvYR;~nt@(iAfn2OpR%6ZLWi@KOJclpeSoC}#O=WhZvUaQI=Y;A>)q1ydzsU@qoiwq{?P5HYR3- zUZcBI&V1jXmvBEGdKBwY`NvP6loeW0Xc(+@b7@YGuhxoK&$omOTW?`HDx6(n9XkLC zP@Kjucm<7zcu#1Z@!bX!YvAJ%b{8KG^{=X)ONLDWsgqGvPXTSqs9yc{Bf{sI9v7$^ zfF6K-3MDTjP^(C-$P(^ldRhubtmKJf{}&1*#O&RB&wmCpDIuA>DVw9o8h5fO zSUIiF8&#Nmo$HTH`QzcThDa$%X;2jz#Y4;L-O=ct&8qv15%%62W3vTN?oh@94C0BW z+?zX(@;}TBOI+$hS))C(#&V<&S9Ws>-d!QwKP*!r8}r8UhVZzPCT<6uhoTDq2)+~l4YP)4h; z(x8P`?ADjg&J7?fpj_~2#RPRnJYd0{L9004HDN1!yYB6h0K#IdOk4pczQ}B&aizKS z&|Wk+H*|9FwuPZ!1br^@A1aV&RldfI4Kj#?j`1+-ETf=AUFeME8;gmDX*|=@ zy-Iz)MZ?3|Rz{m6u-5S)BO@aQW}3z-;XM*2&bK;m^uoqyrOHXBBo@*nU56@j2U77uvG8fMvN3Wh87NSKsetxtTwbI4Sd>AkzrD}*g zJVJV^a#P<|A(tXQZ;Wogko1hX0J4nq=UY1bI7>GH_f78bGeLy60~N+(lf#ZI(CRAV zBH3}MdV3a6l9%U7FS@M6S_AWtUZ|- z=5YNu99?;CXhjKVhZlrgK*!B(>sEm;?*TT{*TQ#A*!OzZEfRE8Y+du$ER(=@f;@sqrNx2*9zMQ9Ugzi*KS3~%^BTfV)39LyT;|oS+&2|J?EUCT zV@Wxbl$2QAwGJKPL0%{hos!LeaU`5wd`JZP^0Qse*Dm6v7HQuI8N%J*17D%eBE#{R zs{w5nT;#mAF1U$Xi!7hh1Y#l&*^R}R zCVAtp#Rn5(s3jbu$hJtit?2Yp9{@@##)&Vjd`QUk%H%By2OAbs&L2mi8eaK_R)^j` z`2~;^GXvE!c1mayC09A0PN?=>?^2~-yXqJv|1Wt**fdJ951dMd*KTAz)Sfj&NgqEZ zw@ zUcC@(D19*Z=@uFXz^j_3*~j@~=l+(_{m*`u6b5*rXx8PJf7qx0{PnkM(*Z_Rsnqhn zv(11<_+{C=0r(kn`7PeRJ>#F_3F8S1gQMI3!7;jdk3X-WLIFNIcLTzYX#$B$ESZY;vf7IrM*jl0Pr^LA#;P-NH!v z8`}QQpEp#uM6|yQ#lJo{Ca@1uZ{cwLBD(!2BK-3%f2|S+@cx{bzZ|-M9pvV99svmw zK@>7`-~Vfno98nI-rwxeU!mteZgg`E4UpGzMdg`^DHqO_C1#K~*~Zk6rq%{f2H9D? zXgfJ-$o;&3Fzo&_p+#6!>6Q*-(^;>2;2Rq|8CC!|MW7pu=jdRQF-jev0&s|QgO9qT z{>g_lm!mR^d%m){X==7uY3lVNeYh~$_&#diQ{Z7L%X6>9leo>K!zn=-4y0VUSJA64 z?>D%{PL*mafcYG0^6nGs2HSQ2+puEoot=K&A)etYg3Lts*JTDYh+uK*H><~_aY&FV z@lH<<(8zi^nEEn2Ra~Nn*Y*xfgVfs5#vy~NL|aR6Bn4z8WIC3g;pquVr*{kBlMw<-ZHc0+Tx7p$ zb*Lx%SVFVPP-?T3aFX>uaAIa-pHjgqKSZ_Nv}L2?Rin~T4K!cuC+IxB^)V=HiIOua zk<0S6qobp1N`@6qE>I@BnO0I0!SF#GNWAm$^73gFNlk_Y5!2vgW=Rzb{_tXG?kws#&4d9iHk=;@{CNk zg%H2-CxJaGsfPN9r%XE!2k5abawS;m&}tm{R5e%DM61RSThRSXSlhyG4*(>e=s{7X zHi_=QX#=rhpX~Relj)v696v+(i}&E=#i&vH++wa$4fNBoMEmAT#QdiEjUGLg-<^}Z zXnOgvT5^81xhO(85|zj=p8^A%R1_5-?5xxRzJ*+yLV`5FzR56@ON@A#r*>}q?ZW=_ z8jP?w#Glj+{L$r-?WlG*6dh2igPBn>Ut8dqDioS)z@)A;M8<3K7TL;SwB#P!zjC-b zQ0+cx+8^DMq*Y@suS=0?fAB->-rWU>031rT&8(AGbjS#A&)&%w7O}1nN*oxgPBzdO zuxJ<%0Lt+)8p<>p#>gK)%VkLb=ZlRSPL%6-}}BR-_g-gZC3{(2YHG> z)ojZ-i}m!bBAVRxSayD1J*Ccq@67pC*wL40w)s@n8z@nC zlarCHqhj>s%_{$EyfhjfeYKmnutCm|4%&fw2_I)XIL$GG4B78~L2vZhYn>b3 zr&PcZ0DXTr$8EL5p(8i_rBtcwaMi{3fz!R81`Iv&U+)wXT`;S0<6QFIW!bV?Y%~}> zm*%$xG|?Tu3+?9BxLZ<~PgT0uMJXaIaY9H5aZi&cnk2aAdSF@T<4K3uK|!knkpk=v zYu|VoRr9Hix2IyS*7DOEXIlHXIa%~@GBlHkbazpjm5OpJ+0C`JTS-WyQ{9h%rmeq! z$@UwuRErf;S86oz zShLcak|fH?2i5e}Qi7e4$>7|vsn_hRj-J6t@_ixItL1Ch;Wx1-Po7kJ{-opUI-eu8 zGtYBxs9fnaF*JC)_=8sFIP!3@$uW1pRQRW3i&fOMQ*Zh!j`MJaZEFp^GUmtF>pyoM zfufFzlv+sS5-$VP<&G(DBkXaW3j=I+06PA$8X@eQ;frnpG(NTWyFFxksw!Tf*U~6X zE+(D?x)+{4mMkIg)+$|#9_8$athv?mXCuj{6jnW51Y&;g*s77pnZv=Y2TtSjo&lHA zf4pSAj)9%8e|^{dr$06W6_xOnVw5Wp!<*2r*UMK*mrv-@S+;U|do3+i+yO!*1CUZf zmh*kh8Y(N)&{w5tXsD0J&X;Mw1O$R?#Qg_wy?+RZc&?Pcvybz7OD^CXk3-2{2<3^W z&1x9twt|jbFlPH5 zotg%nWQj%|*I-JW_X#;q`V<(uMS4hpy;TUrPM0-dc8FVYflDz0Pk7l7&c^)==vpDs z33UlRqtBh|*-slOFV~lWeQ+lGm2duE55gSW9{Ay&OY@Q97UAGV`}fXEZnqb>iUXF8 z5n5}q391ithNMX0(-j{4oC@=d^5oi|jzR~h+W7&2pz~m&i2@nnE5;uD`vY7QFX$E0 z0|G#*2cg>BR*^|XNr_f0ACYTmb#GB}WQ>LjjLk-q{O*kCd;UOnTw&;!mNAyF-~#FJ zMW^j0IkS4o$s)BJpk6uO#{W`%62k37QJ|}YprP@VW&aZ0}Zhu;lZL@>1fLEyMV{QlF z6tov{vE?nqF7{*rdJ@nxwYFAaXu%eWtI3RM@6k^p`$wN}b9RmsC z+%0aak>qnMxOdy7BIL&qH_b{Q%1$h`1kT~fiF($G$KjfqQ$o$##tFzO-a)o~UoVW3 z;-Q<7&Sus>Jycx{6wEuriQM5Z6>S+QIfcrkv@g&`5B?O8SLzzGPQJJqgh5+6F9yXw zV>s>Ow0b{P_ucEJ%WJ;?#yd|G#x!8~_20vv8m|@4ZWg!`gRf6PFDF<4sm>`!H6JrO zkHtYh{5lJ0hacMTcyYrKZ|QyvqiS(_swK!_?S9_LqNsMQW!4V?o)K&7w54)%EWrHB z+aa^Vk>AcBsfV{-+lk$Q_l4dDz=!tQUq|`)S($j2-m1VtYqENF#J$G;ETMCrw?(nu z?ZS+TRG@~2hQsykzw=X!w~Re?`l?@d9fhhD8TFWG0}|OP)a^A6b8Zty52xphT)cXn ztg#0KaD-)A?Ofao^xBp<09mVNRWgR1j0oGu3jGP6C^MpzcGmi1i=I@w?(iW_deV5p zF9=K(%TgOmO;c!LNkdQ87E%QQL+Z#a{6ZAly!KF#R6)cBEL-D8*UHH+d8!rD3mtlSVF8(%njXAoS zF{)9F>H9iqrF@#8R~V4adY$HRKwz+J|16e=va!K7^nz8)wtzH_F_uZG zDpwA!cGxLF#{g)iH?_(~rOumF#T;tM3~A6g$9|CJBkp_(Q%j?)VQ*%-+$+{hzLWc` z#(YY(%=O@Xc_p6g=1B{`DP5-wN^hD z-qsY5z|Nzt^pTz(Zllo>Y|w4&Q*Is4Zlzs7bwLTx$m$Ecy)o3;(Pa(3leCdFX z7|;R&O|5oChtyh(C(>9YtZ+oHZfpKrvWbg4Kb&~=7#1l36dnE^bWoMH*KDzQy(GoC zjIRI8I?NB5c+~IZB{PTDiQ=#}SKofrLmc)R!uN>#*}Ar3PBdHH@IYxaigzoW-$4*Q z3%*s=;}IfOY%XCcH2{RL%o(7K4ySMy+Q@kq9pEg2gZYJ!^UR+y+FpOP$B#nDJ)Mqb za#M!l&?GrP$9LHZ+a+4)YF#uoNhWDqq=+8ReRl~@7?9sjkEHf5n0&;cTl*e;vJ~i< z5ONjcdc6M1=i+31qspje@muQvP2M>23Znn@lIUm87|>3D=Pt!-Hy7wx|3P}RYJ)Ou z*26^r0L=One3dU>qQ&uUA&+c-SGtEMzSVR`tA)5vEbi0osWkU9l<*-|iMZ4Uzx`nCON3!kf*p2E4!`u8Km>Te=aH=|ID$EW^u>!mH8*ley=?gar@JQs(ONScOOx zLN~b;O-#Zl_;YLZT1W~}0d>u+Gl>u48t?>cAefrDuV9*-aB_^T-;n93q*h5CwH3^wCUT<#Bl*U0Syo1svbM*<(|m1(I=sh;oO2QkD|NjhPs{A z-?+B22k9y=G#g8qd!73n$6r{&^XHEI`g-92z16ziQ^=&_jA#erLHb-lU5;a&5CLBPB;H~nF zPeoOgW^lD(K|oOOCSHcmLiCCPC2LZ&YmDW2ZCBFU@_J;SF>XOguUTLsAW@(&WUTOD z{6x^Xeg3xAcHL_|dWGsb^VwwgW)J5uKB)uO$U4@nE$;VY(}`PV?pNyz1=LdSi8hMV zSCYFuE+2Xze?7r<H_I=rt|N(fJd*qI8~$_(0aB>swQ#ml4Xcp2yPp9s8CUM7YkRXR+eFNrqvJe#1^&-#yXW=oJ5@NWQms|2TcqVss0@U6xKlj z9EKRbdH?87-6gU6iOnt^#_P)+90zq!=M^`}FR?B~*>0h0_!Xl9R&zy+?7|AEU+by? zd?80U9|L6`56DH#H_;VjO59MSE#~V~0G$&RF)zK^=qT;0-Ik_m=e{wB#l4H)s(gUw z*Cq9lOby;K@ZCVAZRok}d|idJGf$f+1Ku3Cv?^ndXX%lZegQ7B+TC!TodSf-`Rvx7 zr-l*T$GL**OD{q1@GU!+(PfpqCgXOhpi|hFFJH{_CHkggC6W!- z&H|&Qu2B-)1w{sGpGL&mE%r@ID9doAN<3LP%*o#MNBkC(>B{&VCAW3~#EjjgR+-wU zQf^+BkN4LHVh4iNOSSwSzqY-VC3pADD{nl9e{to0na_4dbp6tLvEUC!IrEkZdZk8n zR!}--C}N=IW6P6UJ}Us#46+g>*7Vz*|89E!e=2_eb7>z?DdK9|mkIud+wxySE~#=; zjae`d82vBS{ZD7-=9z^5PlWnE=PjE705-=bR=@WB?j-&9Zr;MSH`Tj3mBu%$p}+n8 ze}0a|09dQZrtJ^?zrXVhD);9D-2ikAH@F{*W;NFT{{3&4+(I>x1`Yv-1FsGH|9v;A z2%Q@s8S?xFQ~$qi=)*y~9FaS8=U0U_6*^j~pj#ZOgohx`Il$?T_Vc?PN+uMNnU$p% z9{sNc;%}=^A7@xrLGFk|%056rpK872!~Qttc_zWqjShGB!$MDeYoH_@ zGwsjZ*5Bq^68&b?eS<%;{3_@QMkRh}n5{=Ap9y3yH?}{$opV}#a3y3w0x+eShBl^3 zw8Lxn=1MmEjqN(efZF9mK_?3I6kZ8{wV&Z-_>IQR%}q_L_6C&UbKEQzI;DJ}=n>}t zM1HO>L6>{&gaPfSspDV*9(~>2V~#X9a_(K-6lOFGsPy2c&#=%fy!Uyv;*9KnV$mD zTf7r0Jq{wQH*cQJ>jM-SPBe?j%rzRkM908T0TgR*s?1kbRwS-||ly-qOL76}? zb@rwj(|DFdc<=mtQe26S7%{uP;xR5cuP{)rLjzRsZ2)s$7zP&|xJ~)+VFuzM1%;)3 z>aQZJ|JmX|vc%#BsGpz4Xt~*25r*iN&_=P?en`&6>7Gg$87~76CTX=e3Qp#0G7a$} zflM#QaX9p*iZr`)v9YLm^O2&}OnGEslTGIx#M&0CTDz9-GLX76z4ARjlG3I0IAp*k zMi2ren|A<8s&ev44S|o_=@`(p?^)38{nAp)|Bt=5{HrS3_l0Q?B&0i~yL(a6NHroFpu^Xs4?#zU_~X1SmgR0F$I?P>W8hz*9#u zT@n-jN{fpIY@c!66Ch?g*g33q+_+F$`t1<~Sk#D6Q5D>BzxIX|-{s3b&w#+2fCd?Vu-Q+ue8R8gnR~xl&!a8Iv|! zLu|I?nW77ze^3hS^JS+Phz-wnc0NVmbIvsmi+l0TiC{&-r)-V@ZE*#6N6w}N9FwQ9gUf?%6uD+PNktN<)`XY zu9SBC{m`AzYZN|*Ws!ZMY`W9;`Jxi9ryJ^b4L19OqQ+AS`s<<=FV#kpvn{vdfk^wa zU!(Ne+_t7pFuP*?Uhli_@*-U4kCHvs>q4$_P>KF-NCiQJMK()y$tg)QRcF^euLWFI z%SsB?`cM~u^;Yq8$>|_$oOJC}YDU*`G|;NPKv2vu zHi~}!$Jtkv(+QaK&5sjCEzqaTeO^AJTef@5dk)17#!@K*9*9|l+g+gP17Iao6|66N z3XolAy5GDX17DLKsj=w3Bmt4mvL4Sb5$?^7gXn+L1irzzH=YTaZESF>wL9m^TzUfj zXq|f6*zi|DFE}h(?Kr606V{S8KsJW|dd5#@;|_?T57J$Ne+3u9uQu6r7p?W^`zS#= zD<~)&2^o+&oy;tn@q_;Tn1+C|gTUu zA$7N33X4;htzXX9l*z}sga^_Q9UzxJ_&v7=s-bZf!!xTEp`G3UxxjX@!u0|uuKQ!@ zFnGE=8eieYI$VJ5KG!`)yLWgvOr`Bx*46%a+r^JOiHMYkje`TJzXN}CG#a~(k-Bt7 z=gQjJQQ}B6y#@^*AKzN@!vCB@J~EN|tyY5G!e5hF1LWb-r(9^1T6vsKCIC=HQ%VHz zmY=WLO>-Z`tJr31M4e$0e~?GQdB`_lj`22ASqD5CD!*%t|6+5}uc@V|g%T;ND^6!6tWvp+WM|IvxhfCCsvG%u_2P_mlY8SUZZVMQQ1;dxS zeVx0qi7_qoW+eYUTUAE*ddRyFM`T1Y={8$Bjsal^ihkGI)bjY{{qV;KNsq+5?r}Re z58*IALO|M^(*Wc)(0hEz%uMrp~nKHMCv1rmc0_6sG64o}H!rkLJVC32I2 z9B`39q=zZmv4D)fp5oWBWlVf*30;1dyap?6l|b`DpA~o?l{SIp)@J@(Q{yAHbq|9AK`s}j| zVAL!f2P**49DhR^)Gi)AkZ369f07W7!M;x%R9kMa9^IeNj<|QWx6iSBp0N&gwxR_H ziZyvpBx2&TnV|7%-Bfi89}VvqZVrYxatewY-4gX;IYu20(=cq+AJboBh%Ps>N*`|l z7xZV~v{eO~Y&eHH)FY1KSdAq3TsHli_4Yi&YC^v3cLIBu^U+*!`Qucbozc*7Y%n}u z-~L z?{eMiOJ-V30jIFfU*vc)r&pHe#mKotqml_wuxGrc3ToVp_VxyT^XdLN-XHIv(4Tws zIjqdb!N8~4llO`y=TJD3OQ7N&$~)nJei} z96G0ZQ2{GAJog=6cP+Hrzf!J;56GS_*OBeNAFBgY;A)afzp|b)eA}+)_1_eKkp~t# zpK?pVC0nnw_LkXnLBY}>>6nRwbLMw67eduaA5!#lJV9>7J{@a2TU#=bhemMa7EWUK zkAn|`qi{U~99XS|CcurU-1WwKtyNm+g-xmcV9e!xDu;E?It~1k#=5s@Z*CUt|G4!0 z_W^If4~5Q<{x~l%C1D{eygF6mF;2YH?A21@?I$UPL#G-&6vvnkKO?x}fFI$U5X#N- zir(cmcz#vn$cQEP@~B4ptn_2(vV2!X$mNVMf{;}%;_G^qT`XUaxqiLx{h2SsQiE4; zi9?2Dnh)142GAq~6_I-J8~?@YXao->W?7|{DuP!tQ@(>W%em@;8rROFk-d< z)fFqf@Vh)sPw!s|=(f84N~rvjfAj?bMV~U8k1iDgV-(_GF{>S$IWag? zasc@md-BjPPwY1wieu_sKd71F%@DBJJ*uB6cc5NsFlu?E`WQtrIGpK|#Zjb@Sz|gb zktkL%F_lk$kMd0}(m?iTplc^sKH%}D*ud|(L?19+@A9{QzXmmI_ZO4j6Ql@WtL7_< zKLWuE?)NNTZZO{d=UMpQQ-CbY$7p)HXdGH?I?P3lEjqT#BADQMbm9*p097~z>U+{7 z^#P3)doP*UPtl+d%Z6ev7R28_x^I26WO9DTm$?Vg+}0MLM2B^l8h$dCz(@d`#bV#5 zwp>Vv8JVm;387jHN7i`y&r2hw_Q>eTdpSJczst2ie@+My&6jc~rt!?YIri!c0iLO)hhjQXwrUUjHLrfsOFVR#?}6)7`C|0n)sCYk*cp zPWFd%v>G^ld9gRB^p9xeufoLOLu)$_z!unG7R}Lpl9VX!Y`W!@*Uz*;K;=fc1p$6? zl_6YIKF{ZmRMuZJBXj4z0AztsRJDMO1Z-rz@w7`w|0jnt`)PFJ=(iQe)J@ZOazfHs z6=Lol?n7QNN+&^-p+d6yr_=p%@yfk@^! zLSG${NdgzEzvGnaHvVF>MO&>J;9lsJO$7hE5jz^&ZVe1my;z=a%+h15<^$tK@3hCH zeK8$RF9evTDUPwQ_8xq?8=z8UvPFyq7%n`u>g~-XSl$Ht*Jrofo4H3@U@!(V5_&{V zSp(9WEh|0ct$TYJg2P1hZ@;6Z36{8~UEC0}K3#s5C}lSulKPC#x%1_`!tqj+WwACk zDk@5eNPoH-zW?WAH+W!b0XKZ}4 za%Ve`Ur;7~6Tnk1V_o^>BZl7)D`l@u{80S%>U`!^orjyNvW|QgJw||xGo;p-p{;ey z=M6y0PR^`Q$#V*G!8^253a}C?=5{^x7@4^My(X|5qik%m0phGKUHKB-l};IomCKaQ z*YiG)gPjjFCc>aeX6^tuOjTUu4Zq~s8akzsi-#(f< zs>j{)B43vrnJG0-JE(=vx7(qg4%;@nUGpA9WPm3bbx)9WNWliy{FUCdy3lhpU?i-N zo2e`jyI6oq1QG?D3P)aXodW+WxaPlLx~hUseE~a@s0v+kgAVUB|BorR=R(4OTIw^H z?CfG-59p$>A6k<68?J=^+nqD6;N=0Q9st%s6}%EeDpYG}&;1*TI@ycZ^6+ z$wtu!aGEuh^L0!62c&;p9RKg-UYIllir?jw$}Jf?S>f!CR%P}8Tu7)GwI|{eL~$m_8&)AO<;Rjf7_Zt+ADnVNfij(FW&Y%O55tW4)JvG zil`*H+GGAX-JTX}o=KTr+4|9z!EGQP=4`q0{OR1M_S#sB$K#gph3$}A?TxkYXckUY z#@&Ec91$yL^%e5by?$yVlfCt=vb7^NmZI=6B3wmb2}8^c@GYo|xCE@uZUH$BsTIn! z!9v9R^7=MM-z});9a!~ogfeQ!L#PSk9bAT@{nB`wUMCDLOs1(K)ZhYjUs?AHNg$BW zq^g(y{83pi#w6<|g?3L6CK|3;)6fanD1&2m!6N%;rwqm|p@$j?%>g{>R7rZ+L|i(l7q|dMq1X)b$Od>6F>F`Y`u$8xO}`TUw+vC$7OiA?%q$>DF5#tsDn1}ivk{tUi;H$0s7b+IN0IzIuA@Uav^qKKNl z@}UozB$!pdyZQUB67~O%`uOLs)RYybGF)vJ)8j9n{kY^OT!IGll&IPzPe}i#G5Wu+ ztWxH{xTx}oxN-l_U-KV^wrIM)bOTo6yYzo%H~iar{O7lRaetS4ekDZY|H{hv=MVg2 z4=e_10ssF$>i^qMDg^P{XiOk55@3`EBQ`J_n3_rwpYaaTioq?PGq@u_0>SGupM@_z z{5z8KueTG>SqTUTn2j9VNv$ab8@VU%M5jJNpEBD?Zm|K#6Z zzzt3eDN`GT)n-TXH$h0p$LquSlauMQLniQ5ZW^zHV#Lwx)S2|w$W-26q!?VYmG@7q z`=QHf+J_G!4*SeGCZAKI`Qhi3NTap?EN#FxJdFuD&0yf-ZQ0N&?*0;Gj|iN$(e zkAG{Nrx%htybDz-zVHH+2N4#H<^+|z_n-aD=}6s{!6isG9scpeUU{a%#8VB6H6H*W z0^Im3-vk4lPnV~Gi?4QF53^R(RS7|2R){BwIZ#tu3gW1@oDIE&Im-oX;_YCg4te;I zcz*8FyB+2}*heni#C*C4-tXIo=uAkbUtZ1TC77rwb%?c>|a zQ?5izYN{QIr`y)XOtFe;p|jO@BE(Z+AcB-I<^_T0zqj|!@Xo2-VQC4a6ncmKk!-t6 zZ_&jXk_!Vl26#mG3=b_xRl`f&< zUS1=)f{bTUO3MIwrQ~_3)PNtIj%ftQ1qO9#^jdjF_fx|Fj;+8~&;xzNXF$hhI$<>R zpv9(Lx=PPtg@$`~CB`kU>G#{Rh=_<~b28AFn2Eor{5jJGV6alTt#Z7c9j4S}&)dC< zfm~zN>MvTey?M{;b@>i5Lw7DNs4hd>+eWghlKOgLkauZk-)u7f3*@{7K+Y^ulpbOs zyD2k4kfvm3Ahl2Z-no{&QIDXhe0##J9Um^CXNXJ!1D>g%x^SoZU!C17eSr60=Z@4i z6u_R%kJ}D6oYq;)(xE_jmCtEi;c&l@nqXVZ7t5jxuxfbPd;F4%yQ=A3T}`LcD3-zF zEn?tC*kL{1K`i12tZ@iqH`n)r7#4F)o5Rk6qh}p4lH7yG#-V^qLC86+!6%|7XnGiz zx~|fT&*N{(g{YdP{qo(q*OTZ=3?{C9JNShnTe(cr4!qep54cP}k&%(TQ|oPTg&BES z2lYbU0BNv2weadXvKwzFy0A%@k{FCDoBd>dFfOwGEigbfJrX)Y6NZ1wKfc6lU8F8Z zecC|o$>}=DZOdY%_mM>Asq@o<>}s=>RVN+Nxj}1mXSs1kPL|$reXfdw`vM&vws&S@BVfC`SBBdPV z)g{i^&>2s+tBJc-=y`v#lk zAS(G}(MIc4DpwHzN=QVnQbAeUeQUSPP``R&1&a~ZV?9`&Zru9dZ1dj`>NXluq#K_f zKD+tkXD&tuxtvY|SKB|mvX&X(c>09G??6%>_G`u@I_uV3kzt!Vhy68f-)1$)@=08A zw$%+xQ+dF${?2N>IyUB`yl4mpb>7?klOaiEpLVS`beq=| zkR3()iFUybGE?l*RqgT;qu=}x98c#HNw`Q$Nx+_S1+)OrYnb&{tU7{sXq_rdZb}^A zy2P}HO2MSk=+rsDwR-Yo(V^HnUHeFL8}4RS(6DEJuUscCxbodq33q#!syH~46wMc* z$(tUvGc?~!L>LVX2FA~Z0Fq&T#>dqhs1A*=dPDB$!GqNc!Jzt_;|1hJXnR+mPE^M- z8&d&f8@HL%w8==`%d;|HdfN&Chvm)$^dC*G28B#Maj&QAhNr8!u$7v8Sz49Hx}oj0 zFO`jV*_N_Bvica5GCQX^x(OOZwuU!d5HdfKYxfmbA8%+S!f~0dKJDUMM5edUAO>4K zLr(Z?kjf04T2EIHMWnJ!Cg3p79%y(vp6-I--{Z>x#C~;pzr>k9$JB}2m0E{Fnm{0( zdc}$IqIRwcqjuA`;_~n+!*1nDkeAu^9%EgIP|ySu4ORNPr9@g4Dw$twl;yioD9?Tb zIc1K_!=Lw z85h}27yP&-0Xe4$*5W8i^y$dPu6yS`B74PIm(G`KxJ{W3WL021$R^O`pLOkyRHyLD zVyAF9P~E&vH{19 zUY|=dWlUR{H`Pk_l?)y|O6P_q3Wq1}2`-1@cxyqY$2fOFXIIFn+@*HYjru+^$#n6I zL}!BGvf+lgSsB3fMyVE?(JEM_P+sf>?!BU_9Q}M*HW2Dk1k^Y6i}>)P+%~4LI zX31Sw(%W%c+oFC>VVkv1<9;bmc83$a%v}y`FtYA(?W}eDvook#V9DE3a)S#`xeO%W z&t%G@@!Eg0SkIOE6A7NhhZ9by@B4)d@YB)k_W}i{wKw|jJ6p8zb6#)TI2Bw z1rF&)|NVXTiqS@X+TGcX$s{!nQM|_-x)U|TE@d_P^27;omIaV%;CNmpr zbvtsq5{ew1$kHQ1Bw#8VIxi}3aE_ys?vG60sAfxkeYhj3N3V7a*}8slS)cR|4AYwI z@I$AP69(AhhI&|f?1*ulG~Z25(^05ZR8OjXPqYGVlLYnd)cE_y+E0MH&MC~LxJ zze59L&nIXgq#1Qfivve@F<;c(VVNba@SCArqQO$#YRlbJ+tZ!-r7{WSQx4^@YO+Fx zXV&5Gt``FGPqzN7qMy+2(a|mhn>&7}%M!ps{$s;z$Ah`JFmgO*;%yynUl5fEF( zbXyi{3QZJH36HrAviRV}ugJQCYW+7!(>ojkQ3(0|ga+B2AcNBxqgo<_G^PF69QKCF zV?-|lUrJ_6mTS0d9{B0Y8>Sbpa1QT_*@xJvbepdmuILx9OlaxT$rN))gTp}oK0rQmN&BQx|MC&5O&qV4Bb6z?Ofh z_UCgt88C(`P%`RA$3%{K5(ie zo}NZ!kAcJK(J`NN#@u(=S0o_Lu*meznggiGe*HNp5nK3KgC5V3?~3_7)`O#Iw>V?b$4RJ^J}`pk)uBjBYJy+=e^Ib7bC|j_4HA1 z7A5x`T1qS~w+!`du9KopZAt4R_D4I?+I6;md;&ISge_0#5>Y~Yj#*benHqg|%2`4r()> zEs0lcGGm?Hr(t(A+wY^H-!>5#*U7>z)oN+5Ab78bjL(@vYx$$EHE(&T3LlrWV<^9c^~?_lW$shZ&Jr+-V?ir z`U)8ed{NKddI-XJd;#mG>g9UfGTJ0Iwxx_K^`@v+o2LAjO%8kG8f#0%(|L8qQN)aN ztIb~h4N=H6W|=}h5^o^463pYu1ubfaz3}UkUI$L~SCEg0TcSc5hxqQWnJY2xclxi< zma7fvWBN@}?3!9Hk^5)*Q?Gx{18WZ$e3(yG+Jd>R*g3SO@|@2noRJ-Bp^dLP1mG3+ z+=T6duN;VjCL3+^S_Tgt@E_Kzf`u|-%`gPI3&)ds;lz~J9$eLT$NPyl9rmZK+cUmD zN4BT0nO5s3X^XLpa76>rPPJB#JL}!mK%?XNatB1JghcX=1Rx8XPJB~IorB7R zQeh-%y_&6~RNFf#xJ@gTT0vwu@zIqhcsFVWm>z3lY+|*+No>Y+{@mnxGhHs0;uj(j zY~Ab%WH6z8Cz6~r5R>gdH%m3SU8!;twqf9V&8B!SqjLjF)J z)M%i5hOSpQ=A$&$JQL=d<{?BV(sRzbpV-L)3FcligJcIwgYYJ|`;1h3WHQ}gwpj22 z+O)pg(|WttvIdv!bAl12*1hef`C<%Z``EV8r)e>UZweb;&q|P$myTsDkRbd<-ZGZ6 zrTkjPH^3eJH`H#XO3CP`7m?W%3f74BHo^ZA0;(6#1M|l#6U?*z6!aofeEmaF?b#bD z^ALeb9v+|58>YgqUIAPR6!W`%=rtHLjC!3r2ZL%a5%Tc`94h$~JKf#ey4*%^jEshl z=RqV1fT~MnUL#kX5#`&g3?78-DFWv2@c5(@av6d#Mg2KBJZTR>k>BrOjo#gk`2SG{ z@^04Ng$uK9%4Ic)l8mOXb|=6Xkz~xDzM3g?G@4b!`LINeqzf)r2;o$j5(<>rF~{#2 zACAFf%<=d9U{-0Dd*!^lG3nM)vJVN1dvL;uX$8W0cB%;louvYu zULC@zLB0?u&9I3D+>Wy^z~XzlAN3vK!f!Lzz8A3pq|-Ts>6%<9lfLw&KJ&JGZqwQ_ zmEMJG4hj4c_6nb%Iq7?BzFtwz`1JhSA-<;Hxw9*1)-HfcE?FRCBfdQ$0PM8M+5zZ) zIdSmA0&|*`AHYKf0o%B57d(=kgUHA8)4fPIs`jn|W2xMU65t_x#-!TIk%3VeJwfV< z&E_iP?Qz5mp^U0OJ*!`i4n2{3n}G>?RrAkHlSje9_XhBHC(EN61K*Bu#7=caorOI{ zTouDITprgd@WG6^QFS46-w$GHo;8~d;pSeW5=0d<;Shu__5zJeAvJH@VqtT?rz{?V z55dSpIa3=#Wx{`++kQ^-qbp<#tM_&2XOzEsfq0vlcyH}KKoB9hR=to*pg0O>2$w<~ zVKa{3YZ3JYLMj)A;c!QSlem;egw2tbu+yfu%E}AxiL{W+6vi(3&7(<0X88+1kquq7 z1P)_@-rRSpXdUm2aW!_nK4FqTmxuE|T=tV#Ueob0h9j{wiENyr?DF}0;=|%5GUJ4M zZ`eT5OpsB_ty~q#XJ+R~$Kcj3S{Y$MeZ(i=0q?%dI-}4tTnb{ut(W@U(Wy5zn$P;% z?+-}_xYmbxYg8HARzcE<<3dl&llylj`U-C_XaAa#_}7KrufFV_bx2z;^1TApXXXpp zrMjbT?{RAsu0fKGN7T?oei!S~C{H8rE3Sl|09oBPwIWSvO27GQCMFE#5$(yeo0q90 zz(6XAUoNbAxhoYnG=6`Ekxg!>gLf6Yrqep7I zfRy+3cZ~%>s4>l#OK$5CGp91*=>p+olwFrKf!{?^T~N;bvyq!Zu4Bf7aejz6BMQ4i zacpT1RS)djaFx#2!Ae;_B&(z(haB_7e7ab&;t%!tUBjUQU!r||`f2-P6M>)43)FMri!V0}fy#SE{B zL`FNH*w*wD?Jts(bPtb@u%xLXkL;rWi)`*m3AC+!CR9|RpH^CHYjKGWE?AVEQqtvt zYprJ^dg??%+?z7??1PW&Qo)Wxs9h&evK{&L+}&ER$8oU-HAVv+bDLOa!P&=gTf>F8 zROK51DZN-rJOe)lb2>fbm=0%zNIW+N#eM9k?mcZfk_Ec2uU6Xcy6>h7eowgFMPu?D zzF!rwdvFmKsEpe+bS+32RQbV;mAZ=uL9Aa?{bN8VoC7M%d~9OdURG7$LCszj>z@Tv z9_~n5@m4ZOEnvv1I9KyJSMan!o12H;#uf1~bu!ap5ZsN=mf(z-r zjpmC%oZWU`$*TT6F;^&WAIzR5&1z=te%6`IGawGs5)AvbKJ<4DpB^sMuq6PqQ8*7w z&#k66)prWgp5oi#ln~mZ1fr|0*h#QjRCWb1UCkR zfQp}PcWhZI_6!l95?SzHdUqc=Xhl)GY_AW!Y!o2_Yc_c}?j3L2r8<^UkLivvYUvGOHyU zl=NCX#mDcP!@=NL*?NMHEZ@tuY)8A^>#g$?XmA)VGbr+PxSewt2;8Ntua_fWj$ib- zP>BSx?|$iKNvm{uPqg}*5 zp{93TI)1k!lV%E{w!ga75{-fe4as#VG!0=2>$-F8-e~d3Blw69n^`*#^SxOrmieuY z%F#k`EI6(=OsG}0Kb&|M34`94Y;;bY;^uk@#QGZ0|qD$;cy6ao!L++F- z%5v5%%W&WoNbiLj`HpES&FB1-#4lbSEgZ{1zZBz{qz|%MBbVNelUR)ZlJM%HUG;079NwU@AvQrZ$3e9 zjE=i6(1Gt?3E%BuD!vnWm@ksX7`i&Hq(ftgI|RHPq~S_GnUJ>E80IT<)rLn#`vq4~ z2LRmbhUI+UeB}vr7Zi2ZSbb{IiieuiAc)7E#4fA@C+~qvezx}8h%Ta^dp*oVgm0qQ zJlvKzC}KE~X))%AmmmloSCUY=)zxm1K4ah?$LznBD4}j=YBOW2cEsWf=X^qM{`PP~P$04Zs!QZ~B2ARI&BCY?(4r6q3s#APhW1!iJw2> z##BAId=L_OW&0;2lN998lF3SaH}nd0Inj#bz_hNMi`j)>P(D`~EkRMr`2V=Xy8G?j zFHC@u^B&1x4Pr34(i67QVg|sT%!c~xjD*u29;UFw*WoFMXdLTErRb}~UetGq+Kiq- zc@lbcHyqQ5_!?LcS1g8q=*}JU;86K9KD%agcEMvhppjr8+2A6nnf@et_mxF$!pMCv zNaBOYhODqK=8@hBrREGgGG2iUj0*)h9`{C;Slh$yTuJA2|FbVbZ$gLEFA6P2(W!S( z{=TFaqht`UPj~D6ITrEsm+(dB!`$u;51`}ibbkAu;N8^~lF1HZZpY9n1P zCw&5ioVWNdO(IE{K`*8kOCpb(ga>vrKR?KjK|CVBfH{;C%1q?HK9d#EnhB?HeJ^O} zDz+9EwwivtTTjMm!k~WzE5ho@qZ)IY(Q_dC$J>_`_}Sy)8u1Fb{v3s>*!4vZ#~Kx~ zsi4sFoDZUQa4&r#d2+wJG{tr;>SnKXT&y_?Xg0_eo%yXI>A#$;>oVf;`=c_IK zu2SWXU5E_1tO!Z?;^T{^V`&B6^6loG^~lw1iSBIr-=AA~8_EP!!spLNt-@Iq1(P!A zS=hvw(%uYQS)HIWukc*#7Br2C>1i;GzZ(laqQ!{;1%gVBmf~Spg@3y^)!-s4B=4%@ z_iKn1fPpmrscRua;nI_Bj(K@aasxnlLpulrmM)IGuP;9A4kW0-PG8qGEX%P6nOc2| zEVaMO7-#QM!rM5qp2-5i?=XDQNp^qFVc)SgI4Y04XA4ow4|^ zpsS%(jmp>DImT3WW)B%Y&z+={FhvQO*C5_b6cktM!+m)<=g8*Wo{)Z}<((wbi{cLm z&&326oU>6O5VGGc;7d1ykO`8hNXeOlkqen>1+U`qDb%(Nj#P__>~bHE1gLs2TR(v) zJ<#h-DIsoIFEPK`pb0?O$`y(S-9LZ*QtPg^Cw}^gF@MI5e45Y{gy)cBHjbh10E_kWFv_S|4^0;qhtU zaGJcc1s%#;neiP4m2&C@$|nPmtLIkWI)i(08wDj|D=X$Rl4FaLGEG-c=g}z156yp&1acLepewe-(;JM58#(hPm4W zCn2(&HSou)xWD7Fm3lctud@0C8s63Wo3T()Y`FhrVshIe+WT1yKQ_X(N?fD9C!A%V z^EPYA>3G3zbj-*isZ3xkmg;i>R7?&@T^2)`uz$|#N}@4upFe$G z=cLzZ zmhIIZBYuBZjZZj6Dxd8M;tU>{s4I$rP$ZfvJ1I=YQdlBGuBBG3;y#KGP1}e&4u`wh z_Q%L{wA9Se)8z*BQpvS;FR^1ypFCK-muy~$gYr8#3opWs`HJ-o(gGD4`Lw2^wkGNA zAVU5_ywUVGG6^U`F@RQ-kEd75${_S@$E9Csv|N^#pn@?<9&13o;-1jW@X_Y78G?hz zyi5Bn(2-_Zh(AGbd$JY}zT}@Q;r#A4>o<-#T9Yq>9{1WL&y!xUe@r)anU6Ms3Fk@k z!fqlbsmt$_^|OpQ;K#S2UJkhk*CW-=GICpIFZ(ZO7pPDqU-q9>LU){g3a9bd&E&nD z3xS4TShZk~Oi(SABgwue7osKbGq@~{4m-24DC~3WJ$PO{ zM#!Z4#vj%LwV~L6r;D4m*DL!ORu!Vk~rC80vGY$^VvdJNU!olM%v!$vNT ziS%UANI;A)5&l3MBBePFud&;9$5LelD4w#JaRpf3s*fP`QU54o*MYvTHUqTNrW3T@ z)vNu?b&5R->1-ixe}dDml&^a@BDz^P!kyhZ&r_{HK>e;8 zijDh(Pm)`+6A=q&qnpTY0qqk;9l?fsxqgS=7I^OP0!b!f?8F!z_74!whSdhgQ_R`H zc5ixI1w}|KrAYe8q%ukWYEP|>rui*=H@Q*7CE73kQ1Sle_^A*K^=U%B?2~XNZ|v!_ zlD~l`WfD2;P;a;O8LJWRJ?W2mLCmP^WEFSX>F#Wy?{g*Pj~y>0r{RNb%@G^9W>*)# zC>9_%H0>Jt!*DW>IL(Aztk;$L&??mj0%3b@&K9b5Icue-*Ug3#M(HjR^z1gvUN)Ys zR`O^G43^k@ZX9n@+;El;VRCYj9p?HjL#B~QH%ZjA46%VfQ_xVv3YOUsrn6kRI7inG;p6*~ zED^CFTdzCJ%r;h$`LT4~PB0HXrwPO8&PF8*Lzioa8yY0G?mMU+uJ4onkEpm(8~DNY z+4i#~?f2G##lV)eyrPc#P106)t4~fAD@G&j4=z$aHVh|9f1E)@&ry?Kbsi-Fv4@?n z*$TDK&FS#?pEbIT3RYjnxI-hYL6{+i5sxg|(oqL$sCB-a53CJV_ZNn7ArZ{m)Ss1E zVIv(BHyE^Prq0WCrdiH3%4U3G_SJ&_`845;PM{ zCQ7%&K7#Xe-OmW2i3CLC~uj;rs$8X3556794lnr@74F}%pUlA zcjLJ_IIT~>%4nT4iw=0>2f}_(i(nnRH*dEF@6i3&)0}VJ>j)N@xa9gx))jE zVfW|rZ|P_sS$$AXmfGf>SCVj+eH>o1(}Z9ug#&S##ww=`NpQDNJ%KB~zyt zmDO=XtQ_i`pT@dHSG|0SfZBP9{y~a?aHl>(T4`OtydRotmaD`!->#ghbk!ke(#Rx zgkb6f3}8onZ1k3i=sPjSGTO>M8p@KwpdvrNbY*x5`O}99L6Et+%4PEEypW4>Qq8du z&Y*Nrd~~nzm-;)o_*Ftcda81n1RB8ab-|7E2uz@9qWis2$tP{xB6cyC2XOJpyeGZ^ zI$uhnAYrn*1)B~vb1Az6sSTXw#$1g#zjcnvdRadpteCSFkKxu)I z|2b7Y9>-s3C0jB04~`xmK*fKA(e1s02>LljMC3r4I_%W24v?E=t?n{vC2DGZB1%lH zBi`SqG+}id;!tG@mRiH>89kJo59f5CfpWKvR>@@> z`qGDw5|`xU!agLz1MmgmDR1?}%`Z|4}w!Xa-Kc{Z7TGQ>G_;u_hUooFR6 zVGOZhSti-}f0bF+#~qef3i?GMK_mH7`NZiphKVwe<~s-=*psj zWMU}-q9Z9!)yjrHy~yG)t8Zh#apZ9#4q1%Zy+@-qydU^ghU;1!ZmOomDl{*h2ANKB zC5(m=4Ogj;`-f#ba*M6TWL#qNq3uf;wbQ+eCz*A4)Y~?LC}v z?S>wNIKH|}n$S6hX?L2$dAD!CL&+(LPmu@Ad{hmQ;NJnv3ZzH=2D-eY zy2JcnYqD!>&BUPZ_bG%h5KZoyhPhU2EJGyP+vj#~R}$lp!6(gpFdCG;b$v8jSjnea zEb7J?GQy=PI%;mPdb(I%ig;q1AP5%@_P8<``Rw$A%W_F>wnSCEFnmrC<`W<&CPKy+ z2(MUgH5{Q^22hI)c$h6JsXR=>43j_{aQiC1;3(B0BRK>gMs8t3ujQ)@HtW|l!{4k%nV!=+p zZ_Yi}-hb}9uWG7N1DT<_cgyOvK3V>9iVNc3z#d-4`CB;&xV?L!fcI`qKLsE7`oQ~f z<}gprA1&8vUf_cbuWt$^wAsww^`K2G-}=ysvm!u(UqPHIU6b$JyqX;z9IqwfcKYgt zwJ0d}ZM75qtrohs&ZB7PY9Se`%W8-Jjo9#YKdj*L$wbyBzGplBCXDB!Fr>W?#@_-^ z4d{pLsVlm7%SuYS!agJOuN1wWsV9{gSGjps>nApSeEIP;8hS!vUB0ZB>2Ste((m%Wrv+gpHQzla3lK>M^&f`ryeg z-`~5Ll(FLMqDV9`j><%CTf~4dUa3cgkeyJHlZnVcRm_kGx)m72QAl0@ zcPc>Ums0-gSXp1s&<6`Faam3!0Q>Hi$$a+fgZ3~()KtW(m?Ur=uR%OYY_J4&Hibk@i$xgsw`Afx#?eU5*~y zWrw|rPd9pVslI@YfJAS;JU*M!6tyys-=q+2227O1>SnjSZ-iL=tr+^^cF36CmuxB_ zubYtf>AbyIuVM<>;eI!JZ6Z2m8mL_U^!;b^UmDUQ;vh!Xc1J^`h9UbN$YGki8EduD zd?Inn4_JHZB>H{B=?8bRE)fnd@=gNCV*CO8{S(f{5B*u}(Hra@DAsCvYFx+nYH+2@ z{uLNt9~2s;0*K>AVDkeB!;zR zu+(JdbhB3HGWUMq3-CDHBK+(MJdu-40bDYWYssc~71mnt(B=e&64lA17KUoSfAaJg z9B?f`#KM4n2!F-hy>WgofVBsI1&>%B{RZ9(|GfElhXC%)qn5Kz#QxpHp74ofPl>QF z=x+<=kFMXGVW0=y-3wlni!R0LLUeisu;ypgXT7Ij?jOWuQfKB@oPT2hfc-k2;X_21 zp7CT6{(Y?f^_>?DJpAS$)eenYUdy_WEdr!t$RAVc&&ly0{(+{4#EfG%I*p(B6I1x_ zkL2IqwP8YwXFkO{<>##7n-~!8WFWcBe>Q!U3wSg~T#IiL|Mp}$ zG^2!P0ClA6w#TVPxtY-;*>D^>NzW_NjMPR4Zx@^M91)?%i`S(()d}mp(Z@2JLiuUD z-mn~&6FsB1X`m8~Y}jGlim|!f(XEEYw5`X{yvzyoXbfNxh7iaBUc49F<)$}o@Lt!C z*ELq72A0!#hyBG<3JPG8?~CknhWUx~y6@RO4qs{Fld?G$PUKq5EVtGeon}RAmrhas zbF@AIkG+Y|?|03gt=^9AIEl$NAE?oEHGMRgSHU0Z z{?UGaXMQA=N9=`Y0|2M)8f{4Vva|Q$v3YA$@`B-?>|0=fEL3ooWaM7CT=1K00L1PB z5)Z=)UGEDwa~&e&i`qL=Y}|55xqei=N=%(u;P$1ZH%baa@1WCc!zmF|Cl&BI@#C~v zl!m)HepXXBQ9s_EeP>><}j z9GW(FNzRRy{WCuA?dq1h1LB=ah;qH29(Xt`rpCq#642!fTD}XM={wt&4Q?w^^BCrpoBlVQ+H?PG_z5hek8AR|Lq14+0N$5QJWNL|l zxEhy7*h{!5HM4I5Qm6#{PSl69fFw`3zSNS(Ma?b#j*rpIO4Rhal`7MRCG>8e zvwW1g>2;dq$3w*vGAgx)7y6l<5U}Ev1?JHC9+q2l9(+p z5Bc0eetnviCgycH1MP?iaab-UeFS7L?nt~Jtd?8i+J!~b-|bbZBvu;Gfe0p>=TTq3 zL$0-4`m)8Sl`$W@U#OQ`#2}a2V6V;>dCmI%ij?^)v*0)m!=2Cj?~G}JIX;=x$$yeE zjOhSUMv>PLiq2xBcFy;XzVek6ju~z1_T0fZ zN7yZj#YsX=Ta9at6`w~MP?6dm{XFCV!Vu_VXHuVc0-fup1sXcXAcoU>l;2W37!;E1 z;H=)k1Pp$;$n`Q*SFPP!v-yZ*OTm8rsf-U4&G(&JVEcvX2Z&F$L#3rCSTr5B2R8_u z50+CUxmy4cKn!!sR>{MN1fSiMI{8?YXn(%6xy$ueYNJcBg5G8Fr}AbVD4TBn2s5~? zHHbi1)uTmsCzl|&JHS?4rOss5&J_${_`CZt0-M#%g;>xkm>rt5>;J50Q6{kbZ$ zddfk7pA$*K_5SerR#PY_x_H|?vnxoQ^aJ+Kp*hEbPmgz46q3lg?jGH`*D1}eM4B4} zHl3I6Ul=1%=6AYmm#BfazR)YSe{f%BqW1k82u)~X9;p7lg?d519LX5M3ABHngI*M` zC>MT=XYXQ8COnMSp}c5<@}5e$0luTwp@Z?|9f+YKvNUtmo?Iz>W~iXSgvfVntw=kx zWB`iOY%f;MDYms9C}I^o8MJzU=(-#H(OLjVer3NZ`rgVhQwoRGyIh&rFL~9N(scPV z<+^g7R|lCh<%Y#oTSMs}`mVZ2vJU|Dm5iFn!)af3Fo8Z35F(u1VKGrpVJMMaXtVh~ zPr_oIM7w{MD`(m61*11(Zb4R7#_g967jgEpRCs_wHlX>G%c}_dyrG#mM&S5|bmw4b6!%lu% z37$olY#=~AQmHS~-qSb6m-J2wnNBdpIs88ZknqV=sVNE#TbYXk?jS?$Y z2{10d6>J&`8+<>&?dOG8-pP{zR$fEuRRNSRsqMeLy%=P&u<141@`>ovA`x;KazQ3M zUT)2P^t{HnY0FNcc9V^xmxv*k$^&%j3ivhd1%6#ustGoSxlwuDz$0p|n&P-}i>*BZ z22f5<$LCYIs#5cPeR-^#12hpt_~uTxKUH%8xwCxb^`1}*aylP-L#a>#3F5#?xEWty z95~(LFLP7jt~yM)2p`Bawh{H~pCk;8qnHV}FB(aGZeqxvjsvrnWQofvCeG22Ly}yX z!N-ej`op9R&&0JN^}S0Er=uJFHRhdOMe6ye(W78BPCUfPTt!7d1Yh(1Is8T_Z14*S z9(C+n1<^@&qNo>$yS?!4>1!(Gy9-ikiVUNn1PVSv_29y3sU5hGWR^N5^BxB{T*;j+vO- z&q$_?+*n!1`Y=WS91R-NmpnUwq*hK+1n~be0#@{JUlL_X9=v0>a7t!!*7+Rb_L@;`vknmG{gX zWz^8%^T-?BUibMr`V5WelgOD-Irg;mCbZWn!{>FLo=341k!S> z07Kye#gT=N;E4D0QSA%u;xI{-OrtMJmipOy8eaT&<2$dL6T?f6f!q4i4XMqy8_bq8t6+N6yZw+>P;aYznZiNCN(Y@u9Tf8l zLOijOb^UOmo))DH2|^Kf2&{OheOd~7T5Q~d(mme5)oa!$Ls=f~m5a++;a=TJnJ!kt zApBJhKx!Es^p`9U;MmycI3h1oxqSi%rizPE8BCer-V4RvK|$@WzONFfE|khGMz=Zl*XU zjRE#8`?{qXZMLvc*+>VF?0KuB2&HbNS7TG++MC9}c!SlWl?oqX(9dtv8uAGx+PiDr za87`-VQrXjbnuXN)flQqK#SXHSAvGEun6>~46yaZt%;E`{e-x&YY+I+wU;#QF7W6a z#MTm4tX}?p*gY2k*+2)7m@K_RTu%0Vyv-N1z7C%z0eH|V=Lm7zUqNz-RhpM>SJHXs#!9uNj%-8jdUU3Jgj|St7wLGt1xjEbO^#e5*ZSbECF_g zeN*X*D`l> zRj}Bd7!9P{2I9JwXjM)>RDe-TbV@Fg<9VQ#*H@)Tdl9|ik!zF?sbs#X4R1FIKJM>& zBMFAec}g%^r)r_)Whd1SmtF3otKV$(uN0_8`c|lrFCk|Wmx98bz)FH zCsDl_beHJqgc4l716DwNwzZ{?Ub6=W;koQYMW&dw#ff$IVp9kh30-l}b!w)rYsFS; z*VAm&nC?8OQSjiJko)WQ;CDc7kCNk;J@ROqK?^VP^?uah!VaQPzl-%k*|PHs*naCn z4qG^hRQ1P^48Vu3c+%|?5UKm)(Cf&n7pvz3!nsB9nCU|nM?m<0%&oD!Waq2!2Pi(O z?YN5$1F#j&Scb93P@3i1xVPAjBDOYK1T|YL_9ro9TYGW9ckE{N+A6q#=G8b{y*O~+ z;jUvtuL>!LuVAB|>}}V!h-!(W!%IW=hzXF5$5;KCA4nyy2##ksA@`fWShh!}E&z-m zbLxCQT4LClF`A+=Q2)AEA=HrX)@5Lz6BCH3Ip9G8b+ca?a3aQ)A!*UX#0fmC+I&*a z$oP`g*n8amI^l;HKJ2Cmj|RMG<%ax)vw~N-+w`sy4*&E6`N>sqJ&|BjBqZ9NY3S=l zwLFSPUX43EkO19ACVWqDiALVW1AuqlWu{A8n?@U-Szi&#(Z*F*y65T2lbS_}aen&rWMme^+SmC^yxDGD?fr^!X zm1$=mA(j4krnJ#Fk+t;{C7_6DbHapo~Y% zeyI|b%A>8_AVVX@u8+|tmN%3ff2N;k@({#|b!`REsBMDnNdwP5TzNtTPy5tkul7b> z;IoYZelG`cyVNAIUHbASG5(bfZ|_Jx`_mJ7j_$hCA&)XNl=~C5>@l8O#sfhGtwar@ zl>12)s{_e)(9Y@RaHA-2XtXNB9f{y&0H6j?vwez6CEjMBroMp+j8E{Gsd}DT3QwSY~exhV0q8lk9QhN2WQt(#Ym5N=6 zCF%qDYv+CxVIMT1+|5khBX_a`cyf@@`!5*W1}!&5(sVXc&dvAEoJ{*oM4SDs72XRP z-&ytZ{Z*FCUyb)iwllN(t88r>`cx7#j=*x2Tr~Y0Fbm1w{C+>LadMAR>}@-ee_c9c z!dv>(d!sl|++u|6zb22A-l)X9ApkRDp?<;Lb>2t4J(8ZQ_A{0S#2e*#Z@~5owD{}L zo~tazjG7Sb=$xM~zV)*5tdy_(%8@EPip6#F=PeVGe+R!Htva<-GZ2b9ZjX3tM<)LA z!GZ?v)V+NV?r}ii8`i6qLLMM2OpeY?hLrgC$qfx*1}~gB9?@tdf&uYK>x4-R!9Q9C zp8t+aDZ{UQ`UWmqn*Q`!yrP6K{REdW^*a7=>ZfXv0Y!Xhxp*Fw(ytDrs>KGz+?s{+BFB&HvE ze4lK?PSVRdbiGZ>NM&K&jwOtmP(!BMpf=%uUs$Yg8#KF2k8t}r4f|Nh0`o@0V0X0> zkcSJ&V(8>i++6W}&IJVM=0Q;E@X$3B=oga!t#i8WR_OVnm2041S-dQt5=qPs)XB;Q?ll5GU)oRWJiUN#7x`eX0)E+e z#%!##JBm5Wc0Rflp?>B1s|t=ps3wvj?5KdvT~Bm1mOdV&g$!L`5*y*v{$k8kn?jl| z!qR@Cq4R26AIHIZJmr>EUn@EQ33sfm+wcAo&qH#3qhjy|GU^dS z{xDbbVJ9F{8rJ3G_=fB?(g>K_M;;&9S;u=s7Toxqt&cepU!#@m9jviRhZqS9W@>2u zHGYf7Z~zaFQ_@&n_tCt$+|I}DxfY@?no!)BLvOU!9PZ*`c}6;0tm(~|R7*SQ2#bly zG9bEXvu;bwgKu)Z08n-S^0WKI^%rZG??+oK%{?vI+o)3KS1ToCJ*}w`g+?WaeHENJ z4Fj*yuT!$`_}!U0WOLT|(^<+Y2{4XHj(R3pw#xW@D{E$z;99Cz+V{=<8N`*2@+(n zW~piVbUdvQeu1(ukN+xYbv5YQt1x~g*TpuFV!MA+htN@I20uNqR7TJKOxYYL5=_=s zghX1M4lfu|eD=-8O&G@%br)b0E4@dBO#&MR3?q{2mwkfcKkZPo!J@`}BtM~MRBH%n z5~SW2N^onAPOa57*(y5@aCjD7%|#7^$QG`IGqA|+*l*$}XWkk5@|Azl47-6Ta}kO% zcusC1X|#Mnse-VvKXS7t{8($(Tztj${^1nJoDszUq=c|#!|a(*e$H$<4?@Y2_|K(Lz-@=5gSQV4ZixJ z`6ff^+73s9qOVLSG)Gd2hFroNjm9b{z}eze{8^?olt` zPB4S>%P}0|bQ4yq0)j(Zyx`8vLr3^c? z)}iV%LDsjt_iz2>$)kN@!+n$rM0( z&{k#Qtsi=#fQ$wG@W7$z5&Hw`MFrDe003-O2EW0=hTPgiVVDmmB@NxTXGqsBPpT zfW^4)#Q8lcJmj({SwTJGH-~=|kQCAVSPN05fz1~ zGem2uvA zD{H+yhV(3X>_U9TVer+IC6;1`*kXOCI$ja1(#fato~d;-BVhYP6iL9A@Npzbgt_DQ zaH1lN>HYSpiEca^3BM7PIIPAevuq#lXH&Fa=d=w}318CrcfV_hm_dV?sEIOq8tgZk zRL*uCk9;t^u&#FiSmccXQHe1`&%eSV@lEhG_RebLO>Vbr788@%%rZj{9yt;U>5NkS z$PenbhNlJc1SDc?7k)9w+p_!7s+SpWtGC*BOA-LvEq7PP@An-X%MCKBoMpA@EwehI z0bc1B_q12(Oqy+w*N<*T*SoSj(b#a3w$^4g_Mgu!8O!kq=ldMoq2MmeWOK9QLNrI& zw<;s>5V9N5(qy= z?-*2RRD;2SuH<5*A)IksRf&Ol=m)73p6|@v6Q+sZ88Th%N{V{I7szRE)S2`1o1<{& zmQ$#v0NHFgMJ2B^`X;{Xg?G9 z1VqYQy2=SNjV)xme%Fs^R@AcBto=;poJK|*{dQwEr=#9^gUnAl7TGMV_4Ohv5J9{J zpM<@k?%v^n_h)P~xG$Hc;YPgOyf)^7rYQjoqjh3$`{n}nl~2Fy3PoYIS*6dY9Y-`z z(QE%AscJ6Dt%1hsZR$ zvyetWkS#_?)ViTXJj1M2X9}gpEPm8L{q`&o<&LIb_Obgf4wQIQqFAI8;>HyxeC`+CoWA`S3Ixu0Z+8T(*KG^bCD; z5G(dx5r8MX3V=E&{B)RN8D!Mf;_lWvd2NYYqT3#WO8iu@M=lw$LkkaZP)Lo@cIbWr zF3h>|F{xSAfsjY>#LX_}&8cXQhQoX6yMSFV5IZ=;^CR@*(0&ynjU-`54 z+{&U7!EUD$5>I8b?{S$7Rkoc8D+ea9ztC33K7V72*WZ%IziHlrbB^p+OwG}k*Utlk zm(9guB~hsLX6@8I7xJA~QFJ1@WOZ-^!(*f(R#J#U8mQy&s!3zh!H{g#-!5?@tEO-i z8Ak7la5>Cp7hPs_hZ0e;rWqH>|3>O{pFiK*>VFo@!=UJ&Ej!s7Ucd?@)&?*nexe=A z^dw5P(vANpIU+znpByY!LTzr~zHw8IBo;F8=6@WK#bd}2@>3z^?{<@UI4}1JBhT__ zZE_h5n6YD)KH0AW9lvWi`C^nCMuGox@Z|pDNP@?4D@)sPdmPZb!E%;octQ`-jHe2S zmK+;jrE~#mxJBNlNpuY^!vvg+j?j%nJYL))Z`e(KS!0``J0labYSCP;frQfB#WF)6 zOBDc14lj<*fm)GdH82X=iRJ!sHC5?{(N&UGkK*VFk_UT|uj_|`4!<;ty@UPShEq7# z{JySf*$aGoC!dl-ZB(RQC_kE1K21GctfB5NeUE}CJ(wK*8nJVMsC@Im_1kWIrUNyJ-?El&e>fjuhQ$B^Jupy zVlr}{tANn+INO_ zi4?JcWKuN?@I-$k3fhLnb9s0EfSx9hqr;pVf7LYOu6Xjz?8HmVy&y1V&++Ecw2XPH z+l7L2N|;AGod%ov*@#3`$heI;jLMn23sLfGpB`>mvqOB5B|XPSMF(gZ>zTaBN?OB( zqb)QgIOpB@$ae}!8Pvu~!p8;z>O8CbGXYOUU9d;Pn!25)O9PO}DvT(z|d)C+~l*EPg{5LS7ZyLCx8w zkj@#2?MZ{Zw4}yq?m_!_|Ck$*@dCRY^&LYNnS0ia?W;Q_0V3aOS0dL9f|(h>(vPsKDu{4=-YBwGTMuKFcyad-Fq&+5RbH z#umAt-Q;i?w$2xgMUz!7`5A;LsL+l3*4)S?DO4Kdp4)Z0L1nS{Sw^1JSsjKn^4^3< z*MNHJG~GBM0Om~9#el{2_YY+P9!vT(9?z)w8*CbFRG;+RSJ6rpO~^aUH2|>=wpFJuB>JvnR|xkR~0lFnGkQ z4t_2n_4BW~VU~Mc50@1tZ(6TyT|W9}k*s_GMk&jAe`XxItqlO1pA?Pr4xB##J8}(p zV=RtdBMy5zlUiqrIxZH4nvlyT)6o~a{i@b;2R~oLJsgLjwwZsCsloP-U5HGnBxzi~ z*&14H7_8k`5hwEGeRgd2i`60uxK4PD!1pM8{Xr>JQC-*F?Xhx{HuB!ru^;2d>&`;q z+g14tEqB1*!rII&RB=?r1ofe!g&G@kx_zrpaFZE3E3L_I4j0Q4dq{W5b6k3r8Rg=S&U=?;hIiLsv{8HNeToMr{_>&k zM)+dtF@eu1&%eZZIEIahYTs^8t1H!rA*B1UoNEyBI-5%s&y<-!r9@M_=HDoGT)Fy? zUl@!g)T8ujhPMLZDC5pzgwB(xIvX~ENwZ8(9h6auKarnp$fIQgsB}6{+O)5*5$lHo zBF5hNjGP2C3o>))&@Fz#N=$KYB>n*(1LCHziIMUF3^SDTkM2sa>!VD@oAUw;xGfc6 z(U#D{;w#-!I9NP7$nNfbwY+SFo3H12tV;`^bulioBLzp_x3Z~P%A)Kxi$A;uX4-&k za2EHKdc$|9vVh{IfxY*Io3!P(sfPDZ-WJ%e+kbtqE;byjm~ZcEBC;{zzt5+q^Zp1L zIT_?Xn7IcWjYvHW*y^B2#&3|Q5kk&NFIuzrPXQ#tw(F*}(R(Y<%HGZSR_j)g{u6$9 z*+4IknTdSd?$KAIhVu*)|EftQhqEaQUCtJYG(pD%@+yC6B>wN+%#kt5s~BjZI1IF^ zX%Cis*g+O=O)C4@TEG~qj?+aPEr>NRnnmLRKfE zL)8Q4@?P0ivj%zU5MSHzh^xxr%NUA&^S}=hD?q50lv42JtgVlSqBX1xuKjeqPnn%X z5=ifYSEp@&dZGHj#{;p&4?D2~PrgdFeGwS30sy^{Q#|aod}pYTv~b-TT;50zpKMc& zg}VNo(AaeE+AKXfo(axL(a*j}f`aSI(AfMvQ%2wJ�w$Tx4JgMnW>Gc8?dJ#I$Rr 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 literal 0 HcmV?d00001 diff --git a/imgs/redocly.png b/imgs/redocly.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a27ae1a6d3cf7493a43f3fcfb427ec1ea57f31 GIT binary patch literal 120681 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

1;dr^~b#`R3>(Qt|QS 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 bbo)#eVF4$j?t6wF0)7uwv>p`Qw|enEz5z=H literal 0 HcmV?d00001 diff --git a/imgs/vitepress-dark.png b/imgs/vitepress-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..ec473a32f9cec68ee672be2a5e5de18ecac3e453 GIT binary patch literal 223154 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 51Q!Pr4J}K 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 C=bY65 literal 0 HcmV?d00001 diff --git a/imgs/vitepress-light.png b/imgs/vitepress-light.png new file mode 100644 index 0000000000000000000000000000000000000000..a69b5e54aa939155db5a15eacf22227782329fff GIT binary patch literal 222120 zcmeFZWmr|++V@SDASKc*ptK?(-6^7UcS?76ONk1IlyrB;qEouNySwWd?0fHhU;EnE zWNJt~tk8BhT}H{>~Zv{+$>a3IPff6cn0-xUeh~6uc`G6l^;Z0{Ena zUg8mWg0__v6ND=0BiaOSbPbdx45g)^Xu)eFDCj^FD7c5OfPVt;4+RDHB>)N$JY#|X z_dlVbV8Ju=!||Um|N17p>rdE!y@qWE$Dst|gd`-uvz(rdfq{jsv89~@kqRp~aoj{+ z*-lydEvKHPIirrgrLF;^leyKyDNx)_oZzLoft?PSlew9NEvFL?#Xr8m30^;Z%tS%< zkFVI7@=z#Czb6y2v@sxKV`OGzrr<>(BO~Ls(KqCj6&C&H>EIm?g|VHT6(!cNDD!NQjEe=hQ`>j)dz>e-lB*_l{ckUd;i zN7vHcj)#Kcp`d^N{ZBm&oJ{_=Bn#Vr{w(kVnI4WXy<}u&`uDZLsoW2ra=tflGB8sS zHZcdy1Ipli!^Xz_kMIB2k^e364`(X>@0l-OGqe2h)IS{h^Qj891~x*L=AcYF-v8~I zf1douga15{o9W@F|Dh@Vr=9=tDQIY36mF(}cN#AWZW?zK6cj&{gs_0T6ZB33qT3S@ z!gei5ulItFAOV``;&S}_IY>dzQBZtd!^3||@$o^!_(mblG!!Kx@BuFUoC0z_mv;VC z@N&($U*n9?ksKNM*+tL3V`XhA_`8Qp*Seo27%i#SI@}g8M?xWgZftDS!HNIfgNzO9=L8{PKf&}{m}mTd`yhdP ze&zzTNby&-`B(i~MPZ(}>Mg72#r>|pMqj8lO>{E#XMbOBGVcj-FI`JBZc{Us-xcVD z@pEDu+Aric^?rsyi2QyhEX*j({I_j|4yw-MWfl4N4dn%=O9}l6Qhb1e7b2)S z34fLN-*zzgNyU*+ZF3V&V-tqIEAao;pjsreTIn3L`gUcB>l}~Qc5j&^Ny78@z0I$W zNWFa#(YppyJDwT*`u2sMtU669Npq>=96PA&LnIl&d<_o8c!5UD@j6rI z-7VrX+qJh}cw8&8vhI?{ie1l1X6H#gZ(cYbtqfgqJKMxv&U}~)=Ri;%>D>J=_gWFO z_Q7+ci)$K}C$+1*e>o{qyrJk(O7y#k3|O^l9i$!hW*CsMslSzN4h1(fG(0;9vGkjB z!eTGzetFiHz$KamVPF@s*nCavK!Rl>_b!3^MN?DL7bYzdiFgicdHGy>VOGjq9nYJW zQe+1KQ6EQL-hCX+!B>n#%1@mjBv+?@3lqTyMnc5>n>Eb;9-udlNW$r#k&_*}qs_7K zzKaf}Nt^o3!7btPnJs&LR;ygOI*o&Y=Aa##WHDOli5-@$vTAyc?UwolGaNIr4#PP= zXzqZ>G4Szj%Cn&u*fRe>2m0r>%k5#$kA;Kb1G}mJyTt#Q8{GOZK^y)9af}+O$l}o# z^@2=45MSaMEO&$u;J>oh{#gNS9vqB3Sa*Ak{^|2T$Z}8*+gv!G+2-u@Q_LP;iR1J6 zh~a#j^**Z8th&DH_=Ky8?j~QvRnPl4+QX%`nDco{ z(~LvGsGGf7o%Yg|oRI9uT3Z+d_S_`Fc6So{N_CMK%t{`&TzcDiH4fpgma^2p$g^U*h! z?!^9B7O`*6%~MgLO>fOshz45%#F+93hteb{CBBNz2trS**VrlS2{%DmV7OV%R52RM zy*)m#pJHoFX{z4onpvHW>qcsERUisj;BvcgOl+elBihy7zqt&7V@kuJQ|vzO=gTBT z?F|yJtU5?eVE*DUqH7s|ivMl&bbCBaHr;5YizcKta;m|z0h84z2kGW)I==_~0EdM@ z2c|OQte@|mqC1))23ISO4u>w)Ak^Vei}*YH5Nv*9vyKH`MjJQ{`fF?&t28XVaFU_3!Da z*wWPx(Zufm|` zd(&i^*ei5_aiu4PR9jacl@qyx_GVLaU$$*~Okd=5-|k${;&j~z1wQWbhDD?@9qW33ntLR@g%DXcCIbdE>NzpORfdvIaz5@@-bA)=EouJwqOwxcZ8>~&P5uXDok@n55!F*Ln@`<8V7*Y}5R<3gjHk+wZVN|aotF~Ev zjaklwcmH|B;f>othRnT&Gnoq>&CY6!);HncIzF^)`RtTW5T_rb1+!c(^oj;jF*U7o zMoIZURWKaHLh&d~h7lyU$MW?%KVuSHhD5alMzFO{PN%zHJHqL%Yhcqhm`$RnGH4@C`{wY4Foh3haQj%|I zX}dXOfZbHhzhC;5N{ZHgd+c#K`hE5i;r>6|GNuG1PkMll`WO?K3Z`Hhw zzwoU-H_wiC9V@WrL-OV@8G7a-6Qoy$bpj`h+(H2B^JK57RKF`P*V?l|w{3o?WHrv^ zzS{F1`h{j)7D-__&z_!9-%a<7mcYEWgBiA^GoNl*nIji=;}ldHXomo&8w9zJ;R>_cI9bZ zFf%7FwyTmIS6DF{Hk|8iR_A}*j>x66_R}uM3l`Se({V_qxDHa6F=PZm`j$gG>!c=b zSt#Nz=n3<6_nZBt>^i6jmR>~Rsj*Ej;BCRi0Y z6Ii#I@R=7(uS0BaF8Ge-ToX*fkLSo>w21awo#n1ON!VbQVx+z<1qQle+Zz#TU zJyXZweT2(sOt&PL@wVLE@AekEd)~8f4D)6O;g+k^W|h`fXFoj^Ua-!W|7yFiLF#x- z`t(tdZWWZn_E~JWaL^-uVDy#mmKyaBGh$(2M-X#az)gqSOgi=bl;RD?fjJsV@7A9v z68Hsg{|1|J&xzCe?#7wYp@4-#-$cWG;No&g*L!2W#Gu=F4ooV8%Of0J=WjccrQ<45 zVAI#In5)Zn#xN%D5yTL=#mEBtwI1A@=9*x%Qn%l_oANcc&9hw0^!2z882wY2ofnbU zOCg%H^vfN($7>90ORV!qgA59A9q*#)RWdYQ9mICVvUJ9`l)EIiqf1X$aLo=23=Qp^1`{ZlVkTE;TvcBdOsS(jK& zH#2!o@D3=$j=i|u6kX2uvS%F+-ovb8dcu*N%~jh@6KyLRcykj`w%Yd;s+PAS9nHsP zHf^@*2KFO(kTHV6y^a{U?}YRcm@`SK5&?ncaFInEf3~{0F}wwQ1MrfM&>@!oy)8yb zr>~nQE!6DPY8@ce5qyQ`b{Kmem#geJMi{4o;{0%}Kf67EHS+q)S$mlF=16wPVHc0- zo@)};#ZrawpeVDbbTHN)TOj&~6)B+*kzdwz^P_UJdIT$2s?( z;CqdRw5jEG7-exjB4;39b#u@n^O`K*YEh8(O!OP>YyYwQ>9|ABFCS|?u6NOKL;}%C z(|jzQ&P<4}Q-27ufRW3UT8qkdzM)0%sMVi9{Pc93r(6Q#{>N*R><(qHw|WQ7CAT0R z^|EV8WXn>0<2p%M?vTkc4nf2Li<&H#my;pJ%b9LHRN|S2O4D)C?RYN7M1+Gya`=g5 zb)nY4h8%W*skZ8bY(B_kJns82D9&*|WW7+5uYwq@6ZP&iX!O1$uxMz7!Pp%WFvqD& z+vW}0k<{j@EEB35*69a40Rz*yo7gHP_kp9@Z++xf=6?qBURLV9Rdllp9f2CwpNi3{BiE{ z8vQQWLPS)7qxB?DX2G;1(VXV>6w7&UQ4Hd&Q@6`iCDG^gY0Zo&669q|6oKNSz=Ye1 z;J-dI55=oh$as4>iR9Ct)$rI)TKH;72(HO#XX21{%>8P!<4O+2(n05nn( z)CD%Z_P4jze&UzK2x!d<>n4BP zMDbKHbk=FOA0fvcVe;+h9?B-?d+y17M%vmROAFuC;8R%QGN|TZwqRI!-n&QhKJ&s0 z+b~K4PCy*eF40=)Nrv-}Yd_2Y-_`uexewMv9cIYe&qIzm%%>taouC;z`DE*hq$m8{^QbFx3Zl~t$4zD7oii)zG+ATb3jb$^J?I&9 zkSbHdjp}zb%lZ12nd`UXt{TF56t@R0_dV`6&xcz|OYj#M#E;+oXsQ6_kHo$ZruiG= zf%iB*RuOQR+3ymr2;k(w;E&}zRf3HBZTNftB&%E0d}JSv&+>LVq>ue1L-R% zzZQR7Jn|Lvlz-Fc{f%w-95$sc_W3S`9hbdJKhgYg4YEr}{h6v98dk1)^_Mjr?Lq?9 z90IP6O#90yC4y{bq+(p(E+IsIVvM9n(J+Es-9pCil|e@Y99EqTQ*BlWf`v}YVNWw+ z4y>+~4Nen)FTWzG^~v$B*A< zzGJ|Nx16mZrfi!7{=_kU1nCwuQW;m!kDv{a2n*p|HDqVt2q}_kWgZ0YqtuUoh#YVw zF%LmTzS4awK1hAG6pSQX|4c$%=95)Xm6iEqiFA?&hfE24ib`n)EsEY{e&vt2kQFl= zW%8}LI{XxwDk~lT1enCnWaPSde2hWw+pzh9d>GW&MoGh|rPX~@z;3y_cZHPDftd3) z_LWbjt~kaTS*xIOIo6inMDQbcKg~3-*Tr>?Os$1n^39SmA`!Bgjo34&)|rUu)!(_m z&bD8DC~chq2FkVwlFZ3LTfLUc+2p4wYT>CR-;khnDk;ScLku6vAKG$We#^Y>QwGct zK`KEDh>wX-ajc2QE{o2>LJWa}yp#Dd=pB3|P2%&s`21tIrx%gU>o7^Mc5N7wS(ptM zhuv}P5t!qAr8%s)=pWQRfz56UThuPB)8fMO)}E<0v@n)ViE(?qr+SVPvD5eST(O=j zWmW|X%=Wr!-h-Er{;Twix)5@fa|!LC5CNTMMTGG)5+i%}iR-@Zy7Lav@LX_J+ z;q6p%ImCX<{be2jHkFOa(qbYB^0|{Z#@+zklO_D2 z3iIhOC^u=t-XE#mPA%^Ed)XL7ey&*?Z>yAqns1eyuv&$3rK6>xPB7Al-jtX=VQyb( za;FMMLw*X|2WQ?Q8Km0gBqlz<{5k$SH;PV4{`!%I&fH!{H*MgH6O0+P=2x)i#o|?k zfr&n3oM{I;a*ufZDx3Wu)l8BoClT)uxS;JY07Y5em8sHn{ZnHb=LYHp5k<+>LQ~7t z0n}i9;>_`Cx9`%_Bf{aCYFnKY)o^Hmb|X18URd4vv2^{sE8FJ_~|O#qkE z)YiO0+ib2^hS;7GO|{CnU#swZ{kRE;;F@6G`4IamsMe1bx=1 zw1Ctfv?v$M$gLp{&{dd=UE(^2K3X$*K1 zs*|ZYtrCjcyj?3TL#mU4wnq@gug|I-(GBw>e!Zv}p(K}NGJ5C8H)gxu7YmgzJM|Rx zd$`|Rm*OYVd5s`Zr5($9{GS4*m&fZY8fPInNXAi>8GH5%^+PyjepyCv^yCM=fM7ybR`u7W_Y7#Zkh>6%Uh$lQ_EZeoh0lQ z-_B42*Iv3^7~>S_NLk-In4F@YqK(6%zH{nUhh5?#sZwr=$0*d9)lTn?tNeJv8=e1Z zjB^B20ohz|T366!ig|$rZ*XM>!Cr)|`dfCV#jYNgU4I~Mc9b^pLM$0Vs+12)0-tB! z*-@LwoJ$U(z+g?$BBE}iSAAcv9j^q|IQ9#AWx-MfBoFp6xuTJ54c`nET%p|1^;Z;r zkw8<>#~FN4vqPBy#gFn-ARr2Qh|uzNiS!KX@;v)G_A7mVdtNt{7s_rS zPZ@M;`0Ez)G}njItjo#eGD6!evmb!9F)V@rk~k7ON>`Io+p6x`NTPei}sL!BHU zXn93Y`G~g>HIbGR`|cSzJVJ(z;q>vMfvII9{(qSohA=^)tq>f)4|I}PunCmOh(`KY z6)jcFKpFQYR)>SeQVdwc45KWSS!V-NP*&ja>~4~CMqXSHhua0-axvHZ1oS(5izVB; z4pPq&crZfyT{F8;2CvMPmvjwprA#zjC~9vV|Nz_FW@EU{}iQETc4U^M(E++2!J;T+H@wJ zpTA9R2cAUFIZxrI+Gq=yhB+`_@p(E{dw03v{xQsso-C&3>>=hOE}1)ts7>f_VDoZC zN}s#>VP?DNWJ5te*}UEt%c_1|=Wvjt)sVQ>pVT0p*;na&{B$a$JEl-p=m@AP+19L# z6-9oHxCqWpLjkzLi|*HFv7}Jr$z;zwCW`IhvmE|2r`4sd_0w%;r$Tdt zyRDC{>ykAVvz#$#evD4exj^z-qmX_26j^++*s3TIX12~*W}s{eRcCrBkW^1u@h6>7 ziZF7y$2LRWu};)syehYL58Bw62U$FY4Tpe_-&NXyquv}kFUEI5wmc?S#IxZ{vm))r zBsez@k1LZO&bKMic)fA#tarT-JI5fK_TiOIYBxg!RJ^pL1g83p4BYvKyC1o@@*~Jk zjhT8*4^yF=@O>vQKUIa9aV_wL9e+%(wq4)OJH;=#HbD8Fke5v1tGcNqWqeJU#JDwK}PX3+PBEJ70R5{{X{}PCuD>TiMiQ*v3B2q zxx$TaljlA&$s^n0t7Y9_XSim))@oIZFb^Kz#=#;bfv{bJdHlA{Bg`k?W+zC_A|HYP zS;1!CA|1-nN|BHELQJg&VQZ}iHQO!HM)%cl-@hO6&4;sdE+A#Il^$jF18DxtW3 znxlnvM_-UXx@vToO*Pzmu^|fh4rmVuotV|48#J zuTC+4J=A`c8%@=>GlIXh#$Ic*AN$wYKHosla4*m}HGP^cKj$q7X#fpBTQ>b$u4rjB zCehTK{&)co^>@n{52l5|5Zsi4$Uyra43GWx!1meYMc z@qFF{=ef1RH_g5wS(1ZTlOgELvZFcuQ<~L^zB(Gr=2LdN%@OD}@5Ew)KxgT}mA72! zw;X*cZq;!^0_s?vRz^56-z!}c5gat5o{M4BQ2R+#gtbp+#N19<0R!wNL(1EtCkGS7 z*gXzHqxyt0SqHwQ&c}+BE097#lEhcan6-*rgT16$6PL%h1e6!yv>eTdh%(mN_E4q> zX~6te2pgq&`&}OaV>(mo7pOs|xeqS$P_f?qMhu}0dyYcx$L5Q|SbnIFEopt0s;0_JsPMQSzu>+;F*CAbP!q80yE5wG*Pf71Ehl1u{S`K%fJ70;Zt0EL z*1&dt>N{#m-~q{3t93b0EYuuTwp?*k#Lm8~u{SkM+XC9KLXR2Hd3i1pjr<2n7kI*; z9|5-`#es&^RI$>%=w$%9UEsTf8e?VxGXdU z@_DyjI4~sSXD-zJC5hWDs^NOg3A1S8&9ubf_T=Q`)Gp`t*i-Jk7sC!pkt4P&++ji| zbi5b9FJoC6qg!is?nTnl!W(ob`sBe}Q=n2B@abFMt_I8+y*ov~&B^9)ER&@a<@cyT zq$wG`U2>HYeYOv&zPWPiFK@Fw?k@_|663&%8W@KAi2=2>zCi7D%^K#SS3i$P_8aQJfpS_VwF7DXdX= zOmbu1N-{GO!AUW-O z=LShhzgbgHIG*ge_mj3)KR)Jhar>AUgs_RN<5U9%?}P`QH_gYOJ%4l96lctY@EZDD zc}lFMrNo9AfYG*M23g zhXvt(IW28Bi@4V&`ZdT=!!_}%^zDl}xrBU;aSheREDto!A0Pa}$ozlcXeHcB8T>ZCZ`2WSCn2S1T{5)Xfp>9vPujJt32OFM1xxsGu_f1kTt zG{99%=y+>I=Jr(wa{2Q`4xT`jh%l3|mhhD>3G#9DJN7>L3CEezj>y6% zS62c;*9WPHrjM2FoTTu`&~P`(Oojux=BF#re*~VjT*I%^=X}WwdV~D^8kkBZ!hHR2MRZb@7LLwHRa2XKJ2jM zOpzpSCb-1@#>1*zY zO6qX(IA@-I3WW$2rSJ|#3N8;c*_GfxIfX}pdHJt5$0YI_A{xo0FF4K*g4Q5B3P)z2 zShv!RJcOe$U(hb?$!(in^J8atH2Be&_hE|jbT9kvm}0Q^mwYG>rJ+g`WZDX71k6K? z)h;#ndW(|CIhSS`lTg4(J=?e&cawAy?^YseU^Pob)VXPc*r7Os4>XB|@N1sX3Xw8t zdYS(Wq62aZ!yXQU8(!+sMXST^RW|aMBe_8&h)c^5DM=c9gl-c0&|F}-`C3mbEB~R+ zE>p%HqGIaCVz}M)88Lt^o{iwWPc#=RT21d(Qdsauz`_ySk7dbBw_5Z`to?-9tq8|N z;YdEG+7-88n&0x8)=zT;o3c&wb!hNk159_@a2VAbW)qEppB6vt94C`#KXYJnKAI3W zJH0T6kujR^vjA*`kFTY;)z-+>0yK0~aOkRJoo7C+1>rR|YHJ2$E3A$7i2TImj4=X< z-038d(|KrzUD;o=j4Fd#>Y$w4)pQiAa1f$+ohrE@;{LL^9a;uXn+{5ZBzfj-L^M>t z*vV0#(otW6>xeCiOslSHN|?}FE=n`>|D4YMnA*aL{PL<#IMl2c8U@OqcvIzi>MHqJ z);TeTAPDaZPL#uG_K3Ys!F9+g((*St16GqAa|MtSM1sW%k2#o0HA3IB?+|>ZhgQbz zA>1K8IO?e!6LTP-Y@O?5OPmG^h%gUeZa(yXWBm&NrZJTQBSFwmTs$be&F*aHO|{Eu z&P<)N9NCa+^PaEpQOaXJK0ab8*B`?IZ=0KhQ^-2cV3YYbmBLT;xI4cpeSAS&MtNS=Hy0P@2Yx5=A^&w*MAmBb_UQp zLf1YVHOc=Phkt+wc>#NO8XQ3Pn`(;xzf1iOP5A%X3XI(U&x4`$ym}2|f@zS;^|RR~Pu3 zaeQD5#;|+YO|>IdkTqO0maCq+-Xz(dMUa0XhH+3luI5kT$^TX8zdrxN_q`{i0Nc95 z<7oEgFP5Tz+Zq!9>zsPdA@n!Z`o|-kLa>hI82ZS0>Drl||4zpHnv<^u%0U#-{um%QUYSAs@rKqiYe{g;^Z$My<>Jdmw( zwjI%b-thluk9kQ0+&0XI<#+YQaD8BaA?x7`e>XV(QEnW-MG4`Je!o~f(9*8`#A@$; z*D-9MHQ7-5{@s~>@q&Mc3LwB|iCh)&zv~z?(3=0Z2Gr8D?ci(MrB;b*hut4zK&xO2 zCOl89cU$ixe&clTc{*`8U5ZZP%d_I+cmtaiq>|(O*i^BIU%heUV<~WO&%QP`^1HsF zU;)9{sMBqB$(xJA)n4}b&uJ3-<&+esMfATL7Tjhq)&&~19_%#^fLhQnnK(du$AkkqN-$yEpl?@t(^z+)2q6&OQ3V<;XbMaR2imzE~l? zV@uib=@U-U%jQEV*@Bs2o4XtMOTdtp*lpT~1s549oR3}oHW7W0v;{ptOGZN+Tly2sS(CmH_Dzms0|7Vt9%$Ew|!uvLjrRiK0jX z=g{X%_$-E!fKE;WlIq(zk)~o0DFfH)+cB7C00*zz$>1M_#2><$|)MS90yx!Nq2 zuH-D%=ofynefrK+xf=Wg3eK-85k)PlU8T zO$nK)vKAW3kj`!10~)l68Q~S4=ln>C#jHy$XHcvfz?0A`L#sX#rlFQGOE_hp?g`3;CnnK`c~RId8tevD;P zkAZ*mR01$<`nyx7J{9B)s%66PbF>PHI1^eYyVvaZgqI__k5$tPUq>6?` z0+l)T`2uO$`(zl^3Z+6O{fz-{f)&!bHA1^@wlWs3oj*~Jzy`5S+BD}cMcCXK8U4|)|a z5Q4PwLXP_Tne@}534jlqO;=C~nh&E~ivIoTc`$(;RMDx~-JC3+{RIV+4IZ23?x!we ziq=Q;?tUI64fuCR?TZpc9~!$Q0l~$ph}NImSYtWw(W_aaAG=@xW5n7t z1pT25?@1ra?o74RcmkJWUr>dd9V?vbGvVi4axDRcSj@P|javx0#63dbrH^5(i!~+D?RkvYB0{*{>$-co)F0XDQ_x zHy0i?8Ud)AyY}BD;wR=cEAnXGCGk=^?p4Vfm})uh%~W(#i7yzDCY5_4^@|sI@JoJq z7X0qe@Dfgsm%?1gnfmVy2=9(0{<0tl2yK1^kziULR8E9>l{65w*sxn{rdoP&=CD6E z`joHyJ=}bbqPrrZv9AU!MUYq+0i7?x>9F?z262e-5~BuZT+q@p0-RcqG|?5!kgJr8 zTif@Qrm}*}a&Be_Fv^?}NV6agDFqx&Y?lB7x4G<$!r``w%~_ z?43C}TIr$$TLQ~mliF%}j5=mN0E(qC@YTU;9cd9a{jTZ{F36wlf&*pDpr-&i2_si1 z)D+=#aO+1vNG_3%J1a36HhklH7XSFQVPR-WY>ZZc5k;^OirEwGNw22Gk7Id^e0LXL z-7Xe8U=E!-!V?HI)WP}>6FI5Y4E6EgaJI(2*6mP)DIp0EeSk0NCu&iXt+X(=jN5$4 zq*ft#bxxXvBpW@MKC<9NZQEtfKz+sOwSWF#bJ-%{zPsB6)5N{=s(y7#C*ad`Ld#?vtytMAY8 z$Pa+cC;e>_uMp)ozWcg3I0S@`aCQ+Sn3i$2r18HozntojT7g}1)zA{fqlvh-ZLHk_ z#RcE3+N|`(h_}@QsV%7Ql|t29xC=30H>+$+L!@{rMeP-KaZfXf{Gsu+6l1o{8?1|*JU0G;lBXJDjFYM^lua7@E)9qP##t@ zyuUXuppgGxwf@l`-v57VE$@3&Z%VQ7JEQO@L`j&4M-M4k-LWgyzZqmVnP6Dl$|QM^ zaQ}UeH!cf$>FzJvP&*U-dENWNl6Y_OuqA2MI%tFwb1`;A+%Mx;h<7q*M7#o$|In*A zHuFgPZ8j$c($QFU%ej$TL_|c>Q4p7m0^p4Bsf9A>-&X(%nfvv_#R1VNU4K`T1PnDL z5rzKL%j^Bo8WIDL!d95O-W$hcyVi3`Pr%U4jMq_*PRyBidcW_<*S*pumtvrm_wDbE zBQH1-1n-N%YHT2ic^9b_YHC!@=4nDiv8dlZSJY=v1jLo--W+6GG5pbQ8UP$x1eUk1 zr8mr_0kGYU0FO+iS?4sB0*vC1!hn_#(O+(tcA&#$(xe5OXC%N-J_4W}*P!c*fz8p% z3yDPT>Te9!-}FIJ45R1O3I1e}PAU({7#sgVFG6R)>D{ygM0Bch=M;^HgY=agyTO%)Gd0Y#)&(-ZGt8FU*o~JYf+%bTC z$wE)(;9k#`7{tZ%d1?a3?90(=_Y~^;_K)`ud5flF^s;%%A0!euqo#Rt6!Ymfhcn0P z9`YhAD-Xw)hv@ewN*BsGh~lvTU~tIvlfp_c z4a%ndfa>G^6Hr_UAbM+`7Yu?peMt-@i!TY~^*QOt_N#CPjhfeA7}ONq7cUO129-XA zpIuDh9{+_xu$}@Zx*T?;f_Mwv{k>V&kp^7deSm0& z_6m9ee>Ir;3gyQ-}R^<-Em<=cI}?VCy>p`6TeVK|}|{B%F4B+S6{AN5261EZ-Qg zZv`~ky+Af{x^M37qJ%ja9>&sm}^QrrU3O=O*q7t`D zNlHehm%EmkK858GpgSjZ_d(OxHH_vcd? zf*b}c5)rq9$dvnKWyMN9f-^`Q0|POtLM!h}9Jynf?&ir+Zy*)r$d<&{45R`~MVEbu zBd~>LT$Po#xidjFj2y@~F*1rE<(uMu`^$nU&*=JL1;ID`hbS7_8WY>`hp!uZU{ z9zwJ4Fef<;dpNKU?FHL3=_snCV$gf;zUK0@0z`53eBMZMy-z0uV)Z2p1WTVVY4#w2 zHKk#1w&62Cys{=t%W*08x|tfXLV&{}@{n89Yzah((fdl>HlsAawba~!#KkUfE&b_= zT^Q(_7_E%ja#Gl-)4kg;ki>{;GL{!y9>Sc7F;HsQOZz~PMhodPb3A0=x4OX~hHF+3 z;;&HUoNol1(w?MzuFTSMUGDf!s$Bo?djTLoIBV=S3m`Omj^Be$ZntvlkB<8rB*zO9 zNI5=Tcw8^L{Dnaflns}nup{E909FEny_rh_1J|7iYi}OdqrODQc-sW_yZ7%M!dz}a zP8N_xXinQ9!of7Gv`_2nK|E~`r3v?ifDhbIjXhmL2O&K=1~ICoHk}4Y#kDi#O;yBH zOsq8F=YLgh&Y$+ujEIawz20rI>^_mhcNgVJr;%kMU=zaV+j%h#9}VJ6_r|iwbn~x> z3Z7Ut`M?X7lcv}t3&OvJJ8@vZO=KTov0Y1gWwU}8Mi$^@G0Ej;7OfY z2D)G4giaG=WKE1slEAZqFT56M0O6p3Q0B;vLn@;_B7zt3uMAKQ-zrnF;%Tv{wssf zmNi!;9>jQB-@{zrhwX$}77(kvqDCH-G+MC??@7LO6EZ)*Gg#mZntPHcXbCzw8*pI7 zOI`U6ycfPs3ytL1yn!SuzWDnJYO)8)O`8x(N~Sn8qdoIog6cwlNRtata%g3E6jUkgTBeBM`s3Jr)4_Uo`6kgJNaxvaaiMx4qO6am|$xv&)qYM&g zqN*2KqkutR+{&z|)37KFz=pAuC|VvpzdhMA!=jHxX5`EpKa8%6L(fv(@!mg1_MKFL zZFz&J*33zSjzHtX#B9ch0Uw6+aYF2w21Llm#O5R`t~B6FWw(VLU!jGNpuSb9wh=i!AqF`=u7s%ZZya{u zhL=;*6FUARM0<;gX#*ai{nN4DuvaZXtM~m89uYy4_kP2Da&i3*Q`Z*}?g4n0PO$6u z{5%)wfe55qkuGrU*D)~Fy_fQZX@Ouq0!>Sfv8&6(0h~QmAZg}_Yd2UmlmQh=?hY|q zsjz@|)!Q7lzOkxW%txEse5%mpLnGNoE{7f2hG`|O{6bwOdQ!!L8@0RhhHTLrdP@q! z!ftfF8=2bEidTb8I#d%JaES9yl;3H?Iin^bY$HpxqM54Y`MwWfYa+#i?a^uEKqXnP z@hX?|9-H(CDhE;==7i{LvyG#9=@`a*lnRi3H})b?ezEIY6j^{?V-3I=zng2mgt1l+ z`zBgeYGAGtwF)e;g+c5pz4}r-JG4z;D(D7R2W>&@rwxvm%vSecW9(i^Zwaq0$`RFu zvg=G#YnUZ!C;X-1(KZ4$!u)j9*S?ra}wQfubICJOjmuopV|-UER*G? z5f_)262Vw)W$R@u3#~a$BU!~6G)wR%Q)R^;m5gaz%Ez-ljMAnIi-bfQACOH2CoWf6 zJ{VXUhRf}}Q(uXH;P|a;)H-wnWiT{d0})M8xCtoYABpi&QS?+HCqp4;oV65vpS=*h z11Zj)zL1@8Gr3{48NF;eGY)|SH4Q!{<;{U%L||#b%?CDz=n6xsL85a;e6_fG3`l6o z^@ko)%2gB*(SE|;N>^{kV%YO4WuF!@*&juh$@B9Egp!E`7@4C?6P5EdDXrQKp8;aT zMCEP-ITWSDi6K{R;lg{0hEXuc_^kg-4+CubAMroT;2;wLM;Wp}ri!}+KlOMz;Bc8{ z^Q>y(wZ+X3e55_G>*i>{c$o~Q;QOOdwX$OcslbU!Pco!>&JpK)kQ$HwmbulB8f9q^ z&uu$vej9H+N@c(gV|pr-^dO32+q(|U?GswoWoQ&01e%TJu(msHf97FM*LV)YvLU(p z_JUExzQSEsLK+O#`5zr=Ch<9N!5a<+C(VMpLu|G1 znT6n<`EPpy1HDJ6wK=2UZM{RU+kb4rzzqkhQ98xP0`+Q;h4_&kA%T?7ql6~_bBDuP z%gd_)I6qnK&~ZIfQqhDu_MveD!HreJnfsGQiM;OZp{Y-F6&QdTCU^LR;FA$ChGH?P zG3!Or>_aNwGe1V(!$gNQ zQi^t`Nyzm;_}^iF`~I$+7%nZ8kX_dI%4*(A+^7ug1Mrm`qh6c9*oS65+^oVO>b+rq zA{~#bNB%j;KF^2*wtsg2L1&~;b6sK4RM)0wjMsi`AENeyOF_KSlLMn`2K1Obkp#i2 z@>Vr{GQT;=s-`yV2!PRTH(EeLLnm7lJqUVEP2(?BO46?2ODj6c9$2{MUM`D*MOd?R z5MAwT^uEm#sdP^*IG;1kovXE8ZZFNp&1+7arXXE_{7dt@0kaD9WC7opFx;`sHIrimu0rA9rH|!$M#9<%im&@lmO|`j3TFH46OTcT zLliJAzVq3h3)=_fFXFfk3Z2?4M}RZn zzc_h|6yD+_d_ih?8Xz1CoCt#2iWfPK{77IefFP`qe;<(CxV@cqyj`6%N|GZC6!2B& zM0fc}DR6_P(NXZ81OoDihpqX48k}w}4;5s{Bqj57$Pa zu1q5L&Y3f|OTu-zpQcfwEpJK3dYpedTG? zZ12Is-X*lzPAvB=*T^_|*XRf!JY;H_Rfx+qMG5>4rKNSL9Zs=}{p)LRQNo{2lY9MpN^>Uo$ z9IYm?L8E)rs8{UB(VkI!Z+USx|~v z!Q{#Ch8oY!{8uFom3LAtL*s?k`LBgwuCkkp!fq*Vb+Ad6(0RbIY>4{#A*unRl~s`S z1BIu)2#51y!C;yjm69rix=f?l;xGJbg{Rfhz!%9`DqU58=zw z@|c{qV(pJMD8g8*zxPo_7=8;`d|bez-r1KK+(rT<7#)J8x-nakty>wgm`~t+N?^ z!3heSn-)jHYPxqLa-FNI9-TsSKo>8%_LCM#5e~MSbSV|KrWbl5DyVWoQ6}q;vKr=S zjbIunhjkzc;{QtYJr8QB_XfGuLMKi>hul?bvY%!i$3fw$@1PHr>l)&|4hE0dVh&C- zO$|f&$I-WlnPq3?9=8x^s{FcZ>A|*Nv9cL%92D$#of;6A(K*%{A^WY9L7L527HM3&Z0e6uW-#0NwXv@LRGtz z;OiaVXD8o7%zO@9K%7%AR&f~h@vLzE?8BXHSd3@-IW@n?`IVnRlj@>o1n{G$F{o8+ zzK+4SgA%v~j3d`6eSc>wqrCn5!krJcFbXKsnDx}3 zAI6Wbwy}3yET2(QCLE43S;%(lzBe&HXSsN+-{jHO*M^namsQWb*lz`RqCZ}k=b&!r zPH;@*a=TnF2Z%R#f||{6IIk=}NRus=K$hHwl@D{hEHM+2A8GG!z1SMcRc>iC(owZWW1_@Ye-` ziE(4URf{rTU%-lc^r#{n+z$*ssf-CH@suvD@{A1p~x4h`%XpS$&i9E zh+JF@-K*KM_Bjuvm#M*2}ZoW<)I$e`&huX|W=Fa&^8$|Hjl|_n>V;4|3TqAdnsSK42-e6s8X3FAYY9f7u(PMZItDwRqA$*cj~v509^0 zVaE|A(#m2F4rl7YS8xBaf0Wmki&!qYx0|W z4)jJtI%#BFQm6hl!r9@2mmn{0r6*23?O@s5-5cq_3~Gu*3V`QgUqpL6=_w;JI&Aiq zf~Wj!`G#$HN%}t|%BT)=+JE?y435(MLlxvqK*-0eb>9E+s{LNi26-%w+n0x3SEzrN zV{61^PJ=~cKXzRwS0&Gf*gngL5}|F&#JNdms?y3Te@JV3RO2}%kui_?IaZLul%k*l!O$GIT_wu@r~2-9-&p zLI~^tM#yRGnVzbmOz<&FcwyQY&_w&jFbfw0aIKu)63ed@RxTLTpKN?%rgDlFBQ1Y^ z<=Hf<*AZrayE1>?6ZSyP!9D6GFWWQjt+feFsjYa)kfyqH_tkYBF2h1Tede+G5Xu$> zVUH!Ihst!N6~AvXewdjm9vd#Mu0w_-e`y!329H7U1FV$~6%?lnxWwS&x9p8SWV%~Y zqUbh$BTReKvO9UqeYsPXdekpY&x31ofY2u22+i0gklqJJL7tWD+0Nw7r+-$^fjG$K zq=D=7PD6|a+_$*Yku+Z*i=lBEEytH{0E=QoJd z)y@(TlHe3(N8C^AIF*mRhS6MVc+|U~U zGT`kL`iY=DsA;1QA2`IMSJvJwy6nw7=%YRpxpQl{_t4IJyQ-PMYgtJQHFRMJXTUln z#A^nLTO7K*jiqVe(+NCWmirw>TsGp1NqwFoyq8AI0w@H%L|&KzkaEy~E~VtW|DR6} zO7B291dm$uK4|0!5Dm{hJr^0y>5l}a|M=$_r1GHzHWp&@@(a&Fkfb}rbtV>G*jp)W z_auu&G&klRPw;B@O?*=zaH?W$ez<<+Ciq36l$NcC(Z*yqq`o&D_LbXeqWE{shP_8y zz-Q}ijtRuthobo^Al8e&gdnOE$h9_(&8y3FJHyGwpW`J*Rcs(RHSvH52L23wPmmzR zonM2OfQb=4|1$U91EZBkkHYPs5v~+!sG`*CPpTRqH$!wZI0yheh$WCNy$+g%d_VM| zH~>m9N7&6}TRM)~LyQ_a_p6g=05fU)1+M*1V-CnBX(SMm^9y+&`>qbez738et9Lw< z|Hp(;?_BCgDk~%6tIKyEp=Uw|XNAFF_a>C16>iN%?&o z3HhyOB7x;3LD{-#pas)ymr!Z6>CV+F$zKxi546S|SdDyxZXW|%Ao+d_z-H6POKr1} zCVO$|sxV$ioVL2nzoQB!nn64m=LCu#q@sjnk^8Z0{*lvczHr&i$y_CRxo;jXbZK3v8 z;VSvkoL4rkx*@Y{|NiybDG|=ohRn<7Vq>t`E`?{c7qF|^vyDORwO%`ljpnH*J|>;v z6vRJ$$kbwAZ;!%StORQb7pDD{EmJU*i^+uCR@O|nb#Modhm~OQ-lKd1Wo=KJTbQ5# z;BGN^sMejx3j`nMOTQGXB@0x^hkDOPg z?+9J!LHyQ5ZO=JlVB9IgA~fH0S?y5Z&c4(F$s$D-g#CWi<-X8mbcz{+;~E=x~0h{6kF%KPd!`bnTPyE z^HeGyFr*2MU`~4nT?09#Ez?XzE)b{1qEJ6~gUG63^8fl}+^Q=`4bQWN+SabSjC9o(Qt z?L0dsp8na_(GTu8ZZ(Fz_{tCk1YL~nLyK)q(SVnpt@`MI@0B72vOXP)OF>|zpC$jn zq}4!rqucSTB6N(5&!kPyfLF5W9I=Ez?IE*TeyRT)IHJtUi*>tA5Uoul3*3bJ?&Kmb*pF|6Z&BZvzXrLd@b3lhxhX^g0yidGe6KNYf(>yO6(PUpq05edI1a=~UDH`lR*IzbKE$`qLHgJ427PRv-DI<{G;Y+K+o&hc%&S5`XuxS{TgwJ!Dem(!;MNLP62VBpF z;ZamzAeTQtMU}PsmJfuG3mK4ub6n3S8&c*F=SL8Csn}i?Q|-iRl0#hMXvQZfJ|3`L3@p#r9yT(fWLHNaz(q!+MEm| zMXDVV+;xJWO@UB9K~Esn1wvjg1B9CN^c@mxMQ?t^_c|~Bp^JmOLNRa&m@|j-3nhVY zZM}Wr#M?(u2B6y!d(u0D@vp*%b|_rze#2;l{DSfc;*@}&WGmJ`VU7R7oCdkW6+n&l z9R&Y}s4G%}0sK@cDnrzN{dNC%^tFp2WdveHP<0xhhDQT2*K|RP**XyiJ(ut5M2tu? z7Ajh6x~M!cS9Tl#_NOXrlb#P>z+eG%YauN9jc?cbQrH1Q6bn?W#Uaw$4pZg&j!mjRM3|LC zlr;b;O#^s~sLf$d!k|XLQVD6D_jmsX8Nq*>pyVk

kv)lDJG>g7fu_KF~9B;8kvq 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ⅈ>m28T;53En7Pa{G`8+^5dkH% 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

h^O*pG}N+o+@opNDwF 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 VeBJ|nC>sQPDaxzJ704I|{0}XQ@2da+ literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 4cb39f91..73c8a990 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@cparra/apexdocs", - "version": "3.3.1", + "version": "3.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@cparra/apexdocs", - "version": "3.3.1", + "version": "3.3.2", "license": "MIT", "dependencies": { "@cparra/apex-reflection": "2.15.0", diff --git a/package.json b/package.json index 01e49836..fb7e56ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cparra/apexdocs", - "version": "3.3.1", + "version": "3.3.2", "description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.", "keywords": [ "apex", diff --git a/src/core/openapi/__tests__/open-api-docs-processor.spec.ts b/src/core/openapi/__tests__/open-api-docs-processor.spec.ts index 3951b896..22ad5fec 100644 --- a/src/core/openapi/__tests__/open-api-docs-processor.spec.ts +++ b/src/core/openapi/__tests__/open-api-docs-processor.spec.ts @@ -24,13 +24,13 @@ it('should add a path based on the @UrlResource annotation on the class', functi const processor = new OpenApiDocsProcessor(noLogger); processor.onProcess(classMirror); - expect(processor.openApiModel.paths).toHaveProperty('Account/'); + expect(processor.openApiModel.paths).toHaveProperty('/Account/'); }); it('should respect slashes', function () { const annotationElementValue = { key: 'urlMapping', - value: "'v1/Account/*'", + value: "'/v1/Account/*'", }; const classMirror = new ClassMirrorBuilder() .addAnnotation(new AnnotationBuilder().addElementValue(annotationElementValue).build()) @@ -39,7 +39,7 @@ it('should respect slashes', function () { const processor = new OpenApiDocsProcessor(noLogger); processor.onProcess(classMirror); - expect(processor.openApiModel.paths).toHaveProperty('v1/Account/'); + expect(processor.openApiModel.paths).toHaveProperty('/v1/Account/'); }); it('should contain a path with a description when the class has an ApexDoc comment', function () { @@ -55,5 +55,5 @@ it('should contain a path with a description when the class has an ApexDoc comme const processor = new OpenApiDocsProcessor(noLogger); processor.onProcess(classMirror); - expect(processor.openApiModel.paths['Account/'].description).toBe('My Description'); + expect(processor.openApiModel.paths['/Account/'].description).toBe('My Description'); }); diff --git a/src/core/openapi/open-api-docs-processor.ts b/src/core/openapi/open-api-docs-processor.ts index 5f076348..4dca32f9 100644 --- a/src/core/openapi/open-api-docs-processor.ts +++ b/src/core/openapi/open-api-docs-processor.ts @@ -84,10 +84,10 @@ export class OpenApiDocsProcessor { return null; } - let endpointPath = urlMapping.value.replaceAll('"', '').replaceAll("'", '').replaceAll('/*', '/'); - if (endpointPath.startsWith('/')) { - endpointPath = endpointPath.substring(1); - } - return endpointPath; + // The OpenApi path needs to start with a leading slash, but + // Salesforce @RestResource annotations already require a leading slash, + // so no need to check for it. + // See URL Guidelines: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_annotation_rest_resource.htm + return urlMapping.value.replaceAll('"', '').replaceAll("'", '').replaceAll('/*', '/'); } } From a553ba7aa38efbcddf33e0b092bb42175e8cf4a4 Mon Sep 17 00:00:00 2001 From: cesarParra Date: Sun, 20 Oct 2024 08:57:52 -0400 Subject: [PATCH 5/7] 3.4 prep --- README.md | 41 +- examples/open-api/docs/openapi.json | 572 +--------------------------- src/core/shared/utils.ts | 9 - 3 files changed, 24 insertions(+), 598 deletions(-) diff --git a/README.md b/README.md index 9ab183d5..f23feaf8 100644 --- a/README.md +++ b/README.md @@ -111,16 +111,17 @@ apexdocs changelog --previousVersionDir force-app-previous --currentVersionDir f #### Flags -| Flag | Alias | Description | Default | Required | -|------------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|----------| -| `--sourceDir` | `-s` | The directory where the source files are located. | N/A | Yes | -| `--targetDir` | `-t` | The directory where the generated files will be placed. | `docs` | No | -| `--scope` | `-p` | A list of scopes to document. Values should be separated by a space, e.g --scope global public namespaceaccessible. | `global` | No | -| `--defaultGroupName` | N/A | The default group name to use when a group is not specified. | `Miscellaneous` | No | -| `--namespace` | N/A | The package namespace, if any. If provided, it will be added to the generated files. | N/A | No | -| `--sortAlphabetically` | N/A | Sorts files appearing in the Reference Guide alphabetically, as well as the members of a class, interface or enum alphabetically. If false, the members will be displayed in the same order as the code. | `false` | No | -| `--includeMetadata ` | N/A | Whether to include the file's meta.xml information: Whether it is active and and the API version | `false` | No | -| `--linkingStrategy` | N/A | The strategy to use when linking to other classes. Possible values are `relative`, `no-link`, and `none` | `relative` | No | +| Flag | Alias | Description | Default | Required | +|---------------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------|----------| +| `--sourceDir` | `-s` | The directory where the source files are located. | N/A | Yes | +| `--targetDir` | `-t` | The directory where the generated files will be placed. | `docs` | No | +| `--scope` | `-p` | A list of scopes to document. Values should be separated by a space, e.g --scope global public namespaceaccessible. | `global` | No | +| `--defaultGroupName` | N/A | The default group name to use when a group is not specified. | `Miscellaneous` | No | +| `--namespace` | N/A | The package namespace, if any. If provided, it will be added to the generated files. | N/A | No | +| `--sortAlphabetically` | N/A | Sorts files appearing in the Reference Guide alphabetically, as well as the members of a class, interface or enum alphabetically. If false, the members will be displayed in the same order as the code. | `false` | No | +| `--includeMetadata ` | N/A | Whether to include the file's meta.xml information: Whether it is active and and the API version | `false` | No | +| `--linkingStrategy` | N/A | The strategy to use when linking to other classes. Possible values are `relative`, `no-link`, and `none` | `relative` | No | +| `--customObjectGroupName` | N/A | The name under which custom objects will be grouped in the Reference Guide | `Custom Objects` | No | ##### Linking Strategy @@ -289,12 +290,12 @@ Then you only need to run the top level `apexdocs` command, and it will generate Note that you can still run the individual commands if you only want to generate one type of documentation by providing the subcommand, e.g `apexdocs markdown` or `apexdocs changelog`. -### Excluding Tags from Appearing in the Documentation +### Excluding Files from Being Documented -Note: Only works for Markdown documentation. +Any pattern included in the `.forceignore` file will be excluded from the documentation. -You can exclude tags from appearing in the documentation by using the `excludeTags` property in the configuration file, -which allow you to pass a list of tags that you want to exclude from the documentation. +Additionally, you can exclude one or multiple files from being documented by providing a list of glob patterns to +the `exclude` property in the configuration file. ```typescript import { defineMarkdownConfig } from "@cparra/apexdocs"; @@ -303,15 +304,17 @@ export default defineMarkdownConfig({ sourceDir: 'force-app', targetDir: 'docs', scope: ['global', 'public'], - excludeTags: ['internal', 'ignore'], + exclude: ['**/MyClass.cls', '**/MyOtherClass.cls'], ... }); ``` -### Excluding Files from Being Documented +### Excluding Tags from Appearing in the Documentation -You can exclude one or multiple files from being documented by providing a list of glob patterns to -the `exclude` property in the configuration file. +Note: Only works for Markdown documentation. + +You can exclude tags from appearing in the documentation by using the `excludeTags` property in the configuration file, +which allow you to pass a list of tags that you want to exclude from the documentation. ```typescript import { defineMarkdownConfig } from "@cparra/apexdocs"; @@ -320,7 +323,7 @@ export default defineMarkdownConfig({ sourceDir: 'force-app', targetDir: 'docs', scope: ['global', 'public'], - exclude: ['**/MyClass.cls', '**/MyOtherClass.cls'], + excludeTags: ['internal', 'ignore'], ... }); ``` diff --git a/examples/open-api/docs/openapi.json b/examples/open-api/docs/openapi.json index f2e60a56..2bec9b4e 100644 --- a/examples/open-api/docs/openapi.json +++ b/examples/open-api/docs/openapi.json @@ -9,574 +9,6 @@ "url": "/services/apexrest/openapi/" } ], - "paths": { - "/AccountService/": { - "description": "Account related operations", - "get": { - "tags": [ - "Account Service" - ], - "description": "This is a sample HTTP Get method", - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "description": "Limits the number of items on a page", - "schema": { - "type": "integer" - } - }, - { - "name": "complex", - "in": "cookie", - "description": "A more complex schema", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } - } - } - ], - "responses": { - "100": { - "description": "Status code 100", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "anotherObject": { - "description": "An object inside of an object", - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "somethingElse": { - "type": "number" - } - } - } - } - } - } - } - }, - "200": { - "description": "Status code 200", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The super Id." - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string", - "format": "byte" - } - } - } - } - } - }, - "304": { - "description": "Status code 304", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - } - } - } - } - } - }, - "400": { - "description": "Status code 400", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } - } - } - } - }, - "500": { - "description": "Status code 500", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "post": { - "tags": [ - "Account Service" - ], - "description": "This is a sample HTTP Post method", - "summary": "Posts an Account 2", - "requestBody": { - "description": "This is an example of a request body", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } - } - } - }, - "required": true - }, - "parameters": [ - { - "name": "limit", - "in": "query", - "required": true, - "description": "Limits the number of items on a page", - "schema": { - "type": "integer" - } - }, - { - "name": "complex", - "in": "cookie", - "description": "A more complex schema", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } - } - } - ], - "responses": { - "200": { - "description": "Status code 200", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The super Id." - }, - "name": { - "type": "string" - }, - "phone": { - "type": "string", - "format": "byte" - } - } - } - } - } - }, - "304": { - "description": "Status code 304", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "error": { - "type": "string" - } - } - } - } - } - }, - "400": { - "description": "Status code 400", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - } - } - } - } - } - }, - "500": { - "description": "Status code 500", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "delete": { - "tags": [ - "Account Service" - ], - "description": "Sample HTTP Delete method with references to other types.", - "parameters": [ - { - "name": "limit", - "in": "header", - "required": true, - "description": "My sample description.", - "schema": { - "$ref": "#/components/schemas/SampleClass" - } - } - ], - "responses": { - "200": { - "description": "Status code 200", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SampleClass" - } - } - } - }, - "304": { - "description": "Status code 304", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChildClass" - } - } - } - }, - "305": { - "description": "Status code 305", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Reference1" - } - } - } - }, - "306": { - "description": "Status code 306", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Reference1_array" - } - } - } - }, - "307": { - "description": "Status code 307", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Reference7_Reference7[untypedObject:Reference2]" - } - } - } - }, - "500": { - "description": "Status code 500", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SampleClass" - } - } - } - } - } - } - }, - "/Contact/": { - "description": "Contact related operations", - "get": { - "tags": [ - "Contact" - ], - "description": "This is a sample HTTP Get method", - "responses": { - "200": { - "description": "Status code 200", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SampleRestResourceWithInnerClass.InnerClass" - } - } - } - } - } - } - }, - "/Order/": { - "description": "Order related operations", - "get": { - "tags": [ - "Order" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "param1": { - "type": "string" - }, - "param2": { - "$ref": "#/components/schemas/Reference1" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Status code 200", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "patch": { - "tags": [ - "Order" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "param1": { - "type": "string" - }, - "param2": { - "$ref": "#/components/schemas/Reference1" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Status code 200", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - }, - "tags": [ - { - "name": "Account Service", - "description": "Account related operations" - }, - { - "name": "Contact", - "description": "Contact related operations" - }, - { - "name": "Order", - "description": "Order related operations" - } - ], - "components": { - "schemas": { - "SampleClass": { - "type": "object", - "properties": { - "MyProp": { - "type": "string", - "description": "This is a String property." - }, - "AnotherProp": { - "type": "number", - "description": "This is a Decimal property." - }, - "listOfStrings": { - "type": "array", - "items": { - "type": "string" - } - }, - "someVariable": { - "type": "string" - }, - "somePrivateStuff": { - "type": "string" - } - } - }, - "ChildClass": { - "type": "object", - "properties": { - "privateStringFromChild": { - "type": "string" - }, - "aPrivateString": { - "type": "string" - } - } - }, - "Reference1": { - "type": "object", - "properties": { - "reference2Member": { - "$ref": "#/components/schemas/Reference2", - "description": "This is a reference 2 member. Lorem." - }, - "reference3Member": { - "$ref": "#/components/schemas/Reference3" - }, - "reference4Collection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reference4" - } - }, - "reference5Member": { - "$ref": "#/components/schemas/Reference5" - } - } - }, - "Reference2": { - "type": "object", - "properties": { - "stringMember": { - "type": "string" - }, - "objectReference": { - "$ref": "#/components/schemas/Reference3_array", - "description": "This is an object reference." - } - } - }, - "Reference3_array": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reference3" - } - }, - "Reference3": { - "type": "object", - "properties": { - "someBoolean": { - "type": "boolean" - } - } - }, - "Reference4": { - "type": "object", - "properties": { - "someString": { - "type": "string" - } - } - }, - "Reference5": { - "type": "object", - "properties": { - "reference6Member": { - "$ref": "#/components/schemas/Reference6" - } - } - }, - "Reference6": { - "type": "object", - "properties": { - "grandChildString": { - "type": "string", - "description": "This is the grandchild description." - } - } - }, - "Reference1_array": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reference1" - } - }, - "Reference7_Reference7[untypedObject:Reference2]": { - "type": "object", - "properties": { - "untypedObject": { - "$ref": "#/components/schemas/Reference2" - } - } - }, - "SampleRestResourceWithInnerClass.InnerClass": { - "type": "object", - "properties": { - "stringMember": { - "type": "string" - } - } - } - } - } + "paths": {}, + "tags": [] } \ No newline at end of file diff --git a/src/core/shared/utils.ts b/src/core/shared/utils.ts index ba34d5ab..12982c74 100644 --- a/src/core/shared/utils.ts +++ b/src/core/shared/utils.ts @@ -13,15 +13,6 @@ export function skip(): Skip { }; } -/** - * Represents a file to be skipped. - */ -export function skip(): Skip { - return { - _tag: 'Skip', - }; -} - export function isSkip(value: unknown): value is Skip { return Object.prototype.hasOwnProperty.call(value, '_tag') && (value as Skip)._tag === 'Skip'; } From 472c56f80b0cd63bbc2595ad86f5e00f31a93224 Mon Sep 17 00:00:00 2001 From: cesarParra Date: Sun, 20 Oct 2024 09:01:17 -0400 Subject: [PATCH 6/7] 3.4 prep --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f23feaf8..16bbc696 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ npm i -g @cparra/apexdocs #### Markdown -Run the following command to generate markdown files for your global Salesforce Apex classes: +Run the following command to generate markdown files for your global Salesforce Apex classes and custom objects: ```bash apexdocs markdown -s force-app From 43f7f7b54e1d946b40343d8144fa24eb9ff34a46 Mon Sep 17 00:00:00 2001 From: cesarParra Date: Sun, 20 Oct 2024 09:04:28 -0400 Subject: [PATCH 7/7] 3.4 release --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fb7e56ac..3bb7bd76 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cparra/apexdocs", - "version": "3.3.2", + "version": "3.4.0", "description": "Library with CLI capabilities to generate documentation for Salesforce Apex classes.", "keywords": [ "apex",