@microsoft/windows-admin-center-sdk 4.123.0 → 4.232.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.
Files changed (581) hide show
  1. package/angular/assets/strings/cs-CZ/strings.json +1 -1
  2. package/angular/assets/strings/de-DE/strings.json +1 -1
  3. package/angular/assets/strings/es-ES/strings.json +1 -1
  4. package/angular/assets/strings/fr-FR/strings.json +1 -1
  5. package/angular/assets/strings/hu-HU/strings.json +1 -1
  6. package/angular/assets/strings/id-ID/strings.json +1 -1
  7. package/angular/assets/strings/it-IT/strings.json +1 -1
  8. package/angular/assets/strings/ja-JP/strings.json +1 -1
  9. package/angular/assets/strings/ko-KR/strings.json +1 -1
  10. package/angular/assets/strings/nl-NL/strings.json +1 -1
  11. package/angular/assets/strings/pl-PL/strings.json +1 -1
  12. package/angular/assets/strings/pt-BR/strings.json +1 -1
  13. package/angular/assets/strings/pt-PT/strings.json +1 -1
  14. package/angular/assets/strings/ru-RU/strings.json +1 -1
  15. package/angular/assets/strings/strings.json +1 -1
  16. package/angular/assets/strings/sv-SE/strings.json +1 -1
  17. package/angular/assets/strings/tr-TR/strings.json +1 -1
  18. package/angular/assets/strings/zh-CN/strings.json +1 -1
  19. package/angular/assets/strings/zh-TW/strings.json +1 -1
  20. package/angular/esm2020/src/controls/accordion/accordion-panel/accordion-panel.component.mjs +36 -12
  21. package/angular/esm2020/src/controls/actions/containers/action-container.component.mjs +2 -3
  22. package/angular/esm2020/src/controls/alert-bar/alert-bar.component.mjs +2 -2
  23. package/angular/esm2020/src/controls/breadcrumb-header/breadcrumb-header.component.mjs +1 -1
  24. package/angular/esm2020/src/controls/common/base.component.mjs +1 -1
  25. package/angular/esm2020/src/controls/common/spacer-base.component.mjs +25 -1
  26. package/angular/esm2020/src/controls/context-menu/context-menu.component.mjs +2 -3
  27. package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -7
  28. package/angular/esm2020/src/controls/dialog/base-dialog.component.mjs +2 -4
  29. package/angular/esm2020/src/controls/dialog/confirmation-list-dialog/confirmation-list-dialog.component.mjs +2 -2
  30. package/angular/esm2020/src/controls/dropdown/dropdown.component.mjs +1 -4
  31. package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
  32. package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
  33. package/angular/esm2020/src/controls/form/form-field/clock/clock-form-field.component.mjs +10 -7
  34. package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
  35. package/angular/esm2020/src/controls/form/form-field/form-field.component.mjs +1 -1
  36. package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
  37. package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
  38. package/angular/esm2020/src/controls/form/form-field/number/number-form-field.component.mjs +22 -4
  39. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
  40. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
  41. package/angular/esm2020/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.mjs +5 -5
  42. package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
  43. package/angular/esm2020/src/controls/icon/icon-text/icon-text.component.mjs +6 -6
  44. package/angular/esm2020/src/controls/icon/layered-icon/status/status-icon.component.mjs +1 -1
  45. package/angular/esm2020/src/controls/layout/editable-layout.component.mjs +2 -3
  46. package/angular/esm2020/src/controls/node-credentials-form/node-credentials-form.component.mjs +2 -2
  47. package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
  48. package/angular/esm2020/src/controls/property-grid/property-grid.component.mjs +33 -13
  49. package/angular/esm2020/src/controls/schema/tabbed-form-loader.component.mjs +2 -2
  50. package/angular/esm2020/src/controls/settings/common-settings/common-settings.component.mjs +5 -5
  51. package/angular/esm2020/src/controls/settings/settings-form.directive.mjs +3 -7
  52. package/angular/esm2020/src/controls/settings/settings-form.service.mjs +2 -4
  53. package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
  54. package/angular/esm2020/src/controls/split-view/split-view.component.mjs +2 -2
  55. package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
  56. package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
  57. package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
  58. package/angular/esm2020/src/data/index.mjs +2 -1
  59. package/angular/esm2020/src/directives/router/router-link.directive.mjs +2 -2
  60. package/angular/esm2020/src/directives/svg/svg.directive.mjs +2 -3
  61. package/angular/esm2020/src/generated/strings.mjs +1 -1
  62. package/angular/esm2020/src/service/navigation.service.mjs +3 -8
  63. package/angular/esm2020/src/service/user-alive.service.mjs +2 -4
  64. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +665 -239
  65. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  66. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +636 -237
  67. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  68. package/angular/package.json +1 -1
  69. package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
  70. package/angular/src/controls/common/spacer-base.component.d.ts +11 -2
  71. package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
  72. package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
  73. package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
  74. package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
  75. package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
  76. package/angular/src/controls/form/form-field/number/number-form-field.component.d.ts +8 -0
  77. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
  78. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
  79. package/angular/src/controls/icon/icon-text/icon-text.component.d.ts +1 -1
  80. package/angular/src/controls/property-grid/property-grid.component.d.ts +2 -0
  81. package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
  82. package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
  83. package/angular/src/data/index.d.ts +1 -0
  84. package/angular/src/directives/svg/svg.directive.d.ts +1 -2
  85. package/angular/src/generated/strings.d.ts +12 -0
  86. package/core/async/cancellation.js +312 -0
  87. package/core/async/index.js +312 -0
  88. package/core/async/progress.js +312 -0
  89. package/core/azure/azure-constants.d.ts +2 -2
  90. package/core/azure/azure-constants.d.ts.map +1 -1
  91. package/core/azure/azure-constants.js +322 -3
  92. package/core/azure/azure-constants.js.map +1 -1
  93. package/core/azure/azure-logging.js +312 -0
  94. package/core/azure/azure-manager.js +312 -0
  95. package/core/azure/models/aadAppConfig-data.js +312 -0
  96. package/core/azure/models/azureArcStatusEnum.js +312 -0
  97. package/core/azure/models/azureTokenResult-data.js +312 -0
  98. package/core/azure/resources/deployment-operation-request-body.js +312 -0
  99. package/core/azure/resources/deployment-operation-response.js +312 -0
  100. package/core/azure/resources/location-data.js +315 -0
  101. package/core/azure/resources/resource-group-data.js +312 -0
  102. package/core/azure/resources/subscription-data.js +312 -0
  103. package/core/base/data-store/browser-storage-data-store.js +315 -0
  104. package/core/base/data-store/cached-data-store.js +312 -0
  105. package/core/base/data-store/data-store.js +312 -0
  106. package/core/base/data-store/local-data-store.js +312 -0
  107. package/core/base/data-store/memory-data-store.js +312 -0
  108. package/core/base/data-store/session-data-store.js +312 -0
  109. package/core/base/date/date-like.js +312 -0
  110. package/core/base/date/date-range.js +312 -0
  111. package/core/base/date/date-time.js +312 -0
  112. package/core/base/date/date-type.js +312 -0
  113. package/core/base/date/time-unit.js +312 -0
  114. package/core/base/decorators/base.js +312 -0
  115. package/core/base/decorators/debounce.decorators.js +312 -0
  116. package/core/base/decorators/delay.decorator.js +315 -0
  117. package/core/base/decorators/yield.decorator.js +312 -0
  118. package/core/base/environment.js +312 -0
  119. package/core/base/json.js +312 -0
  120. package/core/base/msft-sme.mock.js +316 -0
  121. package/core/base/polyfills/array.js +315 -0
  122. package/core/base/polyfills/string.js +312 -0
  123. package/core/base/rxjs-lifetime-manager.js +312 -0
  124. package/core/base/utilities.js +312 -0
  125. package/core/base/versioned-object.js +312 -0
  126. package/core/data/accessibility-manager.js +312 -0
  127. package/core/data/active-directory/active-directory.js +312 -0
  128. package/core/data/active-directory/models/account-info.js +312 -0
  129. package/core/data/active-directory/models/active-directory-search-options.js +312 -0
  130. package/core/data/active-directory/models/search-type.js +312 -0
  131. package/core/data/animation.js +312 -0
  132. package/core/data/app-context.js +312 -0
  133. package/core/data/asset-manager.js +315 -0
  134. package/core/data/base64-array-buffer.js +312 -0
  135. package/core/data/batch-connection.js +312 -0
  136. package/core/data/cim-connection.js +312 -0
  137. package/core/data/cim-stream.js +312 -0
  138. package/core/data/cim.js +312 -0
  139. package/core/data/column-picker.js +312 -0
  140. package/core/data/cookie.js +312 -0
  141. package/core/data/core-environment.js +315 -0
  142. package/core/data/crypto.js +312 -0
  143. package/core/data/deployment-share.js +312 -0
  144. package/core/data/disposable.js +312 -0
  145. package/core/data/electron.js +315 -0
  146. package/core/data/error-extended.js +312 -0
  147. package/core/data/extension-broker/dialog-listener.js +312 -0
  148. package/core/data/extension-broker/extension-broker.js +312 -0
  149. package/core/data/extension-broker/extension-listener.js +312 -0
  150. package/core/data/extension-broker/model/extension-broker-request-payload.js +312 -0
  151. package/core/data/extension-broker/model/extension-broker-response-error.js +312 -0
  152. package/core/data/extension-broker/model/extension-broker-response-payload.js +312 -0
  153. package/core/data/extension-broker/model/extension-entries.js +315 -0
  154. package/core/data/extension-broker/model/extension-instance.js +315 -0
  155. package/core/data/extension-broker/model/extension-rect.js +312 -0
  156. package/core/data/extension-broker/model/extension-search-options.js +312 -0
  157. package/core/data/extension-broker/service-listener.js +312 -0
  158. package/core/data/extension-broker/worker-listener.js +312 -0
  159. package/core/data/extension-broker/worker-set.js +312 -0
  160. package/core/data/file-transfer.js +312 -0
  161. package/core/data/gateway-connection.js +312 -0
  162. package/core/data/gateway-status.js +312 -0
  163. package/core/data/gateway-url-builder.js +312 -0
  164. package/core/data/gateway-url-translator.d.ts +1 -0
  165. package/core/data/gateway-url-translator.d.ts.map +1 -1
  166. package/core/data/gateway-url-translator.js +337 -6
  167. package/core/data/gateway-url-translator.js.map +1 -1
  168. package/core/data/gateway-urls.js +312 -0
  169. package/core/data/globalization.js +315 -0
  170. package/core/data/http-constants.js +315 -0
  171. package/core/data/http.js +312 -0
  172. package/core/data/jobs/jobs-manager.js +312 -0
  173. package/core/data/jobs/models/job-credentials.js +312 -0
  174. package/core/data/jobs/models/job-node.js +312 -0
  175. package/core/data/jobs/models/job-paginated-response.js +315 -0
  176. package/core/data/jobs/models/job-pagination-options.js +315 -0
  177. package/core/data/jobs/models/job.js +312 -0
  178. package/core/data/jobs/models/node-job.js +312 -0
  179. package/core/data/jobs/models/powershell-job.js +312 -0
  180. package/core/data/language.js +315 -0
  181. package/core/data/lifetime-data.js +312 -0
  182. package/core/data/localization-manager.js +312 -0
  183. package/core/data/native-q.js +312 -0
  184. package/core/data/net.d.ts.map +1 -1
  185. package/core/data/net.js +313 -1
  186. package/core/data/net.js.map +1 -1
  187. package/core/data/node-connection.d.ts.map +1 -1
  188. package/core/data/node-connection.js +312 -2
  189. package/core/data/node-connection.js.map +1 -1
  190. package/core/data/node-extension-install.js +312 -0
  191. package/core/data/powershell-alternate.js +312 -0
  192. package/core/data/powershell-batch.js +312 -0
  193. package/core/data/powershell-connection.js +312 -0
  194. package/core/data/powershell-crypto.js +312 -0
  195. package/core/data/powershell-stream.js +312 -0
  196. package/core/data/powershell.js +312 -0
  197. package/core/data/query-cache.js +312 -0
  198. package/core/data/resource-cache.js +312 -0
  199. package/core/data/schedule-reboot.js +312 -0
  200. package/core/data/settings-manager.js +312 -0
  201. package/core/data/settings-manger.mock.js +312 -0
  202. package/core/data/sme-extension.js +312 -0
  203. package/core/data/ssh-stream.js +312 -0
  204. package/core/data/units.js +312 -0
  205. package/core/data/uri-builder.js +315 -0
  206. package/core/data/wdac-operations.js +312 -0
  207. package/core/data/websocket-stream.js +312 -0
  208. package/core/diagnostics/error-monitor.js +312 -0
  209. package/core/diagnostics/log-level.js +312 -0
  210. package/core/diagnostics/log-record.js +312 -0
  211. package/core/diagnostics/logging-constants.js +312 -0
  212. package/core/diagnostics/logging.js +312 -0
  213. package/core/diagnostics/logging.mock.js +312 -0
  214. package/core/diagnostics/sme-web-telemetry-models.js +312 -0
  215. package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
  216. package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
  217. package/core/diagnostics/sme-web-telemetry.js +336 -15
  218. package/core/diagnostics/sme-web-telemetry.js.map +1 -1
  219. package/core/diagnostics/telemetry-control-type.js +312 -0
  220. package/core/diagnostics/telemetry-options.js +312 -0
  221. package/core/diagnostics/telemetry-record.js +312 -0
  222. package/core/dom/dom.js +312 -0
  223. package/core/frame/frame-connection.js +312 -0
  224. package/core/frame/frame-connection.mock.js +312 -0
  225. package/core/frame/shell-navigation-connection.js +312 -0
  226. package/core/generated/powershell-scripts.d.ts.map +1 -1
  227. package/core/generated/powershell-scripts.js +313 -1
  228. package/core/generated/powershell-scripts.js.map +1 -1
  229. package/core/generated/strings.js +312 -0
  230. package/core/host/host-core-manager.js +312 -0
  231. package/core/host/host-core-message-type.js +312 -0
  232. package/core/host/host-core-messages.js +312 -0
  233. package/core/index.d.ts +0 -1
  234. package/core/index.d.ts.map +1 -1
  235. package/core/index.js +312 -1
  236. package/core/index.js.map +1 -1
  237. package/core/manifest/environment-modules.js +312 -0
  238. package/core/manifest/manifest-loader.js +312 -0
  239. package/core/notification/client-notification-instance.js +312 -0
  240. package/core/notification/client-notification.js +312 -0
  241. package/core/notification/notification-connection.js +312 -0
  242. package/core/notification/notification-link-type.js +312 -0
  243. package/core/notification/notification-manager.js +312 -0
  244. package/core/notification/notification-message.js +312 -0
  245. package/core/notification/notification-state.js +312 -0
  246. package/core/notification/notification.js +312 -0
  247. package/core/notification/powershell-notification.js +312 -0
  248. package/core/notification/socket-signalr.js +312 -0
  249. package/core/notification/work-item-connection.js +312 -0
  250. package/core/notification/work-item-manager.js +312 -0
  251. package/core/notification/work-item-request.js +312 -0
  252. package/core/performance/performance-profile-data-type.js +312 -0
  253. package/core/performance/performance-profile-data.js +312 -0
  254. package/core/performance/performance-profile-database.js +312 -0
  255. package/core/performance/performance-profile-record.js +312 -0
  256. package/core/performance/performance-profile.d.ts.map +1 -1
  257. package/core/performance/performance-profile.js +321 -9
  258. package/core/performance/performance-profile.js.map +1 -1
  259. package/core/performance/performance-tracker.js +312 -0
  260. package/core/polyfills.js +312 -0
  261. package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +216 -0
  262. package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +216 -0
  263. package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
  264. package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
  265. package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
  266. package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +216 -0
  267. package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +216 -0
  268. package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +216 -0
  269. package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +246 -8
  270. package/core/rpc/alive/rpc-alive-client.js +312 -0
  271. package/core/rpc/alive/rpc-alive-handler.js +312 -0
  272. package/core/rpc/alive/rpc-alive-model.js +315 -0
  273. package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
  274. package/core/rpc/alive/rpc-observable-alive-client.js +312 -0
  275. package/core/rpc/alive/rpc-observable-alive-model.js +312 -0
  276. package/core/rpc/alive/rpc-observable-alive-server.js +312 -0
  277. package/core/rpc/azure/rpc-azure-model.js +312 -0
  278. package/core/rpc/azure/rpc-azure-request-client.js +312 -0
  279. package/core/rpc/azure/rpc-azure-request-handler.js +312 -0
  280. package/core/rpc/azure/rpc-azure-request-subject-server.js +312 -0
  281. package/core/rpc/azure/rpc-azure-response-client.js +312 -0
  282. package/core/rpc/azure/rpc-azure-response-handler.js +315 -0
  283. package/core/rpc/credssp/rpc-credssp-model.js +312 -0
  284. package/core/rpc/credssp/rpc-credssp-request-client.js +312 -0
  285. package/core/rpc/credssp/rpc-credssp-request-handler.js +315 -0
  286. package/core/rpc/credssp/rpc-credssp-request-subject-server.js +312 -0
  287. package/core/rpc/credssp/rpc-credssp-response-client.js +312 -0
  288. package/core/rpc/credssp/rpc-credssp-response-handler.js +315 -0
  289. package/core/rpc/dialog/rpc-dialog-client.js +312 -0
  290. package/core/rpc/dialog/rpc-dialog-handler.js +312 -0
  291. package/core/rpc/dialog/rpc-dialog-model.js +312 -0
  292. package/core/rpc/dialog/rpc-dialog-subject-server.js +315 -0
  293. package/core/rpc/electron/rpc-electron-model.js +312 -0
  294. package/core/rpc/electron/rpc-electron-request-client.js +312 -0
  295. package/core/rpc/electron/rpc-electron-request-handler.js +312 -0
  296. package/core/rpc/electron/rpc-electron-request-subject-server.js +312 -0
  297. package/core/rpc/electron/rpc-electron-response-client.js +312 -0
  298. package/core/rpc/electron/rpc-electron-response-handler.js +312 -0
  299. package/core/rpc/elevate/rpc-observable-elevate-client.js +312 -0
  300. package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
  301. package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
  302. package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +312 -0
  303. package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +315 -0
  304. package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
  305. package/core/rpc/extension-broker/rpc-extension-broker-model.js +315 -0
  306. package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +315 -0
  307. package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
  308. package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
  309. package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
  310. package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
  311. package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
  312. package/core/rpc/extension-data/rpc-observable-extension-data-client.js +312 -0
  313. package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
  314. package/core/rpc/extension-data/rpc-observable-extension-data-server.js +312 -0
  315. package/core/rpc/forward/rpc-forward-auto-client.js +312 -0
  316. package/core/rpc/forward/rpc-forward-down-client.js +315 -0
  317. package/core/rpc/forward/rpc-forward-down-handler.js +312 -0
  318. package/core/rpc/forward/rpc-forward-model.js +312 -0
  319. package/core/rpc/forward/rpc-forward-up-client.js +312 -0
  320. package/core/rpc/forward/rpc-forward-up-handler.js +312 -0
  321. package/core/rpc/forward/rpc-forward-up-subject-server.js +312 -0
  322. package/core/rpc/log/rpc-log-client.js +312 -0
  323. package/core/rpc/log/rpc-log-handler.js +312 -0
  324. package/core/rpc/log/rpc-log-model.js +312 -0
  325. package/core/rpc/log/rpc-log-subject-server.js +312 -0
  326. package/core/rpc/notification/rpc-notification-client.js +312 -0
  327. package/core/rpc/notification/rpc-notification-handler.js +312 -0
  328. package/core/rpc/notification/rpc-notification-model.js +312 -0
  329. package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
  330. package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
  331. package/core/rpc/overlay/rpc-overlay-close-handler.js +312 -0
  332. package/core/rpc/overlay/rpc-overlay-model.js +312 -0
  333. package/core/rpc/overlay/rpc-overlay-open-client.js +315 -0
  334. package/core/rpc/overlay/rpc-overlay-open-handler.js +312 -0
  335. package/core/rpc/overlay/rpc-overlay-open-subject-server.js +312 -0
  336. package/core/rpc/performance/rpc-observable-performance-client.js +312 -0
  337. package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
  338. package/core/rpc/performance/rpc-observable-performance-config-server.js +312 -0
  339. package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
  340. package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
  341. package/core/rpc/report/rpc-report-client.js +312 -0
  342. package/core/rpc/report/rpc-report-handler.js +312 -0
  343. package/core/rpc/report/rpc-report-model.js +312 -0
  344. package/core/rpc/report/rpc-report-subject-server.js +315 -0
  345. package/core/rpc/rpc-base.js +312 -0
  346. package/core/rpc/rpc-channel.js +312 -0
  347. package/core/rpc/rpc-forwarder.js +312 -0
  348. package/core/rpc/rpc-inbound-client.js +312 -0
  349. package/core/rpc/rpc-inbound.js +312 -0
  350. package/core/rpc/rpc-manager.js +312 -0
  351. package/core/rpc/rpc-module-subject-server.js +315 -0
  352. package/core/rpc/rpc-observable-client.js +312 -0
  353. package/core/rpc/rpc-observable-request.js +312 -0
  354. package/core/rpc/rpc-observable-result.js +312 -0
  355. package/core/rpc/rpc-observable-server.js +312 -0
  356. package/core/rpc/rpc-outbound-client.js +312 -0
  357. package/core/rpc/rpc-outbound.js +312 -0
  358. package/core/rpc/rpc-subject-server.js +312 -0
  359. package/core/rpc/rpc.js +312 -0
  360. package/core/rpc/seek/rpc-seek-client.js +312 -0
  361. package/core/rpc/seek/rpc-seek-handler.js +315 -0
  362. package/core/rpc/seek/rpc-seek-model.js +312 -0
  363. package/core/rpc/settings/rpc-settings-client.js +315 -0
  364. package/core/rpc/settings/rpc-settings-handler.js +312 -0
  365. package/core/rpc/settings/rpc-settings-model.js +312 -0
  366. package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
  367. package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +312 -0
  368. package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +312 -0
  369. package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +312 -0
  370. package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +312 -0
  371. package/core/rpc/sme-extension/rpc-sme-extension-model.js +315 -0
  372. package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +312 -0
  373. package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
  374. package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
  375. package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +312 -0
  376. package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +312 -0
  377. package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
  378. package/core/rpc/telemetry/rpc-telemetry-handler.js +315 -0
  379. package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
  380. package/core/rpc/telemetry/rpc-telemetry-subject-server.js +312 -0
  381. package/core/rpc/update-data/rpc-update-data-client.js +312 -0
  382. package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
  383. package/core/rpc/update-data/rpc-update-data-model.js +312 -0
  384. package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
  385. package/core/rpc/update-theme/rpc-observable-update-theme-client.js +312 -0
  386. package/core/rpc/update-theme/rpc-observable-update-theme-model.js +312 -0
  387. package/core/rpc/update-theme/rpc-observable-update-theme-server.js +312 -0
  388. package/core/rpc/work-item/rpc-work-item-client.js +312 -0
  389. package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
  390. package/core/rpc/work-item/rpc-work-item-model.js +312 -0
  391. package/core/rpc/work-item/rpc-work-item-subject-server.js +312 -0
  392. package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
  393. package/core/rpc/work-item-find/rpc-work-item-find-handler.js +312 -0
  394. package/core/rpc/work-item-find/rpc-work-item-find-model.js +312 -0
  395. package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
  396. package/core/security/active-connection.js +312 -0
  397. package/core/security/authorization-manager.js +312 -0
  398. package/core/security/connection-manager-settings/common-connection-settings.js +315 -0
  399. package/core/security/connection-manager-settings/connection-settings.js +312 -0
  400. package/core/security/connection-manager.js +312 -0
  401. package/core/security/connection-stream.js +312 -0
  402. package/core/security/connection.js +312 -0
  403. package/core/security/credssp-manager.js +312 -0
  404. package/core/security/sign-on-manager.js +312 -0
  405. package/core/security/tag-manager.js +312 -0
  406. package/core/security/tool-condition-validator.js +312 -0
  407. package/core/security/tool-connection-query.js +312 -0
  408. package/core/security/user-principal.js +312 -0
  409. package/core/shared/cluster-inventory/cluster-inventory-cache.js +312 -0
  410. package/core/shared/cluster-inventory/cluster-inventory.js +312 -0
  411. package/core/shared/cluster-inventory/cluster-node-inventory.js +312 -0
  412. package/core/shared/gateway-inventory/gateway-inventory-cache.js +312 -0
  413. package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +312 -0
  414. package/core/shared/gateway-inventory/gateway-inventory-detail.js +312 -0
  415. package/core/shared/gateway-inventory/gateway-inventory.js +312 -0
  416. package/core/shared/inventory-query-caches.js +312 -0
  417. package/core/shared/server-inventory/server-inventory-cache.js +312 -0
  418. package/core/shared/server-inventory/server-inventory-detail-cache.js +312 -0
  419. package/core/shared/server-inventory/server-inventory-detail.js +315 -0
  420. package/core/shared/server-inventory/server-inventory.js +312 -0
  421. package/core/shared/shared-cache.js +312 -0
  422. package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
  423. package/core/shared/tool-inventory/tool-inventory.js +312 -0
  424. package/core/special.js +315 -0
  425. package/core/test-utilities/accessibility-tester.js +312 -0
  426. package/core/test-utilities/console.mock.js +312 -0
  427. package/core/test-utilities/jasmine-axe-matcher.js +312 -0
  428. package/core/test-utilities/wait-async.js +312 -0
  429. package/core/test.js +312 -0
  430. package/core/testing.js +312 -0
  431. package/core/workflow/persistent-local-storage.js +312 -0
  432. package/core/workflow/persistent-work-item-apply-state.js +316 -0
  433. package/core/workflow/persistent-work-item-state.js +312 -0
  434. package/core/workflow/persistent-work-item.js +315 -0
  435. package/core/workflow/persistent-workflow-builder.js +312 -0
  436. package/core/workflow/persistent-workflow-context.js +312 -0
  437. package/core/workflow/persistent-workflow-runner.js +312 -0
  438. package/core/workflow/persistent-workflow-snapshot.js +312 -0
  439. package/core/workflow/persistent-workflow-store.js +312 -0
  440. package/core/workflow/persistent-workflow.js +312 -0
  441. package/package.json +11 -9
  442. package/styles/css/main-v2.css +1 -1
  443. package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
  444. package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
  445. package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
  446. package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
  447. package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
  448. package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
  449. package/tools/build/webpack/index-html.transform.js +312 -0
  450. package/tools/build/webpack/shell.index-html.transform.js +312 -0
  451. package/tools/build/webpack/shell.webpack.config.js +312 -0
  452. package/tools/build/webpack/webpack.config.js +312 -0
  453. package/tools/code-formatter/.eslintrc.base.json +3 -1
  454. package/tools/code-formatter/lint.d.ts.map +1 -1
  455. package/tools/code-formatter/lint.js +319 -1
  456. package/tools/code-formatter/lint.js.map +1 -1
  457. package/tools/code-formatter/utilities.d.ts +7 -0
  458. package/tools/code-formatter/utilities.d.ts.map +1 -0
  459. package/tools/code-formatter/utilities.js +395 -0
  460. package/tools/code-formatter/utilities.js.map +1 -0
  461. package/tools/gulp-doc-generator/index.js +312 -0
  462. package/tools/gulp-manifest-resource/index.js +312 -0
  463. package/tools/gulp-manifest-validator/index.js +312 -0
  464. package/tools/gulp-merge-json-in-folders/index.js +312 -0
  465. package/tools/gulp-merge-json-in-folders/json-merge.js +312 -0
  466. package/tools/gulp-ps-cim/index.js +315 -0
  467. package/tools/gulp-ps-code/index.d.ts.map +1 -1
  468. package/tools/gulp-ps-code/index.js +323 -2
  469. package/tools/gulp-ps-code/index.js.map +1 -1
  470. package/tools/gulp-ps-code/ps-code-convert.js +312 -0
  471. package/tools/gulp-ps-manifest/index.js +312 -0
  472. package/tools/gulp-ps-module/index.d.ts.map +1 -1
  473. package/tools/gulp-ps-module/index.js +327 -3
  474. package/tools/gulp-ps-module/index.js.map +1 -1
  475. package/tools/gulp-ps-resjson/index.js +315 -0
  476. package/tools/gulp-resjson/index.js +315 -0
  477. package/tools/gulp-resjson/resjson-convert.js +312 -0
  478. package/tools/gulp-schema-form/index.js +312 -0
  479. package/tools/gulp-svg-code/index.js +312 -0
  480. package/tools/gulp-svg-code/svg-code-convert.js +312 -0
  481. package/tools/gulp-update-notes-resource/index.d.ts.map +1 -1
  482. package/tools/gulp-update-notes-resource/index.js +316 -4
  483. package/tools/gulp-update-notes-resource/index.js.map +1 -1
  484. package/tools/module-template/.eslintrc.json +3 -0
  485. package/tools/module-template/build/increment-package-version.ps1 +216 -0
  486. package/tools/module-template/build/push-incremented-version.ps1 +216 -1
  487. package/tools/module-template/build/update-powershell-code.ps1 +216 -0
  488. package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
  489. package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
  490. package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
  491. package/tools/module-template/gulpfile.ts/common/utilities.ts +1 -0
  492. package/tools/pack-nuget/index.d.ts.map +1 -1
  493. package/tools/pack-nuget/index.js +321 -3
  494. package/tools/pack-nuget/index.js.map +1 -1
  495. package/tools/scripts/Invoke-PesterTest.ps1 +216 -0
  496. package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
  497. package/tools/scripts/Search-NonAsciiText.ps1 +216 -0
  498. package/tools/scripts/package-information/README.md +3 -0
  499. package/tools/scripts/package-information/ms-logo.png +0 -0
  500. package/tools/test-runner/index.js +312 -0
  501. package/tools/utilities/index.js +312 -0
  502. package/tools/wac-cli/src/angular15/configs/angular-json-config.js +312 -0
  503. package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
  504. package/tools/wac-cli/src/angular15/configs/config.js +312 -0
  505. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts +9 -0
  506. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts.map +1 -0
  507. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +328 -0
  508. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js.map +1 -0
  509. package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +312 -0
  510. package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +315 -0
  511. package/tools/wac-cli/src/angular15/configs/package-json-config.js +312 -0
  512. package/tools/wac-cli/src/angular15/configs/replace-config.js +315 -0
  513. package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +312 -0
  514. package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +312 -0
  515. package/tools/wac-cli/src/angular15/main.d.ts +19 -3
  516. package/tools/wac-cli/src/angular15/main.d.ts.map +1 -1
  517. package/tools/wac-cli/src/angular15/main.js +353 -7
  518. package/tools/wac-cli/src/angular15/main.js.map +1 -1
  519. package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
  520. package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +312 -0
  521. package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +312 -0
  522. package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
  523. package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +312 -0
  524. package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
  525. package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +312 -0
  526. package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +315 -0
  527. package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +312 -0
  528. package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +312 -0
  529. package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
  530. package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +312 -0
  531. package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +312 -0
  532. package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +312 -0
  533. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts +18 -0
  534. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts.map +1 -0
  535. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +361 -0
  536. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js.map +1 -0
  537. package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +312 -0
  538. package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +312 -0
  539. package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +312 -0
  540. package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +312 -0
  541. package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +315 -0
  542. package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +312 -0
  543. package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +312 -0
  544. package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +312 -0
  545. package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
  546. package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
  547. package/tools/wac-cli/src/angular15/utils/command-runner.js +312 -0
  548. package/tools/wac-cli/src/angular15/utils/file-comparison.js +315 -0
  549. package/tools/wac-cli/src/angular15/utils/file-replacement.js +312 -0
  550. package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
  551. package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
  552. package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
  553. package/tools/wac-cli/src/angular15/utils/relative-path.js +312 -0
  554. package/tools/wac-cli/src/angular15/utils/remove-item.js +312 -0
  555. package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
  556. package/tools/wac-cli/src/angular15/utils/update-shell-references.js +316 -0
  557. package/tools/wac-cli/src/common.js +312 -0
  558. package/tools/wac-cli/src/create/main.js +312 -0
  559. package/tools/wac-cli/src/eslint/main.js +312 -0
  560. package/tools/wac-cli/src/index.js +312 -0
  561. package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
  562. package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +315 -0
  563. package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +315 -0
  564. package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
  565. package/tools/wac-cli/src/upgrade/file-updater.js +312 -0
  566. package/tools/wac-cli/src/upgrade/get-files.js +312 -0
  567. package/tools/wac-cli/src/upgrade/main.js +312 -0
  568. package/tools/wac-cli/src/upgrade/models/error-result.js +312 -0
  569. package/tools/wac-cli/src/upgrade/models/updater-interface.js +312 -0
  570. package/tools/wac-cli/src/upgrade/package-updater.js +312 -0
  571. package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
  572. package/tools/wac-cli/templates/wac-template/src/karma.conf.js +312 -0
  573. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +216 -0
  574. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
  575. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
  576. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
  577. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +216 -1
  578. package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
  579. package/core/data/extension-broker/snap-in-listener.js +0 -73
  580. package/core/data/extension-broker/snap-in-listener.js.map +0 -1
  581. package/microsoft-windows-admin-center-sdk-4.123.0.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/tools/gulp-ps-code/index.ts"],"names":[],"mappings":"","file":"index.d.ts","sourcesContent":["/* eslint-disable no-console */\r\n'use strict';\r\n\r\nimport Path from 'path';\r\nimport pluginError from 'plugin-error';\r\nimport through2 from 'through2';\r\nimport Vinyl from 'vinyl';\r\nimport * as util from '../utilities';\r\nimport * as PsCode from './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.substring(file.cwd.length + 1);\r\n relPath = relPath.substring(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.substring(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 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":"","file":"index.d.ts","sourcesContent":["/* eslint-disable no-console */\r\n'use strict';\r\n\r\nimport Path from 'path';\r\nimport pluginError from 'plugin-error';\r\nimport through2 from 'through2';\r\nimport Vinyl from 'vinyl';\r\nimport * as util from '../utilities';\r\nimport * as PsCode from './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.substring(file.cwd.length + 1);\r\n relPath = relPath.substring(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.substring(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 let lines = file.contents.toString().split('\\n');\r\n const newLines = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n const line = lines[i];\r\n if (line.indexOf('# SIG # Begin signature block') >= 0) {\r\n break;\r\n }\r\n\r\n newLines.push(line);\r\n }\r\n\r\n const data: string = newLines.join('\\n');\r\n if (options.validate) {\r\n // validate non-ascii code presence.\r\n 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 this.push(tsFile);\r\n cb();\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsCode;\r\n"]}
@@ -82,10 +82,19 @@ function gulpPsCode(options) {
82
82
  throw new Error('gulp-ps-code requires unique name of ps file, conflicted with ' + path.base);
83
83
  }
84
84
  collection[path.base] = true;
85
- const data = file.contents.toString('utf8');
85
+ let lines = file.contents.toString().split('\n');
86
+ const newLines = [];
87
+ for (let i = 0; i < lines.length; i++) {
88
+ const line = lines[i];
89
+ if (line.indexOf('# SIG # Begin signature block') >= 0) {
90
+ break;
91
+ }
92
+ newLines.push(line);
93
+ }
94
+ const data = newLines.join('\n');
86
95
  if (options.validate) {
87
96
  // validate non-ascii code presence.
88
- const lines = data.split('\n');
97
+ lines = data.split('\n');
89
98
  let errorCode = false;
90
99
  for (let i = 0; i < lines.length; i++) {
91
100
  const line = lines[i];
@@ -184,3 +193,315 @@ function gulpPsCode(options) {
184
193
  module.exports = gulpPsCode;
185
194
 
186
195
  //# sourceMappingURL=index.js.map
196
+
197
+ // SIG // Begin signature block
198
+ // SIG // MIInzwYJKoZIhvcNAQcCoIInwDCCJ7wCAQExDzANBglg
199
+ // SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
200
+ // SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
201
+ // SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
202
+ // SIG // G47KlOcRqPvrfKziMf3bOJT15eb58TSR3WcgXPc+hPOg
203
+ // SIG // gg2FMIIGAzCCA+ugAwIBAgITMwAAA64tNVHIU49VHQAA
204
+ // SIG // AAADrjANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
205
+ // SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
206
+ // SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
207
+ // SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
208
+ // SIG // aWduaW5nIFBDQSAyMDExMB4XDTIzMTExNjE5MDg1OVoX
209
+ // SIG // DTI0MTExNDE5MDg1OVowdDELMAkGA1UEBhMCVVMxEzAR
210
+ // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
211
+ // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
212
+ // SIG // bjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
213
+ // SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
214
+ // SIG // 9CD8pjY3wxCoPmMhOkow7ycCltfqYnqk4wGNApzh2dTY
215
+ // SIG // +YqxozWTzJUOB38VxsgFQmXBFhOMdrGYGpvO9kdbNPkw
216
+ // SIG // HpTrW6hZqFuLLiRwGKEx4ZM5zVSqbHJuX2fPfUJ0Xmb+
217
+ // SIG // VrVsGw/BwBV2zz0rVtiSgqj3GeeGOsG7llfWyrSjyJqm
218
+ // SIG // 5DHE3o04BAI/NuhkHOv04euiqJGvHFCL8+fXvyD9OAxq
219
+ // SIG // 4fcJKtoyBb0PBA3oMNQeCsiUyLO+voZqVTOUsAWY0bN5
220
+ // SIG // YjkK4nq5DVaNdVrrowd5AX9gmz6D/TJTssns6pDCG00Y
221
+ // SIG // +Dh3ipWpnVmkhYcByyUSEKX3PLC8DkiAQQIDAQABo4IB
222
+ // SIG // gjCCAX4wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYB
223
+ // SIG // BQUHAwMwHQYDVR0OBBYEFIcf73Spl4cHOFoll27H9COd
224
+ // SIG // 4fE/MFQGA1UdEQRNMEukSTBHMS0wKwYDVQQLEyRNaWNy
225
+ // SIG // b3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQx
226
+ // SIG // FjAUBgNVBAUTDTIzMDAxMis1MDE4MzYwHwYDVR0jBBgw
227
+ // SIG // FoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0w
228
+ // SIG // SzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
229
+ // SIG // L3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDEx
230
+ // SIG // LTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYB
231
+ // SIG // BQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
232
+ // SIG // a2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDEx
233
+ // SIG // LTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3
234
+ // SIG // DQEBCwUAA4ICAQBqyWA1Eu7PKNMjaaxl0V7gJ0XBysUo
235
+ // SIG // xZluMHJXFE2LEGZIZ2zMLYVjOnAGG/4dluRjSrZZo/8v
236
+ // SIG // wk4Xt8v6NBB9ofo8H1P/XidHytWTv9lg9MYu++6lPmu5
237
+ // SIG // fCozD3cI2NLZPW2BBhGX2D0R8tQBj0FbmZRuIucpiQ7D
238
+ // SIG // K3CHKlfKcc7MP8pPzuMv55Tox8+KFQD1NG6+bfbYA/BN
239
+ // SIG // PBkg4tyOh+exbaHfcNuodDJUIjq9dF6oa+Yjy0u0pUMI
240
+ // SIG // /B1t+8m6rJo0KSoZlrpesYl0jRhpt+hmqx8uENXoGJcY
241
+ // SIG // ZVJ5N2Skq90LViKNRhi9N4U+e8c4y9uXyomUF/6viCPJ
242
+ // SIG // 7huTNEJo75ehIJba+IWd3txUEc0R3y6DT6txC6cW1nR/
243
+ // SIG // LTbo9I/8fQq538G5IvJ+e5iSiOSVVkVk0i5m03Awy5E2
244
+ // SIG // ZSS4PVdQSCcFxmN4tpEfYuR7AAy/GJVtIDFlUpSgdXok
245
+ // SIG // pSui5hYtK1R9enXXvo+U/xGkLRc+qp4De3dZbzu7pOq7
246
+ // SIG // V/jCyhuCw0bEIAU4urCGIip7TI6GBRzD7yPzjFIqeZY7
247
+ // SIG // S4rVW5BRn2oEqpm8Su6yTIQvMIk8x2pwYNUa2339Z4gW
248
+ // SIG // 5xW21eFA5mLpo7NRSKRQms5OgAA18aCgqOU7Ds0h6q/Y
249
+ // SIG // B4BmEAtoTMl/TBiyKaMGAlEcdy+5FIhmzojMGjCCB3ow
250
+ // SIG // ggVioAMCAQICCmEOkNIAAAAAAAMwDQYJKoZIhvcNAQEL
251
+ // SIG // BQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
252
+ // SIG // aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
253
+ // SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMT
254
+ // SIG // KU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
255
+ // SIG // cml0eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcw
256
+ // SIG // ODIxMDkwOVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgT
257
+ // SIG // Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
258
+ // SIG // BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYG
259
+ // SIG // A1UEAxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0Eg
260
+ // SIG // MjAxMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
261
+ // SIG // ggIBAKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCq
262
+ // SIG // uAY4GgRJun/DDB7dN2vGEtgL8DjCmQawyDnVARQxQtOJ
263
+ // SIG // DXlkh36UYCRsr55JnOloXtLfm1OyCizDr9mpK656Ca/X
264
+ // SIG // llnKYBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3WraPPL
265
+ // SIG // bfM6XKEW9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5
266
+ // SIG // pUkp5w2+oBN3vpQ97/vjK1oQH01WKKJ6cuASOrdJXtjt
267
+ // SIG // 7UORg9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7La4zWMW3
268
+ // SIG // Pv4y07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwP
269
+ // SIG // rRkjhMv0ugOGjfdf8NBSv4yUh7zAIXQlXxgotswnKDgl
270
+ // SIG // mDlKNs98sZKuHCOnqWbsYR9q4ShJnV+I4iVd0yFLPlLE
271
+ // SIG // tVc/JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9
272
+ // SIG // G9RVS+c5oQ/pI0m8GLhEfEXkwcNyeuBy5yTfv0aZxe/C
273
+ // SIG // HFfbg43sTUkwp6uO3+xbn6/83bBm4sGXgXvt1u1L50kp
274
+ // SIG // pxMopqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9A
275
+ // SIG // N0/B4YVEicQJTMXUpUMvdJX3bvh4IFgsE11glZo+TzOE
276
+ // SIG // 2rCIF96eTvSWsLxGoGyY0uDWiIwLAgMBAAGjggHtMIIB
277
+ // SIG // 6TAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k
278
+ // SIG // 5VAF04KqFzc3IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAwe
279
+ // SIG // CgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB
280
+ // SIG // /wQFMAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kUBU7h
281
+ // SIG // 6qfHMdEjiTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDov
282
+ // SIG // L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVj
283
+ // SIG // dHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNy
284
+ // SIG // bDBeBggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0
285
+ // SIG // dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMv
286
+ // SIG // TWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNydDCB
287
+ // SIG // nwYDVR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYI
288
+ // SIG // KwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNv
289
+ // SIG // bS9wa2lvcHMvZG9jcy9wcmltYXJ5Y3BzLmh0bTBABggr
290
+ // SIG // BgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABp
291
+ // SIG // AGMAeQBfAHMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkq
292
+ // SIG // hkiG9w0BAQsFAAOCAgEAZ/KGpZjgVHkaLtPYdGcimwuW
293
+ // SIG // EeFjkplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79H
294
+ // SIG // qaPzadtjvyI1pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS
295
+ // SIG // 0LD9a+M+By4pm+Y9G6XUtR13lDni6WTJRD14eiPzE32m
296
+ // SIG // kHSDjfTLJgJGKsKKELukqQUMm+1o+mgulaAqPyprWElj
297
+ // SIG // HwlpblqYluSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMO
298
+ // SIG // r5kol5hNDj0L8giJ1h/DMhji8MUtzluetEk5CsYKwsat
299
+ // SIG // ruWy2dsViFFFWDgycScaf7H0J/jeLDogaZiyWYlobm+n
300
+ // SIG // t3TDQAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVA
301
+ // SIG // KmWjw11SYobDHWM2l4bf2vP48hahmifhzaWX0O5dY0Hj
302
+ // SIG // Wwechz4GdwbRBrF1HxS+YWG18NzGGwS+30HHDiju3mUv
303
+ // SIG // 7Jf2oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3
304
+ // SIG // HjXG0qKin3p6IvpIlR+r+0cjgPWe+L9rt0uX4ut1eBrs
305
+ // SIG // 6jeZeRhL/9azI2h15q/6/IvrC4DqaTuv/DDtBEyO3991
306
+ // SIG // bWORPdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYib
307
+ // SIG // V3FWTkhFwELJm3ZbCoBIa/15n8G9bW1qyVJzEw16UM0x
308
+ // SIG // ghmiMIIZngIBATCBlTB+MQswCQYDVQQGEwJVUzETMBEG
309
+ // SIG // A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
310
+ // SIG // ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
311
+ // SIG // MSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5n
312
+ // SIG // IFBDQSAyMDExAhMzAAADri01UchTj1UdAAAAAAOuMA0G
313
+ // SIG // CWCGSAFlAwQCAQUAoIGuMBkGCSqGSIb3DQEJAzEMBgor
314
+ // SIG // BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE
315
+ // SIG // AYI3AgEVMC8GCSqGSIb3DQEJBDEiBCCfZAzguZVQMVJi
316
+ // SIG // inKdwRFrXxp1LZFrt9OITsMZndTgFTBCBgorBgEEAYI3
317
+ // SIG // AgEMMTQwMqAUgBIATQBpAGMAcgBvAHMAbwBmAHShGoAY
318
+ // SIG // aHR0cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3
319
+ // SIG // DQEBAQUABIIBADVufoC94ZdrS9svtDOWTL14U805XZQe
320
+ // SIG // k/41Lhc2kKJcYcjS/F398Z1ZHQdlVKQHbenUwM8KF9/P
321
+ // SIG // jMxLLJA0Kdx9MgFfFMAwuWcr2MOxQiFzUpEIUTRNpmNf
322
+ // SIG // B3uYMpedtRdnOglUj+Uf21cnPmgFF+jzY/hCi5nDaK26
323
+ // SIG // KYUwtjc897hzpB1iwr/xO8Sqb4gU04Qf1eOJUNE+jKMh
324
+ // SIG // CVEgK2JpP5G8/w56mdgZMPh0mN11l94IXulHVggCDYVK
325
+ // SIG // tO6hlEU6q44Fapi0qKsseBVIUiYCm79ateB5EMTE4m65
326
+ // SIG // bz6HjL+HJHFlYdT9DwmaUyxBDevo0wHbKlLc5loPOaYF
327
+ // SIG // uBahghcsMIIXKAYKKwYBBAGCNwMDATGCFxgwghcUBgkq
328
+ // SIG // hkiG9w0BBwKgghcFMIIXAQIBAzEPMA0GCWCGSAFlAwQC
329
+ // SIG // AQUAMIIBWQYLKoZIhvcNAQkQAQSgggFIBIIBRDCCAUAC
330
+ // SIG // AQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQg
331
+ // SIG // OudoJkSwBz+udb/2WZS6j5N0Rv5biP77+JfoXBaEyC4C
332
+ // SIG // BmZzCFJEehgTMjAyNDA2MjcwNjI0NDcuOTA0WjAEgAIB
333
+ // SIG // 9KCB2KSB1TCB0jELMAkGA1UEBhMCVVMxEzARBgNVBAgT
334
+ // SIG // Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
335
+ // SIG // BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEtMCsG
336
+ // SIG // A1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0aW9u
337
+ // SIG // cyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVT
338
+ // SIG // TjpGQzQxLTRCRDQtRDIyMDElMCMGA1UEAxMcTWljcm9z
339
+ // SIG // b2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCEXswggcnMIIF
340
+ // SIG // D6ADAgECAhMzAAAB4pmZlfHc4yDrAAEAAAHiMA0GCSqG
341
+ // SIG // SIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
342
+ // SIG // EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
343
+ // SIG // HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAk
344
+ // SIG // BgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAy
345
+ // SIG // MDEwMB4XDTIzMTAxMjE5MDcyNVoXDTI1MDExMDE5MDcy
346
+ // SIG // NVowgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
347
+ // SIG // aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
348
+ // SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsT
349
+ // SIG // JE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGlt
350
+ // SIG // aXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RkM0
351
+ // SIG // MS00QkQ0LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBU
352
+ // SIG // aW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3DQEB
353
+ // SIG // AQUAA4ICDwAwggIKAoICAQC1Y7WYVfpBZm/HCkKYNps4
354
+ // SIG // rA5USPe/Bm9mphr2wJgndOCVRnk3v0BszPCm0KzA6Jew
355
+ // SIG // wu40tNyZHKz7FovVqVcLCHJEUPAJF9YnQRvR4cgrKQGr
356
+ // SIG // 37r8+eZIZe26z0Mex/fVCW7BN8DJqZiWrD1qYBdOc2Zb
357
+ // SIG // 6VkA1Cw3CGMpeZVyOB1WeTejEsVjvM8Fq+K/cZDJlF7O
358
+ // SIG // yAsQya+Wt/UknjwCUSMs52iHNFs2ejBXE0cyyzcjwROC
359
+ // SIG // q1b9SxXfehTcQM8J3rUnj4PPBJkXs69k9x0xRJZ3iV8k
360
+ // SIG // GHemEO3giHO8pZVqGNNwhIPYIaK6falCnAVHxXEuFxJX
361
+ // SIG // 9xkhEZ5cybCu7P2Rj1OHWh09o1hqGIWtkAjppIIzpgRQ
362
+ // SIG // qkBRcBZrD62Y+HkLM2MauHOB6j51LuIU+Gqqb1Gd6iDl
363
+ // SIG // 23clONqTS/d3J9Kz005XjlLDkG4L5UXbYRQgXqcX2+p2
364
+ // SIG // 7Kd33GWjwX027V1WvJy0LjAgasn7Hm7qp28I/pR0H6iq
365
+ // SIG // Yr6cneyglgAqI+/F1MGKstR8mJ0rU5nuE/byurtjvyk4
366
+ // SIG // X0TniR4koOOMphY/t+CHBRIT6IGirzTbE1ZuEG6qYQsp
367
+ // SIG // J68AcqqKwQix+m5ZUbSTCcJruxkXU0LCMdhzCqqYRLaU
368
+ // SIG // ptc97nwEnT64D4bECERZB2RrooS9SY4+C7twmwJoWtJT
369
+ // SIG // qwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFESEDhHavu0H
370
+ // SIG // bJabSYgkTaV4CdoFMB8GA1UdIwQYMBaAFJ+nFV0AXmJd
371
+ // SIG // g/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBSoFCGTmh0
372
+ // SIG // dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3Js
373
+ // SIG // L01pY3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAy
374
+ // SIG // MDEwKDEpLmNybDBsBggrBgEFBQcBAQRgMF4wXAYIKwYB
375
+ // SIG // BQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w
376
+ // SIG // a2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFt
377
+ // SIG // cCUyMFBDQSUyMDIwMTAoMSkuY3J0MAwGA1UdEwEB/wQC
378
+ // SIG // MAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0P
379
+ // SIG // AQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQDkVEQx
380
+ // SIG // q1UU257pX7INnE7Msoe2F74VVOzWTJCEwEGLBRD1YL0r
381
+ // SIG // 4gspa+Wqd5Gu+mM9Lf+pcbnMyOsO7V6vJ+FsVFIHI+cA
382
+ // SIG // IZzaK4Zw/JY2Km3JN+34IGCt/sBMC4T9Txgubb1ytMWK
383
+ // SIG // JlNZ1PpVzsvWUZ0oSPx2XRa8NrK4LbG1qMPTjLgA0uZY
384
+ // SIG // O6JK12tnWgjhp8bmg9SDvuuRO6r9jtFtLBo+wFnTozXa
385
+ // SIG // XsT67KS9ihHDjHiVZpJPztIGp4Rc8xwJ1o7TVp3lNdVk
386
+ // SIG // Ogcb/DqTdX2PcM0KIsnILzjiTPd6HeeRBnl8XxfG6Hy1
387
+ // SIG // ZVBN8yIpKEnnfvLOtTQz/sfUTMmtpsCv2LNcXbw5WUx5
388
+ // SIG // 3SCrLH5rt77v2vgRX9riKMnFU7wUKb/3a0SQ+vHqONNZ
389
+ // SIG // pAkRZJsv/gZkJUa8dq2qagLuZNDXr/olHQVCpl/4jmim
390
+ // SIG // e+b7kIO4QogQOcSJuWSFw0pV+O8MBWq9/wYE8J7TKva2
391
+ // SIG // ukEQHkv6P7mFpJr6rxPAKt/EJioE4gZ1kkv7lT3GhxMg
392
+ // SIG // K58hYeRvqnghpi+ODHxJxRIcXN7Gj5l4XujIUoAiBiVG
393
+ // SIG // QwO99+p0A/H5+Muud+C3pfi7k+ReWxbdJi8Hfh+RsRsz
394
+ // SIG // m2Zpv3N6RFrR79boO3Uvw363HdbJ9hOIJOFtS9Y3UQWy
395
+ // SIG // vccJDJsGPgh2XjErwTCCB3EwggVZoAMCAQICEzMAAAAV
396
+ // SIG // xedrngKbSZkAAAAAABUwDQYJKoZIhvcNAQELBQAwgYgx
397
+ // SIG // CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
398
+ // SIG // MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
399
+ // SIG // b3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jv
400
+ // SIG // c29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAy
401
+ // SIG // MDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIy
402
+ // SIG // NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
403
+ // SIG // bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
404
+ // SIG // FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMd
405
+ // SIG // TWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIi
406
+ // SIG // MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDk4aZM
407
+ // SIG // 57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/
408
+ // SIG // bErg4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1
409
+ // SIG // jRPPdzLAEBjoYH1qUoNEt6aORmsHFPPFdvWGUNzBRMhx
410
+ // SIG // XFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41
411
+ // SIG // JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP
412
+ // SIG // 1uyFVk3v3byNpOORj7I5LFGc6XBpDco2LXCOMcg1KL3j
413
+ // SIG // tIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF
414
+ // SIG // 50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg
415
+ // SIG // 3viSkR4dPf0gz3N9QZpGdc3EXzTdEonW/aUgfX782Z5F
416
+ // SIG // 37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOmTTd0
417
+ // SIG // lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlM
418
+ // SIG // jgK8QmguEOqEUUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLX
419
+ // SIG // pyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU2LlQ+QuJ
420
+ // SIG // YfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzF
421
+ // SIG // ER1y7435UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+e
422
+ // SIG // FnJpxq57t7c+auIurQIDAQABo4IB3TCCAdkwEgYJKwYB
423
+ // SIG // BAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS
424
+ // SIG // /mTEmr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0A
425
+ // SIG // XmJdg/Tl0mWnG1M1GelyMFwGA1UdIARVMFMwUQYMKwYB
426
+ // SIG // BAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93
427
+ // SIG // d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBv
428
+ // SIG // c2l0b3J5Lmh0bTATBgNVHSUEDDAKBggrBgEFBQcDCDAZ
429
+ // SIG // BgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8E
430
+ // SIG // BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAW
431
+ // SIG // gBTV9lbLj+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBN
432
+ // SIG // MEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
433
+ // SIG // cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAx
434
+ // SIG // MC0wNi0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsG
435
+ // SIG // AQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v
436
+ // SIG // cGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIz
437
+ // SIG // LmNydDANBgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4Swf
438
+ // SIG // ZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaTlz0xM7U518Jx
439
+ // SIG // Nj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6
440
+ // SIG // th542DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9I
441
+ // SIG // dQHZGN5tggz1bSNU5HhTdSRXud2f8449xvNo32X2pFaq
442
+ // SIG // 95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew
443
+ // SIG // VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7
444
+ // SIG // bj8sCXgU6ZGyqVvfSaN0DLzskYDSPeZKPmY7T7uG+jIa
445
+ // SIG // 2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzH
446
+ // SIG // VG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZ
447
+ // SIG // c9d/HltEAY5aGZFrDZ+kKNxnGSgkujhLmm77IVRrakUR
448
+ // SIG // R6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+Crvs
449
+ // SIG // QWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKi
450
+ // SIG // excdFYmNcP7ntdAoGokLjzbaukz5m/8K6TT4JDVnK+AN
451
+ // SIG // uOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEzfbzL6Xu/
452
+ // SIG // OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQd
453
+ // SIG // VTNYs6FwZvKhggLXMIICQAIBATCCAQChgdikgdUwgdIx
454
+ // SIG // CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
455
+ // SIG // MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
456
+ // SIG // b3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jv
457
+ // SIG // c29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEm
458
+ // SIG // MCQGA1UECxMdVGhhbGVzIFRTUyBFU046RkM0MS00QkQ0
459
+ // SIG // LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0
460
+ // SIG // YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVABabmWn6
461
+ // SIG // dG56SXSIX4gdXfKU6IZvoIGDMIGApH4wfDELMAkGA1UE
462
+ // SIG // BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
463
+ // SIG // BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
464
+ // SIG // b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRp
465
+ // SIG // bWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQAC
466
+ // SIG // BQDqJ2loMCIYDzIwMjQwNjI3MTIzMDMyWhgPMjAyNDA2
467
+ // SIG // MjgxMjMwMzJaMHcwPQYKKwYBBAGEWQoEATEvMC0wCgIF
468
+ // SIG // AOonaWgCAQAwCgIBAAICAo4CAf8wBwIBAAICEeAwCgIF
469
+ // SIG // AOoouugCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYB
470
+ // SIG // BAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDAN
471
+ // SIG // BgkqhkiG9w0BAQUFAAOBgQBQyeCEzACVqiOvZWAx7Wc8
472
+ // SIG // WHLpwEgKOi0Xe6Kd80RG9jyjcEP9urmBfJ6azBn/zVcd
473
+ // SIG // 7CBLrXZsFVz+i4bUP/TWpcmL0CdzuKWcWXQk/yrCGOK8
474
+ // SIG // JlyLJG2SRcmPIDNnpjR2EUnVtiVaZKMVRzNGFN3CMhNL
475
+ // SIG // sOjaZpjqkCITWLLaCjGCBA0wggQJAgEBMIGTMHwxCzAJ
476
+ // SIG // BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
477
+ // SIG // DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
478
+ // SIG // ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29m
479
+ // SIG // dCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB4pmZlfHc
480
+ // SIG // 4yDrAAEAAAHiMA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkq
481
+ // SIG // hkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcN
482
+ // SIG // AQkEMSIEIHJrYLTy/eLOfsOmH69zaUWFyX6N3N6jPIdm
483
+ // SIG // X+W1uxx9MIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCB
484
+ // SIG // vQQgK4kqShD9JrjGwVBEzg6C+HeS1OiP247nCGZDiQiP
485
+ // SIG // f/8wgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UE
486
+ // SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
487
+ // SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYw
488
+ // SIG // JAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg
489
+ // SIG // MjAxMAITMwAAAeKZmZXx3OMg6wABAAAB4jAiBCAq2C6R
490
+ // SIG // W0ycut78mQElOP3ebV+g6hNsN4Pb+nSNUOzoJzANBgkq
491
+ // SIG // hkiG9w0BAQsFAASCAgCQGVJGcly+npKFxSOig05HaQLm
492
+ // SIG // O2RZNSxZp/g6/bu/LqRDK0aAghBbYWcSDD/I8aLhzSwU
493
+ // SIG // o0BTutUik7qBAcquCkXzApd8YR/6mTZ+VsYmFxliVaqN
494
+ // SIG // M9pU5m1+earANRbycilg7Z5yOg2J5nlVFQKR6rnVM/Sk
495
+ // SIG // XNOcRGzMcm7LyB5EqIJzUfHWa/VgaYdvEFVE5H2VuQDS
496
+ // SIG // YMDELSs6TE+HlKX5FA82knu0+qQSHPGgQPfyxa/lmVbC
497
+ // SIG // JPcbkNQk57kMuFvNp1+Ja22quIgt+V4Hv42kNfcAz6RN
498
+ // SIG // YGIK0Omu6nOxkGsrdA6AljKUexXfVQxwH4Y2d8rsF/Ec
499
+ // SIG // bnJBMMrrMmoHp3Xz9OICeoXWa9EzgsSEmAGIkzL6uK4q
500
+ // SIG // 7/XCR0l3IhZeZ2xvyEunbzxVpnPk1dosUwQ8MKcIZ8HQ
501
+ // SIG // Vb5lArj9kCoRRQY8vkAAkCd5Pjdxxliakm2L76ACFhCR
502
+ // SIG // pziVkl9kSkJ2gTD1urgvd01ivlYG++XfiIFaDEeASwhS
503
+ // SIG // g1EUo1b+oCRnr6qUV1pBwowUSDPHcuvcEh/CfXn1unQa
504
+ // SIG // oRgZMzP0WHO/dUSqPriIgpPk1Ui5mILQ4OY38i9ExDo/
505
+ // SIG // pt1wgRAPGNWT+CrJcNSlhkoJymKPMy+AxSZigJ3wwW8M
506
+ // SIG // DcWiAkhWDG25SYiJQvahB8KnpLbtxQ2hLRO1wvXz2A==
507
+ // SIG // End signature block
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../packages/tools/gulp-ps-code/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/* eslint-disable no-console */\r\n'use strict';\r\n\r\nimport Path from 'path';\r\nimport pluginError from 'plugin-error';\r\nimport through2 from 'through2';\r\nimport Vinyl from 'vinyl';\r\nimport * as util from '../utilities';\r\nimport * as PsCode from './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.substring(file.cwd.length + 1);\r\n relPath = relPath.substring(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.substring(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 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":["/* eslint-disable no-console */\r\n'use strict';\r\n\r\nimport Path from 'path';\r\nimport pluginError from 'plugin-error';\r\nimport through2 from 'through2';\r\nimport Vinyl from 'vinyl';\r\nimport * as util from '../utilities';\r\nimport * as PsCode from './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.substring(file.cwd.length + 1);\r\n relPath = relPath.substring(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.substring(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 let lines = file.contents.toString().split('\\n');\r\n const newLines = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n const line = lines[i];\r\n if (line.indexOf('# SIG # Begin signature block') >= 0) {\r\n break;\r\n }\r\n\r\n newLines.push(line);\r\n }\r\n\r\n const data: string = newLines.join('\\n');\r\n if (options.validate) {\r\n // validate non-ascii code presence.\r\n 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 this.push(tsFile);\r\n cb();\r\n });\r\n}\r\n\r\nmodule.exports = gulpPsCode;\r\n"]}