@servicenow/sdk-build-plugins 4.1.1 → 4.3.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 (388) hide show
  1. package/dist/acl-plugin.js +22 -4
  2. package/dist/acl-plugin.js.map +1 -1
  3. package/dist/applicability-plugin.d.ts +2 -0
  4. package/dist/applicability-plugin.js +72 -0
  5. package/dist/applicability-plugin.js.map +1 -0
  6. package/dist/application-menu-plugin.js +1 -0
  7. package/dist/application-menu-plugin.js.map +1 -1
  8. package/dist/atf/step-configs.d.ts +13 -12
  9. package/dist/atf/step-configs.js.map +1 -1
  10. package/dist/atf/test-plugin.d.ts +1 -1
  11. package/dist/atf/test-plugin.js +13 -7
  12. package/dist/atf/test-plugin.js.map +1 -1
  13. package/dist/basic-syntax-plugin.js +58 -14
  14. package/dist/basic-syntax-plugin.js.map +1 -1
  15. package/dist/business-rule-plugin.js +1 -0
  16. package/dist/business-rule-plugin.js.map +1 -1
  17. package/dist/call-expression-plugin.js +1 -107
  18. package/dist/call-expression-plugin.js.map +1 -1
  19. package/dist/claims-plugin.js +1 -1
  20. package/dist/claims-plugin.js.map +1 -1
  21. package/dist/client-script-plugin.js +5 -17
  22. package/dist/client-script-plugin.js.map +1 -1
  23. package/dist/column/column-helper.d.ts +1 -1
  24. package/dist/column/column-helper.js +46 -2
  25. package/dist/column/column-helper.js.map +1 -1
  26. package/dist/column/column-to-record.js +6 -4
  27. package/dist/column/column-to-record.js.map +1 -1
  28. package/dist/column-plugin.js +107 -28
  29. package/dist/column-plugin.js.map +1 -1
  30. package/dist/dashboard/dashboard-component-property-defaults.d.ts +152 -0
  31. package/dist/dashboard/dashboard-component-property-defaults.js +264 -0
  32. package/dist/dashboard/dashboard-component-property-defaults.js.map +1 -0
  33. package/dist/dashboard/dashboard-component-resolver.d.ts +13 -0
  34. package/dist/dashboard/dashboard-component-resolver.js +69 -0
  35. package/dist/dashboard/dashboard-component-resolver.js.map +1 -0
  36. package/dist/dashboard/dashboard-plugin.d.ts +12 -0
  37. package/dist/dashboard/dashboard-plugin.js +397 -0
  38. package/dist/dashboard/dashboard-plugin.js.map +1 -0
  39. package/dist/data-plugin.d.ts +6 -0
  40. package/dist/data-plugin.js +156 -0
  41. package/dist/data-plugin.js.map +1 -0
  42. package/dist/email-notification-plugin.d.ts +2 -0
  43. package/dist/email-notification-plugin.js +541 -0
  44. package/dist/email-notification-plugin.js.map +1 -0
  45. package/dist/flow/constants/flow-plugin-constants.d.ts +58 -0
  46. package/dist/flow/constants/flow-plugin-constants.js +70 -0
  47. package/dist/flow/constants/flow-plugin-constants.js.map +1 -0
  48. package/dist/flow/flow-logic/flow-logic-constants.d.ts +38 -0
  49. package/dist/flow/flow-logic/flow-logic-constants.js +118 -0
  50. package/dist/flow/flow-logic/flow-logic-constants.js.map +1 -0
  51. package/dist/flow/flow-logic/flow-logic-diagnostics.d.ts +19 -0
  52. package/dist/flow/flow-logic/flow-logic-diagnostics.js +503 -0
  53. package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -0
  54. package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +62 -0
  55. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +2092 -0
  56. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -0
  57. package/dist/flow/flow-logic/flow-logic-plugin.d.ts +52 -0
  58. package/dist/flow/flow-logic/flow-logic-plugin.js +283 -0
  59. package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -0
  60. package/dist/flow/flow-logic/flow-logic-shapes.d.ts +104 -0
  61. package/dist/flow/flow-logic/flow-logic-shapes.js +201 -0
  62. package/dist/flow/flow-logic/flow-logic-shapes.js.map +1 -0
  63. package/dist/flow/plugins/approval-rules-plugin.d.ts +2 -0
  64. package/dist/flow/plugins/approval-rules-plugin.js +49 -0
  65. package/dist/flow/plugins/approval-rules-plugin.js.map +1 -0
  66. package/dist/flow/plugins/flow-action-definition-plugin.d.ts +2 -0
  67. package/dist/flow/plugins/flow-action-definition-plugin.js +286 -0
  68. package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -0
  69. package/dist/flow/plugins/flow-data-pill-plugin.d.ts +9 -0
  70. package/dist/flow/plugins/flow-data-pill-plugin.js +212 -0
  71. package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -0
  72. package/dist/flow/plugins/flow-definition-plugin.d.ts +2 -0
  73. package/dist/flow/plugins/flow-definition-plugin.js +1668 -0
  74. package/dist/flow/plugins/flow-definition-plugin.js.map +1 -0
  75. package/dist/flow/plugins/flow-diagnostics-plugin.d.ts +26 -0
  76. package/dist/flow/plugins/flow-diagnostics-plugin.js +217 -0
  77. package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -0
  78. package/dist/flow/plugins/flow-instance-plugin.d.ts +12 -0
  79. package/dist/flow/plugins/flow-instance-plugin.js +930 -0
  80. package/dist/flow/plugins/flow-instance-plugin.js.map +1 -0
  81. package/dist/flow/plugins/flow-trigger-instance-plugin.d.ts +2 -0
  82. package/dist/flow/plugins/flow-trigger-instance-plugin.js +324 -0
  83. package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -0
  84. package/dist/flow/plugins/inline-script-plugin.d.ts +39 -0
  85. package/dist/flow/plugins/inline-script-plugin.js +80 -0
  86. package/dist/flow/plugins/inline-script-plugin.js.map +1 -0
  87. package/dist/flow/plugins/step-definition-plugin.d.ts +5 -0
  88. package/dist/flow/plugins/step-definition-plugin.js +71 -0
  89. package/dist/flow/plugins/step-definition-plugin.js.map +1 -0
  90. package/dist/flow/plugins/step-instance-plugin.d.ts +31 -0
  91. package/dist/flow/plugins/step-instance-plugin.js +339 -0
  92. package/dist/flow/plugins/step-instance-plugin.js.map +1 -0
  93. package/dist/flow/plugins/trigger-plugin.d.ts +2 -0
  94. package/dist/flow/plugins/trigger-plugin.js +96 -0
  95. package/dist/flow/plugins/trigger-plugin.js.map +1 -0
  96. package/dist/flow/plugins/wfa-datapill-plugin.d.ts +15 -0
  97. package/dist/flow/plugins/wfa-datapill-plugin.js +178 -0
  98. package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -0
  99. package/dist/flow/utils/approval-rules-processor.d.ts +13 -0
  100. package/dist/flow/utils/approval-rules-processor.js +267 -0
  101. package/dist/flow/utils/approval-rules-processor.js.map +1 -0
  102. package/dist/flow/utils/built-in-complex-objects.d.ts +19 -0
  103. package/dist/flow/utils/built-in-complex-objects.js +62 -0
  104. package/dist/flow/utils/built-in-complex-objects.js.map +1 -0
  105. package/dist/flow/utils/complex-object-resolver.d.ts +8 -0
  106. package/dist/flow/utils/complex-object-resolver.js +614 -0
  107. package/dist/flow/utils/complex-object-resolver.js.map +1 -0
  108. package/dist/flow/utils/complex-objects.d.ts +36 -0
  109. package/dist/flow/utils/complex-objects.js +481 -0
  110. package/dist/flow/utils/complex-objects.js.map +1 -0
  111. package/dist/flow/utils/data-pill-shapes.d.ts +58 -0
  112. package/dist/flow/utils/data-pill-shapes.js +135 -0
  113. package/dist/flow/utils/data-pill-shapes.js.map +1 -0
  114. package/dist/flow/utils/datapill-transformer.d.ts +110 -0
  115. package/dist/flow/utils/datapill-transformer.js +503 -0
  116. package/dist/flow/utils/datapill-transformer.js.map +1 -0
  117. package/dist/flow/utils/flow-constants.d.ts +65 -0
  118. package/dist/flow/utils/flow-constants.js +223 -0
  119. package/dist/flow/utils/flow-constants.js.map +1 -0
  120. package/dist/flow/utils/flow-io-to-record.d.ts +44 -0
  121. package/dist/flow/utils/flow-io-to-record.js +409 -0
  122. package/dist/flow/utils/flow-io-to-record.js.map +1 -0
  123. package/dist/flow/utils/flow-shapes.d.ts +161 -0
  124. package/dist/flow/utils/flow-shapes.js +255 -0
  125. package/dist/flow/utils/flow-shapes.js.map +1 -0
  126. package/dist/flow/utils/flow-to-xml.d.ts +16 -0
  127. package/dist/flow/utils/flow-to-xml.js +237 -0
  128. package/dist/flow/utils/flow-to-xml.js.map +1 -0
  129. package/dist/flow/utils/flow-variable-processor.d.ts +51 -0
  130. package/dist/flow/utils/flow-variable-processor.js +69 -0
  131. package/dist/flow/utils/flow-variable-processor.js.map +1 -0
  132. package/dist/flow/utils/label-cache-parser.d.ts +7 -0
  133. package/dist/flow/utils/label-cache-parser.js +24 -0
  134. package/dist/flow/utils/label-cache-parser.js.map +1 -0
  135. package/dist/flow/utils/label-cache-processor.d.ts +119 -0
  136. package/dist/flow/utils/label-cache-processor.js +719 -0
  137. package/dist/flow/utils/label-cache-processor.js.map +1 -0
  138. package/dist/flow/utils/pill-string-parser.d.ts +88 -0
  139. package/dist/flow/utils/pill-string-parser.js +306 -0
  140. package/dist/flow/utils/pill-string-parser.js.map +1 -0
  141. package/dist/flow/utils/schema-to-flow-object.d.ts +22 -0
  142. package/dist/flow/utils/schema-to-flow-object.js +318 -0
  143. package/dist/flow/utils/schema-to-flow-object.js.map +1 -0
  144. package/dist/flow/utils/utils.d.ts +117 -0
  145. package/dist/flow/utils/utils.js +345 -0
  146. package/dist/flow/utils/utils.js.map +1 -0
  147. package/dist/import-sets-plugin.d.ts +2 -0
  148. package/dist/import-sets-plugin.js +412 -0
  149. package/dist/import-sets-plugin.js.map +1 -0
  150. package/dist/index.d.ts +24 -1
  151. package/dist/index.js +25 -1
  152. package/dist/index.js.map +1 -1
  153. package/dist/json-plugin.d.ts +4 -4
  154. package/dist/json-plugin.js +21 -7
  155. package/dist/json-plugin.js.map +1 -1
  156. package/dist/list-plugin.js +83 -1
  157. package/dist/list-plugin.js.map +1 -1
  158. package/dist/now-attach-plugin.d.ts +36 -0
  159. package/dist/now-attach-plugin.js +320 -0
  160. package/dist/now-attach-plugin.js.map +1 -0
  161. package/dist/now-config-plugin.js +3 -0
  162. package/dist/now-config-plugin.js.map +1 -1
  163. package/dist/now-include-plugin.js +7 -1
  164. package/dist/now-include-plugin.js.map +1 -1
  165. package/dist/package-json-plugin.js +2 -2
  166. package/dist/package-json-plugin.js.map +1 -1
  167. package/dist/record-plugin.d.ts +35 -0
  168. package/dist/record-plugin.js +109 -23
  169. package/dist/record-plugin.js.map +1 -1
  170. package/dist/repack/index.d.ts +2 -0
  171. package/dist/repack/index.js +8 -0
  172. package/dist/repack/index.js.map +1 -1
  173. package/dist/repack/lint/Rules.js.map +1 -1
  174. package/dist/rest-api-plugin.js +81 -74
  175. package/dist/rest-api-plugin.js.map +1 -1
  176. package/dist/role-plugin.js +1 -0
  177. package/dist/role-plugin.js.map +1 -1
  178. package/dist/server-module-plugin/index.js +53 -6
  179. package/dist/server-module-plugin/index.js.map +1 -1
  180. package/dist/service-catalog/catalog-clientscript-plugin.d.ts +2 -0
  181. package/dist/service-catalog/catalog-clientscript-plugin.js +117 -0
  182. package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -0
  183. package/dist/service-catalog/catalog-item-plugin.d.ts +2 -0
  184. package/dist/service-catalog/catalog-item-plugin.js +115 -0
  185. package/dist/service-catalog/catalog-item-plugin.js.map +1 -0
  186. package/dist/service-catalog/catalog-ui-policy-plugin.d.ts +2 -0
  187. package/dist/service-catalog/catalog-ui-policy-plugin.js +266 -0
  188. package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -0
  189. package/dist/service-catalog/index.d.ts +5 -0
  190. package/dist/service-catalog/index.js +22 -0
  191. package/dist/service-catalog/index.js.map +1 -0
  192. package/dist/service-catalog/record-to-shape.d.ts +6 -0
  193. package/dist/service-catalog/record-to-shape.js +93 -0
  194. package/dist/service-catalog/record-to-shape.js.map +1 -0
  195. package/dist/service-catalog/sc-record-producer-plugin.d.ts +2 -0
  196. package/dist/service-catalog/sc-record-producer-plugin.js +139 -0
  197. package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -0
  198. package/dist/service-catalog/service-catalog-base.d.ts +311 -0
  199. package/dist/service-catalog/service-catalog-base.js +542 -0
  200. package/dist/service-catalog/service-catalog-base.js.map +1 -0
  201. package/dist/service-catalog/service-catalog-diagnostics.d.ts +45 -0
  202. package/dist/service-catalog/service-catalog-diagnostics.js +169 -0
  203. package/dist/service-catalog/service-catalog-diagnostics.js.map +1 -0
  204. package/dist/service-catalog/shape-to-record.d.ts +7 -0
  205. package/dist/service-catalog/shape-to-record.js +232 -0
  206. package/dist/service-catalog/shape-to-record.js.map +1 -0
  207. package/dist/service-catalog/utils.d.ts +313 -0
  208. package/dist/service-catalog/utils.js +1144 -0
  209. package/dist/service-catalog/utils.js.map +1 -0
  210. package/dist/service-catalog/variable-helper.d.ts +43 -0
  211. package/dist/service-catalog/variable-helper.js +92 -0
  212. package/dist/service-catalog/variable-helper.js.map +1 -0
  213. package/dist/service-catalog/variable-set-plugin.d.ts +2 -0
  214. package/dist/service-catalog/variable-set-plugin.js +175 -0
  215. package/dist/service-catalog/variable-set-plugin.js.map +1 -0
  216. package/dist/service-catalog/variables-transform.d.ts +139 -0
  217. package/dist/service-catalog/variables-transform.js +403 -0
  218. package/dist/service-catalog/variables-transform.js.map +1 -0
  219. package/dist/service-portal/widget-plugin.js +4 -1
  220. package/dist/service-portal/widget-plugin.js.map +1 -1
  221. package/dist/sla/sla-validators.d.ts +61 -0
  222. package/dist/sla/sla-validators.js +224 -0
  223. package/dist/sla/sla-validators.js.map +1 -0
  224. package/dist/sla-plugin.d.ts +5 -0
  225. package/dist/sla-plugin.js +280 -0
  226. package/dist/sla-plugin.js.map +1 -0
  227. package/dist/static-content-plugin.d.ts +1 -0
  228. package/dist/static-content-plugin.js +4 -3
  229. package/dist/static-content-plugin.js.map +1 -1
  230. package/dist/table-plugin.js +49 -4
  231. package/dist/table-plugin.js.map +1 -1
  232. package/dist/ui-page-plugin.js +2 -1
  233. package/dist/ui-page-plugin.js.map +1 -1
  234. package/dist/ui-policy-plugin.d.ts +2 -0
  235. package/dist/ui-policy-plugin.js +405 -0
  236. package/dist/ui-policy-plugin.js.map +1 -0
  237. package/dist/utils.d.ts +19 -1
  238. package/dist/utils.js +40 -0
  239. package/dist/utils.js.map +1 -1
  240. package/dist/ux-list-menu-config-plugin.d.ts +2 -0
  241. package/dist/ux-list-menu-config-plugin.js +292 -0
  242. package/dist/ux-list-menu-config-plugin.js.map +1 -0
  243. package/dist/view-plugin.js +1 -1
  244. package/dist/view-plugin.js.map +1 -1
  245. package/dist/workspace-plugin/chrome-tab.d.ts +2 -0
  246. package/dist/workspace-plugin/chrome-tab.js +46 -0
  247. package/dist/workspace-plugin/chrome-tab.js.map +1 -0
  248. package/dist/workspace-plugin/constants.d.ts +52 -0
  249. package/dist/workspace-plugin/constants.js +56 -0
  250. package/dist/workspace-plugin/constants.js.map +1 -0
  251. package/dist/workspace-plugin/fluent-utils.d.ts +9 -0
  252. package/dist/workspace-plugin/fluent-utils.js +60 -0
  253. package/dist/workspace-plugin/fluent-utils.js.map +1 -0
  254. package/dist/workspace-plugin/page.d.ts +8 -0
  255. package/dist/workspace-plugin/page.js +108 -0
  256. package/dist/workspace-plugin/page.js.map +1 -0
  257. package/dist/workspace-plugin/screen.d.ts +1 -0
  258. package/dist/workspace-plugin/screen.js +38 -0
  259. package/dist/workspace-plugin/screen.js.map +1 -0
  260. package/dist/workspace-plugin/templates/index.d.ts +10 -0
  261. package/dist/workspace-plugin/templates/index.js +20 -0
  262. package/dist/workspace-plugin/templates/index.js.map +1 -0
  263. package/dist/workspace-plugin/templates/record-page-composition.d.ts +1 -0
  264. package/dist/workspace-plugin/templates/record-page-composition.js +4043 -0
  265. package/dist/workspace-plugin/templates/record-page-composition.js.map +1 -0
  266. package/dist/workspace-plugin/templates/record-page-data.d.ts +1 -0
  267. package/dist/workspace-plugin/templates/record-page-data.js +527 -0
  268. package/dist/workspace-plugin/templates/record-page-data.js.map +1 -0
  269. package/dist/workspace-plugin/templates/record-page-interalEventMappings.d.ts +1 -0
  270. package/dist/workspace-plugin/templates/record-page-interalEventMappings.js +39 -0
  271. package/dist/workspace-plugin/templates/record-page-interalEventMappings.js.map +1 -0
  272. package/dist/workspace-plugin/templates/record-page-layoutModel.d.ts +1 -0
  273. package/dist/workspace-plugin/templates/record-page-layoutModel.js +55 -0
  274. package/dist/workspace-plugin/templates/record-page-layoutModel.js.map +1 -0
  275. package/dist/workspace-plugin/templates/record-page-properties.d.ts +1 -0
  276. package/dist/workspace-plugin/templates/record-page-properties.js +135 -0
  277. package/dist/workspace-plugin/templates/record-page-properties.js.map +1 -0
  278. package/dist/workspace-plugin/templates/record-page.d.ts +3 -0
  279. package/dist/workspace-plugin/templates/record-page.js +8 -0
  280. package/dist/workspace-plugin/templates/record-page.js.map +1 -0
  281. package/dist/workspace-plugin.d.ts +2 -0
  282. package/dist/workspace-plugin.js +453 -0
  283. package/dist/workspace-plugin.js.map +1 -0
  284. package/package.json +10 -12
  285. package/src/_types/eslint-plugin-es-x.d.ts +17 -0
  286. package/src/_types/md5.js.d.ts +8 -0
  287. package/src/acl-plugin.ts +33 -10
  288. package/src/applicability-plugin.ts +82 -0
  289. package/src/application-menu-plugin.ts +1 -0
  290. package/src/atf/step-configs.ts +14 -12
  291. package/src/atf/test-plugin.ts +46 -24
  292. package/src/basic-syntax-plugin.ts +71 -14
  293. package/src/business-rule-plugin.ts +9 -5
  294. package/src/call-expression-plugin.ts +2 -130
  295. package/src/claims-plugin.ts +1 -1
  296. package/src/client-script-plugin.ts +8 -22
  297. package/src/column/column-helper.ts +65 -3
  298. package/src/column/column-to-record.ts +6 -4
  299. package/src/column-plugin.ts +142 -40
  300. package/src/dashboard/dashboard-component-property-defaults.ts +277 -0
  301. package/src/dashboard/dashboard-component-resolver.ts +69 -0
  302. package/src/dashboard/dashboard-plugin.ts +450 -0
  303. package/src/data-plugin.ts +194 -0
  304. package/src/email-notification-plugin.ts +850 -0
  305. package/src/flow/constants/flow-plugin-constants.ts +79 -0
  306. package/src/flow/flow-logic/flow-logic-constants.ts +120 -0
  307. package/src/flow/flow-logic/flow-logic-diagnostics.ts +591 -0
  308. package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +2550 -0
  309. package/src/flow/flow-logic/flow-logic-plugin.ts +337 -0
  310. package/src/flow/flow-logic/flow-logic-shapes.ts +215 -0
  311. package/src/flow/plugins/approval-rules-plugin.ts +48 -0
  312. package/src/flow/plugins/flow-action-definition-plugin.ts +295 -0
  313. package/src/flow/plugins/flow-data-pill-plugin.ts +258 -0
  314. package/src/flow/plugins/flow-definition-plugin.ts +2173 -0
  315. package/src/flow/plugins/flow-diagnostics-plugin.ts +280 -0
  316. package/src/flow/plugins/flow-instance-plugin.ts +1148 -0
  317. package/src/flow/plugins/flow-trigger-instance-plugin.ts +426 -0
  318. package/src/flow/plugins/inline-script-plugin.ts +83 -0
  319. package/src/flow/plugins/step-definition-plugin.ts +67 -0
  320. package/src/flow/plugins/step-instance-plugin.ts +431 -0
  321. package/src/flow/plugins/trigger-plugin.ts +95 -0
  322. package/src/flow/plugins/wfa-datapill-plugin.ts +213 -0
  323. package/src/flow/utils/approval-rules-processor.ts +298 -0
  324. package/src/flow/utils/built-in-complex-objects.ts +81 -0
  325. package/src/flow/utils/complex-object-resolver.ts +875 -0
  326. package/src/flow/utils/complex-objects.ts +656 -0
  327. package/src/flow/utils/data-pill-shapes.ts +165 -0
  328. package/src/flow/utils/datapill-transformer.ts +632 -0
  329. package/src/flow/utils/flow-constants.ts +276 -0
  330. package/src/flow/utils/flow-io-to-record.ts +533 -0
  331. package/src/flow/utils/flow-shapes.ts +296 -0
  332. package/src/flow/utils/flow-to-xml.ts +318 -0
  333. package/src/flow/utils/flow-variable-processor.ts +100 -0
  334. package/src/flow/utils/label-cache-parser.ts +37 -0
  335. package/src/flow/utils/label-cache-processor.ts +870 -0
  336. package/src/flow/utils/pill-string-parser.ts +375 -0
  337. package/src/flow/utils/schema-to-flow-object.ts +385 -0
  338. package/src/flow/utils/utils.ts +395 -0
  339. package/src/import-sets-plugin.ts +542 -0
  340. package/src/index.ts +25 -1
  341. package/src/json-plugin.ts +31 -12
  342. package/src/list-plugin.ts +91 -1
  343. package/src/now-attach-plugin.ts +403 -0
  344. package/src/now-config-plugin.ts +6 -2
  345. package/src/now-include-plugin.ts +8 -1
  346. package/src/package-json-plugin.ts +3 -3
  347. package/src/record-plugin.ts +126 -30
  348. package/src/repack/index.ts +14 -0
  349. package/src/repack/lint/Rules.ts +1 -10
  350. package/src/rest-api-plugin.ts +106 -100
  351. package/src/role-plugin.ts +1 -0
  352. package/src/server-module-plugin/index.ts +74 -22
  353. package/src/service-catalog/catalog-clientscript-plugin.ts +140 -0
  354. package/src/service-catalog/catalog-item-plugin.ts +162 -0
  355. package/src/service-catalog/catalog-ui-policy-plugin.ts +324 -0
  356. package/src/service-catalog/index.ts +5 -0
  357. package/src/service-catalog/record-to-shape.ts +109 -0
  358. package/src/service-catalog/sc-record-producer-plugin.ts +201 -0
  359. package/src/service-catalog/service-catalog-base.ts +600 -0
  360. package/src/service-catalog/service-catalog-diagnostics.ts +251 -0
  361. package/src/service-catalog/shape-to-record.ts +275 -0
  362. package/src/service-catalog/utils.ts +1362 -0
  363. package/src/service-catalog/variable-helper.ts +135 -0
  364. package/src/service-catalog/variable-set-plugin.ts +197 -0
  365. package/src/service-catalog/variables-transform.ts +438 -0
  366. package/src/service-portal/widget-plugin.ts +4 -1
  367. package/src/sla/sla-validators.ts +331 -0
  368. package/src/sla-plugin.ts +358 -0
  369. package/src/static-content-plugin.ts +2 -2
  370. package/src/table-plugin.ts +66 -9
  371. package/src/ui-page-plugin.ts +2 -1
  372. package/src/ui-policy-plugin.ts +505 -0
  373. package/src/utils.ts +50 -1
  374. package/src/ux-list-menu-config-plugin.ts +312 -0
  375. package/src/view-plugin.ts +1 -1
  376. package/src/workspace-plugin/chrome-tab.ts +44 -0
  377. package/src/workspace-plugin/constants.ts +53 -0
  378. package/src/workspace-plugin/fluent-utils.ts +60 -0
  379. package/src/workspace-plugin/page.ts +139 -0
  380. package/src/workspace-plugin/screen.ts +34 -0
  381. package/src/workspace-plugin/templates/index.ts +17 -0
  382. package/src/workspace-plugin/templates/record-page-composition.ts +4051 -0
  383. package/src/workspace-plugin/templates/record-page-data.ts +523 -0
  384. package/src/workspace-plugin/templates/record-page-interalEventMappings.ts +35 -0
  385. package/src/workspace-plugin/templates/record-page-layoutModel.ts +51 -0
  386. package/src/workspace-plugin/templates/record-page-properties.ts +131 -0
  387. package/src/workspace-plugin/templates/record-page.ts +6 -0
  388. package/src/workspace-plugin.ts +574 -0
@@ -0,0 +1,574 @@
1
+ import {
2
+ Plugin,
3
+ CallExpressionShape,
4
+ type Factory,
5
+ type Record,
6
+ type Shape,
7
+ type ObjectShape,
8
+ } from '@servicenow/sdk-build-core'
9
+ import { NowIdShape } from './now-id-plugin'
10
+ import { parsePagePropChromeTabJson, createChromeTabJsonStringForPageProp } from './workspace-plugin/chrome-tab'
11
+ import { createPage } from './workspace-plugin/page'
12
+ import {
13
+ getExplicitIdGenerator,
14
+ buildRecordKey,
15
+ doesActualRecordMatchGeneratedRecord,
16
+ serializeActualRecordAsOverrideToTheDefault,
17
+ } from './workspace-plugin/fluent-utils'
18
+
19
+ const PAGE_PROP_NAME = {
20
+ CHROME_TAB: 'chrome_tab',
21
+ CHROME_TOOLBAR: 'chrome_toolbar',
22
+ LISTCONFIGID: 'listConfigId',
23
+ VIEW: 'view',
24
+ WAPPLICABILITYCONFIGID: 'wbApplicabilityConfigId',
25
+ CHROME_HEADER: 'chrome_header',
26
+ CHROME_FOOTER: 'chrome_footer',
27
+ }
28
+
29
+ const EXPERIENCE_CATEGORIES = {
30
+ WORKSPACE: 'afb4e3e173322010f0ca1e666bf6a726',
31
+ }
32
+
33
+ const DEFAULT_LANDING_PATH = 'home'
34
+ const DEFAULT_LISTCONFIGID = 'd305c0a873601010a0a79329faf6a7cb'
35
+
36
+ type RecordKeyToRecord = { [recordKey: string]: Record }
37
+ type DefaultRecordOverrides = { [recordKey: string]: { [fieldName: string]: string } }
38
+
39
+ // This "other" Transform class is not exported, need to grab it like this.
40
+ type InnerTransformFromObjectShape = Parameters<Parameters<ObjectShape['transform']>[0]>[0]['$']
41
+
42
+ export const WorkspacePlugin = Plugin.create({
43
+ name: 'WorkspacePlugin',
44
+ records: {
45
+ sys_ux_page_registry: {
46
+ relationships: {
47
+ sys_ux_registry_m2m_category: {
48
+ via: (parent, child) =>
49
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
50
+ parent.getId().getValue() ===
51
+ (child.get('page_registry').isRecord()
52
+ ? child.get('page_registry').asRecord().getId().getValue()
53
+ : child.get('page_registry').asString().getValue()),
54
+ descendant: true,
55
+ },
56
+ sys_ux_page_property: {
57
+ via: (parent, child) =>
58
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
59
+ parent.getId().getValue() ===
60
+ (child.get('page').isRecord()
61
+ ? child.get('page').asRecord().getId().getValue()
62
+ : child.get('page').asString().getValue()),
63
+ descendant: true,
64
+ },
65
+ sys_ux_app_config: {
66
+ via: (parent, child) =>
67
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
68
+ child.getId().getValue() ===
69
+ (parent.get('admin_panel').isRecord()
70
+ ? parent.get('admin_panel').asRecord().getId().getValue()
71
+ : parent.get('admin_panel').asString().getValue()),
72
+ descendant: true,
73
+ relationships: {
74
+ sys_ux_screen: {
75
+ via: (parent, child) =>
76
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
77
+ parent.getId().getValue() ===
78
+ (child.get('app_config').isRecord()
79
+ ? child.get('app_config').asRecord().getId().getValue()
80
+ : child.get('app_config').asString().getValue()),
81
+ descendant: true,
82
+ relationships: {
83
+ sys_ux_macroponent: {
84
+ via: (parent, child) =>
85
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
86
+ child.getId().getValue() ===
87
+ (parent.get('macroponent').isRecord()
88
+ ? parent.get('macroponent').asRecord().getId().getValue()
89
+ : parent.get('macroponent').asString().getValue()),
90
+ descendant: true,
91
+ },
92
+ },
93
+ },
94
+ sys_ux_app_route: {
95
+ via: (parent, child) =>
96
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
97
+ parent.getId().getValue() ===
98
+ (child.get('app_config').isRecord()
99
+ ? child.get('app_config').asRecord().getId().getValue()
100
+ : child.get('app_config').asString().getValue()),
101
+ descendant: true,
102
+ relationships: {
103
+ sys_ux_screen_type: {
104
+ via: (parent, child) =>
105
+ child.getCreator()?.getName() === 'WorkspacePlugin' &&
106
+ child.getId().getValue() ===
107
+ (parent.get('screen_type').isRecord()
108
+ ? parent.get('screen_type').asRecord().getId().getValue()
109
+ : parent.get('screen_type').asString().getValue()),
110
+ descendant: true,
111
+ },
112
+ },
113
+ },
114
+ },
115
+ },
116
+ },
117
+ async toShape(pageRegRecord, { factory, descendants }) {
118
+ if (pageRegRecord.getCreator()?.getName() !== 'WorkspacePlugin') {
119
+ return { success: false }
120
+ }
121
+ // Get 'path' and 'title'
122
+ // TODO 'active'
123
+ const path: string = pageRegRecord.get('path').asString().getValue() ?? ''
124
+ const title: string = pageRegRecord.get('title').asString().getValue() ?? ''
125
+ const active: boolean = pageRegRecord.get('active').toBoolean().getValue() ?? false
126
+
127
+ // get 'landingPath'
128
+ const appConfigRecords = descendants.query('sys_ux_app_config')
129
+ const appConfigRecord = appConfigRecords[0]
130
+ if (!appConfigRecord || appConfigRecords.length !== 1) {
131
+ return { success: false }
132
+ }
133
+ const landingPath: string = appConfigRecord.get('landing_path').asString().getValue() ?? ''
134
+
135
+ // Get 'tables'
136
+ let tables: string[] = []
137
+ const pageProps = descendants.query('sys_ux_page_property')
138
+ const chromeTabPageProp = pageProps.find(
139
+ (prop) => prop.get('name').asString().getValue() === PAGE_PROP_NAME.CHROME_TAB
140
+ )
141
+ if (chromeTabPageProp) {
142
+ const chromeTab = chromeTabPageProp.get('value').asString().getValue()
143
+ tables = parsePagePropChromeTabJson(chromeTab)
144
+ }
145
+
146
+ // Get 'listConfig' reference
147
+ let listConfigRef: string | Shape<unknown> = ''
148
+ const listConfigIdProp = pageProps.find(
149
+ (prop) => prop.get('name').asString().getValue() === PAGE_PROP_NAME.LISTCONFIGID
150
+ )
151
+ if (listConfigIdProp) {
152
+ const listConfig = listConfigIdProp.get('value')
153
+ listConfigRef = listConfig.isString()
154
+ ? await factory.createReference({
155
+ source: pageRegRecord,
156
+ table: 'sys_ux_list_menu_config',
157
+ guid: listConfig,
158
+ })
159
+ : listConfig
160
+ }
161
+
162
+ let callExpressionShape = createWorkspaceCallExpression({
163
+ pageRegRecord,
164
+ title,
165
+ active,
166
+ landingPath,
167
+ path,
168
+ tables,
169
+ listConfigRef,
170
+ })
171
+
172
+ /*
173
+ * Collecting all the input props for the call expression is now complete (above).
174
+ *
175
+ * Now, we need to generate a snapshot of all the records it would have produced,
176
+ * so that we can start the reconcile process of determining if any of our workspace
177
+ * records have been tampered/edited by the user outside of the capabilities
178
+ * of the workspace plugin. generateAllImplicitRecordsFromCallExpression() is the same
179
+ * exact function that is used during toRecord().
180
+ *
181
+ * This snapshot will be used to compare against ACTUAL records
182
+ * in the database and determine which records we need to start data-dumping
183
+ * into the defaultRecordOverrides field of the workspace plugin.
184
+ */
185
+
186
+ const generatedRecords = await generateAllImplicitRecordsFromCallExpression({
187
+ callExpressionShape,
188
+ factory,
189
+ })
190
+
191
+ const queried: { [table: string]: Record[] } = {}
192
+ const defaultRecordOverrides: DefaultRecordOverrides = {}
193
+
194
+ Object.entries(generatedRecords).forEach(([recordKey, generatedRecord]) => {
195
+ const gRecordTable = generatedRecord.getTable()
196
+ const gRecordSysId = generatedRecord.getId().getValue()
197
+ if (!queried[gRecordTable]) {
198
+ queried[gRecordTable] = descendants.query(gRecordTable)
199
+ }
200
+ const actualRecord = queried[gRecordTable].find((r) => r.getId().getValue() === gRecordSysId)
201
+ if (actualRecord) {
202
+ const isActualRecordTamperFree = doesActualRecordMatchGeneratedRecord(
203
+ actualRecord,
204
+ generatedRecord
205
+ )
206
+ if (!isActualRecordTamperFree) {
207
+ const serializedActualRecordValue = serializeActualRecordAsOverrideToTheDefault(
208
+ actualRecord,
209
+ generatedRecord
210
+ )
211
+ defaultRecordOverrides[recordKey] = serializedActualRecordValue
212
+ }
213
+ }
214
+ })
215
+
216
+ callExpressionShape = createWorkspaceCallExpression({
217
+ pageRegRecord,
218
+ title,
219
+ active,
220
+ path,
221
+ landingPath,
222
+ tables,
223
+ listConfigRef,
224
+ defaultRecordOverrides,
225
+ })
226
+
227
+ return {
228
+ success: true,
229
+ value: callExpressionShape,
230
+ }
231
+ },
232
+ },
233
+ },
234
+ shapes: [
235
+ {
236
+ shape: CallExpressionShape,
237
+ fileTypes: ['fluent'],
238
+ async toRecord(source, { factory }) {
239
+ if (source.getCallee() !== 'Workspace') {
240
+ return { success: false }
241
+ }
242
+
243
+ const arg = source.getArgument(0).asObject()
244
+
245
+ // Generate all the implicit records for a workspace based on the call expression
246
+ const generatedRecords = await generateAllImplicitRecordsFromCallExpression({
247
+ callExpressionShape: source,
248
+ factory,
249
+ })
250
+
251
+ // Get the defaultRecordOverrides from the call expression arguments, to see if we need
252
+ // to override any of the generated records. This could happen if the user modified
253
+ // the records from the platform side in a way that is unsupported by this plugin.
254
+ const defaultRecordOverrides = (arg.get('defaultRecordOverrides').getValue() ??
255
+ {}) as DefaultRecordOverrides
256
+
257
+ // Loop through the records, patching in any overrides as needed
258
+ const patchedRecords = await Promise.all(
259
+ Object.entries(generatedRecords).map(async ([recordKey, generatedRecord]) => {
260
+ const overridingRecord = defaultRecordOverrides[recordKey]
261
+ if (!overridingRecord) {
262
+ return generatedRecord
263
+ }
264
+ return await factory.createRecord({
265
+ source: source,
266
+ table: generatedRecord.getTable(),
267
+ explicitId: generatedRecord.getId(),
268
+ properties: arg.transform(({ $ }) => {
269
+ return generatedRecord
270
+ .keys()
271
+ .reduce<{ [key: string]: InnerTransformFromObjectShape }>((acc, fieldName) => {
272
+ acc[fieldName] = $.val(overridingRecord[fieldName])
273
+ return acc
274
+ }, {})
275
+ }),
276
+ })
277
+ })
278
+ )
279
+
280
+ const records = patchedRecords
281
+ const pageRegRecord = records[0]
282
+ const restRecords = records.slice(1)
283
+ if (!pageRegRecord) {
284
+ return { success: false, error: 'No records generated, very unexpected' }
285
+ }
286
+ return {
287
+ success: true,
288
+ // Silly thing we have to do because the plugin system expects a single record
289
+ value: pageRegRecord.with(...restRecords),
290
+ }
291
+ },
292
+ },
293
+ ],
294
+ })
295
+
296
+ const generateAllImplicitRecordsFromCallExpression = async ({
297
+ callExpressionShape,
298
+ factory,
299
+ }: {
300
+ callExpressionShape: CallExpressionShape
301
+ factory: Factory
302
+ }): Promise<RecordKeyToRecord> => {
303
+ const arg = callExpressionShape.getArgument(0).asObject()
304
+ const explicitIdGenerator = getExplicitIdGenerator(callExpressionShape, arg.get('$id').getValue() as string)
305
+
306
+ const appConfig = await factory.createRecord({
307
+ source: callExpressionShape,
308
+ table: 'sys_ux_app_config',
309
+ explicitId: explicitIdGenerator('sys_ux_app_config', 'workspace'),
310
+ properties: arg.transform(({ $ }) => ({
311
+ name: $.from('title'),
312
+ landing_path: $.from('landingPath').def(DEFAULT_LANDING_PATH),
313
+ active: $.val(true),
314
+ description: $.val('Workspace created by Fluent'),
315
+ custom_icon: $.val(''),
316
+ icon: $.val(''),
317
+ disable_auto_reflow: $.val(false),
318
+ encode_query_string: $.val(false),
319
+ })),
320
+ })
321
+
322
+ const pageRegistry = await factory.createRecord({
323
+ source: callExpressionShape,
324
+ table: 'sys_ux_page_registry',
325
+ explicitId: arg.get('$id'),
326
+ properties: arg.transform(({ $ }) => ({
327
+ admin_panel: $.val(appConfig), // how to reference another record
328
+ admin_panel_table: $.val('sys_ux_app_config'),
329
+ root_macroponent: $.val('c276387cc331101080d6d3658940ddd2'),
330
+ parent_app: $.val('c86a62e2c7022010099a308dc7c26022'),
331
+ title: $,
332
+ path: $,
333
+ active: $.toBoolean().def(true),
334
+ page: $.val(''),
335
+ auth_routes: $.val(''),
336
+ })),
337
+ })
338
+
339
+ const unifiedNav = await factory.createRecord({
340
+ source: callExpressionShape,
341
+ table: 'sys_ux_registry_m2m_category',
342
+ explicitId: explicitIdGenerator('sys_ux_registry_m2m_category', 'unifiedNav'),
343
+ properties: arg.transform(({ $ }) => ({
344
+ experience_category: $.val(EXPERIENCE_CATEGORIES.WORKSPACE),
345
+ order: $.toNumber().def(1000),
346
+ page_registry: $.val(pageRegistry),
347
+ })),
348
+ })
349
+
350
+ const pagePropRecords = await generatePagePropRecordsFromCallExpression({
351
+ callExpressionShape,
352
+ factory,
353
+ appConfig,
354
+ pageRegistry,
355
+ })
356
+
357
+ const listPage = await createPage({
358
+ factory,
359
+ arg,
360
+ callExpressionShape,
361
+ appConfig,
362
+ type: 'list',
363
+ })
364
+
365
+ const defaultRecordPage = await createPage({
366
+ factory,
367
+ arg,
368
+ callExpressionShape,
369
+ appConfig,
370
+ type: 'record',
371
+ })
372
+
373
+ const dashboardPage = await createPage({
374
+ factory,
375
+ arg,
376
+ callExpressionShape,
377
+ appConfig,
378
+ type: 'home',
379
+ })
380
+
381
+ const simpleListPage = await createPage({
382
+ factory,
383
+ arg,
384
+ callExpressionShape,
385
+ appConfig,
386
+ type: 'simple-list',
387
+ })
388
+
389
+ const workspacePages = [...listPage, ...defaultRecordPage, ...dashboardPage, ...simpleListPage].reduce<{
390
+ [recordKey: string]: Record
391
+ }>((acc, record) => {
392
+ acc[buildRecordKey(record)] = record
393
+ return acc
394
+ }, {})
395
+
396
+ // Order matters. Since pageReg is first, it will represent the workspace plugin
397
+ // when we return from the toShape() function. The other records are treated like
398
+ // side effects of creating a page registry to represent the workspace.
399
+ return {
400
+ [buildRecordKey(pageRegistry)]: pageRegistry,
401
+ [buildRecordKey(appConfig)]: appConfig,
402
+ [buildRecordKey(unifiedNav)]: unifiedNav,
403
+ ...pagePropRecords,
404
+ ...workspacePages,
405
+ }
406
+ }
407
+
408
+ const generatePagePropRecordsFromCallExpression = async ({
409
+ callExpressionShape,
410
+ factory,
411
+ appConfig,
412
+ pageRegistry,
413
+ }: {
414
+ callExpressionShape: CallExpressionShape
415
+ factory: Factory
416
+ appConfig: Record
417
+ pageRegistry: Record
418
+ }) => {
419
+ const arg = callExpressionShape.getArgument(0).asObject()
420
+
421
+ const explicitIdGenerator = getExplicitIdGenerator(callExpressionShape, arg.get('$id').getValue() as string)
422
+
423
+ const pagePropRecordDetails = [
424
+ {
425
+ name: PAGE_PROP_NAME.CHROME_TOOLBAR,
426
+ type: 'json',
427
+ value: ($: InnerTransformFromObjectShape) =>
428
+ $.val(
429
+ JSON.stringify([
430
+ {
431
+ id: 'home',
432
+ label: {
433
+ translatable: true,
434
+ message: 'Home',
435
+ },
436
+ icon: 'home-fill',
437
+ routeInfo: {
438
+ route: 'home',
439
+ },
440
+ group: 'top',
441
+ order: 100,
442
+ badge: {},
443
+ presence: {},
444
+ availability: {},
445
+ viewportInfo: {},
446
+ },
447
+ {
448
+ id: 'list',
449
+ label: {
450
+ translatable: true,
451
+ message: 'List',
452
+ },
453
+ icon: 'list-fill',
454
+ routeInfo: {
455
+ route: 'list',
456
+ },
457
+ group: 'top',
458
+ order: 200,
459
+ badge: {},
460
+ presence: {},
461
+ availability: {},
462
+ viewportInfo: {},
463
+ },
464
+ ])
465
+ ),
466
+ },
467
+ {
468
+ name: PAGE_PROP_NAME.VIEW,
469
+ type: 'string',
470
+ value: ($: InnerTransformFromObjectShape) => $.val(`workspace-${appConfig.getId().getValue()}`),
471
+ },
472
+ {
473
+ name: PAGE_PROP_NAME.WAPPLICABILITYCONFIGID,
474
+ type: 'string',
475
+ value: ($: InnerTransformFromObjectShape) => $.val(appConfig.getId().getValue()),
476
+ },
477
+ {
478
+ name: PAGE_PROP_NAME.CHROME_TAB,
479
+ type: 'json',
480
+ value: ($: InnerTransformFromObjectShape) =>
481
+ $.val(
482
+ createChromeTabJsonStringForPageProp(
483
+ arg
484
+ .get('tables')
485
+ .asArray()
486
+ .map((item) => item.asString().getValue())
487
+ )
488
+ ),
489
+ },
490
+ {
491
+ name: PAGE_PROP_NAME.LISTCONFIGID,
492
+ type: 'string',
493
+ value: ($: InnerTransformFromObjectShape) => $.from('listConfig').def(DEFAULT_LISTCONFIGID), // Default UIB List Config
494
+ },
495
+ {
496
+ name: PAGE_PROP_NAME.CHROME_HEADER,
497
+ type: 'json',
498
+ value: ($: InnerTransformFromObjectShape) =>
499
+ $.val(
500
+ '{"privatePage":{"userPrefsEnabled":false,"searchEnabled":false,"currentScreenLinkConfiguration":{},"globalTools":{"collapsingMenuId":0,"primaryItems":[],"secondaryItems":[]}},"publicPage":{"menuEnabled":false,"searchEnabled":false,"logoRoute":{},"actionButtons":[]}}'
501
+ ),
502
+ },
503
+ {
504
+ name: PAGE_PROP_NAME.CHROME_FOOTER,
505
+ type: 'json',
506
+ value: ($: InnerTransformFromObjectShape) =>
507
+ $.val(
508
+ '{"public_page":{"enable_footer_topbar":false,"footer_topbar_options":{},"enable_footer_bar":false,"footer_bar_options":{}}}'
509
+ ),
510
+ },
511
+ ]
512
+
513
+ const pagePropRecords = pagePropRecordDetails.map((d) =>
514
+ factory.createRecord({
515
+ source: callExpressionShape,
516
+ table: 'sys_ux_page_property',
517
+ explicitId: explicitIdGenerator('sys_ux_page_property', d.name),
518
+ properties: arg.transform(({ $ }) => ({
519
+ name: $.val(d.name),
520
+ suffix: $.val(d.name),
521
+ description: $.val(''),
522
+ route: $.val(''),
523
+ page: $.val(pageRegistry),
524
+ type: $.val(d.type),
525
+ value: d.value($),
526
+ })),
527
+ })
528
+ )
529
+
530
+ const resolvedRecords = await Promise.all(pagePropRecords)
531
+ return resolvedRecords.reduce<RecordKeyToRecord>((acc, record) => {
532
+ acc[buildRecordKey(record)] = record
533
+ return acc
534
+ }, {})
535
+ }
536
+
537
+ const createWorkspaceCallExpression = ({
538
+ pageRegRecord,
539
+ title,
540
+ path,
541
+ landingPath,
542
+ active,
543
+ tables,
544
+ listConfigRef,
545
+ defaultRecordOverrides,
546
+ }: {
547
+ pageRegRecord: Record
548
+ title: string
549
+ path: string
550
+ landingPath: string
551
+ active: boolean
552
+ tables: string[]
553
+ listConfigRef: string | Shape<unknown>
554
+ defaultRecordOverrides?: DefaultRecordOverrides
555
+ }) => {
556
+ return new CallExpressionShape({
557
+ source: pageRegRecord,
558
+ callee: 'Workspace',
559
+ args: [
560
+ pageRegRecord.transform(({ $ }) => {
561
+ return {
562
+ $id: $.val(NowIdShape.from(pageRegRecord)),
563
+ landingPath: $.val(landingPath).def(DEFAULT_LANDING_PATH),
564
+ active: $.val(active).def(true),
565
+ title: $.val(title).def(''),
566
+ path: $.val(path).def(''),
567
+ tables: $.val(tables).def([]),
568
+ listConfig: $.val(listConfigRef).def(DEFAULT_LISTCONFIGID),
569
+ defaultRecordOverrides: $.val(defaultRecordOverrides).def({}),
570
+ }
571
+ }),
572
+ ],
573
+ })
574
+ }