@microsoft/windows-admin-center-sdk 4.167.0 → 4.260.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 (617) 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/copilot/copilot.component.mjs +55 -0
  22. package/angular/esm2020/src/controls/copilot/copilot.module.mjs +25 -0
  23. package/angular/esm2020/src/controls/copilot/index.mjs +3 -0
  24. package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -9
  25. package/angular/esm2020/src/controls/details/details.component.mjs +62 -25
  26. package/angular/esm2020/src/controls/details/details.module.mjs +5 -1
  27. package/angular/esm2020/src/controls/dialog/dialog.component.mjs +35 -23
  28. package/angular/esm2020/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.mjs +59 -0
  29. package/angular/esm2020/src/controls/form/form-field/array/array-form-field.component.mjs +24 -35
  30. package/angular/esm2020/src/controls/form/form-field/form-field-accessibility-manager-base.service.mjs +105 -0
  31. package/angular/esm2020/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.mjs +38 -0
  32. package/angular/esm2020/src/controls/form/form-field/list/list-form-field.component.mjs +56 -38
  33. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.mjs +54 -0
  34. package/angular/esm2020/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.mjs +67 -67
  35. package/angular/esm2020/src/controls/form/forms.module.mjs +19 -2
  36. package/angular/esm2020/src/controls/guided-panel/guided-pane/guided-pane.component.mjs +12 -3
  37. package/angular/esm2020/src/controls/index.mjs +4 -1
  38. package/angular/esm2020/src/controls/page-alert-bar/page-alert-bar.component.mjs +4 -4
  39. package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
  40. package/angular/esm2020/src/controls/summary/index.mjs +4 -0
  41. package/angular/esm2020/src/controls/summary/summary-item.mjs +83 -0
  42. package/angular/esm2020/src/controls/summary/summary.component.mjs +391 -0
  43. package/angular/esm2020/src/controls/summary/summary.module.mjs +37 -0
  44. package/angular/esm2020/src/controls/summary-group/index.mjs +3 -0
  45. package/angular/esm2020/src/controls/summary-group/summary-group.component.mjs +84 -0
  46. package/angular/esm2020/src/controls/summary-group/summary-group.module.mjs +33 -0
  47. package/angular/esm2020/src/controls/wizard/models/wizard-step-snap-in-output.mjs +1 -1
  48. package/angular/esm2020/src/controls/wizard-lite/wizard-navigation-button/wizard-navigation-button.component.mjs +3 -3
  49. package/angular/esm2020/src/data/extension-broker/snap-in-listener.mjs +80 -0
  50. package/angular/esm2020/src/data/index.mjs +2 -1
  51. package/angular/esm2020/src/generated/strings.mjs +1 -1
  52. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +1798 -597
  53. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  54. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +1679 -597
  55. package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
  56. package/angular/src/controls/accordion/accordion-panel/accordion-panel.component.d.ts +13 -4
  57. package/angular/src/controls/copilot/copilot.component.d.ts +31 -0
  58. package/angular/src/controls/copilot/copilot.module.d.ts +8 -0
  59. package/angular/src/controls/copilot/index.d.ts +2 -0
  60. package/angular/src/controls/details/details.component.d.ts +5 -1
  61. package/angular/src/controls/details/details.module.d.ts +3 -2
  62. package/angular/src/controls/dialog/dialog.component.d.ts +5 -1
  63. package/angular/src/controls/form/form-field/array/array-form-field-accessibility-manager.service.d.ts +38 -0
  64. package/angular/src/controls/form/form-field/array/array-form-field.component.d.ts +3 -1
  65. package/angular/src/controls/form/form-field/form-field-accessibility-manager-base.service.d.ts +37 -0
  66. package/angular/src/controls/form/form-field/list/list-form-field-accessibility-manager.service.d.ts +25 -0
  67. package/angular/src/controls/form/form-field/list/list-form-field.component.d.ts +12 -2
  68. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field-accessibility-manager.service.d.ts +37 -0
  69. package/angular/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.d.ts +12 -8
  70. package/angular/src/controls/guided-panel/guided-pane/guided-pane.component.d.ts +4 -0
  71. package/angular/src/controls/index.d.ts +3 -0
  72. package/angular/src/controls/summary/index.d.ts +3 -0
  73. package/angular/src/controls/summary/summary-item.d.ts +105 -0
  74. package/angular/src/controls/summary/summary.component.d.ts +82 -0
  75. package/angular/src/controls/summary/summary.module.d.ts +11 -0
  76. package/angular/src/controls/summary-group/index.d.ts +3 -0
  77. package/angular/src/controls/summary-group/summary-group.component.d.ts +57 -0
  78. package/angular/src/controls/summary-group/summary-group.module.d.ts +10 -0
  79. package/angular/src/controls/wizard/models/wizard-step-snap-in-output.d.ts +1 -1
  80. package/{core → angular/src}/data/extension-broker/snap-in-listener.d.ts +49 -46
  81. package/angular/src/data/index.d.ts +1 -0
  82. package/angular/src/generated/strings.d.ts +11 -0
  83. package/core/async/cancellation.js +316 -0
  84. package/core/async/index.js +312 -0
  85. package/core/async/progress.js +312 -0
  86. package/core/azure/azure-constants.js +316 -0
  87. package/core/azure/azure-logging.js +316 -0
  88. package/core/azure/azure-manager.js +316 -0
  89. package/core/azure/models/aadAppConfig-data.js +312 -0
  90. package/core/azure/models/azureArcStatusEnum.js +315 -0
  91. package/core/azure/models/azureTokenResult-data.js +315 -0
  92. package/core/azure/resources/deployment-operation-request-body.js +316 -0
  93. package/core/azure/resources/deployment-operation-response.js +312 -0
  94. package/core/azure/resources/location-data.js +316 -0
  95. package/core/azure/resources/resource-group-data.js +316 -0
  96. package/core/azure/resources/subscription-data.js +316 -0
  97. package/core/base/data-store/browser-storage-data-store.js +312 -0
  98. package/core/base/data-store/cached-data-store.js +316 -0
  99. package/core/base/data-store/data-store.js +312 -0
  100. package/core/base/data-store/local-data-store.js +312 -0
  101. package/core/base/data-store/memory-data-store.js +312 -0
  102. package/core/base/data-store/session-data-store.js +316 -0
  103. package/core/base/date/date-like.js +315 -0
  104. package/core/base/date/date-range.js +316 -0
  105. package/core/base/date/date-time.js +312 -0
  106. package/core/base/date/date-type.js +312 -0
  107. package/core/base/date/time-unit.js +316 -0
  108. package/core/base/decorators/base.js +316 -0
  109. package/core/base/decorators/debounce.decorators.js +316 -0
  110. package/core/base/decorators/delay.decorator.js +312 -0
  111. package/core/base/decorators/yield.decorator.js +312 -0
  112. package/core/base/environment.js +316 -0
  113. package/core/base/json.js +316 -0
  114. package/core/base/msft-sme.mock.js +315 -0
  115. package/core/base/polyfills/array.js +316 -0
  116. package/core/base/polyfills/string.js +316 -0
  117. package/core/base/rxjs-lifetime-manager.js +312 -0
  118. package/core/base/utilities.js +312 -0
  119. package/core/base/versioned-object.js +316 -0
  120. package/core/copilot/copilot-extension-service.d.ts +49 -0
  121. package/core/copilot/copilot-extension-service.d.ts.map +1 -0
  122. package/core/copilot/copilot-extension-service.js +446 -0
  123. package/core/copilot/copilot-extension-service.js.map +1 -0
  124. package/core/copilot/copilot-iframe/iframe-broker-service.d.ts +19 -0
  125. package/core/copilot/copilot-iframe/iframe-broker-service.d.ts.map +1 -0
  126. package/core/copilot/copilot-iframe/iframe-broker-service.js +344 -0
  127. package/core/copilot/copilot-iframe/iframe-broker-service.js.map +1 -0
  128. package/core/copilot/copilot-iframe/iframe-child-service.d.ts +15 -0
  129. package/core/copilot/copilot-iframe/iframe-child-service.d.ts.map +1 -0
  130. package/core/copilot/copilot-iframe/iframe-child-service.js +337 -0
  131. package/core/copilot/copilot-iframe/iframe-child-service.js.map +1 -0
  132. package/core/copilot/copilot-iframe/iframe-message-payload.d.ts +4 -0
  133. package/core/copilot/copilot-iframe/iframe-message-payload.d.ts.map +1 -0
  134. package/core/copilot/copilot-iframe/iframe-message-payload.js +319 -0
  135. package/core/copilot/copilot-iframe/iframe-message-payload.js.map +1 -0
  136. package/core/copilot/copilot-iframe/iframe-message-type.d.ts +4 -0
  137. package/core/copilot/copilot-iframe/iframe-message-type.d.ts.map +1 -0
  138. package/core/copilot/copilot-iframe/iframe-message-type.js +319 -0
  139. package/core/copilot/copilot-iframe/iframe-message-type.js.map +1 -0
  140. package/core/copilot/copilot-iframe/iframe-message.d.ts +6 -0
  141. package/core/copilot/copilot-iframe/iframe-message.d.ts.map +1 -0
  142. package/core/copilot/copilot-iframe/iframe-message.js +315 -0
  143. package/core/copilot/copilot-iframe/iframe-message.js.map +1 -0
  144. package/core/data/accessibility-manager.js +316 -0
  145. package/core/data/active-directory/active-directory.js +312 -0
  146. package/core/data/active-directory/models/account-info.js +316 -0
  147. package/core/data/active-directory/models/active-directory-search-options.js +312 -0
  148. package/core/data/active-directory/models/search-type.js +315 -0
  149. package/core/data/animation.js +312 -0
  150. package/core/data/app-context.js +316 -0
  151. package/core/data/asset-manager.js +316 -0
  152. package/core/data/base64-array-buffer.js +312 -0
  153. package/core/data/batch-connection.js +316 -0
  154. package/core/data/cim-connection.js +312 -0
  155. package/core/data/cim-stream.js +312 -0
  156. package/core/data/cim.js +316 -0
  157. package/core/data/column-picker.js +315 -0
  158. package/core/data/cookie.js +316 -0
  159. package/core/data/core-environment.js +312 -0
  160. package/core/data/crypto.js +312 -0
  161. package/core/data/deployment-share.js +316 -0
  162. package/core/data/disposable.js +316 -0
  163. package/core/data/electron.js +316 -0
  164. package/core/data/error-extended.js +316 -0
  165. package/core/data/extension-broker/dialog-listener.js +312 -0
  166. package/core/data/extension-broker/extension-broker.js +316 -0
  167. package/core/data/extension-broker/extension-listener.js +316 -0
  168. package/core/data/extension-broker/model/extension-broker-request-payload.js +316 -0
  169. package/core/data/extension-broker/model/extension-broker-response-error.js +315 -0
  170. package/core/data/extension-broker/model/extension-broker-response-payload.js +316 -0
  171. package/core/data/extension-broker/model/extension-entries.js +315 -0
  172. package/core/data/extension-broker/model/extension-instance.js +316 -0
  173. package/core/data/extension-broker/model/extension-rect.js +316 -0
  174. package/core/data/extension-broker/model/extension-search-options.js +316 -0
  175. package/core/data/extension-broker/service-listener.js +315 -0
  176. package/core/data/extension-broker/worker-listener.js +315 -0
  177. package/core/data/extension-broker/worker-set.js +316 -0
  178. package/core/data/file-transfer.js +316 -0
  179. package/core/data/gateway-connection.js +316 -0
  180. package/core/data/gateway-status.js +316 -0
  181. package/core/data/gateway-url-builder.js +316 -0
  182. package/core/data/gateway-url-translator.js +316 -0
  183. package/core/data/gateway-urls.js +316 -0
  184. package/core/data/globalization.js +315 -0
  185. package/core/data/http-constants.js +316 -0
  186. package/core/data/http.js +316 -0
  187. package/core/data/jobs/jobs-manager.js +316 -0
  188. package/core/data/jobs/models/job-credentials.js +312 -0
  189. package/core/data/jobs/models/job-node.js +316 -0
  190. package/core/data/jobs/models/job-paginated-response.js +312 -0
  191. package/core/data/jobs/models/job-pagination-options.js +316 -0
  192. package/core/data/jobs/models/job.js +316 -0
  193. package/core/data/jobs/models/node-job.js +316 -0
  194. package/core/data/jobs/models/powershell-job.js +312 -0
  195. package/core/data/language.js +312 -0
  196. package/core/data/lifetime-data.js +316 -0
  197. package/core/data/localization-manager.js +316 -0
  198. package/core/data/native-q.js +312 -0
  199. package/core/data/net.d.ts.map +1 -1
  200. package/core/data/net.js +317 -1
  201. package/core/data/net.js.map +1 -1
  202. package/core/data/node-connection.d.ts.map +1 -1
  203. package/core/data/node-connection.js +316 -0
  204. package/core/data/node-connection.js.map +1 -1
  205. package/core/data/node-extension-install.js +316 -0
  206. package/core/data/powershell-alternate.js +316 -0
  207. package/core/data/powershell-batch.js +312 -0
  208. package/core/data/powershell-connection.js +312 -0
  209. package/core/data/powershell-crypto.js +316 -0
  210. package/core/data/powershell-stream.js +315 -0
  211. package/core/data/powershell.js +316 -0
  212. package/core/data/query-cache.js +312 -0
  213. package/core/data/resource-cache.js +312 -0
  214. package/core/data/schedule-reboot.js +315 -0
  215. package/core/data/settings-manager.js +316 -0
  216. package/core/data/settings-manger.mock.js +315 -0
  217. package/core/data/sme-extension.js +312 -0
  218. package/core/data/ssh-stream.js +316 -0
  219. package/core/data/units.js +312 -0
  220. package/core/data/uri-builder.js +316 -0
  221. package/core/data/wdac-operations.js +315 -0
  222. package/core/data/websocket-stream.js +316 -0
  223. package/core/diagnostics/error-monitor.js +316 -0
  224. package/core/diagnostics/log-level.js +316 -0
  225. package/core/diagnostics/log-record.js +312 -0
  226. package/core/diagnostics/logging-constants.js +316 -0
  227. package/core/diagnostics/logging.js +316 -0
  228. package/core/diagnostics/logging.mock.js +316 -0
  229. package/core/diagnostics/sme-web-telemetry-models.js +316 -0
  230. package/core/diagnostics/sme-web-telemetry.d.ts +1 -2
  231. package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
  232. package/core/diagnostics/sme-web-telemetry.js +339 -15
  233. package/core/diagnostics/sme-web-telemetry.js.map +1 -1
  234. package/core/diagnostics/telemetry-control-type.js +316 -0
  235. package/core/diagnostics/telemetry-options.js +316 -0
  236. package/core/diagnostics/telemetry-record.js +316 -0
  237. package/core/dom/dom.js +316 -0
  238. package/core/frame/frame-connection.js +316 -0
  239. package/core/frame/frame-connection.mock.js +316 -0
  240. package/core/frame/shell-navigation-connection.js +316 -0
  241. package/core/generated/powershell-scripts.d.ts.map +1 -1
  242. package/core/generated/powershell-scripts.js +313 -1
  243. package/core/generated/powershell-scripts.js.map +1 -1
  244. package/core/generated/strings.js +312 -0
  245. package/core/host/host-core-manager.js +316 -0
  246. package/core/host/host-core-message-type.js +316 -0
  247. package/core/host/host-core-messages.js +312 -0
  248. package/core/index.d.ts +48 -25
  249. package/core/index.d.ts.map +1 -1
  250. package/core/index.js +351 -18
  251. package/core/index.js.map +1 -1
  252. package/core/manifest/environment-modules.d.ts +3 -1
  253. package/core/manifest/environment-modules.d.ts.map +1 -1
  254. package/core/manifest/environment-modules.js +314 -0
  255. package/core/manifest/environment-modules.js.map +1 -1
  256. package/core/manifest/manifest-loader.js +312 -0
  257. package/core/manifest/module-schema.json +3 -1
  258. package/core/notification/client-notification-instance.js +316 -0
  259. package/core/notification/client-notification.js +316 -0
  260. package/core/notification/notification-connection.js +316 -0
  261. package/core/notification/notification-link-type.js +312 -0
  262. package/core/notification/notification-manager.js +312 -0
  263. package/core/notification/notification-message.js +312 -0
  264. package/core/notification/notification-state.js +316 -0
  265. package/core/notification/notification.js +312 -0
  266. package/core/notification/powershell-notification.js +316 -0
  267. package/core/notification/socket-signalr.js +312 -0
  268. package/core/notification/work-item-connection.js +312 -0
  269. package/core/notification/work-item-manager.js +316 -0
  270. package/core/notification/work-item-request.js +315 -0
  271. package/core/performance/performance-profile-data-type.js +315 -0
  272. package/core/performance/performance-profile-data.js +315 -0
  273. package/core/performance/performance-profile-database.js +315 -0
  274. package/core/performance/performance-profile-record.js +316 -0
  275. package/core/performance/performance-profile.d.ts.map +1 -1
  276. package/core/performance/performance-profile.js +325 -9
  277. package/core/performance/performance-profile.js.map +1 -1
  278. package/core/performance/performance-tracker.js +312 -0
  279. package/core/polyfills.js +316 -0
  280. package/core/resources/scripts/public/crypto/Get-DecryptedDataFromNode.ps1 +219 -0
  281. package/core/resources/scripts/public/crypto/Get-EncryptionJWKOnNode.ps1 +218 -0
  282. package/core/resources/scripts/public/inventory/Get-CimWin32LogicalDisk.ps1 +218 -0
  283. package/core/resources/scripts/public/inventory/Get-CimWin32NetworkAdapter.ps1 +216 -0
  284. package/core/resources/scripts/public/inventory/Get-CimWin32PhysicalMemory.ps1 +216 -0
  285. package/core/resources/scripts/public/inventory/Get-CimWin32Processor.ps1 +218 -0
  286. package/core/resources/scripts/public/inventory/Get-ClusterInventory.ps1 +218 -0
  287. package/core/resources/scripts/public/inventory/Get-ClusterNodes.ps1 +218 -0
  288. package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +221 -1
  289. package/core/rpc/alive/rpc-alive-client.js +312 -0
  290. package/core/rpc/alive/rpc-alive-handler.js +312 -0
  291. package/core/rpc/alive/rpc-alive-model.js +316 -0
  292. package/core/rpc/alive/rpc-alive-subject-server.js +312 -0
  293. package/core/rpc/alive/rpc-observable-alive-client.js +316 -0
  294. package/core/rpc/alive/rpc-observable-alive-model.js +315 -0
  295. package/core/rpc/alive/rpc-observable-alive-server.js +315 -0
  296. package/core/rpc/azure/rpc-azure-model.js +312 -0
  297. package/core/rpc/azure/rpc-azure-request-client.js +312 -0
  298. package/core/rpc/azure/rpc-azure-request-handler.js +316 -0
  299. package/core/rpc/azure/rpc-azure-request-subject-server.js +316 -0
  300. package/core/rpc/azure/rpc-azure-response-client.js +316 -0
  301. package/core/rpc/azure/rpc-azure-response-handler.js +312 -0
  302. package/core/rpc/copilot/rpc-observable-copilot-client.d.ts +24 -0
  303. package/core/rpc/copilot/rpc-observable-copilot-client.d.ts.map +1 -0
  304. package/core/rpc/copilot/rpc-observable-copilot-client.js +343 -0
  305. package/core/rpc/copilot/rpc-observable-copilot-client.js.map +1 -0
  306. package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts +24 -0
  307. package/core/rpc/copilot/rpc-observable-copilot-config-client.d.ts.map +1 -0
  308. package/core/rpc/copilot/rpc-observable-copilot-config-client.js +343 -0
  309. package/core/rpc/copilot/rpc-observable-copilot-config-client.js.map +1 -0
  310. package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts +14 -0
  311. package/core/rpc/copilot/rpc-observable-copilot-config-server.d.ts.map +1 -0
  312. package/core/rpc/copilot/rpc-observable-copilot-config-server.js +332 -0
  313. package/core/rpc/copilot/rpc-observable-copilot-config-server.js.map +1 -0
  314. package/core/rpc/copilot/rpc-observable-copilot-model.d.ts +55 -0
  315. package/core/rpc/copilot/rpc-observable-copilot-model.d.ts.map +1 -0
  316. package/core/rpc/copilot/rpc-observable-copilot-model.js +334 -0
  317. package/core/rpc/copilot/rpc-observable-copilot-model.js.map +1 -0
  318. package/core/rpc/copilot/rpc-observable-copilot-server.d.ts +14 -0
  319. package/core/rpc/copilot/rpc-observable-copilot-server.d.ts.map +1 -0
  320. package/core/rpc/copilot/rpc-observable-copilot-server.js +333 -0
  321. package/core/rpc/copilot/rpc-observable-copilot-server.js.map +1 -0
  322. package/core/rpc/credssp/rpc-credssp-model.js +315 -0
  323. package/core/rpc/credssp/rpc-credssp-request-client.js +316 -0
  324. package/core/rpc/credssp/rpc-credssp-request-handler.js +316 -0
  325. package/core/rpc/credssp/rpc-credssp-request-subject-server.js +316 -0
  326. package/core/rpc/credssp/rpc-credssp-response-client.js +316 -0
  327. package/core/rpc/credssp/rpc-credssp-response-handler.js +316 -0
  328. package/core/rpc/dialog/rpc-dialog-client.js +312 -0
  329. package/core/rpc/dialog/rpc-dialog-handler.js +315 -0
  330. package/core/rpc/dialog/rpc-dialog-model.js +316 -0
  331. package/core/rpc/dialog/rpc-dialog-subject-server.js +316 -0
  332. package/core/rpc/electron/rpc-electron-model.js +316 -0
  333. package/core/rpc/electron/rpc-electron-request-client.js +316 -0
  334. package/core/rpc/electron/rpc-electron-request-handler.js +315 -0
  335. package/core/rpc/electron/rpc-electron-request-subject-server.js +316 -0
  336. package/core/rpc/electron/rpc-electron-response-client.js +312 -0
  337. package/core/rpc/electron/rpc-electron-response-handler.js +315 -0
  338. package/core/rpc/elevate/rpc-observable-elevate-client.js +315 -0
  339. package/core/rpc/elevate/rpc-observable-elevate-model.js +312 -0
  340. package/core/rpc/elevate/rpc-observable-elevate-server.js +312 -0
  341. package/core/rpc/error-monitor/rpc-observable-error-monitor-client.js +316 -0
  342. package/core/rpc/error-monitor/rpc-observable-error-monitor-model.js +316 -0
  343. package/core/rpc/error-monitor/rpc-observable-error-monitor-server.js +312 -0
  344. package/core/rpc/extension-broker/rpc-extension-broker-model.js +312 -0
  345. package/core/rpc/extension-broker/rpc-extension-broker-module-request-subject-server.js +312 -0
  346. package/core/rpc/extension-broker/rpc-extension-broker-request-client.js +312 -0
  347. package/core/rpc/extension-broker/rpc-extension-broker-request-handler.js +312 -0
  348. package/core/rpc/extension-broker/rpc-extension-broker-request-subject-server.js +312 -0
  349. package/core/rpc/extension-broker/rpc-extension-broker-response-client.js +312 -0
  350. package/core/rpc/extension-broker/rpc-extension-broker-response-handler.js +312 -0
  351. package/core/rpc/extension-data/rpc-observable-extension-data-client.js +316 -0
  352. package/core/rpc/extension-data/rpc-observable-extension-data-model.js +312 -0
  353. package/core/rpc/extension-data/rpc-observable-extension-data-server.js +315 -0
  354. package/core/rpc/forward/rpc-forward-auto-client.js +315 -0
  355. package/core/rpc/forward/rpc-forward-down-client.js +315 -0
  356. package/core/rpc/forward/rpc-forward-down-handler.js +316 -0
  357. package/core/rpc/forward/rpc-forward-model.js +316 -0
  358. package/core/rpc/forward/rpc-forward-up-client.js +312 -0
  359. package/core/rpc/forward/rpc-forward-up-handler.js +316 -0
  360. package/core/rpc/forward/rpc-forward-up-subject-server.js +316 -0
  361. package/core/rpc/log/rpc-log-client.js +316 -0
  362. package/core/rpc/log/rpc-log-handler.js +312 -0
  363. package/core/rpc/log/rpc-log-model.js +316 -0
  364. package/core/rpc/log/rpc-log-subject-server.js +316 -0
  365. package/core/rpc/notification/rpc-notification-client.js +316 -0
  366. package/core/rpc/notification/rpc-notification-handler.js +312 -0
  367. package/core/rpc/notification/rpc-notification-model.js +316 -0
  368. package/core/rpc/notification/rpc-notification-subject-server.js +312 -0
  369. package/core/rpc/overlay/rpc-overlay-close-client.js +312 -0
  370. package/core/rpc/overlay/rpc-overlay-close-handler.js +316 -0
  371. package/core/rpc/overlay/rpc-overlay-model.js +312 -0
  372. package/core/rpc/overlay/rpc-overlay-open-client.js +312 -0
  373. package/core/rpc/overlay/rpc-overlay-open-handler.js +316 -0
  374. package/core/rpc/overlay/rpc-overlay-open-subject-server.js +316 -0
  375. package/core/rpc/performance/rpc-observable-performance-client.js +315 -0
  376. package/core/rpc/performance/rpc-observable-performance-config-client.js +312 -0
  377. package/core/rpc/performance/rpc-observable-performance-config-server.js +316 -0
  378. package/core/rpc/performance/rpc-observable-performance-model.js +312 -0
  379. package/core/rpc/performance/rpc-observable-performance-server.js +312 -0
  380. package/core/rpc/report/rpc-report-client.js +316 -0
  381. package/core/rpc/report/rpc-report-handler.js +315 -0
  382. package/core/rpc/report/rpc-report-model.js +315 -0
  383. package/core/rpc/report/rpc-report-subject-server.js +312 -0
  384. package/core/rpc/rpc-base.d.ts +4 -0
  385. package/core/rpc/rpc-base.d.ts.map +1 -1
  386. package/core/rpc/rpc-base.js +316 -0
  387. package/core/rpc/rpc-base.js.map +1 -1
  388. package/core/rpc/rpc-channel.js +316 -0
  389. package/core/rpc/rpc-forwarder.js +312 -0
  390. package/core/rpc/rpc-inbound-client.js +315 -0
  391. package/core/rpc/rpc-inbound.js +312 -0
  392. package/core/rpc/rpc-manager.js +316 -0
  393. package/core/rpc/rpc-module-subject-server.js +316 -0
  394. package/core/rpc/rpc-observable-client.js +316 -0
  395. package/core/rpc/rpc-observable-request.js +316 -0
  396. package/core/rpc/rpc-observable-result.js +316 -0
  397. package/core/rpc/rpc-observable-server.js +316 -0
  398. package/core/rpc/rpc-outbound-client.js +316 -0
  399. package/core/rpc/rpc-outbound.js +315 -0
  400. package/core/rpc/rpc-subject-server.js +316 -0
  401. package/core/rpc/rpc.js +316 -0
  402. package/core/rpc/seek/rpc-seek-client.js +316 -0
  403. package/core/rpc/seek/rpc-seek-handler.js +315 -0
  404. package/core/rpc/seek/rpc-seek-model.js +315 -0
  405. package/core/rpc/settings/rpc-settings-client.js +312 -0
  406. package/core/rpc/settings/rpc-settings-handler.js +315 -0
  407. package/core/rpc/settings/rpc-settings-model.js +315 -0
  408. package/core/rpc/settings/rpc-settings-subject-server.js +312 -0
  409. package/core/rpc/shell-navigate/rpc-shell-navigate-client.js +316 -0
  410. package/core/rpc/shell-navigate/rpc-shell-navigate-handler.js +316 -0
  411. package/core/rpc/shell-navigate/rpc-shell-navigate-model.js +315 -0
  412. package/core/rpc/shell-navigate/rpc-shell-navigate-subject-server.js +315 -0
  413. package/core/rpc/sme-extension/rpc-sme-extension-model.js +316 -0
  414. package/core/rpc/sme-extension/rpc-sme-extension-request-client.js +316 -0
  415. package/core/rpc/sme-extension/rpc-sme-extension-request-handler.js +312 -0
  416. package/core/rpc/sme-extension/rpc-sme-extension-request-subject-server.js +312 -0
  417. package/core/rpc/sme-extension/rpc-sme-extension-response-client.js +316 -0
  418. package/core/rpc/sme-extension/rpc-sme-extension-response-handler.js +316 -0
  419. package/core/rpc/telemetry/rpc-telemetry-client.js +312 -0
  420. package/core/rpc/telemetry/rpc-telemetry-handler.js +312 -0
  421. package/core/rpc/telemetry/rpc-telemetry-model.js +312 -0
  422. package/core/rpc/telemetry/rpc-telemetry-subject-server.js +316 -0
  423. package/core/rpc/update-data/rpc-update-data-client.js +316 -0
  424. package/core/rpc/update-data/rpc-update-data-handler.js +312 -0
  425. package/core/rpc/update-data/rpc-update-data-model.js +312 -0
  426. package/core/rpc/update-data/rpc-update-data-subject-server.js +312 -0
  427. package/core/rpc/update-theme/rpc-observable-update-theme-client.js +316 -0
  428. package/core/rpc/update-theme/rpc-observable-update-theme-model.js +315 -0
  429. package/core/rpc/update-theme/rpc-observable-update-theme-server.js +316 -0
  430. package/core/rpc/work-item/rpc-work-item-client.js +315 -0
  431. package/core/rpc/work-item/rpc-work-item-handler.js +312 -0
  432. package/core/rpc/work-item/rpc-work-item-model.js +316 -0
  433. package/core/rpc/work-item/rpc-work-item-subject-server.js +316 -0
  434. package/core/rpc/work-item-find/rpc-work-item-find-client.js +312 -0
  435. package/core/rpc/work-item-find/rpc-work-item-find-handler.js +315 -0
  436. package/core/rpc/work-item-find/rpc-work-item-find-model.js +316 -0
  437. package/core/rpc/work-item-find/rpc-work-item-find-subject-server.js +312 -0
  438. package/core/security/active-connection.js +315 -0
  439. package/core/security/authorization-manager.js +315 -0
  440. package/core/security/connection-manager-settings/common-connection-settings.js +316 -0
  441. package/core/security/connection-manager-settings/connection-settings.js +315 -0
  442. package/core/security/connection-manager.js +316 -0
  443. package/core/security/connection-stream.js +316 -0
  444. package/core/security/connection.js +312 -0
  445. package/core/security/credssp-manager.js +315 -0
  446. package/core/security/sign-on-manager.js +316 -0
  447. package/core/security/tag-manager.js +315 -0
  448. package/core/security/tool-condition-validator.js +316 -0
  449. package/core/security/tool-connection-query.js +312 -0
  450. package/core/security/user-principal.js +312 -0
  451. package/core/shared/cluster-inventory/cluster-inventory-cache.js +316 -0
  452. package/core/shared/cluster-inventory/cluster-inventory.js +315 -0
  453. package/core/shared/cluster-inventory/cluster-node-inventory.js +316 -0
  454. package/core/shared/gateway-inventory/gateway-inventory-cache.js +316 -0
  455. package/core/shared/gateway-inventory/gateway-inventory-detail-cache.js +316 -0
  456. package/core/shared/gateway-inventory/gateway-inventory-detail.js +316 -0
  457. package/core/shared/gateway-inventory/gateway-inventory.js +316 -0
  458. package/core/shared/inventory-query-caches.js +316 -0
  459. package/core/shared/server-inventory/server-inventory-cache.d.ts.map +1 -1
  460. package/core/shared/server-inventory/server-inventory-cache.js +313 -0
  461. package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
  462. package/core/shared/server-inventory/server-inventory-detail-cache.js +315 -0
  463. package/core/shared/server-inventory/server-inventory-detail.js +316 -0
  464. package/core/shared/server-inventory/server-inventory.d.ts +8 -0
  465. package/core/shared/server-inventory/server-inventory.d.ts.map +1 -1
  466. package/core/shared/server-inventory/server-inventory.js +320 -0
  467. package/core/shared/server-inventory/server-inventory.js.map +1 -1
  468. package/core/shared/shared-cache.js +312 -0
  469. package/core/shared/tool-inventory/tool-inventory-cache.js +312 -0
  470. package/core/shared/tool-inventory/tool-inventory.js +316 -0
  471. package/core/special.js +316 -0
  472. package/core/test-utilities/accessibility-tester.js +316 -0
  473. package/core/test-utilities/console.mock.js +316 -0
  474. package/core/test-utilities/jasmine-axe-matcher.js +316 -0
  475. package/core/test-utilities/wait-async.js +315 -0
  476. package/core/test.js +312 -0
  477. package/core/testing.js +316 -0
  478. package/core/workflow/persistent-local-storage.js +316 -0
  479. package/core/workflow/persistent-work-item-apply-state.js +316 -0
  480. package/core/workflow/persistent-work-item-state.js +316 -0
  481. package/core/workflow/persistent-work-item.js +316 -0
  482. package/core/workflow/persistent-workflow-builder.js +316 -0
  483. package/core/workflow/persistent-workflow-context.js +315 -0
  484. package/core/workflow/persistent-workflow-runner.js +316 -0
  485. package/core/workflow/persistent-workflow-snapshot.js +315 -0
  486. package/core/workflow/persistent-workflow-store.js +312 -0
  487. package/core/workflow/persistent-workflow.js +312 -0
  488. package/package.json +7 -6
  489. package/styles/css/main-v2.css +1 -1
  490. package/styles/fonts/SegoeUI/Bold/SegoeUIBold-5.27.woff +0 -0
  491. package/styles/fonts/SegoeUI/Light/SegoeUILight-5.27.woff +0 -0
  492. package/styles/fonts/SegoeUI/Normal/SegoeUI-5.27.woff +0 -0
  493. package/styles/fonts/SegoeUI/SemiBold/SegoeUISemiBold-5.27.woff +0 -0
  494. package/styles/fonts/SegoeUI/SemiLight/SegoeUISemiLight-5.27.woff +0 -0
  495. package/styles/fonts/ServMDL2/ServMDL2-4.66.woff +0 -0
  496. package/tools/build/webpack/index-html.transform.js +312 -0
  497. package/tools/build/webpack/shell.index-html.transform.js +316 -0
  498. package/tools/build/webpack/shell.webpack.config.js +312 -0
  499. package/tools/build/webpack/webpack.config.js +312 -0
  500. package/tools/code-formatter/.eslintrc.base.json +2 -1
  501. package/tools/code-formatter/lint.js +316 -0
  502. package/tools/code-formatter/utilities.d.ts.map +1 -1
  503. package/tools/code-formatter/utilities.js +313 -1
  504. package/tools/code-formatter/utilities.js.map +1 -1
  505. package/tools/gulp-doc-generator/index.js +316 -0
  506. package/tools/gulp-manifest-resource/index.js +315 -0
  507. package/tools/gulp-manifest-validator/index.js +316 -0
  508. package/tools/gulp-merge-json-in-folders/index.js +316 -0
  509. package/tools/gulp-merge-json-in-folders/json-merge.js +316 -0
  510. package/tools/gulp-ps-cim/index.js +316 -0
  511. package/tools/gulp-ps-code/index.d.ts.map +1 -1
  512. package/tools/gulp-ps-code/index.js +326 -2
  513. package/tools/gulp-ps-code/index.js.map +1 -1
  514. package/tools/gulp-ps-code/ps-code-convert.js +316 -0
  515. package/tools/gulp-ps-manifest/index.js +312 -0
  516. package/tools/gulp-ps-module/index.d.ts.map +1 -1
  517. package/tools/gulp-ps-module/index.js +328 -3
  518. package/tools/gulp-ps-module/index.js.map +1 -1
  519. package/tools/gulp-ps-resjson/index.js +316 -0
  520. package/tools/gulp-resjson/index.js +312 -0
  521. package/tools/gulp-resjson/resjson-convert.js +316 -0
  522. package/tools/gulp-schema-form/index.js +312 -0
  523. package/tools/gulp-svg-code/index.js +316 -0
  524. package/tools/gulp-svg-code/svg-code-convert.js +312 -0
  525. package/tools/gulp-update-notes-resource/index.js +312 -0
  526. package/tools/module-template/build/increment-package-version.ps1 +219 -0
  527. package/tools/module-template/build/pipelines/ci-build.yml +5 -5
  528. package/tools/module-template/build/pipelines/pull-request.yml +4 -4
  529. package/tools/module-template/build/push-incremented-version.ps1 +218 -1
  530. package/tools/module-template/build/update-powershell-code.ps1 +216 -0
  531. package/tools/module-template/gulpfile.ts/common/clean.ts +2 -0
  532. package/tools/module-template/gulpfile.ts/common/pack.ts +17 -5
  533. package/tools/module-template/gulpfile.ts/common/powershell.ts +40 -2
  534. package/tools/module-template/gulpfile.ts/common/test.ts +2 -3
  535. package/tools/module-template/gulpfile.ts/common/utilities.ts +40 -12
  536. package/tools/pack-nuget/index.d.ts.map +1 -1
  537. package/tools/pack-nuget/index.js +325 -3
  538. package/tools/pack-nuget/index.js.map +1 -1
  539. package/tools/scripts/Invoke-PesterTest.ps1 +218 -0
  540. package/tools/scripts/New-ExtensionPackage.ps1 +373 -6
  541. package/tools/scripts/Search-NonAsciiText.ps1 +219 -0
  542. package/tools/scripts/package-information/README.md +3 -0
  543. package/tools/scripts/package-information/ms-logo.png +0 -0
  544. package/tools/test-runner/index.js +316 -0
  545. package/tools/utilities/index.js +312 -0
  546. package/tools/wac-cli/src/angular15/configs/angular-json-config.js +315 -0
  547. package/tools/wac-cli/src/angular15/configs/ci-build-yml-config.js +315 -0
  548. package/tools/wac-cli/src/angular15/configs/config.js +312 -0
  549. package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +315 -0
  550. package/tools/wac-cli/src/angular15/configs/git-ignore-config.js +315 -0
  551. package/tools/wac-cli/src/angular15/configs/jasmine-test-config.js +316 -0
  552. package/tools/wac-cli/src/angular15/configs/package-json-config.js +316 -0
  553. package/tools/wac-cli/src/angular15/configs/replace-config.js +312 -0
  554. package/tools/wac-cli/src/angular15/configs/tsconfig-config.js +316 -0
  555. package/tools/wac-cli/src/angular15/configs/ui-test-automation-lagacy-config.js +316 -0
  556. package/tools/wac-cli/src/angular15/main.js +316 -0
  557. package/tools/wac-cli/src/angular15/upgrader/angular-json-upgrader.js +316 -0
  558. package/tools/wac-cli/src/angular15/upgrader/audit/ajax-response-updater.js +316 -0
  559. package/tools/wac-cli/src/angular15/upgrader/audit/css-syntax-error-updater.js +316 -0
  560. package/tools/wac-cli/src/angular15/upgrader/audit/declare-override-updater.js +312 -0
  561. package/tools/wac-cli/src/angular15/upgrader/audit/error-updater-angular15.js +316 -0
  562. package/tools/wac-cli/src/angular15/upgrader/audit/form-control-updater.js +312 -0
  563. package/tools/wac-cli/src/angular15/upgrader/audit/iif-updater-util.js +315 -0
  564. package/tools/wac-cli/src/angular15/upgrader/audit/load-children-callback-updater.js +316 -0
  565. package/tools/wac-cli/src/angular15/upgrader/audit/log-parser.js +316 -0
  566. package/tools/wac-cli/src/angular15/upgrader/audit/observable-throw-updater.js +316 -0
  567. package/tools/wac-cli/src/angular15/upgrader/audit/parameter-count-violation-updater.js +312 -0
  568. package/tools/wac-cli/src/angular15/upgrader/audit/string-replace-updater.js +316 -0
  569. package/tools/wac-cli/src/angular15/upgrader/audit/subjuct-next-updater-util.js +315 -0
  570. package/tools/wac-cli/src/angular15/upgrader/ci-build-yml-upgrader.js +316 -0
  571. package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +312 -0
  572. package/tools/wac-cli/src/angular15/upgrader/file-replacement-upgrader.js +315 -0
  573. package/tools/wac-cli/src/angular15/upgrader/git-ignore-upgrader.js +316 -0
  574. package/tools/wac-cli/src/angular15/upgrader/jasmine-test-upgrader.js +316 -0
  575. package/tools/wac-cli/src/angular15/upgrader/package-json-upgrader.js +316 -0
  576. package/tools/wac-cli/src/angular15/upgrader/remove-upgrader.js +316 -0
  577. package/tools/wac-cli/src/angular15/upgrader/replace-upgrader.js +316 -0
  578. package/tools/wac-cli/src/angular15/upgrader/tsconfig-upgrader.js +316 -0
  579. package/tools/wac-cli/src/angular15/upgrader/ui-test-automation-legacy-upgrader.js +316 -0
  580. package/tools/wac-cli/src/angular15/upgrader/version-json-upgrader.js +312 -0
  581. package/tools/wac-cli/src/angular15/utils/add-item.js +312 -0
  582. package/tools/wac-cli/src/angular15/utils/command-runner.js +316 -0
  583. package/tools/wac-cli/src/angular15/utils/file-comparison.js +316 -0
  584. package/tools/wac-cli/src/angular15/utils/file-replacement.js +315 -0
  585. package/tools/wac-cli/src/angular15/utils/file-writer.js +312 -0
  586. package/tools/wac-cli/src/angular15/utils/logger.js +312 -0
  587. package/tools/wac-cli/src/angular15/utils/main-debugger.js +312 -0
  588. package/tools/wac-cli/src/angular15/utils/relative-path.js +316 -0
  589. package/tools/wac-cli/src/angular15/utils/remove-item.js +316 -0
  590. package/tools/wac-cli/src/angular15/utils/space-generator.js +312 -0
  591. package/tools/wac-cli/src/angular15/utils/update-shell-references.js +312 -0
  592. package/tools/wac-cli/src/common.js +316 -0
  593. package/tools/wac-cli/src/create/main.js +316 -0
  594. package/tools/wac-cli/src/eslint/main.js +312 -0
  595. package/tools/wac-cli/src/index.js +316 -0
  596. package/tools/wac-cli/src/upgrade/error-updater.js +312 -0
  597. package/tools/wac-cli/src/upgrade/error-updaters/component-selector-updater.js +312 -0
  598. package/tools/wac-cli/src/upgrade/error-updaters/only-arrow-functions-updater.js +316 -0
  599. package/tools/wac-cli/src/upgrade/error-updaters/updater-lookup.js +312 -0
  600. package/tools/wac-cli/src/upgrade/file-updater.js +316 -0
  601. package/tools/wac-cli/src/upgrade/get-files.js +312 -0
  602. package/tools/wac-cli/src/upgrade/main.js +316 -0
  603. package/tools/wac-cli/src/upgrade/models/error-result.js +316 -0
  604. package/tools/wac-cli/src/upgrade/models/updater-interface.js +316 -0
  605. package/tools/wac-cli/src/upgrade/package-updater.js +316 -0
  606. package/tools/wac-cli/templates/wac-template/package.json +1 -1
  607. package/tools/wac-cli/templates/wac-template/src/favicon.ico +0 -0
  608. package/tools/wac-cli/templates/wac-template/src/karma.conf.js +317 -1
  609. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Error.ps1 +218 -0
  610. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Exception.ps1 +216 -0
  611. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Process.ps1 +216 -1
  612. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-Service.ps1 +216 -1
  613. package/tools/wac-cli/templates/wac-template/src/resources/scripts/Get-WinRmState.ps1 +218 -1
  614. package/core/data/extension-broker/snap-in-listener.d.ts.map +0 -1
  615. package/core/data/extension-broker/snap-in-listener.js +0 -73
  616. package/core/data/extension-broker/snap-in-listener.js.map +0 -1
  617. package/microsoft-windows-admin-center-sdk-4.167.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,318 @@ function gulpPsCode(options) {
184
193
  module.exports = gulpPsCode;
185
194
 
186
195
  //# sourceMappingURL=index.js.map
196
+
197
+ // SIG // Begin signature block
198
+ // SIG // MIIoKAYJKoZIhvcNAQcCoIIoGTCCKBUCAQExDzANBglg
199
+ // SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor
200
+ // SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC
201
+ // SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg
202
+ // SIG // G47KlOcRqPvrfKziMf3bOJT15eb58TSR3WcgXPc+hPOg
203
+ // SIG // gg12MIIF9DCCA9ygAwIBAgITMwAAA68wQA5Mo00FQQAA
204
+ // SIG // AAADrzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV
205
+ // SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
206
+ // SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
207
+ // SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
208
+ // SIG // aWduaW5nIFBDQSAyMDExMB4XDTIzMTExNjE5MDkwMFoX
209
+ // SIG // DTI0MTExNDE5MDkwMFowdDELMAkGA1UEBhMCVVMxEzAR
210
+ // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
211
+ // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
212
+ // SIG // bjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
213
+ // SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
214
+ // SIG // zkvLNa2un9GBrYNDoRGkGv7d0PqtTBB4ViYakFbjuWpm
215
+ // SIG // F0KcvDAzzaCWJPhVgIXjz+S8cHEoHuWnp/n+UOljT3eh
216
+ // SIG // A8Rs6Lb1aTYub3tB/e0txewv2sQ3yscjYdtTBtFvEm9L
217
+ // SIG // 8Yv76K3Cxzi/Yvrdg+sr7w8y5RHn1Am0Ff8xggY1xpWC
218
+ // SIG // XFI+kQM18njQDcUqSlwBnexYfqHBhzz6YXA/S0EziYBu
219
+ // SIG // 2O2mM7R6gSyYkEOHgIGTVOGnOvvC5xBgC4KNcnQuQSRL
220
+ // SIG // iUI2CmzU8vefR6ykruyzt1rNMPI8OqWHQtSDKXU5JNqb
221
+ // SIG // k4GNjwzcwbSzOHrxuxWHq91l/vLdVDGDUwIDAQABo4IB
222
+ // SIG // czCCAW8wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYB
223
+ // SIG // BQUHAwMwHQYDVR0OBBYEFEcccTTyBDxkjvJKs/m4AgEF
224
+ // SIG // hl7BMEUGA1UdEQQ+MDykOjA4MR4wHAYDVQQLExVNaWNy
225
+ // SIG // b3NvZnQgQ29ycG9yYXRpb24xFjAUBgNVBAUTDTIzMDAx
226
+ // SIG // Mis1MDE4MjYwHwYDVR0jBBgwFoAUSG5k5VAF04KqFzc3
227
+ // SIG // IrVtqMp1ApUwVAYDVR0fBE0wSzBJoEegRYZDaHR0cDov
228
+ // SIG // L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWlj
229
+ // SIG // Q29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNybDBhBggr
230
+ // SIG // BgEFBQcBAQRVMFMwUQYIKwYBBQUHMAKGRWh0dHA6Ly93
231
+ // SIG // d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWlj
232
+ // SIG // Q29kU2lnUENBMjAxMV8yMDExLTA3LTA4LmNydDAMBgNV
233
+ // SIG // HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQCEsRbf
234
+ // SIG // 80dn60xTweOWHZoWaQdpzSaDqIvqpYHE5ZzuEMJWDdcP
235
+ // SIG // 72MGw8v6BSaJQ+a+hTCXdERnIBDPKvU4ENjgu4EBJocH
236
+ // SIG // lSe8riiZUAR+z+z4OUYqoFd3EqJyfjjOJBR2z94Dy4ss
237
+ // SIG // 7LEkHUbj2NZiFqBoPYu2OGQvEk+1oaUsnNKZ7Nl7FHtV
238
+ // SIG // 7CI2lHBru83e4IPe3glIi0XVZJT5qV6Gx/QhAFmpEVBj
239
+ // SIG // SAmDdgII4UUwuI9yiX6jJFNOEek6MoeP06LMJtbqA3Bq
240
+ // SIG // +ZWmJ033F97uVpyaiS4bj3vFI/ZBgDnMqNDtZjcA2vi4
241
+ // SIG // RRMweggd9vsHyTLpn6+nXoLy03vMeebq0C3k44pgUIEu
242
+ // SIG // PQUlJIRTe6IrN3GcjaZ6zHGuQGWgu6SyO9r7qkrEpS2p
243
+ // SIG // RjnGZjx2RmCamdAWnDdu+DmfNEPAddYjaJJ7PTnd+PGz
244
+ // SIG // G+WeH4ocWgVnm5fJFhItjj70CJjgHqt57e1FiQcyWCwB
245
+ // SIG // hKX2rGgN2UICHBF3Q/rsKOspjMw2OlGphTn2KmFl5J7c
246
+ // SIG // Qxru54A9roClLnHGCiSUYos/iwFHI/dAVXEh0S0KKfTf
247
+ // SIG // M6AC6/9bCbsD61QLcRzRIElvgCgaiMWFjOBL99pemoEl
248
+ // SIG // AHsyzG6uX93fMfas09N9YzA0/rFAKAsNDOcFbQlEHKiD
249
+ // SIG // T7mI20tVoCcmSIhJATCCB3owggVioAMCAQICCmEOkNIA
250
+ // SIG // AAAAAAMwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYT
251
+ // SIG // AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
252
+ // SIG // EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
253
+ // SIG // cG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290
254
+ // SIG // IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDExMB4XDTEx
255
+ // SIG // MDcwODIwNTkwOVoXDTI2MDcwODIxMDkwOVowfjELMAkG
256
+ // SIG // A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
257
+ // SIG // BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
258
+ // SIG // dCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9zb2Z0
259
+ // SIG // IENvZGUgU2lnbmluZyBQQ0EgMjAxMTCCAiIwDQYJKoZI
260
+ // SIG // hvcNAQEBBQADggIPADCCAgoCggIBAKvw+nIQHC6t2G6q
261
+ // SIG // ghBNNLrytlghn0IbKmvpWlCquAY4GgRJun/DDB7dN2vG
262
+ // SIG // EtgL8DjCmQawyDnVARQxQtOJDXlkh36UYCRsr55JnOlo
263
+ // SIG // XtLfm1OyCizDr9mpK656Ca/XllnKYBoF6WZ26DJSJhIv
264
+ // SIG // 56sIUM+zRLdd2MQuA3WraPPLbfM6XKEW9Ea64DhkrG5k
265
+ // SIG // NXimoGMPLdNAk/jj3gcN1Vx5pUkp5w2+oBN3vpQ97/vj
266
+ // SIG // K1oQH01WKKJ6cuASOrdJXtjt7UORg9l7snuGG9k+sYxd
267
+ // SIG // 6IlPhBryoS9Z5JA7La4zWMW3Pv4y07MDPbGyr5I4ftKd
268
+ // SIG // gCz1TlaRITUlwzluZH9TupwPrRkjhMv0ugOGjfdf8NBS
269
+ // SIG // v4yUh7zAIXQlXxgotswnKDglmDlKNs98sZKuHCOnqWbs
270
+ // SIG // YR9q4ShJnV+I4iVd0yFLPlLEtVc/JAPw0XpbL9Uj43Bd
271
+ // SIG // D1FGd7P4AOG8rAKCX9vAFbO9G9RVS+c5oQ/pI0m8GLhE
272
+ // SIG // fEXkwcNyeuBy5yTfv0aZxe/CHFfbg43sTUkwp6uO3+xb
273
+ // SIG // n6/83bBm4sGXgXvt1u1L50kppxMopqd9Z4DmimJ4X7Iv
274
+ // SIG // hNdXnFy/dygo8e1twyiPLI9AN0/B4YVEicQJTMXUpUMv
275
+ // SIG // dJX3bvh4IFgsE11glZo+TzOE2rCIF96eTvSWsLxGoGyY
276
+ // SIG // 0uDWiIwLAgMBAAGjggHtMIIB6TAQBgkrBgEEAYI3FQEE
277
+ // SIG // AwIBADAdBgNVHQ4EFgQUSG5k5VAF04KqFzc3IrVtqMp1
278
+ // SIG // ApUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
279
+ // SIG // VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
280
+ // SIG // BBgwFoAUci06AjGQQ7kUBU7h6qfHMdEjiTQwWgYDVR0f
281
+ // SIG // BFMwUTBPoE2gS4ZJaHR0cDovL2NybC5taWNyb3NvZnQu
282
+ // SIG // Y29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0
283
+ // SIG // MjAxMV8yMDExXzAzXzIyLmNybDBeBggrBgEFBQcBAQRS
284
+ // SIG // MFAwTgYIKwYBBQUHMAKGQmh0dHA6Ly93d3cubWljcm9z
285
+ // SIG // b2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0MjAx
286
+ // SIG // MV8yMDExXzAzXzIyLmNydDCBnwYDVR0gBIGXMIGUMIGR
287
+ // SIG // BgkrBgEEAYI3LgMwgYMwPwYIKwYBBQUHAgEWM2h0dHA6
288
+ // SIG // Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvZG9jcy9w
289
+ // SIG // cmltYXJ5Y3BzLmh0bTBABggrBgEFBQcCAjA0HjIgHQBM
290
+ // SIG // AGUAZwBhAGwAXwBwAG8AbABpAGMAeQBfAHMAdABhAHQA
291
+ // SIG // ZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEA
292
+ // SIG // Z/KGpZjgVHkaLtPYdGcimwuWEeFjkplCln3SeQyQwWVf
293
+ // SIG // Liw++MNy0W2D/r4/6ArKO79HqaPzadtjvyI1pZddZYSQ
294
+ // SIG // fYtGUFXYDJJ80hpLHPM8QotS0LD9a+M+By4pm+Y9G6XU
295
+ // SIG // tR13lDni6WTJRD14eiPzE32mkHSDjfTLJgJGKsKKELuk
296
+ // SIG // qQUMm+1o+mgulaAqPyprWEljHwlpblqYluSD9MCP80Yr
297
+ // SIG // 3vw70L01724lruWvJ+3Q3fMOr5kol5hNDj0L8giJ1h/D
298
+ // SIG // Mhji8MUtzluetEk5CsYKwsatruWy2dsViFFFWDgycSca
299
+ // SIG // f7H0J/jeLDogaZiyWYlobm+nt3TDQAUGpgEqKD6CPxNN
300
+ // SIG // ZgvAs0314Y9/HG8VfUWnduVAKmWjw11SYobDHWM2l4bf
301
+ // SIG // 2vP48hahmifhzaWX0O5dY0HjWwechz4GdwbRBrF1HxS+
302
+ // SIG // YWG18NzGGwS+30HHDiju3mUv7Jf2oVyW2ADWoUa9WfOX
303
+ // SIG // pQlLSBCZgB/QACnFsZulP0V3HjXG0qKin3p6IvpIlR+r
304
+ // SIG // +0cjgPWe+L9rt0uX4ut1eBrs6jeZeRhL/9azI2h15q/6
305
+ // SIG // /IvrC4DqaTuv/DDtBEyO3991bWORPdGdVk5Pv4BXIqF4
306
+ // SIG // ETIheu9BCrE/+6jMpF3BoYibV3FWTkhFwELJm3ZbCoBI
307
+ // SIG // a/15n8G9bW1qyVJzEw16UM0xghoKMIIaBgIBATCBlTB+
308
+ // SIG // MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
309
+ // SIG // bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
310
+ // SIG // cm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNy
311
+ // SIG // b3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExAhMzAAAD
312
+ // SIG // rzBADkyjTQVBAAAAAAOvMA0GCWCGSAFlAwQCAQUAoIGu
313
+ // SIG // MBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisG
314
+ // SIG // AQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3
315
+ // SIG // DQEJBDEiBCCfZAzguZVQMVJiinKdwRFrXxp1LZFrt9OI
316
+ // SIG // TsMZndTgFTBCBgorBgEEAYI3AgEMMTQwMqAUgBIATQBp
317
+ // SIG // AGMAcgBvAHMAbwBmAHShGoAYaHR0cDovL3d3dy5taWNy
318
+ // SIG // b3NvZnQuY29tMA0GCSqGSIb3DQEBAQUABIIBAHhgHCRZ
319
+ // SIG // sZYldRptaVGIAagyQeVKA6BFkqcqeVcLfwUJWK+Dp6AL
320
+ // SIG // aVZr/bvcF0oEJzgYuUYxJGlNyQ39MVsxKWpkcpYeWdKq
321
+ // SIG // nqQ7TpwZZ+SiKAmQoxBVzeLtKD9gzAl4CkLhJ0IDMvhj
322
+ // SIG // rdfRTwkR8sLhN9sI9UpX+dd5ffv+3vobJ7BXUptNGOE5
323
+ // SIG // kL1E+lTRUcalAkSjAvRT4O83Tt52k48+wiX2RbpemA+r
324
+ // SIG // 2+aB+mniYBWvNZR7gZcnowoKGgPq9sCKC60ubpUrUSLb
325
+ // SIG // 8rjCSTLEiTC2eOB1BwbLKXi6HKMq1446qU+BV1Qkb+8Q
326
+ // SIG // RGoqhW2J+erLYif8yhAcdcqZanShgheUMIIXkAYKKwYB
327
+ // SIG // BAGCNwMDATGCF4Awghd8BgkqhkiG9w0BBwKgghdtMIIX
328
+ // SIG // aQIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBUgYLKoZIhvcN
329
+ // SIG // AQkQAQSgggFBBIIBPTCCATkCAQEGCisGAQQBhFkKAwEw
330
+ // SIG // MTANBglghkgBZQMEAgEFAAQgIECZullI89voiqzySdec
331
+ // SIG // MlwFzN4NXdtXcMbS4S4xd1wCBmbi8E3S3xgTMjAyNDA5
332
+ // SIG // MjYwMDAwNDkuNjU5WjAEgAIB9KCB0aSBzjCByzELMAkG
333
+ // SIG // A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
334
+ // SIG // BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
335
+ // SIG // dCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0
336
+ // SIG // IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNo
337
+ // SIG // aWVsZCBUU1MgRVNOOjg2MDMtMDVFMC1EOTQ3MSUwIwYD
338
+ // SIG // VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl
339
+ // SIG // oIIR6jCCByAwggUIoAMCAQICEzMAAAHxs0X1J+jAFtYA
340
+ // SIG // AQAAAfEwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMC
341
+ // SIG // VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT
342
+ // SIG // B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
343
+ // SIG // b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUt
344
+ // SIG // U3RhbXAgUENBIDIwMTAwHhcNMjMxMjA2MTg0NTU1WhcN
345
+ // SIG // MjUwMzA1MTg0NTU1WjCByzELMAkGA1UEBhMCVVMxEzAR
346
+ // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
347
+ // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
348
+ // SIG // bjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3Bl
349
+ // SIG // cmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO
350
+ // SIG // Ojg2MDMtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3Nv
351
+ // SIG // ZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIICIjANBgkqhkiG
352
+ // SIG // 9w0BAQEFAAOCAg8AMIICCgKCAgEAsbpQmbbSH/F/e61v
353
+ // SIG // fyfkOFYPT4roAdcmtfw0ccS1tocMuEILVN4+X1e+WSmu
354
+ // SIG // l000IVuQpZBpeoKdZ3eVQbMeCW/qFOD7DANn6HvID/W0
355
+ // SIG // DT1cSBzCbuk2HK659/R3XXrdsZHalIc88kl2jxahTJNl
356
+ // SIG // YnxH4/h0eiYXjbNiy85vBQyZvqQXXTwy2oP0fgDyFh8n
357
+ // SIG // 7avYrcDNFj+WdHX0MiOFpVXlEvr6LbD21pvkSrB+BUDY
358
+ // SIG // c29Lfw+IrrXHwit/yyvsS5kunZgIewDCrhFJfItpHVgQ
359
+ // SIG // 0XHPiVmttUgnn8eUj4SRBYGIXRjwKKdxtZfE993Kq2y7
360
+ // SIG // XBSasMOE0ImIgpHcrAnJyBdGakjQB3HyPUgL94H5Msak
361
+ // SIG // DSSd7E7IORj0RfeZqoG30G5BZ1Ne4mG0SDyasIEi4cgf
362
+ // SIG // N92Q4Js8WypiZnQ2m280tMhoZ4B2uvoMFWjlKnB3/cOp
363
+ // SIG // MMTKPjqht0GSHMHecBxArOawCWejyMhTOwHdoUVBR0U4
364
+ // SIG // t+dyO1eMRIGBrmW+qhcej3+OIuwI126bVKJQ3Fc2BHYC
365
+ // SIG // 0ElorhWo0ul4N5OwsvE4jORz1CvS2SJ5aE8blC0sSZie
366
+ // SIG // 5041Izo+ccEZgu8dkv5sapfJ7x0gjdThA9v8BAjqLejB
367
+ // SIG // HvWy9586CsDvEzZREraubHHduRgNIDEDvqjV1f8UwzgU
368
+ // SIG // yfMwXBkCAwEAAaOCAUkwggFFMB0GA1UdDgQWBBS8tsXu
369
+ // SIG // fbAhNEo8nKhORK2+GK0tYDAfBgNVHSMEGDAWgBSfpxVd
370
+ // SIG // AF5iXYP05dJlpxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQ
371
+ // SIG // hk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz
372
+ // SIG // L2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENB
373
+ // SIG // JTIwMjAxMCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwG
374
+ // SIG // CCsGAQUFBzAChlBodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
375
+ // SIG // b20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUt
376
+ // SIG // U3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMB
377
+ // SIG // Af8EAjAAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMIMA4G
378
+ // SIG // A1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEA
379
+ // SIG // 4UhI0gRUgmycpd1P0JhTFtnizwZJ55bHyA/+4EzLwDRJ
380
+ // SIG // 4atPCPRx226osKgxB0rwEbyrS+49M5yAmAWzK1Upr4A8
381
+ // SIG // VPIwBqjMoi6DPNO/PEqN/k+iGVf/1GUSagZeKDN2wiEI
382
+ // SIG // BRqNFU3kOkc2C/rdcwlF5pqT5jOMXEnFRQE14+U8ewcu
383
+ // SIG // EoVlAu1YZu6YnA4lOYoBo7or0YcT726X5W4f27IhObce
384
+ // SIG // XLjiRCUhvrlnKgcke0wuHBr7mrx0o5NYkV0/0I2jhHia
385
+ // SIG // Dp33rGznbyayXW5vpXmC0SOuzd3HfAf7LlNtbUXYMDp0
386
+ // SIG // 5NoTrmSrP5C8Gl+jbAG1MvaSrA5k8qFpxpsk1gT4k29q
387
+ // SIG // 6eaIKPGPITFNWELO6x0eYaopRKvPIxfvR/CnHG/9YrJi
388
+ // SIG // UxpwZ0TL+vFHdpeSxYTmeJ0bZeJR64vjdS/BAYO2hPBL
389
+ // SIG // z3vAmvYM/LIdheAjk2HdTx3HtboC771ltfmjkqXfDZ8B
390
+ // SIG // IneM4A+/WUMYrCasjuJTFjMwIBHhYVJuNBbIbc17nQLF
391
+ // SIG // +S6AopeKy2x38GLRjqcPQ1V941wFfdLRvYkW3Ko7bd74
392
+ // SIG // VvU/i93wGZTHq2ln4e3lJj5bTFPJREDjHpaP9XoZCBju
393
+ // SIG // 2GTh8VKniqZhfUGlvC1009PdAB2eJOoPrXaWRXwjKLch
394
+ // SIG // vhOF6jemVrShAUIhN8S9uwQwggdxMIIFWaADAgECAhMz
395
+ // SIG // AAAAFcXna54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUA
396
+ // SIG // MIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
397
+ // SIG // Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
398
+ // SIG // TWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylN
399
+ // SIG // aWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3Jp
400
+ // SIG // dHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAx
401
+ // SIG // ODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
402
+ // SIG // YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
403
+ // SIG // VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
404
+ // SIG // BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
405
+ // SIG // MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
406
+ // SIG // 5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9KpbE51yMo1
407
+ // SIG // V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeF
408
+ // SIG // RiMMtY0Tz3cywBAY6GB9alKDRLemjkZrBxTzxXb1hlDc
409
+ // SIG // wUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6xKr9cmmvHaus
410
+ // SIG // 9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130
411
+ // SIG // /o5Tz9bshVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHI
412
+ // SIG // NSi947SHJMPgyY9+tVSP3PoFVZhtaDuaRr3tpK56KTes
413
+ // SIG // y+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGp
414
+ // SIG // F1tnYN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+
415
+ // SIG // /NmeRd+2ci/bfV+AutuqfjbsNkz2K26oElHovwUDo9Fz
416
+ // SIG // pk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNO
417
+ // SIG // wTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLi
418
+ // SIG // Mxhy16cg8ML6EgrXY28MyTZki1ugpoMhXV8wdJGUlNi5
419
+ // SIG // UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsluq9Q
420
+ // SIG // BXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6H
421
+ // SIG // XtqPnhZyacaue7e3PmriLq0CAwEAAaOCAd0wggHZMBIG
422
+ // SIG // CSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYE
423
+ // SIG // FCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSf
424
+ // SIG // pxVdAF5iXYP05dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEG
425
+ // SIG // DCsGAQQBgjdMg30BATBBMD8GCCsGAQUFBwIBFjNodHRw
426
+ // SIG // Oi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3Mv
427
+ // SIG // UmVwb3NpdG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUH
428
+ // SIG // AwgwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
429
+ // SIG // VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
430
+ // SIG // BBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0f
431
+ // SIG // BE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQu
432
+ // SIG // Y29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0
433
+ // SIG // XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBK
434
+ // SIG // BggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQu
435
+ // SIG // Y29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0w
436
+ // SIG // Ni0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1Vffwq
437
+ // SIG // reEsH2cBMSRb4Z5yS/ypb+pcFLY+TkdkeLEGk5c9MTO1
438
+ // SIG // OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi7ulmZzpT
439
+ // SIG // Td2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinL
440
+ // SIG // btg/SHUB2RjebYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l
441
+ // SIG // 9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n4ECWOKz3+SmJ
442
+ // SIG // w7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2Fz
443
+ // SIG // Lixre24/LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7
444
+ // SIG // hvoyGtmW9I/2kQH2zsZ0/fZMcm8Qq3UwxTSwethQ/gpY
445
+ // SIG // 3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFX
446
+ // SIG // SVRk2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFU
447
+ // SIG // a2pFEUep8beuyOiJXk+d0tBMdrVXVAmxaQFEfnyhYWxz
448
+ // SIG // /gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/
449
+ // SIG // AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1
450
+ // SIG // ZyvgDbjmjJnW4SLq8CdCPSWU5nR0W2rRnj7tfqAxM328
451
+ // SIG // y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQwXEG
452
+ // SIG // ahC0HVUzWLOhcGbyoYIDTTCCAjUCAQEwgfmhgdGkgc4w
453
+ // SIG // gcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
454
+ // SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
455
+ // SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p
456
+ // SIG // Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJzAlBgNV
457
+ // SIG // BAsTHm5TaGllbGQgVFNTIEVTTjo4NjAzLTA1RTAtRDk0
458
+ // SIG // NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAg
459
+ // SIG // U2VydmljZaIjCgEBMAcGBSsOAwIaAxUA+5+wZOILDNrW
460
+ // SIG // 1P4vjNwbUZy49PeggYMwgYCkfjB8MQswCQYDVQQGEwJV
461
+ // SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
462
+ // SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
463
+ // SIG // cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1T
464
+ // SIG // dGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQsFAAIFAOqe
465
+ // SIG // kPswIhgPMjAyNDA5MjUxMzM5MDdaGA8yMDI0MDkyNjEz
466
+ // SIG // MzkwN1owdDA6BgorBgEEAYRZCgQBMSwwKjAKAgUA6p6Q
467
+ // SIG // +wIBADAHAgEAAgITDzAHAgEAAgITIzAKAgUA6p/iewIB
468
+ // SIG // ADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMC
469
+ // SIG // oAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3
470
+ // SIG // DQEBCwUAA4IBAQCRSQE0mWSSbViyZVUQDuCT/cUGatEc
471
+ // SIG // VLwsUXKeULxJqbC7b1jVmskRubQu5nm9FN2uzSqRBn4E
472
+ // SIG // YhjB+jkahB0T5NOl6ccHrLzo8zRHzmZDuuUOxub9ZMv3
473
+ // SIG // pluneu41JXp64Yr4zttvPKPlb1n9ydVnorj/RB6075M7
474
+ // SIG // d2PQNt/eu0HYTEAp60JMkaNlJiM7zoIrR1t86/g0jkfc
475
+ // SIG // UCKyStj3sMd7B2dCFaMkvtKG1Yi4j5g2bz+wwqsD2Wrc
476
+ // SIG // sLMynELDj92WtLtTq2QHV1gcPWnXLPmyziKpkHDHzBat
477
+ // SIG // A2QWSfzRsXpT7Q8k7p6woNC/bw42Uchog4IfFlFMQVWV
478
+ // SIG // opBBMYIEDTCCBAkCAQEwgZMwfDELMAkGA1UEBhMCVVMx
479
+ // SIG // EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
480
+ // SIG // ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh
481
+ // SIG // dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3Rh
482
+ // SIG // bXAgUENBIDIwMTACEzMAAAHxs0X1J+jAFtYAAQAAAfEw
483
+ // SIG // DQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzEN
484
+ // SIG // BgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQg6T8x
485
+ // SIG // RbcPxVtPdYWUTV6nx003hLd9zFLTFPH2eVIIvgEwgfoG
486
+ // SIG // CyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDVd/0+YUu4
487
+ // SIG // o8GqOOukaLAe8MBIm7dGtT+RKiMBI/YReDCBmDCBgKR+
488
+ // SIG // MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
489
+ // SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
490
+ // SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
491
+ // SIG // Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB
492
+ // SIG // 8bNF9SfowBbWAAEAAAHxMCIEIIoOCGTG9PpHZ5b8Terd
493
+ // SIG // 2efeCl8o8+IqYIyvXQwen3XdMA0GCSqGSIb3DQEBCwUA
494
+ // SIG // BIICACWjOtAjFfhXcDIiWIgfk8MG3+C5frPesSOxZL3r
495
+ // SIG // fwH5fr3yePxQuo1PLKwsj+sbb8uQFTzxu4ILhOQZ16ZC
496
+ // SIG // y6Y/aWCoYYSSxk7wKuu/mT7Pcl8Wn5zcQ9Zd+wPRkJEh
497
+ // SIG // PMGUntQTHMJWHCEA2N9AFlZmi3vNGQaef1Zsd+6gcHdi
498
+ // SIG // i1RYfSm7ox6ry4iVaKdSncqcbrtW7kqXaYWo8X8OQDEp
499
+ // SIG // DtCi89nBEm3Uzr5oU3jSa/08OJf16yMREFg4+o1FJlTa
500
+ // SIG // 0Es5DTDUhTH8/KUArOui22/Gob8BqMyb7iVK06cjqFJw
501
+ // SIG // Q8mNZDR7eHdZ02Ehu3lsi9ykQqvZId+w2jOlHlqYya5d
502
+ // SIG // 5at2fMUMFlg1X6brLhps/ATeKGhEhg82GCUwgBRW73GW
503
+ // SIG // gqU7hF2iVP/aprC9fgaKNnPuPDQwHhFyvmgn8+El8J00
504
+ // SIG // dVAynuOg2iXlYo8Q1xsHiSE07RpK0e4uKrFpfTQmmIHE
505
+ // SIG // UiVPdbHGTslpsxQSG45fLGKLZ4XM/AgxD7F1oxsCCqla
506
+ // SIG // FgrgZeXkttQnAKaIGfw1QW4pDy2sXrarZEZPGKwRnwS9
507
+ // SIG // ZA59Dwt2XewZORPQxN++wbXbPx2ou3MY/h/X8layio02
508
+ // SIG // 4WRxnWzLjG+2qsJNR7N84KAtKyyOdSTMv2Fhdz3mFDpC
509
+ // SIG // NzDjz6DZcbKWyRUXFQk1bgNUe/Kz
510
+ // 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"]}