@sap/cds 5.9.8 → 6.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 (381) hide show
  1. package/CHANGELOG.md +252 -20
  2. package/apis/services.d.ts +1 -1
  3. package/app/fiori/preview.js +2 -6
  4. package/app/index.js +3 -3
  5. package/bin/build/buildTaskEngine.js +17 -15
  6. package/bin/build/buildTaskFactory.js +29 -19
  7. package/bin/build/buildTaskHandler.js +27 -11
  8. package/bin/build/buildTaskProvider.js +2 -4
  9. package/bin/build/buildTaskProviderFactory.js +11 -16
  10. package/bin/build/constants.js +14 -6
  11. package/bin/build/csv-reader.js +2 -1
  12. package/bin/build/index.js +12 -18
  13. package/bin/build/provider/buildTaskHandlerEdmx.js +3 -39
  14. package/bin/build/provider/buildTaskHandlerFeatureToggles.js +149 -0
  15. package/bin/build/provider/buildTaskHandlerInternal.js +2 -3
  16. package/bin/build/provider/buildTaskProviderInternal.js +108 -239
  17. package/bin/build/provider/fiori/index.js +2 -2
  18. package/bin/build/provider/hana/2migration.js +11 -11
  19. package/bin/build/provider/hana/2tabledata.js +3 -3
  20. package/bin/build/provider/hana/index.js +89 -99
  21. package/bin/build/provider/hana/migrationtable.js +4 -3
  22. package/bin/build/provider/java/index.js +101 -0
  23. package/bin/build/provider/java-cf/index.js +1 -101
  24. package/bin/build/provider/mtx/index.js +83 -41
  25. package/bin/build/provider/mtx/resourcesTarBuilder.js +68 -0
  26. package/bin/build/provider/mtx-sidecar/index.js +80 -0
  27. package/bin/build/provider/node-cf/index.js +1 -308
  28. package/bin/build/provider/nodejs/index.js +189 -0
  29. package/bin/build/util.js +19 -31
  30. package/bin/cds.js +5 -3
  31. package/bin/deploy/to-hana/cfUtil.js +31 -6
  32. package/bin/deploy/to-hana/gitUtil.js +5 -3
  33. package/bin/deploy/to-hana/hana.js +9 -10
  34. package/bin/{build → deploy/to-hana}/mtaUtil.js +10 -9
  35. package/bin/mtx/in-cds.js +19 -7
  36. package/bin/serve.js +56 -21
  37. package/bin/utils/log.js +13 -30
  38. package/bin/version.js +4 -3
  39. package/common.cds +61 -16
  40. package/lib/compile/cdsc.js +3 -2
  41. package/lib/compile/etc/_localized.js +15 -14
  42. package/lib/compile/for/drafts.js +3 -4
  43. package/lib/compile/for/java.js +13 -10
  44. package/lib/compile/for/nodejs.js +8 -8
  45. package/lib/compile/for/odata.js +7 -12
  46. package/lib/compile/for/sql.js +5 -6
  47. package/lib/compile/index.js +5 -4
  48. package/lib/compile/load.js +9 -11
  49. package/lib/compile/minify.js +8 -5
  50. package/lib/compile/parse.js +4 -2
  51. package/lib/compile/resolve.js +18 -15
  52. package/lib/compile/to/edm.js +0 -1
  53. package/lib/compile/to/gql.js +3 -2
  54. package/lib/compile/to/json.js +24 -17
  55. package/lib/connect/bindings.js +3 -2
  56. package/lib/connect/index.js +5 -5
  57. package/lib/core/classes.js +74 -2
  58. package/lib/core/entities.js +52 -3
  59. package/lib/core/reflect.js +2 -1
  60. package/lib/deploy.js +11 -8
  61. package/lib/env/defaults.js +4 -3
  62. package/lib/env/index.js +71 -31
  63. package/lib/env/presets.js +1 -14
  64. package/lib/env/requires.js +70 -20
  65. package/lib/env/serviceBindings.js +147 -0
  66. package/lib/i18n/localize.js +22 -23
  67. package/lib/index.js +148 -144
  68. package/lib/log/errors.js +55 -12
  69. package/lib/log/format/kibana.js +1 -1
  70. package/lib/log/index.js +4 -0
  71. package/lib/ql/SELECT.js +7 -2
  72. package/lib/ql/Whereable.js +8 -2
  73. package/lib/ql/index.js +2 -2
  74. package/lib/req/assert.js +71 -0
  75. package/lib/req/cds-context.js +38 -70
  76. package/lib/req/context.js +34 -21
  77. package/lib/req/request.js +12 -18
  78. package/lib/req/response.js +6 -2
  79. package/lib/req/user.js +30 -22
  80. package/lib/serve/Service-api.js +17 -12
  81. package/lib/serve/Service-dispatch.js +5 -9
  82. package/lib/serve/Service-methods.js +4 -3
  83. package/lib/serve/Transaction.js +24 -21
  84. package/lib/serve/adapters.js +15 -5
  85. package/lib/serve/factory.js +23 -20
  86. package/lib/serve/index.js +51 -54
  87. package/lib/utils/axios.js +8 -12
  88. package/lib/utils/index.js +3 -3
  89. package/lib/utils/resources/index.js +1 -44
  90. package/lib/utils/resources/tar.js +2 -1
  91. package/lib/utils/tests.js +13 -15
  92. package/libx/_runtime/.eslintrc +1 -1
  93. package/libx/_runtime/audit/Service.js +6 -4
  94. package/libx/_runtime/audit/generic/personal/access.js +19 -43
  95. package/libx/_runtime/audit/generic/personal/index.js +40 -34
  96. package/libx/_runtime/audit/generic/personal/modification.js +11 -9
  97. package/libx/_runtime/audit/generic/personal/utils.js +13 -6
  98. package/libx/_runtime/audit/utils/v2.js +6 -3
  99. package/libx/_runtime/auth/index.js +71 -66
  100. package/libx/_runtime/auth/strategies/JWT.js +3 -2
  101. package/libx/_runtime/auth/strategies/mock.js +54 -53
  102. package/libx/_runtime/auth/strategies/xssecUtils.js +3 -4
  103. package/libx/_runtime/auth/strategies/xsuaa.js +3 -2
  104. package/libx/_runtime/auth/utils.js +2 -15
  105. package/libx/_runtime/cds-services/adapter/odata-v4/Dispatcher.js +127 -41
  106. package/libx/_runtime/cds-services/adapter/odata-v4/OData.js +6 -3
  107. package/libx/_runtime/cds-services/adapter/odata-v4/ODataRequest.js +93 -73
  108. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js +10 -45
  109. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/create.js +5 -9
  110. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +9 -5
  111. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/metadata.js +4 -2
  112. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/read.js +60 -53
  113. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +1 -1
  114. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/update.js +15 -21
  115. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/ExpressionToCQN.js +8 -15
  116. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +29 -41
  117. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/index.js +1 -4
  118. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/readToCQN.js +13 -13
  119. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/selectToCQN.js +0 -7
  120. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +24 -1
  121. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/edm/EdmEntityContainer.js +1 -1
  122. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriHelper.js +4 -3
  123. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/PrimitiveValueDecoder.js +4 -5
  124. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/utils/ValueConverter.js +4 -3
  125. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/validator/ValueValidator.js +5 -3
  126. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/core/ResponseHeaderSetter.js +2 -0
  127. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/DebugSerializingCommand.js +1 -1
  128. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/PresetResponseHeadersCommand.js +1 -1
  129. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SerializingCommand.js +1 -1
  130. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/SetResponseHeadersCommand.js +1 -1
  131. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ContextURLFactory.js +3 -2
  132. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/ErrorJsonSerializer.js +3 -1
  133. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/SerializerFactory.js +1 -0
  134. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/serializer/TrustedResourceJsonSerializer.js +3 -3
  135. package/libx/_runtime/cds-services/adapter/odata-v4/utils/data.js +36 -25
  136. package/libx/_runtime/cds-services/adapter/odata-v4/utils/handlerUtils.js +100 -91
  137. package/libx/_runtime/cds-services/adapter/odata-v4/utils/metaInfo.js +382 -0
  138. package/libx/_runtime/cds-services/adapter/odata-v4/utils/oDataConfiguration.js +1 -4
  139. package/libx/_runtime/cds-services/adapter/odata-v4/utils/omitValues.js +5 -6
  140. package/libx/_runtime/cds-services/adapter/odata-v4/utils/readAfterWrite.js +77 -21
  141. package/libx/_runtime/cds-services/adapter/odata-v4/utils/request.js +3 -11
  142. package/libx/_runtime/cds-services/adapter/odata-v4/utils/result.js +91 -69
  143. package/libx/_runtime/cds-services/adapter/odata-v4/utils/stream.js +27 -6
  144. package/libx/_runtime/cds-services/adapter/rest/utils/validation-checks.js +7 -17
  145. package/libx/_runtime/cds-services/services/Service.js +17 -76
  146. package/libx/_runtime/cds-services/services/utils/columns.js +6 -4
  147. package/libx/_runtime/cds-services/services/utils/compareJson.js +1 -53
  148. package/libx/_runtime/cds-services/services/utils/differ.js +15 -19
  149. package/libx/_runtime/cds-services/util/assert.js +107 -34
  150. package/libx/_runtime/cds.js +1 -31
  151. package/libx/_runtime/common/aspects/Association.js +40 -54
  152. package/libx/_runtime/common/aspects/any.js +61 -6
  153. package/libx/_runtime/common/aspects/entity.js +19 -79
  154. package/libx/_runtime/common/composition/data.js +2 -2
  155. package/libx/_runtime/common/composition/delete.js +8 -7
  156. package/libx/_runtime/common/composition/tree.js +10 -10
  157. package/libx/_runtime/common/composition/update.js +3 -2
  158. package/libx/_runtime/common/constants/events.js +15 -0
  159. package/libx/_runtime/common/error/entry.js +9 -3
  160. package/libx/_runtime/common/error/frontend.js +13 -19
  161. package/libx/_runtime/common/error/index.js +8 -3
  162. package/libx/_runtime/common/generic/auth/capabilities.js +2 -1
  163. package/libx/_runtime/common/generic/auth/constants.js +1 -4
  164. package/libx/_runtime/common/generic/auth/requires.js +1 -1
  165. package/libx/_runtime/common/generic/auth/restrict.js +12 -28
  166. package/libx/_runtime/common/generic/auth/restrictions.js +12 -4
  167. package/libx/_runtime/common/generic/auth/utils.js +2 -1
  168. package/libx/_runtime/common/generic/crud.js +9 -60
  169. package/libx/_runtime/common/generic/etag.js +41 -7
  170. package/libx/_runtime/common/generic/input.js +128 -66
  171. package/libx/_runtime/common/generic/paging.js +9 -3
  172. package/libx/_runtime/common/generic/put.js +2 -2
  173. package/libx/_runtime/common/generic/sorting.js +7 -3
  174. package/libx/_runtime/common/generic/temporal.js +0 -5
  175. package/libx/_runtime/common/i18n/messages.properties +2 -1
  176. package/libx/_runtime/common/utils/binary.js +69 -0
  177. package/libx/_runtime/common/utils/cqn.js +39 -14
  178. package/libx/_runtime/common/utils/cqn2cqn4sql.js +93 -59
  179. package/libx/_runtime/common/utils/csn.js +87 -85
  180. package/libx/_runtime/common/utils/dollar.js +8 -7
  181. package/libx/_runtime/common/utils/draft.js +1 -1
  182. package/libx/_runtime/common/utils/foreignKeyPropagations.js +23 -7
  183. package/libx/_runtime/common/utils/generateOnCond.js +2 -1
  184. package/libx/_runtime/common/utils/keys.js +30 -13
  185. package/libx/_runtime/common/utils/postProcessing.js +6 -1
  186. package/libx/_runtime/common/utils/quotingStyles.js +0 -23
  187. package/libx/_runtime/common/utils/resolveStructured.js +23 -26
  188. package/libx/_runtime/common/utils/resolveView.js +4 -1
  189. package/libx/_runtime/common/utils/rewriteAsterisks.js +3 -0
  190. package/libx/_runtime/common/utils/search2cqn4sql.js +4 -13
  191. package/libx/_runtime/common/utils/searchToLike.js +9 -13
  192. package/libx/_runtime/common/utils/streamProp.js +35 -0
  193. package/libx/_runtime/common/utils/structured.js +12 -18
  194. package/libx/_runtime/common/utils/template.js +3 -5
  195. package/libx/_runtime/common/utils/templateProcessor.js +22 -14
  196. package/libx/_runtime/common/utils/unionCqnTemplate.js +4 -14
  197. package/libx/_runtime/db/Service.js +2 -1
  198. package/libx/_runtime/db/expand/expand-v2.js +2 -2
  199. package/libx/_runtime/db/expand/expandCQNToJoin.js +7 -6
  200. package/libx/_runtime/db/generic/input.js +14 -17
  201. package/libx/_runtime/db/generic/integrity.js +1 -2
  202. package/libx/_runtime/db/generic/update.js +14 -1
  203. package/libx/_runtime/db/query/read.js +0 -1
  204. package/libx/_runtime/db/query/update.js +1 -1
  205. package/libx/_runtime/db/sql-builder/BaseBuilder.js +1 -1
  206. package/libx/_runtime/db/sql-builder/ExpressionBuilder.js +5 -31
  207. package/libx/_runtime/db/sql-builder/InsertBuilder.js +1 -1
  208. package/libx/_runtime/db/sql-builder/ReferenceBuilder.js +0 -9
  209. package/libx/_runtime/db/sql-builder/SelectBuilder.js +11 -10
  210. package/libx/_runtime/db/sql-builder/UpdateBuilder.js +2 -2
  211. package/libx/_runtime/db/sql-builder/annotations.js +1 -2
  212. package/libx/_runtime/db/utils/coloredTxCommands.js +5 -0
  213. package/libx/_runtime/db/utils/columns.js +1 -1
  214. package/libx/_runtime/db/utils/propagateForeignKeys.js +10 -2
  215. package/libx/_runtime/extensibility/activate.js +69 -0
  216. package/libx/_runtime/extensibility/add.js +41 -0
  217. package/libx/_runtime/extensibility/addExtension.js +68 -0
  218. package/libx/_runtime/extensibility/defaults.js +39 -0
  219. package/libx/_runtime/extensibility/{uiflex/handler → handler}/transformREAD.js +0 -0
  220. package/libx/_runtime/extensibility/{uiflex/handler → handler}/transformRESULT.js +2 -2
  221. package/libx/_runtime/extensibility/{uiflex/handler → handler}/transformWRITE.js +2 -2
  222. package/libx/_runtime/extensibility/push.js +61 -0
  223. package/libx/_runtime/extensibility/service.js +21 -0
  224. package/libx/_runtime/extensibility/{uiflex/utils.js → utils.js} +39 -3
  225. package/libx/_runtime/extensibility/validation.js +53 -0
  226. package/libx/_runtime/extensibility/views.js +12 -0
  227. package/libx/_runtime/fiori/generic/activate.js +6 -4
  228. package/libx/_runtime/fiori/generic/before.js +17 -29
  229. package/libx/_runtime/fiori/generic/cancel.js +2 -4
  230. package/libx/_runtime/fiori/generic/delete.js +2 -4
  231. package/libx/_runtime/fiori/generic/edit.js +3 -7
  232. package/libx/_runtime/fiori/generic/index.js +31 -0
  233. package/libx/_runtime/fiori/generic/new.js +2 -4
  234. package/libx/_runtime/fiori/generic/patch.js +4 -8
  235. package/libx/_runtime/fiori/generic/prepare.js +2 -4
  236. package/libx/_runtime/fiori/generic/read.js +137 -162
  237. package/libx/_runtime/fiori/generic/readOverDraft.js +10 -4
  238. package/libx/_runtime/fiori/utils/handler.js +10 -5
  239. package/libx/_runtime/fiori/utils/where.js +1 -4
  240. package/libx/_runtime/hana/Service.js +14 -7
  241. package/libx/_runtime/hana/customBuilder/CustomSelectBuilder.js +1 -1
  242. package/libx/_runtime/hana/dynatrace.js +2 -2
  243. package/libx/_runtime/hana/localized.js +7 -6
  244. package/libx/_runtime/hana/pool.js +9 -6
  245. package/libx/_runtime/hana/search.js +2 -3
  246. package/libx/_runtime/hana/{searchToContains.js → search2Contains.js} +5 -2
  247. package/libx/_runtime/hana/search2cqn4sql.js +20 -17
  248. package/libx/_runtime/index.js +2 -6
  249. package/libx/_runtime/messaging/AMQPWebhookMessaging.js +11 -2
  250. package/libx/_runtime/messaging/common-utils/AMQPClient.js +4 -3
  251. package/libx/_runtime/messaging/common-utils/appId.js +9 -0
  252. package/libx/_runtime/messaging/common-utils/authorizedRequest.js +2 -18
  253. package/libx/_runtime/messaging/common-utils/connections.js +1 -1
  254. package/libx/_runtime/messaging/enterprise-messaging-shared.js +2 -2
  255. package/libx/_runtime/messaging/enterprise-messaging-utils/EMManagement.js +305 -231
  256. package/libx/_runtime/messaging/enterprise-messaging-utils/cloudEvents.js +2 -2
  257. package/libx/_runtime/messaging/enterprise-messaging-utils/options-management.js +15 -8
  258. package/libx/_runtime/messaging/enterprise-messaging-utils/options-messaging.js +57 -14
  259. package/libx/_runtime/messaging/enterprise-messaging.js +14 -19
  260. package/libx/_runtime/messaging/file-based.js +2 -1
  261. package/libx/_runtime/messaging/http-utils/token.js +18 -6
  262. package/libx/_runtime/messaging/message-queuing-utils/options-management.js +22 -12
  263. package/libx/_runtime/messaging/message-queuing-utils/options-messaging.js +27 -14
  264. package/libx/_runtime/messaging/message-queuing.js +138 -85
  265. package/libx/_runtime/messaging/outbox/utils.js +13 -7
  266. package/libx/_runtime/messaging/redis-messaging.js +0 -1
  267. package/libx/_runtime/messaging/service.js +4 -1
  268. package/libx/_runtime/remote/Service.js +24 -18
  269. package/libx/_runtime/remote/utils/client.js +84 -46
  270. package/libx/_runtime/remote/utils/data.js +23 -6
  271. package/libx/_runtime/sqlite/Service.js +14 -13
  272. package/libx/_runtime/sqlite/convertAssocToOneManaged.js +2 -0
  273. package/libx/_runtime/sqlite/customBuilder/CustomSelectBuilder.js +1 -0
  274. package/libx/_runtime/sqlite/execute.js +3 -9
  275. package/libx/_runtime/types/api.js +23 -11
  276. package/libx/common/utils/ucsn.js +15 -9
  277. package/libx/odata/afterburner.js +109 -29
  278. package/libx/odata/cqn2odata.js +48 -9
  279. package/libx/odata/grammar.pegjs +261 -157
  280. package/libx/odata/index.js +21 -9
  281. package/libx/odata/parseToCqn.js +8 -5
  282. package/libx/odata/parser.js +1 -1
  283. package/libx/odata/utils.js +13 -3
  284. package/libx/rest/RestAdapter.js +173 -113
  285. package/libx/rest/RestRequest.js +3 -2
  286. package/libx/rest/middleware/create.js +8 -6
  287. package/libx/rest/middleware/delete.js +6 -13
  288. package/libx/rest/middleware/error.js +1 -1
  289. package/libx/rest/middleware/input.js +6 -6
  290. package/libx/rest/middleware/operation.js +8 -3
  291. package/libx/rest/middleware/parse.js +3 -3
  292. package/libx/rest/middleware/payload.js +12 -0
  293. package/libx/rest/middleware/read.js +12 -2
  294. package/libx/rest/middleware/update.js +3 -3
  295. package/package.json +4 -6
  296. package/server.js +3 -44
  297. package/srv/extensibility-service.cds +56 -0
  298. package/srv/extensibility-service.js +1 -0
  299. package/srv/extensions.cds +8 -0
  300. package/srv/model-provider.cds +59 -0
  301. package/srv/model-provider.js +163 -0
  302. package/srv/mtx.cds +2 -0
  303. package/srv/mtx.js +22 -0
  304. package/srv/outbox.cds +2 -0
  305. package/tasks/enterprise-messaging-deploy.js +19 -12
  306. package/lib/serve/Service-compat.js +0 -36
  307. package/libx/_runtime/audit/generic/personal/constants.js +0 -4
  308. package/libx/_runtime/auth/strategies/dwc.js +0 -45
  309. package/libx/_runtime/cds-services/adapter/odata-v4/utils/dispatcherUtils.js +0 -56
  310. package/libx/_runtime/cds-services/adapter/rest/Rest.js +0 -183
  311. package/libx/_runtime/cds-services/adapter/rest/RestRequest.js +0 -67
  312. package/libx/_runtime/cds-services/adapter/rest/handlers/create.js +0 -82
  313. package/libx/_runtime/cds-services/adapter/rest/handlers/delete.js +0 -39
  314. package/libx/_runtime/cds-services/adapter/rest/handlers/operation.js +0 -63
  315. package/libx/_runtime/cds-services/adapter/rest/handlers/read.js +0 -52
  316. package/libx/_runtime/cds-services/adapter/rest/handlers/update.js +0 -81
  317. package/libx/_runtime/cds-services/adapter/rest/rest-to-cqn/index.js +0 -56
  318. package/libx/_runtime/cds-services/adapter/rest/rest-to-cqn/utils.js +0 -33
  319. package/libx/_runtime/cds-services/adapter/rest/to.js +0 -8
  320. package/libx/_runtime/cds-services/adapter/rest/utils/binary.js +0 -50
  321. package/libx/_runtime/cds-services/adapter/rest/utils/data.js +0 -117
  322. package/libx/_runtime/cds-services/adapter/rest/utils/header-checks.js +0 -14
  323. package/libx/_runtime/cds-services/adapter/rest/utils/key-value-utils.js +0 -30
  324. package/libx/_runtime/cds-services/adapter/rest/utils/parse-url.js +0 -250
  325. package/libx/_runtime/cds-services/adapter/rest/utils/result.js +0 -26
  326. package/libx/_runtime/cds-services/services/utils/handlerUtils.js +0 -200
  327. package/libx/_runtime/common/aspects/utils.js +0 -152
  328. package/libx/_runtime/common/toggles/handler.js +0 -21
  329. package/libx/_runtime/common/utils/extensibilityUtils.js +0 -18
  330. package/libx/_runtime/extensibility/mps/index.js +0 -5
  331. package/libx/_runtime/extensibility/mps/service.js +0 -111
  332. package/libx/_runtime/extensibility/mps/tar.js +0 -42
  333. package/libx/_runtime/extensibility/mps/utils.js +0 -11
  334. package/libx/_runtime/extensibility/uiflex/index.js +0 -54
  335. package/libx/_runtime/extensibility/uiflex/service.js +0 -276
  336. package/libx/_runtime/messaging/common-utils/naming-conventions.js +0 -20
  337. package/libx/_runtime/remote/utils/client-types.d.ts +0 -7
  338. package/libx/gql/GraphQLAdapter.js +0 -33
  339. package/libx/gql/constants/adapter.js +0 -69
  340. package/libx/gql/constants/cds.js +0 -18
  341. package/libx/gql/constants/graphql.js +0 -33
  342. package/libx/gql/readme.md +0 -1
  343. package/libx/gql/resolvers/crud/create.js +0 -20
  344. package/libx/gql/resolvers/crud/delete.js +0 -29
  345. package/libx/gql/resolvers/crud/index.js +0 -6
  346. package/libx/gql/resolvers/crud/read.js +0 -30
  347. package/libx/gql/resolvers/crud/update.js +0 -42
  348. package/libx/gql/resolvers/crud/utils/index.js +0 -36
  349. package/libx/gql/resolvers/field.js +0 -5
  350. package/libx/gql/resolvers/index.js +0 -7
  351. package/libx/gql/resolvers/mutation.js +0 -23
  352. package/libx/gql/resolvers/parse/ast/enrich.js +0 -52
  353. package/libx/gql/resolvers/parse/ast/fragment.js +0 -11
  354. package/libx/gql/resolvers/parse/ast/fromObject.js +0 -39
  355. package/libx/gql/resolvers/parse/ast/index.js +0 -3
  356. package/libx/gql/resolvers/parse/ast/meta.js +0 -4
  357. package/libx/gql/resolvers/parse/ast/variable.js +0 -7
  358. package/libx/gql/resolvers/parse/ast2cqn/columns.js +0 -44
  359. package/libx/gql/resolvers/parse/ast2cqn/entries.js +0 -31
  360. package/libx/gql/resolvers/parse/ast2cqn/index.js +0 -8
  361. package/libx/gql/resolvers/parse/ast2cqn/limit.js +0 -6
  362. package/libx/gql/resolvers/parse/ast2cqn/orderBy.js +0 -24
  363. package/libx/gql/resolvers/parse/ast2cqn/utils/index.js +0 -3
  364. package/libx/gql/resolvers/parse/ast2cqn/where.js +0 -70
  365. package/libx/gql/resolvers/parse/utils/index.js +0 -8
  366. package/libx/gql/resolvers/query.js +0 -13
  367. package/libx/gql/resolvers/root.js +0 -34
  368. package/libx/gql/schema/generate.js +0 -18
  369. package/libx/gql/schema/index.js +0 -5
  370. package/libx/gql/schema/mutation.js +0 -76
  371. package/libx/gql/schema/query.js +0 -108
  372. package/libx/gql/schema/typeDefMap.js +0 -45
  373. package/libx/gql/schema/utils/index.js +0 -54
  374. package/libx/gql/utils/index.js +0 -12
  375. package/libx/rest/middleware/auth.js +0 -20
  376. package/libx/rest/middleware/content.js +0 -19
  377. package/srv/flex.cds +0 -21
  378. package/srv/flex.js +0 -1
  379. package/srv/mps.cds +0 -23
  380. package/srv/mps.js +0 -1
  381. package/srv/outbox.js +0 -0
@@ -6,7 +6,7 @@ const Query = require('../../../../lib/ql/Query')
6
6
 
7
7
  const { resolveView } = require('./resolveView')
8
8
  const { ensureNoDraftsSuffix, getDraftColumnsCQNForDraft } = require('./draft')
9
- const { flattenStructuredSelect } = require('./structured')
9
+ const { flattenStructuredSelect, OPERATIONS_MAP } = require('./structured')
10
10
  const search2cqn4sql = require('./search2cqn4sql')
11
11
  const { getEntityNameFromCQN } = require('./entityFromCqn')
12
12
  const getError = require('../../common/error')
@@ -16,11 +16,7 @@ const { removeIsActiveEntityRecursively } = require('../../fiori/utils/where')
16
16
  const { addRefToWhereIfNecessary } = require('../../../odata/afterburner')
17
17
  const { addAliasToExpression, PARENT_ALIAS, FOREIGN_ALIAS } = require('../../db/utils/generateAliases')
18
18
  const { getColumns } = require('../../cds-services/services/utils/columns')
19
-
20
- const OPERATIONS_MAP = ['=', '>', '<', '!=', '<>', '>=', '<=', 'like', 'between', 'in', 'not in'].reduce((acc, cur) => {
21
- acc[cur] = 1
22
- return acc
23
- }, {})
19
+ const { handleStreamProperties } = require('./streamProp')
24
20
 
25
21
  const _elementFromRef = (name, entity) => {
26
22
  if (!entity) return
@@ -30,9 +26,7 @@ const _elementFromRef = (name, entity) => {
30
26
  }
31
27
  }
32
28
 
33
- const _getTargetFromRef = ref => {
34
- return ref.id || ref
35
- }
29
+ const _getTargetFromRef = ref => ref.id || ref
36
30
 
37
31
  const _getEntityName = (fromClause, entity, i) => {
38
32
  const targetName = _getTargetFromRef(fromClause.ref[i])
@@ -41,6 +35,7 @@ const _getEntityName = (fromClause, entity, i) => {
41
35
 
42
36
  const convertPathExpressionToWhere = (fromClause, model, options) => {
43
37
  if (!fromClause.ref) return
38
+
44
39
  if (fromClause.ref.length === 1) {
45
40
  const target = _getTargetFromRef(fromClause.ref[0])
46
41
  const alias = fromClause.as
@@ -124,9 +119,7 @@ const _convertPathExpressionForInsert = (intoClause, model) => {
124
119
  }, '')
125
120
  }
126
121
 
127
- const _getBottomTopRefOrVal = (func, refVal) => {
128
- return func.args.filter(el => el[refVal])
129
- }
122
+ const _getBottomTopRefOrVal = (func, refVal) => func.args.filter(el => el[refVal])
130
123
 
131
124
  const _getWindowWhere = (where, bottomTop) => {
132
125
  const windWhere = where || []
@@ -163,24 +156,16 @@ const _getWindowXpr = (groupBy, bottomTop) => {
163
156
  return acc
164
157
  }, [])
165
158
  )
159
+
166
160
  xpr.push('ORDER BY', _getOrderByForWindowFn(bottomTop))
167
161
  xpr.push(')')
168
162
  return { xpr: xpr, as: 'rowNumber' }
169
163
  }
170
164
 
171
165
  const _isNavCountFunc = el => el.func && el.func === 'count' && el.args[0] !== '*'
172
-
173
- const _isCountNavigation = columns => {
174
- return columns.some(_isNavCountFunc)
175
- }
176
-
177
- const _isBottomTop = columns => {
178
- return columns.some(el => el.func && (el.func === 'topcount' || el.func === 'bottomcount'))
179
- }
180
-
181
- const _getWindColumns = (columns, groupBy, bottomTop) => {
182
- return [].concat(columns, _getWindowXpr(groupBy, bottomTop))
183
- }
166
+ const _isCountNavigation = columns => columns.some(_isNavCountFunc)
167
+ const _isBottomTop = columns => columns.some(el => el.func && (el.func === 'topcount' || el.func === 'bottomcount'))
168
+ const _getWindColumns = (columns, groupBy, bottomTop) => [].concat(columns, _getWindowXpr(groupBy, bottomTop))
184
169
 
185
170
  const _convertCountNavigation = (SELECT, target) => {
186
171
  const newWhere = []
@@ -192,6 +177,7 @@ const _convertCountNavigation = (SELECT, target) => {
192
177
  continue
193
178
  }
194
179
 
180
+ if (SELECT.from.as && SELECT.from.as === element.args[0].ref[0]) element.args[0].ref.shift()
195
181
  const navigations = element.args[0].ref
196
182
  const navigationName = navigations[0].id || navigations[0]
197
183
  if (target.elements[navigationName]) {
@@ -218,6 +204,7 @@ const _convertCountNavigation = (SELECT, target) => {
218
204
  const nestedNavigationName = nextNavigation.id || nextNavigation
219
205
  if (j === navigations.length - 1) {
220
206
  nestedExistsQuery.columns('count(1) as counted')
207
+
221
208
  if (lastQuery) {
222
209
  lastQuery.where([nestedExistsQuery, SELECT.where[i + 1], SELECT.where[i + 2]])
223
210
  newWhere.push('exists', topQuery)
@@ -235,6 +222,7 @@ const _convertCountNavigation = (SELECT, target) => {
235
222
  i += 2
236
223
  }
237
224
  }
225
+
238
226
  SELECT.where = newWhere
239
227
  }
240
228
 
@@ -243,9 +231,11 @@ const _addTableName = (where, tableName) => {
243
231
  if (whereEl.xpr) {
244
232
  return { xpr: _addTableName(whereEl.xpr, tableName) }
245
233
  }
234
+
246
235
  if (whereEl.ref) {
247
236
  whereEl.ref.unshift(tableName)
248
237
  }
238
+
249
239
  return whereEl
250
240
  })
251
241
  }
@@ -261,7 +251,6 @@ const _buildExistsQuery = (entity, navigation, currentAlias, nextAlias) => {
261
251
  }
262
252
 
263
253
  const onCond = entity.elements[navigation.id || navigation]._relations.join(nextAlias, currentAlias)
264
-
265
254
  return existsQuery.where(onCond)
266
255
  }
267
256
 
@@ -332,6 +321,7 @@ const _getWhereExistsSubSelect = (queryTarget, outerAlias, innerAlias, ref, mode
332
321
  if (subSelect.SELECT.from.as) {
333
322
  for (let i = 0; i < condition.length; i++) {
334
323
  if (!condition[i].ref) continue
324
+
335
325
  if (
336
326
  condition[i].ref.length > 1 &&
337
327
  condition[i].ref.every(r => typeof r === 'string') &&
@@ -343,6 +333,7 @@ const _getWhereExistsSubSelect = (queryTarget, outerAlias, innerAlias, ref, mode
343
333
  }
344
334
  }
345
335
  }
336
+
346
337
  // skip for where: [{ val: 1 }]
347
338
  // where: [{ func: 'contains', args: [] }] must be evaluated
348
339
  if (condition.length > 1 || (condition.length === 1 && !('val' in condition[0]))) subSelect.where(condition)
@@ -356,7 +347,6 @@ const _getWhereExistsSubSelect = (queryTarget, outerAlias, innerAlias, ref, mode
356
347
 
357
348
  // nested where exists needs recursive conversion
358
349
  options.lambdaIteration++
359
-
360
350
  return _convertSelect(subSelect, model, options)
361
351
  }
362
352
 
@@ -369,6 +359,7 @@ const _ensureExpandedNestedWhereExists = ({ ref }, aliases) => {
369
359
  const acc = {}
370
360
  let cur = acc
371
361
  let alias
362
+
372
363
  for (const r of ref) {
373
364
  if (Array.isArray(cur)) {
374
365
  if (cur.length > 1) {
@@ -381,6 +372,7 @@ const _ensureExpandedNestedWhereExists = ({ ref }, aliases) => {
381
372
  cur = cur[1].ref[0]
382
373
  }
383
374
  }
375
+
384
376
  if (typeof r === 'string' && aliases.includes(r)) {
385
377
  alias = r
386
378
  } else {
@@ -390,6 +382,7 @@ const _ensureExpandedNestedWhereExists = ({ ref }, aliases) => {
390
382
  cur = cur.where
391
383
  }
392
384
  }
385
+
393
386
  if (alias) return { ref: [alias, acc] }
394
387
  return { ref: [acc] }
395
388
  }
@@ -437,16 +430,18 @@ const convertWhereExists = (query, model, options, currentTarget) => {
437
430
  (query.from &&
438
431
  ((query.from.ref && query.from) || (query.from.args && query.from.args[0].ref && query.from.args[0]))) ||
439
432
  {}
433
+
440
434
  if (!ref) return
441
435
 
442
436
  if (!options.lambdaIteration) options.lambdaIteration = 1
443
437
  const lambdaIteration = options.lambdaIteration
444
- if (!currentTarget) {
438
+
439
+ if (currentTarget) {
440
+ queryTarget = getEntityFromPath({ ref }, currentTarget)
441
+ } else {
445
442
  queryTarget = getEntityFromPath(getPathFromRef(ref), model)
446
443
  outerAlias = as || PARENT_ALIAS + lambdaIteration
447
444
  innerAlias = FOREIGN_ALIAS + lambdaIteration
448
- } else {
449
- queryTarget = getEntityFromPath({ ref }, currentTarget)
450
445
  }
451
446
 
452
447
  if (where) {
@@ -471,6 +466,7 @@ const convertWhereExists = (query, model, options, currentTarget) => {
471
466
  } else if (element.SELECT) {
472
467
  convertWhereExists(element.SELECT, model, options)
473
468
  }
469
+
474
470
  options.lambdaIteration = lambdaIteration
475
471
  }
476
472
  }
@@ -478,18 +474,20 @@ const convertWhereExists = (query, model, options, currentTarget) => {
478
474
  if (columns) {
479
475
  columns.forEach(column => _convertWhereExistsColumn(column, model, options, queryTarget))
480
476
  }
477
+
481
478
  if (expand && expand !== '*') {
482
479
  expand.forEach(column => _convertWhereExistsColumn(column, model, options, queryTarget))
483
480
  }
484
481
  }
485
482
 
486
483
  const _convertNotEqual = (container, partName = 'where') => {
484
+ const NOT_EQUAL = { '!=': 1, '<>': 1 }
487
485
  const where = container[partName]
488
486
 
489
487
  if (where) {
490
488
  for (let index = 0; index < where.length; index++) {
491
489
  const el = where[index]
492
- if (el === '!=') {
490
+ if (el in NOT_EQUAL) {
493
491
  const refIndex = _getRefIndex(where, index)
494
492
  if (refIndex !== undefined) {
495
493
  where[index - 1] = {
@@ -500,9 +498,12 @@ const _convertNotEqual = (container, partName = 'where') => {
500
498
  }
501
499
  }
502
500
 
503
- if (el) {
504
- if (el.SELECT) _convertNotEqual(el.SELECT, partName)
505
- if (el.xpr) _convertNotEqual(el, 'xpr')
501
+ if (el && el.SELECT) {
502
+ _convertNotEqual(el.SELECT, partName)
503
+ }
504
+
505
+ if (el && el.xpr) {
506
+ _convertNotEqual(el, 'xpr')
506
507
  }
507
508
  }
508
509
  }
@@ -512,7 +513,10 @@ const _convertNotEqual = (container, partName = 'where') => {
512
513
  if (typeof col === 'object') {
513
514
  if (col.SELECT) {
514
515
  _convertNotEqual(col.SELECT, partName)
515
- } else if (col.where) {
516
+ return
517
+ }
518
+
519
+ if (col.where) {
516
520
  _convertNotEqual(col, partName)
517
521
  }
518
522
  }
@@ -560,6 +564,7 @@ const _convertOrderByOrWhereCQN = (orderByOrWhereCQN, target, model, alias, proc
560
564
  _convertOrderByOrWhereCQN(el.xpr, target, model, alias, processFn)
561
565
  return
562
566
  }
567
+
563
568
  if (el.ref && _skip(queryTarget, el.ref, alias, model)) processFn(orderByOrWhereCQN, index)
564
569
  })
565
570
  }
@@ -581,10 +586,12 @@ const _convertExpand = expand => {
581
586
  if (expandElement.ref[0].where) {
582
587
  expandElement.where = expandElement.ref[0].where
583
588
  }
589
+
584
590
  if (expandElement.ref[0].id) {
585
591
  expandElement.ref[0] = expandElement.ref[0].id
586
592
  }
587
593
  }
594
+
588
595
  if (expandElement.expand) {
589
596
  _convertExpand(expandElement.expand)
590
597
  }
@@ -592,13 +599,13 @@ const _convertExpand = expand => {
592
599
  }
593
600
 
594
601
  const _convertRefWhereInExpand = columns => {
595
- if (columns) {
596
- columns.forEach(col => {
597
- if (col.expand && typeof col.expand !== 'string') {
598
- _convertExpand(col.expand)
599
- }
600
- })
601
- }
602
+ if (!columns) return
603
+
604
+ columns.forEach(col => {
605
+ if (col.expand && typeof col.expand !== 'string') {
606
+ _convertExpand(col.expand)
607
+ }
608
+ })
602
609
  }
603
610
 
604
611
  const _convertPathExpression = (query, model, options = {}) => {
@@ -606,6 +613,7 @@ const _convertPathExpression = (query, model, options = {}) => {
606
613
  for (const whereEl of query.SELECT.where || []) {
607
614
  if (typeof whereEl === 'object' && whereEl.SELECT) _convertPathExpression(whereEl, model)
608
615
  }
616
+
609
617
  const conversion = convertPathExpressionToWhere(query.SELECT.from, model, options)
610
618
  if (!conversion) return
611
619
  const { target, alias, where, cardinality, columns, args } = conversion
@@ -617,12 +625,14 @@ const _convertPathExpression = (query, model, options = {}) => {
617
625
  } else {
618
626
  query.SELECT.from = { ref: [target] }
619
627
  }
628
+
620
629
  if (alias) {
621
630
  query.SELECT.from.as = alias
622
631
  if (query.SELECT.where && alias !== prevAlias) {
623
632
  query.SELECT.where = addAliasToExpression(query.SELECT.where, alias)
624
633
  }
625
634
  }
635
+
626
636
  if (columns) {
627
637
  // TODO: use streaming as outer property
628
638
  if (options.isStreaming) query.SELECT.columns = columns
@@ -642,15 +652,17 @@ const _convertPathExpression = (query, model, options = {}) => {
642
652
  query.SELECT.columns.push(...columns)
643
653
  }
644
654
  }
655
+
645
656
  if (cardinality && cardinality.max === 1) {
646
657
  query.SELECT.one = true
647
658
  }
659
+
648
660
  // TODO: REVISIT: We need to add alias to subselect in .where, .columns, .from, ... etc
649
661
  if (where) {
650
662
  if (options._4fiori) {
651
663
  query.where(where)
652
664
  } else {
653
- query.where(removeIsActiveEntityRecursively(where))
665
+ query.where({ xpr: removeIsActiveEntityRecursively(where) })
654
666
  }
655
667
  }
656
668
  }
@@ -664,10 +676,12 @@ const _convertToOneEqNullInFilter = (query, target) => {
664
676
  if (w.xpr) {
665
677
  _convertToOneEqNullInFilter({ where: w.xpr }, target)
666
678
  }
679
+
667
680
  const w2 = query.where[i + 2]
668
681
  if (!w2 || !w.ref || w2.val !== null) {
669
682
  continue
670
683
  }
684
+
671
685
  const element = target.elements[w.ref[w.ref.length - 1]]
672
686
  if (element && element.is2one && !element.on) {
673
687
  const foreignKeys = Object.values(element.parent.elements).filter(e => e._foreignKey4 === element.name)
@@ -679,33 +693,31 @@ const _convertToOneEqNullInFilter = (query, target) => {
679
693
  return arr
680
694
  }, [])
681
695
 
682
- query.where.splice(i, 3, '(', ...replacedKeys, ')')
683
- i += replacedKeys.length + 2
696
+ query.where.splice(i, 3, { xpr: [...replacedKeys] })
697
+ i++
684
698
  }
685
699
  }
686
700
  }
687
701
 
688
702
  // eslint-disable-next-line complexity
689
703
  const _convertSelect = (query, model, _options) => {
690
- const options = Object.assign(
691
- {
692
- _4db: _options.service instanceof cds.DatabaseService,
693
- isStreaming: query._streaming
694
- },
695
- _options
696
- )
704
+ const _4db = _options.service instanceof cds.DatabaseService
705
+ const options = Object.assign({ _4db, isStreaming: query._streaming }, _options)
697
706
 
698
707
  // ensure query is ql enabled
699
708
  if (!(query instanceof Query)) Object.setPrototypeOf(query, Object.getPrototypeOf(SELECT()))
700
709
  if (query.SELECT.from && query.SELECT.from.SELECT) {
701
710
  if (query.SELECT._4odata) query.SELECT.from.SELECT._4odata = true
702
711
  query.SELECT.from = _convertSelect(query.SELECT.from, model, options)
712
+ if (!query.SELECT.columns || !query.SELECT.columns.length) {
713
+ query.SELECT.columns = query.SELECT.from.SELECT.columns.map(c => (c.as ? { ref: [c.as] } : c))
714
+ }
703
715
  }
704
716
 
705
717
  // lambda functions
706
718
  convertWhereExists(query.SELECT, model, options)
707
719
 
708
- // add 'or is null' in case of '!='
720
+ // add 'or is null' in case of not equal: '!=' or '<>'
709
721
  if (query.SELECT._4odata) {
710
722
  _convertNotEqual(query.SELECT, 'where')
711
723
  _convertNotEqual(query.SELECT, 'having')
@@ -713,13 +725,16 @@ const _convertSelect = (query, model, _options) => {
713
725
 
714
726
  _convertPathExpression(query, model, options)
715
727
  rewriteAsterisks(query, model, options)
728
+ const entity =
729
+ (query.SELECT.from.ref && (query.SELECT.from.ref[0].id || query.SELECT.from.ref[0])) || query.SELECT.from
730
+ const target = entity && model.definitions[entity]
731
+ handleStreamProperties(target, query, model)
732
+
716
733
  if (query.SELECT.where) {
717
- const entityName =
718
- (query.SELECT.from.ref && (query.SELECT.from.ref[0].id || query.SELECT.from.ref[0])) || query.SELECT.from
719
- const target = model.definitions[entityName]
720
734
  if (_isCountNavigation(query.SELECT.where)) {
721
735
  _convertCountNavigation(query.SELECT, target)
722
736
  }
737
+
723
738
  _convertToOneEqNullInFilter(query.SELECT, target)
724
739
  }
725
740
 
@@ -737,6 +752,25 @@ const _convertSelect = (query, model, _options) => {
737
752
  search2cqn4sql(query, model, { ...query._searchOptions, ...{ entityName, alias } })
738
753
  }
739
754
 
755
+ if (target && query.SELECT.columns) {
756
+ // clean up associations / compositions from columns, if not expanded
757
+ const cleanedUpColumns = []
758
+ for (const col of query.SELECT.columns) {
759
+ if (!col.expand) {
760
+ const ref = col.ref && col.ref[col.ref.length - 1]
761
+ const refElement = target.elements[ref]
762
+ if (refElement && refElement.isAssociation) {
763
+ // ignore
764
+ continue
765
+ }
766
+ }
767
+
768
+ cleanedUpColumns.push(col)
769
+ }
770
+
771
+ query.SELECT.columns = cleanedUpColumns
772
+ }
773
+
740
774
  if (query.SELECT.columns && (cds.env.effective.odata.structs || cds.env.features.ucsn_struct_conversion)) {
741
775
  flattenStructuredSelect(query, model)
742
776
  }
@@ -752,6 +786,7 @@ const _convertSelect = (query, model, _options) => {
752
786
  if (target && target._unresolved && typeof target.name === 'string') {
753
787
  target = model.definitions[ensureNoDraftsSuffix(target.name)] || target
754
788
  }
789
+
755
790
  if (target && !Object.prototype.hasOwnProperty.call(target, '_unresolved')) {
756
791
  const cols = getColumns(target, { onlyNames: true, filterVirtual: true })
757
792
  query.columns(cols)
@@ -765,7 +800,7 @@ const _convertSelect = (query, model, _options) => {
765
800
  return query
766
801
  }
767
802
 
768
- const _convertInsert = (query, model, options) => {
803
+ const _convertInsert = (query, model) => {
769
804
  // resolve path expression
770
805
  const resolvedIntoClause = _convertPathExpressionForInsert(query.INSERT.into, model)
771
806
 
@@ -787,6 +822,7 @@ const _convertInsert = (query, model, options) => {
787
822
 
788
823
  function _modifyNavigationInWhere(whereClause, target) {
789
824
  if (!whereClause) return
825
+
790
826
  whereClause.forEach(e => {
791
827
  if (e.ref && e.ref.length > 1 && target.elements[e.ref[0]]) {
792
828
  const element = target.elements[e.ref[0]]
@@ -853,7 +889,6 @@ function _plainUpdate(cqn, model) {
853
889
  }
854
890
 
855
891
  if (!target) return cqn
856
-
857
892
  return resolveView(cqn, model, cds.db)
858
893
  }
859
894
 
@@ -885,7 +920,6 @@ const _convertUpdate = (query, model, options) => {
885
920
  }
886
921
 
887
922
  if (!targetEntity) return update
888
-
889
923
  return resolveView(update, model, cds.db)
890
924
  }
891
925
 
@@ -909,7 +943,7 @@ const cqn2cqn4sql = (query, model, options = { suppressSearch: false }) => {
909
943
  }
910
944
 
911
945
  if (query.INSERT) {
912
- return _convertInsert(query, model, options)
946
+ return _convertInsert(query, model)
913
947
  }
914
948
 
915
949
  if (query.DELETE) {