Skip to content

Commit 493fbb0

Browse files
committed
Merge remote-tracking branch 'origin/master' into stable
2 parents 7e0f274 + 87613fa commit 493fbb0

File tree

124 files changed

+13083
-11524
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+13083
-11524
lines changed

.env.sample

Lines changed: 72 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,86 @@
1-
# Export config
2-
EXPORT_DEFAULT_TYPE = png
3-
EXPORT_DEFAULT_CONSTR = chart
1+
# HIGHCHARTS CONFIG
2+
HIGHCHARTS_VERSION = latest
3+
HIGHCHARTS_CDN_URL = https://code.highcharts.com/
4+
HIGHCHARTS_CORE_SCRIPTS =
5+
HIGHCHARTS_MODULE_SCRIPTS =
6+
HIGHCHARTS_INDICATOR_SCRIPTS =
7+
HIGHCHARTS_FORCE_FETCH = false
8+
HIGHCHARTS_CACHE_PATH =
9+
HIGHCHARTS_ADMIN_TOKEN =
10+
11+
# EXPORT CONFIG
12+
EXPORT_TYPE = png
13+
EXPORT_CONSTR = chart
414
EXPORT_DEFAULT_HEIGHT = 400
515
EXPORT_DEFAULT_WIDTH = 600
616
EXPORT_DEFAULT_SCALE = 1
717
EXPORT_RASTERIZATION_TIMEOUT = 1500
818

9-
# Highcharts config
10-
HIGHCHARTS_VERSION = latest
11-
HIGHCHARTS_CDN = https://code.highcharts.com/
12-
HIGHCHARTS_FORCE_FETCH = false
13-
HIGHCHARTS_CORE_SCRIPTS =
14-
HIGHCHARTS_MODULES =
15-
HIGHCHARTS_INDICATORS =
19+
# CUSTOM LOGIC CONFIG
20+
CUSTOM_LOGIC_ALLOW_CODE_EXECUTION = false
21+
CUSTOM_LOGIC_ALLOW_FILE_RESOURCES = false
1622

17-
# Custom code config
18-
HIGHCHARTS_ALLOW_CODE_EXECUTION = false
19-
HIGHCHARTS_ALLOW_FILE_RESOURCES = false
23+
# SERVER CONFIG
24+
SERVER_ENABLE = false
25+
SERVER_HOST = 0.0.0.0
26+
SERVER_PORT = 7801
27+
SERVER_BENCHMARKING = false
2028

21-
# Server config
22-
HIGHCHARTS_SERVER_ENABLE = false
23-
HIGHCHARTS_SERVER_HOST = 0.0.0.0
24-
HIGHCHARTS_SERVER_PORT = 7801
29+
# SERVER PROXY CONFIG
30+
SERVER_PROXY_HOST =
31+
SERVER_PROXY_PORT =
32+
SERVER_PROXY_TIMEOUT = 5000
2533

26-
# Server SSL config
27-
HIGHCHARTS_SERVER_SSL_ENABLE = false
28-
HIGHCHARTS_SERVER_SSL_FORCE = false
29-
HIGHCHARTS_SERVER_SSL_PORT = 443
30-
HIGHCHARTS_SERVER_SSL_CERT_PATH =
34+
# SERVER RATE LIMITING CONFIG
35+
SERVER_RATE_LIMITING_ENABLE = false
36+
SERVER_RATE_LIMITING_MAX_REQUESTS = 10
37+
SERVER_RATE_LIMITING_WINDOW = 1
38+
SERVER_RATE_LIMITING_DELAY = 0
39+
SERVER_RATE_LIMITING_TRUST_PROXY = false
40+
SERVER_RATE_LIMITING_SKIP_KEY =
41+
SERVER_RATE_LIMITING_SKIP_TOKEN =
3142

32-
# Server rate limiting config
33-
HIGHCHARTS_RATE_LIMIT_ENABLE = false
34-
HIGHCHARTS_RATE_LIMIT_MAX = 10
35-
HIGHCHARTS_RATE_LIMIT_WINDOW = false
36-
HIGHCHARTS_RATE_LIMIT_DELAY = 0
37-
HIGHCHARTS_RATE_LIMIT_TRUST_PROXY = false
38-
HIGHCHARTS_RATE_LIMIT_SKIP_KEY =
39-
HIGHCHARTS_RATE_LIMIT_SKIP_TOKEN =
43+
# SERVER SSL CONFIG
44+
SERVER_SSL_ENABLE = false
45+
SERVER_SSL_FORCE = false
46+
SERVER_SSL_PORT = 443
47+
SERVER_SSL_CERT_PATH =
4048

41-
# Pool config
42-
HIGHCHARTS_POOL_MIN_WORKERS = 8
43-
HIGHCHARTS_POOL_MAX_WORKERS = 8
44-
HIGHCHARTS_POOL_WORK_LIMIT = 40
45-
HIGHCHARTS_POOL_ACQUIRE_TIMEOUT = 5000
46-
HIGHCHARTS_POOL_CREATE_TIMEOUT = 5000
47-
HIGHCHARTS_POOL_DESTROY_TIMEOUT = 5000
48-
HIGHCHARTS_POOL_IDLE_TIMEOUT = 30000
49-
HIGHCHARTS_POOL_CREATE_RETRY_INTERVAL = 200
50-
HIGHCHARTS_POOL_REAPER_INTERVAL = 1000
51-
HIGHCHARTS_POOL_BENCHMARKING = false
52-
HIGHCHARTS_POOL_LISTEN_TO_PROCESS_EXITS = true
49+
# POOL CONFIG
50+
POOL_MIN_WORKERS = 4
51+
POOL_MAX_WORKERS = 8
52+
POOL_WORK_LIMIT = 40
53+
POOL_ACQUIRE_TIMEOUT = 5000
54+
POOL_CREATE_TIMEOUT = 5000
55+
POOL_DESTROY_TIMEOUT = 5000
56+
POOL_IDLE_TIMEOUT = 30000
57+
POOL_CREATE_RETRY_INTERVAL = 200
58+
POOL_REAPER_INTERVAL = 1000
59+
POOL_BENCHMARKING = false
5360

54-
# Logging config
55-
HIGHCHARTS_LOG_LEVEL = 4
56-
HIGHCHARTS_LOG_FILE = highcharts-export-server.log
57-
HIGHCHARTS_LOG_DEST = log/
61+
# LOGGING CONFIG
62+
LOGGING_LEVEL = 4
63+
LOGGING_FILE = highcharts-export-server.log
64+
LOGGING_DEST = log/
65+
LOGGING_TO_CONSOLE = true
66+
LOGGING_TO_FILE = true
5867

59-
# UI config
60-
HIGHCHARTS_UI_ENABLE = true
61-
HIGHCHARTS_UI_ROUTE = /
68+
# UI CONFIG
69+
UI_ENABLE = true
70+
UI_ROUTE = /
6271

63-
# Other config
64-
HIGHCHARTS_NO_LOGO = false
72+
# OTHER CONFIG
73+
OTHER_NODE_ENV = production
74+
OTHER_LISTEN_TO_PROCESS_EXITS = true
75+
OTHER_NO_LOGO = false
76+
OTHER_HARD_RESET_PAGE = false
77+
OTHER_BROWSER_SHELL_MODE = true
6578

66-
# Proxy config
67-
PROXY_SERVER_HOST =
68-
PROXY_SERVER_PORT =
69-
PROXY_SERVER_TIMEOUT =
79+
# DEBUG CONFIG
80+
DEBUG_ENABLE = false
81+
DEBUG_HEADLESS = true
82+
DEBUG_DEVTOOLS = false
83+
DEBUG_LISTEN_TO_CONSOLE = false
84+
DEBUG_DUMPIO = false
85+
DEBUG_SLOW_MO = 0
86+
DEBUG_DEBUGGING_PORT = 9222

.eslintrc.cjs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,34 @@
11
module.exports = {
22
env: {
3+
browser: true,
34
es2021: true,
45
node: true
56
},
7+
root: true,
68
parserOptions: {
79
ecmaVersion: 'latest',
810
sourceType: 'module'
911
},
12+
plugins: ['import', 'prettier'],
1013
extends: [
1114
'eslint:recommended',
1215
'plugin:import/recommended',
1316
'plugin:prettier/recommended'
1417
],
15-
plugins: ['import', 'prettier'],
18+
overrides: [
19+
{
20+
files: ['*.test.js', '*.spec.js'],
21+
env: {
22+
jest: true
23+
}
24+
}
25+
],
1626
rules: {
17-
'no-unused-vars': 'off',
27+
'no-unused-vars': 0,
1828
'import/no-cycle': 2,
1929
'prettier/prettier': [
2030
'error',
2131
{
22-
singleQuote: true,
23-
trailingComma: 'none',
24-
semi: true,
25-
tabWidth: 2,
2632
endOfLine: require('os').EOL === '\r\n' ? 'crlf' : 'lf'
2733
}
2834
]

.github/workflows/build-and-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Set up Node.js
1717
uses: actions/setup-node@v4
1818
with:
19-
node-version: '16.4.0'
19+
node-version: '18.x.x'
2020

2121
- name: Install Dependencies
2222
run: npm ci

.github/workflows/eslint-check.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: ESLint check
2+
3+
on: [ pull_request ]
4+
5+
jobs:
6+
eslint:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout Repository
10+
uses: actions/checkout@v4
11+
12+
- name: Set up Node.js
13+
uses: actions/setup-node@v4
14+
with:
15+
node-version: '18.x.x'
16+
17+
- name: Install Dependencies
18+
run: npm install
19+
20+
- name: Run ESLint
21+
id: eslint
22+
continue-on-error: true
23+
run: |
24+
ESLINT_OUTPUT=$(npx eslint . --ext .js,.jsx,.ts,.tsx)
25+
echo "::set-output name=result::$ESLINT_OUTPUT"
26+
if [ -z "$ESLINT_OUTPUT" ]; then
27+
echo "ESLint found no issues :white_check_mark:"
28+
echo "::set-output name=status::success"
29+
else
30+
echo "$ESLINT_OUTPUT"
31+
echo "::set-output name=status::failure"
32+
exit 1
33+
fi
34+
35+
- name: Success Message
36+
if: steps.eslint.outputs.status == 'success'
37+
run: echo "✅ ESLint check passed successfully!"
38+
39+
- name: Failure Message
40+
if: failure()
41+
run: echo "❌ ESLint check failed. Please fix the issues."

.github/workflows/unit-tests.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Unit tests
2+
3+
on:
4+
pull_request:
5+
branches: [ master ]
6+
7+
jobs:
8+
testing:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout Repository
13+
uses: actions/checkout@v4
14+
15+
- name: Set up Node.js
16+
uses: actions/setup-node@v4
17+
with:
18+
node-version: '18.x.x'
19+
20+
- name: Install dependencies
21+
run: npm ci
22+
23+
- name: Run unit tests
24+
run: npm run unit:test
25+
env:
26+
CI: true

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ log/
33
tests/_temp
44
tmp/
55
dist/
6+
.cert/
67

78
.DS_Store
89
.cache
@@ -12,6 +13,8 @@ dist/
1213

1314
tests/**/_results/
1415

16+
resources.json
17+
1518
**/*.png
1619
**/*.pdf
1720
**/*.svg

.husky/pre-commit

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
npm run lint
2+
npm run unit:test

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
node_modules/
2+
dist/*
3+
README.md

.prettierrc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
2+
"semi": true,
23
"singleQuote": true,
3-
"arrowParens": "always",
4+
"tabWidth": 2,
5+
"printWidth": 80,
46
"trailingComma": "none"
57
}
6-

.puppeteerrc.cjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const { join } = require('path');
2+
3+
/**
4+
* @type {import("puppeteer").Configuration}
5+
*/
6+
module.exports = {
7+
cacheDirectory: join(__dirname, 'node_modules', '.puppeteer-cache')
8+
};

0 commit comments

Comments
 (0)