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

154 Commits

Author SHA1 Message Date
Nikolay Kostyurin da6709d437 feat: update core deps (#120)
* feat: use swc.rs instead of babel

* BREAKING CHANGE: now we use swc.rs as main bundler and transpiler instead of babel
  - jest now uses swc
  - rollup now uses swc

* feat: benchmark now separate package with `npm start` and colored output
  - benchmark as separate package with error throw if package drops performance

* feat: all lerna packages now using scripts/pkg-task

* feat(github): publish to npm and github registry
  - when release was created this action automaticly publish packages to npm and github

* feat(github): move all from Travis CI to Github Actions
  - code analysis and tests now using github actions

* test: increase tests coverage
  - add more tests for @bbob/react, @bbob/vue2 and @bbob/parser
2021-11-29 00:33:06 +02:00
Nikolay Kostyurin 86d1dde106 chore(release): publish v2.7.1 (#121) 2021-11-04 13:30:53 +02:00
Nikolay Kostyurin dad1b6e08b chore: update descriptions of vue2, react and html bbob packages (#118) 2021-10-11 02:22:04 +02:00
Dan Polivy 93d802773c fix(react): adjust PropTypes for React Component container (#107)
Augments the existing PropType for the `container` prop of Component to allow for React elements and element types to be passed. The latter allows React Native to better be supported.
2021-06-23 23:27:08 +02:00
Nikolay Kostyurin 2b68e22d23 chore: include gitHead to all packages 2021-05-19 23:21:18 +02:00
Nikolay Kostyurin 01b0916b4a chore(release): publish v2.7.0 2021-05-19 23:00:30 +02:00
Nikolay Kostyurin cbccbaf896 feat: support for vue2 (#88)
* chore: initial setup for vue2 packages

* feat: basic Vue 2 Component

* feat(vue2): add more test cases

* test(preset): add more cases to test in preset

* test(preset-vue2): add more cases to test tags processing

* fix(preset): tag node checking

* test(preset-vue): more coverage for vue preset

* refactor(vue2): move default export to plugin install func

* feat(example-vue2): add vue2 example to examples folder

* chore(example-vue2): remove unused npm scripts

* chore: add vue 2 example in main README

* chore: update package.json descriptions
2021-05-19 19:41:56 +02:00
dependabot[bot] 64b4778cfb chore(deps): bump lodash from 4.17.19 to 4.17.21 in /packages/bbob-react (#98)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 14:24:22 +02:00
dependabot[bot] 032980ef64 chore(deps): bump ua-parser-js in /packages/bbob-react (#96)
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.18 to 0.7.28.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.18...0.7.28)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-09 17:00:23 +02:00
Nikolay Kostyurin 1906c3cd01 chore(release): publish v2.6.2 (#85) 2020-12-17 00:07:56 +02:00
Nikolay Kostyurin cad0e9e7f4 perf(parser): cache nested tokens in Set to prevent deoptimization (#83) 2020-12-16 23:55:17 +02:00
Nikolay Kostyurin 70ff2e6660 fix(parser): dont process nested tags as string if parent is not allowed (#84)
* fix(parser): dont process nested tags as string if parent is not allowed

* fix(plugin-helper): toString method with default params
2020-12-16 23:51:28 +02:00
Nikolay Kostyurin c9aa6b368b chore(release): publish v2.6.1 (#82) 2020-12-16 00:41:01 +02:00
Nikolay Kostyurin 09bda26d7c fix(parser): tag inside tag parsing regression (#81) 2020-12-16 00:29:26 +02:00
Nikolay Kostyurin 69018b1b1d chore(release): publish v2.6.0 (#79) 2020-12-10 22:36:11 +02:00
Nikolay Kostyurin 772d422d77 feat(parser): rewrite lexer to make it faster (#50)
* feat(parser): first iteration of new lexer

* feat(parser): convert token string props to number props

* refactor(parser): optimize char grabber

* refactor(parser): working on new lexer

* refactor(parser): convert token string props to number props

* refactor(parser): rebuild lexer, add tag attrs parsing

* refactor(parser): rework word parsing and tag parsing

* refactor(parser): rework to pass tests

* refactor(parser): rework tag parsing

* refactor(parser): rework escape tags parsing

* refactor(parser): rework tests

* refactor(parser): all test pass

* refactor(parser): make lexer faster by move mode switching in loop

* refactor(parser): remove all state map objects

* refactor(parser): order of parsing states

* refactor(parser): state switching without return

* refactor(parser): rename buffers to chars

* refactor(lexer): reduce function calls

* feat(lexer): add new parser tests and code to pass it

* fix(utils): remove unused variable in char grabber

* feat(lexer): add test for new lexer bug

* chore(*): add lexer and lexer2 to benchmark

* chore(lexer): add some debug info for char grabber

* feat(parser): add new test for single attributes without values

* fix(lexer): paired tags tests

* refactor(lexer): comment breaking changes tests for future releases

* feat(core): improve tests

* refactor(parser): add more tests, reduce char grabber size

* refactor(parser): reduce utils size

* refactor(parser): remove unused code from tag parsing code

* refactor(parser): remove unused code from word to tag transforming code

* chore(benchmark): fix benchmark imports
2020-12-09 01:03:48 +02:00
Nikolay Kostyurin fda6ddd6ee refactor: reduce dist files sizes (#76)
* fix(parser): plugin-helper import, remove dist file code duplication

* feat(plugin-helper): reduce bundle size, set new limits to 650 bytes

* refactor(preset): html5, react presets to reduce the size of dist files
2020-12-09 00:01:34 +02:00
Nikolay Kostyurin 4e79abb833 chore(release): publish v2.5.9 (#75) 2020-11-16 23:14:33 +02:00
Nikolay Kostyurin 5a7211db91 fix(react): rendering self-closed tags and tags without content (#74) 2020-11-16 22:59:08 +02:00
dependabot[bot] b60958d5c5 chore(deps): bump lodash from 4.17.15 to 4.17.19 in /packages/bbob-react (#68)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-20 16:33:37 +02:00
Nikolay Kostyurin 2eb1fbcccf chore(release): publish v2.5.8 2020-07-08 19:34:55 +02:00
Nikolay Kostyurin 5ceb2f0fa4 fix(plugin-helper): escape case insensitive javascript: attrs 2020-07-08 19:34:12 +02:00
Nikolay Kostyurin fe6a16b6d9 chore(release): publish v2.5.7 2020-07-05 15:24:30 +02:00
Nikolay Kostyurin 87f38fe97e fix(html): escape bad html (#67)
* feat(preset-html5): add feature to filter javascript: urls

* fix(plugin-helper): escape html in attrs

* fix(plugin-helper): tests for html escape

* refactor(preset-html5): remove html escape from preset

* feat(preset): add ability to pass and extend preset options
2020-07-05 15:23:22 +02:00
Nikolay Kostyurin ba090bf997 chore(bbob): update lock files (#64) 2020-05-30 00:38:27 +02:00
Nikolay Kostyurin 5af63e4158 chore(release): publish v2.5.6 2020-04-12 21:37:50 +02:00
Nikolay Kostyurin a16b9f73b0 fix(parser): don't eat not allowed tags with params (#58) fixes #54
* feat(parser): write test for only allowed tags parsing

* chore(parser): rename only allowed test

* fix(parser): only allowed tag rendering

* fix(plugin-helper): add new TagNode toString tests
2020-04-12 21:14:52 +02:00
Nikolay Kostyurin f28f19e64c feat(plugin-helper): move getUniqAttr from preset to plugin helper (#63) 2020-04-12 16:18:47 +02:00
Nikolay Kostyurin 97ecba0af6 perf(parser): optimize v8 perf deoptimizations (#61) 2020-04-05 15:08:59 +02:00
Nikolay Kostyurin 2670fc1288 chore(release): publish v2.5.5 2020-03-26 00:51:02 +02:00
Vladimir 0b74be7830 feat(core): allow to pass dynamic data in options for render (#59) 2020-03-16 14:37:36 +02:00
Nikolay Kostyurin aac1ae0e81 chore(*): update dependencies (#57)
Updated Rollup
Updated Babel
Fixed security problems with some dependencies
2020-01-22 20:25:42 +02:00
Nikolay Kostyurin b6744e9758 v2.5.4 (#51) 2019-09-25 09:34:56 +02:00
Nikolay Kostyurin be938fd21f fix(parser): try to hack terser minifier that removes working code (#49)
* fix(parser): try to hack terser minifier that removes working code Fixes #48
2019-09-25 09:29:21 +02:00
Nikolay Kostyurin 50adc1c056 chore: v2.5.3 (#44) 2019-08-11 15:32:07 +02:00
Nikolay Kostyurin 597c2a9008 feat(plugin-helper): lowercase resulting tag names (#42) 2019-07-28 15:28:46 +02:00
Nikolay Kostyurin 39d0564b0e chore: v2.5.2 (#33) 2019-06-30 11:41:49 +02:00
Nikolay Kostyurin b4cf27127f fix(parser): infinity loop problem when escape [\b] (#31)
With enableEscapeTags: true, when trying to write [b]test[\b] page is crashed.
Fixes #23
2019-06-30 11:15:10 +02:00
Greg Venech 3d5c1f19d5 fix(bbob-react): remove unique "key" prop warning (#30)
When using `@bbob/react`s `<BBCode>` component, the following error is thrown
if this change is not included...

```
Warning: Each child in a list should have a unique "key" prop.
```

Mentioned in #28
2019-06-29 18:18:39 +02:00
Greg Venech 19d7ff20f1 fix(react): fix broken prop type definition (#27)
You need to pass a valid prop checking function to `PropTypes.arrayOf`. This caused
an error to be thrown in development for me:

```
Warning: Failed prop type: Unexpected token function
```
2019-06-28 10:00:35 +02:00
Vladimir 09ff9af9a2 fix(plugin-helper): avoid some malformed attributes in attrsToString (#26)
* attrsToString: To avoid some malformed attributes

Error:
```
TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at attrsToString
```

This errors appears if no `attrs` setted in custom tag:
```
const BBcodePresetTemp = BbobPresetHTML5.extend((tags: any) => {
	tags.br = () => ({
		tag: 'br',
		// attrs: {}, // <-- Comment this line for error and add [br] to text
		content: null,
	});

	return tags;
});
```
2019-06-27 08:49:28 +02:00
Nikolay Kostyurin c4a88e5036 chore: v2.5.1 (#21)
* fix(parser): fix issue with escaping backslashes when enableEscapeTags is set (#20)

there is a bug in the lexer where when enableEscapeTags is set, backslashes
are not always escaped (ie. \\[b] is treated as an escaped tag, rather than a
literal backslash, and then a tag).

* chore: v2.5.1
2019-06-18 09:56:21 +02:00
Nikolay Kostyurin 3b46fbe23c chore: v2.5.0 (#19) 2019-06-17 22:30:51 +02:00
Nikolay Kostyurin 847c55e836 feat(preset-html5): list type attribute support (#18)
now you can use [list=1] or [list=A] to produce <ol type="A"></ol> lists
2019-06-17 22:09:30 +02:00
David Ferguson c4f78c1230 feat(parse): allow tags to be escaped with backslash (#17)
* feat(parse): allow tags to be escaped with backslash

adds additional option `enableEscapeTags` to `parse` and `createLexer` that
when true will parse openTag and closeTag as WORD (rather than TAG) when
proceeded with backslash
2019-06-17 21:29:10 +02:00
Nikolay Kostyurin 37f43927bf v2.4.1 2019-03-29 13:22:45 +02:00
Nikolay Kostyurin 3af3ea8539 fix(react): move @bbob/preset-react to dev deps due to circular deps 2019-03-29 13:21:42 +02:00
Nikolay Kostyurin c0b4eb7c05 v2.4.0 2019-03-29 10:37:03 +02:00
Nikolay Kostyurin cd2b6fd2fb feat(core): add tree.messages array and tree.options
a way to communicate between plugins
2019-03-29 10:33:26 +02:00
Nikolay Kostyurin c9e1dabf40 feat(html): @bbob/html now can be used without @bbob/core 2019-03-29 10:29:16 +02:00