@servicenow/sdk-build-plugins 3.0.3 → 4.0.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 (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 +37 -0
  11. package/dist/atf/step-configs.js +2236 -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 +591 -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 +157 -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 +2284 -0
  136. package/src/atf/test-plugin.ts +728 -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 +170 -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 +651 -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,177 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.mergeACLIds = void 0;
27
- exports.generateVersionRecords = generateVersionRecords;
28
- exports.generateRoutesAndRouteAttrRecords = generateRoutesAndRouteAttrRecords;
29
- const db_1 = require("@servicenow/sdk-core/runtime/db");
30
- const _ = __importStar(require("lodash"));
31
- const mergeACLIds = (acls) => _.join(acls, ',');
32
- exports.mergeACLIds = mergeACLIds;
33
- function generateVersionRecords(context, defaultVersion, versions, apiRecord) {
34
- const versionsRecords = [];
35
- const versionRecordMap = new Map();
36
- for (const version of versions) {
37
- const versionId = `v${version.version}`;
38
- const versionRecord = (0, db_1.Record)({
39
- table: 'sys_ws_version',
40
- $id: context.keys.registerExplicitId('sys_ws_version', version.$id),
41
- data: {
42
- active: version.active,
43
- deprecated: version.deprecated,
44
- is_default: defaultVersion === versionId ? true : false,
45
- short_description: version.short_description,
46
- version: version.version,
47
- version_id: versionId,
48
- web_service_definition: apiRecord.$id,
49
- },
50
- });
51
- versionsRecords.push(versionRecord);
52
- /** versions have to be unique */
53
- if (versionRecordMap.has(versionId)) {
54
- throw Error(`Found duplicated version: ${version.version} in ${apiRecord.$id}. All versions must be unique.`);
55
- }
56
- versionRecordMap.set(versionId, versionRecord);
57
- }
58
- return {
59
- records: versionsRecords,
60
- mapping: versionRecordMap,
61
- };
62
- }
63
- function generateRouteAttributesRecords(context, restId, routeId, attributes, collection, mapping_collection, attrField, apiRecord, routeRecord, recordMap) {
64
- const attributeRecords = [];
65
- for (const attribute of attributes) {
66
- const attrId = context.keys.registerExplicitId(collection, attribute.$id);
67
- const attributeRecord = (0, db_1.Record)({
68
- table: collection,
69
- $id: attrId,
70
- data: {
71
- name: attribute.name,
72
- required: attribute.required,
73
- short_description: attribute.short_description,
74
- example_value: attribute.example_value,
75
- web_service_definition: apiRecord.$id,
76
- },
77
- });
78
- /**
79
- * In RestApi since we associate same parameter and headers with multiple routes
80
- * during serialization we would end up generating duplicated records for headers
81
- * and parameters. Here we throw error if two duplicated record have different data.
82
- * Note: two duplicated records would have different data when user refercening a parameter
83
- * in multiple routes updated in just one place.
84
- */
85
- checkForDuplicateRecords(recordMap, attrId, attributeRecord, attributeRecords);
86
- const attrMapId = context.keys.registerCompositeId(mapping_collection, {
87
- attr: attribute.$id,
88
- route: routeId,
89
- rest: restId,
90
- });
91
- const attrMapRecord = (0, db_1.Record)({
92
- table: mapping_collection,
93
- $id: attrMapId,
94
- data: {
95
- web_service_operation: routeRecord.$id,
96
- [attrField]: attributeRecord.$id,
97
- },
98
- });
99
- attributeRecords.push(attrMapRecord);
100
- }
101
- return attributeRecords;
102
- }
103
- function checkForDuplicateRecords(recordMap, recordId, record, attrRecords) {
104
- if (!recordMap.has(recordId)) {
105
- recordMap.set(recordId, record);
106
- attrRecords.push(record);
107
- }
108
- else {
109
- const matchRec = recordMap.get(recordId);
110
- const { web_service_definition: _mwd, ...mRest } = matchRec.data;
111
- const { web_service_definition: _wd, ...rest } = record.data;
112
- if (!_.isEqual(rest, mRest)) {
113
- throw Error(`Found duplicate route attribute map records starting with id: ${recordId}, to have conflicting data.`);
114
- }
115
- }
116
- }
117
- function generateRoutesAndRouteAttrRecords(context, restId, routes, apiData, apiRecord, versionMap) {
118
- const routesRecords = [];
119
- const headerRecordMap = new Map();
120
- const paramRecordMap = new Map();
121
- for (const route of routes) {
122
- const routeParameters = route.parameters;
123
- const routeHeaders = route.headers;
124
- const defaultOperationURI = `${apiData.base_uri}${route.path}`;
125
- const baseOperationURI = `/api/${apiData.namespace}`;
126
- const remOperationURI = `${apiData.service_id}${route.path}`;
127
- const operationURI = route.version
128
- ? `${baseOperationURI}/v${route.version}/${remOperationURI}`
129
- : `${baseOperationURI}/${remOperationURI}`;
130
- const version = getRestRouteVersion(route, versionMap);
131
- const routeRecord = (0, db_1.Record)({
132
- table: 'sys_ws_operation',
133
- $id: context.keys.registerExplicitId('sys_ws_operation', route.$id),
134
- data: {
135
- name: route.name,
136
- active: route.active,
137
- consumes: route.consumes,
138
- consumes_customized: apiData.consumes === route.consumes ? false : true,
139
- default_operation_uri: `v${route.version}` === apiData.default_version ? defaultOperationURI : '',
140
- http_method: route.method,
141
- operation_script: route.script,
142
- operation_uri: operationURI,
143
- produces: route.produces,
144
- produces_customized: apiData.produces === route.produces ? false : true,
145
- relative_path: route.path,
146
- enforce_acl: (0, exports.mergeACLIds)(route.enforce_acl),
147
- requires_acl_authorization: route.authorization,
148
- requires_authentication: route.authentication,
149
- requires_snc_internal_role: route.internalRole,
150
- short_description: route.short_description,
151
- request_example: route.request_example,
152
- web_service_definition: apiRecord.$id,
153
- web_service_version: typeof version === 'object' ? version.$id : version,
154
- ...(route.policy && { sys_policy: route.policy }),
155
- },
156
- });
157
- routesRecords.push(routeRecord);
158
- /** generates the sys_ws_query_parameter and sys_ws_query_parameter_map records */
159
- const routeParamRecords = generateRouteAttributesRecords(context, restId, route.$id, routeParameters, 'sys_ws_query_parameter', 'sys_ws_query_parameter_map', 'web_service_query_parameter', apiRecord, routeRecord, paramRecordMap);
160
- /** generates the sys_ws_header and sys_ws_header_map records */
161
- const routeHeaderRecords = generateRouteAttributesRecords(context, restId, route.$id, routeHeaders, 'sys_ws_header', 'sys_ws_header_map', 'web_service_header', apiRecord, routeRecord, headerRecordMap);
162
- routesRecords.push(...[...routeParamRecords, ...routeHeaderRecords]);
163
- }
164
- return routesRecords;
165
- }
166
- function getRestRouteVersion(route, versionMap) {
167
- /** throws error when a route specifies version not mentioned in versions array of rest*/
168
- const version = '';
169
- if (route.version) {
170
- if (!versionMap.has(`v${route.version}`)) {
171
- throw Error(`Unable to resolve version record for version ${route.version}. Check if the version is listed in your API versions list.`);
172
- }
173
- return versionMap.get(`v${route.version}`);
174
- }
175
- return version;
176
- }
177
- //# sourceMappingURL=RESTSerializationUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RESTSerializationUtils.js","sourceRoot":"","sources":["../../src/scriptedRESTAPI/RESTSerializationUtils.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- import { RestApiConfig, Version } from '@servicenow/sdk-core/runtime/rest';
2
- import { Context, Document, EntityData, FluentDiagnostic } from '@servicenow/sdk-build-core';
3
- import { Diagnostic, ts } from '@servicenow/sdk-project';
4
- /**
5
- * TODO: Apparently the REST API plugin's arranger actually has pretty severe side effects such as
6
- * transforming code and dropping keys from the registry. I failed to unravel the web of code spread
7
- * across all the REST API "utils" files to understand how and why it is doing this. For some reason
8
- * this is only an issue when doing a regular build and not during bidirectional sync... For now I'm
9
- * preserving the existing behavior of skipping the arranger during regular builds and putting that
10
- * logic here in this namespace so we can easily find it and rip it out later.
11
- *
12
- * @deprecated
13
- */
14
- export declare namespace RestApiPluginTechDebt {
15
- function applyArrangerSkipFlag(context: Context): void;
16
- function removeArrangerSkipFlag(context: Context): void;
17
- function shouldSkipArranger(context: Context): boolean;
18
- }
19
- declare const _default: {
20
- readonly name: "RestApi";
21
- readonly ownedTables: {
22
- readonly sys_ws_definition: {
23
- readonly diagnosticLevel: Diagnostic.Level.Warn;
24
- };
25
- readonly sys_ws_version: {
26
- readonly diagnosticLevel: Diagnostic.Level.Warn;
27
- };
28
- readonly sys_ws_operation: {
29
- readonly diagnosticLevel: Diagnostic.Level.Warn;
30
- };
31
- };
32
- readonly extractors: {
33
- readonly entity: {
34
- readonly fluent: {
35
- readonly CallExpression: (node: ts.CallExpression<ts.ts.CallExpression>, context: Context) => {
36
- handled: false;
37
- } | {
38
- handled: true;
39
- data?: EntityData<RestApiConfig<number, Version<number>> & import("@servicenow/sdk-core/runtime/util").ExtraColumns> | undefined;
40
- diagnostics: FluentDiagnostic[];
41
- } | {
42
- handled: true;
43
- diagnostics: FluentDiagnostic[];
44
- data: EntityData<any>;
45
- };
46
- };
47
- };
48
- };
49
- readonly composers: {
50
- readonly entity: {
51
- readonly restApi: (entity: EntityData<globalThis.Record<string, unknown>>, context: Context) => Promise<undefined> | Promise<import("@servicenow/sdk-build-core").LinkedDocument[]>;
52
- };
53
- };
54
- readonly arrangers: {
55
- readonly record: (document: Document<string>, context: Context) => {
56
- handled: false;
57
- result?: never;
58
- } | {
59
- handled: true;
60
- result: import("@servicenow/sdk-build-core").DocumentPointer | undefined;
61
- } | {
62
- handled: true;
63
- result: {
64
- kind: string;
65
- guid: any;
66
- };
67
- };
68
- };
69
- readonly generators: {
70
- readonly record: (document: any, context: any, linkedDocuments: any) => import("@servicenow/sdk-build-core").LinkedDocument<string, ts.CallExpression<ts.ts.CallExpression>> | undefined;
71
- };
72
- readonly transformers: {
73
- readonly record: {
74
- readonly CallExpression: (document: Document<any, ts.CallExpression<ts.ts.CallExpression>> & {
75
- entity?: EntityData;
76
- node: ts.CallExpression<ts.ts.CallExpression>;
77
- } & import("@servicenow/sdk-build-core").Arranged, context: Context) => boolean;
78
- };
79
- };
80
- };
81
- export default _default;
@@ -1,345 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.RestApiPluginTechDebt = void 0;
27
- const rest_1 = require("@servicenow/sdk-core/runtime/rest");
28
- const db_1 = require("@servicenow/sdk-core/runtime/db");
29
- const util_1 = require("@servicenow/sdk-core/runtime/util");
30
- const sdk_build_core_1 = require("@servicenow/sdk-build-core");
31
- const RecordPlugin_1 = require("../db/RecordPlugin");
32
- const RESTSerializationUtils_1 = require("./RESTSerializationUtils");
33
- const RESTDeserializationUtils_1 = require("./RESTDeserializationUtils");
34
- const RestSchemaUtils_1 = require("./RestSchemaUtils");
35
- const RestUtils_1 = require("./RestUtils");
36
- const z = __importStar(require("zod"));
37
- const sdk_project_1 = require("@servicenow/sdk-project");
38
- const ServerModulePlugin_1 = require("../ServerModulePlugin");
39
- const methodsAllowedToOverrideRequests = ['PUT', 'PATCH', 'POST'];
40
- const parseAcls = (enforce_acl, context) => enforce_acl.map((acl) => (typeof acl === 'string' ? acl : context.keys.registerExplicitId(acl.table, acl.$id)));
41
- function restApiAsRecord(config) {
42
- const api = rest_1.RestApiSchema.parse(config);
43
- const rest = (0, util_1.additionalProperties)(config, rest_1.RestApiSchema);
44
- return (0, db_1.Record)({
45
- table: 'sys_ws_definition',
46
- $id: api.$id,
47
- data: {
48
- active: api.active,
49
- name: api.name,
50
- consumes: api.consumes,
51
- consumes_customized: api.consumes === rest_1.RestApiSchema.shape.consumes._def.defaultValue() ? false : true,
52
- produces: api.produces,
53
- produces_customized: api.produces === rest_1.RestApiSchema.shape.produces._def.defaultValue() ? false : true,
54
- default_version: '',
55
- doc_link: api.doc_link,
56
- is_versioned: false,
57
- service_id: api.service_id,
58
- short_description: api.short_description,
59
- base_uri: '',
60
- namespace: '',
61
- enforce_acl: api.enforce_acl,
62
- ...(api.policy && { sys_policy: api.policy }),
63
- ...rest,
64
- },
65
- });
66
- }
67
- /**
68
- * TODO: Apparently the REST API plugin's arranger actually has pretty severe side effects such as
69
- * transforming code and dropping keys from the registry. I failed to unravel the web of code spread
70
- * across all the REST API "utils" files to understand how and why it is doing this. For some reason
71
- * this is only an issue when doing a regular build and not during bidirectional sync... For now I'm
72
- * preserving the existing behavior of skipping the arranger during regular builds and putting that
73
- * logic here in this namespace so we can easily find it and rip it out later.
74
- *
75
- * @deprecated
76
- */
77
- var RestApiPluginTechDebt;
78
- (function (RestApiPluginTechDebt) {
79
- function applyArrangerSkipFlag(context) {
80
- context['skipRestApiArranger'] = true;
81
- }
82
- RestApiPluginTechDebt.applyArrangerSkipFlag = applyArrangerSkipFlag;
83
- function removeArrangerSkipFlag(context) {
84
- delete context['skipRestApiArranger'];
85
- }
86
- RestApiPluginTechDebt.removeArrangerSkipFlag = removeArrangerSkipFlag;
87
- function shouldSkipArranger(context) {
88
- return context['skipRestApiArranger'] === true;
89
- }
90
- RestApiPluginTechDebt.shouldSkipArranger = shouldSkipArranger;
91
- })(RestApiPluginTechDebt || (exports.RestApiPluginTechDebt = RestApiPluginTechDebt = {}));
92
- exports.default = (0, sdk_build_core_1.Plugin)({
93
- name: 'RestApi',
94
- ownedTables: {
95
- sys_ws_definition: { diagnosticLevel: sdk_project_1.Diagnostic.Level.Warn },
96
- sys_ws_version: { diagnosticLevel: sdk_project_1.Diagnostic.Level.Warn },
97
- sys_ws_operation: { diagnosticLevel: sdk_project_1.Diagnostic.Level.Warn },
98
- },
99
- extractors: {
100
- entity: {
101
- fluent: {
102
- CallExpression: (node, context) => {
103
- const result = (0, sdk_build_core_1.extractCallExpression)(rest_1.RestApi, 'restApi', node, context, (restApi) => context.registerExplicitId('sys_ws_definition', restApi.$id));
104
- if (!result.handled || !result.data) {
105
- return result;
106
- }
107
- const restApiEntity = result.data;
108
- const restExplicitIds = (0, RestUtils_1.extractNestedIds)(restApiEntity);
109
- const entityData = rest_1.RestApiSchema.and(z.any()).parse(restApiEntity.getValue());
110
- const service_id = restApiEntity.getProperty('service_id');
111
- const { routes, enforce_acl, consumes, produces } = entityData;
112
- const serviceIdRegex = new RegExp(`^[a-z0-9_]*[a-z0-9]$`);
113
- if (!service_id.getValue().match(serviceIdRegex)) {
114
- result.diagnostics.push(new sdk_build_core_1.FluentDiagnostic(service_id.getNode(), `Rest service_id must only contain lowercase letters, numbers, and underscores and end with a letter or number`));
115
- }
116
- const routesData = restApiEntity.getProperty('routes', 'array')?.getElements() ?? [];
117
- for (let i = 0; i < routesData.length; i++) {
118
- const routeData = routesData[i];
119
- if (!sdk_build_core_1.Data.isObject(routeData)) {
120
- result.diagnostics.push(new sdk_build_core_1.FluentDiagnostic(routeData.getNode(), 'Invalid route value'));
121
- continue;
122
- }
123
- const scriptData = routeData.getProperty('script');
124
- const scriptValue = scriptData instanceof ServerModulePlugin_1.ModuleFunctionData
125
- ? scriptData.getGlueCode((n) => `${n}(request, response)`)
126
- : scriptData.getValue()?.toString() ?? '';
127
- const route = routes[i];
128
- route.script = scriptValue;
129
- /** allow users to override consumes for allowed http methods*/
130
- if (route.consumes &&
131
- route.consumes !== consumes &&
132
- !methodsAllowedToOverrideRequests.includes(route.method)) {
133
- throw Error(`Cannot override consumer type for ${route.method} method`);
134
- }
135
- route.name = route.name ? route.name : route.path;
136
- route.consumes = route.consumes ? route.consumes : consumes;
137
- route.produces = route.produces ? route.produces : produces;
138
- route.enforce_acl = parseAcls(route.enforce_acl, context);
139
- }
140
- return {
141
- handled: true,
142
- diagnostics: result.diagnostics,
143
- data: new sdk_build_core_1.EntityData(restApiEntity.getKind(), restApiEntity.getGuid(), sdk_build_core_1.ObjectData.fromObjectValue({
144
- ...entityData,
145
- enforce_acl: parseAcls(enforce_acl, context),
146
- }, restApiEntity.getNode()), restApiEntity.getNode(), restApiEntity.getInstallMethod(), restExplicitIds),
147
- };
148
- },
149
- },
150
- },
151
- },
152
- composers: {
153
- entity: {
154
- restApi(entity, context) {
155
- const restEntity = entity.getValue();
156
- const parsedEntity = rest_1.RestApiSchema.safeParse(restEntity);
157
- if (!parsedEntity.success) {
158
- return Promise.resolve(undefined);
159
- }
160
- const { routes, versions, enforce_acl } = parsedEntity.data;
161
- const defaultVersions = versions.filter((version) => version.is_default);
162
- if (defaultVersions.length > 1) {
163
- Promise.reject(`Multiple versions cannot be set to default.`);
164
- }
165
- const { app: { config: { scope }, }, } = context;
166
- const restRecord = restApiAsRecord(restEntity);
167
- const apiData = { ...restRecord.data };
168
- apiData.base_uri = `/api/${scope}/${apiData.service_id}`;
169
- apiData.namespace = scope;
170
- apiData.default_version =
171
- defaultVersions.length > 0 ? `v${defaultVersions[0].version}` : 'No active default version';
172
- apiData.enforce_acl = (0, RESTSerializationUtils_1.mergeACLIds)(enforce_acl);
173
- apiData.is_versioned = versions.length > 0 ? true : false;
174
- /** generates sys_ws_definition record */
175
- const updatedRestRecord = (0, db_1.Record)({
176
- table: 'sys_ws_definition',
177
- $id: entity.getGuid(),
178
- data: apiData,
179
- });
180
- /** generates the sys_ws_version record */
181
- const versionRecordsAndMap = (0, RESTSerializationUtils_1.generateVersionRecords)(context, apiData.default_version, versions, updatedRestRecord);
182
- /** generates the sys_ws_operation, sys_ws_header, sys_ws_header_map, sys_ws_query_paramter, sys_ws_query_parameter_map records */
183
- const routesAndRouteAttrRecords = (0, RESTSerializationUtils_1.generateRoutesAndRouteAttrRecords)(context, restRecord.$id, routes, apiData, updatedRestRecord, versionRecordsAndMap.mapping);
184
- return context.composeEntities([updatedRestRecord, ...versionRecordsAndMap.records, ...routesAndRouteAttrRecords].map((r) => new sdk_build_core_1.EntityData('record', r.$id, sdk_build_core_1.ObjectData.fromObjectValue(r, entity.getNode()), entity.getNode(), entity.getInstallMethod())), [RecordPlugin_1.RecordPlugin]);
185
- },
186
- },
187
- },
188
- arrangers: {
189
- record(document, context) {
190
- const table = document.data['table'];
191
- if (!RestUtils_1.restTables.includes(table) || RestApiPluginTechDebt.shouldSkipArranger(context)) {
192
- return { handled: false };
193
- }
194
- /** generates rest document map and validates the params and their mapping records */
195
- const restDocMap = (0, RestUtils_1.getRestDocumentMap)(context);
196
- switch (table) {
197
- case 'sys_ws_operation':
198
- case 'sys_ws_version':
199
- return {
200
- handled: true,
201
- result: {
202
- kind: 'record',
203
- guid: document.data['data']['web_service_definition'],
204
- },
205
- };
206
- case 'sys_ws_header':
207
- case 'sys_ws_query_parameter':
208
- if (!document.node) {
209
- /** handles case where the incoming xml doesn't have any node associated with it. */
210
- return (0, RestUtils_1.handleAndReturnResult)((0, RestUtils_1.getRouteAttrResult)(document, restDocMap), document);
211
- }
212
- else {
213
- const docNode = document.node;
214
- if ((0, sdk_build_core_1.getCallExpressionName)(docNode) === db_1.Record.name) {
215
- /** handles case where the incoming xml is currently associated with record call */
216
- return (0, RestUtils_1.handleAndReturnResult)((0, RestUtils_1.getRouteAttrWithRecordNodeResult)(document, context, restDocMap), document);
217
- }
218
- else {
219
- /** handles case where the incoming xml is currently associated with rest call */
220
- return (0, RestUtils_1.handleAndReturnResult)((0, RestUtils_1.getRouteAttrWithRestNodeResult)(document, context, restDocMap), document);
221
- }
222
- }
223
- case 'sys_ws_header_map':
224
- case 'sys_ws_query_parameter_map':
225
- if (!document.node) {
226
- /** handles case where the incoming xml doesn't have any node associated with it. */
227
- return (0, RestUtils_1.handleAndReturnResult)((0, RestUtils_1.getRouteAttrMapResult)(document, restDocMap), document);
228
- }
229
- else {
230
- const docNode = document.node;
231
- if ((0, sdk_build_core_1.getCallExpressionName)(docNode) === db_1.Record.name) {
232
- /** handles case where the incoming xml is currently associated with record call */
233
- return (0, RestUtils_1.handleAndReturnResult)((0, RestUtils_1.getRouteAttrMapWithRecordNodeResult)(document, context, restDocMap), document);
234
- }
235
- else {
236
- /** handles case where the incoming xml is currently associated with rest call */
237
- return (0, RestUtils_1.handleAndReturnResult)((0, RestUtils_1.getRouteAttrMapWithRestNodeResult)(document, context, restDocMap), document);
238
- }
239
- }
240
- default:
241
- return { handled: true, result: undefined };
242
- }
243
- },
244
- },
245
- generators: {
246
- record(document, context, linkedDocuments) {
247
- const table = document.data['table'];
248
- /**
249
- * Edge case: m2m record maps non-app rest causing you to unassociate the only associated
250
- * param record to rest. May require creation of record call for unassociated param if not consumed
251
- * by any
252
- */
253
- RestUtils_1.completelyUnassociatedParamIds.forEach((id) => {
254
- if (RestUtils_1.potentialRecordCallRouteParams.has(id)) {
255
- (0, RestUtils_1.createRecordCall)(id, context);
256
- RestUtils_1.potentialRecordCallRouteParams.delete(id);
257
- }
258
- });
259
- RestUtils_1.completelyUnassociatedParamIds.clear();
260
- /** unHandledIds contains rest record ids for which we need to create record call */
261
- if (!RestUtils_1.restTables.includes(table) || RestUtils_1.unHandledIds.includes(document.guid)) {
262
- return undefined;
263
- }
264
- switch (table) {
265
- case 'sys_ws_definition':
266
- // eslint-disable-next-line no-case-declarations
267
- const linkedDoc = (0, sdk_build_core_1.linkDocument)(document, (0, sdk_build_core_1.generateCallExpressionExportForDocument)(context, {
268
- sourceFile: (0, sdk_build_core_1.getOrCreateEntitySourceFile)(context, (0, sdk_build_core_1.getSysUpdateName)(document, 'sys_ws_definition')),
269
- moduleSpecifier: '@servicenow/sdk/core',
270
- }, rest_1.RestApi, {}).getExpressionIfKindOrThrow(sdk_project_1.ts.SyntaxKind.CallExpression));
271
- return linkedDoc;
272
- case 'sys_ws_operation':
273
- case 'sys_ws_version':
274
- case 'sys_ws_header':
275
- case 'sys_ws_query_parameter':
276
- // eslint-disable-next-line no-case-declarations
277
- const restDef = linkedDocuments.find((doc) => doc.data.table === 'sys_ws_definition' &&
278
- doc.guid === document.data.data.web_service_definition);
279
- // eslint-disable-next-line no-case-declarations
280
- const o_v_node = document.parent?.node ? document.parent.node : restDef?.node;
281
- if (!o_v_node) {
282
- return undefined;
283
- }
284
- return (0, sdk_build_core_1.linkDocument)(document, o_v_node);
285
- case 'sys_ws_header_map':
286
- case 'sys_ws_query_parameter_map':
287
- // eslint-disable-next-line no-case-declarations
288
- const operationDef = linkedDocuments.find((doc) => doc.data.table === 'sys_ws_operation' &&
289
- doc.guid === document.data.data.web_service_operation);
290
- // eslint-disable-next-line no-case-declarations
291
- const h_q_node = document.parent?.node ? document.parent?.node : operationDef?.node;
292
- if (!h_q_node) {
293
- return undefined;
294
- }
295
- return (0, sdk_build_core_1.linkDocument)(document, h_q_node);
296
- }
297
- return undefined;
298
- },
299
- },
300
- transformers: {
301
- record: {
302
- CallExpression(document, context) {
303
- if (!shouldHandle(document)) {
304
- return false;
305
- }
306
- const documentMap = context.getDocumentMap();
307
- const table = document.data['table'];
308
- switch (table) {
309
- case 'sys_ws_definition':
310
- return (0, RESTDeserializationUtils_1.transformDefinition)(document, context);
311
- case 'sys_ws_version':
312
- return (0, RESTDeserializationUtils_1.transformRestAttrs)(document, context);
313
- case 'sys_ws_operation':
314
- return (0, RESTDeserializationUtils_1.transformRoutes)(document, context, documentMap);
315
- case 'sys_ws_header':
316
- return (0, RESTDeserializationUtils_1.transformRouteAttrs)(document, context, 'headers');
317
- case 'sys_ws_query_parameter':
318
- return (0, RESTDeserializationUtils_1.transformRouteAttrs)(document, context, 'parameters');
319
- case 'sys_ws_query_parameter_map':
320
- return (0, RESTDeserializationUtils_1.transformRouteAttrsMap)(document, context, documentMap, RestSchemaUtils_1.RestRouteQueryMap, 'parameters', (data) => {
321
- return {
322
- operationId: data.web_service_operation,
323
- attrId: data.web_service_query_parameter,
324
- };
325
- });
326
- case 'sys_ws_header_map':
327
- return (0, RESTDeserializationUtils_1.transformRouteAttrsMap)(document, context, documentMap, RestSchemaUtils_1.RestRouteHeaderMap, 'headers', (data) => {
328
- return { operationId: data.web_service_operation, attrId: data.web_service_header };
329
- });
330
- }
331
- return false;
332
- },
333
- },
334
- },
335
- });
336
- function shouldHandle(document) {
337
- const docNode = document.node;
338
- return !docNode.wasForgotten() &&
339
- (0, sdk_build_core_1.getCallExpressionName)(docNode) === rest_1.RestApi.name &&
340
- document.data['table'] &&
341
- docNode.getArguments()[0]
342
- ? true
343
- : false;
344
- }
345
- //# sourceMappingURL=RestApiPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RestApiPlugin.js","sourceRoot":"","sources":["../../src/scriptedRESTAPI/RestApiPlugin.ts"],"names":[],"mappings":"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"}