FindObject.psd1

#
# Module manifest for module 'FindObject'
#
# Generated by: Matthew Bubb
#

@{

# Script module file associated with this manifest.
RootModule = 'FindObject.psm1'

# Version number of this module.
ModuleVersion = '2.0.0'

# Supported PSEditions
CompatiblePSEditions = @('Desktop', 'Core')

# ID used to uniquely identify this module
GUID = '7a6afbe7-f4d9-4ef6-aca8-334d9518de65'

# Author of this module
Author = 'Matthew Bubb'

# Company or vendor of this module
CompanyName = 'Personal'

# Copyright statement for this module
Copyright = '(c) 2025 Matthew Bubb. All rights reserved.'

# Description of the functionality provided by this module
Description = 'The object-aware grep PowerShell should have shipped with. Filter any pipeline by keyword using AND/OR/NOT logic, Contains/StartsWith/Fuzzy/Exact/Regex matching, multi-property search, early termination, and colorized highlighting. Decoupled Microsoft Graph / Intune integration available via FindObject.Intune submodule.'

# Minimum version of the PowerShell engine required by this module
PowerShellVersion = '5.1'

# Functions to export from this module
FunctionsToExport = @(
    'Find-ObjectByName'
    'Get-FindObjectConfig'
    'Set-FindObjectConfig'
)

# Cmdlets to export from this module
CmdletsToExport = @()

# Variables to export from this module
VariablesToExport = @()

# Aliases to export from this module
AliasesToExport = @('fob')

# List of all files packaged with this module
FileList = @('FindObject.psm1', 'FindObject.psd1', 'FindObject.Intune.psm1', 'FindObject.Intune.psd1', 'FindObject.Tests.ps1', 'FindObject.E2E.Tests.ps1', 'README.md', 'LICENSE')

# Private data to pass to the module specified in RootModule/ModuleToProcess.
PrivateData = @{

    PSData = @{

        # Tags applied to this module for gallery discovery.
        Tags = @('filter', 'search', 'fuzzy', 'grep', 'object', 'pipeline', 'name', 'logical-operators', 'productivity', 'utility', 'Windows', 'PSEdition_Desktop', 'PSEdition_Core', 'Intune', 'Graph', 'DeviceManagement', 'MDM')

        # A URL to the license for this module.
        LicenseUri = 'https://github.com/thebubbsy/FindObject/blob/main/LICENSE'

        # A URL to the main website for this project.
        ProjectUri = 'https://github.com/thebubbsy/FindObject'

        # ReleaseNotes of this module
        ReleaseNotes = @'
v2.0.0 — Major release
- ARCHITECTURE: Decoupled Microsoft Graph / Intune cmdlets into optional FindObject.Intune submodule
  keeping core FindObject ultra-lightweight and zero-dependency
- PARSER: Full AST-based parser with operator precedence (NOT > AND > OR), parenthetical grouping,
  quoted phrases ("phrase with spaces"), and boolean keyword aliases (&&, ||, !, -and, -or, -not)
- PROPERTIES: Added dotted property path navigation (-Property "User.Department.Name")
- INSPECTION: Multi-property search (-Property *) inspects all properties (including non-strings and arrays)
- PERFORMANCE: Replaced -like wildcard engine with direct BCL string methods
  ([String]::Contains, StartsWith, IndexOf) — 5-20x faster on large pipelines
- NEW MODES: -Mode Exact (full string equality) and -Mode Regex (.NET regex with compile-time validation)
- HIGHLIGHTING: In-band ANSI escape formatting replaces Write-Host for non-destructive pipeline streaming
- RESULT CONTROL: -First N / -Skip N for early pipeline termination; -Count and -Quiet switches
- EXTENSIBILITY: Intune submodule provides Connect-FindObjectGraph, Get-IntuneDevice, Get-IntuneApp,
  Get-IntuneCompliancePolicy, Get-IntuneConfigProfile, Get-IntuneAutopilotDevice, Get-IntuneEnrollment
 
v1.1.0
- Fixed NOT logic and natural "term OR term NOT term" syntax
- Added -Mode Contains/StartsWith/Fuzzy matching
- Added -Property and -AsString
- Added -Highlight for colorized console previews
- Added Get-FindObjectConfig / Set-FindObjectConfig for persistable defaults
 
v1.0.0 - Initial Release
- Filter objects by name with logical operators (AND, OR, NOT)
- Pipeline-friendly design with 'fob' alias
- Cross-platform support
'@


    } # End of PSData hashtable

} # End of PrivateData hashtable

}