Commit Graph

118 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
4efc19d5f1 feat: add ./nodebb install <plugin_name>
will install the suggested version for current nodebb closes #11060
2022-11-28 13:13:10 -05:00
Julian Lam
1e864a7518 Merge remote-tracking branch 'origin/master' into develop 2022-10-03 14:51:55 -04:00
Julian Lam
14515f6004 fix: add lru-cache to checked packages, to fix upgrade issue with lru-cache 2022-09-21 16:02:20 -04:00
Julian Lam
53d47a58f6 fix: use --omit=dev flag for npm instead of --production 2022-09-21 11:56:58 -04:00
Julian Lam
fe249fa577 fix: listen to -d flag on cli upgrade 2022-09-16 11:44:34 -04:00
Opliko
b3a37a7f35 feat: support packageManager property in package.json
resolves #10714
2022-08-08 17:23:32 -04:00
Julian Lam
38bf30c8ca fix: adapt to breaking change in commander 2022-08-08 17:17:38 -04:00
Opliko
23cb67a112 feat: Allow defining active plugins in config (#10767)
* Revert "Revert "feat: cross origin opener policy options (#10710)""

This reverts commit 46050ace1a.

* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""

This reverts commit 9f291c07d3.

* feat: closes #10719, don't trim children if category is marked section

* feat: fire hook to allow plugins to filter the pids returned in a user profile

/cc julianlam/nodebb-plugin-support-forum#14

* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints

* feat: Allow defining active plugins in config

resolves #10766

* fix: assign the db result to files properly

* test: add tests with plugins in config

* feat: better theme change handling

* feat: add visual indication that plugins can't be activated

* test: correct hooks

* test: fix test definitions

* test: remove instead of resetting nconf to avoid affecting other tests

* test: ... I forgot how nconf worked

* fix: remove negation

* docs: improve wording of error message

* feat: reduce code duplication

* style: remove a redundant space

* fix: remove unused imports

* fix: use nconf instead of requiring config.json

* fix: await...

* fix: second missed await

* fix: move back from getActiveIds to getActive

* fix: use paths again?

* fix: typo

* fix: move require into the function

* fix: forgot to change back to getActive

* test: getActive returns only id

* test: accedently commented out some stuff

* feat: added note to top of plugins page if \!canChangeState

Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
2022-07-26 14:27:17 -04:00
Julian Lam
0d58e8a6af fix: remove extraneous console.log 2022-07-15 14:57:37 -04:00
Julian Lam
3c41ae04cd fix: #10733, extraneous apostrophes in plugin upgrader 2022-07-07 15:10:52 -04:00
Julian Lam
60114219c1 fix: get version from install/package.json instead 2022-07-07 15:07:03 -04:00
Julian Lam
e2ff1e39b1 fix: #10588 exit code 1 on failed plugin activation 2022-05-06 16:02:07 -04:00
Barış Soner Uşaklı
d20b07cfea Webpack5 (#10311)
* feat: webpack 5 part 1

* fix: gruntfile fixes

* fix: fix taskbar warning

add app.importScript
copy public/src/modules to build folder

* refactor: remove commented old code

* feat: reenable admin

* fix: acp settings pages, fix sortable on manage categories

embedded require in html not allowed

* fix: bundle serialize/deserizeli so plugins dont break

* test: fixe util tests

* test: fix require path

* test: more test fixes

* test: require correct utils module

* test: require correct utils

* test: log stack

* test: fix db require blowing up tests

* test: move and disable bundle test

* refactor: add aliases

* test: disable testing route

* fix: move webpack modules necessary for build, into `dependencies`

* test: fix one more test

remove 500-embed.tpl

* fix: restore use of assets/nodebb.min.js, at least for now

* fix: remove unnecessary line break

* fix: point to proper ACP bundle

* test: maybe fix build test

* test: composer

* refactor: dont need dist

* refactor: more cleanup

use everything from build/public folder

* get rid of conditional import in app.js

* fix: ace

* refactor: cropper alias

* test: lint and test fixes

* lint: fix

* refactor: rename function to app.require

* refactor: go back to using app.require

* chore: use github branch

* chore: use webpack branch

* feat: webpack webinstaller

* feat: add chunkFile name with contenthash

* refactor: move hooks to top

* refactor: get rid of template500Function

* fix(deps): use webpack5 branch of 2factor plugin

* chore: tagging v2.0.0-beta.0 pre-release version 💥 :shipit: 🎉 🚀

* refactor: disable cache on templates

loadTemplate is called once by benchpress and the result is cache internally

* refactor: add server side helpers.js

* feat: deprecate /plugins shorthand route, closes #10343

* refactor: use build/public for webpack

* test: fix filename

* fix: more specific selector

* lint: ignore

* refactor: fix comments

* test: add debug for random failing test

* refactor: cleanup

remove test page, remove dupe functions in utils.common

* lint: use relative path  for now

* chore: bump prerelease version

* feat: add translateKeys

* fix: optional params

* fix: get rid of extra timeago files

* refactor: cleanup, require timeago locale earlier

remove translator.prepareDOM, it is in header.tpl html tag

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* feat: allow app.require('bootbox'/'benchpressjs')

* refactor: require server side utils

* test: jquery ready

* change istaller to use build/public

* test: use document.addEventListener

* refactor: closes #10301

* refactor: generateTopicClass

* fix: column counts for other privileges

* fix: #10443, regression where sorted-list items did not render into the DOM in the predicted order [breaking]

* fix: typo in hook name

* refactor: introduce a generic autocomplete.init() method that can be called to add nodebb-style autocompletion but using different data sources (e.g. not user/groups/tags)

* fix: crash if `delay` not passed in (as it cannot be destructured)

* refactor: replace substr

* feat: set --panel-offset style in html element based on stored value in localStorage

* refactor: addDropupHandler() logic to be less naive

- Take into account height of the menu
- Don't apply dropUp logic if there's nothing in the dropdown
- Remove 'hidden' class (added by default in Persona for post tools) when menu items are added

closes #10423

* refactor: simplify utils.params [breaking]

Retrospective analysis of the usage of this method suggests that the options passed in are superfluous, and that only `url` is required. Using a browser built-in makes more sense to accomplish what this method sets out to do.

* feat: add support for returning full URLSearchParams for utils.params

* fix: utils.params() fallback handling

* fix: default empty obj for params()

* fix: remove \'loggedin\' and \'register\' qs parameters once they have been used, delay invocation of messages until ajaxify.end

* fix: utils.params() not allowing relative paths to be passed in

* refactor(DRY): new assertPasswordValidity utils method

* fix: incorrect error message returned on insufficient privilege on flag edit

* fix: read/update/delete access to flags API should be limited for moderators to only post flags in categories they moderate

- added failing tests and patched up middleware.assert.flags to fix

* refactor: flag api v3 tests to create new post and flags on every round

* fix: missing error:no-flag language key

* refactor: flags.canView to check flag existence, simplify middleware.assert.flag

* feat: flag deletion API endpoint, #10426

* feat: UI for flag deletion, closes #10426

* chore: update plugin versions

* chore: up emoji

* chore: update markdown

* chore: up emoji-android

* fix: regression caused by utils.params() refactor, supports arrays and pipes all values through utils.toType, adjusts tests to type check

Co-authored-by: Julian Lam <julian@nodebb.org>
2022-04-29 21:39:33 -04:00
gasoved
62187caa67 feat: post auto flagging on downvotes #10029 (#10367)
* feat: post auto flagging on downvotes

* fix: just get one admin
2022-03-04 15:38:16 -05:00
Julian Lam
17836f2a3a Re-introduce lodash into src/package-install.js (#10315)
* test: add failing test for if package.json is non-existant, fix tests' beforeEach method

* Revert "fix: #10289, remove lodash dependency in src/cli/package-install.js"

This reverts commit 81fa2e22bc.

* fix: regression caused by 94b79ce402

`./nodebb setup` was no longer able to be called without arguments or env vars

* fix: .updatePackageFile() throwing if no package.json

* fix: removing unneeded code in src/cli/index.js that seemed to be used to handle cases where package.json was missing (initial install)

... However, as .updatePackageFile() now handled cases where there is no package.json, it should be ok to remove this code

* fix: handle missing package.json or node_modules/
2022-02-17 14:10:24 -05:00
Julian Lam
9aa3e442d0 fix: four-space indents in package.json 2022-02-14 14:40:34 -05:00
Julian Lam
81fa2e22bc fix: #10289, remove lodash dependency in src/cli/package-install.js 2022-02-14 14:36:50 -05:00
Barış Soner Uşaklı
b98758d30a chore: add missing quote 2022-02-08 12:28:51 -05:00
Julian Lam
a2c7d69e1b fix: remove extraneous devDependencies on package merge
/cc @pitaj
2022-02-08 11:13:51 -05:00
Julian Lam
d34471f69f fix: regression in package.json merging logic that caused extraneous packages to not be removed 2022-02-04 16:20:31 -05:00
Julian Lam
689c125cd3 fix: #10229, package merging should deep merge nested objects
+ tests
2022-02-04 16:20:31 -05:00
Julian Lam
8ba9e67cbd feat: detect alternative package managers based on lockfile
If a package manager is not explicitly set in config.json or passed-in via argv/env, NodeBB will now check for the presence of alternative package managers' lockfiles and adjust the package manager to-be-used accordingly. If the standard npm lockfile exists, npm will always be used.
2022-02-02 17:15:44 -05:00
Julian Lam
9a1690857d refactor: updated package-install.js exports style, new exported method 'getPackageManager' for use in cases where nconf is unreliable, fix bug where nconf was not correctly set up in cli tools, proper installation of dev dependencies based on global env value 2022-02-02 11:47:35 -05:00
Julian Lam
c869d7dbb3 docs: some tweaks to cli help 2022-02-01 21:51:16 -05:00
Julian Lam
cf8f62aed9 feat: remove colors in favour of chalk (#10142)
* feat: remove colors in favour of chalk

* fix: bad conversion from colors to chalk in src/cli/index.js

* fix: padWidth calculation to account for control characters

* fix: termWidth calculation, but swapped one problem for another

* fix: formatItem, implement my own padRight to take control characters into account
2022-02-01 21:43:09 -05:00
Barış Soner Uşaklı
50063fe238 fix: regression from 27c05448e1 2021-11-29 15:17:02 -05:00
Barış Soner Uşaklı
71e34be565 fix: cli password reset 2021-11-22 22:20:01 -05:00
Julian Lam
f0d192fbfd feat: autocomplete for activate/reset
useless features™️
2021-11-22 15:37:37 -05:00
Julian Lam
449366ca83 fix: consolidate plugin reset logic 2021-11-19 12:21:14 -05:00
Barış Soner Uşaklı
fb363957d1 refactor: tab rules 2021-11-18 16:42:18 -05:00
Barış Soner Uşaklı
27c05448e1 refactor: remove another async.series 2021-11-16 17:11:26 -05:00
Julian Lam
44687394dc fix: restore plugin upgrade checking logic
unintended regression from ac86937c88
2021-10-19 10:25:51 -04:00
Barış Soner Uşaklı
c70eaa0a34 refactor: prompt.get already returns promise 2021-10-18 17:34:26 -04:00
gasoved
c1149d045c fix: better nomenclature 2021-10-08 10:37:55 -04:00
gasoved
d1ff3d6298 feat: cli user management commands (#9848)
* feat: cli user management commands

* fix: consistent nomenclature
2021-10-04 15:59:09 -04:00
Julian Lam
acdbd04913 fix: #9627 2021-06-25 13:56:21 -04:00
Barış Soner Uşaklı
1ec9739629 switch to request-promise-native (#9561)
* refactor: cli/upgrade async/await

async/await cli/upgrade-plugins
remove unused payload.files

* fix: add missing await

* refactor: use request-promise-native
2021-05-17 17:24:23 -04:00
Barış Soner Uşaklı
ac86937c88 refactor: cli/upgrade async/await (#9558)
* refactor: cli/upgrade async/await

async/await cli/upgrade-plugins
remove unused payload.files

* fix: add missing await
2021-05-17 17:08:00 -04:00
Barış Soner Uşaklı
1ce595083a fix: ioredis upgrade fix, maybe 2021-05-17 13:59:11 -04:00
Barış Soner Uşaklı
6907837fce fix: #9483, fix events count display 2021-04-11 16:13:31 -04:00
Peter Jaszkowiak
2a03012e2c fix: ./nodebb help with commander@7 (#9434)
hopefully this one last as long as the last one did
2021-03-27 12:14:27 -04:00
Peter Jaszkowiak
b9fd2c87f3 chore: bump deps (#9335)
* chore: bump deps

* fix: husky git hooks
2021-02-28 17:54:56 -05:00
Peter Jaszkowiak
0d59fe3d2b fix(#9315): api v3 post, put, del JSON
also allow `app.alertError` to be called without an argument
also fix `./nodebb build --dev` to actually build in dev mode
2021-02-22 21:19:46 -05:00
Peter Jaszkowiak
cc9d6fd08b chore: eslint max-len 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
23f212a4c0 chore: eslint prefer-destructuring 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
dab3b23575 chore: eslint no-var, vars-on-top 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
b56d9e12b5 chore: eslint prefer-arrow-callback 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
707b55b6a5 chore: eslint prefer-template 2021-02-08 18:06:44 -05:00
Peter Jaszkowiak
4ee0f1459d chore: eslint import/newline-after-import 2021-02-08 18:06:44 -05:00
Barış Soner Uşaklı
ef16cd2e6f fix: #9192, exit after logging error 2021-01-12 10:46:55 -05:00