Set up comprehensive frontend testing infrastructure
- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
10
frontend/node_modules/@adobe/css-tools/LICENSE
generated
vendored
Normal file
10
frontend/node_modules/@adobe/css-tools/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>
|
||||
Copyright (c) 2022 Jean-Philippe Zolesio <holblin@gmail.com>
|
||||
|
||||
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.
|
||||
327
frontend/node_modules/@adobe/css-tools/Readme.md
generated
vendored
Normal file
327
frontend/node_modules/@adobe/css-tools/Readme.md
generated
vendored
Normal file
@@ -0,0 +1,327 @@
|
||||
# @adobe/css-tools
|
||||
|
||||
> This is a fork of the npm css package due to low maintenance
|
||||
|
||||
CSS parser / stringifier.
|
||||
|
||||
## Installation
|
||||
|
||||
$ npm install @adobe/css-tools
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
import { parse, stringify } from '@adobe/css-tools'
|
||||
let obj = parse('body { font-size: 12px; }', options);
|
||||
let css = stringify(obj, options);
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### parse(code, [options])
|
||||
|
||||
Accepts a CSS string and returns an AST `object`.
|
||||
|
||||
`options`:
|
||||
|
||||
- silent: silently fail on parse errors.
|
||||
- source: the path to the file containing `css`. Makes errors and source
|
||||
maps more helpful, by letting them know where code comes from.
|
||||
|
||||
### stringify(object, [options])
|
||||
|
||||
Accepts an AST `object` (as `css.parse` produces) and returns a CSS string.
|
||||
|
||||
`options`:
|
||||
|
||||
- indent: the string used to indent the output. Defaults to two spaces.
|
||||
- compress: omit comments and extraneous whitespace.
|
||||
|
||||
### Example
|
||||
|
||||
```js
|
||||
var ast = parse('body { font-size: 12px; }', { source: 'source.css' });
|
||||
|
||||
var css = stringify(ast);
|
||||
```
|
||||
|
||||
### Errors
|
||||
|
||||
Errors thrown during parsing have the following properties:
|
||||
|
||||
- message: `String`. The full error message with the source position.
|
||||
- reason: `String`. The error message without position.
|
||||
- filename: `String` or `undefined`. The value of `options.source` if
|
||||
passed to `css.parse`. Otherwise `undefined`.
|
||||
- line: `Integer`.
|
||||
- column: `Integer`.
|
||||
- source: `String`. The portion of code that couldn't be parsed.
|
||||
|
||||
When parsing with the `silent` option, errors are listed in the
|
||||
`parsingErrors` property of the [`stylesheet`](#stylesheet) node instead
|
||||
of being thrown.
|
||||
|
||||
If you create any errors in plugins such as in
|
||||
[rework](https://github.com/reworkcss/rework), you __must__ set the same
|
||||
properties for consistency.
|
||||
|
||||
## AST
|
||||
|
||||
Interactively explore the AST with <http://iamdustan.com/reworkcss_ast_explorer/>.
|
||||
|
||||
### Common properties
|
||||
|
||||
All nodes have the following properties.
|
||||
|
||||
#### position
|
||||
|
||||
Information about the position in the source string that corresponds to
|
||||
the node.
|
||||
|
||||
`Object`:
|
||||
|
||||
- start: `Object`:
|
||||
- line: `Number`.
|
||||
- column: `Number`.
|
||||
- end: `Object`:
|
||||
- line: `Number`.
|
||||
- column: `Number`.
|
||||
- source: `String` or `undefined`. The value of `options.source` if passed to
|
||||
`css.parse`. Otherwise `undefined`.
|
||||
- content: `String`. The full source string passed to `css.parse`.
|
||||
|
||||
The line and column numbers are 1-based: The first line is 1 and the first
|
||||
column of a line is 1 (not 0).
|
||||
|
||||
The `position` property lets you know from which source file the node comes
|
||||
from (if available), what that file contains, and what part of that file was
|
||||
parsed into the node.
|
||||
|
||||
#### type
|
||||
|
||||
`String`. The possible values are the ones listed in the Types section below.
|
||||
|
||||
#### parent
|
||||
|
||||
A reference to the parent node, or `null` if the node has no parent.
|
||||
|
||||
### Types
|
||||
|
||||
The available values of `node.type` are listed below, as well as the available
|
||||
properties of each node (other than the common properties listed above.)
|
||||
|
||||
#### stylesheet
|
||||
|
||||
The root node returned by `css.parse`.
|
||||
|
||||
- stylesheet: `Object`:
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
- parsingErrors: `Array` of `Error`s. Errors collected during parsing when
|
||||
option `silent` is true.
|
||||
|
||||
#### rule
|
||||
|
||||
- selectors: `Array` of `String`s. The list of selectors of the rule, split
|
||||
on commas. Each selector is trimmed from whitespace and comments.
|
||||
- declarations: `Array` of nodes with the types `declaration` and `comment`.
|
||||
|
||||
#### declaration
|
||||
|
||||
- property: `String`. The property name, trimmed from whitespace and
|
||||
comments. May not be empty.
|
||||
- value: `String`. The value of the property, trimmed from whitespace and
|
||||
comments. Empty values are allowed.
|
||||
|
||||
#### comment
|
||||
|
||||
A rule-level or declaration-level comment. Comments inside selectors,
|
||||
properties and values etc. are lost.
|
||||
|
||||
- comment: `String`. The part between the starting `/*` and the ending `*/`
|
||||
of the comment, including whitespace.
|
||||
|
||||
#### charset
|
||||
|
||||
The `@charset` at-rule.
|
||||
|
||||
- charset: `String`. The part following `@charset `.
|
||||
|
||||
#### custom-media
|
||||
|
||||
The `@custom-media` at-rule.
|
||||
|
||||
- name: `String`. The `--`-prefixed name.
|
||||
- media: `String`. The part following the name.
|
||||
|
||||
#### document
|
||||
|
||||
The `@document` at-rule.
|
||||
|
||||
- document: `String`. The part following `@document `.
|
||||
- vendor: `String` or `undefined`. The vendor prefix in `@document`, or
|
||||
`undefined` if there is none.
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
|
||||
#### font-face
|
||||
|
||||
The `@font-face` at-rule.
|
||||
|
||||
- declarations: `Array` of nodes with the types `declaration` and `comment`.
|
||||
|
||||
#### host
|
||||
|
||||
The `@host` at-rule.
|
||||
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
|
||||
#### import
|
||||
|
||||
The `@import` at-rule.
|
||||
|
||||
- import: `String`. The part following `@import `.
|
||||
|
||||
#### keyframes
|
||||
|
||||
The `@keyframes` at-rule.
|
||||
|
||||
- name: `String`. The name of the keyframes rule.
|
||||
- vendor: `String` or `undefined`. The vendor prefix in `@keyframes`, or
|
||||
`undefined` if there is none.
|
||||
- keyframes: `Array` of nodes with the types `keyframe` and `comment`.
|
||||
|
||||
#### keyframe
|
||||
|
||||
- values: `Array` of `String`s. The list of “selectors” of the keyframe rule,
|
||||
split on commas. Each “selector” is trimmed from whitespace.
|
||||
- declarations: `Array` of nodes with the types `declaration` and `comment`.
|
||||
|
||||
#### media
|
||||
|
||||
The `@media` at-rule.
|
||||
|
||||
- media: `String`. The part following `@media `.
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
|
||||
#### namespace
|
||||
|
||||
The `@namespace` at-rule.
|
||||
|
||||
- namespace: `String`. The part following `@namespace `.
|
||||
|
||||
#### page
|
||||
|
||||
The `@page` at-rule.
|
||||
|
||||
- selectors: `Array` of `String`s. The list of selectors of the rule, split
|
||||
on commas. Each selector is trimmed from whitespace and comments.
|
||||
- declarations: `Array` of nodes with the types `declaration` and `comment`.
|
||||
|
||||
#### supports
|
||||
|
||||
The `@supports` at-rule.
|
||||
|
||||
- supports: `String`. The part following `@supports `.
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
|
||||
### container
|
||||
|
||||
The `@container` at-rule.
|
||||
|
||||
- conatiner: `String`. The part following `@container `.
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
|
||||
### layer
|
||||
|
||||
The `@layer` at-rule.
|
||||
|
||||
- layer: `String`. The part following `@layer `.
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types. This may be null, if the rule did not contain any.
|
||||
|
||||
### starting-style
|
||||
|
||||
The `@starting-style` at-rule.
|
||||
|
||||
- rules: `Array` of nodes with the types `rule`, `comment` and any of the
|
||||
at-rule types.
|
||||
|
||||
### Example
|
||||
|
||||
CSS:
|
||||
|
||||
```css
|
||||
body {
|
||||
background: #eee;
|
||||
color: #888;
|
||||
}
|
||||
```
|
||||
|
||||
Parse tree:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "stylesheet",
|
||||
"stylesheet": {
|
||||
"rules": [
|
||||
{
|
||||
"type": "rule",
|
||||
"selectors": [
|
||||
"body"
|
||||
],
|
||||
"declarations": [
|
||||
{
|
||||
"type": "declaration",
|
||||
"property": "background",
|
||||
"value": "#eee",
|
||||
"position": {
|
||||
"start": {
|
||||
"line": 2,
|
||||
"column": 3
|
||||
},
|
||||
"end": {
|
||||
"line": 2,
|
||||
"column": 19
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "declaration",
|
||||
"property": "color",
|
||||
"value": "#888",
|
||||
"position": {
|
||||
"start": {
|
||||
"line": 3,
|
||||
"column": 3
|
||||
},
|
||||
"end": {
|
||||
"line": 3,
|
||||
"column": 14
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 1
|
||||
},
|
||||
"end": {
|
||||
"line": 4,
|
||||
"column": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
886
frontend/node_modules/@adobe/css-tools/dist/index.cjs
generated
vendored
Normal file
886
frontend/node_modules/@adobe/css-tools/dist/index.cjs
generated
vendored
Normal file
@@ -0,0 +1,886 @@
|
||||
|
||||
function $parcel$defineInteropFlag(a) {
|
||||
Object.defineProperty(a, '__esModule', {value: true, configurable: true});
|
||||
}
|
||||
|
||||
function $parcel$exportWildcard(dest, source) {
|
||||
Object.keys(source).forEach(function(key) {
|
||||
if (key === 'default' || key === '__esModule' || Object.prototype.hasOwnProperty.call(dest, key)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Object.defineProperty(dest, key, {
|
||||
enumerable: true,
|
||||
get: function get() {
|
||||
return source[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
function $parcel$export(e, n, v, s) {
|
||||
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
||||
}
|
||||
|
||||
$parcel$defineInteropFlag(module.exports);
|
||||
|
||||
$parcel$export(module.exports, "parse", () => $882b6d93070905b3$export$98e6a39c04603d36);
|
||||
$parcel$export(module.exports, "stringify", () => $882b6d93070905b3$export$fac44ee5b035f737);
|
||||
$parcel$export(module.exports, "default", () => $882b6d93070905b3$export$2e2bcd8739ae039);
|
||||
var $cb508b9219b02820$exports = {};
|
||||
|
||||
$parcel$defineInteropFlag($cb508b9219b02820$exports);
|
||||
|
||||
$parcel$export($cb508b9219b02820$exports, "default", () => $cb508b9219b02820$export$2e2bcd8739ae039);
|
||||
class $cb508b9219b02820$export$2e2bcd8739ae039 extends Error {
|
||||
constructor(filename, msg, lineno, column, css){
|
||||
super(filename + ':' + lineno + ':' + column + ': ' + msg);
|
||||
this.reason = msg;
|
||||
this.filename = filename;
|
||||
this.line = lineno;
|
||||
this.column = column;
|
||||
this.source = css;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var $4bafb28828007b46$exports = {};
|
||||
|
||||
$parcel$defineInteropFlag($4bafb28828007b46$exports);
|
||||
|
||||
$parcel$export($4bafb28828007b46$exports, "default", () => $4bafb28828007b46$export$2e2bcd8739ae039);
|
||||
/**
|
||||
* Store position information for a node
|
||||
*/ class $4bafb28828007b46$export$2e2bcd8739ae039 {
|
||||
constructor(start, end, source){
|
||||
this.start = start;
|
||||
this.end = end;
|
||||
this.source = source;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var $d103407e81c97042$exports = {};
|
||||
|
||||
$parcel$export($d103407e81c97042$exports, "CssTypes", () => $d103407e81c97042$export$9be5dd6e61d5d73a);
|
||||
var $d103407e81c97042$export$9be5dd6e61d5d73a = /*#__PURE__*/ function(CssTypes) {
|
||||
CssTypes["stylesheet"] = "stylesheet";
|
||||
CssTypes["rule"] = "rule";
|
||||
CssTypes["declaration"] = "declaration";
|
||||
CssTypes["comment"] = "comment";
|
||||
CssTypes["container"] = "container";
|
||||
CssTypes["charset"] = "charset";
|
||||
CssTypes["document"] = "document";
|
||||
CssTypes["customMedia"] = "custom-media";
|
||||
CssTypes["fontFace"] = "font-face";
|
||||
CssTypes["host"] = "host";
|
||||
CssTypes["import"] = "import";
|
||||
CssTypes["keyframes"] = "keyframes";
|
||||
CssTypes["keyframe"] = "keyframe";
|
||||
CssTypes["layer"] = "layer";
|
||||
CssTypes["media"] = "media";
|
||||
CssTypes["namespace"] = "namespace";
|
||||
CssTypes["page"] = "page";
|
||||
CssTypes["startingStyle"] = "starting-style";
|
||||
CssTypes["supports"] = "supports";
|
||||
return CssTypes;
|
||||
}({});
|
||||
|
||||
|
||||
const $6fedb2016a78880b$export$82eb5486fce3d340 = 10000;
|
||||
const $6fedb2016a78880b$export$c8b95ffeec50f24a = (string, search, position)=>{
|
||||
let currentPosition = position;
|
||||
let maxLoop = $6fedb2016a78880b$export$82eb5486fce3d340;
|
||||
do {
|
||||
const all = search.map((v)=>string.indexOf(v, currentPosition));
|
||||
all.push(string.indexOf('\\', currentPosition));
|
||||
const foundAll = all.filter((v)=>v !== -1);
|
||||
if (foundAll.length === 0) return -1;
|
||||
const found = Math.min(...foundAll);
|
||||
if (string[found] === '\\') {
|
||||
currentPosition = found + 2;
|
||||
maxLoop--;
|
||||
} else return found;
|
||||
}while (maxLoop > 0);
|
||||
throw new Error('Too many escaping');
|
||||
};
|
||||
const $6fedb2016a78880b$export$b8d42a8583d2e477 = (string, search, position)=>{
|
||||
let currentSearchPosition = position;
|
||||
let maxLoop = $6fedb2016a78880b$export$82eb5486fce3d340;
|
||||
do {
|
||||
const all = search.map((v)=>string.indexOf(v, currentSearchPosition));
|
||||
all.push(string.indexOf('(', currentSearchPosition));
|
||||
all.push(string.indexOf('"', currentSearchPosition));
|
||||
all.push(string.indexOf("'", currentSearchPosition));
|
||||
all.push(string.indexOf('\\', currentSearchPosition));
|
||||
const foundAll = all.filter((v)=>v !== -1);
|
||||
if (foundAll.length === 0) return -1;
|
||||
const firstMatchPos = Math.min(...foundAll);
|
||||
const char = string[firstMatchPos];
|
||||
switch(char){
|
||||
case '\\':
|
||||
currentSearchPosition = firstMatchPos + 2;
|
||||
break;
|
||||
case '(':
|
||||
{
|
||||
const endPosition = $6fedb2016a78880b$export$b8d42a8583d2e477(string, [
|
||||
')'
|
||||
], firstMatchPos + 1);
|
||||
if (endPosition === -1) return -1;
|
||||
currentSearchPosition = endPosition + 1;
|
||||
}
|
||||
break;
|
||||
case '"':
|
||||
{
|
||||
const endQuotePosition = $6fedb2016a78880b$export$c8b95ffeec50f24a(string, [
|
||||
'"'
|
||||
], firstMatchPos + 1);
|
||||
if (endQuotePosition === -1) return -1;
|
||||
currentSearchPosition = endQuotePosition + 1;
|
||||
}
|
||||
break;
|
||||
case "'":
|
||||
{
|
||||
const endQuotePosition = $6fedb2016a78880b$export$c8b95ffeec50f24a(string, [
|
||||
"'"
|
||||
], firstMatchPos + 1);
|
||||
if (endQuotePosition === -1) return -1;
|
||||
currentSearchPosition = endQuotePosition + 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return firstMatchPos;
|
||||
}
|
||||
maxLoop--;
|
||||
}while (maxLoop > 0);
|
||||
throw new Error('Too many escaping');
|
||||
};
|
||||
const $6fedb2016a78880b$export$801dd37ac183521b = (string, search)=>{
|
||||
const result = [];
|
||||
let currentPosition = 0;
|
||||
while(currentPosition < string.length){
|
||||
const index = $6fedb2016a78880b$export$b8d42a8583d2e477(string, search, currentPosition);
|
||||
if (index === -1) {
|
||||
result.push(string.substring(currentPosition));
|
||||
return result;
|
||||
}
|
||||
result.push(string.substring(currentPosition, index));
|
||||
currentPosition = index + 1;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
|
||||
// http://www.w3.org/TR/CSS21/grammar.html
|
||||
// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
|
||||
// New rule => https://www.w3.org/TR/CSS22/syndata.html#comments
|
||||
// [^] is equivalent to [.\n\r]
|
||||
const $b499486c7f02abe7$var$commentre = /\/\*[^]*?(?:\*\/|$)/g;
|
||||
const $b499486c7f02abe7$export$98e6a39c04603d36 = (css, options)=>{
|
||||
options = options || {};
|
||||
/**
|
||||
* Positional.
|
||||
*/ let lineno = 1;
|
||||
let column = 1;
|
||||
/**
|
||||
* Update lineno and column based on `str`.
|
||||
*/ function updatePosition(str) {
|
||||
const lines = str.match(/\n/g);
|
||||
if (lines) lineno += lines.length;
|
||||
const i = str.lastIndexOf('\n');
|
||||
column = ~i ? str.length - i : column + str.length;
|
||||
}
|
||||
/**
|
||||
* Mark position and patch `node.position`.
|
||||
*/ function position() {
|
||||
const start = {
|
||||
line: lineno,
|
||||
column: column
|
||||
};
|
||||
return function(node) {
|
||||
node.position = new (0, $4bafb28828007b46$export$2e2bcd8739ae039)(start, {
|
||||
line: lineno,
|
||||
column: column
|
||||
}, options?.source || '');
|
||||
whitespace();
|
||||
return node;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Error `msg`.
|
||||
*/ const errorsList = [];
|
||||
function error(msg) {
|
||||
const err = new (0, $cb508b9219b02820$export$2e2bcd8739ae039)(options?.source || '', msg, lineno, column, css);
|
||||
if (options?.silent) errorsList.push(err);
|
||||
else throw err;
|
||||
}
|
||||
/**
|
||||
* Parse stylesheet.
|
||||
*/ function stylesheet() {
|
||||
const rulesList = rules();
|
||||
const result = {
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).stylesheet,
|
||||
stylesheet: {
|
||||
source: options?.source,
|
||||
rules: rulesList,
|
||||
parsingErrors: errorsList
|
||||
}
|
||||
};
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Opening brace.
|
||||
*/ function open() {
|
||||
const openMatch = /^{\s*/.exec(css);
|
||||
if (openMatch) {
|
||||
processMatch(openMatch);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Closing brace.
|
||||
*/ function close() {
|
||||
const closeMatch = /^}/.exec(css);
|
||||
if (closeMatch) {
|
||||
processMatch(closeMatch);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Parse ruleset.
|
||||
*/ function rules() {
|
||||
let node;
|
||||
const rules = [];
|
||||
whitespace();
|
||||
comments(rules);
|
||||
while(css.length && css.charAt(0) !== '}' && (node = atrule() || rule()))if (node) {
|
||||
rules.push(node);
|
||||
comments(rules);
|
||||
}
|
||||
return rules;
|
||||
}
|
||||
/**
|
||||
* Update position and css string. Return the matches
|
||||
*/ function processMatch(m) {
|
||||
const str = m[0];
|
||||
updatePosition(str);
|
||||
css = css.slice(str.length);
|
||||
return m;
|
||||
}
|
||||
/**
|
||||
* Parse whitespace.
|
||||
*/ function whitespace() {
|
||||
const m = /^\s*/.exec(css);
|
||||
if (m) processMatch(m);
|
||||
}
|
||||
/**
|
||||
* Parse comments;
|
||||
*/ function comments(rules) {
|
||||
let c;
|
||||
rules = rules || [];
|
||||
while(c = comment())if (c) rules.push(c);
|
||||
return rules;
|
||||
}
|
||||
/**
|
||||
* Parse comment.
|
||||
*/ function comment() {
|
||||
const pos = position();
|
||||
if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) return;
|
||||
const m = /^\/\*[^]*?\*\//.exec(css);
|
||||
if (!m) return error('End of comment missing');
|
||||
processMatch(m);
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).comment,
|
||||
comment: m[0].slice(2, -2)
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse selector.
|
||||
*/ function selector() {
|
||||
const m = /^([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
// remove comment in selector;
|
||||
const res = $b499486c7f02abe7$var$trim(m[0]).replace($b499486c7f02abe7$var$commentre, '');
|
||||
return (0, $6fedb2016a78880b$export$801dd37ac183521b)(res, [
|
||||
','
|
||||
]).map((v)=>$b499486c7f02abe7$var$trim(v));
|
||||
}
|
||||
/**
|
||||
* Parse declaration.
|
||||
*/ function declaration() {
|
||||
const pos = position();
|
||||
// prop
|
||||
const propMatch = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/.exec(css);
|
||||
if (!propMatch) return;
|
||||
processMatch(propMatch);
|
||||
const propValue = $b499486c7f02abe7$var$trim(propMatch[0]);
|
||||
// :
|
||||
const sepratotorMatch = /^:\s*/.exec(css);
|
||||
if (!sepratotorMatch) return error("property missing ':'");
|
||||
processMatch(sepratotorMatch);
|
||||
// val
|
||||
let value = '';
|
||||
const endValuePosition = (0, $6fedb2016a78880b$export$b8d42a8583d2e477)(css, [
|
||||
';',
|
||||
'}'
|
||||
]);
|
||||
if (endValuePosition !== -1) {
|
||||
value = css.substring(0, endValuePosition);
|
||||
const fakeMatch = [
|
||||
value
|
||||
];
|
||||
processMatch(fakeMatch);
|
||||
value = $b499486c7f02abe7$var$trim(value).replace($b499486c7f02abe7$var$commentre, '');
|
||||
}
|
||||
const ret = pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).declaration,
|
||||
property: propValue.replace($b499486c7f02abe7$var$commentre, ''),
|
||||
value: value
|
||||
});
|
||||
// ;
|
||||
const endMatch = /^[;\s]*/.exec(css);
|
||||
if (endMatch) processMatch(endMatch);
|
||||
return ret;
|
||||
}
|
||||
/**
|
||||
* Parse declarations.
|
||||
*/ function declarations() {
|
||||
const decls = [];
|
||||
if (!open()) return error("missing '{'");
|
||||
comments(decls);
|
||||
// declarations
|
||||
let decl;
|
||||
while(decl = declaration())if (decl) {
|
||||
decls.push(decl);
|
||||
comments(decls);
|
||||
}
|
||||
if (!close()) return error("missing '}'");
|
||||
return decls;
|
||||
}
|
||||
/**
|
||||
* Parse keyframe.
|
||||
*/ function keyframe() {
|
||||
let m;
|
||||
const vals = [];
|
||||
const pos = position();
|
||||
while(m = /^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/.exec(css)){
|
||||
const res = processMatch(m);
|
||||
vals.push(res[1]);
|
||||
const spacesMatch = /^,\s*/.exec(css);
|
||||
if (spacesMatch) processMatch(spacesMatch);
|
||||
}
|
||||
if (!vals.length) return;
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframe,
|
||||
values: vals,
|
||||
declarations: declarations() || []
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse keyframes.
|
||||
*/ function atkeyframes() {
|
||||
const pos = position();
|
||||
const m1 = /^@([-\w]+)?keyframes\s*/.exec(css);
|
||||
if (!m1) return;
|
||||
const vendor = processMatch(m1)[1];
|
||||
// identifier
|
||||
const m2 = /^([-\w]+)\s*/.exec(css);
|
||||
if (!m2) return error('@keyframes missing name');
|
||||
const name = processMatch(m2)[1];
|
||||
if (!open()) return error("@keyframes missing '{'");
|
||||
let frame;
|
||||
let frames = comments();
|
||||
while(frame = keyframe()){
|
||||
frames.push(frame);
|
||||
frames = frames.concat(comments());
|
||||
}
|
||||
if (!close()) return error("@keyframes missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframes,
|
||||
name: name,
|
||||
vendor: vendor,
|
||||
keyframes: frames
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse supports.
|
||||
*/ function atsupports() {
|
||||
const pos = position();
|
||||
const m = /^@supports *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const supports = $b499486c7f02abe7$var$trim(processMatch(m)[1]);
|
||||
if (!open()) return error("@supports missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@supports missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).supports,
|
||||
supports: supports,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse host.
|
||||
*/ function athost() {
|
||||
const pos = position();
|
||||
const m = /^@host\s*/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
if (!open()) return error("@host missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@host missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).host,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse container.
|
||||
*/ function atcontainer() {
|
||||
const pos = position();
|
||||
const m = /^@container *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const container = $b499486c7f02abe7$var$trim(processMatch(m)[1]);
|
||||
if (!open()) return error("@container missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@container missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).container,
|
||||
container: container,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse container.
|
||||
*/ function atlayer() {
|
||||
const pos = position();
|
||||
const m = /^@layer *([^{;@]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const layer = $b499486c7f02abe7$var$trim(processMatch(m)[1]);
|
||||
if (!open()) {
|
||||
const m2 = /^[;\s]*/.exec(css);
|
||||
if (m2) processMatch(m2);
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).layer,
|
||||
layer: layer
|
||||
});
|
||||
}
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@layer missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).layer,
|
||||
layer: layer,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse media.
|
||||
*/ function atmedia() {
|
||||
const pos = position();
|
||||
const m = /^@media *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const media = $b499486c7f02abe7$var$trim(processMatch(m)[1]);
|
||||
if (!open()) return error("@media missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@media missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).media,
|
||||
media: media,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse custom-media.
|
||||
*/ function atcustommedia() {
|
||||
const pos = position();
|
||||
const m = /^@custom-media\s+(--\S+)\s+([^{;\s][^{;]*);/.exec(css);
|
||||
if (!m) return;
|
||||
const res = processMatch(m);
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).customMedia,
|
||||
name: $b499486c7f02abe7$var$trim(res[1]),
|
||||
media: $b499486c7f02abe7$var$trim(res[2])
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse paged media.
|
||||
*/ function atpage() {
|
||||
const pos = position();
|
||||
const m = /^@page */.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
const sel = selector() || [];
|
||||
if (!open()) return error("@page missing '{'");
|
||||
let decls = comments();
|
||||
// declarations
|
||||
let decl;
|
||||
while(decl = declaration()){
|
||||
decls.push(decl);
|
||||
decls = decls.concat(comments());
|
||||
}
|
||||
if (!close()) return error("@page missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).page,
|
||||
selectors: sel,
|
||||
declarations: decls
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse document.
|
||||
*/ function atdocument() {
|
||||
const pos = position();
|
||||
const m = /^@([-\w]+)?document *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const res = processMatch(m);
|
||||
const vendor = $b499486c7f02abe7$var$trim(res[1]);
|
||||
const doc = $b499486c7f02abe7$var$trim(res[2]);
|
||||
if (!open()) return error("@document missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@document missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).document,
|
||||
document: doc,
|
||||
vendor: vendor,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse font-face.
|
||||
*/ function atfontface() {
|
||||
const pos = position();
|
||||
const m = /^@font-face\s*/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
if (!open()) return error("@font-face missing '{'");
|
||||
let decls = comments();
|
||||
// declarations
|
||||
let decl;
|
||||
while(decl = declaration()){
|
||||
decls.push(decl);
|
||||
decls = decls.concat(comments());
|
||||
}
|
||||
if (!close()) return error("@font-face missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).fontFace,
|
||||
declarations: decls
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse starting style.
|
||||
*/ function atstartingstyle() {
|
||||
const pos = position();
|
||||
const m = /^@starting-style\s*/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
if (!open()) return error("@starting-style missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@starting-style missing '}'");
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).startingStyle,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse import
|
||||
*/ const atimport = _compileAtrule('import');
|
||||
/**
|
||||
* Parse charset
|
||||
*/ const atcharset = _compileAtrule('charset');
|
||||
/**
|
||||
* Parse namespace
|
||||
*/ const atnamespace = _compileAtrule('namespace');
|
||||
/**
|
||||
* Parse non-block at-rules
|
||||
*/ function _compileAtrule(name) {
|
||||
const re = new RegExp('^@' + name + '\\s*((?::?[^;\'"]|"(?:\\\\"|[^"])*?"|\'(?:\\\\\'|[^\'])*?\')+)(?:;|$)');
|
||||
// ^@import\s*([^;"']|("|')(?:\\\2|.)*?\2)+(;|$)
|
||||
return function() {
|
||||
const pos = position();
|
||||
const m = re.exec(css);
|
||||
if (!m) return;
|
||||
const res = processMatch(m);
|
||||
const ret = {
|
||||
type: name
|
||||
};
|
||||
ret[name] = res[1].trim();
|
||||
return pos(ret);
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Parse at rule.
|
||||
*/ function atrule() {
|
||||
if (css[0] !== '@') return;
|
||||
return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface() || atcontainer() || atstartingstyle() || atlayer();
|
||||
}
|
||||
/**
|
||||
* Parse rule.
|
||||
*/ function rule() {
|
||||
const pos = position();
|
||||
const sel = selector();
|
||||
if (!sel) return error('selector missing');
|
||||
comments();
|
||||
return pos({
|
||||
type: (0, $d103407e81c97042$export$9be5dd6e61d5d73a).rule,
|
||||
selectors: sel,
|
||||
declarations: declarations() || []
|
||||
});
|
||||
}
|
||||
return $b499486c7f02abe7$var$addParent(stylesheet());
|
||||
};
|
||||
/**
|
||||
* Trim `str`.
|
||||
*/ function $b499486c7f02abe7$var$trim(str) {
|
||||
return str ? str.trim() : '';
|
||||
}
|
||||
/**
|
||||
* Adds non-enumerable parent node reference to each node.
|
||||
*/ function $b499486c7f02abe7$var$addParent(obj, parent) {
|
||||
const isNode = obj && typeof obj.type === 'string';
|
||||
const childParent = isNode ? obj : parent;
|
||||
for(const k in obj){
|
||||
const value = obj[k];
|
||||
if (Array.isArray(value)) value.forEach((v)=>{
|
||||
$b499486c7f02abe7$var$addParent(v, childParent);
|
||||
});
|
||||
else if (value && typeof value === 'object') $b499486c7f02abe7$var$addParent(value, childParent);
|
||||
}
|
||||
if (isNode) Object.defineProperty(obj, 'parent', {
|
||||
configurable: true,
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
value: parent || null
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
var $b499486c7f02abe7$export$2e2bcd8739ae039 = $b499486c7f02abe7$export$98e6a39c04603d36;
|
||||
|
||||
|
||||
|
||||
class $24dc7e49cb76910e$var$Compiler {
|
||||
constructor(options){
|
||||
this.level = 0;
|
||||
this.indentation = ' ';
|
||||
this.compress = false;
|
||||
if (typeof options?.indent === 'string') this.indentation = options?.indent;
|
||||
if (options?.compress) this.compress = true;
|
||||
}
|
||||
// We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
emit(str, _position) {
|
||||
return str;
|
||||
}
|
||||
/**
|
||||
* Increase, decrease or return current indentation.
|
||||
*/ indent(level) {
|
||||
this.level = this.level || 1;
|
||||
if (level) {
|
||||
this.level += level;
|
||||
return '';
|
||||
}
|
||||
return Array(this.level).join(this.indentation);
|
||||
}
|
||||
visit(node) {
|
||||
switch(node.type){
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).stylesheet:
|
||||
return this.stylesheet(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).rule:
|
||||
return this.rule(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).declaration:
|
||||
return this.declaration(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).comment:
|
||||
return this.comment(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).container:
|
||||
return this.container(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).charset:
|
||||
return this.charset(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).document:
|
||||
return this.document(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).customMedia:
|
||||
return this.customMedia(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).fontFace:
|
||||
return this.fontFace(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).host:
|
||||
return this.host(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).import:
|
||||
return this.import(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframes:
|
||||
return this.keyframes(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).keyframe:
|
||||
return this.keyframe(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).layer:
|
||||
return this.layer(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).media:
|
||||
return this.media(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).namespace:
|
||||
return this.namespace(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).page:
|
||||
return this.page(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).startingStyle:
|
||||
return this.startingStyle(node);
|
||||
case (0, $d103407e81c97042$export$9be5dd6e61d5d73a).supports:
|
||||
return this.supports(node);
|
||||
}
|
||||
}
|
||||
mapVisit(nodes, delim) {
|
||||
let buf = '';
|
||||
delim = delim || '';
|
||||
for(let i = 0, length = nodes.length; i < length; i++){
|
||||
buf += this.visit(nodes[i]);
|
||||
if (delim && i < length - 1) buf += this.emit(delim);
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
compile(node) {
|
||||
if (this.compress) return node.stylesheet.rules.map(this.visit, this).join('');
|
||||
return this.stylesheet(node);
|
||||
}
|
||||
/**
|
||||
* Visit stylesheet node.
|
||||
*/ stylesheet(node) {
|
||||
return this.mapVisit(node.stylesheet.rules, '\n\n');
|
||||
}
|
||||
/**
|
||||
* Visit comment node.
|
||||
*/ comment(node) {
|
||||
if (this.compress) return this.emit('', node.position);
|
||||
return this.emit(this.indent() + '/*' + node.comment + '*/', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit container node.
|
||||
*/ container(node) {
|
||||
if (this.compress) return this.emit('@container ' + node.container, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@container ' + node.container, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit container node.
|
||||
*/ layer(node) {
|
||||
if (this.compress) return this.emit('@layer ' + node.layer, node.position) + (node.rules ? this.emit('{') + this.mapVisit(node.rules) + this.emit('}') : ';');
|
||||
return this.emit(this.indent() + '@layer ' + node.layer, node.position) + (node.rules ? this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}') : ';');
|
||||
}
|
||||
/**
|
||||
* Visit import node.
|
||||
*/ import(node) {
|
||||
return this.emit('@import ' + node.import + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit media node.
|
||||
*/ media(node) {
|
||||
if (this.compress) return this.emit('@media ' + node.media, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@media ' + node.media, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit document node.
|
||||
*/ document(node) {
|
||||
const doc = '@' + (node.vendor || '') + 'document ' + node.document;
|
||||
if (this.compress) return this.emit(doc, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(doc, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}');
|
||||
}
|
||||
/**
|
||||
* Visit charset node.
|
||||
*/ charset(node) {
|
||||
return this.emit('@charset ' + node.charset + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit namespace node.
|
||||
*/ namespace(node) {
|
||||
return this.emit('@namespace ' + node.namespace + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit container node.
|
||||
*/ startingStyle(node) {
|
||||
if (this.compress) return this.emit('@starting-style', node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@starting-style', node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit supports node.
|
||||
*/ supports(node) {
|
||||
if (this.compress) return this.emit('@supports ' + node.supports, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@supports ' + node.supports, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit keyframes node.
|
||||
*/ keyframes(node) {
|
||||
if (this.compress) return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit('{') + this.mapVisit(node.keyframes) + this.emit('}');
|
||||
return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.keyframes, '\n') + this.emit(this.indent(-1) + '}');
|
||||
}
|
||||
/**
|
||||
* Visit keyframe node.
|
||||
*/ keyframe(node) {
|
||||
const decls = node.declarations;
|
||||
if (this.compress) return this.emit(node.values.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}');
|
||||
return this.emit(this.indent()) + this.emit(node.values.join(', '), node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(decls, '\n') + this.emit(this.indent(-1) + '\n' + this.indent() + '}\n');
|
||||
}
|
||||
/**
|
||||
* Visit page node.
|
||||
*/ page(node) {
|
||||
if (this.compress) {
|
||||
const sel = node.selectors.length ? node.selectors.join(', ') : '';
|
||||
return this.emit('@page ' + sel, node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}');
|
||||
}
|
||||
const sel = node.selectors.length ? node.selectors.join(', ') + ' ' : '';
|
||||
return this.emit('@page ' + sel, node.position) + this.emit('{\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\n') + this.emit(this.indent(-1)) + this.emit('\n}');
|
||||
}
|
||||
/**
|
||||
* Visit font-face node.
|
||||
*/ fontFace(node) {
|
||||
if (this.compress) return this.emit('@font-face', node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}');
|
||||
return this.emit('@font-face ', node.position) + this.emit('{\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\n') + this.emit(this.indent(-1)) + this.emit('\n}');
|
||||
}
|
||||
/**
|
||||
* Visit host node.
|
||||
*/ host(node) {
|
||||
if (this.compress) return this.emit('@host', node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit('@host', node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}');
|
||||
}
|
||||
/**
|
||||
* Visit custom-media node.
|
||||
*/ customMedia(node) {
|
||||
return this.emit('@custom-media ' + node.name + ' ' + node.media + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit rule node.
|
||||
*/ rule(node) {
|
||||
const decls = node.declarations;
|
||||
if (!decls.length) return '';
|
||||
if (this.compress) return this.emit(node.selectors.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}');
|
||||
const indent = this.indent();
|
||||
return this.emit(node.selectors.map((s)=>{
|
||||
return indent + s;
|
||||
}).join(',\n'), node.position) + this.emit(' {\n') + this.emit(this.indent(1)) + this.mapVisit(decls, '\n') + this.emit(this.indent(-1)) + this.emit('\n' + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit declaration node.
|
||||
*/ declaration(node) {
|
||||
if (this.compress) return this.emit(node.property + ':' + node.value, node.position) + this.emit(';');
|
||||
if (node.property === 'grid-template-areas') return this.emit(this.indent()) + this.emit(node.property + ': ' + node.value.split('\n').join('\n'.padEnd(22) + this.indent()), node.position) + this.emit(';');
|
||||
return this.emit(this.indent()) + this.emit(node.property + ': ' + node.value, node.position) + this.emit(';');
|
||||
}
|
||||
}
|
||||
var $24dc7e49cb76910e$export$2e2bcd8739ae039 = $24dc7e49cb76910e$var$Compiler;
|
||||
|
||||
|
||||
var $fd680ce0c35731f5$export$2e2bcd8739ae039 = (node, options)=>{
|
||||
const compiler = new (0, $24dc7e49cb76910e$export$2e2bcd8739ae039)(options || {});
|
||||
return compiler.compile(node);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const $882b6d93070905b3$export$98e6a39c04603d36 = (0, $b499486c7f02abe7$export$2e2bcd8739ae039);
|
||||
const $882b6d93070905b3$export$fac44ee5b035f737 = (0, $fd680ce0c35731f5$export$2e2bcd8739ae039);
|
||||
var $882b6d93070905b3$export$2e2bcd8739ae039 = {
|
||||
parse: $882b6d93070905b3$export$98e6a39c04603d36,
|
||||
stringify: $882b6d93070905b3$export$fac44ee5b035f737
|
||||
};
|
||||
$parcel$exportWildcard(module.exports, $d103407e81c97042$exports);
|
||||
$parcel$exportWildcard(module.exports, $cb508b9219b02820$exports);
|
||||
$parcel$exportWildcard(module.exports, $4bafb28828007b46$exports);
|
||||
|
||||
|
||||
//# sourceMappingURL=index.cjs.map
|
||||
1
frontend/node_modules/@adobe/css-tools/dist/index.cjs.map
generated
vendored
Normal file
1
frontend/node_modules/@adobe/css-tools/dist/index.cjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
861
frontend/node_modules/@adobe/css-tools/dist/index.mjs
generated
vendored
Normal file
861
frontend/node_modules/@adobe/css-tools/dist/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,861 @@
|
||||
|
||||
function $parcel$defineInteropFlag(a) {
|
||||
Object.defineProperty(a, '__esModule', {value: true, configurable: true});
|
||||
}
|
||||
|
||||
function $parcel$export(e, n, v, s) {
|
||||
Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
|
||||
}
|
||||
var $009ddb00d3ec72b8$exports = {};
|
||||
|
||||
$parcel$defineInteropFlag($009ddb00d3ec72b8$exports);
|
||||
|
||||
$parcel$export($009ddb00d3ec72b8$exports, "default", () => $009ddb00d3ec72b8$export$2e2bcd8739ae039);
|
||||
class $009ddb00d3ec72b8$export$2e2bcd8739ae039 extends Error {
|
||||
constructor(filename, msg, lineno, column, css){
|
||||
super(filename + ':' + lineno + ':' + column + ': ' + msg);
|
||||
this.reason = msg;
|
||||
this.filename = filename;
|
||||
this.line = lineno;
|
||||
this.column = column;
|
||||
this.source = css;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var $0865a9fb4cc365fe$exports = {};
|
||||
|
||||
$parcel$defineInteropFlag($0865a9fb4cc365fe$exports);
|
||||
|
||||
$parcel$export($0865a9fb4cc365fe$exports, "default", () => $0865a9fb4cc365fe$export$2e2bcd8739ae039);
|
||||
/**
|
||||
* Store position information for a node
|
||||
*/ class $0865a9fb4cc365fe$export$2e2bcd8739ae039 {
|
||||
constructor(start, end, source){
|
||||
this.start = start;
|
||||
this.end = end;
|
||||
this.source = source;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var $b2e137848b48cf4f$exports = {};
|
||||
|
||||
$parcel$export($b2e137848b48cf4f$exports, "CssTypes", () => $b2e137848b48cf4f$export$9be5dd6e61d5d73a);
|
||||
var $b2e137848b48cf4f$export$9be5dd6e61d5d73a = /*#__PURE__*/ function(CssTypes) {
|
||||
CssTypes["stylesheet"] = "stylesheet";
|
||||
CssTypes["rule"] = "rule";
|
||||
CssTypes["declaration"] = "declaration";
|
||||
CssTypes["comment"] = "comment";
|
||||
CssTypes["container"] = "container";
|
||||
CssTypes["charset"] = "charset";
|
||||
CssTypes["document"] = "document";
|
||||
CssTypes["customMedia"] = "custom-media";
|
||||
CssTypes["fontFace"] = "font-face";
|
||||
CssTypes["host"] = "host";
|
||||
CssTypes["import"] = "import";
|
||||
CssTypes["keyframes"] = "keyframes";
|
||||
CssTypes["keyframe"] = "keyframe";
|
||||
CssTypes["layer"] = "layer";
|
||||
CssTypes["media"] = "media";
|
||||
CssTypes["namespace"] = "namespace";
|
||||
CssTypes["page"] = "page";
|
||||
CssTypes["startingStyle"] = "starting-style";
|
||||
CssTypes["supports"] = "supports";
|
||||
return CssTypes;
|
||||
}({});
|
||||
|
||||
|
||||
const $6d129ebf064c486f$export$82eb5486fce3d340 = 10000;
|
||||
const $6d129ebf064c486f$export$c8b95ffeec50f24a = (string, search, position)=>{
|
||||
let currentPosition = position;
|
||||
let maxLoop = $6d129ebf064c486f$export$82eb5486fce3d340;
|
||||
do {
|
||||
const all = search.map((v)=>string.indexOf(v, currentPosition));
|
||||
all.push(string.indexOf('\\', currentPosition));
|
||||
const foundAll = all.filter((v)=>v !== -1);
|
||||
if (foundAll.length === 0) return -1;
|
||||
const found = Math.min(...foundAll);
|
||||
if (string[found] === '\\') {
|
||||
currentPosition = found + 2;
|
||||
maxLoop--;
|
||||
} else return found;
|
||||
}while (maxLoop > 0);
|
||||
throw new Error('Too many escaping');
|
||||
};
|
||||
const $6d129ebf064c486f$export$b8d42a8583d2e477 = (string, search, position)=>{
|
||||
let currentSearchPosition = position;
|
||||
let maxLoop = $6d129ebf064c486f$export$82eb5486fce3d340;
|
||||
do {
|
||||
const all = search.map((v)=>string.indexOf(v, currentSearchPosition));
|
||||
all.push(string.indexOf('(', currentSearchPosition));
|
||||
all.push(string.indexOf('"', currentSearchPosition));
|
||||
all.push(string.indexOf("'", currentSearchPosition));
|
||||
all.push(string.indexOf('\\', currentSearchPosition));
|
||||
const foundAll = all.filter((v)=>v !== -1);
|
||||
if (foundAll.length === 0) return -1;
|
||||
const firstMatchPos = Math.min(...foundAll);
|
||||
const char = string[firstMatchPos];
|
||||
switch(char){
|
||||
case '\\':
|
||||
currentSearchPosition = firstMatchPos + 2;
|
||||
break;
|
||||
case '(':
|
||||
{
|
||||
const endPosition = $6d129ebf064c486f$export$b8d42a8583d2e477(string, [
|
||||
')'
|
||||
], firstMatchPos + 1);
|
||||
if (endPosition === -1) return -1;
|
||||
currentSearchPosition = endPosition + 1;
|
||||
}
|
||||
break;
|
||||
case '"':
|
||||
{
|
||||
const endQuotePosition = $6d129ebf064c486f$export$c8b95ffeec50f24a(string, [
|
||||
'"'
|
||||
], firstMatchPos + 1);
|
||||
if (endQuotePosition === -1) return -1;
|
||||
currentSearchPosition = endQuotePosition + 1;
|
||||
}
|
||||
break;
|
||||
case "'":
|
||||
{
|
||||
const endQuotePosition = $6d129ebf064c486f$export$c8b95ffeec50f24a(string, [
|
||||
"'"
|
||||
], firstMatchPos + 1);
|
||||
if (endQuotePosition === -1) return -1;
|
||||
currentSearchPosition = endQuotePosition + 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return firstMatchPos;
|
||||
}
|
||||
maxLoop--;
|
||||
}while (maxLoop > 0);
|
||||
throw new Error('Too many escaping');
|
||||
};
|
||||
const $6d129ebf064c486f$export$801dd37ac183521b = (string, search)=>{
|
||||
const result = [];
|
||||
let currentPosition = 0;
|
||||
while(currentPosition < string.length){
|
||||
const index = $6d129ebf064c486f$export$b8d42a8583d2e477(string, search, currentPosition);
|
||||
if (index === -1) {
|
||||
result.push(string.substring(currentPosition));
|
||||
return result;
|
||||
}
|
||||
result.push(string.substring(currentPosition, index));
|
||||
currentPosition = index + 1;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
|
||||
// http://www.w3.org/TR/CSS21/grammar.html
|
||||
// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027
|
||||
// New rule => https://www.w3.org/TR/CSS22/syndata.html#comments
|
||||
// [^] is equivalent to [.\n\r]
|
||||
const $d708735ed1303b43$var$commentre = /\/\*[^]*?(?:\*\/|$)/g;
|
||||
const $d708735ed1303b43$export$98e6a39c04603d36 = (css, options)=>{
|
||||
options = options || {};
|
||||
/**
|
||||
* Positional.
|
||||
*/ let lineno = 1;
|
||||
let column = 1;
|
||||
/**
|
||||
* Update lineno and column based on `str`.
|
||||
*/ function updatePosition(str) {
|
||||
const lines = str.match(/\n/g);
|
||||
if (lines) lineno += lines.length;
|
||||
const i = str.lastIndexOf('\n');
|
||||
column = ~i ? str.length - i : column + str.length;
|
||||
}
|
||||
/**
|
||||
* Mark position and patch `node.position`.
|
||||
*/ function position() {
|
||||
const start = {
|
||||
line: lineno,
|
||||
column: column
|
||||
};
|
||||
return function(node) {
|
||||
node.position = new (0, $0865a9fb4cc365fe$export$2e2bcd8739ae039)(start, {
|
||||
line: lineno,
|
||||
column: column
|
||||
}, options?.source || '');
|
||||
whitespace();
|
||||
return node;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Error `msg`.
|
||||
*/ const errorsList = [];
|
||||
function error(msg) {
|
||||
const err = new (0, $009ddb00d3ec72b8$export$2e2bcd8739ae039)(options?.source || '', msg, lineno, column, css);
|
||||
if (options?.silent) errorsList.push(err);
|
||||
else throw err;
|
||||
}
|
||||
/**
|
||||
* Parse stylesheet.
|
||||
*/ function stylesheet() {
|
||||
const rulesList = rules();
|
||||
const result = {
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).stylesheet,
|
||||
stylesheet: {
|
||||
source: options?.source,
|
||||
rules: rulesList,
|
||||
parsingErrors: errorsList
|
||||
}
|
||||
};
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Opening brace.
|
||||
*/ function open() {
|
||||
const openMatch = /^{\s*/.exec(css);
|
||||
if (openMatch) {
|
||||
processMatch(openMatch);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Closing brace.
|
||||
*/ function close() {
|
||||
const closeMatch = /^}/.exec(css);
|
||||
if (closeMatch) {
|
||||
processMatch(closeMatch);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Parse ruleset.
|
||||
*/ function rules() {
|
||||
let node;
|
||||
const rules = [];
|
||||
whitespace();
|
||||
comments(rules);
|
||||
while(css.length && css.charAt(0) !== '}' && (node = atrule() || rule()))if (node) {
|
||||
rules.push(node);
|
||||
comments(rules);
|
||||
}
|
||||
return rules;
|
||||
}
|
||||
/**
|
||||
* Update position and css string. Return the matches
|
||||
*/ function processMatch(m) {
|
||||
const str = m[0];
|
||||
updatePosition(str);
|
||||
css = css.slice(str.length);
|
||||
return m;
|
||||
}
|
||||
/**
|
||||
* Parse whitespace.
|
||||
*/ function whitespace() {
|
||||
const m = /^\s*/.exec(css);
|
||||
if (m) processMatch(m);
|
||||
}
|
||||
/**
|
||||
* Parse comments;
|
||||
*/ function comments(rules) {
|
||||
let c;
|
||||
rules = rules || [];
|
||||
while(c = comment())if (c) rules.push(c);
|
||||
return rules;
|
||||
}
|
||||
/**
|
||||
* Parse comment.
|
||||
*/ function comment() {
|
||||
const pos = position();
|
||||
if ('/' !== css.charAt(0) || '*' !== css.charAt(1)) return;
|
||||
const m = /^\/\*[^]*?\*\//.exec(css);
|
||||
if (!m) return error('End of comment missing');
|
||||
processMatch(m);
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).comment,
|
||||
comment: m[0].slice(2, -2)
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse selector.
|
||||
*/ function selector() {
|
||||
const m = /^([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
// remove comment in selector;
|
||||
const res = $d708735ed1303b43$var$trim(m[0]).replace($d708735ed1303b43$var$commentre, '');
|
||||
return (0, $6d129ebf064c486f$export$801dd37ac183521b)(res, [
|
||||
','
|
||||
]).map((v)=>$d708735ed1303b43$var$trim(v));
|
||||
}
|
||||
/**
|
||||
* Parse declaration.
|
||||
*/ function declaration() {
|
||||
const pos = position();
|
||||
// prop
|
||||
const propMatch = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/.exec(css);
|
||||
if (!propMatch) return;
|
||||
processMatch(propMatch);
|
||||
const propValue = $d708735ed1303b43$var$trim(propMatch[0]);
|
||||
// :
|
||||
const sepratotorMatch = /^:\s*/.exec(css);
|
||||
if (!sepratotorMatch) return error("property missing ':'");
|
||||
processMatch(sepratotorMatch);
|
||||
// val
|
||||
let value = '';
|
||||
const endValuePosition = (0, $6d129ebf064c486f$export$b8d42a8583d2e477)(css, [
|
||||
';',
|
||||
'}'
|
||||
]);
|
||||
if (endValuePosition !== -1) {
|
||||
value = css.substring(0, endValuePosition);
|
||||
const fakeMatch = [
|
||||
value
|
||||
];
|
||||
processMatch(fakeMatch);
|
||||
value = $d708735ed1303b43$var$trim(value).replace($d708735ed1303b43$var$commentre, '');
|
||||
}
|
||||
const ret = pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).declaration,
|
||||
property: propValue.replace($d708735ed1303b43$var$commentre, ''),
|
||||
value: value
|
||||
});
|
||||
// ;
|
||||
const endMatch = /^[;\s]*/.exec(css);
|
||||
if (endMatch) processMatch(endMatch);
|
||||
return ret;
|
||||
}
|
||||
/**
|
||||
* Parse declarations.
|
||||
*/ function declarations() {
|
||||
const decls = [];
|
||||
if (!open()) return error("missing '{'");
|
||||
comments(decls);
|
||||
// declarations
|
||||
let decl;
|
||||
while(decl = declaration())if (decl) {
|
||||
decls.push(decl);
|
||||
comments(decls);
|
||||
}
|
||||
if (!close()) return error("missing '}'");
|
||||
return decls;
|
||||
}
|
||||
/**
|
||||
* Parse keyframe.
|
||||
*/ function keyframe() {
|
||||
let m;
|
||||
const vals = [];
|
||||
const pos = position();
|
||||
while(m = /^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/.exec(css)){
|
||||
const res = processMatch(m);
|
||||
vals.push(res[1]);
|
||||
const spacesMatch = /^,\s*/.exec(css);
|
||||
if (spacesMatch) processMatch(spacesMatch);
|
||||
}
|
||||
if (!vals.length) return;
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframe,
|
||||
values: vals,
|
||||
declarations: declarations() || []
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse keyframes.
|
||||
*/ function atkeyframes() {
|
||||
const pos = position();
|
||||
const m1 = /^@([-\w]+)?keyframes\s*/.exec(css);
|
||||
if (!m1) return;
|
||||
const vendor = processMatch(m1)[1];
|
||||
// identifier
|
||||
const m2 = /^([-\w]+)\s*/.exec(css);
|
||||
if (!m2) return error('@keyframes missing name');
|
||||
const name = processMatch(m2)[1];
|
||||
if (!open()) return error("@keyframes missing '{'");
|
||||
let frame;
|
||||
let frames = comments();
|
||||
while(frame = keyframe()){
|
||||
frames.push(frame);
|
||||
frames = frames.concat(comments());
|
||||
}
|
||||
if (!close()) return error("@keyframes missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframes,
|
||||
name: name,
|
||||
vendor: vendor,
|
||||
keyframes: frames
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse supports.
|
||||
*/ function atsupports() {
|
||||
const pos = position();
|
||||
const m = /^@supports *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const supports = $d708735ed1303b43$var$trim(processMatch(m)[1]);
|
||||
if (!open()) return error("@supports missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@supports missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).supports,
|
||||
supports: supports,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse host.
|
||||
*/ function athost() {
|
||||
const pos = position();
|
||||
const m = /^@host\s*/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
if (!open()) return error("@host missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@host missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).host,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse container.
|
||||
*/ function atcontainer() {
|
||||
const pos = position();
|
||||
const m = /^@container *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const container = $d708735ed1303b43$var$trim(processMatch(m)[1]);
|
||||
if (!open()) return error("@container missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@container missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).container,
|
||||
container: container,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse container.
|
||||
*/ function atlayer() {
|
||||
const pos = position();
|
||||
const m = /^@layer *([^{;@]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const layer = $d708735ed1303b43$var$trim(processMatch(m)[1]);
|
||||
if (!open()) {
|
||||
const m2 = /^[;\s]*/.exec(css);
|
||||
if (m2) processMatch(m2);
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer,
|
||||
layer: layer
|
||||
});
|
||||
}
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@layer missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer,
|
||||
layer: layer,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse media.
|
||||
*/ function atmedia() {
|
||||
const pos = position();
|
||||
const m = /^@media *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const media = $d708735ed1303b43$var$trim(processMatch(m)[1]);
|
||||
if (!open()) return error("@media missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@media missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).media,
|
||||
media: media,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse custom-media.
|
||||
*/ function atcustommedia() {
|
||||
const pos = position();
|
||||
const m = /^@custom-media\s+(--\S+)\s+([^{;\s][^{;]*);/.exec(css);
|
||||
if (!m) return;
|
||||
const res = processMatch(m);
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).customMedia,
|
||||
name: $d708735ed1303b43$var$trim(res[1]),
|
||||
media: $d708735ed1303b43$var$trim(res[2])
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse paged media.
|
||||
*/ function atpage() {
|
||||
const pos = position();
|
||||
const m = /^@page */.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
const sel = selector() || [];
|
||||
if (!open()) return error("@page missing '{'");
|
||||
let decls = comments();
|
||||
// declarations
|
||||
let decl;
|
||||
while(decl = declaration()){
|
||||
decls.push(decl);
|
||||
decls = decls.concat(comments());
|
||||
}
|
||||
if (!close()) return error("@page missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).page,
|
||||
selectors: sel,
|
||||
declarations: decls
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse document.
|
||||
*/ function atdocument() {
|
||||
const pos = position();
|
||||
const m = /^@([-\w]+)?document *([^{]+)/.exec(css);
|
||||
if (!m) return;
|
||||
const res = processMatch(m);
|
||||
const vendor = $d708735ed1303b43$var$trim(res[1]);
|
||||
const doc = $d708735ed1303b43$var$trim(res[2]);
|
||||
if (!open()) return error("@document missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@document missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).document,
|
||||
document: doc,
|
||||
vendor: vendor,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse font-face.
|
||||
*/ function atfontface() {
|
||||
const pos = position();
|
||||
const m = /^@font-face\s*/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
if (!open()) return error("@font-face missing '{'");
|
||||
let decls = comments();
|
||||
// declarations
|
||||
let decl;
|
||||
while(decl = declaration()){
|
||||
decls.push(decl);
|
||||
decls = decls.concat(comments());
|
||||
}
|
||||
if (!close()) return error("@font-face missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).fontFace,
|
||||
declarations: decls
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse starting style.
|
||||
*/ function atstartingstyle() {
|
||||
const pos = position();
|
||||
const m = /^@starting-style\s*/.exec(css);
|
||||
if (!m) return;
|
||||
processMatch(m);
|
||||
if (!open()) return error("@starting-style missing '{'");
|
||||
const style = comments().concat(rules());
|
||||
if (!close()) return error("@starting-style missing '}'");
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).startingStyle,
|
||||
rules: style
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Parse import
|
||||
*/ const atimport = _compileAtrule('import');
|
||||
/**
|
||||
* Parse charset
|
||||
*/ const atcharset = _compileAtrule('charset');
|
||||
/**
|
||||
* Parse namespace
|
||||
*/ const atnamespace = _compileAtrule('namespace');
|
||||
/**
|
||||
* Parse non-block at-rules
|
||||
*/ function _compileAtrule(name) {
|
||||
const re = new RegExp('^@' + name + '\\s*((?::?[^;\'"]|"(?:\\\\"|[^"])*?"|\'(?:\\\\\'|[^\'])*?\')+)(?:;|$)');
|
||||
// ^@import\s*([^;"']|("|')(?:\\\2|.)*?\2)+(;|$)
|
||||
return function() {
|
||||
const pos = position();
|
||||
const m = re.exec(css);
|
||||
if (!m) return;
|
||||
const res = processMatch(m);
|
||||
const ret = {
|
||||
type: name
|
||||
};
|
||||
ret[name] = res[1].trim();
|
||||
return pos(ret);
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Parse at rule.
|
||||
*/ function atrule() {
|
||||
if (css[0] !== '@') return;
|
||||
return atkeyframes() || atmedia() || atcustommedia() || atsupports() || atimport() || atcharset() || atnamespace() || atdocument() || atpage() || athost() || atfontface() || atcontainer() || atstartingstyle() || atlayer();
|
||||
}
|
||||
/**
|
||||
* Parse rule.
|
||||
*/ function rule() {
|
||||
const pos = position();
|
||||
const sel = selector();
|
||||
if (!sel) return error('selector missing');
|
||||
comments();
|
||||
return pos({
|
||||
type: (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).rule,
|
||||
selectors: sel,
|
||||
declarations: declarations() || []
|
||||
});
|
||||
}
|
||||
return $d708735ed1303b43$var$addParent(stylesheet());
|
||||
};
|
||||
/**
|
||||
* Trim `str`.
|
||||
*/ function $d708735ed1303b43$var$trim(str) {
|
||||
return str ? str.trim() : '';
|
||||
}
|
||||
/**
|
||||
* Adds non-enumerable parent node reference to each node.
|
||||
*/ function $d708735ed1303b43$var$addParent(obj, parent) {
|
||||
const isNode = obj && typeof obj.type === 'string';
|
||||
const childParent = isNode ? obj : parent;
|
||||
for(const k in obj){
|
||||
const value = obj[k];
|
||||
if (Array.isArray(value)) value.forEach((v)=>{
|
||||
$d708735ed1303b43$var$addParent(v, childParent);
|
||||
});
|
||||
else if (value && typeof value === 'object') $d708735ed1303b43$var$addParent(value, childParent);
|
||||
}
|
||||
if (isNode) Object.defineProperty(obj, 'parent', {
|
||||
configurable: true,
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
value: parent || null
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
var $d708735ed1303b43$export$2e2bcd8739ae039 = $d708735ed1303b43$export$98e6a39c04603d36;
|
||||
|
||||
|
||||
|
||||
class $de9540138ed1fd01$var$Compiler {
|
||||
constructor(options){
|
||||
this.level = 0;
|
||||
this.indentation = ' ';
|
||||
this.compress = false;
|
||||
if (typeof options?.indent === 'string') this.indentation = options?.indent;
|
||||
if (options?.compress) this.compress = true;
|
||||
}
|
||||
// We disable no-unused-vars for _position. We keep position for potential reintroduction of source-map
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
emit(str, _position) {
|
||||
return str;
|
||||
}
|
||||
/**
|
||||
* Increase, decrease or return current indentation.
|
||||
*/ indent(level) {
|
||||
this.level = this.level || 1;
|
||||
if (level) {
|
||||
this.level += level;
|
||||
return '';
|
||||
}
|
||||
return Array(this.level).join(this.indentation);
|
||||
}
|
||||
visit(node) {
|
||||
switch(node.type){
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).stylesheet:
|
||||
return this.stylesheet(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).rule:
|
||||
return this.rule(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).declaration:
|
||||
return this.declaration(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).comment:
|
||||
return this.comment(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).container:
|
||||
return this.container(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).charset:
|
||||
return this.charset(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).document:
|
||||
return this.document(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).customMedia:
|
||||
return this.customMedia(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).fontFace:
|
||||
return this.fontFace(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).host:
|
||||
return this.host(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).import:
|
||||
return this.import(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframes:
|
||||
return this.keyframes(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).keyframe:
|
||||
return this.keyframe(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).layer:
|
||||
return this.layer(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).media:
|
||||
return this.media(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).namespace:
|
||||
return this.namespace(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).page:
|
||||
return this.page(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).startingStyle:
|
||||
return this.startingStyle(node);
|
||||
case (0, $b2e137848b48cf4f$export$9be5dd6e61d5d73a).supports:
|
||||
return this.supports(node);
|
||||
}
|
||||
}
|
||||
mapVisit(nodes, delim) {
|
||||
let buf = '';
|
||||
delim = delim || '';
|
||||
for(let i = 0, length = nodes.length; i < length; i++){
|
||||
buf += this.visit(nodes[i]);
|
||||
if (delim && i < length - 1) buf += this.emit(delim);
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
compile(node) {
|
||||
if (this.compress) return node.stylesheet.rules.map(this.visit, this).join('');
|
||||
return this.stylesheet(node);
|
||||
}
|
||||
/**
|
||||
* Visit stylesheet node.
|
||||
*/ stylesheet(node) {
|
||||
return this.mapVisit(node.stylesheet.rules, '\n\n');
|
||||
}
|
||||
/**
|
||||
* Visit comment node.
|
||||
*/ comment(node) {
|
||||
if (this.compress) return this.emit('', node.position);
|
||||
return this.emit(this.indent() + '/*' + node.comment + '*/', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit container node.
|
||||
*/ container(node) {
|
||||
if (this.compress) return this.emit('@container ' + node.container, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@container ' + node.container, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit container node.
|
||||
*/ layer(node) {
|
||||
if (this.compress) return this.emit('@layer ' + node.layer, node.position) + (node.rules ? this.emit('{') + this.mapVisit(node.rules) + this.emit('}') : ';');
|
||||
return this.emit(this.indent() + '@layer ' + node.layer, node.position) + (node.rules ? this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}') : ';');
|
||||
}
|
||||
/**
|
||||
* Visit import node.
|
||||
*/ import(node) {
|
||||
return this.emit('@import ' + node.import + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit media node.
|
||||
*/ media(node) {
|
||||
if (this.compress) return this.emit('@media ' + node.media, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@media ' + node.media, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit document node.
|
||||
*/ document(node) {
|
||||
const doc = '@' + (node.vendor || '') + 'document ' + node.document;
|
||||
if (this.compress) return this.emit(doc, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(doc, node.position) + this.emit(" {\n" + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}');
|
||||
}
|
||||
/**
|
||||
* Visit charset node.
|
||||
*/ charset(node) {
|
||||
return this.emit('@charset ' + node.charset + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit namespace node.
|
||||
*/ namespace(node) {
|
||||
return this.emit('@namespace ' + node.namespace + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit container node.
|
||||
*/ startingStyle(node) {
|
||||
if (this.compress) return this.emit('@starting-style', node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@starting-style', node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit supports node.
|
||||
*/ supports(node) {
|
||||
if (this.compress) return this.emit('@supports ' + node.supports, node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit(this.indent() + '@supports ' + node.supports, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit('\n' + this.indent(-1) + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit keyframes node.
|
||||
*/ keyframes(node) {
|
||||
if (this.compress) return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit('{') + this.mapVisit(node.keyframes) + this.emit('}');
|
||||
return this.emit('@' + (node.vendor || '') + 'keyframes ' + node.name, node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.keyframes, '\n') + this.emit(this.indent(-1) + '}');
|
||||
}
|
||||
/**
|
||||
* Visit keyframe node.
|
||||
*/ keyframe(node) {
|
||||
const decls = node.declarations;
|
||||
if (this.compress) return this.emit(node.values.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}');
|
||||
return this.emit(this.indent()) + this.emit(node.values.join(', '), node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(decls, '\n') + this.emit(this.indent(-1) + '\n' + this.indent() + '}\n');
|
||||
}
|
||||
/**
|
||||
* Visit page node.
|
||||
*/ page(node) {
|
||||
if (this.compress) {
|
||||
const sel = node.selectors.length ? node.selectors.join(', ') : '';
|
||||
return this.emit('@page ' + sel, node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}');
|
||||
}
|
||||
const sel = node.selectors.length ? node.selectors.join(', ') + ' ' : '';
|
||||
return this.emit('@page ' + sel, node.position) + this.emit('{\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\n') + this.emit(this.indent(-1)) + this.emit('\n}');
|
||||
}
|
||||
/**
|
||||
* Visit font-face node.
|
||||
*/ fontFace(node) {
|
||||
if (this.compress) return this.emit('@font-face', node.position) + this.emit('{') + this.mapVisit(node.declarations) + this.emit('}');
|
||||
return this.emit('@font-face ', node.position) + this.emit('{\n') + this.emit(this.indent(1)) + this.mapVisit(node.declarations, '\n') + this.emit(this.indent(-1)) + this.emit('\n}');
|
||||
}
|
||||
/**
|
||||
* Visit host node.
|
||||
*/ host(node) {
|
||||
if (this.compress) return this.emit('@host', node.position) + this.emit('{') + this.mapVisit(node.rules) + this.emit('}');
|
||||
return this.emit('@host', node.position) + this.emit(' {\n' + this.indent(1)) + this.mapVisit(node.rules, '\n\n') + this.emit(this.indent(-1) + '\n}');
|
||||
}
|
||||
/**
|
||||
* Visit custom-media node.
|
||||
*/ customMedia(node) {
|
||||
return this.emit('@custom-media ' + node.name + ' ' + node.media + ';', node.position);
|
||||
}
|
||||
/**
|
||||
* Visit rule node.
|
||||
*/ rule(node) {
|
||||
const decls = node.declarations;
|
||||
if (!decls.length) return '';
|
||||
if (this.compress) return this.emit(node.selectors.join(','), node.position) + this.emit('{') + this.mapVisit(decls) + this.emit('}');
|
||||
const indent = this.indent();
|
||||
return this.emit(node.selectors.map((s)=>{
|
||||
return indent + s;
|
||||
}).join(',\n'), node.position) + this.emit(' {\n') + this.emit(this.indent(1)) + this.mapVisit(decls, '\n') + this.emit(this.indent(-1)) + this.emit('\n' + this.indent() + '}');
|
||||
}
|
||||
/**
|
||||
* Visit declaration node.
|
||||
*/ declaration(node) {
|
||||
if (this.compress) return this.emit(node.property + ':' + node.value, node.position) + this.emit(';');
|
||||
if (node.property === 'grid-template-areas') return this.emit(this.indent()) + this.emit(node.property + ': ' + node.value.split('\n').join('\n'.padEnd(22) + this.indent()), node.position) + this.emit(';');
|
||||
return this.emit(this.indent()) + this.emit(node.property + ': ' + node.value, node.position) + this.emit(';');
|
||||
}
|
||||
}
|
||||
var $de9540138ed1fd01$export$2e2bcd8739ae039 = $de9540138ed1fd01$var$Compiler;
|
||||
|
||||
|
||||
var $fdf773ab87e20450$export$2e2bcd8739ae039 = (node, options)=>{
|
||||
const compiler = new (0, $de9540138ed1fd01$export$2e2bcd8739ae039)(options || {});
|
||||
return compiler.compile(node);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const $149c1bd638913645$export$98e6a39c04603d36 = (0, $d708735ed1303b43$export$2e2bcd8739ae039);
|
||||
const $149c1bd638913645$export$fac44ee5b035f737 = (0, $fdf773ab87e20450$export$2e2bcd8739ae039);
|
||||
var $149c1bd638913645$export$2e2bcd8739ae039 = {
|
||||
parse: $149c1bd638913645$export$98e6a39c04603d36,
|
||||
stringify: $149c1bd638913645$export$fac44ee5b035f737
|
||||
};
|
||||
|
||||
|
||||
export {$149c1bd638913645$export$98e6a39c04603d36 as parse, $149c1bd638913645$export$fac44ee5b035f737 as stringify, $149c1bd638913645$export$2e2bcd8739ae039 as default, $b2e137848b48cf4f$export$9be5dd6e61d5d73a as CssTypes};
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
frontend/node_modules/@adobe/css-tools/dist/index.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/@adobe/css-tools/dist/index.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
171
frontend/node_modules/@adobe/css-tools/dist/types.d.ts
generated
vendored
Normal file
171
frontend/node_modules/@adobe/css-tools/dist/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
declare class CssParseError extends Error {
|
||||
readonly reason: string;
|
||||
readonly filename?: string;
|
||||
readonly line: number;
|
||||
readonly column: number;
|
||||
readonly source: string;
|
||||
constructor(filename: string, msg: string, lineno: number, column: number, css: string);
|
||||
}
|
||||
/**
|
||||
* Store position information for a node
|
||||
*/
|
||||
declare class Position {
|
||||
start: {
|
||||
line: number;
|
||||
column: number;
|
||||
};
|
||||
end: {
|
||||
line: number;
|
||||
column: number;
|
||||
};
|
||||
source?: string;
|
||||
constructor(start: {
|
||||
line: number;
|
||||
column: number;
|
||||
}, end: {
|
||||
line: number;
|
||||
column: number;
|
||||
}, source: string);
|
||||
}
|
||||
export enum CssTypes {
|
||||
stylesheet = "stylesheet",
|
||||
rule = "rule",
|
||||
declaration = "declaration",
|
||||
comment = "comment",
|
||||
container = "container",
|
||||
charset = "charset",
|
||||
document = "document",
|
||||
customMedia = "custom-media",
|
||||
fontFace = "font-face",
|
||||
host = "host",
|
||||
import = "import",
|
||||
keyframes = "keyframes",
|
||||
keyframe = "keyframe",
|
||||
layer = "layer",
|
||||
media = "media",
|
||||
namespace = "namespace",
|
||||
page = "page",
|
||||
startingStyle = "starting-style",
|
||||
supports = "supports"
|
||||
}
|
||||
export type CssCommonAST = {
|
||||
type: CssTypes;
|
||||
};
|
||||
export type CssCommonPositionAST = CssCommonAST & {
|
||||
position?: Position;
|
||||
parent?: unknown;
|
||||
};
|
||||
export type CssStylesheetAST = CssCommonAST & {
|
||||
type: CssTypes.stylesheet;
|
||||
stylesheet: {
|
||||
source?: string;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
parsingErrors?: Array<CssParseError>;
|
||||
};
|
||||
};
|
||||
export type CssRuleAST = CssCommonPositionAST & {
|
||||
type: CssTypes.rule;
|
||||
selectors: Array<string>;
|
||||
declarations: Array<CssDeclarationAST | CssCommentAST>;
|
||||
};
|
||||
export type CssDeclarationAST = CssCommonPositionAST & {
|
||||
type: CssTypes.declaration;
|
||||
property: string;
|
||||
value: string;
|
||||
};
|
||||
export type CssCommentAST = CssCommonPositionAST & {
|
||||
type: CssTypes.comment;
|
||||
comment: string;
|
||||
};
|
||||
export type CssContainerAST = CssCommonPositionAST & {
|
||||
type: CssTypes.container;
|
||||
container: string;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssCharsetAST = CssCommonPositionAST & {
|
||||
type: CssTypes.charset;
|
||||
charset: string;
|
||||
};
|
||||
export type CssCustomMediaAST = CssCommonPositionAST & {
|
||||
type: CssTypes.customMedia;
|
||||
name: string;
|
||||
media: string;
|
||||
};
|
||||
export type CssDocumentAST = CssCommonPositionAST & {
|
||||
type: CssTypes.document;
|
||||
document: string;
|
||||
vendor?: string;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssFontFaceAST = CssCommonPositionAST & {
|
||||
type: CssTypes.fontFace;
|
||||
declarations: Array<CssDeclarationAST | CssCommentAST>;
|
||||
};
|
||||
export type CssHostAST = CssCommonPositionAST & {
|
||||
type: CssTypes.host;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssImportAST = CssCommonPositionAST & {
|
||||
type: CssTypes.import;
|
||||
import: string;
|
||||
};
|
||||
export type CssKeyframesAST = CssCommonPositionAST & {
|
||||
type: CssTypes.keyframes;
|
||||
name: string;
|
||||
vendor?: string;
|
||||
keyframes: Array<CssKeyframeAST | CssCommentAST>;
|
||||
};
|
||||
export type CssKeyframeAST = CssCommonPositionAST & {
|
||||
type: CssTypes.keyframe;
|
||||
values: Array<string>;
|
||||
declarations: Array<CssDeclarationAST | CssCommentAST>;
|
||||
};
|
||||
export type CssLayerAST = CssCommonPositionAST & {
|
||||
type: CssTypes.layer;
|
||||
layer: string;
|
||||
rules?: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssMediaAST = CssCommonPositionAST & {
|
||||
type: CssTypes.media;
|
||||
media: string;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssNamespaceAST = CssCommonPositionAST & {
|
||||
type: CssTypes.namespace;
|
||||
namespace: string;
|
||||
};
|
||||
export type CssPageAST = CssCommonPositionAST & {
|
||||
type: CssTypes.page;
|
||||
selectors: Array<string>;
|
||||
declarations: Array<CssDeclarationAST | CssCommentAST>;
|
||||
};
|
||||
export type CssSupportsAST = CssCommonPositionAST & {
|
||||
type: CssTypes.supports;
|
||||
supports: string;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssStartingStyleAST = CssCommonPositionAST & {
|
||||
type: CssTypes.startingStyle;
|
||||
rules: Array<CssAtRuleAST>;
|
||||
};
|
||||
export type CssAtRuleAST = CssRuleAST | CssCommentAST | CssContainerAST | CssCharsetAST | CssCustomMediaAST | CssDocumentAST | CssFontFaceAST | CssHostAST | CssImportAST | CssKeyframesAST | CssLayerAST | CssMediaAST | CssNamespaceAST | CssPageAST | CssSupportsAST | CssStartingStyleAST;
|
||||
export type CssAllNodesAST = CssAtRuleAST | CssStylesheetAST | CssDeclarationAST | CssKeyframeAST;
|
||||
type CompilerOptions = {
|
||||
indent?: string;
|
||||
compress?: boolean;
|
||||
};
|
||||
export const parse: (css: string, options?: {
|
||||
source?: string;
|
||||
silent?: boolean;
|
||||
}) => CssStylesheetAST;
|
||||
export const stringify: (node: CssStylesheetAST, options?: CompilerOptions) => string;
|
||||
declare const _default: {
|
||||
parse: (css: string, options?: {
|
||||
source?: string;
|
||||
silent?: boolean;
|
||||
}) => CssStylesheetAST;
|
||||
stringify: (node: CssStylesheetAST, options?: CompilerOptions) => string;
|
||||
};
|
||||
export default _default;
|
||||
|
||||
//# sourceMappingURL=types.d.ts.map
|
||||
1
frontend/node_modules/@adobe/css-tools/dist/types.d.ts.map
generated
vendored
Normal file
1
frontend/node_modules/@adobe/css-tools/dist/types.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"mappings":"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","sources":["src/src/CssParseError.ts","src/src/CssPosition.ts","src/src/type.ts","src/src/utils/stringSearch.ts","src/src/parse/index.ts","src/src/stringify/compiler.ts","src/src/stringify/index.ts","src/src/index.ts","src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,"import {default as parseFn} from './parse';\nimport {default as stringifyFn} from './stringify';\nexport const parse = parseFn;\nexport const stringify = stringifyFn;\nexport * from './type';\nexport * from './CssParseError';\nexport * from './CssPosition';\nexport default {parse, stringify};\n"],"names":[],"version":3,"file":"types.d.ts.map"}
|
||||
61
frontend/node_modules/@adobe/css-tools/package.json
generated
vendored
Normal file
61
frontend/node_modules/@adobe/css-tools/package.json
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"name": "@adobe/css-tools",
|
||||
"version": "4.4.3",
|
||||
"description": "CSS parser / stringifier",
|
||||
"source": "src/index.ts",
|
||||
"main": "./dist/index.cjs",
|
||||
"module": "./dist/index.mjs",
|
||||
"exports": {
|
||||
"import": "./dist/index.mjs",
|
||||
"types": "./dist/types.d.ts",
|
||||
"require": "./dist/index.cjs"
|
||||
},
|
||||
"types": "./dist/types.d.ts",
|
||||
"type": "module",
|
||||
"files": [
|
||||
"dist",
|
||||
"Readme.md"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@parcel/packager-ts": "2.15.0",
|
||||
"@parcel/transformer-typescript-types": "2.15.0",
|
||||
"@types/benchmark": "^2.1.1",
|
||||
"@types/bytes": "^3.1.5",
|
||||
"@types/jest": "^29.5.3",
|
||||
"@types/node": "^22.15.18",
|
||||
"benchmark": "^2.1.4",
|
||||
"bytes": "^3.1.0",
|
||||
"gts": "^6.0.2",
|
||||
"jest": "^29.6.2",
|
||||
"parcel": "^2.15.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"typescript": "^5.7.3"
|
||||
},
|
||||
"scripts": {
|
||||
"benchmark": "node benchmark/index.mjs",
|
||||
"test": "jest",
|
||||
"clean": "gts clean && rm -rf ./dist",
|
||||
"build": "parcel build && node ./utils/fix-type-generation.cjs",
|
||||
"fix": "gts fix",
|
||||
"lint": "gts lint",
|
||||
"prepack": "npm run build",
|
||||
"prepare": "npm run build",
|
||||
"pretest": "npm run build",
|
||||
"posttest": "npm run lint"
|
||||
},
|
||||
"author": "TJ Holowaychuk <tj@vision-media.ca>",
|
||||
"contributors": [
|
||||
"Jean-Philippe Zolesio <holblin@gmail.com>"
|
||||
],
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/adobe/css-tools.git"
|
||||
},
|
||||
"keywords": [
|
||||
"css",
|
||||
"parser",
|
||||
"stringifier",
|
||||
"stylesheet"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user