2
0
mirror of https://github.com/tenrok/BBob.git synced 2026-05-15 11:59:37 +03:00

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
This commit is contained in:
Nikolay Kost
2023-08-28 15:26:27 +03:00
committed by GitHub
parent 867c1b0710
commit 603c3ead0f
10 changed files with 185 additions and 694 deletions
+14
View File
@@ -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
-129
View File
@@ -8,8 +8,6 @@
"name": "vue2-example", "name": "vue2-example",
"version": "2.8.0", "version": "2.8.0",
"dependencies": { "dependencies": {
"@bbob/preset-vue": "*",
"@bbob/vue2": "*",
"core-js": "3.26.1", "core-js": "3.26.1",
"vue": "2.7.14" "vue": "2.7.14"
}, },
@@ -1670,71 +1668,6 @@
"node": ">=6.9.0" "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": { "node_modules/@jridgewell/gen-mapping": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
@@ -11451,68 +11384,6 @@
"to-fast-properties": "^2.0.0" "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": { "@jridgewell/gen-mapping": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "bbob", "name": "BBob",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
+21 -131
View File
@@ -1,16 +1,14 @@
{ {
"name": "@bbob/cli", "name": "@bbob/cli",
"version": "2.9.0", "version": "3.0.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@bbob/cli", "name": "@bbob/cli",
"version": "2.9.0", "version": "3.0.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/html": "^2.9.0",
"@bbob/preset-html5": "^2.9.0",
"commander": "^2.15.1" "commander": "^2.15.1"
}, },
"bin": { "bin": {
@@ -19,171 +17,63 @@
}, },
"../bbob-core": { "../bbob-core": {
"name": "@bbob/core", "name": "@bbob/core",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/parser": "^2.8.2" "@bbob/parser": "^3.0.0"
} }
}, },
"../bbob-core/node_modules/@bbob/parser": {
"resolved": "../bbob-parser",
"link": true
},
"../bbob-html": { "../bbob-html": {
"name": "@bbob/html", "name": "@bbob/html",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/core": "^2.8.2", "@bbob/core": "^3.0.0",
"@bbob/plugin-helper": "^2.8.2" "@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": { "../bbob-parser": {
"name": "@bbob/parser", "name": "@bbob/parser",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "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": { "../bbob-plugin-helper": {
"name": "@bbob/plugin-helper", "name": "@bbob/plugin-helper",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT" "license": "MIT"
}, },
"../bbob-preset": { "../bbob-preset": {
"name": "@bbob/preset", "name": "@bbob/preset",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT" "license": "MIT"
}, },
"../bbob-preset-html5": { "../bbob-preset-html5": {
"name": "@bbob/preset-html5", "name": "@bbob/preset-html5",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/plugin-helper": "^2.8.2", "@bbob/plugin-helper": "^3.0.0",
"@bbob/preset": "^2.8.2" "@bbob/preset": "^3.0.0"
}, },
"devDependencies": { "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": { "node_modules/commander": {
"version": "2.17.1", "version": "2.17.1",
"license": "MIT" "license": "MIT"
} }
}, },
"dependencies": { "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": { "commander": {
"version": "2.17.1" "version": "2.17.1"
} }
+41 -17
View File
@@ -6,15 +6,15 @@ import { createList } from './utils';
/** /**
* @public * @public
* @param {String} input * @param {string} input
* @param {Object} opts * @param {Object} opts
* @param {Function} opts.createTokenizer * @param {Function} opts.createTokenizer
* @param {Array<string>} opts.onlyAllowTags * @param {Array<string>} opts.onlyAllowTags
* @param {Array<string>} opts.contextFreeTags * @param {Array<string>} opts.contextFreeTags
* @param {Boolean} opts.enableEscapeTags * @param {Boolean} opts.enableEscapeTags
* @param {String} opts.openTag * @param {string} opts.openTag
* @param {String} opts.closeTag * @param {string} opts.closeTag
* @return {Array} * @return {Array<string|TagNode>}
*/ */
const parse = (input, opts = {}) => { const parse = (input, opts = {}) => {
const options = opts; const options = opts;
@@ -50,12 +50,12 @@ const parse = (input, opts = {}) => {
/** /**
* Cache for nested tags checks * Cache for nested tags checks
* @type Set<string>
*/ */
const nestedTagsMap = new Set(); const nestedTagsMap = new Set();
/** /**
* * @param {Token} token
* @param token
* @returns {boolean} * @returns {boolean}
*/ */
const isTokenNested = (token) => { const isTokenNested = (token) => {
@@ -71,14 +71,15 @@ const parse = (input, opts = {}) => {
}; };
/** /**
* @param tagName * @private
* @param {string} tagName
* @returns {boolean} * @returns {boolean}
*/ */
const isTagNested = (tagName) => Boolean(nestedTagsMap.has(tagName)); const isTagNested = (tagName) => Boolean(nestedTagsMap.has(tagName));
/** /**
* @private * @private
* @param {String} value * @param {string} value
* @return {boolean} * @return {boolean}
*/ */
const isAllowedTag = (value) => { const isAllowedTag = (value) => {
@@ -114,6 +115,29 @@ const parse = (input, opts = {}) => {
return nodes.toArray(); 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 * @private
* @param {string|TagNode} node * @param {string|TagNode} node
@@ -126,15 +150,7 @@ const parse = (input, opts = {}) => {
if (isAllowedTag(node.tag)) { if (isAllowedTag(node.tag)) {
items.push(node.toTagNode()); items.push(node.toTagNode());
} else { } else {
items.push(node.toTagStart({ openTag, closeTag })); appendNodeAsString(node);
if (node.content.length) {
node.content.forEach((item) => {
items.push(item);
});
items.push(node.toTagEnd({ openTag, closeTag }));
}
} }
} else { } else {
items.push(node); items.push(node);
@@ -269,6 +285,14 @@ const parse = (input, opts = {}) => {
// eslint-disable-next-line no-unused-vars // eslint-disable-next-line no-unused-vars
const tokens = tokenizer.tokenize(); 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(); return nodes.toArray();
}; };
+56
View File
@@ -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', () => { describe('html', () => {
const parseHTML = input => parse(input, { openTag: '<', closeTag: '>' }); const parseHTML = input => parse(input, { openTag: '<', closeTag: '>' });
+25 -207
View File
@@ -1,20 +1,14 @@
{ {
"name": "@bbob/react", "name": "@bbob/react",
"version": "2.9.0", "version": "3.0.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@bbob/react", "name": "@bbob/react",
"version": "2.9.0", "version": "3.0.0",
"license": "MIT", "license": "MIT",
"dependencies": {
"@bbob/core": "^2.9.0",
"@bbob/html": "^2.9.0",
"@bbob/plugin-helper": "^2.9.0"
},
"devDependencies": { "devDependencies": {
"@bbob/preset-react": "^2.9.0",
"@testing-library/jest-dom": "^5.16.4", "@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "13.x", "@testing-library/react": "13.x",
"react": "18.x", "react": "18.x",
@@ -27,101 +21,69 @@
}, },
"../bbob-core": { "../bbob-core": {
"name": "@bbob/core", "name": "@bbob/core",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/parser": "^2.8.2" "@bbob/parser": "^3.0.0"
} }
}, },
"../bbob-core/node_modules/@bbob/parser": {
"resolved": "../bbob-parser",
"link": true
},
"../bbob-html": { "../bbob-html": {
"name": "@bbob/html", "name": "@bbob/html",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/core": "^2.8.2", "@bbob/core": "^3.0.0",
"@bbob/plugin-helper": "^2.8.2" "@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": { "../bbob-parser": {
"name": "@bbob/parser", "name": "@bbob/parser",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "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": { "../bbob-plugin-helper": {
"name": "@bbob/plugin-helper", "name": "@bbob/plugin-helper",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT" "license": "MIT"
}, },
"../bbob-preset": { "../bbob-preset": {
"name": "@bbob/preset", "name": "@bbob/preset",
"version": "2.8.2", "version": "3.0.0",
"dev": true, "extraneous": true,
"license": "MIT" "license": "MIT"
}, },
"../bbob-preset-html5": { "../bbob-preset-html5": {
"name": "@bbob/preset-html5", "name": "@bbob/preset-html5",
"version": "2.8.2", "version": "3.0.0",
"dev": true, "extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/plugin-helper": "^2.8.2", "@bbob/plugin-helper": "^3.0.0",
"@bbob/preset": "^2.8.2" "@bbob/preset": "^3.0.0"
}, },
"devDependencies": { "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": { "../bbob-preset-react": {
"name": "@bbob/preset-react", "name": "@bbob/preset-react",
"version": "2.8.2", "version": "3.0.0",
"dev": true, "extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/preset-html5": "^2.8.2" "@bbob/preset-html5": "^3.0.0"
}, },
"devDependencies": { "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": { "node_modules/@babel/code-frame": {
"version": "7.16.7", "version": "7.16.7",
"dev": true, "dev": true,
@@ -221,22 +183,6 @@
"node": ">=6.9.0" "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": { "node_modules/@testing-library/dom": {
"version": "8.13.0", "version": "8.13.0",
"dev": true, "dev": true,
@@ -776,134 +722,6 @@
"regenerator-runtime": "^0.13.4" "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": { "@testing-library/dom": {
"version": "8.13.0", "version": "8.13.0",
"dev": true, "dev": true,
+25 -207
View File
@@ -1,20 +1,14 @@
{ {
"name": "@bbob/vue2", "name": "@bbob/vue2",
"version": "2.9.0", "version": "3.0.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@bbob/vue2", "name": "@bbob/vue2",
"version": "2.9.0", "version": "3.0.0",
"license": "MIT", "license": "MIT",
"dependencies": {
"@bbob/core": "^2.9.0",
"@bbob/html": "^2.9.0",
"@bbob/plugin-helper": "^2.9.0"
},
"devDependencies": { "devDependencies": {
"@bbob/preset-vue": "^2.9.0",
"@testing-library/vue": "5.8.3", "@testing-library/vue": "5.8.3",
"vue": "2.7.14", "vue": "2.7.14",
"vue-template-compiler": "2.7.14" "vue-template-compiler": "2.7.14"
@@ -25,101 +19,69 @@
}, },
"../bbob-core": { "../bbob-core": {
"name": "@bbob/core", "name": "@bbob/core",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/parser": "^2.8.2" "@bbob/parser": "^3.0.0"
} }
}, },
"../bbob-core/node_modules/@bbob/parser": {
"resolved": "../bbob-parser",
"link": true
},
"../bbob-html": { "../bbob-html": {
"name": "@bbob/html", "name": "@bbob/html",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/core": "^2.8.2", "@bbob/core": "^3.0.0",
"@bbob/plugin-helper": "^2.8.2" "@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": { "../bbob-parser": {
"name": "@bbob/parser", "name": "@bbob/parser",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "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": { "../bbob-plugin-helper": {
"name": "@bbob/plugin-helper", "name": "@bbob/plugin-helper",
"version": "2.8.2", "version": "3.0.0",
"extraneous": true,
"license": "MIT" "license": "MIT"
}, },
"../bbob-preset": { "../bbob-preset": {
"name": "@bbob/preset", "name": "@bbob/preset",
"version": "2.8.2", "version": "3.0.0",
"dev": true, "extraneous": true,
"license": "MIT" "license": "MIT"
}, },
"../bbob-preset-html5": { "../bbob-preset-html5": {
"name": "@bbob/preset-html5", "name": "@bbob/preset-html5",
"version": "2.8.2", "version": "3.0.0",
"dev": true, "extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/plugin-helper": "^2.8.2", "@bbob/plugin-helper": "^3.0.0",
"@bbob/preset": "^2.8.2" "@bbob/preset": "^3.0.0"
}, },
"devDependencies": { "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": { "../bbob-preset-vue": {
"name": "@bbob/preset-vue", "name": "@bbob/preset-vue",
"version": "2.8.2", "version": "3.0.0",
"dev": true, "extraneous": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@bbob/preset-html5": "^2.8.2" "@bbob/preset-html5": "^3.0.0"
}, },
"devDependencies": { "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": { "node_modules/@babel/code-frame": {
"version": "7.16.0", "version": "7.16.0",
"dev": true, "dev": true,
@@ -199,22 +161,6 @@
"node": ">=6.9.0" "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": { "node_modules/@jest/types": {
"version": "26.6.2", "version": "26.6.2",
"dev": true, "dev": true,
@@ -968,134 +914,6 @@
"regenerator-runtime": "^0.13.4" "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": { "@jest/types": {
"version": "26.6.2", "version": "26.6.2",
"dev": true, "dev": true,
+1 -1
View File
@@ -25,7 +25,7 @@
"module": "es/index.js", "module": "es/index.js",
"jsnext:main": "es/index.js", "jsnext:main": "es/index.js",
"browser": "dist/index.js", "browser": "dist/index.js",
"browserName": "BbobVue", "browserName": "BbobVue3",
"homepage": "https://github.com/JiLiZART/bbob", "homepage": "https://github.com/JiLiZART/bbob",
"author": "Nikolay Kostyurin <jilizart@gmail.com>", "author": "Nikolay Kostyurin <jilizart@gmail.com>",
"license": "MIT", "license": "MIT",
+1 -1
View File
@@ -13,7 +13,7 @@ const pkg = require(`${process.cwd()}/package.json`);
const { NODE_ENV } = process.env; const { NODE_ENV } = process.env;
const baseConfig = { const baseConfig = {
input: 'es/index.js', input: pkg.module,
external: ['react', 'vue', 'prop-types'], external: ['react', 'vue', 'prop-types'],
output: { output: {
file: pkg.browser, file: pkg.browser,