pomeranian-durations
Version:
An immutable duration library based on the ISO-8601 format for durations.
1 lines • 225 kB
JavaScript
document.querySelector('mutation-test-report-app').report = {"files":{"/Users/thomasmayrhofer/Projects/pomeranian-durations/src/_generate_docs.js":{"language":"javascript","mutants":[{"id":"0","location":{"end":{"column":70,"line":3},"start":{"column":49,"line":3}},"mutatorName":"ObjectLiteral","replacement":"{}","status":"NoCoverage"},{"id":"1","location":{"end":{"column":68,"line":3},"start":{"column":58,"line":3}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"2","location":{"end":{"column":2,"line":83},"start":{"column":13,"line":11}},"mutatorName":"StringLiteral","replacement":"``","status":"NoCoverage"},{"id":"3","location":{"end":{"column":89,"line":25},"start":{"column":37,"line":25}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"4","location":{"end":{"column":100,"line":25},"start":{"column":96,"line":25}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"}],"source":"/* eslint-disable max-len */\nconst jsdoc2md = require('jsdoc-to-markdown');\nconst parsedDocs = jsdoc2md.getTemplateDataSync({ files: 'src/*.js' });\nconst {\n generateCategoryNavigation,\n extractCategories,\n generateCategory,\n} = require('./_generate_docs_helper');\n\n// eslint-disable-next-line no-console\nconsole.log(` \n# Pomeranian Durations 🐶\n\nAn immutable duration library based on the ISO-8601 format for durations.\n\n\\`\\`\\`\nnpm install pomeranian-durations --save\nyarn add pomeranian-durations\n\\`\\`\\`\n\n# Helpers\n\n${generateCategoryNavigation(parsedDocs)}\n\n${extractCategories(parsedDocs).map((category) => generateCategory(parsedDocs, category)).join('\\n')}\n\n# Handling parsing errors\n\nBy default this library returns 'Invalid Duration' when it can't parse the format.\nAs every application wants to handle those kinds of errors differently developers\ncan use functional composition to create their own verison of pomeranian durations.\n\n\\`\\`\\`js\nconst errorHandler = () => 'An error occured, our team is already on it.'\nconst addSchoolHour = pipe(\n addHours(1.5),\n whenInvalid(errorHandler)\n);\n\naddSchoolHour('PT1H') // => PT2.5H\naddSchoolHour('Invalid duration') // => 'An error occured, our team is already on it.'\n\\`\\`\\`\n\n# Upgrade to version 1.0.0\n\n- Swapped arguments of add* and subtract* functions, as they're now curried.\n\\`\\`\\`js\n// version 0.*\naddSeconds('PT1S', 1) // => PT2S\n\n// version 1.*\naddSeconds(1, 'PT1S') // => PT2S\naddSeconds(1)('PT1S') // => PT2S\n\\`\\`\\`\n- Wrapper got removed (please use regular functional composition instead)\n- Pomeranian durations return 'Invalid Duration' when it receives an invalid duration. It's up to the developer how this should be handled. This library provides a helper \\`whenInvalid\\` which can be used to handle those cases.\n\n\\`\\`\\`js\nimport { addSeconds as _addSeconds, whenInvalid } from 'pomeranian-durations';\n\nconst addSeconds1 = pipe(\n whenInvalid(() => 'PT0S'),\n _addSeconds(10),\n); // => PT10S\n\nconst addSeconds2 = pipe(\n _addSeconds(10),\n whenInvalid(() => 'PT0S'),\n); // => PT0S\n\\`\\`\\`\n\n# Precision Issues\n\nBecause date components (years, months, weeks, days) can't be converted to other unites without date and timezone information, \\`pomeranian-durations\\`\ndoesn't support them yet. To do precise arithmetic operations it is recommended to avoid years, months, weeks and days completely when using durations.\n\nFor more information have a look at http://www.ostyn.com/standards/scorm/samples/ISOTimeForSCORM.htm\n\n# Contributing\n\nAll contributions are very welcome. If you need help with the setup or if this library is missing \nsome features just create an issue or ping me on Twitter (@webpapaya). I'm happy to help you out.\n`);\n"},"/Users/thomasmayrhofer/Projects/pomeranian-durations/src/_generate_docs_helper.js":{"language":"javascript","mutants":[{"id":"5","location":{"end":{"column":70,"line":3},"start":{"column":25,"line":3}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"6","location":{"end":{"column":65,"line":3},"start":{"column":60,"line":3}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"7","location":{"end":{"column":69,"line":3},"start":{"column":67,"line":3}},"mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"NoCoverage"},{"id":"8","location":{"end":{"column":8,"line":7},"start":{"column":27,"line":4}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"9","location":{"end":{"column":2,"line":7},"start":{"column":87,"line":4}},"mutatorName":"BlockStatement","replacement":"{}","status":"NoCoverage"},{"id":"10","location":{"end":{"column":2,"line":14},"start":{"column":62,"line":9}},"mutatorName":"BlockStatement","replacement":"{}","status":"NoCoverage"},{"id":"11","location":{"end":{"column":77,"line":11},"start":{"column":11,"line":11}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"12","location":{"end":{"column":77,"line":11},"start":{"column":20,"line":11}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"13","location":{"end":{"column":77,"line":11},"start":{"column":20,"line":11}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"14","location":{"end":{"column":77,"line":11},"start":{"column":20,"line":11}},"mutatorName":"LogicalOperator","replacement":"doc.id === 'default' || extractCategory(doc) === category","status":"NoCoverage"},{"id":"15","location":{"end":{"column":40,"line":11},"start":{"column":20,"line":11}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"16","location":{"end":{"column":40,"line":11},"start":{"column":20,"line":11}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"17","location":{"end":{"column":40,"line":11},"start":{"column":20,"line":11}},"mutatorName":"EqualityOperator","replacement":"doc.id !== 'default'","status":"NoCoverage"},{"id":"18","location":{"end":{"column":40,"line":11},"start":{"column":31,"line":11}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"19","location":{"end":{"column":77,"line":11},"start":{"column":44,"line":11}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"20","location":{"end":{"column":77,"line":11},"start":{"column":44,"line":11}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"21","location":{"end":{"column":77,"line":11},"start":{"column":44,"line":11}},"mutatorName":"EqualityOperator","replacement":"extractCategory(doc) !== category","status":"NoCoverage"},{"id":"22","location":{"end":{"column":66,"line":13},"start":{"column":64,"line":13}},"mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"NoCoverage"},{"id":"23","location":{"end":{"column":15,"line":19},"start":{"column":26,"line":16}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"24","location":{"end":{"column":77,"line":17},"start":{"column":11,"line":17}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"25","location":{"end":{"column":77,"line":17},"start":{"column":20,"line":17}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"26","location":{"end":{"column":77,"line":17},"start":{"column":20,"line":17}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"27","location":{"end":{"column":77,"line":17},"start":{"column":20,"line":17}},"mutatorName":"LogicalOperator","replacement":"doc.id !== 'default' || extractCategory(doc) === category","status":"NoCoverage"},{"id":"28","location":{"end":{"column":40,"line":17},"start":{"column":20,"line":17}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"29","location":{"end":{"column":40,"line":17},"start":{"column":20,"line":17}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"30","location":{"end":{"column":40,"line":17},"start":{"column":20,"line":17}},"mutatorName":"EqualityOperator","replacement":"doc.id === 'default'","status":"NoCoverage"},{"id":"31","location":{"end":{"column":40,"line":17},"start":{"column":31,"line":17}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"32","location":{"end":{"column":77,"line":17},"start":{"column":44,"line":17}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"33","location":{"end":{"column":77,"line":17},"start":{"column":44,"line":17}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"34","location":{"end":{"column":77,"line":17},"start":{"column":44,"line":17}},"mutatorName":"EqualityOperator","replacement":"extractCategory(doc) !== category","status":"NoCoverage"},{"id":"35","location":{"end":{"column":106,"line":18},"start":{"column":8,"line":18}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"36","location":{"end":{"column":106,"line":18},"start":{"column":17,"line":18}},"mutatorName":"StringLiteral","replacement":"``","status":"NoCoverage"},{"id":"37","location":{"end":{"column":14,"line":19},"start":{"column":9,"line":19}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"38","location":{"end":{"column":14,"line":23},"start":{"column":36,"line":21}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"39","location":{"end":{"column":62,"line":22},"start":{"column":8,"line":22}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"40","location":{"end":{"column":62,"line":22},"start":{"column":22,"line":22}},"mutatorName":"StringLiteral","replacement":"``","status":"NoCoverage"},{"id":"41","location":{"end":{"column":13,"line":23},"start":{"column":9,"line":23}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"42","location":{"end":{"column":52,"line":27},"start":{"column":33,"line":25}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"43","location":{"end":{"column":93,"line":26},"start":{"column":11,"line":26}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"44","location":{"end":{"column":93,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"45","location":{"end":{"column":93,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"46","location":{"end":{"column":93,"line":26},"start":{"column":20,"line":26}},"mutatorName":"LogicalOperator","replacement":"doc.id !== 'default' && extractCategory(doc) === category || doc.examples","status":"NoCoverage"},{"id":"47","location":{"end":{"column":77,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"48","location":{"end":{"column":77,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"49","location":{"end":{"column":77,"line":26},"start":{"column":20,"line":26}},"mutatorName":"LogicalOperator","replacement":"doc.id !== 'default' || extractCategory(doc) === category","status":"NoCoverage"},{"id":"50","location":{"end":{"column":40,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"51","location":{"end":{"column":40,"line":26},"start":{"column":20,"line":26}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"52","location":{"end":{"column":40,"line":26},"start":{"column":20,"line":26}},"mutatorName":"EqualityOperator","replacement":"doc.id === 'default'","status":"NoCoverage"},{"id":"53","location":{"end":{"column":40,"line":26},"start":{"column":31,"line":26}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"54","location":{"end":{"column":77,"line":26},"start":{"column":44,"line":26}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"55","location":{"end":{"column":77,"line":26},"start":{"column":44,"line":26}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"56","location":{"end":{"column":77,"line":26},"start":{"column":44,"line":26}},"mutatorName":"EqualityOperator","replacement":"extractCategory(doc) !== category","status":"NoCoverage"},{"id":"57","location":{"end":{"column":40,"line":27},"start":{"column":8,"line":27}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"58","location":{"end":{"column":39,"line":27},"start":{"column":35,"line":27}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"59","location":{"end":{"column":51,"line":27},"start":{"column":47,"line":27}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"60","location":{"end":{"column":56,"line":30},"start":{"column":33,"line":29}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"61","location":{"end":{"column":56,"line":30},"start":{"column":3,"line":30}},"mutatorName":"StringLiteral","replacement":"``","status":"NoCoverage"},{"id":"62","location":{"end":{"column":26,"line":42},"start":{"column":26,"line":32}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"63","location":{"end":{"column":2,"line":42},"start":{"column":52,"line":32}},"mutatorName":"StringLiteral","replacement":"``","status":"NoCoverage"},{"id":"64","location":{"end":{"column":19,"line":42},"start":{"column":11,"line":42}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"65","location":{"end":{"column":25,"line":42},"start":{"column":21,"line":42}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"66","location":{"end":{"column":2,"line":53},"start":{"column":18,"line":44}},"mutatorName":"ObjectLiteral","replacement":"{}","status":"NoCoverage"}],"source":"const { homepage } = require('../package');\n\nconst extractCategory = (doc) => doc.meta.filename.replace('.js', '');\nconst extractCategories = (parsedDocs) => Object.keys(parsedDocs.reduce((acc, doc) => {\n acc[extractCategory(doc)] = 0; // eslint-disable-line no-param-reassign\n return acc;\n}, {}));\n\nconst extractCategoryDescription = (parsedDocs, category) => {\n const categoryDefinition = parsedDocs\n .find((doc) => doc.id === 'default' && extractCategory(doc) === category);\n\n return categoryDefinition ? categoryDefinition.description : '';\n};\n\nconst generateHeadings = (parsedDocs, category) => parsedDocs\n .filter((doc) => doc.id !== 'default' && extractCategory(doc) === category)\n .map((doc) => `[${doc.longname}](${homepage}/blob/master/src/${doc.meta.filename}#L${doc.meta.lineno})`)\n .join(' | ');\n\nconst generateCategoryNavigation = (parsedDocs) => extractCategories(parsedDocs)\n .map((category) => `- [${category}](#category-${category})`)\n .join('\\n');\n\nconst extractCategoryExamples = (parsedDocs, category) => parsedDocs\n .filter((doc) => doc.id !== 'default' && extractCategory(doc) === category && doc.examples)\n .map((doc) => doc.examples.join('\\n')).join('\\n');\n\nconst generateCategoryHeading = (category) =>\n `<a name=\"category-${category}\"></a>\\n## ${category}`;\n\nconst generateCategory = (parsedDocs, category) => `\n${generateCategoryHeading(category)}\n\n${generateHeadings(parsedDocs, category)}\n\n${extractCategoryDescription(parsedDocs, category)}\n\n\\`\\`\\`javascript\n${extractCategoryExamples(parsedDocs, category)}\n\\`\\`\\`\n`.replace('\\n\\n\\n', '\\n');\n\nmodule.exports = {\n extractCategory,\n extractCategories,\n extractCategoryDescription,\n generateHeadings,\n generateCategoryNavigation,\n extractCategoryExamples,\n generateCategoryHeading,\n generateCategory,\n};\n"},"/Users/thomasmayrhofer/Projects/pomeranian-durations/src/_generate_index.js":{"language":"javascript","mutants":[{"id":"67","location":{"end":{"column":26,"line":2},"start":{"column":19,"line":2}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"68","location":{"end":{"column":69,"line":4},"start":{"column":48,"line":3}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"69","location":{"end":{"column":69,"line":4},"start":{"column":3,"line":4}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"70","location":{"end":{"column":69,"line":4},"start":{"column":3,"line":4}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"71","location":{"end":{"column":69,"line":4},"start":{"column":3,"line":4}},"mutatorName":"LogicalOperator","replacement":"file[0] !== '_' && !file.includes('.spec.') || file !== 'index.js'","status":"NoCoverage"},{"id":"72","location":{"end":{"column":46,"line":4},"start":{"column":3,"line":4}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"73","location":{"end":{"column":46,"line":4},"start":{"column":3,"line":4}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"74","location":{"end":{"column":46,"line":4},"start":{"column":3,"line":4}},"mutatorName":"LogicalOperator","replacement":"file[0] !== '_' || !file.includes('.spec.')","status":"NoCoverage"},{"id":"75","location":{"end":{"column":18,"line":4},"start":{"column":3,"line":4}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"76","location":{"end":{"column":18,"line":4},"start":{"column":3,"line":4}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"77","location":{"end":{"column":18,"line":4},"start":{"column":3,"line":4}},"mutatorName":"EqualityOperator","replacement":"file[0] === '_'","status":"NoCoverage"},{"id":"78","location":{"end":{"column":18,"line":4},"start":{"column":15,"line":4}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"79","location":{"end":{"column":46,"line":4},"start":{"column":22,"line":4}},"mutatorName":"BooleanLiteral","replacement":"file.includes('.spec.')","status":"NoCoverage"},{"id":"80","location":{"end":{"column":45,"line":4},"start":{"column":37,"line":4}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"81","location":{"end":{"column":69,"line":4},"start":{"column":50,"line":4}},"mutatorName":"ConditionalExpression","replacement":"true","status":"NoCoverage"},{"id":"82","location":{"end":{"column":69,"line":4},"start":{"column":50,"line":4}},"mutatorName":"ConditionalExpression","replacement":"false","status":"NoCoverage"},{"id":"83","location":{"end":{"column":69,"line":4},"start":{"column":50,"line":4}},"mutatorName":"EqualityOperator","replacement":"file === 'index.js'","status":"NoCoverage"},{"id":"84","location":{"end":{"column":69,"line":4},"start":{"column":59,"line":4}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"},{"id":"85","location":{"end":{"column":70,"line":6},"start":{"column":32,"line":6}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"NoCoverage"},{"id":"86","location":{"end":{"column":70,"line":6},"start":{"column":42,"line":6}},"mutatorName":"StringLiteral","replacement":"``","status":"NoCoverage"},{"id":"87","location":{"end":{"column":81,"line":6},"start":{"column":77,"line":6}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"NoCoverage"}],"source":"const fs = require('fs');\nconst DIRECTORY = './src';\nconst files = fs.readdirSync(DIRECTORY).filter((file) =>\n file[0] !== '_' && !file.includes('.spec.') && file !== 'index.js');\n\nconst indexContent = files.map((file) => `export * from './${file}';`).join('\\n');\n\n// eslint-disable-next-line no-console\nconsole.log(indexContent);\n"},"/Users/thomasmayrhofer/Projects/pomeranian-durations/src/_utils.js":{"language":"javascript","mutants":[{"id":"107","location":{"end":{"column":66,"line":28},"start":{"column":49,"line":28}},"mutatorName":"ArrayDeclaration","replacement":"[]","status":"NoCoverage"},{"id":"108","location":{"end":{"column":74,"line":28},"start":{"column":72,"line":28}},"mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"NoCoverage"},{"id":"88","location":{"end":{"column":2,"line":13},"start":{"column":30,"line":2}},"mutatorName":"BlockStatement","replacement":"{}","status":"RuntimeError","description":"Error message: TypeError: buildTimeFinder is not a function\nTypeError: buildTimeFinder is not a function\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/find.js:165:28)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/transformations.js:57:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)"},{"id":"96","location":{"end":{"column":40,"line":16},"start":{"column":14,"line":16}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: absolute converts PT1S to PT1S"},{"id":"99","location":{"end":{"column":12,"line":21},"start":{"column":19,"line":19}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"100","location":{"end":{"column":50,"line":24},"start":{"column":26,"line":23}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"RuntimeError","description":"Error message: TypeError: _utils_1.createRegexBuilder(...).and is not a function\nTypeError: _utils_1.createRegexBuilder(...).and is not a function\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/validate.js:63:41)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/add.js:62:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)"},{"id":"101","location":{"end":{"column":50,"line":24},"start":{"column":34,"line":23}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"RuntimeError","description":"Error message: TypeError: Cannot read property 'and' of undefined\nTypeError: Cannot read property 'and' of undefined\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/validate.js:63:118)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/add.js:62:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)"},{"id":"89","location":{"end":{"column":4,"line":12},"start":{"column":31,"line":4}},"mutatorName":"BlockStatement","replacement":"{}","status":"RuntimeError","description":"Error message: TypeError: buildTimeFinder is not a function\nTypeError: buildTimeFinder is not a function\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/find.js:165:28)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/transformations.js:57:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)"},{"id":"102","location":{"end":{"column":62,"line":26},"start":{"column":32,"line":26}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"91","location":{"end":{"column":41,"line":9},"start":{"column":20,"line":9}},"mutatorName":"ConditionalExpression","replacement":"true","status":"RuntimeError","description":"Error message: TypeError: Cannot read property 'replace' of undefined\nTypeError: Cannot read property 'replace' of undefined\n at /Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/from-sql.js:86:189\n at /Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/_utils.js:78:25\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/from-sql.js:87:23)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/index.js:10:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)"},{"id":"94","location":{"end":{"column":41,"line":9},"start":{"column":20,"line":9}},"mutatorName":"EqualityOperator","replacement":"local.length < arity","status":"RuntimeError","description":"Error message: TypeError: Cannot read property 'replace' of undefined\nTypeError: Cannot read property 'replace' of undefined\n at /Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/from-sql.js:86:189\n at /Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/_utils.js:78:25\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/from-sql.js:87:23)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/index.js:10:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)"},{"id":"106","location":{"end":{"column":76,"line":28},"start":{"column":16,"line":28}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Survived"},{"id":"98","location":{"end":{"column":2,"line":46},"start":{"column":51,"line":18}},"mutatorName":"BlockStatement","replacement":"{}","status":"RuntimeError","description":"Error message: TypeError: Cannot read property 'and' of undefined\nTypeError: Cannot read property 'and' of undefined\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/validate.js:63:40)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/add.js:62:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)"},{"id":"111","location":{"end":{"column":35,"line":31},"start":{"column":21,"line":31}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"115","location":{"end":{"column":4,"line":45},"start":{"column":10,"line":36}},"mutatorName":"ObjectLiteral","replacement":"{}","status":"RuntimeError","description":"Error message: TypeError: _utils_1.createRegexBuilder(...).and is not a function\nTypeError: _utils_1.createRegexBuilder(...).and is not a function\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/validate.js:63:41)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)\n at Module.require (internal/modules/cjs/loader.js:1025:19)\n at require (internal/modules/cjs/helpers.js:72:18)\n at Object.<anonymous> (/Users/thomasmayrhofer/Projects/pomeranian-durations/.stryker-tmp/sandbox9974543/src/add.js:62:1)\n at Module._compile (internal/modules/cjs/loader.js:1137:30)\n at Module.m._compile (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:839:23)\n at Module._extensions..js (internal/modules/cjs/loader.js:1157:10)\n at Object.require.extensions.<computed> [as .js] (/Users/thomasmayrhofer/Projects/pomeranian-durations/node_modules/ts-node/src/index.ts:842:12)\n at Module.load (internal/modules/cjs/loader.js:985:32)\n at Function.Module._load (internal/modules/cjs/loader.js:878:14)"},{"id":"116","location":{"end":{"column":20,"line":44},"start":{"column":16,"line":44}},"mutatorName":"BooleanLiteral","replacement":"false","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"109","location":{"end":{"column":37,"line":30},"start":{"column":23,"line":30}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"110","location":{"end":{"column":36,"line":30},"start":{"column":33,"line":30}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"103","location":{"end":{"column":62,"line":26},"start":{"column":46,"line":26}},"mutatorName":"StringLiteral","replacement":"``","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"117","location":{"end":{"column":2,"line":53},"start":{"column":45,"line":48}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: normalizeTime converts PT1111S to PT18M31S"},{"id":"95","location":{"end":{"column":55,"line":16},"start":{"column":21,"line":15}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"93","location":{"end":{"column":41,"line":9},"start":{"column":20,"line":9}},"mutatorName":"EqualityOperator","replacement":"local.length > arity","status":"Timeout"},{"id":"92","location":{"end":{"column":41,"line":9},"start":{"column":20,"line":9}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Timeout"},{"id":"90","location":{"end":{"column":6,"line":11},"start":{"column":24,"line":6}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"121","location":{"end":{"column":54,"line":50},"start":{"column":24,"line":50}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: normalizeTime converts PT1111S to PT18M31S"},{"id":"127","location":{"end":{"column":28,"line":63},"start":{"column":9,"line":63}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: remove removeSeconds converts P1YT1S to P1Y"},{"id":"97","location":{"end":{"column":46,"line":18},"start":{"column":44,"line":18}},"mutatorName":"StringLiteral","replacement":"\"Stryker was here!\"","status":"Timeout"},{"id":"120","location":{"end":{"column":22,"line":50},"start":{"column":9,"line":50}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: normalizeTime converts PT1111S to PT18M31S"},{"id":"118","location":{"end":{"column":4,"line":52},"start":{"column":39,"line":49}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: normalizeTime converts PT1111S to PT18M31S"},{"id":"119","location":{"end":{"column":22,"line":50},"start":{"column":9,"line":50}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Survived"},{"id":"128","location":{"end":{"column":28,"line":63},"start":{"column":9,"line":63}},"mutatorName":"BooleanLiteral","replacement":"keys.includes(key)","status":"Killed","description":"Killed by: remove removeSeconds converts PT1S to P"},{"id":"131","location":{"end":{"column":2,"line":80},"start":{"column":55,"line":71}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: format '%Y' with 'P' results in '0'"},{"id":"132","location":{"end":{"column":37,"line":72},"start":{"column":18,"line":72}},"mutatorName":"StringLiteral","replacement":"``","status":"Killed","description":"Killed by: format '%Y' with 'P' results in '0'"},{"id":"133","location":{"end":{"column":34,"line":72},"start":{"column":21,"line":72}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: format '%Y' with 'P' results in '0'"},{"id":"130","location":{"end":{"column":40,"line":69},"start":{"column":25,"line":68}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: toPostgres converts P2YT1S to 2 years 00:00:01"},{"id":"104","location":{"end":{"column":65,"line":27},"start":{"column":30,"line":27}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"105","location":{"end":{"column":65,"line":27},"start":{"column":44,"line":27}},"mutatorName":"StringLiteral","replacement":"``","status":"Timeout"},{"id":"134","location":{"end":{"column":34,"line":72},"start":{"column":21,"line":72}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Killed","description":"Killed by: format '%Y' with 'P' results in '0'"},{"id":"136","location":{"end":{"column":46,"line":73},"start":{"column":43,"line":73}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Killed","description":"Killed by: toPostgres converts PT1111S to 00:18:31"},{"id":"135","location":{"end":{"column":34,"line":72},"start":{"column":21,"line":72}},"mutatorName":"LogicalOperator","replacement":"input && fill","status":"Killed","description":"Killed by: format '%Y' with 'P' results in '0'"},{"id":"137","location":{"end":{"column":30,"line":74},"start":{"column":7,"line":74}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: format '%YY' with 'P' results in '00'"},{"id":"112","location":{"end":{"column":34,"line":31},"start":{"column":31,"line":31}},"mutatorName":"StringLiteral","replacement":"\"\"","status":"Timeout"},{"id":"140","location":{"end":{"column":30,"line":74},"start":{"column":7,"line":74}},"mutatorName":"EqualityOperator","replacement":"number.length < amount","status":"Killed","description":"Killed by: format '%YY' with 'P' results in '00'"},{"id":"141","location":{"end":{"column":50,"line":74},"start":{"column":32,"line":74}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: toPostgres converts PT999H to 999:00:00"},{"id":"142","location":{"end":{"column":47,"line":75},"start":{"column":29,"line":75}},"mutatorName":"ObjectLiteral","replacement":"{}","status":"Killed","description":"Killed by: format '%Y' with 'P' results in '0'"},{"id":"143","location":{"end":{"column":86,"line":75},"start":{"column":56,"line":75}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: format '%YY' with 'P' results in '00'"},{"id":"113","location":{"end":{"column":30,"line":33},"start":{"column":19,"line":33}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"114","location":{"end":{"column":62,"line":34},"start":{"column":16,"line":34}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"145","location":{"end":{"column":46,"line":76},"start":{"column":26,"line":76}},"mutatorName":"StringLiteral","replacement":"``","status":"Killed","description":"Killed by: format '%YY' with 'P' results in '00'"},{"id":"146","location":{"end":{"column":61,"line":76},"start":{"column":54,"line":76}},"mutatorName":"UnaryOperator","replacement":"+amount","status":"Killed","description":"Killed by: format '%YY' with 'P' results in '00'"},{"id":"147","location":{"end":{"column":38,"line":78},"start":{"column":7,"line":78}},"mutatorName":"StringLiteral","replacement":"``","status":"Killed","description":"Killed by: toPostgres converts PT1.1S to 00:00:01.1"},{"id":"148","location":{"end":{"column":80,"line":82},"start":{"column":23,"line":82}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Killed","description":"Killed by: toSql P to "},{"id":"151","location":{"end":{"column":44,"line":84},"start":{"column":34,"line":84}},"mutatorName":"ArithmeticOperator","replacement":"value / -1","status":"Survived"},{"id":"152","location":{"end":{"column":44,"line":84},"start":{"column":42,"line":84}},"mutatorName":"UnaryOperator","replacement":"+1","status":"Killed","description":"Killed by: invert converts PT1S to PT-1S"},{"id":"124","location":{"end":{"column":2,"line":66},"start":{"column":47,"line":61}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"123","location":{"end":{"column":4,"line":59},"start":{"column":47,"line":56}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"125","location":{"end":{"column":4,"line":65},"start":{"column":54,"line":62}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"126","location":{"end":{"column":28,"line":63},"start":{"column":9,"line":63}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Timeout"},{"id":"122","location":{"end":{"column":9,"line":59},"start":{"column":32,"line":55}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"129","location":{"end":{"column":60,"line":63},"start":{"column":30,"line":63}},"mutatorName":"BlockStatement","replacement":"{}","status":"Timeout"},{"id":"138","location":{"end":{"column":30,"line":74},"start":{"column":7,"line":74}},"mutatorName":"ConditionalExpression","replacement":"false","status":"Timeout"},{"id":"139","location":{"end":{"column":30,"line":74},"start":{"column":7,"line":74}},"mutatorName":"EqualityOperator","replacement":"number.length > amount","status":"Timeout"},{"id":"144","location":{"end":{"column":86,"line":75},"start":{"column":68,"line":75}},"mutatorName":"StringLiteral","replacement":"``","status":"Timeout"},{"id":"149","location":{"end":{"column":79,"line":82},"start":{"column":59,"line":82}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"},{"id":"150","location":{"end":{"column":44,"line":84},"start":{"column":23,"line":84}},"mutatorName":"ArrowFunction","replacement":"() => undefined","status":"Timeout"}],"source":"// Credit to https://medium.com/@kevincennis/currying-in-javascript-c66080543528\nexport const curry = (fn) => {\n const arity = fn.length;\n return (function resolver() {\n const memory = Array.prototype.slice.call(arguments);\n return function () { // eslint-disable-line func-names\n const local = memory.slice();\n Array.prototype.push.apply(local, arguments);\n const next = local.length >= arity ? fn : resolver;\n return next.apply(null, local);\n };\n }());\n};\n\nexport const pipe = (initialValue, ...fns) =>\n fns.reduce((result, fn) => fn(result), initialValue);\n\nexport const createRegexBuilder = (regex = '') => {\n const valueOf = (value) => value.isBuilder\n ? value.toValue()\n : value;\n\n const convertToValue = (fn) => (regexBuilder) =>\n createRegexBuilder(fn(valueOf(regexBuilder)));\n\n const maybe = convertToValue((newRegex) => `(${newRegex})?`);\n const and = convertToValue((newRegex) => `${regex}${newRegex}`);\n const join = (...array) => createRegexBuilder([regex, ...array].join(''));\n\n const startOfLine = () => and('^');\n const endOfLine = () => and('$');\n\n const toValue = () => regex;\n const test = (value) => (new RegExp(toValue())).test(value);\n\n return {\n join,\n startOfLine,\n endOfLine,\n maybe,\n and,\n toValue,\n test,\n isBuilder: true,\n };\n};\n\nexport const pick = curry((keys, object) => {\n return keys.reduce((result, key) => {\n if (key in object) { result[key] = object[key]; } // eslint-disable-line no-param-reassign\n return result;\n }, {});\n});\n\nexport const mapValues = curry((fn, object) =>\n Object.keys(object).reduce((result, key) => {\n result[key] = fn(object[key]); // eslint-disable-line no-param-reassign\n return result;\n }, {}));\n\nexport const except = curry((keys, object) => {\n return Object.keys(object).reduce((result, key) => {\n if (!keys.includes(key)) { result[key] = object[key]; } // eslint-disable-line no-param-reassign\n return result;\n }, {});\n});\n\nexport const joinWhen = (compareFn, string, ...values) =>\n values.filter(compareFn).join(string);\n\nexport const leftPad = curry((amount, fill, input) => {\n const string = `${input || fill }`;\n const [number, decimals] = string.split('.');\n if (number.length >= amount) { return string; }\n const prefix = Array.from({ length: amount }).reduce((result) => `${result}${fill}`);\n const prefixedNumber = `${prefix}${number}`.substr(-amount);\n return decimals\n ? `${prefixedNumber}.${decimals}`\n : prefixedNumber;\n});\n\nexport const values = (object) => Object.keys(object).map((key) => object[key]);\n\nexport const negate = (value) => value * -1;\n"},"/Users/thomasmayrhofer/Projects/pomeranian-durations/src/add.js":{"language":"javascript","mutants":[{"id":"153","location":{"end":{"column":2,"line":28},"start":{"column":63,"line":18}},"mutatorName":"BlockStatement","replacement":"{}","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"156","location":{"end":{"column":62,"line":19},"start":{"column":7,"line":19}},"mutatorName":"LogicalOperator","replacement":"isInvalid(firstIsoString) && isInvalid(secondIsoString)","status":"Killed","description":"Killed by: addMicroseconds 1 to I'm invalid results in Invalid Duration"},{"id":"154","location":{"end":{"column":62,"line":19},"start":{"column":7,"line":19}},"mutatorName":"ConditionalExpression","replacement":"true","status":"Killed","description":"Killed by: addMicroseconds 1 to PT0S results in PT0.000001S"},{"id":"155","location":{"end":{"column":62,"line":19},"start":{"column":7,"line":19}},"mutatorName":"Conditi