Skip to content

Conversation

@FriedrichWeinmann
Copy link
Member

  • New: Assert-PSFInternalCommand - Verifies, that the command calling it in turn was only called from another command within the same module. (Internal Caller Test #685)
  • New: Add-PSFTeppCompletion - Adds a completion result to a tab completion script.
  • New: Remove-PSFTeppCompletion - Removes a previously added completion result from a tab completion script.
  • New: Update-PSFTeppCompletion - Automatically adds provided values to the completion result of the associated completion script.
  • New: Get-PSFFileContent - Reads content from a file.
  • New: Set-PSFFileContent - Writes content to a file.
  • New: Export-PSFJson - Converts input to json string and writes the result to file.
  • New: Import-PSFJson - Reads json files and returns their content as objects.
  • New: ConvertTo-PSFPsd1 - Converts objects into PSD1 configuration text.
  • New: Export-PSFPowerShellDataFile - Exports data into psd1 config files.
  • New: Register-PSFPsd1Converter - Registers a new piece of logic used to convert specific data types to PSD1 format.
  • New: PSFScope - type granting direct access to the current, script, module or global scope as an object.
  • New: Configuration Setting - PSFramework.TabExpansion.FuzzyMatch: Whether to match tab completions with Fuzzy-Matching by default.
  • New: Configuration Setting - PSFramework.TabExpansion.MatchAnywhere: Wrap all completion results into quotes, whitespace or not.
  • New: Configuration Setting - PSFramework.TabExpansion.AlwaysQuote: Whether to match tab completions with Fuzzy-Matching by default.
  • New: Configuration Setting - PSFramework.Message.Style.TimeFormat: The format used in timestamps for messages written on screen.
  • New: Configuration Setting - PSFramework.Message.Style.Target: Include the message target (if present) in verbose message output.
  • New: Configuration Export Schema - The "Psd1" schema was added as an alternative name for "MetaJson", offering the same implementation logic.
  • New: Parameter Class PsfFileSingle - Converts input into the path to a single file.
  • New: Parameter Class PsfDirectorySingle - Converts input into the path to a single directory.
  • New: Parameter Class PsfPathSingle - Converts input into the path to a single filesystem path.
  • New: Parameter Class PsfLiteralPathSingle - Converts input into the path to a single filesystem path without resolving wildcards.
  • New: Parameter Class PsfLiteralFileSingle - Converts input into the path to a single file without resolving wildcards.
  • New: Parameter Class PsfLiteralDirectorySingle - Converts input into the path to a single directory without resolving wildcards.
  • New: Parameter Class PsfNewFileSingle - Converts input into the path to a single file, which may or may not exist, but whose parent directory must exist.
  • Upd: Tab Completion - Now sorts by the List Item Text - the options shown in the tab menu - rather than the actual value being inserted into the console.
  • Upd: Tab Completion - Added support for ToolTipString and ListItemTextString in the result, allowing to localize tab completion tooltip and list items.
  • Upd: Tab Completion - Can now be trained / provided with an explicit list of completions to offer.
  • Upd: Register-PSFTeppScriptblock - add parameter -FuzzyMatch to match input against the completions using Fuzzy Logic.
  • Upd: Register-PSFTeppScriptblock - add parameter -MatchAnywhere to match input against anywhere within the completions, not just from the start.
  • Upd: Register-PSFTeppScriptblock - add parameter -AlwaysQuote to wrap all completion results into quotes, irrespective of whether they contain a whitespace or not.
  • Upd: Register-PSFTeppScriptblock - add parameter -DontSort to stop sorting completion results alphabetically.
  • Upd: ConvertTo-PSFHashtable - add parameter -InheritParameters that automatically picks up values from the calling command / script.
  • Upd: Write-PSFMessage - add parameter -NewErrorRecord to actually write an error when also specifying -EnableException, even if the command did not first receive an error record as input. (Handle Piped $null In Collection In process{} #659)
  • Upd: Select-PSFObject - Can now select variables directly, as well as properties of variables (Select psfobject with non-object variables #664)
  • Upd: Invoke-PSFProtectedCommand - add parameter -NonTerminating to stop sending terminating exceptions in combination with -EnableException.
  • Upd: New-PSFHashtable - Added parameter -PassThru to create a hashtable that will return the key itself if it does not exist on the hashtable.
  • Upd: New-PSFHashtable - Added parameter -Calculator to create a hashtable that will return the result of this scriptblock if the key does not exist on the hashtable.
  • Upd: New-PSFSupportPackage - When specifying a task-name, the command will no longer spam messages on screen, instead sending the message to verbose.
  • Upd: Type Object.ObjectHost - added methods to modify PSObjects in bulk
  • Upd: PSFHashtable - added method EnablePassThru(), which will return the Key itself, when the provided key does not yet exist in the hashtable. (PsfHashtable - Default action to passthrough #676)
  • Upd: PSFHashtable - added method SetCalculator(), which will calculate the value returned using a scriptblock, when the provided key does not yet exist in the hashtable. (PsfHashtable - Default action to passthrough #676)
  • Upd: PSFCmdlet - added method DoContinue(), allowing cmdlets to trigger a powershell script-based continue action.
  • Upd: Logging Provider logfile - Added option JsonNoEmptyFirstLine to make it stop adding an empty line at the beginning of the logfile. As an option to avoid breaking changes for people automatically processing the logfile.
  • Upd: Logging Provider logfile - Added option CMTraceOverrideComponent to allow overriding the "Component" section on a per-message basis, vie the -Data parameter. (Logging Provider: logfile > CMTrace custom Components #623)
  • Upd: Logging Provider logfile - Added new filetype TXT to the list of supported filetypes. This allows creating simple plaintext logfiles, even when they are generally discouraged. (Format, include, exclude, customize the headers and generate log #654)
  • Upd: Logging Provider logfile - Added option TXTPattern: The pattern of any given line in the TXT-based logfile. Use %PROPERTYNAME% as placeholder, e.g. "%Message%". Same properties as with the headers configuration - you need to specify both settings, if your pattern includes non-default properties such as "Data". (Format, include, exclude, customize the headers and generate log #654)
  • Fix: Logging Provider logfile - Renaming header breaks timestamp format (If I try to rename Timestamp header in LoggingProvider writing JSON files, then datetime values is written odly #672)
  • Fix: Logging Provider logfile - Using the JsonString parameter breaks header order (Level and Type values are written as numbers in json format #667)
  • Fix: Logging Provider SQL - Fails to log the Data field correctly (Logging to SQL - Adding support for Data #680)
  • Fix: Configuration - fails to restore the persisted form of an empty hashtable (MethodInvocationException: Exception calling "ConvertFromPersistedValue" with "2" argument(s): "Index was outside the bounds of the array." #650)
  • Fix: Pathing issue - Programdata resolution fails when environment variable is not available (fix: ProgramData fallback for restricted environments #671)
  • Fix: ScriptTransformation Attribute - conversion results were not considered valid, when not of the demanded type, but one inheriting from the demanded type. (ScriptTransformation - does not accept child-types of targettype #646)
  • Fix: ParameterClass Path - Fails on .ToString() on Stack Overflow.
  • Fix: Select-PSFObject - fails with "Index was outside the bounds of the array." when combining -Last with -TypeName or any other parameter that causes the command to intercept the output of Select-Object (🐛 Potential bugs with Select-PSFObject and integer parameters (-First, -Last, -Skip, -SkipLast) in combination with -TypeName parameter #666)
  • Fix: ConvertTo-PSFHashtable - fails to correctly resolve the reference command when somebody overrides the Get-Command command in a breaking way.
  • Fix: ConvertTo-PSFHashtable - fails with an index error when the -ReferenceCommand command cannot be resolved.
  • Fix: ConvertTo-PSFHashtable - when specifying the -Inherit parameter, the -Exclude parameter is ignored for inherited values.
  • Fix: Write-PSFMessage - fails to process a Switch value as input. (Write-PSFMessage [switch] input handling for -EnableException #655)
  • Fix: Import-PSFPowerShellDataFile - does not import DateTime properties from json correctly on PowerShell 7.

FH-Inway and others added 30 commits March 17, 2025 21:52
…t-variables

Select psfobject with non-object variables
fix: ProgramData fallback for restricted environments
@FriedrichWeinmann FriedrichWeinmann merged commit b190e9f into master Aug 29, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants