diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a856ce..73333cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to the project [https://github.com/mazzy-ax/xpoTools](https://github.com/mazzy-ax/xpoTools) will be documented in this file. See also [https://github.com/mazzy-ax/xpoTools/releases](https://github.com/mazzy-ax/xpoTools/releases). -## [1.0.0](https://github.com/mazzy-ax/SysEnumerators/compare/0.1.0...master) - 2018-04-22 +## [1.0.1](https://github.com/mazzy-ax/SysEnumerators/compare/1.0.1...1.0.0) - 2018-04-23 + +* Added object types for ax2012 in `Get-XpoType.ps1`. #1 closed. +* Fixed a couple bugs and typo +* Fixed readme.md + +## [1.0.0](https://github.com/mazzy-ax/SysEnumerators/compare/1.0.0...master) - 2018-04-22 * Initial release diff --git a/README.md b/README.md index 58ed4b2..50e6a47 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# [xpoTools](https://github.com/mazzy-ax/xpoTools) +# xpoTools -![version](https://img.shields.io/badge/version-1.0.0-green.svg) ![license](https://img.shields.io/badge/license-MIT-blue.svg) +![version](https://img.shields.io/badge/version-1.0.1-green.svg) ![license](https://img.shields.io/badge/license-MIT-blue.svg) -**xpoTools** is a Powershell module contains cmdlets that splits one XPO file into separate XPO files and combines a set of set of interdependent XPO files into a single XPO file. +[xpoTools](https://github.com/mazzy-ax/xpoTools) is a Powershell module contains cmdlets that splits one XPO file into separate XPO files and combines a set of set of interdependent XPO files into a single XPO file. XPO file is a text file contains Microsoft Dynamics AX (Axapta) objects. See [tests/assets](tests/assets) folder for example. @@ -45,7 +45,7 @@ or manual: * Download and unblock the latest .zip file. * Extract the .zip into your $PSModulePath, e.g. ~\Documents\WindowsPowerShell\Modules. * Ensure the extracted folder is named `xpoTools`. -* Set an execution policy to RemoteSigned or Unrestricted to execute not signed modules `Set-ExecutionPolicy RemoteSigned`. +* Set an execution policy to `RemoteSigned` or `Unrestricted` to execute not signed modules `Set-ExecutionPolicy RemoteSigned`. * Run `Import-Module Write-ProgressEx`. ## Changelog diff --git a/examples/parallel-split.ps1 b/examples/parallel-split.ps1 index d71058f..687e19f 100644 --- a/examples/parallel-split.ps1 +++ b/examples/parallel-split.ps1 @@ -1,6 +1,6 @@ #Requires -Version 5 -#Requires -module xpoTools -#Requires -module SplitPipeline +#Requires -Module xpoTools +#Requires -Module SplitPipeline # To install the modules from https://www.powershellgallery.com/ run powershell commands: # PS> Install-Module xpoTools @@ -11,12 +11,19 @@ Set-StrictMode -Version Latest $load = 0 # 0 is auto. Try 10, 50, 100 or another values for a big xpo file. -$projectRoot = Resolve-Path $PSScriptRoot\.. -# split -Get-ChildItem $projectRoot\tests\assets -filter '*.xpo' | +$projectRoot = (Resolve-Path $PSScriptRoot\..).Path +$data = @{ + projectRoot = $projectRoot +} + +# parallel split +Get-ChildItem $projectRoot\tests\assets\*.xpo | Import-Xpo | - Split-Pipeline -Verbose -Load $load {process { - Split-xpo -Destination $projectRoot\.test -xpp -PathStyle mazzy -Encoding UTF8 -PassThru - }} + #ForEach-Object { + Split-Pipeline -Verbose -Load $load -Variable data -Module xpoTools {process { + + Split-xpo -Items $_ -Destination $data.projectRoot, \.test -xpp -PathStyle mazzy -Encoding UTF8 -PassThru + } +} diff --git a/tests/ModuleManifest.Tests.ps1 b/tests/ModuleManifest.Tests.ps1 index 62147fc..ee1ecc7 100644 --- a/tests/ModuleManifest.Tests.ps1 +++ b/tests/ModuleManifest.Tests.ps1 @@ -2,6 +2,8 @@ $projectRoot = Resolve-Path $PSScriptRoot\.. $moduleRoot = Split-Path (Resolve-Path $projectRoot\*\*.psd1) $moduleName = Split-Path $moduleRoot -Leaf +$script:manifest = $null + Describe 'Nuget specification Tests' -Tag 'Meta' { It 'Passes Test-ModuleManifest' { @@ -24,7 +26,10 @@ Describe 'Nuget specification Tests' -Tag 'Meta' { } It 'nuspec and manifest release notes are same' { - $nuspec.package.metadata.ReleaseNotes | Should Be ($manifest.PrivateData.PSData.ReleaseNotes) + $nuspecReleaseNotes = $nuspec.package.metadata.ReleaseNotes -replace '\s' + $manifestReleaseNotes = $manifest.PrivateData.PSData.ReleaseNotes -replace '\s' + + $nuspecReleaseNotes -eq $manifestReleaseNotes | Should Be $true } It 'nuspec and manifest projectUrl are same' { diff --git a/tests/examples.Tests.ps1 b/tests/examples.Tests.ps1 index 56c83cf..62c9c80 100644 --- a/tests/examples.Tests.ps1 +++ b/tests/examples.Tests.ps1 @@ -2,7 +2,7 @@ $projectRoot = Resolve-Path $PSScriptRoot\.. $moduleRoot = Split-Path (Resolve-Path $projectRoot\*\*.psd1) $moduleName = Split-Path $moduleRoot -Leaf -Import-Module $moduleRoot -Force +#Import-Module $moduleRoot -Force Describe "Module $moduleName examples Tests" -Tag 'Build' { diff --git a/tests/xpoTools.Tests.ps1 b/tests/xpoTools.Tests.ps1 index f72747e..d90363f 100644 --- a/tests/xpoTools.Tests.ps1 +++ b/tests/xpoTools.Tests.ps1 @@ -4,7 +4,7 @@ $moduleName = Split-Path $moduleRoot -Leaf $assets = "$projectRoot\tests\assets" -Import-Module $moduleRoot -Force +#Import-Module $moduleRoot -Force Describe "Basic function feature integration tests for module $moduleName" -Tags Build, Integration { diff --git a/xpoTools.nuspec b/xpoTools.nuspec index eb33e6d..6a8578f 100644 --- a/xpoTools.nuspec +++ b/xpoTools.nuspec @@ -2,13 +2,19 @@ xpoTools - 1.0.0 + 1.0.1 Sergey Mazurkin https://github.com/mazzy-ax/xpoTools/blob/master/LICENSE https://github.com/mazzy-ax/xpoTools false Powershell cmdlets to split and to merge XPO files contains AOT objects of Microsoft Dynamics AX (Axapta) 3.0, 4.0, 2009, 2012 - Initial release + +## 1.0.1 + +* Added object types for ax2012 in `Get-XpoType.ps1`. See #1 +* Fixed couple bugs and type in `Select-FileName.ps1`, `parallel-split.ps1` and `Import-Xpo.ps1` +* Fixed readme.md + xpo split merge Axapta Microsoft Dynamics AX diff --git a/xpoTools/functions/Import-Xpo.ps1 b/xpoTools/functions/Import-Xpo.ps1 index 8be5e1d..54fca78 100644 --- a/xpoTools/functions/Import-Xpo.ps1 +++ b/xpoTools/functions/Import-Xpo.ps1 @@ -4,10 +4,10 @@ using namespace Microsoft.PowerShell.Commands Set-StrictMode -Version Latest function Import-Xpo { - [CmdletBinding(DefaultParameterSetName = 'fileName')] + [CmdletBinding(DefaultParameterSetName = 'FileName')] [OutputType([psObject])] Param ( - [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'fileName')] + [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'FileName')] [string[]]$Path, [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true, ParameterSetName = 'FileInfo')] diff --git a/xpoTools/internal/Get-XpoType.ps1 b/xpoTools/internal/Get-XpoType.ps1 index be9ee6e..c77d4ae 100644 --- a/xpoTools/internal/Get-XpoType.ps1 +++ b/xpoTools/internal/Get-XpoType.ps1 @@ -17,8 +17,8 @@ $script:xpoTypeInfo = @( [xpoType]@{AOTpath = @('Menus'); OneLevelAOTPath ='Menus'; UtilType = 16; NodeType = 205; Tag = 'MNU'; FilePrefix = 'Menu'; SubTag = ''} [xpoType]@{AOTpath = @('Data Dictionary', 'Table Collections'); OneLevelAOTPath ='Table Collections'; UtilType = 48; NodeType = 211; Tag = 'TCL'; FilePrefix = 'TableCollection'; SubTag = ''} [xpoType]@{AOTpath = @('Queries'); OneLevelAOTPath ='Queries'; UtilType = 20; NodeType = 330; Tag = 'QUE'; FilePrefix = 'Query'; SubTag = ''} - [xpoType]@{AOTpath = @('Shared Projects'); OneLevelAOTPath ='Shared Projects'; UtilType = 37; NodeType = 0; Tag = 'PRN'; FilePrefix = 'SharedProject'; SubTag = 'SHARED'} - [xpoType]@{AOTpath = @('Private Projects'); OneLevelAOTPath ='Private Projects'; UtilType = 38; NodeType = 0; Tag = 'PRN'; FilePrefix = 'Private'; SubTag = 'PRIVATE'} + [xpoType]@{AOTpath = @('Projects', 'Shared'); OneLevelAOTPath ='Shared Projects'; UtilType = 37; NodeType = 0; Tag = 'PRN'; FilePrefix = 'SharedProject'; SubTag = 'SHARED'} + [xpoType]@{AOTpath = @('Projects', 'Private'); OneLevelAOTPath ='Private Projects'; UtilType = 38; NodeType = 0; Tag = 'PRN'; FilePrefix = 'Private'; SubTag = 'PRIVATE'} [xpoType]@{AOTpath = @('References'); OneLevelAOTPath ='References'; UtilType = 53; NodeType = 822; Tag = 'REF'; FilePrefix = 'Reference'; SubTag = ''} [xpoType]@{AOTpath = @('Reports'); OneLevelAOTPath ='Reports'; UtilType = 18; NodeType = 202; Tag = 'RG' ; FilePrefix = 'Report'; SubTag = ''} [xpoType]@{AOTpath = @('Report Libraries'); OneLevelAOTPath ='Report Libraries'; UtilType = 79; NodeType = 1426; Tag = 'RLB' ; FilePrefix = 'ReportLibrary'; SubTag = ''} @@ -31,6 +31,8 @@ $script:xpoTypeInfo = @( [xpoType]@{AOTpath = @('Data Dictionary', 'License Codes'); OneLevelAOTPath ='License Codes'; UtilType = 15; NodeType = 311; Tag = 'LIC'; FilePrefix = 'LicenseCode'; SubTag = ''} [xpoType]@{AOTpath = @('Data Dictionary', 'Perspectives'); OneLevelAOTPath ='Perspectives'; UtilType = 66; NodeType = 1311; Tag = 'PRS'; FilePrefix = 'Perspective'; SubTag = ''} [xpoType]@{AOTpath = @('Services'); OneLevelAOTPath ='Services'; UtilType = 76; NodeType = 1321; Tag = 'SVC'; FilePrefix = 'Service'; SubTag = ''} + [xpoType]@{AOTpath = @('Service Groups'); OneLevelAOTPath ='Service Groups'; UtilType = 137; NodeType = 1325; Tag = 'SVG'; FilePrefix = 'ServiceGroup'; SubTag = ''} + [xpoType]@{AOTpath = @('Web', 'Menu Items', 'URL'); OneLevelAOTPath ='Web URL Items'; UtilType = 55; NodeType = 864; Tag = 'WMU'; FilePrefix = 'WebUrlItem'; SubTag = ''} [xpoType]@{AOTpath = @('Web', 'Menu Items', 'Actions'); OneLevelAOTPath ='Web Action Menu Items'; UtilType = 56; NodeType = 866; Tag = 'WMA'; FilePrefix = 'WebActionItem'; SubTag = ''} [xpoType]@{AOTpath = @('Web', 'Menus'); OneLevelAOTPath ='Web Menus'; UtilType = 30; NodeType = 806; Tag = 'WME'; FilePrefix = 'WebMenu'; SubTag = ''} @@ -54,9 +56,48 @@ $script:xpoTypeInfo = @( [xpoType]@{AOTpath = @('Workflow', 'Categories'); OneLevelAOTPath ='Workflow Categories'; UtilType = 71; NodeType = 1423; Tag = 'WFC'; FilePrefix = 'WorkflowCategory'; SubTag = ''} [xpoType]@{AOTpath = @('Help Files'); OneLevelAOTPath ='Help Files'; UtilType = 65; NodeType = 1301; Tag = 'HPF'; FilePrefix = 'HelpFile'; SubTag = ''} + #ax2012 + [xpoType]@{AOTpath = @('Parts', 'Info Parts'); OneLevelAOTPath ='Info Parts'; UtilType = 81; NodeType = 1429; Tag = 'IPA'; FilePrefix = 'InfoPart'; SubTag = ''} + [xpoType]@{AOTpath = @('Parts', 'Form Parts'); OneLevelAOTPath ='Form Parts'; UtilType = 82; NodeType = 1431; Tag = 'FPA'; FilePrefix = 'FormPart'; SubTag = ''} + [xpoType]@{AOTpath = @('Parts', 'Cues'); OneLevelAOTPath ='Cues'; UtilType = 98; NodeType = 1543; Tag = 'CUN'; FilePrefix = 'Cue'; SubTag = ''} + [xpoType]@{AOTpath = @('Parts', 'Cue Groups'); OneLevelAOTPath ='Cue Groups'; UtilType = 99; NodeType = 1544; Tag = 'CGN'; FilePrefix = 'CueGroup'; SubTag = ''} + #[xpoType]@{AOTpath = @('SSRS Reports', 'Reports Images'); OneLevelAOTPath ='SSRS Report Images'; UtilType = ; NodeType = 1450; Tag = ; FilePrefix = 'SSRSReportImage'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Reports Datasources'); OneLevelAOTPath ='SSRS Report Datasources'; UtilType = 93; NodeType = 1449; Tag = 'SDS'; FilePrefix = 'SSRSReportDataSource'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'XY Chart Style Templates'); OneLevelAOTPath ='SSRS Report XY Chart Style Templates'; UtilType = 92; NodeType = 1448; Tag = 'SXT'; FilePrefix = 'SSRSReportXYChartStyleTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'Table Style Templates'); OneLevelAOTPath ='SSRS Report Table Style Templates'; UtilType = 91; NodeType = 1447; Tag = 'STT'; FilePrefix = 'SSRSReportTableStyleTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'Pie Chart Style Templates'); OneLevelAOTPath ='SSRS Report Pie Chart Style Templates'; UtilType = 90; NodeType = 1446; Tag = 'SPT'; FilePrefix = 'SSRSReportPieChartStyleTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'Matrix Style Templates'); OneLevelAOTPath ='SSRS Report Matrix Style Templates'; UtilType = 89; NodeType = 1445; Tag = 'SMT'; FilePrefix = 'SSRSReportMatrixStyleTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'List Style Templates'); OneLevelAOTPath ='SSRS Report List Style Templates'; UtilType = 88; NodeType = 1444; Tag = 'SLT'; FilePrefix = 'SSRSReportListStyleTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'Layout Templates'); OneLevelAOTPath ='SSRS Report Layout Templates'; UtilType = 87; NodeType = 1443; Tag = 'SRL'; FilePrefix = 'SSRSReportLayoutTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Reports'); OneLevelAOTPath ='SSRS Reports'; UtilType = 85; NodeType = 1439; Tag = 'SRP'; FilePrefix = 'SSRSReport'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'Matrix Style Templates'); OneLevelAOTPath ='SSRS Report Matrix Style Templates'; UtilType = 89; NodeType = 1445; Tag = 'SMT'; FilePrefix = 'SSRSReportMatrixStyleTemplate'; SubTag = ''} + [xpoType]@{AOTpath = @('SSRS Reports', 'Report Style Templates', 'Matrix Style Templates'); OneLevelAOTPath ='SSRS Report Matrix Style Templates'; UtilType = 89; NodeType = 1445; Tag = 'SMT'; FilePrefix = 'SSRSReportMatrixStyleTemplate'; SubTag = ''} + + [xpoType]@{AOTpath = @('Visual Studio Projects', 'Dynamics AX Model Projects'); OneLevelAOTPath ='VSProject Dynamics AX Model Projects'; UtilType = 127; NodeType = 1531; Tag = 'VPY'; FilePrefix = 'VSProject_AXModel'; SubTag = ''} + [xpoType]@{AOTpath = @('Visual Studio Projects', 'C Sharp Projects'); OneLevelAOTPath ='VSProject C Sharp Projects'; UtilType = 128; NodeType = 1531; Tag = 'VPC'; FilePrefix = 'VSProject_CSharp'; SubTag = ''} + #[xpoType]@{AOTpath = @('Visual Studio Projects', 'Visual Basic Projects'); OneLevelAOTPath ='VSProject Visual Basic Projects'; UtilType = 129; NodeType = 1531; Tag = ; FilePrefix = 'VSProject_VB'; SubTag = ''} + #[xpoType]@{AOTpath = @('Visual Studio Projects', 'Web Application Projects'); OneLevelAOTPath ='VSProject Web Application Projects'; UtilType = 130; NodeType = 1531; Tag = ; FilePrefix = 'VSProject_WebApplication'; SubTag = ''} + [xpoType]@{AOTpath = @('Visual Studio Projects', 'Analysis Services Projects'); OneLevelAOTPath ='VSProject Analysis Projects'; UtilType = 131; NodeType = 1531; Tag = 'VPY'; FilePrefix = 'VSProject_Analysis'; SubTag = ''} + + [xpoType]@{AOTpath = @('Workflow', 'Automated Tasks'); OneLevelAOTPath ='Workflow Automated Tasks'; UtilType = 95; NodeType = 1409; Tag = 'WFN'; FilePrefix = 'WorkflowAutomatedTask'; SubTag = ''} + [xpoType]@{AOTpath = @('Workflow', 'Providers', 'Hierarchy Assignment'); OneLevelAOTPath ='Workflow Hierarchy Assignment Providers'; UtilType = 139; NodeType = 1397; Tag = 'WFH'; FilePrefix = 'WorkflowHierarchyProvider'; SubTag = ''} + [xpoType]@{AOTpath = @('Workflow', 'Providers', 'Participant Assignment'); OneLevelAOTPath ='Workflow Participant Assignment Providers'; UtilType = 140; NodeType = 1399; Tag = 'WFP'; FilePrefix = 'WorkflowParticipantProvider'; SubTag = ''} + [xpoType]@{AOTpath = @('Workflow', 'Providers', 'Analysis Queue Assignment'); OneLevelAOTPath ='Workflow Queue Providers'; UtilType = 141; NodeType = 1401; Tag = 'WFQ'; FilePrefix = 'WorkflowQueueProvider'; SubTag = ''} + [xpoType]@{AOTpath = @('Workflow', 'Providers', 'Due Date Calculation'); OneLevelAOTPath ='Workflow Due Date Providers'; UtilType = 142; NodeType = 1403; Tag = 'WFD'; FilePrefix = 'WorkflowDueDateProvider'; SubTag = ''} + + [xpoType]@{AOTpath = @('Security', 'Code Permissions'); OneLevelAOTPath ='Security Code Permissions'; UtilType = 115; NodeType = 1608; Tag = 'SCP'; FilePrefix = 'SecCodePermission'; SubTag = ''} + [xpoType]@{AOTpath = @('Security', 'Privileges'); OneLevelAOTPath ='Security Privileges'; UtilType = 134; NodeType = 1628; Tag = 'SPV'; FilePrefix = 'SecPrivilege'; SubTag = ''} + [xpoType]@{AOTpath = @('Security', 'Duties'); OneLevelAOTPath ='Security Duties'; UtilType = 135; NodeType = 1630; Tag = 'SDT'; FilePrefix = 'SecDuty'; SubTag = ''} + [xpoType]@{AOTpath = @('Security', 'Roles'); OneLevelAOTPath ='Security Roles'; UtilType = 133; NodeType = 1626; Tag = 'SRO'; FilePrefix = 'SecRole'; SubTag = ''} + [xpoType]@{AOTpath = @('Security', 'Process Cycles'); OneLevelAOTPath ='Security Process Cycles'; UtilType = 136; NodeType = 1636; Tag = 'SPC'; FilePrefix = 'SecProcessCycle'; SubTag = ''} + [xpoType]@{AOTpath = @('Security', 'Policies'); OneLevelAOTPath ='Security Policies'; UtilType = 119; NodeType = 1619; Tag = 'SPO'; FilePrefix = 'SecPolicy'; SubTag = ''} + + [xpoType]@{AOTpath = @('Label Files'); OneLevelAOTPath ='Label Files'; UtilType = 117; NodeType = 831; Tag = 'LBL'; FilePrefix = 'LabelFile'; SubTag = ''} + [xpoType]@{AOTpath = @('Help Document Sets'); OneLevelAOTPath ='Help Document Sets'; UtilType = 101; NodeType = 1527; Tag = 'DCS'; FilePrefix = 'DocSet'; SubTag = ''} + #ax30 [xpoType]@{AOTpath = @('Data Dictionary', 'Feature keys'); OneLevelAOTPath ='Feature keys'; UtilType = 39; NodeType = 237; Tag = 'FСС'; FilePrefix = 'FeatureKey'; SubTag = ''} - + ) function Get-XpoType { diff --git a/xpoTools/internal/Select-FileName.ps1 b/xpoTools/internal/Select-FileName.ps1 index 32f3155..eaee90f 100644 --- a/xpoTools/internal/Select-FileName.ps1 +++ b/xpoTools/internal/Select-FileName.ps1 @@ -22,7 +22,9 @@ function Select-FileName { $PathStyleScript = Get-PathStyle -Style $PathStyle } - $PathParts = $PathParts.Trim() -split '\s*[\\/]\s*' + if( $PathParts ) { + $PathParts = $PathParts.Trim() -split '\s*[\\/]\s*' + } $filePath = & $PathStyleScript -Item $Item -PathParts $PathParts -Ext $Ext diff --git a/xpoTools/internal/Test-NotEmpty.ps1 b/xpoTools/internal/Test-NotEmpty.ps1 index 6b0db29..6207696 100644 --- a/xpoTools/internal/Test-NotEmpty.ps1 +++ b/xpoTools/internal/Test-NotEmpty.ps1 @@ -2,5 +2,5 @@ Set-StrictMode -Version Latest filter Test-NotEmpty { - if ( $_ -and $_ -notmatch '^\s*$' ) { $_ } + if ( $_ -and ($_ -isnot [string] -or $_ -notmatch '^\s*$') ) { $_ } } \ No newline at end of file diff --git a/xpoTools/xpoTools.psd1 b/xpoTools/xpoTools.psd1 index d18f791..36d38d2 100644 --- a/xpoTools/xpoTools.psd1 +++ b/xpoTools/xpoTools.psd1 @@ -7,7 +7,7 @@ RootModule = 'xpoTools.psm1' # Version number of this module. -ModuleVersion = '1.0.0' +ModuleVersion = '1.0.1' # Supported PSEditions # CompatiblePSEditions = @() @@ -103,7 +103,11 @@ PrivateData = @{ # ReleaseNotes of this module ReleaseNotes = @' -Initial release +## 1.0.1 + +* Added object types for ax2012 in `Get-XpoType.ps1`. See #1 +* Fixed couple bugs and type in `Select-FileName.ps1`, `parallel-split.ps1` and `Import-Xpo.ps1` +* Fixed readme.md '@ # External dependent modules of this module