@paroicms/server 1.90.0 → 1.91.0

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 (257) hide show
  1. package/dist/admin-backend/account/account.formatters.js.map +1 -0
  2. package/dist/{admin-ui-backend → admin-backend}/account/account.queries.d.ts +1 -13
  3. package/dist/{admin-ui-backend → admin-backend}/account/account.queries.js +93 -54
  4. package/dist/admin-backend/account/account.queries.js.map +1 -0
  5. package/dist/admin-backend/account/account.resolver.js.map +1 -0
  6. package/dist/admin-backend/auth/auth.helper.js.map +1 -0
  7. package/dist/{admin-ui-backend → admin-backend}/auth/auth.service.js +12 -9
  8. package/dist/admin-backend/auth/auth.service.js.map +1 -0
  9. package/dist/admin-backend/auth/auth.types.js.map +1 -0
  10. package/dist/{admin-ui-backend → admin-backend}/backup/backup.controller.js +7 -2
  11. package/dist/admin-backend/backup/backup.controller.js.map +1 -0
  12. package/dist/admin-backend/backup/backup.helper.js.map +1 -0
  13. package/dist/admin-backend/backup/backup.resolver.js.map +1 -0
  14. package/dist/admin-backend/document/document.helper.js.map +1 -0
  15. package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.extend.js +2 -2
  16. package/dist/admin-backend/document/document.resolver.extend.js.map +1 -0
  17. package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.js +7 -8
  18. package/dist/admin-backend/document/document.resolver.js.map +1 -0
  19. package/dist/{admin-ui-backend → admin-backend}/document/load-documents.queries.js +57 -20
  20. package/dist/admin-backend/document/load-documents.queries.js.map +1 -0
  21. package/dist/{admin-ui-backend → admin-backend}/document/save-documents.queries.js +19 -5
  22. package/dist/admin-backend/document/save-documents.queries.js.map +1 -0
  23. package/dist/admin-backend/fields/_fields.helpers.js.map +1 -0
  24. package/dist/admin-backend/fields/fields.resolver.js.map +1 -0
  25. package/dist/{admin-ui-backend → admin-backend}/fields/labeling.queries.js +25 -9
  26. package/dist/admin-backend/fields/labeling.queries.js.map +1 -0
  27. package/dist/{admin-ui-backend → admin-backend}/fields/load-fields-of.queries.js +8 -2
  28. package/dist/admin-backend/fields/load-fields-of.queries.js.map +1 -0
  29. package/dist/{admin-ui-backend → admin-backend}/fields/load-fields.queries.js +25 -9
  30. package/dist/admin-backend/fields/load-fields.queries.js.map +1 -0
  31. package/dist/admin-backend/fields/preprocess-fields.js.map +1 -0
  32. package/dist/{admin-ui-backend → admin-backend}/fields/save-fields.queries.js +19 -12
  33. package/dist/admin-backend/fields/save-fields.queries.js.map +1 -0
  34. package/dist/{admin-ui-backend → admin-backend}/login/login.controller.js +18 -8
  35. package/dist/admin-backend/login/login.controller.js.map +1 -0
  36. package/dist/admin-backend/media/add-media-to-node.js.map +1 -0
  37. package/dist/{admin-ui-backend → admin-backend}/media/media-upload.controller.js +16 -5
  38. package/dist/admin-backend/media/media-upload.controller.js.map +1 -0
  39. package/dist/admin-backend/media/media.resolver.extend.js.map +1 -0
  40. package/dist/admin-backend/media/media.resolver.js.map +1 -0
  41. package/dist/{admin-ui-backend → admin-backend}/node/node.queries.js +65 -14
  42. package/dist/admin-backend/node/node.queries.js.map +1 -0
  43. package/dist/admin-backend/node/node.resolver.extend.js.map +1 -0
  44. package/dist/admin-backend/node/node.resolver.js.map +1 -0
  45. package/dist/{admin-ui-backend → admin-backend}/node/ordered-node.queries.js +10 -5
  46. package/dist/admin-backend/node/ordered-node.queries.js.map +1 -0
  47. package/dist/admin-backend/nodel/nodel-wrap.formatters.js.map +1 -0
  48. package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.resolver.js +9 -5
  49. package/dist/admin-backend/nodel/nodel-wrap.resolver.js.map +1 -0
  50. package/dist/{admin-ui-backend → admin-backend}/nodel/nodel.queries.js +60 -28
  51. package/dist/admin-backend/nodel/nodel.queries.js.map +1 -0
  52. package/dist/{admin-ui-backend → admin-backend}/part/part-node.queries.js +12 -4
  53. package/dist/admin-backend/part/part-node.queries.js.map +1 -0
  54. package/dist/{admin-ui-backend → admin-backend}/part/part.queries.js +106 -43
  55. package/dist/admin-backend/part/part.queries.js.map +1 -0
  56. package/dist/admin-backend/part/part.resolver.extend.js.map +1 -0
  57. package/dist/admin-backend/part/part.resolver.js.map +1 -0
  58. package/dist/admin-backend/site-constants/site-constants.resolver.js.map +1 -0
  59. package/dist/admin-backend/unprotected/unprotected.resolver.js.map +1 -0
  60. package/dist/common/data-format.d.ts +20 -11
  61. package/dist/common/data-format.js +15 -33
  62. package/dist/common/data-format.js.map +1 -1
  63. package/dist/common/text-cache.js +1 -1
  64. package/dist/common/text-cache.js.map +1 -1
  65. package/dist/context.js +2 -2
  66. package/dist/context.js.map +1 -1
  67. package/dist/express/route-handler-wrapper.js +1 -1
  68. package/dist/express/route-handler-wrapper.js.map +1 -1
  69. package/dist/express/serve-file.js +1 -1
  70. package/dist/express/serve-file.js.map +1 -1
  71. package/dist/express/site-middleware.js +3 -3
  72. package/dist/express/site-middleware.js.map +1 -1
  73. package/dist/express/static-files.req-handler.js +1 -1
  74. package/dist/express/static-files.req-handler.js.map +1 -1
  75. package/dist/graphql/apollo-server-init.js +14 -14
  76. package/dist/graphql/apollo-server-init.js.map +1 -1
  77. package/dist/helpers/make-backend-plugin-service.js +2 -3
  78. package/dist/helpers/make-backend-plugin-service.js.map +1 -1
  79. package/dist/helpers/running-instance-connector.js +7 -7
  80. package/dist/helpers/running-instance-connector.js.map +1 -1
  81. package/dist/index.js +1 -1
  82. package/dist/index.js.map +1 -1
  83. package/dist/liquidjs-tools/liquidjs-utils.d.ts +1 -1
  84. package/dist/liquidjs-tools/liquidjs-utils.js +1 -1
  85. package/dist/liquidjs-tools/liquidjs-utils.js.map +1 -1
  86. package/dist/oauth/account-auth.service.d.ts +1 -1
  87. package/dist/oauth/oauth2-client.controller.js +1 -1
  88. package/dist/oauth/oauth2-client.controller.js.map +1 -1
  89. package/dist/protected-site/protected-access-token.js +1 -1
  90. package/dist/protected-site/protected-access-token.js.map +1 -1
  91. package/dist/public-api/password-reset/password-reset.controller.js +22 -31
  92. package/dist/public-api/password-reset/password-reset.controller.js.map +1 -1
  93. package/dist/public-api/password-reset/password-reset.service.js +18 -10
  94. package/dist/public-api/password-reset/password-reset.service.js.map +1 -1
  95. package/dist/public-api/public-api-rendering.js +6 -5
  96. package/dist/public-api/public-api-rendering.js.map +1 -1
  97. package/dist/public-api/search-text/search-text.queries.d.ts +1 -1
  98. package/dist/public-api/search-text/search-text.queries.js +6 -2
  99. package/dist/public-api/search-text/search-text.queries.js.map +1 -1
  100. package/dist/rendered-site/feed/feed-generator.d.ts +0 -12
  101. package/dist/rendered-site/feed/feed-generator.js +27 -20
  102. package/dist/rendered-site/feed/feed-generator.js.map +1 -1
  103. package/dist/rendered-site/liquidjs-filters/format-date.js +2 -3
  104. package/dist/rendered-site/liquidjs-filters/format-date.js.map +1 -1
  105. package/dist/rendered-site/liquidjs-filters/format-number.d.ts +1 -1
  106. package/dist/rendered-site/liquidjs-filters/format-number.js +9 -5
  107. package/dist/rendered-site/liquidjs-filters/format-number.js.map +1 -1
  108. package/dist/rendered-site/liquidjs-filters/head-tags-filter.js +10 -5
  109. package/dist/rendered-site/liquidjs-filters/head-tags-filter.js.map +1 -1
  110. package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js +2 -3
  111. package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js.map +1 -1
  112. package/dist/rendered-site/liquidjs-filters/make-excerpt.js +6 -2
  113. package/dist/rendered-site/liquidjs-filters/make-excerpt.js.map +1 -1
  114. package/dist/rendered-site/liquidjs-filters/obfuscate.js +3 -4
  115. package/dist/rendered-site/liquidjs-filters/obfuscate.js.map +1 -1
  116. package/dist/rendered-site/liquidjs-filters/plugin-asset-url-filter.js +4 -3
  117. package/dist/rendered-site/liquidjs-filters/plugin-asset-url-filter.js.map +1 -1
  118. package/dist/rendered-site/liquidjs-filters/translate-filter.js +3 -2
  119. package/dist/rendered-site/liquidjs-filters/translate-filter.js.map +1 -1
  120. package/dist/rendered-site/liquidjs-tags/get-doc-tag.js +13 -8
  121. package/dist/rendered-site/liquidjs-tags/get-doc-tag.js.map +1 -1
  122. package/dist/rendered-site/liquidjs-tags/get-docs-tag.js +23 -13
  123. package/dist/rendered-site/liquidjs-tags/get-docs-tag.js.map +1 -1
  124. package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js +22 -11
  125. package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js.map +1 -1
  126. package/dist/rendered-site/liquidjs-tags/grouping-media-query.js +1 -1
  127. package/dist/rendered-site/liquidjs-tags/grouping-media-query.js.map +1 -1
  128. package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.d.ts +1 -0
  129. package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js +11 -2
  130. package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js.map +1 -1
  131. package/dist/rendered-site/liquidjs-tags/use-image-tag.js +24 -13
  132. package/dist/rendered-site/liquidjs-tags/use-image-tag.js.map +1 -1
  133. package/dist/rendered-site/page-route/make-url.d.ts +1 -1
  134. package/dist/rendered-site/page-route/make-url.js +12 -7
  135. package/dist/rendered-site/page-route/make-url.js.map +1 -1
  136. package/dist/rendering-payload/breadcrumb.queries.js +1 -1
  137. package/dist/rendering-payload/breadcrumb.queries.js.map +1 -1
  138. package/dist/rendering-payload/create-doc-drop.d.ts +1 -1
  139. package/dist/rendering-payload/create-doc-drop.js +11 -7
  140. package/dist/rendering-payload/create-doc-drop.js.map +1 -1
  141. package/dist/rendering-payload/doc-values.queries.d.ts +2 -3
  142. package/dist/rendering-payload/doc-values.queries.js +41 -15
  143. package/dist/rendering-payload/doc-values.queries.js.map +1 -1
  144. package/dist/rendering-payload/excerpt.queries.js +9 -3
  145. package/dist/rendering-payload/excerpt.queries.js.map +1 -1
  146. package/dist/rendering-payload/field-values.js +3 -3
  147. package/dist/rendering-payload/field-values.js.map +1 -1
  148. package/dist/rendering-payload/get-siblings.queries.js +19 -7
  149. package/dist/rendering-payload/get-siblings.queries.js.map +1 -1
  150. package/dist/rendering-payload/parts.queries.d.ts +1 -1
  151. package/dist/rendering-payload/parts.queries.js +59 -25
  152. package/dist/rendering-payload/parts.queries.js.map +1 -1
  153. package/dist/rendering-payload/translations.queries.js +7 -3
  154. package/dist/rendering-payload/translations.queries.js.map +1 -1
  155. package/dist/site-context/load-site-context.js +1 -1
  156. package/dist/site-context/load-site-context.js.map +1 -1
  157. package/dist/site-context/site-values-for-site-context.js +1 -1
  158. package/dist/site-context/site-values-for-site-context.js.map +1 -1
  159. package/dist/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +13 -13
  161. package/dist/admin-ui-backend/account/account.formatters.js.map +0 -1
  162. package/dist/admin-ui-backend/account/account.queries.js.map +0 -1
  163. package/dist/admin-ui-backend/account/account.resolver.js.map +0 -1
  164. package/dist/admin-ui-backend/auth/auth.helper.js.map +0 -1
  165. package/dist/admin-ui-backend/auth/auth.service.js.map +0 -1
  166. package/dist/admin-ui-backend/auth/auth.types.js.map +0 -1
  167. package/dist/admin-ui-backend/backup/backup.controller.js.map +0 -1
  168. package/dist/admin-ui-backend/backup/backup.helper.js.map +0 -1
  169. package/dist/admin-ui-backend/backup/backup.resolver.js.map +0 -1
  170. package/dist/admin-ui-backend/document/document.helper.js.map +0 -1
  171. package/dist/admin-ui-backend/document/document.resolver.extend.js.map +0 -1
  172. package/dist/admin-ui-backend/document/document.resolver.js.map +0 -1
  173. package/dist/admin-ui-backend/document/load-documents.queries.js.map +0 -1
  174. package/dist/admin-ui-backend/document/save-documents.queries.js.map +0 -1
  175. package/dist/admin-ui-backend/fields/_fields.helpers.js.map +0 -1
  176. package/dist/admin-ui-backend/fields/fields.resolver.js.map +0 -1
  177. package/dist/admin-ui-backend/fields/labeling.queries.js.map +0 -1
  178. package/dist/admin-ui-backend/fields/load-fields-of.queries.js.map +0 -1
  179. package/dist/admin-ui-backend/fields/load-fields.queries.js.map +0 -1
  180. package/dist/admin-ui-backend/fields/preprocess-fields.js.map +0 -1
  181. package/dist/admin-ui-backend/fields/save-fields.queries.js.map +0 -1
  182. package/dist/admin-ui-backend/login/login.controller.js.map +0 -1
  183. package/dist/admin-ui-backend/media/add-media-to-node.js.map +0 -1
  184. package/dist/admin-ui-backend/media/media-upload.controller.js.map +0 -1
  185. package/dist/admin-ui-backend/media/media.resolver.extend.js.map +0 -1
  186. package/dist/admin-ui-backend/media/media.resolver.js.map +0 -1
  187. package/dist/admin-ui-backend/node/node.queries.js.map +0 -1
  188. package/dist/admin-ui-backend/node/node.resolver.extend.js.map +0 -1
  189. package/dist/admin-ui-backend/node/node.resolver.js.map +0 -1
  190. package/dist/admin-ui-backend/node/ordered-node.queries.js.map +0 -1
  191. package/dist/admin-ui-backend/nodel/nodel-wrap.formatters.js.map +0 -1
  192. package/dist/admin-ui-backend/nodel/nodel-wrap.resolver.js.map +0 -1
  193. package/dist/admin-ui-backend/nodel/nodel.queries.js.map +0 -1
  194. package/dist/admin-ui-backend/part/part-node.queries.js.map +0 -1
  195. package/dist/admin-ui-backend/part/part.queries.js.map +0 -1
  196. package/dist/admin-ui-backend/part/part.resolver.extend.js.map +0 -1
  197. package/dist/admin-ui-backend/part/part.resolver.js.map +0 -1
  198. package/dist/admin-ui-backend/site-constants/site-constants.resolver.js.map +0 -1
  199. package/dist/admin-ui-backend/unprotected/unprotected.resolver.js.map +0 -1
  200. /package/dist/{admin-ui-backend → admin-backend}/account/account.formatters.d.ts +0 -0
  201. /package/dist/{admin-ui-backend → admin-backend}/account/account.formatters.js +0 -0
  202. /package/dist/{admin-ui-backend → admin-backend}/account/account.resolver.d.ts +0 -0
  203. /package/dist/{admin-ui-backend → admin-backend}/account/account.resolver.js +0 -0
  204. /package/dist/{admin-ui-backend → admin-backend}/auth/auth.helper.d.ts +0 -0
  205. /package/dist/{admin-ui-backend → admin-backend}/auth/auth.helper.js +0 -0
  206. /package/dist/{admin-ui-backend → admin-backend}/auth/auth.service.d.ts +0 -0
  207. /package/dist/{admin-ui-backend → admin-backend}/auth/auth.types.d.ts +0 -0
  208. /package/dist/{admin-ui-backend → admin-backend}/auth/auth.types.js +0 -0
  209. /package/dist/{admin-ui-backend → admin-backend}/backup/backup.controller.d.ts +0 -0
  210. /package/dist/{admin-ui-backend → admin-backend}/backup/backup.helper.d.ts +0 -0
  211. /package/dist/{admin-ui-backend → admin-backend}/backup/backup.helper.js +0 -0
  212. /package/dist/{admin-ui-backend → admin-backend}/backup/backup.resolver.d.ts +0 -0
  213. /package/dist/{admin-ui-backend → admin-backend}/backup/backup.resolver.js +0 -0
  214. /package/dist/{admin-ui-backend → admin-backend}/document/document.helper.d.ts +0 -0
  215. /package/dist/{admin-ui-backend → admin-backend}/document/document.helper.js +0 -0
  216. /package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.d.ts +0 -0
  217. /package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.extend.d.ts +0 -0
  218. /package/dist/{admin-ui-backend → admin-backend}/document/load-documents.queries.d.ts +0 -0
  219. /package/dist/{admin-ui-backend → admin-backend}/document/save-documents.queries.d.ts +0 -0
  220. /package/dist/{admin-ui-backend → admin-backend}/fields/_fields.helpers.d.ts +0 -0
  221. /package/dist/{admin-ui-backend → admin-backend}/fields/_fields.helpers.js +0 -0
  222. /package/dist/{admin-ui-backend → admin-backend}/fields/fields.resolver.d.ts +0 -0
  223. /package/dist/{admin-ui-backend → admin-backend}/fields/fields.resolver.js +0 -0
  224. /package/dist/{admin-ui-backend → admin-backend}/fields/labeling.queries.d.ts +0 -0
  225. /package/dist/{admin-ui-backend → admin-backend}/fields/load-fields-of.queries.d.ts +0 -0
  226. /package/dist/{admin-ui-backend → admin-backend}/fields/load-fields.queries.d.ts +0 -0
  227. /package/dist/{admin-ui-backend → admin-backend}/fields/preprocess-fields.d.ts +0 -0
  228. /package/dist/{admin-ui-backend → admin-backend}/fields/preprocess-fields.js +0 -0
  229. /package/dist/{admin-ui-backend → admin-backend}/fields/save-fields.queries.d.ts +0 -0
  230. /package/dist/{admin-ui-backend → admin-backend}/login/login.controller.d.ts +0 -0
  231. /package/dist/{admin-ui-backend → admin-backend}/media/add-media-to-node.d.ts +0 -0
  232. /package/dist/{admin-ui-backend → admin-backend}/media/add-media-to-node.js +0 -0
  233. /package/dist/{admin-ui-backend → admin-backend}/media/media-upload.controller.d.ts +0 -0
  234. /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.d.ts +0 -0
  235. /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.extend.d.ts +0 -0
  236. /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.extend.js +0 -0
  237. /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.js +0 -0
  238. /package/dist/{admin-ui-backend → admin-backend}/node/node.queries.d.ts +0 -0
  239. /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.d.ts +0 -0
  240. /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.extend.d.ts +0 -0
  241. /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.extend.js +0 -0
  242. /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.js +0 -0
  243. /package/dist/{admin-ui-backend → admin-backend}/node/ordered-node.queries.d.ts +0 -0
  244. /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.formatters.d.ts +0 -0
  245. /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.formatters.js +0 -0
  246. /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.resolver.d.ts +0 -0
  247. /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel.queries.d.ts +0 -0
  248. /package/dist/{admin-ui-backend → admin-backend}/part/part-node.queries.d.ts +0 -0
  249. /package/dist/{admin-ui-backend → admin-backend}/part/part.queries.d.ts +0 -0
  250. /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.d.ts +0 -0
  251. /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.extend.d.ts +0 -0
  252. /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.extend.js +0 -0
  253. /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.js +0 -0
  254. /package/dist/{admin-ui-backend → admin-backend}/site-constants/site-constants.resolver.d.ts +0 -0
  255. /package/dist/{admin-ui-backend → admin-backend}/site-constants/site-constants.resolver.js +0 -0
  256. /package/dist/{admin-ui-backend → admin-backend}/unprotected/unprotected.resolver.d.ts +0 -0
  257. /package/dist/{admin-ui-backend → admin-backend}/unprotected/unprotected.resolver.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.formatters.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account.formatters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAIvD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAkB,CAAC;IACjE,MAAM,IAAI,QAAQ,CAAC,yBAAyB,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,18 +1,6 @@
1
1
  import type { AccountRow } from "@paroicms/connector";
2
+ import { type Account, type AuthenticatedAccount } from "../../common/data-format.js";
2
3
  import type { SiteContext } from "../../site-context/site-context.types.js";
3
- export interface Account {
4
- id: string;
5
- name?: string;
6
- email: string;
7
- hasPasswordResetToken?: boolean;
8
- special?: "dev" | "platformAdmin";
9
- }
10
- export interface AccountPreferences {
11
- language?: string;
12
- }
13
- export interface AuthenticatedAccount extends Account {
14
- preferences?: AccountPreferences;
15
- }
16
4
  export declare function findAccountByIdAndEmail(siteContext: SiteContext, payload: {
17
5
  id: string;
18
6
  email: string;
@@ -1,10 +1,36 @@
1
- import { strVal, strValOrUndef } from "@paroi/data-formatters-lib";
2
1
  import { makeSecret } from "@paroicms/internal-server-lib";
3
2
  import { ApiError } from "@paroicms/public-server-lib";
4
- import { formatToAccountObjectType, formatToAuthenticatedAccountObjectType, } from "../../common/data-format.js";
3
+ import { type } from "arktype";
4
+ import { formatAccount, formatAuthenticatedAccount, } from "../../common/data-format.js";
5
5
  import { sendMail } from "../../common/mail/sendMail.helpers.js";
6
6
  import { simpleI18n } from "../../context.js";
7
7
  import { getDevAccount, getPlatformAdminAccount, isDevAccountId, parsePlatformAdminAccountId, } from "../../helpers/special-account.helpers.js";
8
+ const AccountRowAT = type({
9
+ id: "number",
10
+ email: "string",
11
+ name: "string|null",
12
+ preferences: "string|null",
13
+ passwordResetToken: "string|null",
14
+ "+": "reject",
15
+ }).pipe((r) => ({
16
+ id: String(r.id),
17
+ email: r.email,
18
+ name: r.name ?? undefined,
19
+ preferences: r.preferences ?? undefined,
20
+ passwordResetToken: r.passwordResetToken ?? undefined,
21
+ }));
22
+ const FindAccountByIdAndEmailRowAT = type({
23
+ id: "number",
24
+ email: "string",
25
+ name: "string|null",
26
+ preferences: "string|null",
27
+ "+": "reject",
28
+ }).pipe((r) => ({
29
+ id: String(r.id),
30
+ email: r.email,
31
+ name: r.name ?? undefined,
32
+ preferences: r.preferences ?? undefined,
33
+ }));
8
34
  export async function findAccountByIdAndEmail(siteContext, payload) {
9
35
  const account = await siteContext
10
36
  .cn("PaAccount as a")
@@ -16,13 +42,22 @@ export async function findAccountByIdAndEmail(siteContext, payload) {
16
42
  .first();
17
43
  if (!account)
18
44
  throw new ApiError("Account not found", 404);
19
- return {
20
- id: strVal(account.id),
21
- email: strVal(account.email),
22
- name: strValOrUndef(account.name),
23
- preferences: strValOrUndef(account.preferences),
24
- };
45
+ return FindAccountByIdAndEmailRowAT.assert(account);
25
46
  }
47
+ const FindAccountByEmailRowAT = type({
48
+ id: "number",
49
+ email: "string",
50
+ name: "string|null",
51
+ preferences: "string|null",
52
+ passwordHash: "string|null",
53
+ "+": "reject",
54
+ }).pipe((r) => ({
55
+ id: String(r.id),
56
+ email: r.email,
57
+ name: r.name ?? undefined,
58
+ preferences: r.preferences ?? undefined,
59
+ passwordHash: r.passwordHash ?? undefined,
60
+ }));
26
61
  export async function findAccountByEmail(siteContext, email) {
27
62
  const account = await siteContext
28
63
  .cn("PaAccount as a")
@@ -31,20 +66,26 @@ export async function findAccountByEmail(siteContext, email) {
31
66
  .first();
32
67
  if (!account)
33
68
  return;
34
- return {
35
- id: strVal(account.id),
36
- email: strVal(account.email),
37
- name: strValOrUndef(account.name),
38
- preferences: strValOrUndef(account.preferences),
39
- passwordHash: strValOrUndef(account.passwordHash),
40
- };
69
+ return FindAccountByEmailRowAT.assert(account);
41
70
  }
71
+ const GetAccountRowAT = type({
72
+ id: "number",
73
+ email: "string",
74
+ name: "string|null",
75
+ passwordResetToken: "string|null",
76
+ "+": "reject",
77
+ }).pipe((r) => ({
78
+ id: String(r.id),
79
+ email: r.email,
80
+ name: r.name ?? undefined,
81
+ passwordResetToken: r.passwordResetToken ?? undefined,
82
+ }));
42
83
  export async function getAccount(siteContext, id) {
43
84
  if (isDevAccountId(id))
44
- return formatToAccountObjectType(getDevAccount(id));
85
+ return formatAccount(getDevAccount(id));
45
86
  const parsedPlatformAccountId = parsePlatformAdminAccountId(id);
46
87
  if (parsedPlatformAccountId) {
47
- return formatToAccountObjectType(getPlatformAdminAccount(parsedPlatformAccountId));
88
+ return formatAccount(getPlatformAdminAccount(parsedPlatformAccountId));
48
89
  }
49
90
  const found = await siteContext
50
91
  .cn("PaAccount as a")
@@ -53,20 +94,15 @@ export async function getAccount(siteContext, id) {
53
94
  .first();
54
95
  if (!found)
55
96
  throw new ApiError("Account not found", 404);
56
- const account = {
57
- id: strVal(found.id),
58
- email: strVal(found.email),
59
- name: strValOrUndef(found.name),
60
- passwordResetToken: strValOrUndef(found.passwordResetToken),
61
- };
62
- return formatToAccountObjectType(account);
97
+ const account = GetAccountRowAT.assert(found);
98
+ return formatAccount(account);
63
99
  }
64
100
  export async function getAuthenticatedAccount(siteContext, id) {
65
101
  if (isDevAccountId(id))
66
- return formatToAuthenticatedAccountObjectType(getDevAccount(id));
102
+ return formatAuthenticatedAccount(getDevAccount(id));
67
103
  const parsedPlatformAccountId = parsePlatformAdminAccountId(id);
68
104
  if (parsedPlatformAccountId) {
69
- return formatToAuthenticatedAccountObjectType(getPlatformAdminAccount(parsedPlatformAccountId));
105
+ return formatAuthenticatedAccount(getPlatformAdminAccount(parsedPlatformAccountId));
70
106
  }
71
107
  const found = await siteContext
72
108
  .cn("PaAccount as a")
@@ -75,14 +111,8 @@ export async function getAuthenticatedAccount(siteContext, id) {
75
111
  .first();
76
112
  if (!found)
77
113
  throw new ApiError("Account not found", 404);
78
- const account = {
79
- id: strVal(found.id),
80
- email: strVal(found.email),
81
- name: strValOrUndef(found.name),
82
- preferences: strValOrUndef(found.preferences),
83
- passwordResetToken: strValOrUndef(found.passwordResetToken),
84
- };
85
- return formatToAuthenticatedAccountObjectType(account);
114
+ const account = AccountRowAT.assert(found);
115
+ return formatAuthenticatedAccount(account);
86
116
  }
87
117
  export async function getAllAccounts(siteContext) {
88
118
  const accounts = await siteContext
@@ -90,15 +120,9 @@ export async function getAllAccounts(siteContext) {
90
120
  .select(["a.id", "a.email", "a.name", "a.preferences", "a.passwordResetToken"]);
91
121
  const parsedAccounts = accounts
92
122
  .map((account) => {
93
- return {
94
- id: strVal(account.id),
95
- email: strVal(account.email),
96
- name: strValOrUndef(account.name),
97
- preferences: strValOrUndef(account.preferences),
98
- passwordResetToken: strValOrUndef(account.passwordResetToken),
99
- };
123
+ return AccountRowAT.assert(account);
100
124
  })
101
- .map((user) => formatToAccountObjectType(user));
125
+ .map((user) => formatAccount(user));
102
126
  return parsedAccounts;
103
127
  }
104
128
  export async function setAccountPreferences(siteContext, accountId, values) {
@@ -107,6 +131,12 @@ export async function setAccountPreferences(siteContext, accountId, values) {
107
131
  .where({ id: accountId })
108
132
  .update({ preferences: JSON.stringify(values) });
109
133
  }
134
+ const CreateAccountInsertedAT = type({
135
+ id: "number",
136
+ "+": "reject",
137
+ }).pipe((r) => ({
138
+ id: String(r.id),
139
+ }));
110
140
  export async function createAccount(siteContext, payload) {
111
141
  const account = await findAccountByEmail(siteContext, payload.email);
112
142
  if (account)
@@ -119,7 +149,7 @@ export async function createAccount(siteContext, payload) {
119
149
  preferences: JSON.stringify({ language: payload.language }),
120
150
  })
121
151
  .returning("id");
122
- const id = strVal(inserted.id);
152
+ const id = CreateAccountInsertedAT.assert(inserted).id;
123
153
  const newAccount = await findAccountById(siteContext, id);
124
154
  if (!newAccount) {
125
155
  throw new ApiError("Failed to get last insert account", 500);
@@ -135,7 +165,7 @@ export async function createAccount(siteContext, payload) {
135
165
  email: newAccount.email,
136
166
  language: payload.language,
137
167
  });
138
- return formatToAccountObjectType(newAccount);
168
+ return formatAccount(newAccount);
139
169
  }
140
170
  async function createGoogleAccount(siteContext, { payload, newAccount, }) {
141
171
  const subject = simpleI18n.translate({
@@ -152,14 +182,14 @@ async function createGoogleAccount(siteContext, { payload, newAccount, }) {
152
182
  html: message,
153
183
  to: newAccount.email,
154
184
  }, { logger: siteContext.logger });
155
- return formatToAccountObjectType(newAccount);
185
+ return formatAccount(newAccount);
156
186
  }
157
187
  export async function updateAccount(siteContext, accountId, payload) {
158
188
  const account = await findAccountById(siteContext, accountId);
159
189
  if (!account)
160
190
  throw new ApiError("Account not found", 404);
161
191
  await siteContext.cn("PaAccount").where({ id: account.id }).update(payload);
162
- return formatToAccountObjectType({
192
+ return formatAccount({
163
193
  ...account,
164
194
  email: payload.email ?? account.email,
165
195
  name: payload.name ?? account.name,
@@ -178,6 +208,22 @@ export async function resetAccountPassword(siteContext, accountId) {
178
208
  const language = getAccountLanguage(siteContext, account);
179
209
  await resetAccountToken(siteContext, { id: account.id, email: account.email, language });
180
210
  }
211
+ const FindAccountByIdRowAT = type({
212
+ id: "number",
213
+ email: "string",
214
+ name: "string|null",
215
+ preferences: "string|null",
216
+ passwordHash: "string|null",
217
+ passwordResetToken: "string|null",
218
+ "+": "reject",
219
+ }).pipe((data) => ({
220
+ id: String(data.id),
221
+ email: data.email,
222
+ name: data.name ?? undefined,
223
+ preferences: data.preferences ?? undefined,
224
+ passwordHash: data.passwordHash ?? undefined,
225
+ passwordResetToken: data.passwordResetToken ?? undefined,
226
+ }));
181
227
  async function findAccountById(siteContext, id) {
182
228
  const found = await siteContext
183
229
  .cn("PaAccount as a")
@@ -193,14 +239,7 @@ async function findAccountById(siteContext, id) {
193
239
  .first();
194
240
  if (!found)
195
241
  return;
196
- return {
197
- id: strVal(found.id),
198
- email: strVal(found.email),
199
- name: strValOrUndef(found.name),
200
- preferences: strValOrUndef(found.preferences),
201
- passwordHash: strValOrUndef(found.passwordHash),
202
- passwordResetToken: strValOrUndef(found.passwordResetToken),
203
- };
242
+ return FindAccountByIdRowAT.assert(found);
204
243
  }
205
244
  async function resetAccountToken(siteContext, account) {
206
245
  const passwordResetToken = makeSecret(60);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account.queries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAGL,aAAa,EACb,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,2BAA2B,GAC5B,MAAM,0CAA0C,CAAC;AAGlD,MAAM,YAAY,GAAG,IAAI,CAAC;IACxB,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,kBAAkB,EAAE,aAAa;IACjC,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;IACvC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,IAAI,SAAS;CACtD,CAAC,CAAC,CAAC;AAEJ,MAAM,4BAA4B,GAAG,IAAI,CAAC;IACxC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;CACxC,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAwB,EACxB,OAAsC;IAEtC,MAAM,OAAO,GAAG,MAAM,WAAW;SAC9B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC;SACpD,KAAK,CAAC;QACL,MAAM,EAAE,OAAO,CAAC,EAAE;QAClB,SAAS,EAAE,OAAO,CAAC,KAAK;KACzB,CAAC;SACD,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAE3D,OAAO,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACnC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS;IACvC,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,SAAS;CAC1C,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,WAAwB,EACxB,KAAa;IAEb,MAAM,OAAO,GAAG,MAAM,WAAW;SAC9B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;SACxE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC;SACvB,KAAK,EAAE,CAAC;IACX,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,OAAO,uBAAuB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,CAAC;IAC3B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,kBAAkB,EAAE,aAAa;IACjC,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;IACzB,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,IAAI,SAAS;CACtD,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAwB,EAAE,EAAU;IACnE,IAAI,cAAc,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhE,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,WAAW;SAC5B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CAAC;SAC7D,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;SACjB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE9C,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAwB,EACxB,EAAU;IAEV,IAAI,cAAc,CAAC,EAAE,CAAC;QAAE,OAAO,0BAA0B,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7E,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,0BAA0B,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,WAAW;SAC5B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC;SAC9E,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;SACjB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,WAAwB;IAC3D,MAAM,QAAQ,GAAG,MAAM,WAAW;SAC/B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAElF,MAAM,cAAc,GAAc,QAAQ;SACvC,GAAG,CAAa,CAAC,OAAO,EAAE,EAAE;QAC3B,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtC,OAAO,cAAc,CAAC;AACxB,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAwB,EACxB,SAAiB,EACjB,MAA+B;IAE/B,MAAM,WAAW;SACd,EAAE,CAAC,WAAW,CAAC;SACf,KAAK,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;SACxB,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC;AASD,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACnC,EAAE,EAAE,QAAQ;IACZ,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACjB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAwB,EACxB,OAA2B;IAE3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrE,IAAI,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;IAE7D,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,WAAW;SACjC,EAAE,CAAC,WAAW,CAAC;SACf,MAAM,CAAC;QACN,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;KAC5D,CAAC;SACD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEnB,MAAM,EAAE,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;IAEvD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,QAAQ,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,MAAM,mBAAmB,CAAC,WAAW,EAAE;YAC5C,OAAO;YACP,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,CAAC,WAAW,EAAE;QACnC,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,WAAwB,EACxB,EACE,OAAO,EACP,UAAU,GAIX;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,yBAAyB;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,yBAAyB;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,MAAM,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,QAAQ,CACZ;QACE,OAAO,EAAE,GAAG,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE;QAC3C,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,UAAU,CAAC,KAAK;KACrB,EACD,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAC/B,CAAC;IAEF,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAwB,EACxB,SAAiB,EACjB,OAA2B;IAE3B,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAE3D,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE5E,OAAO,aAAa,CAAC;QACnB,GAAG,OAAO;QACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;QACrC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;KACnC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAwB,EAAE,SAAiB;IAC7E,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAwB,EACxB,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,iBAAiB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC;IAChC,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,aAAa;IAC3B,kBAAkB,EAAE,aAAa;IACjC,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;IAC5B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;IAC1C,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,SAAS;IAC5C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,SAAS;CACzD,CAAC,CAAC,CAAC;AAEJ,KAAK,UAAU,eAAe,CAC5B,WAAwB,EACxB,EAAU;IAEV,MAAM,KAAK,GAAG,MAAM,WAAW;SAC5B,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC;QACN,MAAM;QACN,SAAS;QACT,QAAQ;QACR,eAAe;QACf,gBAAgB;QAChB,sBAAsB;KACvB,CAAC;SACD,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;SACjB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,WAAwB,EACxB,OAAwD;IAExD,MAAM,kBAAkB,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAE1C,MAAM,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;QACjE,kBAAkB;QAClB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,8BAA8B;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,OAAO,iBACrC,OAAO,CAAC,EACV,mBAAmB,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAE5D,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QACnC,GAAG,EAAE,8BAA8B;QACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC;KACjB,CAAC,CAAC;IAEH,MAAM,QAAQ,CACZ;QACE,OAAO,EAAE,GAAG,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE;QAC3C,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,OAAO,CAAC,KAAK;KAClB,EACD,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAC/B,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAwB,EAAE,OAAmB;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,OAAO,WAAW,EAAE,QAAQ,IAAI,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC;AACzE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/account/account.resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.helper.js","sourceRoot":"","sources":["../../../src/admin-backend/auth/auth.helper.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,16 @@
1
- import { strVal } from "@paroi/data-formatters-lib";
2
1
  import { ApiError } from "@paroicms/public-server-lib";
3
- import { formatAccountPreferences } from "../../common/data-format.js";
2
+ import { type } from "arktype";
3
+ import { AccountPreferencesAT } from "../../common/data-format.js";
4
4
  import { appConf } from "../../context.js";
5
5
  import { comparePassword } from "../../helpers/passwordEncrypt-helper.js";
6
6
  import { devAccountId, getDevAccount, getPlatformAdminAccount, isDevAccountId, parsePlatformAdminAccountId, } from "../../helpers/special-account.helpers.js";
7
7
  import { findAccountByEmail, findAccountByIdAndEmail } from "../account/account.queries.js";
8
8
  import { generateAccessToken, verifyAccessToken, verifyPlatformToken, } from "./auth.helper.js";
9
+ const JwtPayloadAT = type({
10
+ id: "string",
11
+ email: "string",
12
+ "+": "reject",
13
+ });
9
14
  export async function loginUser(siteContext, user) {
10
15
  const defaultLanguage = siteContext.siteSchema.defaultLanguage;
11
16
  let account;
@@ -25,7 +30,7 @@ export async function loginUser(siteContext, user) {
25
30
  };
26
31
  }
27
32
  const parsedPreferences = account.preferences
28
- ? formatAccountPreferences(account.preferences)
33
+ ? AccountPreferencesAT.assert(account.preferences)
29
34
  : undefined;
30
35
  return {
31
36
  id: account.id,
@@ -56,13 +61,11 @@ export async function getVerifiedAccountFromToken(siteContext, token) {
56
61
  account = getPlatformAdminAccount(parsedPlatformAccountId);
57
62
  }
58
63
  else {
59
- account = await findAccountByIdAndEmail(siteContext, {
60
- id: strVal(payload.id),
61
- email: strVal(payload.email),
62
- });
64
+ const validated = JwtPayloadAT.assert(payload);
65
+ account = await findAccountByIdAndEmail(siteContext, validated);
63
66
  }
64
67
  const parsedPreferences = account.preferences
65
- ? formatAccountPreferences(account.preferences)
68
+ ? AccountPreferencesAT.assert(account.preferences)
66
69
  : undefined;
67
70
  return {
68
71
  email: account.email,
@@ -99,7 +102,7 @@ export async function loginByPlatformToken(siteContext, token) {
99
102
  account = foundAccount;
100
103
  }
101
104
  const parsedPreferences = account.preferences
102
- ? formatAccountPreferences(account.preferences)
105
+ ? AccountPreferencesAT.assert(JSON.parse(account.preferences))
103
106
  : undefined;
104
107
  return {
105
108
  id: account.id,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../../src/admin-backend/auth/auth.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.types.js","sourceRoot":"","sources":["../../../src/admin-backend/auth/auth.types.ts"],"names":[],"mappings":""}
@@ -1,12 +1,17 @@
1
- import { strValOrUndef } from "@paroi/data-formatters-lib";
2
1
  import { checkBackupFileName, getBackup } from "@paroicms/connector";
3
2
  import { ApiError } from "@paroicms/public-server-lib";
3
+ import { type } from "arktype";
4
4
  import { getRouteParameter } from "../../express/http-helpers.js";
5
5
  import { verifyDownloadToken } from "./backup.helper.js";
6
+ const BackupUrlQuery = type({
7
+ "t?": "string|undefined",
8
+ "+": "reject",
9
+ });
6
10
  export async function downloadBackupController(siteContext, httpContext, routeParams) {
7
11
  const { req, res } = httpContext;
8
12
  const backupName = getRouteParameter(routeParams, "backupName");
9
- const token = strValOrUndef(req.query.t);
13
+ const validated = BackupUrlQuery.assert(req.query);
14
+ const token = validated.t;
10
15
  if (!token)
11
16
  throw new Error("missing user token");
12
17
  const { backupFile, contentType } = verifyDownloadToken(token);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.controller.js","sourceRoot":"","sources":["../../../src/admin-backend/backup/backup.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,kBAAkB;IACxB,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAwB,EACxB,WAA0B,EAC1B,WAA+C;IAE/C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IACjC,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAElD,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAE/D,IAAI,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,QAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAE5E,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACxC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpD,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACxE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.helper.js","sourceRoot":"","sources":["../../../src/admin-backend/backup/backup.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;AAOhE,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAyB,CAAC;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backup.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/backup/backup.resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAOzD,MAAM,CAAC,MAAM,eAAe,GAAiC;IAC3D,QAAQ,EAAE;QACR,gBAAgB,EAAE,KAAK,EACrB,OAAO,EACP,OAAO,EACP,EAAE,WAAW,EAAE,WAAW,EAAE,EACP,EAAE;YACvB,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE;gBACtE,aAAa,EAAE,UAAU;aAC1B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,mBAAmB,CAAC;gBACtC,UAAU,EAAE,WAAW;gBACvB,WAAW,EAAE,iBAAiB;aAC/B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,uBAAuB,WAAW,OAAO,WAAW,EAAE,CAAC;YAE3E,OAAO;gBACL,WAAW;gBACX,UAAU,EAAE,aAAa;aAC1B,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.helper.js","sourceRoot":"","sources":["../../../src/admin-backend/document/document.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,MAAM,UAAU,qBAAqB,CAAC,UAAwB,EAAE,QAAgB;IAC9E,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC,YAAY,KAAK,SAAS,IAAI,YAAY,CAAC,WAAW,CAAC;AAC7E,CAAC"}
@@ -1,4 +1,4 @@
1
- import { documentToObjectType } from "../../common/data-format.js";
1
+ import { toDocumentSeed } from "../../common/data-format.js";
2
2
  import { authGuard } from "../auth/auth.helper.js";
3
3
  import { findOneDocument } from "./load-documents.queries.js";
4
4
  export const extendWithDocumentResolver = {
@@ -9,7 +9,7 @@ export const extendWithDocumentResolver = {
9
9
  nodeId: parent.nodeId,
10
10
  language: parent.language,
11
11
  });
12
- return document ? documentToObjectType(document) : null;
12
+ return document ? toDocumentSeed(document) : null;
13
13
  },
14
14
  },
15
15
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.resolver.extend.js","sourceRoot":"","sources":["../../../src/admin-backend/document/document.resolver.extend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,CAAC,MAAM,0BAA0B,GAAiC;IACtE,SAAS,EAAE;QACT,QAAQ,EAAE,KAAK,EAAE,MAAqB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7E,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE;gBAClD,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpD,CAAC;KACF;CACF,CAAC"}
@@ -1,7 +1,6 @@
1
- import { isDef } from "@paroi/data-formatters-lib";
2
1
  import { createNoTracker, toAbsoluteUrl } from "@paroicms/internal-server-lib";
3
- import { parseNodelId } from "@paroicms/public-anywhere-lib";
4
- import { documentToObjectType } from "../../common/data-format.js";
2
+ import { isDef, parseNodelId } from "@paroicms/public-anywhere-lib";
3
+ import { toDocumentSeed } from "../../common/data-format.js";
5
4
  import { getUrlOfDocument } from "../../rendered-site/page-route/make-url.js";
6
5
  import { authGuard } from "../auth/auth.helper.js";
7
6
  import { getOneDocument } from "./load-documents.queries.js";
@@ -10,7 +9,7 @@ export const documentResolvers = {
10
9
  Query: {
11
10
  document: async (_parent, { id }, { siteContext, httpContext }) => {
12
11
  authGuard(httpContext);
13
- return documentToObjectType(await getOneDocument(siteContext, parseNodelId(id)));
12
+ return toDocumentSeed(await getOneDocument(siteContext, parseNodelId(id)));
14
13
  },
15
14
  },
16
15
  Mutation: {
@@ -24,7 +23,7 @@ export const documentResolvers = {
24
23
  slug: values.slug ?? undefined,
25
24
  });
26
25
  }
27
- return documentToObjectType(await getOneDocument(siteContext, nodelId));
26
+ return toDocumentSeed(await getOneDocument(siteContext, nodelId));
28
27
  },
29
28
  updateDocumentMeta: async (_parent, { values, id }, { siteContext, httpContext }) => {
30
29
  authGuard(httpContext);
@@ -33,7 +32,7 @@ export const documentResolvers = {
33
32
  if (!empty) {
34
33
  await updateDocument(siteContext, nodelId, values);
35
34
  }
36
- return documentToObjectType(await getOneDocument(siteContext, nodelId));
35
+ return toDocumentSeed(await getOneDocument(siteContext, nodelId));
37
36
  },
38
37
  deleteDocument: async (_parent, { nodelId }, { siteContext, httpContext }) => {
39
38
  authGuard(httpContext);
@@ -56,7 +55,7 @@ export const documentResolvers = {
56
55
  typeName: values.typeName,
57
56
  },
58
57
  });
59
- return documentToObjectType(await getOneDocument(siteContext, documentId));
58
+ return toDocumentSeed(await getOneDocument(siteContext, documentId));
60
59
  },
61
60
  createDocumentOnNode: async (_parent, { values, language, nodeId }, { siteContext, httpContext }) => {
62
61
  authGuard(httpContext);
@@ -67,7 +66,7 @@ export const documentResolvers = {
67
66
  ? { title: values.title ?? undefined, slug: values.slug ?? undefined }
68
67
  : undefined,
69
68
  });
70
- return documentToObjectType(await getOneDocument(siteContext, documentId));
69
+ return toDocumentSeed(await getOneDocument(siteContext, documentId));
71
70
  },
72
71
  },
73
72
  Document: {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/document/document.resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,cAAc,GACf,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,iBAAiB,GAAiC;IAC7D,KAAK,EAAE;QACL,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAChE,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO,cAAc,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;KACF;IAED,QAAQ,EAAE;QACR,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YACnF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE;oBACzC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;oBAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;iBAC/B,CAAC,CAAC;YACL,CAAC;YAED,OAAO,cAAc,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAClF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YACrD,CAAC;YAED,OAAO,cAAc,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3E,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YACnF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,sBAAsB,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sBAAsB,EAAE,KAAK,EAC3B,OAAO,EACP,EAAE,MAAM,EAAE,aAAa,EAAE,EACzB,EAAE,WAAW,EAAE,WAAW,EAAE,EAC5B,EAAE;YACF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE;gBAC3D,QAAQ,EAAE,YAAY,CAAC,aAAa,CAAC;gBACrC,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;oBAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;oBAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B;aACF,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QACvE,CAAC;QAED,oBAAoB,EAAE,KAAK,EACzB,OAAO,EACP,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAC5B,EAAE,WAAW,EAAE,WAAW,EAAE,EAC5B,EAAE;YACF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE;gBACzD,QAAQ;gBACR,MAAM;gBACN,MAAM,EAAE,MAAM;oBACZ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS,EAAE;oBACtE,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QACvE,CAAC;KACF;IAED,QAAQ,EAAE;QACR,KAAK,CAAC,GAAG,CAAC,MAA4C,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE;YAC9E,OAAO,aAAa,CAClB,WAAW,EACX,MAAM,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE;gBACrD,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CACH,CAAC;QACJ,CAAC;KACF;CACF,CAAC"}
@@ -1,5 +1,21 @@
1
- import { strVal, strValOrUndef } from "@paroi/data-formatters-lib";
2
1
  import { ApiError } from "@paroicms/public-server-lib";
2
+ import { type } from "arktype";
3
+ const DocumentRowAT = type({
4
+ nodeId: "number",
5
+ language: "string",
6
+ title: "string|null",
7
+ slug: "string|null",
8
+ metaDescription: "string|null",
9
+ metaKeywords: "string|null",
10
+ "+": "reject",
11
+ }).pipe((data) => ({
12
+ nodeId: String(data.nodeId),
13
+ language: data.language,
14
+ title: data.title ?? undefined,
15
+ slug: data.slug ?? undefined,
16
+ metaDescription: data.metaDescription ?? undefined,
17
+ metaKeywords: data.metaKeywords ?? undefined,
18
+ }));
3
19
  export async function document({ cn }, documentId) {
4
20
  const document = await cn("PaDocument as d")
5
21
  .select("d.nodeId", "d.language", "d.title", "d.slug", "d.metaDescription", "d.metaKeywords")
@@ -10,14 +26,7 @@ export async function document({ cn }, documentId) {
10
26
  .first();
11
27
  if (!document)
12
28
  return;
13
- return {
14
- nodeId: strVal(document.nodeId),
15
- language: strVal(document.language),
16
- title: strValOrUndef(document.title),
17
- slug: strValOrUndef(document.slug),
18
- metaDescription: strValOrUndef(document.metaDescription),
19
- metaKeywords: strValOrUndef(document.metaKeywords),
20
- };
29
+ return DocumentRowAT.assert(document);
21
30
  }
22
31
  export async function getOneDocument(siteContext, id) {
23
32
  const doc = await document(siteContext, id);
@@ -30,21 +39,32 @@ export async function findOneDocument(siteContext, id) {
30
39
  const doc = await document(siteContext, id);
31
40
  return doc ? doc : undefined;
32
41
  }
42
+ const TermDocumentRowAT = type({
43
+ language: "string",
44
+ title: "string|null",
45
+ "+": "reject",
46
+ }).pipe((data) => ({
47
+ language: data.language,
48
+ title: data.title ?? undefined,
49
+ }));
33
50
  export async function findOneTermDocument({ cn }, { language, nodeId }) {
34
51
  const rows = await cn("PaNode as l")
35
52
  .select("d.title", "d.language")
36
53
  .leftJoin("PaDocument as d", "d.nodeId", "l.id")
37
54
  .where("l.id", nodeId);
38
- const candidates = rows.map((row) => ({
39
- language: strVal(row.language),
40
- title: strValOrUndef(row.title),
41
- }));
42
- let found = candidates.find((row) => strVal(row.language) === language);
55
+ const candidates = rows.map((row) => TermDocumentRowAT.assert(row));
56
+ let found = candidates.find((row) => row.language === language);
43
57
  if (!found) {
44
58
  found = candidates[0];
45
59
  }
46
60
  return found;
47
61
  }
62
+ const ParentNodelRowAT = type({
63
+ parentId: "number",
64
+ "+": "reject",
65
+ }).pipe((r) => ({
66
+ parentId: String(r.parentId),
67
+ }));
48
68
  export async function getParentNodelIdOf(siteContext, { language, nodeId }) {
49
69
  const row = await siteContext
50
70
  .cn("PaNode as l")
@@ -60,9 +80,15 @@ export async function getParentNodelIdOf(siteContext, { language, nodeId }) {
60
80
  return undefined;
61
81
  return {
62
82
  language,
63
- nodeId: strVal(row.parentId),
83
+ nodeId: ParentNodelRowAT.assert(row).parentId,
64
84
  };
65
85
  }
86
+ const ParentNodeRowAT = type({
87
+ id: "number|null",
88
+ "+": "reject",
89
+ }).pipe((r) => ({
90
+ id: r.id === null ? undefined : String(r.id),
91
+ }));
66
92
  export async function getParentNodeIdOf(siteContext, nodeId) {
67
93
  const row = await siteContext
68
94
  .cn("PaNode as l")
@@ -71,8 +97,16 @@ export async function getParentNodeIdOf(siteContext, nodeId) {
71
97
  .first();
72
98
  if (!row)
73
99
  throw new Error(`cannot find parent node of '${nodeId}'`);
74
- return strValOrUndef(row.id);
100
+ return ParentNodeRowAT.assert(row).id ?? undefined;
75
101
  }
102
+ const ParentDocumentRowAT = type({
103
+ language: "string",
104
+ parentId: "number",
105
+ "+": "reject",
106
+ }).pipe((r) => ({
107
+ language: r.language,
108
+ parentId: String(r.parentId),
109
+ }));
76
110
  export async function getParentDocumentIdsOf(siteContext, options) {
77
111
  const languages = options.languages ?? siteContext.siteSchema.languages;
78
112
  const rows = await siteContext
@@ -82,9 +116,12 @@ export async function getParentDocumentIdsOf(siteContext, options) {
82
116
  .where("l.id", options.nodeId)
83
117
  .whereIn("d.language", languages)
84
118
  .whereNotNull("l.parentId");
85
- return rows.map((row) => ({
86
- language: strVal(row.language),
87
- nodeId: strVal(row.parentId),
88
- }));
119
+ return rows.map((row) => {
120
+ const validated = ParentDocumentRowAT.assert(row);
121
+ return {
122
+ language: validated.language,
123
+ nodeId: validated.parentId,
124
+ };
125
+ });
89
126
  }
90
127
  //# sourceMappingURL=load-documents.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-documents.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/document/load-documents.queries.ts"],"names":[],"mappings":"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"}