@hexonet/semantic-release-whmcs 3.1.0 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
- })