From 603c3ead0f2b895a447dd9cfe98ce6ef27eec79c Mon Sep 17 00:00:00 2001 From: Nikolay Kost Date: Mon, 28 Aug 2023 15:26:27 +0300 Subject: [PATCH] fix: bug with lost closing tag (#186) * fix: closing tag bug * chore: add changeset thin-crabs-wonder.md * chore: remove debug code * chore: add more tests --- .changeset/thin-crabs-wonder.md | 14 ++ examples/vue2-example/package-lock.json | 129 ------------- package-lock.json | 2 +- packages/bbob-cli/package-lock.json | 152 +++------------- packages/bbob-parser/src/parse.js | 58 ++++-- packages/bbob-parser/test/parse.test.js | 56 ++++++ packages/bbob-react/package-lock.json | 232 +++--------------------- packages/bbob-vue2/package-lock.json | 232 +++--------------------- packages/bbob-vue3/package.json | 2 +- rollup.config.mjs | 2 +- 10 files changed, 185 insertions(+), 694 deletions(-) create mode 100644 .changeset/thin-crabs-wonder.md diff --git a/.changeset/thin-crabs-wonder.md b/.changeset/thin-crabs-wonder.md new file mode 100644 index 0000000..5c6569b --- /dev/null +++ b/.changeset/thin-crabs-wonder.md @@ -0,0 +1,14 @@ +--- +"fix: lost closing tag in the middle #184": patch +--- + +Fixes bug where nested tag `quote` lost +``` +[color=red]test[/color] +[quote]xxxsdfasdf +sdfasdfasdf + +[url=xxx]xxx[/url] +``` + +Now content not will be lost, but not closed tag will displayed as raw text diff --git a/examples/vue2-example/package-lock.json b/examples/vue2-example/package-lock.json index 79f03f4..f3cd3a1 100644 --- a/examples/vue2-example/package-lock.json +++ b/examples/vue2-example/package-lock.json @@ -8,8 +8,6 @@ "name": "vue2-example", "version": "2.8.0", "dependencies": { - "@bbob/preset-vue": "*", - "@bbob/vue2": "*", "core-js": "3.26.1", "vue": "2.7.14" }, @@ -1670,71 +1668,6 @@ "node": ">=6.9.0" } }, - "node_modules/@bbob/core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/core/-/core-2.8.0.tgz", - "integrity": "sha512-gL/qAJt+PGheGnv2dZus8SNAhLjLpDEDUwietocZiAXSK9xmOch+NDVcL0/3CbvbP2Ffg1l4uV83voDfnZeYlA==", - "dependencies": { - "@bbob/parser": "^2.8.0" - } - }, - "node_modules/@bbob/html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/html/-/html-2.8.0.tgz", - "integrity": "sha512-vUGhMKlDKCxDelkeXJXO1TpLGxSOLLOokrsSPoRg+3sUxE+2mM/2oLtsdrOZFw8UiRTORfFjf1g897ZjcQU5EA==", - "dependencies": { - "@bbob/core": "^2.8.0", - "@bbob/plugin-helper": "^2.8.0" - } - }, - "node_modules/@bbob/parser": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/parser/-/parser-2.8.0.tgz", - "integrity": "sha512-S6mB7WmfQMcllginLf2KIen12Aswd93hJkxRr2FllDjT+5FGs0cCpDXPm9jVGOJl3TWlZOnj9Vnpvfj0ZejhXQ==", - "dependencies": { - "@bbob/plugin-helper": "^2.8.0" - } - }, - "node_modules/@bbob/plugin-helper": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/plugin-helper/-/plugin-helper-2.8.0.tgz", - "integrity": "sha512-uwl7KbHZ3J+APPUAAEHHS6AoyU6iB4wgZo6U+M+99NSykt/TE8APfU1cMs1EzGsOGkPci8In8VwwZZgnXg3qeg==" - }, - "node_modules/@bbob/preset": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/preset/-/preset-2.8.0.tgz", - "integrity": "sha512-ynF8D3+VMTP6Ec3vw2sywgfnoiUEEZ1fFNyS1cRQ+/cg5YVW6TP3gQHnJHhxPax8udF3GikGMpURQKwHaS20QQ==" - }, - "node_modules/@bbob/preset-html5": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/preset-html5/-/preset-html5-2.8.0.tgz", - "integrity": "sha512-Rhb9D4qdL+D/AXRRqGapyTh3mYgyNMbfDHo7XclRyYNDx07aiLG8NFreEragYN/INPk6MI4ohEuBSpOEZxy3dw==", - "dependencies": { - "@bbob/plugin-helper": "^2.8.0", - "@bbob/preset": "^2.8.0" - } - }, - "node_modules/@bbob/preset-vue": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/preset-vue/-/preset-vue-2.8.0.tgz", - "integrity": "sha512-uFs77PIQz1BUJGlc7JWc7ys1tgd4iRPIb2qP/x2vbihslyS6c3geMrQWkBqYVj4P9kVSBqlLZ7w+w+yO7zxL/A==", - "dependencies": { - "@bbob/preset-html5": "^2.8.0" - } - }, - "node_modules/@bbob/vue2": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/vue2/-/vue2-2.8.0.tgz", - "integrity": "sha512-bBj5PjddWeQa4Z58WprLZUZWE0M3VOWXiW8ikCGs/uRJ55dvGswDDbbKcSj3a9oHu//2R/bNZZ5BMv2U3DdTDA==", - "dependencies": { - "@bbob/core": "^2.8.0", - "@bbob/html": "^2.8.0", - "@bbob/plugin-helper": "^2.8.0" - }, - "peerDependencies": { - "vue": "2.x" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", @@ -11451,68 +11384,6 @@ "to-fast-properties": "^2.0.0" } }, - "@bbob/core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/core/-/core-2.8.0.tgz", - "integrity": "sha512-gL/qAJt+PGheGnv2dZus8SNAhLjLpDEDUwietocZiAXSK9xmOch+NDVcL0/3CbvbP2Ffg1l4uV83voDfnZeYlA==", - "requires": { - "@bbob/parser": "^2.8.0" - } - }, - "@bbob/html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/html/-/html-2.8.0.tgz", - "integrity": "sha512-vUGhMKlDKCxDelkeXJXO1TpLGxSOLLOokrsSPoRg+3sUxE+2mM/2oLtsdrOZFw8UiRTORfFjf1g897ZjcQU5EA==", - "requires": { - "@bbob/core": "^2.8.0", - "@bbob/plugin-helper": "^2.8.0" - } - }, - "@bbob/parser": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/parser/-/parser-2.8.0.tgz", - "integrity": "sha512-S6mB7WmfQMcllginLf2KIen12Aswd93hJkxRr2FllDjT+5FGs0cCpDXPm9jVGOJl3TWlZOnj9Vnpvfj0ZejhXQ==", - "requires": { - "@bbob/plugin-helper": "^2.8.0" - } - }, - "@bbob/plugin-helper": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/plugin-helper/-/plugin-helper-2.8.0.tgz", - "integrity": "sha512-uwl7KbHZ3J+APPUAAEHHS6AoyU6iB4wgZo6U+M+99NSykt/TE8APfU1cMs1EzGsOGkPci8In8VwwZZgnXg3qeg==" - }, - "@bbob/preset": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/preset/-/preset-2.8.0.tgz", - "integrity": "sha512-ynF8D3+VMTP6Ec3vw2sywgfnoiUEEZ1fFNyS1cRQ+/cg5YVW6TP3gQHnJHhxPax8udF3GikGMpURQKwHaS20QQ==" - }, - "@bbob/preset-html5": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/preset-html5/-/preset-html5-2.8.0.tgz", - "integrity": "sha512-Rhb9D4qdL+D/AXRRqGapyTh3mYgyNMbfDHo7XclRyYNDx07aiLG8NFreEragYN/INPk6MI4ohEuBSpOEZxy3dw==", - "requires": { - "@bbob/plugin-helper": "^2.8.0", - "@bbob/preset": "^2.8.0" - } - }, - "@bbob/preset-vue": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/preset-vue/-/preset-vue-2.8.0.tgz", - "integrity": "sha512-uFs77PIQz1BUJGlc7JWc7ys1tgd4iRPIb2qP/x2vbihslyS6c3geMrQWkBqYVj4P9kVSBqlLZ7w+w+yO7zxL/A==", - "requires": { - "@bbob/preset-html5": "^2.8.0" - } - }, - "@bbob/vue2": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@bbob/vue2/-/vue2-2.8.0.tgz", - "integrity": "sha512-bBj5PjddWeQa4Z58WprLZUZWE0M3VOWXiW8ikCGs/uRJ55dvGswDDbbKcSj3a9oHu//2R/bNZZ5BMv2U3DdTDA==", - "requires": { - "@bbob/core": "^2.8.0", - "@bbob/html": "^2.8.0", - "@bbob/plugin-helper": "^2.8.0" - } - }, "@jridgewell/gen-mapping": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", diff --git a/package-lock.json b/package-lock.json index 4d60b11..dce2140 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "bbob", + "name": "BBob", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/packages/bbob-cli/package-lock.json b/packages/bbob-cli/package-lock.json index 9cdc058..72db99a 100644 --- a/packages/bbob-cli/package-lock.json +++ b/packages/bbob-cli/package-lock.json @@ -1,16 +1,14 @@ { "name": "@bbob/cli", - "version": "2.9.0", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@bbob/cli", - "version": "2.9.0", + "version": "3.0.0", "license": "MIT", "dependencies": { - "@bbob/html": "^2.9.0", - "@bbob/preset-html5": "^2.9.0", "commander": "^2.15.1" }, "bin": { @@ -19,171 +17,63 @@ }, "../bbob-core": { "name": "@bbob/core", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/parser": "^2.8.2" + "@bbob/parser": "^3.0.0" } }, - "../bbob-core/node_modules/@bbob/parser": { - "resolved": "../bbob-parser", - "link": true - }, "../bbob-html": { "name": "@bbob/html", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" + "@bbob/core": "^3.0.0", + "@bbob/plugin-helper": "^3.0.0" } }, - "../bbob-html/node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "../bbob-html/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, "../bbob-parser": { "name": "@bbob/parser", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/plugin-helper": "^2.8.2" + "@bbob/plugin-helper": "^3.0.0" } }, - "../bbob-parser/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, "../bbob-plugin-helper": { "name": "@bbob/plugin-helper", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT" }, "../bbob-preset": { "name": "@bbob/preset", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT" }, "../bbob-preset-html5": { "name": "@bbob/preset-html5", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/plugin-helper": "^2.8.2", - "@bbob/preset": "^2.8.2" + "@bbob/plugin-helper": "^3.0.0", + "@bbob/preset": "^3.0.0" }, "devDependencies": { - "@bbob/html": "^2.8.2" + "@bbob/html": "^3.0.0" } }, - "../bbob-preset-html5/node_modules/@bbob/html": { - "resolved": "../bbob-html", - "link": true - }, - "../bbob-preset-html5/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, - "../bbob-preset-html5/node_modules/@bbob/preset": { - "resolved": "../bbob-preset", - "link": true - }, - "node_modules/@bbob/html": { - "resolved": "../bbob-html", - "link": true - }, - "node_modules/@bbob/preset-html5": { - "resolved": "../bbob-preset-html5", - "link": true - }, "node_modules/commander": { "version": "2.17.1", "license": "MIT" } }, "dependencies": { - "@bbob/html": { - "version": "file:../bbob-html", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - }, - "@bbob/preset-html5": { - "version": "file:../bbob-preset-html5", - "requires": { - "@bbob/html": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2", - "@bbob/preset": "^2.8.2" - }, - "dependencies": { - "@bbob/html": { - "version": "file:../bbob-html", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - }, - "@bbob/preset": { - "version": "file:../bbob-preset" - } - } - }, "commander": { "version": "2.17.1" } diff --git a/packages/bbob-parser/src/parse.js b/packages/bbob-parser/src/parse.js index 9c84a5c..be7145a 100644 --- a/packages/bbob-parser/src/parse.js +++ b/packages/bbob-parser/src/parse.js @@ -6,15 +6,15 @@ import { createList } from './utils'; /** * @public - * @param {String} input + * @param {string} input * @param {Object} opts * @param {Function} opts.createTokenizer * @param {Array} opts.onlyAllowTags * @param {Array} opts.contextFreeTags * @param {Boolean} opts.enableEscapeTags - * @param {String} opts.openTag - * @param {String} opts.closeTag - * @return {Array} + * @param {string} opts.openTag + * @param {string} opts.closeTag + * @return {Array} */ const parse = (input, opts = {}) => { const options = opts; @@ -50,12 +50,12 @@ const parse = (input, opts = {}) => { /** * Cache for nested tags checks + * @type Set */ const nestedTagsMap = new Set(); /** - * - * @param token + * @param {Token} token * @returns {boolean} */ const isTokenNested = (token) => { @@ -71,14 +71,15 @@ const parse = (input, opts = {}) => { }; /** - * @param tagName + * @private + * @param {string} tagName * @returns {boolean} */ const isTagNested = (tagName) => Boolean(nestedTagsMap.has(tagName)); /** * @private - * @param {String} value + * @param {string} value * @return {boolean} */ const isAllowedTag = (value) => { @@ -114,6 +115,29 @@ const parse = (input, opts = {}) => { return nodes.toArray(); }; + /** + * @private + * @param {string|TagNode} node + * @param {boolean} isNested + */ + const appendNodeAsString = (node, isNested = true) => { + const items = getNodes(); + + if (Array.isArray(items)) { + items.push(node.toTagStart({ openTag, closeTag })); + + if (node.content.length) { + node.content.forEach((item) => { + items.push(item); + }); + + if (isNested) { + items.push(node.toTagEnd({ openTag, closeTag })); + } + } + } + }; + /** * @private * @param {string|TagNode} node @@ -126,15 +150,7 @@ const parse = (input, opts = {}) => { if (isAllowedTag(node.tag)) { items.push(node.toTagNode()); } else { - items.push(node.toTagStart({ openTag, closeTag })); - - if (node.content.length) { - node.content.forEach((item) => { - items.push(item); - }); - - items.push(node.toTagEnd({ openTag, closeTag })); - } + appendNodeAsString(node); } } else { items.push(node); @@ -269,6 +285,14 @@ const parse = (input, opts = {}) => { // eslint-disable-next-line no-unused-vars const tokens = tokenizer.tokenize(); + // handles situations where we open tag, but forgot close them + // for ex [q]test[/q][u]some[/u][q]some [u]some[/u] // forgot to close [/q] + // so we need to flush nested content to nodes array + const lastNestedNode = nestedNodes.flushLast(); + if (lastNestedNode && isTagNested(lastNestedNode.tag)) { + appendNodeAsString(lastNestedNode, false); + } + return nodes.toArray(); }; diff --git a/packages/bbob-parser/test/parse.test.js b/packages/bbob-parser/test/parse.test.js index 494496d..cb206a2 100644 --- a/packages/bbob-parser/test/parse.test.js +++ b/packages/bbob-parser/test/parse.test.js @@ -361,6 +361,62 @@ describe('Parser', () => { ]); }); + test('parse with lost closing tag in middle', () => { + const str = `[quote]some[/quote][color=red]test[/color] +[quote]xxxsdfasdf +sdfasdfasdf + +[url=xxx]xxx[/url]` + + expectOutput( + parse(str), + [ + { tag: 'quote', attrs: {}, content: ['some'] }, + { tag: 'color', attrs: { red: 'red' }, content: ['test'] }, + '\n', + '[quote]', + 'xxxsdfasdf', + '\n', + 'sdfasdfasdf', + '\n', + '\n', + { tag: 'url', attrs: { xxx: 'xxx' }, content: ['xxx'] } + ] + ) + }) + + test('parse with lost closing tag on start', () => { + const str = `[quote]xxxsdfasdf[quote]some[/quote][color=red]test[/color]sdfasdfasdf[url=xxx]xxx[/url]` + + expectOutput( + parse(str), + [ + '[quote]', + 'xxxsdfasdf', + { tag: 'quote', attrs: {}, content: ['some'] }, + { tag: 'color', attrs: { red: 'red' }, content: ['test'] }, + 'sdfasdfasdf', + { tag: 'url', attrs: { xxx: 'xxx' }, content: ['xxx'] } + ] + ) + }) + + test('parse with lost closing tag on end', () => { + const str = `[quote]some[/quote][color=red]test[/color]sdfasdfasdf[url=xxx]xxx[/url][quote]xxxsdfasdf` + + expectOutput( + parse(str), + [ + { tag: 'quote', attrs: {}, content: ['some'] }, + { tag: 'color', attrs: { red: 'red' }, content: ['test'] }, + 'sdfasdfasdf', + { tag: 'url', attrs: { xxx: 'xxx' }, content: ['xxx'] }, + '[quote]', + 'xxxsdfasdf', + ] + ) + }) + describe('html', () => { const parseHTML = input => parse(input, { openTag: '<', closeTag: '>' }); diff --git a/packages/bbob-react/package-lock.json b/packages/bbob-react/package-lock.json index d8b5a0f..5b528bf 100644 --- a/packages/bbob-react/package-lock.json +++ b/packages/bbob-react/package-lock.json @@ -1,20 +1,14 @@ { "name": "@bbob/react", - "version": "2.9.0", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@bbob/react", - "version": "2.9.0", + "version": "3.0.0", "license": "MIT", - "dependencies": { - "@bbob/core": "^2.9.0", - "@bbob/html": "^2.9.0", - "@bbob/plugin-helper": "^2.9.0" - }, "devDependencies": { - "@bbob/preset-react": "^2.9.0", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "13.x", "react": "18.x", @@ -27,101 +21,69 @@ }, "../bbob-core": { "name": "@bbob/core", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/parser": "^2.8.2" + "@bbob/parser": "^3.0.0" } }, - "../bbob-core/node_modules/@bbob/parser": { - "resolved": "../bbob-parser", - "link": true - }, "../bbob-html": { "name": "@bbob/html", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" + "@bbob/core": "^3.0.0", + "@bbob/plugin-helper": "^3.0.0" } }, - "../bbob-html/node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "../bbob-html/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, "../bbob-parser": { "name": "@bbob/parser", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/plugin-helper": "^2.8.2" + "@bbob/plugin-helper": "^3.0.0" } }, - "../bbob-parser/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, "../bbob-plugin-helper": { "name": "@bbob/plugin-helper", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT" }, "../bbob-preset": { "name": "@bbob/preset", - "version": "2.8.2", - "dev": true, + "version": "3.0.0", + "extraneous": true, "license": "MIT" }, "../bbob-preset-html5": { "name": "@bbob/preset-html5", - "version": "2.8.2", - "dev": true, + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/plugin-helper": "^2.8.2", - "@bbob/preset": "^2.8.2" + "@bbob/plugin-helper": "^3.0.0", + "@bbob/preset": "^3.0.0" }, "devDependencies": { - "@bbob/html": "^2.8.2" + "@bbob/html": "^3.0.0" } }, - "../bbob-preset-html5/node_modules/@bbob/html": { - "resolved": "../bbob-html", - "link": true - }, - "../bbob-preset-html5/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, - "../bbob-preset-html5/node_modules/@bbob/preset": { - "resolved": "../bbob-preset", - "link": true - }, "../bbob-preset-react": { "name": "@bbob/preset-react", - "version": "2.8.2", - "dev": true, + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/preset-html5": "^2.8.2" + "@bbob/preset-html5": "^3.0.0" }, "devDependencies": { - "@bbob/core": "^2.8.2" + "@bbob/core": "^3.0.0" } }, - "../bbob-preset-react/node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "../bbob-preset-react/node_modules/@bbob/preset-html5": { - "resolved": "../bbob-preset-html5", - "link": true - }, "node_modules/@babel/code-frame": { "version": "7.16.7", "dev": true, @@ -221,22 +183,6 @@ "node": ">=6.9.0" } }, - "node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "node_modules/@bbob/html": { - "resolved": "../bbob-html", - "link": true - }, - "node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, - "node_modules/@bbob/preset-react": { - "resolved": "../bbob-preset-react", - "link": true - }, "node_modules/@testing-library/dom": { "version": "8.13.0", "dev": true, @@ -776,134 +722,6 @@ "regenerator-runtime": "^0.13.4" } }, - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/html": { - "version": "file:../bbob-html", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - }, - "@bbob/preset-react": { - "version": "file:../bbob-preset-react", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/preset-html5": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/preset-html5": { - "version": "file:../bbob-preset-html5", - "requires": { - "@bbob/html": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2", - "@bbob/preset": "^2.8.2" - }, - "dependencies": { - "@bbob/html": { - "version": "file:../bbob-html", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - }, - "@bbob/preset": { - "version": "file:../bbob-preset" - } - } - } - } - }, "@testing-library/dom": { "version": "8.13.0", "dev": true, diff --git a/packages/bbob-vue2/package-lock.json b/packages/bbob-vue2/package-lock.json index f87877a..5bb596a 100644 --- a/packages/bbob-vue2/package-lock.json +++ b/packages/bbob-vue2/package-lock.json @@ -1,20 +1,14 @@ { "name": "@bbob/vue2", - "version": "2.9.0", + "version": "3.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@bbob/vue2", - "version": "2.9.0", + "version": "3.0.0", "license": "MIT", - "dependencies": { - "@bbob/core": "^2.9.0", - "@bbob/html": "^2.9.0", - "@bbob/plugin-helper": "^2.9.0" - }, "devDependencies": { - "@bbob/preset-vue": "^2.9.0", "@testing-library/vue": "5.8.3", "vue": "2.7.14", "vue-template-compiler": "2.7.14" @@ -25,101 +19,69 @@ }, "../bbob-core": { "name": "@bbob/core", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/parser": "^2.8.2" + "@bbob/parser": "^3.0.0" } }, - "../bbob-core/node_modules/@bbob/parser": { - "resolved": "../bbob-parser", - "link": true - }, "../bbob-html": { "name": "@bbob/html", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" + "@bbob/core": "^3.0.0", + "@bbob/plugin-helper": "^3.0.0" } }, - "../bbob-html/node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "../bbob-html/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, "../bbob-parser": { "name": "@bbob/parser", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/plugin-helper": "^2.8.2" + "@bbob/plugin-helper": "^3.0.0" } }, - "../bbob-parser/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, "../bbob-plugin-helper": { "name": "@bbob/plugin-helper", - "version": "2.8.2", + "version": "3.0.0", + "extraneous": true, "license": "MIT" }, "../bbob-preset": { "name": "@bbob/preset", - "version": "2.8.2", - "dev": true, + "version": "3.0.0", + "extraneous": true, "license": "MIT" }, "../bbob-preset-html5": { "name": "@bbob/preset-html5", - "version": "2.8.2", - "dev": true, + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/plugin-helper": "^2.8.2", - "@bbob/preset": "^2.8.2" + "@bbob/plugin-helper": "^3.0.0", + "@bbob/preset": "^3.0.0" }, "devDependencies": { - "@bbob/html": "^2.8.2" + "@bbob/html": "^3.0.0" } }, - "../bbob-preset-html5/node_modules/@bbob/html": { - "resolved": "../bbob-html", - "link": true - }, - "../bbob-preset-html5/node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, - "../bbob-preset-html5/node_modules/@bbob/preset": { - "resolved": "../bbob-preset", - "link": true - }, "../bbob-preset-vue": { "name": "@bbob/preset-vue", - "version": "2.8.2", - "dev": true, + "version": "3.0.0", + "extraneous": true, "license": "MIT", "dependencies": { - "@bbob/preset-html5": "^2.8.2" + "@bbob/preset-html5": "^3.0.0" }, "devDependencies": { - "@bbob/core": "^2.8.2" + "@bbob/core": "^3.0.0" } }, - "../bbob-preset-vue/node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "../bbob-preset-vue/node_modules/@bbob/preset-html5": { - "resolved": "../bbob-preset-html5", - "link": true - }, "node_modules/@babel/code-frame": { "version": "7.16.0", "dev": true, @@ -199,22 +161,6 @@ "node": ">=6.9.0" } }, - "node_modules/@bbob/core": { - "resolved": "../bbob-core", - "link": true - }, - "node_modules/@bbob/html": { - "resolved": "../bbob-html", - "link": true - }, - "node_modules/@bbob/plugin-helper": { - "resolved": "../bbob-plugin-helper", - "link": true - }, - "node_modules/@bbob/preset-vue": { - "resolved": "../bbob-preset-vue", - "link": true - }, "node_modules/@jest/types": { "version": "26.6.2", "dev": true, @@ -968,134 +914,6 @@ "regenerator-runtime": "^0.13.4" } }, - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/html": { - "version": "file:../bbob-html", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - }, - "@bbob/preset-vue": { - "version": "file:../bbob-preset-vue", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/preset-html5": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/preset-html5": { - "version": "file:../bbob-preset-html5", - "requires": { - "@bbob/html": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2", - "@bbob/preset": "^2.8.2" - }, - "dependencies": { - "@bbob/html": { - "version": "file:../bbob-html", - "requires": { - "@bbob/core": "^2.8.2", - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/core": { - "version": "file:../bbob-core", - "requires": { - "@bbob/parser": "^2.8.2" - }, - "dependencies": { - "@bbob/parser": { - "version": "file:../bbob-parser", - "requires": { - "@bbob/plugin-helper": "^2.8.2" - }, - "dependencies": { - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - } - } - }, - "@bbob/plugin-helper": { - "version": "file:../bbob-plugin-helper" - }, - "@bbob/preset": { - "version": "file:../bbob-preset" - } - } - } - } - }, "@jest/types": { "version": "26.6.2", "dev": true, diff --git a/packages/bbob-vue3/package.json b/packages/bbob-vue3/package.json index 9e8355d..5d88285 100644 --- a/packages/bbob-vue3/package.json +++ b/packages/bbob-vue3/package.json @@ -25,7 +25,7 @@ "module": "es/index.js", "jsnext:main": "es/index.js", "browser": "dist/index.js", - "browserName": "BbobVue", + "browserName": "BbobVue3", "homepage": "https://github.com/JiLiZART/bbob", "author": "Nikolay Kostyurin ", "license": "MIT", diff --git a/rollup.config.mjs b/rollup.config.mjs index 54ada47..ab843c6 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -13,7 +13,7 @@ const pkg = require(`${process.cwd()}/package.json`); const { NODE_ENV } = process.env; const baseConfig = { - input: 'es/index.js', + input: pkg.module, external: ['react', 'vue', 'prop-types'], output: { file: pkg.browser,