Commit Graph

596 Commits

Author SHA1 Message Date
Daniel Lockyer
e14beeb7d2 Moved c8 to devDependencies
no issue

- `c8` is only used to check coverage in testing and we don't directly
  use it from within `tpl`, so this can be moved to `devDependencies`
2021-06-15 11:04:14 +01:00
Renovate Bot
f248f0d347 Update dependency c8 to v7.7.3 2021-06-14 00:31:49 +00:00
Hannah Wolfe
9eed5d69ef Published new versions
- @tryghost/package-json@1.0.0
 - @tryghost/tpl@0.1.1
2021-06-09 15:50:58 +01:00
Hannah Wolfe
1daa6eda61 Improved typing in package-json
- fixed type warnings
- introduced explicit use of bluebird to help with type warnings and also make it clear when we're actually using Bluebird features
2021-06-09 15:44:04 +01:00
Hannah Wolfe
93e4577caf Removed class pattern
- removed the class pattern in the simplest possible way
- have package-json expose only the public methods
- move parse to an independent, not public file so that we can test it independently still
2021-06-09 14:39:41 +01:00
Hannah Wolfe
dd129e0920 Removed use of i18n in package-json
- We are going to get rid of the internal i18n tool because it doesn't solve a real use case
- Instead, we have a new tpl utility that does basic string interpolation
- This makes this module less complex as it no longer requires dependency injection to work
2021-06-09 14:10:04 +01:00
Hannah Wolfe
224c6996f1 Added new tests & missing return type to tpl
- Ensuring that various strings from en.json will work
- Added missing return type
2021-06-09 12:25:45 +01:00
Hannah Wolfe
b06e2a4577 Published new versions
- @tryghost/adapter-manager@0.2.13
 - @tryghost/bootstrap-socket@0.2.9
 - @tryghost/constants@0.1.8
 - @tryghost/errors@0.2.12
 - @tryghost/image-transform@1.0.12
 - @tryghost/job-manager@0.8.7
 - @tryghost/limit-service@0.6.1
 - @tryghost/moleculer-service-from-class@0.2.16
 - @tryghost/mw-session-from-token@0.1.21
 - @tryghost/package-json@0.1.2
 - @tryghost/pretty-cli@1.2.18
 - @tryghost/promise@0.1.9
 - @tryghost/release-utils@0.6.15
 - @tryghost/security@0.2.9
 - @tryghost/session-service@0.1.23
 - @tryghost/tpl@0.1.0
 - @tryghost/vhost-middleware@1.0.15
 - @tryghost/zip@1.1.14
2021-06-09 12:10:10 +01:00
Hannah Wolfe
1a0436b540 Added ts-ignore for lodash interpolate
- ts complains the value may be undefined but in reality it never is
- plus we don't care about this error in this context as the test is checking that the value is set to its default
2021-06-09 12:00:07 +01:00
Hannah Wolfe
f2b1d37cd4 Renamed package-json tests to use .test.js pattern
- all our modules use .test.js instead of the _spec.js pattern we use in Ghost
- updated for consistency
2021-06-09 11:57:52 +01:00
Hannah Wolfe
202e0a0bb6 Added coverage reporting for tpl package
- this is 100% already
2021-06-09 11:57:52 +01:00
Renovate Bot
c72d090c97 Update dependency mocha to v9 2021-06-09 09:58:44 +00:00
Hannah Wolfe
6d3a629690 Added minimal tpl() template helper
- This mini helper wraps lodash template and supports `{...}` as the delimiters
- It's designed to use and support the exact same patterns we already have in our en.json strings
E.g. The {flagName} flag must be enabled in labs if you wish to use the \\{\\{{helperName}\\}\\} helper.
- This allows us to get rid of our old, broken i18n helper and still keep some of the smart messaging we have setup
- It also keeps the refactor surface area minimal
2021-06-09 10:04:49 +01:00
Renovate Bot
899e3fb0d8 Update dependency @types/sinon to v10.0.2 2021-06-02 08:02:37 +00:00
Renovate Bot
4fbd1ac31f Update dependency @sinonjs/fake-timers to v7.1.2 2021-05-28 15:50:34 +00:00
Renovate Bot
b47312607d Update dependency date-fns to v2.22.1 2021-05-28 12:23:22 +00:00
Renovate Bot
f35a07f4cb Update dependency date-fns to v2.22.0 2021-05-28 08:51:25 +00:00
Renovate Bot
2f926c740d Update dependency @sinonjs/fake-timers to v7.1.1 2021-05-27 11:58:34 +00:00
Renovate Bot
773991c1e6 Update dependency typescript to v4.3.2 2021-05-26 19:12:39 +00:00
Renovate Bot
24161773f3 Update dependency @types/sinon to v10.0.1 2021-05-25 20:31:28 +00:00
Renovate Bot
95e93b82b6 Update dependency @types/express to v4.17.12 2021-05-25 17:31:48 +00:00
Renovate Bot
80b56b8976 Update dependency sinon to v11 2021-05-24 22:37:15 +00:00
Renovate Bot
b71fe10342 Update dependency @sinonjs/fake-timers to v7.1.0 2021-05-21 13:51:02 +00:00
Naz
f2c1ee2263 Published new versions
- @tryghost/limit-service@0.6.0
2021-05-21 14:16:04 +04:00
Naz
ad0d1ab557 Fixed indescribable error in allowlist limit
https://github.com/TryGhost/Team/issues/663

-  When there is no parameter passed at all it was a generic 'Cannot read property 'value' of undefined' message which wasn't helpful in recognizing what the actual problem was
- Have added additional guarding logic to throw a descriptive error
2021-05-21 14:09:27 +04:00
Naz
f0a5fc975c Fixed error "swallowing"
no issue

- I've discovered the "IncorrectUsageError" error was silently swallowed and the method returned a false positibe when an allowlist limit type was called with incorrect parameters
- In cases like this it's best to surface the real error early otherwise the logic might produce unsafe results!
2021-05-21 14:02:35 +04:00
Naz
9632e98dd2 Added a convenience method checking if any limits are acceded
refs https://github.com/TryGhost/Team/issues/662

- There is a need to check if any of the current limits are over limit in Daisy. This method is the simplest possible implementation to check if any of them are over limit
- Possible future iterations might include a list of names of the limits that have been acceded and their error messages
- The `checkIfAnyOverLimit` method should be treated as a starter to work up the complexity as needed
2021-05-21 13:24:55 +04:00
Thibaut Patel
4b92e67334 Published new versions
- @tryghost/session-service@0.1.22
2021-05-14 18:03:17 +02:00
Thibaut Patel
6bfefa02ac Added a CSRF bypass to enable OAuth
issue https://github.com/TryGhost/Team/issues/614
2021-05-14 17:38:33 +02:00
Naz
6a08297c3a Published new versions
- @tryghost/job-manager@0.8.6
 - @tryghost/limit-service@0.5.1
2021-05-12 16:42:36 +04:00
Naz
88f0c332b4 Exposed additional "name" variable in error templates
refs https://github.com/TryGhost/Team/issues/587

- There was a need to be able to use the "name" of the limit inside of error templates like so: `{{name}}` (reference https://github.com/TryGhost/Team/issues/587#issuecomment-814281794)
- This change allows to form custom error messages using following variable: `{{name}}` which is the same as the `name` property provided in the configuration for the limit
2021-05-12 14:43:52 +04:00
Thibaut Patel
2b46145f88 Updated the example for the customThemes configuration
no issue
2021-05-12 11:56:41 +02:00
Naz
e26597e045 Added header to the section
no issue

- Made it clear what this part of the doc is about
2021-05-11 17:15:22 +04:00
Naz
7ec5e4bd72 Added documentation for names of limits
refs https://github.com/TryGhost/Team/issues/510

- There's a limited type of limit "names" supported by the limit service, so worth specifying them upfront. Also some limits are univerally aplicable like "flag" or "allowlist" and some are restricted like "max" and "maxPeriodic"
2021-05-11 17:14:58 +04:00
Naz
420ba250a3 Added documentation for types of limits
refs https://github.com/TryGhost/Team/issues/588
refs https://github.com/TryGhost/Team/issues/510

- There's a limited type of limits supported by the limit service and it's worth to have a conceptual description of how they work and how to use them
2021-05-11 17:13:18 +04:00
Naz
12b31a7b4b Added customThemes limit to config example
refs https://github.com/TryGhost/Team/issues/590

- The "allowList" type of configuration was missing from the example, added it for reference
2021-05-11 16:31:34 +04:00
Naz
37fa30fd6b Added emails limit to documentation example
refs https://github.com/TryGhost/Team/issues/588

- The "emails" limit was added with recent changes and could be configured as either "flag" or "maxPeridoci" type of limit
- More docs on different types of limits to follow
2021-05-11 16:29:10 +04:00
Renovate Bot
e6343c985f Update dependency date-fns to v2.21.3 2021-05-10 01:34:46 +00:00
Naz
30f1194cf9 Published new versions
- @tryghost/limit-service@0.5.0
 - @tryghost/package-json@0.1.1
2021-05-07 18:23:35 +04:00
Naz
612cc2b513 Added addedCount to max and maxPeriodic limits
refs https://github.com/TryGhost/Team/issues/588

- The `addedCount` parameter in `errorIfWouldGoOverLimit` method allows to specify a custom resource count that is about to be added. Example usecase is when we'd want to send a 100 emails and current limit is 99, and none have been sent so far. With previous implementation the check would've passed because it only checked for single resource that would be added through "+1". Current implementation allows to specify the amount of recources to be added
2021-05-07 18:13:01 +04:00
Naz
4f0a7fa1d3 Fixed query counting total emails sent in a period
refs https://github.com/TryGhost/Team/issues/588

- The previous query was quickly copied from stats-service which was using incorrect table for the count
- Updated version sums up email_count values for emails in given period of time
2021-05-07 17:58:01 +04:00
Daniel Lockyer
a81d90b126 Added c8 coverage to package-json tests
no issue

- this commit adds the c8 dependency to the `package-json`, and prepends
  it to the test alias so we can see the coverage in tests
- note: we're apparently already at 100%!
2021-05-07 12:36:36 +01:00
Naz
763875a15b Published new versions
- @tryghost/job-manager@0.8.5
 - @tryghost/limit-service@0.4.4
 - @tryghost/mw-session-from-token@0.1.20
 - @tryghost/package-json@0.1.0
 - @tryghost/session-service@0.1.21
 - @tryghost/zip@1.1.13
2021-05-07 15:00:07 +04:00
Naz
bd360e620f Removed date-fns dev dependency
refs https://github.com/TryGhost/Team/issues/588
refs 6a1e722648

- date-fns proved to be unable to manipulate dates in consistent UTC format and was substitured with luxon in referenced commit. Removing it from tests for consistency
2021-05-07 14:56:40 +04:00
Naz
6a1e722648 Fixed time difference calculation in DST timezones
refs https://github.com/TryGhost/Team/issues/588

- date-fns proved to be unable to manipulate dates consistently in UTC timezone. Keeping all calculations and formatting in UTC is key to have consistency in dates when dealing in inter-system dates
- day.js also failed the test for correct UTC manipulation. See https://github.com/iamkun/dayjs/issues/1271 for example bug which prevents from consistent correct calculation
- luxon was the best option which WORKED. It's also a recommended successor for moment.js with really nice docs and active support
2021-05-07 14:41:52 +04:00
Naz
16e21236ba Clarified test name 2021-05-07 11:46:33 +04:00
Renovate Bot
131011fad4 Update dependency extract-zip to v2.0.1 2021-05-06 20:06:06 +00:00
Renovate Bot
8b576d501a Update dependency @types/express to v4.17.11 2021-05-06 18:16:07 +00:00
Renovate Bot
3d4e65ebc3 Pin dependency date-fns to 2.21.2 2021-05-06 16:14:06 +00:00
Daniel Lockyer
e0a966d6af Fixed package-json test requires
no issue

- these tests have just been extracted from Ghost so the paths are wrong
  and they're missing the global utils import
2021-05-06 15:16:29 +01:00