pubsweet issueshttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues2020-05-08T19:03:45Zhttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/476Improvement of current ui component Button2020-05-08T19:03:45ZDanjela Shehidanjelashehi@gmail.comImprovement of current ui component Button can we have some improvements on our current ui component Button
like:
* Size: to change the size of the button. You can set the value to `xs, sm, md,` or `lg`.
* Variant: prop to change the visual style of the Button. You can set t... can we have some improvements on our current ui component Button
like:
* Size: to change the size of the button. You can set the value to `xs, sm, md,` or `lg`.
* Variant: prop to change the visual style of the Button. You can set the value to solid (which is similar to primary but pubsweet ofers only blue background), ghost, outline, or link (which already is secondary )
* Variant Color: prop to change the color of the text of the button
* Loading state: maybe would be good to have loading state with props like `isLoading` and `loadingText` but this is very debatable || optional
Based on our requirements in NCBI project we need Variant Prop and Button size more than two other ones , but the variant color and loading state would be good to have
ps. the naming conventions I mentioned above are based on [chakra-ui](https://chakra-ui.com/button) but we can use our own if we have other terminology for these propertiesSidorela UkuSidorela Ukuhttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/431RFC: Add cron-based job scheduling to server2020-01-10T11:25:12ZJureRFC: Add cron-based job scheduling to serverWe could abstract `node-schedule` in our jobs API, and use it as indicated here by the author of `pg-boss` (https://github.com/timgit/pg-boss/issues/94#issuecomment-430852430) to provide a cron-like repeated-job interface.
There are a l...We could abstract `node-schedule` in our jobs API, and use it as indicated here by the author of `pg-boss` (https://github.com/timgit/pg-boss/issues/94#issuecomment-430852430) to provide a cron-like repeated-job interface.
There are a lot of use cases for repeated/scheduled jobs, in addition to the capabilities that `pg-boss` gives us for delayed processing: https://github.com/node-schedule/node-schedule
Are people interested in that? I know that Hindawi has some use cases, but there will surely be others.
Anyone want to take on the implementation of it too? :) @bogdan, @sebastian?https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/337RFC: Organise styleguide2019-02-14T23:14:14ZSam GalsonRFC: Organise styleguideIf https://gitlab.coko.foundation/pubsweet/pubsweet/issues/336 is accepted we will have only one styleguide for all components. This will need to be better structured than it currently is. Something like this:
* Atoms
1. Input
...If https://gitlab.coko.foundation/pubsweet/pubsweet/issues/336 is accepted we will have only one styleguide for all components. This will need to be better structured than it currently is. Something like this:
* Atoms
1. Input
* Buttons
* Text
* Selects
* Radios
* etc.
2. Display
* Text
* Layout
* Modals
* Spinners
* Headings
* Tables
* etc.
* Molecules
1. File handling
* Uploads
* Attachments
2. Progress tracking
3. Navigation
* AppBar
* Pages
1. User admin
* Login
* Signup
2. Manuscript editing
The idea here is that atoms are abstract, but molecules/pages are likely to relate to specific business concerns.Documentation websitehttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/474UI components should not add margins to themselves2020-03-26T13:01:01ZJureUI components should not add margins to themselvesIt's not the component's job to add margins to itself, this should be handled elsewhere.
E.g. TextField (https://gitlab.coko.foundation/pubsweet/pubsweet/blob/master/packages/ui/src/atoms/TextField.js#L9)It's not the component's job to add margins to itself, this should be handled elsewhere.
E.g. TextField (https://gitlab.coko.foundation/pubsweet/pubsweet/blob/master/packages/ui/src/atoms/TextField.js#L9)https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/442RFC Authsome2019-04-03T11:21:45ZYannis BarlasRFC AuthsomeOpening a discussion about how authsome modes could potentially be easier and smaller.
Here's the basic ideas:
#### On the server
**The problem:**
* Every operation inside a resolver will pass through the authsome mode. This results...Opening a discussion about how authsome modes could potentially be easier and smaller.
Here's the basic ideas:
#### On the server
**The problem:**
* Every operation inside a resolver will pass through the authsome mode. This results in a lot of operations. eg. If inside my resolver, I need to get a book, then get all the divisions for that book and patch one of them, my mode will check if I have permission to read books, if I have permission to read divisions, then if I have permission to update divisions. Each of these could potentially be repeating calls (eg. get this user's teams, check if team A is one of them etc.). I also need to go back to the authsome mode for every operation I write.
* Connectors have a different api to objection, making writing code confusing some times, or even worse, somewhat limited compared to all operations that one can do in objection.
* A workaround for the above would be to use objection whenever I don't care about authorizing and use connectors whenever I do (eg. only use connectors for the update). But this results in the use of two different apis (objection & connectors) in the same resolver, which is less than ideal, and perhaps too easy to miss.
**The proposal:**
* The server can become the only source of truth for authorization.
* There can be a one-to-one relationship between resolvers and entries to the auth mode. Given the example above, the only thing I need to check is if the user has permission to run "UPDATE_DIVISION" or not. This runs once.
* Each resolver can start with an auth service call. Even better, graphql middleware can be capturing that this resolver is about to be called (or has just been called -- useful for filtering results).
* Each auth entry in this setup only requires `(operation, context)` as arguments (eg. `UPDATE_DIVISION, ctx`). The user id is provided by the context, and the object is irrelevant in this setup.
* We can expose all actual models - not connectors - in the context. In this way, both resolvers and the authsome mode have full access to whatever they can possibly need from the data. An alternative would be to not pass them, but simply import them. Though I'd personally prefer having them in the context, minimizing imports, if someone were to use the alternative approach, they wouldn't be missing out on anything, as authorization wouldn't be bound to connectors.
* Every time team membership changes, publish the change through a subscription, filtering who gets that change (ie. a client should only get results relevant to the currently logged in user).
#### On the client
**The problem:**
* Wrapping components with `Authorize` will request permission from the cache on _every render_ of the surrounding component, which can end up being a lot of times, even if nothing has changed authorization-wise. This can have a significant performance impact.
* Complex authorization requests can be hard to reason about when using `Authorize`, potentially leading to two or more nested ones.
* Wrapping components with `Authorize` reduces reusability, as we're kind of hard-coding authorization inside the UI (including which operation of the mode to look up). This is probably not a problem for small components, but can definitely become an issue for medium-sized UI elements.
**The proposal:**
* Client-side we only get one auth object on login (mostly booleans, but could be whatever is needed). Whenever the values change on the server, this object gets updated through the aforementioned subscription.
* Since the auth values are given by the server, there is no need to worry about sensitive data being sent to the client for authorization. A result does not need to be limited by the contents of `user.teams`, the server has access to all teams.
There is no reason that I can think of that would make any of the above break backward compatibility.
It can also be implemented incrementally, instead of doing all of the above at once.
But it would IMHO end up with modes that are smaller and easier to reason about.https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/387Soft delete functionality2020-01-29T10:40:15ZAlexandros GeorgantasSoft delete functionalityA modification of the mechanism that deletes resources from the database should be implemented. To this end, a property `deleted` (or something else) should be introduced on our models which will be set to true instead of an actual delet...A modification of the mechanism that deletes resources from the database should be implemented. To this end, a property `deleted` (or something else) should be introduced on our models which will be set to true instead of an actual delete action. This is important for auditing as well as practical reasons.
An example of a practical reason is the use of SSE with Authsome. If a collection is deleted from a user all the teams associated with that collection are deleted too. This means that there is no way to check if a specific user (different from the actual actor) who was member of team of that collection should be notified for the deletion.JureJurehttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/371RFC: lightweight service container2020-01-21T15:31:57ZTamlyn RhodesRFC: lightweight service container## Problem
There are a number of cross-cutting concerns which cannot easily be componentised using the current component system since they need to be used by other components without being referred to by name. So far we have:
- `email`...## Problem
There are a number of cross-cutting concerns which cannot easily be componentised using the current component system since they need to be used by other components without being referred to by name. So far we have:
- `email` - provides a way for components to send email without caring about the underlying delivery mechanism
- `auth` - components need to check authorisation without knowing which authsome mode is being used
- `logger` - components need to log stuff without knowing where it is going
- `file storage` - components need to write and read file data without knowing where it is stored
## Current solutions
Currently we are using a mixture of patterns to achieve this:
- `email` and `auth` - implement the service in a module and put a reference to the module in the app config. This leads to odd-looking code like `const mode = require(config.get('authsome.mode'))`. It's also not clear in the config which values are actually module references.
- `logger` - store the actual service in the config but create a dedicated package for it and expose a method which allows application code to replace this value at runtime and have this change affect all consumers of the service. The first part (non-serialisable objects in config) leads to problems with node-config and the second part (dedicated package per service) is a lot of repeated code.
- `file storage` - doesn't exist yet
## Proposed solution
Create a small wrapper to standardise the way we do this.
Add a section in the config:
```json
"services": {
"server": {
"email": "@pubsweet/aws-ses-mailer",
"auth": "./src/auth/mode.js",
"logger": "winston",
...
},
"client": {
"auth": "./src/auth/mode.js"
}
},
```
Then consume a service like:
```js
const services = require('pubsweet-server/src/services')
const mailer = services('email')
```
or
```js
const services = require('pubsweet-client/src/services')
const authsome = services('auth')
```https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/350Warn user if database details are missing configuration2018-05-07T06:29:00ZJureWarn user if database details are missing configurationFor example, in production, the default config `pubsweet-starter` is supplied with is:
```
'pubsweet-server': {
db: {},
}
```
If you try to `setupdb` with the above config, we'll say that a db already exists and that you should...For example, in production, the default config `pubsweet-starter` is supplied with is:
```
'pubsweet-server': {
db: {},
}
```
If you try to `setupdb` with the above config, we'll say that a db already exists and that you should use `--clobber`. If you do that, it results in wanting to `DROP TABLE user`, which is the table that exists in the database automatically created for you by pg. This database is automatically connected to when more specific configuration is missing, which is something we don't want.https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/87Add unit tests for each component2017-12-20T14:27:36ZSam GalsonAdd unit tests for each componenthttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/69Export transpiled components2019-12-02T16:00:16ZAntony DenyerExport transpiled components## The problem
- Currently we publish PubSweet packages to npm as ES6/Next/JSX. These need to be passed through Babel before hitting the browser.
- But we don't want to pass all dependencies through babel because it's slow and some pack...## The problem
- Currently we publish PubSweet packages to npm as ES6/Next/JSX. These need to be passed through Babel before hitting the browser.
- But we don't want to pass all dependencies through babel because it's slow and some packages actually break due to `devDependencies` not being installed.
- So we craft elaborate regular expressions to match some packages and exclude others. This has lots of problems:
https://gitlab.coko.foundation/pubsweet/pubsweet-starter/merge_requests/31,
https://gitlab.coko.foundation/xpub/xpub/merge_requests/134,
https://gitlab.coko.foundation/pubsweet/pubsweet-starter/issues/9
- These regular expressions must be duplicated in most components' Jest configs too otherwise `babel-jest` will not transpile dependencies and unit tests will fail.
- It means that the babel config of each app is dependent on the babel config of every untranspiled dependency it consumes. i.e. if a component wants to add a babel plugin for a particular feature it is a breaking change as the plugin must be added to the app too (and the same applies to tests that require the component).
See below for possible partial solutions.
https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/485Inconsistency for developers using M1 Mac2022-08-02T15:44:29ZRyan Dix-PeekInconsistency for developers using M1 MacThe purpose of this task is to solve the submission inconsistency for developers using M1 Mac by rebuilding the `pubsweet/job-xsweet:1.5.4` image to support arm64.
See reference; https://gitlab.coko.foundation/kotahi/kotahi/-/issues/937The purpose of this task is to solve the submission inconsistency for developers using M1 Mac by rebuilding the `pubsweet/job-xsweet:1.5.4` image to support arm64.
See reference; https://gitlab.coko.foundation/kotahi/kotahi/-/issues/937https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/484unable to lighten a color > 100%2021-06-11T09:33:31ZBen Whitmoreunable to lighten a color > 100%The ui-toolkit's `lighten` function imposes a limit of 100% for lightening colors, but the underlying `Color.lighten` function from the `color` package allows > 100% lightening. `Color.lighten` uses a simple multiplicative approach, wher...The ui-toolkit's `lighten` function imposes a limit of 100% for lightening colors, but the underlying `Color.lighten` function from the `color` package allows > 100% lightening. `Color.lighten` uses a simple multiplicative approach, whereby a factor is applied to the color's value. So for example `#333333` lightened by 100% would be `#666666`, or lightened by 300% would be `#CCCCCC`. The most ui-toolkit lets you lighten it to is `#666666`.
The [`normalizePercent`](https://gitlab.coko.foundation/pubsweet/pubsweet/-/blob/master/packages/ui-toolkit/src/darkenLighten.js#L27) function treats any `num` > 100 as a straightforward factor, rather than a percentage, making it impossible to specify a factor > 1.0 and <= 100. Pass `101` as the number and it is interpreted as 10100%. I recommend removing the upper bound check on `num` so that e.g. `101` is treated as 101%.
For some purposes, `lighten` may not be ideal anyway. E.g., to turn a supplied branding color into a background-color, you may want to lighten it to ensure there is sufficient contrast against the text; but without knowing what color you are lightening you won't know whether the result will be light (perhaps even clipping to white) or dark. Black is not changed at all by `lighten`! I find the following more useful:
```
function lightenTowardWhite(color, ratio) {
const lightness = color.lightness();
return color.lightness(lightness + (100 - lightness) * ratio);
}
```
Not sure of the best naming, but this ensures that e.g. lightening by 50% will give a color at least as light as mid-gray, but not clipped to white.
This is really a separate issue, but I mention it here as related.Yannis BarlasYannis Barlashttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/483different font family for the same component2021-02-03T20:57:13ZArsen Shehidifferent font family for the same componentFirst link font family is Times New Roman, the other two are Roboto;
is this on purpose or a bug? Because I have seen it in other components too.
![image](/uploads/33d03f25b07873535277ab04b2095e8d/image.png)First link font family is Times New Roman, the other two are Roboto;
is this on purpose or a bug? Because I have seen it in other components too.
![image](/uploads/33d03f25b07873535277ab04b2095e8d/image.png)https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/481xpub-edit's HtmlEditor uses componentWillMount2020-06-10T16:14:23ZJurexpub-edit's HtmlEditor uses componentWillMount```Warning: componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move code with side effects to componentDidMount, and set initial state in the construct...```Warning: componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-unsafe-component-lifecycles for details.
* Move code with side effects to componentDidMount, and set initial state in the constructor.
* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.
Please update the following components: HtmlEditor```https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/480Upgrading to Yarn 22020-04-15T13:19:47ZJureUpgrading to Yarn 2While we will still wait a bit, it looks like yarn 2 might be better for us with its improved support for workspaces.
Meanwhile, running its `yarn doctor` to identify potential issue with the upgrade, revealed a number of interesting po...While we will still wait a bit, it looks like yarn 2 might be better for us with its improved support for workspaces.
Meanwhile, running its `yarn doctor` to identify potential issue with the upgrade, revealed a number of interesting potential dependency issues with our current codebase:
```
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/package.json
➤ YN0000: │ User scripts prefixed with "pre" or "post" (like "precommit") will not be called in sequence anymore; prefer calling prologues and epilogues explicitly
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/babel.config.js:8:41: Strings should avoid referencing the node_modules directory (prefer require.resolve)
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/config/default.js:3:25: Undeclared dependency on config
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/config/upload-validations.js:2:13: Undeclared dependency on @hapi/joi
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:16:31: Unmet transitive peer dependency on react@*, via @testing-library/react@^9.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:16:31: Unmet transitive peer dependency on react-dom@*, via @testing-library/react@^9.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:17:25: Unmet transitive peer dependency on graphql@^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0, via apollo-link-http@^1.5.16
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:22:32: Unmet transitive peer dependency on react@^16.0.0-0, via enzyme-adapter-react-16@^1.12.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:22:32: Unmet transitive peer dependency on react-dom@^16.0.0-0, via enzyme-adapter-react-16@^1.12.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:42:31: Unmet transitive peer dependency on styled-components@>= 5, via jest-styled-components@^7.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/package.json:47:28: Unmet transitive peer dependency on react@^16.13.1, via react-test-renderer@^16.12.0
➤ YN0000: └ Completed in 5.2s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/docs/package.json
➤ YN0000: │ User scripts prefixed with "pre" or "post" (like "prebuild") will not be called in sequence anymore; prefer calling prologues and epilogues explicitly
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/styleguide.config.js:204:5: Strings should avoid referencing the node_modules directory (prefer require.resolve)
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/webpack-config.js:20:26: Strings should avoid referencing the node_modules directory (prefer require.resolve)
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/webpack-config.js:49:23: Webpack configs from non-private packages should avoid referencing loaders without require.resolve
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/webpack-config.js:56:23: Webpack configs from non-private packages should avoid referencing loaders without require.resolve
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/webpack-config.js:61:23: Webpack configs from non-private packages should avoid referencing loaders without require.resolve
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/ComponentsListRenderer.js:4:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/ComponentsListRenderer.js:5:1: Undeclared dependency on clsx
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/ComponentsListRenderer.js:6:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/ComponentsListRenderer.js:7:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/LinkRenderer.js:4:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/LinkRenderer.js:5:1: Undeclared dependency on classnames
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/LinkRenderer.js:6:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/LogoRenderer.js:4:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/LogoRenderer.js:5:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/SectionRenderer.js:3:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/SectionRenderer.js:4:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/SectionRenderer.js:5:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/SectionRenderer.js:6:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:3:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:4:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:5:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:6:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:7:1: Undeclared dependency on clsx
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:8:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/src/components/StyleGuideRenderer.js:9:1: Undeclared dependency on rsg-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/vendor/elife-theme/src/icons/Upload.js:4:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/vendor/elife-theme/src/icons/UploadFailure.js:4:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/vendor/elife-theme/src/icons/UploadSuccess.js:3:1: Undeclared dependency on prop-types
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:11:30: Unmet transitive peer dependency on apollo-cache-inmemory@^1.6.2, via @apollo/react-testing@^3.0.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:11:30: Unmet transitive peer dependency on apollo-client@^2.6.4, via @apollo/react-testing@^3.0.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:11:30: Unmet transitive peer dependency on apollo-link@^1.2.12, via @apollo/react-testing@^3.0.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:11:30: Unmet transitive peer dependency on apollo-utilities@^1.3.2, via @apollo/react-testing@^3.0.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:11:30: Unmet transitive peer dependency on graphql@^14.3.1, via @apollo/react-testing@^3.0.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:12:26: Unmet transitive peer dependency on @babel/core@^7.0.0-0, via @babel/preset-env@^7.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:13:28: Unmet transitive peer dependency on @babel/core@^7.0.0-0, via @babel/preset-react@^7.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:22:20: Unmet transitive peer dependency on graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0, via graphql-tag@^2.10.1
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:25:24: Unmet transitive peer dependency on pubsweet-server@>=13.0.0, via pubsweet-client@^10.1.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:34:26: Unmet transitive peer dependency on react-is@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/docs/package.json:37:21: Unmet transitive peer dependency on prop-types@^15.5.10, via xpub-journal@^0.0.3
➤ YN0000: └ Completed in 8.33s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/base-model/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/extended_manuscript_graphql_test.js:16:18: Undeclared dependency on @pubsweet/models
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/extended_manuscript_graphql_test.js:17:22: Undeclared dependency on @pubsweet/model-user
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/manuscript_graphql_test.js:12:18: Undeclared dependency on @pubsweet/models
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/manuscript_graphql_test.js:15:22: Undeclared dependency on @pubsweet/model-user
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/manuscript_test.js:14:18: Undeclared dependency on @pubsweet/models
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/package.json:12:29: Unmet transitive peer dependency on @pubsweet/models@>=0.3.0, via @pubsweet/db-manager@^3.1.8
➤ YN0000: └ Completed in 0.47s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/cli/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/cli/test/integration.test.js:7:15: Undeclared dependency on isomorphic-fetch
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/cli/test/integration.test.js:60:49: Strings should avoid referencing the node_modules directory (prefer require.resolve)
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/cli/package.json:13:29: Unmet transitive peer dependency on @pubsweet/models@>=0.3.0, via @pubsweet/db-manager@^3.1.8
➤ YN0000: │ Resolving prompt@flatiron/prompt#1c95d1d8d333b5fbc13fa5f0619f3dcf0d514f87 errored with Assertion failed: This resolver cannot be used unless a fetcher is configured
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/cli/package.json:25:24: Unmet transitive peer dependency on @pubsweet/model-user@>=5.0.0, via pubsweet-server@^13.10.0
➤ YN0000: └ Completed in 2.46s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/client/package.json
➤ YN0000: │ User scripts prefixed with "pre" or "post" (like "prepare") will not be called in sequence anymore; prefer calling prologues and epilogues explicitly
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/index.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/jest-setup.js:1:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/jest-setup.js:2:1: Undeclared dependency on enzyme-adapter-react-16
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/components/AuthenticatedComponent.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/components/Loading.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/components/Loading.js:10:54: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/components/Root.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/components/Root.js:11:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/components/Root.js:13:39: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:10:40: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:12:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:14:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:16:44: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:18:58: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:20:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:22:41: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:24:43: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/Authorize.js:26:49: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/AuthorizeGraphQLQueries.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/AuthorizeGraphQLQueries.js:10:54: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/BaseAuthorize.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/BaseAuthorize.js:10:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/BaseAuthorize.js:12:44: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/BaseAuthorize.js:14:58: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/BaseAuthorize.js:16:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/BaseAuthorize.js:18:41: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/StyleRoot.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/StyleRoot.js:10:54: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/api.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/endpoint.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withLoader.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withLoader.js:10:40: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withLoader.js:12:56: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:3:30: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:10:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:12:44: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:14:54: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:16:58: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:18:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:20:41: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/dist/helpers/withMutationState.js:22:47: Undeclared dependency on @babel/runtime
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/components/Root.test.jsx:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/Authorize.test.jsx:2:1: Undeclared dependency on react-dom
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/Authorize.test.jsx:3:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/Authorize.test.jsx:4:1: Undeclared dependency on @apollo/react-testing
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/Authorize.test.jsx:5:1: Undeclared dependency on waait
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/BaseAuthorize.test.jsx:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/withLoader.test.js:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/test/helpers/withMutationState.test.js:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:8:29: Unmet transitive peer dependency on @types/react@^16.8.0, via @apollo/react-common@^3.1.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:9:33: Unmet transitive peer dependency on @types/react@^16.8.0, via @apollo/react-components@^3.1.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:9:33: Unmet transitive peer dependency on apollo-cache@^1.3.2, via @apollo/react-components@^3.1.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:9:33: Unmet transitive peer dependency on react-dom@^16.8.0, via @apollo/react-components@^3.1.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:10:26: Unmet transitive peer dependency on @types/react@^16.8.0, via @apollo/react-hoc@^3.1.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:10:26: Unmet transitive peer dependency on react-dom@^16.8.0, via @apollo/react-hoc@^3.1.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:28:26: Unmet transitive peer dependency on react-dom@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/client/package.json:28:26: Unmet transitive peer dependency on react-is@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: └ Completed in 4.38s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/coko-theme/package.json
➤ YN0000: │ Resolving cokourier-prime-sans@git+https://gitlab.coko.foundation/julientaq/cokourier-sans-prime.git errored with Assertion failed: This resolver cannot be used unless a fetcher is configured
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/coko-theme/package.json:13:26: Unmet transitive peer dependency on react@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/coko-theme/package.json:13:26: Unmet transitive peer dependency on react-dom@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/coko-theme/package.json:13:26: Unmet transitive peer dependency on react-is@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: └ Completed in 2.32s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/create-pubsweet-app/package.json
➤ YN0000: │ User scripts prefixed with "pre" or "post" (like "prerelease") will not be called in sequence anymore; prefer calling prologues and epilogues explicitly
➤ YN0000: │ User scripts prefixed with "pre" or "post" (like "prepublish") will not be called in sequence anymore; prefer calling prologues and epilogues explicitly
➤ YN0000: └ Completed in 0.19s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/db-manager/package.json
➤ YN0000: └ Completed in 1.14s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/default-theme/package.json
➤ YN0000: └ Completed in 2.48s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/errors/package.json
➤ YN0000: └ Completed in 0.27s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/jest-environment-db/package.json
➤ YN0000: └ Completed in 0.27s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/logger/package.json
➤ YN0000: └ Completed in 0.29s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/models/package.json
➤ YN0000: └ Completed in 0.33s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/server/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/start_server_test.js:2:19: Undeclared dependency on supertest
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:7:19: Undeclared dependency on ws
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:8:26: Undeclared dependency on apollo-client
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:9:28: Undeclared dependency on apollo-link-http
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:10:27: Undeclared dependency on apollo-link-ws
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:11:19: Undeclared dependency on apollo-link
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:12:31: Undeclared dependency on apollo-utilities
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:13:27: Undeclared dependency on apollo-cache-inmemory
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:14:13: Undeclared dependency on graphql-tag
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:15:18: Undeclared dependency on form-data
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/graphql/subscriptions_test.js:16:15: Undeclared dependency on node-fetch
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/test/helpers/api.js:1:19: Undeclared dependency on supertest
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/package.json:11:25: Unmet transitive peer dependency on pubsweet-server@>=13.2.0, via @pubsweet/models@^0.3.8
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/server/package.json:29:18: Unmet transitive peer dependency on knex@0.x, via objection@^1.5.3
➤ YN0000: └ Completed in 4.14s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/sse/package.json
➤ YN0000: └ Completed in 0.25s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/theme/package.json
➤ YN0000: │ Resolving cokourier-prime-sans@git+https://gitlab.coko.foundation/julientaq/cokourier-sans-prime.git errored with Assertion failed: This resolver cannot be used unless a fetcher is configured
➤ YN0000: └ Completed in 2.14s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/ui/package.json
➤ YN0000: │ User scripts prefixed with "pre" or "post" (like "prepare") will not be called in sequence anymore; prefer calling prologues and epilogues explicitly
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AlignmentBox.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AlignmentBox.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AlignmentBoxWithLabel.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AlignmentBoxWithLabel.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AlignmentTool.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AlignmentTool.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AppBar.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/AppBar.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/CheckboxGroup.test.js:4:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/CheckboxGroup.test.js:5:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Files.test.js:2:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Files.test.js:3:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Icon.test.js:2:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Icon.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/IconButton.test.js:2:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/IconButton.test.js:3:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Menu.test.js:2:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Menu.test.js:3:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Modal.test.js:2:1: Undeclared dependency on @testing-library/jest-dom
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Modal.test.js:3:1: Undeclared dependency on @testing-library/react
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Pagination.test.js:2:1: Undeclared dependency on @testing-library/jest-dom
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Pagination.test.js:4:1: Undeclared dependency on @testing-library/react
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Radio.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Radio.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/RadioGroup.test.js:4:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/RadioGroup.test.js:5:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Select.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Select.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/SelectDropdown.test.js:2:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/SelectDropdown.test.js:3:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/StateItem.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/StateItem.test.js:5:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/StateList.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/StateList.test.js:5:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Tags.test.js:2:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/Tags.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/YesOrNo.test.js:3:1: Undeclared dependency on react-test-renderer
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/YesOrNo.test.js:4:1: Undeclared dependency on jest-styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/test/setup/enzyme.js:3:1: Undeclared dependency on @testing-library/react
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui/package.json:27:26: Unmet transitive peer dependency on react-is@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: └ Completed in 1.91s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/ui-toolkit/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui-toolkit/package.json:20:26: Unmet transitive peer dependency on react@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui-toolkit/package.json:20:26: Unmet transitive peer dependency on react-dom@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/ui-toolkit/package.json:20:26: Unmet transitive peer dependency on react-is@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: └ Completed in 0.36s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/component-login/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-login/test/Login.test.jsx:1:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-login/test/LoginContainer.test.jsx:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-login/test/LoginContainer.test.jsx:3:1: Undeclared dependency on @apollo/react-testing
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-login/test/LoginContainer.test.jsx:7:1: Undeclared dependency on waait
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-login/package.json:15:26: Unmet transitive peer dependency on react-dom@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-login/package.json:15:26: Unmet transitive peer dependency on react-is@>= 16.8.0, via styled-components@^5.0.0
➤ YN0000: └ Completed in 0.33s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/component-password-reset-client/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-password-reset-client/package.json:11:20: Unmet transitive peer dependency on graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0, via graphql-tag@^2.10.1
➤ YN0000: └ Completed in 0.28s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/component-people-picker/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-people-picker/src/PeoplePickerLogic.test.js:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-people-picker/src/PersonPod.test.js:2:1: Undeclared dependency on enzyme
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-people-picker/src/SearchBox.test.js:2:1: Undeclared dependency on enzyme
➤ YN0000: └ Completed in 0.23s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/component-signup/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-signup/test/Signup.test.jsx:1:1: Undeclared dependency on enzyme
➤ YN0000: └ Completed in 0.25s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/examples/Example-handle.jsx:3:1: Undeclared dependency on styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/examples/Example-handle.jsx:4:1: Undeclared dependency on @pubsweet/ui-toolkit
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/examples/Example-handle.jsx:5:1: Undeclared dependency on @pubsweet/ui
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/examples/Example.jsx:3:1: Undeclared dependency on styled-components
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/examples/Example.jsx:4:1: Undeclared dependency on @pubsweet/ui-toolkit
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/component-sortable-list/test/SortableList.test.js:3:1: Undeclared dependency on enzyme
➤ YN0000: └ Completed in 1.58s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/component-users-manager/package.json
➤ YN0000: └ Completed in 0.21s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/client/xpub-edit/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/client/xpub-edit/src/components/configurable/EditorOptions.test.js:2:1: Undeclared dependency on enzyme
➤ YN0000: └ Completed in 1.89s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/component-aws-s3/package.json
➤ YN0000: └ Completed in 0.66s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/component-email-templating/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/component-email-templating/test/HTMLTemplateService.test.js:1:23: Undeclared dependency on lodash
➤ YN0000: └ Completed in 0.28s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/component-password-reset-server/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/component-password-reset-server/test/password_reset_graphql_test.js:16:18: Undeclared dependency on @pubsweet/models
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/component-password-reset-server/test/password_reset_graphql_test.js:20:22: Undeclared dependency on @pubsweet/model-user
➤ YN0000: └ Completed in 0.22s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/component-send-email/package.json
➤ YN0000: └ Completed in 0.27s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/model-blog/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-blog/package.json:12:35: Unmet transitive peer dependency on @pubsweet/models@>=0.2.4, via @pubsweet/model-collection@^4.0.30
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-blog/package.json:12:35: Unmet transitive peer dependency on lodash@>=4.17.11, via @pubsweet/model-collection@^4.0.30
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-blog/package.json:12:35: Unmet transitive peer dependency on pubsweet-server@>=13.0.0, via @pubsweet/model-collection@^4.0.30
➤ YN0000: └ Completed in 0.21s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/test/standaloneXsweetTest.js:2:19: Undeclared dependency on ws
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/test/standaloneXsweetTest.js:16:32: Undeclared dependency on subscriptions-transport-ws
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/test/standaloneXsweetTest.js:17:20: Undeclared dependency on superagent
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/package.json:12:29: Unmet transitive peer dependency on @pubsweet/models@>=0.3.0, via @pubsweet/db-manager@^3.1.8
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/package.json:12:29: Unmet transitive peer dependency on config@>=3.0.1, via @pubsweet/db-manager@^3.1.8
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/job-xsweet/package.json:16:24: Unmet transitive peer dependency on @pubsweet/model-user@>=5.0.0, via pubsweet-server@^13.10.0
➤ YN0000: └ Completed in 1.07s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/model-blogpost/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-blogpost/package.json:12:33: Unmet transitive peer dependency on pubsweet-server@>=11.0.0, via @pubsweet/model-fragment@^3.1.13
➤ YN0000: └ Completed in 0.21s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/model-collection/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-collection/package.json:12:29: Unmet transitive peer dependency on config@>=3.0.0, via @pubsweet/base-model@^3.6.3
➤ YN0000: └ Completed in 0.21s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/test/fragment_graphql_test.js:12:22: Undeclared dependency on @pubsweet/model-user
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/test/fragment_graphql_test.js:17:16: Undeclared dependency on @pubsweet/db-manager
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/package.json:12:29: Unmet transitive peer dependency on config@>=3.0.0, via @pubsweet/base-model@^3.6.3
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/package.json:13:29: Unmet transitive peer dependency on @pubsweet/model-user@>=2.0.0, via @pubsweet/model-team@^4.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/package.json:13:29: Unmet transitive peer dependency on config@>=3.0.1, via @pubsweet/model-team@^4.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/package.json:13:29: Unmet transitive peer dependency on lodash@>=4.17.11, via @pubsweet/model-team@^4.0.0
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-fragment/package.json:14:25: Unmet transitive peer dependency on config@>=3.0.1, via @pubsweet/models@^0.3.8
➤ YN0000: └ Completed in 0.21s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/model-team/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-team/test/1548205275-move-members_test.js:12:17: Undeclared dependency on @pubsweet/db-manager
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-team/test/1548205276-simplify-object_test.js:11:17: Undeclared dependency on @pubsweet/db-manager
➤ YN0000: └ Completed in 0.22s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/components/server/model-user/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/components/server/model-user/test/1581371297-migrate-users-to-identities_test.js:9:17: Undeclared dependency on @pubsweet/db-manager
➤ YN0000: └ Completed in 1.7s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/base-model/test/data-model-component/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/data-model-component/src/manuscript.js:32:21: Undeclared dependency on @pubsweet/model-team
➤ YN0000: └ Completed in 0.2s
➤ YN0000: ┌ /Users/juretriglav/src/pubsweet3/packages/base-model/test/extended-data-model-component/package.json
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/extended-data-model-component/src/graphql/index.js:12:11: Undeclared dependency on pubsweet-server
➤ YN0000: │ /Users/juretriglav/src/pubsweet3/packages/base-model/test/extended-data-model-component/src/graphql/index.js:22:11: Undeclared dependency on pubsweet-server
➤ YN0000: └ Completed in 0.21s
```https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/478Improve modal docs2020-03-31T21:09:35ZJureImprove modal docsThe docs don't show how you can use modals, i.e. what to import from where, how to use it, the example only shows the code `<Modals />`The docs don't show how you can use modals, i.e. what to import from where, how to use it, the example only shows the code `<Modals />`https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/465RFC: Email templates2020-01-10T11:23:07ZJureRFC: Email templatesEmail is a critical component for most of apps built with PubSweet and I see a number of issues that are related to emails and email templates in one way or another: !587, #435, #433, #356, and others.
We do have a templating system dev...Email is a critical component for most of apps built with PubSweet and I see a number of issues that are related to emails and email templates in one way or another: !587, #435, #433, #356, and others.
We do have a templating system developed by Hindawi (!413), but it's not reused in all relevant parts, and the templates themselves are hard-coded, not configurable.
It is a significant task to standardise how emails are templated and sent from all core parts, so I was thinking we could use this opportunity to remove some of our custom code in favour of a popular 3rd party email templating solution, namely: https://github.com/forwardemail/email-templates https://email-templates.js.org/
In this RFC I want comments on the following plan:
- replace a large part of our email templating component with a thin wrapper around `email-templates`
- use the templating system for all components in PubSweet's core (password reset emails, signup verification, etc)
- add ability to configure templates (perhaps also in a dynamic way i.e. store templates in a database model)
I believe that a simplified (and standard) email approach will be very beneficial for everyone in the community. Let me know what you think!
Cc @andrei.cioromila, @diversemix, @yannis, @audrey.https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/463Authorise custom email adresses on login/signup2019-11-30T14:24:40Zjulientaqjulien@coko.foundationAuthorise custom email adresses on login/signup**Describe the bug**
When creating an account using my coko.foundation adress, the app thinks the email address is not valid.
**Steps To Reproduce**
1. Create an account using `julien@coko.foundation` mail adress
**Expected behavio...**Describe the bug**
When creating an account using my coko.foundation adress, the app thinks the email address is not valid.
**Steps To Reproduce**
1. Create an account using `julien@coko.foundation` mail adress
**Expected behavior**
Using the coko.foundation adress let me create an account.
**Screenshots**
![image](/uploads/bff82c5253f131cd07a04b616666d478/image.png)
**Device, Operating System and Browser**
Mac book pro 2019, OSX 10.15, firefoxhttps://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/456Discuss docker best practices2019-08-30T09:30:27ZJavier Ariasjavi@openbookpublishers.comDiscuss docker best practicesIdeally Dockerfiles are able to bring an application up from zero to production. At present a single image is not able to start a pubsweet app since it requires to set the database (`yarn setupdb`) before running the server (`yarn server...Ideally Dockerfiles are able to bring an application up from zero to production. At present a single image is not able to start a pubsweet app since it requires to set the database (`yarn setupdb`) before running the server (`yarn server`) - and both commands need to be triggered at run time (i.e. the `CMD` statement in the Dockerfile), effectively requiring two separate images (one for setup and one for running).
There are two solutions I can think of:
* Make `yarn server` check that the database exists and automatically run `setupdb` otherwise.
* Create and [`entrypoint.sh`](https://docs.docker.com/engine/reference/builder/) file that checks the database and runs `setupdb`, and then keep `CMD ["yarn", "server"]` as the main command in docker.https://gitlab.coko.foundation/pubsweet/pubsweet/-/issues/452Documentation errors2019-08-08T10:35:36ZsagefrightDocumentation errors**Overview**
Documentationhas the following issues:
* Xpub components do not render (see screenshot)
* HTTPS is not enabled.
* Fonts not rendering properly (see screenshot)
**Steps To Reproduce**
Navigate to http://pubsweet.coko.fou...**Overview**
Documentationhas the following issues:
* Xpub components do not render (see screenshot)
* HTTPS is not enabled.
* Fonts not rendering properly (see screenshot)
**Steps To Reproduce**
Navigate to http://pubsweet.coko.foundation/#/Component%20library?id=editoritem
**Expected behavior**
* Components should render and not say "Your component is broken!"
* Fonts should render to display componenets in a nicer way
* The site should load on HTTPS
...
**Screenshots**
Components not rendering:
![PubSweet](/uploads/d8f5687ceaf202623a4df64d166dd743/PubSweet.jpg)
Fonts not rendering:
![PubSweet_and_Ian_Mulvany___Microsoft_Teams](/uploads/88f7b7f62365a80ea4c67585f0a6a7a3/PubSweet_and_Ian_Mulvany___Microsoft_Teams.jpg)
**Device, Operating System and Browser**
* Macbook Pro
* macOS Mojave
* Firefox 68