Repository navigation
Expand file tree
/
Copy pathpackage.json
More file actions
130 lines (130 loc) · 7.2 KB
/
Copy pathpackage.json
File metadata and controls
130 lines (130 loc) · 7.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
{
"name": "fog-node",
"private": true,
"version": "2.0.0",
"description": "a Sails application",
"keywords": [],
"dependencies": {
"@fortawesome/fontawesome-free": "^7.3.1",
"@peculiar/x509": "^1.12.0",
"@sailshq/connect-redis": "^6.1.3",
"@sailshq/lodash": "^3.10.4",
"@sailshq/socket.io-redis": "^6.1.2",
"admin-lte": "^4.10.0",
"animate.css": "^4.1.1",
"bcryptjs": "^3.0.3",
"bootstrap": "^5.3.3",
"chalk": "^6.0.1",
"chart.js": "^4.6.1",
"check-disk-space": "^4.0.0",
"clui": "^0.3.6",
"datatables.net": "^3.1.5",
"datatables.net-autofill-bs5": "^3.1.3",
"datatables.net-bs5": "^3.1.5",
"datatables.net-buttons-bs5": "^4.1.3",
"datatables.net-colreorder-bs5": "^3.1.2",
"datatables.net-keytable-bs5": "^3.1.2",
"datatables.net-responsive-bs5": "^4.1.1",
"datatables.net-rowgroup-bs5": "^2.1.1",
"datatables.net-rowreorder-bs5": "^2.1.1",
"datatables.net-scroller-bs5": "^3.1.1",
"datatables.net-select-bs5": "^4.1.1",
"figlet": "^1.12.0",
"global": "^4.4.0",
"grunt": "1.6.3",
"grunt-terser": "^2.0.0",
"icheck-bootstrap": "^3.0.1",
"inputmask": "^5.0.10",
"inquirer": "^14.2.5",
"joi": "^18.3.2",
"jquery": "^4.0.0",
"jsonwebtoken": "~>9.0.0",
"jszip": "^3.10.2",
"moment-timezone": "^0.6.6",
"node-forge": "^1.4.3",
"pace-js": "^1.3.0",
"passport": "0.7.0",
"passport-jwt-cookiecombo": "^1.0.5",
"passport-local": "^1.0.0",
"pdfmake": "^0.3.13",
"progress-stream": "^2.0.0",
"sails": "~>1.5.3",
"sails-hook-grunt": "^5.0.2",
"sails-hook-orm": "^4.0.0",
"sails-hook-sockets": "^3.0.2",
"sails-mongo": "fogproject/sails-mongo",
"select2": "^4.1.0",
"systeminformation": "^5.33.19",
"tempusdominus-core": "^5.19.0",
"terser": "^5.51.2"
},
"devDependencies": {
"eslint": "10.5.0",
"globals": "^17.14.0",
"mocha": "^12.0.3",
"playwright": "~1.65.0",
"supertest": "^7.3.1",
"ws": "^8.22.1"
},
"comments": {
"scripts": "Every script must run in both POSIX sh and Windows cmd, because fog-node runs on any OS that runs Node. Do not use VAR=value prefixes, ./path executables, or quotes around echo text. start uses --prod, and Sails then sets NODE_ENV itself. lint calls eslint from node_modules/.bin. The test port and the grunt switch are in test/lifecycle.test.js.",
"custom-tests": "The mocha suite lifts a real Sails app (options in test/lifecycle.test.js). Port 1338 keeps it off 1337 so the suite can run while a dev server is up. Turning the grunt hook off skips the asset pipeline: it is irrelevant to these route tests, and letting it run makes sails-linker rewrite the <script>/<link> block in views/layouts/layout.ejs from whatever happens to be in .tmp — on a fresh clone or CI checkout that directory is empty, so `npm test` would silently strip every vendor tag out of a tracked file. --recursive is required or test/route/ is skipped; --exit is required because Sails leaves handles open after lower().",
"test:ui": "Lifts fog-node with grunt ON and drives Chromium through every routed page (tools/smoke/ui.js). It catches a broken UI dependency that npm test cannot see, because npm test never builds or loads the UI. Needs MongoDB, Redis, npm run setup:dev, and `npx playwright install chromium` once.",
"test:install": "Runs the real installer from an answers file, lifts in production mode, signs in, and checks the socket origins (tools/smoke/install.js). CI never ran the installer before; chalk 6 broke it with every check green. Needs MongoDB and Redis. ws (devDependencies) drives the socket handshake.",
"@peculiar/x509": "Builds and signs the fog-agent CA certificates and reads the agent's CSR (tools/setup/pki.js, api/helpers/agent). node-forge cannot parse the agent's ECDSA P-256 CSR, and Node's crypto cannot build certificates. The range stays on major 1 because 1.x ships a CommonJS build and fog-node is CommonJS; 3.x is ESM-only. Installed 1.14.3, the newest 1.x.",
"agent-ca": "Backs up the fog-agent CA keys to the database under a passphrase, restores them from there into an empty PKI folder, or shows the backup status: npm run agent-ca -- backup|restore|status [--passphrase-file <path>] (tools/setup/agent-ca.js). docs/install.md 'Back up the agent CA' describes it.",
"migrate": "Moves the database from the schema revision in its schema Setting up to the revision in schema below, running each migrations/<n>.js in order (tools/migrate/index.js). It asks about a database backup first: that backup is the rollback. docs/install.md 'Update fog-node' runs it after git pull and npm ci.",
"schema": "The latest schema revision, the highest migrations/<n>.js. tools/lib/config.js getMergedSettings merges this file over config/local.js, so the code names its own revision. A new install records it (tools/setup/lib/schema.js) and so never runs a revision on its empty database.",
"overrides": "Force-patch vulnerable transitive deps pinned by the abandoned sails-hook-grunt/grunt-contrib-less build chain. npm audit fix can't reach them because their parents are unmaintained. Keys of the form 'pkg@N' pin one major at a time, so each consumer keeps the major it was written against. 'less' is forced to 4.x: grunt-contrib-less@1.3.0 asks for less ~2.6.0, but less >=4.6 dropped its bundled HTTP importer, which is what dragged in the unpatchable 'request' and 'image-size' advisories — 'grunt less:dev' output was verified byte-identical before and after that bump. babel-traverse@6 is knowingly left vulnerable: it comes from babel-core@6 inside sails-hook-grunt, there is no 6.x patch, and dropping it would mean dropping asset transpilation from the prod build."
},
"overrides": {
"async": "^3.2.6",
"body-parser@1": "^1.20.6",
"brace-expansion@1": "^1.1.18",
"brace-expansion@2": "^2.1.4",
"brace-expansion@5": "^5.0.9",
"form-data": "^4.0.4",
"getobject": "^1.0.0",
"grunt": "$grunt",
"joi": "$joi",
"js-yaml@3": "^3.15.1",
"js-yaml@4": "^4.3.1",
"json5": "^2.2.3",
"jsonwebtoken": "$jsonwebtoken",
"less": "^4.8.1",
"lodash": "^4.18.1",
"minimatch@3": "^3.1.5",
"qs": "^6.14.2",
"serialize-javascript": "^7.0.5",
"socket.io-parser": "^4.2.7",
"tough-cookie": "^4.1.4",
"trim-newlines": "^3.0.1",
"uuid": "^11.1.1",
"websocket-driver": "^0.7.5"
},
"scripts": {
"start": "node app.js --prod",
"setup": "node tools/setup/index.js",
"setup:dev": "node tools/setup/dev.js",
"seed:dev": "node tools/setup/seed-dev.js",
"test": "npm run lint && npm run custom-tests && echo Done.",
"lint": "eslint . --max-warnings=0 --report-unused-disable-directives && echo Your .js files look good.",
"custom-tests": "mocha --recursive --exit",
"test:ui": "node tools/smoke/ui.js",
"test:ui:prod": "node tools/smoke/ui.js --prod",
"test:install": "node tools/smoke/install.js",
"migrate": "node tools/migrate/index.js",
"agent-ca": "node tools/setup/agent-ca.js"
},
"schema": 2,
"main": "app.js",
"repository": {
"type": "git",
"url": "https://github.com/fogproject/fog-node.git"
},
"author": "FOG Project",
"license": "GPL v3",
"engines": {
"node": "^22.13.0 || >=23.5.0"
}
}