linguabot commited on
Commit
acfcd50
·
verified ·
1 Parent(s): 12388e3

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. index.js +2 -0
  2. package-lock.json +766 -2
  3. package.json +3 -0
  4. routes/refinity.js +88 -0
index.js CHANGED
@@ -18,6 +18,7 @@ const oneRoutes = require('./routes/one');
18
  const mtRoutes = require('./routes/mt');
19
  const slidesRoutes = require('./routes/slides');
20
  const messagesRoutes = require('./routes/messages');
 
21
  const linksRoutes = require('./routes/links');
22
  const docsRoutes = require('./routes/docs');
23
 
@@ -126,6 +127,7 @@ app.use('/api/slides', slidesRoutes);
126
  app.use('/api/messages', messagesRoutes);
127
  app.use('/api/links', linksRoutes);
128
  app.use('/api/docs', docsRoutes);
 
129
 
130
  // Health check endpoint
131
  app.get('/api/health', (req, res) => {
 
18
  const mtRoutes = require('./routes/mt');
19
  const slidesRoutes = require('./routes/slides');
20
  const messagesRoutes = require('./routes/messages');
21
+ const refinityRoutes = require('./routes/refinity');
22
  const linksRoutes = require('./routes/links');
23
  const docsRoutes = require('./routes/docs');
24
 
 
127
  app.use('/api/messages', messagesRoutes);
128
  app.use('/api/links', linksRoutes);
129
  app.use('/api/docs', docsRoutes);
130
+ app.use('/api/refinity', refinityRoutes);
131
 
132
  // Health check endpoint
133
  app.get('/api/health', (req, res) => {
package-lock.json CHANGED
@@ -1,22 +1,27 @@
1
  {
2
- "name": "transcreation-sandbox-server",
3
  "version": "1.0.0",
4
  "lockfileVersion": 3,
5
  "requires": true,
6
  "packages": {
7
  "": {
8
- "name": "transcreation-sandbox-server",
9
  "version": "1.0.0",
10
  "dependencies": {
11
  "axios": "^1.6.2",
12
  "bcryptjs": "^2.4.3",
13
  "cheerio": "^1.0.0-rc.12",
14
  "cors": "^2.8.5",
 
 
15
  "dotenv": "^16.3.1",
16
  "express": "^4.18.2",
17
  "express-rate-limit": "^7.1.5",
 
18
  "jsonwebtoken": "^9.0.2",
 
19
  "mongoose": "^8.0.3",
 
20
  "uuid": "^9.0.1"
21
  },
22
  "devDependencies": {
@@ -32,6 +37,15 @@
32
  "sparse-bitfield": "^3.0.3"
33
  }
34
  },
 
 
 
 
 
 
 
 
 
35
  "node_modules/@types/webidl-conversions": {
36
  "version": "7.0.3",
37
  "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
@@ -47,6 +61,15 @@
47
  "@types/webidl-conversions": "*"
48
  }
49
  },
 
 
 
 
 
 
 
 
 
50
  "node_modules/accepts": {
51
  "version": "1.3.8",
52
  "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
@@ -60,6 +83,41 @@
60
  "node": ">= 0.6"
61
  }
62
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  "node_modules/anymatch": {
64
  "version": "3.1.3",
65
  "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
@@ -74,12 +132,36 @@
74
  "node": ">= 8"
75
  }
76
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
  "node_modules/array-flatten": {
78
  "version": "1.1.1",
79
  "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
80
  "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
81
  "license": "MIT"
82
  },
 
 
 
 
 
 
 
 
 
83
  "node_modules/asynckit": {
84
  "version": "0.4.0",
85
  "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@@ -104,12 +186,41 @@
104
  "dev": true,
105
  "license": "MIT"
106
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  "node_modules/bcryptjs": {
108
  "version": "2.4.3",
109
  "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
110
  "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==",
111
  "license": "MIT"
112
  },
 
 
 
 
 
 
 
 
 
113
  "node_modules/binary-extensions": {
114
  "version": "2.3.0",
115
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -123,6 +234,12 @@
123
  "url": "https://github.com/sponsors/sindresorhus"
124
  }
125
  },
 
 
 
 
 
 
126
  "node_modules/body-parser": {
127
  "version": "1.20.3",
128
  "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
@@ -204,6 +321,23 @@
204
  "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
205
  "license": "BSD-3-Clause"
206
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  "node_modules/bytes": {
208
  "version": "3.1.2",
209
  "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -328,6 +462,21 @@
328
  "dev": true,
329
  "license": "MIT"
330
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
331
  "node_modules/content-disposition": {
332
  "version": "0.5.4",
333
  "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -364,6 +513,12 @@
364
  "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
365
  "license": "MIT"
366
  },
 
 
 
 
 
 
367
  "node_modules/cors": {
368
  "version": "2.8.5",
369
  "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
@@ -442,6 +597,37 @@
442
  "npm": "1.2.8000 || >= 1.4.16"
443
  }
444
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  "node_modules/dom-serializer": {
446
  "version": "2.0.0",
447
  "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
@@ -509,6 +695,15 @@
509
  "url": "https://dotenvx.com"
510
  }
511
  },
 
 
 
 
 
 
 
 
 
512
  "node_modules/dunder-proto": {
513
  "version": "1.0.1",
514
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -693,6 +888,18 @@
693
  "express": ">= 4.11"
694
  }
695
  },
 
 
 
 
 
 
 
 
 
 
 
 
696
  "node_modules/fill-range": {
697
  "version": "7.1.1",
698
  "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
@@ -802,6 +1009,34 @@
802
  "url": "https://github.com/sponsors/ljharb"
803
  }
804
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
805
  "node_modules/get-intrinsic": {
806
  "version": "1.3.0",
807
  "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
@@ -852,6 +1087,93 @@
852
  "node": ">= 6"
853
  }
854
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
855
  "node_modules/gopd": {
856
  "version": "1.2.0",
857
  "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
@@ -864,6 +1186,41 @@
864
  "url": "https://github.com/sponsors/ljharb"
865
  }
866
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
867
  "node_modules/has-flag": {
868
  "version": "3.0.0",
869
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -960,6 +1317,42 @@
960
  "node": ">= 0.8"
961
  }
962
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
963
  "node_modules/iconv-lite": {
964
  "version": "0.6.3",
965
  "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
@@ -979,6 +1372,12 @@
979
  "dev": true,
980
  "license": "ISC"
981
  },
 
 
 
 
 
 
982
  "node_modules/inherits": {
983
  "version": "2.0.4",
984
  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -1040,6 +1439,33 @@
1040
  "node": ">=0.12.0"
1041
  }
1042
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1043
  "node_modules/jsonwebtoken": {
1044
  "version": "9.0.2",
1045
  "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
@@ -1068,6 +1494,18 @@
1068
  "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1069
  "license": "MIT"
1070
  },
 
 
 
 
 
 
 
 
 
 
 
 
1071
  "node_modules/jwa": {
1072
  "version": "1.4.2",
1073
  "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
@@ -1098,6 +1536,15 @@
1098
  "node": ">=12.0.0"
1099
  }
1100
  },
 
 
 
 
 
 
 
 
 
1101
  "node_modules/lodash.includes": {
1102
  "version": "4.3.0",
1103
  "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
@@ -1140,6 +1587,53 @@
1140
  "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
1141
  "license": "MIT"
1142
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1143
  "node_modules/math-intrinsics": {
1144
  "version": "1.1.0",
1145
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -1228,6 +1722,27 @@
1228
  "node": "*"
1229
  }
1230
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1231
  "node_modules/mongodb": {
1232
  "version": "6.17.0",
1233
  "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.17.0.tgz",
@@ -1362,6 +1877,43 @@
1362
  "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
1363
  "license": "MIT"
1364
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1365
  "node_modules/negotiator": {
1366
  "version": "0.6.3",
1367
  "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
@@ -1371,6 +1923,57 @@
1371
  "node": ">= 0.6"
1372
  }
1373
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1374
  "node_modules/nodemon": {
1375
  "version": "3.1.10",
1376
  "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz",
@@ -1480,6 +2083,18 @@
1480
  "node": ">= 0.8"
1481
  }
1482
  },
 
 
 
 
 
 
 
 
 
 
 
 
1483
  "node_modules/parse5": {
1484
  "version": "7.3.0",
1485
  "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
@@ -1538,6 +2153,15 @@
1538
  "node": ">= 0.8"
1539
  }
1540
  },
 
 
 
 
 
 
 
 
 
1541
  "node_modules/path-to-regexp": {
1542
  "version": "0.1.12",
1543
  "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
@@ -1557,6 +2181,12 @@
1557
  "url": "https://github.com/sponsors/jonschlinkert"
1558
  }
1559
  },
 
 
 
 
 
 
1560
  "node_modules/proxy-addr": {
1561
  "version": "2.0.7",
1562
  "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -1643,6 +2273,27 @@
1643
  "node": ">=0.10.0"
1644
  }
1645
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1646
  "node_modules/readdirp": {
1647
  "version": "3.6.0",
1648
  "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
@@ -1682,6 +2333,12 @@
1682
  "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1683
  "license": "MIT"
1684
  },
 
 
 
 
 
 
1685
  "node_modules/semver": {
1686
  "version": "7.7.2",
1687
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
@@ -1748,6 +2405,12 @@
1748
  "node": ">= 0.8.0"
1749
  }
1750
  },
 
 
 
 
 
 
1751
  "node_modules/setprototypeof": {
1752
  "version": "1.2.0",
1753
  "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
@@ -1854,6 +2517,12 @@
1854
  "memory-pager": "^1.0.2"
1855
  }
1856
  },
 
 
 
 
 
 
1857
  "node_modules/statuses": {
1858
  "version": "2.0.1",
1859
  "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
@@ -1863,6 +2532,29 @@
1863
  "node": ">= 0.8"
1864
  }
1865
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1866
  "node_modules/supports-color": {
1867
  "version": "5.5.0",
1868
  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -1933,6 +2625,12 @@
1933
  "node": ">= 0.6"
1934
  }
1935
  },
 
 
 
 
 
 
1936
  "node_modules/undefsafe": {
1937
  "version": "2.0.5",
1938
  "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
@@ -1940,6 +2638,12 @@
1940
  "dev": true,
1941
  "license": "MIT"
1942
  },
 
 
 
 
 
 
1943
  "node_modules/undici": {
1944
  "version": "7.12.0",
1945
  "resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz",
@@ -1949,6 +2653,12 @@
1949
  "node": ">=20.18.1"
1950
  }
1951
  },
 
 
 
 
 
 
1952
  "node_modules/unpipe": {
1953
  "version": "1.0.0",
1954
  "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
@@ -1958,6 +2668,18 @@
1958
  "node": ">= 0.8"
1959
  }
1960
  },
 
 
 
 
 
 
 
 
 
 
 
 
1961
  "node_modules/utils-merge": {
1962
  "version": "1.0.1",
1963
  "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@@ -2031,6 +2753,48 @@
2031
  "engines": {
2032
  "node": ">=18"
2033
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2034
  }
2035
  }
2036
  }
 
1
  {
2
+ "name": "transhub-server",
3
  "version": "1.0.0",
4
  "lockfileVersion": 3,
5
  "requires": true,
6
  "packages": {
7
  "": {
8
+ "name": "transhub-server",
9
  "version": "1.0.0",
10
  "dependencies": {
11
  "axios": "^1.6.2",
12
  "bcryptjs": "^2.4.3",
13
  "cheerio": "^1.0.0-rc.12",
14
  "cors": "^2.8.5",
15
+ "diff": "^5.2.0",
16
+ "docx": "^8.5.0",
17
  "dotenv": "^16.3.1",
18
  "express": "^4.18.2",
19
  "express-rate-limit": "^7.1.5",
20
+ "googleapis": "^118.0.0",
21
  "jsonwebtoken": "^9.0.2",
22
+ "mammoth": "^1.6.0",
23
  "mongoose": "^8.0.3",
24
+ "multer": "^1.4.5-lts.1",
25
  "uuid": "^9.0.1"
26
  },
27
  "devDependencies": {
 
37
  "sparse-bitfield": "^3.0.3"
38
  }
39
  },
40
+ "node_modules/@types/node": {
41
+ "version": "20.19.19",
42
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.19.tgz",
43
+ "integrity": "sha512-pb1Uqj5WJP7wrcbLU7Ru4QtA0+3kAXrkutGiD26wUKzSMgNNaPARTUDQmElUXp64kh3cWdou3Q0C7qwwxqSFmg==",
44
+ "license": "MIT",
45
+ "dependencies": {
46
+ "undici-types": "~6.21.0"
47
+ }
48
+ },
49
  "node_modules/@types/webidl-conversions": {
50
  "version": "7.0.3",
51
  "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz",
 
61
  "@types/webidl-conversions": "*"
62
  }
63
  },
64
+ "node_modules/@xmldom/xmldom": {
65
+ "version": "0.8.11",
66
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
67
+ "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
68
+ "license": "MIT",
69
+ "engines": {
70
+ "node": ">=10.0.0"
71
+ }
72
+ },
73
  "node_modules/accepts": {
74
  "version": "1.3.8",
75
  "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
 
83
  "node": ">= 0.6"
84
  }
85
  },
86
+ "node_modules/agent-base": {
87
+ "version": "6.0.2",
88
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
89
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
90
+ "license": "MIT",
91
+ "dependencies": {
92
+ "debug": "4"
93
+ },
94
+ "engines": {
95
+ "node": ">= 6.0.0"
96
+ }
97
+ },
98
+ "node_modules/agent-base/node_modules/debug": {
99
+ "version": "4.4.3",
100
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
101
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
102
+ "license": "MIT",
103
+ "dependencies": {
104
+ "ms": "^2.1.3"
105
+ },
106
+ "engines": {
107
+ "node": ">=6.0"
108
+ },
109
+ "peerDependenciesMeta": {
110
+ "supports-color": {
111
+ "optional": true
112
+ }
113
+ }
114
+ },
115
+ "node_modules/agent-base/node_modules/ms": {
116
+ "version": "2.1.3",
117
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
118
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
119
+ "license": "MIT"
120
+ },
121
  "node_modules/anymatch": {
122
  "version": "3.1.3",
123
  "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
 
132
  "node": ">= 8"
133
  }
134
  },
135
+ "node_modules/append-field": {
136
+ "version": "1.0.0",
137
+ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
138
+ "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==",
139
+ "license": "MIT"
140
+ },
141
+ "node_modules/argparse": {
142
+ "version": "1.0.10",
143
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
144
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
145
+ "license": "MIT",
146
+ "dependencies": {
147
+ "sprintf-js": "~1.0.2"
148
+ }
149
+ },
150
  "node_modules/array-flatten": {
151
  "version": "1.1.1",
152
  "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
153
  "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
154
  "license": "MIT"
155
  },
156
+ "node_modules/arrify": {
157
+ "version": "2.0.1",
158
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
159
+ "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
160
+ "license": "MIT",
161
+ "engines": {
162
+ "node": ">=8"
163
+ }
164
+ },
165
  "node_modules/asynckit": {
166
  "version": "0.4.0",
167
  "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
 
186
  "dev": true,
187
  "license": "MIT"
188
  },
189
+ "node_modules/base64-js": {
190
+ "version": "1.5.1",
191
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
192
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
193
+ "funding": [
194
+ {
195
+ "type": "github",
196
+ "url": "https://github.com/sponsors/feross"
197
+ },
198
+ {
199
+ "type": "patreon",
200
+ "url": "https://www.patreon.com/feross"
201
+ },
202
+ {
203
+ "type": "consulting",
204
+ "url": "https://feross.org/support"
205
+ }
206
+ ],
207
+ "license": "MIT"
208
+ },
209
  "node_modules/bcryptjs": {
210
  "version": "2.4.3",
211
  "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz",
212
  "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==",
213
  "license": "MIT"
214
  },
215
+ "node_modules/bignumber.js": {
216
+ "version": "9.3.1",
217
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
218
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
219
+ "license": "MIT",
220
+ "engines": {
221
+ "node": "*"
222
+ }
223
+ },
224
  "node_modules/binary-extensions": {
225
  "version": "2.3.0",
226
  "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
 
234
  "url": "https://github.com/sponsors/sindresorhus"
235
  }
236
  },
237
+ "node_modules/bluebird": {
238
+ "version": "3.4.7",
239
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
240
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==",
241
+ "license": "MIT"
242
+ },
243
  "node_modules/body-parser": {
244
  "version": "1.20.3",
245
  "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
 
321
  "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
322
  "license": "BSD-3-Clause"
323
  },
324
+ "node_modules/buffer-from": {
325
+ "version": "1.1.2",
326
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
327
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
328
+ "license": "MIT"
329
+ },
330
+ "node_modules/busboy": {
331
+ "version": "1.6.0",
332
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
333
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
334
+ "dependencies": {
335
+ "streamsearch": "^1.1.0"
336
+ },
337
+ "engines": {
338
+ "node": ">=10.16.0"
339
+ }
340
+ },
341
  "node_modules/bytes": {
342
  "version": "3.1.2",
343
  "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
 
462
  "dev": true,
463
  "license": "MIT"
464
  },
465
+ "node_modules/concat-stream": {
466
+ "version": "1.6.2",
467
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
468
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
469
+ "engines": [
470
+ "node >= 0.8"
471
+ ],
472
+ "license": "MIT",
473
+ "dependencies": {
474
+ "buffer-from": "^1.0.0",
475
+ "inherits": "^2.0.3",
476
+ "readable-stream": "^2.2.2",
477
+ "typedarray": "^0.0.6"
478
+ }
479
+ },
480
  "node_modules/content-disposition": {
481
  "version": "0.5.4",
482
  "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
 
513
  "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
514
  "license": "MIT"
515
  },
516
+ "node_modules/core-util-is": {
517
+ "version": "1.0.3",
518
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
519
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
520
+ "license": "MIT"
521
+ },
522
  "node_modules/cors": {
523
  "version": "2.8.5",
524
  "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
 
597
  "npm": "1.2.8000 || >= 1.4.16"
598
  }
599
  },
600
+ "node_modules/diff": {
601
+ "version": "5.2.0",
602
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz",
603
+ "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==",
604
+ "license": "BSD-3-Clause",
605
+ "engines": {
606
+ "node": ">=0.3.1"
607
+ }
608
+ },
609
+ "node_modules/dingbat-to-unicode": {
610
+ "version": "1.0.1",
611
+ "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz",
612
+ "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==",
613
+ "license": "BSD-2-Clause"
614
+ },
615
+ "node_modules/docx": {
616
+ "version": "8.5.0",
617
+ "resolved": "https://registry.npmjs.org/docx/-/docx-8.5.0.tgz",
618
+ "integrity": "sha512-4SbcbedPXTciySXiSnNNLuJXpvxFe5nqivbiEHXyL8P/w0wx2uW7YXNjnYgjW0e2e6vy+L/tMISU/oAiXCl57Q==",
619
+ "license": "MIT",
620
+ "dependencies": {
621
+ "@types/node": "^20.3.1",
622
+ "jszip": "^3.10.1",
623
+ "nanoid": "^5.0.4",
624
+ "xml": "^1.0.1",
625
+ "xml-js": "^1.6.8"
626
+ },
627
+ "engines": {
628
+ "node": ">=10"
629
+ }
630
+ },
631
  "node_modules/dom-serializer": {
632
  "version": "2.0.0",
633
  "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
 
695
  "url": "https://dotenvx.com"
696
  }
697
  },
698
+ "node_modules/duck": {
699
+ "version": "0.1.12",
700
+ "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz",
701
+ "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==",
702
+ "license": "BSD",
703
+ "dependencies": {
704
+ "underscore": "^1.13.1"
705
+ }
706
+ },
707
  "node_modules/dunder-proto": {
708
  "version": "1.0.1",
709
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
 
888
  "express": ">= 4.11"
889
  }
890
  },
891
+ "node_modules/extend": {
892
+ "version": "3.0.2",
893
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
894
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
895
+ "license": "MIT"
896
+ },
897
+ "node_modules/fast-text-encoding": {
898
+ "version": "1.0.6",
899
+ "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz",
900
+ "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==",
901
+ "license": "Apache-2.0"
902
+ },
903
  "node_modules/fill-range": {
904
  "version": "7.1.1",
905
  "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
 
1009
  "url": "https://github.com/sponsors/ljharb"
1010
  }
1011
  },
1012
+ "node_modules/gaxios": {
1013
+ "version": "5.1.3",
1014
+ "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.1.3.tgz",
1015
+ "integrity": "sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA==",
1016
+ "license": "Apache-2.0",
1017
+ "dependencies": {
1018
+ "extend": "^3.0.2",
1019
+ "https-proxy-agent": "^5.0.0",
1020
+ "is-stream": "^2.0.0",
1021
+ "node-fetch": "^2.6.9"
1022
+ },
1023
+ "engines": {
1024
+ "node": ">=12"
1025
+ }
1026
+ },
1027
+ "node_modules/gcp-metadata": {
1028
+ "version": "5.3.0",
1029
+ "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.3.0.tgz",
1030
+ "integrity": "sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w==",
1031
+ "license": "Apache-2.0",
1032
+ "dependencies": {
1033
+ "gaxios": "^5.0.0",
1034
+ "json-bigint": "^1.0.0"
1035
+ },
1036
+ "engines": {
1037
+ "node": ">=12"
1038
+ }
1039
+ },
1040
  "node_modules/get-intrinsic": {
1041
  "version": "1.3.0",
1042
  "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
 
1087
  "node": ">= 6"
1088
  }
1089
  },
1090
+ "node_modules/google-auth-library": {
1091
+ "version": "8.9.0",
1092
+ "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz",
1093
+ "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==",
1094
+ "license": "Apache-2.0",
1095
+ "dependencies": {
1096
+ "arrify": "^2.0.0",
1097
+ "base64-js": "^1.3.0",
1098
+ "ecdsa-sig-formatter": "^1.0.11",
1099
+ "fast-text-encoding": "^1.0.0",
1100
+ "gaxios": "^5.0.0",
1101
+ "gcp-metadata": "^5.3.0",
1102
+ "gtoken": "^6.1.0",
1103
+ "jws": "^4.0.0",
1104
+ "lru-cache": "^6.0.0"
1105
+ },
1106
+ "engines": {
1107
+ "node": ">=12"
1108
+ }
1109
+ },
1110
+ "node_modules/google-auth-library/node_modules/jwa": {
1111
+ "version": "2.0.1",
1112
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
1113
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
1114
+ "license": "MIT",
1115
+ "dependencies": {
1116
+ "buffer-equal-constant-time": "^1.0.1",
1117
+ "ecdsa-sig-formatter": "1.0.11",
1118
+ "safe-buffer": "^5.0.1"
1119
+ }
1120
+ },
1121
+ "node_modules/google-auth-library/node_modules/jws": {
1122
+ "version": "4.0.0",
1123
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
1124
+ "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
1125
+ "license": "MIT",
1126
+ "dependencies": {
1127
+ "jwa": "^2.0.0",
1128
+ "safe-buffer": "^5.0.1"
1129
+ }
1130
+ },
1131
+ "node_modules/google-p12-pem": {
1132
+ "version": "4.0.1",
1133
+ "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz",
1134
+ "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==",
1135
+ "deprecated": "Package is no longer maintained",
1136
+ "license": "MIT",
1137
+ "dependencies": {
1138
+ "node-forge": "^1.3.1"
1139
+ },
1140
+ "bin": {
1141
+ "gp12-pem": "build/src/bin/gp12-pem.js"
1142
+ },
1143
+ "engines": {
1144
+ "node": ">=12.0.0"
1145
+ }
1146
+ },
1147
+ "node_modules/googleapis": {
1148
+ "version": "118.0.0",
1149
+ "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-118.0.0.tgz",
1150
+ "integrity": "sha512-Ny6zJOGn5P/YDT6GQbJU6K0lSzEu4Yuxnsn45ZgBIeSQ1RM0FolEjUToLXquZd89DU9wUfqA5XYHPEctk1TFWg==",
1151
+ "license": "Apache-2.0",
1152
+ "dependencies": {
1153
+ "google-auth-library": "^8.0.2",
1154
+ "googleapis-common": "^6.0.0"
1155
+ },
1156
+ "engines": {
1157
+ "node": ">=12.0.0"
1158
+ }
1159
+ },
1160
+ "node_modules/googleapis-common": {
1161
+ "version": "6.0.4",
1162
+ "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.4.tgz",
1163
+ "integrity": "sha512-m4ErxGE8unR1z0VajT6AYk3s6a9gIMM6EkDZfkPnES8joeOlEtFEJeF8IyZkb0tjPXkktUfYrE4b3Li1DNyOwA==",
1164
+ "license": "Apache-2.0",
1165
+ "dependencies": {
1166
+ "extend": "^3.0.2",
1167
+ "gaxios": "^5.0.1",
1168
+ "google-auth-library": "^8.0.2",
1169
+ "qs": "^6.7.0",
1170
+ "url-template": "^2.0.8",
1171
+ "uuid": "^9.0.0"
1172
+ },
1173
+ "engines": {
1174
+ "node": ">=12.0.0"
1175
+ }
1176
+ },
1177
  "node_modules/gopd": {
1178
  "version": "1.2.0",
1179
  "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
 
1186
  "url": "https://github.com/sponsors/ljharb"
1187
  }
1188
  },
1189
+ "node_modules/gtoken": {
1190
+ "version": "6.1.2",
1191
+ "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz",
1192
+ "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==",
1193
+ "license": "MIT",
1194
+ "dependencies": {
1195
+ "gaxios": "^5.0.1",
1196
+ "google-p12-pem": "^4.0.0",
1197
+ "jws": "^4.0.0"
1198
+ },
1199
+ "engines": {
1200
+ "node": ">=12.0.0"
1201
+ }
1202
+ },
1203
+ "node_modules/gtoken/node_modules/jwa": {
1204
+ "version": "2.0.1",
1205
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz",
1206
+ "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==",
1207
+ "license": "MIT",
1208
+ "dependencies": {
1209
+ "buffer-equal-constant-time": "^1.0.1",
1210
+ "ecdsa-sig-formatter": "1.0.11",
1211
+ "safe-buffer": "^5.0.1"
1212
+ }
1213
+ },
1214
+ "node_modules/gtoken/node_modules/jws": {
1215
+ "version": "4.0.0",
1216
+ "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz",
1217
+ "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==",
1218
+ "license": "MIT",
1219
+ "dependencies": {
1220
+ "jwa": "^2.0.0",
1221
+ "safe-buffer": "^5.0.1"
1222
+ }
1223
+ },
1224
  "node_modules/has-flag": {
1225
  "version": "3.0.0",
1226
  "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
 
1317
  "node": ">= 0.8"
1318
  }
1319
  },
1320
+ "node_modules/https-proxy-agent": {
1321
+ "version": "5.0.1",
1322
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
1323
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
1324
+ "license": "MIT",
1325
+ "dependencies": {
1326
+ "agent-base": "6",
1327
+ "debug": "4"
1328
+ },
1329
+ "engines": {
1330
+ "node": ">= 6"
1331
+ }
1332
+ },
1333
+ "node_modules/https-proxy-agent/node_modules/debug": {
1334
+ "version": "4.4.3",
1335
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
1336
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
1337
+ "license": "MIT",
1338
+ "dependencies": {
1339
+ "ms": "^2.1.3"
1340
+ },
1341
+ "engines": {
1342
+ "node": ">=6.0"
1343
+ },
1344
+ "peerDependenciesMeta": {
1345
+ "supports-color": {
1346
+ "optional": true
1347
+ }
1348
+ }
1349
+ },
1350
+ "node_modules/https-proxy-agent/node_modules/ms": {
1351
+ "version": "2.1.3",
1352
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1353
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1354
+ "license": "MIT"
1355
+ },
1356
  "node_modules/iconv-lite": {
1357
  "version": "0.6.3",
1358
  "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
 
1372
  "dev": true,
1373
  "license": "ISC"
1374
  },
1375
+ "node_modules/immediate": {
1376
+ "version": "3.0.6",
1377
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
1378
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
1379
+ "license": "MIT"
1380
+ },
1381
  "node_modules/inherits": {
1382
  "version": "2.0.4",
1383
  "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
 
1439
  "node": ">=0.12.0"
1440
  }
1441
  },
1442
+ "node_modules/is-stream": {
1443
+ "version": "2.0.1",
1444
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1445
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
1446
+ "license": "MIT",
1447
+ "engines": {
1448
+ "node": ">=8"
1449
+ },
1450
+ "funding": {
1451
+ "url": "https://github.com/sponsors/sindresorhus"
1452
+ }
1453
+ },
1454
+ "node_modules/isarray": {
1455
+ "version": "1.0.0",
1456
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1457
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
1458
+ "license": "MIT"
1459
+ },
1460
+ "node_modules/json-bigint": {
1461
+ "version": "1.0.0",
1462
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
1463
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
1464
+ "license": "MIT",
1465
+ "dependencies": {
1466
+ "bignumber.js": "^9.0.0"
1467
+ }
1468
+ },
1469
  "node_modules/jsonwebtoken": {
1470
  "version": "9.0.2",
1471
  "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
 
1494
  "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1495
  "license": "MIT"
1496
  },
1497
+ "node_modules/jszip": {
1498
+ "version": "3.10.1",
1499
+ "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
1500
+ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
1501
+ "license": "(MIT OR GPL-3.0-or-later)",
1502
+ "dependencies": {
1503
+ "lie": "~3.3.0",
1504
+ "pako": "~1.0.2",
1505
+ "readable-stream": "~2.3.6",
1506
+ "setimmediate": "^1.0.5"
1507
+ }
1508
+ },
1509
  "node_modules/jwa": {
1510
  "version": "1.4.2",
1511
  "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz",
 
1536
  "node": ">=12.0.0"
1537
  }
1538
  },
1539
+ "node_modules/lie": {
1540
+ "version": "3.3.0",
1541
+ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
1542
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
1543
+ "license": "MIT",
1544
+ "dependencies": {
1545
+ "immediate": "~3.0.5"
1546
+ }
1547
+ },
1548
  "node_modules/lodash.includes": {
1549
  "version": "4.3.0",
1550
  "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
 
1587
  "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
1588
  "license": "MIT"
1589
  },
1590
+ "node_modules/lop": {
1591
+ "version": "0.4.2",
1592
+ "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.2.tgz",
1593
+ "integrity": "sha512-RefILVDQ4DKoRZsJ4Pj22TxE3omDO47yFpkIBoDKzkqPRISs5U1cnAdg/5583YPkWPaLIYHOKRMQSvjFsO26cw==",
1594
+ "license": "BSD-2-Clause",
1595
+ "dependencies": {
1596
+ "duck": "^0.1.12",
1597
+ "option": "~0.2.1",
1598
+ "underscore": "^1.13.1"
1599
+ }
1600
+ },
1601
+ "node_modules/lru-cache": {
1602
+ "version": "6.0.0",
1603
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1604
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1605
+ "license": "ISC",
1606
+ "dependencies": {
1607
+ "yallist": "^4.0.0"
1608
+ },
1609
+ "engines": {
1610
+ "node": ">=10"
1611
+ }
1612
+ },
1613
+ "node_modules/mammoth": {
1614
+ "version": "1.11.0",
1615
+ "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.11.0.tgz",
1616
+ "integrity": "sha512-BcEqqY/BOwIcI1iR5tqyVlqc3KIaMRa4egSoK83YAVrBf6+yqdAAbtUcFDCWX8Zef8/fgNZ6rl4VUv+vVX8ddQ==",
1617
+ "license": "BSD-2-Clause",
1618
+ "dependencies": {
1619
+ "@xmldom/xmldom": "^0.8.6",
1620
+ "argparse": "~1.0.3",
1621
+ "base64-js": "^1.5.1",
1622
+ "bluebird": "~3.4.0",
1623
+ "dingbat-to-unicode": "^1.0.1",
1624
+ "jszip": "^3.7.1",
1625
+ "lop": "^0.4.2",
1626
+ "path-is-absolute": "^1.0.0",
1627
+ "underscore": "^1.13.1",
1628
+ "xmlbuilder": "^10.0.0"
1629
+ },
1630
+ "bin": {
1631
+ "mammoth": "bin/mammoth"
1632
+ },
1633
+ "engines": {
1634
+ "node": ">=12.0.0"
1635
+ }
1636
+ },
1637
  "node_modules/math-intrinsics": {
1638
  "version": "1.1.0",
1639
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
 
1722
  "node": "*"
1723
  }
1724
  },
1725
+ "node_modules/minimist": {
1726
+ "version": "1.2.8",
1727
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1728
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1729
+ "license": "MIT",
1730
+ "funding": {
1731
+ "url": "https://github.com/sponsors/ljharb"
1732
+ }
1733
+ },
1734
+ "node_modules/mkdirp": {
1735
+ "version": "0.5.6",
1736
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
1737
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
1738
+ "license": "MIT",
1739
+ "dependencies": {
1740
+ "minimist": "^1.2.6"
1741
+ },
1742
+ "bin": {
1743
+ "mkdirp": "bin/cmd.js"
1744
+ }
1745
+ },
1746
  "node_modules/mongodb": {
1747
  "version": "6.17.0",
1748
  "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.17.0.tgz",
 
1877
  "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
1878
  "license": "MIT"
1879
  },
1880
+ "node_modules/multer": {
1881
+ "version": "1.4.5-lts.2",
1882
+ "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz",
1883
+ "integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==",
1884
+ "deprecated": "Multer 1.x is impacted by a number of vulnerabilities, which have been patched in 2.x. You should upgrade to the latest 2.x version.",
1885
+ "license": "MIT",
1886
+ "dependencies": {
1887
+ "append-field": "^1.0.0",
1888
+ "busboy": "^1.0.0",
1889
+ "concat-stream": "^1.5.2",
1890
+ "mkdirp": "^0.5.4",
1891
+ "object-assign": "^4.1.1",
1892
+ "type-is": "^1.6.4",
1893
+ "xtend": "^4.0.0"
1894
+ },
1895
+ "engines": {
1896
+ "node": ">= 6.0.0"
1897
+ }
1898
+ },
1899
+ "node_modules/nanoid": {
1900
+ "version": "5.1.6",
1901
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz",
1902
+ "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==",
1903
+ "funding": [
1904
+ {
1905
+ "type": "github",
1906
+ "url": "https://github.com/sponsors/ai"
1907
+ }
1908
+ ],
1909
+ "license": "MIT",
1910
+ "bin": {
1911
+ "nanoid": "bin/nanoid.js"
1912
+ },
1913
+ "engines": {
1914
+ "node": "^18 || >=20"
1915
+ }
1916
+ },
1917
  "node_modules/negotiator": {
1918
  "version": "0.6.3",
1919
  "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
 
1923
  "node": ">= 0.6"
1924
  }
1925
  },
1926
+ "node_modules/node-fetch": {
1927
+ "version": "2.7.0",
1928
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
1929
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
1930
+ "license": "MIT",
1931
+ "dependencies": {
1932
+ "whatwg-url": "^5.0.0"
1933
+ },
1934
+ "engines": {
1935
+ "node": "4.x || >=6.0.0"
1936
+ },
1937
+ "peerDependencies": {
1938
+ "encoding": "^0.1.0"
1939
+ },
1940
+ "peerDependenciesMeta": {
1941
+ "encoding": {
1942
+ "optional": true
1943
+ }
1944
+ }
1945
+ },
1946
+ "node_modules/node-fetch/node_modules/tr46": {
1947
+ "version": "0.0.3",
1948
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1949
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
1950
+ "license": "MIT"
1951
+ },
1952
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
1953
+ "version": "3.0.1",
1954
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1955
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
1956
+ "license": "BSD-2-Clause"
1957
+ },
1958
+ "node_modules/node-fetch/node_modules/whatwg-url": {
1959
+ "version": "5.0.0",
1960
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1961
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
1962
+ "license": "MIT",
1963
+ "dependencies": {
1964
+ "tr46": "~0.0.3",
1965
+ "webidl-conversions": "^3.0.0"
1966
+ }
1967
+ },
1968
+ "node_modules/node-forge": {
1969
+ "version": "1.3.1",
1970
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
1971
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
1972
+ "license": "(BSD-3-Clause OR GPL-2.0)",
1973
+ "engines": {
1974
+ "node": ">= 6.13.0"
1975
+ }
1976
+ },
1977
  "node_modules/nodemon": {
1978
  "version": "3.1.10",
1979
  "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz",
 
2083
  "node": ">= 0.8"
2084
  }
2085
  },
2086
+ "node_modules/option": {
2087
+ "version": "0.2.4",
2088
+ "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz",
2089
+ "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==",
2090
+ "license": "BSD-2-Clause"
2091
+ },
2092
+ "node_modules/pako": {
2093
+ "version": "1.0.11",
2094
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
2095
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
2096
+ "license": "(MIT AND Zlib)"
2097
+ },
2098
  "node_modules/parse5": {
2099
  "version": "7.3.0",
2100
  "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
 
2153
  "node": ">= 0.8"
2154
  }
2155
  },
2156
+ "node_modules/path-is-absolute": {
2157
+ "version": "1.0.1",
2158
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2159
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
2160
+ "license": "MIT",
2161
+ "engines": {
2162
+ "node": ">=0.10.0"
2163
+ }
2164
+ },
2165
  "node_modules/path-to-regexp": {
2166
  "version": "0.1.12",
2167
  "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
 
2181
  "url": "https://github.com/sponsors/jonschlinkert"
2182
  }
2183
  },
2184
+ "node_modules/process-nextick-args": {
2185
+ "version": "2.0.1",
2186
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
2187
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
2188
+ "license": "MIT"
2189
+ },
2190
  "node_modules/proxy-addr": {
2191
  "version": "2.0.7",
2192
  "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
 
2273
  "node": ">=0.10.0"
2274
  }
2275
  },
2276
+ "node_modules/readable-stream": {
2277
+ "version": "2.3.8",
2278
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
2279
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
2280
+ "license": "MIT",
2281
+ "dependencies": {
2282
+ "core-util-is": "~1.0.0",
2283
+ "inherits": "~2.0.3",
2284
+ "isarray": "~1.0.0",
2285
+ "process-nextick-args": "~2.0.0",
2286
+ "safe-buffer": "~5.1.1",
2287
+ "string_decoder": "~1.1.1",
2288
+ "util-deprecate": "~1.0.1"
2289
+ }
2290
+ },
2291
+ "node_modules/readable-stream/node_modules/safe-buffer": {
2292
+ "version": "5.1.2",
2293
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2294
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2295
+ "license": "MIT"
2296
+ },
2297
  "node_modules/readdirp": {
2298
  "version": "3.6.0",
2299
  "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
 
2333
  "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2334
  "license": "MIT"
2335
  },
2336
+ "node_modules/sax": {
2337
+ "version": "1.4.1",
2338
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
2339
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
2340
+ "license": "ISC"
2341
+ },
2342
  "node_modules/semver": {
2343
  "version": "7.7.2",
2344
  "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
 
2405
  "node": ">= 0.8.0"
2406
  }
2407
  },
2408
+ "node_modules/setimmediate": {
2409
+ "version": "1.0.5",
2410
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
2411
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
2412
+ "license": "MIT"
2413
+ },
2414
  "node_modules/setprototypeof": {
2415
  "version": "1.2.0",
2416
  "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
 
2517
  "memory-pager": "^1.0.2"
2518
  }
2519
  },
2520
+ "node_modules/sprintf-js": {
2521
+ "version": "1.0.3",
2522
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2523
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
2524
+ "license": "BSD-3-Clause"
2525
+ },
2526
  "node_modules/statuses": {
2527
  "version": "2.0.1",
2528
  "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
 
2532
  "node": ">= 0.8"
2533
  }
2534
  },
2535
+ "node_modules/streamsearch": {
2536
+ "version": "1.1.0",
2537
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
2538
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
2539
+ "engines": {
2540
+ "node": ">=10.0.0"
2541
+ }
2542
+ },
2543
+ "node_modules/string_decoder": {
2544
+ "version": "1.1.1",
2545
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2546
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2547
+ "license": "MIT",
2548
+ "dependencies": {
2549
+ "safe-buffer": "~5.1.0"
2550
+ }
2551
+ },
2552
+ "node_modules/string_decoder/node_modules/safe-buffer": {
2553
+ "version": "5.1.2",
2554
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2555
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2556
+ "license": "MIT"
2557
+ },
2558
  "node_modules/supports-color": {
2559
  "version": "5.5.0",
2560
  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
 
2625
  "node": ">= 0.6"
2626
  }
2627
  },
2628
+ "node_modules/typedarray": {
2629
+ "version": "0.0.6",
2630
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
2631
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
2632
+ "license": "MIT"
2633
+ },
2634
  "node_modules/undefsafe": {
2635
  "version": "2.0.5",
2636
  "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz",
 
2638
  "dev": true,
2639
  "license": "MIT"
2640
  },
2641
+ "node_modules/underscore": {
2642
+ "version": "1.13.7",
2643
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
2644
+ "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
2645
+ "license": "MIT"
2646
+ },
2647
  "node_modules/undici": {
2648
  "version": "7.12.0",
2649
  "resolved": "https://registry.npmjs.org/undici/-/undici-7.12.0.tgz",
 
2653
  "node": ">=20.18.1"
2654
  }
2655
  },
2656
+ "node_modules/undici-types": {
2657
+ "version": "6.21.0",
2658
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
2659
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
2660
+ "license": "MIT"
2661
+ },
2662
  "node_modules/unpipe": {
2663
  "version": "1.0.0",
2664
  "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
 
2668
  "node": ">= 0.8"
2669
  }
2670
  },
2671
+ "node_modules/url-template": {
2672
+ "version": "2.0.8",
2673
+ "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz",
2674
+ "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==",
2675
+ "license": "BSD"
2676
+ },
2677
+ "node_modules/util-deprecate": {
2678
+ "version": "1.0.2",
2679
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2680
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2681
+ "license": "MIT"
2682
+ },
2683
  "node_modules/utils-merge": {
2684
  "version": "1.0.1",
2685
  "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
 
2753
  "engines": {
2754
  "node": ">=18"
2755
  }
2756
+ },
2757
+ "node_modules/xml": {
2758
+ "version": "1.0.1",
2759
+ "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
2760
+ "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==",
2761
+ "license": "MIT"
2762
+ },
2763
+ "node_modules/xml-js": {
2764
+ "version": "1.6.11",
2765
+ "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
2766
+ "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
2767
+ "license": "MIT",
2768
+ "dependencies": {
2769
+ "sax": "^1.2.4"
2770
+ },
2771
+ "bin": {
2772
+ "xml-js": "bin/cli.js"
2773
+ }
2774
+ },
2775
+ "node_modules/xmlbuilder": {
2776
+ "version": "10.1.1",
2777
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz",
2778
+ "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==",
2779
+ "license": "MIT",
2780
+ "engines": {
2781
+ "node": ">=4.0"
2782
+ }
2783
+ },
2784
+ "node_modules/xtend": {
2785
+ "version": "4.0.2",
2786
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2787
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2788
+ "license": "MIT",
2789
+ "engines": {
2790
+ "node": ">=0.4"
2791
+ }
2792
+ },
2793
+ "node_modules/yallist": {
2794
+ "version": "4.0.0",
2795
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2796
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2797
+ "license": "ISC"
2798
  }
2799
  }
2800
  }
package.json CHANGED
@@ -16,6 +16,9 @@
16
  "dotenv": "^16.3.1",
17
  "express": "^4.18.2",
18
  "express-rate-limit": "^7.1.5",
 
 
 
19
  "googleapis": "^118.0.0",
20
  "jsonwebtoken": "^9.0.2",
21
  "mongoose": "^8.0.3",
 
16
  "dotenv": "^16.3.1",
17
  "express": "^4.18.2",
18
  "express-rate-limit": "^7.1.5",
19
+ "docx": "^8.5.0",
20
+ "diff": "^5.2.0",
21
+ "mammoth": "^1.6.0",
22
  "googleapis": "^118.0.0",
23
  "jsonwebtoken": "^9.0.2",
24
  "mongoose": "^8.0.3",
routes/refinity.js ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const express = require('express');
2
+ const multer = require('multer');
3
+ const mammoth = require('mammoth');
4
+ const { diffWords } = require('diff');
5
+ const { Document, Packer, Paragraph, TextRun, TrackChangeType } = require('docx');
6
+
7
+ const router = express.Router();
8
+ const upload = multer({ storage: multer.memoryStorage(), limits: { fileSize: 8 * 1024 * 1024 } });
9
+
10
+ // Parse .docx or .doc (best effort: .doc handled via mammoth may fail depending on content)
11
+ router.post('/parse', upload.single('file'), async (req, res) => {
12
+ try {
13
+ if (!req.file) return res.status(400).json({ error: 'No file provided' });
14
+ const buffer = req.file.buffer;
15
+ const result = await mammoth.extractRawText({ buffer }).catch(() => ({ value: '' }));
16
+ const text = (result && result.value) || '';
17
+ res.json({ text });
18
+ } catch (e) {
19
+ res.status(500).json({ error: 'Failed to parse document' });
20
+ }
21
+ });
22
+
23
+ // Compute HTML diff between prev and current
24
+ router.post('/diff', async (req, res) => {
25
+ try {
26
+ const prev = String(req.body?.prev || '');
27
+ const current = String(req.body?.current || '');
28
+ const parts = diffWords(prev, current);
29
+ const html = parts.map(p => {
30
+ if (p.added) return `<span style="background:#dcfce7;color:#065f46">${escapeHtml(p.value)}</span>`;
31
+ if (p.removed) return `<span style="background:#fee2e2;color:#991b1b;text-decoration:line-through">${escapeHtml(p.value)}</span>`;
32
+ return `<span>${escapeHtml(p.value)}</span>`;
33
+ }).join('');
34
+ res.json({ html });
35
+ } catch (e) {
36
+ res.status(500).json({ error: 'Diff failed' });
37
+ }
38
+ });
39
+
40
+ // Generate .docx with Track Changes-like markup (approximation)
41
+ router.post('/track-changes', async (req, res) => {
42
+ try {
43
+ const prev = String(req.body?.prev || '');
44
+ const current = String(req.body?.current || '');
45
+ const parts = diffWords(prev, current);
46
+
47
+ const runs = [];
48
+ parts.forEach(p => {
49
+ const value = p.value || '';
50
+ if (!value) return;
51
+ if (p.added) {
52
+ runs.push(new TextRun({ text: value, color: '00A65A' }));
53
+ } else if (p.removed) {
54
+ runs.push(new TextRun({ text: value, color: 'D14343', strike: true }));
55
+ } else {
56
+ runs.push(new TextRun({ text: value }));
57
+ }
58
+ });
59
+
60
+ const doc = new Document({
61
+ sections: [
62
+ {
63
+ properties: {},
64
+ children: [new Paragraph({ children: runs })],
65
+ },
66
+ ],
67
+ });
68
+ const buffer = await Packer.toBuffer(doc);
69
+ res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document');
70
+ res.setHeader('Content-Disposition', 'attachment; filename="refinity-tracked.docx"');
71
+ res.send(Buffer.from(buffer));
72
+ } catch (e) {
73
+ res.status(500).json({ error: 'Failed to generate document' });
74
+ }
75
+ });
76
+
77
+ function escapeHtml(str='') {
78
+ return str
79
+ .replace(/&/g, '&amp;')
80
+ .replace(/</g, '&lt;')
81
+ .replace(/>/g, '&gt;')
82
+ .replace(/"/g, '&quot;')
83
+ .replace(/'/g, '&#39;');
84
+ }
85
+
86
+ module.exports = router;
87
+
88
+