diff --git a/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettings.js b/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettings.js
index c95db9556..d0eae1c9b 100644
--- a/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettings.js
+++ b/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettings.js
@@ -202,10 +202,6 @@ export default class LoggerSettings extends LightningElement {
return this._loadField(this._loggerSettingsSchema.fields.CreatedDate.localApiName);
}
- get isEnabledField() {
- return this._loadField(this._loggerSettingsSchema.fields.IsEnabled__c.localApiName);
- }
-
get lastModifiedByIdField() {
return this._loadField(this._loggerSettingsSchema.fields.LastModifiedById.localApiName, 'lastModifiedByUsername');
}
@@ -214,10 +210,6 @@ export default class LoggerSettings extends LightningElement {
return this._loadField(this._loggerSettingsSchema.fields.LastModifiedDate.localApiName);
}
- get loggingLevelField() {
- return this._loadField(this._loggerSettingsSchema.fields.LoggingLevel__c.localApiName);
- }
-
get setupOwnerNameField() {
return this._loadField('setupOwnerName', 'setupOwnerName', 'Setup Owner');
}
@@ -315,10 +307,11 @@ export default class LoggerSettings extends LightningElement {
// For all other fields, use object API info to dynamically get field details
// TODO - make this array configurable by storing in LoggerParameter__mdt
const tableColumnNames = [
+ 'StartTime__c',
+ 'EndTime__c',
'IsEnabled__c',
'LoggingLevel__c',
'IsSavingEnabled__c',
- 'DefaultSaveMethod__c',
'DefaultScenario__c',
'DefaultLogOwner__c',
'DefaultNumberOfDaysToRetainLogs__c'
@@ -330,6 +323,17 @@ export default class LoggerSettings extends LightningElement {
label: field.label,
type: field.type.toLowerCase()
};
+ if (column.type === 'datetime') {
+ column.type = 'date';
+ // FIXME and make dynamic based on user prefences for datetimes
+ column.typeAttributes = {
+ month: '2-digit',
+ day: '2-digit',
+ year: 'numeric',
+ hour: '2-digit',
+ minute: '2-digit'
+ };
+ }
if (column.type === 'string') {
column.type = 'text';
}
@@ -388,7 +392,8 @@ export default class LoggerSettings extends LightningElement {
}
_setShowSetupOwnerLookup() {
- this.showSetupOwnerLookup = this.isExistingRecord === false && this._currentRecord?.setupOwnerType !== 'Organization';
+ this.showSetupOwnerLookup =
+ this.isExistingRecord === false && this._currentRecord?.setupOwnerType && this._currentRecord?.setupOwnerType !== 'Organization';
}
_addFieldNamespace(record) {
diff --git a/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettingsPageLayout.js b/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettingsPageLayout.js
index 6bb265999..34a305a26 100644
--- a/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettingsPageLayout.js
+++ b/nebula-logger/core/main/log-management/lwc/loggerSettings/loggerSettingsPageLayout.js
@@ -6,6 +6,22 @@
// All field API names below use the local name - that is, the name without a namespace (even if the code is running in a namespaced package)
const PAGE_LAYOUT_CONFIG = {
sections: [
+ {
+ key: 'generalSettings',
+ label: 'General Settings',
+ showInReadOnlyMode: true,
+ showInEditMode: true,
+ columns: [
+ {
+ fieldApiNames: ['SetupOwnerId'],
+ size: 6
+ },
+ {
+ fieldApiNames: ['StartTime__c', 'EndTime__c'],
+ size: 6
+ }
+ ]
+ },
{
key: 'loggerEngineSettings',
label: 'Logger Engine Settings',
@@ -13,7 +29,7 @@ const PAGE_LAYOUT_CONFIG = {
showInEditMode: true,
columns: [
{
- fieldApiNames: ['IsSavingEnabled__c', 'DefaultSaveMethod__c', 'DefaultScenario__c'],
+ fieldApiNames: ['IsEnabled__c', 'LoggingLevel__c', 'IsSavingEnabled__c', 'DefaultSaveMethod__c', 'DefaultScenario__c'],
size: 6
},
{
@@ -100,17 +116,27 @@ const LoggerSettingsPageLayout = class {
}
_setFieldTypeDetails(field, picklistOptions) {
+ field.useComboboxInput = false;
+ field.useSetupOwnerInput = false;
+ field.useStandardInput = false;
+
+ if (field.localApiName === 'SetupOwnerId') {
+ field.useSetupOwnerInput = true;
+
+ return;
+ }
+
// Picklists are handled differently, since these aren't actually picklist fields
// (Custom settings objects don't have picklist fields - custom Apex is used for generating picklist options)
if (picklistOptions[field.localApiName]) {
field.picklistOptions = picklistOptions[field.localApiName];
field.type = 'picklist';
- field.useCombobox = true;
+ field.useComboboxInput = true;
return;
}
- field.useCombobox = false;
+ field.useStandardInput = true;
switch (field.type?.toLowerCase()) {
case 'boolean':
field.type = 'checkbox';
@@ -118,9 +144,11 @@ const LoggerSettingsPageLayout = class {
case 'double':
field.type = 'number';
break;
- default:
+ case 'string':
field.type = 'text';
break;
+ default:
+ break;
}
}
};
diff --git a/nebula-logger/core/main/logger-engine/classes/Logger.cls b/nebula-logger/core/main/logger-engine/classes/Logger.cls
index 32bf16b89..cd1f00c3f 100644
--- a/nebula-logger/core/main/logger-engine/classes/Logger.cls
+++ b/nebula-logger/core/main/logger-engine/classes/Logger.cls
@@ -15,7 +15,7 @@
global with sharing class Logger {
// There's no reliable way to get the version number dynamically in Apex
@TestVisible
- private static final String CURRENT_VERSION_NUMBER = 'v4.10.2';
+ private static final String CURRENT_VERSION_NUMBER = 'v4.10.3';
private static final System.LoggingLevel FALLBACK_LOGGING_LEVEL = System.LoggingLevel.DEBUG;
private static final Set IGNORED_APEX_CLASSES = initializeIgnoredApexClasses();
private static final List LOG_ENTRIES_BUFFER = new List();
@@ -290,16 +290,32 @@ global with sharing class Logger {
// TODO cache the generated instances of LoggerSettings__c in LoggerCache.getTransactionCache().put()
// (key would be 'Settings' + user ID)
LoggerSettings__c loggingUserSettings;
+ // First, check for User-level settings
if (loggingUser.Id != null && LoggerSettings__c.getValues(loggingUser.Id) != null) {
- // Check for User-level settings
- loggingUserSettings = LoggerSettings__c.getValues(loggingUser.Id);
- } else if (loggingUserSettings == null && loggingUser.ProfileId != null && LoggerSettings__c.getValues(loggingUser.ProfileId) != null) {
- // Next, check for Profile-level settings
- loggingUserSettings = LoggerSettings__c.getValues(loggingUser.ProfileId);
- } else if (loggingUser.Id != null && LoggerSettings__c.getOrgDefaults().Id != null) {
- // Next, use the org defaults (if configured)
- loggingUserSettings = LoggerSettings__c.getOrgDefaults();
- } else {
+ LoggerSettings__c userSettings = LoggerSettings__c.getValues(loggingUser.Id);
+ if (hasValidStartAndEndTimes(userSettings) == true) {
+ loggingUserSettings = userSettings;
+ }
+ }
+
+ // Next, check for Profile-level settings
+ if (loggingUserSettings == null && loggingUser.ProfileId != null && LoggerSettings__c.getValues(loggingUser.ProfileId) != null) {
+ LoggerSettings__c profileSettings = LoggerSettings__c.getValues(loggingUser.ProfileId);
+ if (hasValidStartAndEndTimes(profileSettings) == true) {
+ loggingUserSettings = profileSettings;
+ }
+ }
+
+ // Next, use the org defaults (if configured)
+ if (loggingUserSettings == null && loggingUser.Id != null && LoggerSettings__c.getOrgDefaults().Id != null) {
+ LoggerSettings__c orgDefaults = LoggerSettings__c.getOrgDefaults();
+ if (hasValidStartAndEndTimes(orgDefaults) == true) {
+ loggingUserSettings = orgDefaults;
+ }
+ }
+
+ // Finally, as a last resort, create an instance using default field values
+ if (loggingUserSettings == null) {
loggingUserSettings = createSettings();
}
@@ -3143,6 +3159,13 @@ global with sharing class Logger {
return new Set{ Logger.class.getName(), LogEntryEventBuilder.class.getName(), LogMessage.class.getName() };
}
+ private static Boolean hasValidStartAndEndTimes(LoggerSettings__c settings) {
+ Datetime nowish = System.now();
+ Boolean isStartTimeValid = settings.StartTime__c == null || settings.StartTime__c <= nowish;
+ Boolean isEndTimeValid = settings.EndTime__c == null || settings.EndTime__c >= nowish;
+ return isStartTimeValid && isEndTimeValid;
+ }
+
private static String getOrganizationApiVersion() {
// Small hack to determine the org's current API version (since Apex doesn't natively provide it)
// Serializing any SObject w/ an ID will include the API version
diff --git a/nebula-logger/core/main/logger-engine/lwc/logger/logEntryBuilder.js b/nebula-logger/core/main/logger-engine/lwc/logger/logEntryBuilder.js
index 321cb876e..7469aa345 100644
--- a/nebula-logger/core/main/logger-engine/lwc/logger/logEntryBuilder.js
+++ b/nebula-logger/core/main/logger-engine/lwc/logger/logEntryBuilder.js
@@ -94,6 +94,7 @@ const LogEntryBuilder = class {
return this;
}
+ /* eslint-disable no-console */
_logToConsole() {
this.#settingsPromise().then(setting => {
this.isConsoleLoggingEnabled = setting.isConsoleLoggingEnabled;
diff --git a/nebula-logger/core/main/logger-engine/lwc/logger/logger.js b/nebula-logger/core/main/logger-engine/lwc/logger/logger.js
index 1e40aca28..b131fb412 100644
--- a/nebula-logger/core/main/logger-engine/lwc/logger/logger.js
+++ b/nebula-logger/core/main/logger-engine/lwc/logger/logger.js
@@ -6,7 +6,7 @@
import { LightningElement, api } from 'lwc';
import { createLoggerService } from './loggerService';
-const CURRENT_VERSION_NUMBER = 'v4.10.2';
+const CURRENT_VERSION_NUMBER = 'v4.10.3';
export default class Logger extends LightningElement {
#loggerService = createLoggerService();
@@ -137,6 +137,7 @@ export default class Logger extends LightningElement {
const createLogger = function () {
const consoleMessagePrefix = '%c Nebula Logger ';
const consoleFormatting = 'background: #0c598d; color: #fff;';
+ /* eslint-disable no-console */
console.info(consoleMessagePrefix, consoleFormatting, 'Nebula Logger Version Number: ' + CURRENT_VERSION_NUMBER);
return createLoggerService();
};
diff --git a/nebula-logger/core/main/logger-engine/lwc/logger/loggerService.js b/nebula-logger/core/main/logger-engine/lwc/logger/loggerService.js
index 616924664..dcc1da628 100644
--- a/nebula-logger/core/main/logger-engine/lwc/logger/loggerService.js
+++ b/nebula-logger/core/main/logger-engine/lwc/logger/loggerService.js
@@ -7,15 +7,12 @@ import { newLogEntry } from './logEntryBuilder';
import getSettings from '@salesforce/apex/ComponentLogger.getSettings';
import saveComponentLogEntries from '@salesforce/apex/ComponentLogger.saveComponentLogEntries';
+/* eslint-disable @lwc/lwc/no-dupe-class-members */
const LoggerService = class {
static settings = undefined;
#componentLogEntries = [];
#scenario;
-
- /**
- * @description Queue of promises to be logged.
- */
#loggingPromises = [];
/**
diff --git a/nebula-logger/core/tests/logger-engine/classes/Logger_Tests.cls b/nebula-logger/core/tests/logger-engine/classes/Logger_Tests.cls
index 6559c2a37..54a01e252 100644
--- a/nebula-logger/core/tests/logger-engine/classes/Logger_Tests.cls
+++ b/nebula-logger/core/tests/logger-engine/classes/Logger_Tests.cls
@@ -85,12 +85,50 @@ private class Logger_Tests {
System.Assert.isNull(returnedSettings.Id);
}
+ @IsTest
+ static void it_should_not_use_org_default_settings_when_start_time_is_in_the_future() {
+ LoggerSettings__c expectedSettings = Logger.createSettings();
+ expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
+ LoggerSettings__c orgDefaults = LoggerSettings__c.getOrgDefaults();
+ orgDefaults.Id = null;
+ orgDefaults.LoggingLevel__c = System.LoggingLevel.WARN.name();
+ orgDefaults.SetupOwnerId = System.UserInfo.getOrganizationId();
+ orgDefaults.StartTime__c = System.now().addDays(1);
+ insert orgDefaults;
+
+ LoggerSettings__c returnedSettings = Logger.getUserSettings();
+
+ List existingSettings = [SELECT Id FROM LoggerSettings__c];
+ System.Assert.areEqual(1, existingSettings.size(), 'LoggerSettings__c org defaults settings should have been saved');
+ System.Assert.areEqual(expectedSettings, returnedSettings);
+ System.Assert.isNull(returnedSettings.Id);
+ }
+
+ @IsTest
+ static void it_should_not_use_org_default_settings_when_end_time_is_in_the_past() {
+ LoggerSettings__c expectedSettings = Logger.createSettings();
+ expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
+ LoggerSettings__c orgDefaults = LoggerSettings__c.getOrgDefaults();
+ orgDefaults.Id = null;
+ orgDefaults.LoggingLevel__c = System.LoggingLevel.WARN.name();
+ orgDefaults.SetupOwnerId = System.UserInfo.getOrganizationId();
+ orgDefaults.EndTime__c = System.now().addDays(-1);
+ insert orgDefaults;
+
+ LoggerSettings__c returnedSettings = Logger.getUserSettings();
+
+ List existingSettings = [SELECT Id FROM LoggerSettings__c];
+ System.Assert.areEqual(1, existingSettings.size(), 'LoggerSettings__c org defaults settings should have been saved');
+ System.Assert.areEqual(expectedSettings, returnedSettings);
+ System.Assert.isNull(returnedSettings.Id);
+ }
+
@IsTest
static void it_should_use_profile_settings_when_configured() {
insert LoggerSettings__c.getOrgDefaults();
LoggerSettings__c expectedSettings = LoggerSettings__c.getOrgDefaults();
expectedSettings.Id = null;
- expectedSettings.LoggingLevel__c = System.LoggingLevel.FINEST.name();
+ expectedSettings.LoggingLevel__c = System.LoggingLevel.WARN.name();
expectedSettings.SetupOwnerId = System.UserInfo.getProfileId();
insert expectedSettings;
expectedSettings = LoggerSettings__c.getValues(System.UserInfo.getProfileId());
@@ -105,6 +143,50 @@ private class Logger_Tests {
System.Assert.isNull(returnedSettings.Id);
}
+ @IsTest
+ static void it_should_not_use_profile_settings_when_start_time_is_in_the_future() {
+ LoggerSettings__c expectedSettings = LoggerSettings__c.getOrgDefaults();
+ insert expectedSettings;
+ expectedSettings = LoggerSettings__c.getOrgDefaults();
+ expectedSettings.Id = null;
+ expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
+ LoggerSettings__c profileSettings = expectedSettings.clone();
+ profileSettings.Id = null;
+ profileSettings.LoggingLevel__c = System.LoggingLevel.WARN.name();
+ profileSettings.SetupOwnerId = System.UserInfo.getProfileId();
+ profileSettings.StartTime__c = System.now().addDays(1);
+ insert profileSettings;
+
+ LoggerSettings__c returnedSettings = Logger.getUserSettings();
+
+ List existingSettings = [SELECT Id FROM LoggerSettings__c];
+ System.Assert.areEqual(2, existingSettings.size(), 'LoggerSettings__c org defaults and profile settings should have been saved');
+ System.Assert.areEqual(expectedSettings, returnedSettings);
+ System.Assert.isNull(returnedSettings.Id);
+ }
+
+ @IsTest
+ static void it_should_not_use_profile_settings_when_end_time_is_in_the_past() {
+ LoggerSettings__c expectedSettings = LoggerSettings__c.getOrgDefaults();
+ insert expectedSettings;
+ expectedSettings = LoggerSettings__c.getOrgDefaults();
+ expectedSettings.Id = null;
+ expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
+ LoggerSettings__c profileSettings = expectedSettings.clone();
+ profileSettings.Id = null;
+ profileSettings.LoggingLevel__c = System.LoggingLevel.WARN.name();
+ profileSettings.SetupOwnerId = System.UserInfo.getProfileId();
+ profileSettings.EndTime__c = System.now().addDays(-1);
+ insert profileSettings;
+
+ LoggerSettings__c returnedSettings = Logger.getUserSettings();
+
+ List existingSettings = [SELECT Id FROM LoggerSettings__c];
+ System.Assert.areEqual(2, existingSettings.size(), 'LoggerSettings__c org defaults and profile settings should have been saved');
+ System.Assert.areEqual(expectedSettings, returnedSettings);
+ System.Assert.isNull(returnedSettings.Id);
+ }
+
@IsTest
static void it_should_use_user_settings_when_configured() {
insert LoggerSettings__c.getOrgDefaults();
@@ -115,7 +197,7 @@ private class Logger_Tests {
insert profileSettings;
LoggerSettings__c expectedSettings = LoggerSettings__c.getOrgDefaults();
expectedSettings.Id = null;
- expectedSettings.LoggingLevel__c = System.LoggingLevel.FINEST.name();
+ expectedSettings.LoggingLevel__c = System.LoggingLevel.WARN.name();
expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
insert expectedSettings;
expectedSettings = LoggerSettings__c.getValues(System.UserInfo.getUserId());
@@ -128,6 +210,52 @@ private class Logger_Tests {
System.Assert.areEqual(expectedSettings.Id, returnedSettings.Id);
}
+ @IsTest
+ static void it_should_not_use_user_settings_when_start_time_is_in_the_future() {
+ LoggerSettings__c expectedSettings = LoggerSettings__c.getOrgDefaults();
+ expectedSettings.SetupOwnerId = System.UserInfo.getProfileId();
+ insert expectedSettings;
+ expectedSettings = LoggerSettings__c.getValues(System.UserInfo.getProfileId());
+ expectedSettings.Id = null;
+ expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
+ LoggerSettings__c userSettings = expectedSettings.clone();
+ userSettings.Id = null;
+ userSettings.LoggingLevel__c = System.LoggingLevel.WARN.name();
+ userSettings.SetupOwnerId = System.UserInfo.getUserId();
+ userSettings.StartTime__c = System.now().addDays(1);
+ insert userSettings;
+
+ LoggerSettings__c returnedSettings = Logger.getUserSettings();
+
+ List existingSettings = [SELECT Id FROM LoggerSettings__c];
+ System.Assert.areEqual(2, existingSettings.size(), 'LoggerSettings__c org defaults and profile settings should have been saved');
+ System.Assert.areEqual(expectedSettings, returnedSettings);
+ System.Assert.isNull(returnedSettings.Id);
+ }
+
+ @IsTest
+ static void it_should_not_use_user_settings_when_end_time_is_in_the_past() {
+ LoggerSettings__c expectedSettings = LoggerSettings__c.getOrgDefaults();
+ expectedSettings.SetupOwnerId = System.UserInfo.getProfileId();
+ insert expectedSettings;
+ expectedSettings = LoggerSettings__c.getValues(System.UserInfo.getProfileId());
+ expectedSettings.Id = null;
+ expectedSettings.SetupOwnerId = System.UserInfo.getUserId();
+ LoggerSettings__c userSettings = expectedSettings.clone();
+ userSettings.Id = null;
+ userSettings.LoggingLevel__c = System.LoggingLevel.WARN.name();
+ userSettings.SetupOwnerId = System.UserInfo.getUserId();
+ userSettings.EndTime__c = System.now().addDays(-1);
+ insert userSettings;
+
+ LoggerSettings__c returnedSettings = Logger.getUserSettings();
+
+ List existingSettings = [SELECT Id FROM LoggerSettings__c];
+ System.Assert.areEqual(2, existingSettings.size(), 'LoggerSettings__c org defaults and profile settings should have been saved');
+ System.Assert.areEqual(expectedSettings, returnedSettings);
+ System.Assert.isNull(returnedSettings.Id);
+ }
+
@IsTest
static void it_should_generate_a_valid_uuid() {
Pattern pattern = Pattern.compile('[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}');
diff --git a/nebula-logger/recipes/classes/LoggerLWCDemoController.cls b/nebula-logger/recipes/classes/LoggerLWCDemoController.cls
index 9cc7c0db0..a963d66aa 100644
--- a/nebula-logger/recipes/classes/LoggerLWCDemoController.cls
+++ b/nebula-logger/recipes/classes/LoggerLWCDemoController.cls
@@ -2,7 +2,6 @@
public with sharing class LoggerLWCDemoController {
@AuraEnabled(cacheable=true)
public static String returnSomeString() {
- System.debug('hello, world!');
return 'SomeString';
}
diff --git a/package.json b/package.json
index 4c84fec10..ca01598cf 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "nebula-logger",
- "version": "4.10.2",
+ "version": "4.10.3",
"description": "The most robust logger for Salesforce. Works with Apex, Lightning Components, Flow, Process Builder & Integrations. Designed for Salesforce admins, developers & architects.",
"author": "Jonathan Gillespie",
"license": "MIT",
diff --git a/scripts/build/create-and-install-package-version.ps1 b/scripts/build/create-and-install-package-version.ps1
index aa94bcf85..c5a27bb52 100644
--- a/scripts/build/create-and-install-package-version.ps1
+++ b/scripts/build/create-and-install-package-version.ps1
@@ -115,11 +115,13 @@ function Update-README-Package-Version-Id {
)
$packageVersionId = "$packageVersionId".Trim()
- # Since there are links for both the unlocked & managed packages, the unlocked package buttons are used to ensure the correct link is updated
+ # Since there are links for both the unlocked & managed packages, the unlocked package buttons & sfdx command are used to ensure the correct package version ID is updated
$sandboxUnlockedPackageReplacement = "btn-install-unlocked-package-sandbox.png)](https://test.salesforce.com/packaging/installPackage.apexp?p0=$packageVersionId"
((Get-Content -path $targetreadme -Raw) -replace "btn-install-unlocked-package-sandbox.png\)\]\(https:\/\/test.salesforce.com\/packaging\/installPackage.apexp\?p0=.{0,18}", $sandboxUnlockedPackageReplacement) | Set-Content -Path $targetreadme -NoNewline
$productionUnlockedPackageReplacement = "btn-install-unlocked-package-production.png)](https://login.salesforce.com/packaging/installPackage.apexp?p0=$packageVersionId"
((Get-Content -path $targetreadme -Raw) -replace "btn-install-unlocked-package-production.png\)\]\(https:\/\/login.salesforce.com\/packaging\/installPackage.apexp\?p0=.{0,18}", $productionUnlockedPackageReplacement) | Set-Content -Path $targetreadme -NoNewline
+ $sfdxUnlockedPackageReplacement = "sfdx package install --wait 20 --security-type AdminsOnly --package $packageVersionId"
+ ((Get-Content -path $targetreadme -Raw) -replace "sfdx package install --wait 20 --security-type AdminsOnly --package .{0,18}", $sfdxUnlockedPackageReplacement) | Set-Content -Path $targetreadme -NoNewline
}
function Install-Package-Version {
@@ -149,7 +151,7 @@ Update-SFDX-Project-JSON-Package-Version-Id $packageVersionAlias $packageVersion
npx prettier --write $sfdxProjectJsonPath
git add $sfdxProjectJsonPath
-Write-Debug "Adding new package version to $targetreadme"
+Write-Debug "Adding new package version ID $packageVersionId to $targetreadme"
Update-README-Package-Version-Id $packageVersionId
npx prettier --write $targetreadme
git add $targetreadme
diff --git a/sfdx-project.json b/sfdx-project.json
index 62de4297e..bb0a2b887 100644
--- a/sfdx-project.json
+++ b/sfdx-project.json
@@ -13,9 +13,9 @@
"package": "Nebula Logger - Core",
"path": "./nebula-logger/core",
"definitionFile": "./config/scratch-orgs/base-scratch-def.json",
- "versionNumber": "4.10.2.NEXT",
- "versionName": "Logger LWC Enhancements",
- "versionDescription": "Several enhancements to logger LWC, including the ability to import the component in JS (instead of embedding it in HTML)",
+ "versionNumber": "4.10.3.NEXT",
+ "versionName": "Logger Settings Start and End Times",
+ "versionDescription": "Provides the ability to schedule LoggerSettings__c records, using the new optional datetime fields StartTime__d and EndTime__c",
"releaseNotesUrl": "https://github.com/jongpie/NebulaLogger/releases",
"unpackagedMetadata": {
"path": "./nebula-logger/extra-tests"
@@ -102,26 +102,6 @@
],
"packageAliases": {
"Nebula Logger - Core": "0Ho5Y000000TNKASA4",
- "Nebula Logger - Core Plugin - Async Failure Additions": "0Ho5Y000000blO4SAI",
- "Nebula Logger - Core Plugin - Async Failure Additions@1.0.0": "04t5Y0000015lhiQAA",
- "Nebula Logger - Core Plugin - Async Failure Additions@1.0.1": "04t5Y0000015lhsQAA",
- "Nebula Logger - Core Plugin - Async Failure Additions@1.0.2": "04t5Y0000023QttQAE",
- "Nebula Logger - Core Plugin - Big Object Archiving": "0Ho5Y000000blMSSAY",
- "Nebula Logger - Core Plugin - Big Object Archiving@0.9.0": "04t5Y0000015lgLQAQ",
- "Nebula Logger - Core Plugin - Log Retention Rules": "0Ho5Y000000blNfSAI",
- "Nebula Logger - Core Plugin - Log Retention Rules@0.9.0": "04t5Y0000015lgGQAQ",
- "Nebula Logger - Core Plugin - Logger Admin Dashboard": "0Ho5Y000000blNkSAI",
- "Nebula Logger - Core Plugin - Logger Admin Dashboard@0.9.0": "04t5Y0000015l3yQAA",
- "Nebula Logger - Core Plugin - Slack": "0Ho5Y000000blMDSAY",
- "Nebula Logger - Core Plugin - Slack@0.10.0": "04t5Y0000015lgQQAQ",
- "Nebula Logger - Core Plugin - Slack@0.9.0-beta-release": "04t5e00000061lHAAQ",
- "Nebula Logger - Core Plugin - Slack@0.9.1-beta-release-round-2": "04t5e00000065xiAAA",
- "Nebula Logger - Core Plugin - Slack@0.9.2-beta-release-round-3": "04t5Y0000015l2WQAQ",
- "Nebula Logger - Core Plugin - Slack@1.5.0": "04t5Y0000015lvVQAQ",
- "Nebula Logger - Core Plugin - Slack@1.5.1": "04t5Y0000023Qu8QAE",
- "Nebula Logger - Core@4.10.0-spring-'23-release": "04t5Y0000015nWjQAI",
- "Nebula Logger - Core@4.10.1-new-settings-field-defaultplatformeventstoragelogginglevel__c": "04t5Y0000015nYaQAI",
- "Nebula Logger - Core@4.10.2-logger-lwc-enhancements": "04t5Y0000023SAGQA2",
"Nebula Logger - Core@4.4.1-unlocked-package-release": "04t5Y0000027FGFQA2",
"Nebula Logger - Core@4.4.2-topics-overloads-cleanup": "04t5Y0000027FGeQAM",
"Nebula Logger - Core@4.4.3-guest-user-bugfix": "04t5Y0000027FI1QAM",
@@ -132,13 +112,6 @@
"Nebula Logger - Core@4.5.1-flow-collection-log-entry": "04t5Y0000027FN6QAM",
"Nebula Logger - Core@4.5.2-plugin-framework-enhancements": "04t5Y0000027FNaQAM",
"Nebula Logger - Core@4.6.0-tagging-system-overhaul": "04t5Y0000015keTQAQ",
- "Nebula Logger - Core@4.6.10-new-log-and-logger-settings-fields": "04t5Y0000015l27QAA",
- "Nebula Logger - Core@4.6.11-admin-enhancements---new-dashboard,-reports,-and-error-email-alerts": "04t5Y0000015l2qQAA",
- "Nebula Logger - Core@4.6.12-log-scenario-rules": "04t5Y0000015l3oQAA",
- "Nebula Logger - Core@4.6.13-save-method-support-for-flows-and-lightning-components": "04t5Y0000015l4cQAA",
- "Nebula Logger - Core@4.6.14-new-logger-settings-component": "04t5Y0000015lB0QAI",
- "Nebula Logger - Core@4.6.15-small-bugfixes-and-test-improvements": "04t5Y0000015lKDQAY",
- "Nebula Logger - Core@4.6.16-ui-cleanup": "04t5Y0000015lLzQAI",
"Nebula Logger - Core@4.6.1-summer-21-upgrade": "04t5Y0000015kfMQAQ",
"Nebula Logger - Core@4.6.2-anonymous-logs": "04t5Y0000015kgPQAQ",
"Nebula Logger - Core@4.6.3-more-metadata-data": "04t5Y0000015kgeQAA",
@@ -148,6 +121,13 @@
"Nebula Logger - Core@4.6.7-security-enhancements": "04t5Y0000015klZQAQ",
"Nebula Logger - Core@4.6.8-new-log-entry-event-stream-component": "04t5Y0000015kplQAA",
"Nebula Logger - Core@4.6.9-custom-metadata-types-optimized": "04t5Y0000015kqtQAA",
+ "Nebula Logger - Core@4.6.10-new-log-and-logger-settings-fields": "04t5Y0000015l27QAA",
+ "Nebula Logger - Core@4.6.11-admin-enhancements---new-dashboard,-reports,-and-error-email-alerts": "04t5Y0000015l2qQAA",
+ "Nebula Logger - Core@4.6.12-log-scenario-rules": "04t5Y0000015l3oQAA",
+ "Nebula Logger - Core@4.6.13-save-method-support-for-flows-and-lightning-components": "04t5Y0000015l4cQAA",
+ "Nebula Logger - Core@4.6.14-new-logger-settings-component": "04t5Y0000015lB0QAI",
+ "Nebula Logger - Core@4.6.15-small-bugfixes-and-test-improvements": "04t5Y0000015lKDQAY",
+ "Nebula Logger - Core@4.6.16-ui-cleanup": "04t5Y0000015lLzQAI",
"Nebula Logger - Core@4.7.0-spring-'22-release": "04t5Y0000015lXSQAY",
"Nebula Logger - Core@4.7.1-plugin-framework-overhaul": "04t5Y0000015lgBQAQ",
"Nebula Logger - Core@4.7.2-parent-log-transaction-id-bugfix": "04t5Y0000015lhdQAA",
@@ -163,7 +143,6 @@
"Nebula Logger - Core@4.8.3-improved-logentry__c-formula-fields-for-limits": "04t5Y0000015lw9QAA",
"Nebula Logger - Core@4.8.4-optimized-synchronous-context": "04t5Y0000023R02QAE",
"Nebula Logger - Core@4.9.0-logbatchpurger-batch-size-increased": "04t5Y0000023R2DQAU",
- "Nebula Logger - Core@4.9.10-added-search-result-fields-for-all-custom-objects": "04t5Y0000015mv8QAA",
"Nebula Logger - Core@4.9.1-track-impersonating-user": "04t5Y0000023R79QAE",
"Nebula Logger - Core@4.9.2-enhancements-for-log-entry-event-stream-lwc": "04t5Y0000023R7iQAE",
"Nebula Logger - Core@4.9.3-new-indicator-icons": "04t5Y0000023R7sQAE",
@@ -172,6 +151,28 @@
"Nebula Logger - Core@4.9.6-environment-aware-default-field-values-for-logger-settings": "04t5Y0000023R9eQAE",
"Nebula Logger - Core@4.9.7-new-log-field-hascomments": "04t5Y0000023R9yQAE",
"Nebula Logger - Core@4.9.8-test-coverage-improvements": "04t5Y0000023RBBQA2",
- "Nebula Logger - Core@4.9.9-scenario-and-tag-storage-configurations": "04t5Y0000023RBpQAM"
+ "Nebula Logger - Core@4.9.9-scenario-and-tag-storage-configurations": "04t5Y0000023RBpQAM",
+ "Nebula Logger - Core@4.9.10-added-search-result-fields-for-all-custom-objects": "04t5Y0000015mv8QAA",
+ "Nebula Logger - Core@4.10.0-spring-'23-release": "04t5Y0000015nWjQAI",
+ "Nebula Logger - Core@4.10.1-new-settings-field-defaultplatformeventstoragelogginglevel__c": "04t5Y0000015nYaQAI",
+ "Nebula Logger - Core@4.10.2-logger-lwc-enhancements": "04t5Y0000023SAGQA2",
+ "Nebula Logger - Core@4.10.3-logger-settings-start-and-end-times": "04t5Y0000023SAfQAM",
+ "Nebula Logger - Core Plugin - Async Failure Additions": "0Ho5Y000000blO4SAI",
+ "Nebula Logger - Core Plugin - Async Failure Additions@1.0.0": "04t5Y0000015lhiQAA",
+ "Nebula Logger - Core Plugin - Async Failure Additions@1.0.1": "04t5Y0000015lhsQAA",
+ "Nebula Logger - Core Plugin - Async Failure Additions@1.0.2": "04t5Y0000023QttQAE",
+ "Nebula Logger - Core Plugin - Big Object Archiving": "0Ho5Y000000blMSSAY",
+ "Nebula Logger - Core Plugin - Big Object Archiving@0.9.0": "04t5Y0000015lgLQAQ",
+ "Nebula Logger - Core Plugin - Log Retention Rules": "0Ho5Y000000blNfSAI",
+ "Nebula Logger - Core Plugin - Log Retention Rules@0.9.0": "04t5Y0000015lgGQAQ",
+ "Nebula Logger - Core Plugin - Logger Admin Dashboard": "0Ho5Y000000blNkSAI",
+ "Nebula Logger - Core Plugin - Logger Admin Dashboard@0.9.0": "04t5Y0000015l3yQAA",
+ "Nebula Logger - Core Plugin - Slack": "0Ho5Y000000blMDSAY",
+ "Nebula Logger - Core Plugin - Slack@0.9.0-beta-release": "04t5e00000061lHAAQ",
+ "Nebula Logger - Core Plugin - Slack@0.9.1-beta-release-round-2": "04t5e00000065xiAAA",
+ "Nebula Logger - Core Plugin - Slack@0.9.2-beta-release-round-3": "04t5Y0000015l2WQAQ",
+ "Nebula Logger - Core Plugin - Slack@0.10.0": "04t5Y0000015lgQQAQ",
+ "Nebula Logger - Core Plugin - Slack@1.5.0": "04t5Y0000015lvVQAQ",
+ "Nebula Logger - Core Plugin - Slack@1.5.1": "04t5Y0000023Qu8QAE"
}
}