summaryrefslogtreecommitdiffstats
path: root/package.json
Commit message (Collapse)AuthorAgeFilesLines
* Update JS dependencies and webpack (#14118)silverwind2020-12-271-27/+26
| | | | | | | | | | | | | | | | | | * Update JS dependencies - Update all JS dependencies - Adapt webpack config for version 5 - Update to Less 4.0, adapting usage of removed mixin syntax - Enable new ESLint rules and fix discovered issues * update license-webpack-plugin to fix missing licenses * update license-webpack-plugin once more to get webpack into the license output * switch to license-checker-webpack-plugin again for performance * update deps again Co-authored-by: Lauris BH <lauris@nix.lv>
* Swap swagger-ui with swagger-ui-dist (#13777)silverwind2020-12-011-1/+1
| | | | | | | | | * Swap swagger-ui with swagger-ui-dist The prebuilt version of swagger-ui is identical to the regular one but brings the benefit of faster webpack compilation and less npm dependencies so it npm installs will speed up too. * use bundle file directly
* Fix webpack build warnings (#13752)silverwind2020-11-301-3/+0
| | | | | Turns out some of the dependencies make use of optional dependencies like the vue-template-compiler. Install them again and install fomantic-ui only when it's being build to fix webpack warnings.
* Update JS dependencies and misc tweaks (#13741)silverwind2020-11-291-14/+16
| | | | | | | | | | | | | | | | | * Update JS dependencies and misc tweaks - Update all JS dependencies minus webpack - Adapt CodeMirrors styling to new CSS parent introduced by EasyMDE - Set eslint parser to latest and add new eslint 7.14 rule - Speed up npm install by disabling audit and fund checks - Move fomantic-ui to optional dependencies to further speed up npm - Enable syntax highlighting on GH for .eslintrc and .stylelintrc - Makefile cleanups * disable audit in npmrc * add missing dash Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Enable linting of JS inside templates (#13708)silverwind2020-11-281-0/+1
| | | | | | | | | | Indentation-related rules are disabled because indent templates with tabs but our lint rules expect spaces. Also had to exclude a few files where using template variables in the JS is causing syntax errors for the JS parser. I don't think there's a way to solve this otherwise. Co-authored-by: Lauris BH <lauris@nix.lv>
* Switch from SimpleMDE to EasyMDE (#13333)zeripath2020-11-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Switch from SimpleMDE to EasyMDE Signed-off-by: Andrew Thornton <art27@cantab.net> * use webpack to webpack the easymde css Signed-off-by: Andrew Thornton <art27@cantab.net> * move css to only css Signed-off-by: Andrew Thornton <art27@cantab.net> * move loading codemirror modes and addons back in to footer.tmpl Signed-off-by: Andrew Thornton <art27@cantab.net> * Fix arc-green Signed-off-by: Andrew Thornton <art27@cantab.net> * as per @silverwind * reinstall codemirror Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
* Update JS dependencies (#13455)silverwind2020-11-071-11/+12
| | | | | | | - Update all JS dependencies minus Webpack - Add postcss again to avoid warnings about missing peerDependencies Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Add Vue linting (#13447)silverwind2020-11-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | * Add Vue linting Turns out the .vue files were not linted at all, so I added that as well as re-indented the file to 2-space and fixed all reasonable issues that cam up except one case of a unintended side effect for which I have no idea how to fix it, so the rule was disabled. * misc tweaks * update lockfile * use overrides to include .vue files * treat warnings as errors on lint-frontend * also treat stylelint warnings as errors * use equal sign syntax Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
* Update some JS dependencies (#13222)silverwind2020-10-211-23/+23
| | | | | | | | | | | | | * Update some JS dependencies - Update selective dependencies that are compatible with webpack 4. We can not upgrade to webpack 5 yet because `license-webpack-plugin` is incompatible. - Enable a few new eslint rules and fix new issues * fix comment Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: zeripath <art27@cantab.net>
* Use CSS Variables for fonts, remove postcss-loader (#13204)silverwind2020-10-191-3/+0
| | | | | | | | | | | | | * Use CSS Variables for fonts, remove postcss-loader - Use CSS variables for fonts, making the fonts easier to customize - Remove postcss-loader, it's not doing anything useful and is actually applying strange transforms on our CSS. Fixes: https://github.com/go-gitea/gitea/issues/11045 * introduce helper variable, mark documented vars * work around case issue by always quoting specific fonts
* Update JS dependencies (#12782)silverwind2020-09-101-8/+9
| | | | | | | | | - Update all dependencies - Add explicit postcss dependency as dictated by postcss-loader - Adapt for new postcss-loader syntax - Move sourceMap options to top for consistency Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update JS dependencies (#12702)silverwind2020-09-041-16/+17
| | | | | - Added some new octicons - Add explicit less dependency as required by upstream - Enable es2021 environment in eslint
* Speed up licenses.txt build during development, add additionalModules (#12510)silverwind2020-08-211-0/+1
| | | | | | | | - Emit static string for licenses.txt during development for faster builds - Manually add @primer/octicons to licenses.txt because it's never directy imported. Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Kanban board (#8346)Lanre Adelowo2020-08-161-0/+1
| | | | | | | | | | | | | Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: jaqra <48099350+jaqra@users.noreply.github.com> Co-authored-by: Kerry <flatline-studios@users.noreply.github.com> Co-authored-by: Jaqra <jaqra@hotmail.com> Co-authored-by: Kyle Evans <kevans91@users.noreply.github.com> Co-authored-by: Tsakiridis Ilias <TsakiDev@users.noreply.github.com> Co-authored-by: Ilias Tsakiridis <ilias.tsakiridis@outlook.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update JS dependencies (#12474)silverwind2020-08-121-14/+13
| | | | | | | | | | | * Update JS dependencies - Update worker-loader options (currently unused pending #12459) - Remove @babel/plugin-proposal-object-rest-spread, it's enabled by default - Switch cssnano-webpack-plugin to css-minimizer-webpack-plugin which had been renamed * switch to css-minimizer-webpack-plugin
* Improve HTML escaping helper (#12383)silverwind2020-07-301-0/+1
| | | | | | | | The previous method did not escape single quotes which under some circumstances can lead to XSS vulnerabilites and the fact that it depends on jQuery is also not ideal. Replace it with a lightweight module. Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Move jquery-minicolors to npm/webpack (#12305)silverwind2020-07-291-0/+1
| | | | | | | | | | | | | | | | | | | | * Move jquery-minicolors to npm/webpack - Unvendor and add as npm dependency - Removed unneeded backend variable - Fixed existing bug where picker would previously initizalize to the same green color when editing a label. There was probably a version bump because the previous version was over 3 years old but it seems to be compatible. * use file-loader * trailing comma and comment update * misc tweaks Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update JS deps and linting config (#12295)silverwind2020-07-271-14/+13
| | | | | | | | - update js deps to latest versions - remove eslint-plugin-sonarjs to prevent a warning on install. can be added again once it's updated to support eslint 7.x - enable new linting rules from eslint-plugin-unicorn Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Add mermaid JS renderer (#12334)silverwind2020-07-271-0/+1
| | | | | | | | | | | | | | | | | | | * Add mermaid JS renderer For feature parity with GitLab. Tested in files, issues, wiki, editor. arc-green only does an inversion because the renderer seems to like to render white backgrounds on boxes. Ref: https://github.com/go-gitea/gitea/issues/3340 Fixes: https://github.com/go-gitea/gitea/issues/12307 * add feature entry, switch to neutral theme, remove border * add bindFunctions support * remove unnecessary border-radius Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update Octicons to v10 (#12240)silverwind2020-07-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update Octicons to v10 Besides a few renames, these icons are no longer present in v10 that we've used, so had to change: file-symlink-directory -> file-submodule internal-repo -> repo repo-force-push -> repo-push repo-template-private -> repo-template Fixes: https://github.com/go-gitea/gitea/issues/11889 Ref: https://github.com/primer/octicons/releases/tag/v10.0.0 * add custom sliders svg for removed octicon-settings * apply suggestion * fix triangles and use play on admin dashboard * add custom mirror svg * add missing build files * unify custom svgs * move to octicon-repo-clone to gitea-mirror * use octicon-x on conflicts * tweak timeline icons * tweak comment buttons * update settings icon to octicons v1 * switch to octicon-mirror and octicon-tools * replace two wiki buttons with octicons * remove whitespace in svg sources * Fix filepath basename on Windows for SVG bindata (#12241) * move octicons to devDependencies * move back to dependencies * move svgo to devDependencies again Co-authored-by: Cirno the Strongest <1447794+CirnoT@users.noreply.github.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Direct SVG rendering (#12157)silverwind2020-07-121-3/+2
| | | | | | | | | | | | Introduce 'make svg' which calls a node script that compiles svg files to `public/img/svg`. These files are vendored to not create a dependency on Node for the backend build. On the frontend side, configure webpack using `raw-loader` so SVGs can be imported as string. Also moved our existing SVGs to web_src/svg for consistency. Fixes: https://github.com/go-gitea/gitea/issues/11618
* Update JS dependencies (#12181)silverwind2020-07-081-17/+17
| | | | | | - Update all dependencies excluding octicons - Configure new eslint 7.3.0 rules Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Fonts rework (#12114)silverwind2020-07-061-0/+1
| | | | | | | | | | | | | - Use system fonts only for text to avoid FOUT - Move font-awesome to npm/webpack - Move NotoColorEmoji to web_src - Remove presumably unneccesary 'PT Sans Narrow' - Simplify webpack import exclusions Fixes: https://github.com/go-gitea/gitea/issues/11818 Fixes: https://github.com/go-gitea/gitea/pull/11814 Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
* Server-side syntax highlighting for all code (#12047)mrsdizzie2020-07-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Server-side syntax hilighting for all code This PR does a few things: * Remove all traces of highlight.js * Use chroma library to provide fast syntax hilighting directly on the server * Provide syntax hilighting for diffs * Re-style both unified and split diffs views * Add custom syntax hilighting styling for both regular and arc-green Fixes #7729 Fixes #10157 Fixes #11825 Fixes #7728 Fixes #3872 Fixes #3682 And perhaps gets closer to #9553 * fix line marker * fix repo search * Fix single line select * properly load settings * npm uninstall highlight.js * review suggestion * code review * forgot to call function * fix test * Apply suggestions from code review suggestions from @silverwind thanks Co-authored-by: silverwind <me@silverwind.io> * code review * copy/paste error * Use const for highlight size limit * Update web_src/less/_repository.less Co-authored-by: Lauris BH <lauris@nix.lv> * update size limit to 1MB and other styling tweaks * fix highlighting for certain diff sections * fix test * add worker back as suggested Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: Lauris BH <lauris@nix.lv>
* Move fomantic and jQuery to main webpack bundle (#11997)silverwind2020-06-271-3/+1
| | | | | | | | | | | | | | This saves around 3 MB binary size by not including useless fomantic files in the build. Also, this allows us to move jQuery into the main bundle as well which eliminates a few HTTP requests. Also included are webpack config changes: - split less and css loaders to speed up compliation - enable css sourcemaps - switch css minfier plugin to cssnano-webpack-plugin which works better for sourcemaps than the previous plugin Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update Fomantic-UI to 2.8.6 and remove old workarounds (#11933)Cirno the Strongest2020-06-171-1/+1
| | | | Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Add automatic JS license generation (#11810)silverwind2020-06-121-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * Add automatic JS license generation Removed librejs file and replaced it with a plaintext file that is built from all JS dependencies that are included in the webpack build. It does not cover the few remaining statically vendored files and fomantic is added manually because it's not yet in the webpack build process. Fixes: https://github.com/go-gitea/gitea/issues/11630 * fix lint * remove jslicense, we're not librejs compatible any more * remove license.txt test as it depens on absent files * small optimization * trailing comma * localize and capitalize the word 'licenses' * reduce text to just 'Licenses' Co-authored-by: Lauris BH <lauris@nix.lv>
* Update JS dependencies (#11842)silverwind2020-06-111-12/+12
| | | Result of `make npm-update`, no noteworthy changes.
* Replace jquery-datetimepicker with native date input (#11684)silverwind2020-06-101-2/+0
| | | | | | | | | | | | This removes the jQuery plugin as well as the associated config options. Native input[type=date] does not require a language attribute as it is localized by default, except for the placeholder attribute for which I currently piggy-back the repo.issues.due_date_form localization option. Implementation should pretty much match GH. Of note is that Safari does not provide a UI for this input type, but I don't think providing one is neccessary and GH did not bother either. Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* rework eslint config (#11615)silverwind2020-06-091-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | * rework eslint config - use explicit config that only enables rules - upgrade eslint to 7.1.0 - add new plugins with selected rules enabled - fix discovered issues, remove global wipPrefixes * remove if * undo template change * add disabled rules as well for easier config updating * add missing disabled rule * update eslint and plugins * fix new violation * remove deprecated rules Co-authored-by: Lauris BH <lauris@nix.lv>
* Update fomantic-ui to 2.8.5 (#11736)silverwind2020-06-031-1/+1
| | | | | | Update to [2.8.5](https://github.com/fomantic/Fomantic-UI/releases/tag/2.8.5) and remove the workaround for the CSS build race condition. Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Move serviceworker to workbox and fix SSE interference (#11538)silverwind2020-05-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Move serviceworker to workbox and fix SSE interference Instead of statically hardcoding every frontend asset, this uses a type-based approach to cache all js,css and manifest.json requests. This also fixes the issue that the service worker was interfering with EventSource because it was unconditionally handling all requests which this new implementation doesn't. Fixes: https://github.com/go-gitea/gitea/issues/11092 Fixes: https://github.com/go-gitea/gitea/issues/7372 * rethrow error instead of logging * await .register * Revert "rethrow error instead of logging" This reverts commit 043162ba1f18b98a4bf9635959fd28d16e839fc5. * improve comment * remove JSRenderer * add version-based cache invalidation * refactor * more refactor * remove comment * rename item to fit cache name Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Move tributejs to npm/webpack (#11497)silverwind2020-05-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * Move tributejs to npm/webpack - Move vendored bundle to npm and webpack - Rewrote initialization to single function - Restyled it (made it a bit smaller) - Fixed it for arc-green * fix mention * also include emoji on #content * Update web_src/less/_tribute.less Co-authored-by: mrsdizzie <info@mrsdizzie.com> * rewrite to only use one instance of Tribute * refactor * fix copy/paste error Co-authored-by: mrsdizzie <info@mrsdizzie.com> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Remove IE11 support (#11470)silverwind2020-05-191-1/+3
| | | | | | | | | | | | | * Remove IE11 support With master now on 1.13, it's time to drop IE11 for good. The woff variants are also in use by Opera Mini but it has even less market share and I can only imagine how broken the UI is in it. Fixes: https://github.com/go-gitea/gitea/issues/6147 * update docs Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update JS dependencies (#11412)silverwind2020-05-151-6/+6
| | | | | A bugfix for JS syntax in highlight.js and some misc updates.
* Switch code editor to Monaco (#11366)silverwind2020-05-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Switch code editor to Monaco This switches out CodeMirror for Monaco which is based on the same code base as VS code and should work pretty similar to it. It does add a few async chunks, totalling around 10MB to our build. It currently supports around 65 languages and in the default configuration, each language would emit one ugly [number].js chunk, so I opted to combine them all into a single file for now. CodeMirror is still being used under the hood by SimpleMDE so it can not be removed yet. * inline editorconfig, fix diff, use for markdown, remove more dead code * refactors, remove jquery usage * use tab_width * fix intellisense * rename function for clarity * misc tweaks, enable webpack progress display * only use --progress on dev build * remove useless borders in arc-green * fix typo * remove obsolete comment * small refactor * fix file creation and various refactors * unset useTabStops too when no editorconfig * small refactor * disable webpack's [big] warnings * remove useless await * fix dark theme check * rename chunk to 'monaco' * add to .gitignore and delete webpack dest before build * increase editor height * support more editorconfig properties * remove empty element filter * rename Co-authored-by: John Olheiser <john.olheiser@gmail.com>
* Update JS dependencies (#11297)silverwind2020-05-051-10/+10
| | | | | | | | Contains an apparently important bug fix for highlight.js [1], otherwise nothing of interest. [1] https://github.com/highlightjs/highlight.js/releases/tag/10.0.2 Co-authored-by: zeripath <art27@cantab.net>
* Update JS dependencies, min Node.js version 10.13 (#11246)silverwind2020-04-301-7/+7
| | | | | | | `less-loader` now dictates a minimum Node.js version of 10.13.0, released 2018-10-30 so I've updated this requirement to match. https://github.com/webpack-contrib/less-loader/releases/tag/v6.0.0
* Patch fomantic-ui to workaround build issue (#11244)silverwind2020-04-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * Patch fomantic-ui to workaround build issue Better workaround than https://github.com/go-gitea/gitea/issues/10653 for https://github.com/fomantic/Fomantic-UI/issues/1356. It does not seem like we're getting a new Fomantic-UI release anytime soon, so this patches it after node_modules installation. Fixes: https://github.com/go-gitea/gitea/issues/11243 Fixes: https://github.com/go-gitea/gitea/issues/10679 * copy instead of patch * update package-lock.json * Update Makefile Co-Authored-By: Sorien <Sorien@users.noreply.github.com> * Update web_src/fomantic/css.js Co-Authored-By: zeripath <art27@cantab.net> Co-authored-by: Sorien <Sorien@users.noreply.github.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com>
* Update JS dependencies, highlight.js 10.0.0 (#11195)silverwind2020-04-241-4/+4
| | | | | | Breaking changes in higlight.js do not affect us. Co-authored-by: Antoine GIRARD <sapk@users.noreply.github.com> Co-authored-by: Lauris BH <lauris@nix.lv>
* Update JS dependencies (#11146)silverwind2020-04-201-14/+14
| | | | | Result of `make npm-update`. Some minor updates to build tools, no runtime dependencies affected.
* Upgrade jQuery to 3.5.0, remove jQuery-Migrate, fix deprecations (#11055)silverwind2020-04-181-2/+1
| | | | | | | | | | | | - Removed jQuery-Migrate as it seems to no longer be needed. - Removed a dead code section. - Fixed some deprecations detected by jQuery-Migrate. Ref: https://jquery.com/upgrade-guide/3.5/ Ref: https://github.com/gogs/gogs/search?q=repo-name-change-prompt Ref: https://github.com/go-gitea/gitea/search?q=repo-name-change-prompt Fixes: https://github.com/go-gitea/gitea/issues/9372 Co-authored-by: zeripath <art27@cantab.net>
* Move syntax highlighting to web worker (#11017)silverwind2020-04-131-1/+3
| | | | | | | | | This should eliminate page freezes when loading big files/diff. `highlightBlock` is needed to preserve existing nodes when highlighting and for that, highlight.js needs access to the DOM API so I added a DOM implementation to make it work, which adds around 300kB to the output file size of the lazy-loaded `highlight.js`. Co-authored-by: Lauris BH <lauris@nix.lv>
* Add 'make lint', restructure 'compliance' pipeline (#10861)silverwind2020-03-291-5/+5
| | | | | | | | | | - Added 'lint', 'lint-frontend', 'lint-backend' targets - Added 'lint-frontend', 'lint-backend' ci steps and restructure the 'compliance' pipeline to have a clear separation between frontend and backend and use parallelism where possible. Also, the main build pipelines now depend on 'compliance' so they will skip if it fails. - Added dependencies on ci steps so they skip when 'compliance' fails - Moved JS linters to devDependencies - Removed deprecated 'js' and 'css' targets
* Move JS build dependencies to 'dependencies' (#10763)silverwind2020-03-191-16/+16
| | | | | | | | | | | | | | - move all JS build dependencies to 'dependencies' - update all JS dependencies Reason for this is that npm will only install 'dependencies' when under the effect of NODE_ENV=production which may be present on some build systems. Linters currently need to be depdendencies because we run linting as part of the build step, but I plan to move them to a separate 'lint' target which means they can move to devDependencies then. Fixes: https://github.com/go-gitea/gitea/pull/10761
* move jquery-datetimepicker to npm/webpack (#10713)silverwind2020-03-171-0/+2
| | | | | | | | | - update to latest version and move to npm - adapt for api changes and css class rename - add specificity to arc-green rules as dependency css now loads later - use imports-loader to make it load correctly - fix some wrong paths in librejs Co-authored-by: techknowlogick <techknowlogick@gitea.io>
* Update JS dependencies (#10726)silverwind2020-03-141-9/+9
| | | | | Result of `make npm-update`. Only notable change is that `updates` now requires Node 10 and has been changed to a bundle, so its dependencies are now no longer installed.
* Move dropzone.js to npm/webpack (#10645)silverwind2020-03-071-0/+1
| | | | - unvendor dropzone and upgrade it from 4.2.0 to 5.7.0 - make `csrf` available on window.config
* Workaround fomantic build issue (#10655)silverwind2020-03-071-0/+1
| | | | | This blows up the fomantic CSS by around 500kB, but I see no other way. Ref: https://github.com/go-gitea/gitea/issues/10653
* Update JS dependencies (#10450)silverwind2020-02-251-9/+9
| | | | | | | | | | Fomantic's update process did fail to update via 'npm install' because of our config initially but it did work after manually bumping the version in semantic.json. Fomantic changes: https://github.com/fomantic/Fomantic-UI/blob/master/CHANGELOG.md#284