aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/css-tree/lib/generator
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/css-tree/lib/generator')
-rw-r--r--vanilla/node_modules/css-tree/lib/generator/create.js97
-rw-r--r--vanilla/node_modules/css-tree/lib/generator/index.js4
-rw-r--r--vanilla/node_modules/css-tree/lib/generator/sourceMap.js92
-rw-r--r--vanilla/node_modules/css-tree/lib/generator/token-before.js182
4 files changed, 0 insertions, 375 deletions
diff --git a/vanilla/node_modules/css-tree/lib/generator/create.js b/vanilla/node_modules/css-tree/lib/generator/create.js
deleted file mode 100644
index c542f4f..0000000
--- a/vanilla/node_modules/css-tree/lib/generator/create.js
+++ /dev/null
@@ -1,97 +0,0 @@
-import { tokenize, Delim, WhiteSpace } from '../tokenizer/index.js';
-import { generateSourceMap } from './sourceMap.js';
-import * as tokenBefore from './token-before.js';
-
-const REVERSESOLIDUS = 0x005c; // U+005C REVERSE SOLIDUS (\)
-
-function processChildren(node, delimeter) {
- if (typeof delimeter === 'function') {
- let prev = null;
-
- node.children.forEach(node => {
- if (prev !== null) {
- delimeter.call(this, prev);
- }
-
- this.node(node);
- prev = node;
- });
-
- return;
- }
-
- node.children.forEach(this.node, this);
-}
-
-function processChunk(chunk) {
- tokenize(chunk, (type, start, end) => {
- this.token(type, chunk.slice(start, end));
- });
-}
-
-export function createGenerator(config) {
- const types = new Map();
-
- for (let [name, item] of Object.entries(config.node)) {
- const fn = item.generate || item;
-
- if (typeof fn === 'function') {
- types.set(name, item.generate || item);
- }
- }
-
- return function(node, options) {
- let buffer = '';
- let prevCode = 0;
- let handlers = {
- node(node) {
- if (types.has(node.type)) {
- types.get(node.type).call(publicApi, node);
- } else {
- throw new Error('Unknown node type: ' + node.type);
- }
- },
- tokenBefore: tokenBefore.safe,
- token(type, value) {
- prevCode = this.tokenBefore(prevCode, type, value);
-
- this.emit(value, type, false);
-
- if (type === Delim && value.charCodeAt(0) === REVERSESOLIDUS) {
- this.emit('\n', WhiteSpace, true);
- }
- },
- emit(value) {
- buffer += value;
- },
- result() {
- return buffer;
- }
- };
-
- if (options) {
- if (typeof options.decorator === 'function') {
- handlers = options.decorator(handlers);
- }
-
- if (options.sourceMap) {
- handlers = generateSourceMap(handlers);
- }
-
- if (options.mode in tokenBefore) {
- handlers.tokenBefore = tokenBefore[options.mode];
- }
- }
-
- const publicApi = {
- node: (node) => handlers.node(node),
- children: processChildren,
- token: (type, value) => handlers.token(type, value),
- tokenize: processChunk
- };
-
- handlers.node(node);
-
- return handlers.result();
- };
-};
diff --git a/vanilla/node_modules/css-tree/lib/generator/index.js b/vanilla/node_modules/css-tree/lib/generator/index.js
deleted file mode 100644
index dc05116..0000000
--- a/vanilla/node_modules/css-tree/lib/generator/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import { createGenerator } from './create.js';
-import config from '../syntax/config/generator.js';
-
-export default createGenerator(config);
diff --git a/vanilla/node_modules/css-tree/lib/generator/sourceMap.js b/vanilla/node_modules/css-tree/lib/generator/sourceMap.js
deleted file mode 100644
index 0c5ff27..0000000
--- a/vanilla/node_modules/css-tree/lib/generator/sourceMap.js
+++ /dev/null
@@ -1,92 +0,0 @@
-import { SourceMapGenerator } from 'source-map-js/lib/source-map-generator.js';
-
-const trackNodes = new Set(['Atrule', 'Selector', 'Declaration']);
-
-export function generateSourceMap(handlers) {
- const map = new SourceMapGenerator();
- const generated = {
- line: 1,
- column: 0
- };
- const original = {
- line: 0, // should be zero to add first mapping
- column: 0
- };
- const activatedGenerated = {
- line: 1,
- column: 0
- };
- const activatedMapping = {
- generated: activatedGenerated
- };
- let line = 1;
- let column = 0;
- let sourceMappingActive = false;
-
- const origHandlersNode = handlers.node;
- handlers.node = function(node) {
- if (node.loc && node.loc.start && trackNodes.has(node.type)) {
- const nodeLine = node.loc.start.line;
- const nodeColumn = node.loc.start.column - 1;
-
- if (original.line !== nodeLine ||
- original.column !== nodeColumn) {
- original.line = nodeLine;
- original.column = nodeColumn;
-
- generated.line = line;
- generated.column = column;
-
- if (sourceMappingActive) {
- sourceMappingActive = false;
- if (generated.line !== activatedGenerated.line ||
- generated.column !== activatedGenerated.column) {
- map.addMapping(activatedMapping);
- }
- }
-
- sourceMappingActive = true;
- map.addMapping({
- source: node.loc.source,
- original,
- generated
- });
- }
- }
-
- origHandlersNode.call(this, node);
-
- if (sourceMappingActive && trackNodes.has(node.type)) {
- activatedGenerated.line = line;
- activatedGenerated.column = column;
- }
- };
-
- const origHandlersEmit = handlers.emit;
- handlers.emit = function(value, type, auto) {
- for (let i = 0; i < value.length; i++) {
- if (value.charCodeAt(i) === 10) { // \n
- line++;
- column = 0;
- } else {
- column++;
- }
- }
-
- origHandlersEmit(value, type, auto);
- };
-
- const origHandlersResult = handlers.result;
- handlers.result = function() {
- if (sourceMappingActive) {
- map.addMapping(activatedMapping);
- }
-
- return {
- css: origHandlersResult(),
- map
- };
- };
-
- return handlers;
-};
diff --git a/vanilla/node_modules/css-tree/lib/generator/token-before.js b/vanilla/node_modules/css-tree/lib/generator/token-before.js
deleted file mode 100644
index da3fed0..0000000
--- a/vanilla/node_modules/css-tree/lib/generator/token-before.js
+++ /dev/null
@@ -1,182 +0,0 @@
-import {
- WhiteSpace,
- Delim,
- Ident,
- Function as FunctionToken,
- Url,
- BadUrl,
- AtKeyword,
- Hash,
- Percentage,
- Dimension,
- Number as NumberToken,
- String as StringToken,
- Colon,
- LeftParenthesis,
- RightParenthesis,
- CDC
-} from '../tokenizer/index.js';
-
-const PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)
-const HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)
-
-const code = (type, value) => {
- if (type === Delim) {
- type = value;
- }
-
- if (typeof type === 'string') {
- const charCode = type.charCodeAt(0);
- return charCode > 0x7F ? 0x8000 : charCode << 8;
- }
-
- return type;
-};
-
-// https://www.w3.org/TR/css-syntax-3/#serialization
-// The only requirement for serialization is that it must "round-trip" with parsing,
-// that is, parsing the stylesheet must produce the same data structures as parsing,
-// serializing, and parsing again, except for consecutive <whitespace-token>s,
-// which may be collapsed into a single token.
-
-const specPairs = [
- [Ident, Ident],
- [Ident, FunctionToken],
- [Ident, Url],
- [Ident, BadUrl],
- [Ident, '-'],
- [Ident, NumberToken],
- [Ident, Percentage],
- [Ident, Dimension],
- [Ident, CDC],
- [Ident, LeftParenthesis],
-
- [AtKeyword, Ident],
- [AtKeyword, FunctionToken],
- [AtKeyword, Url],
- [AtKeyword, BadUrl],
- [AtKeyword, '-'],
- [AtKeyword, NumberToken],
- [AtKeyword, Percentage],
- [AtKeyword, Dimension],
- [AtKeyword, CDC],
-
- [Hash, Ident],
- [Hash, FunctionToken],
- [Hash, Url],
- [Hash, BadUrl],
- [Hash, '-'],
- [Hash, NumberToken],
- [Hash, Percentage],
- [Hash, Dimension],
- [Hash, CDC],
-
- [Dimension, Ident],
- [Dimension, FunctionToken],
- [Dimension, Url],
- [Dimension, BadUrl],
- [Dimension, '-'],
- [Dimension, NumberToken],
- [Dimension, Percentage],
- [Dimension, Dimension],
- [Dimension, CDC],
-
- ['#', Ident],
- ['#', FunctionToken],
- ['#', Url],
- ['#', BadUrl],
- ['#', '-'],
- ['#', NumberToken],
- ['#', Percentage],
- ['#', Dimension],
- ['#', CDC], // https://github.com/w3c/csswg-drafts/pull/6874
-
- ['-', Ident],
- ['-', FunctionToken],
- ['-', Url],
- ['-', BadUrl],
- ['-', '-'],
- ['-', NumberToken],
- ['-', Percentage],
- ['-', Dimension],
- ['-', CDC], // https://github.com/w3c/csswg-drafts/pull/6874
-
- [NumberToken, Ident],
- [NumberToken, FunctionToken],
- [NumberToken, Url],
- [NumberToken, BadUrl],
- [NumberToken, NumberToken],
- [NumberToken, Percentage],
- [NumberToken, Dimension],
- [NumberToken, '%'],
- [NumberToken, CDC], // https://github.com/w3c/csswg-drafts/pull/6874
-
- ['@', Ident],
- ['@', FunctionToken],
- ['@', Url],
- ['@', BadUrl],
- ['@', '-'],
- ['@', CDC], // https://github.com/w3c/csswg-drafts/pull/6874
-
- ['.', NumberToken],
- ['.', Percentage],
- ['.', Dimension],
-
- ['+', NumberToken],
- ['+', Percentage],
- ['+', Dimension],
-
- ['/', '*']
-];
-// validate with scripts/generate-safe
-const safePairs = specPairs.concat([
- [Ident, Hash],
-
- [Dimension, Hash],
-
- [Hash, Hash],
-
- [AtKeyword, LeftParenthesis],
- [AtKeyword, StringToken],
- [AtKeyword, Colon],
-
- [Percentage, Percentage],
- [Percentage, Dimension],
- [Percentage, FunctionToken],
- [Percentage, '-'],
-
- [RightParenthesis, Ident],
- [RightParenthesis, FunctionToken],
- [RightParenthesis, Percentage],
- [RightParenthesis, Dimension],
- [RightParenthesis, Hash],
- [RightParenthesis, '-']
-]);
-
-function createMap(pairs) {
- const isWhiteSpaceRequired = new Set(
- pairs.map(([prev, next]) => (code(prev) << 16 | code(next)))
- );
-
- return function(prevCode, type, value) {
- const nextCode = code(type, value);
- const nextCharCode = value.charCodeAt(0);
- const emitWs =
- (nextCharCode === HYPHENMINUS &&
- type !== Ident &&
- type !== FunctionToken &&
- type !== CDC) ||
- (nextCharCode === PLUSSIGN)
- ? isWhiteSpaceRequired.has(prevCode << 16 | nextCharCode << 8)
- : isWhiteSpaceRequired.has(prevCode << 16 | nextCode);
-
- if (emitWs) {
- this.emit(' ', WhiteSpace, true);
- }
-
- return nextCode;
- };
-}
-
-export const spec = createMap(specPairs);
-export const safe = createMap(safePairs);