@servicenow/sdk-build-plugins 3.0.3 → 4.0.1

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 (359) hide show
  1. package/dist/acl-plugin.d.ts +19 -0
  2. package/dist/acl-plugin.js +210 -0
  3. package/dist/acl-plugin.js.map +1 -0
  4. package/dist/application-menu-plugin.d.ts +18 -0
  5. package/dist/application-menu-plugin.js +104 -0
  6. package/dist/application-menu-plugin.js.map +1 -0
  7. package/dist/arrow-function-plugin.d.ts +16 -0
  8. package/dist/arrow-function-plugin.js +107 -0
  9. package/dist/arrow-function-plugin.js.map +1 -0
  10. package/dist/atf/step-configs.d.ts +39 -0
  11. package/dist/atf/step-configs.js +2334 -0
  12. package/dist/atf/step-configs.js.map +1 -0
  13. package/dist/atf/test-plugin.d.ts +4 -0
  14. package/dist/atf/test-plugin.js +600 -0
  15. package/dist/atf/test-plugin.js.map +1 -0
  16. package/dist/basic-syntax-plugin.d.ts +2 -0
  17. package/dist/basic-syntax-plugin.js +636 -0
  18. package/dist/basic-syntax-plugin.js.map +1 -0
  19. package/dist/business-rule-plugin.d.ts +3 -0
  20. package/dist/business-rule-plugin.js +205 -0
  21. package/dist/business-rule-plugin.js.map +1 -0
  22. package/dist/call-expression-plugin.d.ts +2 -0
  23. package/dist/call-expression-plugin.js +175 -0
  24. package/dist/call-expression-plugin.js.map +1 -0
  25. package/dist/client-script-plugin.d.ts +29 -0
  26. package/dist/client-script-plugin.js +164 -0
  27. package/dist/client-script-plugin.js.map +1 -0
  28. package/dist/column/column-helper.d.ts +12 -0
  29. package/dist/column/column-helper.js +84 -0
  30. package/dist/column/column-helper.js.map +1 -0
  31. package/dist/column/column-to-record.d.ts +3 -0
  32. package/dist/column/column-to-record.js +105 -0
  33. package/dist/column/column-to-record.js.map +1 -0
  34. package/dist/column-plugin.d.ts +8 -0
  35. package/dist/column-plugin.js +453 -0
  36. package/dist/column-plugin.js.map +1 -0
  37. package/dist/cross-scope-privilege-plugin.d.ts +15 -0
  38. package/dist/cross-scope-privilege-plugin.js +82 -0
  39. package/dist/cross-scope-privilege-plugin.js.map +1 -0
  40. package/dist/html-import-plugin.d.ts +2 -0
  41. package/dist/html-import-plugin.js +72 -0
  42. package/dist/html-import-plugin.js.map +1 -0
  43. package/dist/index.d.ts +37 -21
  44. package/dist/index.js +40 -45
  45. package/dist/index.js.map +1 -1
  46. package/dist/json-plugin.d.ts +15 -0
  47. package/dist/json-plugin.js +104 -0
  48. package/dist/json-plugin.js.map +1 -0
  49. package/dist/list-plugin.d.ts +2 -0
  50. package/dist/list-plugin.js +191 -0
  51. package/dist/list-plugin.js.map +1 -0
  52. package/dist/now-config-plugin.d.ts +4 -0
  53. package/dist/now-config-plugin.js +154 -0
  54. package/dist/now-config-plugin.js.map +1 -0
  55. package/dist/now-id-plugin.d.ts +11 -0
  56. package/dist/now-id-plugin.js +71 -0
  57. package/dist/now-id-plugin.js.map +1 -0
  58. package/dist/now-include-plugin.d.ts +16 -0
  59. package/dist/now-include-plugin.js +118 -0
  60. package/dist/now-include-plugin.js.map +1 -0
  61. package/dist/now-ref-plugin.d.ts +2 -0
  62. package/dist/now-ref-plugin.js +43 -0
  63. package/dist/now-ref-plugin.js.map +1 -0
  64. package/dist/now-unresolved-plugin.d.ts +2 -0
  65. package/dist/now-unresolved-plugin.js +32 -0
  66. package/dist/now-unresolved-plugin.js.map +1 -0
  67. package/dist/package-json-plugin.d.ts +2 -0
  68. package/dist/package-json-plugin.js +70 -0
  69. package/dist/package-json-plugin.js.map +1 -0
  70. package/dist/property-plugin.d.ts +2 -0
  71. package/dist/property-plugin.js +105 -0
  72. package/dist/property-plugin.js.map +1 -0
  73. package/dist/record-plugin.d.ts +43 -0
  74. package/dist/record-plugin.js +147 -0
  75. package/dist/record-plugin.js.map +1 -0
  76. package/dist/repack/index.d.ts +1 -0
  77. package/dist/repack/index.js +10 -2
  78. package/dist/repack/index.js.map +1 -1
  79. package/dist/repack/lint/Rules.d.ts +1 -1
  80. package/dist/repack/lint/Rules.js +7 -3
  81. package/dist/repack/lint/Rules.js.map +1 -1
  82. package/dist/repack/lint/index.js +1 -1
  83. package/dist/rest-api-plugin.d.ts +2 -0
  84. package/dist/rest-api-plugin.js +469 -0
  85. package/dist/rest-api-plugin.js.map +1 -0
  86. package/dist/role-plugin.d.ts +2 -0
  87. package/dist/role-plugin.js +117 -0
  88. package/dist/role-plugin.js.map +1 -0
  89. package/dist/script-action-plugin.d.ts +2 -0
  90. package/dist/script-action-plugin.js +62 -0
  91. package/dist/script-action-plugin.js.map +1 -0
  92. package/dist/script-include-plugin.d.ts +2 -0
  93. package/dist/script-include-plugin.js +102 -0
  94. package/dist/script-include-plugin.js.map +1 -0
  95. package/dist/server-module-plugin/index.d.ts +14 -0
  96. package/dist/server-module-plugin/index.js +378 -0
  97. package/dist/server-module-plugin/index.js.map +1 -0
  98. package/dist/server-module-plugin/sbom-builder.d.ts +45 -0
  99. package/dist/server-module-plugin/sbom-builder.js +179 -0
  100. package/dist/server-module-plugin/sbom-builder.js.map +1 -0
  101. package/dist/service-portal/angular-provider-plugin.d.ts +2 -0
  102. package/dist/service-portal/angular-provider-plugin.js +78 -0
  103. package/dist/service-portal/angular-provider-plugin.js.map +1 -0
  104. package/dist/service-portal/dependency-plugin.d.ts +2 -0
  105. package/dist/service-portal/dependency-plugin.js +235 -0
  106. package/dist/service-portal/dependency-plugin.js.map +1 -0
  107. package/dist/service-portal/widget-plugin.d.ts +6 -0
  108. package/dist/service-portal/widget-plugin.js +230 -0
  109. package/dist/service-portal/widget-plugin.js.map +1 -0
  110. package/dist/static-content-plugin.d.ts +2 -0
  111. package/dist/static-content-plugin.js +272 -0
  112. package/dist/static-content-plugin.js.map +1 -0
  113. package/dist/table-plugin.d.ts +3 -0
  114. package/dist/table-plugin.js +1324 -0
  115. package/dist/table-plugin.js.map +1 -0
  116. package/dist/ui-action-plugin.d.ts +2 -0
  117. package/dist/ui-action-plugin.js +291 -0
  118. package/dist/ui-action-plugin.js.map +1 -0
  119. package/dist/ui-page-plugin.d.ts +2 -0
  120. package/dist/ui-page-plugin.js +165 -0
  121. package/dist/ui-page-plugin.js.map +1 -0
  122. package/dist/user-preference-plugin.d.ts +15 -0
  123. package/dist/user-preference-plugin.js +63 -0
  124. package/dist/user-preference-plugin.js.map +1 -0
  125. package/dist/utils.d.ts +17 -0
  126. package/dist/utils.js +72 -0
  127. package/dist/utils.js.map +1 -0
  128. package/dist/view-plugin.d.ts +2 -0
  129. package/dist/view-plugin.js +45 -0
  130. package/dist/view-plugin.js.map +1 -0
  131. package/package.json +17 -13
  132. package/src/acl-plugin.ts +256 -0
  133. package/src/application-menu-plugin.ts +109 -0
  134. package/src/arrow-function-plugin.ts +127 -0
  135. package/src/atf/step-configs.ts +2384 -0
  136. package/src/atf/test-plugin.ts +739 -0
  137. package/src/basic-syntax-plugin.ts +729 -0
  138. package/src/business-rule-plugin.ts +266 -0
  139. package/src/call-expression-plugin.ts +202 -0
  140. package/src/client-script-plugin.ts +179 -0
  141. package/src/column/column-helper.ts +119 -0
  142. package/src/column/column-to-record.ts +131 -0
  143. package/src/column-plugin.ts +506 -0
  144. package/src/cross-scope-privilege-plugin.ts +82 -0
  145. package/src/html-import-plugin.ts +79 -0
  146. package/src/index.ts +39 -21
  147. package/src/json-plugin.ts +128 -0
  148. package/src/list-plugin.ts +222 -0
  149. package/src/now-config-plugin.ts +194 -0
  150. package/src/now-id-plugin.ts +78 -0
  151. package/src/now-include-plugin.ts +140 -0
  152. package/src/now-ref-plugin.ts +48 -0
  153. package/src/now-unresolved-plugin.ts +30 -0
  154. package/src/package-json-plugin.ts +87 -0
  155. package/src/property-plugin.ts +118 -0
  156. package/src/record-plugin.ts +171 -0
  157. package/src/repack/index.ts +10 -1
  158. package/src/repack/lint/Rules.ts +5 -4
  159. package/src/repack/lint/index.ts +1 -1
  160. package/src/rest-api-plugin.ts +658 -0
  161. package/src/role-plugin.ts +128 -0
  162. package/src/script-action-plugin.ts +63 -0
  163. package/src/script-include-plugin.ts +110 -0
  164. package/src/server-module-plugin/index.ts +470 -0
  165. package/src/server-module-plugin/sbom-builder.ts +183 -0
  166. package/src/service-portal/angular-provider-plugin.ts +83 -0
  167. package/src/service-portal/dependency-plugin.ts +284 -0
  168. package/src/service-portal/widget-plugin.ts +263 -0
  169. package/src/static-content-plugin.ts +254 -0
  170. package/src/table-plugin.ts +1698 -0
  171. package/src/ui-action-plugin.ts +324 -0
  172. package/src/ui-page-plugin.ts +168 -0
  173. package/src/user-preference-plugin.ts +62 -0
  174. package/src/utils.ts +69 -0
  175. package/src/view-plugin.ts +46 -0
  176. package/dist/AttachmentPlugin.d.ts +0 -254
  177. package/dist/AttachmentPlugin.js +0 -220
  178. package/dist/AttachmentPlugin.js.map +0 -1
  179. package/dist/BusinessRulePlugin.d.ts +0 -30
  180. package/dist/BusinessRulePlugin.js +0 -149
  181. package/dist/BusinessRulePlugin.js.map +0 -1
  182. package/dist/CrossScopePrivilegePlugin.d.ts +0 -35
  183. package/dist/CrossScopePrivilegePlugin.js +0 -80
  184. package/dist/CrossScopePrivilegePlugin.js.map +0 -1
  185. package/dist/DefaultPlugin.d.ts +0 -86
  186. package/dist/DefaultPlugin.js +0 -226
  187. package/dist/DefaultPlugin.js.map +0 -1
  188. package/dist/HtmlTemplatePlugin.d.ts +0 -21
  189. package/dist/HtmlTemplatePlugin.js +0 -29
  190. package/dist/HtmlTemplatePlugin.js.map +0 -1
  191. package/dist/IdPlugin.d.ts +0 -28
  192. package/dist/IdPlugin.js +0 -68
  193. package/dist/IdPlugin.js.map +0 -1
  194. package/dist/IncludePlugin.d.ts +0 -34
  195. package/dist/IncludePlugin.js +0 -155
  196. package/dist/IncludePlugin.js.map +0 -1
  197. package/dist/JsonPlugin.d.ts +0 -28
  198. package/dist/JsonPlugin.js +0 -69
  199. package/dist/JsonPlugin.js.map +0 -1
  200. package/dist/ListPlugin.d.ts +0 -93
  201. package/dist/ListPlugin.js +0 -456
  202. package/dist/ListPlugin.js.map +0 -1
  203. package/dist/NowConfigPlugin.d.ts +0 -45
  204. package/dist/NowConfigPlugin.js +0 -64
  205. package/dist/NowConfigPlugin.js.map +0 -1
  206. package/dist/PackageJsonPlugin.d.ts +0 -34
  207. package/dist/PackageJsonPlugin.js +0 -63
  208. package/dist/PackageJsonPlugin.js.map +0 -1
  209. package/dist/PropertyPlugin.d.ts +0 -51
  210. package/dist/PropertyPlugin.js +0 -181
  211. package/dist/PropertyPlugin.js.map +0 -1
  212. package/dist/ScriptTemplatePlugin.d.ts +0 -13
  213. package/dist/ScriptTemplatePlugin.js +0 -55
  214. package/dist/ScriptTemplatePlugin.js.map +0 -1
  215. package/dist/ServerModulePlugin.d.ts +0 -75
  216. package/dist/ServerModulePlugin.js +0 -368
  217. package/dist/ServerModulePlugin.js.map +0 -1
  218. package/dist/UserPreferencePlugin.d.ts +0 -19
  219. package/dist/UserPreferencePlugin.js +0 -32
  220. package/dist/UserPreferencePlugin.js.map +0 -1
  221. package/dist/aclAndRole/AclPlugin.d.ts +0 -82
  222. package/dist/aclAndRole/AclPlugin.js +0 -262
  223. package/dist/aclAndRole/AclPlugin.js.map +0 -1
  224. package/dist/aclAndRole/RolePlugin.d.ts +0 -66
  225. package/dist/aclAndRole/RolePlugin.js +0 -179
  226. package/dist/aclAndRole/RolePlugin.js.map +0 -1
  227. package/dist/aclAndRole/Util.d.ts +0 -3
  228. package/dist/aclAndRole/Util.js +0 -90
  229. package/dist/aclAndRole/Util.js.map +0 -1
  230. package/dist/app/ApplicationMenuPlugin.d.ts +0 -34
  231. package/dist/app/ApplicationMenuPlugin.js +0 -112
  232. package/dist/app/ApplicationMenuPlugin.js.map +0 -1
  233. package/dist/db/ColumnPlugins.d.ts +0 -750
  234. package/dist/db/ColumnPlugins.js +0 -114
  235. package/dist/db/ColumnPlugins.js.map +0 -1
  236. package/dist/db/DBUtils.d.ts +0 -2
  237. package/dist/db/DBUtils.js +0 -27
  238. package/dist/db/DBUtils.js.map +0 -1
  239. package/dist/db/DocumentationPlugin.d.ts +0 -67
  240. package/dist/db/DocumentationPlugin.js +0 -258
  241. package/dist/db/DocumentationPlugin.js.map +0 -1
  242. package/dist/db/LicensingPlugin.d.ts +0 -60
  243. package/dist/db/LicensingPlugin.js +0 -117
  244. package/dist/db/LicensingPlugin.js.map +0 -1
  245. package/dist/db/RecordPlugin.d.ts +0 -133
  246. package/dist/db/RecordPlugin.js +0 -337
  247. package/dist/db/RecordPlugin.js.map +0 -1
  248. package/dist/db/TablePlugin.d.ts +0 -231
  249. package/dist/db/TablePlugin.js +0 -1630
  250. package/dist/db/TablePlugin.js.map +0 -1
  251. package/dist/db/index.d.ts +0 -6
  252. package/dist/db/index.js +0 -32
  253. package/dist/db/index.js.map +0 -1
  254. package/dist/scriptedRESTAPI/RESTDeserializationUtils.d.ts +0 -10
  255. package/dist/scriptedRESTAPI/RESTDeserializationUtils.js +0 -373
  256. package/dist/scriptedRESTAPI/RESTDeserializationUtils.js.map +0 -1
  257. package/dist/scriptedRESTAPI/RESTSerializationUtils.d.ts +0 -13
  258. package/dist/scriptedRESTAPI/RESTSerializationUtils.js +0 -177
  259. package/dist/scriptedRESTAPI/RESTSerializationUtils.js.map +0 -1
  260. package/dist/scriptedRESTAPI/RestApiPlugin.d.ts +0 -81
  261. package/dist/scriptedRESTAPI/RestApiPlugin.js +0 -345
  262. package/dist/scriptedRESTAPI/RestApiPlugin.js.map +0 -1
  263. package/dist/scriptedRESTAPI/RestSchemaUtils.d.ts +0 -190
  264. package/dist/scriptedRESTAPI/RestSchemaUtils.js +0 -53
  265. package/dist/scriptedRESTAPI/RestSchemaUtils.js.map +0 -1
  266. package/dist/scriptedRESTAPI/RestUtils.d.ts +0 -69
  267. package/dist/scriptedRESTAPI/RestUtils.js +0 -497
  268. package/dist/scriptedRESTAPI/RestUtils.js.map +0 -1
  269. package/dist/scripts/ClientScriptPlugin.d.ts +0 -64
  270. package/dist/scripts/ClientScriptPlugin.js +0 -170
  271. package/dist/scripts/ClientScriptPlugin.js.map +0 -1
  272. package/dist/scripts/scriptUtils.d.ts +0 -1
  273. package/dist/scripts/scriptUtils.js +0 -9
  274. package/dist/scripts/scriptUtils.js.map +0 -1
  275. package/dist/uxf/ExperiencePlugin.d.ts +0 -45
  276. package/dist/uxf/ExperiencePlugin.js +0 -61
  277. package/dist/uxf/ExperiencePlugin.js.map +0 -1
  278. package/dist/uxf/RoutesPlugin.d.ts +0 -29
  279. package/dist/uxf/RoutesPlugin.js +0 -181
  280. package/dist/uxf/RoutesPlugin.js.map +0 -1
  281. package/dist/uxf/UxfFormulaParser/cleanUxValue.d.ts +0 -4
  282. package/dist/uxf/UxfFormulaParser/cleanUxValue.js +0 -65
  283. package/dist/uxf/UxfFormulaParser/cleanUxValue.js.map +0 -1
  284. package/dist/uxf/UxfFormulaParser/grammerParser/api.d.ts +0 -189
  285. package/dist/uxf/UxfFormulaParser/grammerParser/api.js +0 -158
  286. package/dist/uxf/UxfFormulaParser/grammerParser/api.js.map +0 -1
  287. package/dist/uxf/UxfFormulaParser/grammerParser/clientTransformMap.d.ts +0 -13
  288. package/dist/uxf/UxfFormulaParser/grammerParser/clientTransformMap.js +0 -604
  289. package/dist/uxf/UxfFormulaParser/grammerParser/clientTransformMap.js.map +0 -1
  290. package/dist/uxf/UxfFormulaParser/grammerParser/grammarParser.d.ts +0 -12
  291. package/dist/uxf/UxfFormulaParser/grammerParser/grammarParser.js +0 -551
  292. package/dist/uxf/UxfFormulaParser/grammerParser/grammarParser.js.map +0 -1
  293. package/dist/uxf/UxfFormulaParser/grammerParser/spanHelpers.d.ts +0 -31
  294. package/dist/uxf/UxfFormulaParser/grammerParser/spanHelpers.js +0 -64
  295. package/dist/uxf/UxfFormulaParser/grammerParser/spanHelpers.js.map +0 -1
  296. package/dist/uxf/UxfFormulaParser/index.d.ts +0 -3
  297. package/dist/uxf/UxfFormulaParser/index.js +0 -11
  298. package/dist/uxf/UxfFormulaParser/index.js.map +0 -1
  299. package/dist/uxf/UxfFormulaParser/parser.d.ts +0 -8
  300. package/dist/uxf/UxfFormulaParser/parser.js +0 -87
  301. package/dist/uxf/UxfFormulaParser/parser.js.map +0 -1
  302. package/dist/uxf/UxfFormulaParser/utils/getErrorMsg.d.ts +0 -8
  303. package/dist/uxf/UxfFormulaParser/utils/getErrorMsg.js +0 -17
  304. package/dist/uxf/UxfFormulaParser/utils/getErrorMsg.js.map +0 -1
  305. package/dist/uxf/constants.d.ts +0 -2
  306. package/dist/uxf/constants.js +0 -8
  307. package/dist/uxf/constants.js.map +0 -1
  308. package/dist/uxf/index.d.ts +0 -2
  309. package/dist/uxf/index.js +0 -11
  310. package/dist/uxf/index.js.map +0 -1
  311. package/dist/uxf/tectonicIdGenerator.d.ts +0 -12
  312. package/dist/uxf/tectonicIdGenerator.js +0 -79
  313. package/dist/uxf/tectonicIdGenerator.js.map +0 -1
  314. package/src/AttachmentPlugin.ts +0 -268
  315. package/src/BusinessRulePlugin.ts +0 -238
  316. package/src/CrossScopePrivilegePlugin.ts +0 -115
  317. package/src/DefaultPlugin.ts +0 -288
  318. package/src/HtmlTemplatePlugin.ts +0 -31
  319. package/src/IdPlugin.ts +0 -74
  320. package/src/IncludePlugin.ts +0 -206
  321. package/src/JsonPlugin.ts +0 -76
  322. package/src/ListPlugin.ts +0 -570
  323. package/src/NowConfigPlugin.ts +0 -69
  324. package/src/PackageJsonPlugin.ts +0 -68
  325. package/src/PropertyPlugin.ts +0 -237
  326. package/src/ScriptTemplatePlugin.ts +0 -53
  327. package/src/ServerModulePlugin.ts +0 -480
  328. package/src/UserPreferencePlugin.ts +0 -45
  329. package/src/aclAndRole/AclPlugin.ts +0 -420
  330. package/src/aclAndRole/RolePlugin.ts +0 -254
  331. package/src/aclAndRole/Util.ts +0 -113
  332. package/src/app/ApplicationMenuPlugin.ts +0 -165
  333. package/src/db/ColumnPlugins.ts +0 -114
  334. package/src/db/DBUtils.ts +0 -36
  335. package/src/db/DocumentationPlugin.ts +0 -316
  336. package/src/db/LicensingPlugin.ts +0 -138
  337. package/src/db/RecordPlugin.ts +0 -459
  338. package/src/db/TablePlugin.ts +0 -2072
  339. package/src/db/index.ts +0 -6
  340. package/src/scriptedRESTAPI/RESTDeserializationUtils.ts +0 -419
  341. package/src/scriptedRESTAPI/RESTSerializationUtils.ts +0 -228
  342. package/src/scriptedRESTAPI/RestApiPlugin.ts +0 -469
  343. package/src/scriptedRESTAPI/RestSchemaUtils.ts +0 -72
  344. package/src/scriptedRESTAPI/RestUtils.ts +0 -569
  345. package/src/scripts/ClientScriptPlugin.ts +0 -257
  346. package/src/scripts/scriptUtils.ts +0 -5
  347. package/src/uxf/ExperiencePlugin.ts +0 -67
  348. package/src/uxf/RoutesPlugin.ts +0 -211
  349. package/src/uxf/UxfFormulaParser/cleanUxValue.ts +0 -73
  350. package/src/uxf/UxfFormulaParser/grammerParser/api.js +0 -166
  351. package/src/uxf/UxfFormulaParser/grammerParser/clientTransformMap.js +0 -606
  352. package/src/uxf/UxfFormulaParser/grammerParser/grammarParser.js +0 -551
  353. package/src/uxf/UxfFormulaParser/grammerParser/spanHelpers.js +0 -65
  354. package/src/uxf/UxfFormulaParser/index.ts +0 -4
  355. package/src/uxf/UxfFormulaParser/parser.ts +0 -64
  356. package/src/uxf/UxfFormulaParser/utils/getErrorMsg.ts +0 -13
  357. package/src/uxf/constants.ts +0 -4
  358. package/src/uxf/index.ts +0 -2
  359. package/src/uxf/tectonicIdGenerator.ts +0 -78
@@ -0,0 +1,3 @@
1
+ import { Plugin } from '@servicenow/sdk-build-core';
2
+ export declare const BusinessRulePlugin: Plugin;
3
+ export declare const DEFAULT_SCRIPT = "(function executeRule(current, previous /*null when async*/) {\n\n\t// Add your code here\n\n})(current, previous);";
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_SCRIPT = exports.BusinessRulePlugin = void 0;
4
+ const sdk_build_core_1 = require("@servicenow/sdk-build-core");
5
+ const server_module_plugin_1 = require("./server-module-plugin");
6
+ const now_id_plugin_1 = require("./now-id-plugin");
7
+ const utils_1 = require("./utils");
8
+ // Similar to lodash's groupBy, but simply stores the last element of each group
9
+ function groupByExistence(collection, keyProvider) {
10
+ return (collection?.reduce((groups, e) => {
11
+ groups[keyProvider(e)] = e;
12
+ return groups;
13
+ }, {}) ?? {});
14
+ }
15
+ const createBidiMap = (pairs) => {
16
+ const map = new Map(pairs);
17
+ const reverseMap = new Map(pairs.map(([k, v]) => [v, k]));
18
+ return {
19
+ get: (key) => map.get(key),
20
+ reverseLookUp: (value) => reverseMap.get(value),
21
+ };
22
+ };
23
+ const whenBidiMap = createBidiMap([
24
+ ['async', 'async_always'],
25
+ ['async_deprecated', 'async'],
26
+ ['display', 'before_display'],
27
+ ['before', 'before'],
28
+ ['after', 'after'],
29
+ ]);
30
+ const brAliases = {
31
+ addMessage: ['add_message'],
32
+ abortAction: ['abort_action'],
33
+ setFieldValue: ['set_field_value'],
34
+ filterCondition: ['filter_condition'],
35
+ roleConditions: ['role_conditions'],
36
+ protectionPolicy: ['sys_policy'],
37
+ };
38
+ exports.BusinessRulePlugin = sdk_build_core_1.Plugin.create({
39
+ name: 'BusinessRulePlugin',
40
+ records: {
41
+ sys_script: {
42
+ toShape(record) {
43
+ return {
44
+ success: true,
45
+ value: new sdk_build_core_1.CallExpressionShape({
46
+ source: record,
47
+ callee: 'BusinessRule',
48
+ args: [
49
+ record
50
+ .transform(({ $ }) => ({
51
+ $id: $.val(now_id_plugin_1.NowIdShape.from(record)),
52
+ name: $,
53
+ table: $.from('collection'),
54
+ order: $.toNumber().def(100),
55
+ active: $.toBoolean().def(true),
56
+ when: $.map((v) => {
57
+ return v.ifString() ? whenBidiMap.reverseLookUp(v.asString().getValue()) : v;
58
+ }),
59
+ action: $.val(getActionsArray(record)),
60
+ message: $.def(''),
61
+ addMessage: $.from('add_message').toBoolean().def(false),
62
+ condition: $.def(''),
63
+ filterCondition: $.from('filter_condition').def(''),
64
+ description: $.def(''),
65
+ setFieldValue: $.from('template').def(''),
66
+ abortAction: $.from('abort_action').toBoolean().def(false),
67
+ roleConditions: $.from('role_conditions').map((v) => v.ifString()?.ifNotEmpty()?.getValue().split(',')),
68
+ script: $.def(exports.DEFAULT_SCRIPT),
69
+ priority: $.map((p) => p.ifNumber()?.asNumber()).def(100),
70
+ changeFields: $.from('change_fields').toBoolean().def(false),
71
+ clientCallable: $.from('client_callable').toBoolean().def(false),
72
+ executeFunction: $.from('execute_function').toBoolean().def(false),
73
+ access: $.toString().def('package_private'),
74
+ rest: $.from('is_rest', 'rest_variables', 'rest_method', 'rest_method_text', 'rest_service', 'rest_service_text')
75
+ .def({
76
+ webService: false,
77
+ variables: '',
78
+ method: '',
79
+ methodText: '',
80
+ service: '',
81
+ serviceText: '',
82
+ })
83
+ .map((is_rest, rest_variables, rest_method, rest_method_text, rest_service, rest_service_text) => ({
84
+ webService: is_rest.ifDefined()?.toBoolean(),
85
+ variables: rest_variables.toString(),
86
+ method: rest_method.toString(),
87
+ methodText: rest_method_text.toString(),
88
+ service: rest_service.toString(),
89
+ serviceText: rest_service_text.toString(),
90
+ })),
91
+ protectionPolicy: $.from('sys_policy').def(''),
92
+ }))
93
+ .withAliasedKeys(brAliases),
94
+ ],
95
+ }),
96
+ };
97
+ },
98
+ },
99
+ },
100
+ shapes: [
101
+ {
102
+ shape: sdk_build_core_1.CallExpressionShape,
103
+ fileTypes: ['fluent'],
104
+ async toRecord(callExpression, { factory, config, diagnostics }) {
105
+ if (callExpression.getCallee() !== 'BusinessRule') {
106
+ return { success: false };
107
+ }
108
+ const arg = callExpression.getArgument(0).asObject().withAliasedKeys(brAliases);
109
+ const rest = arg.get('rest').ifDefined()?.asObject();
110
+ (0, utils_1.generateDeprecatedDiagnostics)(arg, diagnostics);
111
+ if (arg.get('script').isUnresolved()) {
112
+ diagnostics.error(arg.get('script').getOriginalNode(), `Unable to resolve the script reference, ensure the imported module is within the ${config.serverModulesDir} directory.`);
113
+ }
114
+ return {
115
+ success: true,
116
+ value: arg.pipe((br) => factory.createRecord({
117
+ source: callExpression,
118
+ table: 'sys_script',
119
+ explicitId: br.get('$id'),
120
+ properties: br.transform(({ $, merge }) => ({
121
+ name: $,
122
+ order: $.def(100),
123
+ active: $.def(true),
124
+ message: $,
125
+ add_message: $.from('addMessage').map((v) => {
126
+ return (v.ifBoolean()?.getValue() ??
127
+ ($._('message').val.getValue() !== undefined ? true : false));
128
+ }),
129
+ condition: $,
130
+ filter_condition: $.from('filterCondition'),
131
+ description: $,
132
+ advanced: $.val(br
133
+ .get('script')
134
+ .pipe((script) => script.isDefined() && script.getValue() !== exports.DEFAULT_SCRIPT)),
135
+ script: $.map((v) => v
136
+ .if(server_module_plugin_1.ModuleFunctionShape)
137
+ ?.toString((n) => `${n}({{PARAMS}})`, ['current', 'previous']) ?? v)
138
+ .toCdata()
139
+ .def(exports.DEFAULT_SCRIPT),
140
+ collection: $.from('table'),
141
+ when: $.map((v) => (v.ifString() ? whenBidiMap.get(v.asString().getValue()) : v)).def('before'),
142
+ [merge]: $.from('action').map((v) => {
143
+ const { insertAction, updateAction, deleteAction, queryAction } = groupByExistence(v.ifArray()?.getElements(), (action) => `${action.asString().getValue()}Action`);
144
+ return {
145
+ action_insert: !!insertAction,
146
+ action_update: !!updateAction,
147
+ action_query: !!queryAction,
148
+ action_delete: !!deleteAction,
149
+ };
150
+ }),
151
+ template: $.from('setFieldValue'),
152
+ role_conditions: $.from('roleConditions').map((v) => getRolesString(v.ifArray())),
153
+ abort_action: $.from('abortAction').def(false),
154
+ priority: $.def(100),
155
+ is_rest: $.val(rest?.get('webService')).def(false),
156
+ rest_variables: $.val(rest?.get('variables')),
157
+ rest_method: $.val(rest?.get('method')),
158
+ rest_method_text: $.val(rest?.get('methodText')),
159
+ rest_service: $.val(rest?.get('service')),
160
+ rest_service_text: $.val(rest?.get('serviceText')),
161
+ change_fields: $.from('changeFields').def(false),
162
+ client_callable: $.from('clientCallable').def(false),
163
+ execute_function: $.from('executeFunction').def(false),
164
+ access: $.def('package_private'),
165
+ sys_policy: $.from('protectionPolicy'),
166
+ })),
167
+ })),
168
+ };
169
+ },
170
+ },
171
+ ],
172
+ });
173
+ function getActionsArray(recordData) {
174
+ const actions = [];
175
+ if (recordData.get('action_update').toBoolean().equals(true)) {
176
+ actions.push('update');
177
+ }
178
+ if (recordData.get('action_delete').toBoolean().equals(true)) {
179
+ actions.push('delete');
180
+ }
181
+ if (recordData.get('action_insert').toBoolean().equals(true)) {
182
+ actions.push('insert');
183
+ }
184
+ if (recordData.get('action_query').toBoolean().equals(true)) {
185
+ actions.push('query');
186
+ }
187
+ return actions;
188
+ }
189
+ function getRolesString(roles) {
190
+ if (!roles) {
191
+ return undefined;
192
+ }
193
+ const uniqueRoles = [
194
+ ...new Set(roles
195
+ .getElements()
196
+ .map((role) => (role.isRecord() ? role.get('name').asString().getValue() : role.asString().getValue()))),
197
+ ];
198
+ return uniqueRoles.join(',');
199
+ }
200
+ // This is the default script on the instance. We should provide
201
+ // it in the case they don't define a script, as they may later want
202
+ // to add a script on the instance and it's a better experience to
203
+ // have a starting script available.
204
+ exports.DEFAULT_SCRIPT = '(function executeRule(current, previous /*null when async*/) {\n\n\t// Add your code here\n\n})(current, previous);';
205
+ //# sourceMappingURL=business-rule-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"business-rule-plugin.js","sourceRoot":"","sources":["../src/business-rule-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Plugin } from '@servicenow/sdk-build-core';
2
+ export declare const CallExpressionPlugin: Plugin;
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CallExpressionPlugin = void 0;
4
+ const sdk_build_core_1 = require("@servicenow/sdk-build-core");
5
+ const db_1 = require("@servicenow/sdk-core/runtime/db");
6
+ const utils_1 = require("./utils");
7
+ exports.CallExpressionPlugin = sdk_build_core_1.Plugin.create({
8
+ name: 'CallExpressionPlugin',
9
+ nodes: [
10
+ {
11
+ node: 'CallExpression',
12
+ fileTypes: ['fluent'],
13
+ entryPoint: true,
14
+ async toShape(node, { transform }) {
15
+ const args = [];
16
+ for (const arg of node.getArguments()) {
17
+ const result = await transform.toShape(arg);
18
+ if (!result.success) {
19
+ return { success: false };
20
+ }
21
+ args.push(result.value);
22
+ }
23
+ return {
24
+ success: true,
25
+ value: new sdk_build_core_1.CallExpressionShape({
26
+ source: node,
27
+ callee: (0, utils_1.getCallExpressionName)(node),
28
+ args,
29
+ }),
30
+ };
31
+ },
32
+ },
33
+ ],
34
+ shapes: [
35
+ {
36
+ shape: sdk_build_core_1.CallExpressionShape,
37
+ async commit(shape, target, { commit, compiler }) {
38
+ if (target.isKind(sdk_build_core_1.ts.SyntaxKind.ExpressionStatement)) {
39
+ target = target.getExpression();
40
+ }
41
+ if (!sdk_build_core_1.ts.Node.isCallExpression(target)) {
42
+ target.replaceWithText(shape.getCode());
43
+ return { success: true };
44
+ }
45
+ const callee = target.getExpression();
46
+ if (callee.getText() !== shape.getCallee()) {
47
+ callee.replaceWithText(shape.getCallee());
48
+ }
49
+ // Trim any excess arguments
50
+ const targetArguments = target.getArguments();
51
+ const shapeArguments = shape.getArguments(false);
52
+ const excess = targetArguments.length - shapeArguments.length;
53
+ for (let i = 1; i <= excess; i++) {
54
+ target.removeArgument(targetArguments.length - i);
55
+ }
56
+ // Commit existing arguments after trimming
57
+ for (const [i, targetElement] of target.getArguments().entries()) {
58
+ await commit(shape.getArgument(i, false), targetElement);
59
+ }
60
+ // Add new arguments all at once
61
+ const argumentsToAdd = shapeArguments.slice(target.getArguments().length).map((e) => e.getCode());
62
+ if (argumentsToAdd.length > 0) {
63
+ target.addArguments(argumentsToAdd);
64
+ }
65
+ if (shape.getCallee() === db_1.Record.name) {
66
+ fixCallExpressionArgTypes(compiler, target);
67
+ }
68
+ return { success: true };
69
+ },
70
+ },
71
+ ],
72
+ });
73
+ function fixCallExpressionArgTypes(compiler, node) {
74
+ if (node.wasForgotten()) {
75
+ return;
76
+ }
77
+ node.getSourceFile().fixMissingImports();
78
+ const signature = compiler.getTypeChecker().getResolvedSignature(node);
79
+ if (!signature) {
80
+ return;
81
+ }
82
+ signature.getParameters().forEach((param, idx) => {
83
+ const argType = param.getTypeAtLocation(node);
84
+ const argNode = node.getArguments()[idx]?.asKind(sdk_build_core_1.ts.SyntaxKind.ObjectLiteralExpression);
85
+ if (!argType || !argNode) {
86
+ return;
87
+ }
88
+ fixCallExpressionArgType(node, argNode, argType);
89
+ });
90
+ }
91
+ function fixCallExpressionArgType(node, argNode, argType) {
92
+ if (argNode.getType().isObject()) {
93
+ const objectLiteral = argNode.isKind(sdk_build_core_1.ts.SyntaxKind.ObjectLiteralExpression)
94
+ ? argNode
95
+ : argNode.getInitializerIfKind(sdk_build_core_1.ts.SyntaxKind.ObjectLiteralExpression);
96
+ argType.getApparentProperties().forEach((prop) => {
97
+ const propNode = objectLiteral?.getProperty(prop.getName())?.asKind(sdk_build_core_1.ts.SyntaxKind.PropertyAssignment);
98
+ if (!propNode) {
99
+ return;
100
+ }
101
+ fixCallExpressionArgType(node, propNode, prop.getTypeAtLocation(node));
102
+ });
103
+ }
104
+ else if (argNode.isKind(sdk_build_core_1.ts.SyntaxKind.PropertyAssignment)) {
105
+ const nodeType = argNode.getType();
106
+ if (nodeType.isAssignableTo(argType) ||
107
+ canAssignString(argNode, argType) ||
108
+ canCastAndAssignBoolean(argNode, argType) ||
109
+ canCastAndAssignNumber(argNode, argType)) {
110
+ return;
111
+ }
112
+ // cast 'as any' for other types
113
+ const argValue = argNode.getInitializer()?.getText();
114
+ argNode.setInitializer(`${argValue} as any`);
115
+ }
116
+ }
117
+ function canCastAndAssignBoolean(argNode, argType) {
118
+ const booleanTypes = getBooleanTypes(argType);
119
+ const booleanValue = getBooleanValue(argNode);
120
+ if (booleanValue && booleanTypes.length > 0) {
121
+ const isAssignable = booleanTypes.some((type) => {
122
+ return ((type.isBoolean() && (booleanValue === 'true' || booleanValue === 'false')) ||
123
+ type.getText() === booleanValue);
124
+ });
125
+ if (isAssignable) {
126
+ argNode.setInitializer(`${booleanValue}`);
127
+ return true;
128
+ }
129
+ }
130
+ return false;
131
+ }
132
+ function canCastAndAssignNumber(argNode, argType) {
133
+ const numberTypes = getNumberTypes(argType);
134
+ const numberValue = getNumberValue(argNode);
135
+ if (numberValue && numberTypes.length > 0) {
136
+ const isAssignable = numberTypes.some((type) => {
137
+ return type.isNumber() || `${type.getLiteralValue()}` === numberValue;
138
+ });
139
+ if (isAssignable) {
140
+ argNode.setInitializer(`${numberValue}`);
141
+ return true;
142
+ }
143
+ }
144
+ return false;
145
+ }
146
+ function canAssignString(argNode, argType) {
147
+ const stringTypes = getStringTypes(argType);
148
+ const stringValue = getStringValue(argNode);
149
+ return stringTypes.some((type) => {
150
+ return type.isString() || type.getLiteralValue() === stringValue;
151
+ });
152
+ }
153
+ function getBooleanValue(argNode) {
154
+ return argNode.getInitializerIfKind(sdk_build_core_1.ts.SyntaxKind.StringLiteral)?.getLiteralValue();
155
+ }
156
+ function getBooleanTypes(argType) {
157
+ const type = argType.isUnion() ? argType.getUnionTypes() : [argType];
158
+ return type.filter((type) => type.isBoolean() || type.isBooleanLiteral());
159
+ }
160
+ function getNumberValue(argNode) {
161
+ const numStrVal = argNode.getInitializerIfKind(sdk_build_core_1.ts.SyntaxKind.StringLiteral)?.getLiteralValue();
162
+ return numStrVal && !isNaN(Number(numStrVal)) ? `${numStrVal}` : undefined;
163
+ }
164
+ function getNumberTypes(argType) {
165
+ const type = argType.isUnion() ? argType.getUnionTypes() : [argType];
166
+ return type.filter((type) => type.isNumber() || type.isNumberLiteral());
167
+ }
168
+ function getStringValue(argNode) {
169
+ return argNode.getInitializerIfKind(sdk_build_core_1.ts.SyntaxKind.StringLiteral)?.getLiteralValue();
170
+ }
171
+ function getStringTypes(argType) {
172
+ const type = argType.isUnion() ? argType.getUnionTypes() : [argType];
173
+ return type.filter((type) => type.isString() || type.isStringLiteral());
174
+ }
175
+ //# sourceMappingURL=call-expression-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-expression-plugin.js","sourceRoot":"","sources":["../src/call-expression-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { Plugin } from '@servicenow/sdk-build-core';
2
+ /**
3
+ * Creates a Client Script (`sys_script_client`).
4
+ *
5
+ * @see https://docs.servicenow.com/csh?topicname=client-script-api-now-ts.html&version=latest
6
+ *
7
+ * @param config - an object containing the following properties:
8
+ * * **$id** - unique id for the record, typically using `Now.ID["value"]`
9
+ * * **name** - name of the client script
10
+ * * **table** - name of the table on which the client script runs
11
+ * * **type** - type of client script, which defines when it runs
12
+ * * **uiType** - user interface to which the client script applies
13
+ * * **active**? - whether the record is enabled
14
+ * * **appliesExtended**? - indicates whether the client script applies to tables extended from the specified table
15
+ * * **description**? - description of the functionality and purpose of the client script
16
+ * * **field**? - field on the table that the client script applies to.
17
+ * This property applies only when the type property is set to `onChange` or `onCellEdit`.
18
+ * * **global**? - indicates which views of the table the client script runs.
19
+ * `true`: the script runs on all views
20
+ * `false`: the script runs only on specified views
21
+ * * **isolateScript**? - indicates whether scripts run in strict mode, with
22
+ * access to direct DOM, `jQuery`, `prototype`, and the `window` object turned off
23
+ * * **messages**? - strings that are available to the client script as localized messages using `getmessage('[message]')`.
24
+ * For more information, see [Translate a client script message](https://docs.servicenow.com/csh?topicname=t_TranslateAClientScriptMessage.html&version=latest)
25
+ * * **script**? - inline script preceded by a `script` tagged template literal.
26
+ * * **view**? - views of the table on which the client script runs. This
27
+ * property applies only when the `global` property is set to `false`
28
+ */
29
+ export declare const ClientScriptPlugin: Plugin;
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientScriptPlugin = void 0;
4
+ const sdk_build_core_1 = require("@servicenow/sdk-build-core");
5
+ const now_id_plugin_1 = require("./now-id-plugin");
6
+ const utils_1 = require("./utils");
7
+ var UITypeMapping;
8
+ (function (UITypeMapping) {
9
+ UITypeMapping[UITypeMapping["desktop"] = 0] = "desktop";
10
+ UITypeMapping[UITypeMapping["mobile_or_service_portal"] = 1] = "mobile_or_service_portal";
11
+ UITypeMapping[UITypeMapping["all"] = 10] = "all";
12
+ })(UITypeMapping || (UITypeMapping = {}));
13
+ const clientScriptAliases = {
14
+ appliesExtended: ['applies_extended'],
15
+ isolateScript: ['isolate_script'],
16
+ uiType: ['ui_type'],
17
+ };
18
+ /**
19
+ * Creates a Client Script (`sys_script_client`).
20
+ *
21
+ * @see https://docs.servicenow.com/csh?topicname=client-script-api-now-ts.html&version=latest
22
+ *
23
+ * @param config - an object containing the following properties:
24
+ * * **$id** - unique id for the record, typically using `Now.ID["value"]`
25
+ * * **name** - name of the client script
26
+ * * **table** - name of the table on which the client script runs
27
+ * * **type** - type of client script, which defines when it runs
28
+ * * **uiType** - user interface to which the client script applies
29
+ * * **active**? - whether the record is enabled
30
+ * * **appliesExtended**? - indicates whether the client script applies to tables extended from the specified table
31
+ * * **description**? - description of the functionality and purpose of the client script
32
+ * * **field**? - field on the table that the client script applies to.
33
+ * This property applies only when the type property is set to `onChange` or `onCellEdit`.
34
+ * * **global**? - indicates which views of the table the client script runs.
35
+ * `true`: the script runs on all views
36
+ * `false`: the script runs only on specified views
37
+ * * **isolateScript**? - indicates whether scripts run in strict mode, with
38
+ * access to direct DOM, `jQuery`, `prototype`, and the `window` object turned off
39
+ * * **messages**? - strings that are available to the client script as localized messages using `getmessage('[message]')`.
40
+ * For more information, see [Translate a client script message](https://docs.servicenow.com/csh?topicname=t_TranslateAClientScriptMessage.html&version=latest)
41
+ * * **script**? - inline script preceded by a `script` tagged template literal.
42
+ * * **view**? - views of the table on which the client script runs. This
43
+ * property applies only when the `global` property is set to `false`
44
+ */
45
+ exports.ClientScriptPlugin = sdk_build_core_1.Plugin.create({
46
+ name: 'ClientScriptPlugin',
47
+ records: {
48
+ sys_script_client: {
49
+ toShape(record) {
50
+ return {
51
+ success: true,
52
+ value: new sdk_build_core_1.CallExpressionShape({
53
+ source: record,
54
+ callee: 'ClientScript',
55
+ args: [
56
+ record
57
+ .transform(({ $, merge }) => ({
58
+ $id: $.val(now_id_plugin_1.NowIdShape.from(record)),
59
+ type: $.def(''),
60
+ table: $,
61
+ appliesExtended: $.from('applies_extended').toBoolean().def(false),
62
+ isolateScript: $.from('isolate_script').toBoolean().def(false),
63
+ script: $,
64
+ name: $,
65
+ description: $.def(''),
66
+ messages: $.def(''),
67
+ global: $.toBoolean().def(true),
68
+ active: $.toBoolean().def(true),
69
+ view: $.def(''),
70
+ uiType: $.from('ui_type')
71
+ .map((v) => getUITypeFromId(v.toNumber().getValue()))
72
+ .def('desktop'),
73
+ [merge]: $.from('field', 'type').map((field, type) => {
74
+ if (type.isString() &&
75
+ ['onChange', 'onCellEdit'].includes(type.getValue()) &&
76
+ !field.ifString()?.isEmpty()) {
77
+ return { field };
78
+ }
79
+ return {};
80
+ }),
81
+ }))
82
+ .withAliasedKeys(clientScriptAliases),
83
+ ],
84
+ }),
85
+ };
86
+ },
87
+ },
88
+ },
89
+ shapes: [
90
+ {
91
+ shape: sdk_build_core_1.CallExpressionShape,
92
+ fileTypes: ['fluent'],
93
+ async toRecord(callExpression, { diagnostics, factory, compiler }) {
94
+ if (callExpression.getCallee() !== 'ClientScript') {
95
+ return { success: false };
96
+ }
97
+ const clientScript = callExpression.getArgument(0).asObject().withAliasedKeys(clientScriptAliases);
98
+ (0, utils_1.generateDeprecatedDiagnostics)(clientScript, diagnostics);
99
+ const script = clientScript.get('script').ifDefined()?.toString().getValue();
100
+ const type = clientScript.get('type').ifString()?.getValue();
101
+ const field = clientScript.get('field').ifString()?.getValue();
102
+ if (field && !type) {
103
+ diagnostics.error(clientScript.get('field'), `Field values are allowed only when type is set to onChange or onCellEdit`);
104
+ }
105
+ if (script && !validateClientSideScripts(script, compiler)) {
106
+ diagnostics.error(clientScript.get('script'), `Client side scripts cannot import or require modules.`);
107
+ }
108
+ return {
109
+ success: true,
110
+ value: factory.createRecord({
111
+ source: callExpression,
112
+ table: 'sys_script_client',
113
+ explicitId: clientScript.get('$id'),
114
+ properties: clientScript.transform(({ $ }) => ({
115
+ table: $,
116
+ global: $.def(true),
117
+ view: $,
118
+ field: $,
119
+ script: $.toCdata(),
120
+ type: $,
121
+ name: $,
122
+ active: $.def(true),
123
+ applies_extended: $.from('appliesExtended').def(false),
124
+ description: $,
125
+ messages: $,
126
+ isolate_script: $.from('isolateScript').def(false),
127
+ ui_type: $.from('uiType')
128
+ .map((v) => (v.isString() ? getUITypeId(v.getValue()) : undefined))
129
+ .def(0),
130
+ })),
131
+ }),
132
+ };
133
+ },
134
+ },
135
+ ],
136
+ });
137
+ function validateClientSideScripts(script, compiler) {
138
+ const source = compiler.createSourceFile('tmp-file.ts', script);
139
+ const importDeclarations = source.getDescendantsOfKind(sdk_build_core_1.ts.SyntaxKind.ImportDeclaration);
140
+ const requireCalls = source.getDescendantsOfKind(sdk_build_core_1.ts.SyntaxKind.CallExpression).filter((callExpression) => {
141
+ return isRequire(callExpression);
142
+ });
143
+ const isValid = !(importDeclarations.length > 0 || requireCalls.length > 0);
144
+ compiler.removeSourceFile(source);
145
+ return isValid;
146
+ }
147
+ function getUITypeFromId(id) {
148
+ const type = UITypeMapping[id];
149
+ if (!type) {
150
+ throw Error('Invalid UI Type encountered, check XML data before transforming again.');
151
+ }
152
+ return type;
153
+ }
154
+ function getUITypeId(value) {
155
+ if (value in UITypeMapping) {
156
+ return UITypeMapping[value];
157
+ }
158
+ throw Error('Invalid ui_type found in xml');
159
+ }
160
+ function isRequire(callExpression) {
161
+ const expression = callExpression.getExpression();
162
+ return sdk_build_core_1.ts.Node.isIdentifier(expression) && expression.getText() === 'require';
163
+ }
164
+ //# sourceMappingURL=client-script-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-script-plugin.js","sourceRoot":"","sources":["../src/client-script-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CallExpressionShape } from '@servicenow/sdk-build-core';
2
+ export declare const COLUMN_TYPE_TO_API: Record<string, string>;
3
+ export declare const COLUMN_API_TO_TYPE: {
4
+ [k: string]: string;
5
+ };
6
+ export declare const DEFAULT_COLUMN_CALCULATION = "(function calculatedFieldValue(current) {\n\n\t// Add your code here\n\treturn ''; // return the calculated value\n\n})(current);";
7
+ export declare function addFieldsToColumn(fields: {
8
+ name: string;
9
+ table: string;
10
+ display: boolean;
11
+ }, column: CallExpressionShape): CallExpressionShape;
12
+ export declare function getDefaultMaxLength(columnType: string): number;