DevOp.DK.Plus.psd1

#
# Module manifest template for DevOp.DK.Plus. The build writes DevOp.DK.Plus.psd1 next to the assembly and replaces
# the version tokens from MinVer; never check in the generated file.
#
# CmdletsToExport is an explicit list, verified by PowerShellParityTests against the [Cmdlet] types of the assembly.
# Each lane inserts its own block, commented '# lane: <area>', directly above '# lane: foundation', with a comma after
# every entry; the foundation block stays last, so no lane edits another lane's lines.
#
@{
    RootModule = 'DevOp.DK.Plus.PowerShell.dll'
    ModuleVersion = '0.8.0'
    GUID = '7672773d-d5d3-4078-be77-77a0be81690d'
    Author = 'DevOp'
    CompanyName = 'DevOp'
    Copyright = 'Copyright (c) DevOp 2026. MIT License.'
    Description = 'PowerShell cmdlets for the DK Plus (dkPlus) ERP API, one per devop-dk CLI command. Shares the devop-dk configuration and login token file; tokens are accepted only as SecureString, through DKPLUS_API_TOKEN or DKPLUS_API_TOKEN_FILE, or from the stored login.'
    PowerShellVersion = '7.6'
    CompatiblePSEditions = @('Core')
    # Table views generated from the devop-dk default columns by tools/update-powershell-generated.sh.
    FormatsToProcess = @('DevOp.DK.Plus.format.ps1xml')
    CmdletsToExport = @(
        # lane: customer
        'Get-Customer',
        'Get-CustomerCount',
        'New-Customer',
        'Update-Customer',
        'Remove-Customer',
        'Get-CustomerTransaction',
        'Get-CustomerContact',
        'New-CustomerContact',
        'Update-CustomerContact',
        'Remove-CustomerContact',
        'Get-CustomerReceiver',
        'New-CustomerReceiver',
        'Update-CustomerReceiver',
        'Remove-CustomerReceiver',
        'Get-CustomerGroup',
        'Get-CustomerGroupCount',
        # lane: company
        'Get-Company',
        'Get-CompanyStatus',
        'Get-CompanyLicence',
        'Test-CompanyConnection',
        'Sync-Company',
        'Invoke-CompanyAction',
        'Get-Permission',
        'Get-TableRecord',
        'Get-TableField',
        'Get-TableChange',
        'Get-TableDeletedRecord',
        'New-TableRecord',
        'Update-TableRecord',
        'Remove-TableRecord',
        'Get-Dimension',
        'Get-Currency',
        'Get-PaymentMode',
        'Get-PaymentTerm',
        'Get-PaymentType',
        'Get-Nation',
        'Get-Config',
        'Set-Config',
        # lane: purchase
        'Get-Vendor',
        'Get-VendorCount',
        'Get-VendorGroup',
        'Get-VendorGroupCount',
        'New-Vendor',
        'Update-Vendor',
        'Get-VendorTransaction',
        'Get-VendorInvoice',
        'Save-VendorInvoiceAttachment',
        'New-VendorInvoice',
        'Update-VendorInvoiceApproval',
        'Get-LedgerAccount',
        'New-LedgerAccount',
        'Get-LedgerAccountTransaction',
        'Get-LedgerTransaction',
        'New-LedgerJournal',
        'Get-TaxGroup',
        'New-TaxGroup',
        # lane: sales
        'Get-Invoice',
        'New-Invoice',
        'Save-InvoicePdf',
        'Get-InvoiceHtml',
        'Send-InvoiceEmail',
        'Get-Order',
        'New-Order',
        'Update-Order',
        'Remove-Order',
        'Save-OrderPdf',
        'Get-OrderHtml',
        'Send-OrderEmail',
        'New-OrderLine',
        'Update-OrderLine',
        'Remove-OrderLine',
        'Get-Quote',
        'New-Quote',
        'Update-Quote',
        'Remove-Quote',
        'Save-QuotePdf',
        'Get-QuoteHtml',
        'Send-QuoteEmail',
        'New-QuoteLine',
        'Update-QuoteLine',
        'Remove-QuoteLine',
        'Get-RecurringSale',
        'New-RecurringSale',
        'Update-RecurringSale',
        'Remove-RecurringSale',
        'New-RecurringSaleLine',
        'Update-RecurringSaleLine',
        'Remove-RecurringSaleLine',
        'Get-SalesPerson',
        'New-SalesPerson',
        'Update-SalesPerson',
        'Remove-SalesPerson',
        # lane: products
        'Get-Product',
        'Get-ProductCount',
        'Get-ProductPrice',
        'New-Product',
        'Update-Product',
        'Remove-Product',
        'Get-ProductGroup',
        'Get-ProductGroupCount',
        'Get-ProductCategory',
        'Get-ProductUnit',
        'Update-ProductWarehouse',
        'Get-Warehouse',
        'New-InventoryJournal',
        'New-InventoryTransfer',
        'New-InventoryCount',
        'Get-Webhook',
        'Get-WebhookTemplate',
        'New-Webhook',
        'Update-Webhook',
        'Remove-Webhook',
        'Test-Webhook',
        'Get-Token',
        'New-Token',
        'Update-Token',
        'Remove-Token',
        'Get-TokenCompany',
        'Get-TokenEmployee',
        'Get-RequestLog',
        'Save-TokenReport',
        'Send-TokenReport',
        # lane: projects
        'Get-Project',
        'New-Project',
        'Update-Project',
        'Remove-Project',
        'Get-ProjectInvoice',
        'Get-ProjectJournal',
        'Get-ProjectPhase',
        'New-ProjectPhase',
        'Update-ProjectPhase',
        'Get-ProjectPhaseLink',
        'New-ProjectPhaseLink',
        'Remove-ProjectPhaseLink',
        'Get-ProjectTask',
        'New-ProjectTask',
        'Update-ProjectTask',
        'Get-WorkRequest',
        'New-WorkRequest',
        'Update-WorkRequest',
        'Remove-WorkRequest',
        'Get-ProjectTransaction',
        'Get-ProjectTransactionMemo',
        'Update-ProjectTransactionMemo',
        'New-ProjectWorkEntry',
        'Update-ProjectWorkEntry',
        'Remove-ProjectWorkEntry',
        'Get-Employee',
        # lane: foundation (keep last)
        'Connect-DkPlus',
        'Disconnect-DkPlus',
        'Get-DkPlusConnection',
        'Test-DkPlusConnection',
        'Save-Login',
        'Remove-Login'
    )
    FunctionsToExport = @()
    VariablesToExport = @()
    AliasesToExport = @()
    PrivateData = @{
        PSData = @{
            Tags = @('dkplus', 'DK', 'ERP', 'Iceland', 'accounting', 'PSEdition_Core', 'Windows', 'Linux', 'MacOS')
            ProjectUri = 'https://wiki.devop.is/en/devop-dk/introduction'
            LicenseUri = 'https://opensource.org/license/mit'
            # IconUri: set when the brand icon has a public URL.
            ReleaseNotes = 'v0.8.0: new cmdlets Get-CustomerCount, Get-ProductCount, and Get-VendorCount write the number of matching records as a [long], for example to show import progress; they take the Get- cmdlet''s filters plus -ModifiedSince (alias -m), where an ISO date such as 2025-01-01 is midnight UTC. A filter the DK Plus count cannot apply (-Name and -Email; -ItemCodeFilter, -AliasItemCode and -Deleted; the vendor -PostalCode, -Group and -ModifiedBefore) is an error naming the parameter, and nothing is sent. The vendor count is the row count of the dkERP vendor table APVEND, which includes rows without a vendor number that Get-Vendor skips, so it is an upper bound (verified live on 2026-10-27: 384 counted, 383 listed plus 1 skipped). New: Get-VendorGroup reads vendor groups from the dkERP table APGROUPS, and Get-CustomerGroupCount, Get-ProductGroupCount, and Get-VendorGroupCount count the group tables ARGROUPS, INGROUPS, and APGROUPS (-ModifiedSince, alias -m).'
            
        }
    }
}