@microsoft/teamsfx-core 3.1.4-alpha.f3fb2cd65d.0 → 3.1.4-alpha.f9c867ffc7.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 (298) hide show
  1. package/build/client/devPortalClient.d.ts +43 -0
  2. package/build/client/devPortalClient.d.ts.map +1 -0
  3. package/build/client/devPortalClient.js +626 -0
  4. package/build/client/devPortalClient.js.map +1 -0
  5. package/build/client/graphClient.d.ts +1 -0
  6. package/build/client/graphClient.d.ts.map +1 -1
  7. package/build/client/graphClient.js +17 -2
  8. package/build/client/graphClient.js.map +1 -1
  9. package/build/client/teamsDevPortalClient.d.ts +14 -21
  10. package/build/client/teamsDevPortalClient.d.ts.map +1 -1
  11. package/build/client/teamsDevPortalClient.js +65 -112
  12. package/build/client/teamsDevPortalClient.js.map +1 -1
  13. package/build/client/teamsDevPortalClientProvider.d.ts +6 -0
  14. package/build/client/teamsDevPortalClientProvider.d.ts.map +1 -0
  15. package/build/client/teamsDevPortalClientProvider.js +76 -0
  16. package/build/client/teamsDevPortalClientProvider.js.map +1 -0
  17. package/build/common/featureFlags.d.ts +7 -2
  18. package/build/common/featureFlags.d.ts.map +1 -1
  19. package/build/common/featureFlags.js +8 -3
  20. package/build/common/featureFlags.js.map +1 -1
  21. package/build/common/localizeUtils.d.ts +1 -0
  22. package/build/common/localizeUtils.d.ts.map +1 -1
  23. package/build/common/localizeUtils.js +10 -0
  24. package/build/common/localizeUtils.js.map +1 -1
  25. package/build/common/tools.js +2 -2
  26. package/build/common/tools.js.map +1 -1
  27. package/build/common/utils.d.ts.map +1 -1
  28. package/build/common/utils.js +1 -0
  29. package/build/common/utils.js.map +1 -1
  30. package/build/common/wrappedAxiosClient.d.ts.map +1 -1
  31. package/build/common/wrappedAxiosClient.js +87 -27
  32. package/build/common/wrappedAxiosClient.js.map +1 -1
  33. package/build/component/driver/interface/commonArgs.d.ts +1 -0
  34. package/build/component/driver/interface/commonArgs.d.ts.map +1 -1
  35. package/build/component/driver/teamsApp/appStudio.d.ts.map +1 -1
  36. package/build/component/driver/teamsApp/appStudio.js +10 -6
  37. package/build/component/driver/teamsApp/appStudio.js.map +1 -1
  38. package/build/component/driver/teamsApp/configure.d.ts.map +1 -1
  39. package/build/component/driver/teamsApp/configure.js +12 -8
  40. package/build/component/driver/teamsApp/configure.js.map +1 -1
  41. package/build/component/driver/teamsApp/constants.d.ts +1 -0
  42. package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
  43. package/build/component/driver/teamsApp/constants.js +1 -0
  44. package/build/component/driver/teamsApp/constants.js.map +1 -1
  45. package/build/component/driver/teamsApp/create.d.ts.map +1 -1
  46. package/build/component/driver/teamsApp/create.js +28 -26
  47. package/build/component/driver/teamsApp/create.js.map +1 -1
  48. package/build/component/driver/teamsApp/createAppPackage.js +1 -1
  49. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  50. package/build/component/driver/teamsApp/interfaces/appdefinitions/appUser.d.ts +1 -0
  51. package/build/component/driver/teamsApp/interfaces/appdefinitions/appUser.d.ts.map +1 -1
  52. package/build/component/driver/teamsApp/utils/telemetry.d.ts +0 -1
  53. package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
  54. package/build/component/driver/teamsApp/utils/telemetry.js +0 -1
  55. package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
  56. package/build/component/driver/teamsApp/validateAppPackage.js +3 -3
  57. package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
  58. package/build/component/driver/teamsApp/validateTestCases.js +4 -4
  59. package/build/component/driver/teamsApp/validateTestCases.js.map +1 -1
  60. package/build/component/driver/util/utils.d.ts.map +1 -1
  61. package/build/component/driver/util/utils.js +1 -0
  62. package/build/component/driver/util/utils.js.map +1 -1
  63. package/build/component/feature/collaboration.js +4 -4
  64. package/build/component/feature/collaboration.js.map +1 -1
  65. package/build/component/generator/v4TemplateBridge.d.ts +1 -1
  66. package/build/component/generator/v4TemplateBridge.d.ts.map +1 -1
  67. package/build/component/generator/v4TemplateBridge.js +11 -6
  68. package/build/component/generator/v4TemplateBridge.js.map +1 -1
  69. package/build/component/middleware/questionMW.d.ts.map +1 -1
  70. package/build/component/middleware/questionMW.js +2 -0
  71. package/build/component/middleware/questionMW.js.map +1 -1
  72. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js +4 -4
  73. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js.map +1 -1
  74. package/build/component/utils/envUtil.d.ts +1 -1
  75. package/build/component/utils/envUtil.d.ts.map +1 -1
  76. package/build/component/utils/envUtil.js +10 -2
  77. package/build/component/utils/envUtil.js.map +1 -1
  78. package/build/component/utils/pathUtils.d.ts +4 -4
  79. package/build/component/utils/pathUtils.d.ts.map +1 -1
  80. package/build/component/utils/pathUtils.js +17 -8
  81. package/build/component/utils/pathUtils.js.map +1 -1
  82. package/build/component/utils/settingsUtil.d.ts +1 -1
  83. package/build/component/utils/settingsUtil.d.ts.map +1 -1
  84. package/build/component/utils/settingsUtil.js +3 -3
  85. package/build/component/utils/settingsUtil.js.map +1 -1
  86. package/build/core/FxCore.d.ts.map +1 -1
  87. package/build/core/FxCore.js +7 -6
  88. package/build/core/FxCore.js.map +1 -1
  89. package/build/index.d.ts +2 -2
  90. package/build/index.d.ts.map +1 -1
  91. package/build/index.js +6 -5
  92. package/build/index.js.map +1 -1
  93. package/build/question/scaffold/vsc/CapabilityOptions.d.ts.map +1 -1
  94. package/build/question/scaffold/vsc/CapabilityOptions.js +5 -2
  95. package/build/question/scaffold/vsc/CapabilityOptions.js.map +1 -1
  96. package/build/question/share.js +2 -2
  97. package/build/question/share.js.map +1 -1
  98. package/build/v4/capabilities/declarations.d.ts +140 -0
  99. package/build/v4/capabilities/declarations.d.ts.map +1 -0
  100. package/build/v4/capabilities/declarations.js +59 -0
  101. package/build/v4/capabilities/declarations.js.map +1 -0
  102. package/build/v4/collectInputs/collectInputs.d.ts +1 -0
  103. package/build/v4/collectInputs/collectInputs.d.ts.map +1 -1
  104. package/build/v4/collectInputs/collectInputs.js +113 -222
  105. package/build/v4/collectInputs/collectInputs.js.map +1 -1
  106. package/build/v4/distribution/declarativePackage.d.ts +2 -2
  107. package/build/v4/distribution/declarativePackage.d.ts.map +1 -1
  108. package/build/v4/distribution/declarativePackage.js +2 -1
  109. package/build/v4/distribution/declarativePackage.js.map +1 -1
  110. package/build/v4/distribution/descriptorLanguages.d.ts +9 -0
  111. package/build/v4/distribution/descriptorLanguages.d.ts.map +1 -0
  112. package/build/v4/distribution/descriptorLanguages.js +44 -0
  113. package/build/v4/distribution/descriptorLanguages.js.map +1 -0
  114. package/build/v4/distribution/packageDir.d.ts +6 -1
  115. package/build/v4/distribution/packageDir.d.ts.map +1 -1
  116. package/build/v4/distribution/packageDir.js +6 -1
  117. package/build/v4/distribution/packageDir.js.map +1 -1
  118. package/build/v4/engineVersion.d.ts +1 -1
  119. package/build/v4/engineVersion.js +1 -1
  120. package/build/v4/expression/evaluateExpression.d.ts.map +1 -1
  121. package/build/v4/expression/evaluateExpression.js +15 -13
  122. package/build/v4/expression/evaluateExpression.js.map +1 -1
  123. package/build/v4/mcp/mcpAuthScaffold.js +2 -2
  124. package/build/v4/mcp/mcpAuthScaffold.js.map +1 -1
  125. package/build/v4/pipeline/defineStep.d.ts +10 -0
  126. package/build/v4/pipeline/defineStep.d.ts.map +1 -0
  127. package/build/v4/pipeline/defineStep.js +28 -0
  128. package/build/v4/pipeline/defineStep.js.map +1 -0
  129. package/build/v4/pipeline/runScaffoldPipeline.d.ts +3 -7
  130. package/build/v4/pipeline/runScaffoldPipeline.d.ts.map +1 -1
  131. package/build/v4/pipeline/runScaffoldPipeline.js +26 -16
  132. package/build/v4/pipeline/runScaffoldPipeline.js.map +1 -1
  133. package/build/v4/pipeline/stepParams.d.ts +4 -0
  134. package/build/v4/pipeline/stepParams.d.ts.map +1 -0
  135. package/build/v4/pipeline/stepParams.js +17 -0
  136. package/build/v4/pipeline/stepParams.js.map +1 -0
  137. package/build/v4/providers/createLanguageOptionsProvider.d.ts +13 -0
  138. package/build/v4/providers/createLanguageOptionsProvider.d.ts.map +1 -0
  139. package/build/v4/providers/createLanguageOptionsProvider.js +61 -0
  140. package/build/v4/providers/createLanguageOptionsProvider.js.map +1 -0
  141. package/build/v4/providers/createOptionsProviders.d.ts +3 -1
  142. package/build/v4/providers/createOptionsProviders.d.ts.map +1 -1
  143. package/build/v4/providers/createOptionsProviders.js +67 -61
  144. package/build/v4/providers/createOptionsProviders.js.map +1 -1
  145. package/build/v4/runtime/compatibility/index.d.ts +4 -0
  146. package/build/v4/runtime/compatibility/index.d.ts.map +1 -0
  147. package/build/v4/runtime/compatibility/index.js +11 -0
  148. package/build/v4/runtime/compatibility/index.js.map +1 -0
  149. package/build/v4/runtime/compatibility/legacyOpenApiSearch.d.ts +4 -0
  150. package/build/v4/runtime/compatibility/legacyOpenApiSearch.d.ts.map +1 -0
  151. package/build/v4/runtime/compatibility/legacyOpenApiSearch.js +26 -0
  152. package/build/v4/runtime/compatibility/legacyOpenApiSearch.js.map +1 -0
  153. package/build/v4/runtime/functions/assets/officeAddin.json +48 -0
  154. package/build/v4/runtime/functions/generic.d.ts +10 -0
  155. package/build/v4/runtime/functions/generic.d.ts.map +1 -0
  156. package/build/v4/runtime/functions/generic.js +25 -0
  157. package/build/v4/runtime/functions/generic.js.map +1 -0
  158. package/build/v4/runtime/functions/mcp.d.ts +8 -0
  159. package/build/v4/runtime/functions/mcp.d.ts.map +1 -0
  160. package/build/v4/runtime/functions/mcp.js +28 -0
  161. package/build/v4/runtime/functions/mcp.js.map +1 -0
  162. package/build/v4/runtime/functions/officeAddin.d.ts +27 -0
  163. package/build/v4/runtime/functions/officeAddin.d.ts.map +1 -0
  164. package/build/v4/runtime/functions/officeAddin.js +120 -0
  165. package/build/v4/runtime/functions/officeAddin.js.map +1 -0
  166. package/build/v4/runtime/inMemoryRuntime.d.ts.map +1 -1
  167. package/build/v4/runtime/inMemoryRuntime.js +7 -0
  168. package/build/v4/runtime/inMemoryRuntime.js.map +1 -1
  169. package/build/v4/runtime/packageParse.d.ts +13 -8
  170. package/build/v4/runtime/packageParse.d.ts.map +1 -1
  171. package/build/v4/runtime/packageParse.js +13 -219
  172. package/build/v4/runtime/packageParse.js.map +1 -1
  173. package/build/v4/runtime/realRuntime.d.ts.map +1 -1
  174. package/build/v4/runtime/realRuntime.js +44 -5
  175. package/build/v4/runtime/realRuntime.js.map +1 -1
  176. package/build/v4/runtime/renderFragment.d.ts +2 -0
  177. package/build/v4/runtime/renderFragment.d.ts.map +1 -0
  178. package/build/v4/runtime/renderFragment.js +11 -0
  179. package/build/v4/runtime/renderFragment.js.map +1 -0
  180. package/build/v4/runtime/runtimeRegistry.d.ts +4 -4
  181. package/build/v4/runtime/runtimeRegistry.d.ts.map +1 -1
  182. package/build/v4/runtime/runtimeRegistry.js +9 -106
  183. package/build/v4/runtime/runtimeRegistry.js.map +1 -1
  184. package/build/v4/runtime/scaffold.d.ts +2 -0
  185. package/build/v4/runtime/scaffold.d.ts.map +1 -1
  186. package/build/v4/runtime/scaffold.js +15 -12
  187. package/build/v4/runtime/scaffold.js.map +1 -1
  188. package/build/v4/runtime/scaffoldFromPackageDir.d.ts.map +1 -1
  189. package/build/v4/runtime/scaffoldFromPackageDir.js +1 -4
  190. package/build/v4/runtime/scaffoldFromPackageDir.js.map +1 -1
  191. package/build/v4/runtime/selectLanguageContent.d.ts +1 -0
  192. package/build/v4/runtime/selectLanguageContent.d.ts.map +1 -1
  193. package/build/v4/runtime/selectLanguageContent.js +5 -1
  194. package/build/v4/runtime/selectLanguageContent.js.map +1 -1
  195. package/build/v4/runtime/services/daManifestService.d.ts +9 -0
  196. package/build/v4/runtime/services/daManifestService.d.ts.map +1 -0
  197. package/build/v4/runtime/services/daManifestService.js +102 -0
  198. package/build/v4/runtime/services/daManifestService.js.map +1 -0
  199. package/build/v4/runtime/steps/assets/metaOs.json +197 -0
  200. package/build/v4/runtime/steps/assets/openApiAuth.json +33 -0
  201. package/build/v4/runtime/steps/assets/openApiCustomApi.json +141 -0
  202. package/build/v4/runtime/steps/daAction.d.ts +3 -1
  203. package/build/v4/runtime/steps/daAction.d.ts.map +1 -1
  204. package/build/v4/runtime/steps/daAction.js +25 -25
  205. package/build/v4/runtime/steps/daAction.js.map +1 -1
  206. package/build/v4/runtime/steps/daSensitivity.d.ts +3 -2
  207. package/build/v4/runtime/steps/daSensitivity.d.ts.map +1 -1
  208. package/build/v4/runtime/steps/daSensitivity.js +16 -16
  209. package/build/v4/runtime/steps/daSensitivity.js.map +1 -1
  210. package/build/v4/runtime/steps/mcpAuth.d.ts +2 -2
  211. package/build/v4/runtime/steps/mcpAuth.d.ts.map +1 -1
  212. package/build/v4/runtime/steps/mcpAuth.js +40 -58
  213. package/build/v4/runtime/steps/mcpAuth.js.map +1 -1
  214. package/build/v4/runtime/steps/mcpLocal.d.ts +1 -1
  215. package/build/v4/runtime/steps/mcpLocal.d.ts.map +1 -1
  216. package/build/v4/runtime/steps/mcpLocal.js +19 -31
  217. package/build/v4/runtime/steps/mcpLocal.js.map +1 -1
  218. package/build/v4/runtime/steps/mcpStatic.d.ts +1 -1
  219. package/build/v4/runtime/steps/mcpStatic.d.ts.map +1 -1
  220. package/build/v4/runtime/steps/mcpStatic.js +33 -39
  221. package/build/v4/runtime/steps/mcpStatic.js.map +1 -1
  222. package/build/v4/runtime/steps/metaOs.d.ts +2 -2
  223. package/build/v4/runtime/steps/metaOs.d.ts.map +1 -1
  224. package/build/v4/runtime/steps/metaOs.js +46 -169
  225. package/build/v4/runtime/steps/metaOs.js.map +1 -1
  226. package/build/v4/runtime/steps/officeAddin.d.ts +1 -1
  227. package/build/v4/runtime/steps/officeAddin.d.ts.map +1 -1
  228. package/build/v4/runtime/steps/officeAddin.js +16 -20
  229. package/build/v4/runtime/steps/officeAddin.js.map +1 -1
  230. package/build/v4/runtime/steps/openApi.d.ts +2 -2
  231. package/build/v4/runtime/steps/openApi.d.ts.map +1 -1
  232. package/build/v4/runtime/steps/openApi.js +46 -112
  233. package/build/v4/runtime/steps/openApi.js.map +1 -1
  234. package/build/v4/runtime/steps/openApiAuth.d.ts +9 -0
  235. package/build/v4/runtime/steps/openApiAuth.d.ts.map +1 -0
  236. package/build/v4/runtime/steps/openApiAuth.js +51 -0
  237. package/build/v4/runtime/steps/openApiAuth.js.map +1 -0
  238. package/build/v4/runtime/steps/openApiCustomApi.d.ts.map +1 -1
  239. package/build/v4/runtime/steps/openApiCustomApi.js +9 -119
  240. package/build/v4/runtime/steps/openApiCustomApi.js.map +1 -1
  241. package/build/v4/runtime/whitelist.d.ts +4 -38
  242. package/build/v4/runtime/whitelist.d.ts.map +1 -1
  243. package/build/v4/runtime/whitelist.js +30 -190
  244. package/build/v4/runtime/whitelist.js.map +1 -1
  245. package/build/v4/surface/createFloorTail.d.ts +2 -2
  246. package/build/v4/surface/createFloorTail.d.ts.map +1 -1
  247. package/build/v4/surface/createFloorTail.js +5 -22
  248. package/build/v4/surface/createFloorTail.js.map +1 -1
  249. package/build/v4/surface/createInputs.d.ts +2 -2
  250. package/build/v4/surface/createInputs.d.ts.map +1 -1
  251. package/build/v4/surface/createInputs.js +17 -44
  252. package/build/v4/surface/createInputs.js.map +1 -1
  253. package/build/v4/surface/createSelectorWalk.d.ts.map +1 -1
  254. package/build/v4/surface/createSelectorWalk.js +2 -56
  255. package/build/v4/surface/createSelectorWalk.js.map +1 -1
  256. package/build/v4/surface/localizePrompt.d.ts +2 -0
  257. package/build/v4/surface/localizePrompt.d.ts.map +1 -1
  258. package/build/v4/surface/localizePrompt.js +0 -1
  259. package/build/v4/surface/localizePrompt.js.map +1 -1
  260. package/build/v4/surface/modifySelectorWalk.d.ts.map +1 -1
  261. package/build/v4/surface/modifySelectorWalk.js +2 -52
  262. package/build/v4/surface/modifySelectorWalk.js.map +1 -1
  263. package/build/v4/surface/selectorPresentation.d.ts +5 -0
  264. package/build/v4/surface/selectorPresentation.d.ts.map +1 -0
  265. package/build/v4/surface/selectorPresentation.js +78 -0
  266. package/build/v4/surface/selectorPresentation.js.map +1 -0
  267. package/build/v4/validation/capabilityCatalog.d.ts +2 -2
  268. package/build/v4/validation/capabilityCatalog.d.ts.map +1 -1
  269. package/build/v4/validation/capabilityCatalog.js +9 -46
  270. package/build/v4/validation/capabilityCatalog.js.map +1 -1
  271. package/build/v4/validation/packageParse.d.ts +27 -0
  272. package/build/v4/validation/packageParse.d.ts.map +1 -0
  273. package/build/v4/validation/packageParse.js +247 -0
  274. package/build/v4/validation/packageParse.js.map +1 -0
  275. package/build/v4/validation/templateArchiveValidation.d.ts +2 -2
  276. package/build/v4/validation/templateArchiveValidation.d.ts.map +1 -1
  277. package/build/v4/validation/templateArchiveValidation.js +7 -2
  278. package/build/v4/validation/templateArchiveValidation.js.map +1 -1
  279. package/build/v4/validation/validateTemplatePackage.d.ts +3 -2
  280. package/build/v4/validation/validateTemplatePackage.d.ts.map +1 -1
  281. package/build/v4/validation/validateTemplatePackage.js +23 -3
  282. package/build/v4/validation/validateTemplatePackage.js.map +1 -1
  283. package/build/v4/validators/createInputValidators.d.ts.map +1 -1
  284. package/build/v4/validators/createInputValidators.js +9 -8
  285. package/build/v4/validators/createInputValidators.js.map +1 -1
  286. package/package.json +3 -3
  287. package/resource/package.nls.json +5 -1
  288. package/templates/fallback/common.zip +0 -0
  289. package/templates/fallback/csharp.zip +0 -0
  290. package/templates/fallback/js.zip +0 -0
  291. package/templates/fallback/python.zip +0 -0
  292. package/templates/fallback/ts.zip +0 -0
  293. package/templates/metadata.zip +0 -0
  294. package/templates/ui/tdpNode.json +1 -1
  295. package/templates/ui/wizardNode.json +1 -1
  296. package/templates/v4/create-selector.json +2 -2
  297. package/templates/v4/templates-metadata.zip +0 -0
  298. package/templates/v4/templates.zip +0 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.officeAddinDebugApp = exports.officeAddinDebugScripts = exports.officeAddinLaunchCompounds = exports.officeAddinLaunchConfigurations = exports.officeAddinManifestScopes = exports.officeAddinManifestScope = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const officeAddin_json_1 = tslib_1.__importDefault(require("./assets/officeAddin.json"));
8
+ const renderFragment_1 = require("../renderFragment");
9
+ const generic_1 = require("./generic");
10
+ /** Office add-in manifest requirement scope for each host id. */
11
+ const OFFICE_ADDIN_HOST_SCOPE = {
12
+ outlook: "mail",
13
+ excel: "workbook",
14
+ word: "document",
15
+ powerpoint: "presentation",
16
+ };
17
+ /** Stable host order for a deterministic multi-scope render. */
18
+ const OFFICE_ADDIN_HOST_ORDER = ["mail", "workbook", "document", "presentation"];
19
+ /** Whitelist fn `officeAddinManifestScope(host)` — the single-host manifest scope literal. */
20
+ const officeAddinManifestScope = (host) => `"${OFFICE_ADDIN_HOST_SCOPE[host] ?? OFFICE_ADDIN_HOST_SCOPE.word}"`;
21
+ exports.officeAddinManifestScope = officeAddinManifestScope;
22
+ /**
23
+ * Whitelist fn `officeAddinManifestScopes(csv)` — the multiSelect host set rendered
24
+ * as the inner body of a manifest `scopes` JSON array. Pre-joins so the array stays
25
+ * valid for any host subset (v3 parity: no trailing-comma breakage).
26
+ */
27
+ const officeAddinManifestScopes = (csv) => {
28
+ const selected = new Set((0, generic_1.parseCsv)(csv).map((host) => OFFICE_ADDIN_HOST_SCOPE[host]));
29
+ const scopes = OFFICE_ADDIN_HOST_ORDER.filter((scope) => selected.has(scope));
30
+ const body = scopes.length > 0 ? scopes : [OFFICE_ADDIN_HOST_SCOPE.word];
31
+ return body.map((scope) => `"${scope}"`).join(",\n ");
32
+ };
33
+ exports.officeAddinManifestScopes = officeAddinManifestScopes;
34
+ /**
35
+ * Debug launch surface for the Office task-pane template.
36
+ *
37
+ * These functions pre-join the `.vscode/launch.json` and `package.json` host
38
+ * entries instead of the `{{#HostOutlook}}` Mustache sections the manifest uses.
39
+ * The manifest's optional blocks each sit next to a guaranteed-present sibling
40
+ * (the default permission / runtime / ribbon), so a section can carry its own
41
+ * trailing comma safely. The launch configs, compounds, and debug scripts are
42
+ * *fully* optional arrays — every element depends on a host that may be
43
+ * deselected — so there is no anchor element to absorb a trailing comma, and
44
+ * flat Mustache cannot suppress the comma after the last selected block. A
45
+ * comma `join` over the selected hosts is the only comma-correct option, which
46
+ * only a function (not a template) can express.
47
+ *
48
+ * This mirrors how v3 handles the same files: rather than editing JSON text, v3
49
+ * scaffolds all hosts and then `Array.filter`s the parsed `configurations` /
50
+ * `compounds` / `scripts` and re-serializes (officeAddin generator `post`). v4
51
+ * has no post-render file mutation, so the equivalent filtered-list-to-string
52
+ * happens here at render time instead.
53
+ */
54
+ const OFFICE_ADDIN_HOST_LABEL = {
55
+ word: "Word",
56
+ excel: "Excel",
57
+ powerpoint: "PowerPoint",
58
+ outlook: "Outlook",
59
+ };
60
+ const OFFICE_ADDIN_LAUNCH_HOST_ORDER = ["word", "excel", "powerpoint", "outlook"];
61
+ /** Selected hosts in canonical order, defaulting to word when nothing is selected. */
62
+ function selectedLaunchHosts(csv) {
63
+ const selected = new Set((0, generic_1.parseCsv)(csv));
64
+ const hosts = OFFICE_ADDIN_LAUNCH_HOST_ORDER.filter((host) => selected.has(host));
65
+ return hosts.length > 0 ? hosts : ["word"];
66
+ }
67
+ /** Indent a multi-line JSON fragment so it nests under the given column. */
68
+ function indentJson(json, spaces) {
69
+ const pad = " ".repeat(spaces);
70
+ return json
71
+ .split("\n")
72
+ .map((line) => (line.length > 0 ? pad + line : line))
73
+ .join("\n");
74
+ }
75
+ /**
76
+ * Whitelist fn `officeAddinLaunchConfigurations(csv)` — the inner body of the
77
+ * `.vscode/launch.json` `configurations` array, limited to the selected hosts.
78
+ */
79
+ const officeAddinLaunchConfigurations = (csv) => {
80
+ const blocks = selectedLaunchHosts(csv).flatMap((host) => {
81
+ const label = OFFICE_ADDIN_HOST_LABEL[host];
82
+ return [
83
+ (0, renderFragment_1.renderFragment)(officeAddin_json_1.default.launchConfigurations[0], { host, label }),
84
+ (0, renderFragment_1.renderFragment)(officeAddin_json_1.default.launchConfigurations[1], { host, label }),
85
+ ];
86
+ });
87
+ return blocks
88
+ .map((block) => indentJson(block, 4))
89
+ .join(",\n")
90
+ .trimStart();
91
+ };
92
+ exports.officeAddinLaunchConfigurations = officeAddinLaunchConfigurations;
93
+ /**
94
+ * Whitelist fn `officeAddinLaunchCompounds(csv)` — the inner body of the
95
+ * `.vscode/launch.json` `compounds` array, limited to the selected hosts.
96
+ */
97
+ const officeAddinLaunchCompounds = (csv) => {
98
+ const blocks = selectedLaunchHosts(csv).map((host) => {
99
+ const label = OFFICE_ADDIN_HOST_LABEL[host];
100
+ return (0, renderFragment_1.renderFragment)(officeAddin_json_1.default.launchCompounds[0], { host, label });
101
+ });
102
+ return blocks
103
+ .map((block) => indentJson(block, 4))
104
+ .join(",\n")
105
+ .trimStart();
106
+ };
107
+ exports.officeAddinLaunchCompounds = officeAddinLaunchCompounds;
108
+ /**
109
+ * Whitelist fn `officeAddinDebugScripts(csv)` — the `start:desktop:<host>` npm
110
+ * script entries for the selected hosts, each on its own line with a trailing comma.
111
+ */
112
+ const officeAddinDebugScripts = (csv) => selectedLaunchHosts(csv)
113
+ .map((host) => (0, renderFragment_1.renderFragment)(officeAddin_json_1.default.debugScripts[0], { host }))
114
+ .join("\n")
115
+ .trimStart();
116
+ exports.officeAddinDebugScripts = officeAddinDebugScripts;
117
+ /** Whitelist fn `officeAddinDebugApp(csv)` — the default `app_to_debug` host. */
118
+ const officeAddinDebugApp = (csv) => selectedLaunchHosts(csv)[0];
119
+ exports.officeAddinDebugApp = officeAddinDebugApp;
120
+ //# sourceMappingURL=officeAddin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"officeAddin.js","sourceRoot":"","sources":["../../../../src/v4/runtime/functions/officeAddin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inMemoryRuntime.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/inMemoryRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAY,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAE9E,qDAAqD;AAErD,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,6FAA6F;IAC7F,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,wFAAwF;IACxF,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,gEAAgE;IAChE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACtC,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CAoCjB"}
1
+ {"version":3,"file":"inMemoryRuntime.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/inMemoryRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAY,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAE9E,qDAAqD;AAErD,uGAAuG;AACvG,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,6FAA6F;IAC7F,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,wFAAwF;IACxF,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,gEAAgE;IAChE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACtC,YAAY,CAAC,EAAE,YAAY,GAC1B,eAAe,CA2CjB"}
@@ -14,6 +14,13 @@ function createInMemoryRuntime(flagReader, stepRegistry) {
14
14
  const warnings = [];
15
15
  const exprPort = (0, whitelist_1.createExpressionPort)(flagReader);
16
16
  const sink = {
17
+ writeNew: (path, data) => {
18
+ if (files.has(path)) {
19
+ return false;
20
+ }
21
+ files.set(path, data);
22
+ return true;
23
+ },
17
24
  write: (path, data) => {
18
25
  files.set(path, data);
19
26
  },
@@ -1 +1 @@
1
- {"version":3,"file":"inMemoryRuntime.js","sourceRoot":"","sources":["../../../src/v4/runtime/inMemoryRuntime.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AA2BlC,sDAuCC;AA7DD,2DAA2D;AAC3D,2CAAgC;AAChC,2CAAmD;AACnD,uDAA8E;AAkB9E,kCAAkC;AAClC,SAAgB,qBAAqB,CACnC,UAAsC,EACtC,YAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC1E,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;IAClD,MAAM,IAAI,GAAa;QACrB,KAAK,EAAE,CAAC,IAAY,EAAE,IAAY,EAAQ,EAAE;YAC1C,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,EAAE,CAAC,IAAY,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;KAC5D,CAAC;IACF,MAAM,IAAI,GAAG,IAAA,mCAAiB,EAC5B,QAAQ,EACR,IAAI,EACJ,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,eAAe,GAAG,YAAY,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,oBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAA,eAAE,EAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,EACD,YAAY,EACZ,CAAC,OAAgB,EAAQ,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"inMemoryRuntime.js","sourceRoot":"","sources":["../../../src/v4/runtime/inMemoryRuntime.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AA2BlC,sDA8CC;AApED,2DAA2D;AAC3D,2CAAgC;AAChC,2CAAmD;AACnD,uDAA8E;AAkB9E,kCAAkC;AAClC,SAAgB,qBAAqB,CACnC,UAAsC,EACtC,YAA2B;IAE3B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC1E,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;IAClD,MAAM,IAAI,GAAa;QACrB,QAAQ,EAAE,CAAC,IAAY,EAAE,IAAY,EAAW,EAAE;YAChD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,EAAE,CAAC,IAAY,EAAE,IAAY,EAAQ,EAAE;YAC1C,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,EAAE,CAAC,IAAY,EAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;KAC5D,CAAC;IACF,MAAM,IAAI,GAAG,IAAA,mCAAiB,EAC5B,QAAQ,EACR,IAAI,EACJ,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,eAAe,GAAG,YAAY,WAAW,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,oBAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7F,MAAM,OAAO,GAAG,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC;QACzF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;QACrC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,0BAA0B,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAA,eAAE,EAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,EACD,YAAY,EACZ,CAAC,OAAgB,EAAQ,EAAE;QACzB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC"}
@@ -1,13 +1,18 @@
1
- import { FxError } from "@microsoft/teamsfx-api";
2
- import { Result } from "neverthrow";
3
- import { ReplaceMapEntry } from "../renderContext/buildRenderContext";
4
- import { Pipeline } from "../pipeline/runScaffoldPipeline";
5
- /** `SystemError` name: a package file's shape is not the discriminated form (a build gate gap). */
6
- export declare const PACKAGE_PARSE_ERROR = "TemplatePackageParseError";
1
+ import type { FxError } from "@microsoft/teamsfx-api";
2
+ import type { Result } from "neverthrow";
3
+ import type { ReplaceMapEntry } from "../renderContext/buildRenderContext";
4
+ import type { TemplateFileEntry } from "../model/dataModel";
5
+ import type { Pipeline } from "../pipeline/runScaffoldPipeline";
6
+ import type { PreparedTemplate } from "../validation/packageParse";
7
+ export { PACKAGE_PARSE_ERROR, parseDeclaredKeys } from "../validation/packageParse";
8
+ export type { PreparedTemplate } from "../validation/packageParse";
9
+ export declare function prepareTemplate(raw: {
10
+ descriptor: unknown;
11
+ pipeline: unknown;
12
+ content: TemplateFileEntry[];
13
+ }): Result<PreparedTemplate, FxError>;
7
14
  /** Extract `descriptor.replaceMap` as a typed entry list (absent ⇒ empty). */
8
15
  export declare function parseReplaceMap(descriptor: unknown): Result<ReplaceMapEntry[], FxError>;
9
- /** Extract declared option ids used to seed the render-context identifier domain. */
10
- export declare function parseDeclaredKeys(descriptor: unknown): string[];
11
16
  /** Extract a parsed `pipeline.json` as a typed `Pipeline`. */
12
17
  export declare function parsePipeline(raw: unknown): Result<Pipeline, FxError>;
13
18
  //# sourceMappingURL=packageParse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageParse.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/packageParse.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAe,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EACL,QAAQ,EAKT,MAAM,iCAAiC,CAAC;AAMzC,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,8BAA8B,CAAC;AA6C/D,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAoBvF;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,EAAE,CAa/D;AAwHD,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAiCrE"}
1
+ {"version":3,"file":"packageParse.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/packageParse.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnE,wBAAgB,eAAe,CAAC,GAAG,EAAE;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B,GAAG,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAEpC;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAEvF;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAErE"}
@@ -2,234 +2,28 @@
2
2
  // Copyright (c) Microsoft Corporation.
3
3
  // Licensed under the MIT license.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.PACKAGE_PARSE_ERROR = void 0;
5
+ exports.parseDeclaredKeys = exports.PACKAGE_PARSE_ERROR = void 0;
6
+ exports.prepareTemplate = prepareTemplate;
6
7
  exports.parseReplaceMap = parseReplaceMap;
7
- exports.parseDeclaredKeys = parseDeclaredKeys;
8
8
  exports.parsePipeline = parsePipeline;
9
+ const tslib_1 = require("tslib");
9
10
  const teamsfx_api_1 = require("@microsoft/teamsfx-api");
10
- const neverthrow_1 = require("neverthrow");
11
- /** Typed boundary parsers for descriptor and pipeline JSON. */
12
- const SOURCE = "Scaffold";
13
- /** `SystemError` name: a package file's shape is not the discriminated form (a build gate gap). */
14
- exports.PACKAGE_PARSE_ERROR = "TemplatePackageParseError";
15
- function systemError(message) {
16
- return new teamsfx_api_1.SystemError({ source: SOURCE, name: exports.PACKAGE_PARSE_ERROR, message });
11
+ const parser = tslib_1.__importStar(require("../validation/packageParse"));
12
+ var packageParse_1 = require("../validation/packageParse");
13
+ Object.defineProperty(exports, "PACKAGE_PARSE_ERROR", { enumerable: true, get: function () { return packageParse_1.PACKAGE_PARSE_ERROR; } });
14
+ Object.defineProperty(exports, "parseDeclaredKeys", { enumerable: true, get: function () { return packageParse_1.parseDeclaredKeys; } });
15
+ function systemError(name, message) {
16
+ return new teamsfx_api_1.SystemError({ source: "Scaffold", name, message });
17
17
  }
18
- function isRecord(value) {
19
- return typeof value === "object" && value !== null && !Array.isArray(value);
20
- }
21
- /** Read a record field as a string, or `undefined` when absent / non-string. */
22
- function stringField(record, key) {
23
- const value = record[key];
24
- return typeof value === "string" ? value : undefined;
25
- }
26
- /** Discriminate one `replaceMap` entry by its present producer key (`const`/`from`/`expr`/`when`). */
27
- function toReplaceMapEntry(item) {
28
- if (!isRecord(item)) {
29
- return undefined;
30
- }
31
- const varName = stringField(item, "var");
32
- if (varName === undefined) {
33
- return undefined;
34
- }
35
- const constVal = stringField(item, "const");
36
- if (constVal !== undefined) {
37
- return { var: varName, const: constVal };
38
- }
39
- const fromVal = stringField(item, "from");
40
- if (fromVal !== undefined) {
41
- return { var: varName, from: fromVal };
42
- }
43
- const exprVal = stringField(item, "expr");
44
- if (exprVal !== undefined) {
45
- return { var: varName, expr: exprVal };
46
- }
47
- const whenVal = stringField(item, "when");
48
- const valueVal = stringField(item, "value");
49
- if (whenVal !== undefined && valueVal !== undefined) {
50
- return { var: varName, when: whenVal, value: valueVal };
51
- }
52
- return undefined;
18
+ function prepareTemplate(raw) {
19
+ return parser.prepareTemplate(raw, systemError);
53
20
  }
54
21
  /** Extract `descriptor.replaceMap` as a typed entry list (absent ⇒ empty). */
55
22
  function parseReplaceMap(descriptor) {
56
- if (!isRecord(descriptor)) {
57
- return (0, neverthrow_1.err)(systemError("descriptor.json must be a JSON object"));
58
- }
59
- const raw = descriptor.replaceMap;
60
- if (raw === undefined) {
61
- return (0, neverthrow_1.ok)([]);
62
- }
63
- if (!Array.isArray(raw)) {
64
- return (0, neverthrow_1.err)(systemError("descriptor.replaceMap must be an array"));
65
- }
66
- const entries = [];
67
- for (const item of raw) {
68
- const entry = toReplaceMapEntry(item);
69
- if (entry === undefined) {
70
- return (0, neverthrow_1.err)(systemError(`invalid replaceMap entry: ${JSON.stringify(item)}`));
71
- }
72
- entries.push(entry);
73
- }
74
- return (0, neverthrow_1.ok)(entries);
75
- }
76
- /** Extract declared option ids used to seed the render-context identifier domain. */
77
- function parseDeclaredKeys(descriptor) {
78
- if (!isRecord(descriptor)) {
79
- return [];
80
- }
81
- const optionsSchema = descriptor.optionsSchema;
82
- if (!isRecord(optionsSchema)) {
83
- return [];
84
- }
85
- const properties = optionsSchema.properties;
86
- if (!isRecord(properties)) {
87
- return [];
88
- }
89
- return Object.keys(properties);
90
- }
91
- function toStringArray(raw) {
92
- if (!Array.isArray(raw)) {
93
- return undefined;
94
- }
95
- const out = [];
96
- for (const value of raw) {
97
- if (typeof value !== "string") {
98
- return undefined;
99
- }
100
- out.push(value);
101
- }
102
- return out;
103
- }
104
- /** Coerce a `with` block to `StepParams` (string | boolean | string[] values only). */
105
- function toStepParams(raw) {
106
- if (!isRecord(raw)) {
107
- return undefined;
108
- }
109
- const params = {};
110
- for (const [key, value] of Object.entries(raw)) {
111
- if (typeof value === "string" || typeof value === "boolean") {
112
- params[key] = value;
113
- continue;
114
- }
115
- const stringArray = toStringArray(value);
116
- if (stringArray === undefined) {
117
- return undefined;
118
- }
119
- params[key] = stringArray;
120
- }
121
- return params;
122
- }
123
- function applyConditionalMetadata(item, target, rejectMalformedWhen) {
124
- const comment = stringField(item, "comment");
125
- if (comment !== undefined) {
126
- target.comment = comment;
127
- }
128
- const when = stringField(item, "when");
129
- if (when !== undefined) {
130
- target.when = when;
131
- }
132
- else if (rejectMalformedWhen && item.when !== undefined) {
133
- return false;
134
- }
135
- return true;
136
- }
137
- function toPipelineStep(item) {
138
- if (!isRecord(item)) {
139
- return undefined;
140
- }
141
- const stepName = stringField(item, "step");
142
- if (stepName === undefined) {
143
- return undefined;
144
- }
145
- const result = { step: stepName };
146
- if (!applyConditionalMetadata(item, result, false)) {
147
- return undefined;
148
- }
149
- if (item.with !== undefined) {
150
- const params = toStepParams(item.with);
151
- if (params === undefined) {
152
- return undefined;
153
- }
154
- result.with = params;
155
- }
156
- if (item.produces !== undefined) {
157
- const produces = toStringArray(item.produces);
158
- if (produces === undefined) {
159
- return undefined;
160
- }
161
- result.produces = produces;
162
- }
163
- return result;
164
- }
165
- function toRenderFilter(item) {
166
- if (!isRecord(item)) {
167
- return undefined;
168
- }
169
- const exclude = toStringArray(item.exclude);
170
- if (exclude === undefined) {
171
- return undefined;
172
- }
173
- const result = { exclude };
174
- if (!applyConditionalMetadata(item, result, true)) {
175
- return undefined;
176
- }
177
- return result;
178
- }
179
- function toPipelineRender(raw) {
180
- if (!isRecord(raw)) {
181
- return undefined;
182
- }
183
- const result = {};
184
- if (raw.filters !== undefined) {
185
- if (!Array.isArray(raw.filters)) {
186
- return undefined;
187
- }
188
- const filters = [];
189
- for (const item of raw.filters) {
190
- const filter = toRenderFilter(item);
191
- if (filter === undefined) {
192
- return undefined;
193
- }
194
- filters.push(filter);
195
- }
196
- result.filters = filters;
197
- }
198
- return result;
23
+ return parser.parseReplaceMap(descriptor, systemError);
199
24
  }
200
25
  /** Extract a parsed `pipeline.json` as a typed `Pipeline`. */
201
26
  function parsePipeline(raw) {
202
- if (!isRecord(raw)) {
203
- return (0, neverthrow_1.err)(systemError("pipeline.json must be a JSON object"));
204
- }
205
- const name = stringField(raw, "pipeline");
206
- if (name === undefined) {
207
- return (0, neverthrow_1.err)(systemError("pipeline.pipeline (the orchestration name) is required"));
208
- }
209
- if (!Array.isArray(raw.steps)) {
210
- return (0, neverthrow_1.err)(systemError("pipeline.steps must be an array"));
211
- }
212
- const steps = [];
213
- for (const item of raw.steps) {
214
- const step = toPipelineStep(item);
215
- if (step === undefined) {
216
- return (0, neverthrow_1.err)(systemError(`invalid pipeline step: ${JSON.stringify(item)}`));
217
- }
218
- steps.push(step);
219
- }
220
- const comment = stringField(raw, "comment");
221
- let render;
222
- if (raw.render !== undefined) {
223
- render = toPipelineRender(raw.render);
224
- if (render === undefined) {
225
- return (0, neverthrow_1.err)(systemError(`invalid pipeline render: ${JSON.stringify(raw.render)}`));
226
- }
227
- }
228
- return (0, neverthrow_1.ok)({
229
- pipeline: name,
230
- ...(comment !== undefined ? { comment } : {}),
231
- ...(render !== undefined ? { render } : {}),
232
- steps,
233
- });
27
+ return parser.parsePipeline(raw, systemError);
234
28
  }
235
29
  //# sourceMappingURL=packageParse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageParse.js","sourceRoot":"","sources":["../../../src/v4/runtime/packageParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packageParse.js","sourceRoot":"","sources":["../../../src/v4/runtime/packageParse.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAkBlC,0CAMC;AAGD,0CAEC;AAGD,sCAEC;;AAhCD,wDAAqD;AAMrD,2EAAqD;AAGrD,2DAAoF;AAA3E,mHAAA,mBAAmB,OAAA;AAAE,iHAAA,iBAAiB,OAAA;AAG/C,SAAS,WAAW,CAAC,IAAY,EAAE,OAAe;IAChD,OAAO,IAAI,yBAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,SAAgB,eAAe,CAAC,GAI/B;IACC,OAAO,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,SAAgB,eAAe,CAAC,UAAmB;IACjD,OAAO,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AACzD,CAAC;AAED,8DAA8D;AAC9D,SAAgB,aAAa,CAAC,GAAY;IACxC,OAAO,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"realRuntime.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/realRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAY,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAkC9E,wFAAwF;AACxF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACvC,WAAW,CA4Bb"}
1
+ {"version":3,"file":"realRuntime.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/realRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAO9D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAY,YAAY,EAAqB,MAAM,mBAAmB,CAAC;AAoD9E,wFAAwF;AACxF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EACtC,YAAY,CAAC,EAAE,YAAY,EAC3B,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACvC,WAAW,CA+Cb"}
@@ -5,8 +5,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.createRealRuntime = createRealRuntime;
6
6
  const tslib_1 = require("tslib");
7
7
  const teamsfx_api_1 = require("@microsoft/teamsfx-api");
8
- const fs = tslib_1.__importStar(require("fs-extra"));
8
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
9
9
  const path = tslib_1.__importStar(require("path"));
10
+ const localizeUtils_1 = require("../../common/localizeUtils");
10
11
  const envUtil_1 = require("../../component/utils/envUtil");
11
12
  const whitelist_1 = require("./whitelist");
12
13
  const runtimeRegistry_1 = require("./runtimeRegistry");
@@ -26,6 +27,25 @@ function containedPath(rootDir, entryPath) {
26
27
  message: `The scaffold tried to write outside the output directory: "${entryPath}".`,
27
28
  });
28
29
  }
30
+ let componentPath = base;
31
+ for (const component of rel.split(path.sep)) {
32
+ componentPath = path.join(componentPath, component);
33
+ try {
34
+ if (fs_extra_1.default.lstatSync(componentPath).isSymbolicLink()) {
35
+ throw new teamsfx_api_1.SystemError({
36
+ source: SOURCE,
37
+ name: SCAFFOLD_PATH_ESCAPE,
38
+ message: (0, localizeUtils_1.getLocalizedString)("core.openPluginExport.invalidOutputPath"),
39
+ });
40
+ }
41
+ }
42
+ catch (error) {
43
+ if (isFileNotFound(error)) {
44
+ break;
45
+ }
46
+ throw error;
47
+ }
48
+ }
29
49
  return out;
30
50
  }
31
51
  /** Narrow an unknown thrown value to one carrying a string-ish `code` field. */
@@ -40,15 +60,29 @@ function isFileNotFound(error) {
40
60
  function createRealRuntime(rootDir, flagReader, stepRegistry, warningSink) {
41
61
  const exprPort = (0, whitelist_1.createExpressionPort)(flagReader);
42
62
  const sink = {
63
+ writeNew: (entryPath, data) => {
64
+ const target = containedPath(rootDir, entryPath);
65
+ fs_extra_1.default.ensureDirSync(path.dirname(target));
66
+ try {
67
+ fs_extra_1.default.writeFileSync(target, data, { flag: "wx" });
68
+ return true;
69
+ }
70
+ catch (error) {
71
+ if (hasCode(error) && error.code === "EEXIST") {
72
+ return false;
73
+ }
74
+ throw error;
75
+ }
76
+ },
43
77
  write: (entryPath, data) => {
44
78
  const target = containedPath(rootDir, entryPath);
45
- fs.ensureDirSync(path.dirname(target));
46
- fs.writeFileSync(target, data);
79
+ fs_extra_1.default.ensureDirSync(path.dirname(target));
80
+ fs_extra_1.default.writeFileSync(target, data);
47
81
  },
48
82
  read: (entryPath) => {
49
83
  const target = containedPath(rootDir, entryPath);
50
84
  try {
51
- return fs.readFileSync(target);
85
+ return fs_extra_1.default.readFileSync(target);
52
86
  }
53
87
  catch (error) {
54
88
  if (isFileNotFound(error)) {
@@ -58,7 +92,12 @@ function createRealRuntime(rootDir, flagReader, stepRegistry, warningSink) {
58
92
  }
59
93
  },
60
94
  };
61
- const port = (0, runtimeRegistry_1.buildPipelinePort)(exprPort, sink, (environment, values) => envUtil_1.envUtil.writeEnv(rootDir, environment, { ...values }), stepRegistry, warningSink);
95
+ const port = (0, runtimeRegistry_1.buildPipelinePort)(exprPort, sink, (environment, values) => envUtil_1.envUtil.writeEnv(rootDir, environment, { ...values }, (filePath) => {
96
+ const absolutePath = path.resolve(filePath);
97
+ if (absolutePath !== path.resolve(rootDir)) {
98
+ containedPath(rootDir, absolutePath);
99
+ }
100
+ }), stepRegistry, warningSink);
62
101
  return { rootDir, exprPort, port };
63
102
  }
64
103
  //# sourceMappingURL=realRuntime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"realRuntime.js","sourceRoot":"","sources":["../../../src/v4/runtime/realRuntime.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAkDlC,8CAiCC;;AAjFD,wDAA8D;AAC9D,qDAA+B;AAC/B,mDAA6B;AAC7B,2DAAwD;AAExD,2CAAmD;AAEnD,uDAA8E;AAE9E,4EAA4E;AAE5E,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,gFAAgF;AAChF,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAElD,yFAAyF;AACzF,SAAS,aAAa,CAAC,OAAe,EAAE,SAAiB;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,yBAAW,CAAC;YACpB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,8DAA8D,SAAS,IAAI;SACrF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;AACnD,CAAC;AAQD,oDAAoD;AACpD,SAAgB,iBAAiB,CAC/B,OAAe,EACf,UAAsC,EACtC,YAA2B,EAC3B,WAAwC;IAExC,MAAM,QAAQ,GAA0B,IAAA,gCAAoB,EAAC,UAAU,CAAC,CAAC;IACzE,MAAM,IAAI,GAAa;QACrB,KAAK,EAAE,CAAC,SAAiB,EAAE,IAAY,EAAQ,EAAE;YAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACjD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACvC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,EAAE,CAAC,SAAiB,EAAsB,EAAE;YAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAAG,IAAA,mCAAiB,EAC5B,QAAQ,EACR,IAAI,EACJ,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,iBAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,EAC9E,YAAY,EACZ,WAAW,CACZ,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"realRuntime.js","sourceRoot":"","sources":["../../../src/v4/runtime/realRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function renderFragment(lines: readonly string[], values: object): string;
2
+ //# sourceMappingURL=renderFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderFragment.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/renderFragment.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/E"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation.
3
+ // Licensed under the MIT license.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.renderFragment = renderFragment;
6
+ const tslib_1 = require("tslib");
7
+ const mustache_1 = tslib_1.__importDefault(require("mustache"));
8
+ function renderFragment(lines, values) {
9
+ return mustache_1.default.render(lines.join("\n"), values, undefined, { escape: (value) => value });
10
+ }
11
+ //# sourceMappingURL=renderFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderFragment.js","sourceRoot":"","sources":["../../../src/v4/runtime/renderFragment.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAIlC,wCAEC;;AAJD,gEAAgC;AAEhC,SAAgB,cAAc,CAAC,KAAwB,EAAE,MAAc;IACrE,OAAO,kBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AAC5F,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { FxError, Warning } from "@microsoft/teamsfx-api";
2
2
  import { Result } from "neverthrow";
3
3
  import { ExpressionRuntimePort } from "../expression/evaluateExpression";
4
- import { ManifestWrapper, PipelineRuntimePort, RegisteredStep } from "../pipeline/runScaffoldPipeline";
4
+ import { PipelineRuntimePort, RegisteredStep } from "../pipeline/runScaffoldPipeline";
5
+ import { DaManifestService } from "./services/daManifestService";
5
6
  import { GeneralSensitivityLabelService } from "./steps/daSensitivity";
6
7
  /** Shared v4 pipeline registry and port factory. See ADR-0017 for whitelist rules. */
7
8
  /** The orchestration names the engine knows (ADR-0017 closed whitelist). */
@@ -9,13 +10,12 @@ export declare const KNOWN_PIPELINES: Set<string>;
9
10
  /** Generic named-step lookup assembled at a runtime composition boundary. */
10
11
  export type StepRegistry = ReadonlyMap<string, RegisteredStep>;
11
12
  /** Bind runtime-owned business adapters into the closed post-render step whitelist. */
12
- export declare function createStepRegistry(generalSensitivityLabel?: GeneralSensitivityLabelService): StepRegistry;
13
+ export declare function createStepRegistry(generalSensitivityLabel?: GeneralSensitivityLabelService, manifests?: DaManifestService): StepRegistry;
13
14
  /** Default post-render step whitelist for offline runtimes and compatibility tests. */
14
15
  export declare const STEP_REGISTRY: StepRegistry;
15
- /** No-op wrapper for create flows that do not mutate a manifest. */
16
- export declare const NOOP_MANIFEST_WRAPPER: ManifestWrapper;
17
16
  /** Runtime-specific file sink injected behind the shared pipeline port. */
18
17
  export interface FileSink {
18
+ writeNew(path: string, data: Buffer): boolean;
19
19
  /** Persist `data` at `path` (a target-relative, forward-slash path). */
20
20
  write(path: string, data: Buffer): void;
21
21
  /** Read back a previously written file, or `undefined` when absent (EAFP). */
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeRegistry.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/runtimeRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,OAAO,EAGP,OAAO,EACR,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,qBAAqB,EAA6B,MAAM,kCAAkC,CAAC;AACpG,OAAO,EACL,eAAe,EAEf,mBAAmB,EACnB,cAAc,EACf,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,8BAA8B,EAI/B,MAAM,uBAAuB,CAAC;AAyB/B,sFAAsF;AAEtF,4EAA4E;AAC5E,eAAO,MAAM,eAAe,aAAqE,CAAC;AAElG,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE/D,uFAAuF;AACvF,wBAAgB,kBAAkB,CAChC,uBAAuB,GAAE,8BAAuE,GAC/F,YAAY,CAcd;AAED,uFAAuF;AACvF,eAAO,MAAM,aAAa,cAAuB,CAAC;AAElD,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,EAAE,eAQnC,CAAC;AA8JF,2EAA2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,wEAAwE;IACxE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,8EAA8E;IAC9E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,oFAAoF;AACpF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAcpC,iEAAiE;AACjE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,QAAQ,EACd,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,GAAE,YAA4B,EAC1C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACvC,mBAAmB,CAiBrB"}
1
+ {"version":3,"file":"runtimeRegistry.d.ts","sourceRoot":"","sources":["../../../src/v4/runtime/runtimeRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,qBAAqB,EAA6B,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAEL,mBAAmB,EACnB,cAAc,EACf,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAAE,iBAAiB,EAAqB,MAAM,8BAA8B,CAAC;AACpF,OAAO,EACL,8BAA8B,EAI/B,MAAM,uBAAuB,CAAC;AAyB/B,sFAAsF;AAEtF,4EAA4E;AAC5E,eAAO,MAAM,eAAe,aAAqE,CAAC;AAElG,6EAA6E;AAC7E,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAE/D,uFAAuF;AACvF,wBAAgB,kBAAkB,CAChC,uBAAuB,GAAE,8BAAuE,EAChG,SAAS,GAAE,iBAAqC,GAC/C,YAAY,CAiBd;AAED,uFAAuF;AACvF,eAAO,MAAM,aAAa,cAAuB,CAAC;AAElD,2EAA2E;AAC3E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9C,wEAAwE;IACxE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,8EAA8E;IAC9E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED,oFAAoF;AACpF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAcpC,iEAAiE;AACjE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,IAAI,EAAE,QAAQ,EACd,iBAAiB,EAAE,iBAAiB,EACpC,YAAY,GAAE,YAA4B,EAC1C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACvC,mBAAmB,CAiBrB"}