Initial import with skill sheet working

This commit is contained in:
2024-12-04 00:11:23 +01:00
commit 9050c80ab4
4488 changed files with 671048 additions and 0 deletions

21
node_modules/interpret/LICENSE generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014-2018, 2022 Tyler Kellen <tyler@sleekcode.net>, Blaine Bublitz <blaine.bublitz@gmail.com>, and Eric Schoffstall <yo@contra.io>
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.

244
node_modules/interpret/README.md generated vendored Normal file
View File

@ -0,0 +1,244 @@
<p align="center">
<a href="http://gulpjs.com">
<img height="257" width="114" src="https://raw.githubusercontent.com/gulpjs/artwork/master/gulp-2x.png">
</a>
</p>
# interpret
[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][ci-image]][ci-url] [![Coveralls Status][coveralls-image]][coveralls-url]
A dictionary of file extensions and associated module loaders.
## What is it
This is used by [Liftoff] to automatically require dependencies for configuration files, and by [rechoir] for registering module loaders.
## How to use it
Consumers should use the exported `extensions` or `jsVariants` object to determine which module should be loaded for a given extension. If a matching extension is found, consumers should do the following:
1. If the value is null, do nothing.
2. If the value is a string, try to require it.
3. If the value is an object, try to require the `module` property. If successful, the `register` property (a function) should be called with the module passed as the first argument. **Advanced:** An optional second argument can be provided to replace the default configuration for a hook.
4. If the value is an array, iterate over it, attempting step #2 or #3 until one of the attempts does not throw.
## API
This module provides two top-level properties: `extensions` and `jsVariants`.
**Note:** This module does not depend on any of the loaders it recommends; instead, end-users are expected to install the hooks they want to use for the file types they want to use. See supported extensions and their hooks in the sections below.
### `extensions`
A mapping of file extensions to modules which provide a [require.extensions] loader.
File extension keys are all in the format of `'.foo'` or `'.foo.bar'` and module loader values are either `null` if the loader should fallthrough to node's loader,
or a string representing the module to be required, an object of `{ module: 'foobar', register: function }`, or an array containing those strings and/or objects.
A sample of an entry containing multiple hooks would look like:
```js
{
'.ts': [
'ts-node/register',
'sucrase/register/ts',
{
module: '@babel/register',
register: function(hook) {
hook({
extensions: '.ts',
rootMode: 'upward-optional',
ignore: [ignoreNonBabelAndNodeModules],
});
},
},
],
}
```
**Supported extensions and their hooks**
```yaml file=scripts/extensions.yaml
.babel.js:
- '@babel/register'
.babel.jsx:
- '@babel/register'
.babel.ts:
- '@babel/register'
.babel.tsx:
- '@babel/register'
.cjs:
- interpret/cjs-stub
.coffee:
- coffeescript/register
.coffee.md:
- coffeescript/register
.cts:
- ts-node/register
.esbuild.js:
- esbuild-register/dist/node
.esbuild.jsx:
- esbuild-register/dist/node
.esbuild.ts:
- esbuild-register/dist/node
.esbuild.tsx:
- esbuild-register/dist/node
.esm.js:
- esm
.js:
- built-in node.js loader
.json:
- built-in node.js loader
.json5:
- json5/lib/register
.jsx:
- '@babel/register'
- sucrase/register/jsx
.litcoffee:
- coffeescript/register
.mdx:
- '@mdx-js/register'
.mjs:
- interpret/mjs-stub
.node:
- built-in node.js loader
.sucrase.js:
- sucrase/dist/register
.sucrase.jsx:
- sucrase/dist/register
.sucrase.ts:
- sucrase/dist/register
.sucrase.tsx:
- sucrase/dist/register
.swc.js:
- '@swc/register'
.swc.jsx:
- '@swc/register'
.swc.ts:
- '@swc/register'
.swc.tsx:
- '@swc/register'
.toml:
- toml-require
.ts:
- ts-node/register
- sucrase/register/ts
- '@babel/register'
- esbuild-register/dist/node
- '@swc/register'
.tsx:
- ts-node/register
- sucrase/register/tsx
- '@babel/register'
- esbuild-register/dist/node
- '@swc/register'
.yaml:
- yaml-hook/register
.yml:
- yaml-hook/register
```
### `jsVariants`
The `jsVariants` is the same mapping as above, but only include the extensions which are variants of JavaScript.
**Supported extensions and their hooks**
```yaml file=scripts/jsVariants.yaml
.babel.js:
- '@babel/register'
.babel.jsx:
- '@babel/register'
.babel.ts:
- '@babel/register'
.babel.tsx:
- '@babel/register'
.cjs:
- interpret/cjs-stub
.coffee:
- coffeescript/register
.coffee.md:
- coffeescript/register
.esbuild.js:
- esbuild-register/dist/node
.esbuild.jsx:
- esbuild-register/dist/node
.esbuild.ts:
- esbuild-register/dist/node
.esbuild.tsx:
- esbuild-register/dist/node
.esm.js:
- esm
.js:
- built-in node.js loader
.jsx:
- '@babel/register'
- sucrase/register/jsx
.litcoffee:
- coffeescript/register
.mdx:
- '@mdx-js/register'
.mjs:
- interpret/mjs-stub
.sucrase.js:
- sucrase/dist/register
.sucrase.jsx:
- sucrase/dist/register
.sucrase.ts:
- sucrase/dist/register
.sucrase.tsx:
- sucrase/dist/register
.swc.js:
- '@swc/register'
.swc.jsx:
- '@swc/register'
.swc.ts:
- '@swc/register'
.swc.tsx:
- '@swc/register'
.ts:
- ts-node/register
- sucrase/register/ts
- '@babel/register'
- esbuild-register/dist/node
- '@swc/register'
.tsx:
- ts-node/register
- sucrase/register/tsx
- '@babel/register'
- esbuild-register/dist/node
- '@swc/register'
```
## License
MIT
<!-- prettier-ignore-start -->
[downloads-image]: https://img.shields.io/npm/dm/interpret.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/interpret
[npm-image]: https://img.shields.io/npm/v/interpret.svg?style=flat-square
[ci-url]: https://github.com/gulpjs/interpret/actions?query=workflow:dev
[ci-image]: https://img.shields.io/github/workflow/status/gulpjs/interpret/dev?style=flat-square
[coveralls-url]: https://coveralls.io/r/gulpjs/interpret
[coveralls-image]: https://img.shields.io/coveralls/gulpjs/interpret/master.svg?style=flat-square
<!-- prettier-ignore-end -->
<!-- prettier-ignore-start -->
[Liftoff]: http://github.com/gulpjs/liftoff
[rechoir]: http://github.com/gulpjs/rechoir
[require.extensions]: https://nodejs.org/api/modules.html#requireextensions
<!-- prettier-ignore-end -->

1
node_modules/interpret/cjs-stub.js generated vendored Normal file
View File

@ -0,0 +1 @@
require.extensions['.cjs'] = null;

542
node_modules/interpret/index.js generated vendored Normal file
View File

@ -0,0 +1,542 @@
var path = require('path');
// We only register on the final extension (like `.js`) due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
// However, we use these matchers to apply the transform only if the full extension matches
function endsInJsx(filename) {
return filename.endsWith('.jsx');
}
function endsInTs(filename) {
return filename.endsWith('.ts');
}
function endsInTsx(filename) {
return filename.endsWith('.tsx');
}
function endsInBabelJs(filename) {
return filename.endsWith('.babel.js');
}
function endsInBabelJsx(filename) {
return filename.endsWith('.babel.jsx');
}
function endsInBabelTs(filename) {
return filename.endsWith('.babel.ts');
}
function endsInBabelTsx(filename) {
return filename.endsWith('.babel.tsx');
}
function endsInEsbuildJs(filename) {
return filename.endsWith('.esbuild.js');
}
function endsInEsbuildJsx(filename) {
return filename.endsWith('.esbuild.jsx');
}
function endsInEsbuildTs(filename) {
return filename.endsWith('.esbuild.ts');
}
function endsInEsbuildTsx(filename) {
return filename.endsWith('.esbuild.tsx');
}
function endsInSucraseJs(filename) {
return filename.endsWith('.sucrase.js');
}
function endsInSucraseJsx(filename) {
return filename.endsWith('.sucrase.jsx');
}
function endsInSucraseTs(filename) {
return filename.endsWith('.sucrase.ts');
}
function endsInSucraseTsx(filename) {
return filename.endsWith('.sucrase.tsx');
}
function endsInSwcJs(filename) {
return filename.endsWith('.swc.js');
}
function endsInSwcJsx(filename) {
return filename.endsWith('.swc.jsx');
}
function endsInSwcTs(filename) {
return filename.endsWith('.swc.ts');
}
function endsInSwcTsx(filename) {
return filename.endsWith('.swc.tsx');
}
var cjsStub = path.join(__dirname, 'cjs-stub');
var mjsStub = path.join(__dirname, 'mjs-stub');
function isNodeModules(file) {
return path.relative(process.cwd(), file).includes('node_modules');
}
var extensions = {
'.babel.js': {
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [{ only: [endsInBabelJs], presets: ['@babel/preset-env'] }],
};
hook(Object.assign({}, config, { extensions: '.js' }));
},
},
'.babel.jsx': {
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [
{
only: [endsInBabelJsx],
presets: ['@babel/preset-env', '@babel/preset-react'],
},
],
};
hook(Object.assign({}, config, { extensions: '.jsx' }));
},
},
'.babel.ts': [
{
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [
{
only: [endsInBabelTs],
presets: ['@babel/preset-env', '@babel/preset-typescript'],
},
],
};
hook(Object.assign({}, config, { extensions: '.ts' }));
},
},
],
'.babel.tsx': {
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [
{
only: [endsInBabelTsx],
presets: [
'@babel/preset-env',
'@babel/preset-react',
[
'@babel/preset-typescript',
{
isTSX: true,
allExtensions: true,
},
],
],
},
],
};
hook(Object.assign({}, config, { extensions: '.tsx' }));
},
},
'.cjs': cjsStub,
'.coffee': 'coffeescript/register',
'.coffee.md': 'coffeescript/register',
'.esbuild.js': {
module: 'esbuild-register/dist/node',
register: function (mod, config) {
config = config || {
target: 'node' + process.version.slice(1),
hookMatcher: endsInEsbuildJs,
};
mod.register(Object.assign({}, config, { extensions: ['.js'] }));
},
},
'.esbuild.jsx': {
module: 'esbuild-register/dist/node',
register: function (mod, config) {
config = config || {
target: 'node' + process.version.slice(1),
hookMatcher: endsInEsbuildJsx,
};
mod.register(Object.assign({}, config, { extensions: ['.jsx'] }));
},
},
'.esbuild.ts': {
module: 'esbuild-register/dist/node',
register: function (mod, config) {
config = config || {
target: 'node' + process.version.slice(1),
hookMatcher: endsInEsbuildTs,
};
mod.register(Object.assign({}, config, { extensions: ['.ts'] }));
},
},
'.esbuild.tsx': {
module: 'esbuild-register/dist/node',
register: function (mod, config) {
config = config || {
target: 'node' + process.version.slice(1),
hookMatcher: endsInEsbuildTsx,
};
mod.register(Object.assign({}, config, { extensions: ['.tsx'] }));
},
},
'.esm.js': {
module: 'esm',
register: function (hook) {
// register on .js extension due to https://github.com/joyent/node/blob/v0.12.0/lib/module.js#L353
// which only captures the final extension (.esm.js -> .js)
var esmLoader = hook(module);
require.extensions['.js'] = esmLoader('module')._extensions['.js'];
},
},
'.js': null,
'.json': null,
'.json5': 'json5/lib/register',
'.jsx': [
{
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [
{
only: [endsInJsx],
presets: ['@babel/preset-env', '@babel/preset-react'],
},
],
};
hook(Object.assign({}, config, { extensions: '.jsx' }));
},
},
'sucrase/register/jsx',
],
'.litcoffee': 'coffeescript/register',
// The mdx loader hooks both `.md` and `.mdx` when it is imported
// but we only install the hook if `.mdx` is the first file
'.mdx': '@mdx-js/register',
'.mjs': mjsStub,
'.node': null,
'.sucrase.js': {
module: 'sucrase/dist/register',
register: function (hook, config) {
config = config || {
matcher: endsInSucraseJs,
};
hook.registerJS(config);
},
},
'.sucrase.jsx': {
module: 'sucrase/dist/register',
register: function (hook, config) {
config = config || {
matcher: endsInSucraseJsx,
};
hook.registerJSX(config);
},
},
'.sucrase.ts': {
module: 'sucrase/dist/register',
register: function (hook, config) {
config = config || {
matcher: endsInSucraseTs,
};
hook.registerTS(config);
},
},
'.sucrase.tsx': {
module: 'sucrase/dist/register',
register: function (hook, config) {
config = config || {
matcher: endsInSucraseTsx,
};
hook.registerTSX(config);
},
},
'.swc.js': {
module: '@swc/register',
register: function (hook, config) {
config = config || {
only: [endsInSwcJs],
ignore: [isNodeModules],
jsc: {
parser: {
syntax: 'ecmascript',
},
},
module: {
type: 'commonjs',
},
};
hook(
Object.assign({}, config, {
extensions: '.js',
})
);
},
},
'.swc.jsx': {
module: '@swc/register',
register: function (hook, config) {
config = config || {
only: [endsInSwcJsx],
ignore: [isNodeModules],
jsc: {
parser: {
syntax: 'ecmascript',
jsx: true,
},
},
module: {
type: 'commonjs',
},
};
hook(
Object.assign({}, config, {
extensions: '.jsx',
})
);
},
},
'.swc.ts': {
module: '@swc/register',
register: function (hook, config) {
config = config || {
only: [endsInSwcTs],
ignore: [isNodeModules],
jsc: {
parser: {
syntax: 'typescript',
},
},
module: {
type: 'commonjs',
},
};
hook(
Object.assign({}, config, {
extensions: '.ts',
})
);
},
},
'.swc.tsx': {
module: '@swc/register',
register: function (hook, config) {
config = config || {
only: [endsInSwcTsx],
ignore: [isNodeModules],
jsc: {
parser: {
syntax: 'typescript',
tsx: true,
},
},
module: {
type: 'commonjs',
},
};
hook(
Object.assign({}, config, {
extensions: '.tsx',
})
);
},
},
'.toml': {
module: 'toml-require',
register: function (hook, config) {
hook.install(config);
},
},
'.ts': [
'ts-node/register',
'sucrase/register/ts',
{
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [
{
only: [endsInTs],
presets: ['@babel/preset-env', '@babel/preset-typescript'],
},
],
};
hook(
Object.assign({}, config, {
extensions: '.ts',
})
);
},
},
{
module: 'esbuild-register/dist/node',
register: function (mod, config) {
config = config || {
target: 'node' + process.version.slice(1),
hookMatcher: endsInTs,
};
mod.register(
Object.assign({}, config, {
extensions: ['.ts'],
})
);
},
},
{
module: '@swc/register',
register: function (hook, config) {
config = config || {
only: [endsInTs],
ignore: [isNodeModules],
jsc: {
parser: {
syntax: 'typescript',
},
},
module: {
type: 'commonjs',
},
};
hook(
Object.assign({}, config, {
extensions: '.ts',
})
);
},
},
],
'.cts': ['ts-node/register'],
'.tsx': [
'ts-node/register',
'sucrase/register/tsx',
{
module: '@babel/register',
register: function (hook, config) {
config = config || {
rootMode: 'upward-optional',
overrides: [
{
only: [endsInTsx],
presets: [
'@babel/preset-env',
'@babel/preset-react',
[
'@babel/preset-typescript',
{
isTSX: true,
allExtensions: true,
},
],
],
},
],
};
hook(
Object.assign({}, config, {
extensions: '.tsx',
})
);
},
},
{
module: 'esbuild-register/dist/node',
register: function (mod, config) {
config = config || {
target: 'node' + process.version.slice(1),
hookMatcher: endsInTsx,
};
mod.register(
Object.assign({}, config, {
extensions: ['.tsx'],
})
);
},
},
{
module: '@swc/register',
register: function (hook, config) {
config = config || {
only: [endsInTsx],
ignore: [isNodeModules],
jsc: {
parser: {
syntax: 'typescript',
tsx: true,
},
},
module: {
type: 'commonjs',
},
};
hook(
Object.assign({}, config, {
extensions: '.tsx',
})
);
},
},
],
'.yaml': 'yaml-hook/register',
'.yml': 'yaml-hook/register',
};
var jsVariantExtensions = [
'.js',
'.babel.js',
'.babel.jsx',
'.babel.ts',
'.babel.tsx',
'.esbuild.js',
'.esbuild.jsx',
'.esbuild.ts',
'.esbuild.tsx',
'.cjs',
'.coffee',
'.coffee.md',
'.esm.js',
'.jsx',
'.litcoffee',
'.mdx',
'.mjs',
'.sucrase.js',
'.sucrase.jsx',
'.sucrase.ts',
'.sucrase.tsx',
'.swc.js',
'.swc.jsx',
'.swc.ts',
'.swc.tsx',
'.ts',
'.tsx',
];
module.exports = {
extensions: extensions,
jsVariants: jsVariantExtensions.reduce(function (result, ext) {
result[ext] = extensions[ext];
return result;
}, {}),
};

1
node_modules/interpret/mjs-stub.js generated vendored Normal file
View File

@ -0,0 +1 @@
require.extensions['.mjs'] = null;

73
node_modules/interpret/package.json generated vendored Normal file
View File

@ -0,0 +1,73 @@
{
"name": "interpret",
"version": "3.1.1",
"description": "A dictionary of file extensions and associated module loaders.",
"author": "Gulp Team <team@gulpjs.com> (https://gulpjs.com/)",
"contributors": [
"Blaine Bublitz <blaine.bublitz@gmail.com>",
"Tyler Kellen <tyler@sleekcode.net> (http://goingslowly.com/)"
],
"repository": "gulpjs/interpret",
"license": "MIT",
"engines": {
"node": ">=10.13.0"
},
"main": "index.js",
"files": [
"LICENSE",
"index.js",
"cjs-stub.js",
"mjs-stub.js"
],
"scripts": {
"readme": "remark README.md --use ./scripts/plugin.mjs --output",
"lint": "eslint .",
"pretest": "npm run lint",
"test": "nyc mocha --async-only"
},
"devDependencies": {
"eslint": "^7.0.0",
"eslint-config-gulp": "^5.0.0",
"eslint-plugin-node": "^11.1.0",
"expect": "^27.0.0",
"js-yaml": "^4.1.0",
"mocha": "^8.0.0",
"nyc": "^15.0.0",
"parse-node-version": "^2.0.0",
"rechoir": "^0.8.0",
"remark-cli": "^10.0.1",
"remark-code-import": "^1.1.0",
"shelljs": "0.8.5"
},
"nyc": {
"extension": [
".js"
],
"reporter": [
"lcov",
"text-summary"
]
},
"prettier": {
"singleQuote": true
},
"keywords": [
"coffee",
"coffee.md",
"coffeescript",
"es",
"es6",
"js",
"json",
"json5",
"jsx",
"react",
"litcoffee",
"toml",
"ts",
"typescript",
"xml",
"yaml",
"yml"
]
}