This commit is contained in:
lalBi94
2023-03-05 13:23:23 +01:00
commit 7bc56c09b5
14034 changed files with 1834369 additions and 0 deletions

14
node_modules/append-transform/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,14 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [2.0.0](https://github.com/istanbuljs/append-transform/compare/v1.0.0...v2.0.0) (2019-09-09)
### ⚠ BREAKING CHANGES
* Requires Node.js 8
### Features
* Update dependencies ([#12](https://github.com/istanbuljs/append-transform/issues/12)) ([2a8b22b](https://github.com/istanbuljs/append-transform/commit/2a8b22b))

91
node_modules/append-transform/index.js generated vendored Normal file
View File

@@ -0,0 +1,91 @@
'use strict';
const path = require('path');
const js = require('default-require-extensions/js');
module.exports = appendTransform;
let count = 0;
// eslint-disable-next-line node/no-deprecated-api
function appendTransform(transform, ext = '.js', extensions = require.extensions) {
// Generate a unique key for this transform
const key = path.join(__dirname, count.toString());
count++;
let forwardGet;
let forwardSet;
const descriptor = Object.getOwnPropertyDescriptor(extensions, ext) || {value: js, configurable: true};
if (
((descriptor.get || descriptor.set) && !(descriptor.get && descriptor.set)) ||
!descriptor.configurable
) {
throw new Error('Somebody did bad things to require.extensions["' + ext + '"]');
}
if (descriptor.get) {
// Wrap a previous append-transform install and pass through to the getter/setter pair it created
forwardGet = function () {
return descriptor.get();
};
forwardSet = function (val) {
descriptor.set(val);
return forwardGet();
};
} else {
forwardGet = function () {
return descriptor.value;
};
forwardSet = function (val) {
descriptor.value = val;
return val;
};
}
function wrapCustomHook(hook) {
return function (module, filename) {
// We wrap every added extension, but we only apply the transform to the one on top of the stack
if (!module[key]) {
module[key] = true;
const originalCompile = module._compile;
// eslint-disable-next-line func-name-matching, func-names
module._compile = function replacementCompile(code, filename) {
module._compile = originalCompile;
code = transform(code, filename);
module._compile(code, filename);
};
}
hook(module, filename);
};
}
// Wrap the original
forwardSet(wrapCustomHook(forwardGet()));
const hooks = [forwardGet()];
function setCurrentHook(hook) {
const restoreIndex = hooks.indexOf(hook);
if (restoreIndex === -1) {
hooks.push(forwardSet(wrapCustomHook(hook)));
} else {
// We have already seen this hook, and it is being reverted (proxyquire, etc) - don't wrap again.
hooks.splice(restoreIndex + 1, hooks.length);
forwardSet(hook);
}
}
Object.defineProperty(extensions, ext, {
configurable: true,
enumerable: true,
get: forwardGet,
set: setCurrentHook
});
}

21
node_modules/append-transform/license generated vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) James Talmage <james@talmage.io> (github.com/jamestalmage)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

47
node_modules/append-transform/package.json generated vendored Normal file
View File

@@ -0,0 +1,47 @@
{
"name": "append-transform",
"version": "2.0.0",
"description": "Install a transform to `require.extensions` that always runs last, even if additional extensions are added later.",
"license": "MIT",
"repository": "istanbuljs/append-transform",
"author": {
"name": "James Talmage",
"email": "james@talmage.io",
"url": "github.com/jamestalmage"
},
"engines": {
"node": ">=8"
},
"scripts": {
"pretest": "xo",
"test": "nyc --reporter=lcov --reporter=text ava"
},
"files": [
"index.js"
],
"keywords": [
"transform",
"require",
"append",
"last",
"coverage",
"source-map",
"extension",
"module"
],
"dependencies": {
"default-require-extensions": "^3.0.0"
},
"devDependencies": {
"ava": "^2.3.0",
"coveralls": "^3.0.6",
"fake-module-system": "^0.3.0",
"nyc": "^14.1.1",
"xo": "^0.24.0"
},
"xo": {
"ignores": [
"test/_mock-module-system.js"
]
}
}

76
node_modules/append-transform/readme.md generated vendored Normal file
View File

@@ -0,0 +1,76 @@
# append-transform [![Build Status](https://travis-ci.org/istanbuljs/append-transform.svg?branch=master)](https://travis-ci.org/istanbuljs/append-transform) [![Coverage Status](https://coveralls.io/repos/github/istanbuljs/append-transform/badge.svg?branch=master)](https://coveralls.io/github/istanbuljs/append-transform?branch=master)
> Install a transform to `require.extensions` that always runs last, even if additional extensions are added later
The [typical require extension](https://gist.github.com/jamestalmage/df922691475cff66c7e6) looks something like this:
```js
const myTransform = require('my-transform');
const oldExtension = require.extensions['.js'];
require.extensions['.js'] = (module, filename) => {
const oldCompile = module._compile;
module._compile = (code, filename) => {
code = myTransform(code);
module._compile = oldCompile;
module._compile(code, filename);
};
oldExtension(module, filename);
};
```
In **almost** all cases, that is sufficient and is the method that should be used (check out [`pirates`](https://www.npmjs.com/package/pirates) for an easy way to do it correctly). In **rare** cases you must ensure your transform remains the last one, even if other transforms are added later. For example, `nyc` uses this module to ensure its transform is applied last so it can capture the final source-map information, and ensure any language extensions it can't understand are already transpiled (ES2015 via `babel` for instance).
*WARNING:* You should be sure you *actually* need this, as it takes control away from the user. Your transform remains the last one applied, even as users continue to add more transforms. This is potentially confusing. Coverage libraries like `nyc` (and `istanbul` on which it relies) have valid reasons for doing this, but you should prefer conventional transform installation via [`pirates`](https://www.npmjs.com/package/pirates).
References:
- [Detailed Breakdown of How Require Extensions Work](https://gist.github.com/jamestalmage/df922691475cff66c7e6)
- The [test suite](https://github.com/avajs/append-transform/blob/master/test/execution-order.js) provides a good overview of how this library manipulates the order in which transforms are applied.
## Install
```
$ npm install --save append-transform
```
## Usage
```js
const appendTransform = require('append-transform');
const myTransform = require('my-transform');
appendTransform((code, filename) => {
if (myTransform.shouldTransform(filename)) {
code = myTransform.transform(code);
}
return code;
});
```
## API
### appendTransform(transformFn, [extension])
#### transformFn
Type: `function(code: string, filename: string)`
A callback that modifies the incoming `code` argument in some way, and returns the transformed result. `filename` is provided to filter which files the transform applies to. If a transform should not manipulate a particular file, just return `code` without modifying it. It is fairly common to avoid transforming files in `node_modules`. In that case you may want to use [`node-modules-regexp`](https://www.npmjs.com/package/node-modules-regexp) to help reliably detect `node_modules` paths and avoid transforming them.
#### extension
Type: `string`<br>
Default: `'.js'`
The extension for the types of files this transform is capable of handling.
## License
MIT © [James Talmage](https://github.com/jamestalmage)