vbapm 0.6.3-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.
- package/LICENSE +21 -0
- package/README.md +246 -0
- package/lib/_commonjsHelpers-553b27b3.js +2 -0
- package/lib/_commonjsHelpers-553b27b3.js.map +1 -0
- package/lib/build-project-55e5df48.js +4 -0
- package/lib/build-project-55e5df48.js.map +1 -0
- package/lib/build-target-283e1e7d.js +10 -0
- package/lib/build-target-283e1e7d.js.map +1 -0
- package/lib/create-project-905598ca.js +11 -0
- package/lib/create-project-905598ca.js.map +1 -0
- package/lib/debug.js +2 -0
- package/lib/debug.js.map +1 -0
- package/lib/export-project-55168787.js +5 -0
- package/lib/export-project-55168787.js.map +1 -0
- package/lib/export-target-c9ddd2fa.js +5 -0
- package/lib/export-target-c9ddd2fa.js.map +1 -0
- package/lib/get-target-23b8cc04.js +12 -0
- package/lib/get-target-23b8cc04.js.map +1 -0
- package/lib/index-35cff1d5.js +38 -0
- package/lib/index-35cff1d5.js.map +1 -0
- package/lib/index-87f55e79.js +4 -0
- package/lib/index-87f55e79.js.map +1 -0
- package/lib/index-b49bd5b2.js +2 -0
- package/lib/index-b49bd5b2.js.map +1 -0
- package/lib/index-c97017db.js +2 -0
- package/lib/index-c97017db.js.map +1 -0
- package/lib/index-d9ba3ba0.js +6 -0
- package/lib/index-d9ba3ba0.js.map +1 -0
- package/lib/index-ffbba08f.js +3 -0
- package/lib/index-ffbba08f.js.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/inherits-713f4554.js +2 -0
- package/lib/inherits-713f4554.js.map +1 -0
- package/lib/init-project-a62cb644.js +16 -0
- package/lib/init-project-a62cb644.js.map +1 -0
- package/lib/load-from-project-e6530a69.js +6 -0
- package/lib/load-from-project-e6530a69.js.map +1 -0
- package/lib/minimatch-3a1d1fa9.js +2 -0
- package/lib/minimatch-3a1d1fa9.js.map +1 -0
- package/lib/once-9eb67b4f.js +2 -0
- package/lib/once-9eb67b4f.js.map +1 -0
- package/lib/project-d43b4e0c.js +30 -0
- package/lib/project-d43b4e0c.js.map +1 -0
- package/lib/run-macro-f4aa7c14.js +2 -0
- package/lib/run-macro-f4aa7c14.js.map +1 -0
- package/lib/sat-solver-01d6409e.js +2 -0
- package/lib/sat-solver-01d6409e.js.map +1 -0
- package/lib/src/actions/build-project.d.ts +2 -0
- package/lib/src/actions/create-project.d.ts +8 -0
- package/lib/src/actions/export-project.d.ts +6 -0
- package/lib/src/actions/increment-version.d.ts +5 -0
- package/lib/src/actions/init-project.d.ts +9 -0
- package/lib/src/actions/run-macro.d.ts +8 -0
- package/lib/src/actions/test-project.d.ts +5 -0
- package/lib/src/addin.d.ts +36 -0
- package/lib/src/bin/vba-blocks-build.d.ts +2 -0
- package/lib/src/bin/vba-blocks-export.d.ts +2 -0
- package/lib/src/bin/vba-blocks-init.d.ts +2 -0
- package/lib/src/bin/vba-blocks-new.d.ts +2 -0
- package/lib/src/bin/vba-blocks-run.d.ts +2 -0
- package/lib/src/bin/vba-blocks-test.d.ts +2 -0
- package/lib/src/bin/vba-blocks-version.d.ts +2 -0
- package/lib/src/bin/vba-blocks.d.ts +2 -0
- package/lib/src/build/apply-changeset.d.ts +3 -0
- package/lib/src/build/build-graph.d.ts +18 -0
- package/lib/src/build/changeset.d.ts +14 -0
- package/lib/src/build/compare-build-graphs.d.ts +3 -0
- package/lib/src/build/component.d.ts +25 -0
- package/lib/src/build/index.d.ts +7 -0
- package/lib/src/build/load-from-export.d.ts +2 -0
- package/lib/src/build/load-from-project.d.ts +5 -0
- package/lib/src/build/stage-build-graph.d.ts +2 -0
- package/lib/src/build/transform-build-graph.d.ts +3 -0
- package/lib/src/build/transforms/editor-config.d.ts +3 -0
- package/lib/src/cache.d.ts +9 -0
- package/lib/src/config.d.ts +29 -0
- package/lib/src/debug.d.ts +2 -0
- package/lib/src/env.d.ts +21 -0
- package/lib/src/errors.d.ts +56 -0
- package/lib/src/index.d.ts +16 -0
- package/lib/src/installer.d.ts +3 -0
- package/lib/src/lockfile/index.d.ts +23 -0
- package/lib/src/lockfile/is-lockfile-valid.d.ts +10 -0
- package/lib/src/lockfile/lockfile.d.ts +26 -0
- package/lib/src/manifest/dependency.d.ts +25 -0
- package/lib/src/manifest/index.d.ts +34 -0
- package/lib/src/manifest/reference.d.ts +12 -0
- package/lib/src/manifest/source.d.ts +8 -0
- package/lib/src/manifest/target.d.ts +10 -0
- package/lib/src/manifest/version.d.ts +3 -0
- package/lib/src/messages.d.ts +22 -0
- package/lib/src/professional/sources/git-source.d.ts +7 -0
- package/lib/src/professional/workspace.d.ts +10 -0
- package/lib/src/project.d.ts +48 -0
- package/lib/src/reporter.d.ts +12 -0
- package/lib/src/resolve/dependency-graph.d.ts +4 -0
- package/lib/src/resolve/index.d.ts +6 -0
- package/lib/src/resolve/latest-solver.d.ts +8 -0
- package/lib/src/resolve/resolver.d.ts +23 -0
- package/lib/src/resolve/sat-solver.d.ts +7 -0
- package/lib/src/sources/index.d.ts +16 -0
- package/lib/src/sources/path-source.d.ts +7 -0
- package/lib/src/sources/registration.d.ts +17 -0
- package/lib/src/sources/registry-source.d.ts +32 -0
- package/lib/src/sources/source.d.ts +6 -0
- package/lib/src/targets/add-target.d.ts +8 -0
- package/lib/src/targets/build-target.d.ts +41 -0
- package/lib/src/targets/export-target.d.ts +15 -0
- package/lib/src/targets/get-target.d.ts +7 -0
- package/lib/src/targets/index.d.ts +3 -0
- package/lib/src/targets/project-info.d.ts +7 -0
- package/lib/src/targets/transform-target.d.ts +3 -0
- package/lib/src/targets/transforms/core-xml.d.ts +2 -0
- package/lib/src/targets/transforms/workbook-xml.d.ts +2 -0
- package/lib/src/utils/async-map.d.ts +4 -0
- package/lib/src/utils/download.d.ts +1 -0
- package/lib/src/utils/fs.d.ts +23 -0
- package/lib/src/utils/get-staging.d.ts +1 -0
- package/lib/src/utils/git.d.ts +4 -0
- package/lib/src/utils/github.d.ts +9 -0
- package/lib/src/utils/has.d.ts +1 -0
- package/lib/src/utils/hash.d.ts +8 -0
- package/lib/src/utils/interop.d.ts +1 -0
- package/lib/src/utils/is.d.ts +5 -0
- package/lib/src/utils/noop.d.ts +1 -0
- package/lib/src/utils/observable.d.ts +15 -0
- package/lib/src/utils/parallel.d.ts +6 -0
- package/lib/src/utils/path.d.ts +7 -0
- package/lib/src/utils/pipe.d.ts +5 -0
- package/lib/src/utils/run.d.ts +17 -0
- package/lib/src/utils/stdout-file.d.ts +3 -0
- package/lib/src/utils/text.d.ts +4 -0
- package/lib/src/utils/toml.d.ts +4 -0
- package/lib/src/utils/unique.d.ts +1 -0
- package/lib/src/utils/without.d.ts +1 -0
- package/lib/src/utils/xml.d.ts +10 -0
- package/lib/src/utils/zip.d.ts +17 -0
- package/lib/test-project-d4f237d1.js +2 -0
- package/lib/test-project-d4f237d1.js.map +1 -0
- package/lib/text-ba532b40.js +10 -0
- package/lib/text-ba532b40.js.map +1 -0
- package/lib/tmp-bc08ebcf.js +10 -0
- package/lib/tmp-bc08ebcf.js.map +1 -0
- package/lib/toml-patch.es-6bd2145d.js +4 -0
- package/lib/toml-patch.es-6bd2145d.js.map +1 -0
- package/lib/vba-blocks-build-a717fcdb.js +10 -0
- package/lib/vba-blocks-build-a717fcdb.js.map +1 -0
- package/lib/vba-blocks-export-7e2c75cc.js +8 -0
- package/lib/vba-blocks-export-7e2c75cc.js.map +1 -0
- package/lib/vba-blocks-init-54531020.js +17 -0
- package/lib/vba-blocks-init-54531020.js.map +1 -0
- package/lib/vba-blocks-new-3210d92c.js +18 -0
- package/lib/vba-blocks-new-3210d92c.js.map +1 -0
- package/lib/vba-blocks-run-ab9d4ad4.js +11 -0
- package/lib/vba-blocks-run-ab9d4ad4.js.map +1 -0
- package/lib/vba-blocks-test-da5dba90.js +16 -0
- package/lib/vba-blocks-test-da5dba90.js.map +1 -0
- package/lib/vba-blocks-version-e1b3c35a.js +9 -0
- package/lib/vba-blocks-version-e1b3c35a.js.map +1 -0
- package/lib/vba-blocks.js +43 -0
- package/lib/vba-blocks.js.map +1 -0
- package/lib/workbook-xml-69fff4ae.js +3 -0
- package/lib/workbook-xml-69fff4ae.js.map +1 -0
- package/package.json +116 -0
- package/run-scripts/run.applescript +78 -0
- package/run-scripts/run.ps1 +211 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";var e=require("./text-ba532b40.js"),r=require("util"),t=require("path"),s=require("child_process"),i=require("fs"),a=require("./_commonjsHelpers-553b27b3.js"),o=require("os"),n=require("./build-project-55e5df48.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("constants"),require("assert"),require("crypto"),require("./project-d43b4e0c.js"),require("querystring"),require("./build-target-283e1e7d.js"),require("./workbook-xml-69fff4ae.js"),require("./minimatch-3a1d1fa9.js"),require("string_decoder"),require("./load-from-project-e6530a69.js"),require("./get-target-23b8cc04.js");var u=p(r),c=p(t),l=p(s),d=p(i),f=p(o),m=a.createCommonjsModule((function(e){const r=()=>{if("linux"!==process.platform)return!1;if(f.default.release().includes("Microsoft"))return!0;try{return d.default.readFileSync("/proc/version","utf8").includes("Microsoft")}catch(e){return!1}};process.env.__IS_WSL_TEST__?e.exports=r:e.exports=r()}));const{promisify:h}=u.default,g=h(d.default.access),b=h(l.default.execFile),q=c.default.join(__dirname,"xdg-open");var w=async(e,r)=>{if("string"!=typeof e)throw new TypeError("Expected a `target`");let t;r={wait:!1,background:!1,...r};let s=[];const i=[],a={};if(Array.isArray(r.app)&&(s=r.app.slice(1),r.app=r.app[0]),"darwin"===process.platform)t="open",r.wait&&i.push("--wait-apps"),r.background&&i.push("--background"),r.app&&i.push("-a",r.app);else if("win32"===process.platform||m){if(t="cmd"+(m?".exe":""),i.push("/c","start",'""',"/b"),e=e.replace(/&/g,"^&"),r.wait&&i.push("/wait"),r.app){if(m&&r.app.startsWith("/mnt/")){const e=await(async e=>{const{stdout:r}=await b("wslpath",["-w",e]);return r.trim()})(r.app);r.app=e}i.push(r.app)}s.length>0&&i.push(...s)}else{if(r.app)t=r.app;else{const e=!__dirname||"/"===__dirname;let r=!1;try{await g(q,d.default.constants.X_OK),r=!0}catch(e){}t=process.versions.electron||"android"===process.platform||e||!r?"xdg-open":q}s.length>0&&i.push(...s),r.wait||(a.stdio="ignore",a.detached=!0)}i.push(e),"darwin"===process.platform&&s.length>0&&i.push("--args",...s);const o=l.default.spawn(t,i,a);return r.wait?new Promise(((e,r)=>{o.once("error",r),o.once("close",(t=>{t>0?r(new Error(`Exited with code ${t}`)):e(o)}))})):(o.unref(),o)},y=["h","min","s","ms","μs","ns"],j=["hour","minute","second","millisecond","microsecond","nanosecond"],x=[3600,60,1,1e6,1e3,1],_=function(e,r){var t,s,i,a,o,n,p,u,c;if(t=!1,s=!1,r&&(t=r.verbose||!1,s=r.precise||!1),!Array.isArray(e)||2!==e.length)return"";if("number"!=typeof e[0]||"number"!=typeof e[1])return"";for(e[1]<0&&(c=e[0]+e[1]/1e9,e[0]=parseInt(c),e[1]=1e9*parseFloat((c%1).toPrecision(9))),u="",i=0;i<6&&(a=e[i<3?0:1],3!==i&&0!==i&&(a%=x[i-1]),2===i&&(a+=e[1]/1e9),!((o=a/x[i])>=1)||(t&&(o=Math.floor(o)),s?p=o.toString():(n=o>=10?0:2,p=o.toFixed(n)),p.indexOf(".")>-1&&"0"===p[p.length-1]&&(p=p.replace(/\.?0+$/,"")),u&&(u+=" "),u+=p,t?(u+=" "+j[i],"1"!==p&&(u+="s")):u+=" "+y[i],t));i++);return u};const v=e.dedent`
|
|
2
|
+
Build project from manifest (after backing up any existing built targets).
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks build [options]
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
--target=TYPE Build target of type TYPE
|
|
8
|
+
--release Exclude dev-* items from build
|
|
9
|
+
--open Open built target`;exports.default=async function(e){if(e.help)return void console.log(v);const r=process.hrtime(),t=e.target,s=e.addin,i=!!e.release,a=await n.buildProject({target:t,addin:s,release:i});console.log(`Done. ${_(process.hrtime(r))}`),e.open&&await w(a)};
|
|
10
|
+
//# sourceMappingURL=vba-blocks-build-a717fcdb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-build-a717fcdb.js","sources":["../node_modules/is-wsl/index.js","../node_modules/open/index.js","../node_modules/pretty-hrtime/index.js","../src/bin/vba-blocks-build.ts"],"sourcesContent":["'use strict';\nconst os = require('os');\nconst fs = require('fs');\n\nconst isWsl = () => {\n\tif (process.platform !== 'linux') {\n\t\treturn false;\n\t}\n\n\tif (os.release().includes('Microsoft')) {\n\t\treturn true;\n\t}\n\n\ttry {\n\t\treturn fs.readFileSync('/proc/version', 'utf8').includes('Microsoft');\n\t} catch (err) {\n\t\treturn false;\n\t}\n};\n\nif (process.env.__IS_WSL_TEST__) {\n\tmodule.exports = isWsl;\n} else {\n\tmodule.exports = isWsl();\n}\n","'use strict';\nconst {promisify} = require('util');\nconst path = require('path');\nconst childProcess = require('child_process');\nconst fs = require('fs');\nconst isWsl = require('is-wsl');\n\nconst pAccess = promisify(fs.access);\nconst pExecFile = promisify(childProcess.execFile);\n\n// Path to included `xdg-open`\nconst localXdgOpenPath = path.join(__dirname, 'xdg-open');\n\n// Convert a path from WSL format to Windows format:\n// `/mnt/c/Program Files/Example/MyApp.exe` → `C:\\Program Files\\Example\\MyApp.exe`\nconst wslToWindowsPath = async path => {\n\tconst {stdout} = await pExecFile('wslpath', ['-w', path]);\n\treturn stdout.trim();\n};\n\nmodule.exports = async (target, options) => {\n\tif (typeof target !== 'string') {\n\t\tthrow new TypeError('Expected a `target`');\n\t}\n\n\toptions = {\n\t\twait: false,\n\t\tbackground: false,\n\t\t...options\n\t};\n\n\tlet command;\n\tlet appArguments = [];\n\tconst cliArguments = [];\n\tconst childProcessOptions = {};\n\n\tif (Array.isArray(options.app)) {\n\t\tappArguments = options.app.slice(1);\n\t\toptions.app = options.app[0];\n\t}\n\n\tif (process.platform === 'darwin') {\n\t\tcommand = 'open';\n\n\t\tif (options.wait) {\n\t\t\tcliArguments.push('--wait-apps');\n\t\t}\n\n\t\tif (options.background) {\n\t\t\tcliArguments.push('--background');\n\t\t}\n\n\t\tif (options.app) {\n\t\t\tcliArguments.push('-a', options.app);\n\t\t}\n\t} else if (process.platform === 'win32' || isWsl) {\n\t\tcommand = 'cmd' + (isWsl ? '.exe' : '');\n\t\tcliArguments.push('/c', 'start', '\"\"', '/b');\n\t\ttarget = target.replace(/&/g, '^&');\n\n\t\tif (options.wait) {\n\t\t\tcliArguments.push('/wait');\n\t\t}\n\n\t\tif (options.app) {\n\t\t\tif (isWsl && options.app.startsWith('/mnt/')) {\n\t\t\t\tconst windowsPath = await wslToWindowsPath(options.app);\n\t\t\t\toptions.app = windowsPath;\n\t\t\t}\n\n\t\t\tcliArguments.push(options.app);\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tcliArguments.push(...appArguments);\n\t\t}\n\t} else {\n\t\tif (options.app) {\n\t\t\tcommand = options.app;\n\t\t} else {\n\t\t\t// When bundled by Webpack, there's no actual package file path and no local `xdg-open`.\n\t\t\tconst isBundled = !__dirname || __dirname === '/';\n\n\t\t\t// Check if local `xdg-open` exists and is executable.\n\t\t\tlet exeLocalXdgOpen = false;\n\t\t\ttry {\n\t\t\t\tawait pAccess(localXdgOpenPath, fs.constants.X_OK);\n\t\t\t\texeLocalXdgOpen = true;\n\t\t\t} catch (error) {}\n\n\t\t\tconst useSystemXdgOpen = process.versions.electron ||\n\t\t\t\tprocess.platform === 'android' || isBundled || !exeLocalXdgOpen;\n\t\t\tcommand = useSystemXdgOpen ? 'xdg-open' : localXdgOpenPath;\n\t\t}\n\n\t\tif (appArguments.length > 0) {\n\t\t\tcliArguments.push(...appArguments);\n\t\t}\n\n\t\tif (!options.wait) {\n\t\t\t// `xdg-open` will block the process unless stdio is ignored\n\t\t\t// and it's detached from the parent even if it's unref'd.\n\t\t\tchildProcessOptions.stdio = 'ignore';\n\t\t\tchildProcessOptions.detached = true;\n\t\t}\n\t}\n\n\tcliArguments.push(target);\n\n\tif (process.platform === 'darwin' && appArguments.length > 0) {\n\t\tcliArguments.push('--args', ...appArguments);\n\t}\n\n\tconst subprocess = childProcess.spawn(command, cliArguments, childProcessOptions);\n\n\tif (options.wait) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tsubprocess.once('error', reject);\n\n\t\t\tsubprocess.once('close', exitCode => {\n\t\t\t\tif (exitCode > 0) {\n\t\t\t\t\treject(new Error(`Exited with code ${exitCode}`));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresolve(subprocess);\n\t\t\t});\n\t\t});\n\t}\n\n\tsubprocess.unref();\n\n\treturn subprocess;\n};\n","/*jshint node:true */\r\n\r\n\"use strict\";\r\n\r\nvar minimalDesc = ['h', 'min', 's', 'ms', 'μs', 'ns'];\r\nvar verboseDesc = ['hour', 'minute', 'second', 'millisecond', 'microsecond', 'nanosecond'];\r\nvar convert = [60*60, 60, 1, 1e6, 1e3, 1];\r\n\r\nmodule.exports = function (source, opts) {\r\n\tvar verbose, precise, i, spot, sourceAtStep, valAtStep, decimals, strAtStep, results, totalSeconds;\r\n\r\n\tverbose = false;\r\n\tprecise = false;\r\n\tif (opts) {\r\n\t\tverbose = opts.verbose || false;\r\n\t\tprecise = opts.precise || false;\r\n\t}\r\n\r\n\tif (!Array.isArray(source) || source.length !== 2) {\r\n\t\treturn '';\r\n\t}\r\n\tif (typeof source[0] !== 'number' || typeof source[1] !== 'number') {\r\n\t\treturn '';\r\n\t}\r\n\r\n\t// normalize source array due to changes in node v5.4+\r\n\tif (source[1] < 0) {\r\n\t\ttotalSeconds = source[0] + source[1] / 1e9;\r\n\t\tsource[0] = parseInt(totalSeconds);\r\n\t\tsource[1] = parseFloat((totalSeconds % 1).toPrecision(9)) * 1e9;\r\n\t}\r\n\r\n\tresults = '';\r\n\r\n\t// foreach unit\r\n\tfor (i = 0; i < 6; i++) {\r\n\t\tspot = i < 3 ? 0 : 1; // grabbing first or second spot in source array\r\n\t\tsourceAtStep = source[spot];\r\n\t\tif (i !== 3 && i !== 0) {\r\n\t\t\tsourceAtStep = sourceAtStep % convert[i-1]; // trim off previous portions\r\n\t\t}\r\n\t\tif (i === 2) {\r\n\t\t\tsourceAtStep += source[1]/1e9; // get partial seconds from other portion of the array\r\n\t\t}\r\n\t\tvalAtStep = sourceAtStep / convert[i]; // val at this unit\r\n\t\tif (valAtStep >= 1) {\r\n\t\t\tif (verbose) {\r\n\t\t\t\tvalAtStep = Math.floor(valAtStep); // deal in whole units, subsequent laps will get the decimal portion\r\n\t\t\t}\r\n\t\t\tif (!precise) {\r\n\t\t\t\t// don't fling too many decimals\r\n\t\t\t\tdecimals = valAtStep >= 10 ? 0 : 2;\r\n\t\t\t\tstrAtStep = valAtStep.toFixed(decimals);\r\n\t\t\t} else {\r\n\t\t\t\tstrAtStep = valAtStep.toString();\r\n\t\t\t}\r\n\t\t\tif (strAtStep.indexOf('.') > -1 && strAtStep[strAtStep.length-1] === '0') {\r\n\t\t\t\tstrAtStep = strAtStep.replace(/\\.?0+$/,''); // remove trailing zeros\r\n\t\t\t}\r\n\t\t\tif (results) {\r\n\t\t\t\tresults += ' '; // append space if we have a previous value\r\n\t\t\t}\r\n\t\t\tresults += strAtStep; // append the value\r\n\t\t\t// append units\r\n\t\t\tif (verbose) {\r\n\t\t\t\tresults += ' '+verboseDesc[i];\r\n\t\t\t\tif (strAtStep !== '1') {\r\n\t\t\t\t\tresults += 's';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tresults += ' '+minimalDesc[i];\r\n\t\t\t}\r\n\t\t\tif (!verbose) {\r\n\t\t\t\tbreak; // verbose gets as many groups as necessary, the rest get only one\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn results;\r\n};\r\n","import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport open from \"open\";\nimport time from \"pretty-hrtime\";\nimport { buildProject } from \"../actions/build-project\";\n\nconst help = dedent`\n Build project from manifest (after backing up any existing built targets).\n\n Usage: vba-blocks build [options]\n\n Options:\n --target=TYPE Build target of type TYPE\n --release Exclude dev-* items from build\n --open Open built target`;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst start = process.hrtime();\n\tconst target = <string | undefined>args.target;\n\tconst addin = <string | undefined>args.addin;\n\tconst release = !!args.release;\n\n\tconst path = await buildProject({ target, addin, release });\n\tconsole.log(`Done. ${time(process.hrtime(start))}`);\n\n\tif (!!args.open) {\n\t\tawait open(path);\n\t}\n}\n"],"names":["isWsl","process","platform","os","release","includes","fs","readFileSync","err","env","__IS_WSL_TEST__","module","exports","promisify","require$$0","pAccess","access","pExecFile","childProcess","execFile","localXdgOpenPath","path","join","__dirname","async","target","options","TypeError","command","wait","background","appArguments","cliArguments","childProcessOptions","Array","isArray","app","slice","push","replace","startsWith","windowsPath","stdout","trim","wslToWindowsPath","length","isBundled","exeLocalXdgOpen","constants","X_OK","error","versions","electron","stdio","detached","subprocess","spawn","Promise","resolve","reject","once","exitCode","Error","unref","minimalDesc","verboseDesc","convert","source","opts","verbose","precise","i","sourceAtStep","valAtStep","decimals","strAtStep","results","totalSeconds","parseInt","parseFloat","toPrecision","Math","floor","toString","toFixed","indexOf","help","dedent","args","console","log","start","hrtime","addin","buildProject","time","open"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";var e=require("./text-ba532b40.js"),r=require("./export-project-55168787.js");require("./_commonjsHelpers-553b27b3.js"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("path"),require("os"),require("fs"),require("constants"),require("assert"),require("crypto"),require("./workbook-xml-69fff4ae.js"),require("./minimatch-3a1d1fa9.js"),require("string_decoder"),require("./project-d43b4e0c.js"),require("querystring"),require("./export-target-c9ddd2fa.js"),require("./load-from-project-e6530a69.js");const t=e.dedent`
|
|
2
|
+
Export built project, including src, references, and target.
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks export
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
--target=TYPE Export target of type TYPE`;exports.default=async function(e){if(e.help)return void console.log(t);const i=e.target,o=e.completed,s=e.addin;await r.exportProject({target:i,completed:o,addin:s})};
|
|
8
|
+
//# sourceMappingURL=vba-blocks-export-7e2c75cc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-export-7e2c75cc.js","sources":["../src/bin/vba-blocks-export.ts"],"sourcesContent":["import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport { exportProject } from \"../actions/export-project\";\n\nconst help = dedent`\n Export built project, including src, references, and target.\n\n Usage: vba-blocks export\n\n Options:\n --target=TYPE Export target of type TYPE`;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst target = <string | undefined>args.target;\n\tconst completed = <string | undefined>args.completed;\n\tconst addin = <string | undefined>args.addin;\n\n\tawait exportProject({ target, completed, addin });\n}\n"],"names":["help","dedent","async","args","console","log","target","completed","addin","exportProject"],"mappings":"smBAIA,MAAMA,EAAOC,EAAMA,MAAA;;;;;;gEAQJC,eAAeC,GAC7B,GAAIA,EAAKH,KAER,YADAI,QAAQC,IAAIL,GAIb,MAAMM,EAA6BH,EAAKG,OAClCC,EAAgCJ,EAAKI,UACrCC,EAA4BL,EAAKK,YAEjCC,EAAaA,cAAC,CAAEH,SAAQC,YAAWC,SAC1C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";var e=require("./text-ba532b40.js"),r=require("./init-project-a62cb644.js");require("./_commonjsHelpers-553b27b3.js"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("path"),require("os"),require("fs"),require("constants"),require("assert"),require("crypto"),require("./project-d43b4e0c.js"),require("querystring"),require("./workbook-xml-69fff4ae.js"),require("./minimatch-3a1d1fa9.js"),require("string_decoder"),require("./build-target-283e1e7d.js"),require("./load-from-project-e6530a69.js"),require("./export-target-c9ddd2fa.js");const t=e.dedent`
|
|
2
|
+
Initialize a new project in the current directory
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks init [options]
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
--target=TYPE Add target of type TYPE to project (e.g. xlsm)
|
|
8
|
+
--from=PATH Create target and src from workbook/document
|
|
9
|
+
--name=NAME Set project name (default = --from or directory name)
|
|
10
|
+
--package Initialize as package
|
|
11
|
+
--no-git Skip initializing git repository
|
|
12
|
+
|
|
13
|
+
Examples:
|
|
14
|
+
vba-blocks init --target xlsm
|
|
15
|
+
vba-blocks init --name calculations --package
|
|
16
|
+
`;exports.default=async function(e){if(e.help)return void console.log(t);const i=e.target,a=e.from,o=e.name,s=!!e.package,n=!("git"in e)||e.git;await r.initProject({target:i,from:a,name:o,pkg:s,git:n})};
|
|
17
|
+
//# sourceMappingURL=vba-blocks-init-54531020.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-init-54531020.js","sources":["../src/bin/vba-blocks-init.ts"],"sourcesContent":["import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport { initProject } from \"../actions/init-project\";\n\nconst help = dedent`\n Initialize a new project in the current directory\n\n Usage: vba-blocks init [options]\n\n Options:\n --target=TYPE Add target of type TYPE to project (e.g. xlsm)\n --from=PATH Create target and src from workbook/document\n --name=NAME Set project name (default = --from or directory name)\n --package Initialize as package\n --no-git Skip initializing git repository\n\n Examples:\n vba-blocks init --target xlsm\n vba-blocks init --name calculations --package\n `;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst target = <string | undefined>args.target;\n\tconst from = <string | undefined>args.from;\n\tconst name = <string | undefined>args.name;\n\tconst pkg = !!args.package;\n\tconst git = \"git\" in args ? <boolean>args.git : true;\n\n\tawait initProject({ target, from, name, pkg, git });\n}\n"],"names":["help","dedent","async","args","console","log","target","from","name","pkg","package","git","initProject"],"mappings":"0oBAIA,MAAMA,EAAOC,EAAMA,MAAA;;;;;;;;;;;;;;;oBAiBJC,eAAeC,GAC7B,GAAIA,EAAKH,KAER,YADAI,QAAQC,IAAIL,GAIb,MAAMM,EAA6BH,EAAKG,OAClCC,EAA2BJ,EAAKI,KAChCC,EAA2BL,EAAKK,KAChCC,IAAQN,EAAKO,QACbC,IAAM,QAASR,IAAgBA,EAAKQ,UAEpCC,EAAAA,YAAY,CAAEN,SAAQC,OAAMC,OAAMC,MAAKE,OAC9C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";var e=require("./text-ba532b40.js"),r=require("./create-project-905598ca.js");require("./_commonjsHelpers-553b27b3.js"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("path"),require("os"),require("fs"),require("constants"),require("assert"),require("crypto"),require("./init-project-a62cb644.js"),require("./project-d43b4e0c.js"),require("querystring"),require("./workbook-xml-69fff4ae.js"),require("./minimatch-3a1d1fa9.js"),require("string_decoder"),require("./build-target-283e1e7d.js"),require("./load-from-project-e6530a69.js"),require("./export-target-c9ddd2fa.js");const t=e.dedent`
|
|
2
|
+
Create a new project / package in a new directory
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks new <name> [options]
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
<name> Project/package name (optionally, with extension)
|
|
8
|
+
--target=TYPE Add target of type TYPE to project (e.g. xlsm)
|
|
9
|
+
--from=PATH Create target and src from workbook/document
|
|
10
|
+
--package Create as package
|
|
11
|
+
--no-git Skip initializing git repository
|
|
12
|
+
|
|
13
|
+
Examples:
|
|
14
|
+
vba-blocks new analysis.xlsm
|
|
15
|
+
vba-blocks new analysis --target xlsm
|
|
16
|
+
vba-blocks new calculations --package
|
|
17
|
+
`;exports.default=async function(e){if(e.help)return void console.log(t);const[a]=e._,i=e.target,o=e.from,s=!!e.package,c=!("git"in e)||e.git;await r.createProject({name:a,target:i,from:o,pkg:s,git:c})};
|
|
18
|
+
//# sourceMappingURL=vba-blocks-new-3210d92c.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-new-3210d92c.js","sources":["../src/bin/vba-blocks-new.ts"],"sourcesContent":["import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport { createProject } from \"../actions/create-project\";\n\nconst help = dedent`\n Create a new project / package in a new directory\n\n Usage: vba-blocks new <name> [options]\n\n Options:\n <name> Project/package name (optionally, with extension)\n --target=TYPE Add target of type TYPE to project (e.g. xlsm)\n --from=PATH Create target and src from workbook/document\n --package Create as package\n --no-git Skip initializing git repository\n\n Examples:\n vba-blocks new analysis.xlsm\n vba-blocks new analysis --target xlsm\n vba-blocks new calculations --package\n `;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst [name] = args._;\n\tconst target = <string | undefined>args.target;\n\tconst from = <string | undefined>args.from;\n\tconst pkg = !!args.package;\n\tconst git = \"git\" in args ? <boolean>args.git : true;\n\n\tawait createProject({ name, target, from, pkg, git });\n}\n"],"names":["help","dedent","async","args","console","log","name","_","target","from","pkg","package","git","createProject"],"mappings":"krBAIA,MAAMA,EAAOC,EAAMA,MAAA;;;;;;;;;;;;;;;;oBAkBJC,eAAeC,GAC7B,GAAIA,EAAKH,KAER,YADAI,QAAQC,IAAIL,GAIb,MAAOM,GAAQH,EAAKI,EACdC,EAA6BL,EAAKK,OAClCC,EAA2BN,EAAKM,KAChCC,IAAQP,EAAKQ,QACbC,IAAM,QAAST,IAAgBA,EAAKS,UAEpCC,EAAAA,cAAc,CAAEP,OAAME,SAAQC,OAAMC,MAAKE,OAChD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";var r=require("./text-ba532b40.js"),e=require("./run-macro-f4aa7c14.js");require("./_commonjsHelpers-553b27b3.js"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("path"),require("os"),require("fs"),require("constants"),require("assert"),require("crypto"),require("./workbook-xml-69fff4ae.js"),require("./minimatch-3a1d1fa9.js"),require("string_decoder"),require("./project-d43b4e0c.js"),require("querystring"),require("./get-target-23b8cc04.js");const t=r.dedent`
|
|
2
|
+
Run macro in given workbook or add-in.
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks run <macro> [<arg>...] [options]
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
<macro> Public macro to run in given file (e.g. Tests.RunTests)
|
|
8
|
+
<arg> Arguments to pass to macro (optional)
|
|
9
|
+
--target=TYPE Run in pre-built target of type TYPE
|
|
10
|
+
--file=PATH Full path to workbook or name of add-in`;exports.default=async function(r){if(r.help)return void console.log(t);const[i,...o]=r._,u=r.target;let a=r.file;await e.runMacro({target:u,file:a,macro:i,args:o})};
|
|
11
|
+
//# sourceMappingURL=vba-blocks-run-ab9d4ad4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-run-ab9d4ad4.js","sources":["../src/bin/vba-blocks-run.ts"],"sourcesContent":["import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport { runMacro } from \"../actions/run-macro\";\n\nconst help = dedent`\n Run macro in given workbook or add-in.\n\n Usage: vba-blocks run <macro> [<arg>...] [options]\n\n Options:\n <macro> Public macro to run in given file (e.g. Tests.RunTests)\n <arg> Arguments to pass to macro (optional)\n --target=TYPE Run in pre-built target of type TYPE\n --file=PATH Full path to workbook or name of add-in`;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst [macro, ...macro_args] = args._;\n\tconst target = args.target as string | undefined;\n\tlet file = args.file as string | undefined;\n\n\tawait runMacro({ target, file, macro, args: macro_args });\n}\n"],"names":["help","dedent","async","args","console","log","macro","macro_args","_","target","file","runMacro"],"mappings":"mjBAIA,MAAMA,EAAOC,EAAMA,MAAA;;;;;;;;;6EAWJC,eAAeC,GAC7B,GAAIA,EAAKH,KAER,YADAI,QAAQC,IAAIL,GAIb,MAAOM,KAAUC,GAAcJ,EAAKK,EAC9BC,EAASN,EAAKM,OACpB,IAAIC,EAAOP,EAAKO,WAEVC,EAAAA,SAAS,CAAEF,SAAQC,OAAMJ,QAAOH,KAAMI,GAC7C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";var e=require("./text-ba532b40.js"),r=require("./test-project-d4f237d1.js");require("./_commonjsHelpers-553b27b3.js"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("path"),require("os"),require("fs"),require("constants"),require("assert"),require("crypto"),require("./run-macro-f4aa7c14.js"),require("./workbook-xml-69fff4ae.js"),require("./minimatch-3a1d1fa9.js"),require("string_decoder"),require("./project-d43b4e0c.js"),require("querystring"),require("./get-target-23b8cc04.js");const t=e.dedent`
|
|
2
|
+
Run tests for built target.
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks test [options]
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
--target=TYPE Run in pre-built target of type TYPE
|
|
8
|
+
|
|
9
|
+
Notes:
|
|
10
|
+
Currently, vba-blocks uses the following convention:
|
|
11
|
+
|
|
12
|
+
Windows: "vba run Tests.Run CON"
|
|
13
|
+
Mac: "vba run Tests.Run /dev/stdout"
|
|
14
|
+
|
|
15
|
+
For more information, see https://vba-blocks.com/guides/testing`;exports.default=async function(e){if(e.help)return void console.log(t);const s=e._,i=e.target;await r.testProject({target:i,args:s})};
|
|
16
|
+
//# sourceMappingURL=vba-blocks-test-da5dba90.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-test-da5dba90.js","sources":["../src/bin/vba-blocks-test.ts"],"sourcesContent":["import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport { testProject } from \"../actions/test-project\";\n\nconst help = dedent`\n Run tests for built target.\n\n Usage: vba-blocks test [options]\n\n Options:\n --target=TYPE Run in pre-built target of type TYPE\n\n Notes:\n Currently, vba-blocks uses the following convention:\n\n Windows: \"vba run Tests.Run CON\"\n Mac: \"vba run Tests.Run /dev/stdout\"\n\n For more information, see https://vba-blocks.com/guides/testing`;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst test_args = args._;\n\tconst target = args.target as string | undefined;\n\n\tawait testProject({ target, args: test_args });\n}\n"],"names":["help","dedent","async","args","console","log","test_args","_","target","testProject"],"mappings":"ylBAIA,MAAMA,EAAOC,EAAMA,MAAA;;;;;;;;;;;;;;mFAgBJC,eAAeC,GAC7B,GAAIA,EAAKH,KAER,YADAI,QAAQC,IAAIL,GAIb,MAAMM,EAAYH,EAAKI,EACjBC,EAASL,EAAKK,aAEdC,EAAWA,YAAC,CAAED,SAAQL,KAAMG,GACnC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";var e=require("./text-ba532b40.js"),r=require("./project-d43b4e0c.js");require("./_commonjsHelpers-553b27b3.js"),require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("path"),require("os"),require("fs"),require("constants"),require("assert"),require("crypto"),require("querystring");const i=["patch","minor","major","prepatch","preminor","premajor","prerelease"];async function t(t,s={}){const n=await r.loadProject(),o=n.manifest.version,a=(c=t,i.includes(c));var c;let p;try{p=a?e.semver.inc(o,t,void 0,s.preid):e.semver.valid(t)}catch(e){}if(!p)throw new e.CliError(e.ErrorCode.InvalidVersion,`Invalid version increment "${t}"`);return n.manifest.version=p,await r.writeManifest(n.manifest,n.paths.dir),p}const s=e.dedent`
|
|
2
|
+
Increment this project's version.
|
|
3
|
+
|
|
4
|
+
Usage: vba-blocks version [<increment>] [options]
|
|
5
|
+
|
|
6
|
+
Options:
|
|
7
|
+
<increment> VERSION | patch | minor | major | prepatch | preminor | premajor
|
|
8
|
+
--preid=TYPE Use TYPE for prerelease (e.g. "beta")`;exports.default=async function(e){if(e.help)return void console.log(s);const r=e._[0]||"patch",i=e.preid,n=await t(r,{preid:i});console.log(n)};
|
|
9
|
+
//# sourceMappingURL=vba-blocks-version-e1b3c35a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks-version-e1b3c35a.js","sources":["../src/actions/increment-version.ts","../src/bin/vba-blocks-version.ts"],"sourcesContent":["import { inc, ReleaseType, valid } from \"semver\";\nimport { CliError, ErrorCode } from \"../errors\";\nimport { writeManifest } from \"../manifest\";\nimport { loadProject } from \"../project\";\n\ninterface IncrementVersionOptions {\n\tpreid?: string;\n}\n\nconst RELEASE_TYPES = [\"patch\", \"minor\", \"major\", \"prepatch\", \"preminor\", \"premajor\", \"prerelease\"];\n\nexport async function incrementVersion(\n\tincrement: string,\n\toptions: IncrementVersionOptions = {}\n): Promise<string> {\n\tconst project = await loadProject();\n\n\tconst currentVersion = project.manifest.version;\n\tconst isIncrement = isReleaseType(increment);\n\n\tlet version;\n\ttry {\n\t\tversion = isIncrement\n\t\t\t? inc(currentVersion, increment as ReleaseType, undefined, options.preid)\n\t\t\t: valid(increment);\n\t} catch (_error) {}\n\n\tif (!version) {\n\t\tthrow new CliError(ErrorCode.InvalidVersion, `Invalid version increment \"${increment}\"`);\n\t}\n\n\tproject.manifest.version = version;\n\tawait writeManifest(project.manifest, project.paths.dir);\n\n\treturn version;\n}\n\nfunction isReleaseType(value: string): value is ReleaseType {\n\treturn RELEASE_TYPES.includes(value);\n}\n","import dedent from \"@timhall/dedent\";\nimport { Args } from \"mri\";\nimport { incrementVersion } from \"../actions/increment-version\";\n\nconst help = dedent`\n Increment this project's version.\n\n Usage: vba-blocks version [<increment>] [options]\n\n Options:\n <increment> VERSION | patch | minor | major | prepatch | preminor | premajor\n --preid=TYPE Use TYPE for prerelease (e.g. \"beta\")`;\n\nexport default async function(args: Args) {\n\tif (args.help) {\n\t\tconsole.log(help);\n\t\treturn;\n\t}\n\n\tconst increment = args._[0] || \"patch\";\n\tconst preid = args.preid as string | undefined;\n\n\tconst version = await incrementVersion(increment, { preid });\n\tconsole.log(version);\n}\n"],"names":["RELEASE_TYPES","async","incrementVersion","increment","options","project","loadProject","currentVersion","manifest","version","isIncrement","value","includes","inc","undefined","preid","valid","semver","_error","CliError","ErrorCode","InvalidVersion","writeManifest","paths","dir","help","dedent","args","console","log","_"],"mappings":"yYASA,MAAMA,EAAgB,CAAC,QAAS,QAAS,QAAS,WAAY,WAAY,WAAY,cAE/EC,eAAeC,EACrBC,EACAC,EAAmC,IAEnC,MAAMC,QAAgBC,EAAAA,cAEhBC,EAAiBF,EAAQG,SAASC,QAClCC,GAmBgBC,EAnBYR,EAoB3BH,EAAcY,SAASD,IAD/B,IAAuBA,EAjBtB,IAAIF,EACJ,IACCA,EAAUC,EACPG,EAAAA,OAAAA,IAAIN,EAAgBJ,OAA0BW,EAAWV,EAAQW,OACjEC,EAAKC,OAAAD,MAACb,EACT,CAAC,MAAOe,GAAU,CAEnB,IAAKT,EACJ,MAAM,IAAIU,EAAAA,SAASC,EAAAA,UAAUC,eAAgB,8BAA8BlB,MAM5E,OAHAE,EAAQG,SAASC,QAAUA,QACrBa,EAAAA,cAAcjB,EAAQG,SAAUH,EAAQkB,MAAMC,KAE7Cf,CACR,CC/BA,MAAMgB,EAAOC,EAAMA,MAAA;;;;;;;0EASJzB,eAAe0B,GAC7B,GAAIA,EAAKF,KAER,YADAG,QAAQC,IAAIJ,GAIb,MAAMtB,EAAYwB,EAAKG,EAAE,IAAM,QACzBf,EAAQY,EAAKZ,MAEbN,QAAgBP,EAAiBC,EAAW,CAAEY,UACpDa,QAAQC,IAAIpB,EACb"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./text-ba532b40.js"),t=require("./_commonjsHelpers-553b27b3.js"),n=require("fs"),r=require("path"),o=require("crypto"),s=require("assert"),i=require("events"),c=require("os"),a=require("worker_threads");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("stream"),require("http"),require("url"),require("punycode"),require("https"),require("zlib"),require("child_process"),require("util"),require("constants");var l=u(n),f=u(r),d=u(o),h=u(s),p=u(i),g=u(c),m=u(a);var y=function(e,t){var n=[],r=[];return t.forEach((function(t,r){var o={};o[function(e,t){var n=[],r=0;for(r=0;r<=e.length;r++)n[r]=[r];for(r=0;r<=t.length;r++)n[0][r]=r;return t.split("").forEach((function(t,r){e.split("").forEach((function(e,o){n[o+1][r+1]=e!==t?Math.min(n[o][r+1]+1,n[o+1][r]+1,n[o][r]+1):n[o][r]}))})),n[e.length][t.length]}(e,t)]=r,n.push(o)})),n.sort((function(e,t){return Number(Object.keys(e)[0])-Number(Object.keys(t)[0])})),n.forEach((function(n){var o=Number(Object.keys(n)[0]);e.length/2>=o&&r.push(t[n[o]])})),r};function v(e){return null==e?[]:Array.isArray(e)?e:[e]}function w(e,t,n,r){var o,s=e[t],i=~r.string.indexOf(t)?null==n||!0===n?"":String(n):"boolean"==typeof n?n:~r.boolean.indexOf(t)?"false"!==n&&("true"===n||(e._.push(0*(o=+n)==0?o:n),!!n)):0*(o=+n)==0?o:n;e[t]=null==s?i:Array.isArray(s)?s.concat(i):[s,i]}var b="0.6.3-alpha";function j(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}var E=6e4;function S(e){return e.getTime()%E}function _(e){var t=new Date(e.getTime()),n=Math.ceil(t.getTimezoneOffset());t.setSeconds(0,0);var r=n>0?(E+S(t))%E:S(t);return n*E+r}function x(e){j(1,arguments);var t=function(e){j(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}(e);return t.setHours(0,0,0,0),t}var k=function(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)};const O=["__proto__","prototype","constructor"];function C(e){const t=e.split("."),n=[];for(let e=0;e<t.length;e++){let r=t[e];for(;"\\"===r[r.length-1]&&void 0!==t[e+1];)r=r.slice(0,-1)+".",r+=t[++e];n.push(r)}return n.some((e=>O.includes(e)))?[]:n}var A={get(e,t,n){if(!k(e)||"string"!=typeof t)return void 0===n?e:n;const r=C(t);if(0!==r.length){for(let t=0;t<r.length;t++){if(!Object.prototype.propertyIsEnumerable.call(e,r[t]))return n;if(null==(e=e[r[t]])){if(t!==r.length-1)return n;break}}return e}},set(e,t,n){if(!k(e)||"string"!=typeof t)return e;const r=e,o=C(t);if(0!==o.length){for(let t=0;t<o.length;t++){const r=o[t];k(e[r])||(e[r]={}),t===o.length-1&&(e[r]=n),e=e[r]}return r}},delete(e,t){if(!k(e)||"string"!=typeof t)return;const n=C(t);for(let t=0;t<n.length;t++){const r=n[t];if(t===n.length-1)return void delete e[r];if(e=e[r],!k(e))return}},has(e,t){if(!k(e)||"string"!=typeof t)return!1;const n=C(t);for(let t=0;t<n.length;t++){if(!k(e))return!1;if(!(n[t]in e))return!1;e=e[n[t]]}return!0}};const P=(e,t)=>function(...n){return new(0,t.promiseModule)(((r,o)=>{t.multiArgs?n.push(((...e)=>{t.errorFirst?e[0]?o(e):(e.shift(),r(e)):r(e)})):t.errorFirst?n.push(((e,t)=>{e?o(e):r(t)})):n.push(r),e.apply(this,n)}))};var F=(e,t)=>{t=Object.assign({exclude:[/.+(Sync|Stream)$/],errorFirst:!0,promiseModule:Promise},t);const n=typeof e;if(null===e||"object"!==n&&"function"!==n)throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${null===e?"null":n}\``);const r=e=>{const n=t=>"string"==typeof t?e===t:t.test(e);return t.include?t.include.some(n):!t.exclude.some(n)};let o;o="function"===n?function(...n){return t.excludeMain?e(...n):P(e,t).apply(this,n)}:Object.create(Object.getPrototypeOf(e));for(const n in e){const s=e[n];o[n]="function"==typeof s&&r(n)?P(s,t):s}return o};const T={mode:511&~process.umask(),fs:l.default},I=e.semver.satisfies(process.version,">=10.12.0"),N=e=>{if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(f.default.parse(e).root,""))){const t=new Error(`Path contains invalid characters: ${e}`);throw t.code="EINVAL",t}}},G=e=>{const t=new Error(`operation not permitted, mkdir '${e}'`);return t.code="EPERM",t.errno=-4048,t.path=e,t.syscall="mkdir",t},q=(e,t)=>Promise.resolve().then((()=>{N(e),t=Object.assign({},T,t);const n=F(t.fs.mkdir),r=F(t.fs.stat);if(I&&t.fs.mkdir===l.default.mkdir){const r=f.default.resolve(e);return n(r,{mode:t.mode,recursive:!0}).then((()=>r))}const o=e=>n(e,t.mode).then((()=>e)).catch((t=>{if("EPERM"===t.code)throw t;if("ENOENT"===t.code){if(f.default.dirname(e)===e)throw G(e);if(t.message.includes("null bytes"))throw t;return o(f.default.dirname(e)).then((()=>o(e)))}return r(e).then((t=>t.isDirectory()?e:Promise.reject())).catch((()=>{throw t}))}));return o(f.default.resolve(e))}));var D=q,$=q;D.default=$,D.sync=(e,t)=>{if(N(e),t=Object.assign({},T,t),I&&t.fs.mkdirSync===l.default.mkdirSync){const n=f.default.resolve(e);return l.default.mkdirSync(n,{mode:t.mode,recursive:!0}),n}const n=e=>{try{t.fs.mkdirSync(e,t.mode)}catch(r){if("EPERM"===r.code)throw r;if("ENOENT"===r.code){if(f.default.dirname(e)===e)throw G(e);if(r.message.includes("null bytes"))throw r;return n(f.default.dirname(e)),n(e)}try{if(!t.fs.statSync(e).isDirectory())throw new Error("The path is not a directory")}catch(e){throw r}}return e};return n(f.default.resolve(e))};var M=e=>new Promise((t=>{l.default.access(e,(e=>{t(!e)}))}));M.sync=e=>{try{return l.default.accessSync(e),!0}catch(e){return!1}};var L=e=>{if(e<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");const t=[];let n=0;const r=()=>{n--,t.length>0&&t.shift()()};return o=>new Promise(((s,i)=>{const c=()=>{var e;n++,(e=o,new Promise((t=>{t(e())}))).then((e=>{s(e),r()}),(e=>{i(e),r()}))};n<e?c():t.push(c)}))};class U extends Error{constructor(e){super(),this.value=e}}var R=(e,t,n)=>{n=Object.assign({concurrency:1/0,preserveOrder:!0},n);const r=L(n.concurrency),o=Array.from(e).map((e=>[e,r((()=>Promise.resolve(e).then(t)))])),s=L(n.preserveOrder?1:1/0);return Promise.all(o.map((e=>s((()=>(e=>Promise.all(e).then((e=>!0===e[1]&&Promise.reject(new U(e[0])))))(e)))))).then((()=>{})).catch((e=>e instanceof U?e.value:Promise.reject(e)))},B=(e,t)=>(t=Object.assign({cwd:process.cwd()},t),R(e,(e=>M(f.default.resolve(t.cwd,e))),t));B.sync=(e,t)=>{t=Object.assign({cwd:process.cwd()},t);for(const n of e)if(M.sync(f.default.resolve(t.cwd,n)))return n};var z=(e,t)=>{t=t||{};const n=f.default.resolve(t.cwd||""),r=f.default.parse(n).root,o=[].concat(e);return new Promise((e=>{!function t(n){B(o,{cwd:n}).then((o=>{o?e(f.default.join(n,o)):n===r?e(null):t(f.default.dirname(n))}))}(n)}))};z.sync=(e,t)=>{t=t||{};let n=f.default.resolve(t.cwd||"");const r=f.default.parse(n).root,o=[].concat(e);for(;;){const e=B.sync(o,{cwd:n});if(e)return f.default.join(n,e);if(n===r)return null;n=f.default.dirname(n)}};var K=e=>z("package.json",{cwd:e});K.sync=e=>z.sync("package.json",{cwd:e});const H=g.default.homedir(),X=g.default.tmpdir(),J=process.env;var V,Q=(e,t)=>{if("string"!=typeof e)throw new TypeError("Expected string, got "+typeof e);return(t=Object.assign({suffix:"nodejs"},t)).suffix&&(e+=`-${t.suffix}`),"darwin"===process.platform?(e=>{const t=f.default.join(H,"Library");return{data:f.default.join(t,"Application Support",e),config:f.default.join(t,"Preferences",e),cache:f.default.join(t,"Caches",e),log:f.default.join(t,"Logs",e),temp:f.default.join(X,e)}})(e):"win32"===process.platform?(e=>{const t=J.LOCALAPPDATA||f.default.join(H,"AppData","Local");return{data:f.default.join(t,e,"Data"),config:f.default.join(t,e,"Config"),cache:f.default.join(t,e,"Cache"),log:f.default.join(t,e,"Log"),temp:f.default.join(X,e)}})(e):(e=>{const t=f.default.basename(H);return{data:f.default.join(J.XDG_DATA_HOME||f.default.join(H,".local","share"),e),config:f.default.join(J.XDG_CONFIG_HOME||f.default.join(H,".config"),e),cache:f.default.join(J.XDG_CACHE_HOME||f.default.join(H,".cache"),e),log:f.default.join(J.XDG_STATE_HOME||f.default.join(H,".local","state"),e),temp:f.default.join(X,t,e)}})(e)},W=t.createCommonjsModule((function(e){
|
|
3
|
+
/**
|
|
4
|
+
* @preserve
|
|
5
|
+
* JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
|
|
6
|
+
*
|
|
7
|
+
* @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
|
|
8
|
+
* @see http://github.com/homebrewing/brauhaus-diff
|
|
9
|
+
* @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
|
|
10
|
+
* @see http://github.com/garycourt/murmurhash-js
|
|
11
|
+
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
|
|
12
|
+
* @see http://sites.google.com/site/murmurhash/
|
|
13
|
+
*/
|
|
14
|
+
!function(){var t;function n(e,r){var o=this instanceof n?this:t;if(o.reset(r),"string"==typeof e&&e.length>0&&o.hash(e),o!==this)return o}n.prototype.hash=function(e){var t,n,r,o,s;switch(s=e.length,this.len+=s,n=this.k1,r=0,this.rem){case 0:n^=s>r?65535&e.charCodeAt(r++):0;case 1:n^=s>r?(65535&e.charCodeAt(r++))<<8:0;case 2:n^=s>r?(65535&e.charCodeAt(r++))<<16:0;case 3:n^=s>r?(255&e.charCodeAt(r))<<24:0,n^=s>r?(65280&e.charCodeAt(r++))>>8:0}if(this.rem=s+this.rem&3,(s-=this.rem)>0){for(t=this.h1;t=5*(t=(t^=n=13715*(n=(n=11601*n+3432906752*(65535&n)&4294967295)<<15|n>>>17)+461832192*(65535&n)&4294967295)<<13|t>>>19)+3864292196&4294967295,!(r>=s);)n=65535&e.charCodeAt(r++)^(65535&e.charCodeAt(r++))<<8^(65535&e.charCodeAt(r++))<<16,n^=(255&(o=e.charCodeAt(r++)))<<24^(65280&o)>>8;switch(n=0,this.rem){case 3:n^=(65535&e.charCodeAt(r+2))<<16;case 2:n^=(65535&e.charCodeAt(r+1))<<8;case 1:n^=65535&e.charCodeAt(r)}this.h1=t}return this.k1=n,this},n.prototype.result=function(){var e,t;return e=this.k1,t=this.h1,e>0&&(t^=e=13715*(e=(e=11601*e+3432906752*(65535&e)&4294967295)<<15|e>>>17)+461832192*(65535&e)&4294967295),t^=this.len,t=51819*(t^=t>>>16)+2246770688*(65535&t)&4294967295,t=44597*(t^=t>>>13)+3266445312*(65535&t)&4294967295,(t^=t>>>16)>>>0},n.prototype.reset=function(e){return this.h1="number"==typeof e?e:0,this.rem=this.k1=this.len=0,this},t=new n,e.exports=n}()})),Y=t.createCommonjsModule((function(e){e.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&e.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&e.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")})),Z=/^win/i.test(process.platform),ee=p.default;"function"!=typeof ee&&(ee=ee.EventEmitter),process.__signal_exit_emitter__?V=process.__signal_exit_emitter__:((V=process.__signal_exit_emitter__=new ee).count=0,V.emitted={}),V.infinite||(V.setMaxListeners(1/0),V.infinite=!0);var te=function(e,t){h.default.equal(typeof e,"function","a callback must be provided for exit handler"),!1===ce&&ae();var n="exit";t&&t.alwaysLast&&(n="afterexit");return V.on(n,e),function(){V.removeListener(n,e),0===V.listeners("exit").length&&0===V.listeners("afterexit").length&&re()}},ne=re;function re(){ce&&(ce=!1,Y.forEach((function(e){try{process.removeListener(e,se[e])}catch(e){}})),process.emit=fe,process.reallyExit=ue,V.count-=1)}function oe(e,t,n){V.emitted[e]||(V.emitted[e]=!0,V.emit(e,t,n))}var se={};Y.forEach((function(e){se[e]=function(){process.listeners(e).length===V.count&&(re(),oe("exit",null,e),oe("afterexit",null,e),Z&&"SIGHUP"===e&&(e="SIGINT"),process.kill(process.pid,e))}}));var ie=ae,ce=!1;function ae(){ce||(ce=!0,V.count+=1,Y=Y.filter((function(e){try{return process.on(e,se[e]),!0}catch(e){return!1}})),process.emit=de,process.reallyExit=le)}var ue=process.reallyExit;function le(e){process.exitCode=e||0,oe("exit",process.exitCode,null),oe("afterexit",process.exitCode,null),ue.call(process,process.exitCode)}var fe=process.emit;function de(e,t){if("exit"===e){void 0!==t&&(process.exitCode=t);var n=fe.apply(this,arguments);return oe("exit",process.exitCode,null),oe("afterexit",process.exitCode,null),n}return fe.apply(this,arguments)}te.unload=ne,te.signals=function(){return Y},te.load=ie;var he=function(n,r,o,s){o?o instanceof Function?(s=o,o={}):"string"==typeof o&&(o={encoding:o}):o={};var i,c,a,u=o.Promise||t.commonjsGlobal.Promise,l=te(je((()=>a))),d=f.default.resolve(n);new u((function(e){ye[d]||(ye[d]=[]),ye[d].push(e),1===ye[d].length&&e()})).then((function(){return new u((function(t){e.gracefulFs.realpath(n,(function(e,r){a=be(i=r||n),t()}))}))})).then((function(){return new u((function(t){o.mode&&o.chown?t():e.gracefulFs.stat(i,(function(e,n){e||!n||(null==(o=Object.assign({},o)).mode&&(o.mode=n.mode),null==o.chown&&process.getuid&&(o.chown={uid:n.uid,gid:n.gid})),t()}))}))})).then((function(){return new u((function(t,n){e.gracefulFs.open(a,"w",o.mode,(function(e,r){c=r,e?n(e):t()}))}))})).then((function(){return new u((function(t,n){Buffer.isBuffer(r)?e.gracefulFs.write(c,r,0,r.length,0,(function(e){e?n(e):t()})):null!=r?e.gracefulFs.write(c,String(r),0,String(o.encoding||"utf8"),(function(e){e?n(e):t()})):t()}))})).then((function(){return new u((function(t,n){!1!==o.fsync?e.gracefulFs.fsync(c,(function(r){r?e.gracefulFs.close(c,(()=>n(r))):e.gracefulFs.close(c,t)})):e.gracefulFs.close(c,t)}))})).then((function(){if(c=null,o.chown)return new u((function(t,n){e.gracefulFs.chown(a,o.chown.uid,o.chown.gid,(function(e){e?n(e):t()}))}))})).then((function(){if(o.mode)return new u((function(t,n){e.gracefulFs.chmod(a,o.mode,(function(e){e?n(e):t()}))}))})).then((function(){return new u((function(t,n){e.gracefulFs.rename(a,i,(function(e){e?n(e):t()}))}))})).then((function(){l(),s()}),(function(t){return new u((t=>c?e.gracefulFs.close(c,t):t())).then((()=>{l(),e.gracefulFs.unlink(a,(function(){s(t)}))}))})).then((function(){ye[d].shift(),ye[d].length>0?ye[d][0]():delete ye[d]}))},pe=function(t,n,r){"string"==typeof r?r={encoding:r}:r||(r={});try{t=e.gracefulFs.realpathSync(t)}catch(e){}var o,s=be(t);if(!r.mode||!r.chown)try{var i=e.gracefulFs.statSync(t);(r=Object.assign({},r)).mode||(r.mode=i.mode),!r.chown&&process.getuid&&(r.chown={uid:i.uid,gid:i.gid})}catch(e){}var c=je(s),a=te(c);try{o=e.gracefulFs.openSync(s,"w",r.mode),Buffer.isBuffer(n)?e.gracefulFs.writeSync(o,n,0,n.length,0):null!=n&&e.gracefulFs.writeSync(o,String(n),0,String(r.encoding||"utf8")),!1!==r.fsync&&e.gracefulFs.fsyncSync(o),e.gracefulFs.closeSync(o),r.chown&&e.gracefulFs.chownSync(s,r.chown.uid,r.chown.gid),r.mode&&e.gracefulFs.chmodSync(s,r.mode),e.gracefulFs.renameSync(s,t),a()}catch(t){if(o)try{e.gracefulFs.closeSync(o)}catch(e){}throw a(),c(),t}},ge=be,me=je,ye={},ve=function(){try{return m.default.threadId}catch(e){return 0}}(),we=0;function be(e){return e+"."+W(__filename).hash(String(process.pid)).hash(String(ve)).hash(String(++we)).result()}function je(t){return function(){try{e.gracefulFs.unlinkSync("function"==typeof t?t():t)}catch(e){}}}he.sync=pe,he._getTmpname=ge,he._cleanupOnExit=me;var Ee=t.createCommonjsModule((function(e){const t=()=>Object.create(null);delete{}[__filename];const n=f.default.dirname(e.parent&&e.parent.filename||".");class r{constructor(e){const r=K.sync(n);if(!(e={projectName:r&&JSON.parse(l.default.readFileSync(r,"utf8")).name,...e}).projectName&&!e.cwd)throw new Error("Project name could not be inferred. Please specify the `projectName` option.");(e={configName:"config",fileExtension:"json",projectSuffix:"nodejs",clearInvalidConfig:!0,serialize:e=>JSON.stringify(e,null,"\t"),deserialize:JSON.parse,...e}).cwd||(e.cwd=Q(e.projectName,{suffix:e.projectSuffix}).config),this._options=e,this.events=new p.default,this.encryptionKey=e.encryptionKey,this.serialize=e.serialize,this.deserialize=e.deserialize;const o=e.fileExtension?`.${e.fileExtension}`:"";this.path=f.default.resolve(e.cwd,`${e.configName}${o}`);const s=this.store,i=Object.assign(t(),e.defaults,s);try{h.default.deepEqual(s,i)}catch(e){this.store=i}}get(e,t){return A.get(this.store,e,t)}set(e,t){if("string"!=typeof e&&"object"!=typeof e)throw new TypeError("Expected `key` to be of type `string` or `object`, got "+typeof e);if("object"!=typeof e&&void 0===t)throw new TypeError("Use `delete()` to clear values");const{store:n}=this,r=(e,t)=>{((e,t)=>{const n=typeof t;if(["undefined","symbol","function"].includes(n))throw new TypeError(`Setting a value of type \`${n}\` for key \`${e}\` is not allowed as it's not supported by JSON`)})(e,t),A.set(n,e,t)};if("object"==typeof e){const t=e;for(const[e,n]of Object.entries(t))r(e,n)}else r(e,t);this.store=n}has(e){return A.has(this.store,e)}delete(e){const{store:t}=this;A.delete(t,e),this.store=t}clear(){this.store=t()}onDidChange(e,t){if("string"!=typeof e)throw new TypeError("Expected `key` to be of type `string`, got "+typeof e);if("function"!=typeof t)throw new TypeError("Expected `callback` to be of type `function`, got "+typeof t);let n=this.get(e);const r=()=>{const r=n,o=this.get(e);try{h.default.deepEqual(o,r)}catch(e){n=o,t.call(this,o,r)}};return this.events.on("change",r),()=>this.events.removeListener("change",r)}get size(){return Object.keys(this.store).length}get store(){try{let e=l.default.readFileSync(this.path,this.encryptionKey?null:"utf8");if(this.encryptionKey)try{const t=d.default.createDecipher("aes-256-cbc",this.encryptionKey);e=Buffer.concat([t.update(e),t.final()])}catch(e){}return Object.assign(t(),this.deserialize(e))}catch(e){if("ENOENT"===e.code)return D.sync(f.default.dirname(this.path)),t();if(this._options.clearInvalidConfig&&"SyntaxError"===e.name)return t();throw e}}set store(e){D.sync(f.default.dirname(this.path));let t=this.serialize(e);if(this.encryptionKey){const e=d.default.createCipher("aes-256-cbc",this.encryptionKey);t=Buffer.concat([e.update(Buffer.from(t)),e.final()])}he.sync(this.path,t),this.events.emit("change")}*[Symbol.iterator](){for(const[e,t]of Object.entries(this.store))yield[e,t]}}e.exports=r,e.exports.default=r}));const Se=new class extends Ee{constructor(t=e.env.data){super({configName:"cache",fileExtension:"json",cwd:t})}get latest_version(){return this.get("latest_version")}set latest_version(e){this.set("latest_version",e)}get latest_version_checked(){return this.get("latest_version_checked")}set latest_version_checked(e){this.set("latest_version_checked",e)}},_e=e.env.debug("vba-blocks:installer");function xe(){const t=Se.latest_version;return!!t&&e.semver.gt(t,b)}async function ke(){const t=Se.latest_version_checked;if(t&&function(e,t){j(2,arguments);var n=x(e),r=x(t),o=n.getTime()-_(n),s=r.getTime()-_(r);return Math.round((o-s)/864e5)}(new Date(t),Date.now())<1)return xe();if(parseInt(e.env.values.VBA_BLOCKS_SKIP_UPDATE_CHECK,10))return!1;Se.latest_version_checked=Date.now();try{const t=await e.fetch("https://registry.npmjs.org/@vbapm/core/latest"),n=(await t.json()).version;return Se.latest_version=n,e.semver.gt(n,b)}catch(e){return _e("Error loading latest version from npm registry"),_e(e),!1}}Error.stackTraceLimit=1/0;const Oe=e.env.debug("vba-blocks:main"),Ce={new:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-new-3210d92c.js")}))).default,init:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-init-54531020.js")}))).default,build:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-build-a717fcdb.js")}))).default,test:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-test-da5dba90.js")}))).default,export:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-export-7e2c75cc.js")}))).default,run:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-run-ab9d4ad4.js")}))).default,version:async()=>(await Promise.resolve().then((function(){return require("./vba-blocks-version-e1b3c35a.js")}))).default},Ae=function(e,t){t=t||{};var n,r,o,s,i,c={_:[]},a=0,u=0,l=0,f=(e=e||[]).length;const d=void 0!==t.alias,h=void 0!==t.unknown,p=void 0!==t.default;if(t.alias=t.alias||{},t.string=v(t.string),t.boolean=v(t.boolean),d)for(n in t.alias)for(r=t.alias[n]=v(t.alias[n]),a=0;a<r.length;a++)(t.alias[r[a]]=r.concat(n)).splice(a,1);for(a=t.boolean.length;a-- >0;)for(u=(r=t.alias[t.boolean[a]]||[]).length;u-- >0;)t.boolean.push(r[u]);for(a=t.string.length;a-- >0;)for(u=(r=t.alias[t.string[a]]||[]).length;u-- >0;)t.string.push(r[u]);if(p)for(n in t.default)if(s=typeof t.default[n],r=t.alias[n]=t.alias[n]||[],void 0!==t[s])for(t[s].push(n),a=0;a<r.length;a++)t[s].push(r[a]);const g=h?Object.keys(t.alias):[];for(a=0;a<f;a++){if("--"===(o=e[a])){c._=c._.concat(e.slice(++a));break}for(u=0;u<o.length&&45===o.charCodeAt(u);u++);if(0===u)c._.push(o);else if("no-"===o.substring(u,u+3)){if(s=o.substring(u+3),h&&!~g.indexOf(s))return t.unknown(o);c[s]=!1}else{for(l=u+1;l<o.length&&61!==o.charCodeAt(l);l++);for(s=o.substring(u,l),i=o.substring(++l)||a+1===f||45===(""+e[a+1]).charCodeAt(0)||e[++a],r=2===u?[s]:s,l=0;l<r.length;l++){if(s=r[l],h&&!~g.indexOf(s))return t.unknown("-".repeat(u)+s);w(c,s,l+1<r.length||i,t)}}}if(p)for(n in t.default)void 0===c[n]&&(c[n]=t.default[n]);if(d)for(n in c)for(r=t.alias[n]||[];r.length>0;)c[r.shift()]=c[n];return c}(process.argv.slice(2),{alias:{v:"version",h:"help"}});if(Ae.debug){let e=Ae.debug;!0===e?e="*":Array.isArray(e)&&(e=e.join(","));const t=e.split(",").map((e=>`vba-blocks:${e}`)),n=process.env.DEBUG?process.env.DEBUG.split(","):[];process.env.DEBUG=n.concat(t).join(",")}const Pe=e.dedent`
|
|
15
|
+
vba-blocks v${b}
|
|
16
|
+
|
|
17
|
+
Usage: vba-blocks [command] [options]
|
|
18
|
+
|
|
19
|
+
Commands:
|
|
20
|
+
- new Create a new project / package in a new directory
|
|
21
|
+
- init Initialize a new project / package in the current directory
|
|
22
|
+
- build Build project from manifest
|
|
23
|
+
- test Run tests for built target
|
|
24
|
+
- export Export src from built target
|
|
25
|
+
- run Run macro in document / add-in
|
|
26
|
+
- help Outputs this message or the help of the given command
|
|
27
|
+
|
|
28
|
+
Options:
|
|
29
|
+
-h, --help Output usage information
|
|
30
|
+
-v, --version Output the version number
|
|
31
|
+
|
|
32
|
+
Use 'vba-blocks help COMMAND' for help on specific commands.
|
|
33
|
+
Visit https://vba-blocks.com to learn more about vba-blocks.`,Fe=()=>e.dedent`
|
|
34
|
+
\n${e.greenBright("New Update!")} ${Se.latest_version}
|
|
35
|
+
|
|
36
|
+
A new version of vba-blocks is available.
|
|
37
|
+
Run "npm update -g @vbapm/core" to update.`;function Te(t,n){const{message:r}=e.cleanError(t);console.error(`${e.redBright("ERROR")} ${r}`),process.env.DEBUG&&(console.error(t),e.isCliError(t)&&t.underlying&&console.error("underlying",t.underlying),e.isRunError(t)&&console.error("result",t.result)),process.exit(1)}process.title="vba-blocks",process.on("unhandledRejection",Te),process.on("uncaughtException",Te),async function(){let[t]=Ae._;if(!t)return void(Ae.version?console.log(b):(console.log(Pe),xe()&&e.env.reporter.log(e.Message.UpdateAvailable,Fe())));if("help"===t){if(t=Ae._[1],!t)return void console.log(Pe);Ae._=[t],Ae.help=!0}t=t.toLowerCase();const n=Object.keys(Ce);if(!n.includes(t)){const r=y(t,n).length?`, did you mean "${y(t,n)}"?`:".",o=e.joinCommas(n.map((e=>`"${e}"`)));throw new e.CliError(e.ErrorCode.UnknownCommand,e.dedent`
|
|
38
|
+
Unknown command "${t}"${r}
|
|
39
|
+
|
|
40
|
+
Available commands are ${o}.
|
|
41
|
+
Try "vba-blocks help" for more information.
|
|
42
|
+
`)}let r;Ae._=Ae._.slice(1);try{Oe(`loading "./vba-blocks-${t}.js"`),r=await Ce[t]()}catch(e){const n=e instanceof Error?e:new Error(String(e));throw new Error(`Failed to load command "${t}".\n${n.stack}`)}Oe(`starting "${t}" with args ${JSON.stringify(Ae)}`);const[o]=await Promise.all([ke(),r(Ae)]);o&&e.env.reporter.log(e.Message.UpdateAvailable,Fe())}().then((()=>process.exit(0))).catch(Te),exports.handleError=Te;
|
|
43
|
+
//# sourceMappingURL=vba-blocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vba-blocks.js","sources":["../node_modules/meant/index.js","../node_modules/mri/lib/index.mjs","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/is-obj/index.js","../node_modules/dot-prop/index.js","../node_modules/make-dir/node_modules/pify/index.js","../node_modules/make-dir/index.js","../node_modules/pkg-up/node_modules/path-exists/index.js","../node_modules/pkg-up/node_modules/p-try/index.js","../node_modules/pkg-up/node_modules/p-limit/index.js","../node_modules/pkg-up/node_modules/p-locate/index.js","../node_modules/pkg-up/node_modules/locate-path/index.js","../node_modules/pkg-up/node_modules/find-up/index.js","../node_modules/pkg-up/index.js","../node_modules/conf/node_modules/env-paths/index.js","../node_modules/signal-exit/index.js","../node_modules/imurmurhash/imurmurhash.js","../node_modules/signal-exit/signals.js","../node_modules/write-file-atomic/index.js","../node_modules/conf/index.js","../src/cache.ts","../src/installer.ts","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../src/bin/vba-blocks.ts"],"sourcesContent":["function levenshteinD (s1, s2) {\n var d = []\n var i = 0\n\n for (i = 0; i <= s1.length; i++) d[i] = [i]\n for (i = 0; i <= s2.length; i++) d[0][i] = i\n\n s2.split('').forEach(function (c2, j) {\n s1.split('').forEach(function (c1, i) {\n if (c1 === c2) {\n d[i + 1][j + 1] = d[i][j]\n return\n }\n d[i + 1][j + 1] = Math.min(\n d[i][j + 1] + 1,\n d[i + 1][j] + 1,\n d[i][j] + 1\n )\n })\n })\n\n return d[s1.length][s2.length]\n}\n\nfunction meant (scmd, commands) {\n var d = []\n var bestSimilarity = []\n\n commands.forEach(function (cmd, i) {\n var item = {}\n item[levenshteinD(scmd, cmd)] = i\n d.push(item)\n })\n\n d.sort(function (a, b) {\n return Number(Object.keys(a)[0]) - Number(Object.keys(b)[0])\n })\n\n d.forEach(function (item) {\n var key = Number(Object.keys(item)[0])\n if (scmd.length / 2 >= key) {\n bestSimilarity.push(commands[item[key]])\n }\n })\n\n return bestSimilarity\n}\n\nmodule.exports = meant\n","function toArr(any) {\n\treturn any == null ? [] : Array.isArray(any) ? any : [any];\n}\n\nfunction toVal(out, key, val, opts) {\n\tvar x, old=out[key], nxt=(\n\t\t!!~opts.string.indexOf(key) ? (val == null || val === true ? '' : String(val))\n\t\t: typeof val === 'boolean' ? val\n\t\t: !!~opts.boolean.indexOf(key) ? (val === 'false' ? false : val === 'true' || (out._.push((x = +val,x * 0 === 0) ? x : val),!!val))\n\t\t: (x = +val,x * 0 === 0) ? x : val\n\t);\n\tout[key] = old == null ? nxt : (Array.isArray(old) ? old.concat(nxt) : [old, nxt]);\n}\n\nexport default function (args, opts) {\n\targs = args || [];\n\topts = opts || {};\n\n\tvar k, arr, arg, name, val, out={ _:[] };\n\tvar i=0, j=0, idx=0, len=args.length;\n\n\tconst alibi = opts.alias !== void 0;\n\tconst strict = opts.unknown !== void 0;\n\tconst defaults = opts.default !== void 0;\n\n\topts.alias = opts.alias || {};\n\topts.string = toArr(opts.string);\n\topts.boolean = toArr(opts.boolean);\n\n\tif (alibi) {\n\t\tfor (k in opts.alias) {\n\t\t\tarr = opts.alias[k] = toArr(opts.alias[k]);\n\t\t\tfor (i=0; i < arr.length; i++) {\n\t\t\t\t(opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i=opts.boolean.length; i-- > 0;) {\n\t\tarr = opts.alias[opts.boolean[i]] || [];\n\t\tfor (j=arr.length; j-- > 0;) opts.boolean.push(arr[j]);\n\t}\n\n\tfor (i=opts.string.length; i-- > 0;) {\n\t\tarr = opts.alias[opts.string[i]] || [];\n\t\tfor (j=arr.length; j-- > 0;) opts.string.push(arr[j]);\n\t}\n\n\tif (defaults) {\n\t\tfor (k in opts.default) {\n\t\t\tname = typeof opts.default[k];\n\t\t\tarr = opts.alias[k] = opts.alias[k] || [];\n\t\t\tif (opts[name] !== void 0) {\n\t\t\t\topts[name].push(k);\n\t\t\t\tfor (i=0; i < arr.length; i++) {\n\t\t\t\t\topts[name].push(arr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst keys = strict ? Object.keys(opts.alias) : [];\n\n\tfor (i=0; i < len; i++) {\n\t\targ = args[i];\n\n\t\tif (arg === '--') {\n\t\t\tout._ = out._.concat(args.slice(++i));\n\t\t\tbreak;\n\t\t}\n\n\t\tfor (j=0; j < arg.length; j++) {\n\t\t\tif (arg.charCodeAt(j) !== 45) break; // \"-\"\n\t\t}\n\n\t\tif (j === 0) {\n\t\t\tout._.push(arg);\n\t\t} else if (arg.substring(j, j + 3) === 'no-') {\n\t\t\tname = arg.substring(j + 3);\n\t\t\tif (strict && !~keys.indexOf(name)) {\n\t\t\t\treturn opts.unknown(arg);\n\t\t\t}\n\t\t\tout[name] = false;\n\t\t} else {\n\t\t\tfor (idx=j+1; idx < arg.length; idx++) {\n\t\t\t\tif (arg.charCodeAt(idx) === 61) break; // \"=\"\n\t\t\t}\n\n\t\t\tname = arg.substring(j, idx);\n\t\t\tval = arg.substring(++idx) || (i+1 === len || (''+args[i+1]).charCodeAt(0) === 45 || args[++i]);\n\t\t\tarr = (j === 2 ? [name] : name);\n\n\t\t\tfor (idx=0; idx < arr.length; idx++) {\n\t\t\t\tname = arr[idx];\n\t\t\t\tif (strict && !~keys.indexOf(name)) return opts.unknown('-'.repeat(j) + name);\n\t\t\t\ttoVal(out, name, (idx + 1 < arr.length) || val, opts);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (defaults) {\n\t\tfor (k in opts.default) {\n\t\t\tif (out[k] === void 0) {\n\t\t\t\tout[k] = opts.default[k];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (alibi) {\n\t\tfor (k in out) {\n\t\t\tarr = opts.alias[k] || [];\n\t\t\twhile (arr.length > 0) {\n\t\t\t\tout[arr.shift()] = out[k];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out;\n}\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","'use strict';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","'use strict';\nconst isObj = require('is-obj');\n\nconst disallowedKeys = [\n\t'__proto__',\n\t'prototype',\n\t'constructor'\n];\n\nconst isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.includes(segment));\n\nfunction getPathSegments(path) {\n\tconst pathArr = path.split('.');\n\tconst parts = [];\n\n\tfor (let i = 0; i < pathArr.length; i++) {\n\t\tlet p = pathArr[i];\n\n\t\twhile (p[p.length - 1] === '\\\\' && pathArr[i + 1] !== undefined) {\n\t\t\tp = p.slice(0, -1) + '.';\n\t\t\tp += pathArr[++i];\n\t\t}\n\n\t\tparts.push(p);\n\t}\n\n\tif (!isValidPath(parts)) {\n\t\treturn [];\n\t}\n\n\treturn parts;\n}\n\nmodule.exports = {\n\tget(obj, path, value) {\n\t\tif (!isObj(obj) || typeof path !== 'string') {\n\t\t\treturn value === undefined ? obj : value;\n\t\t}\n\n\t\tconst pathArr = getPathSegments(path);\n\t\tif (pathArr.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < pathArr.length; i++) {\n\t\t\tif (!Object.prototype.propertyIsEnumerable.call(obj, pathArr[i])) {\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t\tobj = obj[pathArr[i]];\n\n\t\t\tif (obj === undefined || obj === null) {\n\t\t\t\t// `obj` is either `undefined` or `null` so we want to stop the loop, and\n\t\t\t\t// if this is not the last bit of the path, and\n\t\t\t\t// if it did't return `undefined`\n\t\t\t\t// it would return `null` if `obj` is `null`\n\t\t\t\t// but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null`\n\t\t\t\tif (i !== pathArr.length - 1) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\tset(obj, path, value) {\n\t\tif (!isObj(obj) || typeof path !== 'string') {\n\t\t\treturn obj;\n\t\t}\n\n\t\tconst root = obj;\n\t\tconst pathArr = getPathSegments(path);\n\t\tif (pathArr.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < pathArr.length; i++) {\n\t\t\tconst p = pathArr[i];\n\n\t\t\tif (!isObj(obj[p])) {\n\t\t\t\tobj[p] = {};\n\t\t\t}\n\n\t\t\tif (i === pathArr.length - 1) {\n\t\t\t\tobj[p] = value;\n\t\t\t}\n\n\t\t\tobj = obj[p];\n\t\t}\n\n\t\treturn root;\n\t},\n\n\tdelete(obj, path) {\n\t\tif (!isObj(obj) || typeof path !== 'string') {\n\t\t\treturn;\n\t\t}\n\n\t\tconst pathArr = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArr.length; i++) {\n\t\t\tconst p = pathArr[i];\n\n\t\t\tif (i === pathArr.length - 1) {\n\t\t\t\tdelete obj[p];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tobj = obj[p];\n\n\t\t\tif (!isObj(obj)) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t},\n\n\thas(obj, path) {\n\t\tif (!isObj(obj) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArr = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArr.length; i++) {\n\t\t\tif (isObj(obj)) {\n\t\t\t\tif (!(pathArr[i] in obj)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tobj = obj[pathArr[i]];\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n};\n","'use strict';\n\nconst processFn = (fn, options) => function (...args) {\n\tconst P = options.promiseModule;\n\n\treturn new P((resolve, reject) => {\n\t\tif (options.multiArgs) {\n\t\t\targs.push((...result) => {\n\t\t\t\tif (options.errorFirst) {\n\t\t\t\t\tif (result[0]) {\n\t\t\t\t\t\treject(result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.shift();\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (options.errorFirst) {\n\t\t\targs.push((error, result) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\targs.push(resolve);\n\t\t}\n\n\t\tfn.apply(this, args);\n\t});\n};\n\nmodule.exports = (input, options) => {\n\toptions = Object.assign({\n\t\texclude: [/.+(Sync|Stream)$/],\n\t\terrorFirst: true,\n\t\tpromiseModule: Promise\n\t}, options);\n\n\tconst objType = typeof input;\n\tif (!(input !== null && (objType === 'object' || objType === 'function'))) {\n\t\tthrow new TypeError(`Expected \\`input\\` to be a \\`Function\\` or \\`Object\\`, got \\`${input === null ? 'null' : objType}\\``);\n\t}\n\n\tconst filter = key => {\n\t\tconst match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);\n\t\treturn options.include ? options.include.some(match) : !options.exclude.some(match);\n\t};\n\n\tlet ret;\n\tif (objType === 'function') {\n\t\tret = function (...args) {\n\t\t\treturn options.excludeMain ? input(...args) : processFn(input, options).apply(this, args);\n\t\t};\n\t} else {\n\t\tret = Object.create(Object.getPrototypeOf(input));\n\t}\n\n\tfor (const key in input) { // eslint-disable-line guard-for-in\n\t\tconst property = input[key];\n\t\tret[key] = typeof property === 'function' && filter(key) ? processFn(property, options) : property;\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst fs = require('fs');\nconst path = require('path');\nconst pify = require('pify');\nconst semver = require('semver');\n\nconst defaults = {\n\tmode: 0o777 & (~process.umask()),\n\tfs\n};\n\nconst useNativeRecursiveOption = semver.satisfies(process.version, '>=10.12.0');\n\n// https://github.com/nodejs/node/issues/8987\n// https://github.com/libuv/libuv/pull/1088\nconst checkPath = pth => {\n\tif (process.platform === 'win32') {\n\t\tconst pathHasInvalidWinCharacters = /[<>:\"|?*]/.test(pth.replace(path.parse(pth).root, ''));\n\n\t\tif (pathHasInvalidWinCharacters) {\n\t\t\tconst error = new Error(`Path contains invalid characters: ${pth}`);\n\t\t\terror.code = 'EINVAL';\n\t\t\tthrow error;\n\t\t}\n\t}\n};\n\nconst permissionError = pth => {\n\t// This replicates the exception of `fs.mkdir` with native the\n\t// `recusive` option when run on an invalid drive under Windows.\n\tconst error = new Error(`operation not permitted, mkdir '${pth}'`);\n\terror.code = 'EPERM';\n\terror.errno = -4048;\n\terror.path = pth;\n\terror.syscall = 'mkdir';\n\treturn error;\n};\n\nconst makeDir = (input, options) => Promise.resolve().then(() => {\n\tcheckPath(input);\n\toptions = Object.assign({}, defaults, options);\n\n\t// TODO: Use util.promisify when targeting Node.js 8\n\tconst mkdir = pify(options.fs.mkdir);\n\tconst stat = pify(options.fs.stat);\n\n\tif (useNativeRecursiveOption && options.fs.mkdir === fs.mkdir) {\n\t\tconst pth = path.resolve(input);\n\n\t\treturn mkdir(pth, {\n\t\t\tmode: options.mode,\n\t\t\trecursive: true\n\t\t}).then(() => pth);\n\t}\n\n\tconst make = pth => {\n\t\treturn mkdir(pth, options.mode)\n\t\t\t.then(() => pth)\n\t\t\t.catch(error => {\n\t\t\t\tif (error.code === 'EPERM') {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\t\tif (path.dirname(pth) === pth) {\n\t\t\t\t\t\tthrow permissionError(pth);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (error.message.includes('null bytes')) {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn make(path.dirname(pth)).then(() => make(pth));\n\t\t\t\t}\n\n\t\t\t\treturn stat(pth)\n\t\t\t\t\t.then(stats => stats.isDirectory() ? pth : Promise.reject())\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t});\n\t};\n\n\treturn make(path.resolve(input));\n});\n\nmodule.exports = makeDir;\nmodule.exports.default = makeDir;\n\nmodule.exports.sync = (input, options) => {\n\tcheckPath(input);\n\toptions = Object.assign({}, defaults, options);\n\n\tif (useNativeRecursiveOption && options.fs.mkdirSync === fs.mkdirSync) {\n\t\tconst pth = path.resolve(input);\n\n\t\tfs.mkdirSync(pth, {\n\t\t\tmode: options.mode,\n\t\t\trecursive: true\n\t\t});\n\n\t\treturn pth;\n\t}\n\n\tconst make = pth => {\n\t\ttry {\n\t\t\toptions.fs.mkdirSync(pth, options.mode);\n\t\t} catch (error) {\n\t\t\tif (error.code === 'EPERM') {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\tif (path.dirname(pth) === pth) {\n\t\t\t\t\tthrow permissionError(pth);\n\t\t\t\t}\n\n\t\t\t\tif (error.message.includes('null bytes')) {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\n\t\t\t\tmake(path.dirname(pth));\n\t\t\t\treturn make(pth);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tif (!options.fs.statSync(pth).isDirectory()) {\n\t\t\t\t\tthrow new Error('The path is not a directory');\n\t\t\t\t}\n\t\t\t} catch (_) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\treturn pth;\n\t};\n\n\treturn make(path.resolve(input));\n};\n","'use strict';\nconst fs = require('fs');\n\nmodule.exports = fp => new Promise(resolve => {\n\tfs.access(fp, err => {\n\t\tresolve(!err);\n\t});\n});\n\nmodule.exports.sync = fp => {\n\ttry {\n\t\tfs.accessSync(fp);\n\t\treturn true;\n\t} catch (err) {\n\t\treturn false;\n\t}\n};\n","'use strict';\nmodule.exports = cb => new Promise(resolve => {\n\tresolve(cb());\n});\n","'use strict';\nconst pTry = require('p-try');\n\nmodule.exports = concurrency => {\n\tif (concurrency < 1) {\n\t\tthrow new TypeError('Expected `concurrency` to be a number from 1 and up');\n\t}\n\n\tconst queue = [];\n\tlet activeCount = 0;\n\n\tconst next = () => {\n\t\tactiveCount--;\n\n\t\tif (queue.length > 0) {\n\t\t\tqueue.shift()();\n\t\t}\n\t};\n\n\treturn fn => new Promise((resolve, reject) => {\n\t\tconst run = () => {\n\t\t\tactiveCount++;\n\n\t\t\tpTry(fn).then(\n\t\t\t\tval => {\n\t\t\t\t\tresolve(val);\n\t\t\t\t\tnext();\n\t\t\t\t},\n\t\t\t\terr => {\n\t\t\t\t\treject(err);\n\t\t\t\t\tnext();\n\t\t\t\t}\n\t\t\t);\n\t\t};\n\n\t\tif (activeCount < concurrency) {\n\t\t\trun();\n\t\t} else {\n\t\t\tqueue.push(run);\n\t\t}\n\t});\n};\n","'use strict';\nconst pLimit = require('p-limit');\n\nclass EndError extends Error {\n\tconstructor(value) {\n\t\tsuper();\n\t\tthis.value = value;\n\t}\n}\n\n// the input can also be a promise, so we `Promise.all()` them both\nconst finder = el => Promise.all(el).then(val => val[1] === true && Promise.reject(new EndError(val[0])));\n\nmodule.exports = (iterable, tester, opts) => {\n\topts = Object.assign({\n\t\tconcurrency: Infinity,\n\t\tpreserveOrder: true\n\t}, opts);\n\n\tconst limit = pLimit(opts.concurrency);\n\n\t// start all the promises concurrently with optional limit\n\tconst items = Array.from(iterable).map(el => [el, limit(() => Promise.resolve(el).then(tester))]);\n\n\t// check the promises either serially or concurrently\n\tconst checkLimit = pLimit(opts.preserveOrder ? 1 : Infinity);\n\n\treturn Promise.all(items.map(el => checkLimit(() => finder(el))))\n\t\t.then(() => {})\n\t\t.catch(err => err instanceof EndError ? err.value : Promise.reject(err));\n};\n","'use strict';\nconst path = require('path');\nconst pathExists = require('path-exists');\nconst pLocate = require('p-locate');\n\nmodule.exports = (iterable, opts) => {\n\topts = Object.assign({\n\t\tcwd: process.cwd()\n\t}, opts);\n\n\treturn pLocate(iterable, el => pathExists(path.resolve(opts.cwd, el)), opts);\n};\n\nmodule.exports.sync = (iterable, opts) => {\n\topts = Object.assign({\n\t\tcwd: process.cwd()\n\t}, opts);\n\n\tfor (const el of iterable) {\n\t\tif (pathExists.sync(path.resolve(opts.cwd, el))) {\n\t\t\treturn el;\n\t\t}\n\t}\n};\n","'use strict';\nconst path = require('path');\nconst locatePath = require('locate-path');\n\nmodule.exports = (filename, opts) => {\n\topts = opts || {};\n\n\tconst startDir = path.resolve(opts.cwd || '');\n\tconst root = path.parse(startDir).root;\n\n\tconst filenames = [].concat(filename);\n\n\treturn new Promise(resolve => {\n\t\t(function find(dir) {\n\t\t\tlocatePath(filenames, {cwd: dir}).then(file => {\n\t\t\t\tif (file) {\n\t\t\t\t\tresolve(path.join(dir, file));\n\t\t\t\t} else if (dir === root) {\n\t\t\t\t\tresolve(null);\n\t\t\t\t} else {\n\t\t\t\t\tfind(path.dirname(dir));\n\t\t\t\t}\n\t\t\t});\n\t\t})(startDir);\n\t});\n};\n\nmodule.exports.sync = (filename, opts) => {\n\topts = opts || {};\n\n\tlet dir = path.resolve(opts.cwd || '');\n\tconst root = path.parse(dir).root;\n\n\tconst filenames = [].concat(filename);\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\tconst file = locatePath.sync(filenames, {cwd: dir});\n\n\t\tif (file) {\n\t\t\treturn path.join(dir, file);\n\t\t} else if (dir === root) {\n\t\t\treturn null;\n\t\t}\n\n\t\tdir = path.dirname(dir);\n\t}\n};\n","'use strict';\nconst findUp = require('find-up');\n\nmodule.exports = cwd => findUp('package.json', {cwd});\nmodule.exports.sync = cwd => findUp.sync('package.json', {cwd});\n","'use strict';\nconst path = require('path');\nconst os = require('os');\n\nconst homedir = os.homedir();\nconst tmpdir = os.tmpdir();\nconst env = process.env;\n\nconst macos = name => {\n\tconst library = path.join(homedir, 'Library');\n\n\treturn {\n\t\tdata: path.join(library, 'Application Support', name),\n\t\tconfig: path.join(library, 'Preferences', name),\n\t\tcache: path.join(library, 'Caches', name),\n\t\tlog: path.join(library, 'Logs', name),\n\t\ttemp: path.join(tmpdir, name)\n\t};\n};\n\nconst windows = name => {\n\tconst appData = env.LOCALAPPDATA || path.join(homedir, 'AppData', 'Local');\n\n\treturn {\n\t\t// data/config/cache/log are invented by me as Windows isn't opinionated about this\n\t\tdata: path.join(appData, name, 'Data'),\n\t\tconfig: path.join(appData, name, 'Config'),\n\t\tcache: path.join(appData, name, 'Cache'),\n\t\tlog: path.join(appData, name, 'Log'),\n\t\ttemp: path.join(tmpdir, name)\n\t};\n};\n\n// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html\nconst linux = name => {\n\tconst username = path.basename(homedir);\n\n\treturn {\n\t\tdata: path.join(env.XDG_DATA_HOME || path.join(homedir, '.local', 'share'), name),\n\t\tconfig: path.join(env.XDG_CONFIG_HOME || path.join(homedir, '.config'), name),\n\t\tcache: path.join(env.XDG_CACHE_HOME || path.join(homedir, '.cache'), name),\n\t\t// https://wiki.debian.org/XDGBaseDirectorySpecification#state\n\t\tlog: path.join(env.XDG_STATE_HOME || path.join(homedir, '.local', 'state'), name),\n\t\ttemp: path.join(tmpdir, username, name)\n\t};\n};\n\nmodule.exports = (name, opts) => {\n\tif (typeof name !== 'string') {\n\t\tthrow new TypeError(`Expected string, got ${typeof name}`);\n\t}\n\n\topts = Object.assign({suffix: 'nodejs'}, opts);\n\n\tif (opts.suffix) {\n\t\t// add suffix to prevent possible conflict with native apps\n\t\tname += `-${opts.suffix}`;\n\t}\n\n\tif (process.platform === 'darwin') {\n\t\treturn macos(name);\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn windows(name);\n\t}\n\n\treturn linux(name);\n};\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\nvar assert = require('assert')\nvar signals = require('./signals.js')\nvar isWin = /^win/i.test(process.platform)\n\nvar EE = require('events')\n/* istanbul ignore if */\nif (typeof EE !== 'function') {\n EE = EE.EventEmitter\n}\n\nvar emitter\nif (process.__signal_exit_emitter__) {\n emitter = process.__signal_exit_emitter__\n} else {\n emitter = process.__signal_exit_emitter__ = new EE()\n emitter.count = 0\n emitter.emitted = {}\n}\n\n// Because this emitter is a global, we have to check to see if a\n// previous version of this library failed to enable infinite listeners.\n// I know what you're about to say. But literally everything about\n// signal-exit is a compromise with evil. Get used to it.\nif (!emitter.infinite) {\n emitter.setMaxListeners(Infinity)\n emitter.infinite = true\n}\n\nmodule.exports = function (cb, opts) {\n assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')\n\n if (loaded === false) {\n load()\n }\n\n var ev = 'exit'\n if (opts && opts.alwaysLast) {\n ev = 'afterexit'\n }\n\n var remove = function () {\n emitter.removeListener(ev, cb)\n if (emitter.listeners('exit').length === 0 &&\n emitter.listeners('afterexit').length === 0) {\n unload()\n }\n }\n emitter.on(ev, cb)\n\n return remove\n}\n\nmodule.exports.unload = unload\nfunction unload () {\n if (!loaded) {\n return\n }\n loaded = false\n\n signals.forEach(function (sig) {\n try {\n process.removeListener(sig, sigListeners[sig])\n } catch (er) {}\n })\n process.emit = originalProcessEmit\n process.reallyExit = originalProcessReallyExit\n emitter.count -= 1\n}\n\nfunction emit (event, code, signal) {\n if (emitter.emitted[event]) {\n return\n }\n emitter.emitted[event] = true\n emitter.emit(event, code, signal)\n}\n\n// { <signal>: <listener fn>, ... }\nvar sigListeners = {}\nsignals.forEach(function (sig) {\n sigListeners[sig] = function listener () {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n var listeners = process.listeners(sig)\n if (listeners.length === emitter.count) {\n unload()\n emit('exit', null, sig)\n /* istanbul ignore next */\n emit('afterexit', null, sig)\n /* istanbul ignore next */\n if (isWin && sig === 'SIGHUP') {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n sig = 'SIGINT'\n }\n process.kill(process.pid, sig)\n }\n }\n})\n\nmodule.exports.signals = function () {\n return signals\n}\n\nmodule.exports.load = load\n\nvar loaded = false\n\nfunction load () {\n if (loaded) {\n return\n }\n loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n emitter.count += 1\n\n signals = signals.filter(function (sig) {\n try {\n process.on(sig, sigListeners[sig])\n return true\n } catch (er) {\n return false\n }\n })\n\n process.emit = processEmit\n process.reallyExit = processReallyExit\n}\n\nvar originalProcessReallyExit = process.reallyExit\nfunction processReallyExit (code) {\n process.exitCode = code || 0\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n /* istanbul ignore next */\n originalProcessReallyExit.call(process, process.exitCode)\n}\n\nvar originalProcessEmit = process.emit\nfunction processEmit (ev, arg) {\n if (ev === 'exit') {\n if (arg !== undefined) {\n process.exitCode = arg\n }\n var ret = originalProcessEmit.apply(this, arguments)\n emit('exit', process.exitCode, null)\n /* istanbul ignore next */\n emit('afterexit', process.exitCode, null)\n return ret\n } else {\n return originalProcessEmit.apply(this, arguments)\n }\n}\n","/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author <a href=\"mailto:jensyt@gmail.com\">Jens Taylor</a>\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/murmurhash-js\n * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n var cache;\n\n // Call this function without `new` to use the cached object (good for\n // single-threaded environments), or with `new` to create a new object.\n //\n // @param {string} key A UTF-16 or ASCII string\n // @param {number} seed An optional positive integer\n // @return {object} A MurmurHash3 object for incremental hashing\n function MurmurHash3(key, seed) {\n var m = this instanceof MurmurHash3 ? this : cache;\n m.reset(seed)\n if (typeof key === 'string' && key.length > 0) {\n m.hash(key);\n }\n\n if (m !== this) {\n return m;\n }\n };\n\n // Incrementally add a string to this hash\n //\n // @param {string} key A UTF-16 or ASCII string\n // @return {object} this\n MurmurHash3.prototype.hash = function(key) {\n var h1, k1, i, top, len;\n\n len = key.length;\n this.len += len;\n\n k1 = this.k1;\n i = 0;\n switch (this.rem) {\n case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n case 3:\n k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n }\n\n this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n len -= this.rem;\n if (len > 0) {\n h1 = this.h1;\n while (1) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n if (i >= len) {\n break;\n }\n\n k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n ((key.charCodeAt(i++) & 0xffff) << 8) ^\n ((key.charCodeAt(i++) & 0xffff) << 16);\n top = key.charCodeAt(i++);\n k1 ^= ((top & 0xff) << 24) ^\n ((top & 0xff00) >> 8);\n }\n\n k1 = 0;\n switch (this.rem) {\n case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n }\n\n this.h1 = h1;\n }\n\n this.k1 = k1;\n return this;\n };\n\n // Get the result of this hash\n //\n // @return {number} The 32-bit hash\n MurmurHash3.prototype.result = function() {\n var k1, h1;\n \n k1 = this.k1;\n h1 = this.h1;\n\n if (k1 > 0) {\n k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n h1 ^= k1;\n }\n\n h1 ^= this.len;\n\n h1 ^= h1 >>> 16;\n h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n h1 ^= h1 >>> 13;\n h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n h1 ^= h1 >>> 16;\n\n return h1 >>> 0;\n };\n\n // Reset the hash object for reuse\n //\n // @param {number} seed An optional positive integer\n MurmurHash3.prototype.reset = function(seed) {\n this.h1 = typeof seed === 'number' ? seed : 0;\n this.rem = this.k1 = this.len = 0;\n return this;\n };\n\n // A cached object to use. This can be safely used if you're in a single-\n // threaded environment, otherwise you need to create new hashes to use.\n cache = new MurmurHash3();\n\n if (typeof(module) != 'undefined') {\n module.exports = MurmurHash3;\n } else {\n this.MurmurHash3 = MurmurHash3;\n }\n}());\n","// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems. Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL. It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n 'SIGABRT',\n 'SIGALRM',\n 'SIGHUP',\n 'SIGINT',\n 'SIGTERM'\n]\n\nif (process.platform !== 'win32') {\n module.exports.push(\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n module.exports.push(\n 'SIGIO',\n 'SIGPOLL',\n 'SIGPWR',\n 'SIGSTKFLT',\n 'SIGUNUSED'\n )\n}\n","'use strict'\nmodule.exports = writeFile\nmodule.exports.sync = writeFileSync\nmodule.exports._getTmpname = getTmpname // for testing\nmodule.exports._cleanupOnExit = cleanupOnExit\n\nvar fs = require('graceful-fs')\nvar MurmurHash3 = require('imurmurhash')\nvar onExit = require('signal-exit')\nvar path = require('path')\nvar activeFiles = {}\n\n// if we run inside of a worker_thread, `process.pid` is not unique\n/* istanbul ignore next */\nvar threadId = (function getId () {\n try {\n var workerThreads = require('worker_threads')\n\n /// if we are in main thread, this is set to `0`\n return workerThreads.threadId\n } catch (e) {\n // worker_threads are not available, fallback to 0\n return 0\n }\n})()\n\nvar invocations = 0\nfunction getTmpname (filename) {\n return filename + '.' +\n MurmurHash3(__filename)\n .hash(String(process.pid))\n .hash(String(threadId))\n .hash(String(++invocations))\n .result()\n}\n\nfunction cleanupOnExit (tmpfile) {\n return function () {\n try {\n fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile)\n } catch (_) {}\n }\n}\n\nfunction writeFile (filename, data, options, callback) {\n if (options) {\n if (options instanceof Function) {\n callback = options\n options = {}\n } else if (typeof options === 'string') {\n options = { encoding: options }\n }\n } else {\n options = {}\n }\n\n var Promise = options.Promise || global.Promise\n var truename\n var fd\n var tmpfile\n /* istanbul ignore next -- The closure only gets called when onExit triggers */\n var removeOnExitHandler = onExit(cleanupOnExit(() => tmpfile))\n var absoluteName = path.resolve(filename)\n\n new Promise(function serializeSameFile (resolve) {\n // make a queue if it doesn't already exist\n if (!activeFiles[absoluteName]) activeFiles[absoluteName] = []\n\n activeFiles[absoluteName].push(resolve) // add this job to the queue\n if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one\n }).then(function getRealPath () {\n return new Promise(function (resolve) {\n fs.realpath(filename, function (_, realname) {\n truename = realname || filename\n tmpfile = getTmpname(truename)\n resolve()\n })\n })\n }).then(function stat () {\n return new Promise(function stat (resolve) {\n if (options.mode && options.chown) resolve()\n else {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n fs.stat(truename, function (err, stats) {\n if (err || !stats) resolve()\n else {\n options = Object.assign({}, options)\n\n if (options.mode == null) {\n options.mode = stats.mode\n }\n if (options.chown == null && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n resolve()\n }\n })\n }\n })\n }).then(function thenWriteFile () {\n return new Promise(function (resolve, reject) {\n fs.open(tmpfile, 'w', options.mode, function (err, _fd) {\n fd = _fd\n if (err) reject(err)\n else resolve()\n })\n })\n }).then(function write () {\n return new Promise(function (resolve, reject) {\n if (Buffer.isBuffer(data)) {\n fs.write(fd, data, 0, data.length, 0, function (err) {\n if (err) reject(err)\n else resolve()\n })\n } else if (data != null) {\n fs.write(fd, String(data), 0, String(options.encoding || 'utf8'), function (err) {\n if (err) reject(err)\n else resolve()\n })\n } else resolve()\n })\n }).then(function syncAndClose () {\n return new Promise(function (resolve, reject) {\n if (options.fsync !== false) {\n fs.fsync(fd, function (err) {\n if (err) fs.close(fd, () => reject(err))\n else fs.close(fd, resolve)\n })\n } else {\n fs.close(fd, resolve)\n }\n })\n }).then(function chown () {\n fd = null\n if (options.chown) {\n return new Promise(function (resolve, reject) {\n fs.chown(tmpfile, options.chown.uid, options.chown.gid, function (err) {\n if (err) reject(err)\n else resolve()\n })\n })\n }\n }).then(function chmod () {\n if (options.mode) {\n return new Promise(function (resolve, reject) {\n fs.chmod(tmpfile, options.mode, function (err) {\n if (err) reject(err)\n else resolve()\n })\n })\n }\n }).then(function rename () {\n return new Promise(function (resolve, reject) {\n fs.rename(tmpfile, truename, function (err) {\n if (err) reject(err)\n else resolve()\n })\n })\n }).then(function success () {\n removeOnExitHandler()\n callback()\n }, function fail (err) {\n return new Promise(resolve => {\n return fd ? fs.close(fd, resolve) : resolve()\n }).then(() => {\n removeOnExitHandler()\n fs.unlink(tmpfile, function () {\n callback(err)\n })\n })\n }).then(function checkQueue () {\n activeFiles[absoluteName].shift() // remove the element added by serializeSameFile\n if (activeFiles[absoluteName].length > 0) {\n activeFiles[absoluteName][0]() // start next job if one is pending\n } else delete activeFiles[absoluteName]\n })\n}\n\nfunction writeFileSync (filename, data, options) {\n if (typeof options === 'string') options = { encoding: options }\n else if (!options) options = {}\n try {\n filename = fs.realpathSync(filename)\n } catch (ex) {\n // it's ok, it'll happen on a not yet existing file\n }\n var tmpfile = getTmpname(filename)\n\n if (!options.mode || !options.chown) {\n // Either mode or chown is not explicitly set\n // Default behavior is to copy it from original file\n try {\n var stats = fs.statSync(filename)\n options = Object.assign({}, options)\n if (!options.mode) {\n options.mode = stats.mode\n }\n if (!options.chown && process.getuid) {\n options.chown = { uid: stats.uid, gid: stats.gid }\n }\n } catch (ex) {\n // ignore stat errors\n }\n }\n\n var fd\n var cleanup = cleanupOnExit(tmpfile)\n var removeOnExitHandler = onExit(cleanup)\n\n try {\n fd = fs.openSync(tmpfile, 'w', options.mode)\n if (Buffer.isBuffer(data)) {\n fs.writeSync(fd, data, 0, data.length, 0)\n } else if (data != null) {\n fs.writeSync(fd, String(data), 0, String(options.encoding || 'utf8'))\n }\n if (options.fsync !== false) {\n fs.fsyncSync(fd)\n }\n fs.closeSync(fd)\n if (options.chown) fs.chownSync(tmpfile, options.chown.uid, options.chown.gid)\n if (options.mode) fs.chmodSync(tmpfile, options.mode)\n fs.renameSync(tmpfile, filename)\n removeOnExitHandler()\n } catch (err) {\n if (fd) {\n try {\n fs.closeSync(fd)\n } catch (ex) {\n // ignore close errors at this stage, error may have closed fd already.\n }\n }\n removeOnExitHandler()\n cleanup()\n throw err\n }\n}\n","/* eslint-disable node/no-deprecated-api */\n'use strict';\nconst fs = require('fs');\nconst path = require('path');\nconst crypto = require('crypto');\nconst assert = require('assert');\nconst EventEmitter = require('events');\nconst dotProp = require('dot-prop');\nconst makeDir = require('make-dir');\nconst pkgUp = require('pkg-up');\nconst envPaths = require('env-paths');\nconst writeFileAtomic = require('write-file-atomic');\n\nconst plainObject = () => Object.create(null);\n\n// Prevent caching of this module so module.parent is always accurate\ndelete require.cache[__filename];\nconst parentDir = path.dirname((module.parent && module.parent.filename) || '.');\n\nconst checkValueType = (key, value) => {\n\tconst nonJsonTypes = [\n\t\t'undefined',\n\t\t'symbol',\n\t\t'function'\n\t];\n\n\tconst type = typeof value;\n\n\tif (nonJsonTypes.includes(type)) {\n\t\tthrow new TypeError(`Setting a value of type \\`${type}\\` for key \\`${key}\\` is not allowed as it's not supported by JSON`);\n\t}\n};\n\nclass Conf {\n\tconstructor(options) {\n\t\tconst pkgPath = pkgUp.sync(parentDir);\n\n\t\toptions = {\n\t\t\t// Can't use `require` because of Webpack being annoying:\n\t\t\t// https://github.com/webpack/webpack/issues/196\n\t\t\tprojectName: pkgPath && JSON.parse(fs.readFileSync(pkgPath, 'utf8')).name,\n\t\t\t...options\n\t\t};\n\n\t\tif (!options.projectName && !options.cwd) {\n\t\t\tthrow new Error('Project name could not be inferred. Please specify the `projectName` option.');\n\t\t}\n\n\t\toptions = {\n\t\t\tconfigName: 'config',\n\t\t\tfileExtension: 'json',\n\t\t\tprojectSuffix: 'nodejs',\n\t\t\tclearInvalidConfig: true,\n\t\t\tserialize: value => JSON.stringify(value, null, '\\t'),\n\t\t\tdeserialize: JSON.parse,\n\t\t\t...options\n\t\t};\n\n\t\tif (!options.cwd) {\n\t\t\toptions.cwd = envPaths(options.projectName, {suffix: options.projectSuffix}).config;\n\t\t}\n\n\t\tthis._options = options;\n\n\t\tthis.events = new EventEmitter();\n\t\tthis.encryptionKey = options.encryptionKey;\n\t\tthis.serialize = options.serialize;\n\t\tthis.deserialize = options.deserialize;\n\n\t\tconst fileExtension = options.fileExtension ? `.${options.fileExtension}` : '';\n\t\tthis.path = path.resolve(options.cwd, `${options.configName}${fileExtension}`);\n\n\t\tconst fileStore = this.store;\n\t\tconst store = Object.assign(plainObject(), options.defaults, fileStore);\n\t\ttry {\n\t\t\tassert.deepEqual(fileStore, store);\n\t\t} catch (_) {\n\t\t\tthis.store = store;\n\t\t}\n\t}\n\n\tget(key, defaultValue) {\n\t\treturn dotProp.get(this.store, key, defaultValue);\n\t}\n\n\tset(key, value) {\n\t\tif (typeof key !== 'string' && typeof key !== 'object') {\n\t\t\tthrow new TypeError(`Expected \\`key\\` to be of type \\`string\\` or \\`object\\`, got ${typeof key}`);\n\t\t}\n\n\t\tif (typeof key !== 'object' && value === undefined) {\n\t\t\tthrow new TypeError('Use `delete()` to clear values');\n\t\t}\n\n\t\tconst {store} = this;\n\n\t\tconst set = (key, value) => {\n\t\t\tcheckValueType(key, value);\n\t\t\tdotProp.set(store, key, value);\n\t\t};\n\n\t\tif (typeof key === 'object') {\n\t\t\tconst object = key;\n\t\t\tfor (const [key, value] of Object.entries(object)) {\n\t\t\t\tset(key, value);\n\t\t\t}\n\t\t} else {\n\t\t\tset(key, value);\n\t\t}\n\n\t\tthis.store = store;\n\t}\n\n\thas(key) {\n\t\treturn dotProp.has(this.store, key);\n\t}\n\n\tdelete(key) {\n\t\tconst {store} = this;\n\t\tdotProp.delete(store, key);\n\t\tthis.store = store;\n\t}\n\n\tclear() {\n\t\tthis.store = plainObject();\n\t}\n\n\tonDidChange(key, callback) {\n\t\tif (typeof key !== 'string') {\n\t\t\tthrow new TypeError(`Expected \\`key\\` to be of type \\`string\\`, got ${typeof key}`);\n\t\t}\n\n\t\tif (typeof callback !== 'function') {\n\t\t\tthrow new TypeError(`Expected \\`callback\\` to be of type \\`function\\`, got ${typeof callback}`);\n\t\t}\n\n\t\tlet currentValue = this.get(key);\n\n\t\tconst onChange = () => {\n\t\t\tconst oldValue = currentValue;\n\t\t\tconst newValue = this.get(key);\n\n\t\t\ttry {\n\t\t\t\t// TODO: Use `util.isDeepStrictEqual` when targeting Node.js 10\n\t\t\t\tassert.deepEqual(newValue, oldValue);\n\t\t\t} catch (_) {\n\t\t\t\tcurrentValue = newValue;\n\t\t\t\tcallback.call(this, newValue, oldValue);\n\t\t\t}\n\t\t};\n\n\t\tthis.events.on('change', onChange);\n\t\treturn () => this.events.removeListener('change', onChange);\n\t}\n\n\tget size() {\n\t\treturn Object.keys(this.store).length;\n\t}\n\n\tget store() {\n\t\ttry {\n\t\t\tlet data = fs.readFileSync(this.path, this.encryptionKey ? null : 'utf8');\n\n\t\t\tif (this.encryptionKey) {\n\t\t\t\ttry {\n\t\t\t\t\tconst decipher = crypto.createDecipher('aes-256-cbc', this.encryptionKey);\n\t\t\t\t\tdata = Buffer.concat([decipher.update(data), decipher.final()]);\n\t\t\t\t} catch (_) {}\n\t\t\t}\n\n\t\t\treturn Object.assign(plainObject(), this.deserialize(data));\n\t\t} catch (error) {\n\t\t\tif (error.code === 'ENOENT') {\n\t\t\t\t// TODO: Use `fs.mkdirSync` `recursive` option when targeting Node.js 12\n\t\t\t\tmakeDir.sync(path.dirname(this.path));\n\t\t\t\treturn plainObject();\n\t\t\t}\n\n\t\t\tif (this._options.clearInvalidConfig && error.name === 'SyntaxError') {\n\t\t\t\treturn plainObject();\n\t\t\t}\n\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tset store(value) {\n\t\t// Ensure the directory exists as it could have been deleted in the meantime\n\t\tmakeDir.sync(path.dirname(this.path));\n\n\t\tlet data = this.serialize(value);\n\n\t\tif (this.encryptionKey) {\n\t\t\tconst cipher = crypto.createCipher('aes-256-cbc', this.encryptionKey);\n\t\t\tdata = Buffer.concat([cipher.update(Buffer.from(data)), cipher.final()]);\n\t\t}\n\n\t\twriteFileAtomic.sync(this.path, data);\n\t\tthis.events.emit('change');\n\t}\n\n\t* [Symbol.iterator]() {\n\t\tfor (const [key, value] of Object.entries(this.store)) {\n\t\t\tyield [key, value];\n\t\t}\n\t}\n}\n\nmodule.exports = Conf;\nmodule.exports.default = Conf;\n","import Conf from \"conf\";\nimport { env } from \"./env\";\n\nexport class Cache extends Conf {\n\tconstructor(cwd = env.data) {\n\t\tsuper({ configName: \"cache\", fileExtension: \"json\", cwd });\n\t}\n\n\tget latest_version(): string | undefined {\n\t\treturn this.get(\"latest_version\") as string | undefined;\n\t}\n\tset latest_version(version: string | undefined) {\n\t\tthis.set(\"latest_version\", version);\n\t}\n\n\tget latest_version_checked(): number | undefined {\n\t\treturn this.get(\"latest_version_checked\") as number | undefined;\n\t}\n\tset latest_version_checked(timestamp: number | undefined) {\n\t\tthis.set(\"latest_version_checked\", timestamp);\n\t}\n}\n\nexport const cache = new Cache();\n","import { differenceInCalendarDays } from \"date-fns\";\nimport { gt as semverGreaterThan } from \"semver\";\nimport fetch from \"node-fetch\";\nimport { version as currentVersion } from \"../package.json\";\nimport { cache } from \"./cache\";\nimport { env } from \"./env\";\n\nconst debug = env.debug(\"vba-blocks:installer\");\n\nconst NPM_PACKAGE_NAME = \"@vbapm/core\";\n\nexport function updateVersion(): string | undefined {\n\treturn cache.latest_version;\n}\n\nexport function updateAvailable(): boolean {\n\t// Previously checked version is greater\n\tconst latestKnownVersion = cache.latest_version;\n\treturn !!latestKnownVersion && semverGreaterThan(latestKnownVersion, currentVersion);\n}\n\nexport async function checkForUpdate(): Promise<boolean> {\n\t// Only check for new version once per day\n\tconst lastChecked = cache.latest_version_checked;\n\tif (lastChecked && differenceInCalendarDays(new Date(lastChecked), Date.now()) < 1)\n\t\treturn updateAvailable();\n\n\t// Allow skipping from the outside\n\t// set VBA_BLOCKS_SKIP_UPDATE_CHECK=1\n\t//\n\t// (maybe this should be added to config)\n\tif (parseInt(env.values.VBA_BLOCKS_SKIP_UPDATE_CHECK, 10)) return false;\n\n\tcache.latest_version_checked = Date.now();\n\n\ttry {\n\t\tconst response = await fetch(`https://registry.npmjs.org/${NPM_PACKAGE_NAME}/latest`);\n\t\tconst data: any = await response.json();\n\t\tconst latestVersion: string = data.version;\n\t\tcache.latest_version = latestVersion;\n\n\t\treturn semverGreaterThan(latestVersion, currentVersion);\n\t} catch (error) {\n\t\tdebug(\"Error loading latest version from npm registry\");\n\t\tdebug(error);\n\t\treturn false;\n\t}\n}\n","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import dedent from \"@timhall/dedent\";\nimport { greenBright, redBright } from \"@timhall/ansi-colors\";\nimport meant from \"meant\";\nimport mri, { Args } from \"mri\";\nimport { version } from \"../../package.json\";\nimport { env } from \"../env\";\nimport { cleanError, CliError, ErrorCode, isCliError } from \"../errors\";\nimport { checkForUpdate, updateAvailable, updateVersion } from \"../installer\";\nimport { Message } from \"../messages\";\nimport { isRunError } from \"../utils/run\";\nimport { joinCommas } from \"../utils/text\";\n\nError.stackTraceLimit = Infinity;\n\nconst debug = env.debug(\"vba-blocks:main\");\n\ntype Command = (args: Args) => Promise<void>;\nconst commands: { [name: string]: () => Promise<Command> } = {\n\tnew: async () => (await import(\"./vba-blocks-new\")).default,\n\tinit: async () => (await import(\"./vba-blocks-init\")).default,\n\tbuild: async () => (await import(\"./vba-blocks-build\")).default,\n\ttest: async () => (await import(\"./vba-blocks-test\")).default,\n\texport: async () => (await import(\"./vba-blocks-export\")).default,\n\trun: async () => (await import(\"./vba-blocks-run\")).default,\n\tversion: async () => (await import(\"./vba-blocks-version\")).default\n};\n\nconst args = mri(process.argv.slice(2), {\n\talias: {\n\t\tv: \"version\",\n\t\th: \"help\"\n\t}\n});\n\nif (args.debug) {\n\tlet debug = args.debug;\n\tif (debug === true) debug = \"*\";\n\telse if (Array.isArray(debug)) debug = debug.join(\",\");\n\n\tconst filters = (<string>debug).split(\",\").map(filter => `vba-blocks:${filter}`);\n\tconst existing = process.env.DEBUG ? process.env.DEBUG.split(\",\") : [];\n\n\tprocess.env.DEBUG = existing.concat(filters).join(\",\");\n}\n\nconst help = dedent`\n vba-blocks v${version}\n\n Usage: vba-blocks [command] [options]\n\n Commands:\n - new Create a new project / package in a new directory\n - init Initialize a new project / package in the current directory\n - build Build project from manifest\n - test Run tests for built target\n - export Export src from built target\n - run Run macro in document / add-in\n - help Outputs this message or the help of the given command\n\n Options:\n -h, --help Output usage information\n -v, --version Output the version number\n\n Use 'vba-blocks help COMMAND' for help on specific commands.\n Visit https://vba-blocks.com to learn more about vba-blocks.`;\n\nconst updateAvailableMessage = () => dedent`\n \\n${greenBright(\"New Update!\")} ${updateVersion()!}\n\n A new version of vba-blocks is available.\n Run \"npm update -g @vbapm/core\" to update.`;\n\nprocess.title = \"vba-blocks\";\nprocess.on(\"unhandledRejection\", handleError);\nprocess.on(\"uncaughtException\", handleError);\n\nmain()\n\t.then(() => process.exit(0))\n\t.catch(handleError);\n\nasync function main() {\n\tlet [command] = args._;\n\n\tif (!command) {\n\t\tif (args.version) console.log(version);\n\t\telse {\n\t\t\tconsole.log(help);\n\n\t\t\tif (updateAvailable()) {\n\t\t\t\tenv.reporter.log(Message.UpdateAvailable, updateAvailableMessage());\n\t\t\t}\n\t\t}\n\n\t\treturn;\n\t}\n\n\tif (command === \"help\") {\n\t\tcommand = args._[1];\n\n\t\tif (!command) {\n\t\t\tconsole.log(help);\n\t\t\treturn;\n\t\t}\n\n\t\targs._ = [command];\n\t\targs.help = true;\n\t}\n\tcommand = command.toLowerCase();\n\n\tconst available = Object.keys(commands);\n\tif (!available.includes(command)) {\n\t\tconst approximate = meant(command, available);\n\t\tconst did_you_mean = approximate.length\n\t\t\t? `, did you mean \"${meant(command, available)}\"?`\n\t\t\t: \".\";\n\t\tconst list = joinCommas(available.map(name => `\"${name}\"`));\n\n\t\tthrow new CliError(\n\t\t\tErrorCode.UnknownCommand,\n\t\t\tdedent`\n Unknown command \"${command}\"${did_you_mean}\n\n Available commands are ${list}.\n Try \"vba-blocks help\" for more information.\n `\n\t\t);\n\t}\n\n\t// Remove command from args\n\targs._ = args._.slice(1);\n\n\tlet subcommand: (args: Args) => Promise<void>;\n\ttry {\n\t\tdebug(`loading \"./vba-blocks-${command}.js\"`);\n\t\tsubcommand = await commands[command]();\n\t} catch (err) {\n\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\tthrow new Error(`Failed to load command \"${command}\".\\n${error.stack}`);\n\t}\n\n\tdebug(`starting \"${command}\" with args ${JSON.stringify(args)}`);\n\tconst [has_update_available] = await Promise.all([checkForUpdate(), subcommand(args)]);\n\n\tif (has_update_available) {\n\t\tenv.reporter.log(Message.UpdateAvailable, updateAvailableMessage());\n\t}\n}\n\nexport function handleError(err: Error | CliError | any, _promise?: Promise<any>) {\n\tconst { message } = cleanError(err);\n\n\tconsole.error(`${redBright(\"ERROR\")} ${message}`);\n\n\t// TODO\n\t// if (err.code) {\n\t// console.log(\n\t// chalk`\\n{dim Visit https://vba-blocks.com/errors/${\n\t// err.code\n\t// } for more information}`\n\t// );\n\t// }\n\n\t// Couldn't import debug, so log directly if debugging anything\n\tif (process.env.DEBUG) {\n\t\tconsole.error(err);\n\n\t\tif (isCliError(err) && err.underlying) {\n\t\t\tconsole.error(\"underlying\", err.underlying);\n\t\t}\n\t\tif (isRunError(err)) {\n\t\t\tconsole.error(\"result\", err.result);\n\t\t}\n\t}\n\n\tprocess.exit(1);\n}\n"],"names":["meant_1","scmd","commands","d","bestSimilarity","forEach","cmd","i","item","s1","s2","length","split","c2","j","c1","Math","min","levenshteinD","push","sort","a","b","Number","Object","keys","key","toArr","any","Array","isArray","toVal","out","val","opts","x","old","nxt","string","indexOf","String","boolean","_","concat","requiredArgs","required","args","TypeError","MILLISECONDS_IN_MINUTE","getDateMillisecondsPart","date","getTime","getTimezoneOffsetInMilliseconds","dirtyDate","Date","baseTimezoneOffset","ceil","getTimezoneOffset","setSeconds","millisecondsPartOfTimezoneOffset","startOfDay","arguments","argument","argStr","prototype","toString","call","console","warn","Error","stack","NaN","toDate","setHours","isObj","type","disallowedKeys","getPathSegments","path","pathArr","parts","p","undefined","slice","some","segment","includes","dotProp","get","obj","value","propertyIsEnumerable","set","root","has","processFn","fn","options","P","promiseModule","resolve","reject","multiArgs","result","errorFirst","shift","error","apply","this","pify","input","assign","exclude","Promise","objType","filter","match","pattern","test","include","ret","excludeMain","create","getPrototypeOf","property","defaults","mode","process","umask","fs","useNativeRecursiveOption","semver","satisfies","version","checkPath","pth","platform","replace","parse","code","permissionError","errno","syscall","makeDir","then","mkdir","stat","recursive","make","catch","dirname","message","stats","isDirectory","makeDir_1","_default","mkdirSync","statSync","pathExists","fp","access","err","accessSync","pLimit","concurrency","queue","activeCount","next","run","cb","EndError","constructor","super","pLocate","iterable","tester","Infinity","preserveOrder","limit","items","from","map","el","checkLimit","all","finder","locatePath","cwd","sync","findUp","filename","startDir","filenames","find","dir","file","join","pkgUp","homedir","os","tmpdir","env","emitter","envPaths","name","suffix","library","data","config","cache","log","temp","macos","appData","LOCALAPPDATA","windows","username","basename","XDG_DATA_HOME","XDG_CONFIG_HOME","XDG_CACHE_HOME","XDG_STATE_HOME","linux","MurmurHash3","seed","m","reset","hash","h1","k1","top","len","rem","charCodeAt","module","exports","signals","isWin","EE","require$$1","EventEmitter","__signal_exit_emitter__","count","emitted","infinite","setMaxListeners","signalExit","assert","equal","loaded","load","ev","alwaysLast","on","removeListener","listeners","unload","unload_1","sig","sigListeners","er","emit","originalProcessEmit","reallyExit","originalProcessReallyExit","event","signal","kill","pid","load_1","processEmit","processReallyExit","exitCode","arg","writeFileAtomic","callback","Function","encoding","truename","fd","tmpfile","global","commonjsGlobal","removeOnExitHandler","onExit","cleanupOnExit","absoluteName","activeFiles","realpath","realname","getTmpname","chown","getuid","uid","gid","open","_fd","Buffer","isBuffer","write","fsync","close","gracefulFs","chmod","rename","unlink","realpathSync","ex","cleanup","openSync","writeSync","fsyncSync","closeSync","chownSync","chmodSync","renameSync","_getTmpname","_cleanupOnExit","threadId","require$$0","e","invocations","__filename","unlinkSync","plainObject","parentDir","parent","Conf","pkgPath","projectName","JSON","readFileSync","configName","fileExtension","projectSuffix","clearInvalidConfig","serialize","stringify","deserialize","_options","events","encryptionKey","fileStore","store","deepEqual","defaultValue","checkValueType","object","entries","delete","clear","onDidChange","currentValue","onChange","oldValue","newValue","size","decipher","crypto","createDecipher","update","final","cipher","createCipher","Symbol","iterator","default","latest_version","latest_version_checked","timestamp","debug","updateAvailable","latestKnownVersion","semverGreaterThan","gt","currentVersion","async","checkForUpdate","lastChecked","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","differenceInCalendarDays","now","parseInt","values","VBA_BLOCKS_SKIP_UPDATE_CHECK","response","fetch","latestVersion","json","stackTraceLimit","new","require","init","build","export","k","arr","idx","alibi","alias","strict","unknown","splice","substring","repeat","mri","argv","v","h","filters","existing","DEBUG","help","dedent","updateAvailableMessage","greenBright","handleError","_promise","cleanError","redBright","isCliError","underlying","isRunError","exit","title","command","reporter","Message","UpdateAvailable","toLowerCase","available","did_you_mean","meant","list","joinCommas","CliError","ErrorCode","UnknownCommand","subcommand","has_update_available","main"],"mappings":"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"}
|