@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
@@ -1,68 +0,0 @@
1
- import { Plugin, Context } from '@servicenow/sdk-build-core'
2
- import { ModuleEntityData } from './ServerModulePlugin'
3
- import { RepackService } from './repack'
4
-
5
- export default Plugin({
6
- name: 'PackageJson',
7
- extractors: {
8
- entity: {
9
- json: {
10
- SourceFile(file, context) {
11
- if (file.getBaseName() !== 'package.json') {
12
- return { handled: false }
13
- }
14
-
15
- return {
16
- handled: true,
17
- diagnostics: [],
18
- data: new ModuleEntityData(file.getFilePath(), file.getFullText(), file, context),
19
- }
20
- },
21
- },
22
- },
23
- },
24
- composers: {
25
- entity: {
26
- async module(module, context) {
27
- if (!module.getProperty('path', 'string')?.getValue().endsWith('package.json')) {
28
- return Promise.resolve(undefined)
29
- }
30
-
31
- // eslint-disable-next-line prefer-const
32
- let { path, content } = module.getValue()
33
-
34
- /**
35
- * We do this to avoid having package plugin depend on the server module plugin to get resolved versions of dependencies.
36
- */
37
- content = await fixDependencyVersion(content as string, context)
38
-
39
- return Promise.resolve({
40
- kind: 'module',
41
- guid: module.getGuid(),
42
- node: module.getNode(),
43
- data: {
44
- path,
45
- content,
46
- },
47
- })
48
- },
49
- },
50
- },
51
- })
52
-
53
- async function fixDependencyVersion(jsonString: string, context: Context) {
54
- const json = JSON.parse(jsonString)
55
- const { dependencies: packageDependencies } = json
56
- if (!packageDependencies) {
57
- return jsonString
58
- }
59
-
60
- const repack = await RepackService.create(context.logger, context.fs, context.app.rootDir)
61
- for (const [name] of Object.entries(packageDependencies)) {
62
- const { name: rname, version: rversion } = await repack.getResolvedDepDetails(name)
63
- packageDependencies[rname] = rversion
64
- }
65
-
66
- json.dependencies = packageDependencies
67
- return JSON.stringify(json, null, 2)
68
- }
@@ -1,237 +0,0 @@
1
- import { Property, getRolesArray, roleSchema } from '@servicenow/sdk-core/runtime/app'
2
- import { Record } from '@servicenow/sdk-core/runtime/db'
3
- import { PropertyType } from '@servicenow/sdk-core/runtime/fluent'
4
- import {
5
- EntityData,
6
- FluentDiagnostic,
7
- ObjectData,
8
- Plugin,
9
- extractCallExpression,
10
- generateCallExpressionExportForDocument,
11
- getCallExpressionName,
12
- getOrCreateEntitySourceFile,
13
- getSysUpdateName,
14
- linkDocument,
15
- isSNScope,
16
- removeNode,
17
- transformFunctionArguments,
18
- writePropertyAsReference,
19
- transformCustomizedProperties,
20
- } from '@servicenow/sdk-build-core'
21
- import { RecordPlugin } from './db/RecordPlugin'
22
- import { z } from 'zod'
23
- import { pickBy } from 'lodash'
24
- import { Diagnostic, ts } from '@servicenow/sdk-project'
25
- import { getRolesString } from './aclAndRole/RolePlugin'
26
-
27
- const PropertySchema = z.object({
28
- $id: z.string().or(z.number()),
29
- name: z.string(),
30
- type: PropertyType.or(z.literal('')).default(''),
31
- value: z.union([z.string(), z.number(), z.boolean()]).default(''),
32
- description: z.string().default(''),
33
- ignoreCache: z.boolean().default(false),
34
- isPrivate: z.boolean().default(false),
35
- choices: z.array(z.string()).default([]),
36
- roles: z
37
- .record(z.union([z.literal('read'), z.literal('write')]), z.array(z.union([roleSchema, z.string()])).optional())
38
- .default({ read: [], write: [] }),
39
- })
40
-
41
- const PropertyConfigSchema = z.object({
42
- name: PropertySchema.shape.name,
43
- type: z.string().default(''),
44
- value: PropertySchema.shape.value.optional(),
45
- description: PropertySchema.shape.description,
46
- is_private: PropertySchema.shape.isPrivate,
47
- ignore_cache: PropertySchema.shape.ignoreCache,
48
- read_roles: z.string().optional(),
49
- write_roles: z.string().optional(),
50
- choices: z.string().optional(),
51
- })
52
-
53
- type PropertyConfig = z.output<typeof PropertyConfigSchema>
54
-
55
- const transformProperties = (
56
- data: PropertyConfig,
57
- xmlRoles: { read_roles: string; write_roles: string }
58
- ): Partial<Property> => {
59
- const { read_roles, write_roles, ...rest } = data
60
-
61
- let roles
62
- if (read_roles !== undefined || write_roles !== undefined) {
63
- roles = {
64
- ...(xmlRoles.read_roles !== undefined && { read: getRolesArray(xmlRoles.read_roles) }),
65
- ...(xmlRoles.write_roles !== undefined && { write: getRolesArray(xmlRoles.write_roles) }),
66
- }
67
- }
68
- const result = {
69
- name: rest.name,
70
- type: rest.type,
71
- value: rest.value,
72
- description: rest.description,
73
- ignoreCache: rest.ignore_cache,
74
- isPrivate: rest.is_private,
75
- roles: roles,
76
- choices: rest.choices
77
- ?.split(/\r?\n/)
78
- .map((choice) => choice.trim())
79
- .filter((choice) => choice),
80
- }
81
- return pickBy(result, (v) => v !== undefined)
82
- }
83
-
84
- export default Plugin({
85
- name: 'Property',
86
- ownedTables: {
87
- sys_properties: { diagnosticLevel: Diagnostic.Level.Warn },
88
- },
89
- extractors: {
90
- entity: {
91
- fluent: {
92
- CallExpression: (node, context) => {
93
- const result = extractCallExpression(Property, 'property', node, context, (prop) =>
94
- context.registerExplicitId('sys_properties', prop.$id as string)
95
- )
96
-
97
- if (!result.handled || !result.data) {
98
- return result
99
- }
100
-
101
- const propertyData = result.data
102
- const diagnostics = result.diagnostics
103
- const scope = context.app.config.scope
104
- const nameData = propertyData.getProperty('name')
105
- const nameNode = nameData.getNode()
106
-
107
- if (!isSNScope(scope) && !nameData.getValue().startsWith(`${scope}.`)) {
108
- diagnostics.push(new FluentDiagnostic(nameNode, `Property name must begin with '${scope}.'`))
109
- }
110
-
111
- return {
112
- handled: true,
113
- diagnostics,
114
- data: propertyData,
115
- }
116
- },
117
- },
118
- },
119
- },
120
- composers: {
121
- entity: {
122
- property(entity, context) {
123
- const scope = context.app.config.scope
124
- const property = PropertySchema.and(z.any()).safeParse(entity.getValue())
125
- if (!property.success) {
126
- return Promise.resolve(undefined)
127
- }
128
-
129
- const { $id, name, value, isPrivate, ignoreCache, choices, type, roles: _, ...rest } = property.data
130
-
131
- const roles = entity.getProperty('roles', 'object')
132
- const readRoles = roles?.getProperty('read', 'array')
133
- const writeRoles = roles?.getProperty('write', 'array')
134
- const readRolesString = readRoles ? getRolesString(readRoles) : ''
135
- const writeRolesString = writeRoles ? getRolesString(writeRoles) : ''
136
-
137
- const suffix = name.replace(new RegExp(`^${scope}\\.`), '')
138
- const propertyRecord = Record({
139
- table: 'sys_properties',
140
- $id,
141
- data: {
142
- name,
143
- suffix,
144
- ...rest,
145
- ...(type === '' ? {} : { type }),
146
- value: `${value}`, // TODO: Should be allowed to assign non-strings to string columns
147
- is_private: isPrivate,
148
- ignore_cache: ignoreCache,
149
- choices: choices.join('\n'),
150
- read_roles: readRolesString,
151
- write_roles: writeRolesString,
152
- },
153
- })
154
-
155
- return context.composeEntities(
156
- [
157
- new EntityData(
158
- 'record',
159
- entity.getGuid(),
160
- ObjectData.fromObjectValue(propertyRecord, entity.getNode()),
161
- entity.getNode(),
162
- entity.getInstallMethod()
163
- ),
164
- ],
165
- [RecordPlugin]
166
- )
167
- },
168
- },
169
- },
170
-
171
- generators: {
172
- record(document, context) {
173
- const tableName = document.data!['table']
174
- if (tableName !== 'sys_properties') {
175
- return undefined
176
- }
177
- return linkDocument(
178
- document,
179
- generateCallExpressionExportForDocument(
180
- context,
181
- {
182
- sourceFile: getOrCreateEntitySourceFile(context, getSysUpdateName(document, 'sys_properties')),
183
- moduleSpecifier: '@servicenow/sdk/core',
184
- },
185
- Property,
186
- { $id: document.guid }
187
- ).getExpressionIfKindOrThrow(ts.SyntaxKind.CallExpression)
188
- )
189
- },
190
- },
191
- transformers: {
192
- record: {
193
- CallExpression(document, context) {
194
- if (getCallExpressionName(document.node) !== Property.name) {
195
- return false
196
- }
197
-
198
- if (document.action === 'DELETE') {
199
- removeNode(document.node)
200
- return true
201
- }
202
-
203
- if (!document.changedData) {
204
- return false
205
- }
206
- const { read_roles, write_roles } = (document.xmlData as any).data
207
- const data = transformProperties(document.changedData!['data'] as PropertyConfig, {
208
- read_roles,
209
- write_roles,
210
- })
211
-
212
- const [args] = document.node.getArguments()
213
- if (!ts.Node.isObjectLiteralExpression(args)) {
214
- return false
215
- }
216
- transformCustomizedProperties(Property, document.node, document.changedData!['data'], data)
217
- transformFunctionArguments(document.node, Property, data)
218
-
219
- if (data.roles) {
220
- removeEmptyRoles(args, data)
221
- writePropertyAsReference(context.logger, args, 'roles', '{}', data.roles)
222
- }
223
-
224
- return true
225
- },
226
- },
227
- },
228
- })
229
-
230
- function removeEmptyRoles(arg: ts.ObjectLiteralExpression, data: Partial<Property>) {
231
- ;['read', 'write'].forEach((type) => {
232
- if (data.roles?.[type].length === 0) {
233
- arg.getProperty('roles')?.asKind(ts.SyntaxKind.ObjectLiteralExpression)?.getProperty(type)?.remove()
234
- delete data.roles?.[type]
235
- }
236
- })
237
- }
@@ -1,53 +0,0 @@
1
- import { escapeStringLiteralValues, Plugin } from '@servicenow/sdk-build-core'
2
- import { ts } from '@servicenow/sdk-project'
3
- import { fieldHasNowIncludeCallExpression } from './IncludePlugin'
4
-
5
- export default Plugin({
6
- name: 'scriptTemplate',
7
- extractors: {
8
- raw: {
9
- fluent: {
10
- TaggedTemplateExpression(node, context) {
11
- if (node.getTag().getText() !== 'script') {
12
- return { handled: false }
13
- }
14
-
15
- return context.extractAst(node.getTemplate())
16
- },
17
- },
18
- },
19
- },
20
- })
21
-
22
- export function processScript(args: ts.ObjectLiteralExpression, argName: string, script: string) {
23
- if (!args.getProperty(argName)) {
24
- createNewScriptTemplate(args, argName, script)
25
- } else if (fieldHasNowIncludeCallExpression(args, argName)) {
26
- return
27
- } else {
28
- const prop = args.getProperty(argName)!.asKindOrThrow(ts.SyntaxKind.PropertyAssignment)
29
- const kind = prop.getInitializer()?.getKind()
30
- if (kind === ts.SyntaxKind.TaggedTemplateExpression) {
31
- const taggedTempExp = prop.getInitializer()?.asKind(ts.SyntaxKind.TaggedTemplateExpression)
32
- updateTaggedTempExpWithScript(taggedTempExp!, script)
33
- } else {
34
- args.getProperty(argName)?.remove()
35
- createNewScriptTemplate(args, argName, script)
36
- }
37
- }
38
- }
39
-
40
- function createNewScriptTemplate(args: ts.ObjectLiteralExpression, argName: string, script: string) {
41
- const prop = args.addPropertyAssignment({ name: argName, initializer: '"place_holder"' })
42
- script = escapeStringLiteralValues(script)
43
- prop.setInitializer((writer) => {
44
- writer.write('`')
45
- writer.write(script)
46
- writer.write('`')
47
- })
48
- }
49
-
50
- function updateTaggedTempExpWithScript(node: ts.TaggedTemplateExpression, script: string) {
51
- const literal = node!.getTemplate().asKind(ts.SyntaxKind.NoSubstitutionTemplateLiteral)!
52
- literal.setLiteralValue(escapeStringLiteralValues(script))
53
- }