vbapm 0.6.15 → 0.7.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 (53) hide show
  1. package/README.md +46 -0
  2. package/addins/build/vbapm.xlam +0 -0
  3. package/lib/actions/add-source.d.ts +11 -0
  4. package/lib/add-source-_Z4tr2ea.js +17 -0
  5. package/lib/bin/vbapm-add.d.ts +2 -0
  6. package/lib/build-project-CIZanDh1.js +3 -0
  7. package/lib/{build-target-D6L5nsgt.js → build-target-B03OPzeI.js} +1 -1
  8. package/lib/{create-project-CPIRr0DV.js → create-project-CTAlegO8.js} +1 -1
  9. package/lib/debug.js +1 -1
  10. package/lib/errors.d.ts +4 -0
  11. package/lib/export-project-DdTYRyAw.js +4 -0
  12. package/lib/export-target-CEupP86g.js +4 -0
  13. package/lib/{get-target-CH6IpAa1.js → get-target-Ba_ZoGUl.js} +1 -1
  14. package/lib/index-CB6KQLC7.js +13 -0
  15. package/lib/{index-D-khpcjL.js → index-Cwtynogk.js} +9 -9
  16. package/lib/index-_8uEunjn.js +6 -0
  17. package/lib/{index-Dg07BXJE.js → index-mBZsirl0.js} +1 -1
  18. package/lib/index.d.ts +1 -0
  19. package/lib/index.js +1 -1
  20. package/lib/init-project-BY-a8CIk.js +15 -0
  21. package/lib/installer-C0iBwEpK.js +9 -0
  22. package/lib/{load-from-project-Bpb6Ne_i.js → load-from-project-wNJg8fme.js} +1 -1
  23. package/lib/one_ini_bg.wasm +0 -0
  24. package/lib/project-DFh-2QTw.js +20 -0
  25. package/lib/{run-macro-D_9-BO3U.js → run-macro-Ck_8Iku3.js} +1 -1
  26. package/lib/sat-solver-CqS8Vf6C.js +1 -0
  27. package/lib/test-project-CM-XUOdH.js +1 -0
  28. package/lib/toml-patch-r8oqFm0h.js +3 -0
  29. package/lib/transform-target-DJmqMjY0.js +2 -0
  30. package/lib/vbapm-add-QPN5uEGK.js +16 -0
  31. package/lib/vbapm-build-BKtQ6OeP.js +9 -0
  32. package/lib/vbapm-export-4H_qDinP.js +7 -0
  33. package/lib/{vbapm-init-csKsZ87H.js → vbapm-init-BMY4x_xq.js} +1 -1
  34. package/lib/{vbapm-new-Dt0tX1xQ.js → vbapm-new-DLW9SdvJ.js} +1 -1
  35. package/lib/{vbapm-run-Ccciwg2y.js → vbapm-run-DzRxAhlD.js} +2 -2
  36. package/lib/{vbapm-test-u7AWC-AV.js → vbapm-test-DInh0MDC.js} +1 -1
  37. package/lib/vbapm-version-3Xv7JjGv.js +8 -0
  38. package/lib/vbapm.js +2 -1
  39. package/package.json +124 -137
  40. package/lib/build-project-BczswKQl.js +0 -3
  41. package/lib/export-project-DQ3bfvbV.js +0 -4
  42. package/lib/export-target-CN6RA_mA.js +0 -4
  43. package/lib/index-DXFu_Z-o.js +0 -6
  44. package/lib/init-project-dRuDA4YO.js +0 -15
  45. package/lib/installer-CJlDenLg.js +0 -9
  46. package/lib/project-C3bWzV0O.js +0 -29
  47. package/lib/sat-solver-5AniWyxz.js +0 -1
  48. package/lib/test-project-BTkTNZXs.js +0 -1
  49. package/lib/toml-patch.es-CxrbsPnB.js +0 -3
  50. package/lib/transform-target-Doak2S1q.js +0 -2
  51. package/lib/vbapm-build-B1OOy6VL.js +0 -9
  52. package/lib/vbapm-export-vvUDCDqi.js +0 -7
  53. package/lib/vbapm-version-Bsb-cWCD.js +0 -8
@@ -1,4 +1,4 @@
1
- "use strict";var e=require("./installer-CJlDenLg.js"),n=require("path");class t{constructor(e,n,t={}){this.type=e,this.code=n&&Buffer.isBuffer(n)?n.toString():n,this.details=t}get name(){const n=r(this.code,"Attribute VB_Name");if(!n)throw new e.CliError(e.ErrorCode.ComponentInvalidNoName,"Invalid component: No attribute VB_Name found.");const[t,o]=n.split("=");return JSON.parse(o)}get binaryPath(){const e=r(this.code,"OleObjectBlob");if(!e)return;const[n,t]=e.split("=",2),[o,s]=t.split(":",2);return JSON.parse(o)}get filename(){const e=s[this.type];return`${this.name}${e}`}static async load(s,r={}){const{binary_path:a}=r,i=o[n.extname(s)];if(!i)throw new e.CliError(e.ErrorCode.ComponentUnrecognized,`Unrecognized component extension "${n.extname(s)}" (at "${s}").`);const c=await e.readFile(s),m=a&&await e.readFile(a);return new t(i,c,{path:s,binary:m})}}const o={".bas":"module",".cls":"class",".frm":"form"},s={module:".bas",class:".cls",form:".frm"};function r(n,t){return n.split(e.BY_LINE).map(e=>e.trim()).find(e=>e.startsWith(t))}function a(e,n){return e.name<n.name?-1:e.name>n.name?1:0}exports.Component=t,exports.byComponentName=a,exports.extensionToType=o,exports.loadFromProject=async function(n,o,s={}){let r=o;if(s.release){const e=n.manifest.devDependencies.map(e=>e.name);r=o.filter(n=>!e.includes(n.name))}const i=[n.manifest,...r],c=[],m=[],f={},p={components:new Map,references:new Map};for(const e of i){for(const o of e.src)c.push(t.load(o.path,{binary_path:o.binary}).then(t=>(e!==n.manifest&&p.components.set(t,e.name),t)));for(const t of e.references){const o=`${t.name}_${t.guid}`;f[o]||(m.push(t),e!==n.manifest&&p.references.set(t,e.name),f[o]=!0)}}if(!s.release){for(const e of n.manifest.devSrc)c.push(t.load(e.path,{binary_path:e.binary}));for(const e of n.manifest.devReferences){const n=`${e.name}_${e.guid}`;f[n]||(m.push(e),f[n]=!0)}}const l={name:"VBAProject",components:(await Promise.all(c)).sort(a),references:m,fromDependencies:p};return function(n,t){const o={},s={},r=[];for(const e of t.components){o[e.name]||(o[e.name]=[]);const s=t.fromDependencies.components.get(e)||n.manifest.name;o[e.name].push(s)}for(const e of t.references)s[e.name]||(s[e.name]=[]),s[e.name].push(e);for(const[n,t]of Object.entries(o))if(t.length>1){const o=t.map(e=>`"${e}"`);r.push(`Source "${n}" is present in manifests named ${e.joinCommas(o)}`)}for(const[n,t]of Object.entries(s))if(t.length>1){const o=t.map(e=>`${e.major}.${e.minor}`);r.push(`Reference "${n}" has multiple versions: ${e.joinCommas(o)}`)}if(r.length)throw new e.CliError(e.ErrorCode.BuildInvalid,e.dedent`
1
+ "use strict";var e=require("./installer-C0iBwEpK.js"),n=require("path");class t{constructor(e,n,t={}){this.type=e,this.code=n&&Buffer.isBuffer(n)?n.toString():n,this.details=t}get name(){const n=r(this.code,"Attribute VB_Name");if(!n)throw new e.CliError(e.ErrorCode.ComponentInvalidNoName,"Invalid component: No attribute VB_Name found.");const[t,o]=n.split("=");return JSON.parse(o)}get binaryPath(){const e=r(this.code,"OleObjectBlob");if(!e)return;const[n,t]=e.split("=",2),[o,s]=t.split(":",2);return JSON.parse(o)}get filename(){const e=s[this.type];return`${this.name}${e}`}static async load(s,r={}){const{binary_path:a}=r,i=o[n.extname(s)];if(!i)throw new e.CliError(e.ErrorCode.ComponentUnrecognized,`Unrecognized component extension "${n.extname(s)}" (at "${s}").`);const c=await e.readFile(s),m=a&&await e.readFile(a);return new t(i,c,{path:s,binary:m})}}const o={".bas":"module",".cls":"class",".frm":"form"},s={module:".bas",class:".cls",form:".frm"};function r(n,t){return n.split(e.BY_LINE).map(e=>e.trim()).find(e=>e.startsWith(t))}function a(e,n){return e.name<n.name?-1:e.name>n.name?1:0}exports.Component=t,exports.byComponentName=a,exports.extensionToType=o,exports.loadFromProject=async function(n,o,s={}){let r=o;if(s.release){const e=n.manifest.devDependencies.map(e=>e.name);r=o.filter(n=>!e.includes(n.name))}const i=[n.manifest,...r],c=[],m=[],f={},p={components:new Map,references:new Map};for(const e of i){for(const o of e.src)c.push(t.load(o.path,{binary_path:o.binary}).then(t=>(e!==n.manifest&&p.components.set(t,e.name),t)));for(const t of e.references){const o=`${t.name}_${t.guid}`;f[o]||(m.push(t),e!==n.manifest&&p.references.set(t,e.name),f[o]=!0)}}if(!s.release){for(const e of n.manifest.devSrc)c.push(t.load(e.path,{binary_path:e.binary}));for(const e of n.manifest.devReferences){const n=`${e.name}_${e.guid}`;f[n]||(m.push(e),f[n]=!0)}}const l={name:"VBAProject",components:(await Promise.all(c)).sort(a),references:m,fromDependencies:p};return function(n,t){const o={},s={},r=[];for(const e of t.components){o[e.name]||(o[e.name]=[]);const s=t.fromDependencies.components.get(e)||n.manifest.name;o[e.name].push(s)}for(const e of t.references)s[e.name]||(s[e.name]=[]),s[e.name].push(e);for(const[n,t]of Object.entries(o))if(t.length>1){const o=t.map(e=>`"${e}"`);r.push(`Source "${n}" is present in manifests named ${e.joinCommas(o)}`)}for(const[n,t]of Object.entries(s))if(t.length>1){const o=t.map(e=>`${e.major}.${e.minor}`);r.push(`Reference "${n}" has multiple versions: ${e.joinCommas(o)}`)}if(r.length)throw new e.CliError(e.ErrorCode.BuildInvalid,e.dedent`
2
2
  Invalid build:
3
3
 
4
4
  ${r.join("\n")}
Binary file
@@ -0,0 +1,20 @@
1
+ "use strict";var e=require("./installer-C0iBwEpK.js"),t=require("assert"),n=require("./index-CB6KQLC7.js"),r=require("querystring"),i=require("fs"),o=require("path");function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach(function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}}),t.default=e,Object.freeze(t)}var s=a(i);function c(e){return Array.from(new Set(e))}async function u(e,t){const n=e.root.dependencies.concat(e.root.devDependencies);await p(n,t);const r=[],i=[];for(const[e,n]of t){const e=d(n);e?r.push(e):i.push(n)}if(i.length)throw new Error("Unable to resolve dependency graph for given manifest");return r}async function p(e,t){const n=await Promise.all(e.map(e=>t.get(e)));for(const e of n){const{registered:n}=e,r=d(e)||n[n.length-1];await p(r.dependencies,t)}}function d(t){const n=c(t.range).join(" "),r=t.registered.slice().reverse();return n?r.find(t=>e.semverExports.satisfies(t.version,n)):r[0]}const l=e.dedent`
2
+ git dependencies are not currently supported.
3
+
4
+ Upgrade to Professional Edition (coming soon) for git dependencies and more.
5
+ `;class f{resolve(t){throw new e.CliError(e.ErrorCode.SourceUnsupported,l)}fetch(t){throw new e.CliError(e.ErrorCode.SourceUnsupported,l)}}function g(t,n){return e.isString(t)||(n=t.version,t=t.name),`${t}@${n}`}function h(e,t,n){let r=`${e}+${t}`;return n&&(r+=`#${n}`),r}function m(e){const[t,...n]=e.split("#"),[r,...i]=t.split("+");return{type:r,value:i.join("+"),details:n.join("#")}}function y(t){const{name:n,version:i,source:o}=t,{type:a,value:s,details:c}=m(o);if("registry"===a)return{name:n,version:i,registry:s};if("git"===a){return{name:n,git:s,...r.parse(c)}}if("path"===a)return{name:n,path:s,version:i};throw new e.CliError(e.ErrorCode.SourceUnrecognizedType,e.dedent`
6
+ Unrecognized source type "${a}" in registration.
7
+ ("registry", "path", and "git" are supported)
8
+ `)}class v{async resolve(t){const{name:r,path:i}=t;if(!e.pathExistsExports.pathExists(i))throw new e.CliError(e.ErrorCode.DependencyPathNotFound,`Path not found for dependency "${r}" (${i}).`);const o=await n.loadManifest(i),{version:a,dependencies:s}=o;return[{id:g(o),source:h("path",i),name:r,version:a,dependencies:s}]}async fetch(e){const{value:t}=m(e.source);return t}}const w=e.env.debug("vbapm:git"),k={name:"vbapm",email:"vbapm@local"};async function b(){const e=await Promise.resolve().then(function(){return require("./installer-C0iBwEpK.js")}).then(function(e){return e.index});global.fetch=e.default;return{git:await Promise.resolve().then(function(){return require("./index-_8uEunjn.js")}).then(function(e){return e.index}),http:(await Promise.resolve().then(function(){return require("./index-DSgWshzu.js")})).default}}async function E(e,t,n){const r="default"in(i=await Promise.resolve().then(function(){return require("./index-mBZsirl0.js")}).then(function(e){return e.index}))?i.default:i;var i;await r(e,t,n)}const x=e.env.debug("vbapm:registry-source");class ${constructor({name:t,index:n,packages:r}){this.name=t,this.local={index:e.join(e.env.registry,t),packages:e.join(e.env.packages,t)},this.remote={index:n,packages:r},this.sources=e.join(e.env.sources,t),this.upToDate=!1}async resolve(t){this.upToDate||await this.pull();const{name:n}=t,r=function(t,n){return e.join(t,j(n))}(this.local.index,n);if(!await e.pathExistsExports.pathExists(r))throw new e.CliError(e.ErrorCode.DependencyNotFound,`Dependency "${n}" not found in registry "${this.name}".`);const i=(await e.readFile(r,"utf8")).split(/\r?\n/).filter(e=>!!e).map(e=>JSON.parse(e)).filter(e=>e&&!e.yanked).map(e=>function(e,t){const{name:n,vers:r,cksum:i}=t,o=t.deps.map(t=>{const{name:n,req:r}=t;return{name:n,registry:e,version:r}});return{id:g(n,r),source:h("registry",e,i),name:n,version:r,dependencies:o}}(this.name,e));return i}async fetch(t){const n=function(e,t){const{name:n,version:r}=t;return`${e}/${j(n)}-v${r}.block`}(this.remote.packages,t),r=function(t,n){const{name:r,version:i}=n;return e.join(t,`${j(r)}-v${i}.block`)}(this.local.packages,t),[a,s]=t.source.split("#",2),[c,u]=s.split("-");if(!await e.pathExistsExports.pathExists(r)){const a=await e.tmpFile();try{await async function(t,n){return await e.mkdirsExports.ensureDir(o.dirname(n)),e.fetch(t).then(e=>{const t=i.createWriteStream(n);return new Promise((n,r)=>{e.body.pipe(t).on("finish",()=>n()).on("error",r)})})}(n,a)}catch(n){throw new e.CliError(e.ErrorCode.SourceDownloadFailed,`Failed to download "${t.source}".`,n)}const s=await e.checksum(a,c);if(s!==u)throw x(`Checksum failed for ${a}`),x(`Expected ${u} (${c}), received ${s}`),new e.CliError(e.ErrorCode.DependencyInvalidChecksum,e.dedent`
9
+ Dependency "${t.name}" failed validation.
10
+
11
+ The downloaded file signature for ${t.id}
12
+ does not match the signature in the registry.
13
+ `);await e.moveExports.move(a,r)}const p=function(t,n){const{name:r,version:i}=n;return e.join(t,`${j(r)}-v${i}`)}(this.sources,t);await e.mkdirsExports.ensureDir(p),await E(r,p);const d=e.join(p,"vba-block.toml"),l=e.join(p,"vbaproject.toml");return i.existsSync(d)&&(i.existsSync(l)?i.unlinkSync(d):i.renameSync(d,l)),p}async pull(){if(this.pulling)return this.pulling;this.pulling=async function(t,n){const r=await e.pathExistsExports.pathExists(t);if(r&&!async function(t){return await e.pathExistsExports.pathExists(e.join(t,".git"))}(t))return void e.env.reporter.log(e.Message.RegistrySourceLocalOnly,"(local registry is not a git repository, skipping pull)");if(!r){await e.mkdirsExports.ensureDir(o.dirname(t));try{await async function(t,n,r){const{git:i,http:o}=await b(),a=e.join(r,n);w(`clone: ${t} to ${a}`),await i.clone({fs:s,http:o,dir:a,url:t,depth:1})}(n,o.basename(t),o.dirname(t))}catch(t){throw new e.CliError(e.ErrorCode.RegistryCloneFailed,`Failed to clone registry from ${n}`,t)}}try{await async function(e){const{git:t,http:n}=await b(),r=await t.currentBranch({fs:s,dir:e,fullname:!1});w(`pull: ${e}${r?` (${r})`:""}`),await t.pull({fs:s,http:n,dir:e,ref:r||void 0,author:k,committer:k})}(t)}catch(t){x("Pull failed",t),e.env.reporter.log(e.Message.RegistrySourceSkipPull,"(failed to update local registry, resolving with previously loaded values)")}}(this.local.index,this.remote.index),await this.pulling,this.upToDate=!0,this.pulling=void 0}}function j(t){return e.sanitize(t.replace("/","--"))}async function D(r,i){if(n.isRegistryDependency(i)){const{registry:e}=i,n=r.registry[e];return t.ok(n,S(e)),n.resolve(i)}if(n.isPathDependency(i))return r.path.resolve(i);if(n.isGitDependency(i))return r.git.resolve(i);throw new e.CliError(e.ErrorCode.DependencyUnknownSource,`No source matches dependency "${i.name}".`)}async function C(n,r){const{type:i,value:o}=m(r.source);if("registry"===i){const e=n.registry[o];return t.ok(e,S(o)),n.registry[o].fetch(r)}if("path"===i)return n.path.fetch(r);if("git"===i)return n.git.fetch(r);throw new e.CliError(e.ErrorCode.SourceNoneMatching,e.dedent`
14
+ No source matches given registration type "${i}"
15
+ (source = "${r.source}").
16
+ `)}function S(t){return new e.CliError(e.ErrorCode.SourceMisconfiguredRegistry,`No matching registry configured for "${t}".`)}class P{constructor(e){this.config=e,this.graph=new Map,this.loading=new Map,this.preferred=new Map}async get(e){const{name:t}=e;this.loading.has(t)&&await this.loading.get(t);let r=this.graph.get(t);if(!r){const n=D(this.config.sources,e);this.loading.set(t,n);r={name:t,range:[],registered:await n},this.preferred.has(t)&&(r.preferred=this.preferred.get(t)),this.loading.delete(t),this.graph.set(t,r)}return n.isRegistryDependency(e)&&r.range.push(e.version),r}getRegistration(e){const[t,n]=e.split("@",2);if(!this.graph.has(t))return;const{registered:r}=this.graph.get(t);return r.find(e=>e.version===n)}prefer(e){for(const t of e)this.preferred.set(t.name,t)}[Symbol.iterator](){return this.graph.entries()}}const F=e.env.debug("vbapm:resolve");async function q(t,n,r=[]){e.env.reporter.log(e.Message.DependenciesResolving,"Resolving dependencies");const i=new P(t);i.prefer(r);try{return await u(n,i)}catch(e){F(`solveLatest failed with ${e}`)}try{const{solveSat:e}=await Promise.resolve().then(function(){return require("./sat-solver-CqS8Vf6C.js")});return await e(n,i)}catch(e){F(`solveSat failed with ${e}`)}throw new e.CliError(e.ErrorCode.ResolveFailed,e.dedent`
17
+ Unable to resolve dependency graph for project.
18
+
19
+ There are dependencies that cannot be satisfied.
20
+ `)}async function R(e,t){return e.name===t.name&&await async function(e,t){const n=e.dependencies.concat(e.devDependencies);if(n.length!==t.dependencies.length)return!1;const r={};n.forEach(e=>{r[e.name]=e});for(const e of t.dependencies){const t=r[e.name];if(!t)return!1;if(!await M(t,e))return!1}return!0}(e,t)}async function M(t,r){if(n.isRegistryDependency(r))return n.isRegistryDependency(t)&&e.semverExports.satisfies(r.version,t.version);if(n.isPathDependency(r)){if(!n.isPathDependency(t))return!1;if(t.path!==r.path)return!1;return(await n.loadManifest(t.path)).version===r.version}if(n.isGitDependency(r)){if(!n.isGitDependency(t))return!1;if(e.has(t,"rev")&&e.has(r,"rev"))return t.rev===r.rev;if(e.has(t,"tag")&&e.has(r,"tag"))return t.tag===r.tag;if(e.has(t,"branch")&&e.has(r,"branch"))return t.branch===r.branch}return!1}const N=e.env.debug("vbapm:lockfile");async function z(r){const i=e.join(r,"vbaproject.lock");if(N(`Reading lockfile from ${i}`),!await e.pathExistsExports.pathExists(i))return N("Not found"),null;try{const o=await e.readFile(i,"utf8");return await async function(r,i){const o=await n.parse(r);t.ok(e.has(o,"root"),"vbaproject.lock is missing [root] field");const a=o.metadata,s=new Map,c=(o.packages||[]).map(e=>{const{name:n,version:r,source:o,dependencies:a}=e;t.ok(n&&r&&o&&Array.isArray(a),"Invalid package in lockfile");const c={id:g(n,r),name:n,version:r,source:T(o,i),dependencies:a};return s.set(n,y(c)),c});c.forEach(e=>{e.dependencies=e.dependencies.map(e=>W(e,s))});const u=L(o.root,s),p=(o.members||[]).map(e=>L(e,s));return{metadata:a,workspace:{root:u,members:p},packages:c}}(o,r)}catch(e){return N("Error reading/parsing"),N(e),null}}function L(e,n){const{name:r}=e;t.ok(r&&Array.isArray(e.dependencies),"Invalid manifest in lockfile");return{name:r,dependencies:e.dependencies.map(e=>W(e,n))}}function O(e,t,n){const{name:r,version:i}=e;return{name:r,dependencies:e.dependencies.concat(e.devDependencies).map(e=>A(e,t,n))}}function U(t,n){const{type:r,value:i,details:o}=m(t);if("path"!==r)return t;return h(r,e.trailing(e.relative(n,i)),o)}function T(t,n){const{type:r,value:i,details:o}=m(t);if("path"!==r)return t;return h(r,e.join(n,i),o)}function A(n,r,i){const o=function(e,t){return e.find(e=>e.name===t.name)}(r,n);t.ok(o,`No package found for dependency "${n.name}"`);let{version:a,source:s}=o;const{type:c,value:u,details:p}=m(s);if("path"===c){s=h(c,e.trailing(e.relative(i,u)),p)}return`${n.name} ${a} ${s}`}function W(e,n){const[r]=e.split(" ",1),i=n.get(r);return t.ok(i,`Package not found in lockfile, "${e}"`),i}function I(e,t){return e.name<t.name?-1:e.name>t.name?1:0}const G={registry:{},flags:{}},B={"vba-blocks":{index:"https://github.com/vba-blocks/registry",packages:"https://packages.vba-blocks.com"}},J={};async function H(){const t={...G,...await K(e.env.config)||{}},n=await async function(){return}(e.env.cwd),r={...G,...n?await K(n):{}},i={},o={...B,...t.registry,...r.registry,...i.registry},a={...J,...t.flags,...r.flags,...i.flags},s={registry:{},git:new f,path:new v};for(const[e,{index:t,packages:n}]of Object.entries(o))s.registry[e]=new $({name:e,index:t,packages:n});return{registry:o,flags:a,sources:s}}async function K(t){const r=e.join(t,"config.toml");if(!await e.pathExistsExports.pathExists(r))return{};const i=await e.readFile(r);return await n.parse(i.toString())}async function Q(e,t){return{paths:{root:t,members:[]},root:e,members:[]}}const V=e.env.debug("vbapm:project");exports.fetch=C,exports.fetchDependencies=async function(t){return await e.parallel(t.packages,async e=>{const r=await C(t.config.sources,e);return await n.loadManifest(r)},{progress:e.env.reporter.progress("Fetching dependencies")})},exports.init=async function(e){const{git:t}=await b();w(`init: ${e}`),await t.init({fs:s,dir:e})},exports.initProject=async function(t,n,r={}){n=e.normalize(n);const{type:i="project"}=r,o=await H(),a={type:i,name:t,version:"0.0.0",metadata:{authors:[],license:"UNLICENSED"},src:[],dependencies:[],references:[],devSrc:[],devDependencies:[],devReferences:[]},s=await Q(a,n);return{manifest:a,workspace:s,packages:[],config:o,paths:{root:s.paths.root,dir:n,build:e.join(n,"build"),backup:e.join(n,"build",".backup"),staging:await e.tmpFolder({dir:e.env.staging})},hasDirtyLockfile:!0}},exports.loadConfig=H,exports.loadProject=async function(t=e.env.cwd){const r=await n.loadManifest(t),i=await H(),o=await Q(r,t),a=await z(o.paths.root),s=!a||!await async function(e,t){if(!e.metadata||"1"!==e.metadata.version)return!1;if(!await R(t.root,e.workspace.root))return!1;if(e.workspace.members.length!==t.members.length)return!1;const n={};t.members.forEach(e=>n[e.name]=e);for(const t of e.workspace.members){const e=n[t.name];if(!e)return!1;if(!await R(e,t))return!1}return!0}(a,o);return V(s?"Resolving packages":"Loading packages from lockfile"),{manifest:r,workspace:o,packages:s?await q(i,o,a?a.packages:[]):a.packages,config:i,paths:{root:o.paths.root,dir:t,build:e.join(t,"build"),backup:e.join(t,"build",".backup"),staging:await e.tmpFolder({dir:e.env.staging})},hasDirtyLockfile:s}},exports.loadWorkspace=Q,exports.resolve=q,exports.resolve$1=D,exports.toDependency=y,exports.unique=c,exports.unzip=E,exports.writeLockfile=async function(t,r){const i=e.join(t,"vbaproject.lock");N(`Writing lockfile to ${i}`);try{const o=function(e,t){const r=O(e.workspace.root,e.packages,t),i=e.workspace.members.map(n=>O(n,e.packages,t)),o=e.packages.sort(I).map(n=>{const{name:r,version:i,source:o}=n,a=n.dependencies.map(n=>A(n,e.packages,t));return{name:r,version:i,source:U(o,t),dependencies:a}}),a={version:"1"},s=n.toLockfile({metadata:a,root:r,members:i,packages:o});return`${s}`}(r,t);await e.writeFile(i,o)}catch(t){throw N("Error converting/writing"),N(t),new e.CliError(e.ErrorCode.LockfileWriteFailed,`Failed to write lockfile to "${i}".`)}},exports.zip=async function(e,t){const{create:n}=(await Promise.resolve().then(function(){return require("./index-Cwtynogk.js")}).then(function(e){return e.index})).default;return new Promise((r,o)=>{try{const a=i.createWriteStream(t),s=n("zip");a.on("close",()=>r()),a.on("error",o),s.pipe(a),s.on("error",o),s.directory(e,"/"),s.finalize()}catch(e){o(e)}})};
@@ -1 +1 @@
1
- "use strict";var r=require("./transform-target-Doak2S1q.js"),e=require("./installer-CJlDenLg.js"),i=require("./project-C3bWzV0O.js");require("assert"),require("fs");var t=require("./get-target-CH6IpAa1.js"),a=require("path");exports.runMacro=async function(o){let{target:n,file:s,macro:u,args:l=[""]}=o;if(!s){const r=await i.loadProject(),{target:a}=t.getTarget(r,n);s=e.join(r.paths.dir,"build",a.filename)}if(!s)throw new e.CliError(e.ErrorCode.RunMissingFile,"file is required for vbapm run (e.g. vbapm run --file FILE <macro> <arg>...).");if(!u)throw new e.CliError(e.ErrorCode.RunMissingMacro,"macro is required for vbapm run (e.g. vbapm run --file FILE <macro> <arg>...).");const c=r.extensionToApplication(a.extname(s)),g=await e.run(c,e.resolve(s),u,l),{stdout:f}=g;return f&&f.trim().length&&console.log(f),g};
1
+ "use strict";var r=require("./transform-target-DJmqMjY0.js"),e=require("./installer-C0iBwEpK.js"),i=require("./project-DFh-2QTw.js");require("assert"),require("fs");var t=require("./get-target-Ba_ZoGUl.js"),a=require("path");exports.runMacro=async function(o){let{target:n,file:s,macro:u,args:l=[""]}=o;if(!s){const r=await i.loadProject(),{target:a}=t.getTarget(r,n);s=e.join(r.paths.dir,"build",a.filename)}if(!s)throw new e.CliError(e.ErrorCode.RunMissingFile,"file is required for vbapm run (e.g. vbapm run --file FILE <macro> <arg>...).");if(!u)throw new e.CliError(e.ErrorCode.RunMissingMacro,"macro is required for vbapm run (e.g. vbapm run --file FILE <macro> <arg>...).");const g=r.extensionToApplication(a.extname(s)),c=await e.run(g,e.resolve(s),u,l),{stdout:f}=c;return f&&f.trim().length&&console.log(f),c};