├── .gitattributes ├── .github ├── CONTRIBUTING.md ├── FUNDING.yml ├── issue_template.md └── workflows │ └── stale.yml ├── .gitignore ├── Modules ├── CompareItemsBetweenInstances.ps1 ├── Copy-RainbowContent.ps1 ├── DownloadFiles.ps1 ├── Example-PowerShellRunspaces.ps1 ├── Example-PowerShellRunspacesRemoting.ps1 ├── Example-UploadMedia.ps1 ├── InvokeWebService.ps1 ├── Remoting Tests - Basic Token.ps1 ├── Remoting Tests - Bearer Token.ps1 ├── Remoting Tests - Download with RemoteScriptCall.Tests.ps1 ├── Remoting Tests - Maintenance.Tests.ps1 ├── Remoting Tests - Multiple Script Sessions.Tests.ps1 ├── Remoting Tests - RemotingAutomation.Tests.ps1 ├── Remoting Tests - Sync Content.Tests.ps1 ├── Remoting Tests - Upload with RemoteScriptCall.Tests.ps1 ├── Remoting Tests - Web Api.Tests.ps1 ├── SIF │ ├── Package-WDP.ps1 │ ├── SPE-Developer.ps1 │ └── install-module.json ├── SPE │ ├── .vscode │ │ └── launch.json │ ├── ConvertFrom-CliXml.ps1 │ ├── ConvertTo-CliXml.ps1 │ ├── FormatData │ │ └── Sitecore.Views.ps1xml │ ├── Invoke-GenericMethod.ps1 │ ├── Invoke-RemoteScript.ps1 │ ├── Libraries │ │ └── readme.txt │ ├── MediaSyncWatcher.ps1 │ ├── New-Jwt.ps1 │ ├── New-RunspacedDelegate.ps1 │ ├── New-ScriptSession.ps1 │ ├── Receive-RemoteItem.ps1 │ ├── SPE.psd1 │ ├── SPE.psm1 │ ├── Send-RemoteItem.ps1 │ ├── Stop-ScriptSession.ps1 │ ├── Test-RemoteConnection.ps1 │ ├── Test.ps1 │ ├── TypeData │ │ └── Sitecore.Types.ps1xml │ ├── Wait-RemoteScriptSession.ps1 │ └── Wait-RemoteSitecoreJob.ps1 ├── ScratchPad.ps1 ├── ScratchPad4.ps1 ├── ScratchPad5.ps1 ├── Setup-Module.ps1 ├── TestRunner.ps1 ├── spe-jwt-demo │ ├── demo.js │ ├── package-lock.json │ ├── package.json │ └── tokener.js ├── spe-test │ ├── Kittens.zip │ ├── data.xml │ ├── kitten-replacement.jpg │ └── kitten.jpg └── z.SPE.Security.Disabler.config ├── README.md ├── Spe.sln ├── cli ├── .config │ └── dotnet-tools.json ├── .gitignore ├── .sitecore │ └── schemas │ │ ├── ModuleFile.schema.json │ │ ├── RootConfigurationFile.schema.json │ │ └── UserConfiguration.schema.json ├── .vscode │ └── settings.json ├── README.md ├── generate.bat ├── modules │ ├── Spe.Core.module.json │ ├── Spe.Rules.module.json │ ├── Spe.Scripts.module.json │ └── Spe.UI.module.json └── sitecore.json ├── docker-compose.build.yml ├── docker-compose.override.yml ├── docker-compose.yml ├── docker ├── .env ├── .gitignore ├── build │ └── cm │ │ └── Dockerfile ├── data │ ├── mssql │ │ └── .gitkeep │ └── solr │ │ └── .gitkeep ├── deploy │ └── .gitkeep ├── tools │ ├── bin │ │ └── Microsoft.Web.XmlTransform.dll │ ├── dev-patches │ │ ├── CustomErrorsOff │ │ │ └── Web.config.xdt │ │ ├── DebugOn │ │ │ └── Web.config.xdt │ │ ├── DevEnvOn │ │ │ └── Web.config.xdt │ │ ├── DeviceDetectionOff │ │ │ └── App_Config │ │ │ │ └── Environment │ │ │ │ └── DeviceDetectionOff.config │ │ ├── DiagnosticsOff │ │ │ └── App_Config │ │ │ │ └── Environment │ │ │ │ └── DiagnosticsOff.config │ │ ├── HttpErrorsDetailed │ │ │ └── Web.config.xdt │ │ ├── InitMessagesOff │ │ │ └── App_Config │ │ │ │ └── Environment │ │ │ │ └── InitMessagesOff.config │ │ ├── OptimizeCompilationsOn │ │ │ └── Web.config.xdt │ │ ├── RobotDetectionOff │ │ │ └── App_Config │ │ │ │ └── Environment │ │ │ │ └── RobotDetectionOff.config │ │ └── XdbOff │ │ │ └── App_Config │ │ │ └── Environment │ │ │ └── XdbOff.config │ ├── entrypoints │ │ └── iis │ │ │ └── Development.ps1 │ └── scripts │ │ ├── Deploy-TdsWdpPackages.ps1 │ │ ├── Get-PatchFolders.ps1 │ │ ├── Install-ConfigurationFolder.ps1 │ │ ├── Invoke-XdtTransform.ps1 │ │ └── Watch-Directory.ps1 └── traefik │ ├── .gitkeep │ ├── certs │ └── .gitkeep │ └── config │ └── dynamic │ └── certs_config.yaml ├── docs ├── Release process.md ├── readme-console-ise.png └── readme-ise.gif ├── goodluck.ps1 ├── init.ps1 ├── license.md ├── releases ├── .gitkeep ├── configs │ └── Test.EnableLanguageFallback.config └── configuration.json ├── src ├── Deploy_Functions.ps1 ├── Libraries │ ├── PowerShell.MamlGenerator.dll │ └── PowerShell.MamlGenerator.pdb ├── NuGet.config ├── Post_Build.ps1 ├── Spe.Abstractions │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Spe.Abstractions.csproj │ ├── VersionDecoupling │ │ └── Interfaces │ │ │ ├── IAuthenticationManager.cs │ │ │ ├── IDateConverter.cs │ │ │ ├── IImmediateDebugWindowLauncher.cs │ │ │ ├── IIndexManager.cs │ │ │ ├── IJob.cs │ │ │ ├── IJobManager.cs │ │ │ ├── IJobMessageManager.cs │ │ │ ├── IJobOptions.cs │ │ │ ├── IObsoletor.cs │ │ │ ├── IPublishManager.cs │ │ │ ├── ISessionElevationWindowLauncher.cs │ │ │ ├── ISpeAuthenticationProvider.cs │ │ │ └── IUrlHandleWrapper.cs │ └── packages.config ├── Spe.Package │ ├── Install │ │ └── PackagePostStep.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Spe.Package.csproj │ └── packages.config ├── Spe.Sitecore8 │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Services │ │ ├── SpeAuthenticationManager.cs │ │ ├── SpeIndexManager.cs │ │ ├── SpeJob.cs │ │ ├── SpeJobManager.cs │ │ ├── SpeJobMessageManager.cs │ │ ├── SpeJobOptions.cs │ │ ├── SpeObsoletor.cs │ │ └── SpePublishManager.cs │ ├── Spe.Sitecore8.csproj │ └── packages.config ├── Spe.Sitecore92 │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Services │ │ ├── SpeAuthenticationManager.cs │ │ ├── SpeIndexManager.cs │ │ ├── SpeJob.cs │ │ ├── SpeJobManager.cs │ │ ├── SpeJobMessageManager.cs │ │ ├── SpeJobOptions.cs │ │ ├── SpeObsoletor.cs │ │ └── SpePublishManager.cs │ ├── Spe.Sitecore92.csproj │ └── packages.config ├── Spe │ ├── App_Config │ │ └── Include │ │ │ ├── Rainbow.config │ │ │ ├── Spe │ │ │ ├── Spe.Events.config.disabled │ │ │ ├── Spe.IdentityServer.config │ │ │ ├── Spe.Minimal.config.disabled │ │ │ ├── Spe.Serialization.config │ │ │ └── Spe.config │ │ │ ├── Unicorn │ │ │ ├── Unicorn.AutoPublish.config │ │ │ ├── Unicorn.Configs.Default.Roles.config.example │ │ │ ├── Unicorn.Configs.Default.Users.config.example │ │ │ ├── Unicorn.Configs.Default.example │ │ │ ├── Unicorn.Configs.Dependency.config.example │ │ │ ├── Unicorn.Configs.NewItemsOnly.example │ │ │ ├── Unicorn.CustomSerializationFolder.config.example │ │ │ ├── Unicorn.DataProvider.10.1.config.disabled │ │ │ ├── Unicorn.DataProvider.config │ │ │ ├── Unicorn.Dilithium.config.example │ │ │ ├── Unicorn.PowerShell.config │ │ │ ├── Unicorn.Remote.config.disabled │ │ │ ├── Unicorn.Roles.DataProvider.config │ │ │ ├── Unicorn.Roles.config │ │ │ ├── Unicorn.UI.DeployedContentEditorWarnings.config.disabled │ │ │ ├── Unicorn.UI.IdentityServer.config.disabled │ │ │ ├── Unicorn.UI.config │ │ │ ├── Unicorn.Users.DataProvider.config │ │ │ ├── Unicorn.Users.config │ │ │ ├── Unicorn.config │ │ │ └── Unicorn.zSharedSecret.config.example │ │ │ └── z.Spe │ │ │ └── z.Spe.config │ ├── Client │ │ ├── Applications │ │ │ ├── Administration │ │ │ │ ├── AdminPage.cs │ │ │ │ ├── NonSecurePage.cs │ │ │ │ └── PowerShell.aspx.cs │ │ │ ├── ConfirmChoice.cs │ │ │ ├── DownloadFile.cs │ │ │ ├── ExecutionMessages.cs │ │ │ ├── FieldEditor.cs │ │ │ ├── GetStringResponse.cs │ │ │ ├── IPowerShellRunner.cs │ │ │ ├── ImmediateDebugWindowLauncher.cs │ │ │ ├── PowerShellConsole.cs │ │ │ ├── PowerShellExternalView.cs │ │ │ ├── PowerShellIse.cs │ │ │ ├── PowerShellMultiValuePrompt.cs │ │ │ ├── PowerShellReports.cs │ │ │ ├── PowerShellResultViewerList.cs │ │ │ ├── PowerShellResultViewerText.cs │ │ │ ├── PowerShellRunner.cs │ │ │ ├── PowerShellScriptBrowser.cs │ │ │ ├── PowerShellSessionElevation.cs │ │ │ ├── RunnerOutput.cs │ │ │ ├── ScriptRunner.cs │ │ │ ├── SessionElevationWindowLauncher.cs │ │ │ └── UploadFile │ │ │ │ ├── PowerShellUploadFileForm.cs │ │ │ │ ├── PowerShellUploadFilePage.cs │ │ │ │ ├── PowerShellUploadFilePage2.cs │ │ │ │ └── Validation │ │ │ │ ├── ContentTypeValidator.cs │ │ │ │ ├── FileTypeValidator.cs │ │ │ │ ├── UploadLocationValidator.cs │ │ │ │ └── ValidationResult.cs │ │ ├── Commands │ │ │ ├── AbortQueryState.cs │ │ │ ├── DebugQueryState.cs │ │ │ ├── EditIseSettings.cs │ │ │ ├── EditIseSettingsCombo.cs │ │ │ ├── ExecuteFieldEditor.cs │ │ │ ├── GalleryRuntimeQueryState.cs │ │ │ ├── ItemDefinedQueryState.cs │ │ │ ├── ListViewFilterQueryState.cs │ │ │ ├── ListViewPagingQueryState.cs │ │ │ ├── MenuItems │ │ │ │ ├── AddMaster.cs │ │ │ │ ├── EditPowerShellScript.cs │ │ │ │ ├── ExecutePowerShellConsole.cs │ │ │ │ ├── ExecutePowerShellScript.cs │ │ │ │ ├── ItemNew.cs │ │ │ │ ├── ScriptLibraryMenuItem.cs │ │ │ │ └── ShowExternalPage.cs │ │ │ ├── RuntimeQueryState.cs │ │ │ ├── SelectUser.cs │ │ │ ├── Selectlanguage.cs │ │ │ └── WebEditScriptCommand.cs │ │ └── Controls │ │ │ ├── BucketlistExtended.cs │ │ │ ├── CompleteMessage.cs │ │ │ ├── ContentEditorRibbonPanel.cs │ │ │ ├── ContextGallery.cs │ │ │ ├── EditExtended.cs │ │ │ ├── IseContextPanel.cs │ │ │ ├── IseContextPanelBase.cs │ │ │ ├── IseContextPanelEx.cs │ │ │ ├── IsePluginPanel.cs │ │ │ ├── IsePluginStrip.cs │ │ │ ├── LanguageGallery.cs │ │ │ ├── LanguageHistory.cs │ │ │ ├── ListViewComparer.cs │ │ │ ├── Marquee.cs │ │ │ ├── MruGallery.cs │ │ │ ├── MultilistExtended.cs │ │ │ ├── PSCheckList.cs │ │ │ ├── PasswordExtended.cs │ │ │ ├── PowerShellListView.cs │ │ │ ├── RibbonActionScriptsPanel.cs │ │ │ ├── RibbonExportScriptsPanel.cs │ │ │ ├── SessionCompleteEventArgs.cs │ │ │ ├── SessionIDGallery.cs │ │ │ ├── SpeJobMonitor.cs │ │ │ ├── TreelistExtended.cs │ │ │ ├── UserGallery.cs │ │ │ └── UserPicker.cs │ ├── Commands │ │ ├── BaseCommand.cs │ │ ├── BaseIndexCommand.cs │ │ ├── BaseItemCommand.cs │ │ ├── BaseItemRecursiveCommand.cs │ │ ├── BaseLanguageAgnosticItemCommand.cs │ │ ├── Data │ │ │ ├── AddBaseTemplateCommand.cs │ │ │ ├── AddItemVersionCommand.cs │ │ │ ├── BaseTemplateItemCommand.cs │ │ │ ├── Clones │ │ │ │ ├── BaseItemCloneNotificationCommand.cs │ │ │ │ ├── ConvertFromItemCloneCommand.cs │ │ │ │ ├── GetItemCloneCommand.cs │ │ │ │ ├── GetItemCloneNotificationCommand.cs │ │ │ │ ├── NewItemCloneCommand.cs │ │ │ │ ├── NotificationAction.cs │ │ │ │ ├── NotificationType.cs │ │ │ │ └── ReceiveItemCloneNotificationCommand.cs │ │ │ ├── DatabaseContextBaseCommand.cs │ │ │ ├── ExpandTokensCommand.cs │ │ │ ├── GetArchiveCommand.cs │ │ │ ├── GetArchiveItemCommand.cs │ │ │ ├── GetDatabaseCommand.cs │ │ │ ├── GetItemFieldCommand.cs │ │ │ ├── GetItemReferenceCommand.cs │ │ │ ├── GetItemReferrerCommand.cs │ │ │ ├── GetItemTemplateCommand.cs │ │ │ ├── InitializeItemCommand.cs │ │ │ ├── NewUsingBlockCommand.cs │ │ │ ├── PublishItemCommand.cs │ │ │ ├── RemoveArchiveItemCommand.cs │ │ │ ├── RemoveBaseTemplateCommand.cs │ │ │ ├── RemoveItemVersionCommand.cs │ │ │ ├── ResetItemFieldCommand.cs │ │ │ ├── RestoreArchiveItemCommand.cs │ │ │ ├── Search │ │ │ │ ├── BaseIndexItemCommand.cs │ │ │ │ ├── BaseSearchCommand.cs │ │ │ │ ├── FilterType.cs │ │ │ │ ├── FindItemCommand.cs │ │ │ │ ├── GetSearchIndexCommand.cs │ │ │ │ ├── InitializeSearchIndexCommand.cs │ │ │ │ ├── InitializeSearchIndexItemCommand.cs │ │ │ │ ├── NewSearchPredicateCommand.cs │ │ │ │ ├── RemoveSearchIndexItemCommand.cs │ │ │ │ ├── ResumeSearchIndexCommand.cs │ │ │ │ ├── SearchCriteria.cs │ │ │ │ ├── SearchOperation.cs │ │ │ │ ├── StopSearchIndexCommand.cs │ │ │ │ ├── SuspendSearchIndexCommand.cs │ │ │ │ └── UpdateSearchIndexItemCommand.cs │ │ │ ├── SetItemTemplateCommand.cs │ │ │ ├── TestBaseTemplateCommand.cs │ │ │ ├── TestRuleCommand.cs │ │ │ └── UpdateItemReferrerCommand.cs │ │ ├── Diagnostics │ │ │ └── WriteLogCommand.cs │ │ ├── ErrorIds.cs │ │ ├── Interactive │ │ │ ├── BaseFormCommand.cs │ │ │ ├── BaseListViewCommand.cs │ │ │ ├── BaseShellCommand.cs │ │ │ ├── CloseWindowCommand.cs │ │ │ ├── InvokeJavaScriptCommand.cs │ │ │ ├── InvokeShellCommandCommand.cs │ │ │ ├── Messages │ │ │ │ ├── BasePipelineMessageWithResult.cs │ │ │ │ ├── CloseWindowMessage.cs │ │ │ │ ├── DownloadMessage.cs │ │ │ │ ├── IMessageWithResult.cs │ │ │ │ ├── InvokeJavaScriptMessage.cs │ │ │ │ ├── OutDownloadMessage.cs │ │ │ │ ├── PromptMessage.cs │ │ │ │ ├── ShellCommandInItemContextMessage.cs │ │ │ │ ├── ShowApplicationMessage.cs │ │ │ │ ├── ShowListViewMessage.cs │ │ │ │ ├── ShowModalDialogPsMessage.cs │ │ │ │ ├── ShowMultiValuePromptMessage.cs │ │ │ │ ├── ShowResultsMessage.cs │ │ │ │ ├── ShowSuspendDialogMessage.cs │ │ │ │ └── ShowUploadFileMessage.cs │ │ │ ├── OutDownloadCommand.cs │ │ │ ├── ReadVariableCommand.cs │ │ │ ├── ReceiveFileCommand.cs │ │ │ ├── SendFileCommand.cs │ │ │ ├── SendSheerMessageCommand.cs │ │ │ ├── ShowAlertCommand.cs │ │ │ ├── ShowApplicationCommand.cs │ │ │ ├── ShowConfirmCommand.cs │ │ │ ├── ShowFieldEditorCommand.cs │ │ │ ├── ShowInputCommand.cs │ │ │ ├── ShowListViewCommand.cs │ │ │ ├── ShowListViewFeatures.cs │ │ │ ├── ShowModalDialogCommand.cs │ │ │ ├── ShowResultsCommand.cs │ │ │ ├── ShowYesNoCancelCommand.cs │ │ │ └── UpdateListViewCommand.cs │ │ ├── Jobs │ │ │ └── GetSitecoreJobCommand.cs │ │ ├── Modules │ │ │ ├── GetSpeModule.cs │ │ │ └── GetSpeModuleFeatureRoot.cs │ │ ├── Packages │ │ │ ├── BasePackageCommand.cs │ │ │ ├── ExportPackageCommand.cs │ │ │ ├── GetPackageCommand.cs │ │ │ ├── GetPackageItemCommand.cs │ │ │ ├── InstallPackageCommand.cs │ │ │ ├── NewExplicitFileSourceCommand.cs │ │ │ ├── NewExplicitItemSourceCommand.cs │ │ │ ├── NewFileSourceCommand.cs │ │ │ ├── NewItemSourceCommand.cs │ │ │ ├── NewPackageCommand.cs │ │ │ └── NewSecuritySourceCommand.cs │ │ ├── Presentation │ │ │ ├── AddPlaceholderSettingCommand.cs │ │ │ ├── AddRenderingCommand.cs │ │ │ ├── BaseLayoutCommand.cs │ │ │ ├── BaseLayoutPerDeviceCommand.cs │ │ │ ├── BasePlaceholderSettingCommand.cs │ │ │ ├── BaseRenderingCommand.cs │ │ │ ├── BaseRenderingParameterCommand.cs │ │ │ ├── GetLayoutCommand.cs │ │ │ ├── GetLayoutDeviceCommand.cs │ │ │ ├── GetPlaceholderSettingCommand.cs │ │ │ ├── GetRenderingCommand.cs │ │ │ ├── GetRenderingParameterCommand.cs │ │ │ ├── MergeLayoutCommand.cs │ │ │ ├── NewPlaceHolderSettingCommand.cs │ │ │ ├── NewRenderingCommand.cs │ │ │ ├── RemoveLayoutCommand.cs │ │ │ ├── RemovePlaceholderSettingCommand.cs │ │ │ ├── RemoveRenderingCommand.cs │ │ │ ├── RemoveRenderingParameterCommand.cs │ │ │ ├── ResetLayoutCommand.cs │ │ │ ├── SetLayoutCommand.cs │ │ │ ├── SetRenderingCommand.cs │ │ │ ├── SetRenderingParameterCommand.cs │ │ │ └── SwitchRenderingCommand.cs │ │ ├── Remoting │ │ │ ├── ConvertFromCliXmlCommand.cs │ │ │ └── ConvertToCliXmlCommand.cs │ │ ├── Scheduler │ │ │ ├── GetTaskScheduleCommand.cs │ │ │ └── StartTaskScheduleCommand.cs │ │ ├── ScriptSessions │ │ │ ├── BaseScriptSessionCommand.cs │ │ │ ├── GetScriptSessionCommand.cs │ │ │ ├── ReceiveScriptSessionCommand.cs │ │ │ ├── RemoveScriptSessionCommand.cs │ │ │ ├── StartScriptSessionCommand.cs │ │ │ ├── StopScriptSessionCommand.cs │ │ │ └── WaitScriptSessionCommand.cs │ │ ├── Security │ │ │ ├── AccountIdentity.cs │ │ │ ├── Accounts │ │ │ │ ├── AddRoleMemberCommand.cs │ │ │ │ ├── BaseSecurityCommand.cs │ │ │ │ ├── DisableUserCommand.cs │ │ │ │ ├── EnableUserCommand.cs │ │ │ │ ├── GetDomainCommand.cs │ │ │ │ ├── GetRoleCommand.cs │ │ │ │ ├── GetRoleMemberCommand.cs │ │ │ │ ├── GetUserCommand.cs │ │ │ │ ├── NewDomainCommand.cs │ │ │ │ ├── NewRoleCommand.cs │ │ │ │ ├── NewUserCommand.cs │ │ │ │ ├── RemoveDomainCommand.cs │ │ │ │ ├── RemoveRoleCommand.cs │ │ │ │ ├── RemoveRoleMemberCommand.cs │ │ │ │ ├── RemoveUserCommand.cs │ │ │ │ ├── SetUserCommand.cs │ │ │ │ ├── SetUserPasswordCommand.cs │ │ │ │ ├── TestAccountCommand.cs │ │ │ │ └── UnlockUserCommand.cs │ │ │ ├── Items │ │ │ │ ├── AddItemAclCommand.cs │ │ │ │ ├── BaseEditItemCommand.cs │ │ │ │ ├── BaseGovernanceCommand.cs │ │ │ │ ├── BaseItemAclCommand.cs │ │ │ │ ├── ClearItemAclCommand.cs │ │ │ │ ├── GetItemAclCommand.cs │ │ │ │ ├── LockItemCommand.cs │ │ │ │ ├── NewItemAclCommand.cs │ │ │ │ ├── ProtectItemCommand.cs │ │ │ │ ├── SetItemAclCommand.cs │ │ │ │ ├── TestItemAclCommand.cs │ │ │ │ ├── UnlockItemCommand.cs │ │ │ │ └── UnprotectItemCommand.cs │ │ │ └── Session │ │ │ │ ├── GetSessionCommand.cs │ │ │ │ ├── LoginUserCommand.cs │ │ │ │ ├── LogoutUserCommand.cs │ │ │ │ └── RemoveSessionCommand.cs │ │ ├── Serialization │ │ │ ├── ExportItemCommand.cs │ │ │ ├── ExportRoleCommand.cs │ │ │ ├── ExportUserCommand.cs │ │ │ ├── GetPresetCommand.cs │ │ │ ├── ImportItemCommand.cs │ │ │ ├── ImportRoleCommand.cs │ │ │ └── ImportUserCommand.cs │ │ ├── Session │ │ │ ├── GetCacheCommand.cs │ │ │ ├── GetUserAgent.cs │ │ │ ├── ImportFunctionCommand.cs │ │ │ ├── InvokeScriptCommand.cs │ │ │ ├── RestartApplicationCommand.cs │ │ │ └── SetHostPropertyCommand.cs │ │ ├── UpdatePackages │ │ │ ├── ExportUpdatePackageCommand.cs │ │ │ ├── GetUpdatePackageDiffCommandsCommand.cs │ │ │ ├── InstallUpdatePackageCommand.cs │ │ │ └── NewUpdatePackageCommandCommand.cs │ │ └── Workflows │ │ │ ├── GetItemWorkflowEventCommand.cs │ │ │ ├── InvokeWorkflowCommand.cs │ │ │ └── NewItemWorkflowEventCommand.cs │ ├── Core │ │ ├── Data │ │ │ └── DisablePropertyExpander.cs │ │ ├── Debugging │ │ │ ├── Utility │ │ │ │ └── Validate.cs │ │ │ ├── VariableContainerDetails.cs │ │ │ ├── VariableDetails.cs │ │ │ └── VariableDetailsBase.cs │ │ ├── Diagnostics │ │ │ └── PowerShellLog.cs │ │ ├── Extensions │ │ │ ├── CmdletExtensions.cs │ │ │ ├── CustomFieldAccessor.cs │ │ │ ├── EnumerableExtensions.cs │ │ │ ├── ExpressionExtensions.cs │ │ │ ├── FieldExtensions.cs │ │ │ ├── ItemEqualityComparer.cs │ │ │ ├── ItemExtensions.cs │ │ │ ├── ItemShellExtensions.cs │ │ │ ├── LanguageExtensions.cs │ │ │ ├── MessageExtensions.cs │ │ │ ├── NameValueCollectionExtensions.cs │ │ │ ├── PowerShellExtensions.cs │ │ │ ├── StringExtensions.cs │ │ │ └── TypeExtensions.cs │ │ ├── Host │ │ │ ├── BufferSplitterCollection.cs │ │ │ ├── CommandCompletion.cs │ │ │ ├── CommandHelp.cs │ │ │ ├── OutputBuffer.cs │ │ │ ├── OutputLine.cs │ │ │ ├── OutputLineType.cs │ │ │ ├── ScriptExecutionResult.cs │ │ │ ├── ScriptSession.cs │ │ │ ├── ScriptSessionManager.cs │ │ │ ├── ScriptingHost.cs │ │ │ ├── ScriptingHostPrivateData.cs │ │ │ ├── ScriptingHostRawUserInterface.cs │ │ │ ├── ScriptingHostUserInterface.cs │ │ │ └── SpeSitecorePowerShellSnapIn.cs │ │ ├── Modules │ │ │ ├── IntegrationPoint.cs │ │ │ ├── IntegrationPoints.cs │ │ │ ├── Module.cs │ │ │ ├── ModuleManager.cs │ │ │ └── ModuleMonitor.cs │ │ ├── Processors │ │ │ └── RewriteUrl.cs │ │ ├── Provider │ │ │ ├── ItemContentReader.cs │ │ │ ├── ItemContentReaderWriterBase.cs │ │ │ ├── ItemContentWriter.cs │ │ │ ├── PsSitecoreItemProvider.Content.cs │ │ │ ├── PsSitecoreItemProvider.DynamicParameters.cs │ │ │ ├── PsSitecoreItemProvider.Maintenance.cs │ │ │ ├── PsSitecoreItemProvider.PathHandling.cs │ │ │ ├── PsSitecoreItemProvider.PropertyProvider.cs │ │ │ ├── PsSitecoreItemProvider.cs │ │ │ ├── PsSitecoreItemProvider5.cs │ │ │ └── PsSitecoreItemProviderFactory.cs │ │ ├── Rules │ │ │ ├── PowerShellDelegatedAccess.cs │ │ │ ├── PowerShellExperienceButtonChromeName.cs │ │ │ ├── PowerShellExperienceButtonChromeType.cs │ │ │ ├── PowerShellIseSelectionLength.cs │ │ │ ├── PowerShellIseSessionState.cs │ │ │ ├── PowerShellListViewNameMatch.cs │ │ │ ├── PowerShellSessionExists.cs │ │ │ ├── PowerShellSessionExistsWithVariable.cs │ │ │ └── PowerShellUserRoleWithInheritanceCondition.cs │ │ ├── Serialization │ │ │ ├── PresetFactory.cs │ │ │ ├── PresetWorker.cs │ │ │ └── SingleEntry.cs │ │ ├── Settings │ │ │ ├── ApplicationNames.cs │ │ │ ├── ApplicationSettings.cs │ │ │ ├── Authorization │ │ │ │ ├── AuthCacheEntry.cs │ │ │ │ ├── AuthorizationEntry.cs │ │ │ │ ├── ContentEditorWarningScript.cs │ │ │ │ ├── DelegatedAccessMonitor.cs │ │ │ │ ├── DropElevatedSessionState.cs │ │ │ │ ├── ElevateSessionState.cs │ │ │ │ ├── ScriptItemSecurityEventHandler.cs │ │ │ │ ├── ServiceAuthenticationManager.cs │ │ │ │ ├── ServiceAuthorizationManager.cs │ │ │ │ ├── SessionElevationErrors.cs │ │ │ │ ├── SessionElevationManager.cs │ │ │ │ ├── SharedSecretAuthenticationProvider.cs │ │ │ │ └── WebServiceSettings.cs │ │ │ ├── DelegatedAccessManager.cs │ │ │ ├── FieldNames.cs │ │ │ ├── PredefinedVariables.cs │ │ │ ├── RenamedCommands.cs │ │ │ ├── StringTokens.cs │ │ │ └── TypeAccelerators.cs │ │ ├── Utility │ │ │ ├── AnonymousTypeUtils.cs │ │ │ ├── PathUtilities.cs │ │ │ ├── RulesUtils.cs │ │ │ ├── SpeTimer.cs │ │ │ ├── StreamUtils.cs │ │ │ ├── TemplateUtils.cs │ │ │ ├── WildcardUtils.cs │ │ │ └── ZipUtils.cs │ │ ├── Validation │ │ │ ├── AutocompleteSetAttribute.cs │ │ │ └── MiscAutocompleteSets.cs │ │ └── VersionDecoupling │ │ │ ├── CurrentVersion.cs │ │ │ ├── SitecoreVersion.cs │ │ │ └── TypeResolver.cs │ ├── Integrations │ │ ├── Gutters │ │ │ └── GutterStatusRenderer.cs │ │ ├── Install │ │ │ ├── AttributesContainer.cs │ │ │ └── ScriptPostStep.cs │ │ ├── Pipelines │ │ │ ├── AssemblyResolver.cs │ │ │ ├── ContentEditorWarningScript.cs │ │ │ ├── GetItemMasters.cs │ │ │ ├── LoggedInScript.cs │ │ │ ├── LoggingInScript.cs │ │ │ ├── LogoutScript.cs │ │ │ ├── PageEditorExperienceButtonScript.cs │ │ │ ├── PageEditorNotificationScript.cs │ │ │ └── PipelineProcessor.cs │ │ ├── Processors │ │ │ ├── BaseScriptedDataSource.cs │ │ │ ├── ScriptedDataSource.cs │ │ │ ├── ScriptedRenderRendering.cs │ │ │ ├── ScriptedRenderingDataSourceResolve.cs │ │ │ ├── ScriptedRenderingDataSourceRoots.cs │ │ │ └── SkipPowerShellScriptItems.cs │ │ ├── Tasks │ │ │ ├── ExecuteScriptTask.cs │ │ │ └── ScriptedItemEventHandler.cs │ │ └── Workflows │ │ │ └── ScriptAction.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── CustomDictionary.xml │ │ └── GlobalSuppressions.cs │ ├── Spe.csproj │ ├── Templates.cs │ ├── Texts.cs │ ├── Utility │ │ ├── DateConverter.cs │ │ └── UrlHandleWrapper.cs │ ├── Version.cs │ ├── packages.config │ ├── sitecore modules │ │ ├── PowerShell │ │ │ ├── Assets │ │ │ │ ├── Sitecore.Types.ps1xml │ │ │ │ ├── Sitecore.Views.ps1xml │ │ │ │ ├── Spe.dll-help.maml │ │ │ │ ├── Splitter.png │ │ │ │ ├── TabClose.png │ │ │ │ ├── spe-32.png │ │ │ │ ├── version.html │ │ │ │ └── working.gif │ │ │ ├── Scripts │ │ │ │ ├── PsHSplitter.js │ │ │ │ ├── Runner.js │ │ │ │ ├── SpeShared.js │ │ │ │ ├── VariablePrompt.js │ │ │ │ ├── ace │ │ │ │ │ ├── ace.js │ │ │ │ │ ├── emmet-core │ │ │ │ │ │ └── emmet.js │ │ │ │ │ ├── ext-beautify.js │ │ │ │ │ ├── ext-chromevox.js │ │ │ │ │ ├── ext-elastic_tabstops_lite.js │ │ │ │ │ ├── ext-emmet.js │ │ │ │ │ ├── ext-error_marker.js │ │ │ │ │ ├── ext-keybinding_menu.js │ │ │ │ │ ├── ext-language_tools.js │ │ │ │ │ ├── ext-linking.js │ │ │ │ │ ├── ext-modelist.js │ │ │ │ │ ├── ext-old_ie.js │ │ │ │ │ ├── ext-searchbox.js │ │ │ │ │ ├── ext-settings_menu.js │ │ │ │ │ ├── ext-spellcheck.js │ │ │ │ │ ├── ext-split.js │ │ │ │ │ ├── ext-static_highlight.js │ │ │ │ │ ├── ext-statusbar.js │ │ │ │ │ ├── ext-textarea.js │ │ │ │ │ ├── ext-themelist.js │ │ │ │ │ ├── ext-whitespace.js │ │ │ │ │ ├── mode-powershell.js │ │ │ │ │ ├── snippets-powershell.js │ │ │ │ │ ├── snippets │ │ │ │ │ │ ├── powershell.js │ │ │ │ │ │ └── text.js │ │ │ │ │ └── theme-powershellise.js │ │ │ │ ├── c3.min.js │ │ │ │ ├── clipboard.min.js │ │ │ │ ├── console.js │ │ │ │ ├── d3.min.js │ │ │ │ ├── flexie.min.js │ │ │ │ ├── ise.js │ │ │ │ ├── jquery-ui.min.js │ │ │ │ ├── jquery.min.js │ │ │ │ ├── jquery.mousewheel-min.js │ │ │ │ ├── jquery.qtip.js │ │ │ │ ├── jquery.qtip.min.js │ │ │ │ ├── jquery.terminal.js │ │ │ │ ├── listview.js │ │ │ │ ├── purl.js │ │ │ │ ├── reports.js │ │ │ │ ├── split.js │ │ │ │ ├── token_tooltip.js │ │ │ │ ├── typed.min.js │ │ │ │ └── validation.js │ │ │ ├── Services │ │ │ │ ├── PowerShellWebService.asmx │ │ │ │ ├── PowerShellWebService.asmx.cs │ │ │ │ ├── RemoteAutomation.asmx │ │ │ │ ├── RemoteAutomation.asmx.cs │ │ │ │ ├── RemoteScriptCall.ashx │ │ │ │ ├── RemoteScriptCall.ashx.cs │ │ │ │ └── web.config │ │ │ ├── Styles │ │ │ │ ├── Console.css │ │ │ │ ├── Dialogs.css │ │ │ │ ├── Gallery.css │ │ │ │ ├── IFrame.css │ │ │ │ ├── ListView.css │ │ │ │ ├── Runner.css │ │ │ │ ├── VariablePrompt.css │ │ │ │ ├── c3.min.css │ │ │ │ ├── images │ │ │ │ │ ├── ui-icons_444444_256x240.png │ │ │ │ │ ├── ui-icons_555555_256x240.png │ │ │ │ │ ├── ui-icons_777620_256x240.png │ │ │ │ │ ├── ui-icons_777777_256x240.png │ │ │ │ │ ├── ui-icons_cc0000_256x240.png │ │ │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ │ ├── ise.css │ │ │ │ ├── jquery-ui.min.css │ │ │ │ ├── jquery.qtip.min.css │ │ │ │ ├── jquery.terminal.css │ │ │ │ └── reports.css │ │ │ └── web.config │ │ ├── Shell │ │ │ └── PowerShell │ │ │ │ ├── ConfirmChoice.xml │ │ │ │ ├── ContextGallery.xml │ │ │ │ ├── DownloadFile.xml │ │ │ │ ├── GetStringResponse.xml │ │ │ │ ├── LanguageGallery.Option.xml │ │ │ │ ├── LanguageGallery.xml │ │ │ │ ├── MruGallery.SearchItem.xml │ │ │ │ ├── MruGallery.xml │ │ │ │ ├── PowerShellConsole.xml │ │ │ │ ├── PowerShellExternalView.xml │ │ │ │ ├── PowerShellIse.xml │ │ │ │ ├── PowerShellMultiValuePrompt.xml │ │ │ │ ├── PowerShellReports.xml │ │ │ │ ├── PowerShellResultViewerList.xml │ │ │ │ ├── PowerShellResultViewerText.xml │ │ │ │ ├── PowerShellRunner.xml │ │ │ │ ├── PowerShellScriptBrowser.xml │ │ │ │ ├── PowerShellSessionElevation.xml │ │ │ │ ├── PsHSplitter.xml │ │ │ │ ├── SessionIDGallery.Option.xml │ │ │ │ ├── SessionIDGallery.xml │ │ │ │ ├── UploadFile │ │ │ │ ├── PowerShellUploadFile.aspx │ │ │ │ ├── PowerShellUploadFile.xml │ │ │ │ └── PowerShellUploadFile2.aspx │ │ │ │ ├── UserGallery.Option.xml │ │ │ │ └── UserGallery.xml │ │ └── items │ │ │ ├── core │ │ │ └── items.core.spe.dat.tmp │ │ │ ├── master │ │ │ └── items.master.spe.dat.tmp │ │ │ └── web │ │ │ └── items.web.spe.dat.tmp │ └── sitecore │ │ ├── admin │ │ └── PowerShell.aspx │ │ └── shell │ │ ├── Themes │ │ └── Standard │ │ │ └── PowerShell.zip │ │ └── version │ │ └── Modules │ │ └── Sitecore PowerShell Extensions.version ├── UserConfiguration │ └── App_Config │ │ └── Include │ │ └── z.Spe │ │ ├── z.Spe.Development.User.config │ │ └── z.Spe.Development.User.config.sample ├── deploy.json ├── deploy.targets └── deploy.user.json.sample ├── translations ├── ExportTranslationCsv.ps1 ├── ImportTranslationCsv.ps1 ├── StripUntranslatedPhrases.ps1 ├── da │ ├── spe-translation-core-da.csv │ ├── spe-translation-core-da.xml │ ├── spe-translation-master-da.csv │ ├── spe-translation-master-da.xml │ ├── spe-translation-scripts-master-da.csv │ ├── spe-translation-scripts-master-da.xml │ ├── spe-translation-ui-core-da.csv │ ├── spe-translation-ui-core-da.xml │ ├── spe-translation-ui-master-da.csv │ └── spe-translation-ui-master-da.xml ├── de-de │ ├── spe-translation-authorable-reports-core-de-de.csv │ ├── spe-translation-authorable-reports-core-de-de.xml │ ├── spe-translation-authorable-reports-master-de-de.csv │ ├── spe-translation-authorable-reports-master-de-de.xml │ ├── spe-translation-core-de-de.csv │ ├── spe-translation-core-de-de.xml │ ├── spe-translation-master-de-de.csv │ ├── spe-translation-master-de-de.xml │ ├── spe-translation-scripts-master-de-de.csv │ └── spe-translation-scripts-master-de-de.xml ├── ja-jp │ ├── spe-translation-authorable-reports-core-ja-jp.xml │ ├── spe-translation-authorable-reports-master-ja-jp.xml │ ├── spe-translation-core-ja-JP.xml │ ├── spe-translation-master-ja-JP.xml │ └── spe-translation-scripts-master-ja-jp.xml └── zh-cn │ ├── spe-translation-authorable-reports-core-zh-cn.xml │ ├── spe-translation-authorable-reports-master-zh-cn.xml │ ├── spe-translation-core-zh-cn.xml │ ├── spe-translation-master-zh-cn.xml │ └── spe-translation-scripts-master-zh-cn.xml └── unicorn └── SPE ├── Core ├── Module │ ├── PowerShell.yml │ └── PowerShell │ │ ├── Console Colors.yml │ │ ├── Console Colors │ │ ├── Black.yml │ │ ├── Blue.yml │ │ ├── Cyan.yml │ │ ├── DarkBlue.yml │ │ ├── DarkCyan.yml │ │ ├── DarkGray.yml │ │ ├── DarkGreen.yml │ │ ├── DarkMagenta.yml │ │ ├── DarkRed.yml │ │ ├── DarkYellow.yml │ │ ├── Gray.yml │ │ ├── Green.yml │ │ ├── Magenta.yml │ │ ├── Red.yml │ │ ├── White.yml │ │ └── Yellow.yml │ │ ├── Delegated Access.yml │ │ ├── Fonts.yml │ │ ├── Fonts │ │ ├── Cascadia Code.yml │ │ ├── Consolas.yml │ │ ├── Courier New.yml │ │ ├── Inconsolata.yml │ │ ├── Lucida Console.yml │ │ ├── Monaco.yml │ │ ├── Source Code Pro.yml │ │ └── monospace.yml │ │ ├── Script Library.yml │ │ ├── Settings.yml │ │ ├── Settings │ │ ├── Console.yml │ │ ├── Console │ │ │ └── All Users.yml │ │ ├── Context.yml │ │ ├── Context │ │ │ └── All Users.yml │ │ ├── Default.yml │ │ ├── Default │ │ │ └── All Users.yml │ │ ├── ISE.yml │ │ ├── ISE │ │ │ └── All Users.yml │ │ ├── RemoteAutomation.yml │ │ └── RemoteAutomation │ │ │ └── All Users.yml │ │ ├── Snippets.yml │ │ └── Snippets │ │ ├── Dialogs.yml │ │ ├── Dialogs │ │ ├── Read-Variable with Date Filter.yml │ │ └── Read-Variable with Dropdown.yml │ │ ├── Functions.yml │ │ ├── Functions │ │ ├── Function - Advanced.yml │ │ └── Function - Simple.yml │ │ ├── Notifications.yml │ │ ├── Notifications │ │ ├── Content Editor Gutter.yml │ │ ├── Content Editor Warning.yml │ │ └── Experience Editor Warning.yml │ │ ├── Reporting.yml │ │ ├── Reporting │ │ └── Report using Show-ListView.yml │ │ ├── Search.yml │ │ ├── Search │ │ ├── Find-Item with Criteria.yml │ │ ├── Find-Item with Predicate.yml │ │ ├── Find-Item with Scope Query.yml │ │ └── Find-Item with Where Values.yml │ │ ├── Statements.yml │ │ └── Statements │ │ ├── If Else.yml │ │ ├── Sql Query.yml │ │ ├── Switch.yml │ │ └── Variables.yml └── Templates │ ├── Modules.yml │ └── Modules │ ├── PowerShell Authorable Reports.yml │ ├── PowerShell Authorable Reports │ ├── PowerShell Rule Library.yml │ ├── PowerShell Rule Library │ │ └── __Standard Values.yml │ ├── PowerShell Rule.yml │ └── PowerShell Rule │ │ ├── Filter.yml │ │ ├── Filter │ │ └── FilterRule.yml │ │ ├── Report.yml │ │ ├── Report │ │ └── DefaultFields.yml │ │ ├── Search.yml │ │ ├── Search │ │ ├── Query.yml │ │ └── RootItem.yml │ │ └── __Standard Values.yml │ ├── PowerShell Console.yml │ └── PowerShell Console │ ├── Font Definition.yml │ ├── Font Definition │ ├── Data.yml │ ├── Data │ │ ├── Key.yml │ │ └── Phrase.yml │ └── __Standard Values.yml │ ├── PowerShell Console Settings.yml │ ├── PowerShell Console Settings │ ├── Appearance.yml │ ├── Appearance │ │ ├── BackgroundColor.yml │ │ ├── FontFamily.yml │ │ ├── FontSize.yml │ │ ├── ForegroundColor.yml │ │ └── HostWidth.yml │ ├── Behaviour.yml │ └── Behaviour │ │ ├── LastScript.yml │ │ ├── LiveAutocompletion.yml │ │ ├── PerTabOutput.yml │ │ └── SaveLastScript.yml │ ├── PowerShell Delegated Access.yml │ ├── PowerShell Delegated Access │ ├── Access Mapping.yml │ └── Access Mapping │ │ ├── ElevatedRole.yml │ │ ├── Enabled.yml │ │ ├── ImpersonatedUser.yml │ │ └── ScriptItem.yml │ ├── PowerShell Script Library.yml │ ├── PowerShell Script Library │ ├── Interactive.yml │ ├── Interactive │ │ ├── EnableRule.yml │ │ └── ShowRule.yml │ └── __Standard Values.yml │ ├── PowerShell Script Module Folde.yml │ ├── PowerShell Script Module Folde │ └── __Standard Values.yml │ ├── PowerShell Script Module.yml │ ├── PowerShell Script Module │ ├── About.yml │ ├── About │ │ ├── Description.yml │ │ ├── History.yml │ │ ├── Module Version.yml │ │ └── Whats new.yml │ ├── Copyright.yml │ ├── Copyright │ │ ├── Author.yml │ │ ├── Category.yml │ │ ├── Email.yml │ │ ├── License.yml │ │ ├── Published by.yml │ │ ├── Support.yml │ │ └── Url.yml │ ├── Module Activation.yml │ ├── Module Activation │ │ └── Enabled.yml │ └── __Standard Values.yml │ ├── PowerShell Script Workflow Act.yml │ ├── PowerShell Script Workflow Act │ ├── Data.yml │ ├── Data │ │ └── Type.yml │ ├── Interactive.yml │ ├── Interactive │ │ └── EnableRule.yml │ ├── Scripting.yml │ ├── Scripting │ │ └── Script.yml │ └── __Standard Values.yml │ ├── PowerShell Script.yml │ ├── PowerShell Script │ ├── Interactive.yml │ ├── Interactive │ │ ├── EnableRule.yml │ │ └── ShowRule.yml │ ├── Scripting.yml │ ├── Scripting │ │ └── Script.yml │ ├── Session Persistency.yml │ ├── Session Persistency │ │ └── PersistentSessionId.yml │ └── __Standard Values.yml │ ├── Snippet Definition Folder.yml │ ├── Snippet Definition Folder │ └── __Standard Values.yml │ ├── Snippet Definition.yml │ └── Snippet Definition │ ├── Scripting.yml │ ├── Scripting │ └── Script.yml │ └── __Standard Values.yml ├── Roles └── sitecore │ └── PowerShell Extensions Remoting.yml ├── Rules ├── Definition │ ├── PowerShell.yml │ └── PowerShell │ │ ├── Tags.yml │ │ └── Tags │ │ └── Default.yml ├── Experience Button Rules │ ├── PowerShell Experience Buttons.yml │ └── PowerShell Experience Buttons │ │ ├── Chrome Name.yml │ │ ├── Chrome Name │ │ ├── State.yml │ │ └── State │ │ │ ├── modified.yml │ │ │ └── saved.yml │ │ ├── Chrome Type.yml │ │ ├── Chrome Type │ │ ├── of Type.yml │ │ └── of Type │ │ │ ├── field.yml │ │ │ ├── placeholder.yml │ │ │ └── rendering.yml │ │ ├── Tags.yml │ │ ├── Tags │ │ └── Default.yml │ │ └── Visibility.yml ├── Experience Button Tags │ ├── PowerShell Experience Buttons.yml │ └── PowerShell Experience Buttons │ │ └── Visibility.yml ├── ISE Rules │ ├── PowerShell ISE.yml │ └── PowerShell ISE │ │ ├── Selection Length.yml │ │ ├── Selection Length │ │ ├── Length of.yml │ │ └── Length of │ │ │ ├── selected.yml │ │ │ └── total.yml │ │ ├── Session State.yml │ │ ├── Session State │ │ ├── State.yml │ │ └── State │ │ │ ├── modified.yml │ │ │ └── saved.yml │ │ ├── Tags.yml │ │ ├── Tags │ │ └── Default.yml │ │ └── Visibility.yml ├── ISE Tags │ ├── PowerShell ISE.yml │ └── PowerShell ISE │ │ └── Visibility.yml ├── Rules │ ├── PowerShell.yml │ └── PowerShell │ │ ├── ListView name matching.yml │ │ ├── Persistent Session Initiated.yml │ │ ├── Persistent Session Variable De.yml │ │ ├── Tags.yml │ │ ├── Tags │ │ └── Default.yml │ │ └── Visibility.yml ├── Security Rules │ ├── PowerShell Security.yml │ └── PowerShell Security │ │ ├── Tags.yml │ │ ├── Tags │ │ └── Default.yml │ │ ├── User Role with inheritance.yml │ │ ├── User has Delegated Access.yml │ │ └── Visibility.yml └── Tags │ ├── PowerShell.yml │ └── PowerShell │ └── Visibility.yml ├── Scripts └── SPE │ ├── SPE.yml │ └── SPE │ ├── Core.yml │ ├── Core │ ├── Platform.yml │ ├── Platform │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ │ ├── Context Menu.yml │ │ │ ├── Context Menu │ │ │ │ ├── Edit Delegated Access.yml │ │ │ │ ├── Execute Script.yml │ │ │ │ └── Purge Empty Libraries.yml │ │ │ ├── Insert Item.yml │ │ │ └── Insert Item │ │ │ │ ├── Integration Point Libraries.yml │ │ │ │ ├── Module Wizard.yml │ │ │ │ ├── PowerShell Action.yml │ │ │ │ └── PowerShell Delegated Access.yml │ │ ├── Create Language Dictionary ent.yml │ │ ├── Development.yml │ │ ├── Development │ │ │ ├── Delegated Access Editor.yml │ │ │ ├── Integration points.yml │ │ │ ├── Integration points │ │ │ │ ├── Content Editor Context Menu.yml │ │ │ │ ├── Content Editor Context Menu │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Content Editor Contextual Ribb.yml │ │ │ │ ├── Content Editor Contextual Ribb │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Content Editor Gutter.yml │ │ │ │ ├── Content Editor Gutter │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Content Editor Insert Item.yml │ │ │ │ ├── Content Editor Insert Item │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Content Editor Ribbon.yml │ │ │ │ ├── Content Editor Ribbon │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Content Editor Warning.yml │ │ │ │ ├── Content Editor Warning │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Control Panel.yml │ │ │ │ ├── Control Panel │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Create Integration Points.yml │ │ │ │ ├── Event Handlers.yml │ │ │ │ ├── Event Handlers │ │ │ │ │ └── Create libraries for all event.yml │ │ │ │ ├── Functions.yml │ │ │ │ ├── Functions │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── ISE Plugin.yml │ │ │ │ ├── ISE Plugin │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── List View Exporters.yml │ │ │ │ ├── List View Exporters │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── List View Ribbon Actions.yml │ │ │ │ ├── List View Ribbon Actions │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Logged In Pipeline.yml │ │ │ │ ├── Logged In Pipeline │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Logging in Pipeline.yml │ │ │ │ ├── Logging in Pipeline │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Logout Pipeline.yml │ │ │ │ ├── Logout Pipeline │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Page Editor Experience Buttons.yml │ │ │ │ ├── Page Editor Experience Buttons │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Page Editor Notifications.yml │ │ │ │ ├── Page Editor Notifications │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Rebuild All Integrations.yml │ │ │ │ ├── Start Menu Reports.yml │ │ │ │ ├── Start Menu Reports │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Tasks.yml │ │ │ │ ├── Tasks │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Toolbox.yml │ │ │ │ ├── Toolbox │ │ │ │ │ └── Create Libraries.yml │ │ │ │ ├── Web API.yml │ │ │ │ └── Web API │ │ │ │ │ └── Create Libraries.yml │ │ │ ├── PowerShell Extensions Maintena.yml │ │ │ └── PowerShell Extensions Maintena │ │ │ │ ├── Create Missing Documentation F.yml │ │ │ │ ├── Generate Help Documentation.yml │ │ │ │ ├── Generate Language XMLs.yml │ │ │ │ ├── Populate Display Name for Item.yml │ │ │ │ ├── Prepare Console Distribution.yml │ │ │ │ ├── Serialize Changes.yml │ │ │ │ ├── Set up Runner Window Chrome.yml │ │ │ │ └── Update SPE items from serializ.yml │ │ ├── Functions.yml │ │ ├── Functions │ │ │ ├── BaseXlsx.yml │ │ │ ├── Clear-Archive.yml │ │ │ ├── Compress-Archive.yml │ │ │ ├── ConvertTo-Xlsx.yml │ │ │ ├── Create-IntegrationPoint.yml │ │ │ ├── Edit-DTWCleanScript.yml │ │ │ ├── Expand-Archive.yml │ │ │ ├── Export-Xlsx.yml │ │ │ ├── Get-DTWFileEncoding.yml │ │ │ ├── Get-LockedChildItem.yml │ │ │ ├── Invoke-ApiScript.yml │ │ │ ├── Invoke-SqlCommand.yml │ │ │ ├── New-PackagePostStep.yml │ │ │ ├── Purge-EmptyLibrary.yml │ │ │ ├── Remoting.yml │ │ │ ├── Remoting2.yml │ │ │ ├── Render-ReportField.yml │ │ │ └── Resolve-Error.yml │ │ ├── Internal.yml │ │ ├── Internal │ │ │ ├── Context Help.yml │ │ │ ├── Context Help │ │ │ │ ├── Command Help - md.yml │ │ │ │ ├── Command Help.yml │ │ │ │ └── Regenerate cmdlet md for Gitbo.yml │ │ │ ├── ISE Plugins.yml │ │ │ ├── ISE Plugins │ │ │ │ ├── Format.yml │ │ │ │ ├── Scripts containing.yml │ │ │ │ └── Snippet.yml │ │ │ ├── Integrations.yml │ │ │ ├── Integrations │ │ │ │ ├── Content Editor Contextual Ribb.yml │ │ │ │ ├── Content Editor Gutter.yml │ │ │ │ ├── Content Editor Ribbon.yml │ │ │ │ └── Control Panel.yml │ │ │ ├── List View.yml │ │ │ └── List View │ │ │ │ ├── Export.yml │ │ │ │ ├── Export │ │ │ │ ├── CSV.yml │ │ │ │ ├── Email.yml │ │ │ │ ├── Excel.yml │ │ │ │ ├── HTML.yml │ │ │ │ ├── JSON.yml │ │ │ │ └── XML.yml │ │ │ │ ├── Ribbon.yml │ │ │ │ └── Ribbon │ │ │ │ ├── Item.yml │ │ │ │ ├── Item │ │ │ │ ├── Edit.yml │ │ │ │ └── Open.yml │ │ │ │ ├── ScriptSession.yml │ │ │ │ └── ScriptSession │ │ │ │ ├── Kill.yml │ │ │ │ ├── Open.yml │ │ │ │ └── Refresh.yml │ │ ├── Reusable.yml │ │ ├── Reusable │ │ │ └── Get-StateField.yml │ │ ├── Toolbox.yml │ │ ├── Toolbox │ │ │ ├── About Sitecore PowerShell Exte.yml │ │ │ ├── PowerShell Background Session_.yml │ │ │ ├── Re-create site from sitemap.yml │ │ │ └── Rebuild script integration poi.yml │ │ ├── Upgrade.yml │ │ └── Upgrade │ │ │ └── Compatibility.yml │ ├── X-UnitTests.yml │ └── X-UnitTests │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ ├── Context Menu.yml │ │ └── Context Menu │ │ │ └── Run Unit Tests.yml │ │ ├── Platform.yml │ │ └── Platform │ │ ├── Cloning.yml │ │ ├── Cloning │ │ └── Clones and Notifications.yml │ │ ├── Functions.yml │ │ ├── Functions │ │ └── Test Invoke-ApiScript.yml │ │ ├── Provider.yml │ │ ├── Provider │ │ ├── Test Copy-Item.yml │ │ ├── Test Get-ChildItem.yml │ │ └── Test Get-Item.yml │ │ ├── Security.yml │ │ ├── Security │ │ ├── Test Get-Domain.yml │ │ ├── Test Get-Role.yml │ │ ├── Test Get-RoleMember.yml │ │ ├── Test Get-User.yml │ │ └── Test New-User.yml │ │ ├── Sessions.yml │ │ └── Sessions │ │ └── Test Variables.yml │ ├── Extensions.yml │ ├── Extensions │ ├── Authorable Reports.yml │ └── Authorable Reports │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ ├── Insert Item.yml │ │ └── Insert Item │ │ │ └── PowerShell Rule Library.yml │ │ ├── Functions.yml │ │ ├── Functions │ │ ├── Get-ReportQuery.yml │ │ ├── Get-ReportRule.yml │ │ └── Show-SearchResultDetails.yml │ │ ├── Internal.yml │ │ ├── Internal │ │ ├── List View.yml │ │ └── List View │ │ │ ├── Ribbon.yml │ │ │ └── Ribbon │ │ │ ├── Item.yml │ │ │ ├── Item │ │ │ └── Find and Replace.yml │ │ │ ├── SearchResultItem.yml │ │ │ └── SearchResultItem │ │ │ ├── Open.yml │ │ │ ├── Rebuild.yml │ │ │ └── Refresh.yml │ │ ├── Reports.yml │ │ ├── Reports │ │ ├── Rules Based Report.yml │ │ ├── Rules.yml │ │ └── Rules │ │ │ ├── Any item under Content has lay.yml │ │ │ ├── Any item under Content has too.yml │ │ │ ├── Any item under Content is lock.yml │ │ │ ├── Media item is jpeg.yml │ │ │ └── Media item with empty Alt fiel.yml │ │ ├── Toolbox.yml │ │ ├── Toolbox │ │ └── Index Viewer.yml │ │ ├── Web API.yml │ │ └── Web API │ │ ├── Get-AvailableReport.yml │ │ ├── Reports.yml │ │ └── Reports │ │ ├── Active-Users.yml │ │ └── License-Usage.yml │ ├── Maintenance.yml │ ├── Maintenance │ ├── Index On Demand.yml │ ├── Index On Demand │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Context Menu.yml │ │ │ └── Context Menu │ │ │ ├── Index this and descendants.yml │ │ │ └── Index this.yml │ ├── Media Library Maintenance.yml │ ├── Media Library Maintenance │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ │ ├── Context Menu.yml │ │ │ └── Context Menu │ │ │ │ └── Download.yml │ │ ├── Tasks.yml │ │ └── Tasks │ │ │ └── Delete unused media items olde.yml │ ├── System Maintenance.yml │ ├── System Maintenance │ │ ├── Control Panel.yml │ │ ├── Control Panel │ │ │ ├── Administration.yml │ │ │ ├── Database.yml │ │ │ ├── Database │ │ │ │ └── Clean up deleted items.yml │ │ │ ├── Reports.yml │ │ │ └── Reports │ │ │ │ └── Download Sitecore logs.yml │ │ ├── Tasks.yml │ │ └── Tasks │ │ │ ├── Archive Sitecore logs.yml │ │ │ ├── Clean up database tables.yml │ │ │ ├── Clean up databases.yml │ │ │ ├── Clean up deleted items older t.yml │ │ │ ├── Clean up link databases.yml │ │ │ └── Rebuild content search indexes.yml │ ├── Task Management.yml │ └── Task Management │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ ├── Context Menu.yml │ │ ├── Context Menu │ │ │ ├── Edit Task Schedule.yml │ │ │ └── Run Task Schedule.yml │ │ ├── Insert Item.yml │ │ └── Insert Item │ │ │ └── PowerShell Scripted Task Sched.yml │ │ ├── Functions.yml │ │ ├── Functions │ │ └── Edit-TaskSchedule.yml │ │ ├── Internal.yml │ │ ├── Internal │ │ ├── List View.yml │ │ └── List View │ │ │ ├── Ribbon.yml │ │ │ └── Ribbon │ │ │ ├── Item.yml │ │ │ └── Item │ │ │ ├── Edit Schedule.yml │ │ │ └── Execute Now.yml │ │ ├── Toolbox.yml │ │ └── Toolbox │ │ └── Task Manager.yml │ ├── Reporting.yml │ ├── Reporting │ ├── Content Reports.yml │ └── Content Reports │ │ ├── Internal.yml │ │ ├── Internal │ │ ├── List View.yml │ │ └── List View │ │ │ ├── Ribbon.yml │ │ │ └── Ribbon │ │ │ ├── PSObject.yml │ │ │ ├── PSObject │ │ │ └── Remove Links.yml │ │ │ ├── Site.yml │ │ │ └── Site │ │ │ └── Open.yml │ │ ├── Reports.yml │ │ └── Reports │ │ ├── Configuration Audit.yml │ │ ├── Configuration Audit │ │ ├── Find all Sitecore PowerShell C.yml │ │ ├── Find items with a missing temp.yml │ │ ├── Find scripts with rules config.yml │ │ └── Find site domain conflicts.yml │ │ ├── Content Audit.yml │ │ ├── Content Audit │ │ ├── Aliases.yml │ │ ├── Broken Links.yml │ │ ├── Items have no publishable vers.yml │ │ ├── Items last updated.yml │ │ ├── Items scheduled to archive.yml │ │ ├── Items unpublished in one or mo.yml │ │ ├── Items with active reminders.yml │ │ ├── Items with aliases.yml │ │ ├── Items with duplicate names.yml │ │ ├── Items with personalized render.yml │ │ ├── Items with template.yml │ │ ├── Items with tokens in fields.yml │ │ ├── Recent workflow history.yml │ │ └── Stale workflow items.yml │ │ ├── Media Audit.yml │ │ ├── Media Audit │ │ ├── Database based media items.yml │ │ ├── File based media items.yml │ │ ├── Image items with empty Alt fie.yml │ │ ├── Media items by size and type.yml │ │ ├── Media items last updated.yml │ │ ├── Media items not used by conten.yml │ │ ├── Media items with obsolete vers.yml │ │ ├── Media items with warnings.yml │ │ ├── Media items without associated.yml │ │ └── Unused media items.yml │ │ ├── Solution Audit.yml │ │ └── Solution Audit │ │ ├── Apply security to roles rather.yml │ │ ├── Assign icons to templates.yml │ │ ├── Break inheritance - do not den.yml │ │ ├── How many of each custom templa.yml │ │ ├── How many of which field types_.yml │ │ ├── How many times is each renderi.yml │ │ ├── Image Fields.yml │ │ ├── Leverage the presentation comp.yml │ │ ├── Limit number of versions.yml │ │ ├── Limit the number of items unde.yml │ │ ├── Make good use of inheritance.yml │ │ ├── Standard Values define setting.yml │ │ ├── TreelistEx instead of Treelist.yml │ │ ├── Use special tree syntax.yml │ │ ├── Use the Help and Title for fie.yml │ │ └── Which templates define the lay.yml │ ├── Samples.yml │ ├── Samples │ ├── Automatically show quick info_.yml │ ├── Automatically show quick info_ │ │ ├── Pipelines.yml │ │ └── Pipelines │ │ │ ├── LoggedIn.yml │ │ │ └── LoggedIn │ │ │ └── Automatically show quick info.yml │ ├── Enforce user password expirati.yml │ ├── Enforce user password expirati │ │ ├── Pipelines.yml │ │ └── Pipelines │ │ │ ├── LoggingIn.yml │ │ │ └── LoggingIn │ │ │ └── Enforce password expiration.yml │ ├── License Expiration.yml │ ├── License Expiration │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ │ ├── Warning.yml │ │ │ └── Warning │ │ │ │ └── Expiring License.yml │ │ ├── Page Editor.yml │ │ ├── Page Editor │ │ │ ├── Notification.yml │ │ │ └── Notification │ │ │ │ └── Expiring License.yml │ │ ├── Tasks.yml │ │ └── Tasks │ │ │ └── License Expiration Notificatio.yml │ ├── Random desktop background.yml │ ├── Random desktop background │ │ ├── Pipelines.yml │ │ └── Pipelines │ │ │ ├── LoggedIn.yml │ │ │ └── LoggedIn │ │ │ └── Random desktop background imag.yml │ ├── Training Modules.yml │ ├── Training Modules │ │ ├── Toolbox.yml │ │ └── Toolbox │ │ │ └── Tutorials.yml │ ├── Unlock user items on logout.yml │ └── Unlock user items on logout │ │ ├── Pipelines.yml │ │ └── Pipelines │ │ ├── Logout.yml │ │ └── Logout │ │ └── Unlock user items.yml │ ├── Tools.yml │ ├── Tools │ ├── Authoring Instrumentation.yml │ ├── Authoring Instrumentation │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Context Menu.yml │ │ │ └── Context Menu │ │ │ ├── Author Statistics.yml │ │ │ ├── Publish My Items.yml │ │ │ └── Recent Author Activity.yml │ ├── Copy Renderings.yml │ ├── Copy Renderings │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Context Menu.yml │ │ │ ├── Context Menu │ │ │ ├── Layout.yml │ │ │ └── Layout │ │ │ │ ├── Copy Renderings.yml │ │ │ │ └── Paste Renderings.yml │ │ │ ├── Ribbon.yml │ │ │ └── Ribbon │ │ │ ├── Presentation.yml │ │ │ └── Presentation │ │ │ ├── Layout.yml │ │ │ └── Layout │ │ │ └── Final to Shared.yml │ ├── Data Management.yml │ ├── Data Management │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ │ ├── Context Menu.yml │ │ │ └── Context Menu │ │ │ │ ├── Data Management.yml │ │ │ │ └── Data Management │ │ │ │ └── Show Items in Report.yml │ │ ├── Development.yml │ │ ├── Development │ │ │ └── Download Sample.yml │ │ ├── Internal.yml │ │ ├── Internal │ │ │ ├── List View.yml │ │ │ └── List View │ │ │ │ ├── Ribbon.yml │ │ │ │ └── Ribbon │ │ │ │ ├── Item.yml │ │ │ │ └── Item │ │ │ │ └── Properties.yml │ │ ├── Toolbox.yml │ │ └── Toolbox │ │ │ ├── Data Management.yml │ │ │ └── Data Management │ │ │ ├── Bulk Data Generator.yml │ │ │ ├── Bulk Item Restorer.yml │ │ │ ├── Bulk Template Changer.yml │ │ │ ├── Data Importer.yml │ │ │ └── Find and Replace.yml │ ├── Package Generator.yml │ ├── Package Generator │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ │ ├── Context Menu.yml │ │ │ └── Context Menu │ │ │ │ ├── Packaging.yml │ │ │ │ └── Packaging │ │ │ │ ├── Add Item to Package.yml │ │ │ │ ├── Add Tree to Package.yml │ │ │ │ ├── Download Package.yml │ │ │ │ ├── Preview Package Items.yml │ │ │ │ ├── Quick Download Tree as Package.yml │ │ │ │ └── Start New Package.yml │ │ ├── Functions.yml │ │ ├── Functions │ │ │ └── Setup-PackageGenerator.yml │ │ ├── Toolbox.yml │ │ └── Toolbox │ │ │ └── Create Anti-Package.yml │ ├── Publishing Status Gutter.yml │ ├── Publishing Status Gutter │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Gutters.yml │ │ │ └── Gutters │ │ │ └── Publishing Status.yml │ ├── Security Management.yml │ └── Security Management │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ ├── Gutters.yml │ │ ├── Gutters │ │ │ └── Elevated Unlock.yml │ │ ├── Ribbon.yml │ │ ├── Ribbon │ │ │ ├── Security.yml │ │ │ └── Security │ │ │ │ ├── Tools.yml │ │ │ │ └── Tools │ │ │ │ └── Elevated Unlock.yml │ │ ├── Warning.yml │ │ └── Warning │ │ │ └── Elevated Unlock.yml │ │ ├── Development.yml │ │ ├── Development │ │ ├── Unlock Item and Reload Page.yml │ │ └── Unlock Item.yml │ │ ├── Internal.yml │ │ ├── Internal │ │ ├── List View.yml │ │ └── List View │ │ │ ├── Ribbon.yml │ │ │ └── Ribbon │ │ │ ├── Item.yml │ │ │ ├── Item │ │ │ ├── Transfer Item Security.yml │ │ │ ├── Transfer Lock.yml │ │ │ ├── Unlock All.yml │ │ │ └── Unlock.yml │ │ │ ├── MembershipUserWrapper.yml │ │ │ ├── MembershipUserWrapper │ │ │ └── Kick User.yml │ │ │ ├── Session.yml │ │ │ └── Session │ │ │ └── Kick User.yml │ │ ├── Page Editor │ │ ├── Notification.yml │ │ └── Notification │ │ │ └── Elevated Unlock.yml │ │ ├── Reports.yml │ │ ├── Reports │ │ ├── Security Audit.yml │ │ └── Security Audit │ │ │ ├── Find Audit Trail from logs.yml │ │ │ ├── Items with security for an acc.yml │ │ │ ├── Items with security for domain.yml │ │ │ ├── Locked Items.yml │ │ │ └── Recently logged in users.yml │ │ ├── Tasks.yml │ │ ├── Tasks │ │ └── Remove idle user sessions.yml │ │ ├── Toolbox.yml │ │ └── Toolbox │ │ ├── Security Management.yml │ │ └── Security Management │ │ ├── Copy user roles.yml │ │ ├── Logged in Session Manager.yml │ │ └── Transfer item security.yml │ ├── Training.yml │ └── Training │ ├── Content Editor.yml │ ├── Content Editor │ ├── Context Menu.yml │ ├── Context Menu │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Context Menu.yml │ │ │ └── Context Menu │ │ │ ├── Edit common fields.yml │ │ │ ├── Training Menu.yml │ │ │ └── Training Menu │ │ │ ├── Disabled.yml │ │ │ └── Enabled.yml │ ├── Contextual Ribbon.yml │ ├── Contextual Ribbon │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Contextual Ribbon.yml │ │ │ └── Contextual Ribbon │ │ │ ├── Images.yml │ │ │ └── Images │ │ │ ├── Media.yml │ │ │ └── Media │ │ │ ├── Image.yml │ │ │ └── Image │ │ │ └── Optimize.yml │ ├── Gutter.yml │ ├── Gutter │ │ ├── Content Editor.yml │ │ ├── Content Editor │ │ │ ├── Gutters.yml │ │ │ └── Gutters │ │ │ │ └── Sample Gutter.yml │ │ ├── Reusable.yml │ │ └── Reusable │ │ │ └── DoSomething.yml │ ├── Insert Item.yml │ ├── Insert Item │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Insert Item.yml │ │ │ └── Insert Item │ │ │ └── Simple Insert Item.yml │ ├── Ribbon.yml │ ├── Ribbon │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ │ ├── Ribbon.yml │ │ │ └── Ribbon │ │ │ ├── Home.yml │ │ │ ├── Home │ │ │ ├── Training.yml │ │ │ └── Training │ │ │ │ └── Simple Command.yml │ │ │ ├── My Awesome Toolbar.yml │ │ │ └── My Awesome Toolbar │ │ │ ├── Section 1.yml │ │ │ ├── Section 1 │ │ │ └── Button.yml │ │ │ ├── Section 2.yml │ │ │ ├── Section 2 │ │ │ ├── Small_Button1.yml │ │ │ └── Small_Button2.yml │ │ │ ├── Section 3.yml │ │ │ └── Section 3 │ │ │ ├── Combo_Button List.yml │ │ │ └── Combo_Button List │ │ │ ├── Button1.yml │ │ │ └── Button2.yml │ ├── Warning.yml │ └── Warning │ │ ├── Content Editor.yml │ │ └── Content Editor │ │ ├── Reusable.yml │ │ ├── Reusable │ │ └── Warning Dialog.yml │ │ ├── Warning.yml │ │ └── Warning │ │ └── Simple Content Warning.yml │ ├── Misc.yml │ ├── Misc │ ├── Datasources.yml │ ├── Datasources │ │ ├── Field Data Source.yml │ │ └── Field Data Source │ │ │ └── Content Search Datasource.yml │ ├── Dialogs.yml │ ├── Dialogs │ │ ├── Advanced.yml │ │ ├── Advanced │ │ │ ├── Confirm a choice with ShowModa.yml │ │ │ ├── Custom confirmation.yml │ │ │ ├── Execute Sitecore shell command.yml │ │ │ ├── Read-Variable Kitchen Sink.yml │ │ │ ├── Read-Variable Minimal.yml │ │ │ ├── Read-Variable with Validation.yml │ │ │ └── Show-Application modal and des.yml │ │ ├── Script Runner.yml │ │ ├── Script Runner │ │ │ ├── Long Running Script - Advanced.yml │ │ │ └── Long Running Script - Simple.yml │ │ ├── Simple.yml │ │ └── Simple │ │ │ ├── Alert.yml │ │ │ ├── Confirm.yml │ │ │ ├── User Input with splatting.yml │ │ │ ├── User Input with validation.yml │ │ │ └── User Input.yml │ ├── Events.yml │ ├── Events │ │ ├── Event Handlers.yml │ │ └── Event Handlers │ │ │ ├── Item.yml │ │ │ ├── Item │ │ │ ├── Added.yml │ │ │ ├── Added │ │ │ │ └── Save Log.yml │ │ │ ├── Renamed.yml │ │ │ └── Renamed │ │ │ │ └── Save Log.yml │ │ │ ├── User.yml │ │ │ └── User │ │ │ ├── Created.yml │ │ │ └── Created │ │ │ ├── Customize MyToolbar.yml │ │ │ └── Log created user.yml │ ├── Pipelines.yml │ ├── Pipelines │ │ ├── Pipelines.yml │ │ └── Pipelines │ │ │ ├── LoggedIn.yml │ │ │ ├── LoggedIn │ │ │ └── User logged in.yml │ │ │ ├── LoggingIn.yml │ │ │ ├── LoggingIn │ │ │ └── User logging in.yml │ │ │ ├── Logout.yml │ │ │ └── Logout │ │ │ └── User logged out.yml │ ├── Scheduled Tasks.yml │ ├── Scheduled Tasks │ │ ├── Tasks.yml │ │ └── Tasks │ │ │ ├── Group Task.yml │ │ │ ├── Group Task │ │ │ ├── First Task.yml │ │ │ └── Second Task.yml │ │ │ └── Single Task.yml │ ├── Toolbox.yml │ └── Toolbox │ │ ├── Toolbox.yml │ │ └── Toolbox │ │ └── Training Tool.yml │ ├── Reporting.yml │ ├── Reporting │ ├── Advanced.yml │ ├── Advanced │ │ ├── Internal.yml │ │ ├── Internal │ │ │ ├── List View.yml │ │ │ └── List View │ │ │ │ ├── Export.yml │ │ │ │ ├── Export │ │ │ │ └── Burn to CD.yml │ │ │ │ ├── Ribbon.yml │ │ │ │ └── Ribbon │ │ │ │ ├── PSObject.yml │ │ │ │ └── PSObject │ │ │ │ └── Say Hello.yml │ │ ├── Reports.yml │ │ └── Reports │ │ │ ├── Training Reports - Advanced.yml │ │ │ └── Training Reports - Advanced │ │ │ └── Advanced Report.yml │ ├── Simple Authorable.yml │ ├── Simple Authorable │ │ ├── Reports.yml │ │ └── Reports │ │ │ ├── Rules.yml │ │ │ └── Rules │ │ │ └── Simple Report Rule.yml │ ├── Simple.yml │ └── Simple │ │ ├── Reports.yml │ │ └── Reports │ │ ├── Training Reports.yml │ │ └── Training Reports │ │ └── Simple Report.yml │ ├── Web API and Remoting.yml │ └── Web API and Remoting │ ├── Advanced Web API.yml │ ├── Advanced Web API │ ├── Web API.yml │ └── Web API │ │ ├── ChildrenAsHtml.yml │ │ ├── ChildrenAsJson.yml │ │ ├── ChildrenAsXml.yml │ │ └── HomeAndDescendants.yml │ ├── Simple Web API.yml │ └── Simple Web API │ ├── Web API.yml │ └── Web API │ └── TrainingWebApi.yml ├── UI ├── Applications │ ├── PowerShell.yml │ └── PowerShell │ │ ├── PowerShell Console.yml │ │ ├── PowerShell Runner.yml │ │ ├── PowerShellIse.yml │ │ ├── PowerShellIse │ │ ├── Menus.yml │ │ ├── Menus │ │ │ ├── Context.yml │ │ │ ├── Context │ │ │ │ └── Do not set location.yml │ │ │ ├── Execute.yml │ │ │ ├── Execute │ │ │ │ ├── Execute in a background job.yml │ │ │ │ └── Execute in http request contex.yml │ │ │ ├── Integrations.yml │ │ │ ├── Integrations │ │ │ │ ├── Content Editor Contextual Ribb.yml │ │ │ │ ├── Content Editor Gutter.yml │ │ │ │ ├── Content Editor Ribbon.yml │ │ │ │ └── Control Panel.yml │ │ │ ├── Languages.yml │ │ │ ├── Languages │ │ │ │ ├── Current language.yml │ │ │ │ └── More Languages.yml │ │ │ ├── New.yml │ │ │ ├── New │ │ │ │ └── New Module.yml │ │ │ ├── Save.yml │ │ │ ├── Save │ │ │ │ └── Save As.yml │ │ │ ├── Sessions.yml │ │ │ ├── Sessions │ │ │ │ ├── ISE editing session.yml │ │ │ │ ├── Script defined.yml │ │ │ │ └── Single execution.yml │ │ │ ├── Settings.yml │ │ │ ├── Settings │ │ │ │ ├── Console.yml │ │ │ │ ├── ISE.yml │ │ │ │ └── Results.yml │ │ │ ├── Users.yml │ │ │ └── Users │ │ │ │ ├── Current user.yml │ │ │ │ └── More Users.yml │ │ ├── Meta.yml │ │ ├── Meta │ │ │ ├── Edit.yml │ │ │ ├── EditConsoleSettings.yml │ │ │ └── EditIseSettings.yml │ │ ├── Ribbon.yml │ │ └── Ribbon │ │ │ ├── Debug.yml │ │ │ ├── Debug │ │ │ ├── Script.yml │ │ │ └── Script │ │ │ │ ├── Continue.yml │ │ │ │ ├── Immediate Window.yml │ │ │ │ ├── Step Over.yml │ │ │ │ ├── Step into.yml │ │ │ │ ├── Step out.yml │ │ │ │ └── Stop.yml │ │ │ ├── Plugins.yml │ │ │ ├── Plugins │ │ │ ├── Plugin.yml │ │ │ └── Plugin │ │ │ │ └── fake.yml │ │ │ ├── Script.yml │ │ │ ├── Script │ │ │ ├── Context.yml │ │ │ ├── Context │ │ │ │ ├── ActionsScripts.yml │ │ │ │ └── ActionsScripts │ │ │ │ │ ├── Context.yml │ │ │ │ │ └── Session.yml │ │ │ ├── ContextEx.yml │ │ │ ├── ContextEx │ │ │ │ ├── UserLanguageContextPanel.yml │ │ │ │ └── UserLanguageContextPanel │ │ │ │ │ ├── Language.yml │ │ │ │ │ └── User.yml │ │ │ ├── Info.yml │ │ │ ├── Info │ │ │ │ └── About.yml │ │ │ ├── Script.yml │ │ │ ├── Script │ │ │ │ ├── Abort.yml │ │ │ │ ├── Debug Small.yml │ │ │ │ ├── Execute Selection Small.yml │ │ │ │ └── Execute.yml │ │ │ ├── Write.yml │ │ │ └── Write │ │ │ │ ├── New.yml │ │ │ │ ├── Open.yml │ │ │ │ ├── Reload.yml │ │ │ │ ├── Save As.yml │ │ │ │ └── Save.yml │ │ │ ├── Settings.yml │ │ │ └── Settings │ │ │ ├── Current Script.yml │ │ │ ├── Current Script │ │ │ └── Runtime.yml │ │ │ ├── Integration.yml │ │ │ ├── Integration │ │ │ └── Rebuild.yml │ │ │ ├── Preferences.yml │ │ │ └── Preferences │ │ │ └── Settings.yml │ │ ├── PowerShellListView.yml │ │ ├── PowerShellListView │ │ ├── Ribbon.yml │ │ └── Ribbon │ │ │ ├── Results.yml │ │ │ └── Results │ │ │ ├── Actions.yml │ │ │ ├── Actions │ │ │ └── ActionsScripts.yml │ │ │ ├── Download.yml │ │ │ ├── Download │ │ │ └── ExportScripts.yml │ │ │ ├── Filter.yml │ │ │ ├── Filter │ │ │ └── Filter.yml │ │ │ ├── Page.yml │ │ │ └── Page │ │ │ ├── First.yml │ │ │ ├── Last.yml │ │ │ ├── Next.yml │ │ │ └── Previous.yml │ │ └── PowerShellReports.yml ├── Content Editor Console │ └── PowerShell Console.yml ├── Content Editor ISE │ └── Edit Script.yml ├── Context Editor Scripts │ └── Context PowerShell Scripts.yml ├── Dictionary │ ├── PowerShell.yml │ └── PowerShell │ │ ├── A.yml │ │ ├── A │ │ ├── A security dialog will prompt_.yml │ │ └── Are you sure you want to overw.yml │ │ ├── C.yml │ │ ├── C │ │ ├── Confirm to validate access to_.yml │ │ ├── Could not validate access usin.yml │ │ └── Create a new module.yml │ │ ├── D.yml │ │ ├── D │ │ ├── Documentation.yml │ │ ├── Done.yml │ │ ├── Drop elevated session state.yml │ │ └── DropList control cannot render.yml │ │ ├── E.yml │ │ ├── E │ │ ├── Elevate Session State.yml │ │ ├── Elevated session state is requ.yml │ │ ├── Enter your credentials to vali.yml │ │ ├── Error while rendering this edi.yml │ │ └── Execution prevented!.yml │ │ ├── F.yml │ │ ├── F │ │ └── Files from outside of the Site.yml │ │ ├── I.yml │ │ ├── I │ │ ├── ID b0b.yml │ │ ├── If you were sent to this page_.yml │ │ ├── Invert selection.yml │ │ └── if you no longer require it Fo.yml │ │ ├── L.yml │ │ ├── L │ │ └── Location b0b.yml │ │ ├── M.yml │ │ ├── M │ │ └── Most Recently opened scripts.yml │ │ ├── N.yml │ │ ├── N │ │ ├── No items available.yml │ │ └── No scripts foundDo you need to.yml │ │ ├── O.yml │ │ ├── O │ │ ├── Open Script.yml │ │ ├── Operation cannot be performed_.yml │ │ └── Operation.yml │ │ ├── P.yml │ │ ├── P │ │ ├── Performing 0 action on a scrip.yml │ │ ├── Pick the settings for the modu.yml │ │ ├── Please wait 0.yml │ │ ├── PowerShell Message.yml │ │ └── Progress.yml │ │ ├── R.yml │ │ ├── R │ │ ├── Recent Users.yml │ │ ├── Recent and enabled languages.yml │ │ ├── Running script.yml │ │ └── remaining.yml │ │ ├── S.yml │ │ ├── S │ │ ├── Script Execution Result.yml │ │ ├── Script cannot be executed as i.yml │ │ ├── Script defined 0.yml │ │ ├── Script finished - no results t.yml │ │ ├── Script name to search for - pr.yml │ │ ├── Script parameters.yml │ │ ├── Script with that name already_.yml │ │ ├── Scripts matching 0 in 1 databa.yml │ │ ├── Scripts matching 0 in all data.yml │ │ ├── Select Script Library.yml │ │ ├── Select a library where you wan.yml │ │ ├── Select a script you want to op.yml │ │ ├── Select the Library that you wa.yml │ │ ├── Select the script item that yo.yml │ │ ├── Session privilege elevation is.yml │ │ ├── Session privilege elevation is_34ffa31f-746e-4b42-959f-d714173cb1b8.yml │ │ ├── Sessions in memory.yml │ │ ├── Show copyright.yml │ │ ├── Single execution.yml │ │ ├── Size.yml │ │ ├── Specify a name for your script.yml │ │ └── Status.yml │ │ ├── T.yml │ │ ├── T │ │ ├── The data for the dialog is not.yml │ │ ├── The item is not a script.yml │ │ ├── The script you are running req.yml │ │ ├── There is no file attached.yml │ │ └── Time remaining.yml │ │ ├── U.yml │ │ ├── U │ │ ├── Untitled.yml │ │ ├── User b0b.yml │ │ └── Username.yml │ │ ├── V.yml │ │ ├── V │ │ ├── View script results and errors.yml │ │ └── View script results.yml │ │ ├── W.yml │ │ ├── W │ │ └── Working.yml │ │ ├── X.yml │ │ ├── Y.yml │ │ └── Y │ │ └── You have temporarily enabled s.yml ├── Launchpad ISE │ └── PowerShell ISE.yml ├── Launchpad Reports │ └── PowerShell Reports.yml ├── Layouts │ ├── PowerShell.yml │ └── PowerShell │ │ ├── PowerShell Console.yml │ │ ├── PowerShell ISE Sheer.yml │ │ ├── PowerShell ListView.yml │ │ ├── PowerShell Reports.yml │ │ └── PowerShell Runner.yml ├── Start Menu Console │ └── PowerShell Console.yml ├── Start Menu ISE │ └── PowerShell ISE.yml ├── Start Menu Reports │ ├── PowerShell Reports.yml │ └── PowerShell Reports │ │ └── PowerShell Fake Report.yml ├── Start Menu Toolbox │ └── PowerShell Toolbox.yml └── Tasks │ └── PowerShellScriptCommand.yml └── Users └── sitecore └── PowerShellExtensionsAPI.yml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [michaellwest] 4 | custom: https://www.paypal.me/michaellwest 5 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | ### Expected Behavior 2 | 3 | _Please describe the expected behavior._ 4 | 5 | ### Actual Behavior 6 | 7 | _Please describe the actual behavior._ 8 | 9 | ### Steps to Reproduce the Problem 10 | 11 | _Please include the version number of SPE and Sitecore._ 12 | _Provide clear reproduction steps on a clean environment of one of the latest 2 Sitecore versions._ 13 | 14 | - [ ] Tested issue with clean install of Sitecore and the latest available version of SPE. 15 | 16 | - [ ] Asked questions on the Sitecore Slack Chat channel. 17 | 18 | - [ ] Reviewed questions and answers on the Sitecore Stack Exchange. -------------------------------------------------------------------------------- /Modules/DownloadFiles.ps1: -------------------------------------------------------------------------------- 1 | #$VerbosePreference = "Continue" 2 | 3 | Import-Module -Name SPE 4 | 5 | $instanceUrls = @("http://console") 6 | $session = New-ScriptSession -Username "admin" -Password "b" -ConnectionUri $instanceUrls 7 | 8 | $libraryPath = "/sitecore/media library/images/image.png" 9 | Get-Item -Path C:\image.png | Send-MediaItem -Session $session -Destination $libraryPath 10 | 11 | $savePath = "C:\image-$([datetime]::Now.ToString("yyyyddMM-HHmmss")).png" 12 | Receive-MediaItem -Session $session -Path $libraryPath -Destination $savePath -------------------------------------------------------------------------------- /Modules/Remoting Tests - Basic Token.ps1: -------------------------------------------------------------------------------- 1 | Clear-Host 2 | 3 | $name = 'sitecore\admin' 4 | $password = 'b' 5 | $hostname = "https://spe.dev.local" 6 | 7 | Import-Module -Name SPE -Force 8 | $session = New-ScriptSession -Username $name -Password $password -ConnectionUri $hostname 9 | $watch = [System.Diagnostics.Stopwatch]::StartNew() 10 | Invoke-RemoteScript -ScriptBlock { 11 | $env:COMPUTERNAME 12 | } -Session $session -Raw 13 | $watch.Stop() 14 | $watch.ElapsedMilliseconds / 1000 15 | Stop-ScriptSession -Session $session -------------------------------------------------------------------------------- /Modules/SPE/Libraries/readme.txt: -------------------------------------------------------------------------------- 1 | Copy the following libraries to this folder: 2 | Spe.dll 3 | Sitecore.Kernel.dll -------------------------------------------------------------------------------- /Modules/SPE/Test.ps1: -------------------------------------------------------------------------------- 1 | Import-Module -Name SPE -Force 2 | 3 | $protocolHost = "https://spe.dev.local" 4 | 5 | $session = New-ScriptSession -Username "sitecore\admin" -Password "b" -ConnectionUri $protocolHost -Timeout 10 6 | 7 | Invoke-RemoteScript -Session $session -ScriptBlock { Get-Location } -Verbose -------------------------------------------------------------------------------- /Modules/ScratchPad4.ps1: -------------------------------------------------------------------------------- 1 | Import-Module -Name SPE -Force 2 | 3 | $protocolHost = "https://spe.dev.local" 4 | 5 | $watch = [System.Diagnostics.Stopwatch]::StartNew() 6 | $session = New-ScriptSession -Username "sitecore\admin" -Password "b" -ConnectionUri $protocolHost 7 | $session.PersistentSession = $false 8 | 9 | foreach($i in 1..20) { 10 | Invoke-RemoteScript -Session $session -ScriptBlock { 11 | Get-Location 12 | #Start-Sleep -Seconds (Get-Random -Min 1 -Max 2) 13 | } > $null 14 | } 15 | 16 | $watch.Stop() 17 | $watch.ElapsedMilliseconds / 1000 18 | 19 | Stop-ScriptSession -Session $session #-Timeout 1 -Verbose -------------------------------------------------------------------------------- /Modules/Setup-Module.ps1: -------------------------------------------------------------------------------- 1 |  2 | # Adds the SPE Modules path to the PSModulePath Environment Variable, for use with SPE Remoting. 3 | 4 | $speModulePath = Join-Path $PSScriptRoot "Modules" 5 | 6 | $envModulePath = [Environment]::GetEnvironmentVariable("PSModulePath", "Machine") 7 | 8 | if($envModulePath -notlike "*$($speModulePath)*") { 9 | 10 | [Environment]::SetEnvironmentVariable("PSModulePath", $envModulePath.TrimEnd(";") + ";$($speModulePath)", "Machine") 11 | 12 | $env:PSModulePath = $env:PSModulePath.TrimEnd(";") + ";$($speModulePath)" 13 | 14 | Write-Host "PSModulePath environment variable updated with $speModulePath" 15 | } 16 | else 17 | { 18 | Write-Host "PSModulePath environment variable already contains $speModulePath" 19 | } 20 | 21 | -------------------------------------------------------------------------------- /Modules/TestRunner.ps1: -------------------------------------------------------------------------------- 1 | Import-Module Pester -Force 2 | 3 | $scriptParameters = @{ Path="."; Parameters=@{ protocolHost="http://sitecore81"}} 4 | if($env:USERDOMAIN -eq "Michael-Laptop") { 5 | $scriptParameters = @{ Path="."; Parameters=@{ protocolHost="https://spe.dev.local"}} 6 | } 7 | Invoke-Pester -Script $scriptParameters -------------------------------------------------------------------------------- /Modules/spe-jwt-demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spe-jwt-demo", 3 | "version": "1.0.0", 4 | "description": "Example for connecting to SPE Remoting with JavaScript!", 5 | "main": "demo.js", 6 | "dependencies": { 7 | "base64url": "^3.0.1", 8 | "https-proxy-agent": "^5.0.0" 9 | }, 10 | "devDependencies": {}, 11 | "scripts": { 12 | "test": "echo \"Error: no test specified\" && exit 1" 13 | }, 14 | "author": "", 15 | "license": "ISC" 16 | } 17 | -------------------------------------------------------------------------------- /Modules/spe-test/Kittens.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/Modules/spe-test/Kittens.zip -------------------------------------------------------------------------------- /Modules/spe-test/data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Modules/spe-test/kitten-replacement.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/Modules/spe-test/kitten-replacement.jpg -------------------------------------------------------------------------------- /Modules/spe-test/kitten.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/Modules/spe-test/kitten.jpg -------------------------------------------------------------------------------- /cli/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "sitecore.cli": { 6 | "version": "5.1.25", 7 | "commands": [ 8 | "sitecore" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /cli/.gitignore: -------------------------------------------------------------------------------- 1 | # may contain OAuth secrets, do not commit 2 | .sitecore/user.json 3 | 4 | # package reference cache 5 | .sitecore/package-cache 6 | 7 | # Don't commit packages 8 | *.itempackage 9 | *.sicpackage 10 | 11 | _out -------------------------------------------------------------------------------- /cli/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.associations": { 3 | "*.sicpackage": "json" 4 | }, 5 | "json.schemas": [ 6 | { 7 | "fileMatch": ["/sitecore.json"], 8 | "url": "./.sitecore/schemas/RootConfigurationFile.schema.json" 9 | }, 10 | { 11 | "fileMatch": ["/.sitecore/user.json"], 12 | "url": "./.sitecore/schemas/UserConfiguration.schema.json" 13 | }, 14 | { 15 | "fileMatch": ["*.module.json"], 16 | "url": "./.sitecore/schemas/ModuleFile.schema.json" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /cli/README.md: -------------------------------------------------------------------------------- 1 | # How to generate resource files 2 | 3 | Set the working directory to the CLI folder before running the following commands. 4 | 5 | * Restore Sitecore CLI 6 | 7 | ```bash 8 | dotnet tool restore 9 | ``` 10 | 11 | * Restore plugins for Sitecore CLI 12 | 13 | ```bash 14 | dotnet sitecore plugin list 15 | ``` 16 | 17 | * Generated resource files 18 | 19 | ```bash 20 | dotnet sitecore itemres create -o _out/spe --overwrite -i Spe.* 21 | ``` 22 | -------------------------------------------------------------------------------- /cli/generate.bat: -------------------------------------------------------------------------------- 1 | cd /D "%~dp0" 2 | dotnet tool restore 3 | dotnet sitecore plugin list 4 | dotnet sitecore itemres create -o _out/spe --overwrite -i Spe.* 5 | del /f .\_out\items.web.spe.dat 2>nul 6 | xcopy .\_out\items.master.spe.dat .\_out\items.web.spe.dat* /Y -------------------------------------------------------------------------------- /cli/modules/Spe.Scripts.module.json: -------------------------------------------------------------------------------- 1 | { 2 | "namespace": "Spe.Scripts", 3 | "items": { 4 | "path": "~/../Unicorn/SPE/Scripts", 5 | "includes": [ 6 | { 7 | "name": "SPE", 8 | "database": "master", 9 | "path": "/sitecore/system/Modules/PowerShell/Script Library/SPE", 10 | "scope": "ItemAndDescendants" 11 | } 12 | ] 13 | } 14 | } -------------------------------------------------------------------------------- /docker-compose.build.yml: -------------------------------------------------------------------------------- 1 | version: "3.9" 2 | 3 | services: 4 | cm: 5 | image: ${COMPOSE_PROJECT_NAME}-cm:${VERSION:-latest} 6 | build: 7 | context: ./docker/build/cm 8 | args: 9 | BASE_IMAGE: ${SITECORE_DOCKER_REGISTRY}sitecore-xm1-cm:${SITECORE_VERSION} 10 | MANAGEMENT_SERVICES_IMAGE: ${SITECORE_MODULE_REGISTRY}sitecore-management-services-xm1-assets:${MANAGEMENT_SERVICES_VERSION} 11 | -------------------------------------------------------------------------------- /docker-compose.override.yml: -------------------------------------------------------------------------------- 1 | services: 2 | cm: 3 | environment: 4 | Sitecore_AppSettings_role:define: Standalone 5 | SITECORE_SPE_ADMIN_PAGE_ENABLED: ${SPE_ADMIN_PAGE_ENABLED} 6 | SITECORE_DEVELOPMENT_PATCHES: CustomErrorsOff,DebugOn,DevEnvOn,DeviceDetectionOff,HttpErrorsDetailed,InitMessagesOff 7 | volumes: 8 | - .\docker\deploy:C:\deploy 9 | - .\unicorn:C:\inetpub\wwwroot\App_Data\Unicorn 10 | - .\translations:C:\inetpub\wwwroot\App_Data\Translations 11 | - .\releases:C:\inetpub\wwwroot\App_Data\packages 12 | - .\modules:C:\modules:ro 13 | - .\docker\tools:C:\tools:ro 14 | entrypoint: powershell -Command "& C:/tools/entrypoints/iis/Development.ps1" -------------------------------------------------------------------------------- /docker/.gitignore: -------------------------------------------------------------------------------- 1 | /data/cm/* 2 | !/data/cm/.gitkeep 3 | /data/cd/* 4 | !/data/cd/.gitkeep 5 | /data/mssql/* 6 | !/data/mssql/.gitkeep 7 | /data/solr/* 8 | !/data/solr/.gitkeep 9 | 10 | /deploy/* 11 | !/deploy/.gitkeep 12 | 13 | /traefik/certs/* 14 | !/traefik/certs/.gitkeep -------------------------------------------------------------------------------- /docker/data/mssql/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docker/data/mssql/.gitkeep -------------------------------------------------------------------------------- /docker/data/solr/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docker/data/solr/.gitkeep -------------------------------------------------------------------------------- /docker/deploy/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docker/deploy/.gitkeep -------------------------------------------------------------------------------- /docker/tools/bin/Microsoft.Web.XmlTransform.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docker/tools/bin/Microsoft.Web.XmlTransform.dll -------------------------------------------------------------------------------- /docker/tools/dev-patches/CustomErrorsOff/Web.config.xdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/DebugOn/Web.config.xdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/DevEnvOn/Web.config.xdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/DeviceDetectionOff/App_Config/Environment/DeviceDetectionOff.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/DiagnosticsOff/App_Config/Environment/DiagnosticsOff.config: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/HttpErrorsDetailed/Web.config.xdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/OptimizeCompilationsOn/Web.config.xdt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/RobotDetectionOff/App_Config/Environment/RobotDetectionOff.config: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /docker/tools/dev-patches/XdbOff/App_Config/Environment/XdbOff.config: -------------------------------------------------------------------------------- 1 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docker/traefik/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docker/traefik/.gitkeep -------------------------------------------------------------------------------- /docker/traefik/certs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docker/traefik/certs/.gitkeep -------------------------------------------------------------------------------- /docker/traefik/config/dynamic/certs_config.yaml: -------------------------------------------------------------------------------- 1 | tls: 2 | certificates: 3 | - certFile: C:\etc\traefik\certs\cert.pem 4 | keyFile: C:\etc\traefik\certs\key.pem 5 | -------------------------------------------------------------------------------- /docs/readme-console-ise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docs/readme-console-ise.png -------------------------------------------------------------------------------- /docs/readme-ise.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/docs/readme-ise.gif -------------------------------------------------------------------------------- /releases/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/releases/.gitkeep -------------------------------------------------------------------------------- /releases/configs/Test.EnableLanguageFallback.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | true 6 | true 7 | 8 | 9 | true 10 | true 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /releases/configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "SitecoreAzureToolkit": { 3 | "Filename": "Sitecore Azure Toolkit 2.7.0-r02533.1285.zip", 4 | "Url": "https://sitecoredev.azureedge.net/~/media/0041D6C02A8041E89C13B611B2432834.ashx" 5 | } 6 | } -------------------------------------------------------------------------------- /src/Libraries/PowerShell.MamlGenerator.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Libraries/PowerShell.MamlGenerator.dll -------------------------------------------------------------------------------- /src/Libraries/PowerShell.MamlGenerator.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Libraries/PowerShell.MamlGenerator.pdb -------------------------------------------------------------------------------- /src/NuGet.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src/Spe.Abstractions/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Spe.Abstractions")] 4 | [assembly: AssemblyDescription("Sitecore PowerShell Extensions - Sitecore Abstractions")] -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IAuthenticationManager.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 2 | { 3 | public interface IAuthenticationManager 4 | { 5 | bool Login(string username, string password); 6 | void Logout(); 7 | bool IsAuthenticated { get; } 8 | string CurrentUsername { get; } 9 | bool ValidateUser(string username, string password); 10 | 11 | void SwitchToUser(string username, bool isAuthenticated); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IDateConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 4 | { 5 | public interface IDateConverter 6 | { 7 | DateTime ToServerTime(DateTime timeToConvert); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IImmediateDebugWindowLauncher.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Text; 2 | 3 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 4 | { 5 | public interface IImmediateDebugWindowLauncher 6 | { 7 | void ShowImmediateWindow(UrlString url); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IIndexManager.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.ContentSearch; 2 | 3 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 4 | { 5 | public interface IIndexManager 6 | { 7 | IJob DeleteItem(ISearchIndex index, IIndexableId indexableId); 8 | IJob UpdateItem(ISearchIndex index, IIndexableUniqueId indexableId); 9 | IJob Refresh(ISearchIndex index, IIndexable indexable); 10 | IJob FullRebuild(ISearchIndex index, bool isRemote); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IJob.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Specialized; 2 | using Sitecore; 3 | using Sitecore.Jobs.AsyncUI; 4 | 5 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 6 | { 7 | public interface IJob 8 | { 9 | Handle Handle { get; } 10 | MessageQueue MessageQueue { get; } 11 | string Name { get; } 12 | 13 | bool StatusFailed { get; set; } 14 | 15 | object StatusResult { get; set; } 16 | 17 | void AddStatusMessage(string message); 18 | 19 | StringCollection StatusMessages { get; } 20 | 21 | IJobOptions Options { get; } 22 | 23 | bool IsDone { get; } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IJobManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Sitecore; 3 | 4 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 5 | { 6 | public interface IJobManager 7 | { 8 | Handle StartJob(IJobOptions jobOptions); 9 | IJob GetJob(Handle handle); 10 | IJob GetJob(string jobName); 11 | IEnumerable GetBaseJobs(); 12 | IJob GetContextJob(); 13 | void SetContextJob(IJob job); 14 | } 15 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IJobMessageManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | 3 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 4 | { 5 | public interface IJobMessageManager 6 | { 7 | string Confirm(string message); 8 | string ShowModalDialog(string url, string width, string height); 9 | string ShowModalDialog(string title, string controlName, string width, string height); 10 | string ShowModalDialog(Hashtable parameters, string controlName, string width, string height); 11 | } 12 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IJobOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Globalization; 3 | using Sitecore.Security.Accounts; 4 | 5 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 6 | { 7 | public interface IJobOptions 8 | { 9 | string JobName { get; set; } 10 | User ContextUser { get; set; } 11 | bool EnableSecurity { get; set; } 12 | Language ClientLanguage { get; set; } 13 | bool AtomicExecution { get; set; } 14 | TimeSpan AfterLife { get; set; } 15 | bool WriteToLog { get; set; } 16 | string SiteName { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IObsoletor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Pipelines.PreprocessRequest; 3 | 4 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 5 | { 6 | public interface IObsoletor 7 | { 8 | Uri GetRequestUrl(PreprocessRequestArgs args); 9 | 10 | void SetPageEditorValues(string handle); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IPublishManager.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Globalization; 2 | using Sitecore.Publishing; 3 | using Sitecore.Publishing.Pipelines.Publish; 4 | 5 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 6 | { 7 | public interface IPublishManager 8 | { 9 | IJob PublishAsync(PublishOptions options); 10 | 11 | PublishResult PublishSync(PublishOptions options); 12 | } 13 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/ISessionElevationWindowLauncher.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Text; 2 | 3 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 4 | { 5 | public interface ISessionElevationWindowLauncher 6 | { 7 | void ShowSessionElevationWindow(UrlString url); 8 | } 9 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/ISpeAuthenticationProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 2 | { 3 | public interface ISpeAuthenticationProvider 4 | { 5 | bool Validate(string token, string authority, out string username); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/Spe.Abstractions/VersionDecoupling/Interfaces/IUrlHandleWrapper.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Web; 2 | 3 | namespace Spe.Abstractions.VersionDecoupling.Interfaces 4 | { 5 | public interface IUrlHandleWrapper 6 | { 7 | bool TryGetHandle(out UrlHandle handle); 8 | bool DisposeHandle(UrlHandle handle); 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe.Abstractions/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Spe.Package/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Spe.Package")] 4 | [assembly: AssemblyDescription("Sitecore PowerShell Extensions - Package Code")] -------------------------------------------------------------------------------- /src/Spe.Package/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /src/Spe.Sitecore8/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Spe.VersionSpecific")] 4 | [assembly: AssemblyDescription("Sitecore PowerShell Extensions - Sitecore 8 Specific Code")] -------------------------------------------------------------------------------- /src/Spe.Sitecore8/Services/SpeObsoletor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Pipelines.PreprocessRequest; 3 | using Sitecore.Shell.Applications.WebEdit; 4 | using Spe.Abstractions.VersionDecoupling.Interfaces; 5 | 6 | namespace Spe.VersionSpecific.Services 7 | { 8 | public class SpeObsoletor : IObsoletor 9 | { 10 | public Uri GetRequestUrl(PreprocessRequestArgs args) 11 | { 12 | return args.Context.Request.Url; 13 | } 14 | 15 | public void SetPageEditorValues(string handle) 16 | { 17 | PageEditFieldEditorOptions.Parse(handle).SetPageEditorFieldValues(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/Spe.Sitecore8/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/Spe.Sitecore92/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Spe.VersionSpecific")] 4 | [assembly: AssemblyDescription("Sitecore PowerShell Extensions - Sitecore 9.2 Specific Code")] -------------------------------------------------------------------------------- /src/Spe.Sitecore92/Services/SpeObsoletor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Specialized; 3 | using Sitecore.Pipelines.PreprocessRequest; 4 | using Sitecore.Shell.Applications.WebEdit; 5 | using Spe.Abstractions.VersionDecoupling.Interfaces; 6 | 7 | namespace Spe.VersionSpecific.Services 8 | { 9 | public class SpeObsoletor : IObsoletor 10 | { 11 | public Uri GetRequestUrl(PreprocessRequestArgs args) 12 | { 13 | return args.HttpContext.Request.Url; 14 | } 15 | 16 | public void SetPageEditorValues(string handle) 17 | { 18 | PageEditFieldEditorOptions.Parse(handle).SetPageEditorFieldValues(new NameValueCollection()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/Spe.Sitecore92/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Spe/App_Config/Include/Spe/Spe.Minimal.config.disabled: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/Spe/Client/Applications/IPowerShellRunner.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Client.Applications 2 | { 3 | public interface IPowerShellRunner 4 | { 5 | bool MonitorActive { set; } 6 | } 7 | } -------------------------------------------------------------------------------- /src/Spe/Client/Applications/ImmediateDebugWindowLauncher.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Text; 2 | using Sitecore.Web.UI.Sheer; 3 | using Spe.Abstractions.VersionDecoupling.Interfaces; 4 | 5 | namespace Spe.Client.Applications 6 | { 7 | public class ImmediateDebugWindowLauncher : IImmediateDebugWindowLauncher 8 | { 9 | public void ShowImmediateWindow(UrlString url) 10 | { 11 | var options = new ModalDialogOptions(url.ToString()) 12 | { 13 | Header = "Immediate Window", 14 | Resizable = true, 15 | Width = "800", 16 | Height = "600", 17 | Response = true 18 | }; 19 | SheerResponse.ShowModalDialog(options); 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/Spe/Client/Applications/PowerShellReports.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Web.UI.Sheer; 2 | 3 | namespace Spe.Client.Applications 4 | { 5 | public class PowerShellReports : BaseForm 6 | { 7 | 8 | } 9 | } -------------------------------------------------------------------------------- /src/Spe/Client/Applications/RunnerOutput.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Spe.Client.Applications 5 | { 6 | public class RunnerOutput 7 | { 8 | public string Output { get; set; } 9 | public string DialogResult { get; set; } 10 | public Exception Exception { get; set; } 11 | public bool HasErrors { get; set; } 12 | public bool CloseRunner { get; set; } 13 | public List DeferredMessages { get; set; } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Spe/Client/Applications/UploadFile/Validation/ValidationResult.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Client.Applications.UploadFile.Validation 2 | { 3 | internal class ValidationResult 4 | { 5 | public string Message { get; set; } 6 | public bool Valid { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/Spe/Client/Commands/AbortQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class AbortQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Parameters["ScriptRunning"] == "1" && context.Parameters["inBreakpoint"] != "1" 12 | ? CommandState.Enabled 13 | : CommandState.Disabled; 14 | } 15 | 16 | public override void Execute(CommandContext context) 17 | { 18 | //dummy 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Spe/Client/Commands/DebugQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class DebugQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Parameters["inBreakpoint"] == "1" 12 | ? CommandState.Enabled 13 | : context.Parameters["debugging"] == "1" 14 | ? CommandState.Disabled 15 | : CommandState.Hidden; 16 | } 17 | 18 | public override void Execute(CommandContext context) 19 | { 20 | //dummy 21 | context.CustomData = "Result string"; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/Spe/Client/Commands/GalleryRuntimeQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class GalleryRuntimeQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Parameters["ScriptRunning"] == "1" ? CommandState.Disabled : CommandState.Enabled; 12 | } 13 | 14 | public override void Execute(CommandContext context) 15 | { 16 | //dummy 17 | } 18 | 19 | public override string GetClick(CommandContext context, string click) 20 | { 21 | return string.Empty; 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/Spe/Client/Commands/ItemDefinedQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class ItemDefinedQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Items.Length != 1 || context.Parameters["ScriptRunning"] == "1" 12 | ? CommandState.Disabled 13 | : CommandState.Enabled; 14 | } 15 | 16 | public override void Execute(CommandContext context) 17 | { 18 | //dummy 19 | context.CustomData = "Result string"; 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/Spe/Client/Commands/ListViewFilterQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class ListViewFilterQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Parameters["showFilter"] == "1" 12 | ? CommandState.Enabled 13 | : CommandState.Hidden; 14 | } 15 | 16 | public override void Execute(CommandContext context) 17 | { 18 | //dummy 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Spe/Client/Commands/ListViewPagingQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class ListViewPagingQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Parameters["showPaging"] == "1" 12 | ? CommandState.Enabled 13 | : CommandState.Hidden; 14 | } 15 | 16 | public override void Execute(CommandContext context) 17 | { 18 | //dummy 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Spe/Client/Commands/RuntimeQueryState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Shell.Framework.Commands; 3 | 4 | namespace Spe.Client.Commands 5 | { 6 | [Serializable] 7 | public class RuntimeQueryState : Command 8 | { 9 | public override CommandState QueryState(CommandContext context) 10 | { 11 | return context.Parameters["ScriptRunning"] == "1" ? CommandState.Disabled : CommandState.Enabled; 12 | } 13 | 14 | public override void Execute(CommandContext context) 15 | { 16 | //dummy 17 | context.CustomData = "Result string"; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Spe/Client/Controls/BucketlistExtended.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore.Buckets.FieldTypes; 3 | 4 | namespace Spe.Client.Controls 5 | { 6 | internal class BucketListExtended : BucketList 7 | { 8 | public BucketListExtended() 9 | { 10 | this.FieldID = Guid.Empty.ToString(); 11 | } 12 | 13 | public virtual void SetLanguage(string language) 14 | { 15 | SetLanguageInternal(language); 16 | } 17 | 18 | private void SetLanguageInternal(string language) 19 | { 20 | ItemLanguage = language; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/Spe/Client/Controls/CompleteMessage.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Jobs.AsyncUI; 2 | using Spe.Client.Applications; 3 | 4 | namespace Spe.Client.Controls 5 | { 6 | public class CompleteMessage : FlushMessage 7 | { 8 | public RunnerOutput RunnerOutput { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Client/Controls/EditExtended.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Globalization; 2 | using Sitecore.Web.UI.HtmlControls; 3 | using Sitecore.Web.UI.Sheer; 4 | 5 | namespace Spe.Client.Controls 6 | { 7 | public class EditExtended : Edit 8 | { 9 | public string PlaceholderText 10 | { 11 | get => GetViewStateString("Placeholder"); 12 | set 13 | { 14 | if (PlaceholderText == value) { return; } 15 | 16 | Attributes["placeholder"] = value; 17 | SetViewStateString("Placeholder", value); 18 | SheerResponse.SetAttribute(this.ID, "placeholder", Translate.Text(value)); 19 | } 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/Spe/Client/Controls/MultilistExtended.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Shell.Applications.ContentEditor; 2 | 3 | namespace Spe.Client.Controls 4 | { 5 | internal class MultilistExtended : MultilistEx 6 | { 7 | public virtual void SetLanguage(string language) 8 | { 9 | SetLanguageInternal(language); 10 | } 11 | 12 | private void SetLanguageInternal(string language) 13 | { 14 | ItemLanguage = language; 15 | } 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Spe/Client/Controls/PSCheckList.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Shell.Applications.ContentEditor; 2 | 3 | namespace Spe.Client.Controls 4 | { 5 | public class PSCheckList : Checklist 6 | { 7 | public void SetItemLanguage(string languageName) 8 | { 9 | ViewState["ItemLanguage"] = languageName; 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/Spe/Client/Controls/PasswordExtended.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Globalization; 2 | using Sitecore.Shell.Applications.ContentEditor; 3 | using Sitecore.Web.UI.Sheer; 4 | 5 | namespace Spe.Client.Controls 6 | { 7 | public class PasswordExtended : Password 8 | { 9 | public string PlaceholderText 10 | { 11 | get 12 | { 13 | return GetViewStateString("Placeholder"); 14 | } 15 | set 16 | { 17 | if (PlaceholderText == value) { return; } 18 | 19 | Attributes["placeholder"] = value; 20 | SetViewStateString("Placeholder", value); 21 | SheerResponse.SetAttribute(this.ID, "placeholder", Translate.Text(value)); 22 | } 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Spe/Client/Controls/SessionCompleteEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Spe.Client.Applications; 3 | 4 | namespace Spe.Client.Controls 5 | { 6 | public class SessionCompleteEventArgs : EventArgs 7 | { 8 | public RunnerOutput RunnerOutput { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Commands/BaseIndexCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Management.Automation; 3 | using Sitecore.ContentSearch; 4 | using Spe.Core.Validation; 5 | 6 | namespace Spe.Commands 7 | { 8 | public class BaseIndexCommand : BaseCommand 9 | { 10 | public static readonly string[] Indexes = ContentSearchManager.Indexes.Select(i => i.Name).ToArray(); 11 | 12 | [AutocompleteSet(nameof(Indexes))] 13 | [Parameter(ParameterSetName = "Name")] 14 | [Parameter(ParameterSetName = "Item")] 15 | [ValidateNotNullOrEmpty] 16 | public string Name { get; set; } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Clones/GetItemCloneCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Management.Automation; 3 | using Sitecore.Data.Items; 4 | 5 | namespace Spe.Commands.Data.Clones 6 | { 7 | [Cmdlet(VerbsCommon.Get, "ItemClone")] 8 | [OutputType(typeof (Item), ParameterSetName = new[] {"Item from Pipeline", "Item from Path", "Item from ID"})] 9 | public class GetItemCloneCommand : BaseLanguageAgnosticItemCommand 10 | { 11 | protected override void ProcessItem(Item item) 12 | { 13 | item.GetClones().ToList().ForEach(WriteItem); 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Clones/GetItemCloneNotificationCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using Sitecore.Data.Clones; 3 | 4 | namespace Spe.Commands.Data.Clones 5 | { 6 | [Cmdlet(VerbsCommon.Get, "ItemCloneNotification", SupportsShouldProcess = true)] 7 | [OutputType(typeof(Notification), ParameterSetName = new[] { "Item from Pipeline", "Item from Path", "Item from ID" })] 8 | public class GetItemCloneNotificationCommand : BaseItemCloneNotificationCommand 9 | { 10 | protected override void ProcessNotification(Notification notification) 11 | { 12 | WriteObject(notification); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Clones/NotificationAction.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Commands.Data.Clones 2 | { 3 | public enum NotificationAction 4 | { 5 | None, 6 | Accept, 7 | Reject, 8 | Dismiss 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Clones/NotificationType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Spe.Commands.Data.Clones 4 | { 5 | [Flags] 6 | public enum NotificationType 7 | { 8 | Notification = 0, 9 | ChildCreatedNotification = 1, 10 | FieldChangedNotification = 2, 11 | FirstVersionAddedNotification = 4, 12 | ItemMovedChildCreatedNotification = 8, 13 | ItemMovedChildRemovedNotification = 16, 14 | ItemMovedNotification = 32, 15 | ItemTreeMovedNotification = 64, 16 | ItemVersionNotification = 128, 17 | OriginalItemChangedTemplateNotification = 256, 18 | VersionAddedNotification = 512 19 | } 20 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/NewUsingBlockCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Management.Automation; 3 | 4 | namespace Spe.Commands.Data 5 | { 6 | [Cmdlet(VerbsCommon.New, "UsingBlock")] 7 | public class NewUsingBlockCommand : BaseCommand 8 | { 9 | [Parameter(Mandatory = true, Position = 0)] 10 | public IDisposable InputObject { get; set; } 11 | 12 | [Parameter(Mandatory = true, Position = 1)] 13 | public ScriptBlock ScriptBlock { get; set; } 14 | 15 | protected override void ProcessRecord() 16 | { 17 | using (InputObject) 18 | { 19 | WriteObject(ScriptBlock.Invoke()); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Search/FilterType.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Commands.Data.Search 2 | { 3 | public enum FilterType 4 | { 5 | None, 6 | Equals, 7 | StartsWith, 8 | Contains, 9 | ContainsAll, 10 | ContainsAny, 11 | EndsWith, 12 | DescendantOf, 13 | Fuzzy, 14 | InclusiveRange, 15 | ExclusiveRange, 16 | MatchesRegex, 17 | MatchesWildcard, 18 | GreaterThan, 19 | LessThan 20 | } 21 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Search/SearchCriteria.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Commands.Data.Search 2 | { 3 | public class SearchCriteria 4 | { 5 | public FilterType Filter { get; set; } 6 | public string Field { get; set; } 7 | public object Value { get; set; } 8 | public bool? CaseSensitive { get; set; } 9 | internal string StringValue { get { return Value.ToString(); } } 10 | public bool Invert { get; set; } 11 | public float Boost { get; set; } = 1; 12 | } 13 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Data/Search/SearchOperation.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Commands.Data.Search 2 | { 3 | public enum SearchOperation 4 | { 5 | And, 6 | Or 7 | } 8 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Interactive/CloseWindowCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | 3 | namespace Spe.Commands.Interactive 4 | { 5 | [Cmdlet(VerbsCommon.Close, "Window")] 6 | public class CloseWindowCommand : BaseShellCommand 7 | { 8 | protected override void ProcessRecord() 9 | { 10 | HostData.CloseRunner = true; 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Interactive/Messages/CloseWindowMessage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore; 3 | using Sitecore.Jobs.AsyncUI; 4 | using Spe.Client.Applications; 5 | 6 | namespace Spe.Commands.Interactive.Messages 7 | { 8 | [Serializable] 9 | public class CloseWindowMessage : BasePipelineMessage 10 | { 11 | /// 12 | /// Shows a confirmation dialog. 13 | /// 14 | protected override void ShowUI() 15 | { 16 | if (!(Context.ClientPage.CodeBeside is PowerShellIse)) 17 | { 18 | Context.ClientPage.ClientResponse.CloseWindow(); 19 | Sitecore.Shell.Framework.Windows.Close(); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Interactive/Messages/IMessageWithResult.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Jobs.AsyncUI; 2 | 3 | namespace Spe.Commands.Interactive.Messages 4 | { 5 | public interface IMessageWithResult : IMessage 6 | { 7 | object GetResult(); 8 | 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Interactive/Messages/InvokeJavaScriptMessage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore; 3 | using Sitecore.Jobs.AsyncUI; 4 | 5 | namespace Spe.Commands.Interactive.Messages 6 | { 7 | [Serializable] 8 | public class InvokeJavaScriptMessage : BasePipelineMessage 9 | { 10 | private readonly string script; 11 | 12 | public InvokeJavaScriptMessage(string script) 13 | { 14 | this.script = script; 15 | } 16 | 17 | /// 18 | /// Shows a confirmation dialog. 19 | /// 20 | protected override void ShowUI() 21 | { 22 | Context.ClientPage.ClientResponse.Eval(script); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Interactive/ShowAlertCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using Sitecore.Jobs.AsyncUI; 3 | 4 | namespace Spe.Commands.Interactive 5 | { 6 | [Cmdlet(VerbsCommon.Show, "Alert")] 7 | public class ShowAlertCommand : BaseShellCommand 8 | { 9 | [Parameter(ValueFromPipeline = true, Position = 0, Mandatory = true)] 10 | public string Title { get; set; } 11 | 12 | protected override void ProcessRecord() 13 | { 14 | if (!CheckSessionCanDoInteractiveAction()) return; 15 | 16 | LogErrors(() => PutMessage(new AlertMessage(Title))); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Interactive/ShowListViewFeatures.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Spe.Commands.Interactive 4 | { 5 | [Flags] 6 | public enum ShowListViewFeatures 7 | { 8 | None = 0, 9 | SharedExport = 1, 10 | Filter = 2, 11 | PagingAlways = 4, 12 | SharedActions = 8, 13 | StatusBar = 32, 14 | All = SharedExport | Filter | PagingAlways | SharedActions | StatusBar, 15 | } 16 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Packages/NewPackageCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using Sitecore.Install; 3 | 4 | namespace Spe.Commands.Packages 5 | { 6 | [Cmdlet(VerbsCommon.New, "Package")] 7 | [OutputType(typeof (PackageProject))] 8 | public class NewPackageCommand : BasePackageCommand 9 | { 10 | [Parameter(Position = 0, Mandatory = true)] 11 | public string Name { get; set; } 12 | 13 | protected override void ProcessRecord() 14 | { 15 | PerformInstallAction( 16 | () => 17 | { 18 | var project = new PackageProject {Name = Name, Metadata = {PackageName = Name}}; 19 | WriteObject(project, false); 20 | }); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Presentation/BaseLayoutCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using Sitecore.Data; 3 | 4 | namespace Spe.Commands.Presentation 5 | { 6 | public abstract class BaseLayoutCommand : BaseItemCommand 7 | { 8 | [Parameter] 9 | public SwitchParameter FinalLayout { get; set; } 10 | 11 | protected ID LayoutFieldId { get; set; } 12 | 13 | protected override void BeginProcessing() 14 | { 15 | base.BeginProcessing(); 16 | 17 | LayoutFieldId = Sitecore.FieldIDs.LayoutField; 18 | if (!FinalLayout) return; 19 | 20 | LayoutFieldId = Sitecore.FieldIDs.FinalLayoutField; 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Presentation/BaseRenderingParameterCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Specialized; 2 | using Sitecore.Layouts; 3 | using Sitecore.Web; 4 | using Spe.Commands.Interactive; 5 | 6 | namespace Spe.Commands.Presentation 7 | { 8 | public class BaseRenderingParameterCommand : BaseShellCommand 9 | { 10 | protected NameValueCollection GetParameters(RenderingDefinition renderingDefinition) 11 | { 12 | return WebUtil.ParseUrlParameters(renderingDefinition.Parameters ?? string.Empty); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Presentation/GetPlaceholderSettingCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Management.Automation; 3 | using Sitecore.Data.Items; 4 | using Sitecore.Layouts; 5 | using Spe.Core.Extensions; 6 | 7 | namespace Spe.Commands.Presentation 8 | { 9 | [Cmdlet(VerbsCommon.Get, "PlaceholderSetting")] 10 | [OutputType(typeof (PlaceholderDefinition))] 11 | public class GetPlaceholderSettingCommand : BasePlaceholderSettingCommand 12 | { 13 | protected override void ProcessPlaceholderSettings(Item item, LayoutDefinition layout, DeviceDefinition device, List placeholders) 14 | { 15 | placeholders.ForEach(p => WriteObject(ItemShellExtensions.WrapInItemOwner(SessionState, item, p))); 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Presentation/GetRenderingCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Management.Automation; 3 | using Sitecore.Data.Items; 4 | using Sitecore.Layouts; 5 | using Spe.Core.Extensions; 6 | 7 | namespace Spe.Commands.Presentation 8 | { 9 | [Cmdlet(VerbsCommon.Get, "Rendering")] 10 | [OutputType(typeof (RenderingDefinition))] 11 | public class GetRenderingCommand : BaseRenderingCommand 12 | { 13 | protected override void ProcessRenderings(Item item, LayoutDefinition layout, DeviceDefinition device, 14 | List renderings) 15 | { 16 | renderings.ForEach(r => WriteObject(ItemShellExtensions.WrapInItemOwner(SessionState, item, r))); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Security/Session/LogoutUserCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using Sitecore.Security.Authentication; 3 | 4 | namespace Spe.Commands.Security.Session 5 | { 6 | [Cmdlet("Logout", "User", SupportsShouldProcess = true)] 7 | public class LogoutUserCommand : BaseCommand 8 | { 9 | protected override void ProcessRecord() 10 | { 11 | RecoverHttpContext(); 12 | 13 | if (ShouldProcess(SessionState.PSVariable.Get("me").Value.ToString(), "Logout user")) 14 | { 15 | AuthenticationManager.Logout(); 16 | 17 | SessionState.PSVariable.Set("me", string.Empty); 18 | } 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Session/GetUserAgent.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using System.Web; 3 | 4 | namespace Spe.Commands.Session 5 | { 6 | [Cmdlet("Get", "UserAgent")] 7 | [OutputType(typeof (string))] 8 | public class GetUserAgentCommand : PSCmdlet 9 | { 10 | protected override void ProcessRecord() 11 | { 12 | if (HttpContext.Current != null) 13 | { 14 | WriteObject(HttpContext.Current.Request.UserAgent, false); 15 | } 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src/Spe/Commands/Session/RestartApplicationCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Management.Automation; 2 | using System.Web; 3 | 4 | namespace Spe.Commands.Session 5 | { 6 | [Cmdlet(VerbsLifecycle.Restart, "Application", SupportsShouldProcess = true)] 7 | public class RestartApplication : BaseCommand 8 | { 9 | protected override void BeginProcessing() 10 | { 11 | if (ShouldProcess("Application", "Restart")) 12 | { 13 | HttpRuntime.UnloadAppDomain(); 14 | } 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /src/Spe/Core/Data/DisablePropertyExpander.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Common; 2 | 3 | namespace Spe.Core.Data 4 | { 5 | public class DisablePropertyExpander : Switcher 6 | { 7 | public DisablePropertyExpander() : base(true) { } 8 | } 9 | } -------------------------------------------------------------------------------- /src/Spe/Core/Extensions/EnumerableExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Spe.Core.Extensions 5 | { 6 | public static class EnumerableExtensions 7 | { 8 | public static void ForEach(this IEnumerable collection, Action action) 9 | { 10 | foreach (var obj in collection) 11 | { 12 | action(obj); 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Spe/Core/Extensions/LanguageExtensions.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Configuration; 2 | using Sitecore.Globalization; 3 | using Spe.Core.Settings; 4 | using Spe.Core.VersionDecoupling; 5 | 6 | namespace Spe.Core.Extensions 7 | { 8 | public static class LanguageExtensions 9 | { 10 | public static string GetIcon(this Language language) 11 | { 12 | var db = Factory.GetDatabase(ApplicationSettings.ScriptLibraryDb); 13 | var icon = db != null ? language.GetIcon(db) : string.Empty; 14 | return !string.IsNullOrEmpty(icon) 15 | ? icon 16 | : CurrentVersion.IsAtLeast(SitecoreVersion.V80) 17 | ? "Office/32x32/flag_generic.png" 18 | : "Flags/32x32/flag_generic.png"; 19 | 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /src/Spe/Core/Host/OutputLineType.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Core.Host 2 | { 3 | public enum OutputLineType 4 | { 5 | Output, 6 | Verbose, 7 | Progress, 8 | Debug, 9 | Warning, 10 | Error 11 | } 12 | } -------------------------------------------------------------------------------- /src/Spe/Core/Modules/IntegrationPoint.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Core.Modules 2 | { 3 | public class IntegrationPoint 4 | { 5 | public string Id { get; internal set; } 6 | public string Path { get; internal set; } 7 | public string Name { get; internal set; } 8 | public string CreationScript { get; internal set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Core/Rules/PowerShellSessionExists.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Diagnostics; 2 | using Sitecore.Rules; 3 | using Sitecore.Rules.Conditions; 4 | using Spe.Core.Host; 5 | 6 | namespace Spe.Core.Rules 7 | { 8 | public class PowerShellSessionExists : WhenCondition where T : RuleContext 9 | { 10 | // Properties 11 | public string PersistentSessionId { get; set; } 12 | // Methods 13 | protected override bool Execute(T ruleContext) 14 | { 15 | Assert.ArgumentNotNull(ruleContext, "ruleContext"); 16 | 17 | if (string.IsNullOrEmpty(PersistentSessionId)) 18 | { 19 | return true; 20 | } 21 | return ScriptSessionManager.SessionExists(PersistentSessionId); 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/Spe/Core/Serialization/SingleEntry.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Configuration; 2 | using Sitecore.Data.Serialization.Presets; 3 | using Sitecore.Diagnostics; 4 | 5 | namespace Spe.Core.Serialization 6 | { 7 | public class SingleEntry : IncludeEntry 8 | { 9 | public new void Process(ItemCallback callback) 10 | { 11 | Assert.IsNotNull(Database, "database"); 12 | Assert.IsNotNull(Path, "path"); 13 | var item = Factory.GetDatabase(Database).GetItem(Path); 14 | if (item != null) 15 | { 16 | callback(item); 17 | } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/ApplicationNames.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Core.Settings 2 | { 3 | public static class ApplicationNames 4 | { 5 | public const string Console = "Console"; 6 | public const string ISE = "ISE"; 7 | public const string ItemSave = "ItemSave"; 8 | public const string Context = "Context"; 9 | public const string Default = "Default"; 10 | public const string RemoteAutomation = "RemoteAutomation"; 11 | public const string BackgroundJob = "BackgroundJob"; 12 | } 13 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/Authorization/AuthCacheEntry.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Spe.Core.Settings.Authorization 4 | { 5 | internal class AuthCacheEntry 6 | { 7 | internal bool Authorized { get; set; } 8 | internal DateTime ExpirationDate { get; set; } 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/Authorization/DropElevatedSessionState.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore; 3 | using Sitecore.Shell.Framework.Commands; 4 | 5 | namespace Spe.Core.Settings.Authorization 6 | { 7 | [Serializable] 8 | public class DropElevatedSessionState : Command 9 | { 10 | public override CommandState QueryState(CommandContext context) 11 | { 12 | return CommandState.Enabled; 13 | } 14 | 15 | public override void Execute(CommandContext context) 16 | { 17 | SessionElevationManager.DropSessionTokenElevation(ApplicationNames.ItemSave); 18 | Context.ClientPage.SendMessage(this, $"item:refresh(id={context.Items[0]})"); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/Authorization/ServiceAuthenticationManager.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Configuration; 2 | using Spe.Abstractions.VersionDecoupling.Interfaces; 3 | 4 | namespace Spe.Core.Settings.Authorization 5 | { 6 | public static class ServiceAuthenticationManager 7 | { 8 | static ServiceAuthenticationManager() 9 | { 10 | AuthenticationProvider = (ISpeAuthenticationProvider)Factory.CreateObject("/sitecore/powershell/authenticationProvider", false); 11 | } 12 | 13 | public static ISpeAuthenticationProvider AuthenticationProvider { get; } 14 | } 15 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/Authorization/SessionElevationErrors.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Web.UI.HtmlControls; 2 | using Sitecore.Web.UI.Sheer; 3 | 4 | namespace Spe.Core.Settings.Authorization 5 | { 6 | public static class SessionElevationErrors 7 | { 8 | public static ClientCommand OperationRequiresElevation() 9 | { 10 | return SheerResponse.Alert(Texts.PowerShellSessionElevation_Operation_requires_elevation); 11 | } 12 | 13 | public static ClientCommand OperationFailedWrongDataTemplate() 14 | { 15 | return SheerResponse.Alert(Texts.General_Operation_failed_wrong_data_template); 16 | } 17 | 18 | } 19 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/FieldNames.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Core.Settings 2 | { 3 | public static class FieldNames 4 | { 5 | public const string EnableRule = "EnableRule"; 6 | public const string ShowRule = "ShowRule"; 7 | } 8 | } -------------------------------------------------------------------------------- /src/Spe/Core/Settings/StringTokens.cs: -------------------------------------------------------------------------------- 1 | namespace Spe.Core.Settings 2 | { 3 | public static class StringTokens 4 | { 5 | public const string PersistentSessionId = "$PersistentSessionId"; 6 | } 7 | } -------------------------------------------------------------------------------- /src/Spe/Core/Utility/StreamUtils.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace Spe.Core.Utility 4 | { 5 | public static class StreamUtils 6 | { 7 | public static void CopyStream(Stream from, Stream to, int bufferSize) 8 | { 9 | var numArray = new byte[bufferSize]; 10 | for (var i = from.Read(numArray, 0, bufferSize); i > 0; i = from.Read(numArray, 0, bufferSize)) 11 | { 12 | to.Write(numArray, 0, i); 13 | } 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /src/Spe/Core/Utility/ZipUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace Spe.Core.Utility 5 | { 6 | public class ZipUtils 7 | { 8 | private const int ZipLeadBytes = 0x04034b50; 9 | 10 | public static bool IsZipContent(Stream content) 11 | { 12 | if (content == null || !content.CanSeek) return false; 13 | 14 | content.Seek(0, 0); 15 | 16 | try 17 | { 18 | var bytes = new byte[4]; 19 | 20 | content.Read(bytes, 0, 4); 21 | 22 | return (BitConverter.ToInt32(bytes, 0) == ZipLeadBytes); 23 | } 24 | finally 25 | { 26 | content.Seek(0, 0); // set the stream back to the begining 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /src/Spe/Core/Validation/AutocompleteSetAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Spe.Core.Validation 4 | { 5 | public class AutocompleteSetAttribute : Attribute 6 | { 7 | public string Values { get; private set; } 8 | 9 | public AutocompleteSetAttribute(string values) 10 | { 11 | Values = values; 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /src/Spe/Integrations/Pipelines/LoggedInScript.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Pipelines.LoggedIn; 2 | using Spe.Core.Modules; 3 | 4 | namespace Spe.Integrations.Pipelines 5 | { 6 | public class LoggedInScript : PipelineProcessor 7 | { 8 | protected override string IntegrationPoint => IntegrationPoints.PipelineLoggedInFeature; 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Integrations/Pipelines/LoggingInScript.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Pipelines.LoggingIn; 2 | using Spe.Core.Modules; 3 | 4 | namespace Spe.Integrations.Pipelines 5 | { 6 | public class LoggingInScript : PipelineProcessor 7 | { 8 | protected override string IntegrationPoint => IntegrationPoints.PipelineLoggingInFeature; 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Integrations/Pipelines/LogoutScript.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Pipelines.Logout; 2 | using Spe.Core.Modules; 3 | 4 | namespace Spe.Integrations.Pipelines 5 | { 6 | public class LogoutScript : PipelineProcessor 7 | { 8 | protected override string IntegrationPoint => IntegrationPoints.PipelineLogoutFeature; 9 | } 10 | } -------------------------------------------------------------------------------- /src/Spe/Integrations/Processors/ScriptedDataSource.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Collections; 2 | using Sitecore.Diagnostics; 3 | using Sitecore.Pipelines.GetLookupSourceItems; 4 | 5 | namespace Spe.Integrations.Processors 6 | { 7 | public class ScriptedDataSource : BaseScriptedDataSource 8 | { 9 | public void Process(GetLookupSourceItemsArgs args) 10 | { 11 | Assert.ArgumentNotNull(args, "args"); 12 | if (!IsScripted(args.Source)) return; 13 | 14 | var items = new ItemList(); 15 | var source = GetScriptedQueries(args.Source, args.Item, items); 16 | args.Result.AddRange(items.ToArray()); 17 | if (string.IsNullOrEmpty(source)) 18 | { 19 | args.AbortPipeline(); 20 | } 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /src/Spe/Integrations/Processors/ScriptedRenderingDataSourceResolve.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using Sitecore; 3 | using Sitecore.Diagnostics; 4 | using Sitecore.Pipelines.ResolveRenderingDatasource; 5 | 6 | namespace Spe.Integrations.Processors 7 | { 8 | public class ScriptedRenderingDataSourceResolve : BaseScriptedDataSource 9 | { 10 | public void Process(ResolveRenderingDatasourceArgs args) 11 | { 12 | Assert.IsNotNull(args, "args"); 13 | var source = args.Datasource; 14 | if (!IsScripted(source)) return; 15 | 16 | var items = RunEnumeration(source, Context.Item); 17 | args.Datasource = items.Select(item => item.ID.ToString()).Aggregate((current, next) => current + "|" + next); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /src/Spe/Integrations/Processors/SkipPowerShellScriptItems.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Diagnostics; 2 | using Sitecore.Pipelines.ExpandInitialFieldValue; 3 | using Spe.Core.Extensions; 4 | 5 | namespace Spe.Integrations.Processors 6 | { 7 | public class SkipPowerShellScriptItems : ExpandInitialFieldValueProcessor 8 | { 9 | public override void Process(ExpandInitialFieldValueArgs args) 10 | { 11 | Assert.ArgumentNotNull(args, "args"); 12 | if (args.TargetItem.IsPowerShellScript()) 13 | { 14 | args.AbortPipeline(); 15 | } 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Spe/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | [assembly: AssemblyTitle("Spe")] 4 | [assembly: AssemblyDescription("Sitecore PowerShell Extensions")] -------------------------------------------------------------------------------- /src/Spe/Properties/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/Properties/GlobalSuppressions.cs -------------------------------------------------------------------------------- /src/Spe/Utility/DateConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Sitecore; 3 | using Spe.Abstractions.VersionDecoupling.Interfaces; 4 | 5 | namespace Spe.Utility 6 | { 7 | class DateConverter : IDateConverter 8 | { 9 | public DateTime ToServerTime(DateTime timeToConvert) 10 | { 11 | return DateUtil.ToServerTime(timeToConvert); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/Spe/Utility/UrlHandleWrapper.cs: -------------------------------------------------------------------------------- 1 | using Sitecore.Web; 2 | using Spe.Abstractions.VersionDecoupling.Interfaces; 3 | 4 | namespace Spe.Utility 5 | { 6 | class UrlHandleWrapper : IUrlHandleWrapper 7 | { 8 | public bool TryGetHandle(out UrlHandle handle) 9 | { 10 | return UrlHandle.TryGetHandle(out handle); 11 | } 12 | 13 | public bool DisposeHandle(UrlHandle handle) 14 | { 15 | return UrlHandle.DisposeHandle(handle); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/Spe/Version.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Reflection; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyVersion("8.0.0.*")] 6 | [assembly: AssemblyFileVersion("8.0.0.0")] 7 | [assembly: AssemblyInformationalVersion("8.0.0.0")] 8 | 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("Sitecore PowerShell Extensions Team")] 11 | [assembly: AssemblyProduct("Sitecore PowerShell Extensions")] 12 | [assembly: AssemblyCopyright("© 2010-2024 Adam Najmanowicz, Michael West. All rights reserved.")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | [assembly: CLSCompliant(false)] 16 | 17 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Assets/Splitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Assets/Splitter.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Assets/TabClose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Assets/TabClose.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Assets/spe-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Assets/spe-32.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Assets/working.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Assets/working.gif -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Scripts/ace/ext-error_marker.js: -------------------------------------------------------------------------------- 1 | 2 | ; 3 | (function() { 4 | ace.require(["ace/ext/error_marker"], function() {}); 5 | })(); -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Scripts/ace/snippets-powershell.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/powershell", ["require", "exports", "module"], function(e, t, n) { 2 | t.snippetText = "Get-Item", 3 | t.scope = "powershell"; 4 | }) -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Scripts/ace/snippets/powershell.js: -------------------------------------------------------------------------------- 1 | ace.define("ace/snippets/powershell", ["require", "exports", "module"], function(require, exports, module) { 2 | "use strict"; 3 | 4 | exports.snippetText = undefined; 5 | exports.scope = "powershell"; 6 | 7 | }); -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Scripts/ace/snippets/text.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Scripts/ace/snippets/text.js -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Services/PowerShellWebService.asmx: -------------------------------------------------------------------------------- 1 | <%@ WebService Language="C#" CodeBehind="PowerShellWebService.asmx.cs" Class="Spe.sitecore_modules.PowerShell.Services.PowerShellWebService" %> 2 | -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Services/RemoteAutomation.asmx: -------------------------------------------------------------------------------- 1 | <%@ WebService Language="C#" CodeBehind="RemoteAutomation.asmx.cs" Class="Spe.sitecore_modules.PowerShell.Services.RemoteAutomation" %> 2 | -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Services/RemoteScriptCall.ashx: -------------------------------------------------------------------------------- 1 | <%@ WebHandler Language="C#" CodeBehind="RemoteScriptCall.ashx.cs" Class="Spe.sitecore_modules.PowerShell.Services.RemoteScriptCall" %> 2 | -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Services/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/Gallery.css: -------------------------------------------------------------------------------- 1 | .path { color:gray;} 2 | .name { float: left; padding: 5px 0;} 3 | .location { clear: both; } 4 | .scClickFont, .scClickFont_Hover, .scClick_Hover{ clear: both; display: inline-block;} 5 | .versionNum, .versionNumSelected { padding: 4px 0; width: 30px; float: left; } 6 | .scMenuPanelItem, .scMenuPanelItemSelected { border: 0px;} 7 | .scMenuPanelItem, .scMenuPanelItem_Hover, .scMenuPanelItemSelected { padding: 4px 5px; } 8 | .selected.scMenuPanelItem { background: #D0EBF6 } 9 | .scInitialHeight { height: initial; width: 100%; } 10 | .noScript { text-align: center; } 11 | -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SitecorePowerShell/Console/1c3d880a409ea8ca9c57c54fa81bb8b5ca3a8f05/src/Spe/sitecore modules/PowerShell/Styles/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /src/Spe/sitecore modules/PowerShell/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/Spe/sitecore modules/Shell/PowerShell/PsHSplitter.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 |