vbapm 0.6.3-alpha → 0.6.11-alpha

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 (194) hide show
  1. package/README.md +57 -14
  2. package/lib/_commonjsHelpers-553b27b3.js +1 -2
  3. package/lib/{src/build → build}/component.d.ts +0 -1
  4. package/lib/build-project-54472d9e.js +3 -0
  5. package/lib/build-target-725a547b.js +9 -0
  6. package/lib/{src/config.d.ts → config.d.ts} +2 -2
  7. package/lib/create-project-e1fcadd3.js +10 -0
  8. package/lib/debug.js +1 -2
  9. package/lib/{src/env.d.ts → env.d.ts} +1 -0
  10. package/lib/export-project-5415dcba.js +4 -0
  11. package/lib/export-target-f2433ce1.js +4 -0
  12. package/lib/get-target-067afcd8.js +11 -0
  13. package/lib/index-4ce3d28b.js +6 -0
  14. package/lib/index-72c1a91d.js +3 -0
  15. package/lib/index-bcfee75a.js +5 -0
  16. package/lib/index-c5b5f6d1.js +2 -0
  17. package/lib/{src/index.d.ts → index.d.ts} +1 -0
  18. package/lib/index.js +1 -2
  19. package/lib/init-project-d3e76219.js +15 -0
  20. package/lib/installer-30f5d2e7.js +21 -0
  21. package/lib/installer.d.ts +8 -0
  22. package/lib/load-from-project-03734ea6.js +5 -0
  23. package/lib/{src/lockfile → lockfile}/lockfile.d.ts +2 -2
  24. package/lib/once-5205b917.js +1 -0
  25. package/lib/project-b4c70fbb.js +29 -0
  26. package/lib/{src/resolve → resolve}/resolver.d.ts +1 -1
  27. package/lib/run-macro-1f7bc78e.js +1 -0
  28. package/lib/sat-solver-6f930649.js +1 -0
  29. package/lib/test-project-3ceac90c.js +1 -0
  30. package/lib/tmp-14f9d850.js +9 -0
  31. package/lib/toml-patch.es-6bd2145d.js +1 -2
  32. package/lib/{src/utils → utils}/fs.d.ts +0 -1
  33. package/lib/{src/utils → utils}/hash.d.ts +0 -1
  34. package/lib/{src/utils → utils}/run.d.ts +1 -1
  35. package/lib/{src/utils → utils}/xml.d.ts +0 -1
  36. package/lib/{src/utils → utils}/zip.d.ts +0 -1
  37. package/lib/vbapm-build-70466cd5.js +9 -0
  38. package/lib/vbapm-export-6e1a2e45.js +7 -0
  39. package/lib/vbapm-init-825e865d.js +16 -0
  40. package/lib/vbapm-new-e594ab65.js +17 -0
  41. package/lib/vbapm-run-0916fe8f.js +10 -0
  42. package/lib/vbapm-test-4d70d6ab.js +15 -0
  43. package/lib/vbapm-version-52c71ffa.js +8 -0
  44. package/lib/vbapm.js +34 -0
  45. package/lib/workbook-xml-2809402c.js +2 -0
  46. package/package.json +61 -35
  47. package/run-scripts/run.ps1 +88 -81
  48. package/lib/_commonjsHelpers-553b27b3.js.map +0 -1
  49. package/lib/build-project-55e5df48.js +0 -4
  50. package/lib/build-project-55e5df48.js.map +0 -1
  51. package/lib/build-target-283e1e7d.js +0 -10
  52. package/lib/build-target-283e1e7d.js.map +0 -1
  53. package/lib/create-project-905598ca.js +0 -11
  54. package/lib/create-project-905598ca.js.map +0 -1
  55. package/lib/debug.js.map +0 -1
  56. package/lib/export-project-55168787.js +0 -5
  57. package/lib/export-project-55168787.js.map +0 -1
  58. package/lib/export-target-c9ddd2fa.js +0 -5
  59. package/lib/export-target-c9ddd2fa.js.map +0 -1
  60. package/lib/get-target-23b8cc04.js +0 -12
  61. package/lib/get-target-23b8cc04.js.map +0 -1
  62. package/lib/index-35cff1d5.js +0 -38
  63. package/lib/index-35cff1d5.js.map +0 -1
  64. package/lib/index-87f55e79.js +0 -4
  65. package/lib/index-87f55e79.js.map +0 -1
  66. package/lib/index-b49bd5b2.js +0 -2
  67. package/lib/index-b49bd5b2.js.map +0 -1
  68. package/lib/index-c97017db.js +0 -2
  69. package/lib/index-c97017db.js.map +0 -1
  70. package/lib/index-d9ba3ba0.js +0 -6
  71. package/lib/index-d9ba3ba0.js.map +0 -1
  72. package/lib/index-ffbba08f.js +0 -3
  73. package/lib/index-ffbba08f.js.map +0 -1
  74. package/lib/index.js.map +0 -1
  75. package/lib/inherits-713f4554.js +0 -2
  76. package/lib/inherits-713f4554.js.map +0 -1
  77. package/lib/init-project-a62cb644.js +0 -16
  78. package/lib/init-project-a62cb644.js.map +0 -1
  79. package/lib/load-from-project-e6530a69.js +0 -6
  80. package/lib/load-from-project-e6530a69.js.map +0 -1
  81. package/lib/minimatch-3a1d1fa9.js +0 -2
  82. package/lib/minimatch-3a1d1fa9.js.map +0 -1
  83. package/lib/once-9eb67b4f.js +0 -2
  84. package/lib/once-9eb67b4f.js.map +0 -1
  85. package/lib/project-d43b4e0c.js +0 -30
  86. package/lib/project-d43b4e0c.js.map +0 -1
  87. package/lib/run-macro-f4aa7c14.js +0 -2
  88. package/lib/run-macro-f4aa7c14.js.map +0 -1
  89. package/lib/sat-solver-01d6409e.js +0 -2
  90. package/lib/sat-solver-01d6409e.js.map +0 -1
  91. package/lib/src/installer.d.ts +0 -3
  92. package/lib/test-project-d4f237d1.js +0 -2
  93. package/lib/test-project-d4f237d1.js.map +0 -1
  94. package/lib/text-ba532b40.js +0 -10
  95. package/lib/text-ba532b40.js.map +0 -1
  96. package/lib/tmp-bc08ebcf.js +0 -10
  97. package/lib/tmp-bc08ebcf.js.map +0 -1
  98. package/lib/toml-patch.es-6bd2145d.js.map +0 -1
  99. package/lib/vba-blocks-build-a717fcdb.js +0 -10
  100. package/lib/vba-blocks-build-a717fcdb.js.map +0 -1
  101. package/lib/vba-blocks-export-7e2c75cc.js +0 -8
  102. package/lib/vba-blocks-export-7e2c75cc.js.map +0 -1
  103. package/lib/vba-blocks-init-54531020.js +0 -17
  104. package/lib/vba-blocks-init-54531020.js.map +0 -1
  105. package/lib/vba-blocks-new-3210d92c.js +0 -18
  106. package/lib/vba-blocks-new-3210d92c.js.map +0 -1
  107. package/lib/vba-blocks-run-ab9d4ad4.js +0 -11
  108. package/lib/vba-blocks-run-ab9d4ad4.js.map +0 -1
  109. package/lib/vba-blocks-test-da5dba90.js +0 -16
  110. package/lib/vba-blocks-test-da5dba90.js.map +0 -1
  111. package/lib/vba-blocks-version-e1b3c35a.js +0 -9
  112. package/lib/vba-blocks-version-e1b3c35a.js.map +0 -1
  113. package/lib/vba-blocks.js +0 -43
  114. package/lib/vba-blocks.js.map +0 -1
  115. package/lib/workbook-xml-69fff4ae.js +0 -3
  116. package/lib/workbook-xml-69fff4ae.js.map +0 -1
  117. /package/lib/{src/actions → actions}/build-project.d.ts +0 -0
  118. /package/lib/{src/actions → actions}/create-project.d.ts +0 -0
  119. /package/lib/{src/actions → actions}/export-project.d.ts +0 -0
  120. /package/lib/{src/actions → actions}/increment-version.d.ts +0 -0
  121. /package/lib/{src/actions → actions}/init-project.d.ts +0 -0
  122. /package/lib/{src/actions → actions}/run-macro.d.ts +0 -0
  123. /package/lib/{src/actions → actions}/test-project.d.ts +0 -0
  124. /package/lib/{src/addin.d.ts → addin.d.ts} +0 -0
  125. /package/lib/{src/bin/vba-blocks-build.d.ts → bin/vbapm-build.d.ts} +0 -0
  126. /package/lib/{src/bin/vba-blocks-export.d.ts → bin/vbapm-export.d.ts} +0 -0
  127. /package/lib/{src/bin/vba-blocks-init.d.ts → bin/vbapm-init.d.ts} +0 -0
  128. /package/lib/{src/bin/vba-blocks-new.d.ts → bin/vbapm-new.d.ts} +0 -0
  129. /package/lib/{src/bin/vba-blocks-run.d.ts → bin/vbapm-run.d.ts} +0 -0
  130. /package/lib/{src/bin/vba-blocks-test.d.ts → bin/vbapm-test.d.ts} +0 -0
  131. /package/lib/{src/bin/vba-blocks-version.d.ts → bin/vbapm-version.d.ts} +0 -0
  132. /package/lib/{src/bin/vba-blocks.d.ts → bin/vbapm.d.ts} +0 -0
  133. /package/lib/{src/build → build}/apply-changeset.d.ts +0 -0
  134. /package/lib/{src/build → build}/build-graph.d.ts +0 -0
  135. /package/lib/{src/build → build}/changeset.d.ts +0 -0
  136. /package/lib/{src/build → build}/compare-build-graphs.d.ts +0 -0
  137. /package/lib/{src/build → build}/index.d.ts +0 -0
  138. /package/lib/{src/build → build}/load-from-export.d.ts +0 -0
  139. /package/lib/{src/build → build}/load-from-project.d.ts +0 -0
  140. /package/lib/{src/build → build}/stage-build-graph.d.ts +0 -0
  141. /package/lib/{src/build → build}/transform-build-graph.d.ts +0 -0
  142. /package/lib/{src/build → build}/transforms/editor-config.d.ts +0 -0
  143. /package/lib/{src/cache.d.ts → cache.d.ts} +0 -0
  144. /package/lib/{src/debug.d.ts → debug.d.ts} +0 -0
  145. /package/lib/{src/errors.d.ts → errors.d.ts} +0 -0
  146. /package/lib/{src/lockfile → lockfile}/index.d.ts +0 -0
  147. /package/lib/{src/lockfile → lockfile}/is-lockfile-valid.d.ts +0 -0
  148. /package/lib/{src/manifest → manifest}/dependency.d.ts +0 -0
  149. /package/lib/{src/manifest → manifest}/index.d.ts +0 -0
  150. /package/lib/{src/manifest → manifest}/reference.d.ts +0 -0
  151. /package/lib/{src/manifest → manifest}/source.d.ts +0 -0
  152. /package/lib/{src/manifest → manifest}/target.d.ts +0 -0
  153. /package/lib/{src/manifest → manifest}/version.d.ts +0 -0
  154. /package/lib/{src/messages.d.ts → messages.d.ts} +0 -0
  155. /package/lib/{src/professional → professional}/sources/git-source.d.ts +0 -0
  156. /package/lib/{src/professional → professional}/workspace.d.ts +0 -0
  157. /package/lib/{src/project.d.ts → project.d.ts} +0 -0
  158. /package/lib/{src/reporter.d.ts → reporter.d.ts} +0 -0
  159. /package/lib/{src/resolve → resolve}/dependency-graph.d.ts +0 -0
  160. /package/lib/{src/resolve → resolve}/index.d.ts +0 -0
  161. /package/lib/{src/resolve → resolve}/latest-solver.d.ts +0 -0
  162. /package/lib/{src/resolve → resolve}/sat-solver.d.ts +0 -0
  163. /package/lib/{src/sources → sources}/index.d.ts +0 -0
  164. /package/lib/{src/sources → sources}/path-source.d.ts +0 -0
  165. /package/lib/{src/sources → sources}/registration.d.ts +0 -0
  166. /package/lib/{src/sources → sources}/registry-source.d.ts +0 -0
  167. /package/lib/{src/sources → sources}/source.d.ts +0 -0
  168. /package/lib/{src/targets → targets}/add-target.d.ts +0 -0
  169. /package/lib/{src/targets → targets}/build-target.d.ts +0 -0
  170. /package/lib/{src/targets → targets}/export-target.d.ts +0 -0
  171. /package/lib/{src/targets → targets}/get-target.d.ts +0 -0
  172. /package/lib/{src/targets → targets}/index.d.ts +0 -0
  173. /package/lib/{src/targets → targets}/project-info.d.ts +0 -0
  174. /package/lib/{src/targets → targets}/transform-target.d.ts +0 -0
  175. /package/lib/{src/targets → targets}/transforms/core-xml.d.ts +0 -0
  176. /package/lib/{src/targets → targets}/transforms/workbook-xml.d.ts +0 -0
  177. /package/lib/{src/utils → utils}/async-map.d.ts +0 -0
  178. /package/lib/{src/utils → utils}/download.d.ts +0 -0
  179. /package/lib/{src/utils → utils}/get-staging.d.ts +0 -0
  180. /package/lib/{src/utils → utils}/git.d.ts +0 -0
  181. /package/lib/{src/utils → utils}/github.d.ts +0 -0
  182. /package/lib/{src/utils → utils}/has.d.ts +0 -0
  183. /package/lib/{src/utils → utils}/interop.d.ts +0 -0
  184. /package/lib/{src/utils → utils}/is.d.ts +0 -0
  185. /package/lib/{src/utils → utils}/noop.d.ts +0 -0
  186. /package/lib/{src/utils → utils}/observable.d.ts +0 -0
  187. /package/lib/{src/utils → utils}/parallel.d.ts +0 -0
  188. /package/lib/{src/utils → utils}/path.d.ts +0 -0
  189. /package/lib/{src/utils → utils}/pipe.d.ts +0 -0
  190. /package/lib/{src/utils → utils}/stdout-file.d.ts +0 -0
  191. /package/lib/{src/utils → utils}/text.d.ts +0 -0
  192. /package/lib/{src/utils → utils}/toml.d.ts +0 -0
  193. /package/lib/{src/utils → utils}/unique.d.ts +0 -0
  194. /package/lib/{src/utils → utils}/without.d.ts +0 -0
package/README.md CHANGED
@@ -1,16 +1,39 @@
1
- # vba-blocks
1
+ # vbapm
2
2
 
3
3
  A package manager and build tool for VBA.
4
4
 
5
5
  ## Installation
6
6
 
7
- Requires [Node.js](https://nodejs.org/) v18 or later.
7
+ ### Option 1: Install as a global npm package
8
+
9
+ **Prerequisites:** [Node.js](https://nodejs.org/) v22 or higher.
10
+
11
+ ```txt
12
+ npm install -g vbapm
13
+ ```
14
+
15
+ ### Option 2: Standalone installer
16
+
17
+ <details>
18
+ <summary>Installation instructions</summary>
19
+
20
+ **Windows**
21
+
22
+ In powershell, run the following:
23
+
24
+ ```txt
25
+ iwr https://raw.githubusercontent.com/vbapm/installer/refs/heads/main/install.ps1 | iex
26
+ ```
27
+
28
+ **Mac**
29
+
30
+ In terminal, run the following:
8
31
 
9
32
  ```txt
10
- npm install -g @vbapm/core
33
+ curl -fsSL https://raw.githubusercontent.com/vbapm/installer/refs/heads/main/install.sh | sh
11
34
  ```
12
35
 
13
- **Mac:** For more recent versions of Office for Mac, you will need to trust access to the VBA project object model for vba-blocks to work correctly:
36
+ For more recent versions of Office for Mac, you will need to trust access to the VBA project object model for vbapm to work correctly:
14
37
 
15
38
  <details>
16
39
  <summary>Trust access to the VBA project object model</summary>
@@ -23,14 +46,22 @@ npm install -g @vbapm/core
23
46
  </ol>
24
47
  </details>
25
48
 
49
+
50
+
51
+ </details>
52
+
53
+ <hr>
54
+
55
+ If you run into any issues during installation, please see the [known issues](https://github.com/vbapm/installer#known-issues) for the installer or [create a new issue](https://github.com/vbapm/installer/issues/new) with details about what's happening.
56
+
26
57
  :rocket: You're ready to go! Open a new command-line session (cmd / terminal) and try `vba --help`
27
58
 
28
59
  ### Programmatic Usage
29
60
 
30
- You can also use `@vbapm/core` as a library (e.g. from a VS Code extension):
61
+ You can also use `vbapm` as a library (e.g. from a VS Code extension):
31
62
 
32
63
  ```js
33
- const { buildProject, loadProject, env } = require("@vbapm/core");
64
+ const { buildProject, loadProject, env } = require("vbapm");
34
65
 
35
66
  // Override working directory
36
67
  env.cwd = "/path/to/project";
@@ -43,7 +74,7 @@ await buildProject(project);
43
74
 
44
75
  ### `new`
45
76
 
46
- Create a new folder with a blank/generated vba-blocks project inside
77
+ Create a new folder with a blank/generated vbapm project inside
47
78
 
48
79
  Create a folder "project-name" with a blank xlsm project:
49
80
 
@@ -71,7 +102,7 @@ vba new json-converter --package
71
102
 
72
103
  ### `init`
73
104
 
74
- Create a blank/generated vba-blocks project in the current folder
105
+ Create a blank/generated vbapm project in the current folder
75
106
 
76
107
  Create a blank xlsm project with the current folder's name:
77
108
 
@@ -151,7 +182,7 @@ vba run Messages.SayHi Tim
151
182
  Howdy Tim!
152
183
  ```
153
184
 
154
- ## Manifest (vba-block.toml)
185
+ ## Manifest (vbaproject.toml)
155
186
 
156
187
  ### [project] or [package]
157
188
 
@@ -227,20 +258,32 @@ Scripting = { version = "1.0", guid = "{...}" }
227
258
  ### Prerequisites
228
259
 
229
260
  1. `git clone` this repo
230
- 2. Install [Node.js](https://nodejs.org/) v18 or later
261
+ 2. Install [Node.js](https://nodejs.org/) v22 or later
262
+ - Note: For CLI builds, Node v23+ only supports Windows x64 (win-x64). 32-bit Windows (win-x86) is no longer available upstream.
263
+ 3. Install node-gyp dependencies for [Mac](https://github.com/nodejs/node-gyp#on-macos) or [Windows](https://github.com/nodejs/node-gyp#on-windows)
231
264
 
232
265
  ### Build
233
266
 
234
267
  1. Run `npm install`
235
- 2. Run `npm run build`
236
- 3. Run `npm run build:addins`
268
+ 2. Run `npm run format`
269
+ 3. Run `npm run build`
270
+ <br>It will build the CLI/library in `lib`, plus ensured vendor node runtime is available.
271
+ 4. Run `npm run build:addins`
272
+ <br>It will build the Excel addin that performs workbook/VBA operations from inside Office.
237
273
 
238
274
  ### Test
239
275
 
240
276
  1. Run `npm test`
277
+ <br>It will run unit tests
241
278
  2. Run `npm run test:e2e`
279
+ <br>It will run the end-to-end CLI scenarios in excel.e2e.ts, covering workflows like build, export, new, and version against fixtures.
280
+ <br>To keep temporary e2e work folders for manual inspection, set `KEEP_E2E_TMP=1` before running (PowerShell: `$env:KEEP_E2E_TMP=1; npm run test:e2e`, cmd: `set KEEP_E2E_TMP=1 && npm run test:e2e`).
242
281
 
243
282
  ### Release
244
283
 
245
- 1. Run `npm version patch` (or `minor`/`major`)
246
- 2. Run `npm publish --access public`
284
+ 1. Run `npm version`
285
+ 2. Run `npm run release`
286
+
287
+ ## Acknowledgments
288
+
289
+ This project is a fork of the original [vba-blocks](https://github.com/vba-blocks/vba-blocks) project by [Tim Hall](https://github.com/timhall).
@@ -1,2 +1 @@
1
- "use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};exports.commonjsGlobal=e,exports.createCommonjsModule=function(e,r,t){return e(t={path:r,exports:{},require:function(e,r){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==r&&t.path)}},t.exports),t.exports},exports.getAugmentedNamespace=function(e){if(e.__esModule)return e;var r=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach((function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})})),r};
2
- //# sourceMappingURL=_commonjsHelpers-553b27b3.js.map
1
+ "use strict";var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};exports.commonjsGlobal=e,exports.createCommonjsModule=function(e,r,t){return e(t={path:r,exports:{},require:function(e,r){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==r&&t.path)}},t.exports),t.exports},exports.getAugmentedNamespace=function(e){if(e.__esModule)return e;var r=Object.defineProperty({},"__esModule",{value:!0});return Object.keys(e).forEach(function(t){var o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}),r};
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  export type ComponentType = "module" | "class" | "form" | "document";
3
2
  export interface ComponentDetails {
4
3
  path?: string;
@@ -0,0 +1,3 @@
1
+ "use strict";var e=require("./installer-30f5d2e7.js"),r=require("./project-b4c70fbb.js"),t=require("./build-target-725a547b.js");require("assert"),require("./workbook-xml-2809402c.js"),require("fs");var i=require("./get-target-067afcd8.js");exports.buildProject=async function(n={}){e.env.reporter.log(e.Message.BuildProjectLoading,"[1/3] Loading project...");const a=await r.loadProject(),{target:s,blankTarget:o}=i.getTarget(a,n.target),g=await r.fetchDependencies(a),c=a.packages.map(e=>{const t=r.toDependency(e);return r.isRegistryDependency(t)?`${e.id} registry+${t.registry}`:`${e.id} ${e.source}`});e.env.reporter.log(e.Message.BuildTargetBuilding,e.dedent`
2
+ \n[2/3] Building target "${s.type}" for "${a.manifest.name}"...
3
+ ${c.length?`\nDependencies:\n${c.join("\n")}`:""}`),await t.buildTarget(s,{project:a,dependencies:g,blankTarget:o},n);const d=!a.hasDirtyLockfile;return e.env.reporter.log(e.Message.BuildLockfileWriting,"\n[3/3] Writing lockfile..."+(d?" (skipped, no changes)":"")),d||await r.writeLockfile(a.paths.root,a),e.join(a.paths.dir,"build",s.filename)};
@@ -0,0 +1,9 @@
1
+ "use strict";var a=require("./installer-30f5d2e7.js"),t=require("./workbook-xml-2809402c.js");require("assert");var e=require("./load-from-project-03734ea6.js"),r=require("path"),i=require("./project-b4c70fbb.js");const o=a=>/1004/.test(a),n=(t,e)=>a.dedent`
2
+ Failed to build target "${t.name}", it is currently open.
3
+
4
+ Please close "${e}" and try again.
5
+ `;async function s(t,e){if(!await a.pathExists_1.pathExists(e.path))throw new a.CliError(a.ErrorCode.TargetNotFound,`Target "${e.name}" not found at "${e.path}".`);const r=a.join(t.paths.staging,e.filename);try{await a.mkdirs_1.ensureDir(t.paths.staging),await i.zip(e.path,r)}catch(t){throw new a.CliError(a.ErrorCode.TargetCreateFailed,`Failed to create project for target "${e.name}".`,t)}return r}exports.buildTarget=async function(i,c,l={}){const{project:p}=c;let m;try{m=c.blankTarget?await t.createDocument(p,i,{staging:!0}):await s(p,i)}catch(t){if(!a.isRunError(t)||!t.result.errors.some(o))throw t;const e=a.join(p.paths.build,i.filename);throw new a.CliError(a.ErrorCode.TargetIsOpen,n(i,e))}await async function(i,o,n,s={}){const{project:c,dependencies:l}=o,p=a.join(c.paths.staging,"import");await a.mkdirs_1.ensureDir(p),await a.empty.emptyDir(p);const m=await e.loadFromProject(c,l,s),w=await async function(t,e){const i=await a.parallel(t.components,async t=>{const i=a.join(e,t.filename);if(await a.writeFile(i,t.code),t.binaryPath){const i=a.join(e,r.basename(t.binaryPath));if(!t.details.binary)throw new Error(`Binary data missing for component "${t.name}"`);await a.writeFile(i,t.details.binary)}return{name:t.name,path:i}});return{name:t.name,components:i,references:t.references}}(m,p);try{await t.importGraph(c,i,w,n,s)}catch(t){throw new a.CliError(a.ErrorCode.TargetImportFailed,`Failed to import project for target "${i.name}".`,t)}finally{await a.remove.remove(p)}}(i,c,m,l);try{await async function(t,e){const r=a.join(t.paths.backup,e.filename),i=a.join(t.paths.build,e.filename);await a.pathExists_1.pathExists(r)&&await a.remove.remove(r);if(await a.pathExists_1.pathExists(i)){await a.mkdirs_1.ensureDir(t.paths.backup);try{await a.move_1.move(i,r)}catch(t){throw new a.CliError(a.ErrorCode.TargetIsOpen,n(e,i))}}}(p,i);const t=a.join(p.paths.build,i.filename);await a.move_1.move(m,t)}catch(t){throw await async function(t,e){const r=a.join(t.paths.backup,e.filename),i=a.join(t.paths.build,e.filename);if(!await a.pathExists_1.pathExists(r))return;try{await a.copy.copy(r,i)}catch(t){throw new a.CliError(a.ErrorCode.TargetRestoreFailed,a.dedent`
6
+ Failed to automatically restore backup from "${r}" to "${i}".
7
+
8
+ The previous version can be moved back manually, if desired.
9
+ `,t)}}(p,i),t}finally{await a.remove.remove(m)}};
@@ -20,8 +20,8 @@ export interface ConfigValue {
20
20
  * Load config, from local, user, and environment values
21
21
  *
22
22
  * - env:config/config.toml (user)
23
- * - Search for .vba-blocks/config.toml up from cwd (local)
24
- * - Load VBA_BLOCKS_* from environment (override)
23
+ * - Search for .vbapm/config.toml up from cwd (local)
24
+ * - Load VBAPM_* from environment (override)
25
25
  */
26
26
  export declare function loadConfig(): Promise<Config>;
27
27
  export declare function readConfig(dir: string): Promise<ConfigValue | undefined>;
@@ -0,0 +1,10 @@
1
+ "use strict";var e=require("./installer-30f5d2e7.js"),r=require("./init-project-d3e76219.js");exports.createProject=async function(i){if(!i||!i.name)throw new e.CliError(e.ErrorCode.NewNameRequired,e.dedent`
2
+ "name" is required with vbapm new (e.g. vbapm new project-name).
3
+
4
+ Try "vbapm help new" for more information.
5
+ `);let{name:t,target:o,from:a,pkg:n,git:s}=i;if(!o&&!a&&t.includes(".")){const e=t.split(".");o=e.pop(),t=e.join(".")}if(!n&&!o&&!a)throw new e.CliError(e.ErrorCode.NewTargetRequired,e.dedent`
6
+ .TYPE, --target, or --from is required for vbapm projects.
7
+ (e.g. vbapm new project.name.TYPE)
8
+
9
+ Try "vbapm help new" for more information.
10
+ `);const m=e.join(e.env.cwd,t);if(await e.pathExists_1.pathExists(m))throw new e.CliError(e.ErrorCode.NewDirExists,`A directory for "${t}" already exists: "${m}". `);await e.mkdirs_1.ensureDir(m),await r.initProject({name:t,dir:m,target:o,from:a,pkg:n,git:s})};
package/lib/debug.js CHANGED
@@ -1,2 +1 @@
1
- "use strict";var e=require("./_commonjsHelpers-553b27b3.js"),t=require("tty"),s=require("util"),r=require("os");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(t),c=n(s),i=n(r),a={},u=(e,t)=>{t=t||process.argv;const s=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(s+e),n=t.indexOf("--");return-1!==r&&(-1===n||r<n)};const l=process.env;let f;function p(e){const t=function(e){if(!1===f)return 0;if(u("color=16m")||u("color=full")||u("color=truecolor"))return 3;if(u("color=256"))return 2;if(e&&!e.isTTY&&!0!==f)return 0;const t=f?1:0;if("win32"===process.platform){const e=i.default.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in l)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((e=>e in l))||"codeship"===l.CI_NAME?1:t;if("TEAMCITY_VERSION"in l)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(l.TEAMCITY_VERSION)?1:0;if("truecolor"===l.COLORTERM)return 3;if("TERM_PROGRAM"in l){const e=parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(l.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(l.TERM)||"COLORTERM"in l?1:(l.TERM,t)}(e);return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(t)}u("no-color")||u("no-colors")||u("color=false")?f=!1:(u("color")||u("colors")||u("color=true")||u("color=always"))&&(f=!0),"FORCE_COLOR"in l&&(f=0===l.FORCE_COLOR.length||0!==parseInt(l.FORCE_COLOR,10));var d={supportsColor:p,stdout:p(process.stdout),stderr:p(process.stderr)},m=1e3,h=60*m,g=60*h,O=24*g,y=7*O,b=365.25*O,v=function(e,t){t=t||{};var s=typeof e;if("string"===s&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var s=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return s*b;case"weeks":case"week":case"w":return s*y;case"days":case"day":case"d":return s*O;case"hours":case"hour":case"hrs":case"hr":case"h":return s*g;case"minutes":case"minute":case"mins":case"min":case"m":return s*h;case"seconds":case"second":case"secs":case"sec":case"s":return s*m;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}(e);if("number"===s&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=O)return C(e,t,O,"day");if(t>=g)return C(e,t,g,"hour");if(t>=h)return C(e,t,h,"minute");if(t>=m)return C(e,t,m,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=O)return Math.round(e/O)+"d";if(t>=g)return Math.round(e/g)+"h";if(t>=h)return Math.round(e/h)+"m";if(t>=m)return Math.round(e/m)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function C(e,t,s,r){var n=t>=1.5*s;return Math.round(e/s)+" "+r+(n?"s":"")}var R=function(e){function t(e){let r,n,o,c=null;function i(...e){if(!i.enabled)return;const s=i,n=Number(new Date),o=n-(r||n);s.diff=o,s.prev=r,s.curr=n,r=n,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let c=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,n)=>{if("%%"===r)return"%";c++;const o=t.formatters[n];if("function"==typeof o){const t=e[c];r=o.call(s,t),e.splice(c,1),c--}return r})),t.formatArgs.call(s,e);(s.log||t.log).apply(s,e)}return i.namespace=e,i.useColors=t.useColors(),i.color=t.selectColor(e),i.extend=s,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==c?c:(n!==t.namespaces&&(n=t.namespaces,o=t.enabled(e)),o),set:e=>{c=e}}),"function"==typeof t.init&&t.init(i),i}function s(e,s){const r=t(this.namespace+(void 0===s?":":s)+e);return r.log=this.log,r}function r(e,t){let s=0,r=0,n=-1,o=0;for(;s<e.length;)if(r<t.length&&(t[r]===e[s]||"*"===t[r]))"*"===t[r]?(n=r,o=s,r++):(s++,r++);else{if(-1===n)return!1;r=n+1,o++,s=o}for(;r<t.length&&"*"===t[r];)r++;return r===t.length}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names,...t.skips.map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const s=("string"==typeof e?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of s)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const s of t.skips)if(r(e,s))return!1;for(const s of t.names)if(r(e,s))return!0;return!1},t.humanize=v,t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((s=>{t[s]=e[s]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let s=0;for(let t=0;t<e.length;t++)s=(s<<5)-s+e.charCodeAt(t),s|=0;return t.colors[Math.abs(s)%t.colors.length]},t.enable(t.load()),t},E=e.createCommonjsModule((function(e,t){t.init=function(e){e.inspectOpts={};const s=Object.keys(t.inspectOpts);for(let r=0;r<s.length;r++)e.inspectOpts[s[r]]=t.inspectOpts[s[r]]},t.log=function(...e){return process.stderr.write(c.default.formatWithOptions(t.inspectOpts,...e)+"\n")},t.formatArgs=function(s){const{namespace:r,useColors:n}=this;if(n){const t=this.color,n="[3"+(t<8?t:"8;5;"+t),o=` ${n};1m${r} `;s[0]=o+s[0].split("\n").join("\n"+o),s.push(n+"m+"+e.exports.humanize(this.diff)+"")}else s[0]=function(){if(t.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+r+" "+s[0]},t.save=function(e){e?process.env.DEBUG=e:delete process.env.DEBUG},t.load=function(){return process.env.DEBUG},t.useColors=function(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):o.default.isatty(process.stderr.fd)},t.destroy=c.default.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=d;e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const s=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[s]=r,e}),{}),e.exports=R(t);const{formatters:s}=e.exports;s.o=function(e){return this.inspectOpts.colors=this.useColors,c.default.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},s.O=function(e){return this.inspectOpts.colors=this.useColors,c.default.inspect(e,this.inspectOpts)}})),M=e.createCommonjsModule((function(e){"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?e.exports=a:e.exports=E}));module.exports=M;
2
- //# sourceMappingURL=debug.js.map
1
+ "use strict";var e=require("./_commonjsHelpers-553b27b3.js"),t=require("tty"),s=require("util"),r=require("os");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(t),c=n(s),i=n(r),a={},u=(e,t)=>{t=t||process.argv;const s=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(s+e),n=t.indexOf("--");return-1!==r&&(-1===n||r<n)};const l=process.env;let f;function p(e){const t=function(e){if(!1===f)return 0;if(u("color=16m")||u("color=full")||u("color=truecolor"))return 3;if(u("color=256"))return 2;if(e&&!e.isTTY&&!0!==f)return 0;const t=f?1:0;if("win32"===process.platform){const e=i.default.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in l)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in l)||"codeship"===l.CI_NAME?1:t;if("TEAMCITY_VERSION"in l)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(l.TEAMCITY_VERSION)?1:0;if("truecolor"===l.COLORTERM)return 3;if("TERM_PROGRAM"in l){const e=parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(l.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(l.TERM)||"COLORTERM"in l?1:(l.TERM,t)}(e);return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(t)}u("no-color")||u("no-colors")||u("color=false")?f=!1:(u("color")||u("colors")||u("color=true")||u("color=always"))&&(f=!0),"FORCE_COLOR"in l&&(f=0===l.FORCE_COLOR.length||0!==parseInt(l.FORCE_COLOR,10));var d={supportsColor:p,stdout:p(process.stdout),stderr:p(process.stderr)},m=1e3,h=60*m,g=60*h,O=24*g,y=7*O,b=365.25*O,v=function(e,t){t=t||{};var s=typeof e;if("string"===s&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t)return;var s=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return s*b;case"weeks":case"week":case"w":return s*y;case"days":case"day":case"d":return s*O;case"hours":case"hour":case"hrs":case"hr":case"h":return s*g;case"minutes":case"minute":case"mins":case"min":case"m":return s*h;case"seconds":case"second":case"secs":case"sec":case"s":return s*m;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}(e);if("number"===s&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=O)return C(e,t,O,"day");if(t>=g)return C(e,t,g,"hour");if(t>=h)return C(e,t,h,"minute");if(t>=m)return C(e,t,m,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=O)return Math.round(e/O)+"d";if(t>=g)return Math.round(e/g)+"h";if(t>=h)return Math.round(e/h)+"m";if(t>=m)return Math.round(e/m)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function C(e,t,s,r){var n=t>=1.5*s;return Math.round(e/s)+" "+r+(n?"s":"")}var R=function(e){function t(e){let r,n,o,c=null;function i(...e){if(!i.enabled)return;const s=i,n=Number(new Date),o=n-(r||n);s.diff=o,s.prev=r,s.curr=n,r=n,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let c=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(r,n)=>{if("%%"===r)return"%";c++;const o=t.formatters[n];if("function"==typeof o){const t=e[c];r=o.call(s,t),e.splice(c,1),c--}return r}),t.formatArgs.call(s,e);(s.log||t.log).apply(s,e)}return i.namespace=e,i.useColors=t.useColors(),i.color=t.selectColor(e),i.extend=s,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==c?c:(n!==t.namespaces&&(n=t.namespaces,o=t.enabled(e)),o),set:e=>{c=e}}),"function"==typeof t.init&&t.init(i),i}function s(e,s){const r=t(this.namespace+(void 0===s?":":s)+e);return r.log=this.log,r}function r(e,t){let s=0,r=0,n=-1,o=0;for(;s<e.length;)if(r<t.length&&(t[r]===e[s]||"*"===t[r]))"*"===t[r]?(n=r,o=s,r++):(s++,r++);else{if(-1===n)return!1;r=n+1,o++,s=o}for(;r<t.length&&"*"===t[r];)r++;return r===t.length}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names,...t.skips.map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const s=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of s)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const s of t.skips)if(r(e,s))return!1;for(const s of t.names)if(r(e,s))return!0;return!1},t.humanize=v,t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(s=>{t[s]=e[s]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let s=0;for(let t=0;t<e.length;t++)s=(s<<5)-s+e.charCodeAt(t),s|=0;return t.colors[Math.abs(s)%t.colors.length]},t.enable(t.load()),t},E=e.createCommonjsModule(function(e,t){t.init=function(e){e.inspectOpts={};const s=Object.keys(t.inspectOpts);for(let r=0;r<s.length;r++)e.inspectOpts[s[r]]=t.inspectOpts[s[r]]},t.log=function(...e){return process.stderr.write(c.default.formatWithOptions(t.inspectOpts,...e)+"\n")},t.formatArgs=function(s){const{namespace:r,useColors:n}=this;if(n){const t=this.color,n="[3"+(t<8?t:"8;5;"+t),o=` ${n};1m${r} `;s[0]=o+s[0].split("\n").join("\n"+o),s.push(n+"m+"+e.exports.humanize(this.diff)+"")}else s[0]=function(){if(t.inspectOpts.hideDate)return"";return(new Date).toISOString()+" "}()+r+" "+s[0]},t.save=function(e){e?process.env.DEBUG=e:delete process.env.DEBUG},t.load=function(){return process.env.DEBUG},t.useColors=function(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):o.default.isatty(process.stderr.fd)},t.destroy=c.default.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=d;e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{const s=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase());let r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[s]=r,e},{}),e.exports=R(t);const{formatters:s}=e.exports;s.o=function(e){return this.inspectOpts.colors=this.useColors,c.default.inspect(e,this.inspectOpts).split("\n").map(e=>e.trim()).join(" ")},s.O=function(e){return this.inspectOpts.colors=this.useColors,c.default.inspect(e,this.inspectOpts)}}),M=e.createCommonjsModule(function(e){"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?e.exports=a:e.exports=E});module.exports=M;
@@ -10,6 +10,7 @@ export interface Env {
10
10
  temp: string;
11
11
  addins: string;
12
12
  scripts: string;
13
+ bin: string;
13
14
  registry: string;
14
15
  packages: string;
15
16
  sources: string;
@@ -0,0 +1,4 @@
1
+ "use strict";var e=require("./installer-30f5d2e7.js"),t=require("./workbook-xml-2809402c.js"),r=require("./project-b4c70fbb.js");require("assert"),require("fs");var o=require("./export-target-f2433ce1.js");exports.exportProject=async function(a={}){e.env.reporter.log(e.Message.ExportProjectLoading,"[1/3] Loading project...");const i=await r.loadProject();if(!a.target&&!i.manifest.target)throw new e.CliError(e.ErrorCode.ExportNoTarget,e.dedent`
2
+ No default target found for project,
3
+ use --target TYPE to export from a specific target.
4
+ `);let n,s=!1;if(i.manifest.target)a.target&&a.target!==i.manifest.target.type||(n=i.manifest.target);else{const t=a.target,r=i.manifest.name;n={type:t,name:r,path:`targets/${t}`,filename:`${e.sanitize(r)}.${t}`},s=!0}if(!n)throw new e.CliError(e.ErrorCode.ExportNoMatching,`No matching target found for type "${a.target}" in project.`);const p=await r.fetchDependencies(i);let g;try{a.completed?g=a.completed:(g=e.join(i.paths.staging,"export"),e.env.reporter.log(e.Message.ExportToStaging,`\n[2/3] Exporting src from "${n.filename}"`),await e.mkdirs_1.ensureDir(g),await e.empty.emptyDir(g),await t.exportTo(i,n,g,a)),e.env.reporter.log(e.Message.ExportToProject,"\n[3/3] Updating project"),await o.exportTarget(n,{project:i,dependencies:p,blankTarget:s},g)}catch(e){throw e}finally{g&&await e.remove.remove(g)}};
@@ -0,0 +1,4 @@
1
+ "use strict";var e=require("./installer-30f5d2e7.js"),n=require("./project-b4c70fbb.js"),t=require("path"),r=require("./load-from-project-03734ea6.js"),o=require("./workbook-xml-2809402c.js");async function a(t,r){for(const n of r.components.added){const r={name:n.name,path:e.join(t.paths.dir,`src/${n.filename}`)};t.manifest.src.push(r)}for(const e of r.components.removed){const n=t.manifest.src.findIndex(n=>n.name===e.name);t.manifest.src.splice(n,1)}for(let e of r.references.added)t.manifest.references.push(e);for(const e of r.references.removed){const n=t.manifest.references.findIndex(n=>n.name===e.name);t.manifest.references.splice(n,1)}await n.writeManifest(t.manifest,t.paths.dir)}async function s(n,r){const o=t.dirname(n);if(await e.mkdirs_1.ensureDir(o),await e.writeFile(n,r.code),r.binaryPath){if(!r.details.binary)throw new Error(`Binary data missing for component "${r.name}"`);await e.writeFile(e.join(o,r.binaryPath),r.details.binary)}}require("assert");const i=[".frx"];async function c(n){const a=o.dist(n,{directories:!1}).filter(e=>"project.json"!==e&&!e.startsWith("target")&&!e.startsWith("staged")&&!(e=>!(""!==t.extname(e)))(e)).map(t=>e.join(n,t)),{name:s,references:c}=await async function(n){const t=e.join(n,"project.json");if(!await e.pathExists_1.pathExists(t))return{name:"VBAProject",references:[]};const r=await e.jsonfile.readJson(t);return r}(n),p={},d=a.filter(e=>{if(!function(e){return i.includes(t.extname(e))}(e))return!0;const n=m(e);return p[n]=e,!1}),f=await e.parallel(d,async n=>{const o=m(n),a=r.extensionToType[t.extname(n)],s=await e.readFile(n),i=p[o]&&await e.readFile(p[o]);if(!a)throw new e.CliError(e.ErrorCode.ComponentUnrecognized,`Unrecognized component extension "${t.extname(n)}" (at "${n}").`);return new r.Component(a,s,{binary:i})},{progress:e.env.reporter.progress("Loading exported components")});return f.sort(r.byComponentName),{name:s,components:f,references:c,fromDependencies:{components:new Map,references:new Map}}}function m(e){return t.basename(e,t.extname(e))}const p=/vba.*\.bin/i;const d=function(...e){return(n,t,r)=>e.reduce((e,o)=>e?o(n,t,r):e,!0)}(function(e){return!p.test(e.path)}),f=function(...e){return(n,t,r)=>e.reduce((e,n)=>n(e,t,r),n)}(o.transformCoreXml,o.transformWorkbookXml);async function u(r,o,a){let s=e.join(r.paths.build,o.filename);const i=e.join(a,"target");if(!await e.pathExists_1.pathExists(s))throw new e.CliError(e.ErrorCode.ExportTargetNotFound,e.dedent`
2
+ Could not find built target for type "${o.type}"
3
+ (checked "${s}").
4
+ `);if(!e.env.isWindows){const n=e.join(a,"staged",o.filename);await e.pathExists_1.pathExists(n)||(await e.mkdirs_1.ensureDir(t.dirname(n)),await e.copy.copy(s,n)),s=n}return await e.mkdirs_1.ensureDir(i),await n.unzip(s,i,{filter:d,map:f}),i}exports.exportTarget=async function(n,t,i){const{project:m,dependencies:p,blankTarget:d}=t;let f;d||(f=await u(m,n,i));const l=await r.loadFromProject(m,p),w=await c(i),h=function(e,n){const t={components:{added:[],changed:[],removed:[]},references:{added:[],changed:[],removed:[]}},o={components:new Map,references:new Map};for(const n of e.components)o.components.set(n.name,n);for(const n of e.references)o.references.set(n.name,n);for(const r of n.components){const n=r.name,a=o.components.get(n);o.components.delete(n),a&&e.fromDependencies.components.has(a)||(a?r.code!==a.code&&(r.details.path=a.details.path,t.components.changed.push(r)):t.components.added.push(r))}for(const e of o.components.values())t.components.removed.push(e);t.components.added.sort(r.byComponentName),t.components.changed.sort(r.byComponentName),t.components.removed.sort(r.byComponentName);for(const r of n.references){const n=r.name,a=o.references.get(n);o.references.delete(n),a&&e.fromDependencies.references.has(a)||(a?r.guid===a.guid&&r.major===a.major&&r.minor===a.minor||t.references.changed.push(r):t.references.added.push(r))}for(const e of o.references.values())t.references.removed.push(e);return t}(l,await o.toSrc(w));await async function(n,t){const r=e.env.reporter.progress("Updating src files"),o=r.start,i=r.done;r.start=()=>{},r.done=()=>{},o(),await e.parallel(t.components.changed,e=>s(e.details.path,e),{progress:r}),await e.parallel(t.components.added,async t=>{const r=e.join(n.paths.dir,"src",t.filename);t.details.path=r,await s(r,t)},{progress:r}),await e.parallel(t.components.removed,async n=>{await e.remove.remove(n.details.path)},{progress:r}),await a(n,t),i()}(m,h),d||(await e.remove.remove(n.path),await e.copy.copy(f,n.path)),await e.remove.remove(i)},exports.extractTarget=u;
@@ -0,0 +1,11 @@
1
+ "use strict";var t=require("./installer-30f5d2e7.js");exports.getTarget=function(e,r){let a,o=!1;if(r){if(e.manifest.target)e.manifest.target.type===r&&(a=e.manifest.target);else{const n=r,i=e.manifest.name;a={type:n,name:i,path:"target",filename:`${t.sanitize(i)}.${n}`},o=!0}if(!a)throw new t.CliError(t.ErrorCode.TargetNoMatching,`No matching target found for type "${r}" in project.`)}else e.manifest.target&&(a=e.manifest.target);if(!a)throw new t.CliError(t.ErrorCode.TargetNoDefault,t.dedent`
2
+ No default target found for project.
3
+
4
+ Use --target TYPE for a blank target
5
+ or specify 'project.target' in vbaproject.toml.
6
+
7
+ Example vbaproject.toml:
8
+
9
+ [project]
10
+ target = "xlsm"
11
+ `);return{target:a,blankTarget:o}};