@servicenow/sdk-build-plugins 4.2.0 → 4.4.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 (349) hide show
  1. package/dist/acl-plugin.js +11 -0
  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/atf/test-plugin.js +5 -2
  7. package/dist/atf/test-plugin.js.map +1 -1
  8. package/dist/basic-syntax-plugin.js +7 -1
  9. package/dist/basic-syntax-plugin.js.map +1 -1
  10. package/dist/business-rule-plugin.js +1 -0
  11. package/dist/business-rule-plugin.js.map +1 -1
  12. package/dist/call-expression-plugin.js +1 -107
  13. package/dist/call-expression-plugin.js.map +1 -1
  14. package/dist/column/column-to-record.d.ts +10 -3
  15. package/dist/column/column-to-record.js +44 -7
  16. package/dist/column/column-to-record.js.map +1 -1
  17. package/dist/column-plugin.d.ts +3 -1
  18. package/dist/column-plugin.js +12 -12
  19. package/dist/column-plugin.js.map +1 -1
  20. package/dist/dashboard/dashboard-component-property-defaults.d.ts +152 -0
  21. package/dist/dashboard/dashboard-component-property-defaults.js +264 -0
  22. package/dist/dashboard/dashboard-component-property-defaults.js.map +1 -0
  23. package/dist/dashboard/dashboard-component-resolver.d.ts +13 -0
  24. package/dist/dashboard/dashboard-component-resolver.js +69 -0
  25. package/dist/dashboard/dashboard-component-resolver.js.map +1 -0
  26. package/dist/dashboard/dashboard-plugin.d.ts +12 -0
  27. package/dist/dashboard/dashboard-plugin.js +397 -0
  28. package/dist/dashboard/dashboard-plugin.js.map +1 -0
  29. package/dist/data-plugin.d.ts +3 -0
  30. package/dist/data-plugin.js +61 -113
  31. package/dist/data-plugin.js.map +1 -1
  32. package/dist/email-notification-plugin.d.ts +2 -0
  33. package/dist/email-notification-plugin.js +541 -0
  34. package/dist/email-notification-plugin.js.map +1 -0
  35. package/dist/flow/constants/flow-plugin-constants.d.ts +58 -0
  36. package/dist/flow/constants/flow-plugin-constants.js +70 -0
  37. package/dist/flow/constants/flow-plugin-constants.js.map +1 -0
  38. package/dist/flow/flow-logic/flow-logic-constants.d.ts +38 -0
  39. package/dist/flow/flow-logic/flow-logic-constants.js +118 -0
  40. package/dist/flow/flow-logic/flow-logic-constants.js.map +1 -0
  41. package/dist/flow/flow-logic/flow-logic-diagnostics.d.ts +19 -0
  42. package/dist/flow/flow-logic/flow-logic-diagnostics.js +503 -0
  43. package/dist/flow/flow-logic/flow-logic-diagnostics.js.map +1 -0
  44. package/dist/flow/flow-logic/flow-logic-plugin-helpers.d.ts +62 -0
  45. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js +2092 -0
  46. package/dist/flow/flow-logic/flow-logic-plugin-helpers.js.map +1 -0
  47. package/dist/flow/flow-logic/flow-logic-plugin.d.ts +52 -0
  48. package/dist/flow/flow-logic/flow-logic-plugin.js +283 -0
  49. package/dist/flow/flow-logic/flow-logic-plugin.js.map +1 -0
  50. package/dist/flow/flow-logic/flow-logic-shapes.d.ts +104 -0
  51. package/dist/flow/flow-logic/flow-logic-shapes.js +201 -0
  52. package/dist/flow/flow-logic/flow-logic-shapes.js.map +1 -0
  53. package/dist/flow/plugins/approval-rules-plugin.d.ts +2 -0
  54. package/dist/flow/plugins/approval-rules-plugin.js +49 -0
  55. package/dist/flow/plugins/approval-rules-plugin.js.map +1 -0
  56. package/dist/flow/plugins/flow-action-definition-plugin.d.ts +2 -0
  57. package/dist/flow/plugins/flow-action-definition-plugin.js +286 -0
  58. package/dist/flow/plugins/flow-action-definition-plugin.js.map +1 -0
  59. package/dist/flow/plugins/flow-data-pill-plugin.d.ts +9 -0
  60. package/dist/flow/plugins/flow-data-pill-plugin.js +212 -0
  61. package/dist/flow/plugins/flow-data-pill-plugin.js.map +1 -0
  62. package/dist/flow/plugins/flow-definition-plugin.d.ts +2 -0
  63. package/dist/flow/plugins/flow-definition-plugin.js +1668 -0
  64. package/dist/flow/plugins/flow-definition-plugin.js.map +1 -0
  65. package/dist/flow/plugins/flow-diagnostics-plugin.d.ts +26 -0
  66. package/dist/flow/plugins/flow-diagnostics-plugin.js +217 -0
  67. package/dist/flow/plugins/flow-diagnostics-plugin.js.map +1 -0
  68. package/dist/flow/plugins/flow-instance-plugin.d.ts +12 -0
  69. package/dist/flow/plugins/flow-instance-plugin.js +1205 -0
  70. package/dist/flow/plugins/flow-instance-plugin.js.map +1 -0
  71. package/dist/flow/plugins/flow-trigger-instance-plugin.d.ts +2 -0
  72. package/dist/flow/plugins/flow-trigger-instance-plugin.js +338 -0
  73. package/dist/flow/plugins/flow-trigger-instance-plugin.js.map +1 -0
  74. package/dist/flow/plugins/inline-script-plugin.d.ts +39 -0
  75. package/dist/flow/plugins/inline-script-plugin.js +80 -0
  76. package/dist/flow/plugins/inline-script-plugin.js.map +1 -0
  77. package/dist/flow/plugins/step-definition-plugin.d.ts +5 -0
  78. package/dist/flow/plugins/step-definition-plugin.js +71 -0
  79. package/dist/flow/plugins/step-definition-plugin.js.map +1 -0
  80. package/dist/flow/plugins/step-instance-plugin.d.ts +31 -0
  81. package/dist/flow/plugins/step-instance-plugin.js +339 -0
  82. package/dist/flow/plugins/step-instance-plugin.js.map +1 -0
  83. package/dist/flow/plugins/trigger-plugin.d.ts +2 -0
  84. package/dist/flow/plugins/trigger-plugin.js +96 -0
  85. package/dist/flow/plugins/trigger-plugin.js.map +1 -0
  86. package/dist/flow/plugins/wfa-datapill-plugin.d.ts +15 -0
  87. package/dist/flow/plugins/wfa-datapill-plugin.js +178 -0
  88. package/dist/flow/plugins/wfa-datapill-plugin.js.map +1 -0
  89. package/dist/flow/utils/approval-rules-processor.d.ts +13 -0
  90. package/dist/flow/utils/approval-rules-processor.js +267 -0
  91. package/dist/flow/utils/approval-rules-processor.js.map +1 -0
  92. package/dist/flow/utils/built-in-complex-objects.d.ts +19 -0
  93. package/dist/flow/utils/built-in-complex-objects.js +62 -0
  94. package/dist/flow/utils/built-in-complex-objects.js.map +1 -0
  95. package/dist/flow/utils/complex-object-resolver.d.ts +8 -0
  96. package/dist/flow/utils/complex-object-resolver.js +614 -0
  97. package/dist/flow/utils/complex-object-resolver.js.map +1 -0
  98. package/dist/flow/utils/complex-objects.d.ts +36 -0
  99. package/dist/flow/utils/complex-objects.js +481 -0
  100. package/dist/flow/utils/complex-objects.js.map +1 -0
  101. package/dist/flow/utils/data-pill-shapes.d.ts +58 -0
  102. package/dist/flow/utils/data-pill-shapes.js +135 -0
  103. package/dist/flow/utils/data-pill-shapes.js.map +1 -0
  104. package/dist/flow/utils/datapill-transformer.d.ts +110 -0
  105. package/dist/flow/utils/datapill-transformer.js +503 -0
  106. package/dist/flow/utils/datapill-transformer.js.map +1 -0
  107. package/dist/flow/utils/flow-constants.d.ts +72 -0
  108. package/dist/flow/utils/flow-constants.js +230 -0
  109. package/dist/flow/utils/flow-constants.js.map +1 -0
  110. package/dist/flow/utils/flow-io-to-record.d.ts +44 -0
  111. package/dist/flow/utils/flow-io-to-record.js +409 -0
  112. package/dist/flow/utils/flow-io-to-record.js.map +1 -0
  113. package/dist/flow/utils/flow-shapes.d.ts +161 -0
  114. package/dist/flow/utils/flow-shapes.js +255 -0
  115. package/dist/flow/utils/flow-shapes.js.map +1 -0
  116. package/dist/flow/utils/flow-to-xml.d.ts +16 -0
  117. package/dist/flow/utils/flow-to-xml.js +237 -0
  118. package/dist/flow/utils/flow-to-xml.js.map +1 -0
  119. package/dist/flow/utils/flow-variable-processor.d.ts +51 -0
  120. package/dist/flow/utils/flow-variable-processor.js +69 -0
  121. package/dist/flow/utils/flow-variable-processor.js.map +1 -0
  122. package/dist/flow/utils/label-cache-parser.d.ts +7 -0
  123. package/dist/flow/utils/label-cache-parser.js +24 -0
  124. package/dist/flow/utils/label-cache-parser.js.map +1 -0
  125. package/dist/flow/utils/label-cache-processor.d.ts +119 -0
  126. package/dist/flow/utils/label-cache-processor.js +719 -0
  127. package/dist/flow/utils/label-cache-processor.js.map +1 -0
  128. package/dist/flow/utils/pill-string-parser.d.ts +88 -0
  129. package/dist/flow/utils/pill-string-parser.js +306 -0
  130. package/dist/flow/utils/pill-string-parser.js.map +1 -0
  131. package/dist/flow/utils/schema-to-flow-object.d.ts +22 -0
  132. package/dist/flow/utils/schema-to-flow-object.js +318 -0
  133. package/dist/flow/utils/schema-to-flow-object.js.map +1 -0
  134. package/dist/flow/utils/service-catalog.d.ts +47 -0
  135. package/dist/flow/utils/service-catalog.js +137 -0
  136. package/dist/flow/utils/service-catalog.js.map +1 -0
  137. package/dist/flow/utils/utils.d.ts +117 -0
  138. package/dist/flow/utils/utils.js +345 -0
  139. package/dist/flow/utils/utils.js.map +1 -0
  140. package/dist/index.d.ts +20 -1
  141. package/dist/index.js +21 -1
  142. package/dist/index.js.map +1 -1
  143. package/dist/list-plugin.js +1 -1
  144. package/dist/list-plugin.js.map +1 -1
  145. package/dist/now-attach-plugin.d.ts +1 -0
  146. package/dist/now-attach-plugin.js +10 -10
  147. package/dist/now-attach-plugin.js.map +1 -1
  148. package/dist/now-ref-plugin.js +1 -1
  149. package/dist/now-ref-plugin.js.map +1 -1
  150. package/dist/record-plugin.d.ts +29 -0
  151. package/dist/record-plugin.js +66 -7
  152. package/dist/record-plugin.js.map +1 -1
  153. package/dist/repack/index.d.ts +2 -0
  154. package/dist/repack/index.js +8 -0
  155. package/dist/repack/index.js.map +1 -1
  156. package/dist/rest-api-plugin.js +54 -44
  157. package/dist/rest-api-plugin.js.map +1 -1
  158. package/dist/server-module-plugin/index.d.ts +10 -0
  159. package/dist/server-module-plugin/index.js +83 -59
  160. package/dist/server-module-plugin/index.js.map +1 -1
  161. package/dist/service-catalog/catalog-clientscript-plugin.d.ts +2 -0
  162. package/dist/service-catalog/catalog-clientscript-plugin.js +117 -0
  163. package/dist/service-catalog/catalog-clientscript-plugin.js.map +1 -0
  164. package/dist/service-catalog/catalog-item-plugin.d.ts +2 -0
  165. package/dist/service-catalog/catalog-item-plugin.js +115 -0
  166. package/dist/service-catalog/catalog-item-plugin.js.map +1 -0
  167. package/dist/service-catalog/catalog-ui-policy-plugin.d.ts +2 -0
  168. package/dist/service-catalog/catalog-ui-policy-plugin.js +266 -0
  169. package/dist/service-catalog/catalog-ui-policy-plugin.js.map +1 -0
  170. package/dist/service-catalog/index.d.ts +5 -0
  171. package/dist/service-catalog/index.js +22 -0
  172. package/dist/service-catalog/index.js.map +1 -0
  173. package/dist/service-catalog/record-to-shape.d.ts +6 -0
  174. package/dist/service-catalog/record-to-shape.js +93 -0
  175. package/dist/service-catalog/record-to-shape.js.map +1 -0
  176. package/dist/service-catalog/sc-record-producer-plugin.d.ts +2 -0
  177. package/dist/service-catalog/sc-record-producer-plugin.js +140 -0
  178. package/dist/service-catalog/sc-record-producer-plugin.js.map +1 -0
  179. package/dist/service-catalog/service-catalog-base.d.ts +311 -0
  180. package/dist/service-catalog/service-catalog-base.js +542 -0
  181. package/dist/service-catalog/service-catalog-base.js.map +1 -0
  182. package/dist/service-catalog/service-catalog-diagnostics.d.ts +45 -0
  183. package/dist/service-catalog/service-catalog-diagnostics.js +172 -0
  184. package/dist/service-catalog/service-catalog-diagnostics.js.map +1 -0
  185. package/dist/service-catalog/shape-to-record.d.ts +8 -0
  186. package/dist/service-catalog/shape-to-record.js +235 -0
  187. package/dist/service-catalog/shape-to-record.js.map +1 -0
  188. package/dist/service-catalog/utils.d.ts +323 -0
  189. package/dist/service-catalog/utils.js +1216 -0
  190. package/dist/service-catalog/utils.js.map +1 -0
  191. package/dist/service-catalog/variable-helper.d.ts +43 -0
  192. package/dist/service-catalog/variable-helper.js +92 -0
  193. package/dist/service-catalog/variable-helper.js.map +1 -0
  194. package/dist/service-catalog/variable-set-plugin.d.ts +2 -0
  195. package/dist/service-catalog/variable-set-plugin.js +175 -0
  196. package/dist/service-catalog/variable-set-plugin.js.map +1 -0
  197. package/dist/service-catalog/variables-transform.d.ts +139 -0
  198. package/dist/service-catalog/variables-transform.js +403 -0
  199. package/dist/service-catalog/variables-transform.js.map +1 -0
  200. package/dist/sla/sla-validators.d.ts +61 -0
  201. package/dist/sla/sla-validators.js +224 -0
  202. package/dist/sla/sla-validators.js.map +1 -0
  203. package/dist/sla-plugin.d.ts +5 -0
  204. package/dist/sla-plugin.js +280 -0
  205. package/dist/sla-plugin.js.map +1 -0
  206. package/dist/static-content-plugin.js +25 -2
  207. package/dist/static-content-plugin.js.map +1 -1
  208. package/dist/table-plugin.js +32 -15
  209. package/dist/table-plugin.js.map +1 -1
  210. package/dist/ui-page-plugin.js +832 -19
  211. package/dist/ui-page-plugin.js.map +1 -1
  212. package/dist/ui-policy-plugin.js +5 -7
  213. package/dist/ui-policy-plugin.js.map +1 -1
  214. package/dist/utils.d.ts +10 -1
  215. package/dist/utils.js +16 -0
  216. package/dist/utils.js.map +1 -1
  217. package/dist/ux-list-menu-config-plugin.d.ts +2 -0
  218. package/dist/ux-list-menu-config-plugin.js +292 -0
  219. package/dist/ux-list-menu-config-plugin.js.map +1 -0
  220. package/dist/workspace-plugin/chrome-tab.d.ts +2 -0
  221. package/dist/workspace-plugin/chrome-tab.js +46 -0
  222. package/dist/workspace-plugin/chrome-tab.js.map +1 -0
  223. package/dist/workspace-plugin/constants.d.ts +52 -0
  224. package/dist/workspace-plugin/constants.js +56 -0
  225. package/dist/workspace-plugin/constants.js.map +1 -0
  226. package/dist/workspace-plugin/fluent-utils.d.ts +9 -0
  227. package/dist/workspace-plugin/fluent-utils.js +60 -0
  228. package/dist/workspace-plugin/fluent-utils.js.map +1 -0
  229. package/dist/workspace-plugin/page.d.ts +8 -0
  230. package/dist/workspace-plugin/page.js +108 -0
  231. package/dist/workspace-plugin/page.js.map +1 -0
  232. package/dist/workspace-plugin/screen.d.ts +1 -0
  233. package/dist/workspace-plugin/screen.js +38 -0
  234. package/dist/workspace-plugin/screen.js.map +1 -0
  235. package/dist/workspace-plugin/templates/index.d.ts +10 -0
  236. package/dist/workspace-plugin/templates/index.js +20 -0
  237. package/dist/workspace-plugin/templates/index.js.map +1 -0
  238. package/dist/workspace-plugin/templates/record-page-composition.d.ts +1 -0
  239. package/dist/workspace-plugin/templates/record-page-composition.js +4043 -0
  240. package/dist/workspace-plugin/templates/record-page-composition.js.map +1 -0
  241. package/dist/workspace-plugin/templates/record-page-data.d.ts +1 -0
  242. package/dist/workspace-plugin/templates/record-page-data.js +527 -0
  243. package/dist/workspace-plugin/templates/record-page-data.js.map +1 -0
  244. package/dist/workspace-plugin/templates/record-page-interalEventMappings.d.ts +1 -0
  245. package/dist/workspace-plugin/templates/record-page-interalEventMappings.js +39 -0
  246. package/dist/workspace-plugin/templates/record-page-interalEventMappings.js.map +1 -0
  247. package/dist/workspace-plugin/templates/record-page-layoutModel.d.ts +1 -0
  248. package/dist/workspace-plugin/templates/record-page-layoutModel.js +55 -0
  249. package/dist/workspace-plugin/templates/record-page-layoutModel.js.map +1 -0
  250. package/dist/workspace-plugin/templates/record-page-properties.d.ts +1 -0
  251. package/dist/workspace-plugin/templates/record-page-properties.js +135 -0
  252. package/dist/workspace-plugin/templates/record-page-properties.js.map +1 -0
  253. package/dist/workspace-plugin/templates/record-page.d.ts +3 -0
  254. package/dist/workspace-plugin/templates/record-page.js +8 -0
  255. package/dist/workspace-plugin/templates/record-page.js.map +1 -0
  256. package/dist/workspace-plugin.d.ts +2 -0
  257. package/dist/workspace-plugin.js +453 -0
  258. package/dist/workspace-plugin.js.map +1 -0
  259. package/package.json +10 -12
  260. package/src/acl-plugin.ts +16 -1
  261. package/src/applicability-plugin.ts +82 -0
  262. package/src/atf/test-plugin.ts +6 -3
  263. package/src/basic-syntax-plugin.ts +10 -1
  264. package/src/business-rule-plugin.ts +2 -1
  265. package/src/call-expression-plugin.ts +2 -130
  266. package/src/column/column-to-record.ts +54 -8
  267. package/src/column-plugin.ts +29 -13
  268. package/src/dashboard/dashboard-component-property-defaults.ts +277 -0
  269. package/src/dashboard/dashboard-component-resolver.ts +69 -0
  270. package/src/dashboard/dashboard-plugin.ts +450 -0
  271. package/src/data-plugin.ts +67 -139
  272. package/src/email-notification-plugin.ts +850 -0
  273. package/src/flow/constants/flow-plugin-constants.ts +79 -0
  274. package/src/flow/flow-logic/flow-logic-constants.ts +120 -0
  275. package/src/flow/flow-logic/flow-logic-diagnostics.ts +591 -0
  276. package/src/flow/flow-logic/flow-logic-plugin-helpers.ts +2550 -0
  277. package/src/flow/flow-logic/flow-logic-plugin.ts +337 -0
  278. package/src/flow/flow-logic/flow-logic-shapes.ts +215 -0
  279. package/src/flow/plugins/approval-rules-plugin.ts +48 -0
  280. package/src/flow/plugins/flow-action-definition-plugin.ts +295 -0
  281. package/src/flow/plugins/flow-data-pill-plugin.ts +258 -0
  282. package/src/flow/plugins/flow-definition-plugin.ts +2173 -0
  283. package/src/flow/plugins/flow-diagnostics-plugin.ts +280 -0
  284. package/src/flow/plugins/flow-instance-plugin.ts +1499 -0
  285. package/src/flow/plugins/flow-trigger-instance-plugin.ts +444 -0
  286. package/src/flow/plugins/inline-script-plugin.ts +83 -0
  287. package/src/flow/plugins/step-definition-plugin.ts +67 -0
  288. package/src/flow/plugins/step-instance-plugin.ts +431 -0
  289. package/src/flow/plugins/trigger-plugin.ts +95 -0
  290. package/src/flow/plugins/wfa-datapill-plugin.ts +213 -0
  291. package/src/flow/utils/approval-rules-processor.ts +298 -0
  292. package/src/flow/utils/built-in-complex-objects.ts +81 -0
  293. package/src/flow/utils/complex-object-resolver.ts +875 -0
  294. package/src/flow/utils/complex-objects.ts +656 -0
  295. package/src/flow/utils/data-pill-shapes.ts +165 -0
  296. package/src/flow/utils/datapill-transformer.ts +632 -0
  297. package/src/flow/utils/flow-constants.ts +285 -0
  298. package/src/flow/utils/flow-io-to-record.ts +533 -0
  299. package/src/flow/utils/flow-shapes.ts +296 -0
  300. package/src/flow/utils/flow-to-xml.ts +318 -0
  301. package/src/flow/utils/flow-variable-processor.ts +100 -0
  302. package/src/flow/utils/label-cache-parser.ts +37 -0
  303. package/src/flow/utils/label-cache-processor.ts +870 -0
  304. package/src/flow/utils/pill-string-parser.ts +375 -0
  305. package/src/flow/utils/schema-to-flow-object.ts +385 -0
  306. package/src/flow/utils/service-catalog.ts +174 -0
  307. package/src/flow/utils/utils.ts +395 -0
  308. package/src/index.ts +20 -1
  309. package/src/list-plugin.ts +1 -1
  310. package/src/now-attach-plugin.ts +14 -11
  311. package/src/now-ref-plugin.ts +1 -1
  312. package/src/record-plugin.ts +76 -11
  313. package/src/repack/index.ts +14 -0
  314. package/src/rest-api-plugin.ts +62 -50
  315. package/src/server-module-plugin/index.ts +112 -86
  316. package/src/service-catalog/catalog-clientscript-plugin.ts +140 -0
  317. package/src/service-catalog/catalog-item-plugin.ts +162 -0
  318. package/src/service-catalog/catalog-ui-policy-plugin.ts +324 -0
  319. package/src/service-catalog/index.ts +5 -0
  320. package/src/service-catalog/record-to-shape.ts +109 -0
  321. package/src/service-catalog/sc-record-producer-plugin.ts +201 -0
  322. package/src/service-catalog/service-catalog-base.ts +600 -0
  323. package/src/service-catalog/service-catalog-diagnostics.ts +254 -0
  324. package/src/service-catalog/shape-to-record.ts +279 -0
  325. package/src/service-catalog/utils.ts +1455 -0
  326. package/src/service-catalog/variable-helper.ts +135 -0
  327. package/src/service-catalog/variable-set-plugin.ts +197 -0
  328. package/src/service-catalog/variables-transform.ts +438 -0
  329. package/src/sla/sla-validators.ts +331 -0
  330. package/src/sla-plugin.ts +358 -0
  331. package/src/static-content-plugin.ts +25 -2
  332. package/src/table-plugin.ts +49 -16
  333. package/src/ui-page-plugin.ts +1063 -20
  334. package/src/ui-policy-plugin.ts +5 -9
  335. package/src/utils.ts +24 -1
  336. package/src/ux-list-menu-config-plugin.ts +312 -0
  337. package/src/workspace-plugin/chrome-tab.ts +44 -0
  338. package/src/workspace-plugin/constants.ts +53 -0
  339. package/src/workspace-plugin/fluent-utils.ts +60 -0
  340. package/src/workspace-plugin/page.ts +139 -0
  341. package/src/workspace-plugin/screen.ts +34 -0
  342. package/src/workspace-plugin/templates/index.ts +17 -0
  343. package/src/workspace-plugin/templates/record-page-composition.ts +4051 -0
  344. package/src/workspace-plugin/templates/record-page-data.ts +523 -0
  345. package/src/workspace-plugin/templates/record-page-interalEventMappings.ts +35 -0
  346. package/src/workspace-plugin/templates/record-page-layoutModel.ts +51 -0
  347. package/src/workspace-plugin/templates/record-page-properties.ts +131 -0
  348. package/src/workspace-plugin/templates/record-page.ts +6 -0
  349. package/src/workspace-plugin.ts +574 -0
@@ -0,0 +1,409 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.complexObjectMatchesIoRecord = void 0;
4
+ exports.buildVariableRecords = buildVariableRecords;
5
+ exports.buildVariableShapes = buildVariableShapes;
6
+ exports.getColumnRecords = getColumnRecords;
7
+ const sdk_build_core_1 = require("@servicenow/sdk-build-core");
8
+ const column_helper_1 = require("../../column/column-helper");
9
+ const db_1 = require("@servicenow/sdk-core/runtime/db");
10
+ const built_in_complex_objects_1 = require("./built-in-complex-objects");
11
+ const schema_to_flow_object_1 = require("./schema-to-flow-object");
12
+ const complex_objects_1 = require("./complex-objects");
13
+ const column_to_record_1 = require("../../column/column-to-record");
14
+ const flow_constants_1 = require("./flow-constants");
15
+ const now_id_plugin_1 = require("../../now-id-plugin");
16
+ /**
17
+ * Helper function to extract user-defined attributes from a column config's attributes object.
18
+ * Handles string, number, and boolean values.
19
+ *
20
+ * @param config - The ObjectShape containing the column configuration
21
+ * @returns A Record of attribute key-value pairs (all values converted to strings)
22
+ */
23
+ function extractUserAttributes(config) {
24
+ const userAttributes = {};
25
+ const userAttributesObj = config.get('attributes')?.ifObject()?.asObject();
26
+ if (userAttributesObj) {
27
+ const entries = userAttributesObj.entries();
28
+ for (const [key, value] of entries) {
29
+ userAttributes[key] = value.getValue()?.toString() ?? '';
30
+ }
31
+ }
32
+ return userAttributes;
33
+ }
34
+ /**
35
+ * Generate the variable records and possibly complex object records for the inputs or outputs
36
+ * of an action/subflow. The main input here is the ObjectShape for a single set of inputs or outputs
37
+ * of an action/subflow definition.
38
+ */
39
+ async function buildVariableRecords(options) {
40
+ const { variablesConfig, parentRecord, factory, diagnostics, parentTable, varTable, isOutput = false } = options;
41
+ const records = [];
42
+ const complexObjects = [];
43
+ const tableName = `var__m_${varTable}_${parentRecord.getId().getValue()}`;
44
+ const entries = variablesConfig.entries();
45
+ for (const [i, [k, v]] of entries.entries()) {
46
+ const callExpr = v.as(sdk_build_core_1.CallExpressionShape);
47
+ const config = callExpr.getArgument(0).asObject();
48
+ const props = config.transform(({ $ }) => ({
49
+ element: $.val(k),
50
+ label: $.def(k),
51
+ mandatory: $.toBoolean().def(false),
52
+ active: $.val(true),
53
+ order: $.val(i + 1),
54
+ hint: $.def(''),
55
+ model: $.val(parentRecord),
56
+ model_id: $.val(parentRecord),
57
+ model_table: $.val(parentTable),
58
+ name: $.val(tableName),
59
+ default_value: $.from('default').def(''),
60
+ }));
61
+ const partialVarRecord = await factory.createRecord({
62
+ source: callExpr,
63
+ table: varTable,
64
+ properties: props,
65
+ });
66
+ const additionalProperties = {};
67
+ const varSysId = partialVarRecord.getId().getValue();
68
+ if (callExpr.getCallee() === 'FlowObject' || callExpr.getCallee() === 'FlowArray') {
69
+ // Create a new complex-object schema row
70
+ const co_type_name = config.get('co_type_name')?.ifString()?.getValue();
71
+ const complexObjectId = co_type_name || `FD${varSysId}`;
72
+ const isArray = callExpr.getCallee() === 'FlowArray';
73
+ const isFlowVariable = varTable === 'sys_hub_flow_variable';
74
+ const schemaObj = (0, complex_objects_1.generateSchemaFromObject)(config, complexObjectId, k, parentRecord.getId().getValue(), i, isArray, diagnostics, isFlowVariable);
75
+ // Use explicit $id from config if provided (for non-deterministic complex objects from UI)
76
+ const explicitId = config.get('$id')?.ifString()?.getValue();
77
+ const complexRecord = await factory.createRecord({
78
+ source: callExpr,
79
+ table: 'sys_complex_object',
80
+ properties: {
81
+ name: complexObjectId,
82
+ namespace: 'FlowDesigner',
83
+ type: callExpr.getCallee() === 'FlowArray' ? 'complex_object_collection' : 'complex_object_schema',
84
+ serialized_content: JSON.stringify(schemaObj),
85
+ ...(explicitId ? { sys_id: explicitId } : {}),
86
+ },
87
+ });
88
+ const systemAttributes = (0, complex_objects_1.getComplexObjectAttributes)(schemaObj, complexObjectId, isArray);
89
+ // Extract user-defined attributes from column config if present (e.g., visible: 'false')
90
+ const userAttributes = extractUserAttributes(config);
91
+ // Merge system attributes with user-defined attributes
92
+ const allAttributes = { ...systemAttributes, ...userAttributes };
93
+ additionalProperties['attributes'] = (0, complex_objects_1.formatComplexObjectAttributes)(allAttributes);
94
+ additionalProperties['internal_type'] = 'string';
95
+ additionalProperties['max_length'] = 65000;
96
+ complexObjects.push(complexRecord);
97
+ // Create additional sys_variable_value record for FlowObject and FlowArray types, but only for outputs
98
+ if (isOutput) {
99
+ const variableValue = (0, complex_objects_1.generateVariableSchemaObject)(schemaObj, complexObjectId, isArray);
100
+ const variableValueRecord = await createVariableValueRecord({
101
+ callExpr,
102
+ factory,
103
+ varSysId,
104
+ parentRecord,
105
+ parentTable,
106
+ name: k,
107
+ index: i,
108
+ variableValue,
109
+ });
110
+ records.push(variableValueRecord);
111
+ }
112
+ const updatedCallExpr = (0, column_helper_1.addFieldsToColumn)({ name: k, table: tableName, display: false }, callExpr);
113
+ const columnRecords = await (0, column_to_record_1.getDocumentationRecords)(updatedCallExpr, {}, factory, diagnostics, true);
114
+ records.push(...columnRecords);
115
+ }
116
+ else {
117
+ // Extract attributes from column config if present
118
+ const userAttributes = extractUserAttributes(config);
119
+ const attributesStr = Object.entries(userAttributes)
120
+ .map(([key, value]) => `${key}=${value}`)
121
+ .join(',');
122
+ additionalProperties['attributes'] = attributesStr;
123
+ let internal_type;
124
+ if (callExpr.getCallee() === db_1.GenericColumn.name) {
125
+ internal_type = config.get('columnType')?.ifString()?.getValue() ?? 'string';
126
+ }
127
+ else {
128
+ internal_type = column_helper_1.COLUMN_API_TO_TYPE[callExpr.getCallee()] ?? 'string';
129
+ }
130
+ // Handle reference columns - extract reference table
131
+ if (internal_type === 'reference') {
132
+ const referenceTable = config.get('referenceTable')?.ifString()?.getValue();
133
+ if (referenceTable) {
134
+ additionalProperties['reference'] = referenceTable;
135
+ }
136
+ }
137
+ additionalProperties['internal_type'] = internal_type;
138
+ additionalProperties['max_length'] =
139
+ config.get('maxLength')?.ifNumber()?.getValue() ?? (0, column_helper_1.getDefaultMaxLength)(internal_type);
140
+ const updatedCallExpr = (0, column_helper_1.addFieldsToColumn)({ name: k, table: tableName, display: false }, callExpr);
141
+ const columnRecords = await getColumnRecords(updatedCallExpr, factory, diagnostics);
142
+ records.push(...columnRecords);
143
+ if (internal_type === 'choice') {
144
+ validateAndPopulateChoiceProperties(config, additionalProperties, diagnostics);
145
+ }
146
+ }
147
+ const varRecord = partialVarRecord.merge(additionalProperties);
148
+ records.push(varRecord);
149
+ }
150
+ if (isOutput) {
151
+ const additionalOutputs = await (0, flow_constants_1.createActionErrorAndStatusRecords)(parentRecord, tableName, varTable, factory, diagnostics);
152
+ records.push(...additionalOutputs);
153
+ }
154
+ return { variableRecords: records, complexObjectRecords: complexObjects };
155
+ }
156
+ /**
157
+ * Generate an object corresponding to the variable records passed in.
158
+ *
159
+ * For each variable record passed in there will be a key/value in the return value where
160
+ * the key is the element name of the variable record and the value is a call expression corresponding
161
+ * to the details of that variable record. The call expressions match the FlowValueType and can be
162
+ * a Column or a FlowObject (FlowArrays are currently not yet handled)
163
+ *
164
+ * If the variable record has a co_object_name attribute we will lookup a corresponding sys_complex_object
165
+ * record where the name field matches the attributes value. That complex object record will hold the schema
166
+ * for this object input in the serialized_content column. We use that data to construct the related call expression
167
+ * data for the full flow object definition
168
+ *
169
+ * @param variableRecords Records representing inputs or outputs (sys_hub_*_input / output)
170
+ * @param ctx Plugin context object supplied by build-core plugin
171
+ */
172
+ function buildVariableShapes(variableRecords, descendants, logger) {
173
+ const shapes = {};
174
+ for (const variable of variableRecords) {
175
+ const name = variable.get('element').asString().getValue();
176
+ if (name === '__action_status__' || name === '__dont_treat_as_error__') {
177
+ continue;
178
+ }
179
+ const callExpressionName = column_helper_1.COLUMN_TYPE_TO_API[variable.get('internal_type').asString().getValue()] ?? db_1.GenericColumn.name;
180
+ const additionalProps = {};
181
+ // Detect FlowObject variables by looking for a co_type_name attribute.
182
+ const attributesStr = variable.get('attributes')?.ifString()?.getValue() ?? '';
183
+ const attributes = (0, schema_to_flow_object_1.parseAttributesToObject)(attributesStr);
184
+ if (attributes.dynamic === 'true') {
185
+ logger?.warn(`Unsupported data type found for input = ${name}, falling back to Record() api`);
186
+ return undefined;
187
+ }
188
+ const maybeCoTypeName = attributes.co_type_name;
189
+ if (maybeCoTypeName !== undefined) {
190
+ const coRecord = descendants.query('sys_complex_object', { name: maybeCoTypeName });
191
+ // First try descendants, then fallback to built-in complex objects
192
+ let serializedContent = coRecord[0]?.get('serialized_content')?.ifString()?.getValue();
193
+ let complexObjectSysId = coRecord[0]?.getId().getValue();
194
+ if (!serializedContent) {
195
+ // Check built-in complex objects
196
+ const builtIn = built_in_complex_objects_1.builtInComplexObjects[maybeCoTypeName];
197
+ serializedContent = builtIn?.data.serialized_content;
198
+ complexObjectSysId = undefined; // Built-in objects don't have a sys_id
199
+ }
200
+ if (!serializedContent) {
201
+ throw new Error(`unable to find sys_complex_object with co_type_name: ${maybeCoTypeName}`);
202
+ }
203
+ // Check if co_type_name is deterministically generated (pattern: FD<variable_sys_id>)
204
+ const varSysId = variable.getId().getValue();
205
+ const isDeterministic = maybeCoTypeName === `FD${varSysId}`;
206
+ // Only include $id and co_type_name if NOT deterministically generated
207
+ const schema = JSON.parse(serializedContent);
208
+ shapes[name] = (0, schema_to_flow_object_1.buildComplexObjectFromSchema)(variable, schema, attributes, isDeterministic ? undefined : complexObjectSysId, isDeterministic ? undefined : maybeCoTypeName);
209
+ }
210
+ else {
211
+ const variableName = variable.get('name').ifString()?.getValue();
212
+ const documentation = variableName
213
+ ? descendants.query('sys_documentation', { name: variableName, element: name })
214
+ : [];
215
+ shapes[name] = buildBasicVariableShape(callExpressionName, variable, additionalProps, descendants, documentation);
216
+ }
217
+ }
218
+ return shapes;
219
+ }
220
+ function buildBasicVariableShape(callExpressionName, variable, additionalProps, descendants, documentation) {
221
+ if (callExpressionName === db_1.ChoiceColumn.name) {
222
+ // choice column with choices from other table
223
+ const choiceTable = variable.get('choice_table').ifString()?.getValue();
224
+ if (choiceTable && choiceTable !== '') {
225
+ additionalProps = {
226
+ dynamicValueDefinitions: {
227
+ type: 'choices_from_other_table',
228
+ table: choiceTable,
229
+ field: variable.get('choice_field').asString().getValue(),
230
+ },
231
+ };
232
+ }
233
+ else {
234
+ const name = variable.get('name').ifString()?.getValue();
235
+ const element = variable.get('element').ifString()?.getValue();
236
+ const choices = descendants.query('sys_choice', { name, element });
237
+ additionalProps = {
238
+ choices: choices.reduce((acc, choice) => {
239
+ const value = choice.get('value').ifString()?.getValue();
240
+ const sequence = Number(choice.get('sequence').ifString()?.getValue() ?? 0);
241
+ if (!value || value === '-- None --') {
242
+ return acc;
243
+ }
244
+ const entry = {
245
+ label: choice.get('label').ifString()?.getValue(),
246
+ };
247
+ if (sequence !== 0) {
248
+ entry.sequence = sequence;
249
+ }
250
+ acc[value] = entry;
251
+ return acc;
252
+ }, {}),
253
+ };
254
+ }
255
+ }
256
+ const fieldType = variable.get('internal_type').ifString()?.getValue() ?? 'string';
257
+ const defaultMaxLength = (0, column_helper_1.getDefaultMaxLength)(fieldType);
258
+ const maxLength = Number(variable.get('max_length').ifString()?.getValue() ?? defaultMaxLength);
259
+ const hint = documentation[0]?.get('hint')?.ifString()?.getValue() ?? '';
260
+ // Extract referenceTable for reference and records column types
261
+ const referenceTable = variable.get('reference')?.ifString()?.getValue();
262
+ if (referenceTable && (fieldType === 'reference' || fieldType === 'records')) {
263
+ additionalProps['referenceTable'] = referenceTable;
264
+ }
265
+ // Add dependent field for template_value and field_list column types
266
+ if (fieldType === 'template_value' || fieldType === 'field_list') {
267
+ const dependent = variable.get('dependent')?.ifString()?.getValue();
268
+ additionalProps['dependent'] = dependent ?? '';
269
+ }
270
+ return new sdk_build_core_1.CallExpressionShape({
271
+ source: variable,
272
+ callee: callExpressionName,
273
+ args: [
274
+ variable
275
+ .transform(({ $ }) => ({
276
+ label: $,
277
+ ...(variable.getTable() === 'sys_flow_step_definition_output' ||
278
+ variable.getTable() === 'sys_flow_step_definition_input'
279
+ ? { sysId: $.val(now_id_plugin_1.NowIdShape.from(variable)) }
280
+ : {}),
281
+ mandatory: $.toBoolean().def(false),
282
+ maxLength: $.val(maxLength).def(defaultMaxLength),
283
+ dropdown: $.from('choice')
284
+ .map((choice) => (choice.isNumber() ? db_1.choiceDropdown[choice.getValue()] : undefined))
285
+ .def(db_1.choiceDropdown[1]),
286
+ default: $.from('default_value')
287
+ .map((value) => {
288
+ if (!value.isDefined()) {
289
+ return undefined;
290
+ }
291
+ if (fieldType === 'string') {
292
+ return value.toString().getValue();
293
+ }
294
+ if (fieldType === 'boolean') {
295
+ return Boolean(value.getValue());
296
+ }
297
+ if (fieldType === 'integer') {
298
+ return Number(value.getValue());
299
+ }
300
+ return value.getValue();
301
+ })
302
+ .def(flow_constants_1.COLUMN_DEFAULTS[fieldType] ?? ''),
303
+ ...(hint ? { hint: $.val(hint) } : {}),
304
+ columnType: $.from('internal_type')
305
+ .map((fieldType) => {
306
+ if (callExpressionName === db_1.GenericColumn.name) {
307
+ return fieldType;
308
+ }
309
+ return undefined;
310
+ })
311
+ .def(undefined),
312
+ }))
313
+ .merge(additionalProps),
314
+ ],
315
+ });
316
+ }
317
+ /**
318
+ * Creates a sys_variable_value record for FlowObject and FlowArray types
319
+ */
320
+ async function createVariableValueRecord(options) {
321
+ const { callExpr, factory, varSysId, parentRecord, parentTable, name, index, variableValue } = options;
322
+ return await factory.createRecord({
323
+ source: callExpr,
324
+ table: 'sys_variable_value',
325
+ properties: {
326
+ document: parentTable,
327
+ document_key: parentRecord.getId().getValue(),
328
+ value: JSON.stringify(variableValue),
329
+ order: index + 1,
330
+ name,
331
+ variable: varSysId,
332
+ },
333
+ });
334
+ }
335
+ async function getColumnRecords(callExpression, factory, diagnostics) {
336
+ // Verify
337
+ const callee = callExpression.getCallee();
338
+ if (!(callee in column_helper_1.COLUMN_API_TO_TYPE) && !(callee === db_1.GenericColumn.name)) {
339
+ return [];
340
+ }
341
+ const column = callExpression.getArgument(0).asObject();
342
+ if (!column.has('table') || !column.has('name')) {
343
+ return [];
344
+ }
345
+ const choiceRecords = await (0, column_to_record_1.getChoiceRecords)(callExpression, {}, factory, diagnostics);
346
+ const documentationRecords = await (0, column_to_record_1.getDocumentationRecords)(callExpression, {}, factory, diagnostics, true);
347
+ return [...choiceRecords, ...documentationRecords];
348
+ }
349
+ /**
350
+ * Validates and populates choice properties for dynamic value definitions
351
+ * that use choices from other tables
352
+ */
353
+ function validateAndPopulateChoiceProperties(config, additionalProperties, diagnostics) {
354
+ // Check if dynamic value definitions exist
355
+ const dynamicValueDefs = config.has('dynamicValueDefinitions')
356
+ ? config.get('dynamicValueDefinitions').asObject()
357
+ : undefined;
358
+ if (dynamicValueDefs) {
359
+ // Validate type is 'choices_from_other_table'
360
+ const type = dynamicValueDefs.get('type');
361
+ if (!type.isString() || type.getValue() !== 'choices_from_other_table') {
362
+ diagnostics.error(type, 'Invalid dynamicValueDefinitions type, expected "choices_from_other_table"');
363
+ return;
364
+ }
365
+ // Populate required choice properties
366
+ additionalProperties['choice_table'] = dynamicValueDefs.get('table').getValue();
367
+ additionalProperties['choice_field'] = dynamicValueDefs.get('field').getValue();
368
+ }
369
+ // Default to dropdown_with_none
370
+ let choiceValue = flow_constants_1.ChoiceDropdown.DROPDOWN_WITHOUT_NONE;
371
+ // Handle dropdown type configuration
372
+ const defaultValue = config.get('default');
373
+ const choiceTypeNode = config.get('dropdown');
374
+ if (choiceTypeNode.isString()) {
375
+ const choiceTypeValue = choiceTypeNode.getValue();
376
+ const choiceDropdownValue = db_1.choiceDropdown.indexOf(choiceTypeValue);
377
+ if (choiceDropdownValue === flow_constants_1.ChoiceDropdown.DROPDOWN_WITHOUT_NONE) {
378
+ // Validate default value exists for dropdown_without_none
379
+ if (defaultValue.isUndefined()) {
380
+ diagnostics.error(config, 'Default value is required for dropdown type "dropdown_without_none"');
381
+ return;
382
+ }
383
+ choiceValue = flow_constants_1.ChoiceDropdown.DROPDOWN_WITHOUT_NONE;
384
+ }
385
+ else if (choiceDropdownValue !== flow_constants_1.ChoiceDropdown.DROPDOWN_WITH_NONE) {
386
+ // Only dropdown_with_none and dropdown_without_none are valid
387
+ diagnostics.error(choiceTypeNode, 'Invalid dropdown type, expected "dropdown_with_none" or "dropdown_without_none"');
388
+ return;
389
+ }
390
+ else {
391
+ choiceValue = choiceDropdownValue;
392
+ }
393
+ }
394
+ // Set the choice value
395
+ additionalProperties['choice'] = choiceValue;
396
+ // Add default value if provided
397
+ if (!defaultValue.isUndefined()) {
398
+ additionalProperties['default_value'] = defaultValue.getValue();
399
+ }
400
+ }
401
+ /**
402
+ * Via regex matcher for sys_complex_object relationships that checks if the parent's
403
+ * co_type_name attribute matches the child's name field.
404
+ */
405
+ exports.complexObjectMatchesIoRecord = {
406
+ parent: ['attributes', 'co_type_name=([^,]+)'],
407
+ child: ['name', '(.+)'],
408
+ };
409
+ //# sourceMappingURL=flow-io-to-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-io-to-record.js","sourceRoot":"","sources":["../../../src/flow/utils/flow-io-to-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { CallExpressionShape, type Source, ObjectShape, Record, StringShape, TemplateExpressionShape } from '@servicenow/sdk-build-core';
2
+ import { NowIdShape } from '../../now-id-plugin';
3
+ import type { ApprovalRulesType, ApprovalDueDateType } from '@servicenow/sdk-core/runtime/flow';
4
+ /**
5
+ * Abstract base class for all flow definition instances.
6
+ * Extends CallExpressionShape to provide common functionality for flow constructs.
7
+ */
8
+ export declare abstract class FDInstanceShape extends CallExpressionShape {
9
+ constructor(source: Source, callee: string, args: unknown[]);
10
+ getInstanceType(): string;
11
+ abstract getSysId(): NowIdShape | undefined;
12
+ abstract getAnnotation(): StringShape | undefined;
13
+ }
14
+ /**
15
+ * Shape class for Action and Subflow instances.
16
+ * Handles the pattern: Action(definition, config, props)
17
+ *
18
+ * @example
19
+ * Action(createIncident, { $id: Now.ID['incident_0'], annotation: 'Create incident' }, { shortDescription: 'Issue' })
20
+ * Subflow(mySubflow, { $id: Now.ID['subflow_0'], annotation: 'Process data' }, { input: 'value' })
21
+ */
22
+ export declare class ActionSubflowInstanceShape extends FDInstanceShape {
23
+ constructor({ source, instanceDefinition, instanceProps, instanceType, configObject, }: {
24
+ source: Source;
25
+ instanceDefinition: Record | StringShape | undefined;
26
+ instanceProps: ObjectShape | undefined;
27
+ instanceType: string;
28
+ configObject: ObjectShape;
29
+ });
30
+ getInstanceDefinition(): Record | StringShape | undefined;
31
+ getInstanceProps(): ObjectShape | undefined;
32
+ getSysId(): NowIdShape | undefined;
33
+ getAnnotation(): StringShape | undefined;
34
+ getInstanceUUID(): StringShape | undefined;
35
+ }
36
+ /**
37
+ * Represents an inline script for ServiceNow Flow Designer actions and subflows.
38
+ *
39
+ * Inline scripts allow users to write JavaScript code directly in Flow action/subflow inputs
40
+ * without creating separate Script Includes or Business Rules. This shape wraps the script
41
+ * content and provides serialization to Flow Designer's JSON format.
42
+ *
43
+ * **Supported Formats:**
44
+ * - Template literals without substitutions: \`code\`
45
+ * - External files via Now.include: Now.include('./script.js')
46
+ *
47
+ * **Usage Example:**
48
+ * ```typescript
49
+ * Action(myAction, Now.ID['action_id'], {
50
+ * workNotes: `
51
+ * var number = fd_data.trigger.current.number;
52
+ * return 'Incident ' + number + ' created';
53
+ * `
54
+ * })
55
+ * ```
56
+ *
57
+ * **Architecture:**
58
+ * This shape is NOT created via a global plugin. Instead, detection happens contextually
59
+ * in FlowInstancePlugin.checkAndResolveInlineScripts() to ensure only template literals
60
+ * used as Action/Subflow inputs are converted to inline scripts. This prevents incorrectly
61
+ * converting template literals used elsewhere (logging, formatting, etc.).
62
+ *
63
+ * @extends TemplateExpressionShape
64
+ */
65
+ export declare class InlineScriptShape extends TemplateExpressionShape {
66
+ private readonly scriptContent;
67
+ /**
68
+ * Creates an InlineScriptShape instance.
69
+ *
70
+ * @param source - The original TemplateExpressionShape from the AST
71
+ * @param scriptContent - The JavaScript code to execute (without backticks)
72
+ */
73
+ constructor({ source, scriptContent }: {
74
+ source: TemplateExpressionShape;
75
+ scriptContent: string;
76
+ });
77
+ /**
78
+ * Returns the raw script content without template literal backticks.
79
+ *
80
+ * @returns The JavaScript code as a string
81
+ */
82
+ getScriptContent(): string;
83
+ /**
84
+ * Serializes this inline script to ServiceNow Flow Designer JSON format.
85
+ *
86
+ * The output structure includes:
87
+ * - `scriptActive: true` - Indicates this field contains a script
88
+ * - `script` object - Contains the actual script content keyed by field name
89
+ * - Empty `value` and `displayValue` - Required by Flow Designer schema
90
+ *
91
+ * @param fieldName - The name of the action/subflow input field
92
+ * @returns Flow Designer JSON structure for inline scripts
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * inlineScript.toFlowDesignerJson('workNotes')
97
+ * // Returns:
98
+ * // {
99
+ * // name: 'workNotes',
100
+ * // scriptActive: true,
101
+ * // script: { workNotes: { scriptActive: true, script: '...' } },
102
+ * // value: '', displayValue: '', children: []
103
+ * // }
104
+ * ```
105
+ */
106
+ toFlowDesignerJson(fieldName: string): {
107
+ name: string;
108
+ value: string;
109
+ displayValue: string;
110
+ children: never[];
111
+ scriptActive: boolean;
112
+ script: {
113
+ [x: string]: {
114
+ scriptActive: boolean;
115
+ script: string;
116
+ };
117
+ };
118
+ };
119
+ }
120
+ /**
121
+ * Shape representing ApprovalRules
122
+ * Used with ApprovalRules() helper - Stores approval rules for Flow Designer
123
+ */
124
+ export declare class ApprovalRulesShape extends ObjectShape {
125
+ constructor({ source, value }: {
126
+ source: Source;
127
+ value: globalThis.Record<string, unknown>;
128
+ });
129
+ getApprovalRules(): ApprovalRulesType;
130
+ /**
131
+ * Returns code representation as ApprovalRules() helper call.
132
+ * @example 'wfa.approvalRules({"conditionType":"OR","ruleSets":[{"action":"Approves","conditionType":"AND","rules":[[{"rule_type":"Any","users":["_params.trigger.current.assigned_to"],"groups":[],"manual":false}]]},{"action":"Rejects","conditionType":"AND","rules":[[{"rule_type":"Any","users":[],"groups":[],"manual":true}]]}]})'
133
+ */
134
+ getCode(): string;
135
+ /**
136
+ * Returns a StringShape of the Approval Rules JSON
137
+ */
138
+ toString(): StringShape;
139
+ static from(source: Source, text: StringShape): ApprovalRulesShape;
140
+ }
141
+ /**
142
+ * Shape representing ApprovalDueDate
143
+ * Used with ApprovalDueDate() helper - Stores approval due date configuration for Flow Designer
144
+ */
145
+ export declare class ApprovalDueDateShape extends ObjectShape {
146
+ constructor({ source, value }: {
147
+ source: Source;
148
+ value: globalThis.Record<string, unknown>;
149
+ });
150
+ getApprovalDueDate(): ApprovalDueDateType;
151
+ /**
152
+ * Returns code representation as ApprovalDueDate() helper call.
153
+ * @example 'wfa.approvalDueDate({"action":"none","date_type":"actual","date":"{}","duration":1,"duration_type":"days","schedule":""})'
154
+ */
155
+ getCode(): string;
156
+ /**
157
+ * Returns a StringShape of the Approval Due Date string
158
+ */
159
+ toString(): StringShape;
160
+ static from(source: Source, text: StringShape): ApprovalDueDateShape;
161
+ }