@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
|
@@ -50,10 +50,6 @@ function gulpPsResjson(options) {
|
|
|
50
50
|
}
|
|
51
51
|
var path = Path.parse(file.path);
|
|
52
52
|
var segments = path.dir.split('\\');
|
|
53
|
-
segments.length = segments.length - options.localeOffset;
|
|
54
|
-
var fullDir = segments.join('\\');
|
|
55
|
-
segments.length = segments.length - 1;
|
|
56
|
-
var baseDir = segments.join('\\');
|
|
57
53
|
if (masterEnglish) {
|
|
58
54
|
// collect master data, no output from the first file.
|
|
59
55
|
if (nestedObject) {
|
|
@@ -79,98 +75,107 @@ function gulpPsResjson(options) {
|
|
|
79
75
|
}
|
|
80
76
|
}
|
|
81
77
|
masterEnglish = false;
|
|
78
|
+
segments.push('en-US');
|
|
79
|
+
}
|
|
80
|
+
var fullDir = segments.join('\\');
|
|
81
|
+
segments.length--;
|
|
82
|
+
var baseDir = segments.join('\\');
|
|
83
|
+
var copyData = tslib_1.__assign({}, masterData);
|
|
84
|
+
if (fullDir.endsWith('en-US')) {
|
|
85
|
+
// override en-US string by current strings.resjson
|
|
86
|
+
var names = Object.keys(masterData);
|
|
87
|
+
try {
|
|
88
|
+
for (var names_1 = tslib_1.__values(names), names_1_1 = names_1.next(); !names_1_1.done; names_1_1 = names_1.next()) {
|
|
89
|
+
var name_2 = names_1_1.value;
|
|
90
|
+
lines.push(name_2 + '=' + masterData[name_2]);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
94
|
+
finally {
|
|
95
|
+
try {
|
|
96
|
+
if (names_1_1 && !names_1_1.done && (_b = names_1.return)) _b.call(names_1);
|
|
97
|
+
}
|
|
98
|
+
finally { if (e_2) throw e_2.error; }
|
|
99
|
+
}
|
|
82
100
|
}
|
|
83
101
|
else {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
// override en-US string by current strings.resjson
|
|
87
|
-
var names = Object.keys(masterData);
|
|
102
|
+
if (nestedObject) {
|
|
103
|
+
var names2 = Object.keys(nestedObject);
|
|
88
104
|
try {
|
|
89
|
-
for (var
|
|
90
|
-
var
|
|
91
|
-
lines.push(
|
|
105
|
+
for (var names2_1 = tslib_1.__values(names2), names2_1_1 = names2_1.next(); !names2_1_1.done; names2_1_1 = names2_1.next()) {
|
|
106
|
+
var name_3 = names2_1_1.value;
|
|
107
|
+
lines.push(name_3 + '=' + nestedObject[name_3]);
|
|
108
|
+
if (copyData[name_3]) {
|
|
109
|
+
delete copyData[name_3];
|
|
110
|
+
}
|
|
92
111
|
}
|
|
93
112
|
}
|
|
94
|
-
catch (
|
|
113
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
95
114
|
finally {
|
|
96
115
|
try {
|
|
97
|
-
if (
|
|
116
|
+
if (names2_1_1 && !names2_1_1.done && (_c = names2_1.return)) _c.call(names2_1);
|
|
98
117
|
}
|
|
99
|
-
finally { if (
|
|
118
|
+
finally { if (e_3) throw e_3.error; }
|
|
100
119
|
}
|
|
101
120
|
}
|
|
102
121
|
else {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
122
|
+
var keys = Object.keys(dataObject);
|
|
123
|
+
try {
|
|
124
|
+
for (var keys_2 = tslib_1.__values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {
|
|
125
|
+
var key = keys_2_1.value;
|
|
126
|
+
if (key.startsWith(prefix)) {
|
|
127
|
+
var name_4 = key.substring(prefix.length);
|
|
128
|
+
lines.push(name_4 + '=' + dataObject[key]);
|
|
129
|
+
if (copyData[name_4]) {
|
|
130
|
+
delete copyData[name_4];
|
|
111
131
|
}
|
|
112
132
|
}
|
|
113
133
|
}
|
|
114
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
115
|
-
finally {
|
|
116
|
-
try {
|
|
117
|
-
if (names2_1_1 && !names2_1_1.done && (_c = names2_1.return)) _c.call(names2_1);
|
|
118
|
-
}
|
|
119
|
-
finally { if (e_3) throw e_3.error; }
|
|
120
|
-
}
|
|
121
134
|
}
|
|
122
|
-
|
|
123
|
-
|
|
135
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
136
|
+
finally {
|
|
124
137
|
try {
|
|
125
|
-
|
|
126
|
-
var key = keys_2_1.value;
|
|
127
|
-
if (key.startsWith(prefix)) {
|
|
128
|
-
var name_4 = key.substring(prefix.length);
|
|
129
|
-
lines.push(name_4 + '=' + dataObject[key]);
|
|
130
|
-
if (copyData[name_4]) {
|
|
131
|
-
delete copyData[name_4];
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
137
|
-
finally {
|
|
138
|
-
try {
|
|
139
|
-
if (keys_2_1 && !keys_2_1.done && (_d = keys_2.return)) _d.call(keys_2);
|
|
140
|
-
}
|
|
141
|
-
finally { if (e_4) throw e_4.error; }
|
|
138
|
+
if (keys_2_1 && !keys_2_1.done && (_d = keys_2.return)) _d.call(keys_2);
|
|
142
139
|
}
|
|
140
|
+
finally { if (e_4) throw e_4.error; }
|
|
143
141
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
142
|
+
}
|
|
143
|
+
// if there is any missing data, add into the lines.
|
|
144
|
+
// when changed a string but not changed the key, it needs to wait for localization
|
|
145
|
+
// build to update locale language strings.
|
|
146
|
+
var names = Object.keys(copyData);
|
|
147
|
+
try {
|
|
148
|
+
for (var names_2 = tslib_1.__values(names), names_2_1 = names_2.next(); !names_2_1.done; names_2_1 = names_2.next()) {
|
|
149
|
+
var name_5 = names_2_1.value;
|
|
150
|
+
lines.push(name_5 + '=' + copyData[name_5]);
|
|
153
151
|
}
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
finally { if (e_5) throw e_5.error; }
|
|
152
|
+
}
|
|
153
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
154
|
+
finally {
|
|
155
|
+
try {
|
|
156
|
+
if (names_2_1 && !names_2_1.done && (_e = names_2.return)) _e.call(names_2);
|
|
160
157
|
}
|
|
158
|
+
finally { if (e_5) throw e_5.error; }
|
|
161
159
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
// tslint:disable-next-line:no-invalid-this
|
|
172
|
-
this.push(jsonFile);
|
|
160
|
+
}
|
|
161
|
+
if (lines.length > 0) {
|
|
162
|
+
// if there is no data, don't create locale file.
|
|
163
|
+
// validate the folder name once again. It could happen when different folder structure is used in future.
|
|
164
|
+
var checkSegments = fullDir.split('\\');
|
|
165
|
+
var locale = checkSegments[checkSegments.length - 1];
|
|
166
|
+
var localeList = ['en-US', 'cs-CZ', 'de-DE', 'es-ES', 'fr-FR', 'hu-HU', 'it-IT', 'ja-JP', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'zh-CN', 'zh-TW'];
|
|
167
|
+
if (localeList.indexOf(locale) < 0 || fullDir !== baseDir + "\\" + locale) {
|
|
168
|
+
throw new Error("Output folder includes a wrong locale name. " + locale);
|
|
173
169
|
}
|
|
170
|
+
content = 'ConvertFrom-StringData @\'\r\n' + lines.join('\r\n') + '\r\n\'@\r\n';
|
|
171
|
+
var jsonFile = new Vinyl({
|
|
172
|
+
cwd: '/',
|
|
173
|
+
base: baseDir,
|
|
174
|
+
path: fullDir + '\\' + path.name + '.psd1',
|
|
175
|
+
contents: buffer_1.Buffer.from(content, 'utf8')
|
|
176
|
+
});
|
|
177
|
+
// tslint:disable-next-line:no-invalid-this
|
|
178
|
+
this.push(jsonFile);
|
|
174
179
|
}
|
|
175
180
|
}
|
|
176
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../packages/tools/gulp-ps-resjson/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport { Buffer } from 'buffer';\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\n\r\nconst PLUGIN_NAME = 'gulp-ps-resjson';\r\n\r\ninterface Options {\r\n /**\r\n * specify the resource name.\r\n */\r\n resourceName: string;\r\n\r\n /**\r\n * specify the conversion is Localized file with folder offset.\r\n */\r\n localeOffset?: number;\r\n}\r\n\r\nfunction gulpPsResjson(options: Options) {\r\n // first file is not loc file but original strings.resjson\r\n // if there is any missing property, add the property to output psd1 file.\r\n let masterEnglish = true;\r\n let masterData = {};\r\n\r\n // override options settings if not specified.\r\n options = options || <Options>{};\r\n if (typeof options.localeOffset !== 'number') {\r\n options.localeOffset = 1;\r\n }\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n let error = null;\r\n try {\r\n if (file.isNull()) {\r\n // nothing to do\r\n return callback(null, file);\r\n }\r\n\r\n if (file.isStream()) {\r\n // file.contents is a Stream - https://nodejs.org/api/stream.html\r\n // tslint:disable-next-line:no-invalid-this\r\n this.emit('error', new pluginError(PLUGIN_NAME, 'Streams not supported!'));\r\n return callback(null, file);\r\n } else if (file.isBuffer()) {\r\n let nestedObject = null;\r\n const lines = [];\r\n const prefix = options.resourceName + '_PowerShell_';\r\n let content = file.contents.toString('utf8');\r\n // Remove comments, /* multiline comment */ and // one line comment and \"//\": \"JSON element comment\"\r\n content = content.replace(/(\\/\\*([^*]|[\\n]|(\\*+([^*/]|[\\n])))*\\*\\/+)|( +\\/\\/.*)|( +\\\"\\/\\/\\\".*)/g, '');\r\n const dataObject = JSON.parse(content);\r\n if (dataObject[options.resourceName] && dataObject[options.resourceName]['PowerShell']) {\r\n // if nested format, use nestedObject.\r\n nestedObject = dataObject[options.resourceName]['PowerShell'];\r\n }\r\n\r\n const path = Path.parse(file.path);\r\n const segments = path.dir.split('\\\\');\r\n segments.length = segments.length - options.localeOffset;\r\n const fullDir = segments.join('\\\\');\r\n segments.length = segments.length - 1;\r\n const baseDir = segments.join('\\\\');\r\n\r\n if (masterEnglish) {\r\n // collect master data, no output from the first file.\r\n if (nestedObject) {\r\n masterData = nestedObject;\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n masterData[name] = dataObject[key];\r\n }\r\n }\r\n }\r\n\r\n masterEnglish = false;\r\n } else {\r\n const copyData = { ...{}, ...masterData };\r\n if (fullDir.endsWith('en-US')) {\r\n // override en-US string by current strings.resjson\r\n const names = Object.keys(masterData);\r\n for (const name of names) {\r\n lines.push(name + '=' + masterData[name]);\r\n }\r\n } else {\r\n if (nestedObject) {\r\n const names2 = Object.keys(nestedObject);\r\n for (const name of names2) {\r\n lines.push(name + '=' + nestedObject[name]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n lines.push(name + '=' + dataObject[key]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if there is any missing data, add into the lines.\r\n // when changed a string but not changed the key, it needs to wait for localization\r\n // build to update locale language strings.\r\n const names = Object.keys(copyData);\r\n for (const name of names) {\r\n lines.push(name + '=' + copyData[name]);\r\n }\r\n }\r\n\r\n if (lines.length > 0) {\r\n // if there is no data, don't create locale file.\r\n content = 'ConvertFrom-StringData @\\'\\r\\n' + lines.join('\\r\\n') + '\\r\\n\\'@\\r\\n';\r\n const jsonFile = new Vinyl({\r\n cwd: '/',\r\n base: baseDir,\r\n path: fullDir + '\\\\' + path.name + '.psd1',\r\n contents: Buffer.from(content, 'utf8')\r\n });\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(jsonFile);\r\n }\r\n }\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 callback(error);\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsResjson;\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../packages/tools/gulp-ps-resjson/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["'use strict';\r\n\r\nimport { Buffer } from 'buffer';\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\n\r\nconst PLUGIN_NAME = 'gulp-ps-resjson';\r\n\r\ninterface Options {\r\n /**\r\n * specify the resource name.\r\n */\r\n resourceName: string;\r\n\r\n /**\r\n * specify the conversion is Localized file with folder offset.\r\n */\r\n localeOffset?: number;\r\n}\r\n\r\nfunction gulpPsResjson(options: Options) {\r\n // first file is not loc file but original strings.resjson\r\n // if there is any missing property, add the property to output psd1 file.\r\n let masterEnglish = true;\r\n let masterData = {};\r\n\r\n // override options settings if not specified.\r\n options = options || <Options>{};\r\n if (typeof options.localeOffset !== 'number') {\r\n options.localeOffset = 1;\r\n }\r\n\r\n return through2.obj(\r\n /**\r\n * Transform\r\n */\r\n function (file, encoding, callback) {\r\n let error = null;\r\n try {\r\n if (file.isNull()) {\r\n // nothing to do\r\n return callback(null, file);\r\n }\r\n\r\n if (file.isStream()) {\r\n // file.contents is a Stream - https://nodejs.org/api/stream.html\r\n // tslint:disable-next-line:no-invalid-this\r\n this.emit('error', new pluginError(PLUGIN_NAME, 'Streams not supported!'));\r\n return callback(null, file);\r\n } else if (file.isBuffer()) {\r\n let nestedObject = null;\r\n const lines = [];\r\n const prefix = options.resourceName + '_PowerShell_';\r\n let content = file.contents.toString('utf8');\r\n // Remove comments, /* multiline comment */ and // one line comment and \"//\": \"JSON element comment\"\r\n content = content.replace(/(\\/\\*([^*]|[\\n]|(\\*+([^*/]|[\\n])))*\\*\\/+)|( +\\/\\/.*)|( +\\\"\\/\\/\\\".*)/g, '');\r\n const dataObject = JSON.parse(content);\r\n if (dataObject[options.resourceName] && dataObject[options.resourceName]['PowerShell']) {\r\n // if nested format, use nestedObject.\r\n nestedObject = dataObject[options.resourceName]['PowerShell'];\r\n }\r\n\r\n const path = Path.parse(file.path);\r\n const segments = path.dir.split('\\\\');\r\n if (masterEnglish) {\r\n // collect master data, no output from the first file.\r\n if (nestedObject) {\r\n masterData = nestedObject;\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n masterData[name] = dataObject[key];\r\n }\r\n }\r\n }\r\n\r\n masterEnglish = false;\r\n segments.push('en-US');\r\n }\r\n\r\n const fullDir = segments.join('\\\\');\r\n segments.length--;\r\n const baseDir = segments.join('\\\\');\r\n\r\n const copyData = { ...{}, ...masterData };\r\n if (fullDir.endsWith('en-US')) {\r\n // override en-US string by current strings.resjson\r\n const names = Object.keys(masterData);\r\n for (const name of names) {\r\n lines.push(name + '=' + masterData[name]);\r\n }\r\n } else {\r\n if (nestedObject) {\r\n const names2 = Object.keys(nestedObject);\r\n for (const name of names2) {\r\n lines.push(name + '=' + nestedObject[name]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n } else {\r\n const keys = Object.keys(dataObject);\r\n for (const key of keys) {\r\n if (key.startsWith(prefix)) {\r\n const name = key.substring(prefix.length);\r\n lines.push(name + '=' + dataObject[key]);\r\n if (copyData[name]) {\r\n delete copyData[name];\r\n }\r\n }\r\n }\r\n }\r\n\r\n // if there is any missing data, add into the lines.\r\n // when changed a string but not changed the key, it needs to wait for localization\r\n // build to update locale language strings.\r\n const names = Object.keys(copyData);\r\n for (const name of names) {\r\n lines.push(name + '=' + copyData[name]);\r\n }\r\n }\r\n\r\n if (lines.length > 0) {\r\n // if there is no data, don't create locale file.\r\n\r\n // validate the folder name once again. It could happen when different folder structure is used in future.\r\n const checkSegments = fullDir.split('\\\\');\r\n const locale = checkSegments[checkSegments.length - 1];\r\n const localeList = ['en-US', 'cs-CZ', 'de-DE', 'es-ES', 'fr-FR', 'hu-HU', 'it-IT', 'ja-JP', 'ko-KR', 'nl-NL', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sv-SE', 'tr-TR', 'zh-CN', 'zh-TW'];\r\n if (localeList.indexOf(locale) < 0 || fullDir !== `${baseDir}\\\\${locale}`) {\r\n throw new Error(`Output folder includes a wrong locale name. ${locale}`);\r\n }\r\n\r\n content = 'ConvertFrom-StringData @\\'\\r\\n' + lines.join('\\r\\n') + '\\r\\n\\'@\\r\\n';\r\n const jsonFile = new Vinyl({\r\n cwd: '/',\r\n base: baseDir,\r\n path: fullDir + '\\\\' + path.name + '.psd1',\r\n contents: Buffer.from(content, 'utf8')\r\n });\r\n // tslint:disable-next-line:no-invalid-this\r\n this.push(jsonFile);\r\n }\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 callback(error);\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsResjson;\r\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
schedules:
|
|
2
|
+
- cron: "0 0 30 * *"
|
|
3
|
+
displayName: Monthly midnight build
|
|
4
|
+
branches:
|
|
5
|
+
include:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
- job: Phase_1
|
|
10
|
+
displayName: Phase 1
|
|
11
|
+
cancelTimeoutInMinutes: 1
|
|
12
|
+
pool:
|
|
13
|
+
vmImage: 'windows-2019'
|
|
14
|
+
steps:
|
|
15
|
+
- checkout: self
|
|
16
|
+
clean: true
|
|
17
|
+
persistCredentials: true
|
|
18
|
+
- task: CodeInspector@2
|
|
19
|
+
inputs:
|
|
20
|
+
ProductId: '88079879-ba3a-4bf7-8f43-5bc912c8cd04'
|
|
21
|
+
- task: PublishSecurityAnalysisLogs@3
|
|
22
|
+
inputs:
|
|
23
|
+
ArtifactName: 'CodeAnalysisLogs'
|
|
24
|
+
ArtifactType: 'Container'
|
|
25
|
+
AllTools: true
|
|
26
|
+
ToolLogsNotFoundAction: 'Standard'
|
|
27
|
+
...
|
|
@@ -8,11 +8,11 @@ export module LintModule {
|
|
|
8
8
|
.pipe(tslint.report({ 'emitError': true, 'reportLimit': 0, 'summarizeFailureOutput': true }));
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export function
|
|
12
|
-
return src(['
|
|
11
|
+
export function lintUiTestAutomation() {
|
|
12
|
+
return src(['ui-test-automation/**/*.ts', '!ui-test-automation/node_modules/**/*.*'])
|
|
13
13
|
.pipe(tslint())
|
|
14
14
|
.pipe(tslint.report({ 'emitError': true, 'reportLimit': 0, 'summarizeFailureOutput': true }));
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export const lint = series(lintApp,
|
|
17
|
+
export const lint = series(lintApp, lintUiTestAutomation);
|
|
18
18
|
}
|
|
@@ -2,13 +2,13 @@ import packNugetModule from '@microsoft/windows-admin-center-sdk/tools/pack-nuge
|
|
|
2
2
|
import { Utilities } from './utilities';
|
|
3
3
|
|
|
4
4
|
interface PackOptions {
|
|
5
|
-
version:
|
|
6
|
-
icon:
|
|
7
|
-
license:
|
|
8
|
-
company:
|
|
9
|
-
copyright:
|
|
10
|
-
iconUrl:
|
|
11
|
-
targetPath:
|
|
5
|
+
version: string;
|
|
6
|
+
icon: string;
|
|
7
|
+
license: string;
|
|
8
|
+
company: string;
|
|
9
|
+
copyright: string;
|
|
10
|
+
iconUrl: string;
|
|
11
|
+
targetPath: string;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export module PackModule {
|
|
@@ -19,31 +19,31 @@ export module PackModule {
|
|
|
19
19
|
export function pack(cb) {
|
|
20
20
|
const options = <PackOptions>{};
|
|
21
21
|
if (argv['version']) {
|
|
22
|
-
options.version = argv['version'];
|
|
22
|
+
options.version = argv['version'] as string;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
if (argv['icon']) {
|
|
26
|
-
options.icon = argv['icon'];
|
|
26
|
+
options.icon = argv['icon'] as string;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
if (argv['license']) {
|
|
30
|
-
options.license = argv['license'];
|
|
30
|
+
options.license = argv['license'] as string;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
if (argv['company']) {
|
|
34
|
-
options.company = argv['company'];
|
|
34
|
+
options.company = argv['company'] as string;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
if (argv['copyright']) {
|
|
38
|
-
options.copyright = argv['copyright'];
|
|
38
|
+
options.copyright = argv['copyright'] as string;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
if (argv['iconUrl']) {
|
|
42
|
-
options.iconUrl = argv['iconUrl'];
|
|
42
|
+
options.iconUrl = argv['iconUrl'] as string;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
if (argv['targetPath']) {
|
|
46
|
-
options.targetPath = argv['targetPath'];
|
|
46
|
+
options.targetPath = argv['targetPath'] as string;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
packNuget(options, cb);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import { dest, series, src } from 'gulp';
|
|
3
|
+
import ts from 'gulp-typescript';
|
|
4
|
+
import { LintModule } from './lint';
|
|
5
|
+
|
|
6
|
+
export module UITestAutomationModule {
|
|
7
|
+
|
|
8
|
+
export function buildUiTestAutomation() {
|
|
9
|
+
const tsProject = ts.createProject('./tsconfig.json');
|
|
10
|
+
return src(['ui-test-automation/**/*.ts', '!ui-test-automation/node_modules/**/*.*'])
|
|
11
|
+
.pipe(tsProject());
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function saveUiTestAutomation() {
|
|
15
|
+
const urlSegments = '/SME/_git/';
|
|
16
|
+
const lines = fs.readFileSync('.git/config', 'utf8').toString().split('\n');
|
|
17
|
+
let remoteSection = false;
|
|
18
|
+
let moduleName = null;
|
|
19
|
+
for (const line of lines) {
|
|
20
|
+
if (remoteSection && line.indexOf(urlSegments) >= 0) {
|
|
21
|
+
const matchIndex = line.indexOf(urlSegments);
|
|
22
|
+
moduleName = line.substring(matchIndex + urlSegments.length);
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// look for [remote "origin"] section.
|
|
27
|
+
if (line.indexOf('[remote \"origin\"]') >= 0) {
|
|
28
|
+
remoteSection = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return src(
|
|
33
|
+
[
|
|
34
|
+
'ui-test-automation/**/*.*'
|
|
35
|
+
])
|
|
36
|
+
.pipe(dest('../msft-sme-ui-test-automation/src/tools/' + moduleName + '/ui-test-automation', { overwrite: true} ));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export const uiTestAutomation = series(LintModule.lintUiTestAutomation, buildUiTestAutomation);
|
|
40
|
+
}
|
|
@@ -8,27 +8,27 @@ export module Utilities {
|
|
|
8
8
|
return defaultValue ? value !== false : !!value;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export function gulpArgv(): { [index: string]: boolean } {
|
|
11
|
+
export function gulpArgv(): { [index: string]: boolean | string } {
|
|
12
12
|
return {
|
|
13
13
|
prod: toBoolean(values['prod']),
|
|
14
14
|
verbose: toBoolean(values['verbose']),
|
|
15
15
|
junit: toBoolean(values['junit']),
|
|
16
16
|
expandCss: toBoolean(values['expandcss']),
|
|
17
|
-
target: values['target'],
|
|
18
|
-
debug: values['debug'],
|
|
17
|
+
target: values['target'] as string,
|
|
18
|
+
debug: toBoolean(values['debug']),
|
|
19
19
|
styles: toBoolean(values['styles']),
|
|
20
20
|
resources: toBoolean(values['resources']),
|
|
21
21
|
core: toBoolean(values['core']),
|
|
22
22
|
angular: toBoolean(values['angular']),
|
|
23
23
|
app: toBoolean(values['app']),
|
|
24
24
|
devGuide: toBoolean(values['devguide']),
|
|
25
|
-
version: values['V'],
|
|
26
|
-
icon: values['icon'],
|
|
27
|
-
license: values['license'],
|
|
28
|
-
company: values['company'],
|
|
29
|
-
copyright: values['copyright'],
|
|
30
|
-
iconUrl: values['iconUrl'],
|
|
31
|
-
targetPath: values['targetPath']
|
|
25
|
+
version: values['V'] as string,
|
|
26
|
+
icon: values['icon'] as string,
|
|
27
|
+
license: values['license'] as string,
|
|
28
|
+
company: values['company'] as string,
|
|
29
|
+
copyright: values['copyright'] as string,
|
|
30
|
+
iconUrl: values['iconUrl'] as string,
|
|
31
|
+
targetPath: values['targetPath'] as string
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
import manifestValidatorModule from '@microsoft/windows-admin-center-sdk/tools/gulp-manifest-validator';
|
|
2
|
-
import {
|
|
2
|
+
import { src } from 'gulp';
|
|
3
3
|
|
|
4
4
|
export module ValidateModule {
|
|
5
5
|
const manifestValidator = manifestValidatorModule as any;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* validate the manifest.json.
|
|
9
|
+
* @returns output void.
|
|
10
|
+
*/
|
|
11
|
+
export function validateManifest() {
|
|
9
12
|
return src('src/manifest.json')
|
|
10
13
|
.pipe(manifestValidator());
|
|
11
14
|
}
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
/**
|
|
17
|
+
* validate the powershell-cim-config.json.
|
|
18
|
+
* @returns output void.
|
|
19
|
+
*/
|
|
20
|
+
export function validatePsCimConfig() {
|
|
21
|
+
return src('src/powershell-cim-config.json')
|
|
22
|
+
.pipe(manifestValidator());
|
|
23
|
+
}
|
|
14
24
|
}
|
|
@@ -3,23 +3,25 @@ import { CleanModule } from './common/clean';
|
|
|
3
3
|
import { CompileModule } from './common/compile';
|
|
4
4
|
import { Config } from './common/config';
|
|
5
5
|
import { CopyModule } from './common/copy';
|
|
6
|
-
import { E2eModule } from './common/e2e';
|
|
7
6
|
import { LintModule } from './common/lint';
|
|
8
7
|
import { PackModule } from './common/pack';
|
|
9
8
|
import { PowerShellModule } from './common/powershell';
|
|
10
9
|
import { ResjsonModule } from './common/resjson';
|
|
11
10
|
import { TestModule } from './common/test';
|
|
11
|
+
import { UITestAutomationModule } from './common/ui-test-automation';
|
|
12
12
|
import { ValidateModule } from './common/validate';
|
|
13
13
|
import { gulpConfig } from './config-data';
|
|
14
14
|
|
|
15
15
|
module IndexModule {
|
|
16
16
|
const config: Config = gulpConfig();
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
// Export tasks
|
|
19
19
|
export const clean = CleanModule.clean;
|
|
20
20
|
export const lint = LintModule.lint;
|
|
21
21
|
export const lintApp = LintModule.lintApp;
|
|
22
|
-
export const
|
|
22
|
+
export const validateManifest = ValidateModule.validateManifest;
|
|
23
|
+
export const validatePsCimConfig = ValidateModule.validatePsCimConfig;
|
|
24
|
+
export const validate = config.powershell.skipResjson ? validateManifest : series(validateManifest, validatePsCimConfig);
|
|
23
25
|
export const resjson = ResjsonModule.resjson;
|
|
24
26
|
export const powershell = config.powershell.skip ? function powershellSkip(cb) { cb(); } : PowerShellModule.powershell;
|
|
25
27
|
export const copy = CopyModule.copy;
|
|
@@ -29,16 +31,14 @@ module IndexModule {
|
|
|
29
31
|
export const ut = TestModule.unitTestApp;
|
|
30
32
|
export const pester = TestModule.pester;
|
|
31
33
|
export const test = TestModule.test;
|
|
32
|
-
export const
|
|
33
|
-
export const
|
|
34
|
-
export const e2eRun = E2eModule.e2eRun;
|
|
35
|
-
export const e2e = E2eModule.e2e;
|
|
34
|
+
export const uiTestAutomation = UITestAutomationModule.uiTestAutomation;
|
|
35
|
+
export const saveUiTestAutomation = UITestAutomationModule.saveUiTestAutomation;
|
|
36
36
|
export const pack = PackModule.pack;
|
|
37
37
|
|
|
38
38
|
// Build Tasks
|
|
39
39
|
export const generate = parallel(resjson, powershell);
|
|
40
40
|
export const app = series(lintApp, bundleApp);
|
|
41
|
-
export const build = series(clean, generate, validate, lint, compileLib, copy, test, bundleApp);
|
|
41
|
+
export const build = series(clean, generate, validate, lint, uiTestAutomation, compileLib, copy, test, bundleApp);
|
|
42
42
|
export const quick = series(clean, generate, compileLib, copy, bundleApp);
|
|
43
43
|
|
|
44
44
|
// Serve Tasks
|
|
@@ -48,6 +48,18 @@ module IndexModule {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
export const serve = series(watchResource, serveApp);
|
|
51
|
+
export const watchUTA = series(uiTestAutomation, saveUiTestAutomation);
|
|
52
|
+
export function watchUiTestAutomation(cb) {
|
|
53
|
+
watch(
|
|
54
|
+
['ui-test-automation/**/*.*'],
|
|
55
|
+
{ ignoreInitial: false, delay: 1000 },
|
|
56
|
+
watchUTA);
|
|
57
|
+
cb();
|
|
58
|
+
}
|
|
51
59
|
}
|
|
52
60
|
|
|
61
|
+
// ui-test-automation aliases
|
|
62
|
+
IndexModule['uta-build'] = IndexModule.uiTestAutomation;
|
|
63
|
+
IndexModule['uta-save'] = IndexModule.saveUiTestAutomation;
|
|
64
|
+
IndexModule['uta-watch'] = IndexModule.watchUiTestAutomation;
|
|
53
65
|
export = IndexModule;
|
|
@@ -33,12 +33,12 @@ var FileUpdater = /** @class */ (function () {
|
|
|
33
33
|
fs_extra_1.default.copyFileSync(upgradedTemplatePath + '\\src\\test.ts', '.\\src\\test.ts');
|
|
34
34
|
this.updateGulpConfigFile('.\\gulpfile.ts\\config-data.ts', library);
|
|
35
35
|
if (internal || internalOverride) {
|
|
36
|
-
fs_extra_1.default.copyFileSync(internalPath + '\\version.json', '.\\version.json');
|
|
37
36
|
fs_extra_1.default.copyFileSync(internalPath + '\\version.ts', '.\\src\\version.ts');
|
|
38
37
|
fs_extra_1.default.copySync(internalPath + '\\azuredevops', '.\\.azuredevops');
|
|
39
38
|
fs_extra_1.default.copySync(common_1.Common.moduleTemplatePath + '\\build', '.\\build');
|
|
40
39
|
this.updateLocalizationPipeline('.\\loc\\locConfig.xml', '.\\build\\pipelines\\localization.yml', updateSource);
|
|
41
40
|
this.updateMainFile(internalPath + '\\main.ts', '.\\src\\main.ts');
|
|
41
|
+
this.updateVersionJson(internalPath + '\\version.json', '.\\version.json');
|
|
42
42
|
}
|
|
43
43
|
if (library) {
|
|
44
44
|
fs_extra_1.default.copyFileSync(libraryPath + '\\tsconfig.lib.json', '.\\src\\tsconfig.lib.json');
|
|
@@ -112,6 +112,12 @@ var FileUpdater = /** @class */ (function () {
|
|
|
112
112
|
fileData = fileData.replace("{!company-name}.{!product-name}", name);
|
|
113
113
|
fs_extra_1.default.writeFileSync(targetFilePath, fileData);
|
|
114
114
|
};
|
|
115
|
+
FileUpdater.prototype.updateVersionJson = function (internalFilePath, targetFilePath) {
|
|
116
|
+
var newVersion = common_1.Common.readFileJSON(internalFilePath).version;
|
|
117
|
+
var versionData = common_1.Common.readFileJSON(targetFilePath);
|
|
118
|
+
versionData.version = newVersion;
|
|
119
|
+
fs_extra_1.default.writeJSONSync(targetFilePath, versionData, { spaces: 2 });
|
|
120
|
+
};
|
|
115
121
|
return FileUpdater;
|
|
116
122
|
}());
|
|
117
123
|
exports.FileUpdater = FileUpdater;
|