Remove build artifacts and add .gitignore for PWA
Remove accidentally committed node_modules/ and dist/ directories, and add .gitignore to prevent them from being tracked. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
e8428de775
commit
9639ad44f4
12017 changed files with 2 additions and 1791797 deletions
2
pwa/.gitignore
vendored
Normal file
2
pwa/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
1
pwa/dist/assets/index-Cki23tZT.css
vendored
1
pwa/dist/assets/index-Cki23tZT.css
vendored
File diff suppressed because one or more lines are too long
13
pwa/dist/assets/index-Db4vftzp.js
vendored
13
pwa/dist/assets/index-Db4vftzp.js
vendored
File diff suppressed because one or more lines are too long
4450
pwa/dist/data/shelters.json
vendored
4450
pwa/dist/data/shelters.json
vendored
File diff suppressed because it is too large
Load diff
13
pwa/dist/icons/generate-icons.sh
vendored
13
pwa/dist/icons/generate-icons.sh
vendored
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Generate simple SVG-based placeholder icons for the PWA
|
|
||||||
# These should be replaced with proper icons later
|
|
||||||
|
|
||||||
for size in 192 512; do
|
|
||||||
cat > "public/icons/icon-${size}.svg" << EOF
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}">
|
|
||||||
<rect width="${size}" height="${size}" fill="#1A1A2E" rx="32"/>
|
|
||||||
<path d="M${size/2} ${size*15/100}L${size*15/100} ${size*55/100}h${size*15/100}v${size*30/100}h${size*40/100}v-${size*30/100}h${size*15/100}Z" fill="#FF6B35" stroke="#fff" stroke-width="${size/50}"/>
|
|
||||||
<text x="${size/2}" y="${size*75/100}" text-anchor="middle" fill="#fff" font-size="${size*15/100}" font-weight="bold" font-family="sans-serif">T</text>
|
|
||||||
</svg>
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
BIN
pwa/dist/icons/icon-192.png
vendored
BIN
pwa/dist/icons/icon-192.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 963 B |
BIN
pwa/dist/icons/icon-512.png
vendored
BIN
pwa/dist/icons/icon-512.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 4.1 KiB |
69
pwa/dist/index.html
vendored
69
pwa/dist/index.html
vendored
|
|
@ -1,69 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
|
||||||
<meta name="theme-color" content="#1A1A2E" />
|
|
||||||
<meta name="description" content="Find the nearest public shelter in Norway" />
|
|
||||||
<title>Tilfluktsrom</title>
|
|
||||||
<link rel="manifest" href="/manifest.webmanifest" />
|
|
||||||
<link rel="icon" type="image/png" sizes="192x192" href="/icons/icon-192.png" />
|
|
||||||
<link rel="apple-touch-icon" href="/icons/icon-192.png" />
|
|
||||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"
|
|
||||||
integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="
|
|
||||||
crossorigin="" />
|
|
||||||
<script type="module" crossorigin src="/assets/index-Db4vftzp.js"></script>
|
|
||||||
<link rel="stylesheet" crossorigin href="/assets/index-Cki23tZT.css">
|
|
||||||
<script id="vite-plugin-pwa:register-sw" src="/registerSW.js"></script></head>
|
|
||||||
<body>
|
|
||||||
<div id="app">
|
|
||||||
<!-- Status bar -->
|
|
||||||
<div id="status-bar">
|
|
||||||
<span id="status-text"></span>
|
|
||||||
<button id="refresh-btn" aria-label="Refresh data">↻</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Main content: map or compass -->
|
|
||||||
<div id="main-content">
|
|
||||||
<div id="map-container"></div>
|
|
||||||
<div id="compass-container">
|
|
||||||
<span id="compass-address"></span>
|
|
||||||
<span id="compass-distance"></span>
|
|
||||||
</div>
|
|
||||||
<!-- Toggle map/compass FAB -->
|
|
||||||
<button id="toggle-fab" aria-label="Toggle map/compass view">🧭</button>
|
|
||||||
<!-- Reset view button -->
|
|
||||||
<button id="reset-view-btn" aria-label="Reset view">⌖</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- No-cache warning banner -->
|
|
||||||
<div id="no-cache-banner">
|
|
||||||
<span id="no-cache-text"></span>
|
|
||||||
<button id="cache-retry-btn"></button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Bottom sheet with shelter info -->
|
|
||||||
<div id="bottom-sheet">
|
|
||||||
<div id="selected-shelter">
|
|
||||||
<canvas id="mini-arrow" width="96" height="96"></canvas>
|
|
||||||
<div id="selected-shelter-info">
|
|
||||||
<div id="selected-shelter-address"></div>
|
|
||||||
<div id="selected-shelter-details"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="shelter-list"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Loading overlay -->
|
|
||||||
<div id="loading-overlay">
|
|
||||||
<div id="loading-spinner"></div>
|
|
||||||
<div id="loading-text"></div>
|
|
||||||
<div id="loading-button-row">
|
|
||||||
<button id="loading-skip-btn"></button>
|
|
||||||
<button id="loading-ok-btn"></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
24
pwa/dist/manifest.webmanifest
vendored
24
pwa/dist/manifest.webmanifest
vendored
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
"name": "Tilfluktsrom",
|
|
||||||
"short_name": "Tilfluktsrom",
|
|
||||||
"description": "Find the nearest public shelter in Norway",
|
|
||||||
"start_url": "/",
|
|
||||||
"display": "standalone",
|
|
||||||
"orientation": "portrait",
|
|
||||||
"theme_color": "#1A1A2E",
|
|
||||||
"background_color": "#1A1A2E",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "/icons/icon-192.png",
|
|
||||||
"sizes": "192x192",
|
|
||||||
"type": "image/png",
|
|
||||||
"purpose": "any maskable"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "/icons/icon-512.png",
|
|
||||||
"sizes": "512x512",
|
|
||||||
"type": "image/png",
|
|
||||||
"purpose": "any maskable"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
1
pwa/dist/registerSW.js
vendored
1
pwa/dist/registerSW.js
vendored
|
|
@ -1 +0,0 @@
|
||||||
if('serviceWorker' in navigator) {window.addEventListener('load', () => {navigator.serviceWorker.register('/sw.js', { scope: '/' })})}
|
|
||||||
1
pwa/dist/sw.js
vendored
1
pwa/dist/sw.js
vendored
|
|
@ -1 +0,0 @@
|
||||||
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise(s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()}).then(()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e}));self.define=(n,t)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let r={};const o=e=>i(e,c),a={module:{uri:c},exports:r,require:o};s[c]=Promise.all(n.map(e=>a[e]||o(e))).then(e=>(t(...e),r))}}define(["./workbox-1d305bb8"],function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"registerSW.js",revision:"1872c500de691dce40960bb85481de07"},{url:"manifest.webmanifest",revision:"90bba3b1e58044451de0bb5ba407f418"},{url:"index.html",revision:"d6eecdbc0aac35ef5e1a06a075a90183"},{url:"icons/icon-512.png",revision:"81e7312ad6a641949a2c5140d3716895"},{url:"icons/icon-192.png",revision:"b9ecccceab7cf3ec7d7a02fd45277247"},{url:"data/shelters.json",revision:"f28e872a285d4647cd1ba9ea98e0b06c"},{url:"assets/index-Db4vftzp.js",revision:"3be3eacc39fbc435514f11a4f412e97d"},{url:"assets/index-Cki23tZT.css",revision:"e11597b4bbc77264a7ef0e725bcac53a"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("/index.html"))),e.registerRoute(/^https:\/\/[abc]\.tile\.openstreetmap\.org\/.*/,new e.CacheFirst({cacheName:"osm-tiles",plugins:[new e.ExpirationPlugin({maxEntries:5e3,maxAgeSeconds:2592e3}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET")});
|
|
||||||
1
pwa/dist/workbox-1d305bb8.js
vendored
1
pwa/dist/workbox-1d305bb8.js
vendored
File diff suppressed because one or more lines are too long
1
pwa/node_modules/.bin/acorn
generated
vendored
1
pwa/node_modules/.bin/acorn
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../acorn/bin/acorn
|
|
||||||
1
pwa/node_modules/.bin/baseline-browser-mapping
generated
vendored
1
pwa/node_modules/.bin/baseline-browser-mapping
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../baseline-browser-mapping/dist/cli.cjs
|
|
||||||
1
pwa/node_modules/.bin/browserslist
generated
vendored
1
pwa/node_modules/.bin/browserslist
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../browserslist/cli.js
|
|
||||||
1
pwa/node_modules/.bin/ejs
generated
vendored
1
pwa/node_modules/.bin/ejs
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../ejs/bin/cli.js
|
|
||||||
1
pwa/node_modules/.bin/esbuild
generated
vendored
1
pwa/node_modules/.bin/esbuild
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../@esbuild/linux-x64/bin/esbuild
|
|
||||||
1
pwa/node_modules/.bin/glob
generated
vendored
1
pwa/node_modules/.bin/glob
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../glob/dist/esm/bin.mjs
|
|
||||||
1
pwa/node_modules/.bin/jake
generated
vendored
1
pwa/node_modules/.bin/jake
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../jake/bin/cli.js
|
|
||||||
1
pwa/node_modules/.bin/jsesc
generated
vendored
1
pwa/node_modules/.bin/jsesc
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../jsesc/bin/jsesc
|
|
||||||
1
pwa/node_modules/.bin/json5
generated
vendored
1
pwa/node_modules/.bin/json5
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../json5/lib/cli.js
|
|
||||||
1
pwa/node_modules/.bin/nanoid
generated
vendored
1
pwa/node_modules/.bin/nanoid
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../nanoid/bin/nanoid.cjs
|
|
||||||
1
pwa/node_modules/.bin/node-which
generated
vendored
1
pwa/node_modules/.bin/node-which
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../which/bin/node-which
|
|
||||||
1
pwa/node_modules/.bin/parser
generated
vendored
1
pwa/node_modules/.bin/parser
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../@babel/parser/bin/babel-parser.js
|
|
||||||
1
pwa/node_modules/.bin/regjsparser
generated
vendored
1
pwa/node_modules/.bin/regjsparser
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../regjsparser/bin/parser
|
|
||||||
1
pwa/node_modules/.bin/resolve
generated
vendored
1
pwa/node_modules/.bin/resolve
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../resolve/bin/resolve
|
|
||||||
1
pwa/node_modules/.bin/rollup
generated
vendored
1
pwa/node_modules/.bin/rollup
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../rollup/dist/bin/rollup
|
|
||||||
1
pwa/node_modules/.bin/semver
generated
vendored
1
pwa/node_modules/.bin/semver
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../semver/bin/semver.js
|
|
||||||
1
pwa/node_modules/.bin/terser
generated
vendored
1
pwa/node_modules/.bin/terser
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../terser/bin/terser
|
|
||||||
1
pwa/node_modules/.bin/tsc
generated
vendored
1
pwa/node_modules/.bin/tsc
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../typescript/bin/tsc
|
|
||||||
1
pwa/node_modules/.bin/tsserver
generated
vendored
1
pwa/node_modules/.bin/tsserver
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../typescript/bin/tsserver
|
|
||||||
1
pwa/node_modules/.bin/tsx
generated
vendored
1
pwa/node_modules/.bin/tsx
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../tsx/dist/cli.mjs
|
|
||||||
1
pwa/node_modules/.bin/update-browserslist-db
generated
vendored
1
pwa/node_modules/.bin/update-browserslist-db
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../update-browserslist-db/cli.js
|
|
||||||
1
pwa/node_modules/.bin/vite
generated
vendored
1
pwa/node_modules/.bin/vite
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../vite/bin/vite.js
|
|
||||||
1
pwa/node_modules/.bin/vite-node
generated
vendored
1
pwa/node_modules/.bin/vite-node
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../vite-node/vite-node.mjs
|
|
||||||
1
pwa/node_modules/.bin/vitest
generated
vendored
1
pwa/node_modules/.bin/vitest
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../vitest/vitest.mjs
|
|
||||||
1
pwa/node_modules/.bin/why-is-node-running
generated
vendored
1
pwa/node_modules/.bin/why-is-node-running
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
../why-is-node-running/cli.js
|
|
||||||
1
pwa/node_modules/.vite/vitest/results.json
generated
vendored
1
pwa/node_modules/.vite/vitest/results.json
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
{"version":"2.1.9","results":[[":tests/i18n.test.ts",{"duration":53.58867500000002,"failed":false}],[":tests/distance-utils.test.ts",{"duration":4.764991000000009,"failed":false}],[":tests/shelter-finder.test.ts",{"duration":4.856558000000007,"failed":false}]]}
|
|
||||||
21
pwa/node_modules/@apideck/better-ajv-errors/LICENSE
generated
vendored
21
pwa/node_modules/@apideck/better-ajv-errors/LICENSE
generated
vendored
|
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2021 Apideck
|
|
||||||
|
|
||||||
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.
|
|
||||||
71
pwa/node_modules/@apideck/better-ajv-errors/README.md
generated
vendored
71
pwa/node_modules/@apideck/better-ajv-errors/README.md
generated
vendored
|
|
@ -1,71 +0,0 @@
|
||||||
[](https://npmjs.com/@apideck/better-ajv-errors) [](https://npmjs.com/@apideck/better-ajv-errors) [](https://github.com/apideck-libraries/better-ajv-errors/actions/workflows/main.yml?query=branch%3Amain++)
|
|
||||||
|
|
||||||
# @apideck/better-ajv-errors 👮♀️
|
|
||||||
|
|
||||||
> Human-friendly JSON Schema validation for APIs
|
|
||||||
|
|
||||||
|
|
||||||
- Readable and helpful [ajv](https://github.com/ajv-validator/ajv) errors
|
|
||||||
- API-friendly format
|
|
||||||
- Suggestions for spelling mistakes
|
|
||||||
- Minimal footprint: 1.56 kB (gzip + minified)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ yarn add @apideck/better-ajv-errors
|
|
||||||
```
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm i @apideck/better-ajv-errors
|
|
||||||
```
|
|
||||||
|
|
||||||
Also make sure that you've installed [ajv](https://www.npmjs.com/package/ajv) at version 8 or higher.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
After validating some data with ajv, pass the errors to `betterAjvErrors`
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import Ajv from 'ajv';
|
|
||||||
import { betterAjvErrors } from '@apideck/better-ajv-errors';
|
|
||||||
|
|
||||||
// Without allErrors: true, ajv will only return the first error
|
|
||||||
const ajv = new Ajv({ allErrors: true });
|
|
||||||
|
|
||||||
const valid = ajv.validate(schema, data);
|
|
||||||
|
|
||||||
if (!valid) {
|
|
||||||
const betterErrors = betterAjvErrors({ schema, data, errors: ajv.errors });
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
### betterAjvErrors
|
|
||||||
|
|
||||||
Function that formats ajv validation errors in a human-friendly format.
|
|
||||||
|
|
||||||
#### Parameters
|
|
||||||
|
|
||||||
- `options: BetterAjvErrorsOptions`
|
|
||||||
- `errors: ErrorObject[] | null | undefined` Your ajv errors, you will find these in the `errors` property of your ajv instance (`ErrorObject` is a type from the ajv package).
|
|
||||||
- `data: Object` The data you passed to ajv to be validated.
|
|
||||||
- `schema: JSONSchema` The schema you passed to ajv to validate against.
|
|
||||||
- `basePath?: string` An optional base path to prefix paths returned by `betterAjvErrors`. For example, in APIs, it could be useful to use `'{requestBody}'` or `'{queryParemeters}'` as a basePath. This will make it clear to users where exactly the error occurred.
|
|
||||||
|
|
||||||
#### Return Value
|
|
||||||
|
|
||||||
- `ValidationError[]` Array of formatted errors (properties of `ValidationError` below)
|
|
||||||
- `message: string` Formatted error message
|
|
||||||
- `suggestion?: string` Optional suggestion based on provided data and schema
|
|
||||||
- `path: string` Object path where the error occurred (example: `.foo.bar.0.quz`)
|
|
||||||
- `context: { errorType: DefinedError['keyword']; [additionalContext: string]: unknown }` `errorType` is `error.keyword` proxied from `ajv`. `errorType` can be used as a key for i18n if needed. There might be additional properties on context, based on the type of error.
|
|
||||||
|
|
||||||
## Related
|
|
||||||
|
|
||||||
- [atlassian/better-ajv-errors](https://github.com/atlassian/better-ajv-errors) was the inspiration for this library. Atlassian's library is more focused on CLI errors, this library is focused on developer-friendly API error messages.
|
|
||||||
246
pwa/node_modules/@apideck/better-ajv-errors/dist/better-ajv-errors.cjs.development.js
generated
vendored
246
pwa/node_modules/@apideck/better-ajv-errors/dist/better-ajv-errors.cjs.development.js
generated
vendored
|
|
@ -1,246 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
Object.defineProperty(exports, '__esModule', { value: true });
|
|
||||||
|
|
||||||
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
||||||
|
|
||||||
var leven = _interopDefault(require('leven'));
|
|
||||||
var pointer = _interopDefault(require('jsonpointer'));
|
|
||||||
|
|
||||||
function _extends() {
|
|
||||||
_extends = Object.assign || function (target) {
|
|
||||||
for (var i = 1; i < arguments.length; i++) {
|
|
||||||
var source = arguments[i];
|
|
||||||
|
|
||||||
for (var key in source) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
||||||
target[key] = source[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
};
|
|
||||||
|
|
||||||
return _extends.apply(this, arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
var AJV_ERROR_KEYWORD_WEIGHT_MAP = {
|
|
||||||
"enum": 1,
|
|
||||||
type: 0
|
|
||||||
};
|
|
||||||
var QUOTES_REGEX = /"/g;
|
|
||||||
var NOT_REGEX = /NOT/g;
|
|
||||||
var SLASH_REGEX = /\//g;
|
|
||||||
|
|
||||||
var filterSingleErrorPerProperty = function filterSingleErrorPerProperty(errors) {
|
|
||||||
var errorsPerProperty = errors.reduce(function (acc, error) {
|
|
||||||
var _ref, _error$params$additio, _error$params, _error$params2, _AJV_ERROR_KEYWORD_WE, _AJV_ERROR_KEYWORD_WE2;
|
|
||||||
|
|
||||||
var prop = error.instancePath + ((_ref = (_error$params$additio = (_error$params = error.params) == null ? void 0 : _error$params.additionalProperty) != null ? _error$params$additio : (_error$params2 = error.params) == null ? void 0 : _error$params2.missingProperty) != null ? _ref : '');
|
|
||||||
var existingError = acc[prop];
|
|
||||||
|
|
||||||
if (!existingError) {
|
|
||||||
acc[prop] = error;
|
|
||||||
return acc;
|
|
||||||
}
|
|
||||||
|
|
||||||
var weight = (_AJV_ERROR_KEYWORD_WE = AJV_ERROR_KEYWORD_WEIGHT_MAP[error.keyword]) != null ? _AJV_ERROR_KEYWORD_WE : 0;
|
|
||||||
var existingWeight = (_AJV_ERROR_KEYWORD_WE2 = AJV_ERROR_KEYWORD_WEIGHT_MAP[existingError.keyword]) != null ? _AJV_ERROR_KEYWORD_WE2 : 0;
|
|
||||||
|
|
||||||
if (weight > existingWeight) {
|
|
||||||
acc[prop] = error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
return Object.values(errorsPerProperty);
|
|
||||||
};
|
|
||||||
|
|
||||||
var getSuggestion = function getSuggestion(_ref) {
|
|
||||||
var value = _ref.value,
|
|
||||||
suggestions = _ref.suggestions,
|
|
||||||
_ref$format = _ref.format,
|
|
||||||
format = _ref$format === void 0 ? function (suggestion) {
|
|
||||||
return "Did you mean '" + suggestion + "'?";
|
|
||||||
} : _ref$format;
|
|
||||||
if (!value) return '';
|
|
||||||
var bestSuggestion = suggestions.reduce(function (best, current) {
|
|
||||||
var distance = leven(value, current);
|
|
||||||
|
|
||||||
if (best.distance > distance) {
|
|
||||||
return {
|
|
||||||
value: current,
|
|
||||||
distance: distance
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return best;
|
|
||||||
}, {
|
|
||||||
distance: Infinity,
|
|
||||||
value: ''
|
|
||||||
});
|
|
||||||
return bestSuggestion.distance < value.length ? format(bestSuggestion.value) : '';
|
|
||||||
};
|
|
||||||
|
|
||||||
var pointerToDotNotation = function pointerToDotNotation(pointer) {
|
|
||||||
return pointer.replace(SLASH_REGEX, '.');
|
|
||||||
};
|
|
||||||
var cleanAjvMessage = function cleanAjvMessage(message) {
|
|
||||||
return message.replace(QUOTES_REGEX, "'").replace(NOT_REGEX, 'not');
|
|
||||||
};
|
|
||||||
var getLastSegment = function getLastSegment(path) {
|
|
||||||
var segments = path.split('/');
|
|
||||||
return segments.pop();
|
|
||||||
};
|
|
||||||
var safeJsonPointer = function safeJsonPointer(_ref) {
|
|
||||||
var object = _ref.object,
|
|
||||||
pnter = _ref.pnter,
|
|
||||||
fallback = _ref.fallback;
|
|
||||||
|
|
||||||
try {
|
|
||||||
return pointer.get(object, pnter);
|
|
||||||
} catch (err) {
|
|
||||||
return fallback;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var betterAjvErrors = function betterAjvErrors(_ref) {
|
|
||||||
var errors = _ref.errors,
|
|
||||||
data = _ref.data,
|
|
||||||
schema = _ref.schema,
|
|
||||||
_ref$basePath = _ref.basePath,
|
|
||||||
basePath = _ref$basePath === void 0 ? '{base}' : _ref$basePath;
|
|
||||||
|
|
||||||
if (!Array.isArray(errors) || errors.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
var definedErrors = filterSingleErrorPerProperty(errors);
|
|
||||||
return definedErrors.map(function (error) {
|
|
||||||
var path = pointerToDotNotation(basePath + error.instancePath);
|
|
||||||
var prop = getLastSegment(error.instancePath);
|
|
||||||
var defaultContext = {
|
|
||||||
errorType: error.keyword
|
|
||||||
};
|
|
||||||
var defaultMessage = (prop ? "property '" + prop + "'" : path) + " " + cleanAjvMessage(error.message);
|
|
||||||
var validationError;
|
|
||||||
|
|
||||||
switch (error.keyword) {
|
|
||||||
case 'additionalProperties':
|
|
||||||
{
|
|
||||||
var additionalProp = error.params.additionalProperty;
|
|
||||||
var suggestionPointer = error.schemaPath.replace('#', '').replace('/additionalProperties', '');
|
|
||||||
|
|
||||||
var _safeJsonPointer = safeJsonPointer({
|
|
||||||
object: schema,
|
|
||||||
pnter: suggestionPointer,
|
|
||||||
fallback: {
|
|
||||||
properties: {}
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
properties = _safeJsonPointer.properties;
|
|
||||||
|
|
||||||
validationError = {
|
|
||||||
message: "'" + additionalProp + "' property is not expected to be here",
|
|
||||||
suggestion: getSuggestion({
|
|
||||||
value: additionalProp,
|
|
||||||
suggestions: Object.keys(properties != null ? properties : {}),
|
|
||||||
format: function format(suggestion) {
|
|
||||||
return "Did you mean property '" + suggestion + "'?";
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'enum':
|
|
||||||
{
|
|
||||||
var suggestions = error.params.allowedValues.map(function (value) {
|
|
||||||
return value.toString();
|
|
||||||
});
|
|
||||||
|
|
||||||
var _prop = getLastSegment(error.instancePath);
|
|
||||||
|
|
||||||
var value = safeJsonPointer({
|
|
||||||
object: data,
|
|
||||||
pnter: error.instancePath,
|
|
||||||
fallback: ''
|
|
||||||
});
|
|
||||||
validationError = {
|
|
||||||
message: "'" + _prop + "' property must be equal to one of the allowed values",
|
|
||||||
suggestion: getSuggestion({
|
|
||||||
value: value,
|
|
||||||
suggestions: suggestions
|
|
||||||
}),
|
|
||||||
path: path,
|
|
||||||
context: _extends({}, defaultContext, {
|
|
||||||
allowedValues: error.params.allowedValues
|
|
||||||
})
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'type':
|
|
||||||
{
|
|
||||||
var _prop2 = getLastSegment(error.instancePath);
|
|
||||||
|
|
||||||
var type = error.params.type;
|
|
||||||
validationError = {
|
|
||||||
message: "'" + _prop2 + "' property type must be " + type,
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'required':
|
|
||||||
{
|
|
||||||
validationError = {
|
|
||||||
message: path + " must have required property '" + error.params.missingProperty + "'",
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'const':
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
message: "'" + prop + "' property must be equal to the allowed value",
|
|
||||||
path: path,
|
|
||||||
context: _extends({}, defaultContext, {
|
|
||||||
allowedValue: error.params.allowedValue
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return {
|
|
||||||
message: defaultMessage,
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
} // Remove empty properties
|
|
||||||
|
|
||||||
|
|
||||||
var errorEntries = Object.entries(validationError);
|
|
||||||
|
|
||||||
for (var _i = 0, _errorEntries = errorEntries; _i < _errorEntries.length; _i++) {
|
|
||||||
var _errorEntries$_i = _errorEntries[_i],
|
|
||||||
key = _errorEntries$_i[0],
|
|
||||||
_value = _errorEntries$_i[1];
|
|
||||||
|
|
||||||
if (_value === null || _value === undefined || _value === '') {
|
|
||||||
delete validationError[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return validationError;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.betterAjvErrors = betterAjvErrors;
|
|
||||||
//# sourceMappingURL=better-ajv-errors.cjs.development.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +0,0 @@
|
||||||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("leven")),r=e(require("jsonpointer"));function a(){return(a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e}).apply(this,arguments)}var n={enum:1,type:0},o=/"/g,s=/NOT/g,u=/\//g,l=function(e){var r=e.value,a=e.format,n=void 0===a?function(e){return"Did you mean '"+e+"'?"}:a;if(!r)return"";var o=e.suggestions.reduce((function(e,a){var n=t(r,a);return e.distance>n?{value:a,distance:n}:e}),{distance:Infinity,value:""});return o.distance<r.length?n(o.value):""},i=function(e){return e.split("/").pop()},p=function(e){var t=e.object,a=e.pnter,n=e.fallback;try{return r.get(t,a)}catch(e){return n}};exports.betterAjvErrors=function(e){var t=e.errors,r=e.data,c=e.schema,d=e.basePath,v=void 0===d?"{base}":d;return Array.isArray(t)&&0!==t.length?function(e){var t=e.reduce((function(e,t){var r,a,o,s,u,l,i=t.instancePath+(null!=(r=null!=(a=null==(o=t.params)?void 0:o.additionalProperty)?a:null==(s=t.params)?void 0:s.missingProperty)?r:""),p=e[i];return p?((null!=(u=n[t.keyword])?u:0)>(null!=(l=n[p.keyword])?l:0)&&(e[i]=t),e):(e[i]=t,e)}),{});return Object.values(t)}(t).map((function(e){var t,n=function(e){return e.replace(u,".")}(v+e.instancePath),d=i(e.instancePath),y={errorType:e.keyword},f=(d?"property '"+d+"'":n)+" "+e.message.replace(o,"'").replace(s,"not");switch(e.keyword){case"additionalProperties":var m=e.params.additionalProperty,g=e.schemaPath.replace("#","").replace("/additionalProperties",""),h=p({object:c,pnter:g,fallback:{properties:{}}}).properties;t={message:"'"+m+"' property is not expected to be here",suggestion:l({value:m,suggestions:Object.keys(null!=h?h:{}),format:function(e){return"Did you mean property '"+e+"'?"}}),path:n,context:y};break;case"enum":var b=e.params.allowedValues.map((function(e){return e.toString()})),P=i(e.instancePath),w=p({object:r,pnter:e.instancePath,fallback:""});t={message:"'"+P+"' property must be equal to one of the allowed values",suggestion:l({value:w,suggestions:b}),path:n,context:a({},y,{allowedValues:e.params.allowedValues})};break;case"type":t={message:"'"+i(e.instancePath)+"' property type must be "+e.params.type,path:n,context:y};break;case"required":t={message:n+" must have required property '"+e.params.missingProperty+"'",path:n,context:y};break;case"const":return{message:"'"+d+"' property must be equal to the allowed value",path:n,context:a({},y,{allowedValue:e.params.allowedValue})};default:return{message:f,path:n,context:y}}for(var j=0,k=Object.entries(t);j<k.length;j++){var x=k[j],O=x[1];null!=O&&""!==O||delete t[x[0]]}return t})):[]};
|
|
||||||
//# sourceMappingURL=better-ajv-errors.cjs.production.min.js.map
|
|
||||||
File diff suppressed because one or more lines are too long
240
pwa/node_modules/@apideck/better-ajv-errors/dist/better-ajv-errors.esm.js
generated
vendored
240
pwa/node_modules/@apideck/better-ajv-errors/dist/better-ajv-errors.esm.js
generated
vendored
|
|
@ -1,240 +0,0 @@
|
||||||
import leven from 'leven';
|
|
||||||
import pointer from 'jsonpointer';
|
|
||||||
|
|
||||||
function _extends() {
|
|
||||||
_extends = Object.assign || function (target) {
|
|
||||||
for (var i = 1; i < arguments.length; i++) {
|
|
||||||
var source = arguments[i];
|
|
||||||
|
|
||||||
for (var key in source) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
||||||
target[key] = source[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
};
|
|
||||||
|
|
||||||
return _extends.apply(this, arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
var AJV_ERROR_KEYWORD_WEIGHT_MAP = {
|
|
||||||
"enum": 1,
|
|
||||||
type: 0
|
|
||||||
};
|
|
||||||
var QUOTES_REGEX = /"/g;
|
|
||||||
var NOT_REGEX = /NOT/g;
|
|
||||||
var SLASH_REGEX = /\//g;
|
|
||||||
|
|
||||||
var filterSingleErrorPerProperty = function filterSingleErrorPerProperty(errors) {
|
|
||||||
var errorsPerProperty = errors.reduce(function (acc, error) {
|
|
||||||
var _ref, _error$params$additio, _error$params, _error$params2, _AJV_ERROR_KEYWORD_WE, _AJV_ERROR_KEYWORD_WE2;
|
|
||||||
|
|
||||||
var prop = error.instancePath + ((_ref = (_error$params$additio = (_error$params = error.params) == null ? void 0 : _error$params.additionalProperty) != null ? _error$params$additio : (_error$params2 = error.params) == null ? void 0 : _error$params2.missingProperty) != null ? _ref : '');
|
|
||||||
var existingError = acc[prop];
|
|
||||||
|
|
||||||
if (!existingError) {
|
|
||||||
acc[prop] = error;
|
|
||||||
return acc;
|
|
||||||
}
|
|
||||||
|
|
||||||
var weight = (_AJV_ERROR_KEYWORD_WE = AJV_ERROR_KEYWORD_WEIGHT_MAP[error.keyword]) != null ? _AJV_ERROR_KEYWORD_WE : 0;
|
|
||||||
var existingWeight = (_AJV_ERROR_KEYWORD_WE2 = AJV_ERROR_KEYWORD_WEIGHT_MAP[existingError.keyword]) != null ? _AJV_ERROR_KEYWORD_WE2 : 0;
|
|
||||||
|
|
||||||
if (weight > existingWeight) {
|
|
||||||
acc[prop] = error;
|
|
||||||
}
|
|
||||||
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
return Object.values(errorsPerProperty);
|
|
||||||
};
|
|
||||||
|
|
||||||
var getSuggestion = function getSuggestion(_ref) {
|
|
||||||
var value = _ref.value,
|
|
||||||
suggestions = _ref.suggestions,
|
|
||||||
_ref$format = _ref.format,
|
|
||||||
format = _ref$format === void 0 ? function (suggestion) {
|
|
||||||
return "Did you mean '" + suggestion + "'?";
|
|
||||||
} : _ref$format;
|
|
||||||
if (!value) return '';
|
|
||||||
var bestSuggestion = suggestions.reduce(function (best, current) {
|
|
||||||
var distance = leven(value, current);
|
|
||||||
|
|
||||||
if (best.distance > distance) {
|
|
||||||
return {
|
|
||||||
value: current,
|
|
||||||
distance: distance
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return best;
|
|
||||||
}, {
|
|
||||||
distance: Infinity,
|
|
||||||
value: ''
|
|
||||||
});
|
|
||||||
return bestSuggestion.distance < value.length ? format(bestSuggestion.value) : '';
|
|
||||||
};
|
|
||||||
|
|
||||||
var pointerToDotNotation = function pointerToDotNotation(pointer) {
|
|
||||||
return pointer.replace(SLASH_REGEX, '.');
|
|
||||||
};
|
|
||||||
var cleanAjvMessage = function cleanAjvMessage(message) {
|
|
||||||
return message.replace(QUOTES_REGEX, "'").replace(NOT_REGEX, 'not');
|
|
||||||
};
|
|
||||||
var getLastSegment = function getLastSegment(path) {
|
|
||||||
var segments = path.split('/');
|
|
||||||
return segments.pop();
|
|
||||||
};
|
|
||||||
var safeJsonPointer = function safeJsonPointer(_ref) {
|
|
||||||
var object = _ref.object,
|
|
||||||
pnter = _ref.pnter,
|
|
||||||
fallback = _ref.fallback;
|
|
||||||
|
|
||||||
try {
|
|
||||||
return pointer.get(object, pnter);
|
|
||||||
} catch (err) {
|
|
||||||
return fallback;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var betterAjvErrors = function betterAjvErrors(_ref) {
|
|
||||||
var errors = _ref.errors,
|
|
||||||
data = _ref.data,
|
|
||||||
schema = _ref.schema,
|
|
||||||
_ref$basePath = _ref.basePath,
|
|
||||||
basePath = _ref$basePath === void 0 ? '{base}' : _ref$basePath;
|
|
||||||
|
|
||||||
if (!Array.isArray(errors) || errors.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
var definedErrors = filterSingleErrorPerProperty(errors);
|
|
||||||
return definedErrors.map(function (error) {
|
|
||||||
var path = pointerToDotNotation(basePath + error.instancePath);
|
|
||||||
var prop = getLastSegment(error.instancePath);
|
|
||||||
var defaultContext = {
|
|
||||||
errorType: error.keyword
|
|
||||||
};
|
|
||||||
var defaultMessage = (prop ? "property '" + prop + "'" : path) + " " + cleanAjvMessage(error.message);
|
|
||||||
var validationError;
|
|
||||||
|
|
||||||
switch (error.keyword) {
|
|
||||||
case 'additionalProperties':
|
|
||||||
{
|
|
||||||
var additionalProp = error.params.additionalProperty;
|
|
||||||
var suggestionPointer = error.schemaPath.replace('#', '').replace('/additionalProperties', '');
|
|
||||||
|
|
||||||
var _safeJsonPointer = safeJsonPointer({
|
|
||||||
object: schema,
|
|
||||||
pnter: suggestionPointer,
|
|
||||||
fallback: {
|
|
||||||
properties: {}
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
properties = _safeJsonPointer.properties;
|
|
||||||
|
|
||||||
validationError = {
|
|
||||||
message: "'" + additionalProp + "' property is not expected to be here",
|
|
||||||
suggestion: getSuggestion({
|
|
||||||
value: additionalProp,
|
|
||||||
suggestions: Object.keys(properties != null ? properties : {}),
|
|
||||||
format: function format(suggestion) {
|
|
||||||
return "Did you mean property '" + suggestion + "'?";
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'enum':
|
|
||||||
{
|
|
||||||
var suggestions = error.params.allowedValues.map(function (value) {
|
|
||||||
return value.toString();
|
|
||||||
});
|
|
||||||
|
|
||||||
var _prop = getLastSegment(error.instancePath);
|
|
||||||
|
|
||||||
var value = safeJsonPointer({
|
|
||||||
object: data,
|
|
||||||
pnter: error.instancePath,
|
|
||||||
fallback: ''
|
|
||||||
});
|
|
||||||
validationError = {
|
|
||||||
message: "'" + _prop + "' property must be equal to one of the allowed values",
|
|
||||||
suggestion: getSuggestion({
|
|
||||||
value: value,
|
|
||||||
suggestions: suggestions
|
|
||||||
}),
|
|
||||||
path: path,
|
|
||||||
context: _extends({}, defaultContext, {
|
|
||||||
allowedValues: error.params.allowedValues
|
|
||||||
})
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'type':
|
|
||||||
{
|
|
||||||
var _prop2 = getLastSegment(error.instancePath);
|
|
||||||
|
|
||||||
var type = error.params.type;
|
|
||||||
validationError = {
|
|
||||||
message: "'" + _prop2 + "' property type must be " + type,
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'required':
|
|
||||||
{
|
|
||||||
validationError = {
|
|
||||||
message: path + " must have required property '" + error.params.missingProperty + "'",
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 'const':
|
|
||||||
{
|
|
||||||
return {
|
|
||||||
message: "'" + prop + "' property must be equal to the allowed value",
|
|
||||||
path: path,
|
|
||||||
context: _extends({}, defaultContext, {
|
|
||||||
allowedValue: error.params.allowedValue
|
|
||||||
})
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return {
|
|
||||||
message: defaultMessage,
|
|
||||||
path: path,
|
|
||||||
context: defaultContext
|
|
||||||
};
|
|
||||||
} // Remove empty properties
|
|
||||||
|
|
||||||
|
|
||||||
var errorEntries = Object.entries(validationError);
|
|
||||||
|
|
||||||
for (var _i = 0, _errorEntries = errorEntries; _i < _errorEntries.length; _i++) {
|
|
||||||
var _errorEntries$_i = _errorEntries[_i],
|
|
||||||
key = _errorEntries$_i[0],
|
|
||||||
_value = _errorEntries$_i[1];
|
|
||||||
|
|
||||||
if (_value === null || _value === undefined || _value === '') {
|
|
||||||
delete validationError[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return validationError;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
export { betterAjvErrors };
|
|
||||||
//# sourceMappingURL=better-ajv-errors.esm.js.map
|
|
||||||
1
pwa/node_modules/@apideck/better-ajv-errors/dist/better-ajv-errors.esm.js.map
generated
vendored
1
pwa/node_modules/@apideck/better-ajv-errors/dist/better-ajv-errors.esm.js.map
generated
vendored
File diff suppressed because one or more lines are too long
5
pwa/node_modules/@apideck/better-ajv-errors/dist/constants.d.ts
generated
vendored
5
pwa/node_modules/@apideck/better-ajv-errors/dist/constants.d.ts
generated
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
import { DefinedError } from 'ajv';
|
|
||||||
export declare const AJV_ERROR_KEYWORD_WEIGHT_MAP: Partial<Record<DefinedError['keyword'], number>>;
|
|
||||||
export declare const QUOTES_REGEX: RegExp;
|
|
||||||
export declare const NOT_REGEX: RegExp;
|
|
||||||
export declare const SLASH_REGEX: RegExp;
|
|
||||||
11
pwa/node_modules/@apideck/better-ajv-errors/dist/index.d.ts
generated
vendored
11
pwa/node_modules/@apideck/better-ajv-errors/dist/index.d.ts
generated
vendored
|
|
@ -1,11 +0,0 @@
|
||||||
import { ErrorObject } from 'ajv';
|
|
||||||
import type { JSONSchema6 } from 'json-schema';
|
|
||||||
import { ValidationError } from './types/ValidationError';
|
|
||||||
export interface BetterAjvErrorsOptions {
|
|
||||||
errors: ErrorObject[] | null | undefined;
|
|
||||||
data: any;
|
|
||||||
schema: JSONSchema6;
|
|
||||||
basePath?: string;
|
|
||||||
}
|
|
||||||
export declare const betterAjvErrors: ({ errors, data, schema, basePath, }: BetterAjvErrorsOptions) => ValidationError[];
|
|
||||||
export { ValidationError };
|
|
||||||
8
pwa/node_modules/@apideck/better-ajv-errors/dist/index.js
generated
vendored
8
pwa/node_modules/@apideck/better-ajv-errors/dist/index.js
generated
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
|
||||||
module.exports = require('./better-ajv-errors.cjs.production.min.js')
|
|
||||||
} else {
|
|
||||||
module.exports = require('./better-ajv-errors.cjs.development.js')
|
|
||||||
}
|
|
||||||
2
pwa/node_modules/@apideck/better-ajv-errors/dist/lib/filter.d.ts
generated
vendored
2
pwa/node_modules/@apideck/better-ajv-errors/dist/lib/filter.d.ts
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
import { DefinedError } from 'ajv';
|
|
||||||
export declare const filterSingleErrorPerProperty: (errors: DefinedError[]) => DefinedError[];
|
|
||||||
5
pwa/node_modules/@apideck/better-ajv-errors/dist/lib/suggestions.d.ts
generated
vendored
5
pwa/node_modules/@apideck/better-ajv-errors/dist/lib/suggestions.d.ts
generated
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
export declare const getSuggestion: ({ value, suggestions, format, }: {
|
|
||||||
value: string | null;
|
|
||||||
suggestions: string[];
|
|
||||||
format?: ((suggestion: string) => string) | undefined;
|
|
||||||
}) => string;
|
|
||||||
8
pwa/node_modules/@apideck/better-ajv-errors/dist/lib/utils.d.ts
generated
vendored
8
pwa/node_modules/@apideck/better-ajv-errors/dist/lib/utils.d.ts
generated
vendored
|
|
@ -1,8 +0,0 @@
|
||||||
export declare const pointerToDotNotation: (pointer: string) => string;
|
|
||||||
export declare const cleanAjvMessage: (message: string) => string;
|
|
||||||
export declare const getLastSegment: (path: string) => string;
|
|
||||||
export declare const safeJsonPointer: <T>({ object, pnter, fallback }: {
|
|
||||||
object: any;
|
|
||||||
pnter: string;
|
|
||||||
fallback: T;
|
|
||||||
}) => T;
|
|
||||||
10
pwa/node_modules/@apideck/better-ajv-errors/dist/types/ValidationError.d.ts
generated
vendored
10
pwa/node_modules/@apideck/better-ajv-errors/dist/types/ValidationError.d.ts
generated
vendored
|
|
@ -1,10 +0,0 @@
|
||||||
import { DefinedError } from 'ajv';
|
|
||||||
export interface ValidationError {
|
|
||||||
message: string;
|
|
||||||
path: string;
|
|
||||||
suggestion?: string;
|
|
||||||
context: {
|
|
||||||
errorType: DefinedError['keyword'];
|
|
||||||
[additionalContext: string]: unknown;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
88
pwa/node_modules/@apideck/better-ajv-errors/package.json
generated
vendored
88
pwa/node_modules/@apideck/better-ajv-errors/package.json
generated
vendored
|
|
@ -1,88 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@apideck/better-ajv-errors",
|
|
||||||
"description": "Human-friendly JSON Schema validation for APIs",
|
|
||||||
"version": "0.3.6",
|
|
||||||
"author": "Apideck <support@apideck.com> (https://apideck.com/)",
|
|
||||||
"license": "MIT",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/apideck-libraries/better-ajv-errors"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/apideck-libraries/better-ajv-errors/issues"
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
"Elias Meire <elias@apideck.com>"
|
|
||||||
],
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"module": "dist/better-ajv-errors.esm.js",
|
|
||||||
"typings": "dist/index.d.ts",
|
|
||||||
"files": [
|
|
||||||
"dist",
|
|
||||||
"src"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"start": "tsdx watch",
|
|
||||||
"build": "tsdx build",
|
|
||||||
"test": "tsdx test",
|
|
||||||
"lint": "tsdx lint",
|
|
||||||
"prepare": "tsdx build",
|
|
||||||
"size": "size-limit",
|
|
||||||
"release": "np --no-publish && npm publish --access public --registry https://registry.npmjs.org",
|
|
||||||
"analyze": "size-limit --why"
|
|
||||||
},
|
|
||||||
"husky": {
|
|
||||||
"hooks": {
|
|
||||||
"pre-commit": "tsdx lint"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"prettier": {
|
|
||||||
"printWidth": 120,
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "es5"
|
|
||||||
},
|
|
||||||
"size-limit": [
|
|
||||||
{
|
|
||||||
"path": "dist/better-ajv-errors.cjs.production.min.js",
|
|
||||||
"limit": "2 KB"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "dist/better-ajv-errors.esm.js",
|
|
||||||
"limit": "2.5 KB"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"devDependencies": {
|
|
||||||
"@size-limit/preset-small-lib": "^7.0.8",
|
|
||||||
"ajv": "^8.11.0",
|
|
||||||
"eslint-plugin-prettier": "^4.0.0",
|
|
||||||
"husky": "^8.0.1",
|
|
||||||
"np": "^7.6.1",
|
|
||||||
"size-limit": "^7.0.8",
|
|
||||||
"tsdx": "^0.14.1",
|
|
||||||
"tslib": "^2.4.0",
|
|
||||||
"typescript": "^4.7.2"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"ajv": ">=8"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"json-schema": "^0.4.0",
|
|
||||||
"jsonpointer": "^5.0.0",
|
|
||||||
"leven": "^3.1.0"
|
|
||||||
},
|
|
||||||
"resolutions": {
|
|
||||||
"prettier": "^2.3.0"
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"apideck",
|
|
||||||
"ajv",
|
|
||||||
"json",
|
|
||||||
"schema",
|
|
||||||
"json-schema",
|
|
||||||
"errors",
|
|
||||||
"human"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
10
pwa/node_modules/@apideck/better-ajv-errors/src/constants.ts
generated
vendored
10
pwa/node_modules/@apideck/better-ajv-errors/src/constants.ts
generated
vendored
|
|
@ -1,10 +0,0 @@
|
||||||
import { DefinedError } from 'ajv';
|
|
||||||
|
|
||||||
export const AJV_ERROR_KEYWORD_WEIGHT_MAP: Partial<Record<DefinedError['keyword'], number>> = {
|
|
||||||
enum: 1,
|
|
||||||
type: 0,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const QUOTES_REGEX = /"/g;
|
|
||||||
export const NOT_REGEX = /NOT/g;
|
|
||||||
export const SLASH_REGEX = /\//g;
|
|
||||||
434
pwa/node_modules/@apideck/better-ajv-errors/src/index.test.ts
generated
vendored
434
pwa/node_modules/@apideck/better-ajv-errors/src/index.test.ts
generated
vendored
|
|
@ -1,434 +0,0 @@
|
||||||
import Ajv from 'ajv';
|
|
||||||
import { JSONSchema6 } from 'json-schema';
|
|
||||||
import { betterAjvErrors } from './index';
|
|
||||||
|
|
||||||
describe('betterAjvErrors', () => {
|
|
||||||
let ajv: Ajv;
|
|
||||||
let schema: JSONSchema6;
|
|
||||||
let data: Record<string, unknown>;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
ajv = new Ajv({ allErrors: true });
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
required: ['str'],
|
|
||||||
properties: {
|
|
||||||
str: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
enum: {
|
|
||||||
type: 'string',
|
|
||||||
enum: ['one', 'two'],
|
|
||||||
},
|
|
||||||
bounds: {
|
|
||||||
type: 'number',
|
|
||||||
minimum: 2,
|
|
||||||
maximum: 4,
|
|
||||||
},
|
|
||||||
nested: {
|
|
||||||
type: 'object',
|
|
||||||
required: ['deepReq'],
|
|
||||||
properties: {
|
|
||||||
deepReq: {
|
|
||||||
type: 'boolean',
|
|
||||||
},
|
|
||||||
deep: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
additionalProperties: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
additionalProperties: false,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('additionalProperties', () => {
|
|
||||||
it('should handle additionalProperties=false', () => {
|
|
||||||
data = {
|
|
||||||
str: 'str',
|
|
||||||
foo: 'bar',
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'foo' property is not expected to be here",
|
|
||||||
path: '{base}',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should handle additionalProperties=true', () => {
|
|
||||||
data = {
|
|
||||||
str: 'str',
|
|
||||||
foo: 'bar',
|
|
||||||
};
|
|
||||||
schema.additionalProperties = true;
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should give suggestions when relevant', () => {
|
|
||||||
data = {
|
|
||||||
str: 'str',
|
|
||||||
bonds: 'bar',
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'bonds' property is not expected to be here",
|
|
||||||
path: '{base}',
|
|
||||||
suggestion: "Did you mean property 'bounds'?",
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should handle object schemas without properties', () => {
|
|
||||||
data = {
|
|
||||||
empty: { foo: 1 },
|
|
||||||
};
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
empty: {
|
|
||||||
type: 'object',
|
|
||||||
additionalProperties: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'foo' property is not expected to be here",
|
|
||||||
path: '{base}.empty',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('required', () => {
|
|
||||||
it('should handle required properties', () => {
|
|
||||||
data = {
|
|
||||||
nested: {},
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'required',
|
|
||||||
},
|
|
||||||
message: "{base} must have required property 'str'",
|
|
||||||
path: '{base}',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'required',
|
|
||||||
},
|
|
||||||
message: "{base}.nested must have required property 'deepReq'",
|
|
||||||
path: '{base}.nested',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should handle multiple required properties', () => {
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
required: ['req1', 'req2'],
|
|
||||||
properties: {
|
|
||||||
req1: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
req2: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
data = {};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'required',
|
|
||||||
},
|
|
||||||
message: "{base} must have required property 'req1'",
|
|
||||||
path: '{base}',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'required',
|
|
||||||
},
|
|
||||||
message: "{base} must have required property 'req2'",
|
|
||||||
path: '{base}',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('type', () => {
|
|
||||||
it('should handle type errors', () => {
|
|
||||||
data = {
|
|
||||||
str: 123,
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'type',
|
|
||||||
},
|
|
||||||
message: "'str' property type must be string",
|
|
||||||
path: '{base}.str',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('minimum/maximum', () => {
|
|
||||||
it('should handle minimum/maximum errors', () => {
|
|
||||||
data = {
|
|
||||||
str: 'str',
|
|
||||||
bounds: 123,
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'maximum',
|
|
||||||
},
|
|
||||||
message: "property 'bounds' must be <= 4",
|
|
||||||
path: '{base}.bounds',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('enum', () => {
|
|
||||||
it('should handle enum errors', () => {
|
|
||||||
data = {
|
|
||||||
str: 'str',
|
|
||||||
enum: 'zzzz',
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'enum',
|
|
||||||
allowedValues: ['one', 'two'],
|
|
||||||
},
|
|
||||||
message: "'enum' property must be equal to one of the allowed values",
|
|
||||||
path: '{base}.enum',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should provide suggestions when relevant', () => {
|
|
||||||
data = {
|
|
||||||
str: 'str',
|
|
||||||
enum: 'pne',
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'enum',
|
|
||||||
allowedValues: ['one', 'two'],
|
|
||||||
},
|
|
||||||
message: "'enum' property must be equal to one of the allowed values",
|
|
||||||
path: '{base}.enum',
|
|
||||||
suggestion: "Did you mean 'one'?",
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should not crash on null value', () => {
|
|
||||||
data = {
|
|
||||||
type: null,
|
|
||||||
};
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
type: {
|
|
||||||
type: 'string',
|
|
||||||
enum: ['primary', 'secondary'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
allowedValues: ['primary', 'secondary'],
|
|
||||||
errorType: 'enum',
|
|
||||||
},
|
|
||||||
message: "'type' property must be equal to one of the allowed values",
|
|
||||||
path: '{base}.type',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should handle array paths', () => {
|
|
||||||
data = {
|
|
||||||
custom: [{ foo: 'bar' }, { aaa: 'zzz' }],
|
|
||||||
};
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
custom: {
|
|
||||||
type: 'array',
|
|
||||||
items: {
|
|
||||||
type: 'object',
|
|
||||||
additionalProperties: false,
|
|
||||||
properties: {
|
|
||||||
id: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
title: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'foo' property is not expected to be here",
|
|
||||||
path: '{base}.custom.0',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'aaa' property is not expected to be here",
|
|
||||||
path: '{base}.custom.1',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should handle file $refs', () => {
|
|
||||||
data = {
|
|
||||||
child: [{ foo: 'bar' }, { aaa: 'zzz' }],
|
|
||||||
};
|
|
||||||
schema = {
|
|
||||||
$id: 'http://example.com/schemas/Main.json',
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
child: {
|
|
||||||
type: 'array',
|
|
||||||
items: {
|
|
||||||
$ref: './Child.json',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
ajv.addSchema({
|
|
||||||
$id: 'http://example.com/schemas/Child.json',
|
|
||||||
additionalProperties: false,
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
id: {
|
|
||||||
type: 'string',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'foo' property is not expected to be here",
|
|
||||||
path: '{base}.child.0',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
errorType: 'additionalProperties',
|
|
||||||
},
|
|
||||||
message: "'aaa' property is not expected to be here",
|
|
||||||
path: '{base}.child.1',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should handle number enums', () => {
|
|
||||||
data = {
|
|
||||||
isLive: 2,
|
|
||||||
};
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
isLive: {
|
|
||||||
type: 'integer',
|
|
||||||
enum: [0, 1],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
allowedValues: [0, 1],
|
|
||||||
errorType: 'enum',
|
|
||||||
},
|
|
||||||
message: "'isLive' property must be equal to one of the allowed values",
|
|
||||||
path: '{base}.isLive',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('const', () => {
|
|
||||||
it('should handle const errors', () => {
|
|
||||||
data = {
|
|
||||||
const: 2,
|
|
||||||
};
|
|
||||||
schema = {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
const: {
|
|
||||||
type: 'integer',
|
|
||||||
const: 42,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
ajv.validate(schema, data);
|
|
||||||
const errors = betterAjvErrors({ data, schema, errors: ajv.errors });
|
|
||||||
expect(errors).toEqual([
|
|
||||||
{
|
|
||||||
context: {
|
|
||||||
allowedValue: 42,
|
|
||||||
errorType: 'const',
|
|
||||||
},
|
|
||||||
message: "'const' property must be equal to the allowed value",
|
|
||||||
path: '{base}.const',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
121
pwa/node_modules/@apideck/better-ajv-errors/src/index.ts
generated
vendored
121
pwa/node_modules/@apideck/better-ajv-errors/src/index.ts
generated
vendored
|
|
@ -1,121 +0,0 @@
|
||||||
import { DefinedError, ErrorObject } from 'ajv';
|
|
||||||
import type { JSONSchema6 } from 'json-schema';
|
|
||||||
import { ValidationError } from './types/ValidationError';
|
|
||||||
import { filterSingleErrorPerProperty } from './lib/filter';
|
|
||||||
import { getSuggestion } from './lib/suggestions';
|
|
||||||
import { cleanAjvMessage, getLastSegment, pointerToDotNotation, safeJsonPointer } from './lib/utils';
|
|
||||||
|
|
||||||
export interface BetterAjvErrorsOptions {
|
|
||||||
errors: ErrorObject[] | null | undefined;
|
|
||||||
data: any;
|
|
||||||
schema: JSONSchema6;
|
|
||||||
basePath?: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const betterAjvErrors = ({
|
|
||||||
errors,
|
|
||||||
data,
|
|
||||||
schema,
|
|
||||||
basePath = '{base}',
|
|
||||||
}: BetterAjvErrorsOptions): ValidationError[] => {
|
|
||||||
if (!Array.isArray(errors) || errors.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
const definedErrors = filterSingleErrorPerProperty(errors as DefinedError[]);
|
|
||||||
|
|
||||||
return definedErrors.map((error) => {
|
|
||||||
const path = pointerToDotNotation(basePath + error.instancePath);
|
|
||||||
const prop = getLastSegment(error.instancePath);
|
|
||||||
const defaultContext = {
|
|
||||||
errorType: error.keyword,
|
|
||||||
};
|
|
||||||
const defaultMessage = `${prop ? `property '${prop}'` : path} ${cleanAjvMessage(error.message as string)}`;
|
|
||||||
|
|
||||||
let validationError: ValidationError;
|
|
||||||
|
|
||||||
switch (error.keyword) {
|
|
||||||
case 'additionalProperties': {
|
|
||||||
const additionalProp = error.params.additionalProperty;
|
|
||||||
const suggestionPointer = error.schemaPath.replace('#', '').replace('/additionalProperties', '');
|
|
||||||
const { properties } = safeJsonPointer({
|
|
||||||
object: schema,
|
|
||||||
pnter: suggestionPointer,
|
|
||||||
fallback: { properties: {} },
|
|
||||||
});
|
|
||||||
validationError = {
|
|
||||||
message: `'${additionalProp}' property is not expected to be here`,
|
|
||||||
suggestion: getSuggestion({
|
|
||||||
value: additionalProp,
|
|
||||||
suggestions: Object.keys(properties ?? {}),
|
|
||||||
format: (suggestion) => `Did you mean property '${suggestion}'?`,
|
|
||||||
}),
|
|
||||||
path,
|
|
||||||
context: defaultContext,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'enum': {
|
|
||||||
const suggestions = error.params.allowedValues.map((value) => value.toString());
|
|
||||||
const prop = getLastSegment(error.instancePath);
|
|
||||||
const value = safeJsonPointer({ object: data, pnter: error.instancePath, fallback: '' });
|
|
||||||
validationError = {
|
|
||||||
message: `'${prop}' property must be equal to one of the allowed values`,
|
|
||||||
suggestion: getSuggestion({
|
|
||||||
value,
|
|
||||||
suggestions,
|
|
||||||
}),
|
|
||||||
path,
|
|
||||||
context: {
|
|
||||||
...defaultContext,
|
|
||||||
allowedValues: error.params.allowedValues,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'type': {
|
|
||||||
const prop = getLastSegment(error.instancePath);
|
|
||||||
const type = error.params.type;
|
|
||||||
validationError = {
|
|
||||||
message: `'${prop}' property type must be ${type}`,
|
|
||||||
path,
|
|
||||||
context: defaultContext,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'required': {
|
|
||||||
validationError = {
|
|
||||||
message: `${path} must have required property '${error.params.missingProperty}'`,
|
|
||||||
path,
|
|
||||||
context: defaultContext,
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'const': {
|
|
||||||
return {
|
|
||||||
message: `'${prop}' property must be equal to the allowed value`,
|
|
||||||
path,
|
|
||||||
context: {
|
|
||||||
...defaultContext,
|
|
||||||
allowedValue: error.params.allowedValue,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
return { message: defaultMessage, path, context: defaultContext };
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove empty properties
|
|
||||||
const errorEntries = Object.entries(validationError);
|
|
||||||
for (const [key, value] of errorEntries as [keyof ValidationError, unknown][]) {
|
|
||||||
if (value === null || value === undefined || value === '') {
|
|
||||||
delete validationError[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return validationError;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
export { ValidationError };
|
|
||||||
23
pwa/node_modules/@apideck/better-ajv-errors/src/lib/filter.ts
generated
vendored
23
pwa/node_modules/@apideck/better-ajv-errors/src/lib/filter.ts
generated
vendored
|
|
@ -1,23 +0,0 @@
|
||||||
import { DefinedError } from 'ajv';
|
|
||||||
import { AJV_ERROR_KEYWORD_WEIGHT_MAP } from '../constants';
|
|
||||||
|
|
||||||
export const filterSingleErrorPerProperty = (errors: DefinedError[]): DefinedError[] => {
|
|
||||||
const errorsPerProperty = errors.reduce<Record<string, DefinedError>>((acc, error) => {
|
|
||||||
const prop =
|
|
||||||
error.instancePath + ((error.params as any)?.additionalProperty ?? (error.params as any)?.missingProperty ?? '');
|
|
||||||
const existingError = acc[prop];
|
|
||||||
if (!existingError) {
|
|
||||||
acc[prop] = error;
|
|
||||||
return acc;
|
|
||||||
}
|
|
||||||
const weight = AJV_ERROR_KEYWORD_WEIGHT_MAP[error.keyword] ?? 0;
|
|
||||||
const existingWeight = AJV_ERROR_KEYWORD_WEIGHT_MAP[existingError.keyword] ?? 0;
|
|
||||||
|
|
||||||
if (weight > existingWeight) {
|
|
||||||
acc[prop] = error;
|
|
||||||
}
|
|
||||||
return acc;
|
|
||||||
}, {});
|
|
||||||
|
|
||||||
return Object.values(errorsPerProperty);
|
|
||||||
};
|
|
||||||
29
pwa/node_modules/@apideck/better-ajv-errors/src/lib/suggestions.ts
generated
vendored
29
pwa/node_modules/@apideck/better-ajv-errors/src/lib/suggestions.ts
generated
vendored
|
|
@ -1,29 +0,0 @@
|
||||||
import leven from 'leven';
|
|
||||||
|
|
||||||
export const getSuggestion = ({
|
|
||||||
value,
|
|
||||||
suggestions,
|
|
||||||
format = (suggestion) => `Did you mean '${suggestion}'?`,
|
|
||||||
}: {
|
|
||||||
value: string | null;
|
|
||||||
suggestions: string[];
|
|
||||||
format?: (suggestion: string) => string;
|
|
||||||
}): string => {
|
|
||||||
if (!value) return '';
|
|
||||||
const bestSuggestion = suggestions.reduce(
|
|
||||||
(best, current) => {
|
|
||||||
const distance = leven(value, current);
|
|
||||||
if (best.distance > distance) {
|
|
||||||
return { value: current, distance };
|
|
||||||
}
|
|
||||||
|
|
||||||
return best;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
distance: Infinity,
|
|
||||||
value: '',
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
return bestSuggestion.distance < value.length ? format(bestSuggestion.value) : '';
|
|
||||||
};
|
|
||||||
23
pwa/node_modules/@apideck/better-ajv-errors/src/lib/utils.ts
generated
vendored
23
pwa/node_modules/@apideck/better-ajv-errors/src/lib/utils.ts
generated
vendored
|
|
@ -1,23 +0,0 @@
|
||||||
import { NOT_REGEX, QUOTES_REGEX, SLASH_REGEX } from '../constants';
|
|
||||||
import pointer from 'jsonpointer';
|
|
||||||
|
|
||||||
export const pointerToDotNotation = (pointer: string): string => {
|
|
||||||
return pointer.replace(SLASH_REGEX, '.');
|
|
||||||
};
|
|
||||||
|
|
||||||
export const cleanAjvMessage = (message: string): string => {
|
|
||||||
return message.replace(QUOTES_REGEX, "'").replace(NOT_REGEX, 'not');
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getLastSegment = (path: string): string => {
|
|
||||||
const segments = path.split('/');
|
|
||||||
return segments.pop() as string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const safeJsonPointer = <T>({ object, pnter, fallback }: { object: any; pnter: string; fallback: T }): T => {
|
|
||||||
try {
|
|
||||||
return pointer.get(object, pnter);
|
|
||||||
} catch (err) {
|
|
||||||
return fallback;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
11
pwa/node_modules/@apideck/better-ajv-errors/src/types/ValidationError.ts
generated
vendored
11
pwa/node_modules/@apideck/better-ajv-errors/src/types/ValidationError.ts
generated
vendored
|
|
@ -1,11 +0,0 @@
|
||||||
import { DefinedError } from 'ajv';
|
|
||||||
|
|
||||||
export interface ValidationError {
|
|
||||||
message: string;
|
|
||||||
path: string;
|
|
||||||
suggestion?: string;
|
|
||||||
context: {
|
|
||||||
errorType: DefinedError['keyword'];
|
|
||||||
[additionalContext: string]: unknown;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
22
pwa/node_modules/@babel/code-frame/LICENSE
generated
vendored
22
pwa/node_modules/@babel/code-frame/LICENSE
generated
vendored
|
|
@ -1,22 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
|
||||||
|
|
||||||
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.
|
|
||||||
19
pwa/node_modules/@babel/code-frame/README.md
generated
vendored
19
pwa/node_modules/@babel/code-frame/README.md
generated
vendored
|
|
@ -1,19 +0,0 @@
|
||||||
# @babel/code-frame
|
|
||||||
|
|
||||||
> Generate errors that contain a code frame that point to source locations.
|
|
||||||
|
|
||||||
See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
Using npm:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install --save-dev @babel/code-frame
|
|
||||||
```
|
|
||||||
|
|
||||||
or using yarn:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yarn add @babel/code-frame --dev
|
|
||||||
```
|
|
||||||
217
pwa/node_modules/@babel/code-frame/lib/index.js
generated
vendored
217
pwa/node_modules/@babel/code-frame/lib/index.js
generated
vendored
|
|
@ -1,217 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
Object.defineProperty(exports, '__esModule', { value: true });
|
|
||||||
|
|
||||||
var picocolors = require('picocolors');
|
|
||||||
var jsTokens = require('js-tokens');
|
|
||||||
var helperValidatorIdentifier = require('@babel/helper-validator-identifier');
|
|
||||||
|
|
||||||
function isColorSupported() {
|
|
||||||
return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
|
|
||||||
);
|
|
||||||
}
|
|
||||||
const compose = (f, g) => v => f(g(v));
|
|
||||||
function buildDefs(colors) {
|
|
||||||
return {
|
|
||||||
keyword: colors.cyan,
|
|
||||||
capitalized: colors.yellow,
|
|
||||||
jsxIdentifier: colors.yellow,
|
|
||||||
punctuator: colors.yellow,
|
|
||||||
number: colors.magenta,
|
|
||||||
string: colors.green,
|
|
||||||
regex: colors.magenta,
|
|
||||||
comment: colors.gray,
|
|
||||||
invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
|
|
||||||
gutter: colors.gray,
|
|
||||||
marker: compose(colors.red, colors.bold),
|
|
||||||
message: compose(colors.red, colors.bold),
|
|
||||||
reset: colors.reset
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const defsOn = buildDefs(picocolors.createColors(true));
|
|
||||||
const defsOff = buildDefs(picocolors.createColors(false));
|
|
||||||
function getDefs(enabled) {
|
|
||||||
return enabled ? defsOn : defsOff;
|
|
||||||
}
|
|
||||||
|
|
||||||
const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
|
|
||||||
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
|
|
||||||
const BRACKET = /^[()[\]{}]$/;
|
|
||||||
let tokenize;
|
|
||||||
const JSX_TAG = /^[a-z][\w-]*$/i;
|
|
||||||
const getTokenType = function (token, offset, text) {
|
|
||||||
if (token.type === "name") {
|
|
||||||
const tokenValue = token.value;
|
|
||||||
if (helperValidatorIdentifier.isKeyword(tokenValue) || helperValidatorIdentifier.isStrictReservedWord(tokenValue, true) || sometimesKeywords.has(tokenValue)) {
|
|
||||||
return "keyword";
|
|
||||||
}
|
|
||||||
if (JSX_TAG.test(tokenValue) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
|
|
||||||
return "jsxIdentifier";
|
|
||||||
}
|
|
||||||
const firstChar = String.fromCodePoint(tokenValue.codePointAt(0));
|
|
||||||
if (firstChar !== firstChar.toLowerCase()) {
|
|
||||||
return "capitalized";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (token.type === "punctuator" && BRACKET.test(token.value)) {
|
|
||||||
return "bracket";
|
|
||||||
}
|
|
||||||
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
|
|
||||||
return "punctuator";
|
|
||||||
}
|
|
||||||
return token.type;
|
|
||||||
};
|
|
||||||
tokenize = function* (text) {
|
|
||||||
let match;
|
|
||||||
while (match = jsTokens.default.exec(text)) {
|
|
||||||
const token = jsTokens.matchToToken(match);
|
|
||||||
yield {
|
|
||||||
type: getTokenType(token, match.index, text),
|
|
||||||
value: token.value
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
function highlight(text) {
|
|
||||||
if (text === "") return "";
|
|
||||||
const defs = getDefs(true);
|
|
||||||
let highlighted = "";
|
|
||||||
for (const {
|
|
||||||
type,
|
|
||||||
value
|
|
||||||
} of tokenize(text)) {
|
|
||||||
if (type in defs) {
|
|
||||||
highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
|
|
||||||
} else {
|
|
||||||
highlighted += value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return highlighted;
|
|
||||||
}
|
|
||||||
|
|
||||||
let deprecationWarningShown = false;
|
|
||||||
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
|
||||||
function getMarkerLines(loc, source, opts, startLineBaseZero) {
|
|
||||||
const startLoc = Object.assign({
|
|
||||||
column: 0,
|
|
||||||
line: -1
|
|
||||||
}, loc.start);
|
|
||||||
const endLoc = Object.assign({}, startLoc, loc.end);
|
|
||||||
const {
|
|
||||||
linesAbove = 2,
|
|
||||||
linesBelow = 3
|
|
||||||
} = opts || {};
|
|
||||||
const startLine = startLoc.line - startLineBaseZero;
|
|
||||||
const startColumn = startLoc.column;
|
|
||||||
const endLine = endLoc.line - startLineBaseZero;
|
|
||||||
const endColumn = endLoc.column;
|
|
||||||
let start = Math.max(startLine - (linesAbove + 1), 0);
|
|
||||||
let end = Math.min(source.length, endLine + linesBelow);
|
|
||||||
if (startLine === -1) {
|
|
||||||
start = 0;
|
|
||||||
}
|
|
||||||
if (endLine === -1) {
|
|
||||||
end = source.length;
|
|
||||||
}
|
|
||||||
const lineDiff = endLine - startLine;
|
|
||||||
const markerLines = {};
|
|
||||||
if (lineDiff) {
|
|
||||||
for (let i = 0; i <= lineDiff; i++) {
|
|
||||||
const lineNumber = i + startLine;
|
|
||||||
if (!startColumn) {
|
|
||||||
markerLines[lineNumber] = true;
|
|
||||||
} else if (i === 0) {
|
|
||||||
const sourceLength = source[lineNumber - 1].length;
|
|
||||||
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
|
|
||||||
} else if (i === lineDiff) {
|
|
||||||
markerLines[lineNumber] = [0, endColumn];
|
|
||||||
} else {
|
|
||||||
const sourceLength = source[lineNumber - i].length;
|
|
||||||
markerLines[lineNumber] = [0, sourceLength];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (startColumn === endColumn) {
|
|
||||||
if (startColumn) {
|
|
||||||
markerLines[startLine] = [startColumn, 0];
|
|
||||||
} else {
|
|
||||||
markerLines[startLine] = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
markerLines[startLine] = [startColumn, endColumn - startColumn];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
start,
|
|
||||||
end,
|
|
||||||
markerLines
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function codeFrameColumns(rawLines, loc, opts = {}) {
|
|
||||||
const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
|
|
||||||
const startLineBaseZero = (opts.startLine || 1) - 1;
|
|
||||||
const defs = getDefs(shouldHighlight);
|
|
||||||
const lines = rawLines.split(NEWLINE);
|
|
||||||
const {
|
|
||||||
start,
|
|
||||||
end,
|
|
||||||
markerLines
|
|
||||||
} = getMarkerLines(loc, lines, opts, startLineBaseZero);
|
|
||||||
const hasColumns = loc.start && typeof loc.start.column === "number";
|
|
||||||
const numberMaxWidth = String(end + startLineBaseZero).length;
|
|
||||||
const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
|
|
||||||
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
|
|
||||||
const number = start + 1 + index;
|
|
||||||
const paddedNumber = ` ${number + startLineBaseZero}`.slice(-numberMaxWidth);
|
|
||||||
const gutter = ` ${paddedNumber} |`;
|
|
||||||
const hasMarker = markerLines[number];
|
|
||||||
const lastMarkerLine = !markerLines[number + 1];
|
|
||||||
if (hasMarker) {
|
|
||||||
let markerLine = "";
|
|
||||||
if (Array.isArray(hasMarker)) {
|
|
||||||
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
|
|
||||||
const numberOfMarkers = hasMarker[1] || 1;
|
|
||||||
markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
|
|
||||||
if (lastMarkerLine && opts.message) {
|
|
||||||
markerLine += " " + defs.message(opts.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
|
|
||||||
} else {
|
|
||||||
return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
|
|
||||||
}
|
|
||||||
}).join("\n");
|
|
||||||
if (opts.message && !hasColumns) {
|
|
||||||
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
|
|
||||||
}
|
|
||||||
if (shouldHighlight) {
|
|
||||||
return defs.reset(frame);
|
|
||||||
} else {
|
|
||||||
return frame;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function index (rawLines, lineNumber, colNumber, opts = {}) {
|
|
||||||
if (!deprecationWarningShown) {
|
|
||||||
deprecationWarningShown = true;
|
|
||||||
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
|
|
||||||
if (process.emitWarning) {
|
|
||||||
process.emitWarning(message, "DeprecationWarning");
|
|
||||||
} else {
|
|
||||||
const deprecationError = new Error(message);
|
|
||||||
deprecationError.name = "DeprecationWarning";
|
|
||||||
console.warn(new Error(message));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
colNumber = Math.max(colNumber, 0);
|
|
||||||
const location = {
|
|
||||||
start: {
|
|
||||||
column: colNumber,
|
|
||||||
line: lineNumber
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return codeFrameColumns(rawLines, location, opts);
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.codeFrameColumns = codeFrameColumns;
|
|
||||||
exports.default = index;
|
|
||||||
exports.highlight = highlight;
|
|
||||||
//# sourceMappingURL=index.js.map
|
|
||||||
1
pwa/node_modules/@babel/code-frame/lib/index.js.map
generated
vendored
1
pwa/node_modules/@babel/code-frame/lib/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
32
pwa/node_modules/@babel/code-frame/package.json
generated
vendored
32
pwa/node_modules/@babel/code-frame/package.json
generated
vendored
|
|
@ -1,32 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@babel/code-frame",
|
|
||||||
"version": "7.29.0",
|
|
||||||
"description": "Generate errors that contain a code frame that point to source locations.",
|
|
||||||
"author": "The Babel Team (https://babel.dev/team)",
|
|
||||||
"homepage": "https://babel.dev/docs/en/next/babel-code-frame",
|
|
||||||
"bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen",
|
|
||||||
"license": "MIT",
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/babel/babel.git",
|
|
||||||
"directory": "packages/babel-code-frame"
|
|
||||||
},
|
|
||||||
"main": "./lib/index.js",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-validator-identifier": "^7.28.5",
|
|
||||||
"js-tokens": "^4.0.0",
|
|
||||||
"picocolors": "^1.1.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"charcodes": "^0.2.0",
|
|
||||||
"import-meta-resolve": "^4.1.0",
|
|
||||||
"strip-ansi": "^4.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
},
|
|
||||||
"type": "commonjs"
|
|
||||||
}
|
|
||||||
22
pwa/node_modules/@babel/compat-data/LICENSE
generated
vendored
22
pwa/node_modules/@babel/compat-data/LICENSE
generated
vendored
|
|
@ -1,22 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
|
||||||
|
|
||||||
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.
|
|
||||||
19
pwa/node_modules/@babel/compat-data/README.md
generated
vendored
19
pwa/node_modules/@babel/compat-data/README.md
generated
vendored
|
|
@ -1,19 +0,0 @@
|
||||||
# @babel/compat-data
|
|
||||||
|
|
||||||
> The compat-data to determine required Babel plugins
|
|
||||||
|
|
||||||
See our website [@babel/compat-data](https://babeljs.io/docs/babel-compat-data) for more information.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
Using npm:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install --save @babel/compat-data
|
|
||||||
```
|
|
||||||
|
|
||||||
or using yarn:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yarn add @babel/compat-data
|
|
||||||
```
|
|
||||||
2
pwa/node_modules/@babel/compat-data/corejs2-built-ins.js
generated
vendored
2
pwa/node_modules/@babel/compat-data/corejs2-built-ins.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
// Todo (Babel 8): remove this file as Babel 8 drop support of core-js 2
|
|
||||||
module.exports = require("./data/corejs2-built-ins.json");
|
|
||||||
2
pwa/node_modules/@babel/compat-data/corejs3-shipped-proposals.js
generated
vendored
2
pwa/node_modules/@babel/compat-data/corejs3-shipped-proposals.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
// Todo (Babel 8): remove this file now that it is included in babel-plugin-polyfill-corejs3
|
|
||||||
module.exports = require("./data/corejs3-shipped-proposals.json");
|
|
||||||
2106
pwa/node_modules/@babel/compat-data/data/corejs2-built-ins.json
generated
vendored
2106
pwa/node_modules/@babel/compat-data/data/corejs2-built-ins.json
generated
vendored
File diff suppressed because it is too large
Load diff
5
pwa/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json
generated
vendored
5
pwa/node_modules/@babel/compat-data/data/corejs3-shipped-proposals.json
generated
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
[
|
|
||||||
"esnext.promise.all-settled",
|
|
||||||
"esnext.string.match-all",
|
|
||||||
"esnext.global-this"
|
|
||||||
]
|
|
||||||
18
pwa/node_modules/@babel/compat-data/data/native-modules.json
generated
vendored
18
pwa/node_modules/@babel/compat-data/data/native-modules.json
generated
vendored
|
|
@ -1,18 +0,0 @@
|
||||||
{
|
|
||||||
"es6.module": {
|
|
||||||
"chrome": "61",
|
|
||||||
"and_chr": "61",
|
|
||||||
"edge": "16",
|
|
||||||
"firefox": "60",
|
|
||||||
"and_ff": "60",
|
|
||||||
"node": "13.2.0",
|
|
||||||
"opera": "48",
|
|
||||||
"op_mob": "45",
|
|
||||||
"safari": "10.1",
|
|
||||||
"ios": "10.3",
|
|
||||||
"samsung": "8.2",
|
|
||||||
"android": "61",
|
|
||||||
"electron": "2.0",
|
|
||||||
"ios_saf": "10.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
35
pwa/node_modules/@babel/compat-data/data/overlapping-plugins.json
generated
vendored
35
pwa/node_modules/@babel/compat-data/data/overlapping-plugins.json
generated
vendored
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
"transform-async-to-generator": [
|
|
||||||
"bugfix/transform-async-arrows-in-class"
|
|
||||||
],
|
|
||||||
"transform-parameters": [
|
|
||||||
"bugfix/transform-edge-default-parameters",
|
|
||||||
"bugfix/transform-safari-id-destructuring-collision-in-function-expression"
|
|
||||||
],
|
|
||||||
"transform-function-name": [
|
|
||||||
"bugfix/transform-edge-function-name"
|
|
||||||
],
|
|
||||||
"transform-block-scoping": [
|
|
||||||
"bugfix/transform-safari-block-shadowing",
|
|
||||||
"bugfix/transform-safari-for-shadowing"
|
|
||||||
],
|
|
||||||
"transform-template-literals": [
|
|
||||||
"bugfix/transform-tagged-template-caching"
|
|
||||||
],
|
|
||||||
"transform-optional-chaining": [
|
|
||||||
"bugfix/transform-v8-spread-parameters-in-optional-chaining"
|
|
||||||
],
|
|
||||||
"proposal-optional-chaining": [
|
|
||||||
"bugfix/transform-v8-spread-parameters-in-optional-chaining"
|
|
||||||
],
|
|
||||||
"transform-class-properties": [
|
|
||||||
"bugfix/transform-v8-static-class-fields-redefine-readonly",
|
|
||||||
"bugfix/transform-firefox-class-in-computed-class-key",
|
|
||||||
"bugfix/transform-safari-class-field-initializer-scope"
|
|
||||||
],
|
|
||||||
"proposal-class-properties": [
|
|
||||||
"bugfix/transform-v8-static-class-fields-redefine-readonly",
|
|
||||||
"bugfix/transform-firefox-class-in-computed-class-key",
|
|
||||||
"bugfix/transform-safari-class-field-initializer-scope"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
203
pwa/node_modules/@babel/compat-data/data/plugin-bugfixes.json
generated
vendored
203
pwa/node_modules/@babel/compat-data/data/plugin-bugfixes.json
generated
vendored
|
|
@ -1,203 +0,0 @@
|
||||||
{
|
|
||||||
"bugfix/transform-async-arrows-in-class": {
|
|
||||||
"chrome": "55",
|
|
||||||
"opera": "42",
|
|
||||||
"edge": "15",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "11",
|
|
||||||
"node": "7.6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11",
|
|
||||||
"samsung": "6",
|
|
||||||
"opera_mobile": "42",
|
|
||||||
"electron": "1.6"
|
|
||||||
},
|
|
||||||
"bugfix/transform-edge-default-parameters": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "18",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"bugfix/transform-edge-function-name": {
|
|
||||||
"chrome": "51",
|
|
||||||
"opera": "38",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "41",
|
|
||||||
"electron": "1.2"
|
|
||||||
},
|
|
||||||
"bugfix/transform-safari-block-shadowing": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "44",
|
|
||||||
"safari": "11",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ie": "11",
|
|
||||||
"ios": "11",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"bugfix/transform-safari-for-shadowing": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "4",
|
|
||||||
"safari": "11",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ie": "11",
|
|
||||||
"ios": "11",
|
|
||||||
"samsung": "5",
|
|
||||||
"rhino": "1.7.13",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"bugfix/transform-safari-id-destructuring-collision-in-function-expression": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "14",
|
|
||||||
"firefox": "2",
|
|
||||||
"safari": "16.3",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "16.3",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"bugfix/transform-tagged-template-caching": {
|
|
||||||
"chrome": "41",
|
|
||||||
"opera": "28",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "34",
|
|
||||||
"safari": "13",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13",
|
|
||||||
"samsung": "3.4",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "28",
|
|
||||||
"electron": "0.21"
|
|
||||||
},
|
|
||||||
"bugfix/transform-v8-spread-parameters-in-optional-chaining": {
|
|
||||||
"chrome": "91",
|
|
||||||
"opera": "77",
|
|
||||||
"edge": "91",
|
|
||||||
"firefox": "74",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "16.9",
|
|
||||||
"deno": "1.9",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "16",
|
|
||||||
"opera_mobile": "64",
|
|
||||||
"electron": "13.0"
|
|
||||||
},
|
|
||||||
"transform-optional-chaining": {
|
|
||||||
"chrome": "80",
|
|
||||||
"opera": "67",
|
|
||||||
"edge": "80",
|
|
||||||
"firefox": "74",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "14",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "13",
|
|
||||||
"rhino": "1.8",
|
|
||||||
"opera_mobile": "57",
|
|
||||||
"electron": "8.0"
|
|
||||||
},
|
|
||||||
"proposal-optional-chaining": {
|
|
||||||
"chrome": "80",
|
|
||||||
"opera": "67",
|
|
||||||
"edge": "80",
|
|
||||||
"firefox": "74",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "14",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "13",
|
|
||||||
"rhino": "1.8",
|
|
||||||
"opera_mobile": "57",
|
|
||||||
"electron": "8.0"
|
|
||||||
},
|
|
||||||
"transform-parameters": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "15",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"transform-async-to-generator": {
|
|
||||||
"chrome": "55",
|
|
||||||
"opera": "42",
|
|
||||||
"edge": "15",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "10.1",
|
|
||||||
"node": "7.6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10.3",
|
|
||||||
"samsung": "6",
|
|
||||||
"opera_mobile": "42",
|
|
||||||
"electron": "1.6"
|
|
||||||
},
|
|
||||||
"transform-template-literals": {
|
|
||||||
"chrome": "41",
|
|
||||||
"opera": "28",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "34",
|
|
||||||
"safari": "9",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "9",
|
|
||||||
"samsung": "3.4",
|
|
||||||
"opera_mobile": "28",
|
|
||||||
"electron": "0.21"
|
|
||||||
},
|
|
||||||
"transform-function-name": {
|
|
||||||
"chrome": "51",
|
|
||||||
"opera": "38",
|
|
||||||
"edge": "14",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "41",
|
|
||||||
"electron": "1.2"
|
|
||||||
},
|
|
||||||
"transform-block-scoping": {
|
|
||||||
"chrome": "50",
|
|
||||||
"opera": "37",
|
|
||||||
"edge": "14",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "37",
|
|
||||||
"electron": "1.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
838
pwa/node_modules/@babel/compat-data/data/plugins.json
generated
vendored
838
pwa/node_modules/@babel/compat-data/data/plugins.json
generated
vendored
|
|
@ -1,838 +0,0 @@
|
||||||
{
|
|
||||||
"transform-explicit-resource-management": {
|
|
||||||
"chrome": "134",
|
|
||||||
"edge": "134",
|
|
||||||
"firefox": "141",
|
|
||||||
"node": "24",
|
|
||||||
"electron": "35.0"
|
|
||||||
},
|
|
||||||
"transform-duplicate-named-capturing-groups-regex": {
|
|
||||||
"chrome": "126",
|
|
||||||
"opera": "112",
|
|
||||||
"edge": "126",
|
|
||||||
"firefox": "129",
|
|
||||||
"safari": "17.4",
|
|
||||||
"node": "23",
|
|
||||||
"ios": "17.4",
|
|
||||||
"electron": "31.0"
|
|
||||||
},
|
|
||||||
"transform-regexp-modifiers": {
|
|
||||||
"chrome": "125",
|
|
||||||
"opera": "111",
|
|
||||||
"edge": "125",
|
|
||||||
"firefox": "132",
|
|
||||||
"node": "23",
|
|
||||||
"samsung": "27",
|
|
||||||
"electron": "31.0"
|
|
||||||
},
|
|
||||||
"transform-unicode-sets-regex": {
|
|
||||||
"chrome": "112",
|
|
||||||
"opera": "98",
|
|
||||||
"edge": "112",
|
|
||||||
"firefox": "116",
|
|
||||||
"safari": "17",
|
|
||||||
"node": "20",
|
|
||||||
"deno": "1.32",
|
|
||||||
"ios": "17",
|
|
||||||
"samsung": "23",
|
|
||||||
"opera_mobile": "75",
|
|
||||||
"electron": "24.0"
|
|
||||||
},
|
|
||||||
"bugfix/transform-v8-static-class-fields-redefine-readonly": {
|
|
||||||
"chrome": "98",
|
|
||||||
"opera": "84",
|
|
||||||
"edge": "98",
|
|
||||||
"firefox": "75",
|
|
||||||
"safari": "15",
|
|
||||||
"node": "12",
|
|
||||||
"deno": "1.18",
|
|
||||||
"ios": "15",
|
|
||||||
"samsung": "11",
|
|
||||||
"opera_mobile": "52",
|
|
||||||
"electron": "17.0"
|
|
||||||
},
|
|
||||||
"bugfix/transform-firefox-class-in-computed-class-key": {
|
|
||||||
"chrome": "74",
|
|
||||||
"opera": "62",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "126",
|
|
||||||
"safari": "16",
|
|
||||||
"node": "12",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "16",
|
|
||||||
"samsung": "11",
|
|
||||||
"opera_mobile": "53",
|
|
||||||
"electron": "6.0"
|
|
||||||
},
|
|
||||||
"bugfix/transform-safari-class-field-initializer-scope": {
|
|
||||||
"chrome": "74",
|
|
||||||
"opera": "62",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "69",
|
|
||||||
"safari": "16",
|
|
||||||
"node": "12",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "16",
|
|
||||||
"samsung": "11",
|
|
||||||
"opera_mobile": "53",
|
|
||||||
"electron": "6.0"
|
|
||||||
},
|
|
||||||
"transform-class-static-block": {
|
|
||||||
"chrome": "94",
|
|
||||||
"opera": "80",
|
|
||||||
"edge": "94",
|
|
||||||
"firefox": "93",
|
|
||||||
"safari": "16.4",
|
|
||||||
"node": "16.11",
|
|
||||||
"deno": "1.14",
|
|
||||||
"ios": "16.4",
|
|
||||||
"samsung": "17",
|
|
||||||
"opera_mobile": "66",
|
|
||||||
"electron": "15.0"
|
|
||||||
},
|
|
||||||
"proposal-class-static-block": {
|
|
||||||
"chrome": "94",
|
|
||||||
"opera": "80",
|
|
||||||
"edge": "94",
|
|
||||||
"firefox": "93",
|
|
||||||
"safari": "16.4",
|
|
||||||
"node": "16.11",
|
|
||||||
"deno": "1.14",
|
|
||||||
"ios": "16.4",
|
|
||||||
"samsung": "17",
|
|
||||||
"opera_mobile": "66",
|
|
||||||
"electron": "15.0"
|
|
||||||
},
|
|
||||||
"transform-private-property-in-object": {
|
|
||||||
"chrome": "91",
|
|
||||||
"opera": "77",
|
|
||||||
"edge": "91",
|
|
||||||
"firefox": "90",
|
|
||||||
"safari": "15",
|
|
||||||
"node": "16.9",
|
|
||||||
"deno": "1.9",
|
|
||||||
"ios": "15",
|
|
||||||
"samsung": "16",
|
|
||||||
"opera_mobile": "64",
|
|
||||||
"electron": "13.0"
|
|
||||||
},
|
|
||||||
"proposal-private-property-in-object": {
|
|
||||||
"chrome": "91",
|
|
||||||
"opera": "77",
|
|
||||||
"edge": "91",
|
|
||||||
"firefox": "90",
|
|
||||||
"safari": "15",
|
|
||||||
"node": "16.9",
|
|
||||||
"deno": "1.9",
|
|
||||||
"ios": "15",
|
|
||||||
"samsung": "16",
|
|
||||||
"opera_mobile": "64",
|
|
||||||
"electron": "13.0"
|
|
||||||
},
|
|
||||||
"transform-class-properties": {
|
|
||||||
"chrome": "74",
|
|
||||||
"opera": "62",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "90",
|
|
||||||
"safari": "14.1",
|
|
||||||
"node": "12",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "14.5",
|
|
||||||
"samsung": "11",
|
|
||||||
"opera_mobile": "53",
|
|
||||||
"electron": "6.0"
|
|
||||||
},
|
|
||||||
"proposal-class-properties": {
|
|
||||||
"chrome": "74",
|
|
||||||
"opera": "62",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "90",
|
|
||||||
"safari": "14.1",
|
|
||||||
"node": "12",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "14.5",
|
|
||||||
"samsung": "11",
|
|
||||||
"opera_mobile": "53",
|
|
||||||
"electron": "6.0"
|
|
||||||
},
|
|
||||||
"transform-private-methods": {
|
|
||||||
"chrome": "84",
|
|
||||||
"opera": "70",
|
|
||||||
"edge": "84",
|
|
||||||
"firefox": "90",
|
|
||||||
"safari": "15",
|
|
||||||
"node": "14.6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "15",
|
|
||||||
"samsung": "14",
|
|
||||||
"opera_mobile": "60",
|
|
||||||
"electron": "10.0"
|
|
||||||
},
|
|
||||||
"proposal-private-methods": {
|
|
||||||
"chrome": "84",
|
|
||||||
"opera": "70",
|
|
||||||
"edge": "84",
|
|
||||||
"firefox": "90",
|
|
||||||
"safari": "15",
|
|
||||||
"node": "14.6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "15",
|
|
||||||
"samsung": "14",
|
|
||||||
"opera_mobile": "60",
|
|
||||||
"electron": "10.0"
|
|
||||||
},
|
|
||||||
"transform-numeric-separator": {
|
|
||||||
"chrome": "75",
|
|
||||||
"opera": "62",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "70",
|
|
||||||
"safari": "13",
|
|
||||||
"node": "12.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13",
|
|
||||||
"samsung": "11",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "54",
|
|
||||||
"electron": "6.0"
|
|
||||||
},
|
|
||||||
"proposal-numeric-separator": {
|
|
||||||
"chrome": "75",
|
|
||||||
"opera": "62",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "70",
|
|
||||||
"safari": "13",
|
|
||||||
"node": "12.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13",
|
|
||||||
"samsung": "11",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "54",
|
|
||||||
"electron": "6.0"
|
|
||||||
},
|
|
||||||
"transform-logical-assignment-operators": {
|
|
||||||
"chrome": "85",
|
|
||||||
"opera": "71",
|
|
||||||
"edge": "85",
|
|
||||||
"firefox": "79",
|
|
||||||
"safari": "14",
|
|
||||||
"node": "15",
|
|
||||||
"deno": "1.2",
|
|
||||||
"ios": "14",
|
|
||||||
"samsung": "14",
|
|
||||||
"opera_mobile": "60",
|
|
||||||
"electron": "10.0"
|
|
||||||
},
|
|
||||||
"proposal-logical-assignment-operators": {
|
|
||||||
"chrome": "85",
|
|
||||||
"opera": "71",
|
|
||||||
"edge": "85",
|
|
||||||
"firefox": "79",
|
|
||||||
"safari": "14",
|
|
||||||
"node": "15",
|
|
||||||
"deno": "1.2",
|
|
||||||
"ios": "14",
|
|
||||||
"samsung": "14",
|
|
||||||
"opera_mobile": "60",
|
|
||||||
"electron": "10.0"
|
|
||||||
},
|
|
||||||
"transform-nullish-coalescing-operator": {
|
|
||||||
"chrome": "80",
|
|
||||||
"opera": "67",
|
|
||||||
"edge": "80",
|
|
||||||
"firefox": "72",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "14",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "13",
|
|
||||||
"rhino": "1.8",
|
|
||||||
"opera_mobile": "57",
|
|
||||||
"electron": "8.0"
|
|
||||||
},
|
|
||||||
"proposal-nullish-coalescing-operator": {
|
|
||||||
"chrome": "80",
|
|
||||||
"opera": "67",
|
|
||||||
"edge": "80",
|
|
||||||
"firefox": "72",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "14",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "13",
|
|
||||||
"rhino": "1.8",
|
|
||||||
"opera_mobile": "57",
|
|
||||||
"electron": "8.0"
|
|
||||||
},
|
|
||||||
"transform-optional-chaining": {
|
|
||||||
"chrome": "91",
|
|
||||||
"opera": "77",
|
|
||||||
"edge": "91",
|
|
||||||
"firefox": "74",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "16.9",
|
|
||||||
"deno": "1.9",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "16",
|
|
||||||
"opera_mobile": "64",
|
|
||||||
"electron": "13.0"
|
|
||||||
},
|
|
||||||
"proposal-optional-chaining": {
|
|
||||||
"chrome": "91",
|
|
||||||
"opera": "77",
|
|
||||||
"edge": "91",
|
|
||||||
"firefox": "74",
|
|
||||||
"safari": "13.1",
|
|
||||||
"node": "16.9",
|
|
||||||
"deno": "1.9",
|
|
||||||
"ios": "13.4",
|
|
||||||
"samsung": "16",
|
|
||||||
"opera_mobile": "64",
|
|
||||||
"electron": "13.0"
|
|
||||||
},
|
|
||||||
"transform-json-strings": {
|
|
||||||
"chrome": "66",
|
|
||||||
"opera": "53",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "62",
|
|
||||||
"safari": "12",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "12",
|
|
||||||
"samsung": "9",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"proposal-json-strings": {
|
|
||||||
"chrome": "66",
|
|
||||||
"opera": "53",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "62",
|
|
||||||
"safari": "12",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "12",
|
|
||||||
"samsung": "9",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"transform-optional-catch-binding": {
|
|
||||||
"chrome": "66",
|
|
||||||
"opera": "53",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "58",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "9",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"proposal-optional-catch-binding": {
|
|
||||||
"chrome": "66",
|
|
||||||
"opera": "53",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "58",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "9",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"transform-parameters": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "18",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "16.3",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "16.3",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"transform-async-generator-functions": {
|
|
||||||
"chrome": "63",
|
|
||||||
"opera": "50",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "57",
|
|
||||||
"safari": "12",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "12",
|
|
||||||
"samsung": "8",
|
|
||||||
"opera_mobile": "46",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"proposal-async-generator-functions": {
|
|
||||||
"chrome": "63",
|
|
||||||
"opera": "50",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "57",
|
|
||||||
"safari": "12",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "12",
|
|
||||||
"samsung": "8",
|
|
||||||
"opera_mobile": "46",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"transform-object-rest-spread": {
|
|
||||||
"chrome": "60",
|
|
||||||
"opera": "47",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "55",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "8.3",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "8",
|
|
||||||
"opera_mobile": "44",
|
|
||||||
"electron": "2.0"
|
|
||||||
},
|
|
||||||
"proposal-object-rest-spread": {
|
|
||||||
"chrome": "60",
|
|
||||||
"opera": "47",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "55",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "8.3",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "8",
|
|
||||||
"opera_mobile": "44",
|
|
||||||
"electron": "2.0"
|
|
||||||
},
|
|
||||||
"transform-dotall-regex": {
|
|
||||||
"chrome": "62",
|
|
||||||
"opera": "49",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "78",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "8.10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "8",
|
|
||||||
"rhino": "1.7.15",
|
|
||||||
"opera_mobile": "46",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"transform-unicode-property-regex": {
|
|
||||||
"chrome": "64",
|
|
||||||
"opera": "51",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "78",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "9",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"proposal-unicode-property-regex": {
|
|
||||||
"chrome": "64",
|
|
||||||
"opera": "51",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "78",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "9",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"transform-named-capturing-groups-regex": {
|
|
||||||
"chrome": "64",
|
|
||||||
"opera": "51",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "78",
|
|
||||||
"safari": "11.1",
|
|
||||||
"node": "10",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11.3",
|
|
||||||
"samsung": "9",
|
|
||||||
"opera_mobile": "47",
|
|
||||||
"electron": "3.0"
|
|
||||||
},
|
|
||||||
"transform-async-to-generator": {
|
|
||||||
"chrome": "55",
|
|
||||||
"opera": "42",
|
|
||||||
"edge": "15",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "11",
|
|
||||||
"node": "7.6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11",
|
|
||||||
"samsung": "6",
|
|
||||||
"opera_mobile": "42",
|
|
||||||
"electron": "1.6"
|
|
||||||
},
|
|
||||||
"transform-exponentiation-operator": {
|
|
||||||
"chrome": "52",
|
|
||||||
"opera": "39",
|
|
||||||
"edge": "14",
|
|
||||||
"firefox": "52",
|
|
||||||
"safari": "10.1",
|
|
||||||
"node": "7",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10.3",
|
|
||||||
"samsung": "6",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "41",
|
|
||||||
"electron": "1.3"
|
|
||||||
},
|
|
||||||
"transform-template-literals": {
|
|
||||||
"chrome": "41",
|
|
||||||
"opera": "28",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "34",
|
|
||||||
"safari": "13",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "13",
|
|
||||||
"samsung": "3.4",
|
|
||||||
"opera_mobile": "28",
|
|
||||||
"electron": "0.21"
|
|
||||||
},
|
|
||||||
"transform-literals": {
|
|
||||||
"chrome": "44",
|
|
||||||
"opera": "31",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "9",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "9",
|
|
||||||
"samsung": "4",
|
|
||||||
"rhino": "1.7.15",
|
|
||||||
"opera_mobile": "32",
|
|
||||||
"electron": "0.30"
|
|
||||||
},
|
|
||||||
"transform-function-name": {
|
|
||||||
"chrome": "51",
|
|
||||||
"opera": "38",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "41",
|
|
||||||
"electron": "1.2"
|
|
||||||
},
|
|
||||||
"transform-arrow-functions": {
|
|
||||||
"chrome": "47",
|
|
||||||
"opera": "34",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "43",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"rhino": "1.7.13",
|
|
||||||
"opera_mobile": "34",
|
|
||||||
"electron": "0.36"
|
|
||||||
},
|
|
||||||
"transform-block-scoped-functions": {
|
|
||||||
"chrome": "41",
|
|
||||||
"opera": "28",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "46",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ie": "11",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "3.4",
|
|
||||||
"opera_mobile": "28",
|
|
||||||
"electron": "0.21"
|
|
||||||
},
|
|
||||||
"transform-classes": {
|
|
||||||
"chrome": "46",
|
|
||||||
"opera": "33",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "45",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "33",
|
|
||||||
"electron": "0.36"
|
|
||||||
},
|
|
||||||
"transform-object-super": {
|
|
||||||
"chrome": "46",
|
|
||||||
"opera": "33",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "45",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "33",
|
|
||||||
"electron": "0.36"
|
|
||||||
},
|
|
||||||
"transform-shorthand-properties": {
|
|
||||||
"chrome": "43",
|
|
||||||
"opera": "30",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "33",
|
|
||||||
"safari": "9",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "9",
|
|
||||||
"samsung": "4",
|
|
||||||
"rhino": "1.7.14",
|
|
||||||
"opera_mobile": "30",
|
|
||||||
"electron": "0.27"
|
|
||||||
},
|
|
||||||
"transform-duplicate-keys": {
|
|
||||||
"chrome": "42",
|
|
||||||
"opera": "29",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "34",
|
|
||||||
"safari": "9",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "9",
|
|
||||||
"samsung": "3.4",
|
|
||||||
"opera_mobile": "29",
|
|
||||||
"electron": "0.25"
|
|
||||||
},
|
|
||||||
"transform-computed-properties": {
|
|
||||||
"chrome": "44",
|
|
||||||
"opera": "31",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "34",
|
|
||||||
"safari": "7.1",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "8",
|
|
||||||
"samsung": "4",
|
|
||||||
"rhino": "1.8",
|
|
||||||
"opera_mobile": "32",
|
|
||||||
"electron": "0.30"
|
|
||||||
},
|
|
||||||
"transform-for-of": {
|
|
||||||
"chrome": "51",
|
|
||||||
"opera": "38",
|
|
||||||
"edge": "15",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "41",
|
|
||||||
"electron": "1.2"
|
|
||||||
},
|
|
||||||
"transform-sticky-regex": {
|
|
||||||
"chrome": "49",
|
|
||||||
"opera": "36",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "3",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"rhino": "1.7.15",
|
|
||||||
"opera_mobile": "36",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"transform-unicode-escapes": {
|
|
||||||
"chrome": "44",
|
|
||||||
"opera": "31",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "9",
|
|
||||||
"node": "4",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "9",
|
|
||||||
"samsung": "4",
|
|
||||||
"rhino": "1.7.15",
|
|
||||||
"opera_mobile": "32",
|
|
||||||
"electron": "0.30"
|
|
||||||
},
|
|
||||||
"transform-unicode-regex": {
|
|
||||||
"chrome": "50",
|
|
||||||
"opera": "37",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "46",
|
|
||||||
"safari": "12",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "12",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "37",
|
|
||||||
"electron": "1.1"
|
|
||||||
},
|
|
||||||
"transform-spread": {
|
|
||||||
"chrome": "46",
|
|
||||||
"opera": "33",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "45",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "33",
|
|
||||||
"electron": "0.36"
|
|
||||||
},
|
|
||||||
"transform-destructuring": {
|
|
||||||
"chrome": "51",
|
|
||||||
"opera": "38",
|
|
||||||
"edge": "15",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6.5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "41",
|
|
||||||
"electron": "1.2"
|
|
||||||
},
|
|
||||||
"transform-block-scoping": {
|
|
||||||
"chrome": "50",
|
|
||||||
"opera": "37",
|
|
||||||
"edge": "14",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "11",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "11",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "37",
|
|
||||||
"electron": "1.1"
|
|
||||||
},
|
|
||||||
"transform-typeof-symbol": {
|
|
||||||
"chrome": "48",
|
|
||||||
"opera": "35",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "36",
|
|
||||||
"safari": "9",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "9",
|
|
||||||
"samsung": "5",
|
|
||||||
"rhino": "1.8",
|
|
||||||
"opera_mobile": "35",
|
|
||||||
"electron": "0.37"
|
|
||||||
},
|
|
||||||
"transform-new-target": {
|
|
||||||
"chrome": "46",
|
|
||||||
"opera": "33",
|
|
||||||
"edge": "14",
|
|
||||||
"firefox": "41",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "5",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "33",
|
|
||||||
"electron": "0.36"
|
|
||||||
},
|
|
||||||
"transform-regenerator": {
|
|
||||||
"chrome": "50",
|
|
||||||
"opera": "37",
|
|
||||||
"edge": "13",
|
|
||||||
"firefox": "53",
|
|
||||||
"safari": "10",
|
|
||||||
"node": "6",
|
|
||||||
"deno": "1",
|
|
||||||
"ios": "10",
|
|
||||||
"samsung": "5",
|
|
||||||
"opera_mobile": "37",
|
|
||||||
"electron": "1.1"
|
|
||||||
},
|
|
||||||
"transform-member-expression-literals": {
|
|
||||||
"chrome": "7",
|
|
||||||
"opera": "12",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "2",
|
|
||||||
"safari": "5.1",
|
|
||||||
"node": "0.4",
|
|
||||||
"deno": "1",
|
|
||||||
"ie": "9",
|
|
||||||
"android": "4",
|
|
||||||
"ios": "6",
|
|
||||||
"phantom": "1.9",
|
|
||||||
"samsung": "1",
|
|
||||||
"rhino": "1.7.13",
|
|
||||||
"opera_mobile": "12",
|
|
||||||
"electron": "0.20"
|
|
||||||
},
|
|
||||||
"transform-property-literals": {
|
|
||||||
"chrome": "7",
|
|
||||||
"opera": "12",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "2",
|
|
||||||
"safari": "5.1",
|
|
||||||
"node": "0.4",
|
|
||||||
"deno": "1",
|
|
||||||
"ie": "9",
|
|
||||||
"android": "4",
|
|
||||||
"ios": "6",
|
|
||||||
"phantom": "1.9",
|
|
||||||
"samsung": "1",
|
|
||||||
"rhino": "1.7.13",
|
|
||||||
"opera_mobile": "12",
|
|
||||||
"electron": "0.20"
|
|
||||||
},
|
|
||||||
"transform-reserved-words": {
|
|
||||||
"chrome": "13",
|
|
||||||
"opera": "10.50",
|
|
||||||
"edge": "12",
|
|
||||||
"firefox": "2",
|
|
||||||
"safari": "3.1",
|
|
||||||
"node": "0.6",
|
|
||||||
"deno": "1",
|
|
||||||
"ie": "9",
|
|
||||||
"android": "4.4",
|
|
||||||
"ios": "6",
|
|
||||||
"phantom": "1.9",
|
|
||||||
"samsung": "1",
|
|
||||||
"rhino": "1.7.13",
|
|
||||||
"opera_mobile": "10.1",
|
|
||||||
"electron": "0.20"
|
|
||||||
},
|
|
||||||
"transform-export-namespace-from": {
|
|
||||||
"chrome": "72",
|
|
||||||
"deno": "1.0",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "80",
|
|
||||||
"node": "13.2.0",
|
|
||||||
"opera": "60",
|
|
||||||
"opera_mobile": "51",
|
|
||||||
"safari": "14.1",
|
|
||||||
"ios": "14.5",
|
|
||||||
"samsung": "11.0",
|
|
||||||
"android": "72",
|
|
||||||
"electron": "5.0"
|
|
||||||
},
|
|
||||||
"proposal-export-namespace-from": {
|
|
||||||
"chrome": "72",
|
|
||||||
"deno": "1.0",
|
|
||||||
"edge": "79",
|
|
||||||
"firefox": "80",
|
|
||||||
"node": "13.2.0",
|
|
||||||
"opera": "60",
|
|
||||||
"opera_mobile": "51",
|
|
||||||
"safari": "14.1",
|
|
||||||
"ios": "14.5",
|
|
||||||
"samsung": "11.0",
|
|
||||||
"android": "72",
|
|
||||||
"electron": "5.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
2
pwa/node_modules/@babel/compat-data/native-modules.js
generated
vendored
2
pwa/node_modules/@babel/compat-data/native-modules.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
|
|
||||||
module.exports = require("./data/native-modules.json");
|
|
||||||
2
pwa/node_modules/@babel/compat-data/overlapping-plugins.js
generated
vendored
2
pwa/node_modules/@babel/compat-data/overlapping-plugins.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
|
|
||||||
module.exports = require("./data/overlapping-plugins.json");
|
|
||||||
40
pwa/node_modules/@babel/compat-data/package.json
generated
vendored
40
pwa/node_modules/@babel/compat-data/package.json
generated
vendored
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
"name": "@babel/compat-data",
|
|
||||||
"version": "7.29.0",
|
|
||||||
"author": "The Babel Team (https://babel.dev/team)",
|
|
||||||
"license": "MIT",
|
|
||||||
"description": "The compat-data to determine required Babel plugins",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/babel/babel.git",
|
|
||||||
"directory": "packages/babel-compat-data"
|
|
||||||
},
|
|
||||||
"publishConfig": {
|
|
||||||
"access": "public"
|
|
||||||
},
|
|
||||||
"exports": {
|
|
||||||
"./plugins": "./plugins.js",
|
|
||||||
"./native-modules": "./native-modules.js",
|
|
||||||
"./corejs2-built-ins": "./corejs2-built-ins.js",
|
|
||||||
"./corejs3-shipped-proposals": "./corejs3-shipped-proposals.js",
|
|
||||||
"./overlapping-plugins": "./overlapping-plugins.js",
|
|
||||||
"./plugin-bugfixes": "./plugin-bugfixes.js"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.mjs && node ./scripts/build-modules-support.mjs && node ./scripts/build-bugfixes-targets.mjs"
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"babel",
|
|
||||||
"compat-table",
|
|
||||||
"compat-data"
|
|
||||||
],
|
|
||||||
"devDependencies": {
|
|
||||||
"@mdn/browser-compat-data": "^6.0.8",
|
|
||||||
"core-js-compat": "^3.48.0",
|
|
||||||
"electron-to-chromium": "^1.5.278"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
},
|
|
||||||
"type": "commonjs"
|
|
||||||
}
|
|
||||||
2
pwa/node_modules/@babel/compat-data/plugin-bugfixes.js
generated
vendored
2
pwa/node_modules/@babel/compat-data/plugin-bugfixes.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
|
|
||||||
module.exports = require("./data/plugin-bugfixes.json");
|
|
||||||
2
pwa/node_modules/@babel/compat-data/plugins.js
generated
vendored
2
pwa/node_modules/@babel/compat-data/plugins.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
||||||
// Todo (Babel 8): remove this file, in Babel 8 users import the .json directly
|
|
||||||
module.exports = require("./data/plugins.json");
|
|
||||||
22
pwa/node_modules/@babel/core/LICENSE
generated
vendored
22
pwa/node_modules/@babel/core/LICENSE
generated
vendored
|
|
@ -1,22 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
|
||||||
|
|
||||||
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.
|
|
||||||
19
pwa/node_modules/@babel/core/README.md
generated
vendored
19
pwa/node_modules/@babel/core/README.md
generated
vendored
|
|
@ -1,19 +0,0 @@
|
||||||
# @babel/core
|
|
||||||
|
|
||||||
> Babel compiler core.
|
|
||||||
|
|
||||||
See our website [@babel/core](https://babeljs.io/docs/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
Using npm:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install --save-dev @babel/core
|
|
||||||
```
|
|
||||||
|
|
||||||
or using yarn:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yarn add @babel/core --dev
|
|
||||||
```
|
|
||||||
5
pwa/node_modules/@babel/core/lib/config/cache-contexts.js
generated
vendored
5
pwa/node_modules/@babel/core/lib/config/cache-contexts.js
generated
vendored
|
|
@ -1,5 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=cache-contexts.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/cache-contexts.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/cache-contexts.js.map
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"names":[],"sources":["../../src/config/cache-contexts.ts"],"sourcesContent":["import type { ConfigContext } from \"./config-chain.ts\";\nimport type {\n CallerMetadata,\n TargetsListOrObject,\n} from \"./validation/options.ts\";\n\nexport type { ConfigContext as FullConfig };\n\nexport type FullPreset = {\n targets: TargetsListOrObject;\n} & ConfigContext;\nexport type FullPlugin = {\n assumptions: Record<string, boolean>;\n} & FullPreset;\n\n// Context not including filename since it is used in places that cannot\n// process 'ignore'/'only' and other filename-based logic.\nexport type SimpleConfig = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\nexport type SimplePreset = {\n targets: TargetsListOrObject;\n} & SimpleConfig;\nexport type SimplePlugin = {\n assumptions: Record<string, boolean>;\n} & SimplePreset;\n"],"mappings":"","ignoreList":[]}
|
|
||||||
261
pwa/node_modules/@babel/core/lib/config/caching.js
generated
vendored
261
pwa/node_modules/@babel/core/lib/config/caching.js
generated
vendored
|
|
@ -1,261 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.assertSimpleType = assertSimpleType;
|
|
||||||
exports.makeStrongCache = makeStrongCache;
|
|
||||||
exports.makeStrongCacheSync = makeStrongCacheSync;
|
|
||||||
exports.makeWeakCache = makeWeakCache;
|
|
||||||
exports.makeWeakCacheSync = makeWeakCacheSync;
|
|
||||||
function _gensync() {
|
|
||||||
const data = require("gensync");
|
|
||||||
_gensync = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
var _async = require("../gensync-utils/async.js");
|
|
||||||
var _util = require("./util.js");
|
|
||||||
const synchronize = gen => {
|
|
||||||
return _gensync()(gen).sync;
|
|
||||||
};
|
|
||||||
function* genTrue() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
function makeWeakCache(handler) {
|
|
||||||
return makeCachedFunction(WeakMap, handler);
|
|
||||||
}
|
|
||||||
function makeWeakCacheSync(handler) {
|
|
||||||
return synchronize(makeWeakCache(handler));
|
|
||||||
}
|
|
||||||
function makeStrongCache(handler) {
|
|
||||||
return makeCachedFunction(Map, handler);
|
|
||||||
}
|
|
||||||
function makeStrongCacheSync(handler) {
|
|
||||||
return synchronize(makeStrongCache(handler));
|
|
||||||
}
|
|
||||||
function makeCachedFunction(CallCache, handler) {
|
|
||||||
const callCacheSync = new CallCache();
|
|
||||||
const callCacheAsync = new CallCache();
|
|
||||||
const futureCache = new CallCache();
|
|
||||||
return function* cachedFunction(arg, data) {
|
|
||||||
const asyncContext = yield* (0, _async.isAsync)();
|
|
||||||
const callCache = asyncContext ? callCacheAsync : callCacheSync;
|
|
||||||
const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data);
|
|
||||||
if (cached.valid) return cached.value;
|
|
||||||
const cache = new CacheConfigurator(data);
|
|
||||||
const handlerResult = handler(arg, cache);
|
|
||||||
let finishLock;
|
|
||||||
let value;
|
|
||||||
if ((0, _util.isIterableIterator)(handlerResult)) {
|
|
||||||
value = yield* (0, _async.onFirstPause)(handlerResult, () => {
|
|
||||||
finishLock = setupAsyncLocks(cache, futureCache, arg);
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
value = handlerResult;
|
|
||||||
}
|
|
||||||
updateFunctionCache(callCache, cache, arg, value);
|
|
||||||
if (finishLock) {
|
|
||||||
futureCache.delete(arg);
|
|
||||||
finishLock.release(value);
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function* getCachedValue(cache, arg, data) {
|
|
||||||
const cachedValue = cache.get(arg);
|
|
||||||
if (cachedValue) {
|
|
||||||
for (const {
|
|
||||||
value,
|
|
||||||
valid
|
|
||||||
} of cachedValue) {
|
|
||||||
if (yield* valid(data)) return {
|
|
||||||
valid: true,
|
|
||||||
value
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
valid: false,
|
|
||||||
value: null
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) {
|
|
||||||
const cached = yield* getCachedValue(callCache, arg, data);
|
|
||||||
if (cached.valid) {
|
|
||||||
return cached;
|
|
||||||
}
|
|
||||||
if (asyncContext) {
|
|
||||||
const cached = yield* getCachedValue(futureCache, arg, data);
|
|
||||||
if (cached.valid) {
|
|
||||||
const value = yield* (0, _async.waitFor)(cached.value.promise);
|
|
||||||
return {
|
|
||||||
valid: true,
|
|
||||||
value
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
valid: false,
|
|
||||||
value: null
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function setupAsyncLocks(config, futureCache, arg) {
|
|
||||||
const finishLock = new Lock();
|
|
||||||
updateFunctionCache(futureCache, config, arg, finishLock);
|
|
||||||
return finishLock;
|
|
||||||
}
|
|
||||||
function updateFunctionCache(cache, config, arg, value) {
|
|
||||||
if (!config.configured()) config.forever();
|
|
||||||
let cachedValue = cache.get(arg);
|
|
||||||
config.deactivate();
|
|
||||||
switch (config.mode()) {
|
|
||||||
case "forever":
|
|
||||||
cachedValue = [{
|
|
||||||
value,
|
|
||||||
valid: genTrue
|
|
||||||
}];
|
|
||||||
cache.set(arg, cachedValue);
|
|
||||||
break;
|
|
||||||
case "invalidate":
|
|
||||||
cachedValue = [{
|
|
||||||
value,
|
|
||||||
valid: config.validator()
|
|
||||||
}];
|
|
||||||
cache.set(arg, cachedValue);
|
|
||||||
break;
|
|
||||||
case "valid":
|
|
||||||
if (cachedValue) {
|
|
||||||
cachedValue.push({
|
|
||||||
value,
|
|
||||||
valid: config.validator()
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
cachedValue = [{
|
|
||||||
value,
|
|
||||||
valid: config.validator()
|
|
||||||
}];
|
|
||||||
cache.set(arg, cachedValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class CacheConfigurator {
|
|
||||||
constructor(data) {
|
|
||||||
this._active = true;
|
|
||||||
this._never = false;
|
|
||||||
this._forever = false;
|
|
||||||
this._invalidate = false;
|
|
||||||
this._configured = false;
|
|
||||||
this._pairs = [];
|
|
||||||
this._data = void 0;
|
|
||||||
this._data = data;
|
|
||||||
}
|
|
||||||
simple() {
|
|
||||||
return makeSimpleConfigurator(this);
|
|
||||||
}
|
|
||||||
mode() {
|
|
||||||
if (this._never) return "never";
|
|
||||||
if (this._forever) return "forever";
|
|
||||||
if (this._invalidate) return "invalidate";
|
|
||||||
return "valid";
|
|
||||||
}
|
|
||||||
forever() {
|
|
||||||
if (!this._active) {
|
|
||||||
throw new Error("Cannot change caching after evaluation has completed.");
|
|
||||||
}
|
|
||||||
if (this._never) {
|
|
||||||
throw new Error("Caching has already been configured with .never()");
|
|
||||||
}
|
|
||||||
this._forever = true;
|
|
||||||
this._configured = true;
|
|
||||||
}
|
|
||||||
never() {
|
|
||||||
if (!this._active) {
|
|
||||||
throw new Error("Cannot change caching after evaluation has completed.");
|
|
||||||
}
|
|
||||||
if (this._forever) {
|
|
||||||
throw new Error("Caching has already been configured with .forever()");
|
|
||||||
}
|
|
||||||
this._never = true;
|
|
||||||
this._configured = true;
|
|
||||||
}
|
|
||||||
using(handler) {
|
|
||||||
if (!this._active) {
|
|
||||||
throw new Error("Cannot change caching after evaluation has completed.");
|
|
||||||
}
|
|
||||||
if (this._never || this._forever) {
|
|
||||||
throw new Error("Caching has already been configured with .never or .forever()");
|
|
||||||
}
|
|
||||||
this._configured = true;
|
|
||||||
const key = handler(this._data);
|
|
||||||
const fn = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`);
|
|
||||||
if ((0, _async.isThenable)(key)) {
|
|
||||||
return key.then(key => {
|
|
||||||
this._pairs.push([key, fn]);
|
|
||||||
return key;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
this._pairs.push([key, fn]);
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
invalidate(handler) {
|
|
||||||
this._invalidate = true;
|
|
||||||
return this.using(handler);
|
|
||||||
}
|
|
||||||
validator() {
|
|
||||||
const pairs = this._pairs;
|
|
||||||
return function* (data) {
|
|
||||||
for (const [key, fn] of pairs) {
|
|
||||||
if (key !== (yield* fn(data))) return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
deactivate() {
|
|
||||||
this._active = false;
|
|
||||||
}
|
|
||||||
configured() {
|
|
||||||
return this._configured;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function makeSimpleConfigurator(cache) {
|
|
||||||
function cacheFn(val) {
|
|
||||||
if (typeof val === "boolean") {
|
|
||||||
if (val) cache.forever();else cache.never();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return cache.using(() => assertSimpleType(val()));
|
|
||||||
}
|
|
||||||
cacheFn.forever = () => cache.forever();
|
|
||||||
cacheFn.never = () => cache.never();
|
|
||||||
cacheFn.using = cb => cache.using(() => assertSimpleType(cb()));
|
|
||||||
cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb()));
|
|
||||||
return cacheFn;
|
|
||||||
}
|
|
||||||
function assertSimpleType(value) {
|
|
||||||
if ((0, _async.isThenable)(value)) {
|
|
||||||
throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`);
|
|
||||||
}
|
|
||||||
if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") {
|
|
||||||
throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
class Lock {
|
|
||||||
constructor() {
|
|
||||||
this.released = false;
|
|
||||||
this.promise = void 0;
|
|
||||||
this._resolve = void 0;
|
|
||||||
this.promise = new Promise(resolve => {
|
|
||||||
this._resolve = resolve;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
release(value) {
|
|
||||||
this.released = true;
|
|
||||||
this._resolve(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=caching.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/caching.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/caching.js.map
generated
vendored
File diff suppressed because one or more lines are too long
469
pwa/node_modules/@babel/core/lib/config/config-chain.js
generated
vendored
469
pwa/node_modules/@babel/core/lib/config/config-chain.js
generated
vendored
|
|
@ -1,469 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.buildPresetChain = buildPresetChain;
|
|
||||||
exports.buildPresetChainWalker = void 0;
|
|
||||||
exports.buildRootChain = buildRootChain;
|
|
||||||
function _path() {
|
|
||||||
const data = require("path");
|
|
||||||
_path = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _debug() {
|
|
||||||
const data = require("debug");
|
|
||||||
_debug = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
var _options = require("./validation/options.js");
|
|
||||||
var _patternToRegex = require("./pattern-to-regex.js");
|
|
||||||
var _printer = require("./printer.js");
|
|
||||||
var _rewriteStackTrace = require("../errors/rewrite-stack-trace.js");
|
|
||||||
var _configError = require("../errors/config-error.js");
|
|
||||||
var _index = require("./files/index.js");
|
|
||||||
var _caching = require("./caching.js");
|
|
||||||
var _configDescriptors = require("./config-descriptors.js");
|
|
||||||
const debug = _debug()("babel:config:config-chain");
|
|
||||||
function* buildPresetChain(arg, context) {
|
|
||||||
const chain = yield* buildPresetChainWalker(arg, context);
|
|
||||||
if (!chain) return null;
|
|
||||||
return {
|
|
||||||
plugins: dedupDescriptors(chain.plugins),
|
|
||||||
presets: dedupDescriptors(chain.presets),
|
|
||||||
options: chain.options.map(o => createConfigChainOptions(o)),
|
|
||||||
files: new Set()
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const buildPresetChainWalker = exports.buildPresetChainWalker = makeChainWalker({
|
|
||||||
root: preset => loadPresetDescriptors(preset),
|
|
||||||
env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),
|
|
||||||
overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),
|
|
||||||
overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName),
|
|
||||||
createLogger: () => () => {}
|
|
||||||
});
|
|
||||||
const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors));
|
|
||||||
const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName)));
|
|
||||||
const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index)));
|
|
||||||
const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName))));
|
|
||||||
function* buildRootChain(opts, context) {
|
|
||||||
let configReport, babelRcReport;
|
|
||||||
const programmaticLogger = new _printer.ConfigPrinter();
|
|
||||||
const programmaticChain = yield* loadProgrammaticChain({
|
|
||||||
options: opts,
|
|
||||||
dirname: context.cwd
|
|
||||||
}, context, undefined, programmaticLogger);
|
|
||||||
if (!programmaticChain) return null;
|
|
||||||
const programmaticReport = yield* programmaticLogger.output();
|
|
||||||
let configFile;
|
|
||||||
if (typeof opts.configFile === "string") {
|
|
||||||
configFile = yield* (0, _index.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller);
|
|
||||||
} else if (opts.configFile !== false) {
|
|
||||||
configFile = yield* (0, _index.findRootConfig)(context.root, context.envName, context.caller);
|
|
||||||
}
|
|
||||||
let {
|
|
||||||
babelrc,
|
|
||||||
babelrcRoots
|
|
||||||
} = opts;
|
|
||||||
let babelrcRootsDirectory = context.cwd;
|
|
||||||
const configFileChain = emptyChain();
|
|
||||||
const configFileLogger = new _printer.ConfigPrinter();
|
|
||||||
if (configFile) {
|
|
||||||
const validatedFile = validateConfigFile(configFile);
|
|
||||||
const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger);
|
|
||||||
if (!result) return null;
|
|
||||||
configReport = yield* configFileLogger.output();
|
|
||||||
if (babelrc === undefined) {
|
|
||||||
babelrc = validatedFile.options.babelrc;
|
|
||||||
}
|
|
||||||
if (babelrcRoots === undefined) {
|
|
||||||
babelrcRootsDirectory = validatedFile.dirname;
|
|
||||||
babelrcRoots = validatedFile.options.babelrcRoots;
|
|
||||||
}
|
|
||||||
mergeChain(configFileChain, result);
|
|
||||||
}
|
|
||||||
let ignoreFile, babelrcFile;
|
|
||||||
let isIgnored = false;
|
|
||||||
const fileChain = emptyChain();
|
|
||||||
if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") {
|
|
||||||
const pkgData = yield* (0, _index.findPackageData)(context.filename);
|
|
||||||
if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) {
|
|
||||||
({
|
|
||||||
ignore: ignoreFile,
|
|
||||||
config: babelrcFile
|
|
||||||
} = yield* (0, _index.findRelativeConfig)(pkgData, context.envName, context.caller));
|
|
||||||
if (ignoreFile) {
|
|
||||||
fileChain.files.add(ignoreFile.filepath);
|
|
||||||
}
|
|
||||||
if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) {
|
|
||||||
isIgnored = true;
|
|
||||||
}
|
|
||||||
if (babelrcFile && !isIgnored) {
|
|
||||||
const validatedFile = validateBabelrcFile(babelrcFile);
|
|
||||||
const babelrcLogger = new _printer.ConfigPrinter();
|
|
||||||
const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger);
|
|
||||||
if (!result) {
|
|
||||||
isIgnored = true;
|
|
||||||
} else {
|
|
||||||
babelRcReport = yield* babelrcLogger.output();
|
|
||||||
mergeChain(fileChain, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (babelrcFile && isIgnored) {
|
|
||||||
fileChain.files.add(babelrcFile.filepath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (context.showConfig) {
|
|
||||||
console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----");
|
|
||||||
}
|
|
||||||
const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain);
|
|
||||||
return {
|
|
||||||
plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),
|
|
||||||
presets: isIgnored ? [] : dedupDescriptors(chain.presets),
|
|
||||||
options: isIgnored ? [] : chain.options.map(o => createConfigChainOptions(o)),
|
|
||||||
fileHandling: isIgnored ? "ignored" : "transpile",
|
|
||||||
ignore: ignoreFile || undefined,
|
|
||||||
babelrc: babelrcFile || undefined,
|
|
||||||
config: configFile || undefined,
|
|
||||||
files: chain.files
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) {
|
|
||||||
if (typeof babelrcRoots === "boolean") return babelrcRoots;
|
|
||||||
const absoluteRoot = context.root;
|
|
||||||
if (babelrcRoots === undefined) {
|
|
||||||
return pkgData.directories.includes(absoluteRoot);
|
|
||||||
}
|
|
||||||
let babelrcPatterns = babelrcRoots;
|
|
||||||
if (!Array.isArray(babelrcPatterns)) {
|
|
||||||
babelrcPatterns = [babelrcPatterns];
|
|
||||||
}
|
|
||||||
babelrcPatterns = babelrcPatterns.map(pat => {
|
|
||||||
return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat;
|
|
||||||
});
|
|
||||||
if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {
|
|
||||||
return pkgData.directories.includes(absoluteRoot);
|
|
||||||
}
|
|
||||||
return babelrcPatterns.some(pat => {
|
|
||||||
if (typeof pat === "string") {
|
|
||||||
pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory);
|
|
||||||
}
|
|
||||||
return pkgData.directories.some(directory => {
|
|
||||||
return matchPattern(pat, babelrcRootsDirectory, directory, context);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({
|
|
||||||
filepath: file.filepath,
|
|
||||||
dirname: file.dirname,
|
|
||||||
options: (0, _options.validate)("configfile", file.options, file.filepath)
|
|
||||||
}));
|
|
||||||
const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({
|
|
||||||
filepath: file.filepath,
|
|
||||||
dirname: file.dirname,
|
|
||||||
options: (0, _options.validate)("babelrcfile", file.options, file.filepath)
|
|
||||||
}));
|
|
||||||
const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({
|
|
||||||
filepath: file.filepath,
|
|
||||||
dirname: file.dirname,
|
|
||||||
options: (0, _options.validate)("extendsfile", file.options, file.filepath)
|
|
||||||
}));
|
|
||||||
const loadProgrammaticChain = makeChainWalker({
|
|
||||||
root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors),
|
|
||||||
env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName),
|
|
||||||
overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index),
|
|
||||||
overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName),
|
|
||||||
createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger)
|
|
||||||
});
|
|
||||||
const loadFileChainWalker = makeChainWalker({
|
|
||||||
root: file => loadFileDescriptors(file),
|
|
||||||
env: (file, envName) => loadFileEnvDescriptors(file)(envName),
|
|
||||||
overrides: (file, index) => loadFileOverridesDescriptors(file)(index),
|
|
||||||
overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName),
|
|
||||||
createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger)
|
|
||||||
});
|
|
||||||
function* loadFileChain(input, context, files, baseLogger) {
|
|
||||||
const chain = yield* loadFileChainWalker(input, context, files, baseLogger);
|
|
||||||
chain == null || chain.files.add(input.filepath);
|
|
||||||
return chain;
|
|
||||||
}
|
|
||||||
const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors));
|
|
||||||
const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName)));
|
|
||||||
const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index)));
|
|
||||||
const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName))));
|
|
||||||
function buildFileLogger(filepath, context, baseLogger) {
|
|
||||||
if (!baseLogger) {
|
|
||||||
return () => {};
|
|
||||||
}
|
|
||||||
return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, {
|
|
||||||
filepath
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function buildRootDescriptors({
|
|
||||||
dirname,
|
|
||||||
options
|
|
||||||
}, alias, descriptors) {
|
|
||||||
return descriptors(dirname, options, alias);
|
|
||||||
}
|
|
||||||
function buildProgrammaticLogger(_, context, baseLogger) {
|
|
||||||
var _context$caller;
|
|
||||||
if (!baseLogger) {
|
|
||||||
return () => {};
|
|
||||||
}
|
|
||||||
return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, {
|
|
||||||
callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function buildEnvDescriptors({
|
|
||||||
dirname,
|
|
||||||
options
|
|
||||||
}, alias, descriptors, envName) {
|
|
||||||
var _options$env;
|
|
||||||
const opts = (_options$env = options.env) == null ? void 0 : _options$env[envName];
|
|
||||||
return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null;
|
|
||||||
}
|
|
||||||
function buildOverrideDescriptors({
|
|
||||||
dirname,
|
|
||||||
options
|
|
||||||
}, alias, descriptors, index) {
|
|
||||||
var _options$overrides;
|
|
||||||
const opts = (_options$overrides = options.overrides) == null ? void 0 : _options$overrides[index];
|
|
||||||
if (!opts) throw new Error("Assertion failure - missing override");
|
|
||||||
return descriptors(dirname, opts, `${alias}.overrides[${index}]`);
|
|
||||||
}
|
|
||||||
function buildOverrideEnvDescriptors({
|
|
||||||
dirname,
|
|
||||||
options
|
|
||||||
}, alias, descriptors, index, envName) {
|
|
||||||
var _options$overrides2, _override$env;
|
|
||||||
const override = (_options$overrides2 = options.overrides) == null ? void 0 : _options$overrides2[index];
|
|
||||||
if (!override) throw new Error("Assertion failure - missing override");
|
|
||||||
const opts = (_override$env = override.env) == null ? void 0 : _override$env[envName];
|
|
||||||
return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null;
|
|
||||||
}
|
|
||||||
function makeChainWalker({
|
|
||||||
root,
|
|
||||||
env,
|
|
||||||
overrides,
|
|
||||||
overridesEnv,
|
|
||||||
createLogger
|
|
||||||
}) {
|
|
||||||
return function* chainWalker(input, context, files = new Set(), baseLogger) {
|
|
||||||
const {
|
|
||||||
dirname
|
|
||||||
} = input;
|
|
||||||
const flattenedConfigs = [];
|
|
||||||
const rootOpts = root(input);
|
|
||||||
if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {
|
|
||||||
flattenedConfigs.push({
|
|
||||||
config: rootOpts,
|
|
||||||
envName: undefined,
|
|
||||||
index: undefined
|
|
||||||
});
|
|
||||||
const envOpts = env(input, context.envName);
|
|
||||||
if (envOpts && configIsApplicable(envOpts, dirname, context, input.filepath)) {
|
|
||||||
flattenedConfigs.push({
|
|
||||||
config: envOpts,
|
|
||||||
envName: context.envName,
|
|
||||||
index: undefined
|
|
||||||
});
|
|
||||||
}
|
|
||||||
(rootOpts.options.overrides || []).forEach((_, index) => {
|
|
||||||
const overrideOps = overrides(input, index);
|
|
||||||
if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {
|
|
||||||
flattenedConfigs.push({
|
|
||||||
config: overrideOps,
|
|
||||||
index,
|
|
||||||
envName: undefined
|
|
||||||
});
|
|
||||||
const overrideEnvOpts = overridesEnv(input, index, context.envName);
|
|
||||||
if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context, input.filepath)) {
|
|
||||||
flattenedConfigs.push({
|
|
||||||
config: overrideEnvOpts,
|
|
||||||
index,
|
|
||||||
envName: context.envName
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (flattenedConfigs.some(({
|
|
||||||
config: {
|
|
||||||
options: {
|
|
||||||
ignore,
|
|
||||||
only
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}) => shouldIgnore(context, ignore, only, dirname))) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
const chain = emptyChain();
|
|
||||||
const logger = createLogger(input, context, baseLogger);
|
|
||||||
for (const {
|
|
||||||
config,
|
|
||||||
index,
|
|
||||||
envName
|
|
||||||
} of flattenedConfigs) {
|
|
||||||
if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
logger(config, index, envName);
|
|
||||||
yield* mergeChainOpts(chain, config);
|
|
||||||
}
|
|
||||||
return chain;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) {
|
|
||||||
if (opts.extends === undefined) return true;
|
|
||||||
const file = yield* (0, _index.loadConfig)(opts.extends, dirname, context.envName, context.caller);
|
|
||||||
if (files.has(file)) {
|
|
||||||
throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n"));
|
|
||||||
}
|
|
||||||
files.add(file);
|
|
||||||
const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger);
|
|
||||||
files.delete(file);
|
|
||||||
if (!fileChain) return false;
|
|
||||||
mergeChain(chain, fileChain);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
function mergeChain(target, source) {
|
|
||||||
target.options.push(...source.options);
|
|
||||||
target.plugins.push(...source.plugins);
|
|
||||||
target.presets.push(...source.presets);
|
|
||||||
for (const file of source.files) {
|
|
||||||
target.files.add(file);
|
|
||||||
}
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
function* mergeChainOpts(target, {
|
|
||||||
options,
|
|
||||||
plugins,
|
|
||||||
presets
|
|
||||||
}) {
|
|
||||||
target.options.push(options);
|
|
||||||
target.plugins.push(...(yield* plugins()));
|
|
||||||
target.presets.push(...(yield* presets()));
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
function emptyChain() {
|
|
||||||
return {
|
|
||||||
options: [],
|
|
||||||
presets: [],
|
|
||||||
plugins: [],
|
|
||||||
files: new Set()
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function createConfigChainOptions(opts) {
|
|
||||||
const options = Object.assign({}, opts);
|
|
||||||
delete options.extends;
|
|
||||||
delete options.env;
|
|
||||||
delete options.overrides;
|
|
||||||
delete options.plugins;
|
|
||||||
delete options.presets;
|
|
||||||
delete options.passPerPreset;
|
|
||||||
delete options.ignore;
|
|
||||||
delete options.only;
|
|
||||||
delete options.test;
|
|
||||||
delete options.include;
|
|
||||||
delete options.exclude;
|
|
||||||
if (hasOwnProperty.call(options, "sourceMap")) {
|
|
||||||
options.sourceMaps = options.sourceMap;
|
|
||||||
delete options.sourceMap;
|
|
||||||
}
|
|
||||||
return options;
|
|
||||||
}
|
|
||||||
function dedupDescriptors(items) {
|
|
||||||
const map = new Map();
|
|
||||||
const descriptors = [];
|
|
||||||
for (const item of items) {
|
|
||||||
if (typeof item.value === "function") {
|
|
||||||
const fnKey = item.value;
|
|
||||||
let nameMap = map.get(fnKey);
|
|
||||||
if (!nameMap) {
|
|
||||||
nameMap = new Map();
|
|
||||||
map.set(fnKey, nameMap);
|
|
||||||
}
|
|
||||||
let desc = nameMap.get(item.name);
|
|
||||||
if (!desc) {
|
|
||||||
desc = {
|
|
||||||
value: item
|
|
||||||
};
|
|
||||||
descriptors.push(desc);
|
|
||||||
if (!item.ownPass) nameMap.set(item.name, desc);
|
|
||||||
} else {
|
|
||||||
desc.value = item;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
descriptors.push({
|
|
||||||
value: item
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return descriptors.reduce((acc, desc) => {
|
|
||||||
acc.push(desc.value);
|
|
||||||
return acc;
|
|
||||||
}, []);
|
|
||||||
}
|
|
||||||
function configIsApplicable({
|
|
||||||
options
|
|
||||||
}, dirname, context, configName) {
|
|
||||||
return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname, configName)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname, configName)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname, configName));
|
|
||||||
}
|
|
||||||
function configFieldIsApplicable(context, test, dirname, configName) {
|
|
||||||
const patterns = Array.isArray(test) ? test : [test];
|
|
||||||
return matchesPatterns(context, patterns, dirname, configName);
|
|
||||||
}
|
|
||||||
function ignoreListReplacer(_key, value) {
|
|
||||||
if (value instanceof RegExp) {
|
|
||||||
return String(value);
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
function shouldIgnore(context, ignore, only, dirname) {
|
|
||||||
if (ignore && matchesPatterns(context, ignore, dirname)) {
|
|
||||||
var _context$filename;
|
|
||||||
const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`;
|
|
||||||
debug(message);
|
|
||||||
if (context.showConfig) {
|
|
||||||
console.log(message);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (only && !matchesPatterns(context, only, dirname)) {
|
|
||||||
var _context$filename2;
|
|
||||||
const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`;
|
|
||||||
debug(message);
|
|
||||||
if (context.showConfig) {
|
|
||||||
console.log(message);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
function matchesPatterns(context, patterns, dirname, configName) {
|
|
||||||
return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context, configName));
|
|
||||||
}
|
|
||||||
function matchPattern(pattern, dirname, pathToTest, context, configName) {
|
|
||||||
if (typeof pattern === "function") {
|
|
||||||
return !!(0, _rewriteStackTrace.endHiddenCallStack)(pattern)(pathToTest, {
|
|
||||||
dirname,
|
|
||||||
envName: context.envName,
|
|
||||||
caller: context.caller
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (typeof pathToTest !== "string") {
|
|
||||||
throw new _configError.default(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`, configName);
|
|
||||||
}
|
|
||||||
if (typeof pattern === "string") {
|
|
||||||
pattern = (0, _patternToRegex.default)(pattern, dirname);
|
|
||||||
}
|
|
||||||
return pattern.test(pathToTest);
|
|
||||||
}
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=config-chain.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/config-chain.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/config-chain.js.map
generated
vendored
File diff suppressed because one or more lines are too long
190
pwa/node_modules/@babel/core/lib/config/config-descriptors.js
generated
vendored
190
pwa/node_modules/@babel/core/lib/config/config-descriptors.js
generated
vendored
|
|
@ -1,190 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.createCachedDescriptors = createCachedDescriptors;
|
|
||||||
exports.createDescriptor = createDescriptor;
|
|
||||||
exports.createUncachedDescriptors = createUncachedDescriptors;
|
|
||||||
function _gensync() {
|
|
||||||
const data = require("gensync");
|
|
||||||
_gensync = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
var _functional = require("../gensync-utils/functional.js");
|
|
||||||
var _index = require("./files/index.js");
|
|
||||||
var _item = require("./item.js");
|
|
||||||
var _caching = require("./caching.js");
|
|
||||||
var _resolveTargets = require("./resolve-targets.js");
|
|
||||||
function isEqualDescriptor(a, b) {
|
|
||||||
var _a$file, _b$file, _a$file2, _b$file2;
|
|
||||||
return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && ((_a$file = a.file) == null ? void 0 : _a$file.request) === ((_b$file = b.file) == null ? void 0 : _b$file.request) && ((_a$file2 = a.file) == null ? void 0 : _a$file2.resolved) === ((_b$file2 = b.file) == null ? void 0 : _b$file2.resolved);
|
|
||||||
}
|
|
||||||
function* handlerOf(value) {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
function optionsWithResolvedBrowserslistConfigFile(options, dirname) {
|
|
||||||
if (typeof options.browserslistConfigFile === "string") {
|
|
||||||
options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname);
|
|
||||||
}
|
|
||||||
return options;
|
|
||||||
}
|
|
||||||
function createCachedDescriptors(dirname, options, alias) {
|
|
||||||
const {
|
|
||||||
plugins,
|
|
||||||
presets,
|
|
||||||
passPerPreset
|
|
||||||
} = options;
|
|
||||||
return {
|
|
||||||
options: optionsWithResolvedBrowserslistConfigFile(options, dirname),
|
|
||||||
plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]),
|
|
||||||
presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([])
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function createUncachedDescriptors(dirname, options, alias) {
|
|
||||||
return {
|
|
||||||
options: optionsWithResolvedBrowserslistConfigFile(options, dirname),
|
|
||||||
plugins: (0, _functional.once)(() => createPluginDescriptors(options.plugins || [], dirname, alias)),
|
|
||||||
presets: (0, _functional.once)(() => createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset))
|
|
||||||
};
|
|
||||||
}
|
|
||||||
const PRESET_DESCRIPTOR_CACHE = new WeakMap();
|
|
||||||
const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => {
|
|
||||||
const dirname = cache.using(dir => dir);
|
|
||||||
return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) {
|
|
||||||
const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset);
|
|
||||||
return descriptors.map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc));
|
|
||||||
}));
|
|
||||||
});
|
|
||||||
const PLUGIN_DESCRIPTOR_CACHE = new WeakMap();
|
|
||||||
const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => {
|
|
||||||
const dirname = cache.using(dir => dir);
|
|
||||||
return (0, _caching.makeStrongCache)(function* (alias) {
|
|
||||||
const descriptors = yield* createPluginDescriptors(items, dirname, alias);
|
|
||||||
return descriptors.map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc));
|
|
||||||
});
|
|
||||||
});
|
|
||||||
const DEFAULT_OPTIONS = {};
|
|
||||||
function loadCachedDescriptor(cache, desc) {
|
|
||||||
const {
|
|
||||||
value,
|
|
||||||
options = DEFAULT_OPTIONS
|
|
||||||
} = desc;
|
|
||||||
if (options === false) return desc;
|
|
||||||
let cacheByOptions = cache.get(value);
|
|
||||||
if (!cacheByOptions) {
|
|
||||||
cacheByOptions = new WeakMap();
|
|
||||||
cache.set(value, cacheByOptions);
|
|
||||||
}
|
|
||||||
let possibilities = cacheByOptions.get(options);
|
|
||||||
if (!possibilities) {
|
|
||||||
possibilities = [];
|
|
||||||
cacheByOptions.set(options, possibilities);
|
|
||||||
}
|
|
||||||
if (!possibilities.includes(desc)) {
|
|
||||||
const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc));
|
|
||||||
if (matches.length > 0) {
|
|
||||||
return matches[0];
|
|
||||||
}
|
|
||||||
possibilities.push(desc);
|
|
||||||
}
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
function* createPresetDescriptors(items, dirname, alias, passPerPreset) {
|
|
||||||
return yield* createDescriptors("preset", items, dirname, alias, passPerPreset);
|
|
||||||
}
|
|
||||||
function* createPluginDescriptors(items, dirname, alias) {
|
|
||||||
return yield* createDescriptors("plugin", items, dirname, alias);
|
|
||||||
}
|
|
||||||
function* createDescriptors(type, items, dirname, alias, ownPass) {
|
|
||||||
const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, {
|
|
||||||
type,
|
|
||||||
alias: `${alias}$${index}`,
|
|
||||||
ownPass: !!ownPass
|
|
||||||
})));
|
|
||||||
assertNoDuplicates(descriptors);
|
|
||||||
return descriptors;
|
|
||||||
}
|
|
||||||
function* createDescriptor(pair, dirname, {
|
|
||||||
type,
|
|
||||||
alias,
|
|
||||||
ownPass
|
|
||||||
}) {
|
|
||||||
const desc = (0, _item.getItemDescriptor)(pair);
|
|
||||||
if (desc) {
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
let name;
|
|
||||||
let options;
|
|
||||||
let value = pair;
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
if (value.length === 3) {
|
|
||||||
[value, options, name] = value;
|
|
||||||
} else {
|
|
||||||
[value, options] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let file = undefined;
|
|
||||||
let filepath = null;
|
|
||||||
if (typeof value === "string") {
|
|
||||||
if (typeof type !== "string") {
|
|
||||||
throw new Error("To resolve a string-based item, the type of item must be given");
|
|
||||||
}
|
|
||||||
const resolver = type === "plugin" ? _index.loadPlugin : _index.loadPreset;
|
|
||||||
const request = value;
|
|
||||||
({
|
|
||||||
filepath,
|
|
||||||
value
|
|
||||||
} = yield* resolver(value, dirname));
|
|
||||||
file = {
|
|
||||||
request,
|
|
||||||
resolved: filepath
|
|
||||||
};
|
|
||||||
}
|
|
||||||
if (!value) {
|
|
||||||
throw new Error(`Unexpected falsy value: ${String(value)}`);
|
|
||||||
}
|
|
||||||
if (typeof value === "object" && value.__esModule) {
|
|
||||||
if (value.default) {
|
|
||||||
value = value.default;
|
|
||||||
} else {
|
|
||||||
throw new Error("Must export a default export when using ES6 modules.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (typeof value !== "object" && typeof value !== "function") {
|
|
||||||
throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`);
|
|
||||||
}
|
|
||||||
if (filepath !== null && typeof value === "object" && value) {
|
|
||||||
throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`);
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
name,
|
|
||||||
alias: filepath || alias,
|
|
||||||
value,
|
|
||||||
options,
|
|
||||||
dirname,
|
|
||||||
ownPass,
|
|
||||||
file
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function assertNoDuplicates(items) {
|
|
||||||
const map = new Map();
|
|
||||||
for (const item of items) {
|
|
||||||
if (typeof item.value !== "function") continue;
|
|
||||||
let nameMap = map.get(item.value);
|
|
||||||
if (!nameMap) {
|
|
||||||
nameMap = new Set();
|
|
||||||
map.set(item.value, nameMap);
|
|
||||||
}
|
|
||||||
if (nameMap.has(item.name)) {
|
|
||||||
const conflicts = items.filter(i => i.value === item.value);
|
|
||||||
throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n"));
|
|
||||||
}
|
|
||||||
nameMap.add(item.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=config-descriptors.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/config-descriptors.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/config-descriptors.js.map
generated
vendored
File diff suppressed because one or more lines are too long
290
pwa/node_modules/@babel/core/lib/config/files/configuration.js
generated
vendored
290
pwa/node_modules/@babel/core/lib/config/files/configuration.js
generated
vendored
|
|
@ -1,290 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.ROOT_CONFIG_FILENAMES = void 0;
|
|
||||||
exports.findConfigUpwards = findConfigUpwards;
|
|
||||||
exports.findRelativeConfig = findRelativeConfig;
|
|
||||||
exports.findRootConfig = findRootConfig;
|
|
||||||
exports.loadConfig = loadConfig;
|
|
||||||
exports.resolveShowConfigPath = resolveShowConfigPath;
|
|
||||||
function _debug() {
|
|
||||||
const data = require("debug");
|
|
||||||
_debug = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _fs() {
|
|
||||||
const data = require("fs");
|
|
||||||
_fs = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _path() {
|
|
||||||
const data = require("path");
|
|
||||||
_path = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _json() {
|
|
||||||
const data = require("json5");
|
|
||||||
_json = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _gensync() {
|
|
||||||
const data = require("gensync");
|
|
||||||
_gensync = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
var _caching = require("../caching.js");
|
|
||||||
var _configApi = require("../helpers/config-api.js");
|
|
||||||
var _utils = require("./utils.js");
|
|
||||||
var _moduleTypes = require("./module-types.js");
|
|
||||||
var _patternToRegex = require("../pattern-to-regex.js");
|
|
||||||
var _configError = require("../../errors/config-error.js");
|
|
||||||
var fs = require("../../gensync-utils/fs.js");
|
|
||||||
require("module");
|
|
||||||
var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js");
|
|
||||||
var _async = require("../../gensync-utils/async.js");
|
|
||||||
const debug = _debug()("babel:config:loading:files:configuration");
|
|
||||||
const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts", "babel.config.ts", "babel.config.mts"];
|
|
||||||
const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"];
|
|
||||||
const BABELIGNORE_FILENAME = ".babelignore";
|
|
||||||
const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache) {
|
|
||||||
yield* [];
|
|
||||||
return {
|
|
||||||
options: (0, _rewriteStackTrace.endHiddenCallStack)(options)((0, _configApi.makeConfigAPI)(cache)),
|
|
||||||
cacheNeedsConfiguration: !cache.configured()
|
|
||||||
};
|
|
||||||
});
|
|
||||||
function* readConfigCode(filepath, data) {
|
|
||||||
if (!_fs().existsSync(filepath)) return null;
|
|
||||||
let options = yield* (0, _moduleTypes.default)(filepath, (yield* (0, _async.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", "You appear to be using a configuration file that contains top-level " + "await, which is only supported when running Babel asynchronously.");
|
|
||||||
let cacheNeedsConfiguration = false;
|
|
||||||
if (typeof options === "function") {
|
|
||||||
({
|
|
||||||
options,
|
|
||||||
cacheNeedsConfiguration
|
|
||||||
} = yield* runConfig(options, data));
|
|
||||||
}
|
|
||||||
if (!options || typeof options !== "object" || Array.isArray(options)) {
|
|
||||||
throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath);
|
|
||||||
}
|
|
||||||
if (typeof options.then === "function") {
|
|
||||||
options.catch == null || options.catch(() => {});
|
|
||||||
throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath);
|
|
||||||
}
|
|
||||||
if (cacheNeedsConfiguration) throwConfigError(filepath);
|
|
||||||
return buildConfigFileObject(options, filepath);
|
|
||||||
}
|
|
||||||
const cfboaf = new WeakMap();
|
|
||||||
function buildConfigFileObject(options, filepath) {
|
|
||||||
let configFilesByFilepath = cfboaf.get(options);
|
|
||||||
if (!configFilesByFilepath) {
|
|
||||||
cfboaf.set(options, configFilesByFilepath = new Map());
|
|
||||||
}
|
|
||||||
let configFile = configFilesByFilepath.get(filepath);
|
|
||||||
if (!configFile) {
|
|
||||||
configFile = {
|
|
||||||
filepath,
|
|
||||||
dirname: _path().dirname(filepath),
|
|
||||||
options
|
|
||||||
};
|
|
||||||
configFilesByFilepath.set(filepath, configFile);
|
|
||||||
}
|
|
||||||
return configFile;
|
|
||||||
}
|
|
||||||
const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => {
|
|
||||||
const babel = file.options.babel;
|
|
||||||
if (babel === undefined) return null;
|
|
||||||
if (typeof babel !== "object" || Array.isArray(babel) || babel === null) {
|
|
||||||
throw new _configError.default(`.babel property must be an object`, file.filepath);
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
filepath: file.filepath,
|
|
||||||
dirname: file.dirname,
|
|
||||||
options: babel
|
|
||||||
};
|
|
||||||
});
|
|
||||||
const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => {
|
|
||||||
let options;
|
|
||||||
try {
|
|
||||||
options = _json().parse(content);
|
|
||||||
} catch (err) {
|
|
||||||
throw new _configError.default(`Error while parsing config - ${err.message}`, filepath);
|
|
||||||
}
|
|
||||||
if (!options) throw new _configError.default(`No config detected`, filepath);
|
|
||||||
if (typeof options !== "object") {
|
|
||||||
throw new _configError.default(`Config returned typeof ${typeof options}`, filepath);
|
|
||||||
}
|
|
||||||
if (Array.isArray(options)) {
|
|
||||||
throw new _configError.default(`Expected config object but found array`, filepath);
|
|
||||||
}
|
|
||||||
delete options.$schema;
|
|
||||||
return {
|
|
||||||
filepath,
|
|
||||||
dirname: _path().dirname(filepath),
|
|
||||||
options
|
|
||||||
};
|
|
||||||
});
|
|
||||||
const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => {
|
|
||||||
const ignoreDir = _path().dirname(filepath);
|
|
||||||
const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(Boolean);
|
|
||||||
for (const pattern of ignorePatterns) {
|
|
||||||
if (pattern.startsWith("!")) {
|
|
||||||
throw new _configError.default(`Negation of file paths is not supported.`, filepath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
filepath,
|
|
||||||
dirname: _path().dirname(filepath),
|
|
||||||
ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir))
|
|
||||||
};
|
|
||||||
});
|
|
||||||
function findConfigUpwards(rootDir) {
|
|
||||||
let dirname = rootDir;
|
|
||||||
for (;;) {
|
|
||||||
for (const filename of ROOT_CONFIG_FILENAMES) {
|
|
||||||
if (_fs().existsSync(_path().join(dirname, filename))) {
|
|
||||||
return dirname;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const nextDir = _path().dirname(dirname);
|
|
||||||
if (dirname === nextDir) break;
|
|
||||||
dirname = nextDir;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
function* findRelativeConfig(packageData, envName, caller) {
|
|
||||||
let config = null;
|
|
||||||
let ignore = null;
|
|
||||||
const dirname = _path().dirname(packageData.filepath);
|
|
||||||
for (const loc of packageData.directories) {
|
|
||||||
if (!config) {
|
|
||||||
var _packageData$pkg;
|
|
||||||
config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null);
|
|
||||||
}
|
|
||||||
if (!ignore) {
|
|
||||||
const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME);
|
|
||||||
ignore = yield* readIgnoreConfig(ignoreLoc);
|
|
||||||
if (ignore) {
|
|
||||||
debug("Found ignore %o from %o.", ignore.filepath, dirname);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
config,
|
|
||||||
ignore
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function findRootConfig(dirname, envName, caller) {
|
|
||||||
return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);
|
|
||||||
}
|
|
||||||
function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) {
|
|
||||||
const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller)));
|
|
||||||
const config = configs.reduce((previousConfig, config) => {
|
|
||||||
if (config && previousConfig) {
|
|
||||||
throw new _configError.default(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`);
|
|
||||||
}
|
|
||||||
return config || previousConfig;
|
|
||||||
}, previousConfig);
|
|
||||||
if (config) {
|
|
||||||
debug("Found configuration %o from %o.", config.filepath, dirname);
|
|
||||||
}
|
|
||||||
return config;
|
|
||||||
}
|
|
||||||
function* loadConfig(name, dirname, envName, caller) {
|
|
||||||
const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, {
|
|
||||||
paths: [b]
|
|
||||||
}, M = require("module")) => {
|
|
||||||
let f = M._findPath(r, M._nodeModulePaths(b).concat(b));
|
|
||||||
if (f) return f;
|
|
||||||
f = new Error(`Cannot resolve module '${r}'`);
|
|
||||||
f.code = "MODULE_NOT_FOUND";
|
|
||||||
throw f;
|
|
||||||
})(name, {
|
|
||||||
paths: [dirname]
|
|
||||||
});
|
|
||||||
const conf = yield* readConfig(filepath, envName, caller);
|
|
||||||
if (!conf) {
|
|
||||||
throw new _configError.default(`Config file contains no configuration data`, filepath);
|
|
||||||
}
|
|
||||||
debug("Loaded config %o from %o.", name, dirname);
|
|
||||||
return conf;
|
|
||||||
}
|
|
||||||
function readConfig(filepath, envName, caller) {
|
|
||||||
const ext = _path().extname(filepath);
|
|
||||||
switch (ext) {
|
|
||||||
case ".js":
|
|
||||||
case ".cjs":
|
|
||||||
case ".mjs":
|
|
||||||
case ".ts":
|
|
||||||
case ".cts":
|
|
||||||
case ".mts":
|
|
||||||
return readConfigCode(filepath, {
|
|
||||||
envName,
|
|
||||||
caller
|
|
||||||
});
|
|
||||||
default:
|
|
||||||
return readConfigJSON5(filepath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function* resolveShowConfigPath(dirname) {
|
|
||||||
const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;
|
|
||||||
if (targetPath != null) {
|
|
||||||
const absolutePath = _path().resolve(dirname, targetPath);
|
|
||||||
const stats = yield* fs.stat(absolutePath);
|
|
||||||
if (!stats.isFile()) {
|
|
||||||
throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`);
|
|
||||||
}
|
|
||||||
return absolutePath;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
function throwConfigError(filepath) {
|
|
||||||
throw new _configError.default(`\
|
|
||||||
Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured
|
|
||||||
for various types of caching, using the first param of their handler functions:
|
|
||||||
|
|
||||||
module.exports = function(api) {
|
|
||||||
// The API exposes the following:
|
|
||||||
|
|
||||||
// Cache the returned value forever and don't call this function again.
|
|
||||||
api.cache(true);
|
|
||||||
|
|
||||||
// Don't cache at all. Not recommended because it will be very slow.
|
|
||||||
api.cache(false);
|
|
||||||
|
|
||||||
// Cached based on the value of some function. If this function returns a value different from
|
|
||||||
// a previously-encountered value, the plugins will re-evaluate.
|
|
||||||
var env = api.cache(() => process.env.NODE_ENV);
|
|
||||||
|
|
||||||
// If testing for a specific env, we recommend specifics to avoid instantiating a plugin for
|
|
||||||
// any possible NODE_ENV value that might come up during plugin execution.
|
|
||||||
var isProd = api.cache(() => process.env.NODE_ENV === "production");
|
|
||||||
|
|
||||||
// .cache(fn) will perform a linear search though instances to find the matching plugin based
|
|
||||||
// based on previous instantiated plugins. If you want to recreate the plugin and discard the
|
|
||||||
// previous instance whenever something changes, you may use:
|
|
||||||
var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production");
|
|
||||||
|
|
||||||
// Note, we also expose the following more-verbose versions of the above examples:
|
|
||||||
api.cache.forever(); // api.cache(true)
|
|
||||||
api.cache.never(); // api.cache(false)
|
|
||||||
api.cache.using(fn); // api.cache(fn)
|
|
||||||
|
|
||||||
// Return the value that will be cached.
|
|
||||||
return { };
|
|
||||||
};`, filepath);
|
|
||||||
}
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=configuration.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/files/configuration.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/files/configuration.js.map
generated
vendored
File diff suppressed because one or more lines are too long
6
pwa/node_modules/@babel/core/lib/config/files/import.cjs
generated
vendored
6
pwa/node_modules/@babel/core/lib/config/files/import.cjs
generated
vendored
|
|
@ -1,6 +0,0 @@
|
||||||
module.exports = function import_(filepath) {
|
|
||||||
return import(filepath);
|
|
||||||
};
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=import.cjs.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/files/import.cjs.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/files/import.cjs.map
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n return import(filepath);\n};\n"],"mappings":"AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAOA,CAACC,QAAQ,EAAE;EAC1C,OAAO,OAAOA,QAAQ,CAAC;AACzB,CAAC;AAAC","ignoreList":[]}
|
|
||||||
58
pwa/node_modules/@babel/core/lib/config/files/index-browser.js
generated
vendored
58
pwa/node_modules/@babel/core/lib/config/files/index-browser.js
generated
vendored
|
|
@ -1,58 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.ROOT_CONFIG_FILENAMES = void 0;
|
|
||||||
exports.findConfigUpwards = findConfigUpwards;
|
|
||||||
exports.findPackageData = findPackageData;
|
|
||||||
exports.findRelativeConfig = findRelativeConfig;
|
|
||||||
exports.findRootConfig = findRootConfig;
|
|
||||||
exports.loadConfig = loadConfig;
|
|
||||||
exports.loadPlugin = loadPlugin;
|
|
||||||
exports.loadPreset = loadPreset;
|
|
||||||
exports.resolvePlugin = resolvePlugin;
|
|
||||||
exports.resolvePreset = resolvePreset;
|
|
||||||
exports.resolveShowConfigPath = resolveShowConfigPath;
|
|
||||||
function findConfigUpwards(rootDir) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
function* findPackageData(filepath) {
|
|
||||||
return {
|
|
||||||
filepath,
|
|
||||||
directories: [],
|
|
||||||
pkg: null,
|
|
||||||
isPackage: false
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function* findRelativeConfig(pkgData, envName, caller) {
|
|
||||||
return {
|
|
||||||
config: null,
|
|
||||||
ignore: null
|
|
||||||
};
|
|
||||||
}
|
|
||||||
function* findRootConfig(dirname, envName, caller) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
function* loadConfig(name, dirname, envName, caller) {
|
|
||||||
throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);
|
|
||||||
}
|
|
||||||
function* resolveShowConfigPath(dirname) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = [];
|
|
||||||
function resolvePlugin(name, dirname) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
function resolvePreset(name, dirname) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
function loadPlugin(name, dirname) {
|
|
||||||
throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`);
|
|
||||||
}
|
|
||||||
function loadPreset(name, dirname) {
|
|
||||||
throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`);
|
|
||||||
}
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=index-browser.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/files/index-browser.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/files/index-browser.js.map
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","exports","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["/* c8 ignore start */\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler<string | null> {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\ntype Resolved =\n | { loader: \"require\"; filepath: string }\n | { loader: \"import\"; filepath: string };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): Resolved | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): Resolved | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAeO,SAASA,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAO1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]}
|
|
||||||
78
pwa/node_modules/@babel/core/lib/config/files/index.js
generated
vendored
78
pwa/node_modules/@babel/core/lib/config/files/index.js
generated
vendored
|
|
@ -1,78 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _configuration.ROOT_CONFIG_FILENAMES;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "findConfigUpwards", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _configuration.findConfigUpwards;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "findPackageData", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _package.findPackageData;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "findRelativeConfig", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _configuration.findRelativeConfig;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "findRootConfig", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _configuration.findRootConfig;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "loadConfig", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _configuration.loadConfig;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "loadPlugin", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _plugins.loadPlugin;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "loadPreset", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _plugins.loadPreset;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "resolvePlugin", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _plugins.resolvePlugin;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "resolvePreset", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _plugins.resolvePreset;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
Object.defineProperty(exports, "resolveShowConfigPath", {
|
|
||||||
enumerable: true,
|
|
||||||
get: function () {
|
|
||||||
return _configuration.resolveShowConfigPath;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var _package = require("./package.js");
|
|
||||||
var _configuration = require("./configuration.js");
|
|
||||||
var _plugins = require("./plugins.js");
|
|
||||||
({});
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=index.js.map
|
|
||||||
1
pwa/node_modules/@babel/core/lib/config/files/index.js.map
generated
vendored
1
pwa/node_modules/@babel/core/lib/config/files/index.js.map
generated
vendored
|
|
@ -1 +0,0 @@
|
||||||
{"version":3,"names":["_package","require","_configuration","_plugins"],"sources":["../../../src/config/files/index.ts"],"sourcesContent":["type indexBrowserType = typeof import(\"./index-browser\");\ntype indexType = typeof import(\"./index\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of index-browser, since this file may be replaced at bundle time with index-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as indexBrowserType as indexType;\n\nexport { findPackageData } from \"./package.ts\";\n\nexport {\n findConfigUpwards,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./configuration.ts\";\nexport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\nexport {\n loadPlugin,\n loadPreset,\n resolvePlugin,\n resolvePreset,\n} from \"./plugins.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAcA,IAAAE,QAAA,GAAAF,OAAA;AAlBA,CAAC,CAAC,CAAC;AAA0C","ignoreList":[]}
|
|
||||||
203
pwa/node_modules/@babel/core/lib/config/files/module-types.js
generated
vendored
203
pwa/node_modules/@babel/core/lib/config/files/module-types.js
generated
vendored
|
|
@ -1,203 +0,0 @@
|
||||||
"use strict";
|
|
||||||
|
|
||||||
Object.defineProperty(exports, "__esModule", {
|
|
||||||
value: true
|
|
||||||
});
|
|
||||||
exports.default = loadCodeDefault;
|
|
||||||
exports.supportsESM = void 0;
|
|
||||||
var _async = require("../../gensync-utils/async.js");
|
|
||||||
function _path() {
|
|
||||||
const data = require("path");
|
|
||||||
_path = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _url() {
|
|
||||||
const data = require("url");
|
|
||||||
_url = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
require("module");
|
|
||||||
function _semver() {
|
|
||||||
const data = require("semver");
|
|
||||||
_semver = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
function _debug() {
|
|
||||||
const data = require("debug");
|
|
||||||
_debug = function () {
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js");
|
|
||||||
var _configError = require("../../errors/config-error.js");
|
|
||||||
var _transformFile = require("../../transform-file.js");
|
|
||||||
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
||||||
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
||||||
const debug = _debug()("babel:config:loading:files:module-types");
|
|
||||||
try {
|
|
||||||
var import_ = require("./import.cjs");
|
|
||||||
} catch (_unused) {}
|
|
||||||
const supportsESM = exports.supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2");
|
|
||||||
const LOADING_CJS_FILES = new Set();
|
|
||||||
function loadCjsDefault(filepath) {
|
|
||||||
if (LOADING_CJS_FILES.has(filepath)) {
|
|
||||||
debug("Auto-ignoring usage of config %o.", filepath);
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
let module;
|
|
||||||
try {
|
|
||||||
LOADING_CJS_FILES.add(filepath);
|
|
||||||
module = (0, _rewriteStackTrace.endHiddenCallStack)(require)(filepath);
|
|
||||||
} finally {
|
|
||||||
LOADING_CJS_FILES.delete(filepath);
|
|
||||||
}
|
|
||||||
return module != null && (module.__esModule || module[Symbol.toStringTag] === "Module") ? module.default || (arguments[1] ? module : undefined) : module;
|
|
||||||
}
|
|
||||||
const loadMjsFromPath = (0, _rewriteStackTrace.endHiddenCallStack)(function () {
|
|
||||||
var _loadMjsFromPath = _asyncToGenerator(function* (filepath) {
|
|
||||||
const url = (0, _url().pathToFileURL)(filepath).toString() + "?import";
|
|
||||||
if (!import_) {
|
|
||||||
throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath);
|
|
||||||
}
|
|
||||||
return yield import_(url);
|
|
||||||
});
|
|
||||||
function loadMjsFromPath(_x) {
|
|
||||||
return _loadMjsFromPath.apply(this, arguments);
|
|
||||||
}
|
|
||||||
return loadMjsFromPath;
|
|
||||||
}());
|
|
||||||
const tsNotSupportedError = ext => `\
|
|
||||||
You are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either:
|
|
||||||
- Use a .cts config file
|
|
||||||
- Update to Node.js 23.6.0, which has native TypeScript support
|
|
||||||
- Install tsx to transpile ${ext} files on the fly\
|
|
||||||
`;
|
|
||||||
const SUPPORTED_EXTENSIONS = {
|
|
||||||
".js": "unknown",
|
|
||||||
".mjs": "esm",
|
|
||||||
".cjs": "cjs",
|
|
||||||
".ts": "unknown",
|
|
||||||
".mts": "esm",
|
|
||||||
".cts": "cjs"
|
|
||||||
};
|
|
||||||
const asyncModules = new Set();
|
|
||||||
function* loadCodeDefault(filepath, loader, esmError, tlaError) {
|
|
||||||
let async;
|
|
||||||
const ext = _path().extname(filepath);
|
|
||||||
const isTS = ext === ".ts" || ext === ".cts" || ext === ".mts";
|
|
||||||
const type = SUPPORTED_EXTENSIONS[hasOwnProperty.call(SUPPORTED_EXTENSIONS, ext) ? ext : ".js"];
|
|
||||||
const pattern = `${loader} ${type}`;
|
|
||||||
switch (pattern) {
|
|
||||||
case "require cjs":
|
|
||||||
case "auto cjs":
|
|
||||||
if (isTS) {
|
|
||||||
return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));
|
|
||||||
} else {
|
|
||||||
return loadCjsDefault(filepath, arguments[2]);
|
|
||||||
}
|
|
||||||
case "auto unknown":
|
|
||||||
case "require unknown":
|
|
||||||
case "require esm":
|
|
||||||
try {
|
|
||||||
if (isTS) {
|
|
||||||
return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));
|
|
||||||
} else {
|
|
||||||
return loadCjsDefault(filepath, arguments[2]);
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) {
|
|
||||||
asyncModules.add(filepath);
|
|
||||||
if (!(async != null ? async : async = yield* (0, _async.isAsync)())) {
|
|
||||||
throw new _configError.default(tlaError, filepath);
|
|
||||||
}
|
|
||||||
} else if (e.code === "ERR_REQUIRE_ESM" || type === "esm") {} else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case "auto esm":
|
|
||||||
if (async != null ? async : async = yield* (0, _async.isAsync)()) {
|
|
||||||
const promise = isTS ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath)) : loadMjsFromPath(filepath);
|
|
||||||
return (yield* (0, _async.waitFor)(promise)).default;
|
|
||||||
}
|
|
||||||
if (isTS) {
|
|
||||||
throw new _configError.default(tsNotSupportedError(ext), filepath);
|
|
||||||
} else {
|
|
||||||
throw new _configError.default(esmError, filepath);
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
throw new Error("Internal Babel error: unreachable code.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function ensureTsSupport(filepath, ext, callback) {
|
|
||||||
if (process.features.typescript || require.extensions[".ts"] || require.extensions[".cts"] || require.extensions[".mts"]) {
|
|
||||||
return callback();
|
|
||||||
}
|
|
||||||
if (ext !== ".cts") {
|
|
||||||
throw new _configError.default(tsNotSupportedError(ext), filepath);
|
|
||||||
}
|
|
||||||
const opts = {
|
|
||||||
babelrc: false,
|
|
||||||
configFile: false,
|
|
||||||
sourceType: "unambiguous",
|
|
||||||
sourceMaps: "inline",
|
|
||||||
sourceFileName: _path().basename(filepath),
|
|
||||||
presets: [[getTSPreset(filepath), Object.assign({
|
|
||||||
onlyRemoveTypeImports: true,
|
|
||||||
optimizeConstEnums: true
|
|
||||||
}, {
|
|
||||||
allowDeclareFields: true
|
|
||||||
})]]
|
|
||||||
};
|
|
||||||
let handler = function (m, filename) {
|
|
||||||
if (handler && filename.endsWith(".cts")) {
|
|
||||||
try {
|
|
||||||
return m._compile((0, _transformFile.transformFileSync)(filename, Object.assign({}, opts, {
|
|
||||||
filename
|
|
||||||
})).code, filename);
|
|
||||||
} catch (error) {
|
|
||||||
const packageJson = require("@babel/preset-typescript/package.json");
|
|
||||||
if (_semver().lt(packageJson.version, "7.21.4")) {
|
|
||||||
console.error("`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.");
|
|
||||||
}
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return require.extensions[".js"](m, filename);
|
|
||||||
};
|
|
||||||
require.extensions[ext] = handler;
|
|
||||||
try {
|
|
||||||
return callback();
|
|
||||||
} finally {
|
|
||||||
if (require.extensions[ext] === handler) delete require.extensions[ext];
|
|
||||||
handler = undefined;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function getTSPreset(filepath) {
|
|
||||||
try {
|
|
||||||
return require("@babel/preset-typescript");
|
|
||||||
} catch (error) {
|
|
||||||
if (error.code !== "MODULE_NOT_FOUND") throw error;
|
|
||||||
let message = "You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!";
|
|
||||||
if (process.versions.pnp) {
|
|
||||||
message += `
|
|
||||||
If you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:
|
|
||||||
|
|
||||||
packageExtensions:
|
|
||||||
\t"@babel/core@*":
|
|
||||||
\t\tpeerDependencies:
|
|
||||||
\t\t\t"@babel/preset-typescript": "*"
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
throw new _configError.default(message, filepath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
0 && 0;
|
|
||||||
|
|
||||||
//# sourceMappingURL=module-types.js.map
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue