@resolveio/server-lib 12.5.54 → 12.5.56

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 (400) hide show
  1. package/client-server-app.d.ts +1 -0
  2. package/client-server-app.js +48 -0
  3. package/client-server-app.js.map +1 -0
  4. package/collections/app-status.collection.d.ts +3 -0
  5. package/collections/app-status.collection.js +51 -0
  6. package/collections/app-status.collection.js.map +1 -0
  7. package/collections/counter.collection.d.ts +3 -0
  8. package/collections/counter.collection.js +54 -0
  9. package/collections/counter.collection.js.map +1 -0
  10. package/collections/cron-job-history.collection.d.ts +3 -0
  11. package/collections/cron-job-history.collection.js +82 -0
  12. package/collections/cron-job-history.collection.js.map +1 -0
  13. package/collections/cron-job.collection.d.ts +3 -0
  14. package/collections/cron-job.collection.js +85 -0
  15. package/collections/cron-job.collection.js.map +1 -0
  16. package/collections/email-history.collection.d.ts +3 -0
  17. package/collections/email-history.collection.js +66 -0
  18. package/collections/email-history.collection.js.map +1 -0
  19. package/collections/email-verified.collection.d.ts +3 -0
  20. package/collections/email-verified.collection.js +61 -0
  21. package/collections/email-verified.collection.js.map +1 -0
  22. package/collections/file.collection.d.ts +3 -0
  23. package/collections/file.collection.js +73 -0
  24. package/collections/file.collection.js.map +1 -0
  25. package/collections/flag.collection.d.ts +3 -0
  26. package/collections/flag.collection.js +56 -0
  27. package/collections/flag.collection.js.map +1 -0
  28. package/collections/log-method-latency.collection.d.ts +3 -0
  29. package/collections/log-method-latency.collection.js +64 -0
  30. package/collections/log-method-latency.collection.js.map +1 -0
  31. package/collections/log-subscription.collection.d.ts +3 -0
  32. package/collections/log-subscription.collection.js +68 -0
  33. package/collections/log-subscription.collection.js.map +1 -0
  34. package/collections/log-ts.collection.d.ts +3 -0
  35. package/collections/log-ts.collection.js +78 -0
  36. package/collections/log-ts.collection.js.map +1 -0
  37. package/collections/log.collection.d.ts +3 -0
  38. package/collections/log.collection.js +77 -0
  39. package/collections/log.collection.js.map +1 -0
  40. package/collections/logged-in-users.collection.d.ts +3 -0
  41. package/collections/logged-in-users.collection.js +65 -0
  42. package/collections/logged-in-users.collection.js.map +1 -0
  43. package/collections/method-response.collection.d.ts +3 -0
  44. package/collections/method-response.collection.js +66 -0
  45. package/collections/method-response.collection.js.map +1 -0
  46. package/collections/monitor-cpu.collection.d.ts +3 -0
  47. package/collections/monitor-cpu.collection.js +63 -0
  48. package/collections/monitor-cpu.collection.js.map +1 -0
  49. package/collections/monitor-memory.collection.d.ts +3 -0
  50. package/collections/monitor-memory.collection.js +75 -0
  51. package/collections/monitor-memory.collection.js.map +1 -0
  52. package/collections/monitor-mongo.collection.d.ts +3 -0
  53. package/collections/monitor-mongo.collection.js +69 -0
  54. package/collections/monitor-mongo.collection.js.map +1 -0
  55. package/collections/notification.collection.d.ts +3 -0
  56. package/collections/notification.collection.js +51 -0
  57. package/collections/notification.collection.js.map +1 -0
  58. package/collections/report-builder-dashboard-builder.collection.d.ts +3 -0
  59. package/collections/report-builder-dashboard-builder.collection.js +109 -0
  60. package/collections/report-builder-dashboard-builder.collection.js.map +1 -0
  61. package/collections/report-builder-library.collection.d.ts +3 -0
  62. package/collections/report-builder-library.collection.js +87 -0
  63. package/collections/report-builder-library.collection.js.map +1 -0
  64. package/collections/report-builder-report.collection.d.ts +4 -0
  65. package/collections/report-builder-report.collection.js +149 -0
  66. package/collections/report-builder-report.collection.js.map +1 -0
  67. package/collections/user-group.collection.d.ts +4 -0
  68. package/collections/user-group.collection.js +90 -0
  69. package/collections/user-group.collection.js.map +1 -0
  70. package/collections/user-guide.collection.d.ts +3 -0
  71. package/collections/user-guide.collection.js +57 -0
  72. package/collections/user-guide.collection.js.map +1 -0
  73. package/collections/user.collection.d.ts +4 -0
  74. package/collections/user.collection.js +259 -0
  75. package/collections/user.collection.js.map +1 -0
  76. package/cron/cron.d.ts +5 -0
  77. package/cron/cron.js +162 -0
  78. package/cron/cron.js.map +1 -0
  79. package/fixtures/cron-jobs.d.ts +1 -0
  80. package/fixtures/cron-jobs.js +73 -0
  81. package/fixtures/cron-jobs.js.map +1 -0
  82. package/fixtures/init.d.ts +1 -0
  83. package/fixtures/init.js +59 -0
  84. package/fixtures/init.js.map +1 -0
  85. package/http/auth.d.ts +2 -0
  86. package/http/auth.js +763 -0
  87. package/http/auth.js.map +1 -0
  88. package/http/health.d.ts +1 -0
  89. package/http/health.js +12 -0
  90. package/http/health.js.map +1 -0
  91. package/http/home.d.ts +2 -0
  92. package/http/home.js +66 -0
  93. package/http/home.js.map +1 -0
  94. package/index.d.ts +23 -0
  95. package/index.js +127 -0
  96. package/index.js.map +1 -0
  97. package/managers/cron.manager.d.ts +17 -0
  98. package/managers/cron.manager.js +242 -0
  99. package/managers/cron.manager.js.map +1 -0
  100. package/managers/method.manager.d.ts +38 -0
  101. package/managers/method.manager.js +595 -0
  102. package/managers/method.manager.js.map +1 -0
  103. package/managers/mongo.manager.d.ts +178 -0
  104. package/managers/mongo.manager.js +2221 -0
  105. package/managers/mongo.manager.js.map +1 -0
  106. package/managers/monitor.manager.d.ts +59 -0
  107. package/managers/monitor.manager.js +351 -0
  108. package/managers/monitor.manager.js.map +1 -0
  109. package/managers/subscription.manager.d.ts +50 -0
  110. package/managers/subscription.manager.js +1091 -0
  111. package/managers/subscription.manager.js.map +1 -0
  112. package/managers/subscription.performance.d.ts +1 -0
  113. package/{src/managers/subscription.performance.ts → managers/subscription.performance.js} +33 -68
  114. package/managers/subscription.performance.js.map +1 -0
  115. package/methods/accounts.d.ts +2 -0
  116. package/methods/accounts.js +274 -0
  117. package/methods/accounts.js.map +1 -0
  118. package/methods/aws.d.ts +2 -0
  119. package/methods/aws.js +617 -0
  120. package/methods/aws.js.map +1 -0
  121. package/methods/collections.d.ts +2 -0
  122. package/methods/collections.js +499 -0
  123. package/methods/collections.js.map +1 -0
  124. package/methods/counters.d.ts +2 -0
  125. package/methods/counters.js +122 -0
  126. package/methods/counters.js.map +1 -0
  127. package/methods/cron-jobs.d.ts +2 -0
  128. package/methods/cron-jobs.js +1315 -0
  129. package/methods/cron-jobs.js.map +1 -0
  130. package/methods/flags.d.ts +2 -0
  131. package/methods/flags.js +9 -0
  132. package/methods/flags.js.map +1 -0
  133. package/methods/logs.d.ts +2 -0
  134. package/methods/logs.js +371 -0
  135. package/methods/logs.js.map +1 -0
  136. package/methods/monitor.d.ts +2 -0
  137. package/methods/monitor.js +565 -0
  138. package/methods/monitor.js.map +1 -0
  139. package/methods/pdf.d.ts +2 -0
  140. package/methods/pdf.js +468 -0
  141. package/methods/pdf.js.map +1 -0
  142. package/methods/report-builder.d.ts +2 -0
  143. package/methods/report-builder.js +858 -0
  144. package/methods/report-builder.js.map +1 -0
  145. package/methods/support.d.ts +2 -0
  146. package/methods/support.js +246 -0
  147. package/methods/support.js.map +1 -0
  148. package/{src/models/app-status.model.ts → models/app-status.model.d.ts} +2 -3
  149. package/models/app-status.model.js +4 -0
  150. package/models/app-status.model.js.map +1 -0
  151. package/{src/models/billing-logged-in-users.model.ts → models/billing-logged-in-users.model.d.ts} +4 -5
  152. package/models/billing-logged-in-users.model.js +4 -0
  153. package/models/billing-logged-in-users.model.js.map +1 -0
  154. package/models/collection-document.model.d.ts +19 -0
  155. package/models/collection-document.model.js +4 -0
  156. package/models/collection-document.model.js.map +1 -0
  157. package/{src/models/counter.model.ts → models/counter.model.d.ts} +3 -4
  158. package/models/counter.model.js +4 -0
  159. package/models/counter.model.js.map +1 -0
  160. package/models/cron-job-history.model.d.ts +12 -0
  161. package/models/cron-job-history.model.js +4 -0
  162. package/models/cron-job-history.model.js.map +1 -0
  163. package/models/cron-job.model.d.ts +13 -0
  164. package/models/cron-job.model.js +4 -0
  165. package/models/cron-job.model.js.map +1 -0
  166. package/models/dialog.model.d.ts +23 -0
  167. package/models/dialog.model.js +4 -0
  168. package/models/dialog.model.js.map +1 -0
  169. package/{src/models/email-history.model.ts → models/email-history.model.d.ts} +7 -8
  170. package/models/email-history.model.js +4 -0
  171. package/models/email-history.model.js.map +1 -0
  172. package/{src/models/email-verified.model.ts → models/email-verified.model.d.ts} +5 -6
  173. package/models/email-verified.model.js +4 -0
  174. package/models/email-verified.model.js.map +1 -0
  175. package/{src/models/file.model.ts → models/file.model.d.ts} +7 -8
  176. package/models/file.model.js +4 -0
  177. package/models/file.model.js.map +1 -0
  178. package/{src/models/flag.model.ts → models/flag.model.d.ts} +3 -4
  179. package/models/flag.model.js +4 -0
  180. package/models/flag.model.js.map +1 -0
  181. package/{src/models/log-method-latency.model.ts → models/log-method-latency.model.d.ts} +4 -5
  182. package/models/log-method-latency.model.js +4 -0
  183. package/models/log-method-latency.model.js.map +1 -0
  184. package/{src/models/log-subscription.model.ts → models/log-subscription.model.d.ts} +6 -8
  185. package/models/log-subscription.model.js +4 -0
  186. package/models/log-subscription.model.js.map +1 -0
  187. package/{src/models/log.model.ts → models/log.model.d.ts} +10 -12
  188. package/models/log.model.js +4 -0
  189. package/models/log.model.js.map +1 -0
  190. package/{src/models/logged-in-users.model.ts → models/logged-in-users.model.d.ts} +5 -6
  191. package/models/logged-in-users.model.js +4 -0
  192. package/models/logged-in-users.model.js.map +1 -0
  193. package/{src/models/method-response.model.ts → models/method-response.model.d.ts} +6 -7
  194. package/models/method-response.model.js +4 -0
  195. package/models/method-response.model.js.map +1 -0
  196. package/models/method.model.d.ts +9 -0
  197. package/models/method.model.js +4 -0
  198. package/models/method.model.js.map +1 -0
  199. package/{src/models/monitor-cpu.model.ts → models/monitor-cpu.model.d.ts} +7 -9
  200. package/models/monitor-cpu.model.js +4 -0
  201. package/models/monitor-cpu.model.js.map +1 -0
  202. package/models/monitor-memory.model.d.ts +15 -0
  203. package/models/monitor-memory.model.js +4 -0
  204. package/models/monitor-memory.model.js.map +1 -0
  205. package/models/monitor-mongo.model.d.ts +13 -0
  206. package/models/monitor-mongo.model.js +4 -0
  207. package/models/monitor-mongo.model.js.map +1 -0
  208. package/{src/models/notification.model.ts → models/notification.model.d.ts} +2 -3
  209. package/models/notification.model.js +4 -0
  210. package/models/notification.model.js.map +1 -0
  211. package/models/pagination.model.d.ts +10 -0
  212. package/models/pagination.model.js +24 -0
  213. package/models/pagination.model.js.map +1 -0
  214. package/models/permission.model.d.ts +12 -0
  215. package/models/permission.model.js +4 -0
  216. package/models/permission.model.js.map +1 -0
  217. package/models/report-builder-dashboard-builder.model.d.ts +25 -0
  218. package/models/report-builder-dashboard-builder.model.js +4 -0
  219. package/models/report-builder-dashboard-builder.model.js.map +1 -0
  220. package/models/report-builder-library.model.d.ts +17 -0
  221. package/models/report-builder-library.model.js +4 -0
  222. package/models/report-builder-library.model.js.map +1 -0
  223. package/models/report-builder-report.model.d.ts +98 -0
  224. package/models/report-builder-report.model.js +4 -0
  225. package/models/report-builder-report.model.js.map +1 -0
  226. package/models/report-builder.model.d.ts +61 -0
  227. package/models/report-builder.model.js +4 -0
  228. package/models/report-builder.model.js.map +1 -0
  229. package/models/select-data-label.model.d.ts +9 -0
  230. package/models/select-data-label.model.js +4 -0
  231. package/models/select-data-label.model.js.map +1 -0
  232. package/models/server-response.model.d.ts +5 -0
  233. package/models/server-response.model.js +4 -0
  234. package/models/server-response.model.js.map +1 -0
  235. package/models/subscription.model.d.ts +23 -0
  236. package/models/subscription.model.js +4 -0
  237. package/models/subscription.model.js.map +1 -0
  238. package/models/support-ticket.model.d.ts +72 -0
  239. package/models/support-ticket.model.js +4 -0
  240. package/models/support-ticket.model.js.map +1 -0
  241. package/models/user-group.model.d.ts +19 -0
  242. package/models/user-group.model.js +4 -0
  243. package/models/user-group.model.js.map +1 -0
  244. package/{src/models/user-guide.model.ts → models/user-guide.model.d.ts} +4 -5
  245. package/models/user-guide.model.js +4 -0
  246. package/models/user-guide.model.js.map +1 -0
  247. package/models/user.model.d.ts +70 -0
  248. package/models/user.model.js +4 -0
  249. package/models/user.model.js.map +1 -0
  250. package/package.json +1 -1
  251. package/{src/public_api.ts → public_api.d.ts} +1 -1
  252. package/public_api.js +75 -0
  253. package/public_api.js.map +1 -0
  254. package/publications/app-status.d.ts +2 -0
  255. package/publications/app-status.js +17 -0
  256. package/publications/app-status.js.map +1 -0
  257. package/publications/cron-jobs.d.ts +2 -0
  258. package/publications/cron-jobs.js +33 -0
  259. package/publications/cron-jobs.js.map +1 -0
  260. package/publications/files.d.ts +2 -0
  261. package/publications/files.js +37 -0
  262. package/publications/files.js.map +1 -0
  263. package/publications/flags.d.ts +2 -0
  264. package/publications/flags.js +23 -0
  265. package/publications/flags.js.map +1 -0
  266. package/publications/logs.d.ts +2 -0
  267. package/publications/logs.js +165 -0
  268. package/publications/logs.js.map +1 -0
  269. package/publications/method-responses.d.ts +2 -0
  270. package/publications/method-responses.js +17 -0
  271. package/publications/method-responses.js.map +1 -0
  272. package/publications/notifications.d.ts +2 -0
  273. package/publications/notifications.js +17 -0
  274. package/publications/notifications.js.map +1 -0
  275. package/publications/report-builder-dashboard-builders.d.ts +2 -0
  276. package/publications/report-builder-dashboard-builders.js +43 -0
  277. package/publications/report-builder-dashboard-builders.js.map +1 -0
  278. package/publications/report-builder-libraries.d.ts +2 -0
  279. package/publications/report-builder-libraries.js +90 -0
  280. package/publications/report-builder-libraries.js.map +1 -0
  281. package/publications/report-builder-reports.d.ts +2 -0
  282. package/publications/report-builder-reports.js +51 -0
  283. package/publications/report-builder-reports.js.map +1 -0
  284. package/publications/super-admin.d.ts +2 -0
  285. package/publications/super-admin.js +17 -0
  286. package/publications/super-admin.js.map +1 -0
  287. package/publications/user-groups.d.ts +1 -0
  288. package/publications/user-groups.js +17 -0
  289. package/publications/user-groups.js.map +1 -0
  290. package/publications/user-guides.d.ts +1 -0
  291. package/publications/user-guides.js +17 -0
  292. package/publications/user-guides.js.map +1 -0
  293. package/server-app.d.ts +52 -0
  294. package/server-app.js +739 -0
  295. package/server-app.js.map +1 -0
  296. package/util/common.d.ts +25 -0
  297. package/util/common.js +524 -0
  298. package/util/common.js.map +1 -0
  299. package/util/schema-report-builder.d.ts +6 -0
  300. package/util/schema-report-builder.js +453 -0
  301. package/util/schema-report-builder.js.map +1 -0
  302. package/.nodemon.json +0 -5
  303. package/.vscode/settings.json +0 -3
  304. package/README.md +0 -22
  305. package/compileDTS.pl +0 -64
  306. package/gulpfile.js +0 -127
  307. package/mongodbensurers.js +0 -2
  308. package/mongostop.js +0 -3
  309. package/settings.development.json +0 -13
  310. package/src/client-server-app.ts +0 -7
  311. package/src/collections/app-status.collection.ts +0 -51
  312. package/src/collections/counter.collection.ts +0 -54
  313. package/src/collections/cron-job-history.collection.ts +0 -82
  314. package/src/collections/cron-job.collection.ts +0 -85
  315. package/src/collections/email-history.collection.ts +0 -66
  316. package/src/collections/email-verified.collection.ts +0 -61
  317. package/src/collections/file.collection.ts +0 -73
  318. package/src/collections/flag.collection.ts +0 -56
  319. package/src/collections/log-method-latency.collection.ts +0 -64
  320. package/src/collections/log-subscription.collection.ts +0 -68
  321. package/src/collections/log-ts.collection.ts +0 -78
  322. package/src/collections/log.collection.ts +0 -77
  323. package/src/collections/logged-in-users.collection.ts +0 -65
  324. package/src/collections/method-response.collection.ts +0 -66
  325. package/src/collections/monitor-cpu.collection.ts +0 -63
  326. package/src/collections/monitor-memory.collection.ts +0 -75
  327. package/src/collections/monitor-mongo.collection.ts +0 -69
  328. package/src/collections/notification.collection.ts +0 -51
  329. package/src/collections/report-builder-dashboard-builder.collection.ts +0 -109
  330. package/src/collections/report-builder-library.collection.ts +0 -89
  331. package/src/collections/report-builder-report.collection.ts +0 -149
  332. package/src/collections/user-group.collection.ts +0 -90
  333. package/src/collections/user-guide.collection.ts +0 -57
  334. package/src/collections/user.collection.ts +0 -259
  335. package/src/cron/cron.ts +0 -188
  336. package/src/fixtures/cron-jobs.ts +0 -25
  337. package/src/fixtures/init.ts +0 -10
  338. package/src/http/auth.ts +0 -732
  339. package/src/http/health.ts +0 -7
  340. package/src/http/home.ts +0 -71
  341. package/src/index.ts +0 -71
  342. package/src/managers/cron.manager.ts +0 -208
  343. package/src/managers/method.manager.ts +0 -607
  344. package/src/managers/mongo.manager.ts +0 -2282
  345. package/src/managers/monitor.manager.ts +0 -323
  346. package/src/managers/subscription.manager.ts +0 -1196
  347. package/src/methods/accounts.ts +0 -202
  348. package/src/methods/aws.ts +0 -507
  349. package/src/methods/collections.ts +0 -512
  350. package/src/methods/counters.ts +0 -75
  351. package/src/methods/cron-jobs.ts +0 -1454
  352. package/src/methods/flags.ts +0 -7
  353. package/src/methods/logs.ts +0 -327
  354. package/src/methods/monitor.ts +0 -548
  355. package/src/methods/pdf.ts +0 -615
  356. package/src/methods/report-builder.ts +0 -876
  357. package/src/methods/support.ts +0 -146
  358. package/src/models/collection-document.model.ts +0 -22
  359. package/src/models/cron-job-history.model.ts +0 -13
  360. package/src/models/cron-job.model.ts +0 -14
  361. package/src/models/dialog.model.ts +0 -25
  362. package/src/models/method.model.ts +0 -11
  363. package/src/models/monitor-memory.model.ts +0 -17
  364. package/src/models/monitor-mongo.model.ts +0 -15
  365. package/src/models/pagination.model.ts +0 -30
  366. package/src/models/permission.model.ts +0 -14
  367. package/src/models/report-builder-dashboard-builder.model.ts +0 -29
  368. package/src/models/report-builder-library.model.ts +0 -20
  369. package/src/models/report-builder-report.model.ts +0 -110
  370. package/src/models/report-builder.model.ts +0 -68
  371. package/src/models/select-data-label.model.ts +0 -9
  372. package/src/models/server-response.model.ts +0 -5
  373. package/src/models/subscription.model.ts +0 -64
  374. package/src/models/support-ticket.model.ts +0 -81
  375. package/src/models/user-group.model.ts +0 -23
  376. package/src/models/user.model.ts +0 -79
  377. package/src/publications/app-status.ts +0 -13
  378. package/src/publications/cron-jobs.ts +0 -30
  379. package/src/publications/files.ts +0 -34
  380. package/src/publications/flags.ts +0 -20
  381. package/src/publications/logs.ts +0 -164
  382. package/src/publications/method-responses.ts +0 -13
  383. package/src/publications/notifications.ts +0 -13
  384. package/src/publications/report-builder-dashboard-builders.ts +0 -39
  385. package/src/publications/report-builder-libraries.ts +0 -41
  386. package/src/publications/report-builder-reports.ts +0 -48
  387. package/src/publications/super-admin.ts +0 -13
  388. package/src/publications/user-groups.ts +0 -12
  389. package/src/publications/user-guides.ts +0 -12
  390. package/src/server-app.ts +0 -769
  391. package/src/util/common.ts +0 -519
  392. package/src/util/schema-report-builder.ts +0 -413
  393. package/tsconfig.json +0 -30
  394. package/tslint.json +0 -143
  395. /package/{src/private → private}/email-templates/enrollment.html +0 -0
  396. /package/{src/private → private}/email-templates/forgot-password.html +0 -0
  397. /package/{src/private → private}/email-templates/support-ticket-deleted.html +0 -0
  398. /package/{src/private → private}/email-templates/support-ticket-modified.html +0 -0
  399. /package/{src/private → private}/email-templates/support-ticket.html +0 -0
  400. /package/{src/private → private}/images/ResolveIO.png +0 -0
@@ -1,615 +0,0 @@
1
- import * as fs from 'fs';
2
- import { MethodManager } from '../managers/method.manager';
3
- import SimpleSchema from 'simpl-schema';
4
- import { ParseSpeeds, PDFDocument } from 'pdf-lib';
5
- import * as puppeteer from 'puppeteer';
6
- import * as path from 'path';
7
-
8
- let pdfCnt = 0;
9
-
10
- export function loadPDFMethods(methodManager: MethodManager) {
11
- methodManager.methods({
12
- generatePDF: {
13
- check: new SimpleSchema({
14
- html: {
15
- type: String
16
- },
17
- fileName: {
18
- type: String
19
- },
20
- orientation: {
21
- type: String,
22
- optional: true
23
- },
24
- fontSize: {
25
- type: String,
26
- optional: true
27
- },
28
- upload: {
29
- type: Boolean,
30
- optional: true
31
- },
32
- uploadFileOrder: {
33
- type: Number,
34
- optional: true
35
- },
36
- uploadFileType: {
37
- type: String,
38
- optional: true
39
- }
40
- }),
41
- function: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {
42
- return new Promise(async (resolve, reject) => {
43
- // console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);
44
-
45
- const args = [
46
- "--disable-dev-shm-usage",
47
- "--no-sandbox",
48
- "--disable-setuid-sandbox",
49
- "--disable-accelerated-2d-canvas",
50
- "--disable-gpu",
51
- "--allow-file-access-from-files",
52
- "--enable-local-file-accesses",
53
- '--font-render-hinting=none'
54
- ];
55
-
56
- const browser = await puppeteer.launch({
57
- headless: true, // run in headless mode
58
- devtools: false, // run with dev tools
59
- ignoreHTTPSErrors: true, // ignore https error
60
- args,
61
- ignoreDefaultArgs: ["--disable-extensions"]
62
- }); // run browser
63
-
64
- const page = await browser.newPage(); // create new tab
65
-
66
- let pathToFont = '';
67
-
68
- if (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {
69
- pathToFont = path.join(__dirname, ('../private/fonts/'));
70
- }
71
- else {
72
- if (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {
73
- pathToFont = path.join(this.clientDir, ('./private/fonts/'));
74
- }
75
- else {
76
- pathToFont = '/usr/share/fonts/dejavu/';
77
- }
78
- }
79
-
80
- let dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');
81
- let dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');
82
- let dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');
83
- let dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');
84
-
85
- let content = `
86
- <head>
87
- <style type="text/css">
88
- @font-face {
89
- font-family: 'Dejavu Serif';
90
- font-style: normal;
91
- font-weight: normal;
92
- src: url("` + dejavuserif_woff + `") format('woff');
93
- }
94
-
95
- @font-face {
96
- font-family: 'Dejavu Serif';
97
- font-style: normal;
98
- font-weight: bold;
99
- src: url("` + dejavuserifBold_woff + `") format('woff');
100
- }
101
-
102
- @font-face {
103
- font-family: 'Dejavu Serif';
104
- font-style: italic;
105
- font-weight: normal;
106
- src: url("` + dejavuserifItalic_woff + `") format('woff');
107
- }
108
-
109
- @font-face {
110
- font-family: 'Dejavu Serif';
111
- font-style: italic;
112
- font-weight: bold;
113
- src: url("` + dejavuserifBoldItalic_woff + `") format('woff');
114
- }
115
-
116
- body {
117
- font-family: 'Dejavu Serif', serif;
118
- font-size: ` + (fontSize ? fontSize : '12px') + `;
119
- }
120
-
121
- .row {
122
- display: -webkit-flex;
123
- display: flex;
124
- flex-wrap: wrap;
125
- -webkit-flex-wrap: wrap;
126
- page-break-inside: avoid !important;
127
- }
128
-
129
- .page-break {
130
- page-break-before: always !important;
131
- padding-top: 1px;
132
- }
133
-
134
- .cell {
135
- box-sizing: border-box;
136
- padding : 2px;
137
- -webkit-flex: 1;
138
- word-wrap: break-word;
139
- }
140
-
141
- .cell-no-padding {
142
- box-sizing: border-box;
143
- -webkit-flex: 1;
144
- word-wrap: break-word;
145
- }
146
-
147
- .centered {
148
- -webkit-justify-content: center;
149
- -webkit-align-items: center;
150
- display: -webkit-flex;
151
- text-align: center;
152
- }
153
-
154
- .centered-left {
155
- -webkit-align-items: center;
156
- display: -webkit-flex;
157
- -webkit-justify-content: flex-start;
158
- }
159
-
160
- .centered-right {
161
- -webkit-justify-content: flex-end;
162
- -webkit-align-items: center;
163
- display: -webkit-flex;
164
- }
165
-
166
- .box {
167
- border: 1px solid black;
168
- margin: -1px 0px 0px -1px;
169
- }
170
-
171
- .boxNoBorder {
172
- margin: -1px 0px 0px -1px;
173
- }
174
-
175
- pre {
176
- white-space: pre-wrap; /* css-3 */
177
- white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
178
- white-space: -pre-wrap; /* Opera 4-6 */
179
- white-space: -o-pre-wrap; /* Opera 7 */
180
- word-wrap: break-word; /* Internet Explorer 5.5+ */
181
- font-size: 12px;
182
- font-family: 'Dejavu Serif';
183
- }
184
- </style>
185
- </head>
186
- <body>
187
- ` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';
188
-
189
- await page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });
190
- await page.evaluateHandle('document.fonts.ready');
191
-
192
- let tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\.a-zA-Z]/g), '');
193
-
194
- await page.pdf({
195
- scale: 1,
196
- landscape: orientation === 'portrait' ? false : true,
197
- format: 'letter',
198
- margin: {
199
- top: '1cm',
200
- bottom: '1cm',
201
- left: '1cm',
202
- right: '1cm'
203
- },
204
- printBackground: true,
205
- displayHeaderFooter: true,
206
- headerTemplate: `
207
- <style>
208
- #header {
209
- padding: 0 0 10px 10px !important;
210
- }
211
- </style>
212
- <span></span>
213
- `,
214
- footerTemplate: `
215
- <style>
216
- #footer {
217
- padding: 0 0 10px 10px !important;
218
- font-size: 10px;
219
- font-family: san-serif;
220
- }
221
- </style>
222
- <div style="padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;">
223
- Page&nbsp;<span class="pageNumber"></span>&nbsp;of&nbsp;<span class="totalPages"></span>
224
- </div>
225
- `,
226
- path: path.join(__dirname, (tmpFileName)),
227
- timeout: 0
228
- });
229
- await browser.close();
230
-
231
- if (fs.existsSync(path.join(__dirname, (tmpFileName)))) {
232
- fs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {
233
- if (!errRead) {
234
- fs.unlinkSync(path.join(__dirname, (tmpFileName)));
235
- if (!upload) {
236
- resolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));
237
- }
238
- else {
239
- let fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');
240
- this.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {
241
- if (err) {
242
- reject(err);
243
- }
244
- else {
245
- resolve(res);
246
- }
247
- });
248
- }
249
- }
250
- else {
251
- reject('No file');
252
- }
253
- });
254
- }
255
- else {
256
- reject('No tmp file');
257
- console.log('No tmp file ', tmpFileName);
258
- }
259
- });
260
- }
261
- },
262
- generatePDFNoPageNumber: {
263
- check: new SimpleSchema({
264
- html: {
265
- type: String
266
- },
267
- fileName: {
268
- type: String
269
- },
270
- orientation: {
271
- type: String,
272
- optional: true
273
- },
274
- fontSize: {
275
- type: String,
276
- optional: true
277
- },
278
- upload: {
279
- type: Boolean,
280
- optional: true
281
- },
282
- uploadFileOrder: {
283
- type: Number,
284
- optional: true
285
- },
286
- uploadFileType: {
287
- type: String,
288
- optional: true
289
- }
290
- }),
291
- function: function(html, fileName, orientation = 'portrait', fontSize = '12px', upload = false, uploadFileOrder = -1, uploadFileType = '') {
292
- return new Promise(async (resolve, reject) => {
293
- // console.log(new Date(), 'GENERATE PDF CALL', fileName, orientation, fontSize, upload);
294
-
295
- const args = [
296
- "--disable-dev-shm-usage",
297
- "--no-sandbox",
298
- "--disable-setuid-sandbox",
299
- "--disable-accelerated-2d-canvas",
300
- "--disable-gpu",
301
- "--allow-file-access-from-files",
302
- "--enable-local-file-accesses",
303
- '--font-render-hinting=none'
304
- ];
305
-
306
- const browser = await puppeteer.launch({
307
- headless: true, // run in headless mode
308
- devtools: false, // run with dev tools
309
- ignoreHTTPSErrors: true, // ignore https error
310
- args,
311
- ignoreDefaultArgs: ["--disable-extensions"]
312
- }); // run browser
313
-
314
- const page = await browser.newPage(); // create new tab
315
-
316
- let pathToFont = '';
317
-
318
- if (fs.existsSync(path.join(__dirname, ('../private/fonts/dejavuserif.woff')))) {
319
- pathToFont = path.join(__dirname, ('../private/fonts/'));
320
- }
321
- else {
322
- if (fs.existsSync(path.join(this.clientDir, ('./private/fonts/dejavuserif.woff')))) {
323
- pathToFont = path.join(this.clientDir, ('./private/fonts/'));
324
- }
325
- else {
326
- pathToFont = '/usr/share/fonts/dejavu/';
327
- }
328
- }
329
-
330
- let dejavuserif_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif.woff').buffer).toString('base64');
331
- let dejavuserifBold_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bold.woff').buffer).toString('base64');
332
- let dejavuserifItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-italic.woff').buffer).toString('base64');
333
- let dejavuserifBoldItalic_woff = 'data:application/font-woff;base64,' + Buffer.from(fs.readFileSync(pathToFont + 'dejavuserif-bolditalic.woff').buffer).toString('base64');
334
-
335
- let content = `
336
- <head>
337
- <style type="text/css">
338
- @font-face {
339
- font-family: 'Dejavu Serif';
340
- font-style: normal;
341
- font-weight: normal;
342
- src: url("` + dejavuserif_woff + `") format('woff');
343
- }
344
-
345
- @font-face {
346
- font-family: 'Dejavu Serif';
347
- font-style: normal;
348
- font-weight: bold;
349
- src: url("` + dejavuserifBold_woff + `") format('woff');
350
- }
351
-
352
- @font-face {
353
- font-family: 'Dejavu Serif';
354
- font-style: italic;
355
- font-weight: normal;
356
- src: url("` + dejavuserifItalic_woff + `") format('woff');
357
- }
358
-
359
- @font-face {
360
- font-family: 'Dejavu Serif';
361
- font-style: italic;
362
- font-weight: bold;
363
- src: url("` + dejavuserifBoldItalic_woff + `") format('woff');
364
- }
365
-
366
- body {
367
- font-family: 'Dejavu Serif', serif;
368
- font-size: ` + (fontSize ? fontSize : '12px') + `;
369
- }
370
-
371
- .row {
372
- display: -webkit-flex;
373
- display: flex;
374
- flex-wrap: wrap;
375
- -webkit-flex-wrap: wrap;
376
- page-break-inside: avoid !important;
377
- }
378
-
379
- .page-break {
380
- page-break-before: always !important;
381
- padding-top: 1px;
382
- }
383
-
384
- .cell {
385
- box-sizing: border-box;
386
- padding : 2px;
387
- -webkit-flex: 1;
388
- word-wrap: break-word;
389
- }
390
-
391
- .cell-no-padding {
392
- box-sizing: border-box;
393
- -webkit-flex: 1;
394
- word-wrap: break-word;
395
- }
396
-
397
- .centered {
398
- -webkit-justify-content: center;
399
- -webkit-align-items: center;
400
- display: -webkit-flex;
401
- text-align: center;
402
- }
403
-
404
- .centered-left {
405
- -webkit-align-items: center;
406
- display: -webkit-flex;
407
- -webkit-justify-content: flex-start;
408
- }
409
-
410
- .centered-right {
411
- -webkit-justify-content: flex-end;
412
- -webkit-align-items: center;
413
- display: -webkit-flex;
414
- }
415
-
416
- .box {
417
- border: 1px solid black;
418
- margin: -1px 0px 0px -1px;
419
- }
420
-
421
- .boxNoBorder {
422
- margin: -1px 0px 0px -1px;
423
- }
424
-
425
- pre {
426
- white-space: pre-wrap; /* css-3 */
427
- white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
428
- white-space: -pre-wrap; /* Opera 4-6 */
429
- white-space: -o-pre-wrap; /* Opera 7 */
430
- word-wrap: break-word; /* Internet Explorer 5.5+ */
431
- font-size: 12px;
432
- font-family: 'Dejavu Serif';
433
- }
434
- </style>
435
- </head>
436
- <body>
437
- ` + html.replace(new RegExp('flex-basis:', 'g'), '-webkit-flex-basis:').replace(new RegExp('flex:', 'g'), '-webkit-flex:') + '</body>';
438
-
439
- await page.setContent(content, { waitUntil: ['domcontentloaded', 'load', 'networkidle0'] });
440
- await page.evaluateHandle('document.fonts.ready');
441
-
442
- let tmpFileName = (pdfCnt++) + '-' + fileName.replace(new RegExp(/[^0-9\.a-zA-Z]/g), '');
443
-
444
- await page.pdf({
445
- scale: 1,
446
- landscape: orientation === 'portrait' ? false : true,
447
- format: 'letter',
448
- margin: {
449
- top: '1cm',
450
- bottom: '1cm',
451
- left: '1cm',
452
- right: '1cm'
453
- },
454
- printBackground: true,
455
- displayHeaderFooter: true,
456
- headerTemplate: `
457
- <style>
458
- #header {
459
- padding: 0 0 10px 10px !important;
460
- }
461
- </style>
462
- <span></span>
463
- `,
464
- footerTemplate: `
465
- <style>
466
- #footer {
467
- padding: 0 0 10px 10px !important;
468
- font-size: 10px;
469
- font-family: san-serif;
470
- }
471
- </style>
472
- <div style="padding-bottom: 2px; padding-right: 15px; text-align: right; width: 100%;">
473
-
474
- </div>
475
- `,
476
- path: path.join(__dirname, (tmpFileName)),
477
- timeout: 0
478
- });
479
- await browser.close();
480
-
481
- if (fs.existsSync(path.join(__dirname, (tmpFileName)))) {
482
- fs.readFile(path.join(__dirname, (tmpFileName)), (errRead, data) => {
483
- if (!errRead) {
484
- fs.unlinkSync(path.join(__dirname, (tmpFileName)));
485
- if (!upload) {
486
- resolve('data:application/pdf;base64,' + Buffer.from(data).toString('base64'));
487
- }
488
- else {
489
- let fileData = 'data:application/pdf;base64,' + Buffer.from(data).toString('base64');
490
- this.callMethodInternal('uploadFileAndSave', fileName, fileData, (4 * Math.ceil(fileData.length / 3)), uploadFileOrder !== null ? uploadFileOrder : -1, uploadFileType, false, (err, res) => {
491
- if (err) {
492
- reject(err);
493
- }
494
- else {
495
- resolve(res);
496
- }
497
- });
498
- }
499
- }
500
- else {
501
- reject('No file');
502
- }
503
- });
504
- }
505
- else {
506
- reject('No tmp file');
507
- console.log('No tmp file ', tmpFileName);
508
- }
509
- });
510
- }
511
- },
512
- mergePDFResolve: {
513
- check: new SimpleSchema({
514
- fileKeys: {
515
- type: Array
516
- },
517
- 'fileKeys.$': {
518
- type: String
519
- },
520
- fileName: {
521
- type: String
522
- },
523
- fileType: {
524
- type: String,
525
- optional: true
526
- }
527
- }),
528
- function: function(fileKeys: string[], fileName: string, fileType?: string) {
529
- return new Promise((resolve, reject) => {
530
- this.callMethodInternal('getSignedUrls', fileKeys, 900, (errSigneds, resSigneds) => {
531
- if (resSigneds && resSigneds.length) {
532
- let promises = [];
533
-
534
- resSigneds.forEach((signedUrl) => {
535
- promises.push(this.callMethodInternal('getDataURIfromURL', signedUrl));
536
- });
537
-
538
- Promise.all(promises).then(async (fileDatas) => {
539
- const mergedPdf = await PDFDocument.create();
540
-
541
- for (let i = 0; i < fileDatas.length; i++) {
542
-
543
- let fileData = fileDatas[i];
544
-
545
- if (fileData) {
546
- if (fileData.startsWith('data:application/pdf;base64,')) {
547
- const pdf = await PDFDocument.load(fileData, { updateMetadata: false, parseSpeed: ParseSpeeds.Fastest });
548
- const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
549
- copiedPages.forEach((page) => {
550
- mergedPdf.addPage(page);
551
- });
552
- }
553
- else if (fileData.startsWith('data:image/jpeg;base64,/9j/') || fileData.startsWith('data:image/png;base64,/9j/')) {
554
- const pdf = await PDFDocument.create();
555
- const img = await pdf.embedJpg(fileData);
556
- const page = pdf.addPage();
557
- let imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);
558
- page.drawImage(img, {
559
- x: page.getWidth() / 2 - imgDim.width / 2,
560
- y: page.getHeight() / 2 - imgDim.height / 2,
561
- width: imgDim.width,
562
- height: imgDim.height,
563
- });
564
- const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
565
- copiedPages.forEach((page) => {
566
- mergedPdf.addPage(page);
567
- });
568
- }
569
- else if (fileData.startsWith('data:image/png;base64,iVBOR')) {
570
- const pdf = await PDFDocument.create();
571
- const img = await pdf.embedPng(fileData);
572
- const page = pdf.addPage();
573
- let imgDim = img.scaleToFit(page.getWidth() * 0.75, page.getHeight() * 0.75);
574
- page.drawImage(img, {
575
- x: page.getWidth() / 2 - imgDim.width / 2,
576
- y: page.getHeight() / 2 - imgDim.height / 2,
577
- width: imgDim.width,
578
- height: imgDim.height,
579
- });
580
- const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
581
- copiedPages.forEach((page) => {
582
- mergedPdf.addPage(page);
583
- });
584
- }
585
- else {
586
- console.log('Error - unsupported!!', fileData.slice(0, 60));
587
- }
588
- }
589
- else {
590
- console.log('Error - no filedata!!', fileData);
591
- }
592
- }
593
-
594
- let mergedPDFUint8 = await mergedPdf.save();
595
-
596
- const b64PDF = 'data:application/pdf;base64,' + Buffer.from(mergedPDFUint8).toString('base64');
597
-
598
- this.callMethodInternal('uploadFileAndSave', fileName, b64PDF, (4 * Math.ceil(b64PDF.length / 3)), -1, fileType, false, (errUp, resUp) => {
599
- resolve(resUp);
600
- });
601
- });
602
- }
603
- else {
604
- this.callMethodInternal('insertErrorLog', 'PDF Merge - getSignedUrls', [
605
- fileKeys,
606
- errSigneds
607
- ]);
608
- reject(errSigneds);
609
- }
610
- });
611
- });
612
- }
613
- }
614
- });
615
- }