New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@ppwcode/node-gitinfo

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ppwcode/node-gitinfo - npm Package Compare versions

Comparing version
2.2.2
to
2.2.3
+31
_util.js
/**
* Copyright 2018 PeopleWare n.v.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function exceptionIsAnErrorCondition () { return arguments[arguments.length - 2] instanceof Error }
module.exports = {
exceptionIsAnErrorCondition: exceptionIsAnErrorCondition,
exceptionIsAnError: [exceptionIsAnErrorCondition],
/**
* Take a Promise-like object, and turn it into a native Promise.
*
* This is introduced since Contracts requires native Promises.
*/
realPromise: function (promiseLike) {
return new Promise((resolve, reject) => promiseLike.catch(exc => reject(exc)).then(result => resolve(result)))
}
}
#!/usr/bin/env bash
echo `pwd`
echo "Run from the root of the project. Executes complete re-install, followed by test run, in Node 10, 8 and 6."
set -e
. ~/.nvm/nvm.sh
rm -Rf ./node_modules
nvm use 10
npm install
npm test
rm -Rf ./node_modules
nvm use 8
npm install
npm test
rm -Rf ./node_modules
nvm use 6
npm install
npm test
rm -Rf ./node_modules
nvm use 10
npm install
set +e
+1
-1

@@ -76,3 +76,3 @@ #!/usr/bin/env node

() => {
console.log('%j', {tag: tagName})
console.log('%j', { tag: tagName })
},

@@ -79,0 +79,0 @@ err => {

/**
* Copyright 2017 PeopleWare n.v.
* Copyright 2017 - 2018 PeopleWare n.v.
*

@@ -17,9 +17,15 @@ * Licensed under the Apache License, Version 2.0 (the "License");

const Contract = require('@toryt/contracts-iii')
const Contract = require('@toryt/contracts-iv')
const PromiseContract = require('@toryt/contracts-iv/lib/IV/PromiseContract')
const path = require('path')
const fs = require('fs')
const Q = require('./q2')
const Q = require('q')
const Git = require('nodegit')
const querystring = require('querystring')
const all = require('promise-all')
const util = require('./_util')
const exceptionIsAnError = util.exceptionIsAnError
const branchDoesNotExistOnRemoteMessageFraction = 'no reference found for shorthand'
/**

@@ -72,3 +78,7 @@ * Holder for consolidated information about the git repository at {@code #path}.

JSON.parse(JSON.stringify(this)).isPrecious === this.isPrecious &&
JSON.parse(JSON.stringify(this)).isSave === this.isSave
JSON.parse(JSON.stringify(this)).isSave === this.isSave &&
typeof GitInfo.branchDoesNotExistOnRemoteMessageFraction === 'string' &&
typeof GitInfo.originRemoteDoesNotExistMessage === 'function' &&
typeof GitInfo.originRemoteDoesNotExistMessage() === 'string' &&
GitInfo.originRemoteDoesNotExistMessage().indexOf(GitInfo.originRemoteName) >= 0
}

@@ -247,3 +257,3 @@

],
exception: [() => false]
exception: Contract.mustNotHappen
})

@@ -258,2 +268,3 @@

GitInfo.defaultEnvironmentName = 'default'
GitInfo.originRemoteDoesNotExistMessage = () => 'remote "' + GitInfo.originRemoteName + '" does not exist'

@@ -264,3 +275,3 @@ /**

*/
GitInfo.highestGitDirPath = new Contract({
GitInfo.highestGitDirPath = new PromiseContract({
pre: [

@@ -270,5 +281,7 @@ (dirPath) => typeof dirPath === 'string'

post: [
(dirPath, result) => Q.isPromiseAlike(result)
(dirPath, result) => result === undefined || (typeof result === 'string' && !!result),
(dirPath, result) => !result || dirPath.startsWith(result)
],
exception: [() => false]
fastException: PromiseContract.mustNotHappen,
exception: PromiseContract.mustNotHappen
})

@@ -278,21 +291,6 @@ .implementation(dirPath => {

const dirs = parts.map((part, index) => parts.slice(0, index + 1).join(path.sep))
return Q.all(dirs.map(dir => Q.nfcall(fs.access, path.format({dir: dir, name: '.git'}), 'rw')
return Promise.all(dirs.map(dir => Q.nfcall(fs.access, path.format({ dir: dir, name: '.git' }), 'rw')
.then(() => dir)
.catch(() => undefined)))
.then(gitDirs => gitDirs.find(dir => !!dir))
.then(
new Contract({
pre: [
result => result === undefined || (typeof result === 'string' && !!result),
result => !result || dirPath.startsWith(result)
],
post: [(highestGitDirPath, result) => result === highestGitDirPath],
exception: [() => false]
}).implementation(highestGitDirPath => highestGitDirPath),
new Contract({
pre: [() => false], // should not be called
post: [() => false],
exception: [(err1, err2) => err1 === err2]
}).implementation(err => { throw err })
)
})

@@ -314,12 +312,13 @@

(status, result) => typeof result === 'boolean',
(status, result) => !status.isNew() || result,
(status, result) => !status.isModified() || result,
(status, result) => !status.isTypechange() || result,
(status, result) => !status.isRenamed() || result,
(status, result) => !status.isDeleted() || result,
(status, result) => !status.isNew() || status.isIgnored() || result,
(status, result) => !status.isModified() || status.isIgnored() || result,
(status, result) => !status.isTypechange() || status.isIgnored() || result,
(status, result) => !status.isRenamed() || status.isIgnored() || result,
(status, result) => !status.isDeleted() || status.isIgnored() || result,
(status, result) => !status.isIgnored() || !result
],
exception: [() => false]
exception: Contract.mustNotHappen
}).implementation(function (status) {
return !!(status.isNew() || status.isModified() || status.isTypechange() || status.isRenamed() || status.isDeleted())
return !status.isIgnored() &&
!!(status.isNew() || status.isModified() || status.isTypechange() || status.isRenamed() || status.isDeleted())
})

@@ -331,3 +330,3 @@

*/
GitInfo.create = new Contract({
GitInfo.create = new PromiseContract({
pre: [

@@ -338,13 +337,15 @@ (gitDirPath) => typeof gitDirPath === 'string',

post: [
(dirPath, result) => Q.isPromiseAlike(result)
(gitDirPath, result) => result instanceof GitInfo,
(gitDirPath, result) => result.path === gitDirPath
],
exception: [() => false]
fastException: PromiseContract.mustNotHappen,
exception: exceptionIsAnError
}).implementation(function (gitDirPath) {
// noinspection JSUnresolvedVariable
return Git.Repository
.open(gitDirPath)
return util.realPromise(Git.Repository.open(gitDirPath))
.catch(() => { throw new Error(gitDirPath + ' is not a git directory') })
.then(repository => {
const originRemoteDoesNotExistMessage = GitInfo.originRemoteDoesNotExistMessage()
// noinspection JSCheckFunctionSignatures,JSUnresolvedFunction
return Q.object({
return all({
sha: repository

@@ -356,3 +357,3 @@ .getHeadCommit()

.then(reference => GitInfo.gitRefsPattern.exec(reference.name())[1])
.then(branchName => Q.object({
.then(branchName => all({
name: branchName,

@@ -364,3 +365,3 @@ originSha: repository

err => {
if (err && err.message && err.message.indexOf('no reference found for shorthand') >= 0) {
if (err && err.message && err.message.indexOf(branchDoesNotExistOnRemoteMessageFraction) >= 0) {
// the branch does not exist in the remote, so certainly not pushed

@@ -375,3 +376,3 @@ return undefined

.getRemote(GitInfo.originRemoteName)
.catch(() => new Error('remote "' + GitInfo.originRemoteName + '" does not exist'))
.catch(() => { throw new Error(originRemoteDoesNotExistMessage) })
.then(remote => remote.url()),

@@ -392,17 +393,2 @@ changes: repository

})
.then(
new Contract({
pre: [
gitInfo => gitInfo instanceof GitInfo,
gitInfo => gitInfo.path === gitDirPath
],
post: [(gitInfo, result) => result === gitInfo],
exception: [() => false]
}).implementation(gitInfo => gitInfo),
new Contract({
pre: [(err) => err instanceof Error],
post: [() => false],
exception: [(err1, err2) => err1 === err2]
}).implementation(err => { throw err })
)
})

@@ -416,3 +402,3 @@

*/
GitInfo.createForHighestGitDir = new Contract({
GitInfo.createForHighestGitDir = new PromiseContract({
pre: [

@@ -423,5 +409,7 @@ (path) => typeof path === 'string',

post: [
(path, result) => Q.isPromiseAlike(result)
(path, result) => result instanceof GitInfo,
(path, result) => path.startsWith(result.path)
],
exception: [() => false]
fastException: PromiseContract.mustNotHappen,
exception: exceptionIsAnError
}).implementation(function (path) {

@@ -436,19 +424,6 @@ return GitInfo

})
.then(
new Contract({
pre: [
gitInfo => gitInfo instanceof GitInfo,
gitInfo => path.startsWith(gitInfo.path)
],
post: [(gitInfo, result) => result === gitInfo],
exception: [() => false]
}).implementation(gitInfo => gitInfo),
new Contract({
pre: [(err) => err instanceof Error],
post: [() => false],
exception: [(err1, err2) => err1 === err2]
}).implementation(err => { throw err })
)
})
GitInfo.branchDoesNotExistOnRemoteMessageFraction = branchDoesNotExistOnRemoteMessageFraction
module.exports = GitInfo
{
"name": "@ppwcode/node-gitinfo",
"version": "2.2.2",
"version": "2.2.3",
"description": "Get information about the current state of the highest git working copy we are in",

@@ -30,14 +30,29 @@ "main": "GitInfo.js",

"dependencies": {
"@toryt/contracts-iii": "^3.1.0",
"commander": "^2.15.1",
"nodegit": "^0.22.0",
"@toryt/contracts-iv": "^4.0.0",
"commander": "^2.19.0",
"nodegit": "^0.23.0",
"pkginfo": "^0.4.1",
"promise-all": "^1.0.0",
"q": "^1.5.1"
},
"devDependencies": {
"mocha": "^5.1.1",
"npm-check": "^5.7.0",
"nyc": "^11.7.1",
"standard": "^11.0.1"
"mocha": "^5.2.0",
"npm-check": "^5.9.0",
"nyc": "^13.1.0",
"proxyquire": "^2.1.0",
"sinon": "^7.1.0",
"standard": "^12.0.1"
},
"nyc": {
"check-coverage": true,
"per-file": true,
"lines": 100,
"statements": 100,
"functions": 100,
"branches": 100,
"reporter": [
"html",
"text"
]
},
"scripts": {

@@ -44,0 +59,0 @@ "pretest": "npm-check || exit 0",

@@ -14,6 +14,2 @@ [Node.js] package to get information about the current status of a git working copy.

> yarn add \@ppwcode/node-gitinfo
or
> npm install --save \@ppwcode/node-gitinfo

@@ -51,4 +47,34 @@

Compatibility
=============
This library is intended to be compatible with Node 6, 8, and 10.
Therefor, the code does not use `async` / `await`, which was introduced in Node 8.
Also, we use `Q` as Promise library, instead of native Promises, since Node 6 does not yet support `util.promisify()`.
We use `Q.nfcall` instead.
Development
===========
Node version
------------
Development is done in Node 10, via `nvm`.
Compatibility
-------------
The code does not use `async` / `await`, which was introduced in Node 8.
Also, we use `Q` as Promise library, instead of native Promises, since Node 6 does not yet support `util.promisify()`.
We use `Q.nfcall` instead.
Style
=====
-----

@@ -61,2 +87,18 @@ [![JavaScript Style Guide](https://cdn.rawgit.com/standard/standard/master/badge.svg)](https://github.com/standard/standard)

TODO
====
Setup a CI
----------
Move to `ppwcode` team. Request access from Travis.
Create parallel builds for Node 6, 8 10, and back tag.
Test bin
--------
Create integration tests for the `bin/gitInfo.js` with 100% coverage.
[Terraform]: https://peopleware.atlassian.net/wiki/x/CwAvBg

@@ -63,0 +105,0 @@ [Node.js]: https://nodejs.org

/**
* Copyright 2017 PeopleWare n.v.
* Copyright 2017 - 2018 PeopleWare n.v.
*

@@ -17,6 +17,6 @@ * Licensed under the Apache License, Version 2.0 (the "License");

const Contract = require('@toryt/contracts-iii')
const PromiseContract = require('@toryt/contracts-iv/lib/IV/PromiseContract')
const Git = require('nodegit')
const GitInfo = require('./GitInfo')
const Q = require('./q2')
const util = require('./_util')

@@ -32,3 +32,3 @@ /**

*/
const tagGitRepo = new Contract({
const tagGitRepo = new PromiseContract({
pre: [

@@ -40,11 +40,12 @@ (path, tagName) => typeof path === 'string',

],
post: [
(path, tagName, result) => Q.isPromiseAlike(result)
],
exception: [() => false]
post: [], // void
fastException: PromiseContract.mustNotHappen,
exception: [
util.exceptionIsAnErrorCondition,
(path, tagName, exc) => exc.message === GitInfo.noGitDirectoryMsg || exc.message === tagGitRepo.couldNotCreateTagMsg
]
}).implementation(function tagGit (path, tagName) {
const message = 'tag with ' + tagName
// noinspection JSUnresolvedVariable
return Git.Repository
.open(path)
return util.realPromise(Git.Repository.open(path))
.catch(ignore => {

@@ -68,12 +69,2 @@ throw new Error(GitInfo.noGitDirectoryMsg)

)
.catch(new Contract({
pre: [
err => err instanceof Error,
err => err.message === GitInfo.noGitDirectoryMsg || err.message === tagGitRepo.couldNotCreateTagMsg
],
post: [() => false],
exception: [(err1, err2) => err1 === err2]
}).implementation(function (err) {
throw err
}))
})

@@ -80,0 +71,0 @@

v8
{}
{"/Users/jand/Scratchpad/ppwcode/node-ppwcode-gitInfo/GitInfo.js":{"path":"/Users/jand/Scratchpad/ppwcode/node-ppwcode-gitInfo/GitInfo.js","statementMap":{"0":{"start":{"line":17,"column":17},"end":{"line":17,"column":48}},"1":{"start":{"line":18,"column":13},"end":{"line":18,"column":28}},"2":{"start":{"line":19,"column":11},"end":{"line":19,"column":24}},"3":{"start":{"line":20,"column":10},"end":{"line":20,"column":25}},"4":{"start":{"line":21,"column":12},"end":{"line":21,"column":30}},"5":{"start":{"line":22,"column":20},"end":{"line":22,"column":42}},"6":{"start":{"line":29,"column":4},"end":{"line":71,"column":61}},"7":{"start":{"line":39,"column":45},"end":{"line":39,"column":79}},"8":{"start":{"line":49,"column":64},"end":{"line":49,"column":97}},"9":{"start":{"line":65,"column":58},"end":{"line":65,"column":77}},"10":{"start":{"line":66,"column":42},"end":{"line":66,"column":98}},"11":{"start":{"line":89,"column":4},"end":{"line":89,"column":21}},"12":{"start":{"line":90,"column":4},"end":{"line":90,"column":19}},"13":{"start":{"line":91,"column":4},"end":{"line":91,"column":38}},"14":{"start":{"line":92,"column":4},"end":{"line":92,"column":44}},"15":{"start":{"line":93,"column":4},"end":{"line":93,"column":36}},"16":{"start":{"line":94,"column":4},"end":{"line":94,"column":56}},"17":{"start":{"line":103,"column":4},"end":{"line":103,"column":21}},"18":{"start":{"line":112,"column":4},"end":{"line":112,"column":20}},"19":{"start":{"line":121,"column":4},"end":{"line":121,"column":23}},"20":{"start":{"line":133,"column":4},"end":{"line":137,"column":64}},"21":{"start":{"line":147,"column":4},"end":{"line":147,"column":26}},"22":{"start":{"line":157,"column":4},"end":{"line":157,"column":33}},"23":{"start":{"line":164,"column":4},"end":{"line":164,"column":32}},"24":{"start":{"line":171,"column":4},"end":{"line":171,"column":34}},"25":{"start":{"line":178,"column":4},"end":{"line":178,"column":44}},"26":{"start":{"line":186,"column":4},"end":{"line":186,"column":115}},"27":{"start":{"line":186,"column":80},"end":{"line":186,"column":114}},"28":{"start":{"line":195,"column":4},"end":{"line":195,"column":62}},"29":{"start":{"line":200,"column":4},"end":{"line":212,"column":5}},"30":{"start":{"line":216,"column":0},"end":{"line":246,"column":2}},"31":{"start":{"line":218,"column":64},"end":{"line":218,"column":88}},"32":{"start":{"line":219,"column":64},"end":{"line":219,"column":70}},"33":{"start":{"line":220,"column":64},"end":{"line":220,"column":87}},"34":{"start":{"line":221,"column":64},"end":{"line":221,"column":91}},"35":{"start":{"line":222,"column":64},"end":{"line":222,"column":101}},"36":{"start":{"line":223,"column":64},"end":{"line":223,"column":107}},"37":{"start":{"line":224,"column":64},"end":{"line":224,"column":86}},"38":{"start":{"line":226,"column":6},"end":{"line":226,"column":75}},"39":{"start":{"line":226,"column":40},"end":{"line":226,"column":74}},"40":{"start":{"line":227,"column":64},"end":{"line":227,"column":119}},"41":{"start":{"line":229,"column":6},"end":{"line":229,"column":65}},"42":{"start":{"line":232,"column":72},"end":{"line":232,"column":92}},"43":{"start":{"line":233,"column":72},"end":{"line":233,"column":90}},"44":{"start":{"line":234,"column":72},"end":{"line":234,"column":111}},"45":{"start":{"line":235,"column":72},"end":{"line":235,"column":107}},"46":{"start":{"line":236,"column":72},"end":{"line":236,"column":117}},"47":{"start":{"line":237,"column":72},"end":{"line":237,"column":116}},"48":{"start":{"line":239,"column":6},"end":{"line":239,"column":65}},"49":{"start":{"line":239,"column":40},"end":{"line":239,"column":64}},"50":{"start":{"line":241,"column":6},"end":{"line":241,"column":65}},"51":{"start":{"line":241,"column":47},"end":{"line":241,"column":64}},"52":{"start":{"line":243,"column":6},"end":{"line":243,"column":68}},"53":{"start":{"line":245,"column":20},"end":{"line":245,"column":25}},"54":{"start":{"line":248,"column":0},"end":{"line":248,"column":36}},"55":{"start":{"line":249,"column":0},"end":{"line":249,"column":74}},"56":{"start":{"line":250,"column":0},"end":{"line":250,"column":35}},"57":{"start":{"line":251,"column":0},"end":{"line":251,"column":46}},"58":{"start":{"line":252,"column":0},"end":{"line":252,"column":78}},"59":{"start":{"line":253,"column":0},"end":{"line":253,"column":35}},"60":{"start":{"line":254,"column":0},"end":{"line":254,"column":42}},"61":{"start":{"line":260,"column":0},"end":{"line":291,"column":4}},"62":{"start":{"line":262,"column":17},"end":{"line":262,"column":44}},"63":{"start":{"line":265,"column":25},"end":{"line":265,"column":49}},"64":{"start":{"line":267,"column":20},"end":{"line":267,"column":25}},"65":{"start":{"line":270,"column":18},"end":{"line":270,"column":41}},"66":{"start":{"line":271,"column":17},"end":{"line":271,"column":85}},"67":{"start":{"line":271,"column":44},"end":{"line":271,"column":84}},"68":{"start":{"line":272,"column":4},"end":{"line":290,"column":7}},"69":{"start":{"line":272,"column":33},"end":{"line":274,"column":29}},"70":{"start":{"line":273,"column":18},"end":{"line":273,"column":21}},"71":{"start":{"line":274,"column":19},"end":{"line":274,"column":28}},"72":{"start":{"line":275,"column":23},"end":{"line":275,"column":49}},"73":{"start":{"line":275,"column":43},"end":{"line":275,"column":48}},"74":{"start":{"line":279,"column":22},"end":{"line":279,"column":86}},"75":{"start":{"line":280,"column":22},"end":{"line":280,"column":59}},"76":{"start":{"line":282,"column":48},"end":{"line":282,"column":76}},"77":{"start":{"line":283,"column":28},"end":{"line":283,"column":33}},"78":{"start":{"line":284,"column":47},"end":{"line":284,"column":64}},"79":{"start":{"line":286,"column":22},"end":{"line":286,"column":27}},"80":{"start":{"line":287,"column":23},"end":{"line":287,"column":28}},"81":{"start":{"line":288,"column":38},"end":{"line":288,"column":51}},"82":{"start":{"line":289,"column":35},"end":{"line":289,"column":44}},"83":{"start":{"line":296,"column":0},"end":{"line":317,"column":2}},"84":{"start":{"line":298,"column":16},"end":{"line":298,"column":50}},"85":{"start":{"line":299,"column":16},"end":{"line":299,"column":55}},"86":{"start":{"line":300,"column":16},"end":{"line":300,"column":57}},"87":{"start":{"line":301,"column":16},"end":{"line":301,"column":54}},"88":{"start":{"line":302,"column":16},"end":{"line":302,"column":54}},"89":{"start":{"line":303,"column":16},"end":{"line":303,"column":54}},"90":{"start":{"line":306,"column":24},"end":{"line":306,"column":51}},"91":{"start":{"line":307,"column":24},"end":{"line":307,"column":49}},"92":{"start":{"line":308,"column":24},"end":{"line":308,"column":54}},"93":{"start":{"line":309,"column":24},"end":{"line":309,"column":56}},"94":{"start":{"line":310,"column":24},"end":{"line":310,"column":53}},"95":{"start":{"line":311,"column":24},"end":{"line":311,"column":53}},"96":{"start":{"line":312,"column":24},"end":{"line":312,"column":54}},"97":{"start":{"line":314,"column":20},"end":{"line":314,"column":25}},"98":{"start":{"line":316,"column":2},"end":{"line":316,"column":119}},"99":{"start":{"line":323,"column":0},"end":{"line":394,"column":2}},"100":{"start":{"line":325,"column":20},"end":{"line":325,"column":50}},"101":{"start":{"line":326,"column":20},"end":{"line":326,"column":32}},"102":{"start":{"line":329,"column":25},"end":{"line":329,"column":49}},"103":{"start":{"line":331,"column":20},"end":{"line":331,"column":25}},"104":{"start":{"line":334,"column":2},"end":{"line":393,"column":5}},"105":{"start":{"line":336,"column":19},"end":{"line":336,"column":74}},"106":{"start":{"line":339,"column":6},"end":{"line":377,"column":10}},"107":{"start":{"line":342,"column":24},"end":{"line":342,"column":34}},"108":{"start":{"line":345,"column":29},"end":{"line":345,"column":77}},"109":{"start":{"line":346,"column":30},"end":{"line":360,"column":12}},"110":{"start":{"line":351,"column":24},"end":{"line":351,"column":34}},"111":{"start":{"line":353,"column":18},"end":{"line":356,"column":19}},"112":{"start":{"line":355,"column":20},"end":{"line":355,"column":36}},"113":{"start":{"line":357,"column":18},"end":{"line":357,"column":27}},"114":{"start":{"line":363,"column":23},"end":{"line":363,"column":92}},"115":{"start":{"line":364,"column":26},"end":{"line":364,"column":38}},"116":{"start":{"line":368,"column":12},"end":{"line":368,"column":103}},"117":{"start":{"line":368,"column":46},"end":{"line":368,"column":72}},"118":{"start":{"line":368,"column":88},"end":{"line":368,"column":101}},"119":{"start":{"line":370,"column":24},"end":{"line":377,"column":9}},"120":{"start":{"line":382,"column":21},"end":{"line":382,"column":47}},"121":{"start":{"line":383,"column":21},"end":{"line":383,"column":48}},"122":{"start":{"line":385,"column":36},"end":{"line":385,"column":54}},"123":{"start":{"line":386,"column":26},"end":{"line":386,"column":31}},"124":{"start":{"line":387,"column":35},"end":{"line":387,"column":42}},"125":{"start":{"line":389,"column":23},"end":{"line":389,"column":43}},"126":{"start":{"line":390,"column":21},"end":{"line":390,"column":26}},"127":{"start":{"line":391,"column":36},"end":{"line":391,"column":49}},"128":{"start":{"line":392,"column":33},"end":{"line":392,"column":42}},"129":{"start":{"line":396,"column":0},"end":{"line":396,"column":46}},"130":{"start":{"line":402,"column":0},"end":{"line":435,"column":2}},"131":{"start":{"line":404,"column":14},"end":{"line":404,"column":38}},"132":{"start":{"line":405,"column":14},"end":{"line":405,"column":20}},"133":{"start":{"line":408,"column":22},"end":{"line":408,"column":46}},"134":{"start":{"line":410,"column":20},"end":{"line":410,"column":25}},"135":{"start":{"line":412,"column":2},"end":{"line":434,"column":5}},"136":{"start":{"line":415,"column":6},"end":{"line":417,"column":7}},"137":{"start":{"line":416,"column":8},"end":{"line":416,"column":50}},"138":{"start":{"line":418,"column":6},"end":{"line":418,"column":39}},"139":{"start":{"line":423,"column":21},"end":{"line":423,"column":47}},"140":{"start":{"line":424,"column":21},"end":{"line":424,"column":50}},"141":{"start":{"line":426,"column":36},"end":{"line":426,"column":54}},"142":{"start":{"line":427,"column":26},"end":{"line":427,"column":31}},"143":{"start":{"line":428,"column":35},"end":{"line":428,"column":42}},"144":{"start":{"line":430,"column":23},"end":{"line":430,"column":43}},"145":{"start":{"line":431,"column":21},"end":{"line":431,"column":26}},"146":{"start":{"line":432,"column":36},"end":{"line":432,"column":49}},"147":{"start":{"line":433,"column":33},"end":{"line":433,"column":42}},"148":{"start":{"line":437,"column":0},"end":{"line":437,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":28,"column":2},"end":{"line":28,"column":3}},"loc":{"start":{"line":28,"column":20},"end":{"line":72,"column":3}},"line":28},"1":{"name":"(anonymous_1)","decl":{"start":{"line":39,"column":37},"end":{"line":39,"column":38}},"loc":{"start":{"line":39,"column":45},"end":{"line":39,"column":79}},"line":39},"2":{"name":"(anonymous_2)","decl":{"start":{"line":49,"column":52},"end":{"line":49,"column":53}},"loc":{"start":{"line":49,"column":64},"end":{"line":49,"column":97}},"line":49},"3":{"name":"(anonymous_3)","decl":{"start":{"line":65,"column":53},"end":{"line":65,"column":54}},"loc":{"start":{"line":65,"column":58},"end":{"line":65,"column":77}},"line":65},"4":{"name":"(anonymous_4)","decl":{"start":{"line":66,"column":37},"end":{"line":66,"column":38}},"loc":{"start":{"line":66,"column":42},"end":{"line":66,"column":98}},"line":66},"5":{"name":"(anonymous_5)","decl":{"start":{"line":88,"column":2},"end":{"line":88,"column":3}},"loc":{"start":{"line":88,"column":71},"end":{"line":95,"column":3}},"line":88},"6":{"name":"(anonymous_6)","decl":{"start":{"line":102,"column":2},"end":{"line":102,"column":3}},"loc":{"start":{"line":102,"column":14},"end":{"line":104,"column":3}},"line":102},"7":{"name":"(anonymous_7)","decl":{"start":{"line":111,"column":2},"end":{"line":111,"column":3}},"loc":{"start":{"line":111,"column":13},"end":{"line":113,"column":3}},"line":111},"8":{"name":"(anonymous_8)","decl":{"start":{"line":120,"column":2},"end":{"line":120,"column":3}},"loc":{"start":{"line":120,"column":16},"end":{"line":122,"column":3}},"line":120},"9":{"name":"(anonymous_9)","decl":{"start":{"line":132,"column":2},"end":{"line":132,"column":3}},"loc":{"start":{"line":132,"column":21},"end":{"line":138,"column":3}},"line":132},"10":{"name":"(anonymous_10)","decl":{"start":{"line":146,"column":2},"end":{"line":146,"column":3}},"loc":{"start":{"line":146,"column":19},"end":{"line":148,"column":3}},"line":146},"11":{"name":"(anonymous_11)","decl":{"start":{"line":156,"column":2},"end":{"line":156,"column":3}},"loc":{"start":{"line":156,"column":17},"end":{"line":158,"column":3}},"line":156},"12":{"name":"(anonymous_12)","decl":{"start":{"line":163,"column":2},"end":{"line":163,"column":3}},"loc":{"start":{"line":163,"column":25},"end":{"line":165,"column":3}},"line":163},"13":{"name":"(anonymous_13)","decl":{"start":{"line":170,"column":2},"end":{"line":170,"column":3}},"loc":{"start":{"line":170,"column":17},"end":{"line":172,"column":3}},"line":170},"14":{"name":"(anonymous_14)","decl":{"start":{"line":177,"column":2},"end":{"line":177,"column":3}},"loc":{"start":{"line":177,"column":18},"end":{"line":179,"column":3}},"line":177},"15":{"name":"(anonymous_15)","decl":{"start":{"line":185,"column":2},"end":{"line":185,"column":3}},"loc":{"start":{"line":185,"column":20},"end":{"line":187,"column":3}},"line":185},"16":{"name":"(anonymous_16)","decl":{"start":{"line":186,"column":68},"end":{"line":186,"column":69}},"loc":{"start":{"line":186,"column":80},"end":{"line":186,"column":114}},"line":186},"17":{"name":"(anonymous_17)","decl":{"start":{"line":194,"column":2},"end":{"line":194,"column":3}},"loc":{"start":{"line":194,"column":16},"end":{"line":196,"column":3}},"line":194},"18":{"name":"(anonymous_18)","decl":{"start":{"line":199,"column":2},"end":{"line":199,"column":3}},"loc":{"start":{"line":199,"column":12},"end":{"line":213,"column":3}},"line":199},"19":{"name":"(anonymous_19)","decl":{"start":{"line":218,"column":4},"end":{"line":218,"column":5}},"loc":{"start":{"line":218,"column":64},"end":{"line":218,"column":88}},"line":218},"20":{"name":"(anonymous_20)","decl":{"start":{"line":219,"column":4},"end":{"line":219,"column":5}},"loc":{"start":{"line":219,"column":64},"end":{"line":219,"column":70}},"line":219},"21":{"name":"(anonymous_21)","decl":{"start":{"line":220,"column":4},"end":{"line":220,"column":5}},"loc":{"start":{"line":220,"column":64},"end":{"line":220,"column":87}},"line":220},"22":{"name":"(anonymous_22)","decl":{"start":{"line":221,"column":4},"end":{"line":221,"column":5}},"loc":{"start":{"line":221,"column":64},"end":{"line":221,"column":91}},"line":221},"23":{"name":"(anonymous_23)","decl":{"start":{"line":222,"column":4},"end":{"line":222,"column":5}},"loc":{"start":{"line":222,"column":64},"end":{"line":222,"column":101}},"line":222},"24":{"name":"(anonymous_24)","decl":{"start":{"line":223,"column":4},"end":{"line":223,"column":5}},"loc":{"start":{"line":223,"column":64},"end":{"line":223,"column":107}},"line":223},"25":{"name":"(anonymous_25)","decl":{"start":{"line":224,"column":4},"end":{"line":224,"column":5}},"loc":{"start":{"line":224,"column":64},"end":{"line":224,"column":86}},"line":224},"26":{"name":"(anonymous_26)","decl":{"start":{"line":225,"column":4},"end":{"line":225,"column":5}},"loc":{"start":{"line":226,"column":6},"end":{"line":226,"column":75}},"line":226},"27":{"name":"(anonymous_27)","decl":{"start":{"line":226,"column":32},"end":{"line":226,"column":33}},"loc":{"start":{"line":226,"column":40},"end":{"line":226,"column":74}},"line":226},"28":{"name":"(anonymous_28)","decl":{"start":{"line":227,"column":4},"end":{"line":227,"column":5}},"loc":{"start":{"line":227,"column":64},"end":{"line":227,"column":119}},"line":227},"29":{"name":"(anonymous_29)","decl":{"start":{"line":228,"column":4},"end":{"line":228,"column":5}},"loc":{"start":{"line":229,"column":6},"end":{"line":229,"column":65}},"line":229},"30":{"name":"(anonymous_30)","decl":{"start":{"line":232,"column":4},"end":{"line":232,"column":5}},"loc":{"start":{"line":232,"column":72},"end":{"line":232,"column":92}},"line":232},"31":{"name":"(anonymous_31)","decl":{"start":{"line":233,"column":4},"end":{"line":233,"column":5}},"loc":{"start":{"line":233,"column":72},"end":{"line":233,"column":90}},"line":233},"32":{"name":"(anonymous_32)","decl":{"start":{"line":234,"column":4},"end":{"line":234,"column":5}},"loc":{"start":{"line":234,"column":72},"end":{"line":234,"column":111}},"line":234},"33":{"name":"(anonymous_33)","decl":{"start":{"line":235,"column":4},"end":{"line":235,"column":5}},"loc":{"start":{"line":235,"column":72},"end":{"line":235,"column":107}},"line":235},"34":{"name":"(anonymous_34)","decl":{"start":{"line":236,"column":4},"end":{"line":236,"column":5}},"loc":{"start":{"line":236,"column":72},"end":{"line":236,"column":117}},"line":236},"35":{"name":"(anonymous_35)","decl":{"start":{"line":237,"column":4},"end":{"line":237,"column":5}},"loc":{"start":{"line":237,"column":72},"end":{"line":237,"column":116}},"line":237},"36":{"name":"(anonymous_36)","decl":{"start":{"line":238,"column":4},"end":{"line":238,"column":5}},"loc":{"start":{"line":239,"column":6},"end":{"line":239,"column":65}},"line":239},"37":{"name":"(anonymous_37)","decl":{"start":{"line":239,"column":32},"end":{"line":239,"column":33}},"loc":{"start":{"line":239,"column":40},"end":{"line":239,"column":64}},"line":239},"38":{"name":"(anonymous_38)","decl":{"start":{"line":240,"column":4},"end":{"line":240,"column":5}},"loc":{"start":{"line":241,"column":6},"end":{"line":241,"column":65}},"line":241},"39":{"name":"(anonymous_39)","decl":{"start":{"line":241,"column":39},"end":{"line":241,"column":40}},"loc":{"start":{"line":241,"column":47},"end":{"line":241,"column":64}},"line":241},"40":{"name":"(anonymous_40)","decl":{"start":{"line":242,"column":4},"end":{"line":242,"column":5}},"loc":{"start":{"line":243,"column":6},"end":{"line":243,"column":68}},"line":243},"41":{"name":"(anonymous_41)","decl":{"start":{"line":245,"column":14},"end":{"line":245,"column":15}},"loc":{"start":{"line":245,"column":20},"end":{"line":245,"column":25}},"line":245},"42":{"name":"(anonymous_42)","decl":{"start":{"line":262,"column":4},"end":{"line":262,"column":5}},"loc":{"start":{"line":262,"column":17},"end":{"line":262,"column":44}},"line":262},"43":{"name":"(anonymous_43)","decl":{"start":{"line":265,"column":4},"end":{"line":265,"column":5}},"loc":{"start":{"line":265,"column":25},"end":{"line":265,"column":49}},"line":265},"44":{"name":"(anonymous_44)","decl":{"start":{"line":267,"column":14},"end":{"line":267,"column":15}},"loc":{"start":{"line":267,"column":20},"end":{"line":267,"column":25}},"line":267},"45":{"name":"(anonymous_45)","decl":{"start":{"line":269,"column":18},"end":{"line":269,"column":19}},"loc":{"start":{"line":269,"column":29},"end":{"line":291,"column":3}},"line":269},"46":{"name":"(anonymous_46)","decl":{"start":{"line":271,"column":27},"end":{"line":271,"column":28}},"loc":{"start":{"line":271,"column":44},"end":{"line":271,"column":84}},"line":271},"47":{"name":"(anonymous_47)","decl":{"start":{"line":272,"column":26},"end":{"line":272,"column":27}},"loc":{"start":{"line":272,"column":33},"end":{"line":274,"column":29}},"line":272},"48":{"name":"(anonymous_48)","decl":{"start":{"line":273,"column":12},"end":{"line":273,"column":13}},"loc":{"start":{"line":273,"column":18},"end":{"line":273,"column":21}},"line":273},"49":{"name":"(anonymous_49)","decl":{"start":{"line":274,"column":13},"end":{"line":274,"column":14}},"loc":{"start":{"line":274,"column":19},"end":{"line":274,"column":28}},"line":274},"50":{"name":"(anonymous_50)","decl":{"start":{"line":275,"column":12},"end":{"line":275,"column":13}},"loc":{"start":{"line":275,"column":23},"end":{"line":275,"column":49}},"line":275},"51":{"name":"(anonymous_51)","decl":{"start":{"line":275,"column":36},"end":{"line":275,"column":37}},"loc":{"start":{"line":275,"column":43},"end":{"line":275,"column":48}},"line":275},"52":{"name":"(anonymous_52)","decl":{"start":{"line":279,"column":12},"end":{"line":279,"column":13}},"loc":{"start":{"line":279,"column":22},"end":{"line":279,"column":86}},"line":279},"53":{"name":"(anonymous_53)","decl":{"start":{"line":280,"column":12},"end":{"line":280,"column":13}},"loc":{"start":{"line":280,"column":22},"end":{"line":280,"column":59}},"line":280},"54":{"name":"(anonymous_54)","decl":{"start":{"line":282,"column":17},"end":{"line":282,"column":18}},"loc":{"start":{"line":282,"column":48},"end":{"line":282,"column":76}},"line":282},"55":{"name":"(anonymous_55)","decl":{"start":{"line":283,"column":22},"end":{"line":283,"column":23}},"loc":{"start":{"line":283,"column":28},"end":{"line":283,"column":33}},"line":283},"56":{"name":"(anonymous_56)","decl":{"start":{"line":284,"column":26},"end":{"line":284,"column":27}},"loc":{"start":{"line":284,"column":47},"end":{"line":284,"column":64}},"line":284},"57":{"name":"(anonymous_57)","decl":{"start":{"line":286,"column":16},"end":{"line":286,"column":17}},"loc":{"start":{"line":286,"column":22},"end":{"line":286,"column":27}},"line":286},"58":{"name":"(anonymous_58)","decl":{"start":{"line":287,"column":17},"end":{"line":287,"column":18}},"loc":{"start":{"line":287,"column":23},"end":{"line":287,"column":28}},"line":287},"59":{"name":"(anonymous_59)","decl":{"start":{"line":288,"column":22},"end":{"line":288,"column":23}},"loc":{"start":{"line":288,"column":38},"end":{"line":288,"column":51}},"line":288},"60":{"name":"(anonymous_60)","decl":{"start":{"line":289,"column":26},"end":{"line":289,"column":27}},"loc":{"start":{"line":289,"column":33},"end":{"line":289,"column":46}},"line":289},"61":{"name":"(anonymous_61)","decl":{"start":{"line":298,"column":4},"end":{"line":298,"column":5}},"loc":{"start":{"line":298,"column":16},"end":{"line":298,"column":50}},"line":298},"62":{"name":"(anonymous_62)","decl":{"start":{"line":299,"column":4},"end":{"line":299,"column":5}},"loc":{"start":{"line":299,"column":16},"end":{"line":299,"column":55}},"line":299},"63":{"name":"(anonymous_63)","decl":{"start":{"line":300,"column":4},"end":{"line":300,"column":5}},"loc":{"start":{"line":300,"column":16},"end":{"line":300,"column":57}},"line":300},"64":{"name":"(anonymous_64)","decl":{"start":{"line":301,"column":4},"end":{"line":301,"column":5}},"loc":{"start":{"line":301,"column":16},"end":{"line":301,"column":54}},"line":301},"65":{"name":"(anonymous_65)","decl":{"start":{"line":302,"column":4},"end":{"line":302,"column":5}},"loc":{"start":{"line":302,"column":16},"end":{"line":302,"column":54}},"line":302},"66":{"name":"(anonymous_66)","decl":{"start":{"line":303,"column":4},"end":{"line":303,"column":5}},"loc":{"start":{"line":303,"column":16},"end":{"line":303,"column":54}},"line":303},"67":{"name":"(anonymous_67)","decl":{"start":{"line":306,"column":4},"end":{"line":306,"column":5}},"loc":{"start":{"line":306,"column":24},"end":{"line":306,"column":51}},"line":306},"68":{"name":"(anonymous_68)","decl":{"start":{"line":307,"column":4},"end":{"line":307,"column":5}},"loc":{"start":{"line":307,"column":24},"end":{"line":307,"column":49}},"line":307},"69":{"name":"(anonymous_69)","decl":{"start":{"line":308,"column":4},"end":{"line":308,"column":5}},"loc":{"start":{"line":308,"column":24},"end":{"line":308,"column":54}},"line":308},"70":{"name":"(anonymous_70)","decl":{"start":{"line":309,"column":4},"end":{"line":309,"column":5}},"loc":{"start":{"line":309,"column":24},"end":{"line":309,"column":56}},"line":309},"71":{"name":"(anonymous_71)","decl":{"start":{"line":310,"column":4},"end":{"line":310,"column":5}},"loc":{"start":{"line":310,"column":24},"end":{"line":310,"column":53}},"line":310},"72":{"name":"(anonymous_72)","decl":{"start":{"line":311,"column":4},"end":{"line":311,"column":5}},"loc":{"start":{"line":311,"column":24},"end":{"line":311,"column":53}},"line":311},"73":{"name":"(anonymous_73)","decl":{"start":{"line":312,"column":4},"end":{"line":312,"column":5}},"loc":{"start":{"line":312,"column":24},"end":{"line":312,"column":54}},"line":312},"74":{"name":"(anonymous_74)","decl":{"start":{"line":314,"column":14},"end":{"line":314,"column":15}},"loc":{"start":{"line":314,"column":20},"end":{"line":314,"column":25}},"line":314},"75":{"name":"(anonymous_75)","decl":{"start":{"line":315,"column":18},"end":{"line":315,"column":19}},"loc":{"start":{"line":315,"column":36},"end":{"line":317,"column":1}},"line":315},"76":{"name":"(anonymous_76)","decl":{"start":{"line":325,"column":4},"end":{"line":325,"column":5}},"loc":{"start":{"line":325,"column":20},"end":{"line":325,"column":50}},"line":325},"77":{"name":"(anonymous_77)","decl":{"start":{"line":326,"column":4},"end":{"line":326,"column":5}},"loc":{"start":{"line":326,"column":20},"end":{"line":326,"column":32}},"line":326},"78":{"name":"(anonymous_78)","decl":{"start":{"line":329,"column":4},"end":{"line":329,"column":5}},"loc":{"start":{"line":329,"column":25},"end":{"line":329,"column":49}},"line":329},"79":{"name":"(anonymous_79)","decl":{"start":{"line":331,"column":14},"end":{"line":331,"column":15}},"loc":{"start":{"line":331,"column":20},"end":{"line":331,"column":25}},"line":331},"80":{"name":"(anonymous_80)","decl":{"start":{"line":332,"column":18},"end":{"line":332,"column":19}},"loc":{"start":{"line":332,"column":40},"end":{"line":394,"column":1}},"line":332},"81":{"name":"(anonymous_81)","decl":{"start":{"line":336,"column":11},"end":{"line":336,"column":12}},"loc":{"start":{"line":336,"column":17},"end":{"line":336,"column":76}},"line":336},"82":{"name":"(anonymous_82)","decl":{"start":{"line":337,"column":10},"end":{"line":337,"column":11}},"loc":{"start":{"line":337,"column":24},"end":{"line":378,"column":5}},"line":337},"83":{"name":"(anonymous_83)","decl":{"start":{"line":342,"column":16},"end":{"line":342,"column":17}},"loc":{"start":{"line":342,"column":24},"end":{"line":342,"column":34}},"line":342},"84":{"name":"(anonymous_84)","decl":{"start":{"line":345,"column":16},"end":{"line":345,"column":17}},"loc":{"start":{"line":345,"column":29},"end":{"line":345,"column":77}},"line":345},"85":{"name":"(anonymous_85)","decl":{"start":{"line":346,"column":16},"end":{"line":346,"column":17}},"loc":{"start":{"line":346,"column":30},"end":{"line":360,"column":12}},"line":346},"86":{"name":"(anonymous_86)","decl":{"start":{"line":351,"column":16},"end":{"line":351,"column":17}},"loc":{"start":{"line":351,"column":24},"end":{"line":351,"column":34}},"line":351},"87":{"name":"(anonymous_87)","decl":{"start":{"line":352,"column":16},"end":{"line":352,"column":17}},"loc":{"start":{"line":352,"column":23},"end":{"line":358,"column":17}},"line":352},"88":{"name":"(anonymous_88)","decl":{"start":{"line":363,"column":17},"end":{"line":363,"column":18}},"loc":{"start":{"line":363,"column":23},"end":{"line":363,"column":92}},"line":363},"89":{"name":"(anonymous_89)","decl":{"start":{"line":364,"column":16},"end":{"line":364,"column":17}},"loc":{"start":{"line":364,"column":26},"end":{"line":364,"column":38}},"line":364},"90":{"name":"(anonymous_90)","decl":{"start":{"line":367,"column":16},"end":{"line":367,"column":17}},"loc":{"start":{"line":368,"column":12},"end":{"line":368,"column":103}},"line":368},"91":{"name":"(anonymous_91)","decl":{"start":{"line":368,"column":36},"end":{"line":368,"column":37}},"loc":{"start":{"line":368,"column":46},"end":{"line":368,"column":72}},"line":368},"92":{"name":"(anonymous_92)","decl":{"start":{"line":368,"column":78},"end":{"line":368,"column":79}},"loc":{"start":{"line":368,"column":88},"end":{"line":368,"column":101}},"line":368},"93":{"name":"(anonymous_93)","decl":{"start":{"line":370,"column":14},"end":{"line":370,"column":15}},"loc":{"start":{"line":370,"column":24},"end":{"line":377,"column":9}},"line":370},"94":{"name":"(anonymous_94)","decl":{"start":{"line":382,"column":10},"end":{"line":382,"column":11}},"loc":{"start":{"line":382,"column":21},"end":{"line":382,"column":47}},"line":382},"95":{"name":"(anonymous_95)","decl":{"start":{"line":383,"column":10},"end":{"line":383,"column":11}},"loc":{"start":{"line":383,"column":21},"end":{"line":383,"column":48}},"line":383},"96":{"name":"(anonymous_96)","decl":{"start":{"line":385,"column":15},"end":{"line":385,"column":16}},"loc":{"start":{"line":385,"column":36},"end":{"line":385,"column":54}},"line":385},"97":{"name":"(anonymous_97)","decl":{"start":{"line":386,"column":20},"end":{"line":386,"column":21}},"loc":{"start":{"line":386,"column":26},"end":{"line":386,"column":31}},"line":386},"98":{"name":"(anonymous_98)","decl":{"start":{"line":387,"column":24},"end":{"line":387,"column":25}},"loc":{"start":{"line":387,"column":35},"end":{"line":387,"column":42}},"line":387},"99":{"name":"(anonymous_99)","decl":{"start":{"line":389,"column":14},"end":{"line":389,"column":15}},"loc":{"start":{"line":389,"column":23},"end":{"line":389,"column":43}},"line":389},"100":{"name":"(anonymous_100)","decl":{"start":{"line":390,"column":15},"end":{"line":390,"column":16}},"loc":{"start":{"line":390,"column":21},"end":{"line":390,"column":26}},"line":390},"101":{"name":"(anonymous_101)","decl":{"start":{"line":391,"column":20},"end":{"line":391,"column":21}},"loc":{"start":{"line":391,"column":36},"end":{"line":391,"column":49}},"line":391},"102":{"name":"(anonymous_102)","decl":{"start":{"line":392,"column":24},"end":{"line":392,"column":25}},"loc":{"start":{"line":392,"column":31},"end":{"line":392,"column":44}},"line":392},"103":{"name":"(anonymous_103)","decl":{"start":{"line":404,"column":4},"end":{"line":404,"column":5}},"loc":{"start":{"line":404,"column":14},"end":{"line":404,"column":38}},"line":404},"104":{"name":"(anonymous_104)","decl":{"start":{"line":405,"column":4},"end":{"line":405,"column":5}},"loc":{"start":{"line":405,"column":14},"end":{"line":405,"column":20}},"line":405},"105":{"name":"(anonymous_105)","decl":{"start":{"line":408,"column":4},"end":{"line":408,"column":5}},"loc":{"start":{"line":408,"column":22},"end":{"line":408,"column":46}},"line":408},"106":{"name":"(anonymous_106)","decl":{"start":{"line":410,"column":14},"end":{"line":410,"column":15}},"loc":{"start":{"line":410,"column":20},"end":{"line":410,"column":25}},"line":410},"107":{"name":"(anonymous_107)","decl":{"start":{"line":411,"column":18},"end":{"line":411,"column":19}},"loc":{"start":{"line":411,"column":34},"end":{"line":435,"column":1}},"line":411},"108":{"name":"(anonymous_108)","decl":{"start":{"line":414,"column":10},"end":{"line":414,"column":11}},"loc":{"start":{"line":414,"column":24},"end":{"line":419,"column":5}},"line":414},"109":{"name":"(anonymous_109)","decl":{"start":{"line":423,"column":10},"end":{"line":423,"column":11}},"loc":{"start":{"line":423,"column":21},"end":{"line":423,"column":47}},"line":423},"110":{"name":"(anonymous_110)","decl":{"start":{"line":424,"column":10},"end":{"line":424,"column":11}},"loc":{"start":{"line":424,"column":21},"end":{"line":424,"column":50}},"line":424},"111":{"name":"(anonymous_111)","decl":{"start":{"line":426,"column":15},"end":{"line":426,"column":16}},"loc":{"start":{"line":426,"column":36},"end":{"line":426,"column":54}},"line":426},"112":{"name":"(anonymous_112)","decl":{"start":{"line":427,"column":20},"end":{"line":427,"column":21}},"loc":{"start":{"line":427,"column":26},"end":{"line":427,"column":31}},"line":427},"113":{"name":"(anonymous_113)","decl":{"start":{"line":428,"column":24},"end":{"line":428,"column":25}},"loc":{"start":{"line":428,"column":35},"end":{"line":428,"column":42}},"line":428},"114":{"name":"(anonymous_114)","decl":{"start":{"line":430,"column":14},"end":{"line":430,"column":15}},"loc":{"start":{"line":430,"column":23},"end":{"line":430,"column":43}},"line":430},"115":{"name":"(anonymous_115)","decl":{"start":{"line":431,"column":15},"end":{"line":431,"column":16}},"loc":{"start":{"line":431,"column":21},"end":{"line":431,"column":26}},"line":431},"116":{"name":"(anonymous_116)","decl":{"start":{"line":432,"column":20},"end":{"line":432,"column":21}},"loc":{"start":{"line":432,"column":36},"end":{"line":432,"column":49}},"line":432},"117":{"name":"(anonymous_117)","decl":{"start":{"line":433,"column":24},"end":{"line":433,"column":25}},"loc":{"start":{"line":433,"column":31},"end":{"line":433,"column":44}},"line":433}},"branchMap":{"0":{"loc":{"start":{"line":29,"column":11},"end":{"line":71,"column":61}},"type":"binary-expr","locations":[{"start":{"line":29,"column":11},"end":{"line":29,"column":40}},{"start":{"line":30,"column":6},"end":{"line":30,"column":17}},{"start":{"line":34,"column":6},"end":{"line":34,"column":34}},{"start":{"line":35,"column":6},"end":{"line":35,"column":38}},{"start":{"line":36,"column":7},"end":{"line":36,"column":32}},{"start":{"line":36,"column":37},"end":{"line":36,"column":68}},{"start":{"line":36,"column":72},"end":{"line":36,"column":85}},{"start":{"line":37,"column":7},"end":{"line":37,"column":35}},{"start":{"line":37,"column":40},"end":{"line":37,"column":74}},{"start":{"line":37,"column":78},"end":{"line":37,"column":94}},{"start":{"line":38,"column":6},"end":{"line":38,"column":33}},{"start":{"line":39,"column":6},"end":{"line":39,"column":80}},{"start":{"line":40,"column":7},"end":{"line":40,"column":41}},{"start":{"line":40,"column":45},"end":{"line":40,"column":85}},{"start":{"line":41,"column":7},"end":{"line":41,"column":41}},{"start":{"line":41,"column":45},"end":{"line":41,"column":89}},{"start":{"line":42,"column":6},"end":{"line":42,"column":39}},{"start":{"line":43,"column":6},"end":{"line":43,"column":48}},{"start":{"line":44,"column":6},"end":{"line":44,"column":40}},{"start":{"line":45,"column":6},"end":{"line":45,"column":59}},{"start":{"line":46,"column":6},"end":{"line":46,"column":42}},{"start":{"line":47,"column":7},"end":{"line":47,"column":18}},{"start":{"line":47,"column":22},"end":{"line":47,"column":37}},{"start":{"line":48,"column":7},"end":{"line":48,"column":19}},{"start":{"line":49,"column":10},"end":{"line":49,"column":98}},{"start":{"line":50,"column":10},"end":{"line":50,"column":25}},{"start":{"line":51,"column":6},"end":{"line":51,"column":38}},{"start":{"line":52,"column":7},"end":{"line":52,"column":22}},{"start":{"line":52,"column":26},"end":{"line":52,"column":37}},{"start":{"line":53,"column":7},"end":{"line":53,"column":23}},{"start":{"line":53,"column":28},"end":{"line":53,"column":75}},{"start":{"line":54,"column":7},"end":{"line":54,"column":19}},{"start":{"line":55,"column":10},"end":{"line":55,"column":50}},{"start":{"line":56,"column":10},"end":{"line":56,"column":56}},{"start":{"line":57,"column":10},"end":{"line":57,"column":84}},{"start":{"line":58,"column":7},"end":{"line":58,"column":47}},{"start":{"line":58,"column":51},"end":{"line":58,"column":102}},{"start":{"line":59,"column":8},"end":{"line":59,"column":21}},{"start":{"line":59,"column":25},"end":{"line":59,"column":71}},{"start":{"line":59,"column":76},"end":{"line":59,"column":106}},{"start":{"line":60,"column":6},"end":{"line":60,"column":57}},{"start":{"line":61,"column":6},"end":{"line":61,"column":55}},{"start":{"line":62,"column":6},"end":{"line":62,"column":61}},{"start":{"line":63,"column":6},"end":{"line":63,"column":71}},{"start":{"line":64,"column":6},"end":{"line":64,"column":67}},{"start":{"line":65,"column":6},"end":{"line":65,"column":78}},{"start":{"line":66,"column":6},"end":{"line":66,"column":99}},{"start":{"line":67,"column":6},"end":{"line":67,"column":79}},{"start":{"line":68,"column":6},"end":{"line":68,"column":63}},{"start":{"line":69,"column":6},"end":{"line":69,"column":65}},{"start":{"line":70,"column":6},"end":{"line":70,"column":69}},{"start":{"line":71,"column":6},"end":{"line":71,"column":61}}],"line":29},"1":{"loc":{"start":{"line":39,"column":45},"end":{"line":39,"column":79}},"type":"binary-expr","locations":[{"start":{"line":39,"column":45},"end":{"line":39,"column":69}},{"start":{"line":39,"column":73},"end":{"line":39,"column":79}}],"line":39},"2":{"loc":{"start":{"line":53,"column":45},"end":{"line":53,"column":74}},"type":"binary-expr","locations":[{"start":{"line":53,"column":45},"end":{"line":53,"column":57}},{"start":{"line":53,"column":61},"end":{"line":53,"column":74}}],"line":53},"3":{"loc":{"start":{"line":91,"column":19},"end":{"line":91,"column":38}},"type":"binary-expr","locations":[{"start":{"line":91,"column":19},"end":{"line":91,"column":25}},{"start":{"line":91,"column":29},"end":{"line":91,"column":38}}],"line":91},"4":{"loc":{"start":{"line":92,"column":22},"end":{"line":92,"column":44}},"type":"binary-expr","locations":[{"start":{"line":92,"column":22},"end":{"line":92,"column":31}},{"start":{"line":92,"column":35},"end":{"line":92,"column":44}}],"line":92},"5":{"loc":{"start":{"line":94,"column":28},"end":{"line":94,"column":56}},"type":"binary-expr","locations":[{"start":{"line":94,"column":28},"end":{"line":94,"column":43}},{"start":{"line":94,"column":47},"end":{"line":94,"column":56}}],"line":94},"6":{"loc":{"start":{"line":133,"column":11},"end":{"line":137,"column":64}},"type":"cond-expr","locations":[{"start":{"line":134,"column":8},"end":{"line":134,"column":17}},{"start":{"line":135,"column":9},"end":{"line":137,"column":63}}],"line":133},"7":{"loc":{"start":{"line":135,"column":9},"end":{"line":137,"column":63}},"type":"cond-expr","locations":[{"start":{"line":136,"column":10},"end":{"line":136,"column":40}},{"start":{"line":137,"column":10},"end":{"line":137,"column":63}}],"line":135},"8":{"loc":{"start":{"line":186,"column":11},"end":{"line":186,"column":115}},"type":"binary-expr","locations":[{"start":{"line":186,"column":11},"end":{"line":186,"column":23}},{"start":{"line":186,"column":27},"end":{"line":186,"column":115}}],"line":186},"9":{"loc":{"start":{"line":195,"column":11},"end":{"line":195,"column":62}},"type":"binary-expr","locations":[{"start":{"line":195,"column":11},"end":{"line":195,"column":27}},{"start":{"line":195,"column":32},"end":{"line":195,"column":44}},{"start":{"line":195,"column":48},"end":{"line":195,"column":61}}],"line":195},"10":{"loc":{"start":{"line":222,"column":64},"end":{"line":222,"column":101}},"type":"binary-expr","locations":[{"start":{"line":222,"column":64},"end":{"line":222,"column":71}},{"start":{"line":222,"column":75},"end":{"line":222,"column":101}}],"line":222},"11":{"loc":{"start":{"line":223,"column":64},"end":{"line":223,"column":107}},"type":"binary-expr","locations":[{"start":{"line":223,"column":64},"end":{"line":223,"column":74}},{"start":{"line":223,"column":78},"end":{"line":223,"column":107}}],"line":223},"12":{"loc":{"start":{"line":226,"column":40},"end":{"line":226,"column":74}},"type":"binary-expr","locations":[{"start":{"line":226,"column":40},"end":{"line":226,"column":64}},{"start":{"line":226,"column":68},"end":{"line":226,"column":74}}],"line":226},"13":{"loc":{"start":{"line":227,"column":64},"end":{"line":227,"column":119}},"type":"binary-expr","locations":[{"start":{"line":227,"column":64},"end":{"line":227,"column":80}},{"start":{"line":227,"column":84},"end":{"line":227,"column":119}}],"line":227},"14":{"loc":{"start":{"line":229,"column":6},"end":{"line":229,"column":65}},"type":"binary-expr","locations":[{"start":{"line":229,"column":6},"end":{"line":229,"column":22}},{"start":{"line":229,"column":26},"end":{"line":229,"column":65}}],"line":229},"15":{"loc":{"start":{"line":234,"column":72},"end":{"line":234,"column":111}},"type":"binary-expr","locations":[{"start":{"line":234,"column":72},"end":{"line":234,"column":80}},{"start":{"line":234,"column":84},"end":{"line":234,"column":111}}],"line":234},"16":{"loc":{"start":{"line":235,"column":72},"end":{"line":235,"column":107}},"type":"binary-expr","locations":[{"start":{"line":235,"column":72},"end":{"line":235,"column":79}},{"start":{"line":235,"column":83},"end":{"line":235,"column":107}}],"line":235},"17":{"loc":{"start":{"line":236,"column":72},"end":{"line":236,"column":117}},"type":"binary-expr","locations":[{"start":{"line":236,"column":72},"end":{"line":236,"column":83}},{"start":{"line":236,"column":87},"end":{"line":236,"column":117}}],"line":236},"18":{"loc":{"start":{"line":237,"column":72},"end":{"line":237,"column":116}},"type":"binary-expr","locations":[{"start":{"line":237,"column":72},"end":{"line":237,"column":82}},{"start":{"line":237,"column":86},"end":{"line":237,"column":116}}],"line":237},"19":{"loc":{"start":{"line":243,"column":6},"end":{"line":243,"column":68}},"type":"binary-expr","locations":[{"start":{"line":243,"column":6},"end":{"line":243,"column":22}},{"start":{"line":243,"column":26},"end":{"line":243,"column":68}}],"line":243},"20":{"loc":{"start":{"line":279,"column":22},"end":{"line":279,"column":86}},"type":"binary-expr","locations":[{"start":{"line":279,"column":22},"end":{"line":279,"column":42}},{"start":{"line":279,"column":47},"end":{"line":279,"column":73}},{"start":{"line":279,"column":77},"end":{"line":279,"column":85}}],"line":279},"21":{"loc":{"start":{"line":280,"column":22},"end":{"line":280,"column":59}},"type":"binary-expr","locations":[{"start":{"line":280,"column":22},"end":{"line":280,"column":29}},{"start":{"line":280,"column":33},"end":{"line":280,"column":59}}],"line":280},"22":{"loc":{"start":{"line":307,"column":24},"end":{"line":307,"column":49}},"type":"binary-expr","locations":[{"start":{"line":307,"column":24},"end":{"line":307,"column":39}},{"start":{"line":307,"column":43},"end":{"line":307,"column":49}}],"line":307},"23":{"loc":{"start":{"line":308,"column":24},"end":{"line":308,"column":54}},"type":"binary-expr","locations":[{"start":{"line":308,"column":24},"end":{"line":308,"column":44}},{"start":{"line":308,"column":48},"end":{"line":308,"column":54}}],"line":308},"24":{"loc":{"start":{"line":309,"column":24},"end":{"line":309,"column":56}},"type":"binary-expr","locations":[{"start":{"line":309,"column":24},"end":{"line":309,"column":46}},{"start":{"line":309,"column":50},"end":{"line":309,"column":56}}],"line":309},"25":{"loc":{"start":{"line":310,"column":24},"end":{"line":310,"column":53}},"type":"binary-expr","locations":[{"start":{"line":310,"column":24},"end":{"line":310,"column":43}},{"start":{"line":310,"column":47},"end":{"line":310,"column":53}}],"line":310},"26":{"loc":{"start":{"line":311,"column":24},"end":{"line":311,"column":53}},"type":"binary-expr","locations":[{"start":{"line":311,"column":24},"end":{"line":311,"column":43}},{"start":{"line":311,"column":47},"end":{"line":311,"column":53}}],"line":311},"27":{"loc":{"start":{"line":312,"column":24},"end":{"line":312,"column":54}},"type":"binary-expr","locations":[{"start":{"line":312,"column":24},"end":{"line":312,"column":43}},{"start":{"line":312,"column":47},"end":{"line":312,"column":54}}],"line":312},"28":{"loc":{"start":{"line":316,"column":12},"end":{"line":316,"column":118}},"type":"binary-expr","locations":[{"start":{"line":316,"column":12},"end":{"line":316,"column":26}},{"start":{"line":316,"column":30},"end":{"line":316,"column":49}},{"start":{"line":316,"column":53},"end":{"line":316,"column":74}},{"start":{"line":316,"column":78},"end":{"line":316,"column":96}},{"start":{"line":316,"column":100},"end":{"line":316,"column":118}}],"line":316},"29":{"loc":{"start":{"line":353,"column":18},"end":{"line":356,"column":19}},"type":"if","locations":[{"start":{"line":353,"column":18},"end":{"line":356,"column":19}},{"start":{"line":353,"column":18},"end":{"line":356,"column":19}}],"line":353},"30":{"loc":{"start":{"line":353,"column":22},"end":{"line":353,"column":104}},"type":"binary-expr","locations":[{"start":{"line":353,"column":22},"end":{"line":353,"column":25}},{"start":{"line":353,"column":29},"end":{"line":353,"column":40}},{"start":{"line":353,"column":44},"end":{"line":353,"column":104}}],"line":353},"31":{"loc":{"start":{"line":415,"column":6},"end":{"line":417,"column":7}},"type":"if","locations":[{"start":{"line":415,"column":6},"end":{"line":417,"column":7}},{"start":{"line":415,"column":6},"end":{"line":417,"column":7}}],"line":415}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":2148,"7":2856,"8":5064,"9":2856,"10":2856,"11":2148,"12":2148,"13":2148,"14":2148,"15":2148,"16":2148,"17":37234,"18":81162,"19":321720,"20":32928,"21":35796,"22":101994,"23":80868,"24":56916,"25":41796,"26":77844,"27":182016,"28":35076,"29":28632,"30":1,"31":2142,"32":2142,"33":2142,"34":2142,"35":2142,"36":2142,"37":2142,"38":2142,"39":2856,"40":2142,"41":2142,"42":2142,"43":2142,"44":2142,"45":2142,"46":2142,"47":2142,"48":2142,"49":2856,"50":2142,"51":2856,"52":2142,"53":0,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":27,"63":27,"64":0,"65":27,"66":27,"67":156,"68":27,"69":156,"70":39,"71":117,"72":27,"73":126,"74":27,"75":27,"76":27,"77":0,"78":27,"79":0,"80":0,"81":0,"82":0,"83":1,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":1,"100":14,"101":14,"102":14,"103":0,"104":14,"105":8,"106":6,"107":6,"108":6,"109":6,"110":6,"111":0,"112":0,"113":0,"114":0,"115":6,"116":6,"117":0,"118":0,"119":6,"120":6,"121":6,"122":6,"123":0,"124":6,"125":8,"126":0,"127":8,"128":8,"129":1,"130":1,"131":9,"132":9,"133":9,"134":0,"135":9,"136":9,"137":4,"138":5,"139":5,"140":5,"141":5,"142":0,"143":5,"144":4,"145":0,"146":4,"147":4,"148":1},"f":{"0":2148,"1":2856,"2":5064,"3":2856,"4":2856,"5":2148,"6":37234,"7":81162,"8":321720,"9":32928,"10":35796,"11":101994,"12":80868,"13":56916,"14":41796,"15":77844,"16":182016,"17":35076,"18":28632,"19":2142,"20":2142,"21":2142,"22":2142,"23":2142,"24":2142,"25":2142,"26":2142,"27":2856,"28":2142,"29":2142,"30":2142,"31":2142,"32":2142,"33":2142,"34":2142,"35":2142,"36":2142,"37":2856,"38":2142,"39":2856,"40":2142,"41":0,"42":27,"43":27,"44":0,"45":27,"46":156,"47":156,"48":39,"49":117,"50":27,"51":126,"52":27,"53":27,"54":27,"55":0,"56":27,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":14,"77":14,"78":14,"79":0,"80":14,"81":8,"82":6,"83":6,"84":6,"85":6,"86":6,"87":0,"88":0,"89":6,"90":6,"91":0,"92":0,"93":6,"94":6,"95":6,"96":6,"97":0,"98":6,"99":8,"100":0,"101":8,"102":8,"103":9,"104":9,"105":9,"106":0,"107":9,"108":9,"109":5,"110":5,"111":5,"112":0,"113":5,"114":4,"115":0,"116":4,"117":4},"b":{"0":[2148,2148,2148,2148,2148,1518,1518,2148,363,363,2148,2148,2148,618,2148,618,2148,2148,2148,2148,2148,2148,630,2148,1518,630,2148,2148,888,2148,1260,2148,1518,1386,1386,2148,132,2148,1518,630,2148,2148,2148,2148,2148,2148,2148,2148,2148,2148,2148,2148],"1":[2856,2856],"2":[1260,420],"3":[2148,630],"4":[2148,1785],"5":[2148,1530],"6":[9660,23268],"7":[2016,21252],"8":[77844,54744],"9":[35076,20580,6300],"10":[2142,1512],"11":[2142,357],"12":[2856,2856],"13":[2142,612],"14":[2142,612],"15":[2142,630],"16":[2142,1512],"17":[2142,1785],"18":[2142,357],"19":[2142,612],"20":[27,15,15],"21":[27,15],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0,0,0,0],"29":[0,0],"30":[0,0,0],"31":[4,5]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"c4a3cefe1e1ece7589b65c18ec1c7660f3a7ff5c","contentHash":"21225dca6c65b423e52bc8e3f998aeb8_11.7.1"},"/Users/jand/Scratchpad/ppwcode/node-ppwcode-gitInfo/q2.js":{"path":"/Users/jand/Scratchpad/ppwcode/node-ppwcode-gitInfo/q2.js","statementMap":{"0":{"start":{"line":17,"column":10},"end":{"line":17,"column":22}},"1":{"start":{"line":27,"column":2},"end":{"line":29,"column":3}},"2":{"start":{"line":28,"column":4},"end":{"line":28,"column":19}},"3":{"start":{"line":30,"column":2},"end":{"line":37,"column":6}},"4":{"start":{"line":30,"column":50},"end":{"line":30,"column":98}},"5":{"start":{"line":30,"column":84},"end":{"line":30,"column":96}},"6":{"start":{"line":31,"column":23},"end":{"line":37,"column":5}},"7":{"start":{"line":33,"column":8},"end":{"line":33,"column":38}},"8":{"start":{"line":34,"column":8},"end":{"line":34,"column":18}},"9":{"start":{"line":41,"column":0},"end":{"line":41,"column":17}},"10":{"start":{"line":43,"column":0},"end":{"line":43,"column":18}}},"fnMap":{"0":{"name":"object","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":15}},"loc":{"start":{"line":26,"column":27},"end":{"line":38,"column":1}},"line":26},"1":{"name":"(anonymous_1)","decl":{"start":{"line":30,"column":41},"end":{"line":30,"column":42}},"loc":{"start":{"line":30,"column":50},"end":{"line":30,"column":98}},"line":30},"2":{"name":"(anonymous_2)","decl":{"start":{"line":30,"column":72},"end":{"line":30,"column":73}},"loc":{"start":{"line":30,"column":84},"end":{"line":30,"column":96}},"line":30},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":10},"end":{"line":31,"column":11}},"loc":{"start":{"line":31,"column":23},"end":{"line":37,"column":5}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":32,"column":6},"end":{"line":32,"column":7}},"loc":{"start":{"line":32,"column":23},"end":{"line":35,"column":7}},"line":32}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":2},"end":{"line":29,"column":3}},"type":"if","locations":[{"start":{"line":27,"column":2},"end":{"line":29,"column":3}},{"start":{"line":27,"column":2},"end":{"line":29,"column":3}}],"line":27}},"s":{"0":1,"1":12,"2":0,"3":12,"4":36,"5":36,"6":12,"7":36,"8":36,"9":1,"10":1},"f":{"0":12,"1":36,"2":36,"3":12,"4":36},"b":{"0":[0,12]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"f64655085bf49b2e0924b1225bfa3f9bfa91801f","contentHash":"0cb094bf82783418b5cbb40232bc6890_11.7.1"},"/Users/jand/Scratchpad/ppwcode/node-ppwcode-gitInfo/tagGitRepo.js":{"path":"/Users/jand/Scratchpad/ppwcode/node-ppwcode-gitInfo/tagGitRepo.js","statementMap":{"0":{"start":{"line":17,"column":17},"end":{"line":17,"column":48}},"1":{"start":{"line":18,"column":12},"end":{"line":18,"column":30}},"2":{"start":{"line":19,"column":16},"end":{"line":19,"column":36}},"3":{"start":{"line":20,"column":10},"end":{"line":20,"column":25}},"4":{"start":{"line":31,"column":19},"end":{"line":75,"column":2}},"5":{"start":{"line":33,"column":23},"end":{"line":33,"column":47}},"6":{"start":{"line":34,"column":23},"end":{"line":34,"column":29}},"7":{"start":{"line":35,"column":23},"end":{"line":35,"column":50}},"8":{"start":{"line":36,"column":23},"end":{"line":36,"column":32}},"9":{"start":{"line":39,"column":31},"end":{"line":39,"column":55}},"10":{"start":{"line":41,"column":20},"end":{"line":41,"column":25}},"11":{"start":{"line":43,"column":18},"end":{"line":43,"column":39}},"12":{"start":{"line":45,"column":2},"end":{"line":74,"column":7}},"13":{"start":{"line":48,"column":6},"end":{"line":48,"column":48}},"14":{"start":{"line":51,"column":6},"end":{"line":63,"column":10}},"15":{"start":{"line":53,"column":22},"end":{"line":60,"column":9}},"16":{"start":{"line":62,"column":10},"end":{"line":62,"column":58}},"17":{"start":{"line":67,"column":15},"end":{"line":67,"column":35}},"18":{"start":{"line":68,"column":15},"end":{"line":68,"column":107}},"19":{"start":{"line":70,"column":19},"end":{"line":70,"column":24}},"20":{"start":{"line":71,"column":34},"end":{"line":71,"column":47}},"21":{"start":{"line":73,"column":6},"end":{"line":73,"column":15}},"22":{"start":{"line":77,"column":0},"end":{"line":77,"column":56}},"23":{"start":{"line":79,"column":0},"end":{"line":79,"column":27}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":33,"column":4},"end":{"line":33,"column":5}},"loc":{"start":{"line":33,"column":23},"end":{"line":33,"column":47}},"line":33},"1":{"name":"(anonymous_1)","decl":{"start":{"line":34,"column":4},"end":{"line":34,"column":5}},"loc":{"start":{"line":34,"column":23},"end":{"line":34,"column":29}},"line":34},"2":{"name":"(anonymous_2)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":23},"end":{"line":35,"column":50}},"line":35},"3":{"name":"(anonymous_3)","decl":{"start":{"line":36,"column":4},"end":{"line":36,"column":5}},"loc":{"start":{"line":36,"column":23},"end":{"line":36,"column":32}},"line":36},"4":{"name":"(anonymous_4)","decl":{"start":{"line":39,"column":4},"end":{"line":39,"column":5}},"loc":{"start":{"line":39,"column":31},"end":{"line":39,"column":55}},"line":39},"5":{"name":"(anonymous_5)","decl":{"start":{"line":41,"column":14},"end":{"line":41,"column":15}},"loc":{"start":{"line":41,"column":20},"end":{"line":41,"column":25}},"line":41},"6":{"name":"tagGit","decl":{"start":{"line":42,"column":27},"end":{"line":42,"column":33}},"loc":{"start":{"line":42,"column":50},"end":{"line":75,"column":1}},"line":42},"7":{"name":"(anonymous_7)","decl":{"start":{"line":47,"column":11},"end":{"line":47,"column":12}},"loc":{"start":{"line":47,"column":21},"end":{"line":49,"column":5}},"line":47},"8":{"name":"(anonymous_8)","decl":{"start":{"line":50,"column":10},"end":{"line":50,"column":11}},"loc":{"start":{"line":51,"column":6},"end":{"line":63,"column":10}},"line":51},"9":{"name":"(anonymous_9)","decl":{"start":{"line":53,"column":14},"end":{"line":53,"column":15}},"loc":{"start":{"line":53,"column":22},"end":{"line":60,"column":9}},"line":53},"10":{"name":"(anonymous_10)","decl":{"start":{"line":61,"column":15},"end":{"line":61,"column":16}},"loc":{"start":{"line":61,"column":25},"end":{"line":63,"column":9}},"line":61},"11":{"name":"(anonymous_11)","decl":{"start":{"line":67,"column":8},"end":{"line":67,"column":9}},"loc":{"start":{"line":67,"column":15},"end":{"line":67,"column":35}},"line":67},"12":{"name":"(anonymous_12)","decl":{"start":{"line":68,"column":8},"end":{"line":68,"column":9}},"loc":{"start":{"line":68,"column":15},"end":{"line":68,"column":107}},"line":68},"13":{"name":"(anonymous_13)","decl":{"start":{"line":70,"column":13},"end":{"line":70,"column":14}},"loc":{"start":{"line":70,"column":19},"end":{"line":70,"column":24}},"line":70},"14":{"name":"(anonymous_14)","decl":{"start":{"line":71,"column":18},"end":{"line":71,"column":19}},"loc":{"start":{"line":71,"column":34},"end":{"line":71,"column":47}},"line":71},"15":{"name":"(anonymous_15)","decl":{"start":{"line":72,"column":22},"end":{"line":72,"column":23}},"loc":{"start":{"line":72,"column":37},"end":{"line":74,"column":5}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":68,"column":15},"end":{"line":68,"column":107}},"type":"binary-expr","locations":[{"start":{"line":68,"column":15},"end":{"line":68,"column":56}},{"start":{"line":68,"column":60},"end":{"line":68,"column":107}}],"line":68}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":0,"11":2,"12":2,"13":1,"14":1,"15":1,"16":0,"17":1,"18":1,"19":0,"20":1,"21":1,"22":1,"23":1},"f":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":0,"6":2,"7":1,"8":1,"9":1,"10":0,"11":1,"12":1,"13":0,"14":1,"15":1},"b":{"0":[1,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"726feb15065aa070c2818e8d9d882e48b9853bb7","contentHash":"c0c0d342fda5f863357c769128ea68c2_11.7.1"}}
>npm version [major | minor | patch]
>npm adduser --scope-@ppwcode
Username: jandppw
Password:
Email: (this IS public) Jan_Dockx@peopleware.be
Logged in as jandppw to scope @ppwcode on https://registry.npmjs.org/.
>npm publish --access public
+ @ppwcode/node-gitinfo@2.0.1
>git push
/**
* Copyright 2017 PeopleWare n.v.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const Q = require('q')
/**
* Turns an object of promises into a promise for an object. If any of
* the promises gets rejected, the whole object is rejected immediately.
* @param {object} promises - an object (or promise for an object) of properties with values (or
* promises for values)
* @return {object|Promise<object>} a promise for an array of the corresponding values
*/
function object (promises) {
if (!promises) {
return promises
}
return Q.all(Object.keys(promises).map((key) => Q.when(promises[key], (value) => ({key, value}))))
.then((kvPairs) => kvPairs.reduce(
(acc, kvPair) => {
acc[kvPair.key] = kvPair.value
return acc
},
{}
))
}
// monkey patch object on q
Q.object = object
module.exports = Q
/**
* Copyright 2017 PeopleWare n.v.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* Quick hack to test conditions.
*/
module.exports = {
validateConditions: function (conditions, args) {
conditions.forEach(condition => {
let conditionResult
try {
conditionResult = condition.apply(undefined, args)
} catch (err) {
throw new Error('condition ' + condition + ' has an error: ' + err)
}
if (!conditionResult) {
throw new Error('condition violation for: ' + condition + ' (' + JSON.stringify(args) + ')')
}
})
},
validateInvariants: function (subject) {
if (!subject.invariants) {
throw new Error('invariants do not hold')
}
}
}
/**
* Copyright 2017 PeopleWare n.v.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* global describe, it */
const GitInfo = require('../GitInfo')
const util = require('./_util')
const path = require('path')
const fs = require('fs')
const Q = require('../q2')
const ConditionError = require('@toryt/contracts-iii/src/III/ConditionError')
const Git = require('nodegit')
const thisGitRepoRoot = path.dirname(path.dirname(__dirname))
// noinspection SpellCheckingInspection
const someBranchNames = [
'master',
'nested/branch/name',
'dev',
'development',
'personal/jack/experiment/subject-0',
'validate/the/vëry/long/𝕭ranch/ℕame/⩠',
"validate 1/some very∆∆ weird name-That does'nt_probably \\%2f _ _ __-- exists"
]
const preciousBranchNames = [
false,
0,
'',
null,
undefined,
'production',
'test',
'staging/4',
'stage/4',
'staging-pre-release'
]
// noinspection SpellCheckingInspection
const aSha = 'b557eb5aabebf72f84ae9750be2ad1b7b6b43a4b'
// noinspection SpellCheckingInspection
const someShas = [aSha, '3268d7bc82d16d840f71ddfb5c8f5e42dea16f3b', null, undefined, '', 0, false]
const someOriginUrls = [0, false, '', null, undefined, 'git@GitHub:peopleware/terraform-ppwcode-modules.git']
const someChanges = [
new Set(),
new Set(['a/path/to/a/file']),
new Set(['a/path/to/a/file', 'a/path/to/another/file', 'a/path/to/yet/another/file'])
]
const somePaths = [
'/',
__dirname,
__filename,
process.cwd(),
require.main.filename,
path.dirname(require.main.filename),
thisGitRepoRoot,
path.dirname(thisGitRepoRoot),
'this is not a path'
]
describe('GitInfo', function () {
describe('constructor', function () {
const path = thisGitRepoRoot
someBranchNames
.map(name => { return {name: name, precious: false} })
.concat(preciousBranchNames.map(name => { return {name: name, precious: true} }))
.forEach(branch => {
const sha = aSha
someOriginUrls.forEach(originUrl => {
someChanges.forEach(changes => {
someShas.forEach(originBranchSha => {
it('should return a GitInfo with the expected properties for ' +
'path === "' + path + '", ' +
'sha === "' + sha + '", ' +
'branch === "' + branch.name + '", ' +
'originUrl === "' + originUrl + '", ' +
'changes: ' + changes.size + '", ' +
'originBranchSha: ' + originBranchSha,
function () {
util.validateConditions(
GitInfo.constructorContract.pre,
[path, sha, branch.name, originUrl, changes, originBranchSha]
)
const result = new GitInfo(path, sha, branch.name, originUrl, changes, originBranchSha)
console.log('branch %s precious? %s', result.branch, result.isPrecious)
if (result.isPrecious !== branch.precious) {
throw new Error('Expected precious to be ' + branch.precious + ' for ' + branch.name + ", but wasn't")
}
util.validateConditions(
GitInfo.constructorContract.post,
[path, sha, branch.name, originUrl, changes, originBranchSha, result]
)
util.validateInvariants(result)
console.log('%j', result)
})
})
})
})
})
})
function shouldNotExist (dirName) {
throw Error('"' + dirName + '" is a git directory, and should not be')
}
describe('highestGitDirPath', function () {
somePaths.forEach(function (dirPath) {
it('should return a promise for "' + dirPath + '"', function () {
const result = GitInfo.highestGitDirPath(dirPath)
return result.then(highestPath => {
console.log('highest git dir path for "%s": "%s"', dirPath, highestPath)
if (!highestPath) {
return true
}
const testPromises = [
Q.nfcall(fs.access, path.format({dir: highestPath, name: '.git'}), 'rw')
]
let intermediate = dirPath
while (intermediate.startsWith(highestPath) && intermediate !== highestPath) {
const p = path.format({dir: intermediate, name: '.git'})
testPromises.push(
Q.nfcall(fs.access, p, 'rw')
.then(
shouldNotExist.bind(undefined, p),
() => true // errors are good, and what we expect
)
)
intermediate = path.dirname(intermediate)
}
return Q.all(testPromises)
})
})
})
})
describe('isNotClean', function () {
it('should behave for all files in this repo', function () {
// noinspection JSUnresolvedVariable,JSCheckFunctionSignatures
return Q.all(
Git
.Repository
.open(path.dirname(path.dirname(path.resolve(__filename))))
.then(repository => repository.getStatus())
.then(statuses => statuses.map(status => GitInfo.isNotClean(status)))
)
})
})
describe('create', function () {
somePaths.forEach(function (dirPath) {
it('should return a promise for "' + dirPath + '"', function () {
const result = GitInfo.create(dirPath)
return result.then(
gitInfo => {
util.validateInvariants(gitInfo)
console.log('create success for %s: %s', dirPath, JSON.stringify(gitInfo))
return true
},
err => {
if (err instanceof ConditionError || err instanceof ReferenceError) {
throw err
}
console.log('create failed for %s: %s', dirPath, err)
return true
}
)
})
})
})
describe('createForHighestGitDir', function () {
somePaths.forEach(function (dirPath) {
it('should return a promise for "' + dirPath + '"', function () {
return Q.all([
GitInfo.createForHighestGitDir(dirPath).then(
gitInfo => {
util.validateInvariants(gitInfo)
console.log('create success for %s: %s', dirPath, JSON.stringify(gitInfo))
return gitInfo
},
err => {
if (err instanceof ConditionError || err instanceof ReferenceError) {
throw err
}
console.log('create failed for %s: %s', dirPath, err)
return false
}
),
GitInfo.highestGitDirPath(dirPath)
])
.spread((gitInfo, gitDirPath) => {
if (gitInfo && gitInfo.path !== gitDirPath) {
throw new Error('path is not what was expected')
}
return gitInfo
})
})
})
})
})
/**
* Copyright 2017 PeopleWare n.v.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* global describe, it */
const Git = require('nodegit')
const path = require('path')
const tagGitRepo = require('../tagGitRepo')
const GitInfo = require('../GitInfo')
const someRepoPaths = [path.dirname(path.dirname(__filename)), '/repo/does/not/exist']
const aTagName = 'automated_test/tagGitRepo/' + Date.now()
describe('tagGitRepo', function () {
describe('tagGitRepo', function () {
someRepoPaths.forEach(function (path) {
const tagName = aTagName
it('creates the expected tag, or fails expected, for "' + path + '" and tag "' + tagName, function () {
// noinspection JSUnresolvedVariable,JSUnresolvedFunction
return tagGitRepo(path, tagName)
.then(
() => Git.Repository
.open(path)
.then(repository =>
Git.Tag
.list(repository)
.then(tags => {
if (tags.indexOf(tagName) < 0) {
throw new Error('tag was not created as expected')
}
// noinspection JSUnresolvedVariable
return Git.Tag.delete(repository, tagName)
})
),
(err) => {
console.log(err)
if (err instanceof Error &&
(err.message === GitInfo.noGitDirectoryMsg || err.message === tagGitRepo.couldNotCreateTagMsg)) {
return true
}
throw err
}
)
})
})
})
})

Sorry, the diff of this file is too big to display