diff --git a/.gitignore b/.gitignore index 42b73b3..96cb964 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,7 @@ testing/ emmet-gen-templates/ emmet-gen-templates.json dist/ +todo.md +build/ +pnpm-lock.yaml +!data/emmet-gen-templates.json \ No newline at end of file diff --git a/.npmignore b/.npmignore index aab34aa..0abf057 100644 --- a/.npmignore +++ b/.npmignore @@ -6,6 +6,7 @@ assets/ **/*.test.js **/*.map src/ +build/ emmet-gen-templates/ emmet-gen-templates.json tsconfig.json diff --git a/src/data/emmet-gen-templates.json b/data/emmet-gen-templates.json similarity index 100% rename from src/data/emmet-gen-templates.json rename to data/emmet-gen-templates.json diff --git a/dist/data/init.json b/data/init.json similarity index 100% rename from dist/data/init.json rename to data/init.json diff --git a/dist/data/initTest.json b/data/initTest.json similarity index 100% rename from dist/data/initTest.json rename to data/initTest.json diff --git a/dist/data/emmet-gen-templates.json b/dist/data/emmet-gen-templates.json deleted file mode 100644 index b961446..0000000 --- a/dist/data/emmet-gen-templates.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "auto_imports": false, - "relative": true, - "templatesSource": "./emmet-gen-templates", - "baseUrl": "./" -} diff --git a/dist/utils/EmmetToken/EmmetToken.js b/dist/utils/EmmetToken/EmmetToken.js deleted file mode 100644 index b2875f8..0000000 --- a/dist/utils/EmmetToken/EmmetToken.js +++ /dev/null @@ -1,64 +0,0 @@ -export class EmmetToken { - constructor(tokenString) { - const firstChar = tokenString[0]; - let type; - let value; - switch (firstChar) { - case '.': - type = 'class'; - value = tokenString.substring(1); - break; - case '#': - type = 'id'; - value = tokenString.substring(1); - break; - case '+': - type = 'sibling'; - value = tokenString.substring(1); - break; - case '>': - type = 'child'; - value = tokenString.substring(1); - break; - case '^': - type = 'up'; - value = tokenString.substring(1); - break; - case '\\': - type = 'empty'; - value = tokenString.substring(1); - break; - case '/': - type = 'empty'; - value = tokenString.substring(1); - break; - case '*': - type = 'multiply'; - value = tokenString.substring(1); - break; - case '@': - type = 'multiplyStart'; - value = tokenString.substring(1); - break; - case '(': - type = 'openGroup'; - value = tokenString.substring(1); - break; - case ')': - type = 'closeGroup'; - value = tokenString.substring(1); - break; - case '[': - type = 'attr'; - value = tokenString.substring(1, tokenString.length - 1); - break; - default: - type = 'name'; - value = tokenString; - break; - } - this.type = type; - this.value = value; - } -} -//# sourceMappingURL=EmmetToken.js.map \ No newline at end of file diff --git a/dist/utils/EmmetToken/EmmetToken.js.map b/dist/utils/EmmetToken/EmmetToken.js.map deleted file mode 100644 index e60f6cb..0000000 --- a/dist/utils/EmmetToken/EmmetToken.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EmmetToken.js","sourceRoot":"","sources":["../../../src/utils/EmmetToken/EmmetToken.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IAGtB,YAAY,WAAkB;QAC7B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,IAAI,CAAA;QACR,IAAI,KAAK,CAAA;QAET,QAAQ,SAAS,EAAE,CAAC;YACnB,KAAK,GAAG;gBACP,IAAI,GAAG,OAAO,CAAA;gBACd,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,IAAI,CAAA;gBACX,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,SAAS,CAAA;gBAChB,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,OAAO,CAAA;gBACd,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,IAAI,CAAA;gBACX,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,IAAI;gBACR,IAAI,GAAG,OAAO,CAAA;gBACd,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,OAAO,CAAA;gBACd,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,UAAU,CAAA;gBACjB,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,eAAe,CAAA;gBACtB,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,WAAW,CAAA;gBAClB,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,YAAY,CAAA;gBACnB,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAChC,MAAK;YAEN,KAAK,GAAG;gBACP,IAAI,GAAG,MAAM,CAAA;gBACb,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACxD,MAAK;YAEN;gBACC,IAAI,GAAG,MAAM,CAAA;gBACb,KAAK,GAAG,WAAW,CAAA;gBACnB,MAAK;QACP,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACnB,CAAC;CACD"} \ No newline at end of file diff --git a/dist/utils/EmmetToken/EmmetToken.test.js b/dist/utils/EmmetToken/EmmetToken.test.js deleted file mode 100644 index f5577a6..0000000 --- a/dist/utils/EmmetToken/EmmetToken.test.js +++ /dev/null @@ -1,80 +0,0 @@ -import { test, expect, describe } from 'vitest'; -import { EmmetToken } from './EmmetToken'; -describe('EmmetToken class', () => { - const tokens = { - name: { - string: 'hello', - value: 'hello', - type: 'name', - }, - class: { - string: '.', - value: '', - type: 'class', - }, - id: { - string: '#', - value: '', - type: 'id', - }, - sibling: { - string: '+', - value: '', - type: 'sibling', - }, - child: { - string: '>', - value: '', - type: 'child', - }, - up: { - string: '^', - value: '', - type: 'up', - }, - empty1: { - string: '/', - value: '', - type: 'empty', - }, - empty2: { - string: '\\', - value: '', - type: 'empty', - }, - multiply: { - string: '*123', - value: '123', - type: 'multiply', - }, - multiplyStart: { - string: '@123', - value: '123', - type: 'multiplyStart', - }, - openGroup: { - string: '(', - value: '', - type: 'openGroup', - }, - closeGroup: { - string: ')', - value: '', - type: 'closeGroup', - }, - attribute: { - string: '[hello="world"]', - value: 'hello="world"', - type: 'attr', - }, - }; - for (const token in tokens) { - test(`should get ${token} token`, () => { - const { string, value, type } = tokens[token]; - const result = new EmmetToken(string); - expect(result.value).toStrictEqual(value); - expect(result.type).toStrictEqual(type); - }); - } -}); -//# sourceMappingURL=EmmetToken.test.js.map \ No newline at end of file diff --git a/dist/utils/EmmetToken/EmmetToken.test.js.map b/dist/utils/EmmetToken/EmmetToken.test.js.map deleted file mode 100644 index ca79d06..0000000 --- a/dist/utils/EmmetToken/EmmetToken.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EmmetToken.test.js","sourceRoot":"","sources":["../../../src/utils/EmmetToken/EmmetToken.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAQzC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,MAAM,MAAM,GAAY;QACvB,IAAI,EAAE;YACL,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,MAAM;SACZ;QACD,KAAK,EAAE;YACN,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACb;QACD,EAAE,EAAE;YACH,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI;SACV;QACD,OAAO,EAAE;YACR,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,SAAS;SACf;QACD,KAAK,EAAE;YACN,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACb;QACD,EAAE,EAAE;YACH,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,IAAI;SACV;QACD,MAAM,EAAE;YACP,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACb;QACD,MAAM,EAAE;YACP,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,OAAO;SACb;QACD,QAAQ,EAAE;YACT,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,UAAU;SAChB;QACD,aAAa,EAAE;YACd,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,eAAe;SACrB;QACD,SAAS,EAAE;YACV,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,WAAW;SACjB;QACD,UAAU,EAAE;YACX,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,YAAY;SAClB;QACD,SAAS,EAAE;YACV,MAAM,EAAE,iBAAiB;YACzB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,MAAM;SACZ;KACD,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE,GAAG,EAAE;YACtC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;YACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACH,CAAC;AACF,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/utils/InitTemplate/InitTemplate.js b/dist/utils/InitTemplate/InitTemplate.js deleted file mode 100644 index 4ab85af..0000000 --- a/dist/utils/InitTemplate/InitTemplate.js +++ /dev/null @@ -1,69 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -export class InitTemplate { - constructor(name, content, location, type) { - this.name = name; - this.content = content; - this.location = location; - this.type = type; - this.children = []; - } - static encodeInit(basePath, sourceLocation, parent) { - if (!fs.existsSync(sourceLocation)) { - throw new Error(`${sourceLocation} does not exist`); - } - if (!parent) { - const parentPath = `./${path.relative(basePath, sourceLocation)}`.replace(/\\/g, '/'); - parent = new InitTemplate('root', null, parentPath, 'directory'); - const jsonLocation = path.resolve(basePath, 'emmet-gen-templates.json'); - const jsonPath = `./${path.relative(basePath, jsonLocation)}`.replace(/\\/g, '/'); - const jsonContent = fs.readFileSync(jsonLocation, 'utf8'); - const jsonTemplate = new InitTemplate('emmet-gen-templates.json', jsonContent, jsonPath, 'file'); - parent.children.push(jsonTemplate); - } - const items = fs.readdirSync(path.resolve(sourceLocation), 'utf8'); - if (items.length === 0) - return; - let template; - for (let i = 0; i < items.length; i++) { - const item = items[i]; - const itemLocation = `${sourceLocation}/${item}`; - const itemPath = `./${path.relative(basePath, itemLocation)}`.replace(/\\/g, '/'); - const itemStat = fs.statSync(itemPath); - if (itemStat.isFile()) { - const content = fs.readFileSync(itemLocation, 'utf8'); - template = new InitTemplate(item, content, itemPath, 'file'); - } - else { - template = new InitTemplate(item, null, itemPath, 'directory'); - InitTemplate.encodeInit(basePath, itemLocation, template); - } - if (parent) { - parent.children.push(template); - } - } - return JSON.stringify(parent); - } - static createInit(destPath, json) { - var _a; - const initTemplate = JSON.parse(json); - const queue = [initTemplate]; - while (queue.length > 0) { - const current = queue.shift(); - const location = path.resolve(destPath, (_a = current.location) !== null && _a !== void 0 ? _a : ''); - const content = current.content; - if (current.type === 'directory') { - if (!fs.existsSync(location)) { - fs.mkdirSync(location, { recursive: true }); - } - for (let i = 0; i < current.children.length; i++) { - queue.push(current.children[i]); - } - } - else { - fs.writeFileSync(location, content); - } - } - } -} -//# sourceMappingURL=InitTemplate.js.map \ No newline at end of file diff --git a/dist/utils/InitTemplate/InitTemplate.js.map b/dist/utils/InitTemplate/InitTemplate.js.map deleted file mode 100644 index 7a9cd50..0000000 --- a/dist/utils/InitTemplate/InitTemplate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"InitTemplate.js","sourceRoot":"","sources":["../../../src/utils/InitTemplate/InitTemplate.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils/Template/Template.js b/dist/utils/Template/Template.js deleted file mode 100644 index fb9b1b5..0000000 --- a/dist/utils/Template/Template.js +++ /dev/null @@ -1,13 +0,0 @@ -export class Template { - constructor({ name, location, type = 'default', className = 'default', next, previous, replacements, }) { - var _a, _b; - this.name = name; - this.location = location; - this.type = type; - this.className = className; - (_a = this.next) !== null && _a !== void 0 ? _a : (this.next = next); - (_b = this.previous) !== null && _b !== void 0 ? _b : (this.previous = previous); - this.replacements = replacements || new Map(); - } -} -//# sourceMappingURL=Template.js.map \ No newline at end of file diff --git a/dist/utils/Template/Template.js.map b/dist/utils/Template/Template.js.map deleted file mode 100644 index bc3187d..0000000 --- a/dist/utils/Template/Template.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Template.js","sourceRoot":"","sources":["../../../src/utils/Template/Template.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,QAAQ;IAQpB,YAAY,EACX,IAAI,EACJ,QAAQ,EACR,IAAI,GAAG,SAAS,EAChB,SAAS,GAAG,SAAS,EACrB,IAAI,EACJ,QAAQ,EACR,YAAY,GACG;;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,MAAA,IAAI,CAAC,IAAI,oCAAT,IAAI,CAAC,IAAI,GAAK,IAAI,EAAA;QAClB,MAAA,IAAI,CAAC,QAAQ,oCAAb,IAAI,CAAC,QAAQ,GAAK,QAAQ,EAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,GAAG,EAAkB,CAAA;IAC9D,CAAC;CACD"} \ No newline at end of file diff --git a/dist/utils/generateInit/generateInit.js b/dist/utils/generateInit/generateInit.js deleted file mode 100644 index 74dc14e..0000000 --- a/dist/utils/generateInit/generateInit.js +++ /dev/null @@ -1,19 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { fileURLToPath } from 'url'; -import { InitTemplate } from '../InitTemplate/InitTemplate.js'; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); -export function generateInit(type) { - let sourcePath; - if (type === 'test') { - sourcePath = path.resolve(`${__dirname}/../../data/initTest.json`); - } - else { - sourcePath = path.resolve(`${__dirname}/../../data/init.json`); - } - const source = fs.readFileSync(sourcePath, 'utf8'); - const destPath = path.resolve(process.cwd()); - InitTemplate.createInit(destPath, source); -} -//# sourceMappingURL=generateInit.js.map \ No newline at end of file diff --git a/dist/utils/generateInit/generateInit.js.map b/dist/utils/generateInit/generateInit.js.map deleted file mode 100644 index acbdfe5..0000000 --- a/dist/utils/generateInit/generateInit.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"generateInit.js","sourceRoot":"","sources":["../../../src/utils/generateInit/generateInit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAG9D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AAG1C,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,IAAI,UAAU,CAAA;IACd,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,2BAA2B,CAAC,CAAA;IACnE,CAAC;SAAM,CAAC;QACP,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,uBAAuB,CAAC,CAAA;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAGlD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC5C,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAE1C,CAAC"} \ No newline at end of file diff --git a/dist/utils/generateTemplate/generateTemplate.js b/dist/utils/generateTemplate/generateTemplate.js deleted file mode 100644 index 963f745..0000000 --- a/dist/utils/generateTemplate/generateTemplate.js +++ /dev/null @@ -1,58 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { Settings } from '../Settings/Settings.js'; -export function generateTemplate(root) { - let template = root; - while (template) { - const { location, type } = template; - const source = findSource(type); - createTemplate(source, location, template); - template = template.next; - } -} -function findSource(type) { - const { templatesSource } = Settings; - const source = path.resolve(`${templatesSource}/${type}`); - if (!fs.existsSync(source)) { - console.error(`no ${type} found at ${source}`); - process.exit(1); - } - return source; -} -function createTemplate(source, destination, template) { - var _a; - const items = fs.readdirSync(source); - const files = []; - const directories = []; - for (let i = 0; i < items.length; i++) { - const item = items[i]; - const itemStat = fs.statSync(`${source}/${item}`); - if (itemStat.isFile()) { - files.push(item); - } - else if (itemStat.isDirectory()) { - directories.push(item); - } - } - for (let i = 0; i < directories.length; i++) { - const srcDir = path.resolve(`${source}/${directories[i]}`); - const destDir = path - .resolve(`${destination}/${directories[i]}`) - .replace(/__TemplateName__/g, template.name); - fs.mkdirSync(destDir, { recursive: true }); - createTemplate(srcDir, destDir, template); - } - for (let i = 0; i < files.length; i++) { - const srcFile = path.resolve(`${source}/${files[i]}`); - const destFile = path - .resolve(`${destination}/${files[i]}`) - .replace(/__TemplateName__/g, template.name); - let fileContent = fs.readFileSync(srcFile, 'utf8'); - (_a = template.replacements) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => { - fileContent = fileContent.replaceAll(key, value); - }); - fileContent = fileContent.replace(/__TemplateName__/g, template.name); - fs.writeFileSync(destFile, fileContent); - } -} -//# sourceMappingURL=generateTemplate.js.map \ No newline at end of file diff --git a/dist/utils/generateTemplate/generateTemplate.js.map b/dist/utils/generateTemplate/generateTemplate.js.map deleted file mode 100644 index 753d8c5..0000000 --- a/dist/utils/generateTemplate/generateTemplate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"generateTemplate.js","sourceRoot":"","sources":["../../../src/utils/generateTemplate/generateTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,MAAM,UAAU,gBAAgB,CAAC,IAAc;IAC9C,IAAI,QAAQ,GAAyB,IAAI,CAAA;IAEzC,OAAO,QAAQ,EAAE,CAAC;QACjB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;QACnC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;QAE/B,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QAC1C,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAA;IACzB,CAAC;AACF,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC/B,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAA;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,eAAe,IAAI,IAAI,EAAE,CAAC,CAAA;IACzD,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,aAAa,MAAM,EAAE,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,MAAM,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,WAAmB,EAAE,QAAkB;;IAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAEpC,MAAM,KAAK,GAAG,EAAE,CAAA;IAChB,MAAM,WAAW,GAAG,EAAE,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAA;QAEjD,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACjB,CAAC;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;IACF,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC1D,MAAM,OAAO,GAAG,IAAI;aAClB,OAAO,CAAC,GAAG,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3C,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE1C,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAI;aACnB,OAAO,CAAC,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE7C,IAAI,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAElD,MAAA,QAAQ,CAAC,YAAY,0CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC7C,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAErE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IACxC,CAAC;AACF,CAAC"} \ No newline at end of file diff --git a/dist/utils/indexer/indexer.js b/dist/utils/indexer/indexer.js deleted file mode 100644 index b0096d5..0000000 --- a/dist/utils/indexer/indexer.js +++ /dev/null @@ -1,57 +0,0 @@ -import fs from 'fs'; -const exportableExtensions = ['.tsx', '.ts', '.jsx', '.js']; -const regexExtensionsString = `(\\${exportableExtensions.join('|\\')})$`; -const regexExtensions = new RegExp(`${regexExtensionsString}`, 'g'); -const isIndex = new RegExp(`(index)${regexExtensionsString}`, 'g'); -export function indexer(source, recursive = false, isTypeScript = false) { - const collator = new Intl.Collator(undefined, { - numeric: true, - sensitivity: 'base', - }); - let text = ''; - let items = fs.readdirSync(source); - items = items.sort(collator.compare).filter((name) => !isIndex.test(name)); - const files = []; - const directories = []; - for (let i = 0; i < items.length; i++) { - const item = items[i]; - const itemStat = fs.statSync(`${source}/${item}`); - if (itemStat.isFile() && regexExtensions.test(item)) { - files.push(item); - } - else if (itemStat.isDirectory()) { - directories.push(item); - } - } - for (let i = 0; i < files.length; i++) { - const filename = files[i]; - const nameNoExtension = filename.replace(regexExtensions, ''); - if (nameNoExtension === 'index') { - continue; - } - text += `export { ${nameNoExtension} } from './${nameNoExtension}'\n`; - if (/(\.tsx|\.ts)$/m.test(filename)) { - isTypeScript = true; - } - } - if (files.length > 0 && directories.length > 0) { - text += '\n'; - } - for (let i = 0; i < directories.length; i++) { - const directory = directories[i]; - text += `export * from './${directory}'\n`; - if (recursive) { - const path = `${source}/${directory}`; - isTypeScript = indexer(path, true, isTypeScript); - } - } - if (!text) - return isTypeScript; - let indexName = `${source}/index.js`; - if (isTypeScript) { - indexName = `${source}/index.ts`; - } - fs.writeFileSync(indexName, text); - return isTypeScript; -} -//# sourceMappingURL=indexer.js.map \ No newline at end of file diff --git a/dist/utils/indexer/indexer.js.map b/dist/utils/indexer/indexer.js.map deleted file mode 100644 index 0af4cfc..0000000 --- a/dist/utils/indexer/indexer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../src/utils/indexer/indexer.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils/loadInit/loadInit.js b/dist/utils/loadInit/loadInit.js deleted file mode 100644 index 5af228b..0000000 --- a/dist/utils/loadInit/loadInit.js +++ /dev/null @@ -1,37 +0,0 @@ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -import { InitTemplate } from '../InitTemplate/InitTemplate.js'; -import path from 'path'; -import fs from 'fs'; -export function loadInit(name) { - return __awaiter(this, void 0, void 0, function* () { - try { - let template; - if (!name) { - const saveLocation = path.resolve(process.cwd(), 'emmet-save.json'); - template = fs.readFileSync(saveLocation, 'utf8'); - } - else { - const result = yield fetch(`https://nick3point5-emmet-gen-api.deno.dev/${name}`); - const json = yield result.json(); - template = json.data; - } - if (typeof template !== 'string') { - throw new Error('template is not a string'); - } - InitTemplate.createInit(process.cwd(), template); - } - catch (error) { - console.log('something went wrong'); - } - // InitTemplate.createInit(process.cwd(), template) - }); -} -//# sourceMappingURL=loadInit.js.map \ No newline at end of file diff --git a/dist/utils/loadInit/loadInit.js.map b/dist/utils/loadInit/loadInit.js.map deleted file mode 100644 index bbdea19..0000000 --- a/dist/utils/loadInit/loadInit.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"loadInit.js","sourceRoot":"","sources":["../../../src/utils/loadInit/loadInit.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,MAAM,UAAgB,QAAQ,CAAC,IAAY;;QAC1C,IAAI,CAAC;YACJ,IAAI,QAAQ,CAAA;YACZ,IAAG,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAA;gBACnE,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YACjD,CAAC;iBAAK,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAA;gBAChF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;gBAChC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;YACrB,CAAC;YAED,IAAG,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;YAC5C,CAAC;YAED,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QACpC,CAAC;QAED,mDAAmD;IACpD,CAAC;CAAA"} \ No newline at end of file diff --git a/dist/utils/parseEmmet/parseEmmet.js b/dist/utils/parseEmmet/parseEmmet.js deleted file mode 100644 index 812a669..0000000 --- a/dist/utils/parseEmmet/parseEmmet.js +++ /dev/null @@ -1,10 +0,0 @@ -import { EmmetToken } from '../EmmetToken/EmmetToken.js'; -export function parseEmmet(emmetStrings) { - const emmetTokens = []; - for (let i = 0; i < emmetStrings.length; i++) { - const tokenString = emmetStrings[i]; - emmetTokens.push(new EmmetToken(tokenString)); - } - return emmetTokens; -} -//# sourceMappingURL=parseEmmet.js.map \ No newline at end of file diff --git a/dist/utils/parseEmmet/parseEmmet.js.map b/dist/utils/parseEmmet/parseEmmet.js.map deleted file mode 100644 index 6539f14..0000000 --- a/dist/utils/parseEmmet/parseEmmet.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parseEmmet.js","sourceRoot":"","sources":["../../../src/utils/parseEmmet/parseEmmet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAExD,MAAM,UAAU,UAAU,CAAC,YAAsB;IAChD,MAAM,WAAW,GAAG,EAAE,CAAA;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;QAEnC,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,OAAO,WAAW,CAAA;AACnB,CAAC"} \ No newline at end of file diff --git a/dist/utils/parseEmmet/parseEmmet.test.js b/dist/utils/parseEmmet/parseEmmet.test.js deleted file mode 100644 index 54221fe..0000000 --- a/dist/utils/parseEmmet/parseEmmet.test.js +++ /dev/null @@ -1,30 +0,0 @@ -import { expect } from 'vitest'; -import { test, describe } from 'vitest'; -import { parseEmmet } from './parseEmmet.js'; -import { EmmetToken } from '../EmmetToken/EmmetToken.js'; -import { parseString } from '../parseString/parseString'; -describe('should parse emmet', () => { - test('default', () => { - const string = 'hello.world>this+is>(an#example)*5'; - const emmetStrings = parseString(string); - const result = parseEmmet(emmetStrings); - const correct = [ - new EmmetToken('hello'), - new EmmetToken('.'), - new EmmetToken('world'), - new EmmetToken('>'), - new EmmetToken('this'), - new EmmetToken('+'), - new EmmetToken('is'), - new EmmetToken('>'), - new EmmetToken('('), - new EmmetToken('an'), - new EmmetToken('#'), - new EmmetToken('example'), - new EmmetToken(')'), - new EmmetToken('*5'), - ]; - expect(result).toStrictEqual(correct); - }); -}); -//# sourceMappingURL=parseEmmet.test.js.map \ No newline at end of file diff --git a/dist/utils/parseEmmet/parseEmmet.test.js.map b/dist/utils/parseEmmet/parseEmmet.test.js.map deleted file mode 100644 index 1a46871..0000000 --- a/dist/utils/parseEmmet/parseEmmet.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parseEmmet.test.js","sourceRoot":"","sources":["../../../src/utils/parseEmmet/parseEmmet.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAExD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QACpB,MAAM,MAAM,GAAG,oCAAoC,CAAA;QACnD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;QAEvC,MAAM,OAAO,GAAG;YACf,IAAI,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,MAAM,CAAC;YACtB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,SAAS,CAAC;YACzB,IAAI,UAAU,CAAC,GAAG,CAAC;YACnB,IAAI,UAAU,CAAC,IAAI,CAAC;SACpB,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/utils/parseString/parseString.js b/dist/utils/parseString/parseString.js deleted file mode 100644 index e422929..0000000 --- a/dist/utils/parseString/parseString.js +++ /dev/null @@ -1,24 +0,0 @@ -export function parseString(string) { - const regexArray = []; - const regexMatches = new Map([ - ['id', '\\#'], - ['class', '\\.'], - ['sibling', '\\+'], - ['child', '\\>'], - ['up', '\\^'], - ['empty', '(\\\\|\\/)'], - ['multiply', '\\*\\d+'], - ['multiplyStart', '\\@\\d+'], - ['openGroup', '\\('], - ['closeGroup', '\\)'], - ['attr', '\\[.*\\]'], - ['name', '(\\w+|\\$+)+'], - ]); - regexMatches.forEach((value) => { - regexArray.push(value); - }); - const emmetRegex = new RegExp(`(${regexArray.join('|')})`, 'g'); - const emmetStrings = string.match(emmetRegex); - return emmetStrings || []; -} -//# sourceMappingURL=parseString.js.map \ No newline at end of file diff --git a/dist/utils/parseString/parseString.js.map b/dist/utils/parseString/parseString.js.map deleted file mode 100644 index df42adf..0000000 --- a/dist/utils/parseString/parseString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parseString.js","sourceRoot":"","sources":["../../../src/utils/parseString/parseString.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,MAAc;IACzC,MAAM,UAAU,GAAa,EAAE,CAAA;IAE/B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAiB;QAC5C,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,OAAO,EAAE,KAAK,CAAC;QAChB,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,OAAO,EAAE,KAAK,CAAC;QAChB,CAAC,IAAI,EAAE,KAAK,CAAC;QACb,CAAC,OAAO,EAAE,YAAY,CAAC;QACvB,CAAC,UAAU,EAAE,SAAS,CAAC;QACvB,CAAC,eAAe,EAAE,SAAS,CAAC;QAC5B,CAAC,WAAW,EAAE,KAAK,CAAC;QACpB,CAAC,YAAY,EAAE,KAAK,CAAC;QACrB,CAAC,MAAM,EAAE,UAAU,CAAC;QACpB,CAAC,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC,CAAA;IAEF,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAE/D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC7C,OAAO,YAAY,IAAI,EAAE,CAAA;AAC1B,CAAC"} \ No newline at end of file diff --git a/dist/utils/parseString/parseString.test.js b/dist/utils/parseString/parseString.test.js deleted file mode 100644 index 092f06d..0000000 --- a/dist/utils/parseString/parseString.test.js +++ /dev/null @@ -1,78 +0,0 @@ -import { expect } from 'vitest'; -import { test, describe } from 'vitest'; -import { parseString } from './parseString.js'; -describe('parseString', () => { - test('should get name', () => { - const string = 'hello'; - const result = parseString(string); - const correct = ['hello']; - expect(result).toStrictEqual(correct); - }); - test('should get class', () => { - const string = 'hello.class'; - const result = parseString(string); - const correct = ['hello', '.', 'class']; - expect(result).toStrictEqual(correct); - }); - test('should get id', () => { - const string = 'hello#id'; - const result = parseString(string); - const correct = ['hello', '#', 'id']; - expect(result).toStrictEqual(correct); - }); - test('should get sibling', () => { - const string = 'hello+sibling'; - const result = parseString(string); - const correct = ['hello', '+', 'sibling']; - expect(result).toStrictEqual(correct); - }); - test('should get child', () => { - const string = 'hello>child'; - const result = parseString(string); - const correct = ['hello', '>', 'child']; - expect(result).toStrictEqual(correct); - }); - test('should get up', () => { - const string = 'hello^up'; - const result = parseString(string); - const correct = ['hello', '^', 'up']; - expect(result).toStrictEqual(correct); - }); - test('should get empty /', () => { - const string = '/empty'; - const result = parseString(string); - const correct = ['/', 'empty']; - expect(result).toStrictEqual(correct); - }); - test('should get empty \\', () => { - const string = '\\empty'; - const result = parseString(string); - const correct = ['\\', 'empty']; - expect(result).toStrictEqual(correct); - }); - test('should get multiply', () => { - const string = 'hello*5'; - const result = parseString(string); - const correct = ['hello', '*5']; - expect(result).toStrictEqual(correct); - }); - test('should get multiplyStart', () => { - const string = 'hello@3*5'; - const result = parseString(string); - const correct = ['hello', '@3', '*5']; - expect(result).toStrictEqual(correct); - }); - test('should get Group', () => { - const string = 'hello>(world)'; - const result = parseString(string); - const correct = ['hello', '>', '(', 'world', ')']; - expect(result).toStrictEqual(correct); - }); - test('should get attribute', () => { - const string = 'hello[place="world"]'; - const result = parseString(string); - const correct = ['hello', '[place="world"]']; - expect(result).toStrictEqual(correct); - }); -}); -//# sourceMappingURL=parseString.test.js.map \ No newline at end of file diff --git a/dist/utils/parseString/parseString.test.js.map b/dist/utils/parseString/parseString.test.js.map deleted file mode 100644 index 7419a6b..0000000 --- a/dist/utils/parseString/parseString.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parseString.test.js","sourceRoot":"","sources":["../../../src/utils/parseString/parseString.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils/parseTokens/parseTokens.js b/dist/utils/parseTokens/parseTokens.js deleted file mode 100644 index bbe1eb4..0000000 --- a/dist/utils/parseTokens/parseTokens.js +++ /dev/null @@ -1,33 +0,0 @@ -import { Settings } from '../Settings/Settings.js'; -import { Template } from '../Template/Template.js'; -import { parseToken } from './parseToken/parseToken.js'; -export function parseTokens(emmetTokens, groupCount = 0, location = Settings.baseUrl) { - const root = new Template({ - name: '', - location: location, - type: 'default', - className: 'default', - }); - let state = { - template: root, - location: location, - classStack: ['default'], - multiplyStart: 0, - tokenIndex: 0, - tokens: emmetTokens, - groupCount: groupCount, - group: [] - }; - while (state.tokenIndex < emmetTokens.length) { - const instruction = parseToken(emmetTokens[state.tokenIndex]); - state = instruction(state); - state.tokenIndex++; - } - if (root.name === '' && root.next) { - const openRoot = root.next; - openRoot.previous = undefined; - return openRoot; - } - return root; -} -//# sourceMappingURL=parseTokens.js.map \ No newline at end of file diff --git a/dist/utils/parseTokens/parseTokens.js.map b/dist/utils/parseTokens/parseTokens.js.map deleted file mode 100644 index 02178cd..0000000 --- a/dist/utils/parseTokens/parseTokens.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parseTokens.js","sourceRoot":"","sources":["../../../src/utils/parseTokens/parseTokens.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAoBvD,MAAM,UAAU,WAAW,CAC1B,WAAyB,EACzB,UAAU,GAAG,CAAC,EACd,QAAQ,GAAG,QAAQ,CAAC,OAAO;IAE3B,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;QACzB,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,QAAQ;QAClB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,SAAS;KACpB,CAAC,CAAA;IAEF,IAAI,KAAK,GAAU;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,CAAC,SAAS,CAAC;QACvB,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,MAAM,EAAE,WAAW;QACnB,UAAU,EAAE,UAAU;QACtB,KAAK,EAAE,EAAE;KACT,CAAA;IAED,OAAM,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAC7D,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAE1B,KAAK,CAAC,UAAU,EAAE,CAAA;IACnB,CAAC;IAED,IAAG,IAAI,CAAC,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;QAC1B,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAA;QAC7B,OAAO,QAAQ,CAAA;IAChB,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC"} \ No newline at end of file diff --git a/dist/utils/parseTokens/parseTokens.test.js b/dist/utils/parseTokens/parseTokens.test.js deleted file mode 100644 index 63e1158..0000000 --- a/dist/utils/parseTokens/parseTokens.test.js +++ /dev/null @@ -1,617 +0,0 @@ -import { expect } from 'vitest'; -import { test, describe } from 'vitest'; -import { parseTokens } from './parseTokens.js'; -import { parseString } from '../parseString/parseString.js'; -import { parseEmmet } from '../parseEmmet/parseEmmet.js'; -import { Settings } from '../Settings/Settings.js'; -import { Template } from '../Template/Template.js'; -Settings.init(); -describe('should parse tokens', () => { - test('name', () => { - const string = 'hello'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - expect(root).toStrictEqual(hello); - }); - test('siblings', () => { - const string = 'hello+world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('child', () => { - const string = 'hello>world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('up', () => { - const string = 'hello>world^mister'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: hello, - }); - const mister = new Template({ - name: 'mister', - location: `${Settings.baseUrl}`, - type: 'default', - className: 'default', - previous: world, - }); - hello.next = world; - world.next = mister; - expect(root).toStrictEqual(hello); - }); - test('empty', () => { - const string = '/hello'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'empty', - className: 'default', - }); - expect(root).toStrictEqual(hello); - }); - test('empty chaining', () => { - const string = '/hello/world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'empty', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'empty', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('multiply', () => { - const string = 'hello$*10'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - let previous = undefined; - let hello; - const n = 10; - for (let i = 0; i < n; i++) { - const helloCopy = new Template({ - name: `hello${i + 1}`, - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous, - }); - if (i === 0) { - hello = helloCopy; - } - else if (previous) { - previous.next = helloCopy; - } - previous = helloCopy; - } - expect(root).toStrictEqual(hello); - }); - test('multiplyStart', () => { - const string = 'hello$@5*10'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - let previous = undefined; - let hello; - const n = 10; - for (let i = 4; i < n; i++) { - const helloCopy = new Template({ - name: `hello${i + 1}`, - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous, - }); - if (i === 4) { - hello = helloCopy; - } - else if (previous) { - previous.next = helloCopy; - } - previous = helloCopy; - } - expect(root).toStrictEqual(hello); - }); - test('Group', () => { - const string = '(hello$+world$)*5'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - let previous; - let hello; - const n = 5; - for (let i = 0; i < n; i++) { - const helloCopy = new Template({ - name: `hello${i + 1}`, - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous: previous, - }); - const worldCopy = new Template({ - name: `world${i + 1}`, - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous: helloCopy, - }); - if (i === 0) { - hello = helloCopy; - } - if (previous) { - previous.next = helloCopy; - } - helloCopy.next = worldCopy; - previous = worldCopy; - } - expect(root).toStrictEqual(hello); - }); - test('attr', () => { - const string = 'hello[world="yes"]'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const worldMap = new Map(); - worldMap.set('world', 'yes'); - hello.replacements = worldMap; - expect(root).toStrictEqual(hello); - }); - test('attr*5', () => { - const string = 'hello$[world="yes"]*5'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - let hello; - let previous; - const worldMap = new Map(); - worldMap.set('world', 'yes'); - const n = 5; - for (let i = 0; i < n; i++) { - const helloCopy = new Template({ - name: `hello${i + 1}`, - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous, - }); - if (i === 0) { - hello = helloCopy; - } - if (previous) { - previous.next = helloCopy; - } - helloCopy.replacements = worldMap; - previous = helloCopy; - } - expect(root).toStrictEqual(hello); - }); - test('empty should not apply to children', () => { - const string = '/hello>world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'empty', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('class should change type', () => { - const string = 'hello.test'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'test', - className: 'test', - }); - expect(root).toStrictEqual(hello); - }); - test('root class should apply to all', () => { - const string = 'hello.test>world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'test', - className: 'test', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'test', - className: 'test', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('id should change type', () => { - const string = 'test#test'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const test = new Template({ - name: 'test', - location: Settings.baseUrl, - type: 'test', - className: 'default', - }); - expect(root).toStrictEqual(test); - }); - test('root class should apply to all', () => { - const string = 'hello.test>world#default>thing'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'test', - className: 'test', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'test', - previous: hello, - }); - const thing = new Template({ - name: 'thing', - location: `${Settings.baseUrl}/hello/world`, - type: 'test', - className: 'test', - previous: world, - }); - hello.next = world; - world.next = thing; - expect(root).toStrictEqual(hello); - }); - test('grouping children', () => { - const string = 'hello>(to$+the$+world$)*3'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - let previous = hello; - for (let i = 0; i < 3; i++) { - const toCopy = new Template({ - name: 'to' + (i + 1), - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: previous - }); - const theCopy = new Template({ - name: 'the' + (i + 1), - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: toCopy - }); - const worldCopy = new Template({ - name: 'world' + (i + 1), - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: theCopy - }); - previous.next = toCopy; - toCopy.next = theCopy; - theCopy.next = worldCopy; - previous = worldCopy; - } - expect(root).toStrictEqual(hello); - }); -}); -describe('should parse examples', () => { - test('Child: >', () => { - const string = 'hello>world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('Sibling: +', () => { - const string = 'hello+world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: Settings.baseUrl, - type: 'default', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('Climb-up: ^', () => { - const string = 'hello>to+the^world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const to = new Template({ - name: 'to', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: hello - }); - const the = new Template({ - name: 'the', - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: to - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}`, - type: 'default', - className: 'default', - previous: the, - }); - hello.next = to; - to.next = the; - the.next = world; - expect(root).toStrictEqual(hello); - }); - test('Multiplication: *', () => { - const string = 'hello>world$*5'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - let previous = hello; - const n = 5; - for (let i = 0; i < n; i++) { - const worldCopy = new Template({ - name: `world${i + 1}`, - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous, - }); - previous.next = worldCopy; - previous = worldCopy; - } - expect(root).toStrictEqual(hello); - }); - test('ID: #', () => { - const string = 'hello>world#file'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'file', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('CLASS: .', () => { - const string = 'hello.file'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'file', - className: 'file', - }); - expect(root).toStrictEqual(hello); - }); - test('Replace Contents: ', () => { - const string = 'hello[log="error"]'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const map = new Map(); - map.set('log', 'error'); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - replacements: map, - }); - expect(root).toStrictEqual(hello); - }); - test('empty: /', () => { - const string = '/hello/world'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'empty', - className: 'default', - }); - const world = new Template({ - name: 'world', - location: `${Settings.baseUrl}/hello`, - type: 'empty', - className: 'default', - previous: hello, - }); - hello.next = world; - expect(root).toStrictEqual(hello); - }); - test('Grouping: ()', () => { - const string = 'hello>(to$+the$+world$)*5'; - const emmetString = parseString(string); - const emmetToken = parseEmmet(emmetString); - const root = parseTokens(emmetToken); - const hello = new Template({ - name: 'hello', - location: Settings.baseUrl, - type: 'default', - className: 'default', - }); - let previous = hello; - for (let i = 0; i < 5; i++) { - const toCopy = new Template({ - name: 'to' + (i + 1), - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: previous - }); - const theCopy = new Template({ - name: 'the' + (i + 1), - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: toCopy - }); - const worldCopy = new Template({ - name: 'world' + (i + 1), - location: `${Settings.baseUrl}/hello`, - type: 'default', - className: 'default', - previous: theCopy - }); - previous.next = toCopy; - toCopy.next = theCopy; - theCopy.next = worldCopy; - previous = worldCopy; - } - expect(root).toStrictEqual(hello); - }); -}); -//# sourceMappingURL=parseTokens.test.js.map \ No newline at end of file diff --git a/dist/utils/parseTokens/parseTokens.test.js.map b/dist/utils/parseTokens/parseTokens.test.js.map deleted file mode 100644 index d86184f..0000000 --- a/dist/utils/parseTokens/parseTokens.test.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"parseTokens.test.js","sourceRoot":"","sources":["../../../src/utils/parseTokens/parseTokens.test.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils/saveInit/saveInit.js b/dist/utils/saveInit/saveInit.js deleted file mode 100644 index e7486f8..0000000 --- a/dist/utils/saveInit/saveInit.js +++ /dev/null @@ -1,39 +0,0 @@ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -import { InitTemplate } from '../InitTemplate/InitTemplate.js'; -import fs from 'fs'; -import { Settings } from '../Settings/Settings.js'; -export function saveInit(name) { - return __awaiter(this, void 0, void 0, function* () { - const template = InitTemplate.encodeInit(Settings.baseUrl, Settings.templatesSource); - if (!name) { - fs.writeFileSync(Settings.baseUrl + '/emmet-save.json', template, 'utf8'); - } - else { - try { - yield fetch('https://nick3point5-emmet-gen-api.deno.dev/', { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ - name, - data: template, - }) - }); - console.log('uploaded!'); - } - catch (error) { - console.log('something went wrong'); - } - } - }); -} -//# sourceMappingURL=saveInit.js.map \ No newline at end of file diff --git a/dist/utils/saveInit/saveInit.js.map b/dist/utils/saveInit/saveInit.js.map deleted file mode 100644 index 338679a..0000000 --- a/dist/utils/saveInit/saveInit.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"saveInit.js","sourceRoot":"","sources":["../../../src/utils/saveInit/saveInit.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,MAAM,UAAgB,QAAQ,CAAC,IAAa;;QAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;QAEnF,IAAG,CAAC,IAAI,EAAE,CAAC;YACV,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAC,kBAAkB,EAAE,QAAS,EAAE,MAAM,CAAC,CAAA;QACzE,CAAC;aAAK,CAAC;YACN,IAAI,CAAC;gBACJ,MAAM,KAAK,CAAC,6CAA6C,EAAE;oBAC1D,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACR,cAAc,EAAE,kBAAkB;qBAClC;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACpB,IAAI;wBACJ,IAAI,EAAE,QAAQ;qBACd,CAAC;iBACF,CAAC,CAAA;gBACF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YACzB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;YACpC,CAAC;QAEF,CAAC;IACF,CAAC;CAAA"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1035440..cc35e87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,20 +1,21 @@ { "name": "emmet-gen", - "version": "1.6.0", + "version": "1.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "emmet-gen", - "version": "1.6.0", + "version": "1.7.0", "license": "MIT", "dependencies": { "commander": "^11.1.0" }, "bin": { - "emmet-gen": "dist/main.js" + "emmet-gen": "dist/main.min.js" }, "devDependencies": { + "@rollup/plugin-terser": "^0.4.4", "@types/node": "^20.11.5", "@typescript-eslint/eslint-plugin": "^6.19.0", "@typescript-eslint/parser": "^6.19.0", @@ -23,6 +24,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "husky": "^8.0.3", + "rollup": "^4.9.6", "typescript": "^5.3.3", "vite": "^5.0.12", "vitest": "^1.2.1" @@ -550,12 +552,64 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -591,6 +645,28 @@ "node": ">= 8" } }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.9.6", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", @@ -785,9 +861,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.8.tgz", - "integrity": "sha512-i7omyekpPTNdv4Jb/Rgqg0RU8YqLcNsI12quKSDkRXNfx7Wxdm6HhK1awT3xTgEkgxPn3bvnSpiEAc7a7Lpyow==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1332,6 +1408,12 @@ "node": ">=8" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -3478,6 +3560,15 @@ } ] }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", @@ -3625,6 +3716,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safe-regex-test": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", @@ -3657,6 +3768,15 @@ "node": ">=10" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/set-function-length": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", @@ -3749,6 +3869,21 @@ "node": ">=8" } }, + "node_modules/smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -3758,6 +3893,16 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/stackback": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", @@ -3896,6 +4041,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/terser": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/package.json b/package.json index 1e0ce77..06b2426 100644 --- a/package.json +++ b/package.json @@ -1,19 +1,19 @@ { "name": "emmet-gen", - "version": "1.6.0", + "version": "1.7.0", "description": "emmet-gen is a CLI tool for generating directories and files with emmet inspired syntax.", - "main": "dist/main.js", + "main": "dist/main.min.js", "type": "module", "scripts": { "precommit": "", "prepare": "husky install", - "start": "node ./dist/main.js", - "test:gh": "node ./dist/main.js init test && vitest", + "start": "node ./dist/main.min.js", + "test:gh": "node ./dist/main.min.js init test && vitest", "test": "vitest", "prettier": "npx prettier --write ./dist", "lint:fix": "eslint --ext .ts --ignore-path .gitignore . --fix", "lint": "eslint --ext .ts --ignore-path .gitignore .", - "build": "npx tsc" + "build": "npx tsc && rollup --config" }, "keywords": [ "generate", @@ -32,6 +32,7 @@ "author": "nick3point5", "license": "MIT", "devDependencies": { + "@rollup/plugin-terser": "^0.4.4", "@types/node": "^20.11.5", "@typescript-eslint/eslint-plugin": "^6.19.0", "@typescript-eslint/parser": "^6.19.0", @@ -40,6 +41,7 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "husky": "^8.0.3", + "rollup": "^4.9.6", "typescript": "^5.3.3", "vite": "^5.0.12", "vitest": "^1.2.1" @@ -60,5 +62,5 @@ "pre-commit": "if branch is dev; then npm run precommit:minor;" } }, - "bin": "./dist/main.js" + "bin": "./dist/main.min.js" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index d46379f..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,2557 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - commander: - specifier: ^11.1.0 - version: 11.1.0 - -devDependencies: - '@types/node': - specifier: ^20.11.5 - version: 20.11.5 - '@typescript-eslint/eslint-plugin': - specifier: ^6.19.0 - version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': - specifier: ^6.19.0 - version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) - eslint: - specifier: ^8.56.0 - version: 8.56.0 - eslint-config-airbnb-base: - specifier: ^15.0.0 - version: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) - eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) - husky: - specifier: ^8.0.3 - version: 8.0.3 - typescript: - specifier: ^5.3.3 - version: 5.3.3 - vite: - specifier: ^5.0.12 - version: 5.0.12(@types/node@20.11.5) - vitest: - specifier: ^1.2.1 - version: 1.2.1(@types/node@20.11.5) - -packages: - - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - dev: true - - /@esbuild/aix-ppc64@0.19.11: - resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.19.11: - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.19.11: - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.19.11: - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.19.11: - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.19.11: - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.19.11: - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.19.11: - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.19.11: - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.19.11: - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.19.11: - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.19.11: - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.19.11: - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.19.11: - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.19.11: - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.19.11: - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.19.11: - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.19.11: - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.19.11: - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.19.11: - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.19.11: - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.19.11: - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.19.11: - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.56.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.2 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true - - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} - dev: true - - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.16.0 - dev: true - - /@rollup/rollup-android-arm-eabi@4.9.6: - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.9.6: - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.9.6: - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.9.6: - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.9.6: - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.9.6: - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.9.6: - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.9.6: - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.9.6: - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true - - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - - /@types/node@20.11.5: - resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} - dependencies: - undici-types: 5.26.5 - dev: true - - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - dev: true - - /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.0 - debug: 4.3.4 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.0 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.19.0 - debug: 4.3.4 - eslint: 8.56.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@6.19.0: - resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/visitor-keys': 6.19.0 - dev: true - - /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@6.19.0: - resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@6.19.0(typescript@5.3.3): - resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/visitor-keys': 6.19.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.19.0 - '@typescript-eslint/types': 6.19.0 - '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) - eslint: 8.56.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@6.19.0: - resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.19.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@vitest/expect@1.2.1: - resolution: {integrity: sha512-/bqGXcHfyKgFWYwIgFr1QYDaR9e64pRKxgBNWNXPefPFRhgm+K3+a/dS0cUGEreWngets3dlr8w8SBRw2fCfFQ==} - dependencies: - '@vitest/spy': 1.2.1 - '@vitest/utils': 1.2.1 - chai: 4.4.1 - dev: true - - /@vitest/runner@1.2.1: - resolution: {integrity: sha512-zc2dP5LQpzNzbpaBt7OeYAvmIsRS1KpZQw4G3WM/yqSV1cQKNKwLGmnm79GyZZjMhQGlRcSFMImLjZaUQvNVZQ==} - dependencies: - '@vitest/utils': 1.2.1 - p-limit: 5.0.0 - pathe: 1.1.2 - dev: true - - /@vitest/snapshot@1.2.1: - resolution: {integrity: sha512-Tmp/IcYEemKaqAYCS08sh0vORLJkMr0NRV76Gl8sHGxXT5151cITJCET20063wk0Yr/1koQ6dnmP6eEqezmd/Q==} - dependencies: - magic-string: 0.30.5 - pathe: 1.1.2 - pretty-format: 29.7.0 - dev: true - - /@vitest/spy@1.2.1: - resolution: {integrity: sha512-vG3a/b7INKH7L49Lbp0IWrG6sw9j4waWAucwnksPB1r1FTJgV7nkBByd9ufzu6VWya/QTvQW4V9FShZbZIB2UQ==} - dependencies: - tinyspy: 2.2.0 - dev: true - - /@vitest/utils@1.2.1: - resolution: {integrity: sha512-bsH6WVZYe/J2v3+81M5LDU8kW76xWObKIURpPrOXm2pjBniBu2MERI/XP60GpS4PHU3jyK50LUutOwrx4CyHUg==} - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.3 - dev: true - - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - dev: true - - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: true - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - dev: true - - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - dev: true - - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - dev: true - - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.2.0 - dev: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: false - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - dev: true - - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 - object-keys: 1.1.1 - dev: true - - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.1.0 - safe-regex-test: 1.0.2 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - dev: true - - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 - dev: true - - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.0 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.11 - '@esbuild/android-arm': 0.19.11 - '@esbuild/android-arm64': 0.19.11 - '@esbuild/android-x64': 0.19.11 - '@esbuild/darwin-arm64': 0.19.11 - '@esbuild/darwin-x64': 0.19.11 - '@esbuild/freebsd-arm64': 0.19.11 - '@esbuild/freebsd-x64': 0.19.11 - '@esbuild/linux-arm': 0.19.11 - '@esbuild/linux-arm64': 0.19.11 - '@esbuild/linux-ia32': 0.19.11 - '@esbuild/linux-loong64': 0.19.11 - '@esbuild/linux-mips64el': 0.19.11 - '@esbuild/linux-ppc64': 0.19.11 - '@esbuild/linux-riscv64': 0.19.11 - '@esbuild/linux-s390x': 0.19.11 - '@esbuild/linux-x64': 0.19.11 - '@esbuild/netbsd-x64': 0.19.11 - '@esbuild/openbsd-x64': 0.19.11 - '@esbuild/sunos-x64': 0.19.11 - '@esbuild/win32-arm64': 0.19.11 - '@esbuild/win32-ia32': 0.19.11 - '@esbuild/win32-x64': 0.19.11 - dev: true - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): - resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - dependencies: - confusing-browser-globals: 1.0.11 - eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0) - object.assign: 4.1.5 - object.entries: 1.1.7 - semver: 6.3.1 - dev: true - - /eslint-config-prettier@9.1.0(eslint@8.56.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.56.0 - dev: true - - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - debug: 3.2.7 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.0)(eslint@8.56.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 - dev: true - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.5 - dev: true - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.2.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fastq@1.16.0: - resolution: {integrity: sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==} - dependencies: - reusify: 1.0.4 - dev: true - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - dev: true - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.9 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: true - - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - dev: true - - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true - - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 - dev: true - - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - dev: true - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true - - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - dev: true - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: true - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.0 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.2 - dev: true - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true - - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - dependencies: - get-intrinsic: 1.2.2 - dev: true - - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true - - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true - - /husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} - dev: true - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 - dev: true - - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.0 - dev: true - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true - - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.5 - dev: true - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.13 - dev: true - - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.5 - dev: true - - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.5.0 - pkg-types: 1.0.3 - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /mlly@1.5.0: - resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.3.2 - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: true - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true - - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - - /object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - dev: true - - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - dependencies: - yocto-queue: 1.0.0 - dev: true - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true - - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.5.0 - pathe: 1.1.2 - dev: true - - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: true - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true - - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - dev: true - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 - fsevents: 2.3.3 - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - - /safe-regex-test@1.0.2: - resolution: {integrity: sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - dev: true - - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true - - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /set-function-length@1.2.0: - resolution: {integrity: sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - dev: true - - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: true - - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - dependencies: - acorn: 8.11.3 - dev: true - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - - /tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - dev: true - - /tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - dev: true - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.3.3 - dev: true - - /tsconfig-paths@3.15.0: - resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.12 - dev: true - - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - dev: true - - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.5 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - dev: true - - /vite-node@1.2.1(@types/node@20.11.5): - resolution: {integrity: sha512-fNzHmQUSOY+y30naohBvSW7pPn/xn3Ib/uqm+5wAJQJiqQsU0NBR78XdRJb04l4bOFKjpTWld0XAfkKlrDbySg==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.0 - vite: 5.0.12(@types/node@20.11.5) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite@5.0.12(@types/node@20.11.5): - resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.11.5 - esbuild: 0.19.11 - postcss: 8.4.33 - rollup: 4.9.6 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vitest@1.2.1(@types/node@20.11.5): - resolution: {integrity: sha512-TRph8N8rnSDa5M2wKWJCMnztCZS9cDcgVTQ6tsTFTG/odHJ4l5yNVqvbeDJYJRZ6is3uxaEpFs8LL6QM+YFSdA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@types/node': 20.11.5 - '@vitest/expect': 1.2.1 - '@vitest/runner': 1.2.1 - '@vitest/snapshot': 1.2.1 - '@vitest/spy': 1.2.1 - '@vitest/utils': 1.2.1 - acorn-walk: 8.3.2 - cac: 6.7.14 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.5 - pathe: 1.1.2 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 1.3.0 - tinybench: 2.6.0 - tinypool: 0.8.2 - vite: 5.0.12(@types/node@20.11.5) - vite-node: 1.2.1(@types/node@20.11.5) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true - - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..9d00fee --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,12 @@ +import terser from '@rollup/plugin-terser' + +export default { + input: './build/main.js', + output: [ + { + file: './dist/main.min.js', + format: 'es', + plugins: [terser()] + } + ] +} \ No newline at end of file diff --git a/src/data/init.json b/src/data/init.json deleted file mode 100644 index 7229fe1..0000000 --- a/src/data/init.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "name": "root", - "content": null, - "location": ".", - "children": [ - { - "name": "emmet-gen-templates", - "content": null, - "location": "./emmet-gen-templates", - "children": [ - { - "name": "default", - "content": null, - "location": "./emmet-gen-templates/default", - "children": [ - { - "name": "__TemplateName__", - "content": null, - "location": "./emmet-gen-templates/default/__TemplateName__", - "children": [ - { - "name": "__TemplateName__.js", - "content": "console.log('__TemplateName__')\n", - "location": "./emmet-gen-templates/default/__TemplateName__/__TemplateName__.js", - "children": [], - "type": "file" - } - ], - "type": "directory" - } - ], - "type": "directory" - }, - { - "name": "empty", - "content": null, - "location": "./emmet-gen-templates/empty", - "children": [ - { - "name": "__TemplateName__", - "content": null, - "location": "./emmet-gen-templates/empty/__TemplateName__", - "children": [], - "type": "directory" - } - ], - "type": "directory" - }, - { - "name": "file", - "content": null, - "location": "./emmet-gen-templates/file", - "children": [ - { - "name": "__TemplateName__.js", - "content": "console.log('__TemplateName__')\n", - "location": "./emmet-gen-templates/file/__TemplateName__.js", - "children": [], - "type": "file" - } - ], - "type": "directory" - } - ], - "type": "directory" - }, - { - "name": "emmet-gen-templates.json", - "content": "{\n\t\"auto_imports\": false,\n\t\"relative\": true,\n\t\"templatesSource\": \"./emmet-gen-templates\",\n\t\"baseUrl\": \"./\"\n}\n", - "location": "./emmet-gen-templates.json", - "children": [], - "type": "file" - } - ], - "type": "directory" -} \ No newline at end of file diff --git a/src/data/initTest.json b/src/data/initTest.json deleted file mode 100644 index acad781..0000000 --- a/src/data/initTest.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"root","content":null,"location":".","children":[{"name":"emmet-gen-templates","content":null,"location":"./emmet-gen-templates","children":[{"name":"default","content":null,"location":"./emmet-gen-templates/default","children":[{"name":"__TemplateName__","content":null,"location":"./emmet-gen-templates/default/__TemplateName__","children":[{"name":"__TemplateName__.js","content":"console.log('__TemplateName__')\n","location":"./emmet-gen-templates/default/__TemplateName__/__TemplateName__.js","children":[],"type":"file"}],"type":"directory"}],"type":"directory"},{"name":"empty","content":null,"location":"./emmet-gen-templates/empty","children":[{"name":"__TemplateName__","content":null,"location":"./emmet-gen-templates/empty/__TemplateName__","children":[],"type":"directory"}],"type":"directory"},{"name":"file","content":null,"location":"./emmet-gen-templates/file","children":[{"name":"__TemplateName__.js","content":"console.log('__TemplateName__')\n","location":"./emmet-gen-templates/file/__TemplateName__.js","children":[],"type":"file"}],"type":"directory"},{"name":"test","content":null,"location":"./emmet-gen-templates/test","children":[{"name":"__TemplateName__","content":null,"location":"./emmet-gen-templates/test/__TemplateName__","children":[{"name":"__TemplateName__test.js","content":"console.log('testing')","location":"./emmet-gen-templates/test/__TemplateName__/__TemplateName__test.js","children":[],"type":"file"}],"type":"directory"}],"type":"directory"}],"type":"directory"},{"name":"emmet-gen-templates.json","content":"{\n\t\"auto_imports\": false,\n\t\"relative\": true,\n\t\"templatesSource\": \"./emmet-gen-templates\",\n\t\"baseUrl\": \"./\"\n}\n","location":"./emmet-gen-templates.json","children":[],"type":"file"}],"type":"directory"} \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 04cd73e..cd0ed85 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,7 +5,7 @@ import path from 'path' import { Command } from 'commander' import { parseEmmet } from './utils/parseEmmet/parseEmmet.js' import { generateInit } from './utils/generateInit/generateInit.js' -import { parseString } from './utils/parseString/parseString.js' +import { emmetLexer } from './utils/emmetLexer/emmetLexer.js' import { parseTokens } from './utils/parseTokens/parseTokens.js' import { generateTemplate } from './utils/generateTemplate/generateTemplate.js' import { indexer } from './utils/indexer/indexer.js' @@ -29,7 +29,7 @@ program .option('-l, --load', 'loads from json') .description('Generate the initial files for emmet-gen') .argument('[input]') - .action((input, option) => { + .action((input: string, option: { save: boolean; load: boolean }) => { if (option.save) { Settings.init() saveInit(input) @@ -51,7 +51,7 @@ program .argument('') .option('-r, --recursive', 'recursively generate index files') .option('-a, --absolute', 'sets the base url relative to the emmet-gen-template.json') - .action((locations: string[], option) => { + .action((locations: string[], option: { absolute: boolean; recursive: boolean }) => { Settings.init() locations.forEach((location) => { if (Settings.relative && !option.absolute) { @@ -67,14 +67,14 @@ program .argument('[emmet]') .option('-i, --index', 'recursively generate index files') .option('-a, --absolute', 'sets the base url relative to the emmet-gen-template.json') - .action((input, option) => { - Settings.init(!!option.absolute) - const emmetStrings = parseString(input) + .action((input: string, option: { absolute: boolean; index: boolean }) => { + Settings.init(option.absolute) + const emmetStrings = emmetLexer(input) const emmetTokens = parseEmmet(emmetStrings) const rootTemplate = parseTokens(emmetTokens) generateTemplate(rootTemplate) - if (!!option.index || !!Settings.auto_imports) { + if (option.index || Settings.auto_imports) { indexer(rootTemplate.location, true) } diff --git a/src/utils/EmmetToken/EmmetToken.ts b/src/utils/EmmetToken/EmmetToken.ts index 7e5008f..6836301 100644 --- a/src/utils/EmmetToken/EmmetToken.ts +++ b/src/utils/EmmetToken/EmmetToken.ts @@ -2,78 +2,82 @@ export class EmmetToken { type: string value: string constructor(tokenString:string) { - const firstChar = tokenString[0] - let type - let value - - switch (firstChar) { - case '.': - type = 'class' - value = tokenString.substring(1) - break + const { type, value } = parseTokenString(tokenString) + this.type = type + this.value = value + } +} - case '#': - type = 'id' - value = tokenString.substring(1) - break +export function parseTokenString(tokenString:string) { + const firstChar = tokenString[0] + let type + let value + switch (firstChar) { + case '.': + type = 'class' + value = tokenString.substring(1) + break - case '+': - type = 'sibling' - value = tokenString.substring(1) - break + case '#': + type = 'id' + value = tokenString.substring(1) + break - case '>': - type = 'child' - value = tokenString.substring(1) - break + case '+': + type = 'sibling' + value = tokenString.substring(1) + break - case '^': - type = 'up' - value = tokenString.substring(1) - break + case '>': + type = 'child' + value = tokenString.substring(1) + break - case '\\': - type = 'empty' - value = tokenString.substring(1) - break + case '^': + type = 'up' + value = tokenString.substring(1) + break - case '/': - type = 'empty' - value = tokenString.substring(1) - break + case '\\': + type = 'empty' + value = tokenString.substring(1) + break - case '*': - type = 'multiply' - value = tokenString.substring(1) - break + case '/': + type = 'empty' + value = tokenString.substring(1) + break - case '@': - type = 'multiplyStart' - value = tokenString.substring(1) - break + case '*': + type = 'multiply' + value = tokenString.substring(1) + break - case '(': - type = 'openGroup' - value = tokenString.substring(1) - break + case '@': + type = 'multiplyStart' + value = tokenString.substring(1) + break - case ')': - type = 'closeGroup' - value = tokenString.substring(1) - break + case '(': + type = 'openGroup' + value = tokenString.substring(1) + break - case '[': - type = 'attr' - value = tokenString.substring(1, tokenString.length - 1) - break + case ')': + type = 'closeGroup' + value = tokenString.substring(1) + break - default: - type = 'name' - value = tokenString - break - } + case '[': + type = 'attr' + value = tokenString.substring(1, tokenString.length - 1) + break - this.type = type - this.value = value + default: + type = 'name' + value = tokenString + break } + + return { type, value } } \ No newline at end of file diff --git a/src/utils/Settings/Settings.ts b/src/utils/Settings/Settings.ts index 1cf98bf..09c0a46 100644 --- a/src/utils/Settings/Settings.ts +++ b/src/utils/Settings/Settings.ts @@ -1,4 +1,4 @@ -import type ConfigType from '../../data/emmet-gen-templates.json' +import type ConfigType from '../../../data/emmet-gen-templates.json' import fs from 'fs' import path from 'path' diff --git a/src/utils/parseString/parseString.test.ts b/src/utils/emmetLexer/emmetLexer.test.ts similarity index 79% rename from src/utils/parseString/parseString.test.ts rename to src/utils/emmetLexer/emmetLexer.test.ts index 04c89b2..028c706 100644 --- a/src/utils/parseString/parseString.test.ts +++ b/src/utils/emmetLexer/emmetLexer.test.ts @@ -1,77 +1,77 @@ import { expect } from 'vitest' import { test, describe } from 'vitest' -import { parseString } from './parseString.js' +import { emmetLexer } from './emmetLexer.js' describe('parseString', () => { test('should get name', () => { const string = 'hello' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello'] expect(result).toStrictEqual(correct) }) test('should get class', () => { const string = 'hello.class' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '.', 'class'] expect(result).toStrictEqual(correct) }) test('should get id', () => { const string = 'hello#id' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '#', 'id'] expect(result).toStrictEqual(correct) }) test('should get sibling', () => { const string = 'hello+sibling' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '+', 'sibling'] expect(result).toStrictEqual(correct) }) test('should get child', () => { const string = 'hello>child' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '>', 'child'] expect(result).toStrictEqual(correct) }) test('should get up', () => { const string = 'hello^up' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '^', 'up'] expect(result).toStrictEqual(correct) }) test('should get empty /', () => { const string = '/empty' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['/', 'empty'] expect(result).toStrictEqual(correct) }) test('should get empty \\', () => { const string = '\\empty' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['\\', 'empty'] expect(result).toStrictEqual(correct) }) test('should get multiply', () => { const string = 'hello*5' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '*5'] expect(result).toStrictEqual(correct) }) test('should get multiplyStart', () => { const string = 'hello@3*5' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '@3', '*5'] expect(result).toStrictEqual(correct) }) test('should get Group', () => { const string = 'hello>(world)' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '>', '(', 'world', ')'] expect(result).toStrictEqual(correct) }) test('should get attribute', () => { const string = 'hello[place="world"]' - const result = parseString(string) + const result = emmetLexer(string) const correct = ['hello', '[place="world"]'] expect(result).toStrictEqual(correct) }) diff --git a/src/utils/parseString/parseString.ts b/src/utils/emmetLexer/emmetLexer.ts similarity index 92% rename from src/utils/parseString/parseString.ts rename to src/utils/emmetLexer/emmetLexer.ts index ae2004e..11f0946 100644 --- a/src/utils/parseString/parseString.ts +++ b/src/utils/emmetLexer/emmetLexer.ts @@ -1,4 +1,4 @@ -export function parseString(string: string) { +export function emmetLexer(string: string) { const regexArray: string[] = [] const regexMatches = new Map([ diff --git a/src/utils/generateInit/generateInit.ts b/src/utils/generateInit/generateInit.ts index 6b3aee9..7525fe8 100644 --- a/src/utils/generateInit/generateInit.ts +++ b/src/utils/generateInit/generateInit.ts @@ -11,9 +11,9 @@ const __dirname = path.dirname(__filename) export function generateInit(type: string) { let sourcePath if (type === 'test') { - sourcePath = path.resolve(`${__dirname}/../../data/initTest.json`) + sourcePath = path.resolve(`${__dirname}/../data/initTest.json`) } else { - sourcePath = path.resolve(`${__dirname}/../../data/init.json`) + sourcePath = path.resolve(`${__dirname}/../data/init.json`) } const source = fs.readFileSync(sourcePath, 'utf8') diff --git a/src/utils/indexer/indexer.ts b/src/utils/indexer/indexer.ts index 9f497dc..ba6103e 100644 --- a/src/utils/indexer/indexer.ts +++ b/src/utils/indexer/indexer.ts @@ -1,5 +1,10 @@ import fs from 'fs' +type Result = { + text: string + isTypeScript: boolean +} + const exportableExtensions = ['.tsx', '.ts', '.jsx', '.js'] const regexExtensionsString = `(\\${exportableExtensions.join('|\\')})$` const regexExtensions = new RegExp(`${regexExtensionsString}`, 'g') @@ -11,14 +16,35 @@ export function indexer(source: fs.PathLike, recursive = false, isTypeScript = f sensitivity: 'base', }) - let text = '' + let result: Result = { text: '', isTypeScript } let items = fs.readdirSync(source) items = items.sort(collator.compare).filter((name) => !isIndex.test(name)) - const files = [] - const directories = [] + const [files, directories] = getFilesDirectories(items, source) + + result = makeIndexFile(result, files) + + if (files.length > 0 && directories.length > 0) { + result.text += '\n' + } + + result = searchNextDirectory(result, directories, source, recursive) + + if (!result.text) return result.isTypeScript + + if (result.isTypeScript) { + fs.writeFileSync(`${source}/index.ts`, result.text) + } else { + fs.writeFileSync(`${source}/index.js`, result.text) + } + + return result.isTypeScript +} +function getFilesDirectories(items: string[], source: fs.PathLike) { + const files: string[] = [] + const directories: string[] = [] for (let i = 0; i < items.length; i++) { const item = items[i] const itemStat = fs.statSync(`${source}/${item}`) @@ -29,44 +55,41 @@ export function indexer(source: fs.PathLike, recursive = false, isTypeScript = f directories.push(item) } } + return [files, directories] +} +function makeIndexFile(result: Result, files: string[]) { for (let i = 0; i < files.length; i++) { const filename = files[i] const nameNoExtension = filename.replace(regexExtensions, '') - if(nameNoExtension === 'index'){ + if (nameNoExtension === 'index') { continue } - text += `export { ${nameNoExtension} } from './${nameNoExtension}'\n` + result.text += `export { ${nameNoExtension} } from './${nameNoExtension}'\n` if (/(\.tsx|\.ts)$/m.test(filename)) { - isTypeScript = true + result.isTypeScript = true } } + return result +} - if (files.length > 0 && directories.length > 0) { - text += '\n' - } - +function searchNextDirectory( + result: Result, + directories: string[], + source: fs.PathLike, + recursive = false, +) { for (let i = 0; i < directories.length; i++) { const directory = directories[i] - text += `export * from './${directory}'\n` + result.text += `export * from './${directory}'\n` if (recursive) { const path = `${source}/${directory}` - isTypeScript = indexer(path, true, isTypeScript) + result.isTypeScript = indexer(path, true, result.isTypeScript) } } - if (!text) return isTypeScript - - let indexName = `${source}/index.js` - - if (isTypeScript) { - indexName = `${source}/index.ts` - } - - fs.writeFileSync(indexName, text) - - return isTypeScript + return result } diff --git a/src/utils/loadInit/loadInit.ts b/src/utils/loadInit/loadInit.ts index 9270523..1a8a9b7 100644 --- a/src/utils/loadInit/loadInit.ts +++ b/src/utils/loadInit/loadInit.ts @@ -22,6 +22,4 @@ export async function loadInit(name: string) { } catch (error) { console.log('something went wrong') } - - // InitTemplate.createInit(process.cwd(), template) } diff --git a/src/utils/parseEmmet/parseEmmet.test.ts b/src/utils/parseEmmet/parseEmmet.test.ts index e3ed3b3..c4a1bd5 100644 --- a/src/utils/parseEmmet/parseEmmet.test.ts +++ b/src/utils/parseEmmet/parseEmmet.test.ts @@ -2,12 +2,12 @@ import { expect } from 'vitest' import { test, describe } from 'vitest' import { parseEmmet } from './parseEmmet.js' import { EmmetToken } from '../EmmetToken/EmmetToken.js' -import { parseString } from '../parseString/parseString' +import { emmetLexer } from '../emmetLexer/emmetLexer.js' describe('should parse emmet', () => { test('default', () => { const string = 'hello.world>this+is>(an#example)*5' - const emmetStrings = parseString(string) + const emmetStrings = emmetLexer(string) const result = parseEmmet(emmetStrings) const correct = [ diff --git a/src/utils/parseTokens/getReplacementMap/getReplacement.test.ts b/src/utils/parseTokens/getReplacementMap/getReplacement.test.ts new file mode 100644 index 0000000..314ef92 --- /dev/null +++ b/src/utils/parseTokens/getReplacementMap/getReplacement.test.ts @@ -0,0 +1,32 @@ +import { test, describe, expect } from 'vitest' +import { getReplacementMap } from './getReplacementMap.js' + +describe('getReplacementMap test', () => { + test('should exist', () => { + expect(getReplacementMap).toBeDefined() + }) + test('should parse value', () => { + const tokenValue = '[Hello="world"]' + const map = new Map([['Hello', 'world']]) + + expect(getReplacementMap(tokenValue)).toStrictEqual(map) + }) + test('should parse value with space', () => { + const tokenValue = '[title="Hello world"]' + const map = new Map([['title', 'Hello world']]) + + expect(getReplacementMap(tokenValue)).toStrictEqual(map) + }) + test('should parse value with single quotes', () => { + const tokenValue = '[title=\'Hello world\']' + const map = new Map([['title', 'Hello world']]) + + expect(getReplacementMap(tokenValue)).toStrictEqual(map) + }) + test('should parse value multiple attributes', () => { + const tokenValue = '[a=\'value1\' b="value2"]' + const map = new Map([['a', 'value1'], ['b', 'value2']]) + + expect(getReplacementMap(tokenValue)).toStrictEqual(map) + }) +}) diff --git a/src/utils/getReplacementMap/getReplacementMap.ts b/src/utils/parseTokens/getReplacementMap/getReplacementMap.ts similarity index 89% rename from src/utils/getReplacementMap/getReplacementMap.ts rename to src/utils/parseTokens/getReplacementMap/getReplacementMap.ts index 0d92ea5..e19cbe1 100644 --- a/src/utils/getReplacementMap/getReplacementMap.ts +++ b/src/utils/parseTokens/getReplacementMap/getReplacementMap.ts @@ -4,7 +4,7 @@ export function getReplacementMap(string: string) { string = string.replace(/ /g, ' ') const keys = string.match(/\w+(?==)/g) string = string.replace(/\w+=/g, '') - const values = string.match(/(?<=").*?(?=")/g) + const values = string.match(/(?<=").*?(?=")|(?<=').*?(?=')/g) if (!keys || !values || keys.length !== values.length) { console.error('The attr property is not properly formatted.') diff --git a/src/utils/parseTokens/parseToken/attrInstruction/attrInstruction.ts b/src/utils/parseTokens/parseToken/attrInstruction/attrInstruction.ts index 373123f..4061b80 100644 --- a/src/utils/parseTokens/parseToken/attrInstruction/attrInstruction.ts +++ b/src/utils/parseTokens/parseToken/attrInstruction/attrInstruction.ts @@ -1,5 +1,5 @@ import { EmmetToken } from '../../../EmmetToken/EmmetToken.js' -import { getReplacementMap } from '../../../getReplacementMap/getReplacementMap.js' +import { getReplacementMap } from '../../getReplacementMap/getReplacementMap.js' import { State } from '../../parseTokens.js' export function attrInstruction(token: EmmetToken) { diff --git a/src/utils/parseTokens/parseTokens.test.ts b/src/utils/parseTokens/parseTokens.test.ts index 1111d28..3422ef7 100644 --- a/src/utils/parseTokens/parseTokens.test.ts +++ b/src/utils/parseTokens/parseTokens.test.ts @@ -1,7 +1,7 @@ import { expect } from 'vitest' import { test, describe } from 'vitest' import { parseTokens } from './parseTokens.js' -import { parseString } from '../parseString/parseString.js' +import { emmetLexer } from '../emmetLexer/emmetLexer.js' import { parseEmmet } from '../parseEmmet/parseEmmet.js' import { Settings } from '../Settings/Settings.js' import { Template } from '../Template/Template.js' @@ -11,7 +11,7 @@ Settings.init() describe('should parse tokens', () => { test('name', () => { const string = 'hello' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -26,7 +26,7 @@ describe('should parse tokens', () => { }) test('siblings', () => { const string = 'hello+world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -51,7 +51,7 @@ describe('should parse tokens', () => { }) test('child', () => { const string = 'hello>world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -76,7 +76,7 @@ describe('should parse tokens', () => { }) test('up', () => { const string = 'hello>world^mister' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -110,7 +110,7 @@ describe('should parse tokens', () => { }) test('empty', () => { const string = '/hello' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -125,7 +125,7 @@ describe('should parse tokens', () => { }) test('empty chaining', () => { const string = '/hello/world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -150,7 +150,7 @@ describe('should parse tokens', () => { }) test('multiply', () => { const string = 'hello$*10' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -180,7 +180,7 @@ describe('should parse tokens', () => { }) test('multiplyStart', () => { const string = 'hello$@5*10' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -210,7 +210,7 @@ describe('should parse tokens', () => { }) test('Group', () => { const string = '(hello$+world$)*5' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -249,7 +249,7 @@ describe('should parse tokens', () => { }) test('attr', () => { const string = 'hello[world="yes"]' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -268,7 +268,7 @@ describe('should parse tokens', () => { }) test('attr*5', () => { const string = 'hello$[world="yes"]*5' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -301,7 +301,7 @@ describe('should parse tokens', () => { }) test('empty should not apply to children', () => { const string = '/hello>world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -326,7 +326,7 @@ describe('should parse tokens', () => { }) test('class should change type', () => { const string = 'hello.test' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -341,7 +341,7 @@ describe('should parse tokens', () => { }) test('root class should apply to all', () => { const string = 'hello.test>world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -366,7 +366,7 @@ describe('should parse tokens', () => { }) test('id should change type', () => { const string = 'test#test' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -381,7 +381,7 @@ describe('should parse tokens', () => { }) test('root class should apply to all', () => { const string = 'hello.test>world#default>thing' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) const hello = new Template({ @@ -414,7 +414,7 @@ describe('should parse tokens', () => { }) test('grouping children', () => { const string = 'hello>(to$+the$+world$)*3' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -465,7 +465,7 @@ describe('should parse tokens', () => { describe('should parse examples', () => { test('Child: >', () => { const string = 'hello>world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -490,7 +490,7 @@ describe('should parse examples', () => { }) test('Sibling: +', () => { const string = 'hello+world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -515,7 +515,7 @@ describe('should parse examples', () => { }) test('Climb-up: ^', () => { const string = 'hello>to+the^world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -558,7 +558,7 @@ describe('should parse examples', () => { }) test('Multiplication: *', () => { const string = 'hello>world$*5' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -589,7 +589,7 @@ describe('should parse examples', () => { }) test('ID: #', () => { const string = 'hello>world#file' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -614,7 +614,7 @@ describe('should parse examples', () => { }) test('CLASS: .', () => { const string = 'hello.file' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -629,7 +629,7 @@ describe('should parse examples', () => { }) test('Replace Contents: ', () => { const string = 'hello[log="error"]' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -648,7 +648,7 @@ describe('should parse examples', () => { }) test('empty: /', () => { const string = '/hello/world' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) @@ -673,7 +673,7 @@ describe('should parse examples', () => { }) test('Grouping: ()', () => { const string = 'hello>(to$+the$+world$)*5' - const emmetString = parseString(string) + const emmetString = emmetLexer(string) const emmetToken = parseEmmet(emmetString) const root = parseTokens(emmetToken) diff --git a/tsconfig.json b/tsconfig.json index 7bb3f9b..43ee275 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "rootDir": "src", - "outDir": "dist", + "outDir": "build", "lib": ["ESNext", "dom"], "strict": true, "target": "es6",