@microsoft/windows-admin-center-sdk 2.186.0 → 2.296.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/assets/strings/cs-CZ/strings.json +1 -1
- package/angular/assets/strings/de-DE/strings.json +1 -1
- package/angular/assets/strings/es-ES/strings.json +1 -1
- package/angular/assets/strings/fr-FR/strings.json +1 -1
- package/angular/assets/strings/hu-HU/strings.json +1 -1
- package/angular/assets/strings/it-IT/strings.json +1 -1
- package/angular/assets/strings/ja-JP/strings.json +1 -1
- package/angular/assets/strings/ko-KR/strings.json +1 -1
- package/angular/assets/strings/nl-NL/strings.json +1 -1
- package/angular/assets/strings/pl-PL/strings.json +1 -1
- package/angular/assets/strings/pt-BR/strings.json +1 -1
- package/angular/assets/strings/pt-PT/strings.json +1 -1
- package/angular/assets/strings/ru-RU/strings.json +1 -1
- package/angular/assets/strings/strings.json +1 -1
- package/angular/assets/strings/sv-SE/strings.json +1 -1
- package/angular/assets/strings/tr-TR/strings.json +1 -1
- package/angular/assets/strings/zh-CN/strings.json +1 -1
- package/angular/assets/strings/zh-TW/strings.json +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +1103 -1209
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +2 -2
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
- package/angular/esm2015/src/controls/actions/actions.module.js +2 -2
- package/angular/esm2015/src/controls/actions/containers/action-bar/action-bar.component.js +2 -2
- package/angular/esm2015/src/controls/actions/items/action-button/action-button-renderer.component.js +5 -5
- package/angular/esm2015/src/controls/actions/items/action-dropdown/action-dropdown.component.js +31 -13
- package/angular/esm2015/src/controls/actions/items/action-item.component.js +7 -3
- package/angular/esm2015/src/controls/badge/badge-base.component.js +2 -13
- package/angular/esm2015/src/controls/badge/bugfixes-feature-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/coming-soon-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/credssp-enabled-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/critical-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/custom-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/feedback-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/improvement-feature-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/new-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/new-feature-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/preview-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/warning-badge.component.js +42 -70
- package/angular/esm2015/src/controls/breadcrumb/breadcrumb.component.js +6 -6
- package/angular/esm2015/src/controls/breadcrumb-header/breadcrumb-header.component.js +2 -2
- package/angular/esm2015/src/controls/data-table/data-table-column.component.js +5 -3
- package/angular/esm2015/src/controls/data-table/data-table.component.js +20 -26
- package/angular/esm2015/src/controls/data-table/extensions/data-table-column-picker-extension.js +2 -1
- package/angular/esm2015/src/controls/details/details.component.js +2 -2
- package/angular/esm2015/src/controls/dialog/base-dialog.component.js +1 -1
- package/angular/esm2015/src/controls/dialog/confirmation-dialog/confirmation-dialog.component.js +20 -30
- package/angular/esm2015/src/controls/dialog/dialog.service.js +7 -3
- package/angular/esm2015/src/controls/dropdown/dropdown.component.js +2 -2
- package/angular/esm2015/src/controls/form/form-field/array/array-form-field.component.js +50 -40
- package/angular/esm2015/src/controls/form/form-field/checklist/checklist-form-field.component.js +3 -3
- package/angular/esm2015/src/controls/form/form-field/combobox/combobox-form-field.component.js +14 -13
- package/angular/esm2015/src/controls/form/form-field/datetime/datetime-form-field.component.js +2 -2
- package/angular/esm2015/src/controls/form/form-field/form-field.component.js +16 -4
- package/angular/esm2015/src/controls/form/form-field/options-form-field/form-field-option.component.js +5 -3
- package/angular/esm2015/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.js +25 -21
- package/angular/esm2015/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.js +5 -5
- package/angular/esm2015/src/controls/form/form-field/search/search-form-field.component.js +2 -2
- package/angular/esm2015/src/controls/form/form-field/tags/tags-form-field.component.js +2 -2
- package/angular/esm2015/src/controls/form/validation-alert/validation-alert.component.js +4 -10
- package/angular/esm2015/src/controls/form/validation-alert/validation-alert.js +1 -1
- package/angular/esm2015/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.js +17 -1
- package/angular/esm2015/src/controls/icon/layered-icon/layered-icon.component.js +12 -1
- package/angular/esm2015/src/controls/icon/layered-icon/status/status-icon.component.js +53 -9
- package/angular/esm2015/src/controls/loading-wheel/loading-wheel.component.js +17 -1
- package/angular/esm2015/src/controls/master-view/master-view.component.js +34 -30
- package/angular/esm2015/src/controls/pivot/pivot-tab.component.js +1 -1
- package/angular/esm2015/src/controls/pivot/pivot.component.js +21 -9
- package/angular/esm2015/src/controls/property-grid/property-grid.component.js +13 -29
- package/angular/esm2015/src/controls/schema-form/schema-form-content.component.js +7 -4
- package/angular/esm2015/src/controls/settings/common-settings/common-settings.component.js +23 -35
- package/angular/esm2015/src/controls/settings/settings.component.js +28 -1
- package/angular/esm2015/src/controls/settings/settings.module.js +8 -3
- package/angular/esm2015/src/controls/tooltip/tooltip-host.component.js +16 -5
- package/angular/esm2015/src/controls/wizard/wizard.component.js +38 -6
- package/angular/esm2015/src/directives/clamp/clamp.directive.js +26 -7
- package/angular/esm2015/src/directives/discard/discard.directive.js +2 -2
- package/angular/esm2015/src/directives/markdown/markdown.directive.js +5 -18
- package/angular/esm2015/src/generated/strings.js +1 -1
- package/angular/esm2015/src/guards/experiment.guard.service.js +14 -1
- package/angular/esm2015/src/pipes/boolean-converter-pipe.js +11 -1
- package/angular/esm2015/src/pipes/byte-unit-converter-pipe.js +11 -1
- package/angular/esm2015/src/pipes/enum-converter-pipe.js +16 -1
- package/angular/esm2015/src/pipes/format-pipe.js +11 -1
- package/angular/esm2015/src/pipes/highlight-pipe.js +11 -1
- package/angular/esm2015/src/pipes/yesno-converter-pipe.js +11 -1
- package/angular/esm2015/src/service/gateway.service.js +8 -5
- package/angular/esm2015/src/service/notification.service.js +23 -1
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +1042 -1069
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
- package/angular/package.json +0 -1
- package/angular/src/controls/actions/items/action-dropdown/action-dropdown.component.d.ts +2 -0
- package/angular/src/controls/actions/items/action-item.component.d.ts +11 -1
- package/angular/src/controls/badge/badge-base.component.d.ts +0 -4
- package/angular/src/controls/data-table/data-table-column.component.d.ts +2 -1
- package/angular/src/controls/data-table/data-table.component.d.ts +4 -0
- package/angular/src/controls/dialog/base-dialog.component.d.ts +1 -1
- package/angular/src/controls/form/form-field/form-field.component.d.ts +10 -1
- package/angular/src/controls/form/form-field/options-form-field/form-field-option.component.d.ts +5 -1
- package/angular/src/controls/form/validation-alert/validation-alert.component.d.ts +0 -4
- package/angular/src/controls/form/validation-alert/validation-alert.d.ts +0 -1
- package/angular/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.d.ts +16 -0
- package/angular/src/controls/icon/layered-icon/layered-icon.component.d.ts +11 -0
- package/angular/src/controls/icon/layered-icon/status/status-icon.component.d.ts +13 -2
- package/angular/src/controls/loading-wheel/loading-wheel.component.d.ts +16 -0
- package/angular/src/controls/master-view/master-view.component.d.ts +1 -0
- package/angular/src/controls/pivot/pivot-tab.component.d.ts +0 -1
- package/angular/src/controls/pivot/pivot.component.d.ts +4 -0
- package/angular/src/controls/settings/common-settings/common-settings.component.d.ts +6 -5
- package/angular/src/controls/settings/settings.component.d.ts +27 -0
- package/angular/src/controls/settings/settings.module.d.ts +7 -6
- package/angular/src/controls/tooltip/tooltip-host.component.d.ts +1 -1
- package/angular/src/controls/wizard/wizard.component.d.ts +23 -0
- package/angular/src/directives/clamp/clamp.directive.d.ts +5 -0
- package/angular/src/directives/markdown/markdown.directive.d.ts +2 -3
- package/angular/src/generated/strings.d.ts +9 -0
- package/angular/src/guards/experiment.guard.service.d.ts +13 -0
- package/angular/src/pipes/boolean-converter-pipe.d.ts +10 -0
- package/angular/src/pipes/byte-unit-converter-pipe.d.ts +10 -0
- package/angular/src/pipes/enum-converter-pipe.d.ts +15 -0
- package/angular/src/pipes/format-pipe.d.ts +10 -0
- package/angular/src/pipes/highlight-pipe.d.ts +10 -0
- package/angular/src/pipes/yesno-converter-pipe.d.ts +10 -0
- package/angular/src/service/gateway.service.d.ts +3 -1
- package/angular/src/service/notification.service.d.ts +22 -0
- package/core/base/environment.d.ts +7 -0
- package/core/base/environment.js.map +1 -1
- package/core/base/versioned-object.js +2 -2
- package/core/base/versioned-object.js.map +1 -1
- package/core/data/cim-stream.js +8 -1
- package/core/data/cim-stream.js.map +1 -1
- package/core/data/core-environment.d.ts +4 -0
- package/core/data/core-environment.js +1 -0
- package/core/data/core-environment.js.map +1 -1
- package/core/data/crypto.js +10 -9
- package/core/data/crypto.js.map +1 -1
- package/core/data/file-transfer.js +5 -1
- package/core/data/file-transfer.js.map +1 -1
- package/core/data/gateway-connection.d.ts +11 -1
- package/core/data/gateway-connection.js +51 -9
- package/core/data/gateway-connection.js.map +1 -1
- package/core/data/http-constants.d.ts +5 -1
- package/core/data/http-constants.js +5 -1
- package/core/data/http-constants.js.map +1 -1
- package/core/data/net.d.ts +15 -11
- package/core/data/net.js +44 -41
- package/core/data/net.js.map +1 -1
- package/core/data/node-connection.d.ts +2 -2
- package/core/data/node-connection.js.map +1 -1
- package/core/data/powershell-stream.js +11 -3
- package/core/data/powershell-stream.js.map +1 -1
- package/core/data/powershell.d.ts +17 -1
- package/core/data/powershell.js +35 -9
- package/core/data/powershell.js.map +1 -1
- package/core/data/settings-manager.d.ts +9 -0
- package/core/data/settings-manager.js +18 -1
- package/core/data/settings-manager.js.map +1 -1
- package/core/generated/powershell-scripts.d.ts +5 -4
- package/core/generated/powershell-scripts.js +5 -4
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/host/host-core-manager.d.ts +36 -0
- package/core/host/host-core-manager.js +134 -0
- package/core/host/host-core-manager.js.map +1 -0
- package/core/host/host-core-message-type.d.ts +12 -0
- package/core/host/host-core-message-type.js +17 -0
- package/core/host/host-core-message-type.js.map +1 -0
- package/core/host/host-core-messages.d.ts +14 -0
- package/core/host/host-core-messages.js +3 -0
- package/core/host/host-core-messages.js.map +1 -0
- package/core/manifest/manifest-loader.d.ts +2 -1
- package/core/manifest/manifest-loader.js +27 -18
- package/core/manifest/manifest-loader.js.map +1 -1
- package/core/notification/notification.js +4 -0
- package/core/notification/notification.js.map +1 -1
- package/core/security/authorization-manager.d.ts +44 -0
- package/core/security/authorization-manager.js +111 -5
- package/core/security/authorization-manager.js.map +1 -1
- package/core/security/sign-on-manager.d.ts +109 -0
- package/core/security/sign-on-manager.js +119 -0
- package/core/security/sign-on-manager.js.map +1 -0
- package/core/security/tag-manager.js.map +1 -1
- package/core/shared/cluster-inventory/cluster-inventory-cache.js +3 -2
- package/core/shared/cluster-inventory/cluster-inventory-cache.js.map +1 -1
- package/core/shared/gateway-inventory/gateway-inventory-cache.d.ts +1 -1
- package/core/shared/gateway-inventory/gateway-inventory-cache.js +1 -1
- package/core/shared/gateway-inventory/gateway-inventory-cache.js.map +1 -1
- package/core/shared/server-inventory/server-inventory-cache.js +2 -1
- package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
- package/core/shared/tool-inventory/tool-inventory-cache.js +1 -1
- package/core/shared/tool-inventory/tool-inventory-cache.js.map +1 -1
- package/e2e/assets/strings/cs-CZ/strings.json +1 -1
- package/e2e/assets/strings/de-DE/strings.json +1 -1
- package/e2e/assets/strings/es-ES/strings.json +1 -1
- package/e2e/assets/strings/fr-FR/strings.json +1 -1
- package/e2e/assets/strings/hu-HU/strings.json +1 -1
- package/e2e/assets/strings/it-IT/strings.json +1 -1
- package/e2e/assets/strings/ja-JP/strings.json +1 -1
- package/e2e/assets/strings/ko-KR/strings.json +1 -1
- package/e2e/assets/strings/nl-NL/strings.json +1 -1
- package/e2e/assets/strings/pl-PL/strings.json +1 -1
- package/e2e/assets/strings/pt-BR/strings.json +1 -1
- package/e2e/assets/strings/pt-PT/strings.json +1 -1
- package/e2e/assets/strings/ru-RU/strings.json +1 -1
- package/e2e/assets/strings/strings.json +1 -1
- package/e2e/assets/strings/sv-SE/strings.json +1 -1
- package/e2e/assets/strings/tr-TR/strings.json +1 -1
- package/e2e/assets/strings/zh-CN/strings.json +1 -1
- package/e2e/assets/strings/zh-TW/strings.json +1 -1
- package/package.json +5 -5
- package/styles/css/fonts.css +2 -2
- package/styles/css/main.css +1 -1
- package/styles/fonts/ServMDL2/ServMDL2-4.62.woff +0 -0
- package/styles/fonts/ServMDL2/ServMDL2.json +238 -2039
- package/styles/fonts/ServMDL2/ServMDL2.scss +238 -2039
- package/tools/gulp-manifest-resource/index.js +3 -1
- package/tools/gulp-manifest-resource/index.js.map +1 -1
- package/tools/gulp-ps-cim/index.js +1 -1
- package/tools/gulp-ps-cim/index.js.map +1 -1
- package/tools/gulp-ps-cim/powershell-cim-config-schema.json +1 -1
- package/tools/gulp-ps-code/index.js +36 -2
- package/tools/gulp-ps-code/index.js.map +1 -1
- package/tools/gulp-ps-code/ps-code-convert.js +4 -8
- package/tools/gulp-ps-code/ps-code-convert.js.map +1 -1
- package/tools/gulp-ps-resjson/index.js +79 -74
- package/tools/gulp-ps-resjson/index.js.map +1 -1
- package/tools/module-template/build/pipelines/codeinspector.yml +27 -0
- package/tools/module-template/gulpfile.ts/common/lint.ts +3 -3
- package/tools/module-template/gulpfile.ts/common/pack.ts +14 -14
- package/tools/module-template/gulpfile.ts/common/ui-test-automation.ts +40 -0
- package/tools/module-template/gulpfile.ts/common/utilities.ts +10 -10
- package/tools/module-template/gulpfile.ts/common/validate.ts +14 -4
- package/tools/module-template/gulpfile.ts/index.ts +20 -8
- package/tools/wac-cli/src/upgrade/file-updater.d.ts +1 -0
- package/tools/wac-cli/src/upgrade/file-updater.js +7 -1
- package/tools/wac-cli/src/upgrade/file-updater.js.map +1 -1
- package/styles/fonts/ServMDL2/ServMDL2-4.33.woff +0 -0
|
@@ -92,6 +92,7 @@ function gulpManifestResources(options) {
|
|
|
92
92
|
*/
|
|
93
93
|
function (callback) {
|
|
94
94
|
var e_1, _a;
|
|
95
|
+
var result = null;
|
|
95
96
|
try {
|
|
96
97
|
var manifestObject = JSON.parse(fs.readFileSync(options.manifest, 'utf8'));
|
|
97
98
|
var keys = [];
|
|
@@ -157,8 +158,9 @@ function gulpManifestResources(options) {
|
|
|
157
158
|
var error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?
|
|
158
159
|
util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;
|
|
159
160
|
log.error(error);
|
|
161
|
+
result = e;
|
|
160
162
|
}
|
|
161
|
-
callback();
|
|
163
|
+
callback(result);
|
|
162
164
|
});
|
|
163
165
|
}
|
|
164
166
|
module.exports = gulpManifestResources;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/tools/gulp-manifest-resource/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport { Buffer } from 'buffer';\r\nimport log = require('fancy-log');\r\nimport fs = require('fs');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\n\r\nconst PLUGIN_NAME = 'gulp-manifest-resource';\r\n\r\ninterface Options {\r\n /**\r\n * resource name.\r\n */\r\n resourceName: string;\r\n\r\n /**\r\n * path of manifest file.\r\n */\r\n manifest: string;\r\n\r\n /**\r\n * depth of folder structure from the locale folder. (default is 1)\r\n */\r\n localeOffset: number;\r\n}\r\n\r\nfunction gulpManifestResources(options: Options) {\r\n function findResourceKey(node: any, results: string[]): void {\r\n const match = 'resources:strings:';\r\n const keys = Object.keys(node);\r\n if (keys && keys.length > 0) {\r\n keys.forEach(key => {\r\n const target = node[key];\r\n if (target) {\r\n if (typeof target === 'string') {\r\n if (target.indexOf(match) === 0) {\r\n const value = target.substr(match.length);\r\n if (results.indexOf(value) < 0) {\r\n results.push(value);\r\n }\r\n }\r\n } else {\r\n findResourceKey(target, results);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n // override options settings if not specified.\r\n options = <Options>Object.assign(\r\n {\r\n manifest: 'src/manifest.json',\r\n localeOffset: 1\r\n },\r\n options || {});\r\n\r\n const resources: any = {};\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n let locale = 'default';\r\n if (resources.default) {\r\n // if default is set already, find current locale from the file path.\r\n const pathSegments = file.history[0].split('\\\\');\r\n locale = pathSegments[pathSegments.length - (2 + options.localeOffset)];\r\n }\r\n\r\n resources[locale] = {};\r\n if (resources.default) {\r\n // if default is set already, pre-fill all resource items from default.\r\n for (const resourceId in resources.default) {\r\n if (resources.default.hasOwnProperty(resourceId)) {\r\n resources[locale][resourceId] = resources.default[resourceId];\r\n }\r\n }\r\n }\r\n\r\n // remove comments, /* multiline comment */ and // one line comment and \"//\": \"JSON element comment\"\r\n const content = file.contents.toString('utf8')\r\n .replace(/(\\/\\*([^*]|[\\n]|(\\*+([^*/]|[\\n])))*\\*\\/+)|( +\\/\\/.*)|( +\\\"\\/\\/\\\".*)/g, '');\r\n const object = JSON.parse(content);\r\n if (object[options.resourceName] && object[options.resourceName]['Manifest']) {\r\n // supports <ResourceName>.Manifest.<KeyName> format.\r\n const items = object[options.resourceName]['Manifest'];\r\n for (const key in items) {\r\n if (items.hasOwnProperty(key)) {\r\n resources[locale][key] = items[key];\r\n }\r\n }\r\n } else {\r\n // supports <ResourceName>_Manifest_KeyName format.\r\n const resourceManifest = options.resourceName + '_Manifest_';\r\n for (const name in object) {\r\n if (object.hasOwnProperty(name)) {\r\n const index = name.indexOf(resourceManifest);\r\n if (index === 0) {\r\n const value = object[name];\r\n const resourceId2 = name.substr(resourceManifest.length);\r\n resources[locale][resourceId2] = value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return callback();\r\n },\r\n\r\n /**\r\n * Flush\r\n */\r\n function (callback) {\r\n try {\r\n const manifestObject = JSON.parse(fs.readFileSync(options.manifest, 'utf8'));\r\n\r\n const keys: string[] = [];\r\n findResourceKey(manifestObject, keys);\r\n const missing: string[] = [];\r\n const unused: string[] = Object.keys(resources.default);\r\n\r\n keys.forEach(function (key) {\r\n const index = unused.indexOf(key);\r\n if (index >= 0) {\r\n unused.splice(index, 1);\r\n } else {\r\n missing.push(key);\r\n }\r\n });\r\n\r\n if (missing.length > 0) {\r\n missing.forEach(item => {\r\n log.error('Missing resource: ' + item);\r\n });\r\n throw new Error('Missing resource found in manifest.json!');\r\n }\r\n\r\n if (unused.length > 0) {\r\n unused.forEach(item => {\r\n log.error('Unused resource: ' + item);\r\n });\r\n throw new Error('Unused resource found in strings.resjson!');\r\n }\r\n\r\n const locales = [];\r\n for (const locale in resources) {\r\n if (resources.hasOwnProperty(locale) && locale !== 'default') {\r\n locales.push(locale);\r\n }\r\n }\r\n\r\n locales.sort();\r\n locales.unshift('default');\r\n const formattedResources = [];\r\n for (const locale of locales) {\r\n formattedResources.push({\r\n locale: locale,\r\n strings: resources[locale]\r\n });\r\n }\r\n\r\n manifestObject.resources = formattedResources;\r\n const manifestFile = new Vinyl({\r\n cwd: './',\r\n path: options.manifest,\r\n contents: Buffer.from(JSON.stringify(manifestObject, null, 2), 'utf8')\r\n });\r\n\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(manifestFile);\r\n } catch (e) {\r\n const error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n log.error(error);\r\n }\r\n\r\n callback();\r\n });\r\n}\r\n\r\nmodule.exports = gulpManifestResources;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/tools/gulp-manifest-resource/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport { Buffer } from 'buffer';\r\nimport log = require('fancy-log');\r\nimport fs = require('fs');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\n\r\nconst PLUGIN_NAME = 'gulp-manifest-resource';\r\n\r\ninterface Options {\r\n /**\r\n * resource name.\r\n */\r\n resourceName: string;\r\n\r\n /**\r\n * path of manifest file.\r\n */\r\n manifest: string;\r\n\r\n /**\r\n * depth of folder structure from the locale folder. (default is 1)\r\n */\r\n localeOffset: number;\r\n}\r\n\r\nfunction gulpManifestResources(options: Options) {\r\n function findResourceKey(node: any, results: string[]): void {\r\n const match = 'resources:strings:';\r\n const keys = Object.keys(node);\r\n if (keys && keys.length > 0) {\r\n keys.forEach(key => {\r\n const target = node[key];\r\n if (target) {\r\n if (typeof target === 'string') {\r\n if (target.indexOf(match) === 0) {\r\n const value = target.substr(match.length);\r\n if (results.indexOf(value) < 0) {\r\n results.push(value);\r\n }\r\n }\r\n } else {\r\n findResourceKey(target, results);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n // override options settings if not specified.\r\n options = <Options>Object.assign(\r\n {\r\n manifest: 'src/manifest.json',\r\n localeOffset: 1\r\n },\r\n options || {});\r\n\r\n const resources: any = {};\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n let locale = 'default';\r\n if (resources.default) {\r\n // if default is set already, find current locale from the file path.\r\n const pathSegments = file.history[0].split('\\\\');\r\n locale = pathSegments[pathSegments.length - (2 + options.localeOffset)];\r\n }\r\n\r\n resources[locale] = {};\r\n if (resources.default) {\r\n // if default is set already, pre-fill all resource items from default.\r\n for (const resourceId in resources.default) {\r\n if (resources.default.hasOwnProperty(resourceId)) {\r\n resources[locale][resourceId] = resources.default[resourceId];\r\n }\r\n }\r\n }\r\n\r\n // remove comments, /* multiline comment */ and // one line comment and \"//\": \"JSON element comment\"\r\n const content = file.contents.toString('utf8')\r\n .replace(/(\\/\\*([^*]|[\\n]|(\\*+([^*/]|[\\n])))*\\*\\/+)|( +\\/\\/.*)|( +\\\"\\/\\/\\\".*)/g, '');\r\n const object = JSON.parse(content);\r\n if (object[options.resourceName] && object[options.resourceName]['Manifest']) {\r\n // supports <ResourceName>.Manifest.<KeyName> format.\r\n const items = object[options.resourceName]['Manifest'];\r\n for (const key in items) {\r\n if (items.hasOwnProperty(key)) {\r\n resources[locale][key] = items[key];\r\n }\r\n }\r\n } else {\r\n // supports <ResourceName>_Manifest_KeyName format.\r\n const resourceManifest = options.resourceName + '_Manifest_';\r\n for (const name in object) {\r\n if (object.hasOwnProperty(name)) {\r\n const index = name.indexOf(resourceManifest);\r\n if (index === 0) {\r\n const value = object[name];\r\n const resourceId2 = name.substr(resourceManifest.length);\r\n resources[locale][resourceId2] = value;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return callback();\r\n },\r\n\r\n /**\r\n * Flush\r\n */\r\n function (callback) {\r\n let result = null;\r\n try {\r\n const manifestObject = JSON.parse(fs.readFileSync(options.manifest, 'utf8'));\r\n\r\n const keys: string[] = [];\r\n findResourceKey(manifestObject, keys);\r\n const missing: string[] = [];\r\n const unused: string[] = Object.keys(resources.default);\r\n\r\n keys.forEach(function (key) {\r\n const index = unused.indexOf(key);\r\n if (index >= 0) {\r\n unused.splice(index, 1);\r\n } else {\r\n missing.push(key);\r\n }\r\n });\r\n\r\n if (missing.length > 0) {\r\n missing.forEach(item => {\r\n log.error('Missing resource: ' + item);\r\n });\r\n throw new Error('Missing resource found in manifest.json!');\r\n }\r\n\r\n if (unused.length > 0) {\r\n unused.forEach(item => {\r\n log.error('Unused resource: ' + item);\r\n });\r\n throw new Error('Unused resource found in strings.resjson!');\r\n }\r\n\r\n const locales = [];\r\n for (const locale in resources) {\r\n if (resources.hasOwnProperty(locale) && locale !== 'default') {\r\n locales.push(locale);\r\n }\r\n }\r\n\r\n locales.sort();\r\n locales.unshift('default');\r\n const formattedResources = [];\r\n for (const locale of locales) {\r\n formattedResources.push({\r\n locale: locale,\r\n strings: resources[locale]\r\n });\r\n }\r\n\r\n manifestObject.resources = formattedResources;\r\n const manifestFile = new Vinyl({\r\n cwd: './',\r\n path: options.manifest,\r\n contents: Buffer.from(JSON.stringify(manifestObject, null, 2), 'utf8')\r\n });\r\n\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(manifestFile);\r\n } catch (e) {\r\n const error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n log.error(error);\r\n result = e;\r\n }\r\n\r\n callback(result);\r\n });\r\n}\r\n\r\nmodule.exports = gulpManifestResources;\r\n"]}
|
|
@@ -65,7 +65,7 @@ function cimScript(mapData) {
|
|
|
65
65
|
var paramSection = [];
|
|
66
66
|
commentSection.push('<#', '', '.SYNOPSIS', mapData.description, '', '.DESCRIPTION', mapData.description, '', '.ROLE');
|
|
67
67
|
commentSection.push.apply(commentSection, tslib_1.__spread(mapData.roles)),
|
|
68
|
-
commentSection.push('', '#>', '##SkipCheck=true##');
|
|
68
|
+
commentSection.push('', '#>', '', '##SkipCheck=true##');
|
|
69
69
|
switch (mapData.type) {
|
|
70
70
|
case 'getInstanceMultiple':
|
|
71
71
|
case 'getBatchInstanceMultiple':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/tools/gulp-ps-cim/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport log = require('fancy-log');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\n\r\nconst PLUGIN_NAME = 'gulp-ps-cim';\r\n\r\ninterface MapData {\r\n name: string;\r\n description: string;\r\n scope: string;\r\n roles: string[];\r\n type: string;\r\n namespace: string;\r\n className: string;\r\n methodName: string;\r\n query: string;\r\n keyProperties: [\r\n {\r\n name: string;\r\n type: string;\r\n }];\r\n property: [\r\n {\r\n name: string;\r\n type: string;\r\n value: any;\r\n }];\r\n arguments: [\r\n {\r\n name: string;\r\n type: string;\r\n value: any;\r\n }];\r\n}\r\n\r\nfunction gulpPowerShellCim(options) {\r\n //\r\n // (Options):\r\n //\r\n\r\n // override options settings if not specified.\r\n options = Object.assign(options || {});\r\n\r\n let collection: MapData[] = null;\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n collection = JSON.parse(file.contents.toString()).collection;\r\n return callback();\r\n },\r\n /**\r\n * Flush\r\n */\r\n function (callback) {\r\n try {\r\n for (const mapData of collection) {\r\n const contents = cimScript(mapData).join('\\r\\n');\r\n const scopePath = mapData.scope ? mapData.scope + '/' : '';\r\n const scriptFile = new Vinyl({\r\n cwd: './',\r\n path: scopePath + mapData.name + '.ps1',\r\n contents: Buffer.from(contents, 'utf8')\r\n });\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(scriptFile);\r\n }\r\n } catch (e) {\r\n const error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n log.error(error);\r\n }\r\n\r\n callback();\r\n });\r\n}\r\n\r\nfunction cimScript(mapData: MapData): string[] {\r\n let line: string;\r\n const bodySection: string[] = [];\r\n const commentSection: string[] = [];\r\n let paramSection: string[] = [];\r\n commentSection.push(\r\n '<#',\r\n '',\r\n '.SYNOPSIS',\r\n mapData.description,\r\n '',\r\n '.DESCRIPTION',\r\n mapData.description,\r\n '',\r\n '.ROLE');\r\n commentSection.push(...mapData.roles),\r\n commentSection.push(\r\n '',\r\n '#>',\r\n '##SkipCheck=true##');\r\n\r\n switch (mapData.type) {\r\n case 'getInstanceMultiple':\r\n case 'getBatchInstanceMultiple':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n line = `Get-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'getInstanceSingle':\r\n case 'getBatchInstanceSingle':\r\n // namespace the cim namespace.\r\n // lassName the class name.\r\n // keyProperties the key properties object\r\n let parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$keyInstance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = 'Get-CimInstance $keyInstance';\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'invokeMethodInstance':\r\n case 'invokeBatchMethodInstance':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // methodName the method name.\r\n // keyProperties the key properties object.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$keyInstance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = `Invoke-CimMethod $keyInstance -MethodName ${mapData.methodName}`;\r\n if (parameters.argumentsLine) {\r\n line += ` -Arguments @{${parameters.argumentsLine}}`;\r\n }\r\n\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'invokeMethodStatic':\r\n case 'invokeBatchMethodStatic':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // methodName the method name.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `Invoke-CimMethod -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -MethodName ${mapData.methodName}`;\r\n if (parameters.argumentsLine) {\r\n line += ` -Arguments @{${parameters.argumentsLine}}`;\r\n }\r\n\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'setInstance':\r\n case 'setBatchInstance':\r\n // namespace the cim namespace.\r\n // lassName the class name.\r\n // keyProperties the key properties object.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}${parameters.argumentsLine}}`;\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'modifyInstance':\r\n case 'modifyBatchInstance':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // keyProperties the key properties object.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$instance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = '$instance = Get-CimInstance $instance';\r\n bodySection.push(line);\r\n bodySection.push(...parameters.updateSection);\r\n line = 'Set-CimInstance $instance';\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'deleteInstance':\r\n case 'deleteBatchInstance':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // keyProperties the key properties object.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$instance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = 'Remove-CimInstance $instance';\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'getInstanceQuery':\r\n case 'getBatchInstanceQuery':\r\n // namespace the cim namespace.\r\n // query the WQL string.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `Get-CimInstance -Namespace ${mapData.namespace} -Query \"${mapData.query}\"`;\r\n bodySection.push(line);\r\n break;\r\n }\r\n\r\n const content: string[] = [];\r\n content.push(...commentSection);\r\n content.push('');\r\n content.push(...paramSection);\r\n content.push('');\r\n content.push('import-module CimCmdlets');\r\n content.push('');\r\n content.push(...bodySection);\r\n content.push('');\r\n return content;\r\n}\r\n\r\nfunction keyArgumentsParameters(mapData: MapData): {\r\n keyLine: string,\r\n propertyLine: string,\r\n argumentsLine: string,\r\n updateSection: string[],\r\n paramSection: string[]\r\n} {\r\n const paramSection: string[] = [];\r\n paramSection.push('Param(');\r\n let keyLine: string = null;\r\n let keySeparator = '';\r\n let propLine: string = null;\r\n let dataLine: string = null;\r\n if (mapData.keyProperties && Array.isArray(mapData.keyProperties)) {\r\n keyLine = '';\r\n propLine = '';\r\n for (const key of mapData.keyProperties) {\r\n paramSection.push(`[${key.type}]$${key.name}`);\r\n keyLine += `${keySeparator}'${key.name}'`;\r\n propLine += `${key.name}=$${key.name};`;\r\n keySeparator = ',';\r\n }\r\n }\r\n\r\n const updateSection: string[] = [];\r\n updateSection.push('');\r\n if (mapData.arguments) {\r\n dataLine = '';\r\n for (const data of mapData.arguments) {\r\n paramSection.push(`[${data.type}]$${data.name}`);\r\n dataLine += `${data.name}=$${data.name};`;\r\n updateSection.push(`$instance.${data.name}=$${data.name}`);\r\n }\r\n }\r\n\r\n if (paramSection.length > 2) {\r\n for (let i = 1; i < paramSection.length - 1; i++) {\r\n paramSection[i] += ',';\r\n }\r\n }\r\n\r\n paramSection.push(')');\r\n return {\r\n keyLine: keyLine,\r\n propertyLine: propLine,\r\n argumentsLine: dataLine,\r\n updateSection: updateSection,\r\n paramSection: paramSection\r\n };\r\n}\r\n\r\nmodule.exports = gulpPowerShellCim;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/tools/gulp-ps-cim/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport log = require('fancy-log');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\n\r\nconst PLUGIN_NAME = 'gulp-ps-cim';\r\n\r\ninterface MapData {\r\n name: string;\r\n description: string;\r\n scope: string;\r\n roles: string[];\r\n type: string;\r\n namespace: string;\r\n className: string;\r\n methodName: string;\r\n query: string;\r\n keyProperties: [\r\n {\r\n name: string;\r\n type: string;\r\n }];\r\n property: [\r\n {\r\n name: string;\r\n type: string;\r\n value: any;\r\n }];\r\n arguments: [\r\n {\r\n name: string;\r\n type: string;\r\n value: any;\r\n }];\r\n}\r\n\r\nfunction gulpPowerShellCim(options) {\r\n //\r\n // (Options):\r\n //\r\n\r\n // override options settings if not specified.\r\n options = Object.assign(options || {});\r\n\r\n let collection: MapData[] = null;\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n collection = JSON.parse(file.contents.toString()).collection;\r\n return callback();\r\n },\r\n /**\r\n * Flush\r\n */\r\n function (callback) {\r\n try {\r\n for (const mapData of collection) {\r\n const contents = cimScript(mapData).join('\\r\\n');\r\n const scopePath = mapData.scope ? mapData.scope + '/' : '';\r\n const scriptFile = new Vinyl({\r\n cwd: './',\r\n path: scopePath + mapData.name + '.ps1',\r\n contents: Buffer.from(contents, 'utf8')\r\n });\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(scriptFile);\r\n }\r\n } catch (e) {\r\n const error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n log.error(error);\r\n }\r\n\r\n callback();\r\n });\r\n}\r\n\r\nfunction cimScript(mapData: MapData): string[] {\r\n let line: string;\r\n const bodySection: string[] = [];\r\n const commentSection: string[] = [];\r\n let paramSection: string[] = [];\r\n commentSection.push(\r\n '<#',\r\n '',\r\n '.SYNOPSIS',\r\n mapData.description,\r\n '',\r\n '.DESCRIPTION',\r\n mapData.description,\r\n '',\r\n '.ROLE');\r\n commentSection.push(...mapData.roles),\r\n commentSection.push(\r\n '',\r\n '#>',\r\n '',\r\n '##SkipCheck=true##');\r\n\r\n switch (mapData.type) {\r\n case 'getInstanceMultiple':\r\n case 'getBatchInstanceMultiple':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n line = `Get-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'getInstanceSingle':\r\n case 'getBatchInstanceSingle':\r\n // namespace the cim namespace.\r\n // lassName the class name.\r\n // keyProperties the key properties object\r\n let parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$keyInstance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = 'Get-CimInstance $keyInstance';\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'invokeMethodInstance':\r\n case 'invokeBatchMethodInstance':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // methodName the method name.\r\n // keyProperties the key properties object.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$keyInstance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = `Invoke-CimMethod $keyInstance -MethodName ${mapData.methodName}`;\r\n if (parameters.argumentsLine) {\r\n line += ` -Arguments @{${parameters.argumentsLine}}`;\r\n }\r\n\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'invokeMethodStatic':\r\n case 'invokeBatchMethodStatic':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // methodName the method name.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `Invoke-CimMethod -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -MethodName ${mapData.methodName}`;\r\n if (parameters.argumentsLine) {\r\n line += ` -Arguments @{${parameters.argumentsLine}}`;\r\n }\r\n\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'setInstance':\r\n case 'setBatchInstance':\r\n // namespace the cim namespace.\r\n // lassName the class name.\r\n // keyProperties the key properties object.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}${parameters.argumentsLine}}`;\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'modifyInstance':\r\n case 'modifyBatchInstance':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // keyProperties the key properties object.\r\n // data the method input data.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$instance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = '$instance = Get-CimInstance $instance';\r\n bodySection.push(line);\r\n bodySection.push(...parameters.updateSection);\r\n line = 'Set-CimInstance $instance';\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'deleteInstance':\r\n case 'deleteBatchInstance':\r\n // namespace the cim namespace.\r\n // className the class name.\r\n // keyProperties the key properties object.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `$instance = New-CimInstance -Namespace ${mapData.namespace} -ClassName ${mapData.className}`;\r\n line += ` -Key @(${parameters.keyLine}) -Property @{${parameters.propertyLine}} -ClientOnly`;\r\n bodySection.push(line);\r\n line = 'Remove-CimInstance $instance';\r\n bodySection.push(line);\r\n break;\r\n\r\n case 'getInstanceQuery':\r\n case 'getBatchInstanceQuery':\r\n // namespace the cim namespace.\r\n // query the WQL string.\r\n parameters = keyArgumentsParameters(mapData);\r\n paramSection = parameters.paramSection;\r\n line = `Get-CimInstance -Namespace ${mapData.namespace} -Query \"${mapData.query}\"`;\r\n bodySection.push(line);\r\n break;\r\n }\r\n\r\n const content: string[] = [];\r\n content.push(...commentSection);\r\n content.push('');\r\n content.push(...paramSection);\r\n content.push('');\r\n content.push('import-module CimCmdlets');\r\n content.push('');\r\n content.push(...bodySection);\r\n content.push('');\r\n return content;\r\n}\r\n\r\nfunction keyArgumentsParameters(mapData: MapData): {\r\n keyLine: string,\r\n propertyLine: string,\r\n argumentsLine: string,\r\n updateSection: string[],\r\n paramSection: string[]\r\n} {\r\n const paramSection: string[] = [];\r\n paramSection.push('Param(');\r\n let keyLine: string = null;\r\n let keySeparator = '';\r\n let propLine: string = null;\r\n let dataLine: string = null;\r\n if (mapData.keyProperties && Array.isArray(mapData.keyProperties)) {\r\n keyLine = '';\r\n propLine = '';\r\n for (const key of mapData.keyProperties) {\r\n paramSection.push(`[${key.type}]$${key.name}`);\r\n keyLine += `${keySeparator}'${key.name}'`;\r\n propLine += `${key.name}=$${key.name};`;\r\n keySeparator = ',';\r\n }\r\n }\r\n\r\n const updateSection: string[] = [];\r\n updateSection.push('');\r\n if (mapData.arguments) {\r\n dataLine = '';\r\n for (const data of mapData.arguments) {\r\n paramSection.push(`[${data.type}]$${data.name}`);\r\n dataLine += `${data.name}=$${data.name};`;\r\n updateSection.push(`$instance.${data.name}=$${data.name}`);\r\n }\r\n }\r\n\r\n if (paramSection.length > 2) {\r\n for (let i = 1; i < paramSection.length - 1; i++) {\r\n paramSection[i] += ',';\r\n }\r\n }\r\n\r\n paramSection.push(')');\r\n return {\r\n keyLine: keyLine,\r\n propertyLine: propLine,\r\n argumentsLine: dataLine,\r\n updateSection: updateSection,\r\n paramSection: paramSection\r\n };\r\n}\r\n\r\nmodule.exports = gulpPowerShellCim;\r\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
3
4
|
var Path = require("path");
|
|
4
5
|
var pluginError = require("plugin-error");
|
|
5
6
|
var through2 = require("through2");
|
|
@@ -53,6 +54,7 @@ function gulpPsCode(options) {
|
|
|
53
54
|
var collection = {};
|
|
54
55
|
var lastFile = null;
|
|
55
56
|
return through2.obj(function (file, enc, cb) {
|
|
57
|
+
var e_1, _a;
|
|
56
58
|
var error = null;
|
|
57
59
|
try {
|
|
58
60
|
if (!options.powerShellModuleName) {
|
|
@@ -118,21 +120,53 @@ function gulpPsCode(options) {
|
|
|
118
120
|
console.error('File doesn\'t follow official verb name to support JEA: ' + path.base);
|
|
119
121
|
console.error('Try Get-Verb PowerShell command to find official verbs.');
|
|
120
122
|
console.error('https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx');
|
|
123
|
+
errorCode = true;
|
|
121
124
|
}
|
|
122
125
|
else {
|
|
123
126
|
// validate comments for JEA.
|
|
124
127
|
var commentIndex = data.indexOf('{');
|
|
125
|
-
var comments = commentIndex < 0 ? data : data.
|
|
128
|
+
var comments = commentIndex < 0 ? data : data.substring(0, commentIndex);
|
|
126
129
|
var commentsMinimum = comments.indexOf('<#') >= 0
|
|
127
130
|
&& comments.indexOf('#>') > 0
|
|
128
131
|
&& comments.indexOf('.SYNOPSIS') > 0
|
|
129
132
|
&& comments.indexOf('.DESCRIPTION') > 0
|
|
130
133
|
&& comments.indexOf('.ROLE') > 0;
|
|
131
134
|
if (!commentsMinimum) {
|
|
132
|
-
console.error('
|
|
135
|
+
console.error('The script file doesn\'t contain formal PowerShell comment section to support JEA: ' + path.base);
|
|
136
|
+
console.error('Requires .SYNOPSIS, .DESCRIPTION and .ROLE comments.');
|
|
137
|
+
errorCode = true;
|
|
138
|
+
}
|
|
139
|
+
var roleLine = false;
|
|
140
|
+
try {
|
|
141
|
+
for (var _b = tslib_1.__values(comments.split('\n')), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
142
|
+
var comment = _c.value;
|
|
143
|
+
if (roleLine) {
|
|
144
|
+
var role = comment.trim();
|
|
145
|
+
if (role === '' || role === '#>') {
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
if (role !== 'Administrators' && role !== 'Readers' && role !== 'Hyper-V-Administrators') {
|
|
149
|
+
console.error('The script file contains unsupported JEA ROLE "' + role + '": ' + path.base);
|
|
150
|
+
errorCode = true;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (comment.indexOf('.ROLE') >= 0) {
|
|
154
|
+
roleLine = true;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
159
|
+
finally {
|
|
160
|
+
try {
|
|
161
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
162
|
+
}
|
|
163
|
+
finally { if (e_1) throw e_1.error; }
|
|
133
164
|
}
|
|
134
165
|
}
|
|
135
166
|
}
|
|
167
|
+
if (errorCode) {
|
|
168
|
+
throw new Error('File cannot support JEA: ' + path.base);
|
|
169
|
+
}
|
|
136
170
|
}
|
|
137
171
|
group[path.base] = data;
|
|
138
172
|
lastFile = file;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/tools/gulp-ps-code/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport Path = require('path');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\nimport PsCode = require('./ps-code-convert');\r\nimport { Group, Groups, PsCodeConverter } from './ps-code-convert';\r\n\r\nconst PLUGIN_NAME = 'gulp-ps-code';\r\n\r\n/**\r\n * Plugin level function\r\n */\r\nfunction gulpPsCode(options: PsCode.Options) {\r\n //\r\n // (Options):\r\n //\r\n // name of PowerShell module. (required)\r\n // powerShellModuleName: string\r\n //\r\n // name of generated file.\r\n // name: string; default is 'powershell-script.ts'\r\n //\r\n // base path of powershell files.\r\n // basePath: string; default is 'src/resources/scripts'\r\n //\r\n // generated path of powershell files.\r\n // generatedPath: string; default is 'src/generated/scripts'\r\n //\r\n // remove comments at default.\r\n // noComments: boolean;\r\n //\r\n // validate content of PowerShell script.\r\n // - non-ascii code, no comments, unsupported script file name and unofficial verb\r\n // validate: boolean;\r\n //\r\n // JEA data object format.\r\n // jea: boolean\r\n //\r\n // name of resource root. the key name of resjson.\r\n // resourceName: string\r\n //\r\n\r\n // override options settings if not specified.\r\n options = Object.assign(\r\n <PsCode.Options>{\r\n name: 'powershell-scripts.ts',\r\n basePath: 'src\\\\resources\\\\scripts',\r\n generatedPath: 'src\\\\generated\\\\scripts',\r\n noComments: true,\r\n validate: true,\r\n jea: true\r\n },\r\n options || {});\r\n\r\n const groups: Groups = {};\r\n const collection = {};\r\n let lastFile = null;\r\n\r\n return through2.obj(\r\n function (file, enc, cb) {\r\n let error = null;\r\n try {\r\n if (!options.powerShellModuleName) {\r\n throw new Error('gulp-ps-code requires powerShellModuleName option.');\r\n }\r\n\r\n const path = Path.parse(file.path);\r\n if (path.ext === '.ps1') {\r\n let relPath: string = file.path.substr(file.cwd.length + 1);\r\n relPath = relPath.substr(0, relPath.length - path.base.length - 1);\r\n let groupName = PsCodeConverter.defaultGroup;\r\n if (relPath === options.generatedPath) {\r\n groupName = PsCodeConverter.generatedGroup;\r\n } else {\r\n if (relPath !== options.basePath && relPath.indexOf(options.basePath) === 0) {\r\n groupName = relPath.substr(options.basePath.length + 1);\r\n }\r\n }\r\n\r\n let group: Group = groups[groupName];\r\n if (!group) {\r\n group = {};\r\n groups[groupName] = group;\r\n }\r\n\r\n if (collection[path.base]) {\r\n throw new Error('gulp-ps-code requires unique name of ps file, conflicted with ' + path.base);\r\n }\r\n\r\n collection[path.base] = true;\r\n\r\n const data: string = file.contents.toString('utf8');\r\n if (options.validate) {\r\n // validate non-ascii code presence.\r\n const lines = data.split('\\n');\r\n let errorCode = false;\r\n for (let i = 0; i < lines.length; i++) {\r\n const line = lines[i];\r\n for (let j = 0; j < line.length; j++) {\r\n const code = line.charCodeAt(j);\r\n if (code > 0x7f) {\r\n let point = '';\r\n if (j > 0) {\r\n for (let k = 1; k <= j; k++) {\r\n point += ' ';\r\n }\r\n }\r\n\r\n console.error(\r\n `File: ${path.base}, Line: ${i + 1}, Position: ${j + 1}, Char: '${line.charAt(j)}', Code: ${code}`);\r\n console.error(line);\r\n console.error(point + '^----<see>');\r\n errorCode = true;\r\n }\r\n }\r\n }\r\n\r\n if (errorCode) {\r\n throw new Error('File contained non ascii code: ' + path.base);\r\n }\r\n\r\n // validate script file name.\r\n const segments = path.base.split('-');\r\n if (segments.length !== 2) {\r\n console.error('File doesn\\'t follow <Verb>-<Name>.ps1 format to support JEA: ' + path.base);\r\n } else {\r\n // validate script verb.\r\n const found = PsCodeConverter.verbs.find(x => x === segments[0]);\r\n if (!found) {\r\n console.error('File doesn\\'t follow official verb name to support JEA: ' + path.base);\r\n console.error('Try Get-Verb PowerShell command to find official verbs.');\r\n console.error('https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx');\r\n } else {\r\n // validate comments for JEA.\r\n const commentIndex = data.indexOf('{');\r\n const comments: string = commentIndex < 0 ? data : data.substr(0, commentIndex);\r\n const commentsMinimum = comments.indexOf('<#') >= 0\r\n && comments.indexOf('#>') > 0\r\n && comments.indexOf('.SYNOPSIS') > 0\r\n && comments.indexOf('.DESCRIPTION') > 0\r\n && comments.indexOf('.ROLE') > 0;\r\n if (!commentsMinimum) {\r\n console.error('File doesn\\'t contain formal PowerShell comment section to support JEA: ' + path.base);\r\n }\r\n }\r\n }\r\n }\r\n\r\n group[path.base] = data;\r\n lastFile = file;\r\n }\r\n } catch (e) {\r\n error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n }\r\n\r\n return cb(error);\r\n },\r\n function (cb) {\r\n const converter = new PsCode.PsCodeConverter(options);\r\n converter.contentReset();\r\n converter.generate(groups);\r\n const tsFile = new Vinyl({\r\n cwd: lastFile.cwd,\r\n base: lastFile.base,\r\n path: lastFile.base + '/' + options.name,\r\n contents: Buffer.from(converter.content, 'utf8')\r\n });\r\n\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(tsFile);\r\n cb();\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsCode;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/tools/gulp-ps-code/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport Path = require('path');\r\nimport pluginError = require('plugin-error');\r\nimport through2 = require('through2');\r\nimport Vinyl = require('vinyl');\r\nimport util = require('../utilities');\r\nimport PsCode = require('./ps-code-convert');\r\nimport { Group, Groups, PsCodeConverter } from './ps-code-convert';\r\n\r\nconst PLUGIN_NAME = 'gulp-ps-code';\r\n\r\n/**\r\n * Plugin level function\r\n */\r\nfunction gulpPsCode(options: PsCode.Options) {\r\n //\r\n // (Options):\r\n //\r\n // name of PowerShell module. (required)\r\n // powerShellModuleName: string\r\n //\r\n // name of generated file.\r\n // name: string; default is 'powershell-script.ts'\r\n //\r\n // base path of powershell files.\r\n // basePath: string; default is 'src/resources/scripts'\r\n //\r\n // generated path of powershell files.\r\n // generatedPath: string; default is 'src/generated/scripts'\r\n //\r\n // remove comments at default.\r\n // noComments: boolean;\r\n //\r\n // validate content of PowerShell script.\r\n // - non-ascii code, no comments, unsupported script file name and unofficial verb\r\n // validate: boolean;\r\n //\r\n // JEA data object format.\r\n // jea: boolean\r\n //\r\n // name of resource root. the key name of resjson.\r\n // resourceName: string\r\n //\r\n\r\n // override options settings if not specified.\r\n options = Object.assign(\r\n <PsCode.Options>{\r\n name: 'powershell-scripts.ts',\r\n basePath: 'src\\\\resources\\\\scripts',\r\n generatedPath: 'src\\\\generated\\\\scripts',\r\n noComments: true,\r\n validate: true,\r\n jea: true\r\n },\r\n options || {});\r\n\r\n const groups: Groups = {};\r\n const collection = {};\r\n let lastFile = null;\r\n\r\n return through2.obj(\r\n function (file, enc, cb) {\r\n let error = null;\r\n try {\r\n if (!options.powerShellModuleName) {\r\n throw new Error('gulp-ps-code requires powerShellModuleName option.');\r\n }\r\n\r\n const path = Path.parse(file.path);\r\n if (path.ext === '.ps1') {\r\n let relPath: string = file.path.substr(file.cwd.length + 1);\r\n relPath = relPath.substr(0, relPath.length - path.base.length - 1);\r\n let groupName = PsCodeConverter.defaultGroup;\r\n if (relPath === options.generatedPath) {\r\n groupName = PsCodeConverter.generatedGroup;\r\n } else {\r\n if (relPath !== options.basePath && relPath.indexOf(options.basePath) === 0) {\r\n groupName = relPath.substr(options.basePath.length + 1);\r\n }\r\n }\r\n\r\n let group: Group = groups[groupName];\r\n if (!group) {\r\n group = {};\r\n groups[groupName] = group;\r\n }\r\n\r\n if (collection[path.base]) {\r\n throw new Error('gulp-ps-code requires unique name of ps file, conflicted with ' + path.base);\r\n }\r\n\r\n collection[path.base] = true;\r\n\r\n const data: string = file.contents.toString('utf8');\r\n if (options.validate) {\r\n // validate non-ascii code presence.\r\n const lines = data.split('\\n');\r\n let errorCode = false;\r\n for (let i = 0; i < lines.length; i++) {\r\n const line = lines[i];\r\n for (let j = 0; j < line.length; j++) {\r\n const code = line.charCodeAt(j);\r\n if (code > 0x7f) {\r\n let point = '';\r\n if (j > 0) {\r\n for (let k = 1; k <= j; k++) {\r\n point += ' ';\r\n }\r\n }\r\n\r\n console.error(\r\n `File: ${path.base}, Line: ${i + 1}, Position: ${j + 1}, Char: '${line.charAt(j)}', Code: ${code}`);\r\n console.error(line);\r\n console.error(point + '^----<see>');\r\n errorCode = true;\r\n }\r\n }\r\n }\r\n\r\n if (errorCode) {\r\n throw new Error('File contained non ascii code: ' + path.base);\r\n }\r\n\r\n // validate script file name.\r\n const segments = path.base.split('-');\r\n if (segments.length !== 2) {\r\n console.error('File doesn\\'t follow <Verb>-<Name>.ps1 format to support JEA: ' + path.base);\r\n } else {\r\n // validate script verb.\r\n const found = PsCodeConverter.verbs.find(x => x === segments[0]);\r\n if (!found) {\r\n console.error('File doesn\\'t follow official verb name to support JEA: ' + path.base);\r\n console.error('Try Get-Verb PowerShell command to find official verbs.');\r\n console.error('https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx');\r\n errorCode = true;\r\n } else {\r\n // validate comments for JEA.\r\n const commentIndex = data.indexOf('{');\r\n const comments: string = commentIndex < 0 ? data : data.substring(0, commentIndex);\r\n const commentsMinimum = comments.indexOf('<#') >= 0\r\n && comments.indexOf('#>') > 0\r\n && comments.indexOf('.SYNOPSIS') > 0\r\n && comments.indexOf('.DESCRIPTION') > 0\r\n && comments.indexOf('.ROLE') > 0;\r\n if (!commentsMinimum) {\r\n console.error(\r\n 'The script file doesn\\'t contain formal PowerShell comment section to support JEA: ' + path.base);\r\n console.error(\r\n 'Requires .SYNOPSIS, .DESCRIPTION and .ROLE comments.');\r\n errorCode = true;\r\n }\r\n\r\n let roleLine = false;\r\n for (const comment of comments.split('\\n')) {\r\n if (roleLine) {\r\n const role = comment.trim();\r\n if (role === '' || role === '#>') {\r\n break;\r\n }\r\n\r\n if (role !== 'Administrators' && role !== 'Readers' && role !== 'Hyper-V-Administrators') {\r\n console.error(\r\n 'The script file contains unsupported JEA ROLE \"' + role + '\": ' + path.base);\r\n errorCode = true;\r\n }\r\n }\r\n\r\n if (comment.indexOf('.ROLE') >= 0) {\r\n roleLine = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (errorCode) {\r\n throw new Error('File cannot support JEA: ' + path.base);\r\n }\r\n }\r\n\r\n group[path.base] = data;\r\n lastFile = file;\r\n }\r\n } catch (e) {\r\n error = (!e.plugin || (e.plugin !== PLUGIN_NAME)) ?\r\n util.extendError(new pluginError({ plugin: PLUGIN_NAME, message: e.message }), e) : e;\r\n }\r\n\r\n return cb(error);\r\n },\r\n function (cb) {\r\n const converter = new PsCode.PsCodeConverter(options);\r\n converter.contentReset();\r\n converter.generate(groups);\r\n const tsFile = new Vinyl({\r\n cwd: lastFile.cwd,\r\n base: lastFile.base,\r\n path: lastFile.base + '/' + options.name,\r\n contents: Buffer.from(converter.content, 'utf8')\r\n });\r\n\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(tsFile);\r\n cb();\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsCode;\r\n"]}
|
|
@@ -24,6 +24,9 @@ var PsCodeConverter = /** @class */ (function () {
|
|
|
24
24
|
if (this.options.resourceName) {
|
|
25
25
|
this.buffer.push(this.indent(1) + 'export const resourceName = ' + '\'' + this.options.resourceName + '\';');
|
|
26
26
|
}
|
|
27
|
+
if (this.options.prefixName) {
|
|
28
|
+
this.buffer.push(this.indent(1) + 'export const powerShellPrefix = ' + '\'' + this.options.prefixName + '\';');
|
|
29
|
+
}
|
|
27
30
|
this.addData(groups);
|
|
28
31
|
this.buffer.push(PsCodeConverter.closeContent);
|
|
29
32
|
};
|
|
@@ -38,13 +41,6 @@ var PsCodeConverter = /** @class */ (function () {
|
|
|
38
41
|
return original;
|
|
39
42
|
}
|
|
40
43
|
var scriptName = original.substr(0, index);
|
|
41
|
-
if (this.options.prefixName) {
|
|
42
|
-
var hyphenSeparatorIndex = scriptName.indexOf('-');
|
|
43
|
-
var prefixName = this.options.prefixName;
|
|
44
|
-
var verb = scriptName.substring(0, hyphenSeparatorIndex);
|
|
45
|
-
var target = scriptName.substring(hyphenSeparatorIndex + 1);
|
|
46
|
-
scriptName = verb + '-' + prefixName + target;
|
|
47
|
-
}
|
|
48
44
|
return scriptName;
|
|
49
45
|
};
|
|
50
46
|
PsCodeConverter.prototype.toPascalName = function (original) {
|
|
@@ -118,7 +114,7 @@ var PsCodeConverter = /** @class */ (function () {
|
|
|
118
114
|
var _loop_1 = function (key) {
|
|
119
115
|
var script = '';
|
|
120
116
|
var content = current[key];
|
|
121
|
-
var name_1 = this_1.
|
|
117
|
+
var name_1 = this_1.toJsonName(key);
|
|
122
118
|
var command = this_1.toCommandName(key);
|
|
123
119
|
script = '##' + command + '##:' + key + '\n';
|
|
124
120
|
var removeComments = this_1.options.noComments;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/tools/gulp-ps-code/ps-code-convert.ts"],"names":[],"mappings":"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","file":"ps-code-convert.js","sourcesContent":["declare function escape(data: string): string;\r\ndeclare function unescape(data: string): string;\r\n\r\nexport interface Options {\r\n powerShellModuleName: string;\r\n name: string;\r\n basePath: string;\r\n generatedPath: string;\r\n noComments: boolean;\r\n validate: boolean;\r\n jea: boolean;\r\n resourceName?: string;\r\n prefixName?: string;\r\n}\r\n\r\nexport interface Group {\r\n [index: string]: string;\r\n}\r\n\r\nexport interface Groups {\r\n [index: string]: Group;\r\n}\r\n\r\nexport class PsCodeConverter {\r\n public static defaultGroup = '!!##default__';\r\n public static generatedGroup = '!!##generated__';\r\n public static verbs = [\r\n 'Add', 'Clear', 'Close', 'Copy', 'Enter', 'Exit', 'Find', 'Format', 'Get',\r\n 'Hide', 'Join', 'Lock', 'Move', 'New', 'Open', 'Optimize', 'Pop', 'Push',\r\n 'Redo', 'Remove', 'Rename', 'Reset', 'Resize', 'Search', 'Select', 'Set',\r\n 'Show', 'Skip', 'Split', 'Step', 'Switch', 'Undo', 'Unlock', 'Watch', 'Backup',\r\n 'Checkpoint', 'Compare', 'Compress', 'Convert', 'ConvertFrom', 'ConvertTo',\r\n 'Dismount', 'Edit', 'Expand', 'Export', 'Group', 'Import', 'Initialize',\r\n 'Limit', 'Merge', 'Mount', 'Out', 'Publish', 'Restore', 'Save', 'Sync',\r\n 'Unpublish', 'Update', 'Approve', 'Assert', 'Complete', 'Confirm', 'Deny',\r\n 'Disable', 'Enable', 'Install', 'Invoke', 'Register', 'Request', 'Restart',\r\n 'Resume', 'Start', 'Stop', 'Submit', 'Suspend', 'Uninstall', 'Unregister',\r\n 'Wait', 'Debug', 'Measure', 'Ping', 'Repair', 'Resolve', 'Test', 'Trace',\r\n 'Connect', 'Disconnect', 'Read', 'Receive', 'Send', 'Write', 'Block',\r\n 'Grant', 'Protect', 'Revoke', 'Unblock', 'Unprotect', 'Use'];\r\n\r\n private static fullNames = [\r\n 'Microsoft.PowerShell.Core\\\\Get-Help',\r\n 'Microsoft.PowerShell.Core\\\\Out-Default',\r\n 'Microsoft.PowerShell.Utility\\\\Get-FormatData',\r\n 'Microsoft.PowerShell.Utility\\\\Measure-Object',\r\n 'Microsoft.PowerShell.Utility\\\\Select-Object'\r\n ];\r\n private static removeCommentsTrue = '##RemoveComments=true##';\r\n private static removeCommentsFalse = '##RemoveComments=false##';\r\n private static skipCheckTrue = '##SkipCheck=true##';\r\n private static skipCheckFalse = '##SkipCheck=false##';\r\n private static commentStart = '<#';\r\n private static commentEnd = '#>';\r\n private static comment = '#';\r\n private static openContent =\r\n `/* tslint:disable */\\r\r\n/**\\r\r\n * @file Source code generated by gulp-ps-code.\\r\r\n * @version 1.1\\r\r\n */\\r\r\nexport module PowerShellScripts {\\r\r\n 'use strict'\\r\r\n`;\r\n private static closeContent =\r\n `}\\r\r\n`;\r\n private static hereTextBegin = '@\"';\r\n private static hereTextEnd = '\"@';\r\n\r\n private buffer: string[];\r\n private jeaErrorDisplayOnce = true;\r\n\r\n constructor(private options: Options) {\r\n }\r\n\r\n public get content(): string {\r\n return this.buffer.join('\\r\\n');\r\n }\r\n\r\n public contentReset(): void {\r\n this.buffer = [];\r\n }\r\n\r\n public generate(groups: Groups): void {\r\n const tsBase = null;\r\n this.buffer.push(PsCodeConverter.openContent);\r\n this.buffer.push(this.indent(1) + 'export const module = ' + '\\'' + this.options.powerShellModuleName + '\\';');\r\n if (this.options.resourceName) {\r\n this.buffer.push(this.indent(1) + 'export const resourceName = ' + '\\'' + this.options.resourceName + '\\';');\r\n }\r\n\r\n this.addData(groups);\r\n this.buffer.push(PsCodeConverter.closeContent);\r\n }\r\n\r\n private toJsonName(original: string): string {\r\n const name = this.toCommandName(original);\r\n return this.replaceAll(name, '-', '_');\r\n }\r\n\r\n private toCommandName(original: string): string {\r\n const index = original.indexOf('.ps1');\r\n if (index <= 0) {\r\n console.error('Script file must use .ps1 extension.');\r\n return original;\r\n }\r\n\r\n let scriptName = original.substr(0, index);\r\n if (this.options.prefixName) {\r\n const hyphenSeparatorIndex = scriptName.indexOf('-');\r\n const prefixName = this.options.prefixName;\r\n const verb = scriptName.substring(0, hyphenSeparatorIndex);\r\n const target = scriptName.substring(hyphenSeparatorIndex + 1);\r\n scriptName = verb + '-' + prefixName + target;\r\n }\r\n\r\n return scriptName;\r\n }\r\n\r\n private toPascalName(original: string): string {\r\n const publicPath = 'public\\\\';\r\n const internalPath = 'internal\\\\';\r\n if (original.startsWith(publicPath)) {\r\n original = original.substr(publicPath.length);\r\n } else if (original.startsWith(internalPath)) {\r\n original = original.substr(internalPath.length);\r\n }\r\n\r\n const name = original[0].toUpperCase() + original.substr(1);\r\n let pascal = '';\r\n let upper = true;\r\n for (let i = 0; i < name.length; i++) {\r\n const char = name.charAt(i);\r\n if (char === '-') {\r\n upper = true;\r\n } else if (char === '\\\\') {\r\n pascal += '_';\r\n } else {\r\n pascal += upper ? char.toUpperCase() : char;\r\n upper = false;\r\n }\r\n\r\n }\r\n\r\n return pascal;\r\n }\r\n\r\n private regexEscape(str: string): string {\r\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\r\n }\r\n\r\n private replaceAll(input: string, searchValue: string, replaceValue: string): string {\r\n return input.replace(new RegExp(this.regexEscape(searchValue), 'g'), replaceValue);\r\n }\r\n\r\n private addBeginGroup(name: string, indent: number): void {\r\n this.buffer.push(this.indent(indent) + 'export module ' + name + ' {');\r\n }\r\n\r\n private addEndGroup(name: string, indent: number): void {\r\n this.buffer.push(this.indent(indent) + '}');\r\n }\r\n\r\n private addToContent(name: string, command: string, script: string, indent: number): void {\r\n if (this.options.jea) {\r\n this.buffer.push(this.indent(indent) + 'export const ' + name + ' = {');\r\n this.buffer.push(this.indent(indent + 1) + 'command: \\'' + command + '\\',');\r\n this.buffer.push(this.indent(indent + 1) + 'script: ' + script + '');\r\n this.buffer.push(this.indent(indent) + '}');\r\n } else {\r\n this.buffer.push(this.indent(indent) + 'export const ' + name + ': string = ' + script + ';');\r\n }\r\n }\r\n\r\n private addData(groups: Groups): void {\r\n let groupKeys = Object.keys(groups);\r\n groupKeys = groupKeys.sort();\r\n for (const groupKey of groupKeys) {\r\n const groupName = this.toPascalName(groupKey);\r\n let rootGroup = true;\r\n if (groupKey !== PsCodeConverter.defaultGroup && groupKey !== PsCodeConverter.generatedGroup) {\r\n rootGroup = false;\r\n }\r\n\r\n if (!rootGroup) {\r\n this.addBeginGroup(groupName, 1);\r\n }\r\n\r\n const current = groups[groupKey];\r\n const keys = Object.keys(current);\r\n for (const key of keys) {\r\n let script = '';\r\n const content: string = current[key];\r\n const name = this.options.prefixName ? this.toJsonName(key).replace(this.options.prefixName, '') : this.toJsonName(key);\r\n const command = this.toCommandName(key);\r\n script = '##' + command + '##:' + key + '\\n';\r\n let removeComments = this.options.noComments;\r\n if (content.indexOf(PsCodeConverter.removeCommentsFalse) > 0) {\r\n removeComments = false;\r\n } else if (content.indexOf(PsCodeConverter.removeCommentsTrue) > 0) {\r\n removeComments = true;\r\n }\r\n\r\n let skipping = false;\r\n let skipCheck = false;\r\n let hereText = false;\r\n const lines = content.split('\\n');\r\n lines.forEach((value, index, array) => {\r\n let text = value.replace('\\r', '');\r\n if (text.endsWith(PsCodeConverter.hereTextBegin)) {\r\n hereText = true;\r\n script += text + '\\n';\r\n } else if (hereText) {\r\n if (text === PsCodeConverter.hereTextEnd) {\r\n hereText = false;\r\n }\r\n\r\n script += text + '\\n';\r\n } else if (removeComments) {\r\n let process = true;\r\n text = text.trim();\r\n if (text.startsWith(PsCodeConverter.commentStart)) {\r\n skipping = true;\r\n }\r\n\r\n if (text.startsWith(PsCodeConverter.skipCheckTrue)) {\r\n skipCheck = true;\r\n }\r\n\r\n if (text.startsWith(PsCodeConverter.skipCheckFalse)) {\r\n skipCheck = false;\r\n }\r\n\r\n if (skipping) {\r\n process = false;\r\n if (text.endsWith(PsCodeConverter.commentEnd)) {\r\n skipping = false;\r\n }\r\n }\r\n\r\n if (process && !text.startsWith(PsCodeConverter.comment) && text.length > 0) {\r\n if (!skipCheck && this.options.jea) {\r\n // tslint:disable-next-line:max-line-length\r\n const regex = new RegExp(/[^A-Z\\\\]+(select-object|select|get-formatdata|measure-object|measure|help|get-help|out-default)[^A-Z\\\\]+/i);\r\n const matched = regex.exec(' ' + text);\r\n if (matched) {\r\n if (this.jeaErrorDisplayOnce) {\r\n this.jeaErrorDisplayOnce = false;\r\n console.error('JEA Error: use one of full name cmdlet.', PsCodeConverter.fullNames.join(' '));\r\n // tslint:disable-next-line:max-line-length\r\n console.error(' If it scanned unwanted lines, use ##SkipCheck=true## and ##SkipCheck=false## to surround region.');\r\n }\r\n\r\n console.error(key + ': ' + text);\r\n }\r\n }\r\n\r\n script += text + '\\n';\r\n }\r\n } else {\r\n script += text + '\\n';\r\n }\r\n\r\n });\r\n let data = JSON.stringify(script);\r\n data = this.replaceAll(data, '\\'', '\\\\u0027');\r\n data = this.replaceAll(data, '<', '\\\\u003c');\r\n data = this.replaceAll(data, '>', '\\\\u003e');\r\n data = this.replaceAll(data, '&', '\\\\u0026');\r\n this.addToContent(name, command, data, rootGroup ? 1 : 2);\r\n }\r\n\r\n if (!rootGroup) {\r\n this.addEndGroup(groupName, 1);\r\n }\r\n }\r\n }\r\n\r\n private indent(count: number): string {\r\n let pad = '';\r\n for (let i = 0; i < count; i++) {\r\n pad += ' ';\r\n }\r\n\r\n return pad;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/tools/gulp-ps-code/ps-code-convert.ts"],"names":[],"mappings":"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","file":"ps-code-convert.js","sourcesContent":["declare function escape(data: string): string;\r\ndeclare function unescape(data: string): string;\r\n\r\nexport interface Options {\r\n powerShellModuleName: string;\r\n name: string;\r\n basePath: string;\r\n generatedPath: string;\r\n noComments: boolean;\r\n validate: boolean;\r\n jea: boolean;\r\n resourceName?: string;\r\n prefixName?: string;\r\n}\r\n\r\nexport interface Group {\r\n [index: string]: string;\r\n}\r\n\r\nexport interface Groups {\r\n [index: string]: Group;\r\n}\r\n\r\nexport class PsCodeConverter {\r\n public static defaultGroup = '!!##default__';\r\n public static generatedGroup = '!!##generated__';\r\n public static verbs = [\r\n 'Add', 'Clear', 'Close', 'Copy', 'Enter', 'Exit', 'Find', 'Format', 'Get',\r\n 'Hide', 'Join', 'Lock', 'Move', 'New', 'Open', 'Optimize', 'Pop', 'Push',\r\n 'Redo', 'Remove', 'Rename', 'Reset', 'Resize', 'Search', 'Select', 'Set',\r\n 'Show', 'Skip', 'Split', 'Step', 'Switch', 'Undo', 'Unlock', 'Watch', 'Backup',\r\n 'Checkpoint', 'Compare', 'Compress', 'Convert', 'ConvertFrom', 'ConvertTo',\r\n 'Dismount', 'Edit', 'Expand', 'Export', 'Group', 'Import', 'Initialize',\r\n 'Limit', 'Merge', 'Mount', 'Out', 'Publish', 'Restore', 'Save', 'Sync',\r\n 'Unpublish', 'Update', 'Approve', 'Assert', 'Complete', 'Confirm', 'Deny',\r\n 'Disable', 'Enable', 'Install', 'Invoke', 'Register', 'Request', 'Restart',\r\n 'Resume', 'Start', 'Stop', 'Submit', 'Suspend', 'Uninstall', 'Unregister',\r\n 'Wait', 'Debug', 'Measure', 'Ping', 'Repair', 'Resolve', 'Test', 'Trace',\r\n 'Connect', 'Disconnect', 'Read', 'Receive', 'Send', 'Write', 'Block',\r\n 'Grant', 'Protect', 'Revoke', 'Unblock', 'Unprotect', 'Use'];\r\n\r\n private static fullNames = [\r\n 'Microsoft.PowerShell.Core\\\\Get-Help',\r\n 'Microsoft.PowerShell.Core\\\\Out-Default',\r\n 'Microsoft.PowerShell.Utility\\\\Get-FormatData',\r\n 'Microsoft.PowerShell.Utility\\\\Measure-Object',\r\n 'Microsoft.PowerShell.Utility\\\\Select-Object'\r\n ];\r\n private static removeCommentsTrue = '##RemoveComments=true##';\r\n private static removeCommentsFalse = '##RemoveComments=false##';\r\n private static skipCheckTrue = '##SkipCheck=true##';\r\n private static skipCheckFalse = '##SkipCheck=false##';\r\n private static commentStart = '<#';\r\n private static commentEnd = '#>';\r\n private static comment = '#';\r\n private static openContent =\r\n `/* tslint:disable */\\r\r\n/**\\r\r\n * @file Source code generated by gulp-ps-code.\\r\r\n * @version 1.1\\r\r\n */\\r\r\nexport module PowerShellScripts {\\r\r\n 'use strict'\\r\r\n`;\r\n private static closeContent =\r\n `}\\r\r\n`;\r\n private static hereTextBegin = '@\"';\r\n private static hereTextEnd = '\"@';\r\n\r\n private buffer: string[];\r\n private jeaErrorDisplayOnce = true;\r\n\r\n constructor(private options: Options) {\r\n }\r\n\r\n public get content(): string {\r\n return this.buffer.join('\\r\\n');\r\n }\r\n\r\n public contentReset(): void {\r\n this.buffer = [];\r\n }\r\n\r\n public generate(groups: Groups): void {\r\n const tsBase = null;\r\n this.buffer.push(PsCodeConverter.openContent);\r\n this.buffer.push(this.indent(1) + 'export const module = ' + '\\'' + this.options.powerShellModuleName + '\\';');\r\n if (this.options.resourceName) {\r\n this.buffer.push(this.indent(1) + 'export const resourceName = ' + '\\'' + this.options.resourceName + '\\';');\r\n }\r\n\r\n if (this.options.prefixName) {\r\n this.buffer.push(this.indent(1) + 'export const powerShellPrefix = ' + '\\'' + this.options.prefixName + '\\';');\r\n }\r\n\r\n this.addData(groups);\r\n this.buffer.push(PsCodeConverter.closeContent);\r\n }\r\n\r\n private toJsonName(original: string): string {\r\n const name = this.toCommandName(original);\r\n return this.replaceAll(name, '-', '_');\r\n }\r\n\r\n private toCommandName(original: string): string {\r\n const index = original.indexOf('.ps1');\r\n if (index <= 0) {\r\n console.error('Script file must use .ps1 extension.');\r\n return original;\r\n }\r\n\r\n const scriptName = original.substr(0, index);\r\n return scriptName;\r\n }\r\n\r\n private toPascalName(original: string): string {\r\n const publicPath = 'public\\\\';\r\n const internalPath = 'internal\\\\';\r\n if (original.startsWith(publicPath)) {\r\n original = original.substr(publicPath.length);\r\n } else if (original.startsWith(internalPath)) {\r\n original = original.substr(internalPath.length);\r\n }\r\n\r\n const name = original[0].toUpperCase() + original.substr(1);\r\n let pascal = '';\r\n let upper = true;\r\n for (let i = 0; i < name.length; i++) {\r\n const char = name.charAt(i);\r\n if (char === '-') {\r\n upper = true;\r\n } else if (char === '\\\\') {\r\n pascal += '_';\r\n } else {\r\n pascal += upper ? char.toUpperCase() : char;\r\n upper = false;\r\n }\r\n\r\n }\r\n\r\n return pascal;\r\n }\r\n\r\n private regexEscape(str: string): string {\r\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\r\n }\r\n\r\n private replaceAll(input: string, searchValue: string, replaceValue: string): string {\r\n return input.replace(new RegExp(this.regexEscape(searchValue), 'g'), replaceValue);\r\n }\r\n\r\n private addBeginGroup(name: string, indent: number): void {\r\n this.buffer.push(this.indent(indent) + 'export module ' + name + ' {');\r\n }\r\n\r\n private addEndGroup(name: string, indent: number): void {\r\n this.buffer.push(this.indent(indent) + '}');\r\n }\r\n\r\n private addToContent(name: string, command: string, script: string, indent: number): void {\r\n if (this.options.jea) {\r\n this.buffer.push(this.indent(indent) + 'export const ' + name + ' = {');\r\n this.buffer.push(this.indent(indent + 1) + 'command: \\'' + command + '\\',');\r\n this.buffer.push(this.indent(indent + 1) + 'script: ' + script + '');\r\n this.buffer.push(this.indent(indent) + '}');\r\n } else {\r\n this.buffer.push(this.indent(indent) + 'export const ' + name + ': string = ' + script + ';');\r\n }\r\n }\r\n\r\n private addData(groups: Groups): void {\r\n let groupKeys = Object.keys(groups);\r\n groupKeys = groupKeys.sort();\r\n for (const groupKey of groupKeys) {\r\n const groupName = this.toPascalName(groupKey);\r\n let rootGroup = true;\r\n if (groupKey !== PsCodeConverter.defaultGroup && groupKey !== PsCodeConverter.generatedGroup) {\r\n rootGroup = false;\r\n }\r\n\r\n if (!rootGroup) {\r\n this.addBeginGroup(groupName, 1);\r\n }\r\n\r\n const current = groups[groupKey];\r\n const keys = Object.keys(current);\r\n for (const key of keys) {\r\n let script = '';\r\n const content: string = current[key];\r\n const name = this.toJsonName(key);\r\n const command = this.toCommandName(key);\r\n script = '##' + command + '##:' + key + '\\n';\r\n let removeComments = this.options.noComments;\r\n if (content.indexOf(PsCodeConverter.removeCommentsFalse) > 0) {\r\n removeComments = false;\r\n } else if (content.indexOf(PsCodeConverter.removeCommentsTrue) > 0) {\r\n removeComments = true;\r\n }\r\n\r\n let skipping = false;\r\n let skipCheck = false;\r\n let hereText = false;\r\n const lines = content.split('\\n');\r\n lines.forEach((value, index, array) => {\r\n let text = value.replace('\\r', '');\r\n if (text.endsWith(PsCodeConverter.hereTextBegin)) {\r\n hereText = true;\r\n script += text + '\\n';\r\n } else if (hereText) {\r\n if (text === PsCodeConverter.hereTextEnd) {\r\n hereText = false;\r\n }\r\n\r\n script += text + '\\n';\r\n } else if (removeComments) {\r\n let process = true;\r\n text = text.trim();\r\n if (text.startsWith(PsCodeConverter.commentStart)) {\r\n skipping = true;\r\n }\r\n\r\n if (text.startsWith(PsCodeConverter.skipCheckTrue)) {\r\n skipCheck = true;\r\n }\r\n\r\n if (text.startsWith(PsCodeConverter.skipCheckFalse)) {\r\n skipCheck = false;\r\n }\r\n\r\n if (skipping) {\r\n process = false;\r\n if (text.endsWith(PsCodeConverter.commentEnd)) {\r\n skipping = false;\r\n }\r\n }\r\n\r\n if (process && !text.startsWith(PsCodeConverter.comment) && text.length > 0) {\r\n if (!skipCheck && this.options.jea) {\r\n // tslint:disable-next-line:max-line-length\r\n const regex = new RegExp(/[^A-Z\\\\]+(select-object|select|get-formatdata|measure-object|measure|help|get-help|out-default)[^A-Z\\\\]+/i);\r\n const matched = regex.exec(' ' + text);\r\n if (matched) {\r\n if (this.jeaErrorDisplayOnce) {\r\n this.jeaErrorDisplayOnce = false;\r\n console.error('JEA Error: use one of full name cmdlet.', PsCodeConverter.fullNames.join(' '));\r\n // tslint:disable-next-line:max-line-length\r\n console.error(' If it scanned unwanted lines, use ##SkipCheck=true## and ##SkipCheck=false## to surround region.');\r\n }\r\n\r\n console.error(key + ': ' + text);\r\n }\r\n }\r\n\r\n script += text + '\\n';\r\n }\r\n } else {\r\n script += text + '\\n';\r\n }\r\n\r\n });\r\n let data = JSON.stringify(script);\r\n data = this.replaceAll(data, '\\'', '\\\\u0027');\r\n data = this.replaceAll(data, '<', '\\\\u003c');\r\n data = this.replaceAll(data, '>', '\\\\u003e');\r\n data = this.replaceAll(data, '&', '\\\\u0026');\r\n this.addToContent(name, command, data, rootGroup ? 1 : 2);\r\n }\r\n\r\n if (!rootGroup) {\r\n this.addEndGroup(groupName, 1);\r\n }\r\n }\r\n }\r\n\r\n private indent(count: number): string {\r\n let pad = '';\r\n for (let i = 0; i < count; i++) {\r\n pad += ' ';\r\n }\r\n\r\n return pad;\r\n }\r\n}\r\n"]}
|