@paroicms/server 1.102.3 → 1.104.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 (355) hide show
  1. package/README.md +1 -16
  2. package/ddl/main.ddl.sql +91 -0
  3. package/dist/admin-backend/account/account.queries.d.ts +3 -3
  4. package/dist/admin-backend/account/account.queries.js.map +1 -1
  5. package/dist/admin-backend/account/account.resolver.d.ts +1 -1
  6. package/dist/admin-backend/account/account.resolver.js +9 -0
  7. package/dist/admin-backend/account/account.resolver.js.map +1 -1
  8. package/dist/admin-backend/auth/auth.service.d.ts +12 -3
  9. package/dist/admin-backend/auth/auth.service.js +7 -7
  10. package/dist/admin-backend/auth/auth.service.js.map +1 -1
  11. package/dist/admin-backend/backup/backup.controller.js +2 -1
  12. package/dist/admin-backend/backup/backup.controller.js.map +1 -1
  13. package/dist/admin-backend/backup/backup.resolver.d.ts +1 -1
  14. package/dist/admin-backend/backup/backup.resolver.js +2 -0
  15. package/dist/admin-backend/backup/backup.resolver.js.map +1 -1
  16. package/dist/admin-backend/backup/hardened-backup.service.js +2 -1
  17. package/dist/admin-backend/backup/hardened-backup.service.js.map +1 -1
  18. package/dist/admin-backend/document/document.resolver.d.ts +1 -1
  19. package/dist/admin-backend/document/document.resolver.extend.d.ts +1 -1
  20. package/dist/admin-backend/document/document.resolver.extend.js +2 -0
  21. package/dist/admin-backend/document/document.resolver.extend.js.map +1 -1
  22. package/dist/admin-backend/document/document.resolver.js +12 -2
  23. package/dist/admin-backend/document/document.resolver.js.map +1 -1
  24. package/dist/admin-backend/document/load-documents.queries.d.ts +1 -1
  25. package/dist/admin-backend/document/load-documents.queries.js.map +1 -1
  26. package/dist/admin-backend/document/save-documents.queries.js +55 -12
  27. package/dist/admin-backend/document/save-documents.queries.js.map +1 -1
  28. package/dist/admin-backend/fields/fields.resolver.d.ts +1 -1
  29. package/dist/admin-backend/fields/fields.resolver.js +10 -2
  30. package/dist/admin-backend/fields/fields.resolver.js.map +1 -1
  31. package/dist/admin-backend/fields/load-fields.queries.d.ts +2 -2
  32. package/dist/admin-backend/fields/load-fields.queries.js +1 -1
  33. package/dist/admin-backend/fields/load-fields.queries.js.map +1 -1
  34. package/dist/admin-backend/lnode/lnode-wrap.resolver.d.ts +1 -1
  35. package/dist/admin-backend/lnode/lnode-wrap.resolver.js +14 -1
  36. package/dist/admin-backend/lnode/lnode-wrap.resolver.js.map +1 -1
  37. package/dist/admin-backend/lnode/lnode.queries.d.ts +2 -0
  38. package/dist/admin-backend/lnode/lnode.queries.js +27 -54
  39. package/dist/admin-backend/lnode/lnode.queries.js.map +1 -1
  40. package/dist/admin-backend/login/login.controller.d.ts +2 -2
  41. package/dist/admin-backend/login/login.controller.js +17 -5
  42. package/dist/admin-backend/login/login.controller.js.map +1 -1
  43. package/dist/admin-backend/media/media-upload.controller.js +3 -9
  44. package/dist/admin-backend/media/media-upload.controller.js.map +1 -1
  45. package/dist/admin-backend/media/media.resolver.d.ts +1 -1
  46. package/dist/admin-backend/media/media.resolver.extend.d.ts +1 -1
  47. package/dist/admin-backend/media/media.resolver.extend.js +2 -0
  48. package/dist/admin-backend/media/media.resolver.extend.js.map +1 -1
  49. package/dist/admin-backend/media/media.resolver.js +11 -0
  50. package/dist/admin-backend/media/media.resolver.js.map +1 -1
  51. package/dist/admin-backend/migration/migration.resolver.d.ts +3 -0
  52. package/dist/admin-backend/migration/migration.resolver.js +38 -0
  53. package/dist/admin-backend/migration/migration.resolver.js.map +1 -0
  54. package/dist/admin-backend/node/node-cte.queries.d.ts +25 -0
  55. package/dist/admin-backend/node/node-cte.queries.js +116 -0
  56. package/dist/admin-backend/node/node-cte.queries.js.map +1 -0
  57. package/dist/admin-backend/node/node.queries.d.ts +1 -3
  58. package/dist/admin-backend/node/node.queries.js +5 -19
  59. package/dist/admin-backend/node/node.queries.js.map +1 -1
  60. package/dist/admin-backend/node/node.resolver.d.ts +1 -1
  61. package/dist/admin-backend/node/node.resolver.extend.d.ts +1 -1
  62. package/dist/admin-backend/node/node.resolver.extend.js +2 -0
  63. package/dist/admin-backend/node/node.resolver.extend.js.map +1 -1
  64. package/dist/admin-backend/node/node.resolver.js +7 -2
  65. package/dist/admin-backend/node/node.resolver.js.map +1 -1
  66. package/dist/admin-backend/part/part.queries.js +1 -1
  67. package/dist/admin-backend/part/part.queries.js.map +1 -1
  68. package/dist/admin-backend/part/part.resolver.d.ts +1 -1
  69. package/dist/admin-backend/part/part.resolver.extend.d.ts +1 -1
  70. package/dist/admin-backend/part/part.resolver.extend.js +3 -0
  71. package/dist/admin-backend/part/part.resolver.extend.js.map +1 -1
  72. package/dist/admin-backend/part/part.resolver.js +7 -0
  73. package/dist/admin-backend/part/part.resolver.js.map +1 -1
  74. package/dist/admin-backend/routing-cluster/cluster-management.d.ts +8 -0
  75. package/dist/admin-backend/routing-cluster/cluster-management.js +217 -0
  76. package/dist/admin-backend/routing-cluster/cluster-management.js.map +1 -0
  77. package/dist/admin-backend/routing-cluster/cluster-validation.d.ts +7 -0
  78. package/dist/admin-backend/routing-cluster/cluster-validation.js +48 -0
  79. package/dist/admin-backend/routing-cluster/cluster-validation.js.map +1 -0
  80. package/dist/admin-backend/routing-cluster/routing-cluster.queries.d.ts +3 -0
  81. package/dist/admin-backend/routing-cluster/routing-cluster.queries.js +34 -0
  82. package/dist/admin-backend/routing-cluster/routing-cluster.queries.js.map +1 -0
  83. package/dist/admin-backend/routing-cluster/routing-cluster.resolver.d.ts +3 -0
  84. package/dist/admin-backend/routing-cluster/routing-cluster.resolver.js +72 -0
  85. package/dist/admin-backend/routing-cluster/routing-cluster.resolver.js.map +1 -0
  86. package/dist/admin-backend/site-constants/site-constants.resolver.d.ts +1 -1
  87. package/dist/admin-backend/site-constants/site-constants.resolver.js +6 -5
  88. package/dist/admin-backend/site-constants/site-constants.resolver.js.map +1 -1
  89. package/dist/admin-backend/unprotected/unprotected.resolver.js +14 -3
  90. package/dist/admin-backend/unprotected/unprotected.resolver.js.map +1 -1
  91. package/dist/common/data-format.d.ts +1 -1
  92. package/dist/common/data-format.js.map +1 -1
  93. package/dist/common/media-handles.helpers.d.ts +3 -3
  94. package/dist/common/media-handles.helpers.js +3 -3
  95. package/dist/common/media-handles.helpers.js.map +1 -1
  96. package/dist/common/medias/media-lib.js +1 -1
  97. package/dist/common/medias/media-lib.js.map +1 -1
  98. package/dist/connector/app-conf/app-conf-formatter.d.ts +3 -0
  99. package/dist/connector/app-conf/app-conf-formatter.js +144 -0
  100. package/dist/connector/app-conf/app-conf-formatter.js.map +1 -0
  101. package/dist/connector/app-conf/app-conf-reader.d.ts +3 -0
  102. package/dist/connector/app-conf/app-conf-reader.js +11 -0
  103. package/dist/connector/app-conf/app-conf-reader.js.map +1 -0
  104. package/dist/connector/app-conf/app-conf.types.d.ts +45 -0
  105. package/dist/connector/app-conf/app-conf.types.js +2 -0
  106. package/dist/connector/app-conf/app-conf.types.js.map +1 -0
  107. package/dist/connector/db-init/db-constants.d.ts +2 -0
  108. package/dist/connector/db-init/db-constants.js +3 -0
  109. package/dist/connector/db-init/db-constants.js.map +1 -0
  110. package/dist/connector/db-init/db-init.d.ts +10 -0
  111. package/dist/connector/db-init/db-init.js +42 -0
  112. package/dist/connector/db-init/db-init.js.map +1 -0
  113. package/dist/connector/db-init/ddl-migration.d.ts +6 -0
  114. package/dist/connector/db-init/ddl-migration.js +190 -0
  115. package/dist/connector/db-init/ddl-migration.js.map +1 -0
  116. package/dist/connector/db-init/init-node-queries.d.ts +11 -0
  117. package/dist/connector/db-init/init-node-queries.js +103 -0
  118. package/dist/connector/db-init/init-node-queries.js.map +1 -0
  119. package/dist/connector/db-init/load-routing-cluster.queries.d.ts +36 -0
  120. package/dist/connector/db-init/load-routing-cluster.queries.js +265 -0
  121. package/dist/connector/db-init/load-routing-cluster.queries.js.map +1 -0
  122. package/dist/connector/db-init/populate-routing-documents.d.ts +9 -0
  123. package/dist/connector/db-init/populate-routing-documents.js +66 -0
  124. package/dist/connector/db-init/populate-routing-documents.js.map +1 -0
  125. package/dist/connector/media-storage.d.ts +4 -0
  126. package/dist/connector/media-storage.js +14 -0
  127. package/dist/connector/media-storage.js.map +1 -0
  128. package/dist/connector/plugin-loader/init-plugins.d.ts +8 -0
  129. package/dist/connector/plugin-loader/init-plugins.js +98 -0
  130. package/dist/connector/plugin-loader/init-plugins.js.map +1 -0
  131. package/dist/connector/plugin-loader/plugin-loader.d.ts +8 -0
  132. package/dist/connector/plugin-loader/plugin-loader.js +76 -0
  133. package/dist/connector/plugin-loader/plugin-loader.js.map +1 -0
  134. package/dist/connector/plugin-loader/plugin-public-helpers.d.ts +2 -0
  135. package/dist/connector/plugin-loader/plugin-public-helpers.js +4 -0
  136. package/dist/connector/plugin-loader/plugin-public-helpers.js.map +1 -0
  137. package/dist/connector/plugin-loader/plugin-types.d.ts +53 -0
  138. package/dist/connector/plugin-loader/plugin-types.js +2 -0
  139. package/dist/connector/plugin-loader/plugin-types.js.map +1 -0
  140. package/dist/connector/public-site-context-types.d.ts +16 -0
  141. package/dist/connector/public-site-context-types.js +2 -0
  142. package/dist/connector/public-site-context-types.js.map +1 -0
  143. package/dist/connector/row-types.d.ts +58 -0
  144. package/dist/connector/row-types.js +2 -0
  145. package/dist/connector/row-types.js.map +1 -0
  146. package/dist/connector/single-site-builder/default-config.d.ts +3 -0
  147. package/dist/connector/single-site-builder/default-config.js +24 -0
  148. package/dist/connector/single-site-builder/default-config.js.map +1 -0
  149. package/dist/connector/single-site-builder/default-readme.d.ts +1 -0
  150. package/dist/connector/single-site-builder/default-readme.js +4 -0
  151. package/dist/connector/single-site-builder/default-readme.js.map +1 -0
  152. package/dist/connector/single-site-builder/site-builder.d.ts +27 -0
  153. package/dist/connector/single-site-builder/site-builder.js +91 -0
  154. package/dist/connector/single-site-builder/site-builder.js.map +1 -0
  155. package/dist/connector/site-backup/archiver.helper.d.ts +12 -0
  156. package/dist/connector/site-backup/archiver.helper.js +36 -0
  157. package/dist/connector/site-backup/archiver.helper.js.map +1 -0
  158. package/dist/connector/site-backup/backup-tasks.d.ts +14 -0
  159. package/dist/connector/site-backup/backup-tasks.js +42 -0
  160. package/dist/connector/site-backup/backup-tasks.js.map +1 -0
  161. package/dist/connector/site-backup/backup.d.ts +12 -0
  162. package/dist/connector/site-backup/backup.helper.d.ts +3 -0
  163. package/dist/connector/site-backup/backup.helper.js +8 -0
  164. package/dist/connector/site-backup/backup.helper.js.map +1 -0
  165. package/dist/connector/site-backup/backup.js +34 -0
  166. package/dist/connector/site-backup/backup.js.map +1 -0
  167. package/dist/connector/site-conf/site-conf.d.ts +8 -0
  168. package/dist/connector/site-conf/site-conf.js +117 -0
  169. package/dist/connector/site-conf/site-conf.js.map +1 -0
  170. package/dist/connector/site-conf/site-place-types.d.ts +5 -0
  171. package/dist/connector/site-conf/site-place-types.js +2 -0
  172. package/dist/connector/site-conf/site-place-types.js.map +1 -0
  173. package/dist/connector/site-schema/common-schema-reader.d.ts +2 -0
  174. package/dist/connector/site-schema/common-schema-reader.js +56 -0
  175. package/dist/connector/site-schema/common-schema-reader.js.map +1 -0
  176. package/dist/connector/site-schema/common-schema-types.d.ts +13 -0
  177. package/dist/connector/site-schema/common-schema-types.js +2 -0
  178. package/dist/connector/site-schema/common-schema-types.js.map +1 -0
  179. package/dist/connector/site-schema/default-media-policy.d.ts +3 -0
  180. package/dist/connector/site-schema/default-media-policy.js +21 -0
  181. package/dist/connector/site-schema/default-media-policy.js.map +1 -0
  182. package/dist/connector/site-schema/read-locales.d.ts +23 -0
  183. package/dist/connector/site-schema/read-locales.js +214 -0
  184. package/dist/connector/site-schema/read-locales.js.map +1 -0
  185. package/dist/connector/site-schema/schema-lib.d.ts +29 -0
  186. package/dist/connector/site-schema/schema-lib.js +62 -0
  187. package/dist/connector/site-schema/schema-lib.js.map +1 -0
  188. package/dist/connector/site-schema/site-configuration.d.ts +4 -0
  189. package/dist/connector/site-schema/site-configuration.js +2 -0
  190. package/dist/connector/site-schema/site-configuration.js.map +1 -0
  191. package/dist/connector/site-schema/site-schema-factory.d.ts +21 -0
  192. package/dist/connector/site-schema/site-schema-factory.js +601 -0
  193. package/dist/connector/site-schema/site-schema-factory.js.map +1 -0
  194. package/dist/connector/site-schema/site-schema-helpers.d.ts +3 -0
  195. package/dist/connector/site-schema/site-schema-helpers.js +7 -0
  196. package/dist/connector/site-schema/site-schema-helpers.js.map +1 -0
  197. package/dist/connector/site-schema/site-schema-lib-reader.d.ts +8 -0
  198. package/dist/connector/site-schema/site-schema-lib-reader.js +42 -0
  199. package/dist/connector/site-schema/site-schema-lib-reader.js.map +1 -0
  200. package/dist/connector/site-schema/site-schema-public-helpers.d.ts +3 -0
  201. package/dist/connector/site-schema/site-schema-public-helpers.js +15 -0
  202. package/dist/connector/site-schema/site-schema-public-helpers.js.map +1 -0
  203. package/dist/connector/theme-conf/theme-conf-reader.d.ts +4 -0
  204. package/dist/connector/theme-conf/theme-conf-reader.js +31 -0
  205. package/dist/connector/theme-conf/theme-conf-reader.js.map +1 -0
  206. package/dist/context.d.ts +3 -3
  207. package/dist/context.js +3 -3
  208. package/dist/context.js.map +1 -1
  209. package/dist/express/http-helpers.d.ts +3 -3
  210. package/dist/express/http-redirection-url.d.ts +1 -1
  211. package/dist/express/local-testing-route.js +5 -1
  212. package/dist/express/local-testing-route.js.map +1 -1
  213. package/dist/express/route-handler-wrapper.d.ts +9 -1
  214. package/dist/express/route-handler-wrapper.js +25 -2
  215. package/dist/express/route-handler-wrapper.js.map +1 -1
  216. package/dist/express/site-middleware.js +3 -6
  217. package/dist/express/site-middleware.js.map +1 -1
  218. package/dist/express/static-files.req-handler.d.ts +2 -2
  219. package/dist/express/static-files.req-handler.js +3 -3
  220. package/dist/express/static-files.req-handler.js.map +1 -1
  221. package/dist/graphql/apollo-server-init.js +4 -0
  222. package/dist/graphql/apollo-server-init.js.map +1 -1
  223. package/dist/graphql/graphql.types.d.ts +7 -2
  224. package/dist/graphql/graphql.types.js +6 -1
  225. package/dist/graphql/graphql.types.js.map +1 -1
  226. package/dist/helpers/special-account.helpers.d.ts +1 -1
  227. package/dist/helpers/special-account.helpers.js.map +1 -1
  228. package/dist/index.d.ts +1 -1
  229. package/dist/index.js +2 -1
  230. package/dist/index.js.map +1 -1
  231. package/dist/liquidjs-tools/liquidjs-drop.d.ts +5 -5
  232. package/dist/liquidjs-tools/liquidjs-drop.js +16 -4
  233. package/dist/liquidjs-tools/liquidjs-drop.js.map +1 -1
  234. package/dist/liquidjs-tools/liquidjs-utils.d.ts +0 -2
  235. package/dist/liquidjs-tools/liquidjs-utils.js +0 -7
  236. package/dist/liquidjs-tools/liquidjs-utils.js.map +1 -1
  237. package/dist/maintenance/maintenance-task.js +4 -2
  238. package/dist/maintenance/maintenance-task.js.map +1 -1
  239. package/dist/plugin-services/make-backend-plugin-service.d.ts +1 -1
  240. package/dist/plugin-services/make-backend-plugin-service.js +3 -3
  241. package/dist/plugin-services/make-backend-plugin-service.js.map +1 -1
  242. package/dist/public-api/password-reset/password-reset.service.js.map +1 -1
  243. package/dist/public-api/public-api-rendering.js +13 -0
  244. package/dist/public-api/public-api-rendering.js.map +1 -1
  245. package/dist/rendered-site/feed/feed-generator.js +1 -1
  246. package/dist/rendered-site/feed/feed-generator.js.map +1 -1
  247. package/dist/rendered-site/liquidjs-filters/head-tags-filter.d.ts +1 -1
  248. package/dist/rendered-site/liquidjs-filters/head-tags-filter.js +7 -3
  249. package/dist/rendered-site/liquidjs-filters/head-tags-filter.js.map +1 -1
  250. package/dist/rendered-site/liquidjs-filters/info-filter.js +4 -2
  251. package/dist/rendered-site/liquidjs-filters/info-filter.js.map +1 -1
  252. package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js +2 -1
  253. package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js.map +1 -1
  254. package/dist/rendered-site/liquidjs-filters/open-graph-filter.d.ts +1 -1
  255. package/dist/rendered-site/liquidjs-filters/plugin-asset-url-filter.js +1 -1
  256. package/dist/rendered-site/liquidjs-filters/plugin-asset-url-filter.js.map +1 -1
  257. package/dist/rendered-site/liquidjs-tags/get-docs-tag.js +1 -1
  258. package/dist/rendered-site/liquidjs-tags/get-docs-tag.js.map +1 -1
  259. package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js +1 -1
  260. package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js.map +1 -1
  261. package/dist/rendered-site/page-route/make-url.d.ts +5 -2
  262. package/dist/rendered-site/page-route/make-url.js +48 -112
  263. package/dist/rendered-site/page-route/make-url.js.map +1 -1
  264. package/dist/rendered-site/page-route/page-route-parser.d.ts +10 -5
  265. package/dist/rendered-site/page-route/page-route-parser.js +288 -75
  266. package/dist/rendered-site/page-route/page-route-parser.js.map +1 -1
  267. package/dist/rendered-site/page-route/raw-document-payload.js +16 -25
  268. package/dist/rendered-site/page-route/raw-document-payload.js.map +1 -1
  269. package/dist/rendered-site/serve-document/serve-document.js.map +1 -1
  270. package/dist/rendering-payload/breadcrumb.queries.js +6 -2
  271. package/dist/rendering-payload/breadcrumb.queries.js.map +1 -1
  272. package/dist/rendering-payload/cluster-payloads.d.ts +7 -0
  273. package/dist/rendering-payload/cluster-payloads.js +50 -0
  274. package/dist/rendering-payload/cluster-payloads.js.map +1 -0
  275. package/dist/rendering-payload/create-doc-drop.d.ts +1 -1
  276. package/dist/rendering-payload/create-doc-drop.js +127 -120
  277. package/dist/rendering-payload/create-doc-drop.js.map +1 -1
  278. package/dist/rendering-payload/create-part-drop.js +1 -2
  279. package/dist/rendering-payload/create-part-drop.js.map +1 -1
  280. package/dist/rendering-payload/doc-values.queries.js +1 -1
  281. package/dist/rendering-payload/doc-values.queries.js.map +1 -1
  282. package/dist/rendering-payload/excerpt.queries.js +1 -1
  283. package/dist/rendering-payload/excerpt.queries.js.map +1 -1
  284. package/dist/rendering-payload/field-values.d.ts +1 -6
  285. package/dist/rendering-payload/field-values.js +2 -58
  286. package/dist/rendering-payload/field-values.js.map +1 -1
  287. package/dist/rendering-payload/get-siblings.queries.d.ts +3 -2
  288. package/dist/rendering-payload/get-siblings.queries.js +42 -27
  289. package/dist/rendering-payload/get-siblings.queries.js.map +1 -1
  290. package/dist/rendering-payload/make-public-payload.d.ts +1 -4
  291. package/dist/rendering-payload/make-public-payload.js +3 -0
  292. package/dist/rendering-payload/make-public-payload.js.map +1 -1
  293. package/dist/rendering-payload/parts.queries.js +1 -1
  294. package/dist/rendering-payload/parts.queries.js.map +1 -1
  295. package/dist/rendering-payload/rendering-payload.types.d.ts +21 -15
  296. package/dist/rendering-payload/site-payload.d.ts +2 -3
  297. package/dist/rendering-payload/site-payload.js +43 -37
  298. package/dist/rendering-payload/site-payload.js.map +1 -1
  299. package/dist/rendering-payload/translations.queries.js +2 -3
  300. package/dist/rendering-payload/translations.queries.js.map +1 -1
  301. package/dist/running-server/running-server-connector.d.ts +2 -0
  302. package/dist/{helpers/running-instance-connector.js → running-server/running-server-connector.js} +20 -8
  303. package/dist/running-server/running-server-connector.js.map +1 -0
  304. package/dist/running-server/single-site-generator.d.ts +2 -0
  305. package/dist/running-server/single-site-generator.js +23 -0
  306. package/dist/running-server/single-site-generator.js.map +1 -0
  307. package/dist/site-context/core-plugin/core-hooks.d.ts +1 -1
  308. package/dist/site-context/core-plugin/create-core-plugin.d.ts +1 -1
  309. package/dist/site-context/core-plugin/create-core-plugin.js.map +1 -1
  310. package/dist/site-context/load-site-context.d.ts +2 -2
  311. package/dist/site-context/load-site-context.js +65 -7
  312. package/dist/site-context/load-site-context.js.map +1 -1
  313. package/dist/site-context/refresh-site-context.d.ts +1 -0
  314. package/dist/site-context/refresh-site-context.js +15 -0
  315. package/dist/site-context/refresh-site-context.js.map +1 -0
  316. package/dist/site-context/site-context.d.ts +7 -7
  317. package/dist/site-context/site-context.js +17 -7
  318. package/dist/site-context/site-context.js.map +1 -1
  319. package/dist/site-context/site-context.types.d.ts +28 -4
  320. package/dist/site-context/site-values-for-site-context.d.ts +1 -1
  321. package/dist/site-context/site-values-for-site-context.js.map +1 -1
  322. package/dist/site-schema-migration/migrations/site-schema-migration-6-to-7.d.ts +9 -0
  323. package/dist/site-schema-migration/migrations/site-schema-migration-6-to-7.js +61 -0
  324. package/dist/site-schema-migration/migrations/site-schema-migration-6-to-7.js.map +1 -0
  325. package/dist/site-schema-migration/migrations/site-schema-migration-7-to-8.d.ts +9 -0
  326. package/dist/site-schema-migration/migrations/site-schema-migration-7-to-8.js +54 -0
  327. package/dist/site-schema-migration/migrations/site-schema-migration-7-to-8.js.map +1 -0
  328. package/dist/site-schema-migration/migrations/site-schema-migration-8-to-9.d.ts +9 -0
  329. package/dist/site-schema-migration/migrations/site-schema-migration-8-to-9.js +44 -0
  330. package/dist/site-schema-migration/migrations/site-schema-migration-8-to-9.js.map +1 -0
  331. package/dist/site-schema-migration/site-schema-migration.d.ts +3 -0
  332. package/dist/site-schema-migration/site-schema-migration.js +43 -0
  333. package/dist/site-schema-migration/site-schema-migration.js.map +1 -0
  334. package/dist/tsconfig.tsbuildinfo +1 -1
  335. package/package.json +16 -12
  336. package/schema.graphql +48 -2
  337. package/site-schema-lib/common-schema.json +40 -0
  338. package/site-schema-lib/common-schema.l10n.de.json +10 -0
  339. package/site-schema-lib/common-schema.l10n.en.json +10 -0
  340. package/site-schema-lib/common-schema.l10n.es.json +10 -0
  341. package/site-schema-lib/common-schema.l10n.fr.json +10 -0
  342. package/site-schema-lib/common-schema.l10n.it.json +10 -0
  343. package/site-schema-lib/common-schema.l10n.pt.json +10 -0
  344. package/site-schema-lib/field-lib.site-schema.json +84 -0
  345. package/site-schema-lib/field-lib.site-schema.l10n.de.json +38 -0
  346. package/site-schema-lib/field-lib.site-schema.l10n.en.json +38 -0
  347. package/site-schema-lib/field-lib.site-schema.l10n.es.json +38 -0
  348. package/site-schema-lib/field-lib.site-schema.l10n.fr.json +41 -0
  349. package/site-schema-lib/field-lib.site-schema.l10n.it.json +38 -0
  350. package/site-schema-lib/field-lib.site-schema.l10n.pt.json +38 -0
  351. package/dist/admin-backend/document/document.helper.d.ts +0 -2
  352. package/dist/admin-backend/document/document.helper.js +0 -6
  353. package/dist/admin-backend/document/document.helper.js.map +0 -1
  354. package/dist/helpers/running-instance-connector.d.ts +0 -2
  355. package/dist/helpers/running-instance-connector.js.map +0 -1
@@ -0,0 +1,190 @@
1
+ import { setMetadataDbSchemaVersion } from "@paroicms/internal-server-lib";
2
+ import { type } from "arktype";
3
+ import { mainDbSchemaName, mainDbSchemaVersion } from "./db-constants.js";
4
+ export async function migrateMainDb(cn, { fromVersion, logger }) {
5
+ const toVersion = mainDbSchemaVersion;
6
+ let currentVersion = fromVersion;
7
+ if (currentVersion === 6) {
8
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 7 });
9
+ currentVersion = 7;
10
+ }
11
+ if (currentVersion === 7) {
12
+ await cn.raw(`create table PaOrderedLeaf (
13
+ leafId integer not null primary key references PaLeaf (id) on delete cascade,
14
+ orderNum integer not null
15
+ )`);
16
+ await cn.raw(`create table PaPartLeaf (
17
+ leafId integer not null primary key references PaLeaf (id) on delete cascade,
18
+ listName varchar(100) not null,
19
+ documentLeafId integer not null references PaLeaf (id)
20
+ )`);
21
+ await cn.raw(`insert into PaOrderedLeaf (leafId, orderNum)
22
+ select leafId, itemNum from PaLeafItem`);
23
+ await cn.raw(`insert into PaPartLeaf (leafId, listName, documentLeafId)
24
+ select i.leafId, i.listName, l.parentId
25
+ from PaLeafItem i
26
+ inner join PaLeaf l on l.id = i.leafId`);
27
+ await cn.raw("drop table PaLeafItem");
28
+ await cn.raw("alter table PaTermFlag rename column flaggedId to labeledId");
29
+ await cn.raw("alter table PaTermFlag rename to PaLabeling");
30
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 8 });
31
+ currentVersion = 8;
32
+ }
33
+ if (currentVersion === 8) {
34
+ await cn.raw("alter table PaLeaf rename column leafType to typeName");
35
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 9 });
36
+ currentVersion = 9;
37
+ }
38
+ if (currentVersion === 9) {
39
+ await cn.raw("alter table PaLeaf rename to PaNode");
40
+ await cn.raw("drop index if exists PaLeaf_typeName_idx");
41
+ await cn.raw("drop index if exists PaLeaf_leafType_idx");
42
+ await cn.raw("create index PaNode_typeName_idx on PaNode (typeName)");
43
+ await cn.raw("alter table PaOrderedLeaf rename to PaOrderedNode");
44
+ await cn.raw("alter table PaOrderedNode rename column leafId to nodeId");
45
+ await cn.raw("alter table PaPartLeaf rename to PaPartNode");
46
+ await cn.raw("alter table PaPartNode rename column leafId to nodeId");
47
+ await cn.raw("alter table PaPartNode rename column documentLeafId to documentNodeId");
48
+ await cn.raw("drop index if exists PaPartLeaf_listName_idx");
49
+ await cn.raw("create index PaPartNode_listName_idx on PaPartNode (listName)");
50
+ await cn.raw("alter table PaSection rename to PaNodel");
51
+ await cn.raw("alter table PaNodel rename column leafId to nodeId");
52
+ await cn.raw("alter table PaNodel rename column lang to language");
53
+ await cn.raw("alter table PaDocument rename column leafId to nodeId");
54
+ await cn.raw("alter table PaDocument rename column lang to language");
55
+ await cn.raw("alter table PaFieldVarchar rename column leafId to nodeId");
56
+ await cn.raw("alter table PaFieldVarchar rename column lang to language");
57
+ await cn.raw("alter table PaFieldText rename column leafId to nodeId");
58
+ await cn.raw("alter table PaFieldText rename column lang to language");
59
+ await cn.raw("update PaPartNode set listName = '_subParts' where listName = 'subParts'");
60
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 10 });
61
+ currentVersion = 10;
62
+ }
63
+ if (currentVersion === 10) {
64
+ await cn.raw(`create table PaFieldLabeling (
65
+ field varchar(100) not null,
66
+ nodeId integer not null references PaNode (id) on delete cascade,
67
+ termId integer not null references PaNode (id),
68
+ orderNum integer,
69
+ primary key (field, nodeId, termId)
70
+ )`);
71
+ await cn.raw(`insert into PaFieldLabeling (field, nodeId, termId)
72
+ select tax.typeName, PaLabeling.labeledId, PaLabeling.termId
73
+ from PaLabeling
74
+ join PaNode term on term.id = PaLabeling.termId
75
+ join PaNode tax on tax.id = term.parentId`);
76
+ await cn.raw("drop table PaLabeling");
77
+ await cn.raw(`update PaFieldText set dataType = 'json' where dataType = 'quillDelta'`);
78
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 11 });
79
+ currentVersion = 11;
80
+ }
81
+ if (currentVersion === 11) {
82
+ await migrateAllQuillDeltaFieldsFrom11to12(cn, logger);
83
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 12 });
84
+ currentVersion = 12;
85
+ }
86
+ if (currentVersion === 12) {
87
+ await cn.raw("alter table PaNodel rename to PaLNode");
88
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 13 });
89
+ currentVersion = 13;
90
+ }
91
+ if (currentVersion === 13) {
92
+ await cn.raw("update PaFieldVarchar set field = 'buttonLabel' where field = 'shortTitle'");
93
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 14 });
94
+ currentVersion = 14;
95
+ }
96
+ if (currentVersion === 14) {
97
+ await cn.raw("ALTER TABLE PaNode DROP COLUMN depth");
98
+ await setMetadataDbSchemaVersion(cn, { dbSchemaName: mainDbSchemaName, value: 15 });
99
+ currentVersion = 15;
100
+ }
101
+ if (currentVersion !== toVersion) {
102
+ throw new Error(`version of ${mainDbSchemaName} database should be '${toVersion}', but is '${currentVersion}'`);
103
+ }
104
+ logger.info(`${mainDbSchemaName} database was migrated from ${fromVersion} to ${currentVersion}`);
105
+ }
106
+ async function migrateAllQuillDeltaFieldsFrom11to12(cn, logger) {
107
+ let count = 0;
108
+ const rows = await cn("PaFieldText")
109
+ .select("field", "nodeId", "language", "val")
110
+ .where("dataType", "json")
111
+ .whereNotNull("val");
112
+ const RowAT = type({
113
+ field: "string",
114
+ nodeId: "number",
115
+ language: "string",
116
+ val: "string",
117
+ "+": "reject",
118
+ }).pipe((r) => ({
119
+ ...r,
120
+ nodeId: String(r.nodeId),
121
+ }));
122
+ for (const row of rows) {
123
+ let fieldValue;
124
+ try {
125
+ const validatedRow = RowAT.assert(row);
126
+ fieldValue = {
127
+ ...validatedRow,
128
+ val: JSON.parse(validatedRow.val),
129
+ };
130
+ }
131
+ catch (error) {
132
+ logger.error(`Error parsing JSON for field "${row.field}" on nodeId ${row.nodeId} in language "${row.language}"`, error);
133
+ continue;
134
+ }
135
+ const newVal = migrateQuillDeltaFrom11to12(fieldValue.val, logger);
136
+ if (newVal) {
137
+ await cn("PaFieldText")
138
+ .update({ val: JSON.stringify(newVal) })
139
+ .where({
140
+ field: fieldValue.field,
141
+ nodeId: fieldValue.nodeId,
142
+ language: fieldValue.language,
143
+ });
144
+ ++count;
145
+ }
146
+ }
147
+ if (count > 0) {
148
+ logger.info(`Migrated ${count} quill delta field(s) in ${mainDbSchemaName} database`);
149
+ }
150
+ }
151
+ function migrateQuillDeltaFrom11to12(delta, logger) {
152
+ if (!delta?.ops || !Array.isArray(delta.ops))
153
+ return;
154
+ const { ops } = delta;
155
+ let modified = false;
156
+ const newOps = ops
157
+ .map((op) => {
158
+ if (!op.insert || typeof op.insert !== "object")
159
+ return op;
160
+ if (Object.keys(op.insert).length !== 1)
161
+ return op;
162
+ if (!op.insert.img || typeof op.insert.img !== "object")
163
+ return op;
164
+ const { uid, align, variant, zoom, href } = op.insert.img;
165
+ if (!uid || !align || !variant) {
166
+ logger.warn(`Quill Delta migration, remove incomplete image: ${JSON.stringify(op.insert)}`);
167
+ modified = true;
168
+ return;
169
+ }
170
+ const { insert, ...opRest } = op;
171
+ modified = true;
172
+ return {
173
+ insert: {
174
+ media: {
175
+ mediaId: uid,
176
+ resizeRule: variant,
177
+ align,
178
+ zoomable: zoom === "none" ? undefined : true,
179
+ href: href,
180
+ },
181
+ },
182
+ ...opRest,
183
+ };
184
+ })
185
+ .filter(Boolean);
186
+ if (modified) {
187
+ return { ops: newOps };
188
+ }
189
+ }
190
+ //# sourceMappingURL=ddl-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ddl-migration.js","sourceRoot":"","sources":["../../../src/connector/db-init/ddl-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type ScSiteSchema } from "@paroicms/public-anywhere-lib";
2
+ import type { Knex } from "knex";
3
+ import type { NodeRow } from "../row-types.js";
4
+ export declare function createNode(siteSchema: ScSiteSchema, cn: Knex | Knex.Transaction, { parentId, typeName, }: {
5
+ parentId?: string;
6
+ typeName: string;
7
+ }): Promise<NodeRow>;
8
+ export declare function isTypeNameChildOf(siteSchema: ScSiteSchema, { parentTypeName, typeName }: {
9
+ parentTypeName: string;
10
+ typeName: string;
11
+ }): boolean;
@@ -0,0 +1,103 @@
1
+ import { getNodeTypeByName } from "@paroicms/internal-anywhere-lib";
2
+ import { makeDefaultRelativeId, parseSqliteDateTime } from "@paroicms/internal-server-lib";
3
+ import { isDef, } from "@paroicms/public-anywhere-lib";
4
+ import { type } from "arktype";
5
+ const CreateNodeParentNodeAT = type({
6
+ typeName: "string",
7
+ "+": "reject",
8
+ });
9
+ const CreateNodeInsertedAT = type({
10
+ id: "number",
11
+ publishDate: "string|number|Date",
12
+ "+": "reject",
13
+ }).pipe((r) => ({
14
+ id: String(r.id),
15
+ publishDate: parseSqliteDateTime(r.publishDate),
16
+ }));
17
+ export async function createNode(siteSchema, cn, { parentId, typeName, }) {
18
+ if (typeName === "_site") {
19
+ if (isDef(parentId))
20
+ throw new Error(`cannot create site node with parentId '${parentId}'`);
21
+ }
22
+ else {
23
+ if (!isDef(parentId))
24
+ throw new Error(`cannot create node '${typeName}' without parentId`);
25
+ const row = await cn("PaNode").select("typeName").where("id", parentId).first();
26
+ if (!row)
27
+ throw new Error(`cannot find parent node '${parentId}'`);
28
+ const parentNode = CreateNodeParentNodeAT.assert(row);
29
+ if (!isTypeNameChildOf(siteSchema, { typeName, parentTypeName: parentNode.typeName })) {
30
+ throw new Error(`invalid parentTypeName '${parentNode.typeName}'`);
31
+ }
32
+ }
33
+ const newRelativeId = await findAvailableRelativeId(siteSchema, cn, { parentId, typeName });
34
+ const [inserted] = await cn("PaNode")
35
+ .insert({
36
+ parentId,
37
+ relativeId: newRelativeId,
38
+ typeName,
39
+ publishDate: cn.fn.now(),
40
+ })
41
+ .returning(["id", "publishDate"]);
42
+ const { id: newId, publishDate } = CreateNodeInsertedAT.assert(inserted);
43
+ return {
44
+ id: newId,
45
+ relativeId: newRelativeId,
46
+ typeName,
47
+ publishDate,
48
+ parentId,
49
+ };
50
+ }
51
+ async function findAvailableRelativeId(siteSchema, cn, { parentId, typeName, }) {
52
+ const nodeType = getNodeTypeByName(siteSchema, typeName);
53
+ const documentType = nodeType.kind === "document" ? nodeType : undefined;
54
+ const makeRelativeId = provideRelativeIdGenerator(documentType && documentType.documentKind === "regular"
55
+ ? documentType.relativeIdGenerator
56
+ : undefined);
57
+ let attempt = 0;
58
+ while (true) {
59
+ const newRelativeId = makeRelativeId();
60
+ const existing = await cn("PaNode")
61
+ .select("id")
62
+ .where("relativeId", newRelativeId)
63
+ .andWhere("parentId", parentId ?? null)
64
+ .first();
65
+ if (isDef(existing)) {
66
+ if (++attempt === 20)
67
+ throw new Error(`failed to find a relativeId for node '${typeName}'`);
68
+ }
69
+ return newRelativeId;
70
+ }
71
+ }
72
+ export function isTypeNameChildOf(siteSchema, { parentTypeName, typeName }) {
73
+ const parentType = getNodeTypeByName(siteSchema, parentTypeName);
74
+ if (parentType.kind === "site") {
75
+ return typeName === "home";
76
+ }
77
+ if (parentType.kind === "document") {
78
+ const childType = getNodeTypeByName(siteSchema, typeName);
79
+ if (childType.kind === "document") {
80
+ return ((parentType.regularChildren?.includes(childType.typeName) ||
81
+ parentType.routingChildren?.includes(childType.typeName)) ??
82
+ false);
83
+ }
84
+ for (const listType of parentType.lists ?? []) {
85
+ if (listType.parts.includes(typeName))
86
+ return true;
87
+ }
88
+ }
89
+ if (parentType.kind === "part") {
90
+ if (parentType.list?.parts.includes(typeName))
91
+ return true;
92
+ }
93
+ return false;
94
+ }
95
+ function provideRelativeIdGenerator(rim) {
96
+ const makerName = rim?.[0] ?? "default";
97
+ if (makerName === "default") {
98
+ const size = rim ? Number(rim[1]) : undefined;
99
+ return () => makeDefaultRelativeId({ size });
100
+ }
101
+ throw new Error(`Invalid relativeId maker name '${makerName}'`);
102
+ }
103
+ //# sourceMappingURL=init-node-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-node-queries.js","sourceRoot":"","sources":["../../../src/connector/db-init/init-node-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { HomeRoutingCluster, RoutingCluster, SubRoutingCluster } from "@paroicms/public-anywhere-lib";
2
+ import type { Knex } from "knex";
3
+ import type { SiteContext } from "../../site-context/site-context.types.js";
4
+ export declare function loadSiteNodeId(cn: Knex): Promise<string>;
5
+ export declare function loadSiteAndHomeNodeId(cn: Knex): Promise<{
6
+ siteNodeId: string;
7
+ homeNodeId: string;
8
+ }>;
9
+ export declare function loadRoutingCluster(siteContext: Pick<SiteContext, "siteSchema" | "cn">, clusterRoot: {
10
+ kind: "home";
11
+ nodeId: string;
12
+ typeName: "home";
13
+ siteNodeId: string;
14
+ }): Promise<HomeRoutingCluster>;
15
+ export declare function loadRoutingCluster(siteContext: Pick<SiteContext, "siteSchema" | "cn">, clusterRoot: {
16
+ kind: "sub";
17
+ nodeId: string;
18
+ typeName: string;
19
+ }): Promise<SubRoutingCluster>;
20
+ export declare function loadRoutingCluster(siteContext: Pick<SiteContext, "siteSchema" | "cn">, clusterRoot: {
21
+ kind: "home" | "sub";
22
+ nodeId: string;
23
+ typeName: string;
24
+ }): Promise<RoutingCluster>;
25
+ export declare function loadRoutingClusterFromNode(siteContext: SiteContext, fromNode: {
26
+ nodeId: string;
27
+ typeName: string;
28
+ }): Promise<RoutingCluster>;
29
+ export declare function loadParentRoutingClusterFromNode(siteContext: SiteContext, fromNode: {
30
+ nodeId: string;
31
+ typeName: string;
32
+ }): Promise<RoutingCluster | undefined>;
33
+ export declare function loadRoutingClusterAndParents(siteContext: SiteContext, fromNode: {
34
+ nodeId: string;
35
+ typeName: string;
36
+ }): Promise<RoutingCluster[]>;
@@ -0,0 +1,265 @@
1
+ import { getDocumentTypeByName, getRoutingDocumentTypeByName, isRootOfRoutingCluster, isRootOfSubRoutingCluster, } from "@paroicms/internal-anywhere-lib";
2
+ import { encodeLNodeId } from "@paroicms/public-anywhere-lib";
3
+ import { type } from "arktype";
4
+ const LoadSiteNodeIdAT = type({
5
+ id: "number",
6
+ "+": "reject",
7
+ }).pipe((r) => ({
8
+ id: String(r.id),
9
+ }));
10
+ export async function loadSiteNodeId(cn) {
11
+ const rows = await cn("PaNode")
12
+ .select("id")
13
+ .where("parentId", null)
14
+ .andWhere("typeName", "_site");
15
+ if (rows.length === 0)
16
+ throw new Error("Missing site node in the database");
17
+ if (rows.length !== 1)
18
+ throw new Error(`it should not exist '${rows.length}' site nodes`);
19
+ const [row] = rows;
20
+ return LoadSiteNodeIdAT.assert(row).id;
21
+ }
22
+ const LoadSiteAndHomeNodeIdAT = type({
23
+ siteNodeId: "number",
24
+ homeNodeId: "number",
25
+ "+": "reject",
26
+ }).pipe((r) => ({
27
+ siteNodeId: String(r.siteNodeId),
28
+ homeNodeId: String(r.homeNodeId),
29
+ }));
30
+ export async function loadSiteAndHomeNodeId(cn) {
31
+ const rows = await cn("PaNode as p")
32
+ .innerJoin("PaNode as c", "c.parentId", "p.id")
33
+ .select("p.id as siteNodeId", "c.id as homeNodeId")
34
+ .where("p.parentId", null)
35
+ .andWhere("p.typeName", "_site");
36
+ if (rows.length === 0)
37
+ throw new Error("Missing site node in the database");
38
+ if (rows.length !== 1)
39
+ throw new Error(`it should not exist '${rows.length}' site nodes`);
40
+ const [row] = rows;
41
+ return LoadSiteAndHomeNodeIdAT.assert(row);
42
+ }
43
+ export async function loadRoutingCluster(siteContext, clusterRoot) {
44
+ const { siteSchema, cn } = siteContext;
45
+ const documentType = getDocumentTypeByName(siteSchema, clusterRoot.typeName);
46
+ if (clusterRoot.kind === "home") {
47
+ if (documentType.typeName !== "home") {
48
+ throw new Error(`Expected home type, got ${documentType.typeName}`);
49
+ }
50
+ }
51
+ else if (documentType.documentKind !== "regular") {
52
+ throw new Error(`Expected regular document kind, got ${documentType.documentKind}`);
53
+ }
54
+ const cluster = await loadClusterNodeBase(siteContext, clusterRoot.nodeId, documentType);
55
+ const expectedLanguages = Object.keys(cluster.lNodeIds);
56
+ const childTypes = routingChildrenOf(siteSchema, documentType);
57
+ const children = childTypes.length > 0
58
+ ? await loadClusterNodeChildren(siteContext, expectedLanguages, {
59
+ parentNodeId: clusterRoot.nodeId,
60
+ childTypes,
61
+ })
62
+ : undefined;
63
+ if (clusterRoot.kind === "home") {
64
+ const siteNodeId = clusterRoot.siteNodeId ?? (await loadSiteNodeId(cn));
65
+ return {
66
+ kind: "home",
67
+ nodeId: clusterRoot.nodeId,
68
+ typeName: "home",
69
+ lNodeIds: cluster.lNodeIds,
70
+ children,
71
+ siteNodeId,
72
+ };
73
+ }
74
+ return {
75
+ kind: "sub",
76
+ nodeId: clusterRoot.nodeId,
77
+ typeName: clusterRoot.typeName,
78
+ lNodeIds: cluster.lNodeIds,
79
+ children,
80
+ };
81
+ }
82
+ async function loadClusterNodeBase(siteContext, nodeId, documentType) {
83
+ const rows = await createRoutingClusterNodeQuery(siteContext)
84
+ .where("n.id", nodeId)
85
+ .where("n.typeName", documentType.typeName);
86
+ const formattedRows = rows.map((row) => RoutingClusterNodeRowAT.assert(row));
87
+ return buildRoutingClusterNode(formattedRows, documentType.typeName);
88
+ }
89
+ async function loadClusterNodeChildren(siteContext, expectedLanguages, { parentNodeId, childTypes, }) {
90
+ const { siteSchema } = siteContext;
91
+ const rows = await createRoutingClusterNodeQuery(siteContext)
92
+ .where("n.parentId", parentNodeId)
93
+ .whereIn("n.typeName", childTypes.map((t) => t.typeName));
94
+ const formattedRows = rows.map((row) => RoutingClusterNodeRowAT.assert(row));
95
+ const map = new Map();
96
+ for (const row of formattedRows) {
97
+ const typeName = row.typeName;
98
+ if (!map.has(typeName)) {
99
+ const routingClusterNode = buildRoutingClusterNode(formattedRows.filter((r) => r.typeName === typeName), typeName);
100
+ ensureConsistentNodeLanguages(routingClusterNode, expectedLanguages);
101
+ map.set(typeName, routingClusterNode);
102
+ }
103
+ }
104
+ for (const childType of childTypes) {
105
+ const ids = map.get(childType.typeName);
106
+ if (!ids)
107
+ continue;
108
+ const subTypes = routingChildrenOf(siteSchema, childType);
109
+ if (subTypes.length > 0) {
110
+ ids.children = await loadClusterNodeChildren(siteContext, expectedLanguages, {
111
+ parentNodeId: ids.nodeId,
112
+ childTypes: subTypes,
113
+ });
114
+ }
115
+ }
116
+ return Object.fromEntries(map);
117
+ }
118
+ function ensureConsistentNodeLanguages(clusterNode, expectedLanguages) {
119
+ const throwError = () => {
120
+ throw new Error(`Language set inconsistency in cluster: expected languages [${expectedLanguages.join(",")}] but '${clusterNode.nodeId}' has languages [${nodeLanguages.join(",")}]`);
121
+ };
122
+ const nodeLanguages = Object.keys(clusterNode.lNodeIds);
123
+ if (expectedLanguages.length !== nodeLanguages.length)
124
+ throwError();
125
+ for (const lang of expectedLanguages) {
126
+ if (!nodeLanguages.includes(lang))
127
+ throwError();
128
+ }
129
+ }
130
+ function routingChildrenOf(siteSchema, documentType) {
131
+ const typeNames = documentType.routingChildren ?? [];
132
+ return typeNames.map((typeName) => getRoutingDocumentTypeByName(siteSchema, typeName));
133
+ }
134
+ function createRoutingClusterNodeQuery(siteContext) {
135
+ const { cn, siteSchema } = siteContext;
136
+ return cn("PaLNode as l")
137
+ .select("l.nodeId", "l.language", "n.typeName")
138
+ .innerJoin("PaNode as n", "n.id", "l.nodeId")
139
+ .whereIn("l.language", siteSchema.languages);
140
+ }
141
+ const RoutingClusterNodeRowAT = type({
142
+ nodeId: "number",
143
+ language: "string",
144
+ typeName: "string",
145
+ "+": "reject",
146
+ }).pipe((r) => ({
147
+ nodeId: String(r.nodeId),
148
+ language: r.language,
149
+ typeName: r.typeName,
150
+ }));
151
+ function buildRoutingClusterNode(rows, typeName) {
152
+ if (rows.length === 0) {
153
+ throw new Error(`no rows found for routing cluster node of type '${typeName}'`);
154
+ }
155
+ const lNodeIds = {};
156
+ let nodeId;
157
+ for (const row of rows) {
158
+ nodeId = row.nodeId;
159
+ lNodeIds[row.language] = encodeLNodeId(row);
160
+ }
161
+ if (nodeId === undefined)
162
+ throw new Error(`missing nodeId for routing cluster '${typeName}'`);
163
+ return {
164
+ nodeId,
165
+ typeName,
166
+ lNodeIds,
167
+ };
168
+ }
169
+ export async function loadRoutingClusterFromNode(siteContext, fromNode) {
170
+ const { siteSchema } = siteContext;
171
+ const nodeType = siteSchema.nodeTypes[fromNode.typeName];
172
+ if (!nodeType)
173
+ throw new Error(`Unknown node type '${fromNode.typeName}'`);
174
+ if (nodeType.kind === "site")
175
+ throw new Error("Cannot load routing cluster from site node");
176
+ if (isRootOfSubRoutingCluster(nodeType)) {
177
+ return await loadRoutingCluster(siteContext, {
178
+ kind: nodeType.typeName === "home" ? "home" : "sub",
179
+ nodeId: fromNode.nodeId,
180
+ typeName: fromNode.typeName,
181
+ });
182
+ }
183
+ const hierarchy = await loadClusterHierarchy(siteContext, fromNode.nodeId);
184
+ const clusterRoot = hierarchy[0];
185
+ if (!clusterRoot) {
186
+ throw new Error(`No routing cluster hierarchy for node '${fromNode.nodeId}' of type '${fromNode.typeName}'`);
187
+ }
188
+ return await loadRoutingCluster(siteContext, {
189
+ kind: clusterRoot.typeName === "home" ? "home" : "sub",
190
+ nodeId: clusterRoot.nodeId,
191
+ typeName: clusterRoot.typeName,
192
+ });
193
+ }
194
+ export async function loadParentRoutingClusterFromNode(siteContext, fromNode) {
195
+ const { siteSchema } = siteContext;
196
+ const nodeType = siteSchema.nodeTypes[fromNode.typeName];
197
+ if (!nodeType)
198
+ throw new Error(`Unknown node type '${fromNode.typeName}'`);
199
+ if (nodeType.kind === "site")
200
+ return;
201
+ const hierarchy = await loadClusterHierarchy(siteContext, fromNode.nodeId);
202
+ if (hierarchy.length <= 1)
203
+ return;
204
+ const clusterRoot = hierarchy[1];
205
+ return await loadRoutingCluster(siteContext, {
206
+ kind: clusterRoot.typeName === "home" ? "home" : "sub",
207
+ nodeId: clusterRoot.nodeId,
208
+ typeName: clusterRoot.typeName,
209
+ });
210
+ }
211
+ export async function loadRoutingClusterAndParents(siteContext, fromNode) {
212
+ const hierarchy = await loadClusterHierarchy(siteContext, fromNode.nodeId);
213
+ if (hierarchy.length === 0) {
214
+ throw new Error(`No routing cluster hierarchy for node '${fromNode.nodeId}' of type '${fromNode.typeName}'`);
215
+ }
216
+ hierarchy.reverse();
217
+ const clusters = [];
218
+ for (const clusterRoot of hierarchy) {
219
+ const cluster = await loadRoutingCluster(siteContext, {
220
+ kind: clusterRoot.typeName === "home" ? "home" : "sub",
221
+ nodeId: clusterRoot.nodeId,
222
+ typeName: clusterRoot.typeName,
223
+ });
224
+ clusters.push(cluster);
225
+ }
226
+ return clusters;
227
+ }
228
+ const ClusterNodeHierarchyRowAT = type({
229
+ id: "number",
230
+ typeName: "string",
231
+ "+": "reject",
232
+ }).pipe((r) => ({
233
+ id: String(r.id),
234
+ typeName: r.typeName,
235
+ }));
236
+ async function loadClusterHierarchy(siteContext, startNodeId) {
237
+ const { cn, siteSchema } = siteContext;
238
+ const rows = await cn.raw(`
239
+ WITH RECURSIVE hierarchy AS (
240
+ SELECT id, parentId, typeName
241
+ FROM PaNode
242
+ WHERE id = ?
243
+
244
+ UNION ALL
245
+
246
+ -- Recursive case: get parent nodes
247
+ SELECT p.id, p.parentId, p.typeName
248
+ FROM PaNode p
249
+ INNER JOIN hierarchy h ON p.id = h.parentId
250
+ WHERE p.parentId IS NOT NULL
251
+ )
252
+ SELECT id, typeName
253
+ FROM hierarchy
254
+ `, [startNodeId]);
255
+ const candidates = rows.map((row) => ClusterNodeHierarchyRowAT.assert(row));
256
+ const result = [];
257
+ for (const { id: nodeId, typeName } of candidates) {
258
+ const documentType = siteSchema.nodeTypes[typeName];
259
+ if (documentType && isRootOfRoutingCluster(documentType)) {
260
+ result.push({ nodeId, typeName });
261
+ }
262
+ }
263
+ return result;
264
+ }
265
+ //# sourceMappingURL=load-routing-cluster.queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-routing-cluster.queries.js","sourceRoot":"","sources":["../../../src/connector/db-init/load-routing-cluster.queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { AppLogger } from "@paroicms/internal-server-lib";
2
+ import type { ScDocumentType, ScSiteSchema } from "@paroicms/public-anywhere-lib";
3
+ import type { Knex } from "knex";
4
+ import type { SiteContext } from "../../site-context/site-context.types.js";
5
+ export declare function initializeSiteStructure(cn: Knex, siteSchema: ScSiteSchema, logger: AppLogger, fqdn: string): Promise<void>;
6
+ export declare function autoCreateCluster(siteContext: Pick<SiteContext, "siteSchema" | "cn" | "logger" | "fqdn">, rootNode: {
7
+ nodeId: string;
8
+ documentType: ScDocumentType;
9
+ }): Promise<void>;