vbapm 0.6.15 → 0.8.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.
- package/README.md +86 -0
- package/addins/build/vbapm.xlam +0 -0
- package/lib/actions/add-source.d.ts +11 -0
- package/lib/actions/export-project.d.ts +2 -0
- package/lib/actions/update-project.d.ts +7 -0
- package/lib/add-source-BOumGmx7.js +17 -0
- package/lib/addin.d.ts +1 -0
- package/lib/bin/vbapm-add.d.ts +2 -0
- package/lib/bin/vbapm-update.d.ts +2 -0
- package/lib/build-project-De7NPBpt.js +3 -0
- package/lib/build-target-ooHNsSLD.js +9 -0
- package/lib/{create-project-CPIRr0DV.js → create-project-BYc3XMZw.js} +1 -1
- package/lib/debug.js +1 -1
- package/lib/errors.d.ts +6 -0
- package/lib/export-project-CgFMyE-g.js +4 -0
- package/lib/export-target-C0RYJqUX.js +4 -0
- package/lib/{get-target-CH6IpAa1.js → get-target-LUoY1UWJ.js} +1 -1
- package/lib/index-C61lSPb5.js +1 -0
- package/lib/index-CBGUBgfk.js +13 -0
- package/lib/index-ClUEyMCY.js +6 -0
- package/lib/{index-Dg07BXJE.js → index-Cp8MNK26.js} +1 -1
- package/lib/{index-D-khpcjL.js → index-Dv6JxqGo.js} +9 -9
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -1
- package/lib/init-project-9RKSVG_H.js +15 -0
- package/lib/installer-DPj-zT7L.js +9 -0
- package/lib/{load-from-project-Bpb6Ne_i.js → load-from-project-ClF4qaC0.js} +1 -1
- package/lib/messages.d.ts +2 -0
- package/lib/one_ini_bg.wasm +0 -0
- package/lib/project-BPmPCkUS.js +20 -0
- package/lib/run-macro-C1-aJWu5.js +1 -0
- package/lib/sat-solver-B6RXdyQs.js +1 -0
- package/lib/targets/build-target.d.ts +1 -0
- package/lib/targets/export-target.d.ts +3 -1
- package/lib/targets/transforms/format-xml.d.ts +2 -0
- package/lib/test-project-DXBFZH3o.js +1 -0
- package/lib/toml-patch-r8oqFm0h.js +3 -0
- package/lib/transform-build-graph-DgRrocSn.js +1 -0
- package/lib/transform-target-CYhuozxP.js +2 -0
- package/lib/utils/encoding.d.ts +30 -0
- package/lib/utils/run.d.ts +4 -1
- package/lib/utils/xml.d.ts +14 -0
- package/lib/vbapm-add-CASFjXAL.js +16 -0
- package/lib/vbapm-build-Bhm_pqQW.js +9 -0
- package/lib/vbapm-export-8KDCdFOz.js +9 -0
- package/lib/{vbapm-init-csKsZ87H.js → vbapm-init-Ba2xCez2.js} +1 -1
- package/lib/{vbapm-new-Dt0tX1xQ.js → vbapm-new-YQRNQ4Iq.js} +1 -1
- package/lib/{vbapm-run-Ccciwg2y.js → vbapm-run-J-R--noZ.js} +2 -2
- package/lib/{vbapm-test-u7AWC-AV.js → vbapm-test-C4KWMPLz.js} +1 -1
- package/lib/vbapm-update-DnbmW8tc.js +13 -0
- package/lib/vbapm-version-CRicT8YA.js +8 -0
- package/lib/vbapm.js +3 -1
- package/package.json +127 -137
- package/run-scripts/run.applescript +18 -7
- package/run-scripts/run.ps1 +42 -10
- package/lib/build-project-BczswKQl.js +0 -3
- package/lib/build-target-D6L5nsgt.js +0 -9
- package/lib/export-project-DQ3bfvbV.js +0 -4
- package/lib/export-target-CN6RA_mA.js +0 -4
- package/lib/index-DXFu_Z-o.js +0 -6
- package/lib/init-project-dRuDA4YO.js +0 -15
- package/lib/installer-CJlDenLg.js +0 -9
- package/lib/project-C3bWzV0O.js +0 -29
- package/lib/run-macro-D_9-BO3U.js +0 -1
- package/lib/sat-solver-5AniWyxz.js +0 -1
- package/lib/test-project-BTkTNZXs.js +0 -1
- package/lib/toml-patch.es-CxrbsPnB.js +0 -3
- package/lib/transform-target-Doak2S1q.js +0 -2
- package/lib/vbapm-build-B1OOy6VL.js +0 -9
- package/lib/vbapm-export-vvUDCDqi.js +0 -7
- package/lib/vbapm-version-Bsb-cWCD.js +0 -8
package/lib/project-C3bWzV0O.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("./installer-CJlDenLg.js"),t=require("assert"),n=require("path"),r=require("querystring"),i=require("fs");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 o=a(i);function s(e){return Array.from(new Set(e))}async function c(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=u(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=u(e)||n[n.length-1];await p(r.dependencies,t)}}function u(t){const n=s(t.range).join(" "),r=t.registered.slice().reverse();return n?r.find(t=>e.semverExports.satisfies(t.version,n)):r[0]}const l='Example vbaproject.toml:\n\n [dependencies]\n a = "^1.0.0"\n b = { version = "^0.1.0" }\n c = { path = "packages/c" }\n d = { git = "https://github.com/author/d" }\n e = { git = "https://github.com/author/e", branch = "next" }\n f = { git = "https://github.com/author/f", tag = "v1.0.0" }\n g = { git = "https://github.com/author/g", rev = "a1b2c3d4" }\n\n [dependencies.h]\n version = "^2.0.0"';function d(t,r){return Object.entries(t).map(([t,i])=>function(t,r,i){e.isString(r)&&(r={version:r});let{registry:a="vba-blocks",version:o,path:s,git:c,tag:p,branch:u="master",rev:d}=r;return e.manifestOk(o||s||c,`Invalid dependency "${t}", no version, path, or git specified. \n\n${l}`),o?{name:t,registry:a,version:o}:s?{name:t,path:e.trailing(e.join(i,s))}:(c=function(e){return".git"===n.extname(e)?e:`${e}.git`}(c),d?{name:t,git:c,rev:d}:p?{name:t,git:c,tag:p}:{name:t,git:c,branch:u})}(t,i,r))}function f(t){return e.has(t,"registry")}function g(t){return e.has(t,"path")}function h(t){return e.has(t,"git")}function m(t,n){const r={};return t.forEach(t=>{if(f(t)){const{name:e,registry:n,version:i}=t;r[e]="vba-blocks"!==n?{version:i,registry:n}:i}else if(g(t)){let{name:i,path:a}=t;a=e.relative(n,a),r[i]={path:a}}else{const{name:e,git:n,tag:i,branch:a,rev:o}=t;r[e]={name:e,git:n},i&&(r[e].tag=i),a&&(r[e].branch=a),o&&(r[e].rev=o)}}),r}const v=e.dedent`
|
|
2
|
-
git dependencies are not currently supported.
|
|
3
|
-
|
|
4
|
-
Upgrade to Professional Edition (coming soon) for git dependencies and more.
|
|
5
|
-
`;class y{resolve(t){throw new e.CliError(e.ErrorCode.SourceUnsupported,v)}fetch(t){throw new e.CliError(e.ErrorCode.SourceUnsupported,v)}}async function w(e){const{parse:t}=await Promise.resolve().then(function(){return require("./toml-patch.es-CxrbsPnB.js")});return t(e)}function b(t,n=0){if(e.isString(t))return`"${t}"`;if(e.isNumber(t))return`${t}`;if(e.isBoolean(t))return t?"true":"false";if(e.isDate(t))return t.toISOString();if(e.isObject(t)){let e="";if(0===n)for(const[r,i]of Object.entries(t))Array.isArray(i)?i.forEach(t=>{e+=`[[${r}]]\n${b(t,n+1)}\n`}):e+=`[${r}]\n${b(i,n+1)}\n`;else if(1===n)for(const[r,i]of Object.entries(t))if(Array.isArray(i)){const t=0===i.length;e+=`${r} = [\n`,e+=i.map(e=>` ${b(e,n+1)}`).join(",\n"),e+=t?"]\n":",\n]\n"}else e+=`${r} = ${b(i,n+1)}\n`;return e}throw new Error("Unsupported type passed to toLockfile. Only String, Number, Boolean, Date, Array, and Object are supported")}const k=/^(\d+)\.(\d+)$/,x=/\{.{8}-.{4}-.{4}-.{4}-.{12}\}/,j=e=>parseInt(e,10),E='Example vbaproject.toml:\n\n [references.Scripting]\n version = "1.0"\n guid = "{420B2830-E718-11CF-893D-00A0C9054228}"';function $(t){return Object.entries(t).map(([t,n])=>function(t,n){const{version:r,guid:i}=n;e.manifestOk((e=>k.test(e))(r),`Reference "${t}" has an invalid version "${r}". \n\n${E}.`),e.manifestOk((e=>x.test(e))(i),`Reference "${t}" has an invalid guid "${i}". \n\n${E}'`);const{major:a,minor:o}=(e=>{const[t,n]=e.split(".",2).map(j);return{major:t,minor:n}})(r);return{name:t,guid:i,major:a,minor:o}}(t,n))}function S(e){const t={};return e.forEach(e=>{const{name:n,guid:r,major:i,minor:a}=e,o=`${i}.${a}`;t[n]={version:o,guid:r}}),t}const C='Example vbaproject.toml:\n\n [src]\n A = "src/a.bas"\n B = { path = "src/b.cls" }';function O(t,n){return Object.entries(t).map(([t,r])=>function(t,n,r){e.isString(n)&&(n={path:n});const{path:i,binary:a}=n;e.manifestOk(i,`src "${t}" is missing path. \n\n${C}`);const o=e.join(r,i),s={name:t,path:o};a&&(s.binary=e.join(r,a));return s}(t,r,n))}function D(t,n){const r={};return t.forEach(t=>{let{name:i,path:a}=t;a=e.relative(n,a),r[i]=a}),r}const q=["xlsx","xlsm","xlam"];function P(t,n,r){e.isString(t)&&(t={type:t}),e.has(t,"name")||(t={name:n,...t});const{type:i,name:a,path:o="target"}=t;e.manifestOk(e.isString(i),'Target is missing "type". \n\nExample vbaproject.toml:\n\n [project]\n target = "xlsm"\n\nExample vbaproject.toml with alternative path:\n\n [project]\n target = { type = "xlsm", path = "target/xlsm" }.'),e.manifestOk(function(t){return e.isString(t)&&q.includes(t)}(i),`Unsupported target type "${i}". Only "xlsx", "xlsm", and "xlam" are supported currently.`);return{name:a,type:i,path:e.join(r,o),filename:`${e.sanitize(a)}.${i}`}}const F="UNVERSIONED",R='Example vbaproject.toml for a package (e.g. library to be shared):\n\n [package]\n name = "my-package"\n version = "0.0.0"\n authors = ["..."]\n\nExample vbaproject.toml for a project (e.g. workbook, document, etc.):\n\n [project]\n name = "my-project"\n target = "xlsm"';function N(t,n){let r,i,a,o,s,c;e.manifestOk(t&&(t.package||t.project),`A [package] or [project] section is required. \n\n${R}`),t.project?(r="project",i=t.project.name,a=t.project.version||F,o=t.project.authors,e.manifestOk(i,`[project] name is a required field. \n\n${R}`),e.manifestOk(t.project.target,`[project] target is a required field. \n\n${R}`),c=P(t.project.target,i,n)):(r="package",i=t.package.name,a=t.package.version,o=t.package.authors,s=t.package.publish,e.manifestOk(i,`[package] name is a required field. \n\n${R}`),e.manifestOk(a,`[package] version is a required field. \n\n${R}`),e.manifestOk(o,`[package] authors is a required field. \n\n${R}`),c=t.package.target&&P(t.package.target,i,n));return{type:r,name:i,version:a,metadata:{authors:o,publish:s},src:O(t.src||{},n),dependencies:d(t.dependencies||{},n),references:$(t.references||{}),devSrc:O(t["dev-src"]||{},n),devDependencies:d(t["dev-dependencies"]||{},n),devReferences:$(t["dev-references"]||{}),target:c}}async function A(t){let n=e.join(t,"vbaproject.toml");if(!await e.pathExistsExports.pathExists(n)){const r=e.join(t,"vba-block.toml");if(!await e.pathExistsExports.pathExists(r))throw new e.CliError(e.ErrorCode.ManifestNotFound,e.dedent`
|
|
6
|
-
vbaproject.toml not found in "${t}".
|
|
7
|
-
|
|
8
|
-
Try "vbapm init" to start a new project in this directory
|
|
9
|
-
or "cd YOUR_PROJECTS_DIRECTORY" to change to a folder that contains an existing project.
|
|
10
|
-
`);n=r}const r=await e.readFile(n);let i;try{i=await w(r.toString())}catch(t){throw new e.CliError(e.ErrorCode.ManifestInvalid,e.dedent`
|
|
11
|
-
vbaproject.toml is invalid:
|
|
12
|
-
|
|
13
|
-
Syntax Error: ${n} (${null==t?void 0:t.line}:${null==t?void 0:t.column})\n\n${(null==t?void 0:t.message)||t}
|
|
14
|
-
`)}return N(i,e.normalize(t))}function M(t,n){return e.isString(t)||(n=t.version,t=t.name),`${t}@${n}`}function U(e,t,n){let r=`${e}+${t}`;return n&&(r+=`#${n}`),r}function z(e){const[t,...n]=e.split("#"),[r,...i]=t.split("+");return{type:r,value:i.join("+"),details:n.join("#")}}function I(t){const{name:n,version:i,source:a}=t,{type:o,value:s,details:c}=z(a);if("registry"===o)return{name:n,version:i,registry:s};if("git"===o){return{name:n,git:s,...r.parse(c)}}if("path"===o)return{name:n,path:s,version:i};throw new e.CliError(e.ErrorCode.SourceUnrecognizedType,e.dedent`
|
|
15
|
-
Unrecognized source type "${o}" in registration.
|
|
16
|
-
("registry", "path", and "git" are supported)
|
|
17
|
-
`)}class T{async resolve(t){const{name:n,path:r}=t;if(!e.pathExistsExports.pathExists(r))throw new e.CliError(e.ErrorCode.DependencyPathNotFound,`Path not found for dependency "${n}" (${r}).`);const i=await A(r),{version:a,dependencies:o}=i;return[{id:M(i),source:U("path",r),name:n,version:a,dependencies:o}]}async fetch(e){const{value:t}=z(e.source);return t}}const L=e.env.debug("vbapm:git"),B={name:"vbapm",email:"vbapm@local"};async function W(){const e=await Promise.resolve().then(function(){return require("./installer-CJlDenLg.js")}).then(function(e){return e.index});global.fetch=e.default;return{git:await Promise.resolve().then(function(){return require("./index-DXFu_Z-o.js")}).then(function(e){return e.index}),http:(await Promise.resolve().then(function(){return require("./index-DSgWshzu.js")})).default}}async function J(e,t,n){const r="default"in(i=await Promise.resolve().then(function(){return require("./index-Dg07BXJE.js")}).then(function(e){return e.index}))?i.default:i;var i;await r(e,t,n)}const Y=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,V(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,a=t.deps.map(t=>{const{name:n,req:r}=t;return{name:n,registry:e,version:r}});return{id:M(n,r),source:U("registry",e,i),name:n,version:r,dependencies:a}}(this.name,e));return i}async fetch(t){const r=function(e,t){const{name:n,version:r}=t;return`${e}/${V(n)}-v${r}.block`}(this.remote.packages,t),a=function(t,n){const{name:r,version:i}=n;return e.join(t,`${V(r)}-v${i}.block`)}(this.local.packages,t),[o,s]=t.source.split("#",2),[c,p]=s.split("-");if(!await e.pathExistsExports.pathExists(a)){const o=await e.tmpFile();try{await async function(t,r){return await e.mkdirsExports.ensureDir(n.dirname(r)),e.fetch(t).then(e=>{const t=i.createWriteStream(r);return new Promise((n,r)=>{e.body.pipe(t).on("finish",()=>n()).on("error",r)})})}(r,o)}catch(n){throw new e.CliError(e.ErrorCode.SourceDownloadFailed,`Failed to download "${t.source}".`,n)}const s=await e.checksum(o,c);if(s!==p)throw Y(`Checksum failed for ${o}`),Y(`Expected ${p} (${c}), received ${s}`),new e.CliError(e.ErrorCode.DependencyInvalidChecksum,e.dedent`
|
|
18
|
-
Dependency "${t.name}" failed validation.
|
|
19
|
-
|
|
20
|
-
The downloaded file signature for ${t.id}
|
|
21
|
-
does not match the signature in the registry.
|
|
22
|
-
`);await e.moveExports.move(o,a)}const u=function(t,n){const{name:r,version:i}=n;return e.join(t,`${V(r)}-v${i}`)}(this.sources,t);await e.mkdirsExports.ensureDir(u),await J(a,u);const l=e.join(u,"vba-block.toml"),d=e.join(u,"vbaproject.toml");return i.existsSync(l)&&(i.existsSync(d)?i.unlinkSync(l):i.renameSync(l,d)),u}async pull(){if(this.pulling)return this.pulling;this.pulling=async function(t,r){const i=await e.pathExistsExports.pathExists(t);if(i&&!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(!i){await e.mkdirsExports.ensureDir(n.dirname(t));try{await async function(t,n,r){const{git:i,http:a}=await W(),s=e.join(r,n);L(`clone: ${t} to ${s}`),await i.clone({fs:o,http:a,dir:s,url:t,depth:1})}(r,n.basename(t),n.dirname(t))}catch(t){throw new e.CliError(e.ErrorCode.RegistryCloneFailed,`Failed to clone registry from ${r}`,t)}}try{await async function(e){const{git:t,http:n}=await W(),r=await t.currentBranch({fs:o,dir:e,fullname:!1});L(`pull: ${e}${r?` (${r})`:""}`),await t.pull({fs:o,http:n,dir:e,ref:r||void 0,author:B,committer:B})}(t)}catch(t){Y("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 V(t){return e.sanitize(t.replace("/","--"))}async function G(n,r){if(f(r)){const{registry:e}=r,i=n.registry[e];return t.ok(i,K(e)),i.resolve(r)}if(g(r))return n.path.resolve(r);if(h(r))return n.git.resolve(r);throw new e.CliError(e.ErrorCode.DependencyUnknownSource,`No source matches dependency "${r.name}".`)}async function H(n,r){const{type:i,value:a}=z(r.source);if("registry"===i){const e=n.registry[a];return t.ok(e,K(a)),n.registry[a].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`
|
|
23
|
-
No source matches given registration type "${i}"
|
|
24
|
-
(source = "${r.source}").
|
|
25
|
-
`)}function K(t){return new e.CliError(e.ErrorCode.SourceMisconfiguredRegistry,`No matching registry configured for "${t}".`)}class Q{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 n=this.graph.get(t);if(!n){const r=G(this.config.sources,e);this.loading.set(t,r);n={name:t,range:[],registered:await r},this.preferred.has(t)&&(n.preferred=this.preferred.get(t)),this.loading.delete(t),this.graph.set(t,n)}return f(e)&&n.range.push(e.version),n}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 X=e.env.debug("vbapm:resolve");async function Z(t,n,r=[]){e.env.reporter.log(e.Message.DependenciesResolving,"Resolving dependencies");const i=new Q(t);i.prefer(r);try{return await c(n,i)}catch(e){X(`solveLatest failed with ${e}`)}try{const{solveSat:e}=await Promise.resolve().then(function(){return require("./sat-solver-5AniWyxz.js")});return await e(n,i)}catch(e){X(`solveSat failed with ${e}`)}throw new e.CliError(e.ErrorCode.ResolveFailed,e.dedent`
|
|
26
|
-
Unable to resolve dependency graph for project.
|
|
27
|
-
|
|
28
|
-
There are dependencies that cannot be satisfied.
|
|
29
|
-
`)}async function ee(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 te(t,e))return!1}return!0}(e,t)}async function te(t,n){if(f(n))return f(t)&&e.semverExports.satisfies(n.version,t.version);if(g(n)){if(!g(t))return!1;if(t.path!==n.path)return!1;return(await A(t.path)).version===n.version}if(h(n)){if(!h(t))return!1;if(e.has(t,"rev")&&e.has(n,"rev"))return t.rev===n.rev;if(e.has(t,"tag")&&e.has(n,"tag"))return t.tag===n.tag;if(e.has(t,"branch")&&e.has(n,"branch"))return t.branch===n.branch}return!1}const ne=e.env.debug("vbapm:lockfile");async function re(n){const r=e.join(n,"vbaproject.lock");if(ne(`Reading lockfile from ${r}`),!await e.pathExistsExports.pathExists(r))return ne("Not found"),null;try{const i=await e.readFile(r,"utf8");return await async function(n,r){const i=await w(n);t.ok(e.has(i,"root"),"vbaproject.lock is missing [root] field");const a=i.metadata,o=new Map,s=(i.packages||[]).map(e=>{const{name:n,version:i,source:a,dependencies:s}=e;t.ok(n&&i&&a&&Array.isArray(s),"Invalid package in lockfile");const c={id:M(n,i),name:n,version:i,source:se(a,r),dependencies:s};return o.set(n,I(c)),c});s.forEach(e=>{e.dependencies=e.dependencies.map(e=>pe(e,o))});const c=ie(i.root,o),p=(i.members||[]).map(e=>ie(e,o));return{metadata:a,workspace:{root:c,members:p},packages:s}}(i,n)}catch(e){return ne("Error reading/parsing"),ne(e),null}}function ie(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=>pe(e,n))}}function ae(e,t,n){const{name:r,version:i}=e;return{name:r,dependencies:e.dependencies.concat(e.devDependencies).map(e=>ce(e,t,n))}}function oe(t,n){const{type:r,value:i,details:a}=z(t);if("path"!==r)return t;return U(r,e.trailing(e.relative(n,i)),a)}function se(t,n){const{type:r,value:i,details:a}=z(t);if("path"!==r)return t;return U(r,e.join(n,i),a)}function ce(n,r,i){const a=function(e,t){return e.find(e=>e.name===t.name)}(r,n);t.ok(a,`No package found for dependency "${n.name}"`);let{version:o,source:s}=a;const{type:c,value:p,details:u}=z(s);if("path"===c){s=U(c,e.trailing(e.relative(i,p)),u)}return`${n.name} ${o} ${s}`}function pe(e,n){const[r]=e.split(" ",1),i=n.get(r);return t.ok(i,`Package not found in lockfile, "${e}"`),i}function ue(e,t){return e.name<t.name?-1:e.name>t.name?1:0}const le={registry:{},flags:{}},de={"vba-blocks":{index:"https://github.com/vba-blocks/registry",packages:"https://packages.vba-blocks.com"}},fe={};async function ge(){const t={...le,...await he(e.env.config)||{}},n=await async function(){return}(e.env.cwd),r={...le,...n?await he(n):{}},i={},a={...de,...t.registry,...r.registry,...i.registry},o={...fe,...t.flags,...r.flags,...i.flags},s={registry:{},git:new y,path:new T};for(const[e,{index:t,packages:n}]of Object.entries(a))s.registry[e]=new _({name:e,index:t,packages:n});return{registry:a,flags:o,sources:s}}async function he(t){const n=e.join(t,"config.toml");if(!await e.pathExistsExports.pathExists(n))return{};const r=await e.readFile(n);return await w(r.toString())}async function me(e,t){return{paths:{root:t,members:[]},root:e,members:[]}}const ve=e.env.debug("vbapm:project");exports.fetch=H,exports.fetchDependencies=async function(t){return await e.parallel(t.packages,async e=>{const n=await H(t.config.sources,e);return await A(n)},{progress:e.env.reporter.progress("Fetching dependencies")})},exports.init=async function(e){const{git:t}=await W();L(`init: ${e}`),await t.init({fs:o,dir:e})},exports.initProject=async function(t,n,r={}){n=e.normalize(n);const{type:i="project"}=r,a=await ge(),o={type:i,name:t,version:"0.0.0",metadata:{authors:[],license:"UNLICENSED"},src:[],dependencies:[],references:[],devSrc:[],devDependencies:[],devReferences:[]},s=await me(o,n);return{manifest:o,workspace:s,packages:[],config:a,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.isRegistryDependency=f,exports.loadConfig=ge,exports.loadProject=async function(t=e.env.cwd){const n=await A(t),r=await ge(),i=await me(n,t),a=await re(i.paths.root),o=!a||!await async function(e,t){if(!e.metadata||"1"!==e.metadata.version)return!1;if(!await ee(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 ee(e,t))return!1}return!0}(a,i);return ve(o?"Resolving packages":"Loading packages from lockfile"),{manifest:n,workspace:i,packages:o?await Z(r,i,a?a.packages:[]):a.packages,config:r,paths:{root:i.paths.root,dir:t,build:e.join(t,"build"),backup:e.join(t,"build",".backup"),staging:await e.tmpFolder({dir:e.env.staging})},hasDirtyLockfile:o}},exports.loadWorkspace=me,exports.parseManifest=N,exports.resolve=Z,exports.resolve$1=G,exports.toDependency=I,exports.unique=s,exports.unzip=J,exports.writeLockfile=async function(t,n){const r=e.join(t,"vbaproject.lock");ne(`Writing lockfile to ${r}`);try{const i=function(e,t){const n=ae(e.workspace.root,e.packages,t),r=e.workspace.members.map(n=>ae(n,e.packages,t)),i=e.packages.sort(ue).map(n=>{const{name:r,version:i,source:a}=n,o=n.dependencies.map(n=>ce(n,e.packages,t));return{name:r,version:i,source:oe(a,t),dependencies:o}}),a=b({metadata:{version:"1"},root:n,members:r,packages:i});return`${a}`}(n,t);await e.writeFile(r,i)}catch(t){throw ne("Error converting/writing"),ne(t),new e.CliError(e.ErrorCode.LockfileWriteFailed,`Failed to write lockfile to "${r}".`)}},exports.writeManifest=async function(t,n){const r=function(t,n){const{type:r,name:i,version:a,metadata:{authors:o,publish:s,...c}}=t,p={name:i};a!==F&&(p.version=a);null!=o&&(p.authors=o);null!=s&&(p.publish=s);Object.assign(p,c);const u={[r]:p};t.target&&(u[r].target=function(t,n,r){let i,{name:a,type:o,path:s}=t;return s=e.relative(r,s),a!==n||"target"!==s?(i={type:o},a!==n&&(i.name=a),"target"!==s&&(i.path=s)):i=o,i}(t.target,t.name,n));u.src=D(t.src,n),t.dependencies.length&&(u.dependencies=m(t.dependencies,n));t.references.length&&(u.references=S(t.references));t.devSrc.length&&(u["dev-src"]=D(t.devSrc,n));t.devDependencies.length&&(u["dev-dependencies"]=m(t.devDependencies,n));t.devReferences.length&&(u["dev-references"]=S(t.devReferences));return u}(t,n),i=e.join(n,"vbaproject.toml");let a;if(await e.pathExistsExports.pathExists(i)){const t=await e.readFile(i,"utf8");a=await async function(e,t){const{patch:n}=await Promise.resolve().then(function(){return require("./toml-patch.es-CxrbsPnB.js")});return n(e,t)}(t,r)}else a=await async function(e){const{stringify:t}=await Promise.resolve().then(function(){return require("./toml-patch.es-CxrbsPnB.js")});return t(e)}(r);await e.writeFile(i,a)},exports.zip=async function(e,t){const{create:n}=(await Promise.resolve().then(function(){return require("./index-D-khpcjL.js")}).then(function(e){return e.index})).default;return new Promise((r,a)=>{try{const o=i.createWriteStream(t),s=n("zip");o.on("close",()=>r()),o.on("error",a),s.pipe(o),s.on("error",a),s.directory(e,"/"),s.finalize()}catch(e){a(e)}})};
|
|
@@ -1 +0,0 @@
|
|
|
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};
|