@tsed/formio 7.0.0-alpha.1 → 7.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/lib/{FormioModule.js → cjs/FormioModule.js} +38 -51
  2. package/lib/cjs/FormioModule.js.map +1 -0
  3. package/lib/{builder → cjs/builder}/FormioMapper.js +0 -0
  4. package/lib/cjs/builder/FormioMapper.js.map +1 -0
  5. package/lib/{components → cjs/components}/AlterActions.js +8 -8
  6. package/lib/cjs/components/AlterActions.js.map +1 -0
  7. package/lib/{components → cjs/components}/AlterAudit.js +2 -2
  8. package/lib/cjs/components/AlterAudit.js.map +1 -0
  9. package/lib/{components → cjs/components}/AlterHost.js +2 -2
  10. package/lib/cjs/components/AlterHost.js.map +1 -0
  11. package/lib/{components → cjs/components}/AlterLog.js +2 -2
  12. package/lib/cjs/components/AlterLog.js.map +1 -0
  13. package/lib/{components → cjs/components}/AlterSkip.js +9 -9
  14. package/lib/cjs/components/AlterSkip.js.map +1 -0
  15. package/lib/{components → cjs/components}/AlterTemplateExportSteps.js +6 -6
  16. package/lib/cjs/components/AlterTemplateExportSteps.js.map +1 -0
  17. package/lib/{components → cjs/components}/AlterTemplateImportSteps.js +5 -5
  18. package/lib/cjs/components/AlterTemplateImportSteps.js.map +1 -0
  19. package/lib/{decorators → cjs/decorators}/action.js +3 -3
  20. package/lib/cjs/decorators/action.js.map +1 -0
  21. package/lib/{decorators → cjs/decorators}/actionCtx.js +1 -1
  22. package/lib/cjs/decorators/actionCtx.js.map +1 -0
  23. package/lib/{decorators → cjs/decorators}/alter.js +3 -3
  24. package/lib/cjs/decorators/alter.js.map +1 -0
  25. package/lib/{decorators → cjs/decorators}/on.js +3 -3
  26. package/lib/cjs/decorators/on.js.map +1 -0
  27. package/lib/{decorators → cjs/decorators}/useFormioAuth.js +1 -1
  28. package/lib/cjs/decorators/useFormioAuth.js.map +1 -0
  29. package/lib/{domain → cjs/domain}/AlterHook.js +0 -0
  30. package/lib/cjs/domain/AlterHook.js.map +1 -0
  31. package/lib/{domain → cjs/domain}/Formio.js +0 -0
  32. package/lib/cjs/domain/Formio.js.map +1 -0
  33. package/lib/{domain → cjs/domain}/FormioAction.js +0 -0
  34. package/lib/cjs/domain/FormioAction.js.map +1 -0
  35. package/lib/{domain → cjs/domain}/FormioActionsIndex.js +0 -0
  36. package/lib/cjs/domain/FormioActionsIndex.js.map +1 -0
  37. package/lib/{domain → cjs/domain}/FormioAuth.js +0 -0
  38. package/lib/cjs/domain/FormioAuth.js.map +1 -0
  39. package/lib/{domain → cjs/domain}/FormioBaseModel.js +0 -0
  40. package/lib/cjs/domain/FormioBaseModel.js.map +1 -0
  41. package/lib/{domain → cjs/domain}/FormioConfig.js +0 -0
  42. package/lib/cjs/domain/FormioConfig.js.map +1 -0
  43. package/lib/{domain → cjs/domain}/FormioCtxMapper.js +0 -0
  44. package/lib/cjs/domain/FormioCtxMapper.js.map +1 -0
  45. package/lib/{domain → cjs/domain}/FormioDecodedToken.js +0 -0
  46. package/lib/cjs/domain/FormioDecodedToken.js.map +1 -0
  47. package/lib/{domain → cjs/domain}/FormioErrors.js +0 -0
  48. package/lib/cjs/domain/FormioErrors.js.map +1 -0
  49. package/lib/{domain → cjs/domain}/FormioHooks.js +0 -0
  50. package/lib/cjs/domain/FormioHooks.js.map +1 -0
  51. package/lib/{domain → cjs/domain}/FormioJs.js +0 -0
  52. package/lib/cjs/domain/FormioJs.js.map +1 -0
  53. package/lib/cjs/domain/FormioModels.js +5 -0
  54. package/lib/cjs/domain/FormioModels.js.map +1 -0
  55. package/lib/{domain → cjs/domain}/FormioRouter.js +0 -0
  56. package/lib/cjs/domain/FormioRouter.js.map +1 -0
  57. package/lib/{domain → cjs/domain}/FormioSettings.js +0 -0
  58. package/lib/cjs/domain/FormioSettings.js.map +1 -0
  59. package/lib/{domain → cjs/domain}/FormioTemplate.js +0 -0
  60. package/lib/cjs/domain/FormioTemplate.js.map +1 -0
  61. package/lib/{domain → cjs/domain}/FormioTemplateUtil.js +0 -0
  62. package/lib/cjs/domain/FormioTemplateUtil.js.map +1 -0
  63. package/lib/{domain → cjs/domain}/FormioUpdate.js +0 -0
  64. package/lib/cjs/domain/FormioUpdate.js.map +1 -0
  65. package/lib/{domain → cjs/domain}/FormioUtils.js +0 -0
  66. package/lib/cjs/domain/FormioUtils.js.map +1 -0
  67. package/lib/{domain → cjs/domain}/OnHook.js +0 -0
  68. package/lib/cjs/domain/OnHook.js.map +1 -0
  69. package/lib/{domain → cjs/domain}/Resource.js +0 -0
  70. package/lib/cjs/domain/Resource.js.map +1 -0
  71. package/lib/cjs/index.js +46 -0
  72. package/lib/cjs/index.js.map +1 -0
  73. package/lib/{middlewares → cjs/middlewares}/FormioAuthMiddleware.js +12 -12
  74. package/lib/cjs/middlewares/FormioAuthMiddleware.js.map +1 -0
  75. package/lib/{services → cjs/services}/FormioAuthService.js +13 -13
  76. package/lib/cjs/services/FormioAuthService.js.map +1 -0
  77. package/lib/{services → cjs/services}/FormioDatabase.js +10 -10
  78. package/lib/cjs/services/FormioDatabase.js.map +1 -0
  79. package/lib/{services → cjs/services}/FormioHooksService.js +9 -9
  80. package/lib/cjs/services/FormioHooksService.js.map +1 -0
  81. package/lib/{services → cjs/services}/FormioInstaller.js +8 -8
  82. package/lib/cjs/services/FormioInstaller.js.map +1 -0
  83. package/lib/{services → cjs/services}/FormioService.js +8 -8
  84. package/lib/cjs/services/FormioService.js.map +1 -0
  85. package/lib/{utils → cjs/utils}/isMongoId.js +0 -0
  86. package/lib/cjs/utils/isMongoId.js.map +1 -0
  87. package/lib/esm/FormioModule.js +134 -0
  88. package/lib/esm/FormioModule.js.map +1 -0
  89. package/lib/esm/builder/FormioMapper.js +49 -0
  90. package/lib/esm/builder/FormioMapper.js.map +1 -0
  91. package/lib/esm/components/AlterActions.js +63 -0
  92. package/lib/esm/components/AlterActions.js.map +1 -0
  93. package/lib/esm/components/AlterAudit.js +13 -0
  94. package/lib/esm/components/AlterAudit.js.map +1 -0
  95. package/lib/esm/components/AlterHost.js +12 -0
  96. package/lib/esm/components/AlterHost.js.map +1 -0
  97. package/lib/esm/components/AlterLog.js +13 -0
  98. package/lib/esm/components/AlterLog.js.map +1 -0
  99. package/lib/esm/components/AlterSkip.js +29 -0
  100. package/lib/esm/components/AlterSkip.js.map +1 -0
  101. package/lib/esm/components/AlterTemplateExportSteps.js +49 -0
  102. package/lib/esm/components/AlterTemplateExportSteps.js.map +1 -0
  103. package/lib/esm/components/AlterTemplateImportSteps.js +42 -0
  104. package/lib/esm/components/AlterTemplateImportSteps.js.map +1 -0
  105. package/lib/esm/decorators/action.js +16 -0
  106. package/lib/esm/decorators/action.js.map +1 -0
  107. package/lib/esm/decorators/actionCtx.js +19 -0
  108. package/lib/esm/decorators/actionCtx.js.map +1 -0
  109. package/lib/esm/decorators/alter.js +16 -0
  110. package/lib/esm/decorators/alter.js.map +1 -0
  111. package/lib/esm/decorators/on.js +16 -0
  112. package/lib/esm/decorators/on.js.map +1 -0
  113. package/lib/esm/decorators/useFormioAuth.js +11 -0
  114. package/lib/esm/decorators/useFormioAuth.js.map +1 -0
  115. package/lib/esm/domain/AlterHook.js +2 -0
  116. package/lib/esm/domain/AlterHook.js.map +1 -0
  117. package/lib/esm/domain/Formio.js +2 -0
  118. package/lib/esm/domain/Formio.js.map +1 -0
  119. package/lib/esm/domain/FormioAction.js +2 -0
  120. package/lib/esm/domain/FormioAction.js.map +1 -0
  121. package/lib/esm/domain/FormioActionsIndex.js +2 -0
  122. package/lib/esm/domain/FormioActionsIndex.js.map +1 -0
  123. package/lib/esm/domain/FormioAuth.js +2 -0
  124. package/lib/esm/domain/FormioAuth.js.map +1 -0
  125. package/lib/esm/domain/FormioBaseModel.js +2 -0
  126. package/lib/esm/domain/FormioBaseModel.js.map +1 -0
  127. package/lib/esm/domain/FormioConfig.js +2 -0
  128. package/lib/esm/domain/FormioConfig.js.map +1 -0
  129. package/lib/esm/domain/FormioCtxMapper.js +2 -0
  130. package/lib/esm/domain/FormioCtxMapper.js.map +1 -0
  131. package/lib/esm/domain/FormioDecodedToken.js +2 -0
  132. package/lib/esm/domain/FormioDecodedToken.js.map +1 -0
  133. package/lib/esm/domain/FormioErrors.js +2 -0
  134. package/lib/esm/domain/FormioErrors.js.map +1 -0
  135. package/lib/esm/domain/FormioHooks.js +2 -0
  136. package/lib/esm/domain/FormioHooks.js.map +1 -0
  137. package/lib/esm/domain/FormioJs.js +2 -0
  138. package/lib/esm/domain/FormioJs.js.map +1 -0
  139. package/lib/esm/domain/FormioModels.js +2 -0
  140. package/lib/esm/domain/FormioModels.js.map +1 -0
  141. package/lib/esm/domain/FormioRouter.js +2 -0
  142. package/lib/esm/domain/FormioRouter.js.map +1 -0
  143. package/lib/esm/domain/FormioSettings.js +2 -0
  144. package/lib/esm/domain/FormioSettings.js.map +1 -0
  145. package/lib/esm/domain/FormioTemplate.js +2 -0
  146. package/lib/esm/domain/FormioTemplate.js.map +1 -0
  147. package/lib/esm/domain/FormioTemplateUtil.js +2 -0
  148. package/lib/esm/domain/FormioTemplateUtil.js.map +1 -0
  149. package/lib/esm/domain/FormioUpdate.js +2 -0
  150. package/lib/esm/domain/FormioUpdate.js.map +1 -0
  151. package/lib/esm/domain/FormioUtils.js +2 -0
  152. package/lib/esm/domain/FormioUtils.js.map +1 -0
  153. package/lib/esm/domain/OnHook.js +2 -0
  154. package/lib/esm/domain/OnHook.js.map +1 -0
  155. package/lib/esm/domain/Resource.js +2 -0
  156. package/lib/esm/domain/Resource.js.map +1 -0
  157. package/lib/esm/index.js +43 -0
  158. package/lib/esm/index.js.map +1 -0
  159. package/lib/esm/middlewares/FormioAuthMiddleware.js +38 -0
  160. package/lib/esm/middlewares/FormioAuthMiddleware.js.map +1 -0
  161. package/lib/esm/services/FormioAuthService.js +179 -0
  162. package/lib/esm/services/FormioAuthService.js.map +1 -0
  163. package/lib/esm/services/FormioDatabase.js +100 -0
  164. package/lib/esm/services/FormioDatabase.js.map +1 -0
  165. package/lib/esm/services/FormioHooksService.js +78 -0
  166. package/lib/esm/services/FormioHooksService.js.map +1 -0
  167. package/lib/esm/services/FormioInstaller.js +47 -0
  168. package/lib/esm/services/FormioInstaller.js.map +1 -0
  169. package/lib/esm/services/FormioService.js +97 -0
  170. package/lib/esm/services/FormioService.js.map +1 -0
  171. package/lib/esm/utils/isMongoId.js +4 -0
  172. package/lib/esm/utils/isMongoId.js.map +1 -0
  173. package/lib/{FormioModule.d.ts → types/FormioModule.d.ts} +0 -0
  174. package/lib/{builder → types/builder}/FormioMapper.d.ts +0 -0
  175. package/lib/{components → types/components}/AlterActions.d.ts +0 -0
  176. package/lib/{components → types/components}/AlterAudit.d.ts +0 -0
  177. package/lib/{components → types/components}/AlterHost.d.ts +0 -0
  178. package/lib/{components → types/components}/AlterLog.d.ts +0 -0
  179. package/lib/{components → types/components}/AlterSkip.d.ts +0 -0
  180. package/lib/{components → types/components}/AlterTemplateExportSteps.d.ts +0 -0
  181. package/lib/{components → types/components}/AlterTemplateImportSteps.d.ts +0 -0
  182. package/lib/{decorators → types/decorators}/action.d.ts +1 -1
  183. package/lib/{decorators → types/decorators}/actionCtx.d.ts +2 -1
  184. package/lib/{decorators → types/decorators}/alter.d.ts +0 -0
  185. package/lib/{decorators → types/decorators}/on.d.ts +0 -0
  186. package/lib/{decorators → types/decorators}/useFormioAuth.d.ts +0 -0
  187. package/lib/{domain → types/domain}/AlterHook.d.ts +0 -0
  188. package/lib/{domain → types/domain}/Formio.d.ts +0 -0
  189. package/lib/{domain → types/domain}/FormioAction.d.ts +1 -26
  190. package/lib/{domain → types/domain}/FormioActionsIndex.d.ts +0 -0
  191. package/lib/{domain → types/domain}/FormioAuth.d.ts +0 -0
  192. package/lib/{domain → types/domain}/FormioBaseModel.d.ts +0 -0
  193. package/lib/{domain → types/domain}/FormioConfig.d.ts +0 -0
  194. package/lib/{domain → types/domain}/FormioCtxMapper.d.ts +1 -2
  195. package/lib/{domain → types/domain}/FormioDecodedToken.d.ts +0 -0
  196. package/lib/{domain → types/domain}/FormioErrors.d.ts +0 -0
  197. package/lib/{domain → types/domain}/FormioHooks.d.ts +0 -0
  198. package/lib/{domain → types/domain}/FormioJs.d.ts +0 -0
  199. package/lib/types/domain/FormioModels.d.ts +42 -0
  200. package/lib/{domain → types/domain}/FormioRouter.d.ts +0 -0
  201. package/lib/{domain → types/domain}/FormioSettings.d.ts +0 -0
  202. package/lib/{domain → types/domain}/FormioTemplate.d.ts +0 -0
  203. package/lib/{domain → types/domain}/FormioTemplateUtil.d.ts +0 -0
  204. package/lib/{domain → types/domain}/FormioUpdate.d.ts +0 -0
  205. package/lib/{domain → types/domain}/FormioUtils.d.ts +0 -0
  206. package/lib/{domain → types/domain}/OnHook.d.ts +0 -0
  207. package/lib/{domain → types/domain}/Resource.d.ts +0 -0
  208. package/lib/{index.d.ts → types/index.d.ts} +0 -0
  209. package/lib/types/middlewares/FormioAuthMiddleware.d.ts +11 -0
  210. package/lib/{services → types/services}/FormioAuthService.d.ts +1 -1
  211. package/lib/{services → types/services}/FormioDatabase.d.ts +1 -2
  212. package/lib/{services → types/services}/FormioHooksService.d.ts +2 -3
  213. package/lib/{services → types/services}/FormioInstaller.d.ts +0 -0
  214. package/lib/{services → types/services}/FormioService.d.ts +0 -0
  215. package/lib/{utils → types/utils}/isMongoId.d.ts +0 -0
  216. package/package.json +23 -14
  217. package/tsconfig.compile.esm.json +23 -0
  218. package/lib/FormioModule.js.map +0 -1
  219. package/lib/builder/FormioMapper.js.map +0 -1
  220. package/lib/components/AlterActions.js.map +0 -1
  221. package/lib/components/AlterAudit.js.map +0 -1
  222. package/lib/components/AlterHost.js.map +0 -1
  223. package/lib/components/AlterLog.js.map +0 -1
  224. package/lib/components/AlterSkip.js.map +0 -1
  225. package/lib/components/AlterTemplateExportSteps.js.map +0 -1
  226. package/lib/components/AlterTemplateImportSteps.js.map +0 -1
  227. package/lib/decorators/action.js.map +0 -1
  228. package/lib/decorators/actionCtx.js.map +0 -1
  229. package/lib/decorators/alter.js.map +0 -1
  230. package/lib/decorators/on.js.map +0 -1
  231. package/lib/decorators/useFormioAuth.js.map +0 -1
  232. package/lib/domain/AlterHook.js.map +0 -1
  233. package/lib/domain/Formio.js.map +0 -1
  234. package/lib/domain/FormioAction.js.map +0 -1
  235. package/lib/domain/FormioActionsIndex.js.map +0 -1
  236. package/lib/domain/FormioAuth.js.map +0 -1
  237. package/lib/domain/FormioBaseModel.js.map +0 -1
  238. package/lib/domain/FormioConfig.js.map +0 -1
  239. package/lib/domain/FormioCtxMapper.js.map +0 -1
  240. package/lib/domain/FormioDecodedToken.js.map +0 -1
  241. package/lib/domain/FormioErrors.js.map +0 -1
  242. package/lib/domain/FormioHooks.js.map +0 -1
  243. package/lib/domain/FormioJs.js.map +0 -1
  244. package/lib/domain/FormioModels.d.ts +0 -183
  245. package/lib/domain/FormioModels.js +0 -3
  246. package/lib/domain/FormioModels.js.map +0 -1
  247. package/lib/domain/FormioRouter.js.map +0 -1
  248. package/lib/domain/FormioSettings.js.map +0 -1
  249. package/lib/domain/FormioTemplate.js.map +0 -1
  250. package/lib/domain/FormioTemplateUtil.js.map +0 -1
  251. package/lib/domain/FormioUpdate.js.map +0 -1
  252. package/lib/domain/FormioUtils.js.map +0 -1
  253. package/lib/domain/OnHook.js.map +0 -1
  254. package/lib/domain/Resource.js.map +0 -1
  255. package/lib/index.js +0 -46
  256. package/lib/index.js.map +0 -1
  257. package/lib/middlewares/FormioAuthMiddleware.d.ts +0 -13
  258. package/lib/middlewares/FormioAuthMiddleware.js.map +0 -1
  259. package/lib/services/FormioAuthService.js.map +0 -1
  260. package/lib/services/FormioDatabase.js.map +0 -1
  261. package/lib/services/FormioHooksService.js.map +0 -1
  262. package/lib/services/FormioInstaller.js.map +0 -1
  263. package/lib/services/FormioService.js.map +0 -1
  264. package/lib/utils/isMongoId.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ export class FormioMapper {
2
+ constructor(ctxData) {
3
+ this.ctxData = ctxData;
4
+ }
5
+ find(key) {
6
+ const store = Object.values(this.ctxData).find((store) => store.get(key));
7
+ return store === null || store === void 0 ? void 0 : store.get(key);
8
+ }
9
+ findId(data) {
10
+ const key = String(data).startsWith("$machineName:") ? String(data) : `$machineName:${String(data)}`;
11
+ const item = this.find(key);
12
+ return item ? item._id : undefined;
13
+ }
14
+ findMachineName(data) {
15
+ const key = String(data);
16
+ const item = this.find(key);
17
+ return item ? `$machineName:${item.machineName}` : undefined;
18
+ }
19
+ mapToExport(data) {
20
+ return this.mapData(data, this.findMachineName.bind(this));
21
+ }
22
+ mapToImport(data) {
23
+ return this.mapData(data, this.findId.bind(this));
24
+ }
25
+ mapData(data, resolver) {
26
+ if (!data) {
27
+ return data;
28
+ }
29
+ if (Array.isArray(data)) {
30
+ return data.map((item) => {
31
+ return this.mapData(item, resolver);
32
+ });
33
+ }
34
+ const key = resolver(data, this.ctxData);
35
+ if (key) {
36
+ return key;
37
+ }
38
+ if (typeof data === "object" && !(data instanceof Date)) {
39
+ return Object.entries(data).reduce((obj, [key, value]) => {
40
+ return {
41
+ ...obj,
42
+ [key]: this.mapData(value, resolver)
43
+ };
44
+ }, {});
45
+ }
46
+ return data;
47
+ }
48
+ }
49
+ //# sourceMappingURL=FormioMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioMapper.js","sourceRoot":"","sources":["../../../src/builder/FormioMapper.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IACvB,YAAqB,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAEjD,IAAI,CAAC,GAAW;QACd,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1E,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACrG,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,IAAS;QACvB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,IAAI,GAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,CAAC;IAED,WAAW,CAAC,IAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,IAAS;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,CAAC,IAAS,EAAE,QAAa;QAC9B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;SACJ;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,GAAG,EAAE;YACP,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;YACvD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvD,OAAO;oBACL,GAAG,GAAG;oBACN,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;iBACrC,CAAC;YACJ,CAAC,EAAE,EAAE,CAAC,CAAC;SACR;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["import {FormioCtxMapper} from \"../domain/FormioCtxMapper\";\n\nexport class FormioMapper {\n constructor(readonly ctxData: FormioCtxMapper) {}\n\n find(key: string) {\n const store = Object.values(this.ctxData).find((store) => store.get(key));\n\n return store?.get(key);\n }\n\n findId(data: string) {\n const key = String(data).startsWith(\"$machineName:\") ? String(data) : `$machineName:${String(data)}`;\n const item = this.find(key);\n\n return item ? item._id : undefined;\n }\n\n findMachineName(data: any) {\n const key = String(data);\n const item: any = this.find(key);\n\n return item ? `$machineName:${item.machineName}` : undefined;\n }\n\n mapToExport(data: any) {\n return this.mapData(data, this.findMachineName.bind(this));\n }\n\n mapToImport(data: any) {\n return this.mapData(data, this.findId.bind(this));\n }\n\n mapData(data: any, resolver: any): any {\n if (!data) {\n return data;\n }\n\n if (Array.isArray(data)) {\n return data.map((item) => {\n return this.mapData(item, resolver);\n });\n }\n\n const key = resolver(data, this.ctxData);\n\n if (key) {\n return key;\n }\n\n if (typeof data === \"object\" && !(data instanceof Date)) {\n return Object.entries(data).reduce((obj, [key, value]) => {\n return {\n ...obj,\n [key]: this.mapData(value, resolver)\n };\n }, {});\n }\n\n return data;\n }\n}\n"]}
@@ -0,0 +1,63 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { EndpointMetadata, PlatformHandler } from "@tsed/common";
3
+ import { Inject, InjectorService } from "@tsed/di";
4
+ import { Alter } from "../decorators/alter";
5
+ import { FormioService } from "../services/FormioService";
6
+ let AlterActions = class AlterActions {
7
+ transform(actions) {
8
+ const { Action } = this.formio;
9
+ return this.getActions().reduce((actions, provider) => {
10
+ var _a;
11
+ const instance = this.injector.invoke(provider.token);
12
+ const options = provider.store.get("formio:action");
13
+ const resolveHandler = this.createResolveHandler(provider);
14
+ return {
15
+ ...actions,
16
+ [options.name]: (_a = class extends Action {
17
+ static async info(req, res, next) {
18
+ let opts = { ...options };
19
+ if (instance.info) {
20
+ opts = await instance.info(opts, req, res);
21
+ }
22
+ next(null, opts);
23
+ }
24
+ static async settingsForm(req, res, next) {
25
+ next(null, await instance.settingsForm(req, res));
26
+ }
27
+ resolve(handler, method, req, res, next, setActionItemMessage) {
28
+ resolveHandler(this, handler, method, req, res, next, setActionItemMessage);
29
+ }
30
+ },
31
+ _a.access = options.access,
32
+ _a)
33
+ };
34
+ }, actions);
35
+ }
36
+ getActions() {
37
+ return this.injector.getProviders("formio:action");
38
+ }
39
+ createResolveHandler(provider) {
40
+ const platformHandler = this.injector.get(PlatformHandler);
41
+ const middleware = platformHandler.createCustomHandler(provider, "resolve");
42
+ return (action, handler, method, req, res, next, setActionItemMessage) => {
43
+ req.$ctx.set("ACTION_CTX", { handler, method, setActionItemMessage, action });
44
+ req.$ctx.endpoint = EndpointMetadata.get(provider.useClass, "resolve");
45
+ middleware(req.$ctx)
46
+ .then(() => (req.$ctx.data ? platformHandler.flush(req.$ctx.data, req.$ctx) : next()))
47
+ .catch(next);
48
+ };
49
+ }
50
+ };
51
+ __decorate([
52
+ Inject(),
53
+ __metadata("design:type", InjectorService)
54
+ ], AlterActions.prototype, "injector", void 0);
55
+ __decorate([
56
+ Inject(),
57
+ __metadata("design:type", FormioService)
58
+ ], AlterActions.prototype, "formio", void 0);
59
+ AlterActions = __decorate([
60
+ Alter("actions")
61
+ ], AlterActions);
62
+ export { AlterActions };
63
+ //# sourceMappingURL=AlterActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterActions.js","sourceRoot":"","sources":["../../../src/components/AlterActions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,gBAAgB,EAAmB,eAAe,EAAC,MAAM,cAAc,CAAC;AAChF,OAAO,EAAC,MAAM,EAAE,eAAe,EAAW,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGxD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAOvB,SAAS,CAAC,OAAsB;QAC9B,MAAM,EAAC,MAAM,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAE7B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAmB,eAAe,CAAC,CAAC;YACtE,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAE3D,OAAO;gBACL,GAAG,OAAO;gBACV,CAAC,OAAO,CAAC,IAAI,CAAC,QAAE,KAAM,SAAQ,MAAM;wBAElC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAc;4BAClD,IAAI,IAAI,GAAG,EAAC,GAAG,OAAO,EAAC,CAAC;4BAExB,IAAI,QAAQ,CAAC,IAAI,EAAE;gCACjB,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;6BAC5C;4BAED,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACnB,CAAC;wBAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAc;4BAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACpD,CAAC;wBAED,OAAO,CAAC,OAAe,EAAE,MAAc,EAAE,GAAQ,EAAE,GAAQ,EAAE,IAAc,EAAE,oBAA0C;4BACrH,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;wBAC9E,CAAC;qBACF;oBAlBQ,SAAM,GAAG,OAAO,CAAC,MAAO;uBAkBhC;aACF,CAAC;QACJ,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAES,oBAAoB,CAAC,QAAuB;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAkB,eAAe,CAAE,CAAC;QAC7E,MAAM,UAAU,GAAG,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE5E,OAAO,CACL,MAAW,EACX,OAAe,EACf,MAAc,EACd,GAA4B,EAC5B,GAAa,EACb,IAAS,EACT,oBAA0C,EAC1C,EAAE;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAC,CAAC,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAEvE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;iBACjB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;iBACrF,KAAK,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC;CACF,CAAA;AAhEC;IADC,MAAM,EAAE;8BACW,eAAe;8CAAC;AAGpC;IADC,MAAM,EAAE;8BACS,aAAa;4CAAC;AALrB,YAAY;IADxB,KAAK,CAAC,SAAS,CAAC;GACJ,YAAY,CAkExB;SAlEY,YAAY","sourcesContent":["import {EndpointMetadata, PlatformContext, PlatformHandler} from \"@tsed/common\";\nimport {Inject, InjectorService, Provider} from \"@tsed/di\";\nimport {FormioActionInfo} from \"@tsed/formio-types\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\nimport {SetActionItemMessage} from \"../domain/FormioAction\";\nimport {FormioActions} from \"../domain/FormioActionsIndex\";\nimport {FormioService} from \"../services/FormioService\";\n\n@Alter(\"actions\")\nexport class AlterActions implements AlterHook {\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected formio: FormioService;\n\n transform(actions: FormioActions): FormioActions {\n const {Action} = this.formio;\n\n return this.getActions().reduce((actions, provider) => {\n const instance = this.injector.invoke<any>(provider.token);\n const options = provider.store.get<FormioActionInfo>(\"formio:action\");\n const resolveHandler = this.createResolveHandler(provider);\n\n return {\n ...actions,\n [options.name]: class extends Action {\n static access = options.access;\n static async info(req: any, res: any, next: Function) {\n let opts = {...options};\n\n if (instance.info) {\n opts = await instance.info(opts, req, res);\n }\n\n next(null, opts);\n }\n\n static async settingsForm(req: any, res: any, next: Function) {\n next(null, await instance.settingsForm(req, res));\n }\n\n resolve(handler: string, method: string, req: any, res: any, next: Function, setActionItemMessage: SetActionItemMessage): void {\n resolveHandler(this, handler, method, req, res, next, setActionItemMessage);\n }\n }\n };\n }, actions);\n }\n\n protected getActions() {\n return this.injector.getProviders(\"formio:action\");\n }\n\n protected createResolveHandler(provider: Provider<any>) {\n const platformHandler = this.injector.get<PlatformHandler>(PlatformHandler)!;\n const middleware = platformHandler.createCustomHandler(provider, \"resolve\");\n\n return (\n action: any,\n handler: string,\n method: string,\n req: {$ctx: PlatformContext},\n res: Response,\n next: any,\n setActionItemMessage: SetActionItemMessage\n ) => {\n req.$ctx.set(\"ACTION_CTX\", {handler, method, setActionItemMessage, action});\n req.$ctx.endpoint = EndpointMetadata.get(provider.useClass, \"resolve\");\n\n middleware(req.$ctx)\n .then(() => (req.$ctx.data ? platformHandler.flush(req.$ctx.data, req.$ctx) : next()))\n .catch(next);\n };\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { __decorate } from "tslib";
2
+ import { Alter } from "../decorators/alter";
3
+ let AlterAudit = class AlterAudit {
4
+ transform(info, event, ctx) {
5
+ ctx.logger.info({ event, info });
6
+ return false;
7
+ }
8
+ };
9
+ AlterAudit = __decorate([
10
+ Alter("audit")
11
+ ], AlterAudit);
12
+ export { AlterAudit };
13
+ //# sourceMappingURL=AlterAudit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterAudit.js","sourceRoot":"","sources":["../../../src/components/AlterAudit.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,IAAa,UAAU,GAAvB,MAAa,UAAU;IACrB,SAAS,CAAC,IAAW,EAAE,KAAa,EAAE,GAAoB;QACxD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AALY,UAAU;IADtB,KAAK,CAAC,OAAO,CAAC;GACF,UAAU,CAKtB;SALY,UAAU","sourcesContent":["import {PlatformContext} from \"@tsed/common\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\n\n@Alter(\"audit\")\nexport class AlterAudit implements AlterHook {\n transform(info: any[], event: string, ctx: PlatformContext): boolean {\n ctx.logger.info({event, info});\n return false;\n }\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { __decorate } from "tslib";
2
+ import { Alter } from "../decorators/alter";
3
+ let AlterHost = class AlterHost {
4
+ transform(baseUrl, ctx) {
5
+ return `${ctx.request.protocol}://${ctx.request.host}${baseUrl}`;
6
+ }
7
+ };
8
+ AlterHost = __decorate([
9
+ Alter("host")
10
+ ], AlterHost);
11
+ export { AlterHost };
12
+ //# sourceMappingURL=AlterHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterHost.js","sourceRoot":"","sources":["../../../src/components/AlterHost.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,IAAa,SAAS,GAAtB,MAAa,SAAS;IACpB,SAAS,CAAC,OAAe,EAAE,GAAoB;QAC7C,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;IACnE,CAAC;CACF,CAAA;AAJY,SAAS;IADrB,KAAK,CAAC,MAAM,CAAC;GACD,SAAS,CAIrB;SAJY,SAAS","sourcesContent":["import {PlatformContext} from \"@tsed/common\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\n\n@Alter(\"host\")\nexport class AlterHost implements AlterHook<string> {\n transform(baseUrl: string, ctx: PlatformContext) {\n return `${ctx.request.protocol}://${ctx.request.host}${baseUrl}`;\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { __decorate } from "tslib";
2
+ import { Alter } from "../decorators/alter";
3
+ let AlterLog = class AlterLog {
4
+ transform(event, ctx, ...info) {
5
+ ctx.logger.debug({ event, info });
6
+ return false;
7
+ }
8
+ };
9
+ AlterLog = __decorate([
10
+ Alter("log")
11
+ ], AlterLog);
12
+ export { AlterLog };
13
+ //# sourceMappingURL=AlterLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterLog.js","sourceRoot":"","sources":["../../../src/components/AlterLog.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,IAAa,QAAQ,GAArB,MAAa,QAAQ;IACnB,SAAS,CAAC,KAAa,EAAE,GAAoB,EAAE,GAAG,IAAW;QAC3D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AALY,QAAQ;IADpB,KAAK,CAAC,KAAK,CAAC;GACA,QAAQ,CAKpB;SALY,QAAQ","sourcesContent":["import {PlatformContext} from \"@tsed/common\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\n\n@Alter(\"log\")\nexport class AlterLog implements AlterHook {\n transform(event: string, ctx: PlatformContext, ...info: any[]): boolean {\n ctx.logger.debug({event, info});\n return false;\n }\n}\n"]}
@@ -0,0 +1,29 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Constant } from "@tsed/common";
3
+ import { normalizePath } from "@tsed/common";
4
+ import { Alter } from "../decorators/alter";
5
+ let AlterSkip = class AlterSkip {
6
+ transform(value, ctx) {
7
+ if (value) {
8
+ return true;
9
+ }
10
+ const { request } = ctx;
11
+ const url = request.url.split("?")[0];
12
+ return !!this.whiteList.find((entry) => {
13
+ return normalizePath(this.baseUrl, entry) === url;
14
+ });
15
+ }
16
+ };
17
+ __decorate([
18
+ Constant("formio.baseUrl", "/"),
19
+ __metadata("design:type", String)
20
+ ], AlterSkip.prototype, "baseUrl", void 0);
21
+ __decorate([
22
+ Constant("formio.whiteList", ["/spec.json"]),
23
+ __metadata("design:type", Array)
24
+ ], AlterSkip.prototype, "whiteList", void 0);
25
+ AlterSkip = __decorate([
26
+ Alter("skip")
27
+ ], AlterSkip);
28
+ export { AlterSkip };
29
+ //# sourceMappingURL=AlterSkip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterSkip.js","sourceRoot":"","sources":["../../../src/components/AlterSkip.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAkB,MAAM,cAAc,CAAC;AACvD,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,IAAa,SAAS,GAAtB,MAAa,SAAS;IAOpB,SAAS,CAAC,KAAU,EAAE,GAAoB;QACxC,IAAI,KAAK,EAAE;YACT,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAC,OAAO,EAAC,GAAG,GAAG,CAAC;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjBC;IADC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,CAAC;;0CAChB;AAGhB;IADC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC,CAAC;;4CACzB;AALT,SAAS;IADrB,KAAK,CAAC,MAAM,CAAC;GACD,SAAS,CAmBrB;SAnBY,SAAS","sourcesContent":["import {Constant, PlatformContext} from \"@tsed/common\";\nimport {normalizePath} from \"@tsed/common\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\n\n@Alter(\"skip\")\nexport class AlterSkip implements AlterHook {\n @Constant(\"formio.baseUrl\", \"/\")\n baseUrl: string;\n\n @Constant(\"formio.whiteList\", [\"/spec.json\"])\n whiteList: string[];\n\n transform(value: any, ctx: PlatformContext): any {\n if (value) {\n return true;\n }\n\n const {request} = ctx;\n const url = request.url.split(\"?\")[0];\n\n return !!this.whiteList.find((entry) => {\n return normalizePath(this.baseUrl, entry) === url;\n });\n }\n}\n"]}
@@ -0,0 +1,49 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { getValue } from "@tsed/core";
3
+ import { Inject } from "@tsed/di";
4
+ import { Alter } from "../decorators/alter";
5
+ import { FormioDatabase } from "../services/FormioDatabase";
6
+ const async = require("async");
7
+ let AlterTemplateExportSteps = class AlterTemplateExportSteps {
8
+ transform(queue, template, map, options) {
9
+ queue.push(async.apply(this.exportSubmissions.bind(this), template, map, options));
10
+ return queue;
11
+ }
12
+ async exportSubmissions(template, map, options, next) {
13
+ const [mapper, submissions] = await Promise.all([
14
+ this.database.getFormioMapper(),
15
+ this.database.submissionModel.find({
16
+ deleted: { $eq: null }
17
+ })
18
+ ]);
19
+ template.submissions = await this.mapSubmissions(submissions, mapper);
20
+ next(null, template);
21
+ }
22
+ mapSubmissions(submissions, mapper) {
23
+ return submissions
24
+ .map((submission) => submission.toObject())
25
+ .reduce((acc, { _id, created, updated, modified, __v, owner, roles, form, metadata, ...submission }) => {
26
+ const machineName = mapper.mapToExport(form.toString());
27
+ const key = machineName.replace("$machineName:", "");
28
+ acc[key] = getValue(acc, key, []);
29
+ acc[key].push({
30
+ ...submission,
31
+ created: created && created.toString(),
32
+ modified: modified && modified.toString(),
33
+ data: mapper.mapToExport(submission.data),
34
+ roles: mapper.mapToExport(roles).filter(Boolean),
35
+ form: mapper.mapToExport(form)
36
+ });
37
+ return acc;
38
+ }, {});
39
+ }
40
+ };
41
+ __decorate([
42
+ Inject(),
43
+ __metadata("design:type", FormioDatabase)
44
+ ], AlterTemplateExportSteps.prototype, "database", void 0);
45
+ AlterTemplateExportSteps = __decorate([
46
+ Alter("templateExportSteps")
47
+ ], AlterTemplateExportSteps);
48
+ export { AlterTemplateExportSteps };
49
+ //# sourceMappingURL=AlterTemplateExportSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterTemplateExportSteps.js","sourceRoot":"","sources":["../../../src/components/AlterTemplateExportSteps.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAG/B,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,SAAS,CAAC,KAAY,EAAE,QAAwB,EAAE,GAAQ,EAAE,OAAY;QACtE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAEnF,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,QAAwB,EAAE,GAAQ,EAAE,OAAY,EAAE,IAAS;QAC3F,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC;gBACjC,OAAO,EAAE,EAAC,GAAG,EAAE,IAAI,EAAC;aACrB,CAAC;SACH,CAAC,CAAC;QAEH,QAAQ,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvB,CAAC;IAES,cAAc,CAAC,WAAiD,EAAE,MAAoB;QAC9F,OAAO,WAAW;aACf,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;aAC1C,MAAM,CAAC,CAAC,GAAQ,EAAE,EAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAC,EAAE,EAAE;YACxG,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAErD,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;YAElC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACZ,GAAG,UAAU;gBACb,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACtC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACzC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;gBACzC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAChD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;aAC/B,CAAC,CAAC;YAEH,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;CACF,CAAA;AA1CC;IADC,MAAM,EAAE;8BACW,cAAc;0DAAC;AAFxB,wBAAwB;IADpC,KAAK,CAAC,qBAAqB,CAAC;GAChB,wBAAwB,CA4CpC;SA5CY,wBAAwB","sourcesContent":["import {getValue} from \"@tsed/core\";\nimport {Inject} from \"@tsed/di\";\nimport {MongooseDocument} from \"@tsed/mongoose\";\nimport {FormioMapper} from \"../builder/FormioMapper\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\nimport {FormioSubmission} from \"../domain/FormioModels\";\nimport {FormioTemplate} from \"../domain/FormioTemplate\";\nimport {FormioDatabase} from \"../services/FormioDatabase\";\n\nconst async = require(\"async\");\n\n@Alter(\"templateExportSteps\")\nexport class AlterTemplateExportSteps implements AlterHook {\n @Inject()\n protected database: FormioDatabase;\n\n transform(queue: any[], template: FormioTemplate, map: any, options: any): any {\n queue.push(async.apply(this.exportSubmissions.bind(this), template, map, options));\n\n return queue;\n }\n\n protected async exportSubmissions(template: FormioTemplate, map: any, options: any, next: any) {\n const [mapper, submissions] = await Promise.all([\n this.database.getFormioMapper(),\n this.database.submissionModel.find({\n deleted: {$eq: null}\n })\n ]);\n\n template.submissions = await this.mapSubmissions(submissions, mapper);\n\n next(null, template);\n }\n\n protected mapSubmissions(submissions: MongooseDocument<FormioSubmission>[], mapper: FormioMapper) {\n return submissions\n .map((submission) => submission.toObject())\n .reduce((acc: any, {_id, created, updated, modified, __v, owner, roles, form, metadata, ...submission}) => {\n const machineName = mapper.mapToExport(form.toString());\n const key = machineName.replace(\"$machineName:\", \"\");\n\n acc[key] = getValue(acc, key, []);\n\n acc[key].push({\n ...submission,\n created: created && created.toString(),\n modified: modified && modified.toString(),\n data: mapper.mapToExport(submission.data),\n roles: mapper.mapToExport(roles).filter(Boolean),\n form: mapper.mapToExport(form)\n });\n\n return acc;\n }, {});\n }\n}\n"]}
@@ -0,0 +1,42 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Inject } from "@tsed/di";
3
+ import { Alter } from "../decorators/alter";
4
+ import { FormioDatabase } from "../services/FormioDatabase";
5
+ const async = require("async");
6
+ let AlterTemplateImportSteps = class AlterTemplateImportSteps {
7
+ transform(queue, install, template) {
8
+ queue.push(async.apply(this.importSubmissions.bind(this), template));
9
+ return queue;
10
+ }
11
+ async importSubmissions(template, done) {
12
+ if (template && template.submissions) {
13
+ // clean all submissions
14
+ await this.database.submissionModel.deleteMany({});
15
+ const ctxData = await this.database.getFormioMapper();
16
+ const entries = Object.entries(template.submissions);
17
+ for (const entry of entries) {
18
+ for (const submission of entry[1]) {
19
+ await this.importSubmission({ ...submission, form: submission.form || entry[0] }, ctxData);
20
+ }
21
+ }
22
+ }
23
+ done();
24
+ }
25
+ async importSubmission(submission, mapper) {
26
+ const value = {
27
+ ...mapper.mapToImport(submission),
28
+ roles: [...new Set(mapper.mapToImport(submission.roles || []))].filter(Boolean)
29
+ };
30
+ await this.database.submissionModel.create(value);
31
+ return value;
32
+ }
33
+ };
34
+ __decorate([
35
+ Inject(),
36
+ __metadata("design:type", FormioDatabase)
37
+ ], AlterTemplateImportSteps.prototype, "database", void 0);
38
+ AlterTemplateImportSteps = __decorate([
39
+ Alter("templateImportSteps")
40
+ ], AlterTemplateImportSteps);
41
+ export { AlterTemplateImportSteps };
42
+ //# sourceMappingURL=AlterTemplateImportSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterTemplateImportSteps.js","sourceRoot":"","sources":["../../../src/components/AlterTemplateImportSteps.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAI1C,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAG/B,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,SAAS,CAAC,KAAY,EAAE,OAAiB,EAAE,QAAiC;QAC1E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAErE,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,iBAAiB,CAAC,QAAiC,EAAE,IAAS;QAC5E,IAAI,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;YACpC,wBAAwB;YACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAErD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;gBAC3B,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;oBACjC,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAC,GAAG,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,EAAC,EAAE,OAAO,CAAC,CAAC;iBAC1F;aACF;SACF;QAED,IAAI,EAAE,CAAC;IACT,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,UAAqC,EAAE,MAAoB;QAC1F,MAAM,KAAK,GAAG;YACZ,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;YACjC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;SAChF,CAAC;QAEF,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAElD,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AApCC;IADC,MAAM,EAAE;8BACW,cAAc;0DAAC;AAFxB,wBAAwB;IADpC,KAAK,CAAC,qBAAqB,CAAC;GAChB,wBAAwB,CAsCpC;SAtCY,wBAAwB","sourcesContent":["import {Inject} from \"@tsed/di\";\nimport {FormioMapper} from \"../builder/FormioMapper\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\nimport {FormioSubmission} from \"../domain/FormioModels\";\nimport {FormioTemplate} from \"../domain/FormioTemplate\";\nimport {FormioDatabase} from \"../services/FormioDatabase\";\n\nconst async = require(\"async\");\n\n@Alter(\"templateImportSteps\")\nexport class AlterTemplateImportSteps implements AlterHook {\n @Inject()\n protected database: FormioDatabase;\n\n transform(queue: any[], install: Function, template: Partial<FormioTemplate>): any {\n queue.push(async.apply(this.importSubmissions.bind(this), template));\n\n return queue;\n }\n\n protected async importSubmissions(template: Partial<FormioTemplate>, done: any) {\n if (template && template.submissions) {\n // clean all submissions\n await this.database.submissionModel.deleteMany({});\n\n const ctxData = await this.database.getFormioMapper();\n const entries = Object.entries(template.submissions);\n\n for (const entry of entries) {\n for (const submission of entry[1]) {\n await this.importSubmission({...submission, form: submission.form || entry[0]}, ctxData);\n }\n }\n }\n\n done();\n }\n\n protected async importSubmission(submission: Partial<FormioSubmission>, mapper: FormioMapper) {\n const value = {\n ...mapper.mapToImport(submission),\n roles: [...new Set(mapper.mapToImport(submission.roles || []))].filter(Boolean)\n };\n\n await this.database.submissionModel.create(value);\n\n return value;\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { StoreSet, useDecorators } from "@tsed/core";
2
+ import { registerProvider } from "@tsed/di";
3
+ /**
4
+ * Create a new FormIO Action.
5
+ * @param options
6
+ * @decorator
7
+ */
8
+ export function Action(options) {
9
+ return useDecorators((target) => {
10
+ registerProvider({
11
+ provide: target,
12
+ type: "formio:action"
13
+ });
14
+ }, StoreSet("formio:action", options));
15
+ }
16
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/decorators/action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAG1C;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,OAAyB;IAC9C,OAAO,aAAa,CAAC,CAAC,MAAW,EAAE,EAAE;QACnC,gBAAgB,CAAC;YACf,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AACzC,CAAC","sourcesContent":["import {StoreSet, useDecorators} from \"@tsed/core\";\nimport {registerProvider} from \"@tsed/di\";\nimport {FormioActionInfo} from \"@tsed/formio-types\";\n\n/**\n * Create a new FormIO Action.\n * @param options\n * @decorator\n */\nexport function Action(options: FormioActionInfo): ClassDecorator {\n return useDecorators((target: any) => {\n registerProvider({\n provide: target,\n type: \"formio:action\"\n });\n }, StoreSet(\"formio:action\", options));\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { Context } from "@tsed/common";
2
+ /**
3
+ * Return the current action context with the following data:
4
+ *
5
+ * ```typescript
6
+ * export type ActionCtx = {
7
+ * handler: string;
8
+ * method: string;
9
+ * setActionItemMessage: SetActionItemMessage;
10
+ * action: FormioAction;
11
+ * };
12
+ * ```
13
+ * @param expression
14
+ * @constructor
15
+ */
16
+ export function ActionCtx(expression) {
17
+ return Context(["ACTION_CTX", expression].filter(Boolean).join("."));
18
+ }
19
+ //# sourceMappingURL=actionCtx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actionCtx.js","sourceRoot":"","sources":["../../../src/decorators/actionCtx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAIrC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS,CAAC,UAAmB;IAC3C,OAAO,OAAO,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC","sourcesContent":["import {Context} from \"@tsed/common\";\nimport {SetActionItemMessage} from \"../domain/FormioAction\";\nimport {FormioAction} from \"@tsed/formio-types\";\n\n/**\n * Return the current action context with the following data:\n *\n * ```typescript\n * export type ActionCtx = {\n * handler: string;\n * method: string;\n * setActionItemMessage: SetActionItemMessage;\n * action: FormioAction;\n * };\n * ```\n * @param expression\n * @constructor\n */\nexport function ActionCtx(expression?: string): ParameterDecorator {\n return Context([\"ACTION_CTX\", expression].filter(Boolean).join(\".\"));\n}\n\nexport type ActionCtx = {\n handler: string;\n method: string;\n setActionItemMessage: SetActionItemMessage;\n action: FormioAction;\n};\n"]}
@@ -0,0 +1,16 @@
1
+ import { StoreSet, useDecorators } from "@tsed/core";
2
+ import { registerProvider } from "@tsed/di";
3
+ /**
4
+ *
5
+ * @param name
6
+ * @constructor
7
+ */
8
+ export function Alter(name) {
9
+ return useDecorators((target) => {
10
+ registerProvider({
11
+ provide: target,
12
+ type: "formio:alter"
13
+ });
14
+ }, StoreSet("formio:alter:name", name));
15
+ }
16
+ //# sourceMappingURL=alter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alter.js","sourceRoot":"","sources":["../../../src/decorators/alter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,IAAY;IAChC,OAAO,aAAa,CAAC,CAAC,MAAW,EAAE,EAAE;QACnC,gBAAgB,CAAC;YACf,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["import {StoreSet, useDecorators} from \"@tsed/core\";\nimport {registerProvider} from \"@tsed/di\";\n\n/**\n *\n * @param name\n * @constructor\n */\nexport function Alter(name: string): ClassDecorator {\n return useDecorators((target: any) => {\n registerProvider({\n provide: target,\n type: \"formio:alter\"\n });\n }, StoreSet(\"formio:alter:name\", name));\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { StoreSet, useDecorators } from "@tsed/core";
2
+ import { registerProvider } from "@tsed/di";
3
+ /**
4
+ * Create a Form io hook event listener
5
+ * @param name
6
+ * @constructor
7
+ */
8
+ export function On(name) {
9
+ return useDecorators((target) => {
10
+ registerProvider({
11
+ provide: target,
12
+ type: "formio:on"
13
+ });
14
+ }, StoreSet("formio:on:name", name));
15
+ }
16
+ //# sourceMappingURL=on.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on.js","sourceRoot":"","sources":["../../../src/decorators/on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,EAAE,CAAC,IAAY;IAC7B,OAAO,aAAa,CAAC,CAAC,MAAW,EAAE,EAAE;QACnC,gBAAgB,CAAC;YACf,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC,EAAE,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC","sourcesContent":["import {StoreSet, useDecorators} from \"@tsed/core\";\nimport {registerProvider} from \"@tsed/di\";\n\n/**\n * Create a Form io hook event listener\n * @param name\n * @constructor\n */\nexport function On(name: string): ClassDecorator {\n return useDecorators((target: any) => {\n registerProvider({\n provide: target,\n type: \"formio:on\"\n });\n }, StoreSet(\"formio:on:name\", name));\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { UseAuth } from "@tsed/common";
2
+ import { FormioAuthMiddleware } from "../middlewares/FormioAuthMiddleware";
3
+ /**
4
+ * Check if a user is connected by using the Formio Auth middleware
5
+ * @decorator
6
+ * @formio
7
+ */
8
+ export function UseFormioAuth() {
9
+ return UseAuth(FormioAuthMiddleware);
10
+ }
11
+ //# sourceMappingURL=useFormioAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFormioAuth.js","sourceRoot":"","sources":["../../../src/decorators/useFormioAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AACrC,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AAEzE;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACvC,CAAC","sourcesContent":["import {UseAuth} from \"@tsed/common\";\nimport {FormioAuthMiddleware} from \"../middlewares/FormioAuthMiddleware\";\n\n/**\n * Check if a user is connected by using the Formio Auth middleware\n * @decorator\n * @formio\n */\nexport function UseFormioAuth(): Function {\n return UseAuth(FormioAuthMiddleware);\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AlterHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlterHook.js","sourceRoot":"","sources":["../../../src/domain/AlterHook.ts"],"names":[],"mappings":"","sourcesContent":["export interface AlterHook<T = any> {\n transform(...args: any[]): T;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Formio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Formio.js","sourceRoot":"","sources":["../../../src/domain/Formio.ts"],"names":[],"mappings":"","sourcesContent":["import {EventEmitter} from \"events\";\nimport {NextFunction, Request, Response} from \"express\";\nimport {Db} from \"mongodb\";\nimport {Mongoose, Schema} from \"mongoose\";\nimport {FormioActionModelCtor} from \"./FormioAction\";\nimport {FormioActionsIndex} from \"./FormioActionsIndex\";\nimport {FormioAuth} from \"./FormioAuth\";\nimport {FormioBaseModel} from \"./FormioBaseModel\";\nimport {FormioConfig} from \"./FormioConfig\";\nimport {FormioHook, FormioHooks} from \"./FormioHooks\";\nimport {FormioModels, FormioSchemas} from \"./FormioModels\";\nimport {FormioTemplateUtil} from \"./FormioTemplateUtil\";\nimport {FormioUpdate} from \"./FormioUpdate\";\nimport {FormioUtil} from \"./FormioUtils\";\n\nexport interface FormioBase {\n /**\n * Auth\n */\n auth: FormioAuth;\n /**\n * Event emitter\n */\n events: EventEmitter;\n /**\n * Formio configuration\n */\n config: FormioConfig & {schema: string};\n\n /**\n * Emit alter `log` event. Return false to disable event logging.\n * @param event\n * @param req\n * @param info\n */\n log(event: string, req: Request, ...info: any[]): void;\n\n /**\n * Emit alter `audit` event if `config.audit` is enabled. Return false to disable event logging.\n * Use `console.log`.\n * @param event\n * @param req\n * @param info\n */\n audit(event: string, req: Request, ...info: any[]): void;\n}\n\nexport interface FormioMiddlewares {\n alias(req: Request, res: Response, next: NextFunction): void;\n\n params(req: Request, res: Response, next: NextFunction): void;\n\n accessHandler(req: Request, res: Response, next: NextFunction): void;\n\n /**\n * Authorize all urls based on roles and permissions.\n * @param req\n * @param res\n * @param next\n */\n permissionHandler(req: Request, res: Response, next: NextFunction): void;\n\n restrictRequestTypes(req: Request, res: Response, next: NextFunction): void;\n tokenHandler(req: Request, res: Response, next: NextFunction): void;\n}\n\nexport interface Formio extends FormioBase {\n Action: FormioActionModelCtor;\n BaseModel: FormioBaseModel;\n actions: FormioActionsIndex;\n resources: any;\n /**\n * Database connection\n */\n db: Db;\n\n schemas: FormioSchemas & {\n AccessSchema: Schema;\n PermissionSchema: Schema;\n FieldMatchAccessPermissionSchema: Schema;\n };\n\n models: FormioModels;\n /**\n * Mongoose lib.\n */\n mongoose: Mongoose;\n /**\n * Exported formio middlewares\n */\n readonly middleware: FormioMiddlewares;\n /**\n * Hooks.\n */\n hooks: FormioHooks;\n /**\n * Plugins.\n */\n plugins: any;\n /**\n * Formio hook util.\n */\n readonly hook: FormioHook;\n /**\n * The formio utils.\n */\n readonly util: FormioUtil;\n /**\n * Update system.\n */\n readonly update: FormioUpdate;\n /**\n * Template export/import\n */\n readonly template: FormioTemplateUtil;\n\n /**\n * Encryption system.\n */\n encrypt(text: string, next: (err: null | Error, hash: string) => void): void;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioAction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioAction.js","sourceRoot":"","sources":["../../../src/domain/FormioAction.ts"],"names":[],"mappings":"","sourcesContent":["import {Request, Response} from \"express\";\nimport {FormioMongooseSchema} from \"./FormioBaseModel\";\nimport {FormioComponent} from \"./FormioModels\";\nimport {FormioAction, FormioActionInfo} from \"@tsed/formio-types\";\n\nexport interface FormioActionModel extends FormioAction {\n resolve(handler: string, method: string, req: Request, res: Response, next: Function, setActionItemMessage: SetActionItemMessage): void;\n}\n\nexport type FormioActionMongooseSchema = FormioMongooseSchema<FormioAction>;\nexport type SetActionItemMessage = (message: string, data?: any, state?: any) => void;\n\nexport interface FormioActionModelCtor {\n schema?: FormioActionMongooseSchema;\n\n info(req: Request, response: Response, next: (err: any, info: FormioActionInfo) => void): void;\n\n settingsForm(req: Request, response: Response, next: (err: any, info: FormioComponent[]) => void): void;\n\n new (data: FormioAction, req: Request, res: Response): FormioActionModel;\n}\n\nexport interface ActionMethods {\n info?(req: Request, response: Response): Promise<FormioAction>;\n\n settingsForm(req: Request, response: Response): Promise<FormioComponent[]>;\n\n resolve(...args: any[]): Promise<any>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioActionsIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioActionsIndex.js","sourceRoot":"","sources":["../../../src/domain/FormioActionsIndex.ts"],"names":[],"mappings":"","sourcesContent":["import {Type} from \"@tsed/core\";\nimport {FormioActionModelCtor} from \"./FormioAction\";\n\nexport interface FormioActions {\n email: FormioActionModelCtor;\n login: FormioActionModelCtor;\n resetpass: FormioActionModelCtor;\n role: FormioActionModelCtor;\n save: FormioActionModelCtor;\n sql: FormioActionModelCtor;\n webhook: FormioActionModelCtor;\n\n [key: string]: FormioActionModelCtor;\n}\n\nexport interface FormioActionsIndex {\n actions: FormioActions & Record<string, Type<FormioActionModelCtor>>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioAuth.js","sourceRoot":"","sources":["../../../src/domain/FormioAuth.ts"],"names":[],"mappings":"","sourcesContent":["import {Next, Req, Res} from \"@tsed/common\";\nimport {FormioDecodedToken, FormioPayloadToken} from \"./FormioDecodedToken\";\nimport {FormioForm} from \"./FormioModels\";\n\nexport interface FormioAuth {\n /**\n * Send the current user.\n *\n * @param req\n * @param res\n * @param next\n */\n currentUser(req: Req, res: Res, next: Function): void;\n\n /**\n * Checks to see if a decoded token is allowed to access this path.\n * @param req\n * @param decoded\n * @return {boolean}\n */\n isTokenAllowed(req: Req, decoded: FormioDecodedToken): boolean;\n\n /**\n * Generate our JWT with the given payload, and pass it to the given callback function.\n *\n * @param payload {Object}\n * The decoded JWT.\n *\n * @return {String|Boolean}\n * The JWT from the given payload, or false if the jwt payload is still valid.\n */\n getToken(payload: FormioPayloadToken): string | boolean;\n\n /**\n * Generate a temporary token for a specific path and expiration.\n *\n * @param req\n * @param res\n * @param allow\n * @param expire\n * @param admin\n * @param cb\n */\n getTempToken(req: Req, res: Res, allow: boolean, expire: number, admin: boolean, cb: Function): void;\n\n tempToken(req: Req, res: Res): void;\n\n /**\n * Authenticate a user.\n *\n * @param req\n * @param forms {Mixed}\n * A single form or an array of forms to authenticate against.\n * @param userField {String}\n * The user submission field that contains the username.\n * @param passField {String}\n * The user submission field that contains the password.\n * @param username {String}\n * The user submission username to login with.\n * @param password {String}\n * The user submission password to login with.\n * @param next {Function}\n * The callback function to call after authentication.\n */\n authenticate(\n req: Req,\n forms: FormioForm | FormioForm[],\n userField: string,\n passField: string,\n username: string,\n password: string,\n next: Function\n ): void;\n\n /**\n * Interception logout request.\n * @param req\n * @param res\n * @param next\n */\n logout(req: Req, res: Res, next: Next): void;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioBaseModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioBaseModel.js","sourceRoot":"","sources":["../../../src/domain/FormioBaseModel.ts"],"names":[],"mappings":"","sourcesContent":["import {MongooseDocument} from \"@tsed/mongoose\";\nimport {Schema, Document} from \"mongoose\";\n\nexport type FormioMongooseSchema<T> = Schema<Document<T>> & {\n machineName(document: MongooseDocument<T>, done: Function): void;\n};\n\nexport interface FormioBaseModel<T = any> {\n schema: Schema<Document<T>>;\n}\n\nexport interface FormioModel<T = any> extends FormioBaseModel<T> {\n schema: FormioMongooseSchema<T>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioConfig.js","sourceRoot":"","sources":["../../../src/domain/FormioConfig.ts"],"names":[],"mappings":"","sourcesContent":["import {FormioSettings} from \"./FormioSettings\";\nimport {FormioTemplate} from \"./FormioTemplate\";\n\nexport interface FormioJwtConfig {\n secret: string;\n expireTime?: number;\n}\n\nexport interface FormioEmailConfig {\n type: string;\n username: string;\n password: string;\n}\n\nexport interface FormioConfig {\n /**\n * Base url to mount the formio endpoints with Ts.ED server. Default: '/'\n */\n baseUrl: string;\n /**\n * Skip installation process\n */\n skipInstall?: boolean;\n\n template?: FormioTemplate;\n /**\n * Cors allowed origin configuration. Default: `[\"*\"]`.\n */\n allowedOrigins?: string[];\n /**\n *\n */\n mongoCA?: any;\n mongo?: string;\n mongoConfig?: string;\n /**\n * Reserved keywords form name list\n */\n reservedForms?: string[];\n /**\n * Jwt configuration\n */\n jwt: FormioJwtConfig;\n /**\n * Email sendgrid settings\n */\n email?: FormioEmailConfig;\n /**\n * Settings of external formio services\n */\n settings?: FormioSettings;\n /**\n * Enable audit log. Default: false\n */\n audit?: boolean;\n /**\n * User root credentials\n */\n root: {\n email: string;\n password: string;\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioCtxMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioCtxMapper.js","sourceRoot":"","sources":["../../../src/domain/FormioCtxMapper.ts"],"names":[],"mappings":"","sourcesContent":["import {MongooseDocument} from \"@tsed/mongoose\";\nimport {FormioAction, FormioForm, FormioRole} from \"@tsed/formio-types\";\n\nexport interface FormioCtxMapper {\n forms: Map<string, MongooseDocument<FormioForm>>;\n actions: Map<string, MongooseDocument<FormioAction>>;\n roles: Map<string, MongooseDocument<FormioRole>>;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioDecodedToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioDecodedToken.js","sourceRoot":"","sources":["../../../src/domain/FormioDecodedToken.ts"],"names":[],"mappings":"","sourcesContent":["export interface FormioDecodedToken extends Record<string, unknown> {\n user: {\n _id: string;\n };\n form: {\n _id: string;\n };\n}\n\nexport interface FormioPayloadToken {\n token: string;\n decoded: FormioDecodedToken;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioErrors.js","sourceRoot":"","sources":["../../../src/domain/FormioErrors.ts"],"names":[],"mappings":"","sourcesContent":["export interface FormioErrors {\n app: {\n ESETTINGSLOAD: \"Cannot load app settings.\";\n EDBCONFIG: \"Database settings is missing.\";\n EDBHOST: \"Invalid SQL Host.\";\n };\n db: {\n EINVQUERY: \"Invalid query.\";\n EDBCONN: \"Connection error.\";\n EQUERY: \"Query request error.\";\n };\n emailer: {\n ENOTRANSP: \"Cannot get emailer transports.\";\n ESENDMAIL: \"Email sending failed.\";\n ESUBPARAMS: \"Failed to get substitution parameters.\";\n };\n cache: {\n EFORMLOAD: \"Cannot load form.\";\n };\n form: {\n ENOFORM: \"Form not found.\";\n };\n auth: {\n EAUTH: \"Authentication failed.\";\n EPASSFIELD: \"Invalid password field.\";\n EPASSRESET: \"Unable to change password.\";\n ERESETTOKEN: \"Invalid reset password token.\";\n ENOPASSP: \"No password provided.\";\n ELOGINCOUNT: \"Unable to update login count.\";\n };\n submission: {\n ENOSUB: \"Submission not found.\";\n ESUBLOAD: \"Cannot load submission.\";\n ESUBSAVE: \"Cannot save submission.\";\n };\n user: {\n ENOUSER: \"User not found.\";\n ENONAMEP: \"No user name provided.\";\n };\n role: {\n EROLESLOAD: \"Cannot load the Roles.\";\n ENOROLE: \"Role not found.\";\n EROLELOAD: \"Cannot load role.\";\n EROLEEXIST: \"Provided role already exists.\";\n };\n request: {\n EREQRECUR: \"Too many recursive requests.\";\n };\n resource: {\n ENOIDP: \"Resource id is missing.\";\n ENOHANDLER: \"Resource handler not found.\";\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioHooks.js","sourceRoot":"","sources":["../../../src/domain/FormioHooks.ts"],"names":[],"mappings":"","sourcesContent":["import {MongooseDocument} from \"@tsed/mongoose\";\nimport {Request} from \"express\";\nimport {FilterQuery, Schema, SchemaDefinition} from \"mongoose\";\nimport {Formio} from \"./Formio\";\nimport {FormioActions} from \"./FormioActionsIndex\";\nimport {FormioConfig} from \"./FormioConfig\";\nimport {FormioDecodedToken} from \"./FormioDecodedToken\";\nimport {FormioJs} from \"./FormioJs\";\nimport {FormioActionItem, FormioForm, FormioModelsModels, FormioSubmission} from \"./FormioModels\";\nimport {FormioSettings} from \"./FormioSettings\";\nimport {ResourceRestOptions} from \"./Resource\";\n\nexport type FormioInitEvent = \"alias\" | \"params\" | \"token\" | \"getTempToken\" | \"logout\" | \"current\" | \"access\" | \"perms\";\n\nexport interface FormioHooks {\n settings?: (settings: FormioSettings, req: Request, cb: Function) => FormioSettings;\n alter?: {\n alias?: (alias: string, req: Request, res: Response) => string;\n /**\n * Alter FormioJs configuration\n * @param formIo\n */\n configFormio?: (formIo: {Formio: FormioJs}) => void;\n /**\n * Alter formio server configuration.\n * @param config\n */\n updateConfig?: (config: FormioConfig) => FormioConfig;\n /**\n * Alter audit log.\n * @param info\n * @param event\n * @param req\n */\n audit?: (info: any[], event: string, req: Request) => void;\n /**\n * Alter log.\n * @param info\n * @param event\n * @param req\n */\n log?: (event: string, req: Request, ...info: string[]) => void;\n /**\n * Alter available actions\n * @param info\n * @param event\n * @param req\n */\n actions?: (actions: FormioActions) => FormioActions;\n /**\n * Skip auth for the current request.\n * @param info\n * @param event\n * @param req\n */\n skip?: (value: boolean, req: Request) => boolean;\n /**\n * Resolve host.\n * @param baseUrl\n * @param req\n */\n host?: (baseUrl: string, req: Request) => string;\n /**\n * `/form/${req.params.formId}/action`\n * @param action\n * @param req\n */\n path?: (path: string, req: Request) => any;\n /**\n * Restrict request types\n * @param methods\n */\n methods?: (methods: string[]) => string[];\n /**\n * Return the cors configuration.\n */\n cors?: () => Record<string, any>;\n /**\n * Return the current user submission.\n */\n currentUser?: (user: any) => any;\n /**\n * Alter current form.\n * @param form\n */\n currentForm?: (form: FormioForm) => FormioForm;\n /**\n * Alter formio\n * @param formio\n */\n formio?: (formio: Formio) => Formio;\n /**\n * Alter models\n * @param models\n */\n models?: (models: FormioModelsModels) => FormioModelsModels;\n /**\n * Alter resources\n * @param resources\n */\n resources?: (resources: {form: any; submission: any; role: any}) => any;\n\n resourceAccessFilter?: (search: any, req: Request, done: (err: unknown, newSearch: any) => void) => void;\n\n // machineName\n actionMachineName?: (name: string, document: MongooseDocument<any>, done: Function) => void;\n formMachineName?: (name: string, document: MongooseDocument<any>, done: Function) => void;\n roleMachineName?: (name: string, document: MongooseDocument<any>, done: Function) => void;\n\n // schemas\n actionSchema?: (schema: Schema) => Schema;\n actionItemSchema?: (schema: Schema) => Schema;\n formSchema?: (schema: Schema) => Schema;\n roleSchema?: (schema: Schema) => Schema;\n schemaSchema?: (schema: Schema) => Schema;\n submissionSchema?: (schema: Schema | SchemaDefinition) => Schema;\n tokenSchema?: (schema: Schema) => Schema;\n permissionSchema?: (schema: SchemaDefinition) => SchemaDefinition;\n fieldMatchAccessPermissionSchema?: (schemaOptions: SchemaDefinition) => SchemaDefinition;\n\n // query\n actionsQuery?: <DocType = any>(query: FilterQuery<DocType>, req: Request) => FilterQuery<DocType>;\n submissionQuery?: <DocType = any>(query: FilterQuery<DocType>, req: Request) => FilterQuery<DocType>;\n roleQuery?: <DocType = any>(query: FilterQuery<DocType>, req: Request) => FilterQuery<DocType>;\n formQuery?: <DocType = any>(query: FilterQuery<DocType>, req: Request) => FilterQuery<DocType>;\n\n // Data\n actionItem?: (actionItem: FormioActionItem, req: Request) => FormioActionItem;\n actionContext?: (actionContext: any, req: Request) => any;\n actionInfo?: (action: any, req: Request) => any;\n\n // submission\n submission?: (req: Request, res: Response, done: Function) => void;\n submissionRequest?: (submission: FormioSubmission) => FormioSubmission;\n validateSubmissionForm?: (form: FormioForm, submission: FormioSubmission, done: Function) => void;\n postSubmissionUpdate?: (req: Request, res: Response, submissionUpdate: FormioSubmission) => void;\n\n // response\n /**\n * Allow modules to hook into the form loader middleware.\n * @param item\n * @param req\n * @param done\n */\n formResponse?: (item: any, req: Request, done: Function) => void;\n\n // params\n requestParams?: (req: Request & {formId: string; subId: string; roleId: string}, params: Record<string, any>) => void;\n /**\n * Alter submitted params\n * @param params\n */\n submissionParams?: (params: string[]) => string[];\n\n // Routes\n /**\n * Alter actions routes.\n */\n actionRoutes?: (options: ResourceRestOptions) => ResourceRestOptions;\n /**\n * Alter roles routes.\n */\n rolesRoutes?: (options: ResourceRestOptions) => ResourceRestOptions;\n /**\n * Alter forms routes.\n */\n formRoutes?: (options: ResourceRestOptions) => ResourceRestOptions;\n /**\n * Alter submission routes.\n */\n submissionRoutes?: (options: ResourceRestOptions) => ResourceRestOptions;\n\n // Auth\n user?: (user: any, done: (err: any, user: any) => void) => void;\n login?: (user: any, req: Request, done: (err: any) => void) => void;\n token?: (token: FormioDecodedToken, form: FormioForm, req: Request) => FormioDecodedToken;\n tokenDecode?: (token: FormioDecodedToken, req: Request, done: (err: any, decoded: FormioDecodedToken) => void) => void;\n submissionRequestTokenQuery?: (query: {formId: string; submissionId: string}, token: string) => any;\n\n [key: string]: any;\n };\n on?: {\n init?: (type: FormioInitEvent) => boolean;\n [key: string]: any;\n };\n}\n\nexport interface FormioHook {\n /**\n * Run settings function.\n */\n settings(req: Request, cb: Function): void;\n\n /**\n * Emit an event.\n * @param args\n */\n invoke<T = any>(...args: any[]): T | boolean;\n\n /**\n * Alter the given value by calling all listener.\n * @param event\n * @param args\n */\n alter(event: string, ...args: any[]): any;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioJs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioJs.js","sourceRoot":"","sources":["../../../src/domain/FormioJs.ts"],"names":[],"mappings":"","sourcesContent":["export interface FormioJs {\n forms: Record<string, any>;\n cache: Record<string, any>;\n Components: {\n components: {\n component: {\n Validator: {\n db: any | null;\n token: any | null;\n form: any | null;\n submission: any | null;\n };\n };\n };\n };\n\n getToken(): string;\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from "@tsed/formio-types";
2
+ //# sourceMappingURL=FormioModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioModels.js","sourceRoot":"","sources":["../../../src/domain/FormioModels.ts"],"names":[],"mappings":"AAMA,cAAc,oBAAoB,CAAC","sourcesContent":["import {MongooseDocument} from \"@tsed/mongoose\";\nimport {Schema} from \"mongoose\";\nimport {FormioActionModelCtor, FormioActionMongooseSchema} from \"./FormioAction\";\nimport {FormioBaseModel, FormioModel, FormioMongooseSchema} from \"./FormioBaseModel\";\nimport {FormioActionItem, FormioForm, FormioRole, FormioSchema, FormioSubmission, FormioToken} from \"@tsed/formio-types\";\n\nexport * from \"@tsed/formio-types\";\n\nexport type WithID<T> = T & {_id: string};\n\nexport interface FormioSchemas {\n action: FormioActionMongooseSchema;\n actionItem: Schema<MongooseDocument<FormioActionItem>>;\n form: FormioMongooseSchema<FormioForm>;\n role: FormioMongooseSchema<FormioRole>;\n schema: Schema<MongooseDocument<FormioSchema>>;\n submission: Schema<MongooseDocument<FormioSubmission>>;\n token: Schema<MongooseDocument<FormioToken>>;\n\n [key: string]: Schema<MongooseDocument<any>>;\n}\n\nexport type FormioModelsModels = {\n action: FormioActionModelCtor;\n actionItem: FormioBaseModel<FormioActionItem>;\n form: FormioModel<FormioForm>;\n role: FormioModel<FormioRole>;\n schema: FormioBaseModel<FormioSchema>;\n submission: FormioBaseModel<FormioSubmission>;\n token: FormioBaseModel<FormioToken>;\n} & Record<string, FormioBaseModel>;\n\nexport interface FormioModels {\n schemas: FormioSchemas;\n models: FormioModelsModels;\n specs: {\n action: any;\n actionItem: any;\n form: any;\n role: any;\n schema: any;\n submission: any;\n token: any;\n\n [key: string]: any;\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormioRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormioRouter.js","sourceRoot":"","sources":["../../../src/domain/FormioRouter.ts"],"names":[],"mappings":"","sourcesContent":["import {Router} from \"express\";\nimport {Formio, FormioBase} from \"./Formio\";\nimport {FormioHooks} from \"./FormioHooks\";\n\nexport interface FormioRouter extends Router {\n formio: FormioBase;\n\n init(hooks: FormioHooks): Promise<Formio>;\n}\n"]}