├── .eslintignore
├── .forceignore
├── .github
├── ISSUE_TEMPLATE
│ ├── bug-report.yml
│ └── feature-request.yml
├── dependabot.yml
└── workflows
│ ├── ci-pr.yml
│ ├── ci.yml
│ ├── dependabot-approve-and-auto-merge.yml
│ ├── new-issue-welcome.yml
│ ├── packaging-pr.yml
│ └── packaging.yml
├── .gitignore
├── .husky
└── pre-commit
├── .idea
├── .gitignore
├── ApexKit.iml
├── codeStyles
│ ├── Project.xml
│ └── codeStyleConfig.xml
├── dictionaries
│ └── project.xml
├── git_toolbox_blame.xml
├── git_toolbox_prj.xml
├── illuminatedCloud.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── libraries
│ └── ApexKit_lwc_types.xml
├── misc.xml
├── modules.xml
├── prettier.xml
└── vcs.xml
├── .prettierignore
├── .prettierrc
├── .vscode
├── extensions.json
├── launch.json
└── settings.json
├── CLAUDE.md
├── IlluminatedCloud
├── Apexkit
│ └── OfflineSymbolTable.zip
└── ApexkitV2_5
│ └── OfflineSymbolTable.zip
├── LICENSE.md
├── README.md
├── apexdox.yml
├── bin
└── generate-apex-docs.sh
├── config
├── Apexkit-scratch-def.json
├── ApexkitV2_5-scratch-def.json
└── project-scratch-def.json
├── data
├── Accounts.json
├── Contacts.json
└── apexkit-data-plan.json
├── doc-assets
├── README.md
├── SetupApexDox.sh
├── files
│ ├── README.md
│ └── main.html
├── highlight.js
└── styling.css
├── docs
├── AsyncRestClient.md
├── AsyncRestLibFinalizer.md
├── BaseRepo.md
├── BaseRepoTests.md
├── CachePartitionType.md
├── CanTheUser.md
├── CanTheUserTests.md
├── CrudType.md
├── CustomMetadataUtilDeployCallbackTests.md
├── CustomMetadataUtilDeploymentCallback.md
├── CustomMetadataUtilities.md
├── CustomMetadataUtilitiesTests.md
├── EnqueueNextQueueableProcessStep.md
├── ExampleQueueableProcessSteps.md
├── FF.md
├── FLSType.md
├── FailsafeExceptionHandler.md
├── FailsafeExceptionHandlerTests.md
├── FeatureFlag.md
├── FeatureFlagCommonTests.md
├── FeatureFlagDataProvider.md
├── FeatureFlagDataProviderTests.md
├── FeatureFlagTests.md
├── FieldSelection.md
├── HttpCalloutMockFactory.md
├── HttpVerb.md
├── IdFactory.md
├── InvokeMetadataDrivenTriggerFramework.md
├── Log.md
├── LogException.md
├── LogMessage.md
├── LogTests.md
├── LogTriggerHandler.md
├── MetadataTriggerFramework.md
├── MetadataTriggerFrameworkException.md
├── MetadataTriggerFrameworkTests.md
├── MetadataTriggerQueryService.md
├── MetadataTriggerQueryServiceTests.md
├── MethodSignature.md
├── MockedMethod.md
├── OrgShape.md
├── OrgShapeTests.md
├── Ouroboros.md
├── OuroborosFinalizer.md
├── OuroborosTests.md
├── Polyfills.md
├── PolyfillsTests.md
├── Query.md
├── QueryTest.md
├── QueueableProcess.md
├── QueueableProcessDataProvider.md
├── QueueableProcessMockDataProvider.md
├── QueueableProcessTests.md
├── QuiddityGuard.md
├── QuiddityGuardTests.md
├── RestClient.md
├── RestClientLib.md
├── RestLib.md
├── RestLibApiCall.md
├── RestLibTests.md
├── SOQL.md
├── SOQLAgregate.md
├── SOQLAgregateTest.md
├── SOQLTest.md
├── SOSL.md
├── SOSLTest.md
├── Safely.md
├── SafelyTests.md
├── SampleHandler.md
├── Stub.md
├── StubUtilities.md
├── TestFactory.md
├── TestPolyfills.md
├── TriggerContext.md
├── TriggerFramework.md
├── TriggerFrameworkException.md
├── TriggerFrameworkLoopCount.md
├── TriggerFrameworkTests.md
├── ULID.md
├── ULIDTests.md
└── home.md
├── force-app
└── main
│ ├── Universal Flow Invocable
│ ├── classes
│ │ ├── BulkCallable.cls
│ │ ├── BulkCallable.cls-meta.xml
│ │ ├── CustomInvocable.cls
│ │ ├── CustomInvocable.cls-meta.xml
│ │ ├── UFInvocable.cls
│ │ ├── UFInvocable.cls-meta.xml
│ │ ├── UniversalBulkInvocable.cls
│ │ ├── UniversalBulkInvocable.cls-meta.xml
│ │ ├── UniversalFlowInputOutput.cls
│ │ ├── UniversalFlowInputOutput.cls-meta.xml
│ │ ├── UniversalFlowInputOutputParameter.cls
│ │ ├── UniversalFlowInputOutputParameter.cls-meta.xml
│ │ ├── UniversalInvocable.cls
│ │ └── UniversalInvocable.cls-meta.xml
│ └── flows
│ │ ├── Demo_Dynamic_Apex_Actions.flow-meta.xml
│ │ ├── Update_Description.flow-meta.xml
│ │ └── testflow.flow-meta.xml
│ └── default
│ ├── applications
│ ├── standard__LightningSales.app-meta.xml
│ └── standard__Service.app-meta.xml
│ ├── aura
│ └── .eslintrc.json
│ ├── cachePartitions
│ └── default.cachePartition-meta.xml
│ ├── classes
│ ├── Repository
│ │ ├── BaseRepo.cls
│ │ ├── BaseRepo.cls-meta.xml
│ │ ├── BaseRepoTests.cls
│ │ └── BaseRepoTests.cls-meta.xml
│ ├── ULID
│ │ ├── README.md
│ │ ├── ULID.cls
│ │ ├── ULID.cls-meta.xml
│ │ └── tests
│ │ │ ├── ULIDTests.cls
│ │ │ └── ULIDTests.cls-meta.xml
│ ├── custom metadata tools
│ │ ├── CustomMetadataUtilDeploymentCallback.cls
│ │ ├── CustomMetadataUtilDeploymentCallback.cls-meta.xml
│ │ ├── CustomMetadataUtilities.cls
│ │ ├── CustomMetadataUtilities.cls-meta.xml
│ │ └── tests
│ │ │ ├── CustomMetadataUtilDeployCallbackTests.cls
│ │ │ ├── CustomMetadataUtilDeployCallbackTests.cls-meta.xml
│ │ │ ├── CustomMetadataUtilitiesTests.cls
│ │ │ └── CustomMetadataUtilitiesTests.cls-meta.xml
│ ├── feature flags
│ │ ├── FF.cls
│ │ ├── FF.cls-meta.xml
│ │ ├── FeatureFlag.cls
│ │ ├── FeatureFlag.cls-meta.xml
│ │ ├── FeatureFlagDataProvider.cls
│ │ ├── FeatureFlagDataProvider.cls-meta.xml
│ │ └── tests
│ │ │ ├── FeatureFlagCommonTests.cls
│ │ │ ├── FeatureFlagCommonTests.cls-meta.xml
│ │ │ ├── FeatureFlagDataProviderTests.cls
│ │ │ ├── FeatureFlagDataProviderTests.cls-meta.xml
│ │ │ ├── FeatureFlagTests.cls
│ │ │ └── FeatureFlagTests.cls-meta.xml
│ ├── log
│ │ ├── Examples
│ │ │ └── readme.md
│ │ ├── Log.cls
│ │ ├── Log.cls-meta.xml
│ │ ├── LogException.cls
│ │ ├── LogException.cls-meta.xml
│ │ ├── LogMessage.cls
│ │ ├── LogMessage.cls-meta.xml
│ │ ├── LogTriggerHandler.cls
│ │ ├── LogTriggerHandler.cls-meta.xml
│ │ └── tests
│ │ │ ├── LogTests.cls
│ │ │ └── LogTests.cls-meta.xml
│ ├── orgShape
│ │ ├── CachePartitionType.cls
│ │ ├── CachePartitionType.cls-meta.xml
│ │ ├── OrgShape.cls
│ │ ├── OrgShape.cls-meta.xml
│ │ └── tests
│ │ │ ├── OrgShapeTests.cls
│ │ │ └── OrgShapeTests.cls-meta.xml
│ ├── ouroboros
│ │ ├── Ouroboros.cls
│ │ ├── Ouroboros.cls-meta.xml
│ │ ├── OuroborosFinalizer.cls
│ │ ├── OuroborosFinalizer.cls-meta.xml
│ │ └── tests
│ │ │ ├── OuroborosTests.cls
│ │ │ └── OuroborosTests.cls-meta.xml
│ ├── polyfills
│ │ ├── FailsafeExceptionHandler.cls
│ │ ├── FailsafeExceptionHandler.cls-meta.xml
│ │ ├── Polyfills.cls
│ │ ├── Polyfills.cls-meta.xml
│ │ └── tests
│ │ │ ├── FailsafeExceptionHandlerTests.cls
│ │ │ ├── FailsafeExceptionHandlerTests.cls-meta.xml
│ │ │ ├── PolyfillsTests.cls
│ │ │ ├── PolyfillsTests.cls-meta.xml
│ │ │ ├── TestPolyfills.cls
│ │ │ └── TestPolyfills.cls-meta.xml
│ ├── query lib
│ │ ├── FieldSelection.cls
│ │ ├── FieldSelection.cls-meta.xml
│ │ ├── Query.cls
│ │ ├── Query.cls-meta.xml
│ │ ├── SOQL.cls
│ │ ├── SOQL.cls-meta.xml
│ │ ├── SOQLAgregate.cls
│ │ ├── SOQLAgregate.cls-meta.xml
│ │ ├── SOSL.cls
│ │ ├── SOSL.cls-meta.xml
│ │ └── tests
│ │ │ ├── QueryTest.cls
│ │ │ ├── QueryTest.cls-meta.xml
│ │ │ ├── SOQLAgregateTest.cls
│ │ │ ├── SOQLAgregateTest.cls-meta.xml
│ │ │ ├── SOQLTest.cls
│ │ │ ├── SOQLTest.cls-meta.xml
│ │ │ ├── SOSLTest.cls
│ │ │ └── SOSLTest.cls-meta.xml
│ ├── queueable process
│ │ ├── EnqueueNextQueueableProcessStep.cls
│ │ ├── EnqueueNextQueueableProcessStep.cls-meta.xml
│ │ ├── QueueableProcess.cls
│ │ ├── QueueableProcess.cls-meta.xml
│ │ ├── QueueableProcessDataProvider.cls
│ │ ├── QueueableProcessDataProvider.cls-meta.xml
│ │ ├── QueueableProcessMockDataProvider.cls
│ │ ├── QueueableProcessMockDataProvider.cls-meta.xml
│ │ ├── README.md
│ │ └── tests
│ │ │ ├── ExampleQueueableProcessSteps.cls
│ │ │ ├── ExampleQueueableProcessSteps.cls-meta.xml
│ │ │ ├── QueueableProcessTests.cls
│ │ │ └── QueueableProcessTests.cls-meta.xml
│ ├── quiddity
│ │ ├── QuiddityGuard.cls
│ │ ├── QuiddityGuard.cls-meta.xml
│ │ └── tests
│ │ │ ├── QuiddityGuardTests.cls
│ │ │ └── QuiddityGuardTests.cls-meta.xml
│ ├── rest lib
│ │ ├── AsyncRestClient.cls
│ │ ├── AsyncRestClient.cls-meta.xml
│ │ ├── AsyncRestLibFinalizer.cls
│ │ ├── AsyncRestLibFinalizer.cls-meta.xml
│ │ ├── HttpVerb.cls
│ │ ├── HttpVerb.cls-meta.xml
│ │ ├── RestClient.cls
│ │ ├── RestClient.cls-meta.xml
│ │ ├── RestClientLib.cls
│ │ ├── RestClientLib.cls-meta.xml
│ │ ├── RestLib.cls
│ │ ├── RestLib.cls-meta.xml
│ │ ├── RestLibApiCall.cls
│ │ ├── RestLibApiCall.cls-meta.xml
│ │ └── tests
│ │ │ ├── RestLibTests.cls
│ │ │ └── RestLibTests.cls-meta.xml
│ ├── safely
│ │ ├── CanTheUser.cls
│ │ ├── CanTheUser.cls-meta.xml
│ │ ├── CrudType.cls
│ │ ├── CrudType.cls-meta.xml
│ │ ├── FLSType.cls
│ │ ├── FLSType.cls-meta.xml
│ │ ├── Safely.cls
│ │ ├── Safely.cls-meta.xml
│ │ └── tests
│ │ │ ├── CanTheUserTests.cls
│ │ │ ├── CanTheUserTests.cls-meta.xml
│ │ │ ├── SafelyTests.cls
│ │ │ └── SafelyTests.cls-meta.xml
│ ├── test utilities
│ │ ├── CustomAssert.cls
│ │ ├── CustomAssert.cls-meta.xml
│ │ ├── HttpCalloutMockFactory.cls
│ │ ├── HttpCalloutMockFactory.cls-meta.xml
│ │ ├── IdFactory.cls
│ │ ├── IdFactory.cls-meta.xml
│ │ ├── MethodSignature.cls
│ │ ├── MethodSignature.cls-meta.xml
│ │ ├── MockedMethod.cls
│ │ ├── MockedMethod.cls-meta.xml
│ │ ├── ParameterMatcher.cls
│ │ ├── ParameterMatcher.cls-meta.xml
│ │ ├── ParameterMatcherTest.cls
│ │ ├── ParameterMatcherTest.cls-meta.xml
│ │ ├── ParameterMatcherTestClass.cls
│ │ ├── ParameterMatcherTestClass.cls-meta.xml
│ │ ├── PermissionsHelper.cls
│ │ ├── PermissionsHelper.cls-meta.xml
│ │ ├── SObjectFactory.cls
│ │ ├── SObjectFactory.cls-meta.xml
│ │ ├── SObjectFactoryDefaults.cls
│ │ ├── SObjectFactoryDefaults.cls-meta.xml
│ │ ├── SObjectFactoryHelper.cls
│ │ ├── SObjectFactoryHelper.cls-meta.xml
│ │ ├── SObjectFactoryTests.cls
│ │ ├── SObjectFactoryTests.cls-meta.xml
│ │ ├── SomeDefaultsClass.cls
│ │ ├── SomeDefaultsClass.cls-meta.xml
│ │ ├── Stub.cls
│ │ ├── Stub.cls-meta.xml
│ │ ├── StubUtilities.cls
│ │ ├── StubUtilities.cls-meta.xml
│ │ ├── UserFactory.cls
│ │ ├── UserFactory.cls-meta.xml
│ │ ├── UserFactoryHelper.cls
│ │ └── UserFactoryHelper.cls-meta.xml
│ └── trigger framework
│ │ ├── InvokeMetadataDrivenTriggerFramework.cls
│ │ ├── InvokeMetadataDrivenTriggerFramework.cls-meta.xml
│ │ ├── MetadataTriggerFramework.cls
│ │ ├── MetadataTriggerFramework.cls-meta.xml
│ │ ├── MetadataTriggerFrameworkException.cls
│ │ ├── MetadataTriggerFrameworkException.cls-meta.xml
│ │ ├── MetadataTriggerFrameworkTests.cls
│ │ ├── MetadataTriggerFrameworkTests.cls-meta.xml
│ │ ├── MetadataTriggerQueryService.cls
│ │ ├── MetadataTriggerQueryService.cls-meta.xml
│ │ ├── MetadataTriggerQueryServiceTests.cls
│ │ ├── MetadataTriggerQueryServiceTests.cls-meta.xml
│ │ ├── TriggerContext.cls
│ │ ├── TriggerContext.cls-meta.xml
│ │ ├── TriggerFramework.cls
│ │ ├── TriggerFramework.cls-meta.xml
│ │ ├── TriggerFrameworkException.cls
│ │ ├── TriggerFrameworkException.cls-meta.xml
│ │ ├── TriggerFrameworkLoopCount.cls
│ │ ├── TriggerFrameworkLoopCount.cls-meta.xml
│ │ └── tests
│ │ ├── SampleHandler.cls
│ │ ├── SampleHandler.cls-meta.xml
│ │ ├── TriggerFrameworkTests.cls
│ │ └── TriggerFrameworkTests.cls-meta.xml
│ ├── customMetadata
│ ├── Feature_Flag.test.md-meta.xml
│ └── Feature_Flag_Enabled_For.test.md-meta.xml
│ ├── customPermissions
│ └── ApexKit_Example.customPermission-meta.xml
│ ├── flexipages
│ └── Log_Event_Record_Page.flexipage-meta.xml
│ ├── layouts
│ ├── FF_Enabled_For_Custom_Permission__mdt-FF Enabled For Custom Permission Layout.layout-meta.xml
│ ├── Feature_Flag_Enabled_For__mdt-Feature Flag Enabled For Layout.layout-meta.xml
│ ├── Feature_Flag__mdt-Feature Flag Layout.layout-meta.xml
│ └── LogEvent__c-Log Event Layout.layout-meta.xml
│ ├── lwc
│ └── .eslintrc.json
│ ├── objects
│ ├── Disabled_For__mdt
│ │ ├── Disabled_For__mdt.object-meta.xml
│ │ └── fields
│ │ │ ├── Metadata_Driven_Trigger__c.field-meta.xml
│ │ │ └── User_Email__c.field-meta.xml
│ ├── FF_Enabled_For_Custom_Permission__mdt
│ │ ├── FF_Enabled_For_Custom_Permission__mdt.object-meta.xml
│ │ └── fields
│ │ │ └── Feature_Flag__c.field-meta.xml
│ ├── Feature_Flag_Enabled_For__mdt
│ │ ├── Feature_Flag_Enabled_For__mdt.object-meta.xml
│ │ └── fields
│ │ │ ├── Feature_Flag__c.field-meta.xml
│ │ │ ├── Permission_Set_Id__c.field-meta.xml
│ │ │ └── isEnabled__c.field-meta.xml
│ ├── Feature_Flag__mdt
│ │ ├── Feature_Flag__mdt.object-meta.xml
│ │ └── fields
│ │ │ ├── Flag_Value__c.field-meta.xml
│ │ │ ├── isEnabled_After__c.field-meta.xml
│ │ │ └── isEnabled__c.field-meta.xml
│ ├── LogEvent__c
│ │ ├── LogEvent__c.object-meta.xml
│ │ ├── fields
│ │ │ ├── Log_Data__c.field-meta.xml
│ │ │ ├── Quiddity__c.field-meta.xml
│ │ │ ├── Request_Id__c.field-meta.xml
│ │ │ └── Severity__c.field-meta.xml
│ │ └── listViews
│ │ │ ├── All.listView-meta.xml
│ │ │ └── All1.listView-meta.xml
│ ├── Log__e
│ │ ├── Log__e.object-meta.xml
│ │ └── fields
│ │ │ ├── Log_Message__c.field-meta.xml
│ │ │ ├── Quiddity__c.field-meta.xml
│ │ │ ├── Request_Id__c.field-meta.xml
│ │ │ └── Severity__c.field-meta.xml
│ ├── Metadata_Driven_Trigger__mdt
│ │ ├── Metadata_Driven_Trigger__mdt.object-meta.xml
│ │ └── fields
│ │ │ ├── Class__c.field-meta.xml
│ │ │ ├── Enabled__c.field-meta.xml
│ │ │ ├── Execution_Order__c.field-meta.xml
│ │ │ └── Object__c.field-meta.xml
│ └── Opportunity
│ │ └── listViews
│ │ └── Default_Opportunity_Pipeline.listView-meta.xml
│ ├── permissionsets
│ └── Async_Log_Access.permissionset-meta.xml
│ ├── tabs
│ └── LogEvent__c.tab-meta.xml
│ └── triggers
│ ├── Log.trigger
│ └── Log.trigger-meta.xml
├── jest.config.js
├── package-lock.json
├── package.json
├── pmd
└── ruleset.xml
├── scripts
└── orginit.sh
└── sfdx-project.json
/.eslintignore:
--------------------------------------------------------------------------------
1 | **/lwc/**/*.css
2 | **/lwc/**/*.html
3 | **/lwc/**/*.json
4 | **/lwc/**/*.svg
5 | **/lwc/**/*.xml
6 | **/aura/**/*.auradoc
7 | **/aura/**/*.cmp
8 | **/aura/**/*.css
9 | **/aura/**/*.design
10 | **/aura/**/*.evt
11 | **/aura/**/*.json
12 | **/aura/**/*.svg
13 | **/aura/**/*.tokens
14 | **/aura/**/*.xml
15 | **/aura/**/*.app
16 | .sfdx
17 |
--------------------------------------------------------------------------------
/.forceignore:
--------------------------------------------------------------------------------
1 | # List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status
2 | # More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm
3 | #
4 |
5 | package.xml
6 |
7 | # LWC configuration files
8 | **/jsconfig.json
9 | **/.eslintrc.json
10 |
11 | # LWC Jest
12 | **/__tests__/**
13 | force-app/main/default/profiles/*
14 |
15 | # Added by Illuminated Cloud
16 | /.illuminatedCloud/
17 | **/*.ts
18 | **/tsconfig*.json
19 | **/*.tsbuildinfo
20 | **/eslint.config.mjs
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug-report.yml:
--------------------------------------------------------------------------------
1 | name: Bug Report
2 | description: File a bug report
3 | labels: ['bug']
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | **NOTICE:** Please use this form only for reporting bugs in ApexKit itself.
9 | - type: textarea
10 | attributes:
11 | label: Summary
12 | description: Short narative of what is going on
13 | validations:
14 | required: true
15 | - type: dropdown
16 | id: orgType
17 | attributes:
18 | label: Salesforce Org Type
19 | description: What type of Salesforce org are you deploying to?
20 | options:
21 | - Scratch Org
22 | - Developer Edition Org
23 | - Trailhead Playground
24 | - Sandbox
25 | - Production Org
26 | validations:
27 | required: true
28 | - type: textarea
29 | attributes:
30 | label: Steps To Reproduce
31 | description: Steps to reproduce the issue.
32 | placeholder: |
33 | 1. In this environment...
34 | 2. With this config...
35 | 3. Run '...'
36 | validations:
37 | required: false
38 | - type: textarea
39 | attributes:
40 | label: Current Behavior
41 | description: A concise description of what you're experiencing.
42 | validations:
43 | required: false
44 | - type: textarea
45 | attributes:
46 | label: Expected Behavior
47 | description: A concise description of what you expected to happen.
48 | validations:
49 | required: false
50 | - type: textarea
51 | id: logs
52 | attributes:
53 | label: Relevant Log Output
54 | description: Please copy and paste any relevant log output. This will be automatically formatted into code.
55 | render: sh
56 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-request.yml:
--------------------------------------------------------------------------------
1 | name: Feature request
2 | description: Suggest an idea for this project
3 | labels: ['enhancement']
4 | body:
5 | - type: markdown
6 | attributes:
7 | value: |
8 | **NOTICE:** Please use this form only for requesting features for ApexKit itself.
9 | - type: textarea
10 | attributes:
11 | label: Summary
12 | description: A concise description of what's missing from ApexKit.
13 | placeholder: |
14 | Ex. I'd like to see an implementation of [...]
15 | validations:
16 | required: true
17 | - type: textarea
18 | attributes:
19 | label: Suggested Solution
20 | description: A concise description of what you want to happen.
21 | validations:
22 | required: false
23 | - type: textarea
24 | attributes:
25 | label: Alternative Solutions
26 | description: A concise description of any alternative solutions or features you've considered.
27 | validations:
28 | required: false
29 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | # To get started with Dependabot version updates, you'll need to specify which
2 | # package ecosystems to update and where the package manifests are located.
3 | # Please see the documentation for all configuration options:
4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5 |
6 | version: 2
7 | updates:
8 | - package-ecosystem: 'npm' # See documentation for possible values
9 | directory: '/' # Location of package manifests
10 | commit-message:
11 | prefix: 'build(npm)'
12 | rebase-strategy: 'auto'
13 | schedule:
14 | interval: 'daily'
15 | - package-ecosystem: 'github-actions' # See documentation for possible values
16 | directory: '/' # Location of package manifests
17 | commit-message:
18 | prefix: 'ci'
19 | include: 'scope'
20 | rebase-strategy: 'auto'
21 | schedule:
22 | interval: 'daily'
23 |
--------------------------------------------------------------------------------
/.github/workflows/dependabot-approve-and-auto-merge.yml:
--------------------------------------------------------------------------------
1 | name: Dependabot Pull Request Approve and Merge
2 | on: pull_request_target
3 | permissions:
4 | pull-requests: write
5 | contents: write
6 | jobs:
7 | # Auto merge Dependabot PRs for:
8 | # - patch updates on prod dependencies
9 | # - minor updates on dev dependencies
10 | dependabot-auto-merge:
11 | # Only run for Dependabot PRs
12 | if: ${{ github.actor == 'dependabot[bot]' }}
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: 'Fetch Dependabot metadata'
16 | id: dependabot
17 | uses: dependabot/fetch-metadata@v2
18 |
19 | - name: 'Check auto merge conditions'
20 | id: auto-merge
21 | if: |
22 | (
23 | steps.dependabot.outputs.update-type == 'version-update:semver-patch' &&
24 | contains('direct:production,indirect:production', steps.dependabot.outputs.dependency-type)
25 | ) || (
26 | contains('version-update:semver-minor,version-update:semver-patch', steps.dependabot.outputs.update-type) &&
27 | contains('direct:development,indirect:development', steps.dependabot.outputs.dependency-type)
28 | )
29 | run: echo "::notice ::auto-merge conditions satisfied"
30 |
31 | - name: 'Approve and merge PR'
32 | if: ${{ steps.auto-merge.conclusion == 'success' }}
33 | run: |
34 | gh pr review --approve "$PR_URL"
35 | gh pr merge --auto --squash "$PR_URL"
36 | env:
37 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38 | PR_URL: ${{ github.event.pull_request.html_url }}
39 |
--------------------------------------------------------------------------------
/.github/workflows/new-issue-welcome.yml:
--------------------------------------------------------------------------------
1 | name: New issue greeting
2 |
3 | on:
4 | issues:
5 | types: [opened]
6 |
7 | jobs:
8 | comment:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/github-script@v7
12 | with:
13 | script: |
14 | await github.rest.issues.createComment({
15 | issue_number: context.issue.number,
16 | owner: context.repo.owner,
17 | repo: context.repo.repo,
18 | body: 'Thank you for posting this issue. 🙇🏼♂️
We will get back to you shortly.'
19 | })
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # This file is used for Git repositories to specify intentionally untracked files that Git should ignore.
2 | # If you are not using git, you can delete this file. For more information see: https://git-scm.com/docs/gitignore
3 | # For useful gitignore templates see: https://github.com/github/gitignore
4 |
5 | # Salesforce cache
6 | .sf/
7 | .sfdx/
8 | .localdevserver/
9 | deploy-options.json
10 |
11 | # LWC VSCode autocomplete
12 | **/lwc/jsconfig.json
13 |
14 | # LWC Jest coverage reports
15 | coverage/
16 |
17 | # Logs
18 | logs
19 | *.log
20 | npm-debug.log*
21 | yarn-debug.log*
22 | yarn-error.log*
23 |
24 | # Dependency directories
25 | node_modules/
26 |
27 | # Eslint cache
28 | .eslintcache
29 |
30 | # MacOS system files
31 | .DS_Store
32 |
33 | # Windows system files
34 | Thumbs.db
35 | ehthumbs.db
36 | [Dd]esktop.ini
37 | $RECYCLE.BIN/
38 |
39 | # Local environment variables
40 | .env
41 |
42 | # PMD cache should not be included in GitHub
43 | .pmdCache
44 | /IlluminatedCloud/ApexKit_Company/OfflineSymbolTable.zip
45 | /force-app/main/default/profiles/*.profile-meta.xml
46 | pmd/pmd.csv
47 | /.idea/sonarlint/
48 | /pmd/*.csv
49 |
50 | # Added by Illuminated Cloud
51 | /out/
52 | target/
53 | /.illuminatedCloud/
54 | **/tsconfig*.json
55 | **/*.tsbuildinfo
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 |
2 | npm run precommit
3 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 |
--------------------------------------------------------------------------------
/.idea/ApexKit.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/.idea/codeStyles/codeStyleConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/dictionaries/project.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | anyvalue
5 | memoizes
6 | ulid
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.idea/git_toolbox_blame.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/git_toolbox_prj.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/illuminatedCloud.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/libraries/ApexKit_lwc_types.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/prettier.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # List files or directories below to ignore them when running prettier
2 | # More information: https://prettier.io/docs/en/ignore.html
3 | #
4 |
5 | .idea/**
6 |
7 | **/staticresources/**
8 | .localdevserver
9 | .sfdx
10 | .sf
11 | .vscode
12 |
13 | coverage/
14 |
15 | *-meta.xml
16 |
17 | # ApexDox
18 | doc-assets/**/*.js
19 | docs/**/*.js
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "apexInsertFinalNewline": true,
3 | "bracketSameLine": true,
4 | "singleAttributePerLine": false,
5 | "bracketSpacing": true,
6 | "singleQuote": true,
7 | "tabWidth": 4,
8 | "trailingComma": "none",
9 | "useTabs": true,
10 | "htmlWhitespaceSensitivity": "css",
11 | "xmlSelfClosingSpace": true,
12 | "overrides": [
13 | {
14 | "files": "**/lwc/**/*.html",
15 | "options": { "parser": "lwc" }
16 | },
17 | {
18 | "files": "*.{cmp,page,component}",
19 | "options": { "parser": "html" }
20 | },
21 | {
22 | "files": "*.{yml,yaml}",
23 | "options": { "tabWidth": 2, "useTabs": false }
24 | },
25 | {
26 | "files": "*.cls",
27 | "options": { "parser": "apex", "tabWidth": 2, "useTabs": true }
28 | },
29 | {
30 | "files": "*.apex",
31 | "options": { "parser": "anonymous-apex" }
32 | },
33 | {
34 | "files": "docs/*.html",
35 | "options": {
36 | "parser": "html",
37 | "useTabs": true,
38 | "htmlWhitespaceSensitivity": "css",
39 | "singleQuote": false
40 | }
41 | }
42 | ],
43 | "plugins": ["prettier-plugin-apex", "@prettier/plugin-xml"],
44 | "$schema": "https://json.schemastore.org/prettierrc"
45 | }
46 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "salesforce.salesforcedx-vscode",
4 | "redhat.vscode-xml",
5 | "dbaeumer.vscode-eslint",
6 | "esbenp.prettier-vscode",
7 | "financialforce.lana"
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Launch Apex Replay Debugger",
9 | "type": "apex-replay",
10 | "request": "launch",
11 | "logFile": "${command:AskForLogFileName}",
12 | "stopOnEntry": true,
13 | "trace": true
14 | }
15 | ]
16 | }
17 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "search.exclude": {
3 | "**/node_modules": true,
4 | "**/bower_components": true,
5 | "**/.sfdx": true,
6 | "**/.sf": true
7 | },
8 | "salesforcedx-vscode-core.show-cli-success-msg": false,
9 | "cSpell.words": [
10 | "guaranteednottoexist"
11 | ],
12 | "apexPMD.enableCache": true,
13 | "apexPMD.rulesets": [
14 | "pmd/ruleset.xml"
15 | ],
16 | "editor.defaultFormatter": "esbenp.prettier-vscode",
17 | }
18 |
--------------------------------------------------------------------------------
/IlluminatedCloud/Apexkit/OfflineSymbolTable.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefriar/ApexKit/4c8254db7bfc9612d38581fb57c1d0c3d3938008/IlluminatedCloud/Apexkit/OfflineSymbolTable.zip
--------------------------------------------------------------------------------
/IlluminatedCloud/ApexkitV2_5/OfflineSymbolTable.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefriar/ApexKit/4c8254db7bfc9612d38581fb57c1d0c3d3938008/IlluminatedCloud/ApexkitV2_5/OfflineSymbolTable.zip
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | BSD 3-Clause License
2 |
3 | Copyright (c) 2023, Kevin Poorman
4 |
5 | Redistribution and use in source and binary forms, with or without
6 | modification, are permitted provided that the following conditions are met:
7 |
8 | 1. Redistributions of source code must retain the above copyright notice, this
9 | list of conditions and the following disclaimer.
10 |
11 | 2. Redistributions in binary form must reproduce the above copyright notice,
12 | this list of conditions and the following disclaimer in the documentation
13 | and/or other materials provided with the distribution.
14 |
15 | 3. Neither the name of the copyright holder nor the names of its
16 | contributors may be used to endorse or promote products derived from
17 | this software without specific prior written permission.
18 |
19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 |
--------------------------------------------------------------------------------
/apexdox.yml:
--------------------------------------------------------------------------------
1 | engine:
2 | source:
3 | - path: '${workspaceFolder}/force-app/main/default/classes'
4 | sourceUrl: https://github.com/codefriar/ApexKit/blob/main
5 | targetDirectory: '${workspaceFolder}/docs'
6 | # excludes:
7 | # - '*Test.cls'
8 | title: ApexKit Documentation
9 | subtitle: Documentation for ApexKit
10 | sortOrder: alpha
11 | cleanDir: true
12 | showTOCSnippets: true
13 | scope:
14 | - global
15 | - public
16 | - protected
17 | - private
18 | - webService
19 | - testMethod
20 | homePagePath: '${workspaceFolder}/doc-assets/files/main.html'
21 | assets:
22 | #- '${workspaceFolder}/doc-assets/logo.png'
23 | #- '${workspaceFolder}/doc-assets/favicon.png'
24 | #- '${workspaceFolder}/doc-assets/icon.png'
25 | #- '${workspaceFolder}/doc-assets/index.css'
26 | #- '${workspaceFolder}/doc-assets/highlight.css'
27 | - '${workspaceFolder}/doc-assets/styling.css'
28 | - '${workspaceFolder}/doc-assets/highlight.js'
29 | #- '${workspaceFolder}/doc-assets/index.js'
30 | port: 8088
31 | docblock:
32 | alignItems: true
33 | spacious: true
34 | omitDescriptionTag: false
35 |
--------------------------------------------------------------------------------
/bin/generate-apex-docs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # shellcheck disable=SC2164
3 | #SCRIPT_PATH=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
4 | # cd $SCRIPT_PATH/..
5 |
6 | # Remove old docs
7 | rm -fr docs &&
8 | # \
9 | #rm -fr force-app/main/default/staticresources/documentation && \
10 |
11 | # Generate Apex doc files
12 | ./node_modules/.bin/apexdocs markdown -p global public private protected namespaceaccessible -s force-app/main/default/classes && \
13 |
14 | # Remove doc index
15 | #rm docs/index.md && \
16 |
17 | mv docs/index.md docs/home.md && \
18 |
19 | # Flatten directory structure
20 | find docs/* -mindepth 1 -type f -exec mv -i '{}' docs ';' && \
21 |
22 | # Remove empty folders
23 | find docs/* -type d -empty -delete && \
24 |
25 | # Replace relative links and remove .md extension
26 | find docs/ -type f -name "*.md" -print0 | xargs -0 sed -i "" -E "s@]\(\.\/(.*)\.md@](https://github.com/codefriar/ApexKit/wiki/\1@g" && \
27 | find docs/ -type f -name "*.md" -print0 | xargs -0 sed -i "" -E "s@\]\(\.\.\/.*\/(.*)\.md@](https://github.com/codefriar/ApexKit/wiki/\1@g" && \
28 |
29 | # Remove first three line with layout header
30 | find docs/ -type f -name "*.md" -print0 | xargs -0 sed -i "" "1,3d"
31 |
32 | # Move docs
33 | #mv docs force-app/main/default/staticresources/documentation
--------------------------------------------------------------------------------
/config/Apexkit-scratch-def.json:
--------------------------------------------------------------------------------
1 | {
2 | "orgName": "ApexKit",
3 | "edition": "Developer",
4 | "hasSampleData": false,
5 | "features": ["EinsteinGPTForDevelopers"]
6 | }
7 |
--------------------------------------------------------------------------------
/config/ApexkitV2_5-scratch-def.json:
--------------------------------------------------------------------------------
1 | {
2 | "orgName": "ApexKit26",
3 | "edition": "Developer",
4 | "hasSampleData": false,
5 | "features": ["EinsteinGPTForDevelopers"]
6 | }
7 |
--------------------------------------------------------------------------------
/config/project-scratch-def.json:
--------------------------------------------------------------------------------
1 | {
2 | "orgName": "Ignoti Et Quasi Occulti",
3 | "description": "ApexKit",
4 | "edition": "Developer",
5 | "hasSampleData": false,
6 | "features": [
7 | "EinsteinGPTForDevelopers",
8 | "EnableSetPasswordInApi",
9 | "PlatformCache"
10 | ],
11 | "settings": {
12 | "lightningExperienceSettings": {
13 | "enableS1DesktopEnabled": true
14 | },
15 | "mobileSettings": {
16 | "enableS1EncryptedStoragePref2": false
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/data/apexkit-data-plan.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "sobject": "Account",
4 | "saveRefs": true,
5 | "resolveRefs": false,
6 | "files": ["Accounts.json"]
7 | },
8 | {
9 | "sobject": "Contact",
10 | "saveRefs": true,
11 | "resolveRefs": true,
12 | "files": ["Contacts.json"]
13 | }
14 | ]
15 |
--------------------------------------------------------------------------------
/doc-assets/README.md:
--------------------------------------------------------------------------------
1 | Any overrides for default ApexDox files should go in this directory
2 |
3 | Examples may include updated highlight.js libraries
4 |
--------------------------------------------------------------------------------
/doc-assets/SetupApexDox.sh:
--------------------------------------------------------------------------------
1 | FILE=node_modules/@highlightjs/cdn-assets/highlight.min.js
2 | if test -f "$FILE"; then
3 | cat node_modules/@highlightjs/cdn-assets/highlight.min.js > doc-assets/highlight.js
4 | echo "\n" >> doc-assets/highlight.js
5 | cat node_modules/highlightjs-apex/dist/apex.min.js >> doc-assets/highlight.js
6 | else
7 | curl -L "https://cdn.jsdelivr.net/gh/highlightjs/cdn-release/build/highlight.min.js" -o "doc-assets/highlight.js"
8 | echo >> doc-assets/highlight.js
9 | curl -L "https://cdn.jsdelivr.net/npm/highlightjs-apex/dist/apex.min.js" >> "doc-assets/highlight.js"
10 | fi
11 |
12 | printf '' > "doc-assets/files/main.html"
13 | echo >> "doc-assets/files/main.html"
14 | npx marked -i README.md --gfm >> "doc-assets/files/main.html"
15 |
--------------------------------------------------------------------------------
/doc-assets/files/README.md:
--------------------------------------------------------------------------------
1 | All extra files & pages for ApexDox should go in this directory
2 |
--------------------------------------------------------------------------------
/doc-assets/styling.css:
--------------------------------------------------------------------------------
1 | pre {
2 | background-color: #f6f8fa;
3 | white-space: pre;
4 | }
5 |
6 | code {
7 | font-size: large;
8 | background: rgb(238, 238, 238) !important;
9 | }
10 |
11 | pre code {
12 | white-space: pre-wrap;
13 | }
14 |
15 | .hljs {
16 | background: rgb(238, 238, 238);
17 | }
18 |
19 | .readmeimage {
20 | max-width: 800px;
21 | width: 100%;
22 | }
23 |
--------------------------------------------------------------------------------
/docs/AsyncRestClient.md:
--------------------------------------------------------------------------------
1 | **Implements**
2 |
3 | System.Queueable,
4 | Database.AllowsCallouts
5 |
6 | ## Fields
7 |
8 | ### `namedCredentialName`
9 |
10 | the named credential to use for the api call
11 |
12 | #### Signature
13 |
14 | ```apex
15 | private final namedCredentialName
16 | ```
17 |
18 | #### Type
19 |
20 | String
21 |
22 | ---
23 |
24 | ### `apiCall`
25 |
26 | The RestLibApiCall that describes your callout
27 |
28 | #### Signature
29 |
30 | ```apex
31 | private final apiCall
32 | ```
33 |
34 | #### Type
35 |
36 | [RestLibApiCall](RestLibApiCall.md)
37 |
38 | ---
39 |
40 | ### `handlerClass`
41 |
42 | The handler class to instantiate to handle the response
43 |
44 | #### Signature
45 |
46 | ```apex
47 | private final handlerClass
48 | ```
49 |
50 | #### Type
51 |
52 | Type
53 |
54 | ## Constructors
55 |
56 | ### `AsyncRestClient(namedCredentialName, apiCall, handlerClass)`
57 |
58 | Default constructor
59 |
60 | #### Signature
61 |
62 | ```apex
63 | public AsyncRestClient(String namedCredentialName, RestLibApiCall apiCall, Type handlerClass)
64 | ```
65 |
66 | #### Parameters
67 |
68 | | Name | Type | Description |
69 | | ------------------- | ----------------------------------- | ------------------------------------------------------------- |
70 | | namedCredentialName | String | String representing the named credential to use |
71 | | apiCall | [RestLibApiCall](RestLibApiCall.md) | RestLibApiCall The RestLibApiCall that describes your callout |
72 | | handlerClass | Type | Type a type reference to the finalizer to be used. |
73 |
74 | ## Methods
75 |
76 | ### `execute(qc)`
77 |
78 | This method will be executed by the Queueable system and is responsible for making the Api call.
79 | The finalizer is attached according to the passed in handlerClass
80 |
81 | #### Signature
82 |
83 | ```apex
84 | public void execute(QueueableContext qc)
85 | ```
86 |
87 | #### Parameters
88 |
89 | | Name | Type | Description |
90 | | ---- | ---------------- | ------------------------------------------------------------ |
91 | | qc | QueueableContext | QueueableContext Dependency Injected by the Queueable system |
92 |
93 | #### Return Type
94 |
95 | **void**
96 |
--------------------------------------------------------------------------------
/docs/AsyncRestLibFinalizer.md:
--------------------------------------------------------------------------------
1 | Abstract class defining a common interface with default implementation for finalizers handling
2 | AsyncRestApi calls
3 |
4 | **Implements**
5 |
6 | Finalizer
7 |
8 | ## Fields
9 |
10 | ### `response`
11 |
12 | the HTTP response object
13 |
14 | #### Signature
15 |
16 | ```apex
17 | public response
18 | ```
19 |
20 | #### Type
21 |
22 | HttpResponse
23 |
24 | ## Methods
25 |
26 | ### `execute(response)`
27 |
28 | The extending class must implement this method to handle the HTTP response
29 |
30 | #### Signature
31 |
32 | ```apex
33 | private abstract void execute(HttpResponse response)
34 | ```
35 |
36 | #### Parameters
37 |
38 | | Name | Type | Description |
39 | | -------- | ------------ | ------------------------------------------- |
40 | | response | HttpResponse | HttpResponse response object to be handled. |
41 |
42 | #### Return Type
43 |
44 | **void**
45 |
46 | ---
47 |
48 | ### `execute(fc)`
49 |
50 | Execution method of the finalizer. required by the interface.
51 |
52 | #### Signature
53 |
54 | ```apex
55 | private void execute(FinalizerContext fc)
56 | ```
57 |
58 | #### Parameters
59 |
60 | | Name | Type | Description |
61 | | ---- | ---------------- | ------------------------------------------------------------------ |
62 | | fc | FinalizerContext | FinalizerContext Context object dependency injected by Salesforce. |
63 |
64 | #### Return Type
65 |
66 | **void**
67 |
--------------------------------------------------------------------------------
/docs/BaseRepoTests.md:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codefriar/ApexKit/4c8254db7bfc9612d38581fb57c1d0c3d3938008/docs/BaseRepoTests.md
--------------------------------------------------------------------------------
/docs/CachePartitionType.md:
--------------------------------------------------------------------------------
1 | ## Values
2 |
3 | | Value | Description |
4 | | ------- | ----------- |
5 | | SESSION | |
6 | | ORG | |
7 |
--------------------------------------------------------------------------------
/docs/CrudType.md:
--------------------------------------------------------------------------------
1 | | Value | Description |
2 | | ---------- | ----------- |
3 | | CREATEABLE | |
4 | | READABLE | |
5 | | EDITABLE | |
6 | | DELETABLE | |
7 | | UPSERTABLE | |
8 |
--------------------------------------------------------------------------------
/docs/CustomMetadataUtilDeployCallbackTests.md:
--------------------------------------------------------------------------------
1 | Test class for CustomMetadataUtilDeploymentCallback
2 |
3 | **Author** ApexKit Contributors
4 |
5 | ## Methods
6 |
7 | ### `unitHandleResultSuccessPositive()`
8 |
9 | `ISTEST`
10 |
11 | Test successful deployment callback
12 |
13 | #### Signature
14 |
15 | ```apex
16 | private static void unitHandleResultSuccessPositive()
17 | ```
18 |
19 | #### Return Type
20 |
21 | **void**
22 |
23 | ---
24 |
25 | ### `unitHandleResultFailureNegative()`
26 |
27 | `ISTEST`
28 |
29 | Test failed deployment callback - should throw exception
30 |
31 | #### Signature
32 |
33 | ```apex
34 | private static void unitHandleResultFailureNegative()
35 | ```
36 |
37 | #### Return Type
38 |
39 | **void**
40 |
41 | ---
42 |
43 | ### `unitHandleResultInProgressNegative()`
44 |
45 | `ISTEST`
46 |
47 | Test deployment callback with InProgress status - should throw exception
48 |
49 | #### Signature
50 |
51 | ```apex
52 | private static void unitHandleResultInProgressNegative()
53 | ```
54 |
55 | #### Return Type
56 |
57 | **void**
58 |
59 | ---
60 |
61 | ### `unitHandleResultNullNegative()`
62 |
63 | `ISTEST`
64 |
65 | Test deployment callback with null result - should throw exception
66 |
67 | #### Signature
68 |
69 | ```apex
70 | private static void unitHandleResultNullNegative()
71 | ```
72 |
73 | #### Return Type
74 |
75 | **void**
76 |
--------------------------------------------------------------------------------
/docs/CustomMetadataUtilDeploymentCallback.md:
--------------------------------------------------------------------------------
1 | **Author** ApexKit Contributors
2 |
3 | **Implements**
4 |
5 | Metadata.DeployCallback
6 |
7 | ## Methods
8 |
9 | ### `handleResult(result, context)`
10 |
11 | Handles the result of a metadata deployment.
12 | NOTE: This is a stub. This is functional, but bare-minimum implementation.
13 | You should 100% re-write this method to work with your needs.
14 |
15 | #### Signature
16 |
17 | ```apex
18 | public void handleResult(Metadata.DeployResult result, Metadata.DeployCallbackContext context)
19 | ```
20 |
21 | #### Parameters
22 |
23 | | Name | Type | Description |
24 | | ------- | ------------------------------ | -------------------------------------------------------------------------------------------------- |
25 | | result | Metadata.DeployResult | The DeployResult object containing deployment status and details - this is DI'd by Salesforce |
26 | | context | Metadata.DeployCallbackContext | The DeployCallbackContext for the deployment - this is DI'd by Salesforce |
27 |
28 | #### Return Type
29 |
30 | **void**
31 |
32 | #### Throws
33 |
34 | CustomMetadataUtilDeploymentCallbackException: When deployment fails
35 |
36 | ## Classes
37 |
38 | ### CustomMetadataUtilDeploymentCallbackException Class
39 |
40 | Exception class for deployment callback errors
41 |
--------------------------------------------------------------------------------
/docs/FF.md:
--------------------------------------------------------------------------------
1 | **Group** FeatureFlag
2 |
3 | ## Methods
4 |
5 | ### `isEnabled(featureName)`
6 |
7 | Convenience method for checking if a feature is enabled.
8 |
9 | #### Signature
10 |
11 | ```apex
12 | public static Boolean isEnabled(String featureName)
13 | ```
14 |
15 | #### Parameters
16 |
17 | | Name | Type | Description |
18 | | ----------- | ------ | ---------------------------- |
19 | | featureName | String | String feature name to check |
20 |
21 | #### Return Type
22 |
23 | **Boolean**
24 |
25 | True if the feature is enabled by any of the following: Universally enabled, or enabled for the current,[object Object],user based on permission set, custom permission or time.
26 |
27 | ---
28 |
29 | ### `isNotEnabled(featureName)`
30 |
31 | logical inverse of the isEnabled method.
32 |
33 | #### Signature
34 |
35 | ```apex
36 | public static Boolean isNotEnabled(String featureName)
37 | ```
38 |
39 | #### Parameters
40 |
41 | | Name | Type | Description |
42 | | ----------- | ------ | ---------------------------- |
43 | | featureName | String | String feature name to check |
44 |
45 | #### Return Type
46 |
47 | **Boolean**
48 |
49 | Boolean, returns inverse of isEnabled.
50 |
51 | ---
52 |
53 | ### `value(featureName)`
54 |
55 | Law of diminishing returns here. This isn't tested, per-say. It's underlying FeatureFlag
56 | implementation _is_ tested, however.
57 |
58 | #### Signature
59 |
60 | ```apex
61 | public static String value(String featureName)
62 | ```
63 |
64 | #### Parameters
65 |
66 | | Name | Type | Description |
67 | | ----------- | ------ | -------------------------------- |
68 | | featureName | String | String the feature name to check |
69 |
70 | #### Return Type
71 |
72 | **String**
73 |
74 | String the value stored in custom metadata for this feature flag.
75 |
--------------------------------------------------------------------------------
/docs/FLSType.md:
--------------------------------------------------------------------------------
1 | | Value | Description |
2 | | ---------- | ----------- |
3 | | ACCESSIBLE | |
4 | | UPDATABLE | |
5 |
--------------------------------------------------------------------------------
/docs/FailsafeExceptionHandlerTests.md:
--------------------------------------------------------------------------------
1 | ## Methods
2 |
3 | ### `testDefaultConstructor()`
4 |
5 | `ISTEST`
6 |
7 | #### Signature
8 |
9 | ```apex
10 | private static void testDefaultConstructor()
11 | ```
12 |
13 | #### Return Type
14 |
15 | **void**
16 |
17 | ---
18 |
19 | ### `testSingleExceptionConstructor()`
20 |
21 | `ISTEST`
22 |
23 | #### Signature
24 |
25 | ```apex
26 | private static void testSingleExceptionConstructor()
27 | ```
28 |
29 | #### Return Type
30 |
31 | **void**
32 |
33 | ---
34 |
35 | ### `testListExceptionConstructor()`
36 |
37 | `ISTEST`
38 |
39 | #### Signature
40 |
41 | ```apex
42 | private static void testListExceptionConstructor()
43 | ```
44 |
45 | #### Return Type
46 |
47 | **void**
48 |
49 | ---
50 |
51 | ### `testCallableInterfaceSingleException()`
52 |
53 | `ISTEST`
54 |
55 | #### Signature
56 |
57 | ```apex
58 | private static void testCallableInterfaceSingleException()
59 | ```
60 |
61 | #### Return Type
62 |
63 | **void**
64 |
65 | ---
66 |
67 | ### `testCallableInterfaceListOfExceptions()`
68 |
69 | `ISTEST`
70 |
71 | #### Signature
72 |
73 | ```apex
74 | private static void testCallableInterfaceListOfExceptions()
75 | ```
76 |
77 | #### Return Type
78 |
79 | **void**
80 |
81 | ---
82 |
83 | ### `assertLogsGenerated(numberOfLogsExpected, friendlyMessage)`
84 |
85 | #### Signature
86 |
87 | ```apex
88 | private static void assertLogsGenerated(Integer numberOfLogsExpected, String friendlyMessage)
89 | ```
90 |
91 | #### Parameters
92 |
93 | | Name | Type | Description |
94 | | -------------------- | ------- | ----------- |
95 | | numberOfLogsExpected | Integer | |
96 | | friendlyMessage | String | |
97 |
98 | #### Return Type
99 |
100 | **void**
101 |
--------------------------------------------------------------------------------
/docs/FeatureFlagCommonTests.md:
--------------------------------------------------------------------------------
1 | Class serves to DRY code for various testing methods that
2 | require it. It is not intended to be used directly.
3 |
4 | ## Fields
5 |
6 | ### `EXAMPLE_FEATURE_FLAG_ID`
7 |
8 | This is the id of the feature flag that's included with ApexKit. CMDT can be hard to test with
9 | because you can't necessarily know the object prefix until a cmdt record is saved. :(
10 |
11 | #### Signature
12 |
13 | ```apex
14 | private static final EXAMPLE_FEATURE_FLAG_ID
15 | ```
16 |
17 | #### Type
18 |
19 | Id
20 |
21 | ## Methods
22 |
23 | ### `getTestFlag(flagName, enabled)`
24 |
25 | DRY method to create a test flag with valid-ish id.
26 |
27 | #### Signature
28 |
29 | ```apex
30 | public static Map getTestFlag(String flagName, Boolean enabled)
31 | ```
32 |
33 | #### Parameters
34 |
35 | | Name | Type | Description |
36 | | -------- | ------- | ------------------------------------------------------ |
37 | | flagName | String | String name of the Flag |
38 | | enabled | Boolean | Boolean whether the flag is enabled universally or not |
39 |
40 | #### Return Type
41 |
42 | **Map<String,Feature_Flag\_\_mdt>**
43 |
44 | Map<String, Feature_Flag\_\_mdt> test flag
45 |
46 | ---
47 |
48 | ### `getExistingPermSetId()`
49 |
50 | fetches a valid permission set id
51 |
52 | #### Signature
53 |
54 | ```apex
55 | public static Id getExistingPermSetId()
56 | ```
57 |
58 | #### Return Type
59 |
60 | **Id**
61 |
62 | Id the id of the permissionset that's included with ApexKit
63 |
64 | ---
65 |
66 | ### `getOverriddenPerPermSet(flagName, permSetId, enabled)`
67 |
68 | returns a map of feature flags that are enabled just for a specified permission set
69 |
70 | #### Signature
71 |
72 | ```apex
73 | public static Map getOverriddenPerPermSet(String flagName, Id permSetId, Boolean enabled)
74 | ```
75 |
76 | #### Parameters
77 |
78 | | Name | Type | Description |
79 | | --------- | ------- | ------------------------------------------------------ |
80 | | flagName | String | String name of the flag |
81 | | permSetId | Id | Id the id of the permission set that enables this flag |
82 | | enabled | Boolean | Boolean whether the flag is enabled or not |
83 |
84 | #### Return Type
85 |
86 | **Map<String,Feature_Flag_Enabled_For\_\_mdt>**
87 |
88 | Map<String, Feature_Flag_Enabled_For\_\_mdt> the map of feature flags
89 |
--------------------------------------------------------------------------------
/docs/FeatureFlagDataProviderTests.md:
--------------------------------------------------------------------------------
1 | ## Methods
2 |
3 | ### `testEnablingPermissionSetsPositive()`
4 |
5 | `ISTEST`
6 |
7 | #### Signature
8 |
9 | ```apex
10 | private static void testEnablingPermissionSetsPositive()
11 | ```
12 |
13 | #### Return Type
14 |
15 | **void**
16 |
17 | ---
18 |
19 | ### `testReturnEmptySetWhenNoPermSetOverridesFound()`
20 |
21 | `ISTEST`
22 |
23 | #### Signature
24 |
25 | ```apex
26 | private static void testReturnEmptySetWhenNoPermSetOverridesFound()
27 | ```
28 |
29 | #### Return Type
30 |
31 | **void**
32 |
--------------------------------------------------------------------------------
/docs/FeatureFlagTests.md:
--------------------------------------------------------------------------------
1 | ## Methods
2 |
3 | ### `testDefaultConstructorPositive()`
4 |
5 | `ISTEST`
6 |
7 | #### Signature
8 |
9 | ```apex
10 | private static void testDefaultConstructorPositive()
11 | ```
12 |
13 | #### Return Type
14 |
15 | **void**
16 |
17 | ---
18 |
19 | ### `testFlagFoundButDisabledReturnsFixedString()`
20 |
21 | `ISTEST`
22 |
23 | #### Signature
24 |
25 | ```apex
26 | private static void testFlagFoundButDisabledReturnsFixedString()
27 | ```
28 |
29 | #### Return Type
30 |
31 | **void**
32 |
33 | ---
34 |
35 | ### `testFlagNotFoundReturnsFixedString()`
36 |
37 | `ISTEST`
38 |
39 | #### Signature
40 |
41 | ```apex
42 | private static void testFlagNotFoundReturnsFixedString()
43 | ```
44 |
45 | #### Return Type
46 |
47 | **void**
48 |
49 | ---
50 |
51 | ### `testFlagFoundAndEnabledReturnsValue()`
52 |
53 | `ISTEST`
54 |
55 | #### Signature
56 |
57 | ```apex
58 | private static void testFlagFoundAndEnabledReturnsValue()
59 | ```
60 |
61 | #### Return Type
62 |
63 | **void**
64 |
65 | ---
66 |
67 | ### `testFeatureFlagNotFoundReturnsFalse()`
68 |
69 | `ISTEST`
70 |
71 | #### Signature
72 |
73 | ```apex
74 | private static void testFeatureFlagNotFoundReturnsFalse()
75 | ```
76 |
77 | #### Return Type
78 |
79 | **void**
80 |
81 | ---
82 |
83 | ### `testFeatureFlagFoundReturnsTrue()`
84 |
85 | `ISTEST`
86 |
87 | #### Signature
88 |
89 | ```apex
90 | private static void testFeatureFlagFoundReturnsTrue()
91 | ```
92 |
93 | #### Return Type
94 |
95 | **void**
96 |
97 | ---
98 |
99 | ### `testFeatureFlagFoundIsNotEnabledReturnsTrue()`
100 |
101 | `ISTEST`
102 |
103 | #### Signature
104 |
105 | ```apex
106 | private static void testFeatureFlagFoundIsNotEnabledReturnsTrue()
107 | ```
108 |
109 | #### Return Type
110 |
111 | **void**
112 |
113 | ---
114 |
115 | ### `testFeatureFlagFoundWrapperIsNotEnabledReturnsTrue()`
116 |
117 | `ISTEST`
118 |
119 | #### Signature
120 |
121 | ```apex
122 | private static void testFeatureFlagFoundWrapperIsNotEnabledReturnsTrue()
123 | ```
124 |
125 | #### Return Type
126 |
127 | **void**
128 |
129 | ---
130 |
131 | ### `testFeatureFlagEnabledForPermSetFoundReturnsTrue()`
132 |
133 | `ISTEST`
134 |
135 | #### Signature
136 |
137 | ```apex
138 | private static void testFeatureFlagEnabledForPermSetFoundReturnsTrue()
139 | ```
140 |
141 | #### Return Type
142 |
143 | **void**
144 |
145 | ---
146 |
147 | ### `testFetchUsersAssignedPermissionSetsPositive()`
148 |
149 | `ISTEST`
150 |
151 | #### Signature
152 |
153 | ```apex
154 | private static void testFetchUsersAssignedPermissionSetsPositive()
155 | ```
156 |
157 | #### Return Type
158 |
159 | **void**
160 |
161 | ---
162 |
163 | ### `testFeatureFoundEnabledViaCustomPermissionPositive()`
164 |
165 | `ISTEST`
166 |
167 | #### Signature
168 |
169 | ```apex
170 | private static void testFeatureFoundEnabledViaCustomPermissionPositive()
171 | ```
172 |
173 | #### Return Type
174 |
175 | **void**
176 |
--------------------------------------------------------------------------------
/docs/FieldSelection.md:
--------------------------------------------------------------------------------
1 | | Value | Description |
2 | | -------- | ----------- |
3 | | ALL | |
4 | | STANDARD | |
5 | | CUSTOM | |
6 |
--------------------------------------------------------------------------------
/docs/HttpVerb.md:
--------------------------------------------------------------------------------
1 | and as a result, the ENUM value 'DEL' is used for delete.
2 |
3 | ## Values
4 |
5 | | Value | Description |
6 | | ----- | ----------- |
7 | | GET | |
8 | | POST | |
9 | | PATCH | |
10 | | PUT | |
11 | | HEAD | |
12 | | DEL | |
13 |
--------------------------------------------------------------------------------
/docs/InvokeMetadataDrivenTriggerFramework.md:
--------------------------------------------------------------------------------
1 | ## Methods
2 |
3 | ### `invokeMetadataTriggerFramework(inputParams)`
4 |
5 | `INVOCABLEMETHOD`
6 |
7 | Invokes the Metadata Trigger Framework
8 |
9 | #### Signature
10 |
11 | ```apex
12 | public static void invokeMetadataTriggerFramework(List inputParams)
13 | ```
14 |
15 | #### Parameters
16 |
17 | | Name | Type | Description |
18 | | ----------- | ------------------ | ----------------------------------------------------------------------------- |
19 | | inputParams | List<Inputs> | List<Inputs> - List of inputs to pass to the Metadata Trigger Framework |
20 |
21 | #### Return Type
22 |
23 | **void**
24 |
25 | ## Classes
26 |
27 | ### Inputs Class
28 |
29 | An internal class representing the inputs to the Metadata Trigger Framework
30 |
31 | #### Fields
32 |
33 | ##### `context`
34 |
35 | `INVOCABLEVARIABLE`
36 |
37 | ###### Signature
38 |
39 | ```apex
40 | public context
41 | ```
42 |
43 | ###### Type
44 |
45 | TriggerOperation
46 |
47 | ---
48 |
49 | ##### `triggerNew`
50 |
51 | `OTHER`
52 |
53 | ###### Signature
54 |
55 | ```apex
56 | public triggerNew
57 | ```
58 |
59 | ###### Type
60 |
61 | List<SObject>
62 |
63 | ---
64 |
65 | ##### `triggerOld`
66 |
67 | `OTHER`
68 |
69 | ###### Signature
70 |
71 | ```apex
72 | public triggerOld
73 | ```
74 |
75 | ###### Type
76 |
77 | List<SObject>
78 |
--------------------------------------------------------------------------------
/docs/LogException.md:
--------------------------------------------------------------------------------
1 | I create a custom exception for every feature of ApexKit. While
2 | this exception isn't yet used, it's here as a nod to consistency.
3 |
4 | **Inheritance**
5 |
6 | Exception
7 |
--------------------------------------------------------------------------------
/docs/LogMessage.md:
--------------------------------------------------------------------------------
1 | like Quiddity and RequestID
2 |
3 | **See** [Log](Log.md)
4 |
5 | **See** [LogException](LogException.md)
6 |
7 | **See** [LogTriggerHandler](LogTriggerHandler.md)
8 |
9 | ## Fields
10 |
11 | ### `EXCEPTION_STRING_FORMAT`
12 |
13 | #### Signature
14 |
15 | ```apex
16 | private static final EXCEPTION_STRING_FORMAT
17 | ```
18 |
19 | #### Type
20 |
21 | String
22 |
23 | ## Properties
24 |
25 | ### `requestId`
26 |
27 | public read only property for the request ID. Privately set.
28 |
29 | #### Signature
30 |
31 | ```apex
32 | public requestId
33 | ```
34 |
35 | #### Type
36 |
37 | String
38 |
39 | ---
40 |
41 | ### `quiddity`
42 |
43 | Public read only property for quiddity. Privately set.
44 |
45 | #### Signature
46 |
47 | ```apex
48 | public quiddity
49 | ```
50 |
51 | #### Type
52 |
53 | Quiddity
54 |
55 | ---
56 |
57 | ### `message`
58 |
59 | Public message property.
60 |
61 | #### Signature
62 |
63 | ```apex
64 | public message
65 | ```
66 |
67 | #### Type
68 |
69 | String
70 |
71 | ---
72 |
73 | ### `severity`
74 |
75 | Public severity property.
76 |
77 | #### Signature
78 |
79 | ```apex
80 | public severity
81 | ```
82 |
83 | #### Type
84 |
85 | LoggingLevel
86 |
87 | ## Constructors
88 |
89 | ### `LogMessage(severity, message)`
90 |
91 | Constructor accepting a message to log.
92 | Severity is auto set to info
93 |
94 | #### Signature
95 |
96 | ```apex
97 | public LogMessage(LoggingLevel severity, String message)
98 | ```
99 |
100 | #### Parameters
101 |
102 | | Name | Type | Description |
103 | | -------- | ------------ | ---------------------------------------- |
104 | | severity | LoggingLevel | LoggingLevel the severity of the message |
105 | | message | String | String the string to log |
106 |
107 | ---
108 |
109 | ### `LogMessage(message)`
110 |
111 | Constructor accepting a message to log.
112 | Severity is auto set to info
113 |
114 | #### Signature
115 |
116 | ```apex
117 | public LogMessage(String message)
118 | ```
119 |
120 | #### Parameters
121 |
122 | | Name | Type | Description |
123 | | ------- | ------ | ------------------------ |
124 | | message | String | String the string to log |
125 |
126 | ---
127 |
128 | ### `LogMessage(ex)`
129 |
130 | Constructor accepting an exception object.
131 |
132 | #### Signature
133 |
134 | ```apex
135 | public LogMessage(Exception ex)
136 | ```
137 |
138 | #### Parameters
139 |
140 | | Name | Type | Description |
141 | | ---- | --------- | -------------------- |
142 | | ex | Exception | any exception object |
143 |
144 | ## Methods
145 |
146 | ### `toEvent()`
147 |
148 | converts this object to an event for publishing
149 |
150 | #### Signature
151 |
152 | ```apex
153 | public Log__e toEvent()
154 | ```
155 |
156 | #### Return Type
157 |
158 | **Log\_\_e**
159 |
160 | ,[object Object]
161 |
--------------------------------------------------------------------------------
/docs/LogTests.md:
--------------------------------------------------------------------------------
1 | ## Methods
2 |
3 | ### `testDirectPublishMethodsPositive()`
4 |
5 | `ISTEST`
6 |
7 | #### Signature
8 |
9 | ```apex
10 | private static void testDirectPublishMethodsPositive()
11 | ```
12 |
13 | #### Return Type
14 |
15 | **void**
16 |
17 | ---
18 |
19 | ### `testLogMultipleItemPositive()`
20 |
21 | `ISTEST`
22 |
23 | #### Signature
24 |
25 | ```apex
26 | private static void testLogMultipleItemPositive()
27 | ```
28 |
29 | #### Return Type
30 |
31 | **void**
32 |
--------------------------------------------------------------------------------
/docs/MetadataTriggerFrameworkException.md:
--------------------------------------------------------------------------------
1 | **Inheritance**
2 |
3 | Exception
4 |
--------------------------------------------------------------------------------
/docs/MetadataTriggerFrameworkTests.md:
--------------------------------------------------------------------------------
1 | `SUPPRESSWARNINGS`
2 |
3 | ## Methods
4 |
5 | ### `testMetadataTriggerFrameworkNoOppWithoutRecordsPositive()`
6 |
7 | `ISTEST`
8 |
9 | #### Signature
10 |
11 | ```apex
12 | private static void testMetadataTriggerFrameworkNoOppWithoutRecordsPositive()
13 | ```
14 |
15 | #### Return Type
16 |
17 | **void**
18 |
19 | ---
20 |
21 | ### `testExecutesBeforeInsertPositive()`
22 |
23 | `ISTEST`
24 |
25 | #### Signature
26 |
27 | ```apex
28 | private static void testExecutesBeforeInsertPositive()
29 | ```
30 |
31 | #### Return Type
32 |
33 | **void**
34 |
35 | ---
36 |
37 | ### `testExecutesBeforeUpdatePositive()`
38 |
39 | `ISTEST`
40 |
41 | #### Signature
42 |
43 | ```apex
44 | private static void testExecutesBeforeUpdatePositive()
45 | ```
46 |
47 | #### Return Type
48 |
49 | **void**
50 |
51 | ---
52 |
53 | ### `testExecutesBeforeDeletePositive()`
54 |
55 | `ISTEST`
56 |
57 | #### Signature
58 |
59 | ```apex
60 | private static void testExecutesBeforeDeletePositive()
61 | ```
62 |
63 | #### Return Type
64 |
65 | **void**
66 |
67 | ---
68 |
69 | ### `testExecutesAfterInsertPositive()`
70 |
71 | `ISTEST`
72 |
73 | #### Signature
74 |
75 | ```apex
76 | private static void testExecutesAfterInsertPositive()
77 | ```
78 |
79 | #### Return Type
80 |
81 | **void**
82 |
83 | ---
84 |
85 | ### `testExecutesAfterUpdatePositive()`
86 |
87 | `ISTEST`
88 |
89 | #### Signature
90 |
91 | ```apex
92 | private static void testExecutesAfterUpdatePositive()
93 | ```
94 |
95 | #### Return Type
96 |
97 | **void**
98 |
99 | ---
100 |
101 | ### `testExecutesAfterDeletePositive()`
102 |
103 | `ISTEST`
104 |
105 | #### Signature
106 |
107 | ```apex
108 | private static void testExecutesAfterDeletePositive()
109 | ```
110 |
111 | #### Return Type
112 |
113 | **void**
114 |
115 | ---
116 |
117 | ### `testExecutesAfterUndeletePositive()`
118 |
119 | `ISTEST`
120 |
121 | #### Signature
122 |
123 | ```apex
124 | private static void testExecutesAfterUndeletePositive()
125 | ```
126 |
127 | #### Return Type
128 |
129 | **void**
130 |
131 | ---
132 |
133 | ### `exerciseTriggerHandlerPositive(context)`
134 |
135 | #### Signature
136 |
137 | ```apex
138 | private static void exerciseTriggerHandlerPositive(String context)
139 | ```
140 |
141 | #### Parameters
142 |
143 | | Name | Type | Description |
144 | | ------- | ------ | ----------- |
145 | | context | String | |
146 |
147 | #### Return Type
148 |
149 | **void**
150 |
--------------------------------------------------------------------------------
/docs/MetadataTriggerQueryService.md:
--------------------------------------------------------------------------------
1 | MetadataTriggerHandlerClass class. It is not intended to be used directly by developers.
2 |
3 | ## Fields
4 |
5 | ### `objType`
6 |
7 | Initialize objectTypeName as an empty string to avoid null errors
8 |
9 | #### Signature
10 |
11 | ```apex
12 | private objType
13 | ```
14 |
15 | #### Type
16 |
17 | String
18 |
19 | ## Constructors
20 |
21 | ### `MetadataTriggerQueryService(objectTypeName)`
22 |
23 | Constructor for trigger query service
24 |
25 | #### Signature
26 |
27 | ```apex
28 | public MetadataTriggerQueryService(String objectTypeName)
29 | ```
30 |
31 | #### Parameters
32 |
33 | | Name | Type | Description |
34 | | -------------- | ------ | --------------------------- |
35 | | objectTypeName | String | String The object Type name |
36 |
37 | ## Methods
38 |
39 | ### `getMetadataTriggers()`
40 |
41 | `SUPPRESSWARNINGS`
42 |
43 | This query finds an ordered list trigger handler classes
44 | to execute. It ignores any classes that are marked as disabled.
45 |
46 | <br>Note: It will exclude any triggerHandler metadata records for which
47 | the user's email address is found in a related `disabled_for__mdt`
48 | record.
49 |
50 | <br>Admins and Developers can selectively disable trigger handlers
51 | for all or selected individuals _without_ deploying.
52 |
53 | #### Signature
54 |
55 | ```apex
56 | public List getMetadataTriggers()
57 | ```
58 |
59 | #### Return Type
60 |
61 | **List<Metadata_Driven_Trigger\_\_mdt>**
62 |
63 | ,[object Object]
64 |
65 | ---
66 |
67 | ### `getSObjectType(triggerNew, triggerOld)`
68 |
69 | This determines the active sObject type by describing the first
70 | record in the trigger New / Old list
71 |
72 | #### Signature
73 |
74 | ```apex
75 | public static String getSObjectType(List triggerNew, List triggerOld)
76 | ```
77 |
78 | #### Parameters
79 |
80 | | Name | Type | Description |
81 | | ---------- | ------------------- | ---------------------------------------- |
82 | | triggerNew | List<SObject> | List<sObject> The trigger.new list |
83 | | triggerOld | List<SObject> | List<sObject> The trigger.old list |
84 |
85 | #### Return Type
86 |
87 | **String**
88 |
89 | ,[object Object], the ObjectType name
90 |
91 | #### Throws
92 |
93 | [MetadataTriggerFrameworkException](MetadataTriggerFrameworkException.md): when both triggerNew and triggerOld are null
94 |
--------------------------------------------------------------------------------
/docs/MetadataTriggerQueryServiceTests.md:
--------------------------------------------------------------------------------
1 | ## Methods
2 |
3 | ### `testGetMetadataTriggers()`
4 |
5 | `ISTEST`
6 |
7 | #### Signature
8 |
9 | ```apex
10 | private static void testGetMetadataTriggers()
11 | ```
12 |
13 | #### Return Type
14 |
15 | **void**
16 |
17 | ---
18 |
19 | ### `testGetSObjectTypeNegative()`
20 |
21 | `ISTEST`
22 |
23 | #### Signature
24 |
25 | ```apex
26 | private static void testGetSObjectTypeNegative()
27 | ```
28 |
29 | #### Return Type
30 |
31 | **void**
32 |
33 | ---
34 |
35 | ### `testGetSObjectTypePositiveFromTriggerNew()`
36 |
37 | `ISTEST`
38 |
39 | #### Signature
40 |
41 | ```apex
42 | private static void testGetSObjectTypePositiveFromTriggerNew()
43 | ```
44 |
45 | #### Return Type
46 |
47 | **void**
48 |
49 | ---
50 |
51 | ### `testGetSObjectTypePositiveFromTriggerOld()`
52 |
53 | `ISTEST`
54 |
55 | #### Signature
56 |
57 | ```apex
58 | private static void testGetSObjectTypePositiveFromTriggerOld()
59 | ```
60 |
61 | #### Return Type
62 |
63 | **void**
64 |
--------------------------------------------------------------------------------
/docs/OrgShapeTests.md:
--------------------------------------------------------------------------------
1 | ## Fields
2 |
3 | ### `orgShape`
4 |
5 | #### Signature
6 |
7 | ```apex
8 | private static orgShape
9 | ```
10 |
11 | #### Type
12 |
13 | [OrgShape](OrgShape.md)
14 |
15 | ---
16 |
17 | ### `orgCheck`
18 |
19 | #### Signature
20 |
21 | ```apex
22 | private static orgCheck
23 | ```
24 |
25 | #### Type
26 |
27 | Organization
28 |
29 | ## Methods
30 |
31 | ### `testOrgShapeProperties()`
32 |
33 | `ISTEST`
34 |
35 | #### Signature
36 |
37 | ```apex
38 | private static void testOrgShapeProperties()
39 | ```
40 |
41 | #### Return Type
42 |
43 | **void**
44 |
45 | ---
46 |
47 | ### `testAdvancedMultiCurrencyManagement()`
48 |
49 | `ISTEST`
50 |
51 | #### Signature
52 |
53 | ```apex
54 | private static void testAdvancedMultiCurrencyManagement()
55 | ```
56 |
57 | #### Return Type
58 |
59 | **void**
60 |
61 | ---
62 |
63 | ### `testPlatformCachePositive()`
64 |
65 | `ISTEST`
66 |
67 | #### Signature
68 |
69 | ```apex
70 | private static void testPlatformCachePositive()
71 | ```
72 |
73 | #### Return Type
74 |
75 | **void**
76 |
77 | ---
78 |
79 | ### `testGetSafeDefaultCachePartitionMemoized()`
80 |
81 | `ISTEST`
82 |
83 | #### Signature
84 |
85 | ```apex
86 | private static void testGetSafeDefaultCachePartitionMemoized()
87 | ```
88 |
89 | #### Return Type
90 |
91 | **void**
92 |
93 | ---
94 |
95 | ### `testPlatformCacheDisabledWhenSeeAllDataTrue()`
96 |
97 | `ISTEST`
98 | `SUPPRESSWARNINGS`
99 |
100 | #### Signature
101 |
102 | ```apex
103 | private static void testPlatformCacheDisabledWhenSeeAllDataTrue()
104 | ```
105 |
106 | #### Return Type
107 |
108 | **void**
109 |
110 | ---
111 |
112 | ### `testSeeAllDataPositiveWhenEnabled()`
113 |
114 | `ISTEST`
115 | `SUPPRESSWARNINGS`
116 |
117 | #### Signature
118 |
119 | ```apex
120 | private static void testSeeAllDataPositiveWhenEnabled()
121 | ```
122 |
123 | #### Return Type
124 |
125 | **void**
126 |
127 | ---
128 |
129 | ### `testSeeAllDataFalseWhenDisabled()`
130 |
131 | `ISTEST`
132 |
133 | #### Signature
134 |
135 | ```apex
136 | private static void testSeeAllDataFalseWhenDisabled()
137 | ```
138 |
139 | #### Return Type
140 |
141 | **void**
142 |
143 | ---
144 |
145 | ### `testCacheIsUsedPositive()`
146 |
147 | `ISTEST`
148 |
149 | #### Signature
150 |
151 | ```apex
152 | private static void testCacheIsUsedPositive()
153 | ```
154 |
155 | #### Return Type
156 |
157 | **void**
158 |
--------------------------------------------------------------------------------
/docs/Ouroboros.md:
--------------------------------------------------------------------------------
1 | Ouroboros is the ancient mythical symbol of a dragon or serpent eating its own tail. It's often
2 | understood as a reference to the circle of life, or the never ending nature life and death. In this case, it's a
3 | reference to a Queueable object that enqueues itself when it's done executing via a OuroborosFinalizer. This is a
4 | useful pattern when you need to process high volumes of data, but don't care if it's processed in real time.
5 |
6 | **Implements**
7 |
8 | Queueable,
9 | Database.AllowsCallouts
10 |
11 | ## Fields
12 |
13 | ### `passthrough`
14 |
15 | Object that will be passed through to the next iteration of the Ouroboros.
16 |
17 | #### Signature
18 |
19 | ```apex
20 | public passthrough
21 | ```
22 |
23 | #### Type
24 |
25 | Object
26 |
27 | ## Methods
28 |
29 | ### `hasExitCriteriaBeenMet()`
30 |
31 | This is the method that implementing classes must override. It's the method that will be called
32 | to determine if whether or not to re-enqueue the Ouroboros Queueable.
33 |
34 | #### Signature
35 |
36 | ```apex
37 | public abstract Boolean hasExitCriteriaBeenMet()
38 | ```
39 |
40 | #### Return Type
41 |
42 | **Boolean**
43 |
44 | Boolean True if the exit criteria has been met.
45 |
46 | ---
47 |
48 | ### `execute()`
49 |
50 | This is the method that will be called as the executable portion of the Queueable. It's the method
51 | developers will populate with their business logic to execute on each iteration of the Ouroboros.
52 |
53 | #### Signature
54 |
55 | ```apex
56 | public abstract void execute()
57 | ```
58 |
59 | #### Return Type
60 |
61 | **void**
62 |
63 | ---
64 |
65 | ### `className()`
66 |
67 | This method is to be deprecated shortly, in favor of the lookup system built in QueueableProcess.
68 |
69 | #### Signature
70 |
71 | ```apex
72 | public String className()
73 | ```
74 |
75 | #### Return Type
76 |
77 | **String**
78 |
79 | String class name. Currently only used in the finalizer for logging purposes.
80 |
81 | ---
82 |
83 | ### `execute(context)`
84 |
85 | This is the method that will be executed by the Queueable system. It accepts the context object
86 | and calls the implementing class' `execute` method. It then creates a new instance of the OuroborosFinalizer
87 | class and attaches it to the system context.
88 |
89 | #### Signature
90 |
91 | ```apex
92 | public virtual void execute(QueueableContext context)
93 | ```
94 |
95 | #### Parameters
96 |
97 | | Name | Type | Description |
98 | | ------- | ---------------- | ------------------------------------------------------------------------------------ |
99 | | context | QueueableContext | QueueableContext The context object dependency injection in by the Queueable system. |
100 |
101 | #### Return Type
102 |
103 | **void**
104 |
--------------------------------------------------------------------------------
/docs/OuroborosFinalizer.md:
--------------------------------------------------------------------------------
1 | continue to loop, and if so, enqueueing the next iteration. It also ensure passthrough objects are passed to the
2 | next iteration.
3 |
4 | **Implements**
5 |
6 | Finalizer
7 |
8 | ## Fields
9 |
10 | ### `ouroboros`
11 |
12 | An Ouroboros instance is required to be passed to the constructor. This is the instance that will
13 | be enqueued, if necessary.
14 |
15 | #### Signature
16 |
17 | ```apex
18 | private final ouroboros
19 | ```
20 |
21 | #### Type
22 |
23 | [Ouroboros](Ouroboros.md)
24 |
25 | ---
26 |
27 | ### `logger`
28 |
29 | An instance of the Log class used to create transaction-rollback safe log entries
30 |
31 | #### Signature
32 |
33 | ```apex
34 | private final logger
35 | ```
36 |
37 | #### Type
38 |
39 | [Log](Log.md)
40 |
41 | ## Constructors
42 |
43 | ### `OuroborosFinalizer(ouroboros)`
44 |
45 | Constructor. Requires an instance of an Ouroboros implementing class to be passed in.
46 |
47 | #### Signature
48 |
49 | ```apex
50 | public OuroborosFinalizer(Ouroboros ouroboros)
51 | ```
52 |
53 | #### Parameters
54 |
55 | | Name | Type | Description |
56 | | --------- | ------------------------- | ----------------------------------------------- |
57 | | ouroboros | [Ouroboros](Ouroboros.md) | Ouroboros instance to be enqueued, if necessary |
58 |
59 | ## Methods
60 |
61 | ### `safeToEnqueueAccordingToLimits()`
62 |
63 | Method is responsible for determining if it's safe to enqueue the next iteration of the Ouroboros
64 | at least in accordance with the Queueable Apex limits. If it's not safe, the circuit breaker is tripped and the
65 | next iteration will not be enqueued.
66 |
67 | #### Signature
68 |
69 | ```apex
70 | private static Boolean safeToEnqueueAccordingToLimits()
71 | ```
72 |
73 | #### Return Type
74 |
75 | **Boolean**
76 |
77 | Boolean True if enqueuing the next iteration will not violate any Apex governor limits
78 |
79 | ---
80 |
81 | ### `execute(context)`
82 |
83 | This is the method that is called by the Apex runtime when the Ouroboros instance has completed.
84 | It's responsible for determining if it's safe to enqueue the next iteration of the Ouroboros, and if so, if it's
85 | also necessary to enqueue the next iteration. If it is, it will enqueue the next iteration.
86 |
87 | #### Signature
88 |
89 | ```apex
90 | public void execute(FinalizerContext context)
91 | ```
92 |
93 | #### Parameters
94 |
95 | | Name | Type | Description |
96 | | ------- | ---------------- | --------------------------------------------------------------------- |
97 | | context | FinalizerContext | FinalizerContext This is dependency injected by the Queueable system. |
98 |
99 | #### Return Type
100 |
101 | **void**
102 |
--------------------------------------------------------------------------------
/docs/OuroborosTests.md:
--------------------------------------------------------------------------------
1 | ## Fields
2 |
3 | ### `codeDidTryToReEnqueue`
4 |
5 | a test only circuit breaker to ensure that the OuroborosFinalizer is called and that
6 | in turn it calls the Ouroboros code again.
7 |
8 | #### Signature
9 |
10 | ```apex
11 | private codeDidTryToReEnqueue
12 | ```
13 |
14 | #### Type
15 |
16 | Boolean
17 |
18 | ## Methods
19 |
20 | ### `testOuroborosFunctionalNegative()`
21 |
22 | `ISTEST`
23 |
24 | #### Signature
25 |
26 | ```apex
27 | private static void testOuroborosFunctionalNegative()
28 | ```
29 |
30 | #### Return Type
31 |
32 | **void**
33 |
34 | ---
35 |
36 | ### `testClassName()`
37 |
38 | `ISTEST`
39 |
40 | #### Signature
41 |
42 | ```apex
43 | private static void testClassName()
44 | ```
45 |
46 | #### Return Type
47 |
48 | **void**
49 |
50 | ## Classes
51 |
52 | ### ExampleOuroborosImplementation Class
53 |
54 | This is an example implementation of Ouroboros that will be used to test the functionality
55 |
56 | #### Fields
57 |
58 | ##### `executionCount`
59 |
60 | ###### Signature
61 |
62 | ```apex
63 | private executionCount
64 | ```
65 |
66 | ###### Type
67 |
68 | Integer
69 |
70 | ---
71 |
72 | ##### `completedExecutions`
73 |
74 | ###### Signature
75 |
76 | ```apex
77 | private completedExecutions
78 | ```
79 |
80 | ###### Type
81 |
82 | Integer
83 |
84 | #### Methods
85 |
86 | ##### `hasExitCriteriaBeenMet()`
87 |
88 | Required method that returns true if the exit criteria has been met.
89 |
90 | ###### Signature
91 |
92 | ```apex
93 | public override Boolean hasExitCriteriaBeenMet()
94 | ```
95 |
96 | ###### Return Type
97 |
98 | **Boolean**
99 |
100 | Boolean - true if the exit criteria has been met, false otherwise.
101 |
102 | ---
103 |
104 | ##### `execute()`
105 |
106 | This is the method that will be called when the Ouroboros executes the job.
107 |
108 | ###### Signature
109 |
110 | ```apex
111 | public override void execute()
112 | ```
113 |
114 | ###### Return Type
115 |
116 | **void**
117 |
--------------------------------------------------------------------------------
/docs/QueueableProcessDataProvider.md:
--------------------------------------------------------------------------------
1 | This helps us mock the data access in our unit tests.
2 |
3 | ## Constructors
4 |
5 | ### `QueueableProcessDataProvider()`
6 |
7 | `SUPPRESSWARNINGS`
8 |
9 | default constructor. Necessary for dynamic instantiation.
10 |
11 | #### Signature
12 |
13 | ```apex
14 | public QueueableProcessDataProvider()
15 | ```
16 |
17 | ## Methods
18 |
19 | ### `getClassName(jobId)`
20 |
21 | This is the main method that will be called by the QueueableProcessManager. By extracting this
22 | method into a separate class, we can easily mock it in our unit tests.
23 |
24 | #### Signature
25 |
26 | ```apex
27 | public String getClassName(Id jobId)
28 | ```
29 |
30 | #### Parameters
31 |
32 | | Name | Type | Description |
33 | | ----- | ---- | ------------------------------------------------------------- |
34 | | jobId | Id | Id The Id of the AsyncApexJob record that is being processed. |
35 |
36 | #### Return Type
37 |
38 | **String**
39 |
40 | String The name of the Apex class that just failed.
41 |
--------------------------------------------------------------------------------
/docs/QueueableProcessMockDataProvider.md:
--------------------------------------------------------------------------------
1 | `SUPPRESSWARNINGS`
2 |
3 | **Implements**
4 |
5 | System.StubProvider
6 |
7 | ## Fields
8 |
9 | ### `returnString`
10 |
11 | #### Signature
12 |
13 | ```apex
14 | private final returnString
15 | ```
16 |
17 | #### Type
18 |
19 | String
20 |
21 | ## Constructors
22 |
23 | ### `QueueableProcessMockDataProvider(returnString)`
24 |
25 | #### Signature
26 |
27 | ```apex
28 | public QueueableProcessMockDataProvider(String returnString)
29 | ```
30 |
31 | #### Parameters
32 |
33 | | Name | Type | Description |
34 | | ------------ | ------ | ----------- |
35 | | returnString | String | |
36 |
37 | ## Methods
38 |
39 | ### `handleMethodCall(stubbedObject, stubbedMethodName, returnType, paramTypes, paramNames, args)`
40 |
41 | `SUPPRESSWARNINGS`
42 |
43 | #### Signature
44 |
45 | ```apex
46 | public Object handleMethodCall(Object stubbedObject, String stubbedMethodName, Type returnType, List paramTypes, List paramNames, List