@microsoft/windows-admin-center-sdk 6.0.0 → 6.1.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 (176) hide show
  1. package/3rdPartyDisclosure.html +10 -13
  2. package/README.md +110 -33
  3. package/angular/fesm2022/msft-sme-angular.mjs +1235 -1213
  4. package/angular/fesm2022/msft-sme-angular.mjs.map +1 -1
  5. package/angular/index.d.ts +29 -14
  6. package/angular/package.json +1 -1
  7. package/core/azure/azure-manager.d.ts +15 -3
  8. package/core/azure/azure-manager.d.ts.map +1 -1
  9. package/core/azure/azure-manager.js +29 -10
  10. package/core/azure/azure-manager.js.map +1 -1
  11. package/core/azure/models/aadAppConfig-data.d.ts +16 -0
  12. package/core/azure/models/aadAppConfig-data.d.ts.map +1 -1
  13. package/core/azure/models/aadAppConfig-data.js.map +1 -1
  14. package/core/base/environment.d.ts +1 -1
  15. package/core/base/environment.d.ts.map +1 -1
  16. package/core/base/environment.js.map +1 -1
  17. package/core/base/utilities.d.ts +10 -2
  18. package/core/base/utilities.d.ts.map +1 -1
  19. package/core/base/utilities.js +45 -25
  20. package/core/base/utilities.js.map +1 -1
  21. package/core/data/gateway-connection.d.ts.map +1 -1
  22. package/core/data/gateway-connection.js +1 -0
  23. package/core/data/gateway-connection.js.map +1 -1
  24. package/core/diagnostics/sme-web-telemetry.d.ts +17 -1
  25. package/core/diagnostics/sme-web-telemetry.d.ts.map +1 -1
  26. package/core/diagnostics/sme-web-telemetry.js +16 -0
  27. package/core/diagnostics/sme-web-telemetry.js.map +1 -1
  28. package/core/enterprise/enterprise-models.d.ts +10 -4
  29. package/core/enterprise/enterprise-models.d.ts.map +1 -1
  30. package/core/enterprise/enterprise-models.js +9 -4
  31. package/core/enterprise/enterprise-models.js.map +1 -1
  32. package/core/index.d.ts +5 -3
  33. package/core/index.d.ts.map +1 -1
  34. package/core/index.js +2 -1
  35. package/core/index.js.map +1 -1
  36. package/core/manifest/environment-modules.d.ts +2 -2
  37. package/core/manifest/environment-modules.d.ts.map +1 -1
  38. package/core/manifest/environment-modules.js.map +1 -1
  39. package/core/manifest/gateway-url-validator.d.ts +17 -0
  40. package/core/manifest/gateway-url-validator.d.ts.map +1 -0
  41. package/core/manifest/gateway-url-validator.js +56 -0
  42. package/core/manifest/gateway-url-validator.js.map +1 -0
  43. package/core/manifest/manifest-loader.d.ts +47 -11
  44. package/core/manifest/manifest-loader.d.ts.map +1 -1
  45. package/core/manifest/manifest-loader.js +141 -72
  46. package/core/manifest/manifest-loader.js.map +1 -1
  47. package/core/manifest/module-schema.json +1 -1
  48. package/core/performance/performance-tracker.d.ts +2 -0
  49. package/core/performance/performance-tracker.d.ts.map +1 -1
  50. package/core/performance/performance-tracker.js +18 -0
  51. package/core/performance/performance-tracker.js.map +1 -1
  52. package/core/rpc/azure/rpc-azure-model.d.ts +19 -1
  53. package/core/rpc/azure/rpc-azure-model.d.ts.map +1 -1
  54. package/core/rpc/azure/rpc-azure-model.js.map +1 -1
  55. package/core/rpc/forward/rpc-forward-auto-client.d.ts +5 -0
  56. package/core/rpc/forward/rpc-forward-auto-client.d.ts.map +1 -1
  57. package/core/rpc/forward/rpc-forward-auto-client.js +13 -0
  58. package/core/rpc/forward/rpc-forward-auto-client.js.map +1 -1
  59. package/core/rpc/resource-data-changed/rpc-resource-data-changed-client.d.ts +16 -0
  60. package/core/rpc/resource-data-changed/rpc-resource-data-changed-client.d.ts.map +1 -0
  61. package/core/rpc/resource-data-changed/rpc-resource-data-changed-client.js +18 -0
  62. package/core/rpc/resource-data-changed/rpc-resource-data-changed-client.js.map +1 -0
  63. package/core/rpc/resource-data-changed/rpc-resource-data-changed-handler.d.ts +8 -0
  64. package/core/rpc/resource-data-changed/rpc-resource-data-changed-handler.d.ts.map +1 -0
  65. package/core/rpc/resource-data-changed/rpc-resource-data-changed-handler.js +2 -0
  66. package/core/rpc/resource-data-changed/rpc-resource-data-changed-handler.js.map +1 -0
  67. package/core/rpc/resource-data-changed/rpc-resource-data-changed-model.d.ts +18 -0
  68. package/core/rpc/resource-data-changed/rpc-resource-data-changed-model.d.ts.map +1 -0
  69. package/core/rpc/resource-data-changed/rpc-resource-data-changed-model.js +8 -0
  70. package/core/rpc/resource-data-changed/rpc-resource-data-changed-model.js.map +1 -0
  71. package/core/rpc/resource-data-changed/rpc-resource-data-changed-subject-server.d.ts +27 -0
  72. package/core/rpc/resource-data-changed/rpc-resource-data-changed-subject-server.d.ts.map +1 -0
  73. package/core/rpc/resource-data-changed/rpc-resource-data-changed-subject-server.js +23 -0
  74. package/core/rpc/resource-data-changed/rpc-resource-data-changed-subject-server.js.map +1 -0
  75. package/core/rpc/rpc-forwarder.d.ts +16 -2
  76. package/core/rpc/rpc-forwarder.d.ts.map +1 -1
  77. package/core/rpc/rpc-forwarder.js +50 -6
  78. package/core/rpc/rpc-forwarder.js.map +1 -1
  79. package/core/security/authorization-manager.d.ts +126 -4
  80. package/core/security/authorization-manager.d.ts.map +1 -1
  81. package/core/security/authorization-manager.js +381 -49
  82. package/core/security/authorization-manager.js.map +1 -1
  83. package/core/security/connection-manager.d.ts +2 -1
  84. package/core/security/connection-manager.d.ts.map +1 -1
  85. package/core/security/connection-manager.js +10 -6
  86. package/core/security/connection-manager.js.map +1 -1
  87. package/core/security/tool-condition-validator.d.ts +8 -3
  88. package/core/security/tool-condition-validator.d.ts.map +1 -1
  89. package/core/security/tool-condition-validator.js +43 -28
  90. package/core/security/tool-condition-validator.js.map +1 -1
  91. package/core/version.js +1 -1
  92. package/core/version.js.map +1 -1
  93. package/core/virtualization/virtualization-client.d.ts +47 -78
  94. package/core/virtualization/virtualization-client.d.ts.map +1 -1
  95. package/core/virtualization/virtualization-client.js +57 -77
  96. package/core/virtualization/virtualization-client.js.map +1 -1
  97. package/core/virtualization/virtualization-models.d.ts +9 -8
  98. package/core/virtualization/virtualization-models.d.ts.map +1 -1
  99. package/core/virtualization/virtualization-models.js +7 -5
  100. package/core/virtualization/virtualization-models.js.map +1 -1
  101. package/core/virtualization/virtualization-unavailable-error.d.ts +1 -1
  102. package/core/virtualization/virtualization-unavailable-error.js +1 -1
  103. package/core/virtualization/virtualization-unavailable-error.js.map +1 -1
  104. package/package.json +12 -17
  105. package/{react-sdk-core → react}/hooks/useAppContextInit.d.ts +2 -0
  106. package/react/hooks/useAppContextInit.d.ts.map +1 -0
  107. package/{react-sdk-core → react}/hooks/useAppContextInit.js +18 -2
  108. package/{react-sdk-core → react}/index.js +1 -1
  109. package/react/services/BaseNavigationService.d.ts.map +1 -0
  110. package/{react-sdk-core → react}/services/BaseNavigationService.js +4 -0
  111. package/{react-sdk-core → react}/version.d.ts.map +1 -1
  112. package/react/version.js +3 -0
  113. package/{react-sdk-core → react}/vite/smeCoreStringsPlugin.d.ts +1 -1
  114. package/{react-sdk-core → react}/vite/smeCoreStringsPlugin.js +1 -1
  115. package/{react-sdk-core → react}/vite/smeManifestResourcesPlugin.d.ts +1 -1
  116. package/{react-sdk-core → react}/vite/smeManifestResourcesPlugin.js +1 -1
  117. package/{react-sdk-core → react}/vite/smePowerShellPlugin.d.ts +1 -1
  118. package/{react-sdk-core → react}/vite/smePowerShellPlugin.js +1 -1
  119. package/styles/css/main-v2.css +1 -1
  120. package/styles/package.json +1 -1
  121. package/wac-cli/dist/angular20/configs/ci-build-yml-config.js +3 -2
  122. package/wac-cli/dist/angular20/configs/ci-build-yml-config.js.map +1 -1
  123. package/wac-cli/dist/angular20/upgrader/nvmrc-engines-upgrader.js +2 -2
  124. package/wac-cli/dist/create-react/main.js +3 -2
  125. package/wac-cli/dist/create-react/main.js.map +1 -1
  126. package/wac-cli/module-template/build/pipelines/ci-build.yml +2 -2
  127. package/wac-cli/module-template/build/pipelines/pull-request.yml +2 -2
  128. package/wac-cli/templates/internal/main.ts +2 -2
  129. package/wac-cli/templates/internal/package.json +26 -14
  130. package/wac-cli/templates/react-template/package.json +3 -2
  131. package/wac-cli/templates/react-template/src/App.tsx +1 -1
  132. package/wac-cli/templates/react-template/src/hooks/useServicesData.ts +1 -1
  133. package/wac-cli/templates/react-template/vite.config.ts +1 -1
  134. package/wac-cli/templates/wac-template/angular.json +8 -13
  135. package/wac-cli/templates/wac-template/package.json +26 -14
  136. package/wac-cli/templates/wac-template/src/main.ts +2 -2
  137. package/react-sdk-core/hooks/useAppContextInit.d.ts.map +0 -1
  138. package/react-sdk-core/services/BaseNavigationService.d.ts.map +0 -1
  139. package/react-sdk-core/version.js +0 -3
  140. /package/{react-sdk-core → react}/components/SplashScreen.d.ts +0 -0
  141. /package/{react-sdk-core → react}/components/SplashScreen.d.ts.map +0 -0
  142. /package/{react-sdk-core → react}/components/SplashScreen.js +0 -0
  143. /package/{react-sdk-core → react}/context/AppContextProvider.d.ts +0 -0
  144. /package/{react-sdk-core → react}/context/AppContextProvider.d.ts.map +0 -0
  145. /package/{react-sdk-core → react}/context/AppContextProvider.js +0 -0
  146. /package/{react-sdk-core → react}/hooks/useAppContext.d.ts +0 -0
  147. /package/{react-sdk-core → react}/hooks/useAppContext.d.ts.map +0 -0
  148. /package/{react-sdk-core → react}/hooks/useAppContext.js +0 -0
  149. /package/{react-sdk-core → react}/hooks/useSkeletonStyles.d.ts +0 -0
  150. /package/{react-sdk-core → react}/hooks/useSkeletonStyles.d.ts.map +0 -0
  151. /package/{react-sdk-core → react}/hooks/useSkeletonStyles.js +0 -0
  152. /package/{react-sdk-core → react}/hooks/useWacTheme.d.ts +0 -0
  153. /package/{react-sdk-core → react}/hooks/useWacTheme.d.ts.map +0 -0
  154. /package/{react-sdk-core → react}/hooks/useWacTheme.js +0 -0
  155. /package/{react-sdk-core → react}/index.d.ts +0 -0
  156. /package/{react-sdk-core → react}/index.d.ts.map +0 -0
  157. /package/{react-sdk-core → react}/services/AppContextService.d.ts +0 -0
  158. /package/{react-sdk-core → react}/services/AppContextService.d.ts.map +0 -0
  159. /package/{react-sdk-core → react}/services/AppContextService.js +0 -0
  160. /package/{react-sdk-core → react}/services/BaseNavigationService.d.ts +0 -0
  161. /package/{react-sdk-core → react}/services/NavigationService.d.ts +0 -0
  162. /package/{react-sdk-core → react}/services/NavigationService.d.ts.map +0 -0
  163. /package/{react-sdk-core → react}/services/NavigationService.js +0 -0
  164. /package/{react-sdk-core → react}/services/Polyfills.d.ts +0 -0
  165. /package/{react-sdk-core → react}/services/Polyfills.d.ts.map +0 -0
  166. /package/{react-sdk-core → react}/services/Polyfills.js +0 -0
  167. /package/{react-sdk-core → react}/version.d.ts +0 -0
  168. /package/{react-sdk-core → react}/vite/index.d.ts +0 -0
  169. /package/{react-sdk-core → react}/vite/index.d.ts.map +0 -0
  170. /package/{react-sdk-core → react}/vite/index.js +0 -0
  171. /package/{react-sdk-core → react}/vite/log.d.ts +0 -0
  172. /package/{react-sdk-core → react}/vite/log.d.ts.map +0 -0
  173. /package/{react-sdk-core → react}/vite/log.js +0 -0
  174. /package/{react-sdk-core → react}/vite/smeCoreStringsPlugin.d.ts.map +0 -0
  175. /package/{react-sdk-core → react}/vite/smeManifestResourcesPlugin.d.ts.map +0 -0
  176. /package/{react-sdk-core → react}/vite/smePowerShellPlugin.d.ts.map +0 -0
@@ -8,8 +8,8 @@
8
8
  <body>
9
9
  <h1>THIRD-PARTY SOFTWARE NOTICES AND INFORMATION</h1>
10
10
  <p><strong>Do Not Translate or Localize</strong></p>
11
- <p>Note: While Microsoft is not the author of the files below, Microsoft is offering you a license subject to the terms of the Microsoft Software License Terms for <strong>@microsoft/windows-admin-center-sdk</strong> (version 6.0.0) (the &ldquo;Microsoft Program&rdquo;). Microsoft reserves all other rights. The notices below are provided for informational purposes only and are not the license terms under which Microsoft distributes these files.</p>
12
- <p class="meta">Generated automatically at build time &middot; 2026-08-14T12:12:36.802Z &middot; Section 1: 26 distributed component(s) &middot; Section 2: 14 peer.</p>
11
+ <p>Note: While Microsoft is not the author of the files below, Microsoft is offering you a license subject to the terms of the Microsoft Software License Terms for <strong>@microsoft/windows-admin-center-sdk</strong> (version 6.1.0) (the &ldquo;Microsoft Program&rdquo;). Microsoft reserves all other rights. The notices below are provided for informational purposes only and are not the license terms under which Microsoft distributes these files.</p>
12
+ <p class="meta">Generated automatically at build time &middot; 2026-11-04T04:15:11.412Z &middot; Section 1: 26 distributed component(s) &middot; Section 2: 11 peer.</p>
13
13
  <h2 class="section">Section 1 &mdash; Distributed Components</h2>
14
14
  <p>The third-party software listed here is <strong>distributed within</strong> the Microsoft Program &mdash; either compiled/inlined into its bundles (&ldquo;bundled/inlined&rdquo;) or installed as a runtime dependency (&ldquo;runtime dependency&rdquo;). This file is based on or incorporates material from the projects listed below (Third Party IP). The original copyright notice and the license under which Microsoft received such Third Party IP are set forth below. Such licenses and notices are provided for informational purposes only. Microsoft licenses the Third Party IP to you under the licensing terms for the Microsoft Program. Microsoft reserves all other rights not expressly granted under this agreement, whether by implication, estoppel or otherwise.</p>
15
15
  <ol>
@@ -21,7 +21,7 @@
21
21
  <li>@microsoft/signalr 8.0.7 (MIT)</li>
22
22
  <li>@typescript-eslint/eslint-plugin 8.62.0 (MIT)</li>
23
23
  <li>@typescript-eslint/parser 8.62.0 (MIT)</li>
24
- <li>ajv 6.12.6 (MIT)</li>
24
+ <li>ajv 6.15.0 (MIT)</li>
25
25
  <li>del 8.0.1 (MIT)</li>
26
26
  <li>eslint 9.39.4 (MIT)</li>
27
27
  <li>eslint-plugin-import 2.32.0 (MIT)</li>
@@ -52,7 +52,7 @@
52
52
  <li><a href="https://github.com/dotnet/aspnetcore/tree/main/src/SignalR#readme">@microsoft/signalr</a> 8.0.7 <span class="meta">&mdash; included as runtime dependency &middot; author: Microsoft &middot; no bundled license text file</span></li>
53
53
  <li><a href="https://typescript-eslint.io/packages/eslint-plugin">@typescript-eslint/eslint-plugin</a> 8.62.0 <span class="meta">&mdash; included as runtime dependency &middot; Copyright (c) 2019 typescript-eslint and other contributors</span></li>
54
54
  <li><a href="https://typescript-eslint.io/packages/parser">@typescript-eslint/parser</a> 8.62.0 <span class="meta">&mdash; included as runtime dependency &middot; Copyright (c) 2019 typescript-eslint and other contributors</span></li>
55
- <li><a href="https://github.com/ajv-validator/ajv">ajv</a> 6.12.6 <span class="meta">&mdash; included as runtime dependency &middot; author: Evgeny Poberezkin &middot; Copyright (c) 2015-2017 Evgeny Poberezkin</span></li>
55
+ <li><a href="https://github.com/ajv-validator/ajv">ajv</a> 6.15.0 <span class="meta">&mdash; included as runtime dependency &middot; author: Evgeny Poberezkin &middot; Copyright (c) 2015-2017 Evgeny Poberezkin</span></li>
56
56
  <li>del 8.0.1 <span class="meta">&mdash; included as runtime dependency &middot; author: Sindre Sorhus &lt;sindresorhus@gmail.com&gt;</span></li>
57
57
  <li><a href="https://eslint.org">eslint</a> 9.39.4 <span class="meta">&mdash; included as runtime dependency &middot; author: Nicholas C. Zakas &lt;nicholas+npm@nczconsulting.com&gt; &middot; Copyright OpenJS Foundation and other contributors, &lt;www.openjsf.org&gt;</span></li>
58
58
  <li><a href="https://github.com/import-js/eslint-plugin-import">eslint-plugin-import</a> 2.32.0 <span class="meta">&mdash; included as runtime dependency &middot; author: Ben Mosher &lt;me@benmosher.com&gt; &middot; Copyright (c) 2015 Ben Mosher</span></li>
@@ -408,19 +408,16 @@ software or this license, under any kind of legal claim.***</pre>
408
408
  <table>
409
409
  <thead><tr><th>Component</th><th>Version</th><th>License</th></tr></thead>
410
410
  <tbody>
411
- <tr><td>@angular/animations</td><td>20.3.25</td><td>MIT</td></tr>
412
- <tr><td>@angular/common</td><td>20.3.25</td><td>MIT</td></tr>
413
- <tr><td>@angular/compiler</td><td>20.3.25</td><td>MIT</td></tr>
414
- <tr><td>@angular/core</td><td>20.3.25</td><td>MIT</td></tr>
415
- <tr><td>@angular/forms</td><td>20.3.25</td><td>MIT</td></tr>
416
- <tr><td>@angular/platform-browser</td><td>20.3.25</td><td>MIT</td></tr>
417
- <tr><td>@angular/platform-browser-dynamic</td><td>20.3.25</td><td>MIT</td></tr>
418
- <tr><td><a href="https://github.com/angular/angular/tree/main/packages/router">@angular/router</a></td><td>20.3.25</td><td>MIT</td></tr>
411
+ <tr><td>@angular/common</td><td>20.3.34</td><td>MIT</td></tr>
412
+ <tr><td>@angular/compiler</td><td>20.3.34</td><td>MIT</td></tr>
413
+ <tr><td>@angular/core</td><td>20.3.34</td><td>MIT</td></tr>
414
+ <tr><td>@angular/forms</td><td>20.3.34</td><td>MIT</td></tr>
415
+ <tr><td>@angular/platform-browser</td><td>20.3.34</td><td>MIT</td></tr>
416
+ <tr><td><a href="https://github.com/angular/angular/tree/main/packages/router">@angular/router</a></td><td>20.3.34</td><td>MIT</td></tr>
419
417
  <tr><td><a href="https://www.chartjs.org">chart.js</a></td><td>2.9.4</td><td>MIT</td></tr>
420
418
  <tr><td><a href="https://reactjs.org/">react</a></td><td>^18</td><td>MIT</td></tr>
421
419
  <tr><td><a href="https://reactjs.org/">react-dom</a></td><td>^18</td><td>MIT</td></tr>
422
420
  <tr><td><a href="https://rxjs.dev">rxjs</a></td><td>~7.8.1</td><td>Apache-2.0</td></tr>
423
- <tr><td><a href="https://vite.dev">vite</a></td><td>^8.0.16</td><td>MIT</td></tr>
424
421
  <tr><td>zone.js</td><td>~0.15.1</td><td>MIT</td></tr>
425
422
  </tbody></table>
426
423
  </body>
package/README.md CHANGED
@@ -7,82 +7,159 @@ scaffold and upgrade extensions.
7
7
 
8
8
  ## Requirements
9
9
 
10
- - **Node.js 24 or later** (the `wac` CLI and the Angular 20 toolchain require it).
10
+ - **Node.js 24 or later** (the SDK and bundled `wac` CLI declare this minimum).
11
11
  - A package manager (`npm`, `pnpm`, or `yarn`).
12
12
 
13
13
  ## Install
14
14
 
15
15
  ```sh
16
- npm install @microsoft/windows-admin-center-sdk
16
+ pnpm add @microsoft/windows-admin-center-sdk
17
17
  ```
18
18
 
19
- This makes the `wac` command available (via `npx wac …`, or on your `PATH` when installed
19
+ This makes the `wac` command available (via `pnpm exec wac …`, or on your `PATH` when installed
20
20
  globally).
21
21
 
22
- ## Create an extension
22
+ ## Create an Angular extension
23
23
 
24
24
  Scaffold a new extension project (Angular 20) in the current directory:
25
25
 
26
26
  ```sh
27
27
  # A single tool extension
28
- npx wac create --company <company-name> --name <tool-name>
28
+ pnpm exec wac create --company <company-name> --name <tool-name>
29
29
 
30
30
  # A solution containing one or more tools
31
- npx wac create --company <company-name> --solution <solution-name> --tool <tool-name> --type <tool-type>
31
+ pnpm exec wac create --company <company-name> --solution <solution-name> --tool <tool-name> --type <tool-type>
32
32
  ```
33
33
 
34
- | Flag | Description |
35
- | --- | --- |
36
- | `--company` | Your company or author name (required). |
37
- | `--name` | Tool name for a single-tool extension. |
38
- | `--solution` | Solution name (enables solution mode). |
39
- | `--tool` | Tool name within a solution. |
40
- | `--type` | Tool type within a solution. |
41
- | `--version` | SDK release ring to target: `latest` (default), `insider`, `next`, `experimental`, `release`. |
42
- | `--verbose` | Verbose logging. |
34
+ | Flag | Description |
35
+ | ------------ | --------------------------------------------------------------------------------------------- |
36
+ | `--company` | Your company or author name (required). |
37
+ | `--name` | Tool name for a single-tool extension. |
38
+ | `--solution` | Solution name (enables solution mode). |
39
+ | `--tool` | Tool name within a solution. |
40
+ | `--type` | Tool type within a solution. |
41
+ | `--version` | SDK release ring to target: `latest` (default), `insider`, `next`, `experimental`, `release`. |
42
+ | `--verbose` | Verbose logging. |
43
43
 
44
- Then build and serve:
44
+ Then install, build, and lint:
45
45
 
46
46
  ```sh
47
47
  cd <tool-name>
48
- npm install
49
- npm run build
50
- npm start -- --port=4200
48
+ pnpm install
49
+ pnpm run build
50
+ pnpm run lint
51
51
  ```
52
52
 
53
+ For unit tests, run `pnpm run test -- --watch=false`. The starter uses Puppeteer's
54
+ Chrome browser. If dependency install scripts were skipped, install the test browser
55
+ explicitly with `pnpm exec puppeteer browsers install chrome`.
56
+
57
+ ## Create a React extension
58
+
59
+ ```sh
60
+ pnpm exec wac create-react --company <company-name> --name <tool-name>
61
+ cd <tool-name>
62
+ pnpm install
63
+ pnpm run build
64
+ ```
65
+
66
+ The React starter uses React 18 and Vite 8. The production build generates the
67
+ PowerShell bindings and then runs TypeScript checking; either failure makes the
68
+ build fail. After the first build, `pnpm run typecheck` checks the application
69
+ without rebuilding its bundle. The starter does not include a React unit-test
70
+ runner or lint configuration; add those to your extension's CI as needed.
71
+
72
+ Import React runtime APIs from `@microsoft/windows-admin-center-sdk/react` and
73
+ the Vite plugins from `@microsoft/windows-admin-center-sdk/react/vite`.
74
+
75
+ ## Serve and sideload locally
76
+
77
+ Both starters use the following certificate layout, relative to the generated
78
+ extension directory:
79
+
80
+ ```text
81
+ certificate/
82
+ localhost.cert
83
+ localhost.key
84
+ <tool-name>/
85
+ package.json
86
+ ```
87
+
88
+ Create a development certificate valid for `localhost` with your organization's
89
+ approved certificate tooling. Save its PEM certificate and PEM private key at the
90
+ paths above and trust the certificate on the machine running the browser. Do not
91
+ commit the private key.
92
+
93
+ From the extension directory:
94
+
95
+ ```sh
96
+ pnpm start
97
+ ```
98
+
99
+ Open `https://localhost:4200/manifest.json` to confirm that the certificate is trusted
100
+ and the extension is reachable. Angular requires the certificate files; React falls
101
+ back to HTTP when they are absent, which is not suitable for sideloading into an
102
+ HTTPS WAC page.
103
+
104
+ Enable the developer experience on your local WAC installation. Allow the extension's
105
+ exact HTTPS origin (including its port) in the gateway's developer CORS and frame
106
+ settings. In the WAC browser page's developer console, register the extension:
107
+
108
+ ```js
109
+ MsftSme.sideLoad('https://localhost:4200');
110
+ ```
111
+
112
+ Open the extension from a supported server connection. For React, the sample Services
113
+ page should load its service list through WAC. Use separate ports when testing both
114
+ starters and allow each origin in the gateway settings.
115
+
53
116
  ## Upgrade an extension
54
117
 
55
118
  Upgrade an existing extension to the current Angular/toolchain baseline (Angular 15 → 20,
56
119
  Node 24), run from the extension's root:
57
120
 
58
121
  ```sh
59
- npx wac upgrade
122
+ pnpm exec wac upgrade
60
123
  ```
61
124
 
62
- | Flag | Description |
63
- | --- | --- |
125
+ | Flag | Description |
126
+ | ------------- | ---------------------------------------------------------------------------------------------------------------------------- |
64
127
  | `--stage <n>` | Run a single stage (`1`=configs, `2`=`ng update`, `3`=standalone, `4`=code fixups, `5`=eslint). Default `0` runs all stages. |
65
- | `--pipeline` | CI mode — skip interactive prompts. |
66
- | `--debug` | Verbose logging. |
128
+ | `--pipeline` | CI mode — skip interactive prompts. |
129
+ | `--debug` | Verbose logging. |
67
130
 
68
131
  ## What's in the SDK
69
132
 
70
133
  Import the runtime libraries by subpath:
71
134
 
72
- | Import | Contents |
73
- | --- | --- |
74
- | `@microsoft/windows-admin-center-sdk/core` | Core runtime (RPC, host, notifications, data, manifest, …). |
75
- | `@microsoft/windows-admin-center-sdk/angular` | Angular components, directives, and services. |
76
- | `@microsoft/windows-admin-center-sdk/styles` | Shared CSS and fonts. |
77
- | `@microsoft/windows-admin-center-sdk/angular-devtools` | Build/lint/test tooling (gulp plugins, ESLint base, Prettier, webpack). |
78
-
79
- ## What's new in 6.0.0
135
+ | Import | Contents |
136
+ | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
137
+ | `@microsoft/windows-admin-center-sdk/core` | Core runtime (RPC, host, notifications, data, manifest, …). |
138
+ | `@microsoft/windows-admin-center-sdk/angular` | Angular components, directives, and services. |
139
+ | `@microsoft/windows-admin-center-sdk/react` | React SDK — `AppContextProvider`, `useAppContext` hook, and navigation services for React tool extensions. |
140
+ | `@microsoft/windows-admin-center-sdk/styles` | Shared CSS and fonts. |
141
+ | `@microsoft/windows-admin-center-sdk/angular-devtools` | Build/lint/test tooling (gulp plugins, ESLint base, Prettier, webpack). |
142
+
143
+ ## What's new in 6.1.0
144
+
145
+ - **React scaffolding:** `wac create-react` creates a React 18/Vite 8 tool extension
146
+ with public SDK imports and a sample Services page.
147
+ - **React build plugins:** the `react/vite` subpath provides PowerShell bindings,
148
+ localized manifest resources, and shared core strings.
149
+ - **Scaffold validation:** Angular uses supported Zone.js test entry points and
150
+ declares its build dependencies; React production builds include TypeScript checks.
151
+ - **Toolchain compatibility:** Angular starters keep `schema-utils` 4 at 4.7.0 via
152
+ pnpm/npm overrides to match Angular 20's Webpack version. React declares its own
153
+ Vite dependency rather than constraining the Angular dev server through an SDK peer.
154
+ - **Node.js metadata:** the published SDK declares the same Node 24+ minimum as its CLI.
155
+
156
+ ## Upgrading from 5.x: changes introduced in 6.0.0
80
157
 
81
158
  6.0.0 modernizes the SDK toolchain. It contains **breaking changes** — review before upgrading.
82
159
 
83
160
  **Breaking changes**
84
161
 
85
- - **`wac` CLI now has two commands: `create` and `upgrade`.** The 5.x commands `eslint`
162
+ - **`wac create` and `wac upgrade` replace the legacy CLI commands.** The 5.x commands `eslint`
86
163
  (tslint→eslint migration) and `angular15Upgrade` were removed. The Angular migration now
87
164
  lives under `wac upgrade` (Angular 15 → 20), and lint fixes run as a stage of `wac upgrade`.
88
165
  - **`wac upgrade` changed meaning.** In 5.x it audited/updated dependencies (`--audit`,