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:
anthonyrawlins
2025-07-11 14:06:34 +10:00
parent c6d69695a8
commit aacb45156b
6109 changed files with 777927 additions and 1 deletions

10
frontend/node_modules/@adobe/css-tools/LICENSE generated vendored Normal file
View 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
View 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
View 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

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
View 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

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
View 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

View File

@@ -0,0 +1 @@
{"mappings":"AAAA,2BAAmC,SAAQ,KAAK;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM;CASd;ACrBD;;GAEG;AACH;IACE,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;IACtC,GAAG,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;gBAGd,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,EACrC,GAAG,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,EACnC,MAAM,EAAE,MAAM;CAMjB;ACdD;IACE,UAAU,eAAe;IACzB,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;IAC5B,QAAQ,cAAc;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,aAAa,mBAAmB;IAChC,QAAQ,aAAa;CACtB;AAED,2BAA2B;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,mCAAmC,YAAY,GAAG;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,+BAA+B,YAAY,GAAG;IAC5C,IAAI,EAAE,SAAS,UAAU,CAAC;IAC1B,UAAU,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,yBAAyB,oBAAoB,GAAG;IAC9C,IAAI,EAAE,SAAS,IAAI,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AAEF,gCAAgC,oBAAoB,GAAG;IACrD,IAAI,EAAE,SAAS,WAAW,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,4BAA4B,oBAAoB,GAAG;IACjD,IAAI,EAAE,SAAS,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,8BAA8B,oBAAoB,GAAG;IACnD,IAAI,EAAE,SAAS,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAEF,4BAA4B,oBAAoB,GAAG;IACjD,IAAI,EAAE,SAAS,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,gCAAgC,oBAAoB,GAAG;IACrD,IAAI,EAAE,SAAS,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AACF,yBAAyB,oBAAoB,GAAG;IAC9C,IAAI,EAAE,SAAS,IAAI,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AACF,2BAA2B,oBAAoB,GAAG;IAChD,IAAI,EAAE,SAAS,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,8BAA8B,oBAAoB,GAAG;IACnD,IAAI,EAAE,SAAS,SAAS,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,CAAC;CAClD,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AACF,0BAA0B,oBAAoB,GAAG;IAC/C,IAAI,EAAE,SAAS,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC7B,CAAC;AACF,0BAA0B,oBAAoB,GAAG;IAC/C,IAAI,EAAE,SAAS,KAAK,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AACF,8BAA8B,oBAAoB,GAAG;IACnD,IAAI,EAAE,SAAS,SAAS,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,yBAAyB,oBAAoB,GAAG;IAC9C,IAAI,EAAE,SAAS,IAAI,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;CACxD,CAAC;AACF,6BAA6B,oBAAoB,GAAG;IAClD,IAAI,EAAE,SAAS,QAAQ,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAEF,kCAAkC,oBAAoB,GAAG;IACvD,IAAI,EAAE,SAAS,aAAa,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAEF,2BACI,UAAU,GACV,aAAa,GACb,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,UAAU,GACV,YAAY,GACZ,eAAe,GACf,WAAW,GACX,WAAW,GACX,eAAe,GACf,UAAU,GACV,cAAc,GACd,mBAAmB,CAAC;AAExB,6BACI,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAC;AGlInB,uBAA8B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AE1BF,OAAO,MAAM;UAMynB,CAAC;UAAgB,CAAC;sBAN5nB,CAAC;AAC7B,OAAO,MAAM,wEAAuB,CAAC;;;cAKimB,CAAC;cAAgB,CAAC;;;;AADxpB,wBAAkC","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
View 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"
]
}