@hexonet/semantic-release-whmcs 3.1.0 → 3.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. package/.eslintrc.js +13 -12
  2. package/.github/workflows/pull-request.yml +12 -10
  3. package/.github/workflows/push.yml +28 -16
  4. package/HISTORY.md +22 -0
  5. package/{base.css → coverage/base.css} +0 -0
  6. package/{block-navigation.js → coverage/block-navigation.js} +8 -0
  7. package/{coverage-final.json → coverage/coverage-final.json} +8 -8
  8. package/{favicon.png → coverage/favicon.png} +0 -0
  9. package/{index.html → coverage/index.html} +20 -15
  10. package/{lib → coverage/lib}/definitions/errors.js.html +21 -7
  11. package/{lib → coverage/lib}/definitions/index.html +8 -3
  12. package/{lib → coverage/lib}/delete-marketplace-version.js.html +10 -5
  13. package/{lib → coverage/lib}/get-error.js.html +9 -4
  14. package/{lib → coverage/lib}/get-github-releases.js.html +8 -3
  15. package/{lib → coverage/lib}/index.html +24 -19
  16. package/{lib → coverage/lib}/publish.js.html +83 -21
  17. package/{lib → coverage/lib}/puppet.js.html +12 -7
  18. package/{lib → coverage/lib}/resolve-config.js.html +9 -4
  19. package/{lib → coverage/lib}/scrape-marketplace-versions.js.html +8 -3
  20. package/{lib → coverage/lib}/set-compatible-versions.js.html +10 -5
  21. package/{lib → coverage/lib}/verify.js.html +12 -7
  22. package/{prettify.css → coverage/prettify.css} +0 -0
  23. package/{prettify.js → coverage/prettify.js} +0 -0
  24. package/{sort-arrow-sprite.png → coverage/sort-arrow-sprite.png} +0 -0
  25. package/{sorter.js → coverage/sorter.js} +26 -0
  26. package/lib/definitions/errors.js +6 -3
  27. package/lib/get-error.js +1 -1
  28. package/lib/publish.js +37 -18
  29. package/lib/verify.js +1 -1
  30. package/package.json +18 -19
  31. package/whmcs.js +0 -1
  32. package/test/publish.test.js +0 -83
  33. package/test/verify.test.js +0 -59
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hexonet/semantic-release-whmcs",
3
3
  "description": "`semantic-release` plugin for auto-publishing on WHMCS marketplace",
4
- "version": "3.1.0",
4
+ "version": "3.1.3",
5
5
  "private": false,
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -13,8 +13,8 @@
13
13
  "main": "index.js",
14
14
  "license": "MIT",
15
15
  "engines": {
16
- "node": ">=12.0.0",
17
- "npm": ">=6.14.8"
16
+ "node": ">=16.15.1",
17
+ "npm": ">=8.11.1"
18
18
  },
19
19
  "homepage": "https://github.com/hexonet/semantic-release-whmcs#readme",
20
20
  "repository": "github:hexonet/semantic-release-whmcs",
@@ -57,29 +57,28 @@
57
57
  "semantic-release": "semantic-release"
58
58
  },
59
59
  "devDependencies": {
60
- "@octokit/core": "^3.2.0",
61
- "@semantic-release/changelog": "^5.0.1",
62
- "@semantic-release/exec": "^5.0.0",
63
- "@semantic-release/git": "^9.0.0",
64
- "ava": "^3.13.0",
65
- "debug": "^4.2.0",
66
- "eslint": "^7.12.1",
67
- "eslint-config-standard": "^16.0.0",
68
- "eslint-plugin-import": "^2.23.2",
60
+ "@semantic-release/changelog": "^6.0.1",
61
+ "@semantic-release/exec": "^6.0.2",
62
+ "@semantic-release/git": "^10.0.1",
63
+ "ava": "^4.0.0",
64
+ "eslint": "^8.0.1",
65
+ "eslint-config-standard": "^17.0.0",
66
+ "eslint-plugin-import": "^2.25.2",
69
67
  "eslint-plugin-json": "^3.0.0",
70
68
  "eslint-plugin-markdown": "^2.1.0",
71
- "eslint-plugin-node": "^11.1.0",
72
- "eslint-plugin-promise": "^4.3.1",
69
+ "eslint-plugin-n": "^15.2.0",
70
+ "eslint-plugin-promise": "^6.0.0",
73
71
  "esm": "^3.2.25",
74
72
  "nyc": "^15.1.0",
75
- "semantic-release": "^17.2.1"
73
+ "semantic-release": "^18.0.1",
74
+ "stream-buffers": "^3.0.2"
76
75
  },
77
76
  "dependencies": {
78
- "@semantic-release/error": "^2.2.0",
79
- "aggregate-error": "^3.0.0",
77
+ "@semantic-release/error": "^3.0.0",
78
+ "aggregate-error": "^3.1.0",
79
+ "debug": "^4.3.4",
80
80
  "github-api": "^3.4.0",
81
- "puppeteer": "^9.0.0",
82
- "sinon": "^10.0.0",
81
+ "puppeteer": "^14.0.0",
83
82
  "yargs": "^17.0.1"
84
83
  }
85
84
  }
package/whmcs.js CHANGED
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
 
3
2
  const { publish, syncVersions, delVersion, updateCompatibility } = require('./index.js')
4
3
 
@@ -1,83 +0,0 @@
1
- import test from 'ava'
2
- const publish = require('../lib/publish')
3
- const deleteVersion = require('../lib/delete-marketplace-version')
4
-
5
- test.beforeEach((t) => {
6
- // Mock logger
7
- t.context.logger = new class {
8
- log (msg) {
9
- if (process.env.DEBUG && /^semantic-release:(\*|whmcs)$/.test(process.env.DEBUG)) {
10
- console.log(msg)
11
- }
12
- }
13
-
14
- error (msg, details) { console.error(msg + ' ' + details) }
15
- }()
16
- })
17
-
18
- test.serial('Verify publishing [login fails]', async (t) => {
19
- const context = {
20
- env: {
21
- WHMCSMP_LOGIN: 'anonymous@hexonet.net',
22
- WHMCSMP_PASSWORD: '1234567890',
23
- WHMCSMP_PRODUCTID: '0'
24
- },
25
- logger: t.context.logger,
26
- nextRelease: {
27
- version: 'v6.6.6',
28
- notes: '# something changed\n\ntwice.'
29
- }
30
- }
31
- const result = await publish({}, context)
32
- t.is(result, false)
33
- })
34
-
35
- test.serial('Verify publishing [no product id]', async (t) => {
36
- const env = {
37
- WHMCSMP_LOGIN: process.env.WHMCSMP_LOGIN,
38
- WHMCSMP_PASSWORD: process.env.WHMCSMP_PASSWORD
39
- }
40
- t.truthy(env.WHMCSMP_LOGIN)
41
- t.truthy(env.WHMCSMP_PASSWORD)
42
- const context = {
43
- env,
44
- logger: t.context.logger,
45
- nextRelease: {
46
- version: 'v6.6.6',
47
- notes: '# something changed\n\ntwice.'
48
- }
49
- }
50
- const result = await publish({}, context)
51
- t.is(result, false)
52
- })
53
-
54
- test.serial('Verify publishing [all fine]', async (t) => {
55
- const env = process.env
56
- t.truthy(env.WHMCSMP_LOGIN)
57
- t.truthy(env.WHMCSMP_PASSWORD)
58
- t.truthy(env.WHMCSMP_PRODUCTID)
59
- const context = {
60
- env,
61
- logger: t.context.logger,
62
- nextRelease: {
63
- version: '0.0.1',
64
- notes:
65
- '# something changed\n\ntwice\n\n[link test](https://github.com/papakai) [link test2](https://github.com/papakai)\n\ndone.'
66
- }
67
- }
68
- const result = await publish({}, context)
69
- t.assert(result !== false)
70
-
71
- // wait 20s between adding and deleting
72
- await new Promise((resolve) => {
73
- setTimeout(resolve, 20000)
74
- })
75
-
76
- const delContext = {
77
- env,
78
- logger: t.context.logger,
79
- version: context.nextRelease.version
80
- }
81
- const del = await deleteVersion({}, delContext)
82
- t.assert(del !== false)
83
- })
@@ -1,59 +0,0 @@
1
- import test from 'ava'
2
- const verify = require('../lib/verify')
3
- /* eslint camelcase: ["error", {properties: "never"}] */
4
-
5
- test.beforeEach(t => {
6
- // Mock logger
7
- t.context.logger = new class {
8
- log (msg) {
9
- if (process.env.DEBUG && /^semantic-release:(\*|whmcs)$/.test(process.env.DEBUG)) {
10
- console.log(msg)
11
- }
12
- }
13
-
14
- error (msg, details) { console.error(msg + ' ' + details) }
15
- }()
16
- })
17
-
18
- test.serial('Verify credentials [no login]', async t => {
19
- const env = {}
20
- const [error] = await t.throwsAsync(
21
- verify({}, { env, logger: t.context.logger })
22
- )
23
- t.is(error.name, 'SemanticReleaseError')
24
- t.is(error.code, 'EWHMCSNOCREDENTIALS')
25
- })
26
-
27
- test.serial('Verify credentials [no password]', async t => {
28
- const env = { WHMCSMP_LOGIN: 'mylogin' }
29
- const [error] = await t.throwsAsync(
30
- verify({}, { env, logger: t.context.logger })
31
- )
32
- t.is(error.name, 'SemanticReleaseError')
33
- t.is(error.code, 'EWHMCSNOCREDENTIALS')
34
- })
35
-
36
- test.serial('Verify product id [no product id]', async t => {
37
- const env = { WHMCSMP_LOGIN: 'mylogin', WHMCSMP_PASSWORD: 'mypassword' }
38
- const [error] = await t.throwsAsync(
39
- verify({}, { env, logger: t.context.logger })
40
- )
41
- t.is(error.name, 'SemanticReleaseError')
42
- t.is(error.code, 'EWHMCSNOPRODUCTID')
43
- })
44
-
45
- test.serial('Verify product id [invalid product id]', async t => {
46
- const env = { WHMCSMP_LOGIN: 'mylogin', WHMCSMP_PASSWORD: 'mypassword', WHMCSMP_PRODUCTID: 'myproductid' }
47
- const [error] = await t.throwsAsync(
48
- verify({}, { env, logger: t.context.logger })
49
- )
50
- t.is(error.name, 'SemanticReleaseError')
51
- t.is(error.code, 'EWHMCSINVALIDPRODUCTID')
52
- })
53
-
54
- test.serial('Verify data [all fine]', async t => {
55
- const env = { WHMCSMP_LOGIN: 'mylogin', WHMCSMP_PASSWORD: 'mypassword', WHMCSMP_PRODUCTID: '123456' }
56
- await t.notThrowsAsync(
57
- verify({}, { env, logger: t.context.logger })
58
- )
59
- })