{"_id":"@kavibios/node-etl","_rev":"55-056e1947af7acf0919cd55590dd2076a","name":"@kavibios/node-etl","dist-tags":{"next":"0.3.0-rc2","latest":"0.2.0","fix":"0.1.2-rc1"},"versions":{"0.1.0-rc2":{"name":"@kavibios/node-etl","version":"0.1.0-rc2","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"bf02961d7a209b3d2b168300911b84d1b6a7bdad","_id":"@kavibios/node-etl@0.1.0-rc2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-VSkzBV30SMxdoe3Ierrsn9GjUetn0SndVuneZYAR4EeHQbzzIEYK9jBrTWL6qNtHMKmQaG3I3BKfYW0933QQ9w==","shasum":"2096265cbe5f22a4422ac80f781748e90b495a3d","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc2.tgz","fileCount":25,"unpackedSize":31711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ2YrCRA9TVsSAnZWagAAAAcQAJGQuZ2D+b3H8dZ71fGl\numJMCIW6S/CJMfiMhmV7HoPCidZi/JHJjXN1VLIJfoPd+TozhLyqMl1ES+Pq\nVxs05ZkPAYmZSandI0mgBFdsecAv02Wd5pPpwDXxgtXyfhhMYH83Ns/e3db3\nrFy1WaD2zL90ZuveWBvjHMEoOJf+9nijpqBQs2vsaHTnD8zvkY2UvCmg/43n\nsvBRTwq2NvgMwDMCHV1Q83m9bX3w1PUwHYOcuohldP7ID1OpzdXonWTGA+A4\nnsOQvz7+1CvspHnuzLczqK2dE6FEPw5ra+bF2QuBBAi2R6lAuXcmlgD28NBt\nWake7fr8s0JtR3o3ujnkvfNGuD19T0wQY/MdoychrVJZcxBgNGoTWNYzBBAX\nn5MVUH9No1rIYyU3uUqt+3BmBolVd18Ds16sz2BwVRdwQZIKdOsObcB3iipG\nqbhneBK/6aRV6yab+EzJGo9d2GsDDE1ySxofiu2l4XPZF9MgD+kU1ItKW/pE\nfn247DcDVMRCRYqiZMkz9bvfSfbN966H58ayTe4TeU4nkGyan1cLHRA8Xi5n\nEq5XEeINXq+XT+rr2Vih4R++fx5+76NNPxEGgKXFAUiA8+8VHTNent6VAlCn\nj3Un1A25P8hiTUEb0Sg7y5pUIT9vXdRKkRKAGeupAx2NTX5xnuXTep4H5q0Y\nhglS\r\n=wetB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAWCsbHkhudbukSEd7PMJGqiTTbo++fkGWVUBhupKfOJAiEAsnUNQPN4Iql0QpcQo8kOARojE5WKl3pmC3iiAP0MSf8="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc2_1631807019796_0.44268777615356725"},"_hasShrinkwrap":false},"0.1.0-rc3":{"name":"@kavibios/node-etl","version":"0.1.0-rc3","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"363f285ceae0e47ee6e85dc40b017b06c9d80a91","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Structure\n\nJobs are defined in the folder `src/rules/<jobname>/` and registered in `src/index.mjs`.\n\nA job is a list of stages (which stages should be run can be controlled with the `--stages` parameter).\nStages are always run in the order defined in the job.\n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\nThe `extract` phase provides the raw data. It can be extracted from different sources - in this project it is almost exclusively\nextract from the `naturdatabasen` source. This is a specialized source extending the `sql` source with syntactic sugar for\ngetting `registrations` from a program. The `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database. This is often used in stage2.\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but in this\nproject it is typically an `sql` loader, which loads each item in the array into a row in the specified table.\nNote that the columns MUST be specified expicitly.\n\n## Extractors","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.0-rc3","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-FLbGZkAByWS2UYE17Xa1IPm4mN5NueiAxTjE+XfbawtVuByTaQPOUhnHnxKKGkRsvmzyoYtYscXw3kioeOz8TA==","shasum":"bae853e915bbf879be366f2fd3a10c0cc4b86839","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc3.tgz","fileCount":25,"unpackedSize":30433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ4HTCRA9TVsSAnZWagAARgoP/As78QYOobvFMC9CHGh/\nUNggiTbsPIDe+VXChblwms8SseLjINvzeJ5FvouwUPX61y6NJDjItajOWb2Y\nX+w8BIWGyQOlCslyPd1o7Pxn0rUgXz4frusUz889eGaghJX0Yv9eP14eeo3L\nXBx9d/9E/Boj6Kd3rYCLRds3RsTaNanzyd4ZVnel9DfGfafFxRaraSXTg7ci\nCyYzUnx/atXLyjAURw0+7R8pmE8JLB1pDlkQeb7wV2Rw0b75q+4aHx4PwZsn\nJT8IuO+FhBLIj93njlkuoILlgaMIT7QfXkTb00ZHEr4y3VdWMHBObLPtlcD9\n8Q5Hy6awiDF0g2lQvzfEPXy4e0mvO4fttAn4x+wnQ12cJdtpbomFU1HzAEzH\nbDAvcnzdMZZcOcCbLrZE0juPz21OiGh6xPesIvAPRSf/sNArutDabX/QaMvB\ncF7F771sr119i8jUnYxIBpKPxOCDnqu3xb8XC+1Uchz6GWTj33JaZvR/j49e\n2mY7iOeDlUeENOSDOr/wYi9flCQ/6m4XRtl6BgEn3vkdI8tLhDLF+R39wrKY\nqmeEaCfMBJ3L95ttl7pWURL8ObAH/KxrdoYtMHQh0kbU9d/j99mC59pVCN1B\nZKyOq3+SGKj+9yIjxsWiMMFxbHTj3kRXUzC13rVqyecJqwo0e/kGTri5pMok\nUvJz\r\n=p2J8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXcGRx/MAIQwPZNZBna/KQAfrukjWJr401i4y+365ytQIgXqK/FvbBX3//IO5R/TUjIhzleOLxx+ns8xNhEpsZyMg="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc3_1631814099088_0.4094198482198117"},"_hasShrinkwrap":false},"0.1.0-rc4":{"name":"@kavibios/node-etl","version":"0.1.0-rc4","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"278f80047f9b70d413204c3487db52986a6fd850","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Structure\n\nJobs are defined in the folder `src/rules/<jobname>/` and registered in `src/index.mjs`.\n\nA job is a list of stages (which stages should be run can be controlled with the `--stages` parameter).\nStages are always run in the order defined in the job.\n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\nThe `extract` phase provides the raw data. It can be extracted from different sources - in this project it is almost exclusively\nextract from the `naturdatabasen` source. This is a specialized source extending the `sql` source with syntactic sugar for\ngetting `registrations` from a program. The `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database. This is often used in stage2.\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but in this\nproject it is typically an `sql` loader, which loads each item in the array into a row in the specified table.\nNote that the columns MUST be specified expicitly.\n\n## Extractors","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.0-rc4","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-WSUjkXzbj8TkXRdffU0i+wUl0Sv0IeTjAHKURroykwBszRdgnUL2CTovqJ446LaUBVcCTZX8tvPKq07QVjtCFA==","shasum":"226603f75a5a695bd454e2e1325aea88f1cac4bf","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc4.tgz","fileCount":25,"unpackedSize":30158,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ4RqCRA9TVsSAnZWagAANSUP/jchyQSMdfCCAQr36oX4\n23gPFpq4CbKe6LX513w3D3QQ5LFpq0dfi+mWW9MuLiVpae2oEAWcKuT8uGfp\nQGeh8hHEUyHWNfdxHmFRigaVpB+n0q7s30Nr6C/aZr4nmSVQlbb2NLULKmeR\nwLvYOJyz/ILed+mXHAXNQcK4wUTRdVGGwLmPQIRnwFmH5iMNcyHQvbq8J8IR\nzkckkZOSpu4U81aAsoW+w1sN659fpiSSmI6+w4CPB+wPgWQJNyGMWd5QzwDO\ndDfoLox6k2LZMQMSLW1UUUWUBGg7SjnCo/e4csc8Cnjd050h97YBIqJeyqP0\nPIBCdIe4Wz9MRmbN9IMrno861YlQn+uS1ifh6mYIqy7xryNVE0m7GIhOvSqp\nkSLQSROwyj6v7UYqKCKnuycV1LZV0QDr/UldmfhAxum4JRi6kIfNaRRcBDQy\ne0HFtjmdaHD0TV238VukzCH2JWwKWVZgulrhN4WhruupXOQ1mWZXumWlgTRe\n4KAxpYPR7QAN9SB2sHNQBfiyO8BTmoOQ+rUfirHWJ0zMIIhCeNvBd9n8MeVU\nBlhvHODIBFPz92hlQQ6G8EpkErjL2L/UUuk8bCYPNZv0GQNIYy5oPkYeW4g6\nQjEI4EAuwT2EMPjp+6X16/geD79fi/CYqz1MnUO4d9dpU5cKUxf9Nqa0OsPB\nn8Yj\r\n=8y15\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzYNK8SVKi8o3p9D7oc7iDXFHWJcYHgp5EtqiU1MOYhgIgGJr7NvmPEqCxxCD0GGa8SA5qlrgacYdx6eT1b0jyC6c="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc4_1631814762012_0.32405279155938294"},"_hasShrinkwrap":false},"0.1.0-rc5":{"name":"@kavibios/node-etl","version":"0.1.0-rc5","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"8c6c78e870512782e7829f95c233dbb10a2d3ba1","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Structure\n\nJobs are defined in the folder `src/rules/<jobname>/` and registered in `src/index.mjs`.\n\nA job is a list of stages (which stages should be run can be controlled with the `--stages` parameter).\nStages are always run in the order defined in the job.\n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\nThe `extract` phase provides the raw data. It can be extracted from different sources - in this project it is almost exclusively\nextract from the `naturdatabasen` source. This is a specialized source extending the `sql` source with syntactic sugar for\ngetting `registrations` from a program. The `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database. This is often used in stage2.\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but in this\nproject it is typically an `sql` loader, which loads each item in the array into a row in the specified table.\nNote that the columns MUST be specified expicitly.\n\n## Extractors","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.0-rc5","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-kF12FtX1tfL3IkczoCN8inD4qnCn9jMY7OBlPV40C4JZ9di1RwsojZeip51lCs3QjvkpEir+3EmWIowiqTrCMg==","shasum":"8f151c91ae1d5f8a499a8a7db130fb18d461691e","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc5.tgz","fileCount":25,"unpackedSize":29643,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ4cnCRA9TVsSAnZWagAAAisP/2AEwdCFQKGnhpKtpNrV\nmn79aJBpF16nTRXJQTaIoTdQioRcuDHnRScO8oDgiiCwphJFVp1t82YmMyvo\nzel2plsCkpzd+8hw3Slrh2ktKYtH4kpQywMx+iE2GdYOaqRVQmNde9PU64LK\ntwlHewq3WiBopZ/MwZMn0yiu5h0cmcgYxESfomyNKJV9BBUE5uBnhCXtRxqd\nbMf21Dwa2qBKpfBNk/BRuD4c1xYMBkdAZ2V7E/w2Ac6s8CNqQIjlqn3JwDVw\nR6NJU9Ecb9xeGS2hMPIZEqhT5NM6UgidUZY6yKlV/m4UU08VrM2gvvgv7QcD\n2DD5sSQeJFUoTrR/salHb+GGQAciz3Y+adIe0JgH7VPlM9QTN3zZsGXG4Eok\nd6FCn9nxdfAlFp0jNMnfxyEGS4jw6xTe/DeqluGfu+1QXheisPVNAKMFGCYz\nERebuwCRQg9d42X01fUnNBC4bxjQqHSLZF4CzQWbNAWrefNcadtNBeIXdLQB\nR8cZHGvGROUjV5izIRfEq9HAhwHcxKTKYsTdnM4OHwONUyxV3KAsIvRhMnYU\nCfMb3FaqrNujQGYvfaFQA647A7JkM0XeL5ZU13TBIHMGa1pYUHWP3Hsqwxcs\nZ3hhFuAD/R91ZJl6XCxBf+O5TB03cfvXQxg9SG63sYG6Lv8CG/+v07NTtAgT\nnL45\r\n=nQIt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChsCERpNiVzHRRM5Xfd6/+/lf8DZ0/NmlaJ/ESnUMEUwIgYz5pHxvmAVCKZWR+lYIjarHeL7tA7egMAlsJe7P5JJk="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc5_1631815463291_0.5058708557646141"},"_hasShrinkwrap":false},"0.1.0-rc6":{"name":"@kavibios/node-etl","version":"0.1.0-rc6","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"723ba0677092d8bb184f5c7e6a36904843ccc011","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.0-rc6","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-PMEgJLFCrnifMp07+cyoRKxjt8qGzzQ4k/E5ivo2A0aJonYzOf2LugCO1ZPaiZlgBcaw1BoiIhgDyZzDuxrseA==","shasum":"28c3af795c92087945181aa3cc01ca026e452084","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc6.tgz","fileCount":25,"unpackedSize":30214,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ4lHCRA9TVsSAnZWagAANV4P+QB2O+9j15ZKaaq49yRN\n8Gz8x2p7ueGWvuMXjq2b0BrOqLZv+MnjhdUiYhqxaxL+yZxDqx4h0B6kgHj6\nECHQqhNxTxkH7emsuAwXe1MSA3U5EzU9ZSs2g+x/JhDHH7Ecn9fiD1CXxhel\n4pa5Q5lXG+6YFFYBBl7xCI3KJucLi7Qv/nvhA2O1ipCOx4Fm052oSkyyhNP/\nUbd2mNmsOVCEfPwznjEDKyByvnlv2zH9UsrgZCFrYD4LGYb04+Lj2eqgaEHJ\nuXQ6mjMCUV1uMPkEjNcqA7Inc3er9vdskvAYJjYZTnwz2N6UTARWsVrwEqaQ\nritz1AsbYG8wLZfbHlKtyp8hlbuIFOy3WMDGZZEwnrB4i/M0O9xy/b2PR1Or\nmJz3AyQHftHnpe7mAwvAL2v1xxmhFx5JRAC9o54cs8bCaGjUEB1+aiBcHKdU\nfL4H1ktwyhHbzl5pJ8FEgpBS+SyGsPT9okqFJQLtZ7C+wIGu0gWJXogCOOg0\nmbMkWE9JUpJQQBk4GVD+0wgE1gtp0/AvNzGLLgzWvCEWnOnuETT0m55mNYfj\n5Zjv9BwalTty2R3qUTXpyz+xBrYOU8IrqcnsgcSDN1typ/mdWyca0Yphhaqi\n8+jEacHj/hwf1HIZ3fllGf+oYjD+AEEup7vHTMo6wRYp5zqEP4ieVEJLJCgH\np5TO\r\n=M25f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDyQCs24l5cUI7tVSN0ZENMAasOWtG93qn/fMEkCK5buAiEAgCkGSHEwjyOBg6epmLCpDmalJ/UCgG79J66P8hJgsuE="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc6_1631816006909_0.2179137390634447"},"_hasShrinkwrap":false},"0.1.0-rc7":{"name":"@kavibios/node-etl","version":"0.1.0-rc7","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"ff32ea768633111578711bd2489795702bbaa913","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.0-rc7","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-mq3E1wvyfSweWt0hJ8XMa7ku5jN82CsxhnkcU9ldXltJxM/Q8HB2V1zrMcSdnZmjS5ZU+Mx19BJumdHqkWYdrA==","shasum":"cbc6fa56a704441b2cfb945396c0fa7f764a12cf","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc7.tgz","fileCount":25,"unpackedSize":30952,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFfNtiMGS64PAXhFqyIzuWYB2Jv/oY64LvxD1BUgzZ2rAiBbVEEi/96YXUJp5RCgmNQ0uJgh5KE35CUsd6QD8Ek7dg=="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc7_1631881058181_0.9023568838669687"},"_hasShrinkwrap":false},"0.1.0-rc8":{"name":"@kavibios/node-etl","version":"0.1.0-rc8","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"20b213db8cd7171d5b1d80164519c7ca10ec229f","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.0-rc8","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-GSElqzhHLwAnfJqJ/FT30nHO4oQnGxjKdazeyIdMfH4j7syP60p3UcOuwfif9pYY4hgAwdqoESs7GW9Dhf5nwQ==","shasum":"d197e53a9d1f7ef355bed60fc580e88a7449ef0a","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0-rc8.tgz","fileCount":25,"unpackedSize":30754,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF+2MHfzqFQrz2Mw9djXeGlb24yTfkWhVrc/y8IJ4YjQIhALOdLicTaI+l3tVCWPgEjzncaX47S2DUyUvQwxqcYIHI"}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0-rc8_1631883892566_0.03324010516318032"},"_hasShrinkwrap":false},"0.1.0":{"name":"@kavibios/node-etl","version":"0.1.0","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"5cc100de2564318c41b590b330e49c37403954bb","_id":"@kavibios/node-etl@0.1.0","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-UvcPjNXYV70vGa4/yn9yUjMDchKxcjXA7/oHsKFg1mBd9OliY2KacmH4Jouk+rPtCT2AEM5hLOiEHqdre22ndQ==","shasum":"8e1d7acabcd66e460c6e2307c1f01d02735025a2","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.0.tgz","fileCount":25,"unpackedSize":30750,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChrHWPoEXCWNMTIyUPexhj/GLOsbvRO5iI0w2TU60H2QIgWKgVlS3W4NDGGzrVt2q9zlsUD1lkSXTWo4blsDD2Gi8="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.0_1631883947992_0.021354477263975546"},"_hasShrinkwrap":false},"0.1.1-rc2":{"name":"@kavibios/node-etl","version":"0.1.1-rc2","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"891c88ad2b29ee349f57856538cbc902e79e6b81","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.1-rc2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-dlVtp+3KS8ijaInVOa2m0evc8/cEqdQCgCcJn+fENm1k5sFaD4qmFeNfBRlOtbAEfMvyyXWb78jQX26yCjhk5g==","shasum":"52b974a903e2babe78ba0bef524b91fa23caa171","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.1-rc2.tgz","fileCount":25,"unpackedSize":30770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEvg779AZj31quIDf1UvK2dj7hKgqqgBkDE4MYGMHvWQIhAJRKzQ4q9lKYtlNHl/Kb3cFeo03D2rfXpfdEHmuy65B8"}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.1-rc2_1631884467808_0.8706109468267971"},"_hasShrinkwrap":false},"0.1.1":{"name":"@kavibios/node-etl","version":"0.1.1","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"8c482c1fc5f2b3cd0518c6cdc8c7a57dd84e6d10","_id":"@kavibios/node-etl@0.1.1","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-EF+LF8Hb8G5AG/g3vnnpFunfwOybPP/9ZzIxtMxVnhLPzEffKAHdkjCXgOvcZDlLB81n8wc/q/LGKKucO/VKeA==","shasum":"6a8c4d045660f3a285ee39682ffd3eb67509ad35","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.1.tgz","fileCount":25,"unpackedSize":30766,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjBmx9+rLcRsp2SVDWk737KM8VDqeFXX5QDTqjuMCuwwIgKS3jJ87T66pA5NUAYsah5K+olJtpKgIuNsWxHUJvyEM="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.1_1631885055699_0.7986789359042474"},"_hasShrinkwrap":false},"0.2.0-rc1":{"name":"@kavibios/node-etl","version":"0.2.0-rc1","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"1ad74c0e74b3eee923e5e5bbac5141cb94c1bf20","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc1","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-W1Sa7dvWJe9Z2L1vOGKMtC+gV7PuijMoog1I6qzxZ1LFcR8MurGt3aPXMrivc81/eQewKRTItRTjDgHnc6jyIA==","shasum":"93cc58c0bc909d762ed3ca006b198f0bd371df04","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc1.tgz","fileCount":25,"unpackedSize":30770,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCczYtc/WoV+g1tkUiIr0y7gOYWQtJcUtuaZg7YIZ2t/wIgQ2g21l3lHcNUjOewEGg99jbqB/mBmdp2SbWu6mkAoCs="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc1_1631885098601_0.9830796397602419"},"_hasShrinkwrap":false},"0.2.0-rc2":{"name":"@kavibios/node-etl","version":"0.2.0-rc2","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"7fd46534340e0c51287f543bf9c9a5ebb6fd1ffb","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc2","_nodeVersion":"14.17.0","_npmVersion":"6.14.13","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-FZGXYB4SSwL5szwmCsS/Awaa+jJhiY6OvFswD/G+DnByW90+s0FUe1eFdtGnJHgrRK8OuLiVEu91UL1IBXG8MA==","shasum":"9b6afd9d0b85ba5c44d4ca3ce712d10a358d85ae","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc2.tgz","fileCount":25,"unpackedSize":31071,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIrHzKH4r8tsqSbvZdTNknU144N0fwtctU4ZQ2XQ77IAIhAJdkVq+Oe5lU+YwS7tpOrdfYMef5zjqqYb3tTVzHFcm7"}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc2_1632210748804_0.271490067629103"},"_hasShrinkwrap":false},"0.1.2-rc1":{"name":"@kavibios/node-etl","version":"0.1.2-rc1","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"ac6428dfc38fde2b91c50d3ded04d9b706c59af5","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.1.2-rc1","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-Orf4NKFQEskj4hSzIWoSOgbHkMbdACUQ3F45Kp0e9EVdrFDzMkig7e8AUDr9ZCKw2/g+Ji1qNUouWYIVGBcArw==","shasum":"607ddf2b987c2173ae8d93a01c7ddc65fc122835","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.2-rc1.tgz","fileCount":26,"unpackedSize":32195,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2F5rp2/u+xiyJ/iE65E4wfpJCm8BXhtwlAzW8mXMBjAIhAPPEED60q/KlTX20ZoiRkJlTLaOD8tlA8lDDXQxGMqUh"}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.2-rc1_1634045035663_0.6560397481838003"},"_hasShrinkwrap":false},"0.2.0-rc3":{"name":"@kavibios/node-etl","version":"0.2.0-rc3","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"0a39fb4af2e522186d749d4cd69f1e37cb7aefb2","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc3","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-OwZgBSMBLTmfz748Zd+th2sUMhxIE2Yql3EvJ7/GlPBpBWmq8TLyCTCWnqYfcfhCjstVr1vkg3771VklscPxNQ==","shasum":"5e6a7f7676c25a41598ac72222e1a92b59039346","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc3.tgz","fileCount":26,"unpackedSize":32195,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4MF2sgbweKrNpOtT1ct03gyCv4ekUvKPehkZBtmALlwIhAPeystBrHZisbxn6TBkdMUBmDIeLkdOO8z5JdCu2SGwL"}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc3_1634045107079_0.20943545931400087"},"_hasShrinkwrap":false},"0.1.2":{"name":"@kavibios/node-etl","version":"0.1.2","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"02920025f1adde65a8550a5b2f597cc260823cc4","_id":"@kavibios/node-etl@0.1.2","_nodeVersion":"14.18.0","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-twl9CUahP0ng4fPSQ5uJQDtHCaCwtoWaMZmNrzasHBWDzyHpHYsonEL9ikHHqaeHg/0TA7c52yPkSIDWzOgXEw==","shasum":"e7eb70e88e9b0b47cc12674de2c6518dc76d6f47","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.1.2.tgz","fileCount":26,"unpackedSize":32191,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2Nf/CRA9TVsSAnZWagAA7FEP/2wbg+ORywCQUuE1Um5e\nsEaqU5SY7FjoxeszYxI026Yvb1HVJ5om4BMmov58paOmqHTqD43h0YJZimDB\nOGFRXF2KlUEBQ/kmQ2/skieqJqvCt0QnV5tpQoMmuMWlEhUikNG6kYvFPvnf\niSuTx4ow2Qd6Wsz8VipFUN+0rl3znNAZ8wj9HJuwGJcgDakIOLEx9Q2QMQVV\nfHoUWu/hDplRYM/8y8ClTOLyRXtoElSB4026s+rGpsTFbAIcih1EmjpJVxnc\nlY1lEb10j+WJLhaJDsaPx6iqdaxuUTtccObzk5Y3OE4gqtzC6pDrym5Jmxtl\n9bQX8HjMx1nJwuUtHNjCXxuebUH+gAm5/IGSLBpZjHyvbhoDgEC0Tpg26Nuk\nrYeNBug43KEggGuUUngpz1LqptPNKL2xq0LGND0HEMMqeRuRMi7pTo6v8mxZ\n2sg7r6wAgnL6MFoA5sCxKfMSjh/m7tLLGp+G4eqVFV+TnG2Iz+grItuijD9Y\nO8n5CF4u79B/P8cfk8LT246Ra6xZdIvo8YpD36PkKW6Ah4F14yoGVjpmdG/3\n/9GAgL4EKxyidc++EbzYKcmonFpNjStoqdT/MqwL0X0+3fyieRzG/NpQiHT7\nK+2WRpuXJqHIeegfWsUdC+fo5BS4FY8FsaNthm/iCJSaskEcKlt6/218T12l\n7zR6\r\n=fmUK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnu48013KtXRzcE7LChpl+s2NRzKmwV8Q90rfjEK8C8QIgP694PcW3moCGAA4zfu1X1noj7in7ysH/QEKjoNGS3wY="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.1.2_1634045223661_0.9576012871332902"},"_hasShrinkwrap":false},"0.2.0-rc4":{"name":"@kavibios/node-etl","version":"0.2.0-rc4","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"8e20804f7e81314340ea8426f6efc268c3144e9e","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc4","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-pFtCI0AuZEg49WjlBKj1O6TkAV5zkNzCYjiWxbMA3+zqfFyyTAdnne9S35aWY3j4U39HhsLR5ObHE6nZvEiFlA==","shasum":"9752151382bbf72c34399d765c6b5fb54c03cb0c","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc4.tgz","fileCount":28,"unpackedSize":34685,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBhLakpa57vQeUNbOqSz3dO+i+Ck6K9ExtW1hS9VnbDzAiEAlN2B74N0mzzdmKQRmPVreRgTVKr6k0895eKEw82IMKM="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc4_1634116450386_0.012137778705413771"},"_hasShrinkwrap":false},"0.2.0-rc5":{"name":"@kavibios/node-etl","version":"0.2.0-rc5","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"021a3b0786359d248a761d0c33a5073942f8547b","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc5","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-UyoHWbZCN1jtacQfojdpplxhUxlb7YOZwd5T8xdbHxOThc9bqSJlOeoa+23ELbUWWDvRhkU/3evwj2fumLNbOw==","shasum":"5f2dbde3fc5ed9a803e127e9e236dadb70c2b1e7","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc5.tgz","fileCount":28,"unpackedSize":34687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAYvEwbufOPqN9S65M12+SHA8uZvtaL+iX4LqObYb1XYAiBMAmDzJDSvy8Bj37ExlsMsxDG1dlCyuY1N+YzaOqX8yw=="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc5_1634116852100_0.9139770822999971"},"_hasShrinkwrap":false},"0.2.0-rc6":{"name":"@kavibios/node-etl","version":"0.2.0-rc6","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"85dba0d572cb9a6cc9a14177f774a84d95d00829","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc6","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-qqfyu4x0njiHd+0CVwGjZz7/1ZWMXkHjdQk3rn0cLo1oaYOSv7ypBicSnBkZ7x1R+qT07RPD8d425ROrj2dsPQ==","shasum":"bb7c4c71c424b6dbeac45fb45eac73f17b7e6b25","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc6.tgz","fileCount":28,"unpackedSize":34710,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFbQt5ZvN8u+Fp5cGjkDT7UACgzZ+kR3mHp4H205g5nJAiEAnOqKUlkFWOnsoPbMGCLArMl5PQySSBiXprVk5vsgsZs="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc6_1634118537473_0.46768393614904213"},"_hasShrinkwrap":false},"0.2.0-rc7":{"name":"@kavibios/node-etl","version":"0.2.0-rc7","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"270c5a765ba030c612b3c1a1622fae9954081ccf","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc7","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-Fc/kUKT9QY+SvwXxnvQawN7tEYZyf7wJ5SX9PTqV4Pd/faczkFn70cL9UzHAvNUrr6Mjgc7BJR1CVYXmBglJGA==","shasum":"a11c432297f379fc84792e1f65b251451ddb3bb8","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc7.tgz","fileCount":28,"unpackedSize":34737,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCu4mmPMU/SVLC6valiZVJNInuLMtrAqxB7vMceHgzYCAIgXEVOpfSBxrIOK+T9+Hmos57ScooBpGucuN7/bwars9c="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc7_1634119307654_0.2656019362887876"},"_hasShrinkwrap":false},"0.2.0-rc8":{"name":"@kavibios/node-etl","version":"0.2.0-rc8","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"81b601f8599b6914dafa939bf4cf50d2cb3efa24","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc8","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-Qya8gHJx3iR6aNdbpxwzuZbM21+AVoDRVVLLwj7xpO8TrTR/zMyoHVmd9/tY9g51q9Su0ETthAr4kBKfHfg4kw==","shasum":"7654e7f15500faa6ea1a1be246dfb7fb85a9286b","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc8.tgz","fileCount":28,"unpackedSize":34820,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBGRz6FVzNQIQZ+Vb2y3Dc22gEcHtY7yqVHE5VbhxajLAiAILemT7XE+jhbSAPfIYv2a65phHKGaOLBtO5ELql2k0g=="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc8_1634119495641_0.3856458438862602"},"_hasShrinkwrap":false},"0.2.0-rc9":{"name":"@kavibios/node-etl","version":"0.2.0-rc9","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"4760c4f2e2be204b48b82067fc25b8e3b8e5e9c2","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc9","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-P3/Nj3TDrMVvNflExaw5p2gAO/t+aze+yR1hOTGfOP3d+k/ljuKbHIXmtA3A9fOmH0U4exnknvvbwCWvPUfqPw==","shasum":"a4c97c3e8a634ba155bc36a5b88d6b020c73fe69","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc9.tgz","fileCount":28,"unpackedSize":34865,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjadjGH2epdi5oRcu/wR6w/A45pZX+MHb7mndJ20yfOgIgLDMO4wftNKEr16h6fPoLIHfRs8ecxU3kAp8mwYst4/8="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc9_1634120450085_0.22710564633422536"},"_hasShrinkwrap":false},"0.2.0-rc10":{"name":"@kavibios/node-etl","version":"0.2.0-rc10","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"4af8fb77c428f69946efff7490a4cf62e8abeea3","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc10","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-bB1lXuVNyFcL85uQY/HCuE4lK6P3bPqvTY5guz6HyZNpj1zN6J5WWpL3GxpPnQ91tMa/F2MN+onMKN7QRANXxw==","shasum":"2819697ec118afe2ce07db80d6fe8590532de181","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc10.tgz","fileCount":28,"unpackedSize":34897,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC69fYSEouffRFitLSEISPO5dKwLrtLdzqUwi8MoxAQXAIgPua/3UaQZD0152EDtCq9WBI3dMQeb4gmYQ4Vuh1DezU="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc10_1634120573175_0.3651300688269563"},"_hasShrinkwrap":false},"0.2.0-rc11":{"name":"@kavibios/node-etl","version":"0.2.0-rc11","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"5765d5f95161ba8b3addc291564c1b14fdf3209e","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc11","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-Q+rLl10rCLO2QnRz7A7ALBoLsWLztpaxD4CCs0bNXjnMBNKmCPUJ+RoY4k/aAFInQRX3wFR4k6SOUtNmc24Q0g==","shasum":"d7111cc606f753caf5bf0e4b9d4ab61ff802dca2","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc11.tgz","fileCount":29,"unpackedSize":36773,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDAdD3CqobPyHy9yZYSCOaGICpG+TSarQ6jKqJjDRXtsAiBIfL30w6fpr7/CNDQ2Xtue6AADdiFO6ddbcToEj3et6Q=="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc11_1634203419195_0.5491267831784541"},"_hasShrinkwrap":false},"0.2.0-rc12":{"name":"@kavibios/node-etl","version":"0.2.0-rc12","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"c371e58225880c187e4e877975355a364153b196","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc12","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-XlcrjhY5BzIVIelTTJvFgL1aQ66aWzlrU5tsyvdp/CMunKsPzBVj/SY8bcDNkIRDJaGssVHNgrphn15E+g+ryA==","shasum":"9e1fb61de5c20fb8c43b4973c2dd8ffdd65782df","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc12.tgz","fileCount":29,"unpackedSize":37173,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8nR8CRA9TVsSAnZWagAAx6MP/j8WlHdYz/aFm7VFlhZh\ncMceK9oY/3a0N2eOfsvZiXxwjLN/647gC7JP+lnyCRMp+6FYN9TOPrQSEG98\nvtc9S0VK4lyw31sfMT8VrKZtVoV8VZJ1tUkmdSWGqZgNPFDGlLgBk583YuK6\nx1ucXcRZaej1ytp97rvQfz+rVjEwLS0u2VHeIOqgZKkNFBQR+MdXK7JEX9Rm\nPTBtL/K6gBtMeHlHXgDB0UUYZumFNShf+89fPDziORE0+POq2erRLyfd1Ybt\nG8n8KWQ/1qYNIuo00hc4fJmwHCpxK8thVLg2Z+0MUDns6rmq6+mf4itch7TZ\n6uxJMVQwgQRiHz/Uru/x9Mfm4ho4OP/qG/5l6MC6UdwkG4rZCYXtuecpH5Dp\njEcU5wSekOGflyVFsbjh11M6p8y5eQhv8GjwQGkJVVivHwf9hkLxSG4LeUpt\ndT17ovsjCglvDlUUiB14l4IBJfErZyaot3veiYw32UK9Mafky1KH1+3yNTPb\naYl3KAHiXpbKfewMDkZWsFIJRxErwU6PGLwR/5hLFxI9lhjFsE4/A7rmlJzM\nwaDMf2uY3JD24KDZqhANkmuN+LbsTJkjFNLpZumlsQf23Fojhp8pGW/cE61C\nbDqPXh6MNXXVGwZScoNRfUAtGNdijvCDzUbaeOfoCWVwKK8EM8rPjIxn0kQL\nx29U\r\n=6hVr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE3xSPHP53kmWaPxjhGczFyiTy9vjuc1PvyZwaqkFZGQAiEAx/yDsE45YLhnbpuYSfcN1mRhRGX85ILKT7Q2/70773g="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc12_1643279484224_0.7471337985550832"},"_hasShrinkwrap":false},"0.2.0-rc13":{"name":"@kavibios/node-etl","version":"0.2.0-rc13","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"dbe22f290bdf79f889b2a63b9e0c6ac03ff0bf11","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc13","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-z4Dx286vLxAi1BB015nTy8un9x4/1P3HY17gcACEGBiZzCZy9ItqThUN+5ERUBdV1gr0429fxtwiN4U/piZPcw==","shasum":"f0a205fe50516bf1224dd5848659fa08a02b5b72","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc13.tgz","fileCount":29,"unpackedSize":37267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8qAVCRA9TVsSAnZWagAAtKAP/1G5WE0lI9lV2xCKAT8G\nFmF5ZJEx/1T8YIsJvmHAreXa25YWtRV4Nf3loBFf6Wl6m+1KwWZXRwpKUkyW\n6RkYGKVvLdwbgqAgqmYwNJQuV4VQf0YEGoa9ceWRjvDhjvjh7VhOnMHdFau2\n4ls783a+jO6xKydj+B2EzXchezHwllk3/B7j4MgcYkWXFa2QFrKY1Bdz7V4k\n5sqrAcLQgqA2dymunVGL+fZFJ2lB3xWu0YpaocSCsY32Mr2g5gCAByxd2k4/\nxYr7bAkd8iPauD4DXrEx8E54s6sM7gLynznaW7xEALsGHVWxlp0XrheZx3Sv\nNXQnLPy/xFPwzvtGBLEjthpUKBWMNrznUDjzhRdXGIUETw6Zpo9NrLrz92vV\nyEMZaPJ553m+kzTeBYTEHaOcJeBP4nnFzw2qq3sO9eUaFH8XV1tgKKUoX840\n+/hM43938snBDWBRcqSqeAOVBrH0RFgbWbt1ZetcErn+Dx4sJpKY2T141k67\ndy+N7rcXNz4AInppJhKD742NuTKUoFRXZnSgMFBC7AC/3jemKruiafHJOvP3\nYCvWiFdcG2dTyQdAXHENEk88BzDBLjpZPQ/z+EIEh7RLLEayy8sMvyg1hSSo\nrbeQvOBvfrB5kSIsV5Jx7/1AKXsD8YVakEDDeD+q2JTmmM6ojDbfg4wY2wmo\nsxj/\r\n=+F1R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuGsCyjkwuO+KMk4ix345E05nDWEpH7ZmOmj43TUvo8wIgBitRIM7Z+2C5mMHTC31svSJekNvVVfsx3ITMeINI6EI="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc13_1643290645001_0.45875208342024765"},"_hasShrinkwrap":false},"0.2.0-rc14":{"name":"@kavibios/node-etl","version":"0.2.0-rc14","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"7d6cf6ec7d3b0f1e5404d34e693de8cc9d27ca12","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc14","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-DKIqlviBK/waUXh6YigCpYxeSqZeLXWyQArfuqxJTqven/aF0UCbBs7/lBWJakKGzHOX5lfgLWozCWoic8Rcrw==","shasum":"9316f070c1cc5dbc6bfc224e227ea96e4d0126dc","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc14.tgz","fileCount":29,"unpackedSize":37274,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8qDaCRA9TVsSAnZWagAASGwP/RoPXBcYjDlC9yGstySc\nMB9VXDsIEW4B0SuvQVJNyoNgtSl1rmv+tD+wCWIfUVTAV3iiZ87qi21BOCMB\nuWzwTCi6g+jsGQbawR3U3DAJ8zsFdeHdKkHWJJw3T0GmAq2fxm2G1OkC13lf\nRMT06qdXAux3GOE1JAOX+7FsGL0GvdI2O8uLEd5gSpXWK3ZRspk+PX54yYz3\nUXPgO0VQ/Z0jBVJm8/ZoCGhrj0r/eeVuFQGthr0L3GgR1G452rGkfP2uliB/\nLK4K7piP6V94ouW4+iZUuj5EnkkJsZ4vfjMPGTi0a3xOa83e0PBZFcYvqEFB\nyUoIKSfEIXUNLiAtGFFPMEJb/neHWcci8Kgks2M0di59D/33DPH+eYSkhi9C\npQ4mol6SMZd+hR4OyOzUvxolXYnLVejXKYWC27uZxeIsyOrVHdncFXD6ki/F\nAjqAdFi4iQuVbTbXPUIzdM7iFHPW6bso/8kgfyySLRmYmeUp5m8HegqWy9JB\n//YPjNsRRDFQ9LOHcWZIBa5gxfDsGW/pyrnnao/kkMZpHez1EuIMP0S4+R7P\njOtEStcdA/Ynaf+aWsTUas3tfVKM2Y+eKgycSZy1PnXuVTbCX9hoc3e+Huj6\n9UerTrTlo/xixCqf96xat2r4BkvzH2LkCL4QkzWqw2sr7zk+pcgWSRCNMeWO\nxV50\r\n=lcx/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENeZ2gbQqeTxiQGhc5OxTpHGimr7U03WOqvfn9mtHRgAiBjdiTI+78Zsn8qXQ0xvRNl1CiJODS81c9gpFGKnO3upw=="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc14_1643290842048_0.6167037828554995"},"_hasShrinkwrap":false},"0.2.0-rc15":{"name":"@kavibios/node-etl","version":"0.2.0-rc15","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"c07be30b685d2171582ccd02c18f619eb2e806a6","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc15","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-GyfdVl/vxWhSh2Y/4pYZIcyTJcYSRcr8AxoUXNcvHSd671g1/JgjrC0esv3bde1j4wsfWCFn+jM+A4y1zqzpQQ==","shasum":"0c8ba1b6c4b73e90dfdc2461b779a1c239fe8bff","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc15.tgz","fileCount":29,"unpackedSize":37434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8qYSCRA9TVsSAnZWagAAWm8QAIwyggGyUpmTRannVJzQ\nT1Wvp+2yBQKLFAdAzi3pxcBq6NOWZJjT3Eck8GHx56E0w3tiX0m6e5ebLJS6\nWOlBrjxIUUWpkf62cEJkGcuxqzZ7ICZ53Yxmkrc1COolRrBs+R82fno9+jI/\nbTP1xDuiAipZBxwoe0TUBEs0HUyBLKCttjSTnRI4AcQPlbXItVdOPHD9DJXF\n5ToWyHmFORIkxXkrCmn7VfeWizFm6l6KzcuBfEPdb6/SLYR8bS1/FduwuIKf\nUcN8POGZh1APD9TBC1rdHXdk1aA7nnBE3FUbD9VIeH2sf9Y/MZnQXomyu2Sg\nFewoOLQzv+Mrbd7VBC/q9DbgVApIvKbIoKI5/F+oq9DAe8ALAXCsVFZKgm8y\niU+omUMnz1viNKECnl9ktmtMwpZoYOQ25w/c6gHRCztaScJSg2cmmnnAIa69\nuE2Jqw8ghYuKrO7STIlcrB/hBacCy+yTAbiwumXiuEK3jA7IByEvc9VPOrnK\nEloJaJNKDd5TBuBl2V5BcaBn5TyBwRpGD7evp7mK0e7K/Fn/VZosP0a69cHH\nnk/YBnwo2cU1+GvjczjcjtE2tkZBQ7gXFgOlKFT4T4N5gvKubJrBo+HisdSj\n1AVkke3vI8WwUpJpJ/XTnL9IRFCkoS3qPtW9tOgaJK5ZDmaPJ6A7pCB5/YO9\nr/o/\r\n=RrWE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjSQEKTaR5cGFDhM8LzDayTpxGkTVoS5YsenMccbhYgAiB9Gr1cqCrlX61q5g+YhWPVbkGc74ImPPB0YHGDLojIaw=="}]},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc15_1643292178730_0.4801307009273672"},"_hasShrinkwrap":false},"0.2.0-rc16":{"name":"@kavibios/node-etl","version":"0.2.0-rc16","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"f88b84614be1725c82f88a751fd30f2ee478f1de","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc16","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-5SrKNKhOdJkX9PE2eaElWerqIKZi92c8RE169P1dDZNlBRIP6726MqY6Sa7615Vzl1GvXzQeAv0g87c6N0xo9Q==","shasum":"c731fa576dd5919e73730ed2ec9606bf9b9e418a","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc16.tgz","fileCount":30,"unpackedSize":38907,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3ZcAzTLJhyof/aynN4iXw2vWzt0Yjmu8FpLMBPmuaKAIhAMXcwVxZewQ7/HJCjKxuJImcsYVb8ls2LTQRjEQWNcg4"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ8Q7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqjyhAAo6OtjHdHAukw4NrP8694vRT3Y0+VyJv/aN2xCEe6kWcu1KjA\r\netTl96ApFEKviXjBCivWkSkWUSAZyZcssigNVFUVyDtYVt/VGZ+b4SuhUWOx\r\nvGEH1M5HLk620Qq4UOtFAnTvTFyo7mqgSTT4DokGgON2F4N+EoEmdU0OpJ4J\r\nQ+hF5xy75/zGlM73F5/rxoxYQtAkYPSfHzjZpfxA/HHXI+HZxbo5DcRhw6Jk\r\nN4a3j4ERVGdJAR0Vt6KWiRVYpkXelM4QI3JKixZ1Ufel1aqxrL7X2VLdDVIk\r\nAsUuV1Vif7fgRRuEIjOxHrN8FKQt6QT/hZgOZzGSh0RB2OK6khTM0HkMuas9\r\nZpMt7rxB1yZxI7afhIzJS+6V3T36k/agF4RdjNhJzw98XRDpGry9lJjCB7DL\r\ncdW2D2L5QLRcQY+VrIOavUqLkBPoo3WF2DdbYnqwOmzHQQwjCdnLdPz7OvW4\r\nNwbH4LwUt04jJM/s81beC6p95644sGfk92l8lx3ygxI79l6fSX+MVI1HNFgx\r\noefJskRkNbLPX+XuXRsq34Edr9O3ER3kUi+fNXW8y2B+V2449pCTqaGuMiW6\r\nzj68BKHq3VuW2lR9w2Xcgzqu6712ULqrpCBc9luXl3X8n3OoU8rIxVYKPhtO\r\nVG5bXOQzs9YOTf+coP226A1esu+YX7ltJuk=\r\n=MDQY\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc16_1650967611686_0.8175208491812558"},"_hasShrinkwrap":false},"0.2.0-rc17":{"name":"@kavibios/node-etl","version":"0.2.0-rc17","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"9046a8b5538e8e230a13f23184d6b7cf1b402b15","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc17","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-ACFoYx9MGuicQfOcqdz9fLqXrgEBRIwkyiQd8EDsn481Y13PsF+Z/mJmGk7pKNypofkRbsrvVeOD2WApgcmZiQ==","shasum":"42af7b2085efd1b91347d66dfb9f7a9eada3a549","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc17.tgz","fileCount":30,"unpackedSize":38782,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGDsW992rCidtWKjREoYUFMYxHjhb89xOZlRg8FP9zrsAiEA60WAjc0fg8BFIar3OIScyIbOQmYtP0AvgalDCF7jNjk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ8ZvACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrmKg/7BbONliiYmeag0rKua3bQ9YuHQ4iKABe8BIO07mGTG0j7HKTq\r\nVYUTihTm0QvT2EMOkMd2QcfkSCE+Sssi5KCg/g2dCYvdXyKN59ByhhMdKFKm\r\nTXaWBk+r+6X+sqHnydEw1xUbJehbAj+ynBZeEx4v3efdahj8rtYufqroCf8A\r\nf5GAUBQkmaaug0i615dBBuS+xcIHswtUPWcE9ci+PLcz1dE7LTDmAbvFyH5v\r\npzMbWc5beijQ8RvWETNdCdcUghNaGw5CXmjiABwQ4gDTkaUt9roD+VbSh4x2\r\nmvnIX5G4z34vJ5QhHjxaMvsybsu51TBhrfnlqWFXF1JoHZ/jOk7s5O/FpmQ0\r\nTpTKMb8bxZXSocYIDKA3tFls3cOZcmUU0pzqviJG8J7OvH06hyu5CJBi+1ZK\r\nhp3f1hotMrYBeK0sVum/dLjgY3VKak8vOhZYve6bj4eMJZQX712wfYFVF5CR\r\nX14n78wyWLG/Vr+7nBSfz5+h/vL0virEOohd57HbUCYH5vON8+uH7UfpCuZb\r\nxKAIEX6DorYKsI1LdsgKg0PhDkfntGQyxnyrhRsg21jvBvGcnjy9PrO7aTDw\r\nsdUM/smw3t25a6adYJvmGhwTDAuQgRHFxYEbuXn1E5FdAEV0XPQf+ELdBBLL\r\nbFG5pFindnXzu4VsAbPbd6xKfmHSpFyVUAc=\r\n=noAw\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc17_1650968174858_0.6953550315446282"},"_hasShrinkwrap":false},"0.2.0-rc18":{"name":"@kavibios/node-etl","version":"0.2.0-rc18","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"4db1b2b2f38221fabc895fee008ecfee1707ff99","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc18","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-8N7EC7bznCTpEpDi0bRwWrqRGLCoCy9BJzt9QWSg+AHMfo2YkjPQHsfqz61PsUYN2PLe31Pjr2vHQkrJ/BHnxQ==","shasum":"f64c8741e738564745afe409e14967a80cfd70a7","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc18.tgz","fileCount":30,"unpackedSize":38935,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgzxIor3X5yAjW7uh8yRf9BrMyH2ux0rIvAbE3Q/rV0AiA7EEGFdxQOy7Z3Y3bXNdGKpntUunGOhDm26ObNmAA72Q=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ8o7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrZnw/+PtSl+jvuDl4v4xhn50cS/9BVruGOsGS8I/NQu/elLuJodUgR\r\nl2CHVp8+nSCgXO5yWKiz4EVOxrNLdruxgS0iBU8Miw5jQ4yHmchSCanGlmeh\r\n1J4dF2sYiL9XLriHapTzPxzB7TXl8xoiS8TMNk+8E1zrQ3Gat2U5W5AFVAz6\r\nfrJoP6xIpov3WO/s1cM7F72pg92jTuKz2opzNfEn1WsH67xmvvDgrE9EdeDV\r\nyzCLRsesEBQ+RPWjq1Gg9hbYYG3Eizbujx3HGouBg1ULgG3VCGddnld2dNlp\r\nd7/bqV9HNXt2BHWDTvcKb5IL+LqieBDtUf/meYa3eFS5UyGNIXdccBu3g93C\r\nKFTOm67zO+2CgYpbbtqRC4aZKJx6eId5TQGABSIeZIeAlbCIDMc2n9MWlAG/\r\nGF+YzcpDC1E3qBsltJUPB8RHuB+itSe+G662Gr83yy2qjqlUMsJ4GSMPSak3\r\n9UXfoRHSNJa9a6nylSoc8+81e56489icCpgNm53Ch4Iy5W3ysmbkbkXKiq+b\r\nh8bJWCOty39Uw4Wnn0sdkCa6rIaVfymjQURlPH6h6BAtr+t4vELn8Pdzhxvb\r\nntAX4Bh/RughR5TqLU9SdjwhRPVUeRjS8zN92grr4ngiLhIJH4/wrhcUwdfi\r\ncltzIUkYMh7IgH8CrNlB8FYGn/AwcbIhqyo=\r\n=3G0l\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc18_1650969147051_0.15541385342261504"},"_hasShrinkwrap":false},"0.2.0-rc19":{"name":"@kavibios/node-etl","version":"0.2.0-rc19","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"979e25077f2f8c5f83b6a0668ee0e078aab4e447","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc19","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-CmIVH05eyMIsm00Hm2czLgLrkFyk0huuWc1r7tkNvyqF3ygdKXM2PQ6bpF/SMrsYAlDNj880jeJRf9r72T7asg==","shasum":"89e913e5dcefe4a5990d321a55658643d93ce8e5","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc19.tgz","fileCount":30,"unpackedSize":38941,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAeCSY5LnNHOTXH03oKd9jeAi3yoBsKR9ukKvYNJOHMUAiEAl3gHsZ89sEpKeb3mRMY2BVvUtcdGXbQF6qOoIyox7aM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ8rBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqTVg//co3rPgHJa6gp068Sj9wDVrx4uD2Csx7PBeyCOi8g4KqaRyHY\r\n3YO6SLG+Y9OUL+GPHUwt81lABQpPim0jqITymTAc0ojTUSQX3jeZlkom/gLp\r\nPwiM/GFlKKoRmLCDT4dE5w4r6rOonQJ0tKwF5eeXf42MhoAugeMHUOjWeeVK\r\nIVfhLJAHF71+poVTW5TNqQ4eyIplgdRGGii42brLGH62f7p33+MhVkhCWbgJ\r\nWr2fFq5I9jzhTtinTZ5oh3WOFU8ZUZkk8IRAp/aHvg7zsGIarB8m0zLCJZRw\r\n4YgBvUh7x1jbh82uZoWB2cb6XH5yRKa8cNv2KSzbYOCWasjWJv2/4m0EXLAV\r\n9CHEASDqU2CdmIvh2Ypg+zSSPFWJ8v1JYtf4Ksya2VZoE4M9w6woIb2kxoe6\r\nj/4GoJ6jJvPivVFUAFGYG/BcxmKJfi3WZ03R7MpK1j6ZMN8KweinDsGsBSnY\r\nQUoY5E7v1BXUsg7qABNe/l1pyM+XcDrZs/vY7auuBLrqBj7kiEThBUS+vEWC\r\n4wxAkv9AezTeiKZHV9sp6fBVxVsYb3V3PSD2ZdBC29I6IFZXvFDipPg6zDug\r\n9IuRehUiyZNveOeg/+534Q9mLECH4CbrVObthYAuXJJ3sRp4cquXG6eFgHhO\r\n/DNdH6NmCWsprQUlRbawltzSGL/Q96KeyfE=\r\n=qLiN\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc19_1650969281635_0.5725613941756054"},"_hasShrinkwrap":false},"0.2.0-rc20":{"name":"@kavibios/node-etl","version":"0.2.0-rc20","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"a989ea617085d22595b5ef13c2f0f2acaa7c73ee","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc20","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-XZk7Wy6NO7unnma9bTYVqmSVhIQb1lJ3LF1L5mn7OSO3kZP3NZsxoTC7qzWJHtTyk/JT99UwWpMCZ30xycOUHg==","shasum":"ef3defb2e00c4e1429061230a04bdfa0f0fc93b4","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc20.tgz","fileCount":30,"unpackedSize":38950,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH2lNcEoiF0deyJKU3+CUghgxpr+Y9TwSmHdvNbbtTmWAiEA4QACq3D1cCIJWnqXjL2hFYcQKNy8ufWhI4xWrdjvSNc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ8tmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrADg//SGcVef18JulXWxLtUAbgIGcBwddTVYeNtASXBSkCSFsPtFXd\r\n2yU1qxJUIlKa5UHTy2MNjXejbKMliad2HSstqyP961LlYfumcvl+ZSNUnZsS\r\ndoYSAShh3byLC5RSFqFikL1Fi1L2D0T0PpzrYCLom53/KOEVxIg6lVdEEikK\r\nDwZayEij7MpCH4IAhcmHqDizXkSYFwjIVWV5P98xK1LxgTRoP1nD9Ax4ogtz\r\nmhK9gmCMCepLouxGJ+aIumvK4F2x95LGT/2t6rGF93j35o1ciChl1/ysi4up\r\nUIIZYNR1I2KvvgrKbD0IZpB7g2L6SvXYuNzZEE/EVfdjZrw9qiH6U6MONrw0\r\n/tq7N7Wu6NVhiBfVRe+iTFadzNB5x0zn7GUuZWIRcOR6W2iiILqIho/gPwLE\r\nct7jXymjxjXjxZZNsEaDVmXXp/DtMNkQcTU1gbtkFdZdnck0sPY+gRmsBa9A\r\nfzlZ+ivZU/0D6Kl0yN2s8pAG7lQk9rW3AWLHP1mgD1KC5Haki9ZmdRhozFLU\r\n19IpEQtJfBRoan1A8g+KDvQjw7dd/Z697phCkfnZQESMoO+ZYbs5ggvuYbyv\r\n60N/omQ12rOG9NHn7bYfCvVjzRKQnzsdYReCQ7KLtcYAwNT7xQPawNsH68pc\r\nQuCfNAtmgU7yip9bITUfZStSU4DfhCrN5N0=\r\n=NIA+\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc20_1650969445905_0.3957098046668237"},"_hasShrinkwrap":false},"0.2.0-rc21":{"name":"@kavibios/node-etl","version":"0.2.0-rc21","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"4f41219285c27ff074ca94cd5dc515a9279ac22b","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc21","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-EJkQ/xTrErwpYcJ1Np09Ujjtcjqt20dDlaeOKEV0MmPSMMW6FuD75F9ObgTFQ4q9Qfg9q8VBabhWXs0I4qbkvA==","shasum":"db57611fa4e022c258c19ac1412281f47d940bb3","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc21.tgz","fileCount":30,"unpackedSize":38968,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCu1nZmR6xPfcEFf6m4BgFQCyM16NvuJ2bJvvC8mAknAiEA9Jl6YZPHU/zf4rw9BnVf47QL8oIUyMFcsfXdtGNRVB4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ89YACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmobEBAAoVukJPrA4rLnXm+4jv19QRy8oBGke7RyVZ5hnYVPKAlhCJ/D\r\nylhfbbENw7iJfAg8VNWsYbFrZu7j3mYdnVmtRh0UqtqX034sJGtnkNvAFzBx\r\nje1MQEJVBHM3XGLW1bvCMyqAMnAV2nNEVfbtcLIQs8FDH5iRpmTQEPFeCsvU\r\nEtt+8/pLkzSy/JisyRXMU373Wbxdmg2R6BDz9Il1u6xlkBO7HKfh94scWOmp\r\nNAiMklMtewsELsyuTq+8+Zh1Y6FawyQaci5/ZMCWH/dLYdDX/BVw8kW+ziEC\r\n51mm4rD4Zm9Gy4t86vgocKG5EYNYZJCHPC/t85BpX87Nqhwz6x51Gxbcx91G\r\nR4m7dKIiwLQBfx8dssvnB+b8rDwWie0lcRN7FBvwutiw9fdyPn9xLXSTWx+g\r\nW6yy8pQ+tYL9V5UCqhPP1Z2dKnrp4RLwKKJiuRWjUN/c63ZpAbOlNEc5V3z0\r\n8Hwkn2tf6xK6YDfHxUlh8rFgW0gyMhaue3RSLvk3Dk0vG44o5/7DJokB1Dmm\r\n339GIU15VQoiccFgcjmEZnxZZhWPWZXzgso9TwoTmtzOkdUzK9vIXjodlUru\r\ng8n1GqJNpsrJtnXWCsY1Lsnto2uTDaYnjVstM9PQ3hcGbobFc9cHBPQ76Eda\r\nhXIVFJXibBDznY96XGHqtLpoIa/7RaA3rZk=\r\n=SfAf\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc21_1650970455878_0.23510689944167962"},"_hasShrinkwrap":false},"0.2.0-rc22":{"name":"@kavibios/node-etl","version":"0.2.0-rc22","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"a658e017ec6b33fe03aa076ef0982abeb63174b2","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc22","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-aSx6ibE6UpK2Pj+C1YLpNJa5/rU9ahzgka1a8yzv764jmGcZADFz1UrZ74B6em67lotSACTTHeEvIJ8LyFe/8g==","shasum":"72f459a74fd16483eaa02a724ee0d30f904cd750","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc22.tgz","fileCount":30,"unpackedSize":38963,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5A0kT39DKl/D0EgJ8zvIp7BsvbDnmA9XFVmDZenrDAgIhAMYLRMwtUE2jUSf43zTZ/wqoRAUlrheCUPrlkdNJdTUV"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ/JHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGyw/9GNR1A6IQjr+f8dHcM2nCf7xtWTwl+qv0seGOhg4fwdPI/ZrZ\r\nvP6UM/MMpIh9SpxnT19linaifpnhmLEBv8Hz/k/VBRGA5agdCGZPtMyTTaI8\r\nMKUo95vgJww8VUMh2ZjNFgT8koUKc9bC94PsvVNge/lcH3qDksR8DY1sT3fa\r\nXwWvFWyVjXhw90G8ebHOBufxA/atLVMxOpPj80aFcGDj2FRQFdZGr8d0uu3E\r\n+lmW6BOR8JCdtjyVEkbQD0WlBZ7X67/hyum8V4jWv4ULbRrFEBD3yTxhtIog\r\ndLOxZxlDR5JbPJCDzIhCR5lfJSDH78rEsVjE9GQAtBzMzM+pF60ZV1jm93CC\r\noJxZTvTD0f5t98vPl3frsqasDABhltEsB5nEa5qGqLTT1L6M98viip7fhuuB\r\nZ0gf6pwodTOfQ+ow0Lt1Vnk2f+7qEkMr0s97hD7L4CGCuC5n6QT44nV2WLyF\r\nqa0f8Dsb/htsZJ2IcfM1iWrKyp1xxdFwLwHKS4HFgPGUnIWjChjpFMpXbtmg\r\nagEuQTg2RoV96NCM8/lQWSSGNdgFPssWq1PTZ0Ai0egBv4MZfmF1uiHzCdhi\r\nQUcRYcKjHVogrfj8uirU9JoLEoMTMq+PD1izX2/M/URenPipy549I0V+NUuy\r\nVMs99RhNUSIj94z+IM0ICSIiW3bh06fdX50=\r\n=UYB4\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc22_1650979399164_0.9195543705931057"},"_hasShrinkwrap":false},"0.2.0-rc23":{"name":"@kavibios/node-etl","version":"0.2.0-rc23","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"087b77b387cde69fefbbffa8e2e93d1b5b96119b","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc23","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-IpWAmAju1tV1AnUAHbRpuVGN3P/fIYJlBiHcNkEg6srKIty9HJrFiBBpZORA/dt97L6SCuiz04iueG/sRidKXA==","shasum":"aca2d1f5f95e0a8228f25aeca2af8e9b872dc823","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc23.tgz","fileCount":30,"unpackedSize":38969,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBRYjYzUxOuWAGdlp6OKzgWaE4MzlHLqoeX/9/SH9NkpAiEAmw/OkU6ecuRcWQpuidrnFwf/psLOs9nRN/J1BvLa4is="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiZ/JjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+5A/9GLAc38NQbGUSMhNis+pWS0ix89UY5/k1xAJKsqFp2/h3Hwzj\r\nWQqKIZxa52vJ81n+F0SiEEuEa3hsUetzmIhljxbat9sp6OUxNfv1AGXIHpdZ\r\nBuMp+pjxrfAdVRfQXSQ2L+lLoV7+Bs7k/SSl4VpC9VqZSJiSa1Uuz9YnF8r/\r\ndqZqwRKkzexNwIifBXR4CweiEZg5SGq3QYCKpZSCzCLGTpi/J6d3YxWyjGF3\r\nkhqR5Aocms+1elPgDrrjumvIKyQMdBrXk8Z7JDZtkKFIzvNcIcIZt9YagTab\r\niFeLY0f98JpR+B4Mi1CakTs0DlWGJFHD3vaM8qqPJG/mTn9rFW6sRT6xhgHu\r\nU16H/LjqbIgJdPlMT4o9BaO3CYvI67Z+urHDbpsY7X2LFJP3Pci+/dJmxudL\r\nebAoJaeaviS6LZcpzDU633VtZX4xOHWOeQIL7r/3nOQk3AJNcASIjb9EcWrl\r\nMeupRX4aVbl52hOfCLJ9pXmFYEUr464u4mCivBf7arhME90yI4Y2qfRN4xOV\r\nOIPYTb7MeAqUu49eodEKKasUuA3I7eqgUMIaygz7LwiwPyDCpDd6RRlPxP+F\r\nMd1DZkwfztH+2bkKVdMp4UsK/uVKIZQYAu5K7YOufyaZ61TiYCNWrRUsXS7j\r\n0h3JnAuRzddxlx3BNfXVGA33tvH5rv+RoPY=\r\n=PE+q\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc23_1650979426969_0.5585360579815779"},"_hasShrinkwrap":false},"0.2.0-rc24":{"name":"@kavibios/node-etl","version":"0.2.0-rc24","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"a8e1890b03c22ef57acabfb8c291bb07f80a9546","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc24","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-P/mLexLtLSFR6Ii34u6Z25w2uIgVnr6+QmMsiQaINrFrBd5NytJOgBqB/NUU1EnYWzoQmpF+0P5Ma9wfJUwj0Q==","shasum":"72a207348694285dd93f76cd4f706b851b9cbae1","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc24.tgz","fileCount":31,"unpackedSize":40343,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJDEUNvuOMnLCZMEA9lTUs8621kgbwEJ8YuzQaBq3ZaQIgTIZOuG4LHldn0wJeRAcMZvsQkscFK2ef3rvW/F0kp78="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaSAOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqArw/9FzzPtkf988Z+6LhplZFz3ILj9lhrMDbzI9qqpNDE+8EdSlCg\r\nfem229j3xVT1/0q77eBuBNm21F51nTwMgWcSJA4dpA+53FpPtBdUNVYToFVj\r\nqr51yulnHdyr5tjicnLJBMBG+CtjKFCBBcBuKTLmV+3z6boZ7BGgOFCJbvEC\r\n1cMc4YhhfmAYanRYf8kwnNPwpjFh6Kr3jTXU4WrnXq3jTQ6n87QSVUpRbmYP\r\nN9zWIcA1wKG5ALSGKvqZljtbWNUYuz+61rRw1z1SdnzI/IPeYTmSeOgL3OZd\r\nsFPqaxuaD0XMe2L7BCoOsEXn8Nml8AKmVcujid7AidUbybU64dvVmbSiycPL\r\n0pMaVw+RypJ4pORVf1eZXzh5UMjePT6QZAvmuW22s6TRv3Fusqfu9yE5PApf\r\nHdh1r5qBMttgL0TN475aPLiExDmc0cD6fcMSg1en9HiRAFEpfsu0npG5PZJ/\r\nulUebUbyDpb5R0M3IuCStKjVf/qbvUyH75jdaJZbAs6ZMTID2WDRlSOUCC/v\r\nq3uh331zaJMeI9o1sj3DwqbwBfeQanknNAS3bJcpG/lPekj/NTBdKLEKQRUs\r\nZwKC/vlo39j/kIeQX19AKJgKGyjs+GMyQizKAALnGpmsoRe7we9QXjXDmVU8\r\n2TKpwKp2EZNMsNnER1zyzwdasSVXTsvgAw8=\r\n=xaNl\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc24_1651056654555_0.9446901497520781"},"_hasShrinkwrap":false},"0.2.0-rc25":{"name":"@kavibios/node-etl","version":"0.2.0-rc25","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"019e469b4fcd97f6d7572408c7a5822119315942","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc25","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-0nQhuJq3IforNMsDqurTXHuSoUVdeZiQKpgFVSo+w0QqDX0zIEHSnd/sRp37hK7gsOqOhLKjebWzta2cGSAsAA==","shasum":"cb7be1999282b0bea26f18ec48a1f73b558b8217","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc25.tgz","fileCount":31,"unpackedSize":40500,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFf8E5nSKNowQ96WtOw4VRXx7B09dR5nuIOeooI1vjcgIhAJKnMLo7DJsgyBEs6GfgLo2jDsgP8ABY4V6CMWijmLNu"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaSEbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofmBAAjjvqpSd+0DG3aWzPiVda7JH2mao9KjTVn/3J1H20zOCxHq4u\r\nqCczcmOwga+vXDeQr3DvkjhStDl1U6crorFAhQDZrl81mSqacWnMzfvg/u1o\r\n7usAx6Ah/Ss9TnLM2qtSZc3QwAs6L6BwOedSx8zEgD9JjjUtjin78Rbu/CQ7\r\nm1n7fo7EVJ6T61lAHftZJjCnO/q0hgNQmpyRgEnhVgRTkJgU3IWj91Fq4LrJ\r\nn0rm8/Hyr+oS8SphUAls6B4qpw1sCoa0mfXNPcNUbhkN4f8Ae/4qXrGf2yt2\r\najcCBnfwpbO3hhUHLiiWlU7OXqQ1RVf60jQDaviQKBA42DFRjxDkM5bS9XhD\r\nn7sqRVvd9TEBz0v1ckXfK0lssZzq/YipD65sfX8CoWicUWS4X6gDFyboLU/c\r\nWRWPGE15tgqZJsFWwJySrGo2Xs5xKWzAVrL4J/aON49vVJ/2vvrdTyyVTCMK\r\nWE1//a0CMaD7iizO4tKT6aP19FeIgSFKJVfcycuVcSoIKQB36SYixlnZ3rsh\r\npA63DkyIpwL5NIBe3MYeohcfo2JnkTrjE6TmvanIbmRa7qQ0htF8y59kA4si\r\n2Bved1eN3fpjxbznSRTX1b1dOAag780ZGdy+Rud2KUTy2hX9P0cs+nLUJg2Q\r\nLHroMmjIacvb2a2/AE3grn1Xb0DKqWPJzG0=\r\n=ZvHl\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc25_1651056923703_0.7986888777342049"},"_hasShrinkwrap":false},"0.2.0-rc26":{"name":"@kavibios/node-etl","version":"0.2.0-rc26","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"4f8486115efcb7cb787059abb7713fae7d8259cf","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc26","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-DwCY63CtjeQJMPZsVBGzDJuu3u9qjQzmmq++86N8TlcJDe1P1qHDfG7IRWUbv0/OsWd7htjFbfloSKwyC6HvOQ==","shasum":"616e46a58a33232d1c7ed21c78c713011a05fe14","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc26.tgz","fileCount":31,"unpackedSize":40501,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHFHxBzCOdKh5ZOIL2uWa7zsrw3udyI8oNbaJ+h5FRUgAiEA7bXTvLVI4OhAkLtiVI1ZjBecQKFyAe1GwFR/S6T4Rrs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiaSNuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq1IQ/7B0X43CVF/Q7LXdwYrxBmKogktXEEHTbU9EcAQhmxROEoLxOv\r\nLhHIbLhGShS7Co4Ser3DW5fBfKBAUlq49eqP39RY6RaCFzCVcqpvwSlbVHHi\r\nPsIzGdSEKnDEn36t1AzuPIUkXmxnLpfujwNB5TEK9BmHVnC7gp/CJq+Jl+Q9\r\n7FF1fB2Eai5YXy65XVz+OHaFRGfG3lEVNEKM/kKN4SJCvXrgORx/rmQ+Z9LB\r\nSUKLEWw82g9kqEXReRi/+b5OfnG+b6lLzow1+Rh3NJzPg/zmMDcuIZlWvKX0\r\nHOwt+Qtf8VWczsmMzOKB0QM27XCVymhgFxvR7Zg7lXwj4d8srOu/3TtfRam6\r\noYLBH2R7jFk9kFZtOWKTlDqs4/5EcIx5EQ2TiKKwvHMHGqePVHtEN/7xoNEr\r\nPrTPlvGHf0Qcb/HlL2mF1qAPzzEbCAK7MXPqbRBr7j11dq0e2rKLpoF8/eaf\r\n9Ztf1IJsv0bEh0xrfZ5uWxw36+qmjgNhzsWjSNjIMdhs8adlR9Y40F4LXczn\r\nC0MBq9WhOVSGQy5GNOv+EdCxBQG4J80RyS7Y3r/LwlCTe2w67rCTan1HalTn\r\nO+FprB6E7svpojaADBkpXQktQFjlaLoUQfOlnzvDp9Z3wZqvshdDvd/kieGA\r\nWfNsZkBbECZtTAKrcOSyHxvN+3yyd3rqr/s=\r\n=KdZ7\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc26_1651057517881_0.839219303221528"},"_hasShrinkwrap":false},"0.2.0-rc27":{"name":"@kavibios/node-etl","version":"0.2.0-rc27","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"df09a5509cdae4b07bcfdc826d232e0a98cf97f2","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc27","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-uXF6qrkt/6+K4ZX61ztcIQrkX+yrSgk57IjsDJdY3sELLoWo55IJbmPMCqy2Hg9MVPMA0Luh4EDCNH/ZECN20w==","shasum":"e615d20f29eaef9ee800a62454a91c6cf312fc18","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc27.tgz","fileCount":19,"unpackedSize":20484,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCu46sB++FKFPjIJbOAz+moi9k33gkz8O4bH/76tVc+ywIhANIddekB8mRK7jJpU6k2L3b773qFLLzMnOi0zlfzu/YP"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib6I5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq92w/+J22V62EQMZSxl9+I69phXVx52xFWy3s+bzgX4Zp/n5rXpQ4z\r\n5dIeS0BOb6AVB3r4tY2oI6XyeaXYmWbWdf7xKpXfjhZpcQIgCPnxnXjosC01\r\nAb4Qye2gXIUS6foLZJ0niTFtlIWTbfuLxb9/QASyKC+i7Aa4lQUcjfeNjiqI\r\nmYRMl+hbTCSbI53E0XzrGu+KpZJ4Jrkd0X3EUXbsHT4Qxsbz+TwiCJEnSW7r\r\nh9UuakCkQOjz3YGzy0z8RXC8tVt+UpEgNZnzh52Fwbr82Nbex+P6iR7b+MWO\r\nxX6uVvQx7cEkBm3aKNgOPU12EJIViHzHO3M2C90iveeYXV6HkDpN5qgQIIKY\r\nmvF6MOALWEKts/Az5E209ySkDIPlBtfc8QaTKiuR4YYaciT/ZiY7JzjmnqH9\r\nTrNWSid4llLQY1KRPTKpUdckwV88RFYpuMuyAWL5JYFHFRgq+bmhqVVUo+bY\r\n8FFs2uUazETiJ9cgRzo7uZ3cecAn4UD/qz2Mejp19FXquSndltz+Gj4IO777\r\n7ZzhoTdLfu+a95H9rDz1iYA42CjhXJcWDkPrRPMDtvgNUvRkj9nWkdXmg/ks\r\nhC8RXuV4Gf1quA86lhJFjPgnHUojanM0E5SSCy2qyqsXJucYBxgirvgEtN4s\r\npN0XEJiq9PP5yQ3Gz+jBH8I5pLi7+hfTJXE=\r\n=hG23\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc27_1651483193672_0.6687231422543487"},"_hasShrinkwrap":false},"0.2.0-rc28":{"name":"@kavibios/node-etl","version":"0.2.0-rc28","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"1105ff1bbb0996f57da59e184da3077bd6eda091","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc28","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-nAEm2Grvjstm2YimyZORfqvlmyRMTfnJ0oI5Kwuhbgb1YRXltIeCz0ge/SoB19gsoU8rGmFR/tpueHxrtb7m7Q==","shasum":"f30703ab11a8125deb4af4894da0fe67d1db89d2","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc28.tgz","fileCount":33,"unpackedSize":42962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQhA1OVQ/iQIx7B/5kc9T1RPJn9d4YJZ3zSdBb30jPMAiAZMhWO5KaORYZn8le0Cr29Fz+uhFvhy9QyPX7lBVV+VQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib6XSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqe8w/+M3L5/7J20kD7dpNuYadBIB62DwCtrJB8khhsUxmrefUXi8s7\r\n+ll4pk1YvfmKyK3tU/m3F7J+2U4s6LGoN2N8QmA4vmMvtMRfOUmamMP9JQfW\r\nu7nzbktlsXYKp4uR5d63lxzsMkihhntsWyT2Vb21y8NwTZrlgPTMv5Bmr41O\r\nnI47c7liwNskjuK4uz42HeQbDEx5R2ItPJT8aIKzDVkJKEkNvesW0WzL63Ep\r\nJeT4PZIek8YgSL7d+XLuzqV/jrMyeE23r16gF/RctTNpBrFruTKzd++WXG+E\r\nmMdYNmw0KqNo3Akfe5TSsUdp9AWuk/eNR8QDE4HALtUjdsEJELO94sE8uCRN\r\nAPCAhMSym56Wrxsd+rPO6XKtZ4K19QaA3NASXmhFSHNtuFsxlU0gDEPgvD8/\r\nDr36ue1+/Bz9UMghKvmPVNcLauX9g1ZNTiKJ7ZDsn+lCDYJQF1LGJtM8tg2f\r\nN0UvX80S8u/JtkdCRALdZph16SWz7syslTGMBZepr+40QnyT7m1JW5GEusL3\r\n793mf99abJs1xAofDMHl98LgJkECLRPe+eLfrkecSBFPZLzUm/DYm9mHeQCT\r\nTKutaUQye94gt90xQ6pvayla3FE8kV1Z6qAJpfuC8grrHeWCj7kdR9AI9hRo\r\nO6rxCZumDAiun+qW27NW3vBR8+aGqmaOjOU=\r\n=/rXP\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc28_1651484114517_0.6994628984911602"},"_hasShrinkwrap":false},"0.2.0-rc29":{"name":"@kavibios/node-etl","version":"0.2.0-rc29","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"cbb00bc59ac417d81b4e133f1ff86e6a1a0a57a9","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc29","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-UyaNc/wUp5lUjX8qvAkR3ldzojkmu65GY4Lrrn1tsGvTJStc7t4gzIGO2oNAux2N6XjFotoP8nYdfXRQurqrQw==","shasum":"95db3cb6a67939ca7f7ad101e6dc6ac47b5f0aff","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc29.tgz","fileCount":33,"unpackedSize":43209,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGZ5dcdNiXjp6I2Ss80h5Wk54KxZaNRnu1OprY1DWpUaAiEA2F4tcu/dG4f6hwK+hwqLylDLcfMIdqz4ktNTDrZKs2Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJib6cdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqkPxAAjABT2jNQplvbbeOSEzRiqIDhY8EyoHnayrS3cJJfpww5VuMl\r\nLbcWoCuZd13ajSobGO386nPkER7ElB8ar9tqooTxCSWiRvfbC2cwwkKZYtDi\r\njRE/LFKGW3xFPbtAGstEPJor6Og2mN8+4nizFwTYXLAsTe8yYKCH3J4VEbHx\r\nf62FrSVJvGjLX2ALhlvnXrb4/GHkUv7Gg1W4fKhcrxZ442kbD6f/B6XDUUkI\r\nOQOUulFM2S1hcwXspd0wm1Y6rI3p7SBsy3NAKprW56ykHxRjzZ4lLOKePKZA\r\nEe3v4y702+gOPhY0qAe/uojpaLFwJPD4MtInTgn+9O+EtcX+EI65k7LFx7pA\r\n9Q7idy5HkiPPDzTpGu5JmqnYViEzyuFCiQzbzrAbE/44PmbkIRGPj47Qpef8\r\ni3jb9DAswu9JFmstpVvYT46qZYq3ebVHH+E8EB826CS0eBfnOD/UWr5dr3nO\r\nFQ4jleNTfoytU8VSgemnro6RvDjjDDvaXKiN/8xOrrLSO9+sPgkukgUhUs+A\r\nr8Vro87fkrv+pDgTSbP6bO5w9bqdfnqxM+rF0moCfV2AoLudEqXRm6mH4Ugx\r\nY2zQc5eIJBHkftWkmnuZg4qdn7qm3GP+mfRMdeL6JanqvEZXNfEr6Xsltr6N\r\nlG3tL3NfDkdHGAK+niJJKTUbV7gd+XeBtPU=\r\n=wdvK\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc29_1651484445609_0.46252232886035216"},"_hasShrinkwrap":false},"0.2.0-rc30":{"name":"@kavibios/node-etl","version":"0.2.0-rc30","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:au208664/kavi-js-test.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"98e77bb4551ff4e0054a884b948ce52fbc3d26e8","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc30","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-UwNxuQPt5MxmsqRzfUBcu3RB82+LOvaUaCU6ylXUAw2eWK+SUOvK3DuxewJpQzHWkJCL87U/XgvRJfen55Y4Bg==","shasum":"1eab63ddd3860b9b80725e6d7decdf9a1050175d","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc30.tgz","fileCount":33,"unpackedSize":43162,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrUNlxc+Zc3z6m/bXLCjfzFeTNjB9rcflWNZ8utGjeiQIhAPvBp67V5hxICpwBS1WfubafIeOZ+IsqxQ1FY6abW7pF"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie5SwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoURw/+Pdf8FufXALXqx4J4bXD9lfH8OF62uk3IPspy5GmGFNbUud4b\r\nALBg6uUEkMJ70D+LjgEAD/ETb87QyOJxN4Zb0sEz2pE90Am/eGt237gHHZMD\r\nJ+ZR6Jk9+dK4E5FI5LNgIc1rO23K8Oin/vAZv2C2z0zHWc4qT66zWE+xv4W+\r\n6zHAla+0h7RgvMIuXHZ/APjTIZUo24URDxoerk0pWnJiRa6U4FWUj2oWSgWE\r\nqz194IpOVgfBHK9b9FICSHWh4d+refksV7gppx9layM6n36xkfiTcKoMQvLT\r\n31vtfIKW3K/YLGlHN8u/kfbflEp0IE6Gcw5V4sEuOLIsqtl57QewxuL0EgOx\r\nPVFBJnzZtx4RxiOquZ2aN7FSVflhhy4SMc0oqD1wayO2J7PJ93urHIipumu+\r\nXOoMNHhtwJFV1AvIG+DTCKL3uUCzuj/L+rbydSH4eusx0/9A2vSLRyAPiwvG\r\nkT0jES9+stAFAKe64F8bEeH1mShum3KSdA7epUqvDgY24pVhY9w+n+KCjNcs\r\nDf5d4S7S+iGJ4zGo7Chvr2DLDEp/vmpr64RPpTVASmolEoZpD3j7b+KQGjxe\r\nI4LukxAS5sOlak16rrjIWVazRo1gHqlR2n0HQW6GhzIotnhmIRehZ+7T7bbH\r\nNPOr6UFHMs0Uv/p0JTQYuGWNkjtgMXfIEoo=\r\n=i8oT\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc30_1652266160385_0.6878669810232256"},"_hasShrinkwrap":false},"0.2.0-rc31":{"name":"@kavibios/node-etl","version":"0.2.0-rc31","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"631b34d1941d80f55b0da217b8b60eb3c5dca795","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc31","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-LWjRDSkcfq6NTEqNYC1Ql38aNjCqn0bqeYie9Ka0WtbmhC4ramU1QrTOY9K1HFBTPkBpDce3iH2kNrt5iHuEvA==","shasum":"64b1cb161e75a15f8227c4414a0cf357cad6e2a3","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc31.tgz","fileCount":19,"unpackedSize":20461,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICrI5jsG29j+BXRmZm9AGTqoghDs48Pv6GwUkz6l64heAiEAk1xGDsU6XbNTzpDpZLtW0wnyJ+hv4rmbKPurhyXjiNo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie5f1ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr61Q//QuguNNW/eGald90FEzuBifb7Ux6FBGfwzAaFbAkU57sHBOD/\r\nVpcFgzNzlKqMj33ZvvUOHeMt6sk+3bPg5eT+NGaAH42dJcDG+l+Vyz5flIfY\r\n5m6343Ysb/BYLj8No/JX452JD2CI+qqnIhMygNuyTOq/XUFSWZbJucaqm7Dt\r\n30ZimkHCGEB/5HR1+WfOFqgfpfvs6YA4j561fgJrtJZFZ9H0QWM24loYHZnr\r\nqZyxFU58LwoGPN9VG6WYx7dUdd+hhkLvVF/E6jsCiSe98Dc3fXdr8M391kye\r\n8KoiQ7OEbwsBgQ3aQhqTcYbtBiKnT2nZpesnVKC3AR451Ic4CZeJ9a/p5tg8\r\nYj5+Z1tSmW15wIcrZ+ol6bGo1Qsy4rfhCrfdsmwGa6KsukPYIicwba9PmVOi\r\nn4e7BY8KNbkW5erO5gS99BhKIiOuEP/SYuFVdYJYVWsO+iIicEz5wTT3fwUT\r\nUlxlWmutC63/kW37EVMCdavH4deG6scLvWiW8KnblhG73to/a06tf37IQU5X\r\nfsDbquKaCrS5rAveji/totYbnzQIkasfAWnLs7BPc1//lWYTicdoy46JJUy9\r\n1zx03hZt9liy9ksNj+S7ewkvjtAwT0IdIGJZ1nesmTAGz+AcyVoTOwmhi5hE\r\ncrkc1nrs0vzQ3JArhlMCy4fXrB9gPIElDaw=\r\n=OHCl\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc31_1652266997063_0.6745303582300137"},"_hasShrinkwrap":false},"0.2.0-rc32":{"name":"@kavibios/node-etl","version":"0.2.0-rc32","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"4344943423b500d0816c553daa925e1cd61eec22","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc32","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-lTdQGbnBbeDbe++YG0IF0tcJAGLP/tm7zTuw4nN0qrKOSqUhA4+r4p2VFhz31WzWsMFodNvzmlPrIJcKO/pgnQ==","shasum":"145412b61402055393146db72231d57feff1f9ae","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc32.tgz","fileCount":33,"unpackedSize":43031,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8t2lM1T9U3bp2+NE+q5T0qnyNo3sLaJO9UtUJvi9X+wIgAKZAyOBpQO92eT6PxGk1WeeoX+o7kho8PWpDIefm/Wk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie5nzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+lA//X/jD8FDWY71ZTs8GSdnDGUh1kffUKwiiGcjATxJJF/txMAdN\r\nbSjIcUfQEymOBPqojSzP+fIYg9HWtcGNXkDo0IaTSjAWrdwUjnOovbwlH9dD\r\nL68w430VlT9gt2Uq7pyV+0qiLUsIxVDeMp2LNZ92ql3QmfZQwOEh1rseVTVk\r\nMdasKBp0IbiFmJimI243hztz5Hj8zgg1UF+vbREMErql3FbWYSFOlE7hr5M2\r\n902t+ZZ85wVutJmjPhYZrTNfrYf7bMwD89/LDZLaURJQ5V5KiRxQ4OHceZK7\r\nQ8YhffmFJYQk1cBi6az2lK9yedCKzzoLAndLw777YfPW31nZ8ZLdUjY6FBgm\r\nby42kje8+vAQPzpjwz2e0WSRqgODZ+2bIs8TM2bcYTAUisvpUGWlSGxFTGJ/\r\nPMBF79ptips1uAYoWnrVyl8p/lolG6ckQn2/9fK6oqSlXQWtkpFUOoKstsdj\r\n0zwe2YTLU8YkzmPtjLP4lb81POqR3johUvcMae+SmGhg1iXKj7+rAUU2st0o\r\nAbTuszBNlx+C9ljyLTZI1MSDROwluVvGPFtKChYvyzaTMUD+yqQRrffOnZ2m\r\nUrzY+xWgS/97yPFWiNJW0LfeEp2oaqB7Q16Pbitm+QAd0YMkr4VCyeyM5IsY\r\nAqwxQ/oOhwV55JbpCZ7v+6rbFyE0lJ5ZkUI=\r\n=3fQu\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc32_1652267506971_0.9076344818660129"},"_hasShrinkwrap":false},"0.2.0-rc33":{"name":"@kavibios/node-etl","version":"0.2.0-rc33","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"3ec760695c859ce10683cc191406ebf01e04cd9c","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc33","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-5q5U6wg1qUdLd2NxP+EHVLQtuUkenvndzmeqkoSwio4zdCXX1sjpuMeoN9WbWzeIMzAdPPMKhtBbkJtmz4F2vg==","shasum":"f1bb85883488d68ac236bdefb623db0b03253373","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc33.tgz","fileCount":33,"unpackedSize":43230,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFZIQh3CnMPmN/yJpbf+VDXJ+MRWQmbQj3WLsVehdXkmAiAgP9eV2tAAlGCPLTl/PJt1GvQb+jql9EInLIIwvthKVw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie5p+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqVgQ//eptMuIdXtxM3+RvTtlGsqcHB15hucBPZsjv025gIbfSFpZ1d\r\nWALAKiRlDt5H2dykX/pB83nCmfJ9ucMIamOvj1kzTWJS55tQqIJh4AjCv2Xc\r\nFEHyWkNJBZnmxKCTqCA0+TCCYHYB8gZIhOGsEYPFnBhaN9N41VaKPdHM+6xN\r\n7gVeCw075u8nH+vyV/DzCUrigxshAIqq00fjrHj2aKsESFQ/TcEp6h3WpaXq\r\nO4NnqsxNDacPOM5HRZ/7RuyFU3W0hb/gxlsCLmIfkybgk+WIVkAdVLcpWDtL\r\n+fHtRfa9cGiJ+tWUtsMXfaBicnw+Wo2RSxIN/CcfJuF3Kqv1Jimh/878vaur\r\n2iD4dkkO4CPT49ILAfKBT7rPlDovH3T61AQkq3HU1xwDFw75Ctax/9yICOlg\r\nn/9DpXaCDJQ+1LTHA1A8ThPudzmNC221RMjxPdh8ibQZppeQj6Rj2uoFVqGI\r\nrXRl8hqn4xmfO0koY4MbsmEw3bueQnaiopVqhwPitj3quKaVywqBfUtnBEo/\r\nFcFQEBgevhuFsMXy2ikjQPVVd55UWCMGF1iPAjj03Bpd+k4jEuf45kcTd0iK\r\nMeZ/qiak5W+2FyYJSFwfVQkgQmxNHYGfHoLPXAAeDKkH12WTV8hWrsHAHO2F\r\nSy7Y/GeGC0ISyhS7pS2u0s4WYkpIgGA9+cw=\r\n=APSR\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc33_1652267646644_0.7353710143989516"},"_hasShrinkwrap":false},"0.2.0-rc34":{"name":"@kavibios/node-etl","version":"0.2.0-rc34","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"60ea649da815788977da4903a6eef0dc75f81520","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc34","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-otwt29PR9eg7rOF/6lF127f0Wi/rxfV+HHIFthNafp0tsFNLWCAVgbZej//XcYwV0p3Q/DEmD8PUhoFfkqSRsA==","shasum":"613cc46ad0061d8d7e94edcf91b4fa74ec1306d5","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc34.tgz","fileCount":33,"unpackedSize":43363,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFyMhrSpyqhi9HaIpR6q0fBtV34w06O8s1DHy2Zqgso6AiAMBjKA6QwW2/hoS3X+XXRicASswIUdIIWp6epDuLV2VQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie6ODACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpQTg//WGXrrC2qIHfFJ9QQkj7CHsH1X45SWsPfAvXR/TFhPs4xRKNT\r\nXH8tbyAzCQR4l5BVJ69YsiowZrb96l8kWjqfSKxLfHpjM6KVz1azqfV8apf8\r\nG8SQ7b+g+qPS/Sm7Vtox2DO//RjYJKbx0v7UI7dzjBs9FFfuAKhncrH68DY8\r\nMvV3mPQc1d9oV2T8EjrWgvevq9QjYLuumQu0+zE7VdioE5GcyQMyMVCoxdxZ\r\n7LTHtUZyHxQaLfcRZNVxS7XTs5AbtYHtKMJN/RzrNMHtHgsgpm1byY0rTg8g\r\nZX0oGdRKEv51OQu86TVs5IdzZD/JwfvBmV0URWmb8uSMd1w/a1qcG7C2+6Ob\r\nR8x30umOnndj5TOGSd0F70g9a8UnTGk0kkOVk5V2AoZca0ZmwYRoOxI3Bjjh\r\ni7oy3c8d0aVVIDFwWhxc+t8rbDi9D3FX/Q0IYge2jv8YEfb1344h1bLmEXuw\r\nD6/Riv9DbfC0p5RGAdsrXhr4qULgwN+ueUW5KwTM/Tp+oC0QzdAxcKxUmH/t\r\nWGwNoRqoH8qj+ai6+Zzu0DbM1SZC8Xasx+IGCnRCguL0B/zC4r00yBpCVvEW\r\nlTZNF5nnY7TeINSQqWQOdezz6cnFXMhKHMy5sOT8hIsAoSksVjDoK/NxH5a0\r\nl/r2dQ44HPuxc8iFBotY2mmLAFbbu7Dxlig=\r\n=LSVJ\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc34_1652269954650_0.9758636303330996"},"_hasShrinkwrap":false},"0.2.0-rc35":{"name":"@kavibios/node-etl","version":"0.2.0-rc35","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"020e47a03eeaad65aa5215a65cb4ff1b0b57a168","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc35","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-GGPrusYWqbENgRsTDL3iHQS3nkxIFghuVB7kzDwpMGfWsZhfSZNDMCvJ2aidnH1iV67QItQmO0mSCly44bNe1A==","shasum":"de05ce31004c75951dae1da9691dad99b13c1972","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc35.tgz","fileCount":33,"unpackedSize":44021,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUHH8qG+5TnqDeIuuPb0wl9eSa1IYi9y2+apc/WqQLoAiEAg5IsIDz67u4HVjw4cIi4mxDmL8zzYafJGEOwuyQgmG0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie7CkACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYew/+Lg56leXEY3cRAyUjFf9kf/WePmeUp8p0Igc+vfhriag9x5f/\r\n121IgJtbJBKMb+NpR6UFor3cRNJIWvQTJNmvNZEFmPwP6MFEd/oCd5zLndi/\r\nJ7PB6QIa4fIXzVQ/dMU5rhQEMOlCkNVtS2sppmT1ylG7sEEcrbW30+1HlqS2\r\nNq/eqs5DCwXjcME1rWJLwT2GSI7PZRVww+JA4uDHLd5czWUjC6pAhE5Szr2o\r\nYnpaMmKQBhasBWog8MsAZvmAODAl+C5CQI+hoHuHSVKleFalitRlOFxEjlf6\r\n5p+ToE6vxaSizTvcN1hHJ7bwBLbAZUj1awZUwj+CMDbt2EflpLvLpJae09H1\r\nlM0zqg2uqmsBmF8nJQ7k9/caJODYFZwNO7VzgelxLqyyZ1Tp+khviAgoBZnL\r\nFFnhyCV0ndb1eF7oxCsTQScWAp92eC++TJ2H9gOUHTYkqB74GUWbHctP1rOA\r\nPrszYYEZ+Ja0ER4vl9jD1tJf486c87TsgzFXRK9JngJUUnHNzYE97nQCFkn6\r\nkyKPuXyqaSiYScbarUKQXroTG1IY2OQwCesK7mfSYkdQgbaA0ZUc/9Ee+2tB\r\nndJ+3Y5psET31uYm1DkGA8TugKpWOzCln/iszXbFHD4DhnQbNVS8lanYFpT6\r\ng4yAvlh4FDb71M4lvfYYMxwm6SNbJ1NRdg8=\r\n=ri8f\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc35_1652273316751_0.4427707214743848"},"_hasShrinkwrap":false},"0.2.0-rc36":{"name":"@kavibios/node-etl","version":"0.2.0-rc36","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"69eaac889e976629c31132eccc07287e7adbf2b9","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc36","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-Kb/Z+vFoQ725qdVmO7GbgzWDcFAqOIddRAUdLvSn7sTyMpV9ebjHpiqo/5dqfuRwgrxVyxUsSSVB87WySA5fgA==","shasum":"34db9778906b663807b990e42bf4f85bc38f6347","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc36.tgz","fileCount":33,"unpackedSize":44306,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBu0Mt3fe0glGUKVxiwamMUY5fOdEMrmLY/AA1zoaCFoAiBqqUDLzakTleeDnT+LrZ2zCSUP96y1zBGiCRlnO7pyuA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikL4/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpjzw//TxqzLdaS7BgO/G6+kN3DRhnghHG91vDpbXnlXsr/acg9MPqk\r\n+dhHzpZd+MKU8sEiK94y5Mveh6TZXbboIxaJzdsH7JtHyYtdH9M7MErpla5V\r\nzeejoRMBe1KUZRkppLG97fvTGUdbGCJIV+VC6JYzGJlHSlQUzsLUKPiQWQyK\r\ns8TXPKkegDKC2in8N/tmetycilwLNi5w2DpUuO+LdwNHvlrNFlQIbchPgZJQ\r\nnkKJx6JalFyB3RMUVGw0FNmnWX0rgY1edXYtHZtF67Xz8GNqzVFtVUqmq3eo\r\nOcec/05FFCilrWv2CsMWmNy0xwGw68iq8YwUzjECvnR9gtHbsA/OJSsg9JGn\r\nrReYCID6arA4n9XHymeuF9+NLpgaUjVybGltLjF5mVC0/qzAAyNMouSzXI0f\r\nIFhQ+WZ6ZLsya/AdqXLfWYFspOKsKRz+h9H+CNjtQ9XwSb3h6F9YTOvYf9Rp\r\nGVBRbrwD/eUNbm9qlPMshOSm81hF/clVGGbrQJGg4BxR2FVxI2TNvarefEDU\r\nLa6D7xGnl6GZ0vAAZ9RPI8m8UKmwnGoDunZuuBpv/cdkxSOgtKXUGAzu3CUH\r\nVADFdpB1fgHKpDJwpsfTBFzMo8FFgKxSkamr20m5ETjCIRfYb1t4HcLPcinq\r\nVy/4nTsegHo81LuF0rY2R2N9sT+lwHvQvLE=\r\n=4kF0\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc36_1653653055404_0.5725699000162112"},"_hasShrinkwrap":false},"0.2.0-rc37":{"name":"@kavibios/node-etl","version":"0.2.0-rc37","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"b3d7613aaf77de5e55b80514d74473594c582be4","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc37","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-JborGQQDtxEBeRQYeJFN++KcqR34AOABLhk1mhHAGPOPRqPHhJDQeb4gpiMYdPh6wRP+CQky5K+QFZu38P8ebQ==","shasum":"efadac067939d5dca48f1b189134dcc64889fddb","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc37.tgz","fileCount":33,"unpackedSize":44300,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC10P/xF5/AB5ONyI1RO2rKC70RBCejMF1fni+zn8U6LQIhAIOtqpGNAYbGozNrcU8B45uA31RdUF5Lz/sFs4G8g8RU"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJikL9UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrhvw/+IooDlxZtLKE9fLfXbkcgkbt31xiPnFRuR+lrOp/dbHZ1+HZv\r\ngV+nFr/abmw8HVwGZcgYoPz5I9XAka7w/+pU6I0jr0toS5rZ1xLl7jyBLt/u\r\n56qbbIvSxYAz/NA1Zl53MAZu7VUq7B3cIA3Cv6VrqeApdwXnJaYILYXYmTX2\r\nua6SurQbIV4dXsVcy4Qkh+9SdUM+9rQ6TkT3DaDG/JENdkEJ/wQRwDgsvopb\r\nuhnH2VGKWcTxTkCM6QYiwWILsemUdxER+ivUU2b16KN99uWTHIWE3dGkWO5/\r\nr48jxGz9ua7Ofba20bDoglzU6R0Yj17Jgy5ppRgkZp8HkX6gjnj28SUoWY5x\r\n+MIcrqr4dn+PDG1ydNpFVCv/eaLiIIQWf2ctoCXot8QhJLocdufjcSauFLaM\r\nCS0JvGZH6VmLVaxOhD0t4PEric844P7YHjMjC3JTeE4AMXjC0IPQPZFfPbKl\r\nt7DuaJx1+ujQQ0YScx+kgCWyt5voNDTd1JOZ0G8Z+1M1b68uhB9n55XF4fPB\r\nljfOHLBmbJa38Ea6AiJLzPdpHpy1nMPffPur/92FUHesVEJvjK7nNBPUEz5Z\r\nQOe9bj94wPijx5eXlMCo0AjYX5bbgPNTotei9xZM6dHzpHmMXOWkYskTosMk\r\n+t+iiftT7T+bSdqyhoT2vnXgiY8G4FfjXP0=\r\n=jBlx\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc37_1653653332321_0.7872081790733432"},"_hasShrinkwrap":false},"0.2.0-rc38":{"name":"@kavibios/node-etl","version":"0.2.0-rc38","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"a28d08dccb21713bb88b869eaa7719d32d6ddac6","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc38","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-dkpF2jEHWkavp+6eKWvle2zCkDn5vcmVSTwcr9Wf/k0bfCoz5ulHKSaHc3PdYeIyPajU5KoFfWCAR+fVynaYaA==","shasum":"2b5eaa8f2fcd04b11db58ca546f1516af125be53","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc38.tgz","fileCount":33,"unpackedSize":44365,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHZbJ8n/qwSU8s99vfcBWdr773JGUACdGGJR11HfWFhJAiEA8aRRxdT0GXXBdCR/fEVwlzOLVfJCvtKqDLOwajgKx6w="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilL/UACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmollQ//S/FI1XIkelRznyMdRLgWYufadKCY38S4aBefQHsHgTsbO3Y3\r\nwtibl1Utz8DxUxStbnDe8QH2uvfOWqn6I3G6ExQR48yzYV6/zelPJRRYpdVw\r\nKID1KruI9RUJrXLGxjX/0YjaOQ8iwPDXA33+VJYC4WNkfXJiaaMSMexBKcer\r\nbom6Bemd8iCFvEBs1AfG0pYliYKT6C7W0A3lEjlo1uRItw0iMqqjp9oKuhd/\r\nO660pNGLH0+1c8XOT/RzajtqrdFhjvryMog3FYY+9+dIrePbdzjD1mjJSLIU\r\naCkZ+t/W4SwUiXm06Ly7Jsa4B1yXiQjdu2sManSNQSadMcWYZSwhRW3Q8z6I\r\nYBds0b7SFmSa5+JNrkK2mt48Aj40Hv6D6yvoL5qLhNtlpbY3SAALGTjZUj66\r\n4FEZbuEYjVdgKS75IqCqrRahmZslSqbqolu9cpMbOTm7n3nnTjA3gtMAgl0z\r\nTbTzE9cut5qnWBngC789DFeXSeofRWHzK12qZ3RoCl5Uj6JA9OLJLEIH1Xbf\r\nD/LWWqJ9HQFvoNHZbg/e4xS/FOWApEwc+pyRZxT3q1gaHSYvcZkCgadqPVr3\r\nyv9sn/n9U+L+DrqugB4hNSDSl2wGb/sgX+NhG2GyaTM+pgSCiVyPT8zoLxrI\r\nEommjmsTltL/Oyk+oWbkqr0PGjcCFqGlw68=\r\n=q5oZ\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc38_1653915603498_0.0013060349210982647"},"_hasShrinkwrap":false},"0.2.0-rc39":{"name":"@kavibios/node-etl","version":"0.2.0-rc39","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"de1dbf661f2a92e39344895ea85716f51db209eb","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.2.0-rc39","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-uwrJW8ES/k4M/SqGUjiLQ/f1nchDG4Y8ByBTT+UyvpOj6MHQvHyfWOdnI3/xjyRligcbmxVwgqIAB72EnKBo8Q==","shasum":"8d3484f49ffa424534c2f661dcde14870ba4f37a","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0-rc39.tgz","fileCount":33,"unpackedSize":44604,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/WhGV9RlvsDM3KtiHqb1g9CQeRZ6m19WoipGo9AY/lgIgcqTo3ftced38lRPxpwFWKsLGICwVxX4/ke29tHlLDJU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilMCUACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrvig//WmMrq+tQeW3BRPi/rmppqPztJRqmZ5IxzAqmHF0IUjGqx8du\r\nu10J7GDmSWRnhCe1wRjOy7jb1Q6jKbHdGWtNmJLk9dEwPo6JGde8+wCN5cp3\r\nCJ6uRghC/QZdLWmEQmvgG2lxeaYI48kLpMEt4t8FBcHyseAo9Vdeyj2Oc8SY\r\neTJtNyuUbWmSlaI3yTmJ6gJFOHWhviOnGTrW5BLZ2WFZ+SufYK7FDnnCvgat\r\nSfHKawRAlgEHxnJ7IMVvmYKOX/KtuYE28DA+clDqoh1Y8fxrvUmFyTDSWuHf\r\nV4Z40f25Zp6d25+HguXDMYR5hOR2qCx2fcMRF2kyuoeoP6h+bzw9gQN1wVG1\r\nxyS3JOgshY/pNQ+H+wYd2KE9uAuHoHvC152QHMuKnbnelaB1q7hhzS9yIuzK\r\nYrl4JLrM/5WufyzeS9gBs/dMZuqzSXBSAalI1VfUJiK21cjpSeLB2A9cITs0\r\nmzT6RB04i8paEpsMUxi8EkkHXMU8X+IucHBFSClXcOBxA05dW35f++x8IRR1\r\n8Jut5+6QKjxnORcwM/baOtZhugSe4ds5BwPMOfqjk3RaOxK3hTvGypgDyTed\r\nwcCNOKR1riyJFa8JwVCktfWtpNfRJ/shewPGb1dVkm25GtF2ypEvs0jfOOwR\r\nbUiQJ3LW8+c+wAUUntm9sVi28Z9rwcW3UwU=\r\n=TV54\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0-rc39_1653915796111_0.8674423033455938"},"_hasShrinkwrap":false},"0.2.0":{"name":"@kavibios/node-etl","version":"0.2.0","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"5d57bc07245969290f00446c7e3135f5dc4da19e","_id":"@kavibios/node-etl@0.2.0","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-u3ATJC4+RJHPh9yx9+uk2KBkoNTkvZPZoRlBwpNa9jzPquEaRv759ju84cZIZQ8gZVUAljNcjjd/22sGBRK4EA==","shasum":"25b6c10eeb244f181d3fd9e609468ca10da1e277","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.2.0.tgz","fileCount":33,"unpackedSize":44599,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICxLjeAhxLn7yyqECFU4Qi62ga9pTXoM/C8clqllPYVdAiEAjQaf/CdsGc72NpsE9yIZk+u9XRySocYYceM5mSPN+Ec="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJilMQOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYaQ/8DJTXC8xQfYMFA6lo5Kpb6kmIiP43Fe749duR73BzFcwFXhPf\r\nZaj88H0WnVl+lFnyKurfhua+5b8LrZdk0teIb0ORfEGd4hn+UDejHlLLaqbH\r\noIZg+hLlUhCHNalngVwoGGZsHfkTChA2PM6T0OZUJejSr3obLNFWQrto51G7\r\nDqwhgRmhIvku1Lq2Rfi6JN+Lc30V2FzQJDz1TSpdJxErJqfJulBRrrWZNQQR\r\n3D/60mByN6+wQGT+5hXO4Vv3BIyHNI3D6836zsvavOhBh4+3Ek+kNfHsNsWg\r\ns4peW2th7Wwt2FVRk+hHW2XBXznCQa3VqIA217AxgcFGuZ/U4xnBA3JDg++6\r\n1bqhABRbXUfk8hx1DIgG+m2AUt/SDWNI7x8B2rqH07WtfoP14Jyca1E7ireS\r\nwa/EUJdNYSROreinpI4fCogLpnTzRzy2tjqrjUAQ7sxqCrJhvHnllHYKkUN8\r\nE49/s30y9zWDOBt4YeTDG8LjSVK8wKdWTEVH/+VwWtWFZQFD+11bQXQ0XUwG\r\no57PuwJ9qe2PqU04qkr1ofyVtkrZ+03io7sCbov6VjImHr+OBcMjhOznyJ36\r\nKBAWAL1MijM8l/upHzXsH9f4sd8AvCeWSX/6hQijpRd9jjQm+5GikOLzXSD/\r\nFyWFHVqTmmaiy+SHxMnLsOzsPN1jjucHLkg=\r\n=Lqn4\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.2.0_1653916686242_0.23907159092418628"},"_hasShrinkwrap":false},"0.3.0-rc1":{"name":"@kavibios/node-etl","version":"0.3.0-rc1","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"8194a2f61182093b02bc04bb65385a59c5439147","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.3.0-rc1","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-9oE62MozwL0kS4NCAQG4eG1rEbJKodxd5AqQJCDxfjnU7XTwZiMvGiCQ+NEancEBLtRtl++59EmfLdCAWuRFnA==","shasum":"31d96b377e7e581d1d54c1f4b8786ee3c1d717b5","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.3.0-rc1.tgz","fileCount":34,"unpackedSize":44862,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHCABnNtXHUqK4hjM+Y/1LCWj3WFv8XGame5KO2j3tbQIhAI6DYHkl5LO9uSOtn4XX6VPY9FgdMweCxraQ34R7XY9M"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqZj7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpDUA//ca/gNYaqgpiWiN5aoeBfY3oy+LVG6mwyZBe9EgAhSoxI8qiy\r\n3XqyjiLtzH80VUJeuAkynjyuZmmyR1j00SdurPq76gO4CFkAZGxCO8s/eQxc\r\nNTUq3lClaf7HjOmEfGXNc3Bwdy3DMP8MFnhMu6Sih8OQRiB8EVMrVjcGuAzk\r\n3zyv7X1+Bqc1hez8Dh8Z7OEOKkcIq2Ur055UVB+J7U2iw2fckl8X0ccN23kl\r\n4N0sZvKGpCt9ARf75rzRQKJPC4LS3I2knkmQHePWvYeXGLKiWoPH0iKcFDqk\r\nbG2+T0SpKqay5fOFuQB6Xa1JaA3Cy7ilwUMpa78LanPSgvcennkaNKo50vP8\r\nxLswtj2B9/KYhqTXqMLuPMVj3cea/IngDsS6dD9pbqh7e+eowyCDC7VX0XN1\r\na1sJ7lLxgI8Vl9xs7U2hCJZz2xVbzlm95YMcsuH9/a8j7kt4DL2sK9kvrQgm\r\n+cCId1MnpRkNs8DegyiK4f/bqpBHqOwmB7FGz74t/72uouLPVpVN++JpMw4v\r\nNVd98DQdadXPoHdtzJy/XZZZtqGi9tf+YEtm/P8oM39KSfrVmbIZjMNSyo1X\r\nHIyNUf72s5HUz/Y3rJG+nfCxnIqbgz2mhsyXRlkoiaBPN/l9H5guv9oy+/a/\r\nz1feQInW+uaZ0054XYyHATiI+UzHgfdiRLI=\r\n=h62+\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.3.0-rc1_1655281915223_0.026306827788484366"},"_hasShrinkwrap":false},"0.3.0-rc2":{"name":"@kavibios/node-etl","version":"0.3.0-rc2","description":"Framework for extracting and transforming data using Javascript.","main":"lib/index.js","scripts":{"start":"nodemon --exec babel-node src/index.js","build":"babel src --out-dir lib","test":"jest","testWatch":"jest --watch"},"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"keywords":[],"author":"","license":"ISC","dependencies":{"@fast-csv/format":"^4.3.2","biguint-format":"^1.0.1","fast-csv":"^4.3.2","mssql":"^7.2.1","mysql2":"^2.3.0","mysql2-async":"^1.1.1"},"devDependencies":{"@babel/cli":"^7.15.4","@babel/core":"^7.15.5","@babel/node":"^7.15.4","@babel/preset-env":"^7.15.4","babel-jest":"^27.2.0","babel-plugin-add-module-exports":"^1.0.4","jest":"^27.2.0","nodemon":"^2.0.12"},"gitHead":"307a01800005ba48e6499759890f3b4975afd2d2","readme":"# node-etl\n\nFramework for extracting and transforming data using Javascript.\n\n## Usage\n\nImport 'JobRunner' and make a new instance. Register a job (see below) then call 'run' on the jobrunner.\nExtractConfig and loadConfig must be used when accessing a database - in this case they contain the connection\nconfiguration. You can configure connections to multiple databases.\nbreakOnError is a boolean - if true the jobRunner will terminate as soon as an error is encountered.\n\n```\nconst jobRunner = new JobRunner()\njobRunner.registerJobs({ myJob })\nawait jobRunner.run('job2', ['all'], extractConfig, loadConfig, breakOnError)\n```\n\n\n## Jobs\n\nA job is a list of stages - you can run a subset of stages when calling run by passing an array of strings (stage-names).\nTo run all stages pass `['all']` as the stages array.\n\nStages are always run in the order defined in the job.\n\n### Stage \n\nA stage is a list of rules. Rules are always run in the order specified in the stage definition.\n\nA rule is composed of 3 phases.\n\n1. The extract phase\n2. The transform phase\n3. The load phase\n\n#### Extract\n\nThe `extract` phase provides the raw data. It can be extracted from different sources.\n\nIf the provided sources are insufficient customSources can be injected via the JobRunner.\n\nThe `sql` source simple returns an array of rows by executing the given sql against the\nconfigured database.\n\nThe `csv` source reads csv files\n\nThe `json` source reads json files.\n\nThe `raw` source provides a constant dataset.\n\n#### Transform\n\nThe `transform` phase takes each row from the extract phase and applies a logical transformation to it.\nThis can be similar to a `map` function, but other transformations on the input array is possible.\n\n\n#### Loader\n\nThe `load` phase loads the resulting data into an output. This could be a `csv` or `json` file, but you\ncan also load data directly into a database using the `sql` loader, which loads each item in the array\ninto a row in the specified table. Note that the columns MUST be specified expicitly.\n\n","readmeFilename":"README.md","_id":"@kavibios/node-etl@0.3.0-rc2","_nodeVersion":"14.18.1","_npmVersion":"6.14.15","_npmUser":{"name":"kavibios","email":"kavi@bios.au.dk"},"dist":{"integrity":"sha512-8NN8nd/vF2qGg/O1EVZAln9m3YoTnBjKUM5zFrL2puVM32UvmhhdRcDrmEuAuoNzKFcFr2d3PNwMZboyL/8UdQ==","shasum":"9ad575f5f504dd3f9331fb328fba7d85151e3919","tarball":"https://registry.npmjs.org/@kavibios/node-etl/-/node-etl-0.3.0-rc2.tgz","fileCount":34,"unpackedSize":44950,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbvQzyHscuiCVTIBYL+zpVQzMeOFl2/3ENjD5TlXuTrgIgMgmzaIH/YzKm/0+pDiFoXJ6a8BVJHY3blV56RuSIq44="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiqZ0MACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZehAAl9myIOAyKIw5yjijvFOPPvBJ0YzCSRfe1EcdHhsRWNleQlI7\r\nXfPmE6OX2Y4ASdJigusZFISWdFZNMSQ6E0SXyXmgdrSpMfxMkxyesi5s8yCx\r\n3uMD/zMi/lrSutFxeWCzAV3mPzXGvO23ifvUawpkRiiWy2DVJrjXvwVun1qo\r\noNcmiJ7/n6u8fGkMrA/PiifekXEVH4Jfi/1s4pbLE1wVZX1RJe1wn/GArq5a\r\nSBqkTR5Lza2FLEHJAeEX9cTwpKxCdJigIcSSYbQ4bCZhn/EoHQbmGoA4Pt3R\r\ncA7ahy6T8pvVcLds3TlRYEDQLlq18OA4oRmMujaT4eRgP6bk6kRlOB0VV1rh\r\nVI5NIX1NaMlEjZ58DDhV3k6sfG5W42p6DSgBFmffBoBCa3kwGyJh0f8kuzGb\r\nUiRBqlFkICTgYUkIL5nvf1UZSWtJmHEG2jQuCD/jIRSuNEYtl6xNRknkvy20\r\nFN9+eszqlmcvDwwlvzpqFR0VZUZElv2DQeIBTZ/fk6AdbD5Q7M0TAXeHoO0N\r\n8jLdw69YkjBpGg33FFRJCIBvLuJU+8AfX+E9+SJ2uDgjiqTe4hmAwpAsiG8n\r\nVN/HqO2mT8Ql4b8pFoGvtJPj96vmJi+CTUwQ3Z8ja9STIkCCP/VZ32I83c+k\r\nRV0ez0+tku7cWVMUGveog1YxJNGshogAP4M=\r\n=uRSv\r\n-----END PGP SIGNATURE-----\r\n"},"directories":{},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/node-etl_0.3.0-rc2_1655282956296_0.9854292358986998"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-16T15:43:39.721Z","0.1.0-rc2":"2021-09-16T15:43:39.926Z","modified":"2022-06-15T08:49:16.488Z","0.1.0-rc3":"2021-09-16T17:41:39.203Z","0.1.0-rc4":"2021-09-16T17:52:42.138Z","0.1.0-rc5":"2021-09-16T18:04:23.419Z","0.1.0-rc6":"2021-09-16T18:13:27.059Z","0.1.0-rc7":"2021-09-17T12:17:38.349Z","0.1.0-rc8":"2021-09-17T13:04:52.701Z","0.1.0":"2021-09-17T13:05:48.123Z","0.1.1-rc2":"2021-09-17T13:14:27.946Z","0.1.1":"2021-09-17T13:24:15.809Z","0.2.0-rc1":"2021-09-17T13:24:58.723Z","0.2.0-rc2":"2021-09-21T07:52:28.948Z","0.1.2-rc1":"2021-10-12T13:23:55.825Z","0.2.0-rc3":"2021-10-12T13:25:07.233Z","0.1.2":"2021-10-12T13:27:03.822Z","0.2.0-rc4":"2021-10-13T09:14:10.525Z","0.2.0-rc5":"2021-10-13T09:20:52.243Z","0.2.0-rc6":"2021-10-13T09:48:57.630Z","0.2.0-rc7":"2021-10-13T10:01:47.843Z","0.2.0-rc8":"2021-10-13T10:04:55.798Z","0.2.0-rc9":"2021-10-13T10:20:50.212Z","0.2.0-rc10":"2021-10-13T10:22:53.327Z","0.2.0-rc11":"2021-10-14T09:23:39.373Z","0.2.0-rc12":"2022-01-27T10:31:24.371Z","0.2.0-rc13":"2022-01-27T13:37:25.201Z","0.2.0-rc14":"2022-01-27T13:40:42.194Z","0.2.0-rc15":"2022-01-27T14:02:58.868Z","0.2.0-rc16":"2022-04-26T10:06:51.870Z","0.2.0-rc17":"2022-04-26T10:16:15.006Z","0.2.0-rc18":"2022-04-26T10:32:27.243Z","0.2.0-rc19":"2022-04-26T10:34:41.784Z","0.2.0-rc20":"2022-04-26T10:37:26.083Z","0.2.0-rc21":"2022-04-26T10:54:16.036Z","0.2.0-rc22":"2022-04-26T13:23:19.395Z","0.2.0-rc23":"2022-04-26T13:23:47.324Z","0.2.0-rc24":"2022-04-27T10:50:54.704Z","0.2.0-rc25":"2022-04-27T10:55:23.863Z","0.2.0-rc26":"2022-04-27T11:05:18.063Z","0.2.0-rc27":"2022-05-02T09:19:53.816Z","0.2.0-rc28":"2022-05-02T09:35:14.688Z","0.2.0-rc29":"2022-05-02T09:40:45.761Z","0.2.0-rc30":"2022-05-11T10:49:20.585Z","0.2.0-rc31":"2022-05-11T11:03:17.258Z","0.2.0-rc32":"2022-05-11T11:11:47.158Z","0.2.0-rc33":"2022-05-11T11:14:06.767Z","0.2.0-rc34":"2022-05-11T11:52:34.992Z","0.2.0-rc35":"2022-05-11T12:48:36.919Z","0.2.0-rc36":"2022-05-27T12:04:15.587Z","0.2.0-rc37":"2022-05-27T12:08:52.491Z","0.2.0-rc38":"2022-05-30T13:00:03.996Z","0.2.0-rc39":"2022-05-30T13:03:16.249Z","0.2.0":"2022-05-30T13:18:06.420Z","0.3.0-rc1":"2022-06-15T08:31:55.440Z","0.3.0-rc2":"2022-06-15T08:49:16.407Z"},"maintainers":[{"name":"kavibios","email":"kavi@bios.au.dk"}],"description":"Framework for extracting and transforming data using Javascript.","keywords":[],"repository":{"type":"git","url":"git@gitlab.au.dk:bioskaloe-intern/tools/node-packages/node-etl.git"},"license":"ISC","readme":"","readmeFilename":""}