@sap/cds 5.6.3 → 5.7.3

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 (187) hide show
  1. package/CHANGELOG.md +135 -0
  2. package/_i18n/i18n_fr.properties +4 -4
  3. package/apis/cds.d.ts +7 -10
  4. package/apis/connect.d.ts +3 -3
  5. package/apis/core.d.ts +2 -4
  6. package/apis/models.d.ts +2 -3
  7. package/apis/ql.d.ts +0 -1
  8. package/apis/services.d.ts +3 -3
  9. package/bin/build/buildTaskFactory.js +16 -10
  10. package/bin/build/buildTaskProviderFactory.js +3 -3
  11. package/bin/build/constants.js +2 -1
  12. package/bin/build/provider/buildTaskProviderInternal.js +14 -14
  13. package/bin/build/provider/hana/2migration.js +2 -3
  14. package/bin/build/provider/hana/index.js +34 -0
  15. package/bin/build/provider/hana/migrationtable.js +90 -22
  16. package/bin/build/provider/hana/template/undeploy.json +5 -0
  17. package/bin/build/provider/node-cf/index.js +9 -2
  18. package/bin/serve.js +16 -18
  19. package/lib/compile/cdsc.js +15 -5
  20. package/lib/compile/etc/_localized.js +4 -4
  21. package/lib/compile/extend.js +8 -0
  22. package/lib/compile/index.js +3 -1
  23. package/lib/compile/minify.js +61 -0
  24. package/lib/compile/resolve.js +4 -1
  25. package/lib/compile/to/gql.js +9 -0
  26. package/lib/compile/to/sql.js +26 -30
  27. package/lib/connect/index.js +1 -1
  28. package/lib/core/entities.js +0 -3
  29. package/lib/core/infer.js +1 -0
  30. package/lib/core/reflect.js +0 -34
  31. package/lib/deploy.js +25 -17
  32. package/lib/env/defaults.js +3 -1
  33. package/lib/env/index.js +8 -3
  34. package/lib/env/presets.js +38 -0
  35. package/lib/env/requires.js +16 -11
  36. package/lib/index.js +13 -11
  37. package/lib/log/format/kibana.js +4 -2
  38. package/lib/log/index.js +2 -2
  39. package/lib/ql/Whereable.js +1 -0
  40. package/lib/req/cds-context.js +79 -0
  41. package/lib/req/context.js +5 -77
  42. package/lib/req/request.js +1 -1
  43. package/lib/serve/Service-api.js +8 -4
  44. package/lib/serve/Service-dispatch.js +0 -7
  45. package/lib/serve/Service-methods.js +6 -8
  46. package/lib/serve/Transaction.js +35 -30
  47. package/lib/serve/adapters.js +1 -4
  48. package/lib/utils/axios.js +1 -1
  49. package/libx/_runtime/audit/Service.js +44 -20
  50. package/libx/_runtime/audit/generic/personal/access.js +16 -11
  51. package/libx/_runtime/audit/generic/personal/modification.js +5 -5
  52. package/libx/_runtime/audit/generic/personal/utils.js +46 -37
  53. package/libx/_runtime/{common/auth → auth}/index.js +21 -7
  54. package/libx/_runtime/{common/auth → auth}/strategies/JWT.js +2 -2
  55. package/libx/_runtime/{common/auth → auth}/strategies/basic.js +2 -2
  56. package/libx/_runtime/{common/auth → auth}/strategies/dummy.js +1 -1
  57. package/libx/_runtime/{common/auth → auth}/strategies/mock.js +2 -2
  58. package/libx/_runtime/{common/auth → auth}/strategies/utils/uaa.js +1 -1
  59. package/libx/_runtime/{common/auth → auth}/strategies/utils/xssec.js +0 -0
  60. package/libx/_runtime/{common/auth → auth}/strategies/xsuaa.js +2 -2
  61. package/libx/_runtime/cds-services/adapter/odata-v4/Dispatcher.js +7 -2
  62. package/libx/_runtime/cds-services/adapter/odata-v4/OData.js +0 -7
  63. package/libx/_runtime/cds-services/adapter/odata-v4/ODataRequest.js +0 -8
  64. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/action.js +3 -4
  65. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/create.js +6 -7
  66. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/delete.js +3 -4
  67. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +2 -11
  68. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/metadata.js +16 -6
  69. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/read.js +26 -69
  70. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +0 -7
  71. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/update.js +3 -66
  72. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/ExpressionToCQN.js +29 -1
  73. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +7 -1
  74. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/readToCQN.js +9 -5
  75. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +2 -2
  76. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParser.js +13 -10
  77. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/invocation/ConditionalRequestControlCommand.js +0 -7
  78. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/ConditionalRequestValidator.js +0 -8
  79. package/libx/_runtime/cds-services/adapter/odata-v4/utils/stream.js +54 -76
  80. package/libx/_runtime/cds-services/adapter/rest/RestRequest.js +0 -7
  81. package/libx/_runtime/cds-services/adapter/rest/handlers/create.js +3 -6
  82. package/libx/_runtime/cds-services/adapter/rest/handlers/delete.js +3 -6
  83. package/libx/_runtime/cds-services/adapter/rest/handlers/operation.js +3 -6
  84. package/libx/_runtime/cds-services/adapter/rest/handlers/read.js +3 -6
  85. package/libx/_runtime/cds-services/adapter/rest/handlers/update.js +3 -6
  86. package/libx/_runtime/cds-services/adapter/rest/rest-to-cqn/index.js +2 -2
  87. package/libx/_runtime/cds-services/adapter/rest/utils/parse-url.js +8 -4
  88. package/libx/_runtime/cds-services/services/Service.js +0 -6
  89. package/libx/_runtime/cds-services/services/utils/columns.js +10 -3
  90. package/libx/_runtime/cds-services/services/utils/compareJson.js +4 -7
  91. package/libx/_runtime/cds-services/services/utils/differ.js +4 -1
  92. package/libx/_runtime/cds-services/services/utils/handlerUtils.js +1 -41
  93. package/libx/_runtime/cds-services/util/assert.js +1 -262
  94. package/libx/_runtime/cds.js +6 -9
  95. package/libx/_runtime/common/aspects/entity.js +1 -1
  96. package/libx/_runtime/common/composition/delete.js +4 -2
  97. package/libx/_runtime/common/composition/update.js +22 -38
  98. package/libx/_runtime/common/composition/utils.js +3 -7
  99. package/libx/_runtime/common/error/standardError.js +11 -0
  100. package/libx/_runtime/common/generic/auth.js +63 -33
  101. package/libx/_runtime/common/generic/crud.js +11 -23
  102. package/libx/_runtime/common/generic/input.js +20 -0
  103. package/libx/_runtime/common/generic/paging.js +2 -2
  104. package/libx/_runtime/common/generic/put.js +4 -10
  105. package/libx/_runtime/common/generic/sorting.js +12 -30
  106. package/libx/_runtime/common/i18n/messages.properties +2 -0
  107. package/libx/_runtime/common/perf/index.js +24 -0
  108. package/libx/_runtime/common/utils/cqn.js +58 -1
  109. package/libx/_runtime/common/utils/cqn2cqn4sql.js +298 -121
  110. package/libx/_runtime/common/utils/csn.js +38 -56
  111. package/libx/_runtime/common/utils/entityFromCqn.js +6 -6
  112. package/libx/_runtime/common/utils/resolveView.js +4 -5
  113. package/libx/_runtime/common/utils/rewriteAsterisks.js +46 -5
  114. package/libx/_runtime/common/utils/search2cqn4sql.js +21 -9
  115. package/libx/_runtime/common/utils/structured.js +35 -25
  116. package/libx/_runtime/db/Service.js +0 -6
  117. package/libx/_runtime/db/expand/expand-v2.js +130 -0
  118. package/libx/_runtime/db/expand/expandCQNToJoin.js +38 -52
  119. package/libx/_runtime/db/expand/index.js +3 -1
  120. package/libx/_runtime/db/generic/arrayed.js +3 -1
  121. package/libx/_runtime/db/generic/input.js +52 -10
  122. package/libx/_runtime/db/generic/integrity.js +367 -26
  123. package/libx/_runtime/db/generic/virtual.js +51 -13
  124. package/libx/_runtime/db/query/read.js +12 -8
  125. package/libx/_runtime/db/query/update.js +9 -3
  126. package/libx/_runtime/db/sql-builder/ExpressionBuilder.js +8 -9
  127. package/libx/_runtime/{common → db}/utils/propagateForeignKeys.js +11 -14
  128. package/libx/_runtime/fiori/generic/activate.js +1 -0
  129. package/libx/_runtime/fiori/generic/before.js +2 -1
  130. package/libx/_runtime/fiori/generic/edit.js +1 -0
  131. package/libx/_runtime/fiori/generic/patch.js +1 -1
  132. package/libx/_runtime/fiori/generic/read.js +128 -57
  133. package/libx/_runtime/fiori/uiflex/handler/transformRESULT.js +0 -4
  134. package/libx/_runtime/fiori/uiflex/index.js +1 -1
  135. package/libx/_runtime/fiori/uiflex/{extensibility/index.js → service.js} +6 -4
  136. package/libx/_runtime/fiori/utils/delete.js +7 -1
  137. package/libx/_runtime/hana/Service.js +1 -8
  138. package/libx/_runtime/hana/customBuilder/CustomSelectBuilder.js +5 -14
  139. package/libx/_runtime/hana/execute.js +10 -4
  140. package/libx/_runtime/hana/pool.js +55 -45
  141. package/libx/_runtime/hana/search.js +7 -6
  142. package/libx/_runtime/hana/search2cqn4sql.js +8 -5
  143. package/libx/_runtime/hana/searchToContains.js +3 -1
  144. package/libx/_runtime/index.js +5 -5
  145. package/libx/_runtime/messaging/AMQPWebhookMessaging.js +3 -3
  146. package/libx/_runtime/messaging/Outbox.js +53 -0
  147. package/libx/_runtime/messaging/common-utils/AMQPClient.js +17 -10
  148. package/libx/_runtime/messaging/common-utils/connections.js +14 -9
  149. package/libx/_runtime/messaging/common-utils/waitingTime.js +2 -0
  150. package/libx/_runtime/messaging/enterprise-messaging-shared.js +2 -3
  151. package/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +2 -2
  152. package/libx/_runtime/messaging/enterprise-messaging.js +21 -15
  153. package/libx/_runtime/messaging/file-based.js +5 -5
  154. package/libx/_runtime/messaging/message-queuing-utils/options-messaging.js +1 -0
  155. package/libx/_runtime/messaging/message-queuing.js +2 -3
  156. package/libx/_runtime/messaging/outbox/OutboxRunner.js +75 -0
  157. package/libx/_runtime/messaging/outbox/utils.js +192 -0
  158. package/libx/_runtime/messaging/service.js +16 -30
  159. package/libx/_runtime/remote/Service.js +15 -0
  160. package/libx/_runtime/remote/utils/client.js +15 -3
  161. package/libx/_runtime/remote/utils/{dataConversion.js → data.js} +12 -2
  162. package/libx/_runtime/sqlite/Service.js +7 -10
  163. package/libx/_runtime/sqlite/customBuilder/CustomExpressionBuilder.js +19 -0
  164. package/libx/_runtime/sqlite/execute.js +18 -12
  165. package/libx/_runtime/types/api.js +2 -1
  166. package/libx/gql/resolvers/parse/ast2cqn/columns.js +1 -1
  167. package/libx/odata/{odata2cqn/afterburner.js → afterburner.js} +28 -16
  168. package/libx/odata/{cqn2odata/index.js → cqn2odata.js} +1 -1
  169. package/libx/odata/{odata2cqn/grammar.pegjs → grammar.pegjs} +222 -130
  170. package/libx/odata/index.js +23 -14
  171. package/libx/odata/parser.js +1 -0
  172. package/libx/odata/utils.js +57 -0
  173. package/libx/rest/RestAdapter.js +2 -6
  174. package/libx/rest/utils/data.js +1 -6
  175. package/package.json +4 -3
  176. package/server.js +4 -5
  177. package/srv/audit-log.cds +87 -0
  178. package/{libx/_runtime/fiori/uiflex/extensibility/index.cds → srv/flex.cds} +0 -0
  179. package/srv/flex.js +1 -0
  180. package/srv/outbox.cds +11 -0
  181. package/srv/outbox.js +0 -0
  182. package/libx/_runtime/cds-services/adapter/perf/performance.js +0 -104
  183. package/libx/_runtime/cds-services/adapter/perf/performanceMeasurement.js +0 -33
  184. package/libx/odata/odata2cqn/index.js +0 -3
  185. package/libx/odata/odata2cqn/parser.js +0 -1
  186. package/libx/odata/readme.md +0 -1
  187. package/libx/odata/utils/index.js +0 -64
@@ -0,0 +1 @@
1
+ "use strict";function peg$subclass(t,r){function e(){this.constructor=t}e.prototype=r.prototype,t.prototype=new e}function peg$SyntaxError(t,r,e,n){this.message=t,this.expected=r,this.found=e,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,peg$SyntaxError)}function peg$parse(t,r){r=void 0!==r?r:{};var e,n={},s={ODataRelativeURI:Be},a=Be,u="/",o=Ce("/",!1),c=Ce("?",!1),i=Ce("&",!1),f="$count",l=Ce("$count",!1),h="$ref",p=Ce("$ref",!1),A="$value",d=Ce("$value",!1),g=function(t){return[t]},v=function(t,r){return r},b=Ce("=",!1),y="$skiptoken=",m=Ce("$skiptoken=",!1),C="$apply=",w=Ce("$apply=",!1),x="$select=",$=Ce("$select=",!1),E="$expand=",L=Ce("$expand=",!1),S="$filter=",B=Ce("$filter=",!1),Z="$orderby=",z=Ce("$orderby=",!1),O="$top=",T=Ce("$top=",!1),_="$skip=",F=Ce("$skip=",!1),R="$search=",j=Ce("$search=",!1),k="$count=",N=Ce("$count=",!1),U=Ce("*",!1),D=Ce(";",!1),P="/$count",q=Ce("/$count",!1),I=function(t){return t?[t]:[]},M=function(t,r){t.push({xpr:r})},X=function(t,r){t.push({val:r})},G=function(t,r,e){t.push(r,...e)},H=function(t,r){t.push(r)},J=function(t,r,e){t.push(r,...e)},K=":",Q=Ce(":",!1),V="any",W=Ce("any",!1),Y="all",tt=Ce("all",!1),rt=Ce("asc",!1),et="desc",nt=Ce("desc",!1),st=/^[a-zA-Z]/,at=we([["a","z"],["A","Z"]],!1,!1),ut=/^[a-zA-Z0-9\-]/,ot=we([["a","z"],["A","Z"],["0","9"],"-"],!1,!1),ct=/^[^&]/,it=we(["&"],!0,!1),ft=xe("a comparison"),lt=Ce("eq",!1),ht=Ce("ne",!1),pt=Ce("lt",!1),At=Ce("gt",!1),dt=Ce("le",!1),gt=Ce("ge",!1),vt=(Ce("add",!1),Ce("sub",!1),Ce("mul",!1),Ce("div",!1),Ce("mod",!1),xe("an operand")),bt=xe("navigation with $count"),yt=function(t,r){return r},mt=function(t,r){return r?{id:t,where:r}:t},Ct=xe("a reference"),wt=function(t,r){return r},xt=function(t){return{val:t}},$t=Ce("{",!1),Et=/^[^}]/,Lt=we(["}"],!0,!1),St=Ce("}",!1),Bt="[",Zt=Ce("[",!1),zt="]",Ot=Ce("]",!1),Tt=/^[^\]]/,_t=we(["]"],!0,!1),Ft=xe("a function call"),Rt=function(t,r,e){return e},jt=xe("a boolean function"),kt="contains",Nt=Ce("contains",!0),Ut="endswith",Dt=Ce("endswith",!0),Pt="startswith",qt=Ce("startswith",!0),It=Ce("NOT",!0),Mt=Ce("AND",!0),Xt=Ce("OR",!0),Gt="aggregate",Ht=Ce("aggregate",!1),Jt="groupby",Kt=Ce("groupby",!1),Qt="filter",Vt=Ce("filter",!1),Wt="expand",Yt=Ce("expand",!1),tr="search",rr=Ce("search",!1),er="concat",nr=Ce("concat",!1),sr="compute",ar=Ce("compute",!1),ur=Ce("topcount",!0),or=Ce("bottomcount",!0),cr=Ce("topsum",!0),ir=Ce("bottomsum",!0),fr=Ce("toppercent",!0),lr=Ce("bottompercent",!0),hr="with",pr=Ce("with",!1),Ar="from",dr=Ce("from",!1),gr=Ce("as",!1),vr="rollup",br=Ce("rollup",!1),yr="$all",mr=Ce("$all",!1),Cr="identity",wr=Ce("identity",!1),xr="true",$r=Ce("true",!1),Er="false",Lr=Ce("false",!1),Sr=xe("Edm.String"),Br=Ce("'",!1),Zr="''",zr=Ce("''",!1),Or=/^[^']/,Tr=we(["'"],!0,!1),_r='"',Fr=Ce('"',!1),Rr='\\"',jr=Ce('\\"',!1),kr=/^[^"]/,Nr=we(['"'],!0,!1),Ur=/^[a-zA-Z0-9.+\-]/,Dr=we([["a","z"],["A","Z"],["0","9"],".","+","-"],!1,!1),Pr=/^[0-9]/,qr=we([["0","9"]],!1,!1),Ir="-",Mr=Ce("-",!1),Xr=Ce("T",!1),Gr=".",Hr=Ce(".",!1),Jr=Ce("Z",!1),Kr=Ce("+",!1),Qr=/^[+\-]/,Vr=we(["+","-"],!1,!1),Wr=Ce("e",!1),Yr=/^[_a-zA-Z]/,te=we(["_",["a","z"],["A","Z"]],!1,!1),re=/^[_a-zA-Z0-9"."]/,ee=we(["_",["a","z"],["A","Z"],["0","9"],'"',".",'"'],!1,!1),ne=/^[0-9a-fA-F]/,se=we([["0","9"],["a","f"],["A","F"]],!1,!1),ae=/^[a-zA-Z0-9\-"."_~!$&'()*+,;=:@]/,ue=we([["a","z"],["A","Z"],["0","9"],"-",'"',".",'"',"_","~","!","$","&","'","(",")","*","+",",",";","=",":","@"],!1,!1),oe=/^[a-zA-Z0-9\-"."_~!$'()*+,;=:@"\/""?"]/,ce=we([["a","z"],["A","Z"],["0","9"],"-",'"',".",'"',"_","~","!","$","'","(",")","*","+",",",";","=",":","@",'"',"/",'"','"',"?",'"'],!1,!1),ie=Ce(",",!1),fe=Ce("(",!1),le=Ce(")",!1),he=xe("optional whitespaces"),pe=/^[ \t\n]/,Ae=we([" ","\t","\n"],!1,!1),de=xe("mandatory whitespaces"),ge=0,ve=[{line:1,column:1}],be=0,ye=[],me=0;if("startRule"in r){if(!(r.startRule in s))throw new Error("Can't start parsing from rule \""+r.startRule+'".');a=s[r.startRule]}function Ce(t,r){return{type:"literal",text:t,ignoreCase:r}}function we(t,r,e){return{type:"class",parts:t,inverted:r,ignoreCase:e}}function xe(t){return{type:"other",description:t}}function $e(r){var e,n=ve[r];if(n)return n;for(e=r-1;!ve[e];)e--;for(n={line:(n=ve[e]).line,column:n.column};e<r;)10===t.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return ve[r]=n,n}function Ee(t,r){var e=$e(t),n=$e(r);return{start:{offset:t,line:e.line,column:e.column},end:{offset:r,line:n.line,column:n.column}}}function Le(t){ge<be||(ge>be&&(be=ge,ye=[]),ye.push(t))}function Se(t,r,e){return new peg$SyntaxError(peg$SyntaxError.buildMessage(t,r),t,r,e)}function Be(){var r,e,s,a,f,l,h,p,A,d,g,v,b,y;if(r=ge,47===t.charCodeAt(ge)?(e=u,ge++):(e=n,0===me&&Le(o)),e===n&&(e=null),e!==n)if(s=ge,(a=Ze())!==n&&(s,a=void(Bn=a)),(s=a)!==n){if(a=ge,(f=wn())!==n)if(63===t.charCodeAt(ge)?(l="?",ge++):(l=n,0===me&&Le(c)),l!==n)if((h=wn())!==n)if((p=Oe())!==n){for(A=[],d=ge,(g=wn())!==n?(38===t.charCodeAt(ge)?(v="&",ge++):(v=n,0===me&&Le(i)),v!==n&&(b=wn())!==n&&(y=Oe())!==n?d=g=[g,v,b,y]:(ge=d,d=n)):(ge=d,d=n);d!==n;)A.push(d),d=ge,(g=wn())!==n?(38===t.charCodeAt(ge)?(v="&",ge++):(v=n,0===me&&Le(i)),v!==n&&(b=wn())!==n&&(y=Oe())!==n?d=g=[g,v,b,y]:(ge=d,d=n)):(ge=d,d=n);A!==n?a=f=[f,l,h,p,A]:(ge=a,a=n)}else ge=a,a=n;else ge=a,a=n;else ge=a,a=n;else ge=a,a=n;a===n&&(a=null),a!==n&&(f=wn())!==n?(r,r=e=function(){if(Zn)return Bn.columns=[{args:[{val:1}],as:"$count",func:"count"}],delete Bn.expand,delete Bn.limit,delete Bn.orderBy,Bn.apply&&(Bn.apply={apply:Bn.apply},jn(Bn,Bn.apply)),{SELECT:Bn};let t;if(Bn.expand){Bn.columns||(Bn.columns=["*"],t=!0);for(const t of Bn.expand){const r=Bn.columns.findIndex(Tn(t));r>-1&&Bn.columns.splice(r,1),Bn.columns.push(t)}delete Bn.expand}return Bn.count&&Bn.apply&&(Bn.__countAggregated=!0),jn(Bn,Bn.apply,t),{SELECT:Bn}}()):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;return r}function Ze(){var r,e,s,a,c,i,b,y;return r=ge,t.substr(ge,6)===f?(e=f,ge+=6):(e=n,0===me&&Le(l)),e!==n&&(r,e=void(Zn=!0)),(r=e)===n&&(r=ge,e=ge,t.substr(ge,4)===h?(s=h,ge+=4):(s=n,0===me&&Le(p)),s===n&&(t.substr(ge,6)===A?(s=A,ge+=6):(s=n,0===me&&Le(d))),(e=s!==n?t.substring(e,ge):s)!==n&&(r,y=e,e=!zn.includes(y)&&{from:{ref:[y]}}),(r=e)===n&&(r=ge,e=ge,(s=dn())!==n?(a=ge,(c=mn())!==n&&(i=Cn())!==n?a=c=[c,i]:(ge=a,a=n),a===n&&(a=ge,(c=mn())!==n&&(i=ze())!==n&&(b=Cn())!==n?a=c=[c,i,b]:(ge=a,a=n)),a===n&&(a=null),a!==n?(c=ge,me++,i=bn(),me--,i===n?c=void 0:(ge=c,c=n),c!==n?e=s=[s,a,c]:(ge=e,e=n)):(ge=e,e=n)):(ge=e,e=n),e===n&&(e=ge,s=ge,a=ge,c=ge,me++,i=pn(),me--,i===n?c=void 0:(ge=c,c=n),c!==n&&(i=He())!==n?a=c=[c,i]:(ge=a,a=n),a!==n&&(s,a=a[1]),(s=a)===n&&(s=bn()),s!==n&&(e,s=g(s)),e=s),e!==n?(s=ge,47===t.charCodeAt(ge)?(a=u,ge++):(a=n,0===me&&Le(o)),a!==n&&(c=Ze())!==n?(s,s=a=v(0,c)):(ge=s,s=n),s===n&&(s=null),s!==n?(r,r=e=function(t,r){const[e,n]=t,s=[n?n.length>2?{id:e,where:n[1].map((t=>t.val&&t.val.match&&t.val.match(/^"(.*)"$/)?{val:t.val.match(/^"(.*)"$/)[1]}:t))}:{id:e,where:[]}:Ln?`${"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"val")?e.val:e}`:e];if(r&&r.from){const t=r.from.ref;Object.prototype.hasOwnProperty.call(t[0],"val")&&(s[s.length-1]={id:s[s.length-1],where:[t.shift()]}),s.push(...t)}const a={from:{ref:s}};return r&&r.columns&&(a.columns=r.columns),a}(e,s)):(ge=r,r=n)):(ge=r,r=n))),r}function ze(){var r,e,s,a,u,o,c;return r=ge,(e=He())!==n&&(r,e=g(e)),(r=e)===n&&(r=ge,(e=Ge())!==n&&wn()!==n?(61===t.charCodeAt(ge)?(s="=",ge++):(s=n,0===me&&Le(b)),s!==n&&wn()!==n&&(a=He())!==n?(u=ge,(o=yn())!==n&&(c=ze())!==n?u=o=[o,c]:(ge=u,u=n),u===n&&(u=null),u!==n?(r,r=e=function(t,r,e){const n=[t,"=",r];return e&&n.push("and",...e[1]),n}(e,a,u)):(ge=r,r=n)):(ge=r,r=n)):(ge=r,r=n)),r}function Oe(){var r,e,s,a;return(r=Te())===n&&(r=ge,t.substr(ge,11)===y?(e=y,ge+=11):(e=n,0===me&&Le(m)),e!==n&&(s=wn())!==n?(a=function(){var r,e,s;r=ge,(e=An())===n&&(e=null);e!==n?(s=function(){var r,e,s;r=ge,e=[],oe.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(ce));if(s!==n)for(;s!==n;)e.push(s),oe.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(ce));else e=n;r=e!==n?t.substring(r,ge):e;return r}(),s===n&&(s=null),s!==n?(r,a=e,r=e=void(s||kn(a))):(ge=r,r=n)):(ge=r,r=n);var a;return r}(),a!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,7)===C?(e=C,ge+=7):(e=n,0===me&&Le(w)),e!==n?(s=ge,(a=wn())!==n&&(s,a=void(Bn.apply={})),(s=a)!==n&&(a=Ie())!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=function(){var r,e,s,a,u,o;r=ge,st.test(t.charAt(ge))?(e=t.charAt(ge),ge++):(e=n,0===me&&Le(at));if(e!==n){for(s=[],ut.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(ot));a!==n;)s.push(a),ut.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(ot));if(s!==n)if(61===t.charCodeAt(ge)?(a="=",ge++):(a=n,0===me&&Le(b)),a!==n){for(u=[],ct.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(it));o!==n;)u.push(o),ct.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(it));u!==n?r=e=[e,s,a,u]:(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n}else ge=r,r=n;return r}()))),r}function Te(){var r,e,s,a,u,o,c,i,f,l;if(r=ge,t.substr(ge,8)===x?(e=x,ge+=8):(e=n,0===me&&Le($)),e!==n)if((s=wn())!==n)if((a=_e())!==n){for(u=[],o=ge,(c=yn())!==n&&(i=_e())!==n?o=c=[c,i]:(ge=o,o=n);o!==n;)u.push(o),o=ge,(c=yn())!==n&&(i=_e())!==n?o=c=[c,i]:(ge=o,o=n);u!==n?r=e=[e,s,a,u]:(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;else ge=r,r=n;if(r===n){if(r=ge,t.substr(ge,8)===E?(e=E,ge+=8):(e=n,0===me&&Le(L)),e!==n)if((s=wn())!==n)if((a=Fe())!==n){for(u=[],o=ge,(c=yn())!==n&&(i=Fe())!==n?o=c=[c,i]:(ge=o,o=n);o!==n;)u.push(o),o=ge,(c=yn())!==n&&(i=Fe())!==n?o=c=[c,i]:(ge=o,o=n);u!==n?r=e=[e,s,a,u]:(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;else ge=r,r=n;if(r===n&&(r=ge,t.substr(ge,8)===S?(e=S,ge+=8):(e=n,0===me&&Le(B)),e!==n&&(s=wn())!==n&&(a=ke())!==n?(r,l=a,r=e=void(Bn.where=l)):(ge=r,r=n),r===n)){if(r=ge,t.substr(ge,9)===Z?(e=Z,ge+=9):(e=n,0===me&&Le(z)),e!==n)if((s=wn())!==n)if((a=qe())!==n){for(u=[],o=ge,(c=yn())!==n&&(i=qe())!==n?o=c=[c,i]:(ge=o,o=n);o!==n;)u.push(o),o=ge,(c=yn())!==n&&(i=qe())!==n?o=c=[c,i]:(ge=o,o=n);u!==n?r=e=[e,s,a,u]:(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;else ge=r,r=n;r===n&&(r=ge,t.substr(ge,5)===O?(e=O,ge+=5):(e=n,0===me&&Le(T)),e!==n&&(s=wn())!==n?(a=function(){var t,r;t=ge,(r=An())!==n&&(t,e=r,r=void((Bn.limit||(Bn.limit={})).rows={val:e}));var e;return t=r}(),a!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,6)===_?(e=_,ge+=6):(e=n,0===me&&Le(F)),e!==n&&(s=wn())!==n?(a=function(){var t,r;t=ge,(r=An())!==n&&(t,r=void kn(r));return t=r}(),a!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,8)===R?(e=R,ge+=8):(e=n,0===me&&Le(j)),e!==n&&(s=wn())!==n&&(a=Re())!==n?(r,r=e=void((f=a)&&(Bn.search=f))):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,7)===k?(e=k,ge+=7):(e=n,0===me&&Le(N)),e!==n&&(s=wn())!==n?(a=function(){var t,r;t=ge,(r=hn())!==n&&(t,r=void(r&&(Bn.count=!0)));return t=r}(),a!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n)))))}}return r}function _e(){var r,e,s;return r=ge,42===t.charCodeAt(ge)?(e="*",ge++):(e=n,0===me&&Le(U)),e===n&&(e=Ge()),e!==n&&(r,s=e,Bn.columns=Array.isArray(Bn.columns)?Bn.columns:[],Bn.columns.find(Tn(s))||Bn.columns.push(s),e=s),r=e}function Fe(){var r,e,s,a,u,o,c,i,f,l,h;if(r=ge,e=ge,42===t.charCodeAt(ge)?(s="*",ge++):(s=n,0===me&&Le(U)),s===n&&(s=Ge()),s!==n&&(e,s=function(t){const r="*"===t?{}:t;return r.expand="*",Array.isArray(Bn.expand)||(Bn.expand=[]),Bn.expand.find(Tn(r))||Bn.expand.push(r),r}(s)),(e=s)!==n){if(s=ge,a=ge,(u=mn())!==n&&(a,Sn.push(Bn),Bn=Bn.expand[Bn.expand.length-1],u=void(Bn.expand="*")),(a=u)!==n){for(u=ge,o=[],c=ge,(i=wn())!==n?(59===t.charCodeAt(ge)?(f=";",ge++):(f=n,0===me&&Le(D)),f===n&&(f=null),f!==n&&(l=wn())!==n&&(h=Te())!==n?c=i=[i,f,l,h]:(ge=c,c=n)):(ge=c,c=n);c!==n;)o.push(c),c=ge,(i=wn())!==n?(59===t.charCodeAt(ge)?(f=";",ge++):(f=n,0===me&&Le(D)),f===n&&(f=null),f!==n&&(l=wn())!==n&&(h=Te())!==n?c=i=[i,f,l,h]:(ge=c,c=n)):(ge=c,c=n);o!==n&&(u,o=function(t){if(Bn.columns){"*"===Bn.expand&&(Bn.expand=[]);for(const t of Bn.columns)Bn.expand.find(Tn(t))||Bn.expand.push(t);delete Bn.columns}else Array.isArray(Bn.expand)&&-1===Bn.expand.indexOf("*")&&Bn.expand.unshift("*")}()),(u=o)!==n?(o=ge,(c=Cn())!==n&&(o,c=void(Bn=Sn.pop())),(o=c)!==n?s=a=[a,u,o]:(ge=s,s=n)):(ge=s,s=n)}else ge=s,s=n;s===n&&(s=null),s!==n?(a=ge,(u=yn())!==n&&(o=Fe())!==n?a=u=[u,o]:(ge=a,a=n),a===n&&(a=null),a!==n?(u=ge,t.substr(ge,7)===P?(o=P,ge+=7):(o=n,0===me&&Le(q)),o!==n&&(u,o=function(){const t=new Error("EXPAND_COUNT_UNSUPPORTED");throw t.statusCode=501,t}()),(u=o)===n&&(u=null),u!==n?r=e=[e,s,a,u]:(ge=r,r=n)):(ge=r,r=n)):(ge=r,r=n)}else ge=r,r=n;return r}function Re(){var t,r;return t=ge,(r=je())!==n&&(t,r=r),(t=r)===n&&(t=wn()),t}function je(){var r,e,s,a,u,o,c;if(r=ge,e=ge,(s=Ve())===n&&(s=null),s!==n&&(e,s=I(s)),(e=s)!==n)if(s=ge,(a=mn())!==n&&(u=je())!==n&&(o=Cn())!==n?(s,s=a=M(e,u)):(ge=s,s=n),s===n&&(s=ge,a=function(){var r,e,s,a,u;r=ge,34===t.charCodeAt(ge)?(e=_r,ge++):(e=n,0===me&&Le(Fr));if(e!==n){for(s=ge,a=[],t.substr(ge,2)===Rr?(u=Rr,ge+=2):(u=n,0===me&&Le(jr)),u===n&&(kr.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(Nr)));u!==n;)a.push(u),t.substr(ge,2)===Rr?(u=Rr,ge+=2):(u=n,0===me&&Le(jr)),u===n&&(kr.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(Nr)));(s=a!==n?t.substring(s,ge):a)!==n?(34===t.charCodeAt(ge)?(a=_r,ge++):(a=n,0===me&&Le(Fr)),a!==n?(r,r=e=s.replace(/\\\\/g,"\\").replace(/\\"/g,'"')):(ge=r,r=n)):(ge=r,r=n)}else ge=r,r=n;return r}(),a!==n&&(s,a=X(e,a)),(s=a)===n&&(s=ge,(a=pn())!==n&&(s,a=X(e,a)),(s=a)===n&&(s=ge,a=function(){var r,e,s;r=ge,e=[],Ur.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(Dr));if(s!==n)for(;s!==n;)e.push(s),Ur.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(Dr));else e=n;r=e!==n?t.substring(r,ge):e;return r}(),a!==n&&(s,a=X(e,a)),s=a))),s!==n){for(a=[],u=ge,(o=We())===n&&(o=tn())===n&&(o=Ye()),o!==n&&(c=je())!==n?(u,u=o=G(e,o,c)):(ge=u,u=n);u!==n;)a.push(u),u=ge,(o=We())===n&&(o=tn())===n&&(o=Ye()),o!==n&&(c=je())!==n?(u,u=o=G(e,o,c)):(ge=u,u=n);a!==n?(r,r=e=e):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;return r}function ke(){var t,r;return t=ge,(r=Ne())!==n&&(t,r=r),t=r}function Ne(){var r,e,s,a,u,o,c,i;if(r=ge,e=ge,(s=Ve())===n&&(s=null),s!==n&&(e,s=I(s)),(e=s)!==n)if(s=ge,(a=mn())!==n&&(u=Ne())!==n&&(o=Cn())!==n?(s,s=a=M(e,u)):(ge=s,s=n),s===n&&(s=ge,(a=Me())!==n&&(s,i=a,a=void e.push(...i)),(s=a)===n&&(s=ge,(a=Ue())!==n&&(s,a=function(t,r){t.push(...r)}(e,a)),(s=a)===n&&(s=ge,a=function(){var r,e,s,a;me++,r=ge,t.substr(ge,8).toLowerCase()===kt?(e=t.substr(ge,8),ge+=8):(e=n,0===me&&Le(Nt));e===n&&(t.substr(ge,8).toLowerCase()===Ut?(e=t.substr(ge,8),ge+=8):(e=n,0===me&&Le(Dt)),e===n&&(t.substr(ge,10).toLowerCase()===Pt?(e=t.substr(ge,10),ge+=10):(e=n,0===me&&Le(qt))));e!==n&&mn()!==n&&(s=Xe())!==n&&yn()!==n&&(a=Xe())!==n&&Cn()!==n?(r,u=s,o=a,r=e={func:e.toLowerCase(),args:[u,o]}):(ge=r,r=n);var u,o;me--,r===n&&(e=n,0===me&&Le(jt));return r}(),a!==n&&(s,a=function(t,r){t.push(r)}(e,a)),(s=a)===n&&(s=ge,(a=hn())!==n&&(s,a=X(e,a)),s=a)))),s!==n){for(a=[],u=ge,(o=We())===n&&(o=tn()),o!==n&&(c=Ne())!==n?(u,u=o=G(e,o,c)):(ge=u,u=n);u!==n;)a.push(u),u=ge,(o=We())===n&&(o=tn()),o!==n&&(c=Ne())!==n?(u,u=o=G(e,o,c)):(ge=u,u=n);a!==n?(r,r=e=e):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;return r}function Ue(){var r,e,s,a,c,i,f;if(r=ge,e=ge,(s=dn())!==n&&(e,s=[s]),(e=s)!==n)if(47===t.charCodeAt(ge)?(s=u,ge++):(s=n,0===me&&Le(o)),s!==n){for(a=[],c=ge,(i=dn())!==n?(47===t.charCodeAt(ge)?(f=u,ge++):(f=n,0===me&&Le(o)),f!==n?(c,c=i=H(e,i)):(ge=c,c=n)):(ge=c,c=n);c!==n;)a.push(c),c=ge,(i=dn())!==n?(47===t.charCodeAt(ge)?(f=u,ge++):(f=n,0===me&&Le(o)),f!==n?(c,c=i=H(e,i)):(ge=c,c=n)):(ge=c,c=n);a!==n?(c=ge,i=function(){var r,e,s;r=ge,t.substr(ge,3)===V?(e=V,ge+=3):(e=n,0===me&&Le(W));e!==n&&mn()!==n?((s=Pe())===n&&(s=null),s!==n&&Cn()!==n?(r,r=e=s):(ge=r,r=n)):(ge=r,r=n);return r}(),i!==n&&(c,i=function(t,r){let e=t.pop();if(!r)return["exists",{ref:[...t,{id:e}]}];let n=[];for(let t=0,s=0;t<r.length;++t){let a=r[t];a.ref&&0===a.ref.length&&"="===r[t+1]?n[s++]={func:"contains",args:[{ref:e},r[t+=2]]}:n[s++]=a}return n.length<r.length?(e=t.pop(),["exists",{ref:[...t,{id:e,where:n}]}]):["exists",{ref:[...t,{id:e,where:r}]}]}(e,i)),(c=i)===n&&(c=ge,i=function(){var r,e,s;r=ge,t.substr(ge,3)===Y?(e=Y,ge+=3):(e=n,0===me&&Le(tt));e!==n&&mn()!==n&&(s=Pe())!==n&&Cn()!==n?(r,r=e=s):(ge=r,r=n);return r}(),i!==n&&(c,i=function(t,r){let e=t.pop();return["not","exists",{ref:[...t,{id:e,where:["not",{xpr:[...r]}]}]}]}(e,i)),c=i),c!==n?(r,r=e=c):(ge=r,r=n)):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;return r}function De(){var t,r,e,s,a,u,o,c,i;if(t=ge,r=ge,(e=Ve())===n&&(e=null),e!==n&&(r,e=(c=e)?[c]:[]),(r=e)!==n)if(e=ge,(s=mn())!==n&&(a=De())!==n&&(u=Cn())!==n?(e,i=a,e=s=void r.push("(",...i,")")):(ge=e,e=n),e===n&&(e=ge,(s=Me())!==n&&(e,s=function(t,r){t.push(...r)}(r,s)),(e=s)===n&&(e=ge,(s=Qe())!==n&&(e,s=function(t,r){t.push(r)}(r,s)),(e=s)===n&&(e=ge,(s=Ue())!==n&&(e,s=function(t,r){t.push(...r)}(r,s)),e=s))),e!==n){for(s=[],a=ge,(u=We())===n&&(u=tn()),u!==n&&(o=De())!==n?(a,a=u=J(r,u,o)):(ge=a,a=n);a!==n;)s.push(a),a=ge,(u=We())===n&&(u=tn()),u!==n&&(o=De())!==n?(a,a=u=J(r,u,o)):(ge=a,a=n);s!==n?(t,t=r=r):(ge=t,t=n)}else ge=t,t=n;else ge=t,t=n;return t}function Pe(){var r,e,s,a;return r=ge,(e=dn())!==n?(58===t.charCodeAt(ge)?(s=K,ge++):(s=n,0===me&&Le(Q)),s!==n&&(a=De())!==n?(r,r=e=Nn(e,a)):(ge=r,r=n)):(ge=r,r=n),r}function qe(){var r,e,s,a,u;return r=ge,(e=Qe())===n&&(e=Ge()),e!==n?(s=ge,xn()!==n?(a=ge,"asc"===t.substr(ge,3)?(u="asc",ge+=3):(u=n,0===me&&Le(rt)),u===n&&(t.substr(ge,4)===et?(u=et,ge+=4):(u=n,0===me&&Le(nt))),(a=u!==n?t.substring(a,ge):u)!==n?(s,s=a):(ge=s,s=n)):(ge=s,s=n),s===n&&(s=null),s!==n?(r,r=e=function(t,r){const e=$n(t,r&&{sort:r});Bn.orderBy=Bn.orderBy?[...Bn.orderBy,e]:[e]}(e,s)):(ge=r,r=n)):(ge=r,r=n),r}function Ie(){var r,e,s,a,c,i;if(r=ge,(e=rn())!==n){for(s=[],a=ge,47===t.charCodeAt(ge)?(c=u,ge++):(c=n,0===me&&Le(o)),c!==n&&(i=rn())!==n?a=c=[c,i]:(ge=a,a=n);a!==n;)s.push(a),a=ge,47===t.charCodeAt(ge)?(c=u,ge++):(c=n,0===me&&Le(o)),c!==n&&(i=rn())!==n?a=c=[c,i]:(ge=a,a=n);s!==n?r=e=[e,s]:(ge=r,r=n)}else ge=r,r=n;return r}function Me(){var r,e,s,a,u,o;return me++,r=ge,(e=Xe())!==n&&xn()!==n?(s=ge,"eq"===t.substr(ge,2)?(a="eq",ge+=2):(a=n,0===me&&Le(lt)),a===n&&("ne"===t.substr(ge,2)?(a="ne",ge+=2):(a=n,0===me&&Le(ht)),a===n&&("lt"===t.substr(ge,2)?(a="lt",ge+=2):(a=n,0===me&&Le(pt)),a===n&&("gt"===t.substr(ge,2)?(a="gt",ge+=2):(a=n,0===me&&Le(At)),a===n&&("le"===t.substr(ge,2)?(a="le",ge+=2):(a=n,0===me&&Le(dt)),a===n&&("ge"===t.substr(ge,2)?(a="ge",ge+=2):(a=n,0===me&&Le(gt))))))),(s=a!==n?t.substring(s,ge):a)!==n&&(a=xn())!==n&&(u=Xe())!==n?(r,r=e=[e,{eq:"=",ne:"!=",lt:"<",gt:">",le:"<=",ge:">="}[o=s]||o,u]):(ge=r,r=n)):(ge=r,r=n),me--,r===n&&(e=n,0===me&&Le(ft)),r}function Xe(){var r;return me++,r=function(){var r,e,s,a,c,i,h;me++,r=ge,e=[],s=ge,(a=dn())!==n?(c=ge,(i=mn())!==n&&(h=ze())!==n&&Cn()!==n?(c,c=i=yt(0,h)):(ge=c,c=n),c===n&&(c=null),c!==n?(47===t.charCodeAt(ge)?(i=u,ge++):(i=n,0===me&&Le(o)),i!==n?(s,s=a=mt(a,c)):(ge=s,s=n)):(ge=s,s=n)):(ge=s,s=n);if(s!==n)for(;s!==n;)e.push(s),s=ge,(a=dn())!==n?(c=ge,(i=mn())!==n&&(h=ze())!==n&&Cn()!==n?(c,c=i=yt(0,h)):(ge=c,c=n),c===n&&(c=null),c!==n?(47===t.charCodeAt(ge)?(i=u,ge++):(i=n,0===me&&Le(o)),i!==n?(s,s=a=mt(a,c)):(ge=s,s=n)):(ge=s,s=n)):(ge=s,s=n);else e=n;e!==n?(t.substr(ge,6)===f?(s=f,ge+=6):(s=n,0===me&&Le(l)),s!==n?(r,r=e={func:"count",as:"$count",args:[{ref:e}]}):(ge=r,r=n)):(ge=r,r=n);me--,r===n&&(e=n,0===me&&Le(bt));return r}(),r===n&&(r=Qe())===n&&(r=Ge())===n&&(r=He())===n&&(r=Je())===n&&(r=Ke())===n&&(r=function(){var r,e,s,a,u;r=ge,91===t.charCodeAt(ge)?(e=Bt,ge++):(e=n,0===me&&Le(Zt));if(e!==n){for(s=ge,a=[],Tt.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(_t));u!==n;)a.push(u),Tt.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(_t));(s=a!==n?t.substring(s,ge):a)!==n?(93===t.charCodeAt(ge)?(a=zt,ge++):(a=n,0===me&&Le(Ot)),a!==n?(r,r=e={list:s.replace(/"/g,"").split(",").map((t=>({val:t})))}):(ge=r,r=n)):(ge=r,r=n)}else ge=r,r=n;return r}()),me--,r===n&&(n,0===me&&Le(vt)),r}function Ge(){var r,e,s,a,c,i,f,l;if(me++,r=ge,(e=dn())!==n){for(s=[],a=ge,47===t.charCodeAt(ge)?(c=u,ge++):(c=n,0===me&&Le(o)),c!==n&&(i=dn())!==n?(a,a=c=wt(0,i)):(ge=a,a=n);a!==n;)s.push(a),a=ge,47===t.charCodeAt(ge)?(c=u,ge++):(c=n,0===me&&Le(o)),c!==n&&(i=dn())!==n?(a,a=c=wt(0,i)):(ge=a,a=n);s!==n?(r,l=s,r=e="null"===(f=e)?{val:null}:{ref:[f,...l]}):(ge=r,r=n)}else ge=r,r=n;return me--,r===n&&(e=n,0===me&&Le(Ct)),r}function He(){var r,e,s;return r=ge,(e=hn())===n&&(e=function(){var r,e,s,a,u,o,c,i,f,l,h,p,A,d,g,v,b,y,m,C,w,x,$,E;r=ge,e=ge,s=[],Pr.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(qr));if(a!==n)for(;a!==n;)s.push(a),Pr.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(qr));else s=n;if(s!==n)if(45===t.charCodeAt(ge)?(a=Ir,ge++):(a=n,0===me&&Le(Mr)),a!==n)if(Pr.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(qr)),u!==n)if(Pr.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(qr)),o!==n)if(45===t.charCodeAt(ge)?(c=Ir,ge++):(c=n,0===me&&Le(Mr)),c!==n)if(Pr.test(t.charAt(ge))?(i=t.charAt(ge),ge++):(i=n,0===me&&Le(qr)),i!==n)if(Pr.test(t.charAt(ge))?(f=t.charAt(ge),ge++):(f=n,0===me&&Le(qr)),f!==n){if(l=ge,84===t.charCodeAt(ge)?(h="T",ge++):(h=n,0===me&&Le(Xr)),h!==n)if(Pr.test(t.charAt(ge))?(p=t.charAt(ge),ge++):(p=n,0===me&&Le(qr)),p!==n)if(Pr.test(t.charAt(ge))?(A=t.charAt(ge),ge++):(A=n,0===me&&Le(qr)),A!==n)if(58===t.charCodeAt(ge)?(d=K,ge++):(d=n,0===me&&Le(Q)),d!==n)if(Pr.test(t.charAt(ge))?(g=t.charAt(ge),ge++):(g=n,0===me&&Le(qr)),g!==n)if(Pr.test(t.charAt(ge))?(v=t.charAt(ge),ge++):(v=n,0===me&&Le(qr)),v!==n){if(b=ge,58===t.charCodeAt(ge)?(y=K,ge++):(y=n,0===me&&Le(Q)),y!==n)if(Pr.test(t.charAt(ge))?(m=t.charAt(ge),ge++):(m=n,0===me&&Le(qr)),m!==n)if(Pr.test(t.charAt(ge))?(C=t.charAt(ge),ge++):(C=n,0===me&&Le(qr)),C!==n){if(w=ge,46===t.charCodeAt(ge)?(x=".",ge++):(x=n,0===me&&Le(Hr)),x!==n){if($=[],Pr.test(t.charAt(ge))?(E=t.charAt(ge),ge++):(E=n,0===me&&Le(qr)),E!==n)for(;E!==n;)$.push(E),Pr.test(t.charAt(ge))?(E=t.charAt(ge),ge++):(E=n,0===me&&Le(qr));else $=n;$!==n?w=x=[x,$]:(ge=w,w=n)}else ge=w,w=n;w===n&&(w=null),w!==n?b=y=[y,m,C,w]:(ge=b,b=n)}else ge=b,b=n;else ge=b,b=n;else ge=b,b=n;b===n&&(b=null),b!==n?(90===t.charCodeAt(ge)?(y="Z",ge++):(y=n,0===me&&Le(Jr)),y===n&&(y=ge,43===t.charCodeAt(ge)?(m="+",ge++):(m=n,0===me&&Le(Kr)),m===n&&(45===t.charCodeAt(ge)?(m=Ir,ge++):(m=n,0===me&&Le(Mr))),m!==n?(Pr.test(t.charAt(ge))?(C=t.charAt(ge),ge++):(C=n,0===me&&Le(qr)),C!==n?(Pr.test(t.charAt(ge))?(w=t.charAt(ge),ge++):(w=n,0===me&&Le(qr)),w!==n?(58===t.charCodeAt(ge)?(x=K,ge++):(x=n,0===me&&Le(Q)),x!==n?(Pr.test(t.charAt(ge))?($=t.charAt(ge),ge++):($=n,0===me&&Le(qr)),$!==n?(Pr.test(t.charAt(ge))?(E=t.charAt(ge),ge++):(E=n,0===me&&Le(qr)),E!==n?y=m=[m,C,w,x,$,E]:(ge=y,y=n)):(ge=y,y=n)):(ge=y,y=n)):(ge=y,y=n)):(ge=y,y=n)):(ge=y,y=n)),y===n&&(y=null),y!==n?l=h=[h,p,A,d,g,v,b,y]:(ge=l,l=n)):(ge=l,l=n)}else ge=l,l=n;else ge=l,l=n;else ge=l,l=n;else ge=l,l=n;else ge=l,l=n;else ge=l,l=n;l===n&&(l=null),l!==n?e=s=[s,a,u,o,c,i,f,l]:(ge=e,e=n)}else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;r=e!==n?t.substring(r,ge):e;return r}()),e!==n&&(r,e=xt(e)),(r=e)===n&&(r=ge,(e=gn())!==n&&(r,e=xt(e)),(r=e)===n&&(r=ge,e=function(){var r,e,s,a,u,o,c,i,f,l;r=ge,e=ge,s=ge,Qr.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(Vr));a===n&&(a=null);if(a!==n){if(u=[],Pr.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(qr)),o!==n)for(;o!==n;)u.push(o),Pr.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(qr));else u=n;if(u!==n){if(o=ge,46===t.charCodeAt(ge)?(c=Gr,ge++):(c=n,0===me&&Le(Hr)),c!==n){if(i=[],Pr.test(t.charAt(ge))?(f=t.charAt(ge),ge++):(f=n,0===me&&Le(qr)),f!==n)for(;f!==n;)i.push(f),Pr.test(t.charAt(ge))?(f=t.charAt(ge),ge++):(f=n,0===me&&Le(qr));else i=n;i!==n?o=c=[c,i]:(ge=o,o=n)}else ge=o,o=n;if(o===n&&(o=null),o!==n){if(c=ge,101===t.charCodeAt(ge)?(i="e",ge++):(i=n,0===me&&Le(Wr)),i!==n){if(f=[],Pr.test(t.charAt(ge))?(l=t.charAt(ge),ge++):(l=n,0===me&&Le(qr)),l!==n)for(;l!==n;)f.push(l),Pr.test(t.charAt(ge))?(l=t.charAt(ge),ge++):(l=n,0===me&&Le(qr));else f=n;f!==n?c=i=[i,f]:(ge=c,c=n)}else ge=c,c=n;c===n&&(c=null),c!==n?s=a=[a,u,o,c]:(ge=s,s=n)}else ge=s,s=n}else ge=s,s=n}else ge=s,s=n;e=s!==n?t.substring(e,ge):s;e!==n&&(r,e=On(e));return r=e}(),e!==n&&(r,e="number"==typeof(s=e)?{val:s}:{val:s,literal:"number"}),(r=e)===n&&(r=ge,(e=pn())!==n&&(r,e=xt(e)),r=e))),r}function Je(){var r,e,s,a,u,o;if(r=ge,e=ge,s=ge,123===t.charCodeAt(ge)?(a="{",ge++):(a=n,0===me&&Le($t)),a!==n){for(u=[],(o=Je())===n&&(Et.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(Lt)));o!==n;)u.push(o),(o=Je())===n&&(Et.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(Lt)));u!==n?(125===t.charCodeAt(ge)?(o="}",ge++):(o=n,0===me&&Le(St)),o!==n?s=a=[a,u,o]:(ge=s,s=n)):(ge=s,s=n)}else ge=s,s=n;return(e=s!==n?t.substring(e,ge):s)!==n&&(r,e=xt(e)),r=e}function Ke(){var r,e,s,a,u,o,c,i;if(r=ge,e=ge,s=ge,91===t.charCodeAt(ge)?(a=Bt,ge++):(a=n,0===me&&Le(Zt)),a!==n&&(u=wn())!==n?(93===t.charCodeAt(ge)?(o=zt,ge++):(o=n,0===me&&Le(Ot)),o!==n?s=a=[a,u,o]:(ge=s,s=n)):(ge=s,s=n),s===n)if(s=ge,91===t.charCodeAt(ge)?(a=Bt,ge++):(a=n,0===me&&Le(Zt)),a!==n)if((u=wn())!==n)if(123===t.charCodeAt(ge)?(o="{",ge++):(o=n,0===me&&Le($t)),o!==n){for(c=[],(i=Ke())===n&&(Tt.test(t.charAt(ge))?(i=t.charAt(ge),ge++):(i=n,0===me&&Le(_t)));i!==n;)c.push(i),(i=Ke())===n&&(Tt.test(t.charAt(ge))?(i=t.charAt(ge),ge++):(i=n,0===me&&Le(_t)));c!==n?(93===t.charCodeAt(ge)?(i=zt,ge++):(i=n,0===me&&Le(Ot)),i!==n?s=a=[a,u,o,c,i]:(ge=s,s=n)):(ge=s,s=n)}else ge=s,s=n;else ge=s,s=n;else ge=s,s=n;return(e=s!==n?t.substring(e,ge):s)!==n&&(r,e=xt(e)),r=e}function Qe(){var r,e,s,a,u,o,c;if(me++,r=ge,e=ge,s=[],st.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(at)),a!==n)for(;a!==n;)s.push(a),st.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(at));else s=n;if((e=s!==n?t.substring(e,ge):s)!==n)if((s=mn())!==n)if((a=Xe())!==n){for(u=[],o=ge,yn()!==n&&(c=Xe())!==n?(o,o=Rt(0,0,c)):(ge=o,o=n);o!==n;)u.push(o),o=ge,yn()!==n&&(c=Xe())!==n?(o,o=Rt(0,0,c)):(ge=o,o=n);u!==n&&(o=Cn())!==n?(r,r=e=function(t,r,e){if(En&&!(t.toLowerCase()in En.functions))throw Object.assign(new Error(`"${t}" is an unknown function in OData URL spec (strict mode)`),{statusCode:400});return{func:t.toLowerCase(),args:[r,...e]}}(e,a,u)):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;else ge=r,r=n;return me--,r===n&&(e=n,0===me&&Le(Ft)),r}function Ve(){var r,e;return r=ge,wn()!==n?("not"===t.substr(ge,3).toLowerCase()?(e=t.substr(ge,3),ge+=3):(e=n,0===me&&Le(It)),e!==n&&xn()!==n?(r,r="not"):(ge=r,r=n)):(ge=r,r=n),r}function We(){var r,e;return r=ge,xn()!==n?("and"===t.substr(ge,3).toLowerCase()?(e=t.substr(ge,3),ge+=3):(e=n,0===me&&Le(Mt)),e!==n&&xn()!==n?(r,r="and"):(ge=r,r=n)):(ge=r,r=n),r}function Ye(){var t,r;return t=ge,(r=xn())!==n&&(t,r="and"),t=r}function tn(){var r,e;return r=ge,xn()!==n?("or"===t.substr(ge,2).toLowerCase()?(e=t.substr(ge,2),ge+=2):(e=n,0===me&&Le(Xt)),e!==n&&xn()!==n?(r,r="or"):(ge=r,r=n)):(ge=r,r=n),r}function rn(){var r,e,s;return r=ge,t.substr(ge,9)===Gt?(e=Gt,ge+=9):(e=n,0===me&&Le(Ht)),e!==n?(s=function(){var t,r,e,s,a;if(t=ge,mn()!==n)if(wn()!==n)if((r=en())!==n){for(e=[],s=ge,wn()!==n&&yn()!==n&&wn()!==n&&(a=en())!==n?(s,s=v(0,a)):(ge=s,s=n);s!==n;)e.push(s),s=ge,wn()!==n&&yn()!==n&&wn()!==n&&(a=en())!==n?(s,s=v(0,a)):(ge=s,s=n);e!==n&&(s=wn())!==n&&Cn()!==n?(t,t=function(t,r){let e=Bn.apply;e.aggregate&&(Bn.apply={apply:e},e.groupBy&&(Bn.apply.groupBy=e.groupBy),e=Bn.apply),e.aggregate=[t,...r]}(r,e)):(ge=t,t=n)}else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;return t}(),s!==n?r=e=[e,s]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,7)===Jt?(e=Jt,ge+=7):(e=n,0===me&&Le(Kt)),e!==n?(s=function(){var t,r,e,s,a,u,o,c,i;if(t=ge,(r=mn())!==n)if((e=mn())!==n)if((s=on())!==n){for(a=[],u=ge,(o=yn())!==n&&(c=on())!==n?(u,u=o=v(0,c)):(ge=u,u=n);u!==n;)a.push(u),u=ge,(o=yn())!==n&&(c=on())!==n?(u,u=o=v(0,c)):(ge=u,u=n);a!==n?(u=ge,(o=Cn())!==n&&(u,o=function(t,r){let e=Bn.apply;(e.groupBy||e.where||e.search)&&(Bn.apply={apply:e},e=Bn.apply),e.groupBy=[t,...r]}(s,a)),(u=o)!==n?(o=ge,(c=yn())!==n&&(i=Ie())!==n?o=c=[c,i]:(ge=o,o=n),o===n&&(o=null),o!==n&&(c=Cn())!==n?t=r=[r,e,s,a,u,o,c]:(ge=t,t=n)):(ge=t,t=n)):(ge=t,t=n)}else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;return t}(),s!==n?r=e=[e,s]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,6)===Qt?(e=Qt,ge+=6):(e=n,0===me&&Le(Vt)),e!==n&&(s=cn())!==n?r=e=[e,s]:(ge=r,r=n),r===n&&(r=ge,t.substr(ge,6)===Wt?(e=Wt,ge+=6):(e=n,0===me&&Le(Yt)),e!==n&&(s=fn())!==n?r=e=[e,s]:(ge=r,r=n),r===n&&(r=ge,t.substr(ge,6)===tr?(e=tr,ge+=6):(e=n,0===me&&Le(rr)),e!==n?(s=function(){var t,r,e,s,a,u;t=ge,(r=mn())!==n&&(e=wn())!==n?(s=ge,(a=Re())!==n&&(s,a=function(t){if(!t)return;let r=Bn.apply;r.search&&(Bn.apply={apply:r},r=Bn.apply),r.search=t}(a)),(s=a)!==n&&(a=wn())!==n&&(u=Cn())!==n?t=r=[r,e,s,a,u]:(ge=t,t=n)):(ge=t,t=n);return t}(),s!==n?r=e=[e,s]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,6)===er?(e=er,ge+=6):(e=n,0===me&&Le(nr)),e!==n?(s=function(){var t,r,e,s,a,u,o,c,i,f;if(t=ge,(r=mn())!==n)if((e=wn())!==n)if((s=Ie())!==n){if(a=[],u=ge,(o=wn())!==n&&(c=yn())!==n&&(i=wn())!==n&&(f=Ie())!==n?u=o=[o,c,i,f]:(ge=u,u=n),u!==n)for(;u!==n;)a.push(u),u=ge,(o=wn())!==n&&(c=yn())!==n&&(i=wn())!==n&&(f=Ie())!==n?u=o=[o,c,i,f]:(ge=u,u=n);else a=n;a!==n&&(u=wn())!==n&&(o=Cn())!==n?t=r=[r,e,s,a,u,o]:(ge=t,t=n)}else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;return t}(),s!==n?r=e=[e,s]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,t.substr(ge,7)===sr?(e=sr,ge+=7):(e=n,0===me&&Le(ar)),e!==n?(s=function(){var t,r,e,s,a,u,o,c,i,f;if(t=ge,(r=mn())!==n)if((e=wn())!==n)if((s=ln())!==n){for(a=[],u=ge,(o=wn())!==n&&(c=yn())!==n&&(i=wn())!==n&&(f=ln())!==n?u=o=[o,c,i,f]:(ge=u,u=n);u!==n;)a.push(u),u=ge,(o=wn())!==n&&(c=yn())!==n&&(i=wn())!==n&&(f=ln())!==n?u=o=[o,c,i,f]:(ge=u,u=n);a!==n&&(u=wn())!==n&&(o=Cn())!==n?t=r=[r,e,s,a,u,o]:(ge=t,t=n)}else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;return t}(),s!==n?r=e=[e,s]:(ge=r,r=n)):(ge=r,r=n),r===n&&(r=ge,"topcount"===t.substr(ge,8).toLowerCase()?(e=t.substr(ge,8),ge+=8):(e=n,0===me&&Le(ur)),e===n&&("bottomcount"===t.substr(ge,11).toLowerCase()?(e=t.substr(ge,11),ge+=11):(e=n,0===me&&Le(or)),e===n&&("topsum"===t.substr(ge,6).toLowerCase()?(e=t.substr(ge,6),ge+=6):(e=n,0===me&&Le(cr)),e===n&&("bottomsum"===t.substr(ge,9).toLowerCase()?(e=t.substr(ge,9),ge+=9):(e=n,0===me&&Le(ir)),e===n&&("toppercent"===t.substr(ge,10).toLowerCase()?(e=t.substr(ge,10),ge+=10):(e=n,0===me&&Le(fr)),e===n&&("bottompercent"===t.substr(ge,13).toLowerCase()?(e=t.substr(ge,13),ge+=13):(e=n,0===me&&Le(lr))))))),e!==n?(s=function(){var t,r,e;t=ge,mn()!==n&&wn()!==n&&(r=Xe())!==n&&wn()!==n&&yn()!==n&&wn()!==n&&(e=Xe())!==n&&wn()!==n&&Cn()!==n?(t,t=[r,e]):(ge=t,t=n);return t}(),s!==n?(r,r=e=function(t,r){if(!{topcount:!0,bottomcount:!0,topsum:!1,bottomsum:!1,toppercent:!1,bottompercent:!1}[t=t.toLowerCase()])throw Object.assign(new Error(`Transformation "${t}" in $apply is not supported yet.`),{statusCode:501});(Bn.apply.aggregate||(Bn.apply.aggregate=[])).push({func:t,args:r})}(e,s)):(ge=r,r=n)):(ge=r,r=n),r===n&&(r=function(){var r;t.substr(ge,8)===Cr?(r=Cr,ge+=8):(r=n,0===me&&Le(wr));return r}())))))))),r}function en(){var r,e,s,a;return r=ge,e=ge,t.substr(ge,6)===f?(s=f,ge+=6):(s=n,0===me&&Le(l)),s!==n&&(a=un())!==n?(e,e=s={func:"count",args:[{val:1}],as:a}):(ge=e,e=n),e===n&&(e=nn()),e!==n&&(r,e=e),r=e}function nn(){var t,r,e,s,a;return t=ge,(r=Ge())!==n&&(e=sn())!==n?((s=an())===n&&(s=null),s!==n&&(a=un())!==n?(t,t=r={func:e,args:[r],as:a}):(ge=t,t=n)):(ge=t,t=n),t===n&&(t=ge,(r=dn())!==n&&(e=mn())!==n&&(s=nn())!==n&&(a=Cn())!==n?t=r=[r,e,s,a]:(ge=t,t=n)),t}function sn(){var r,e,s,a,u;if(r=ge,xn()!==n)if(t.substr(ge,4)===hr?(e=hr,ge+=4):(e=n,0===me&&Le(pr)),e!==n)if(xn()!==n){if(s=ge,a=[],st.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(at)),u!==n)for(;u!==n;)a.push(u),st.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(at));else a=n;(s=a!==n?t.substring(s,ge):a)!==n?(r,r=s.toLowerCase()):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;else ge=r,r=n;return r}function an(){var r,e,s,a,u,o,c;return r=ge,(e=xn())!==n?(t.substr(ge,4)===Ar?(s=Ar,ge+=4):(s=n,0===me&&Le(dr)),s!==n&&(a=xn())!==n&&(u=Ge())!==n&&(o=sn())!==n?((c=an())===n&&(c=null),c!==n?r=e=[e,s,a,u,o,c]:(ge=r,r=n)):(ge=r,r=n)):(ge=r,r=n),r}function un(){var r,e,s;return r=ge,xn()!==n?("as"===t.substr(ge,2)?(e="as",ge+=2):(e=n,0===me&&Le(gr)),e!==n&&xn()!==n&&(s=dn())!==n?(r,r=s):(ge=r,r=n)):(ge=r,r=n),r}function on(){var r,e;return r=ge,e=function(){var r,e,s,a,u,o,c,i,f,l,h;r=ge,e=ge,t.substr(ge,6)===vr?(s=vr,ge+=6):(s=n,0===me&&Le(br));if(s!==n)if((a=mn())!==n)if((u=wn())!==n)if(t.substr(ge,4)===yr?(o=yr,ge+=4):(o=n,0===me&&Le(mr)),o===n&&(o=Ge()),o!==n){if(c=[],i=ge,(f=wn())!==n&&(l=yn())!==n&&(h=Ge())!==n?i=f=[f,l,h]:(ge=i,i=n),i!==n)for(;i!==n;)c.push(i),i=ge,(f=wn())!==n&&(l=yn())!==n&&(h=Ge())!==n?i=f=[f,l,h]:(ge=i,i=n);else c=n;c!==n&&(i=wn())!==n&&(f=Cn())!==n?e=s=[s,a,u,o,c,i,f]:(ge=e,e=n)}else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;else ge=e,e=n;e!==n&&(r,e=function(t){const r=new Error("Rollup in groupby is not supported yet.");throw r.statusCode=501,r}());return r=e}(),e===n&&(e=Ge()),e!==n&&(r,e=e),r=e}function cn(){var t,r,e,s,a,u;return t=ge,(r=mn())!==n&&(e=wn())!==n?(s=ge,(a=ke())!==n&&(s,a=function(t){let r=Bn.apply;r.where&&(Bn.apply={apply:r},r=Bn.apply),r.where=t}(a)),(s=a)!==n&&(a=wn())!==n&&(u=Cn())!==n?t=r=[r,e,s,a,u]:(ge=t,t=n)):(ge=t,t=n),t}function fn(){var t,r,e,s,a,u,o,c,i,f,l,h,p,A;if(t=ge,(r=mn())!==n)if((e=wn())!==n)if((s=Ge())!==n)if((a=wn())!==n)if((u=yn())!==n)if((o=wn())!==n){if(c=ge,(i=fn())!==n){for(f=[],l=ge,(h=wn())!==n&&(p=yn())!==n&&(A=fn())!==n?l=h=[h,p,A]:(ge=l,l=n);l!==n;)f.push(l),l=ge,(h=wn())!==n&&(p=yn())!==n&&(A=fn())!==n?l=h=[h,p,A]:(ge=l,l=n);f!==n?c=i=[i,f]:(ge=c,c=n)}else ge=c,c=n;if(c===n)if(c=ge,(i=cn())!==n){for(f=[],l=ge,(h=wn())!==n&&(p=yn())!==n&&(A=fn())!==n?l=h=[h,p,A]:(ge=l,l=n);l!==n;)f.push(l),l=ge,(h=wn())!==n&&(p=yn())!==n&&(A=fn())!==n?l=h=[h,p,A]:(ge=l,l=n);f!==n?c=i=[i,f]:(ge=c,c=n)}else ge=c,c=n;c!==n&&(i=wn())!==n&&(f=Cn())!==n?t=r=[r,e,s,a,u,o,c,i,f]:(ge=t,t=n)}else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;else ge=t,t=n;return t}function ln(){var t,r,e;return t=ge,(r=Ne())!==n&&(e=un())!==n?t=r=[r,e]:(ge=t,t=n),t}function hn(){var r,e;return r=ge,t.substr(ge,4)===xr?(e=xr,ge+=4):(e=n,0===me&&Le($r)),e===n&&(t.substr(ge,5)===Er?(e=Er,ge+=5):(e=n,0===me&&Le(Lr))),e!==n&&(r,e="true"===e),r=e}function pn(){var r,e,s,a,u;if(me++,r=ge,39===t.charCodeAt(ge)?(e="'",ge++):(e=n,0===me&&Le(Br)),e!==n){for(s=ge,a=[],t.substr(ge,2)===Zr?(u=Zr,ge+=2):(u=n,0===me&&Le(zr)),u===n&&(Or.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(Tr)));u!==n;)a.push(u),t.substr(ge,2)===Zr?(u=Zr,ge+=2):(u=n,0===me&&Le(zr)),u===n&&(Or.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(Tr)));(s=a!==n?t.substring(s,ge):a)!==n?(39===t.charCodeAt(ge)?(a="'",ge++):(a=n,0===me&&Le(Br)),a!==n?(r,r=e=s.replace(/''/g,"'")):(ge=r,r=n)):(ge=r,r=n)}else ge=r,r=n;return me--,r===n&&(e=n,0===me&&Le(Sr)),r}function An(){var r,e,s,a,u,o;if(r=ge,e=ge,s=ge,Qr.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(Vr)),a===n&&(a=null),a!==n){if(u=[],Pr.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(qr)),o!==n)for(;o!==n;)u.push(o),Pr.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(qr));else u=n;u!==n?s=a=[a,u]:(ge=s,s=n)}else ge=s,s=n;return(e=s!==n?t.substring(e,ge):s)!==n&&(r,e=parseInt(e)),r=e}function dn(){var r,e,s,a,u,o,c,i;if(r=ge,e=ge,me++,s=hn(),me--,s===n?e=void 0:(ge=e,e=n),e!==n)if(s=ge,me++,a=gn(),me--,a===n?s=void 0:(ge=s,s=n),s!==n){if(a=ge,u=ge,Yr.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(te)),o!==n){for(c=[],re.test(t.charAt(ge))?(i=t.charAt(ge),ge++):(i=n,0===me&&Le(ee));i!==n;)c.push(i),re.test(t.charAt(ge))?(i=t.charAt(ge),ge++):(i=n,0===me&&Le(ee));c!==n?u=o=[o,c]:(ge=u,u=n)}else ge=u,u=n;(a=u!==n?t.substring(a,ge):u)!==n?(r,r=e=a):(ge=r,r=n)}else ge=r,r=n;else ge=r,r=n;return r}function gn(){var r,e,s,a,u,o,c,i,f,l,h,p,A,d;return r=ge,e=ge,(s=vn())!==n&&(a=vn())!==n?(45===t.charCodeAt(ge)?(u=Ir,ge++):(u=n,0===me&&Le(Mr)),u===n&&(u=null),u!==n&&(o=vn())!==n?(45===t.charCodeAt(ge)?(c=Ir,ge++):(c=n,0===me&&Le(Mr)),c===n&&(c=null),c!==n&&(i=vn())!==n?(45===t.charCodeAt(ge)?(f=Ir,ge++):(f=n,0===me&&Le(Mr)),f===n&&(f=null),f!==n&&(l=vn())!==n?(45===t.charCodeAt(ge)?(h=Ir,ge++):(h=n,0===me&&Le(Mr)),h===n&&(h=null),h!==n&&(p=vn())!==n&&(A=vn())!==n&&(d=vn())!==n?e=s=[s,a,u,o,c,i,f,l,h,p,A,d]:(ge=e,e=n)):(ge=e,e=n)):(ge=e,e=n)):(ge=e,e=n)):(ge=e,e=n),r=e!==n?t.substring(r,ge):e}function vn(){var r,e,s,a,u,o;return r=ge,e=ge,ne.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(se)),s!==n?(ne.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(se)),a!==n?(ne.test(t.charAt(ge))?(u=t.charAt(ge),ge++):(u=n,0===me&&Le(se)),u!==n?(ne.test(t.charAt(ge))?(o=t.charAt(ge),ge++):(o=n,0===me&&Le(se)),o!==n?e=s=[s,a,u,o]:(ge=e,e=n)):(ge=e,e=n)):(ge=e,e=n)):(ge=e,e=n),r=e!==n?t.substring(r,ge):e}function bn(){var r,e,s,a;if(r=ge,e=ge,s=[],ae.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(ue)),a!==n)for(;a!==n;)s.push(a),ae.test(t.charAt(ge))?(a=t.charAt(ge),ge++):(a=n,0===me&&Le(ue));else s=n;return(e=s!==n?t.substring(e,ge):s)!==n&&(r,e=xt(e)),r=e}function yn(){var r,e,s,a;return r=ge,(e=wn())!==n?(44===t.charCodeAt(ge)?(s=",",ge++):(s=n,0===me&&Le(ie)),s!==n&&(a=wn())!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n),r}function mn(){var r,e,s,a;return r=ge,(e=wn())!==n?(40===t.charCodeAt(ge)?(s="(",ge++):(s=n,0===me&&Le(fe)),s!==n&&(a=wn())!==n?r=e=[e,s,a]:(ge=r,r=n)):(ge=r,r=n),r}function Cn(){var r,e,s;return r=ge,(e=wn())!==n?(41===t.charCodeAt(ge)?(s=")",ge++):(s=n,0===me&&Le(le)),s!==n?r=e=[e,s]:(ge=r,r=n)):(ge=r,r=n),r}function wn(){var r,e,s;for(me++,r=ge,e=[],pe.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(Ae));s!==n;)e.push(s),pe.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(Ae));return r=e!==n?t.substring(r,ge):e,me--,r===n&&(e=n,0===me&&Le(he)),r}function xn(){var r,e,s;if(me++,r=ge,e=[],pe.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(Ae)),s!==n)for(;s!==n;)e.push(s),pe.test(t.charAt(ge))?(s=t.charAt(ge),ge++):(s=n,0===me&&Le(Ae));else e=n;return r=e!==n?t.substring(r,ge):e,me--,r===n&&(e=n,0===me&&Le(de)),r}const $n=Object.assign,{strict:En,minimal:Ln}=r,Sn=[];let Bn,Zn;const zn=["$value"],On=r.safeNumber||function(t){const r=Number(t);return Number.isSafeInteger(r)?r:t},Tn=t=>r=>t===r||t.as&&r.as&&t.as===r.as||r.as&&t.ref&&r.as===t.ref[t.ref.length-1]||t.ref&&r.ref&&t.ref.join("")===r.ref.join(""),_n=t=>r=>{if(Array.isArray(r))return r.map(_n(t));const e=r.ref&&t.find((t=>t.as&&t.func&&t.as===r.ref[0]));return e||r},Fn=t=>r=>Array.isArray(r)?r.map(Fn(t)):r.ref&&!t.find(Tn(r))?{val:null}:r,Rn=(t,r)=>{if(1===r.ref.length)t.find(Tn(r))||t.push(r);else{const e=r.ref.shift(),n=t.find((t=>t.ref&&t.ref[0]===e));if(n)Rn(n.expand,r);else{const n={ref:[e],expand:[]};Rn(n.expand,r),t.push(n)}}},jn=(t,r,e=!1)=>{if(!r)return;if(t.apply&&delete t.apply,(r.apply||r.where&&t.where||r.search&&t.search)&&(t.from={SELECT:{from:t.from}}),r.where&&(t.where?t.from.SELECT.where=r.where:t.where=r.where),r.search&&(t.search?t.from.SELECT.search=r.search:t.search=r.search),r.groupBy){t.groupBy=[];for(const e of r.groupBy)t.groupBy.find(Tn(e))||t.groupBy.push(e)}const n=[...t.groupBy||[],...r.aggregate||[]];n.length&&(t.columns=t.columns&&!e?t.columns.reduce(((t,r)=>{const e=n.find(Tn(r));return e&&t.push(e),t}),[]):n,t.where&&(t.where=t.where.map(_n(t.columns)),t.groupBy&&(t.having=t.where.map(Fn(t.groupBy)),delete t.where)),t.columns=t.columns.reduce(((t,r)=>(r.ref&&r.ref.length>1&&n.find(Tn(r))?Rn(t,{ref:[...r.ref]}):t.push(r),t)),[])),r.apply&&jn(t.from.SELECT,r.apply)},kn=t=>{Bn.limit&&Bn.limit.offset&&Bn.limit.offset.val&&(t+=Bn.limit.offset.val),(Bn.limit||(Bn.limit={})).offset={val:t}},Nn=(t,r)=>{for(const e of r)e.ref&&e.ref[0]===t&&e.ref.shift(),e.func&&Nn(t,e.args);return r};if((e=a())!==n&&ge===t.length)return e;throw e!==n&&ge<t.length&&Le({type:"end"}),Se(ye,be<t.length?t.charAt(be):null,be<t.length?Ee(be,be+1):Ee(be,be))}peg$subclass(peg$SyntaxError,Error),peg$SyntaxError.buildMessage=function(t,r){var e={literal:function(t){return'"'+s(t.text)+'"'},class:function(t){var r,e="";for(r=0;r<t.parts.length;r++)e+=t.parts[r]instanceof Array?a(t.parts[r][0])+"-"+a(t.parts[r][1]):a(t.parts[r]);return"["+(t.inverted?"^":"")+e+"]"},any:function(t){return"any character"},end:function(t){return"end of input"},other:function(t){return t.description}};function n(t){return t.charCodeAt(0).toString(16).toUpperCase()}function s(t){return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(t){return"\\x0"+n(t)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(t){return"\\x"+n(t)}))}function a(t){return t.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(t){return"\\x0"+n(t)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(t){return"\\x"+n(t)}))}return"Expected "+function(t){var r,n,s,a=new Array(t.length);for(r=0;r<t.length;r++)a[r]=(s=t[r],e[s.type](s));if(a.sort(),a.length>0){for(r=1,n=1;r<a.length;r++)a[r-1]!==a[r]&&(a[n]=a[r],n++);a.length=n}switch(a.length){case 1:return a[0];case 2:return a[0]+" or "+a[1];default:return a.slice(0,-1).join(", ")+", or "+a[a.length-1]}}(t)+" but "+function(t){return t?'"'+s(t)+'"':"end of input"}(r)+" found."},module.exports={SyntaxError:peg$SyntaxError,parse:peg$parse};
@@ -0,0 +1,57 @@
1
+ const getSafeNumber = str => {
2
+ const n = Number(str)
3
+ return Number.isSafeInteger(n) || String(n) === str ? n : str
4
+ }
5
+
6
+ const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
7
+ const _PT = ([hh, mm, ss]) => `PT${hh}H${mm}M${ss}S`
8
+ const _isTimestamp = val =>
9
+ /^\d+-\d\d-\d\d(T\d\d:\d\d(:\d\d(\.\d+)?)?(Z|([+-]{1}\d\d:\d\d))?)?$/.test(val) && !isNaN(Date.parse(val))
10
+
11
+ const formatVal = (val, element, csnTarget, kind) => {
12
+ if (val === null || val === 'null') return 'null'
13
+ if (typeof val === 'boolean') return val
14
+ if (typeof val === 'number') return getSafeNumber(val)
15
+ if (!csnTarget && typeof val === 'string' && UUID.test(val)) return kind === 'odata-v2' ? `guid'${val}'` : val
16
+ const { type } = (csnTarget && csnTarget.elements && csnTarget.elements[element]) || { type: undefined }
17
+
18
+ if (kind === 'odata-v2') {
19
+ switch (type) {
20
+ case 'cds.Binary':
21
+ case 'cds.LargeBinary':
22
+ return `binary'${val}'`
23
+ case 'cds.Date':
24
+ return `datetime'${val}T00:00:00'`
25
+ case 'cds.DateTime':
26
+ return `datetime'${val}'`
27
+ case 'cds.Time':
28
+ return `time'${_PT(val.split(':'))}'`
29
+ case 'cds.Timestamp':
30
+ return `datetimeoffset'${val}'`
31
+ case 'cds.UUID':
32
+ return `guid'${val}'`
33
+ default:
34
+ return `'${val}'`
35
+ }
36
+ } else {
37
+ switch (type) {
38
+ case 'cds.Decimal':
39
+ case 'cds.Integer64':
40
+ return getSafeNumber(val)
41
+ case 'cds.Boolean':
42
+ case 'cds.DateTime':
43
+ case 'cds.Date':
44
+ case 'cds.Timestamp':
45
+ case 'cds.Time':
46
+ case 'cds.UUID':
47
+ return val
48
+ default:
49
+ return _isTimestamp(val) ? val : `'${val}'` // Why are we checking strings for timestamps? --> expensive
50
+ }
51
+ }
52
+ }
53
+
54
+ module.exports = {
55
+ getSafeNumber,
56
+ formatVal
57
+ }
@@ -14,9 +14,6 @@ const operation = require('./middleware/operation')
14
14
 
15
15
  const error = require('./middleware/error')
16
16
 
17
- // REVISIT: _commit_attempted workaround to avoid double rollback leading to release error
18
- const _commit_attempted = Symbol()
19
-
20
17
  class RestAdapter extends express.Router {
21
18
  constructor(srv) {
22
19
  super()
@@ -69,7 +66,6 @@ class RestAdapter extends express.Router {
69
66
 
70
67
  // unfortunately, express doesn't catch async errors -> try catch needed
71
68
  try {
72
- req._tx[_commit_attempted] = true
73
69
  await req._tx.commit(result)
74
70
  } catch (e) {
75
71
  return next(e)
@@ -85,8 +81,8 @@ class RestAdapter extends express.Router {
85
81
  this.use('/', (err, req, res, next) => {
86
82
  // request may fail during processing or during commit -> both caught here
87
83
 
88
- // ignore rollback error, which should never happen
89
- if (req._tx && !req._tx[_commit_attempted]) req._tx.rollback(err).catch(() => {})
84
+ // REVISIT: rollback needed if error occured before commit attempted -> how to distinguish?
85
+ if (req._tx) req._tx.rollback(err).catch(() => {})
90
86
 
91
87
  next(err)
92
88
  })
@@ -1,5 +1,3 @@
1
- const cds = require('../../_runtime/cds')
2
-
3
1
  const { deepCopyObject } = require('../../_runtime/common/utils/copy')
4
2
  const { checkKeys, checkStatic } = require('../../_runtime/cds-services/util/assert')
5
3
  const { MULTIPLE_ERRORS } = require('../../_runtime/common/error/constants')
@@ -29,11 +27,8 @@ const _getDeepCopy = (data, definition, model, validations, skipKeys) => {
29
27
  for (const k in data) {
30
28
  const element = (definition.elements && definition.elements[k]) || (definition.params && definition.params[k])
31
29
  if (!element) {
32
- const { additional_properties } = cds.env.features
33
- if (additional_properties === 'ignore' || !additional_properties) {
30
+ if (!definition['@open']) {
34
31
  // ignore input (the default)
35
- } else if (additional_properties === 'error') {
36
- validations.push({ message: `Unknown property "${k}"`, code: 400 })
37
32
  } else {
38
33
  d[k] = data[k] && typeof data[k] === 'object' ? deepCopyObject(data[k]) : data[k]
39
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap/cds",
3
- "version": "5.6.3",
3
+ "version": "5.7.3",
4
4
  "description": "SAP Cloud Application Programming Model - CDS for Node.js",
5
5
  "homepage": "https://cap.cloud.sap/",
6
6
  "keywords": [
@@ -19,6 +19,7 @@
19
19
  "lib/",
20
20
  "libx/",
21
21
  "tasks/",
22
+ "srv/",
22
23
  "_i18n/",
23
24
  "server.js",
24
25
  "common.cds",
@@ -40,8 +41,8 @@
40
41
  }
41
42
  },
42
43
  "lint-staged": {
43
- "libx/odata/odata2cqn/grammar.pegjs": [
44
- "npm run pegjs:odata2cqn && git add libx/odata/odata2cqn/parser.js"
44
+ "libx/odata/grammar.pegjs": [
45
+ "npm run pegjs:odata2cqn && git add libx/odata/parser.js"
45
46
  ],
46
47
  "{libx,tests/_runtime}/**/*.js": [
47
48
  "npx prettier --write"
package/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  const express = require('express')
2
- const cds = require('./lib')
2
+ const cds = require('./lib'), { unfold_csn: cds_localized } = cds.compile._localized
3
3
 
4
4
  /**
5
5
  * Standard express.js bootstrapping, constructing an express `application`
@@ -44,12 +44,11 @@ module.exports = async function cds_server (options, o = { ...options, __proto__
44
44
  if (cds.requires.extensibility) await require('./libx/_runtime/fiori/uiflex')() // REVISIT: later this should be a ext umbrella service
45
45
 
46
46
  // load specified models or all in project
47
- const csn = await cds.load (o.from||'*', {mocked:o.mocked})
48
- const m = cds.linked(csn).minified()
49
- cds.model = o.from = cds.linked (cds.compile.for.odata(m))
47
+ const csn = await cds.load(o.from||'*',o) .then (cds.minify)
48
+ cds.model = o.from = cds_localized(cds.linked(cds.compile.for.odata(csn)))
50
49
 
51
50
  // connect to essential framework services if required
52
- const _init = o.in_memory && (db => cds.deploy(m).to(db,o))
51
+ const _init = o.in_memory && (db => cds.deploy(csn).to(db,o))
53
52
  if (cds.requires.db) cds.db = await cds.connect.to ('db') .then (_init)
54
53
  if (cds.requires.messaging) await cds.connect.to ('messaging')
55
54
  if (cds.requires.multitenancy) await cds.mtx.in (app)
@@ -0,0 +1,87 @@
1
+ service AuditLogService {
2
+
3
+ // SEC-254: Log read access to sensitive personal data
4
+ event dataAccessLog {
5
+ accesses : array of Access;
6
+ // accessFilters : array of KeyValuePair;
7
+ };
8
+
9
+ // SEC-265: Log changes to personal data
10
+ event dataModificationLog : {
11
+ modifications : array of DataModification;
12
+ };
13
+
14
+ // config change
15
+ event configChangeLog : {
16
+ action : String @assert.range enum {
17
+ Create;
18
+ Update;
19
+ Delete
20
+ };
21
+ // success : Boolean;
22
+ configurations : array of ConfigChange;
23
+ };
24
+
25
+ // security message
26
+ event securityLog : {
27
+ action : String;
28
+ data : String;
29
+ };
30
+
31
+ }
32
+
33
+ // types
34
+
35
+ define type KeyValuePair {
36
+ keyName : String;
37
+ value : String;
38
+ };
39
+
40
+ define type DataObject {
41
+ type : String;
42
+ id : array of KeyValuePair;
43
+ };
44
+
45
+ define type DataSubject {
46
+ type : String;
47
+ id : array of KeyValuePair;
48
+ role : String;
49
+ };
50
+
51
+ define type Attribute {
52
+ name : String;
53
+ };
54
+
55
+ define type Attachment {
56
+ id : String;
57
+ name : String;
58
+ };
59
+
60
+ define type Access {
61
+ dataObject : DataObject;
62
+ dataSubject : DataSubject;
63
+ attributes : array of Attribute;
64
+ attachments : array of Attachment;
65
+ };
66
+
67
+ define type ChangedAttribute {
68
+ name : String;
69
+ oldValue : String;
70
+ newValue : String;
71
+ };
72
+
73
+ define type DataModification {
74
+ dataObject : DataObject;
75
+ dataSubject : DataSubject;
76
+ action : String @assert.range enum {
77
+ Create;
78
+ Update;
79
+ Delete;
80
+ };
81
+ attributes : array of ChangedAttribute;
82
+ }
83
+
84
+ define type ConfigChange {
85
+ dataObject : DataObject;
86
+ attributes : array of ChangedAttribute;
87
+ };
package/srv/flex.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('../libx/_runtime/fiori/uiflex/service')
package/srv/outbox.cds ADDED
@@ -0,0 +1,11 @@
1
+ using cuid from '@sap/cds/common';
2
+
3
+ namespace cds.outbox;
4
+
5
+ entity Messages : cuid {
6
+ timestamp: Timestamp;
7
+ target: String;
8
+ msg: LargeString;
9
+ attempts: Integer default 0;
10
+ partition: Integer default 0;
11
+ }
package/srv/outbox.js ADDED
File without changes
@@ -1,104 +0,0 @@
1
- /* istanbul ignore file */
2
- // REVISIT: remove istanbul ignore once re-enabled
3
-
4
- const cds = require('../../../cds')
5
-
6
- const { performance, PerformanceObserver } = require('perf_hooks')
7
-
8
- const _addDurationToRequest = (req, splitName, duration) => {
9
- if (splitName[2] === 'Total') {
10
- req.performanceMeasurement.results.total = duration
11
- } else if (splitName[splitName.length - 2] === 'SQL') {
12
- req.performanceMeasurement.results.db += duration
13
- } else if (splitName[splitName.length - 1] === 'ODataIn') {
14
- req.performanceMeasurement.results.ODataIn = duration
15
- } else if (splitName[splitName.length - 1] === 'default') {
16
- req.performanceMeasurement.results.defaulthandler += duration
17
- } else if (splitName[splitName.length - 1] === 'custom') {
18
- req.performanceMeasurement.results.customhandler += duration
19
- }
20
- }
21
-
22
- const _clearMeasuresAndMarksOfRequest = req => {
23
- for (const mark of req.performanceMeasurement.marks) {
24
- performance.clearMarks(mark)
25
- }
26
-
27
- if (performance.clearMeasures) {
28
- for (const measure of req.performanceMeasurement.measures) {
29
- performance.clearMeasures(measure)
30
- }
31
- }
32
- }
33
-
34
- const _observerCallback = req => items => {
35
- const entry = items.getEntries()[0]
36
- const splitName = entry.name.split(' ')
37
-
38
- if (splitName[0] === req.performanceMeasurement.uuid) {
39
- if (entry.entryType === 'mark') {
40
- req.performanceMeasurement.marks.push(entry.name)
41
- } else if (entry.entryType === 'measure') {
42
- req.performanceMeasurement.measures.push(entry.name)
43
- _addDurationToRequest(req, splitName, entry.duration)
44
- }
45
- }
46
- }
47
-
48
- const _statisticsRequested = req =>
49
- (req.query && req.query['sap-statistics'] === 'true') ||
50
- (req.headers && req.headers['sap-statistics'] === 'true' && (!req.query || !req.query['sap-statistics']))
51
-
52
- const measurePerformance = (req, res) => {
53
- if (_statisticsRequested(req)) {
54
- const uuid = cds.utils.uuid()
55
- const startMark = `${uuid} Start`
56
- const endMark = `${uuid} End`
57
-
58
- req.performanceMeasurement = {
59
- uuid,
60
- performance,
61
- sqlId: 0,
62
- results: { total: 0.0, db: 0.0, ODataIn: 0.0, defaulthandler: 0.0, customhandler: 0.0 },
63
- marks: [],
64
- measures: []
65
- }
66
- req.performanceMeasurement.observer = new PerformanceObserver(_observerCallback(req))
67
- req.performanceMeasurement.observer.observe({ entryTypes: ['measure', 'mark'] })
68
-
69
- const includeStatusHeader = originalFn =>
70
- function (...args) {
71
- if (!res.headersSent) {
72
- // avoid ERR_HTTP_HEADERS_SENT in case res.write was used before res.end
73
- performance.mark(endMark)
74
- performance.measure(`${uuid} 0 Total`, startMark, endMark)
75
-
76
- _clearMeasuresAndMarksOfRequest(req)
77
-
78
- req.performanceMeasurement.observer.disconnect()
79
-
80
- const statusCode = res.statusCode && res.statusCode.toString()
81
-
82
- if (!statusCode.startsWith('4') && !statusCode.startsWith('5')) {
83
- const stats = `total=${req.performanceMeasurement.results.total.toFixed(2)}`
84
- // ,defaulthandler=${req.performanceMeasurement.results.defaulthandler.toFixed(2)}
85
- // ,customhandler=${req.performanceMeasurement.results.customhandler.toFixed(2)}
86
- // ,db=${req.performanceMeasurement.results.db.toFixed(2)}`
87
- res.setHeader('sap-statistics', stats)
88
- }
89
- }
90
-
91
- originalFn.call(this, ...args)
92
- }
93
-
94
- // if res.write is used e.g. by odata-server, no headers can be set afterwards
95
- const originalWrite = res.write
96
- res.write = includeStatusHeader(originalWrite)
97
- const originalEnd = res.end
98
- res.end = includeStatusHeader(originalEnd)
99
-
100
- performance.mark(startMark)
101
- }
102
- }
103
-
104
- module.exports = measurePerformance
@@ -1,33 +0,0 @@
1
- const measurePerformance = require('./performance')
2
-
3
- let dynatrace
4
- try {
5
- const sdk = require('@dynatrace/oneagent-sdk')
6
- const api = sdk.createInstance()
7
- dynatrace = {
8
- sdk,
9
- api
10
- }
11
- } catch (_) {
12
- // ignore
13
- }
14
-
15
- const sapStatistics = (req, res, next) => {
16
- measurePerformance(req, res)
17
- next()
18
- }
19
-
20
- const useDynatrace = (req, res, next) => {
21
- req.dynatrace = dynatrace
22
- next()
23
- }
24
-
25
- const performanceMeasurement = app => {
26
- app.use(sapStatistics)
27
-
28
- if (dynatrace) {
29
- app.use(useDynatrace)
30
- }
31
- }
32
-
33
- module.exports = performanceMeasurement
@@ -1,3 +0,0 @@
1
- const parser = require('./parser')
2
-
3
- module.exports = parser.parse
@@ -1 +0,0 @@
1
- "use strict";function peg$subclass(t,r){function e(){this.constructor=t}e.prototype=r.prototype,t.prototype=new e}function peg$SyntaxError(t,r,e,n){this.message=t,this.expected=r,this.found=e,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,peg$SyntaxError)}function peg$parse(t,r){r=void 0!==r?r:{};var e,n={},s={ODataRelativeURI:we},u=we,a="/",c=ve("/",!1),o=ve("?",!1),i=ve("&",!1),f="$count",l=ve("$count",!1),h="$ref",p=ve("$ref",!1),A="$value",d=ve("$value",!1),g=ve("=",!1),v="$select=",b=ve("$select=",!1),m="$expand=",x=ve("$expand=",!1),C="$filter=",y=ve("$filter=",!1),$="$orderby=",w=ve("$orderby=",!1),E="$top=",S=ve("$top=",!1),z="$skip=",Z=ve("$skip=",!1),j="$search=",O=ve("$search=",!1),B="$count=",R=ve("$count=",!1),F="$apply=",T=ve("$apply=",!1),L=ve("*",!1),N=ve(";",!1),k=function(t){return t?[t]:[]},q=function(t,r){t.push({xpr:r})},I=function(t,r){t.push({val:r})},_=function(t,r,e){t.push(r,...e)},D=function(t,r){t.push(r)},U=function(t,r,e){t.push(r,...e)},M=":",P=ve(":",!1),J="any",G=ve("any",!1),H="all",K=ve("all",!1),Q=ve("asc",!1),V="desc",W=ve("desc",!1),X=/^[a-zA-Z]/,Y=be([["a","z"],["A","Z"]],!1,!1),tt=/^[a-zA-Z0-9\-]/,rt=be([["a","z"],["A","Z"],["0","9"],"-"],!1,!1),et=/^[^&]/,nt=be(["&"],!0,!1),st=me("a comparison"),ut=ve("eq",!1),at=ve("ne",!1),ct=ve("lt",!1),ot=ve("gt",!1),it=ve("le",!1),ft=ve("ge",!1),lt=(ve("add",!1),ve("sub",!1),ve("mul",!1),ve("div",!1),ve("mod",!1),me("an operand")),ht=me("a reference"),pt=function(t,r){return r},At=function(t){return{val:t}},dt=ve("{",!1),gt=/^[^}]/,vt=be(["}"],!0,!1),bt=ve("}",!1),mt="[",xt=ve("[",!1),Ct="]",yt=ve("]",!1),$t=/^[^\]]/,wt=be(["]"],!0,!1),Et=me("a function call"),St=/^[a-z]/,zt=be([["a","z"]],!1,!1),Zt=function(t,r,e){return e},jt=me("a boolean function"),Ot="contains",Bt=ve("contains",!1),Rt="endswith",Ft=ve("endswith",!1),Tt="startswith",Lt=ve("startswith",!1),Nt=ve("NOT",!0),kt=ve("AND",!0),qt=ve("OR",!0),It="aggregate",_t=ve("aggregate",!1),Dt="groupby",Ut=ve("groupby",!1),Mt="filter",Pt=ve("filter",!1),Jt="expand",Gt=ve("expand",!1),Ht="search",Kt=ve("search",!1),Qt="concat",Vt=ve("concat",!1),Wt="compute",Xt=ve("compute",!1),Yt="bottompercent",tr=ve("bottompercent",!1),rr="bottomsum",er=ve("bottomsum",!1),nr="toppercent",sr=ve("toppercent",!1),ur="topsum",ar=ve("topsum",!1),cr="with",or=ve("with",!1),ir="from",fr=ve("from",!1),lr=ve("as",!1),hr="rollup",pr=ve("rollup",!1),Ar="$all",dr=ve("$all",!1),gr="topcount",vr=ve("topcount",!1),br="bottomcount",mr=ve("bottomcount",!1),xr="identity",Cr=ve("identity",!1),yr="true",$r=ve("true",!1),wr="false",Er=ve("false",!1),Sr=me("Edm.String"),zr=ve("'",!1),Zr="''",jr=ve("''",!1),Or=/^[^']/,Br=be(["'"],!0,!1),Rr='"',Fr=ve('"',!1),Tr='\\"',Lr=ve('\\"',!1),Nr=/^[^"]/,kr=be(['"'],!0,!1),qr=/^[a-zA-Z0-9.+\-]/,Ir=be([["a","z"],["A","Z"],["0","9"],".","+","-"],!1,!1),_r=/^[0-9]/,Dr=be([["0","9"]],!1,!1),Ur="-",Mr=ve("-",!1),Pr=ve("T",!1),Jr=ve(".",!1),Gr=ve("Z",!1),Hr=ve("+",!1),Kr=/^[+\-]/,Qr=be(["+","-"],!1,!1),Vr=ve("e",!1),Wr=/^[_a-zA-Z]/,Xr=be(["_",["a","z"],["A","Z"]],!1,!1),Yr=/^[_a-zA-Z0-9"."]/,te=be(["_",["a","z"],["A","Z"],["0","9"],'"',".",'"'],!1,!1),re=/^[0-9a-zA-Z]/,ee=be([["0","9"],["a","z"],["A","Z"]],!1,!1),ne=ve(",",!1),se=ve("(",!1),ue=ve(")",!1),ae=me("optional whitespaces"),ce=/^[ \t\n]/,oe=be([" ","\t","\n"],!1,!1),ie=me("mandatory whitespaces"),fe=0,le=0,he=[{line:1,column:1}],pe=0,Ae=[],de=0;if("startRule"in r){if(!(r.startRule in s))throw new Error("Can't start parsing from rule \""+r.startRule+'".');u=s[r.startRule]}function ge(t,r){throw function(t,r){return new peg$SyntaxError(t,null,null,r)}(t,r=void 0!==r?r:Ce(le,fe))}function ve(t,r){return{type:"literal",text:t,ignoreCase:r}}function be(t,r,e){return{type:"class",parts:t,inverted:r,ignoreCase:e}}function me(t){return{type:"other",description:t}}function xe(r){var e,n=he[r];if(n)return n;for(e=r-1;!he[e];)e--;for(n={line:(n=he[e]).line,column:n.column};e<r;)10===t.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return he[r]=n,n}function Ce(t,r){var e=xe(t),n=xe(r);return{start:{offset:t,line:e.line,column:e.column},end:{offset:r,line:n.line,column:n.column}}}function ye(t){fe<pe||(fe>pe&&(pe=fe,Ae=[]),Ae.push(t))}function $e(t,r,e){return new peg$SyntaxError(peg$SyntaxError.buildMessage(t,r),t,r,e)}function we(){var r,e,s,u,f,l,h,p,A,d,g,v,b,m;if(r=fe,47===t.charCodeAt(fe)?(e=a,fe++):(e=n,0===de&&ye(c)),e===n&&(e=null),e!==n)if(s=fe,(u=Ee())!==n&&(le=s,u=void(En=u)),(s=u)!==n){if(u=fe,(f=bn())!==n)if(63===t.charCodeAt(fe)?(l="?",fe++):(l=n,0===de&&ye(o)),l!==n)if((h=bn())!==n)if((p=ze())!==n){for(A=[],d=fe,(g=bn())!==n?(38===t.charCodeAt(fe)?(v="&",fe++):(v=n,0===de&&ye(i)),v!==n&&(b=bn())!==n&&(m=ze())!==n?d=g=[g,v,b,m]:(fe=d,d=n)):(fe=d,d=n);d!==n;)A.push(d),d=fe,(g=bn())!==n?(38===t.charCodeAt(fe)?(v="&",fe++):(v=n,0===de&&ye(i)),v!==n&&(b=bn())!==n&&(m=ze())!==n?d=g=[g,v,b,m]:(fe=d,d=n)):(fe=d,d=n);A!==n?u=f=[f,l,h,p,A]:(fe=u,u=n)}else fe=u,u=n;else fe=u,u=n;else fe=u,u=n;else fe=u,u=n;u===n&&(u=null),u!==n&&(f=bn())!==n?(le=r,r=e=function(){if(Sn)return En.columns=[{args:[{val:1}],as:"$count",func:"count"}],delete En.expand,delete En.limit,delete En.orderBy,{SELECT:En};if(En.expand){En.columns||(En.columns=["*"]);for(const t of En.expand){const r=En.columns.findIndex(Bn(t));r>-1&&En.columns.splice(r,1),En.columns.push(t)}delete En.expand}return En=On(En),{SELECT:En}}()):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;return r}function Ee(){var r,e,s,u,o,i,g;return r=fe,t.substr(fe,6)===f?(e=f,fe+=6):(e=n,0===de&&ye(l)),e!==n&&(le=r,e=void(Sn=!0)),(r=e)===n&&(r=fe,e=fe,t.substr(fe,4)===h?(s=h,fe+=4):(s=n,0===de&&ye(p)),s===n&&(t.substr(fe,6)===A?(s=A,fe+=6):(s=n,0===de&&ye(d))),(e=s!==n?t.substring(e,fe):s)!==n&&(le=r,g=e,e=!zn.includes(g)&&{from:{ref:[g]}}),(r=e)===n&&(r=fe,(e=pn())===n&&(e=Ue()),e!==n?(s=fe,(u=gn())!==n&&(o=vn())!==n?s=u=[u,o]:(fe=s,s=n),s===n&&(s=fe,(u=gn())!==n&&(o=Se())!==n&&(i=vn())!==n?s=u=[u,o,i]:(fe=s,s=n)),s===n&&(s=null),s!==n?(u=fe,47===t.charCodeAt(fe)?(o=a,fe++):(o=n,0===de&&ye(c)),o!==n&&(i=Ee())!==n?(le=u,u=o=i):(fe=u,u=n),u===n&&(u=null),u!==n?(le=r,r=e=function(t,r,e){const n=[r?r.length>2?{id:t,where:r[1].map((t=>t.val&&t.val.match&&t.val.match(/^"(.*)"$/)?{val:t.val.match(/^"(.*)"$/)[1]}:t))}:{id:t,where:[]}:$n?`${Object.prototype.hasOwnProperty.call(t,"val")?t.val:t}`:t];if(e&&e.from){const t=e.from.ref;Object.prototype.hasOwnProperty.call(t[0],"val")&&(n[n.length-1]={id:n[n.length-1],where:[t.shift()]}),n.push(...t)}const s={from:{ref:n}};return e&&e.columns&&(s.columns=e.columns),s}(e,s,u)):(fe=r,r=n)):(fe=r,r=n)):(fe=r,r=n))),r}function Se(){var r,e,s,u,a,c,o;return r=fe,(e=Ue())!==n&&(le=r,e=[e]),(r=e)===n&&(r=fe,(e=De())!==n&&bn()!==n?(61===t.charCodeAt(fe)?(s="=",fe++):(s=n,0===de&&ye(g)),s!==n&&bn()!==n?((u=Ue())===n&&(u=fe,(a=fn())!==n&&(le=u,a={val:a}),u=a),u!==n?(a=fe,(c=dn())!==n&&(o=Se())!==n?a=c=[c,o]:(fe=a,a=n),a===n&&(a=null),a!==n?(le=r,e=function(t,r,e){const n=[t,"=",r];return e&&n.push("and",...e[1]),n}(e,u,a),r=e):(fe=r,r=n)):(fe=r,r=n)):(fe=r,r=n)):(fe=r,r=n)),r}function ze(){var r,e,s,u,a,c,o,i;if(r=fe,t.substr(fe,8)===v?(e=v,fe+=8):(e=n,0===de&&ye(b)),e!==n)if((s=bn())!==n)if((u=Ze())!==n){for(a=[],c=fe,(o=dn())!==n&&(i=Ze())!==n?c=o=[o,i]:(fe=c,c=n);c!==n;)a.push(c),c=fe,(o=dn())!==n&&(i=Ze())!==n?c=o=[o,i]:(fe=c,c=n);a!==n?r=e=[e,s,u,a]:(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;else fe=r,r=n;if(r===n){if(r=fe,t.substr(fe,8)===m?(e=m,fe+=8):(e=n,0===de&&ye(x)),e!==n)if((s=bn())!==n)if((u=je())!==n){for(a=[],c=fe,(o=dn())!==n&&(i=je())!==n?c=o=[o,i]:(fe=c,c=n);c!==n;)a.push(c),c=fe,(o=dn())!==n&&(i=je())!==n?c=o=[o,i]:(fe=c,c=n);a!==n?r=e=[e,s,u,a]:(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;else fe=r,r=n;if(r===n&&(r=fe,t.substr(fe,8)===C?(e=C,fe+=8):(e=n,0===de&&ye(y)),e!==n&&(s=bn())!==n&&(u=Re())!==n?r=e=[e,s,u]:(fe=r,r=n),r===n)){if(r=fe,t.substr(fe,9)===$?(e=$,fe+=9):(e=n,0===de&&ye(w)),e!==n)if((s=bn())!==n)if((u=ke())!==n){for(a=[],c=fe,(o=dn())!==n&&(i=ke())!==n?c=o=[o,i]:(fe=c,c=n);c!==n;)a.push(c),c=fe,(o=dn())!==n&&(i=ke())!==n?c=o=[o,i]:(fe=c,c=n);a!==n?r=e=[e,s,u,a]:(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;else fe=r,r=n;r===n&&(r=fe,t.substr(fe,5)===E?(e=E,fe+=5):(e=n,0===de&&ye(S)),e!==n&&(s=bn())!==n?(u=function(){var t,r;t=fe,(r=hn())!==n&&(le=t,e=r,r=void((En.limit||(En.limit={})).rows={val:e}));var e;return t=r}(),u!==n?r=e=[e,s,u]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,6)===z?(e=z,fe+=6):(e=n,0===de&&ye(Z)),e!==n&&(s=bn())!==n?(u=function(){var t,r;t=fe,(r=hn())!==n&&(le=t,e=r,r=void((En.limit||(En.limit={})).offset={val:e}));var e;return t=r}(),u!==n?r=e=[e,s,u]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,8)===j?(e=j,fe+=8):(e=n,0===de&&ye(O)),e!==n&&(s=bn())!==n&&(u=Oe())!==n?r=e=[e,s,u]:(fe=r,r=n),r===n&&(r=fe,t.substr(fe,7)===B?(e=B,fe+=7):(e=n,0===de&&ye(R)),e!==n&&(s=bn())!==n?(u=function(){var t,r;t=fe,(r=cn())!==n&&(le=t,r=void(r&&(En.count=!0)));return t=r}(),u!==n?r=e=[e,s,u]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,7)===F?(e=F,fe+=7):(e=n,0===de&&ye(T)),e!==n&&(s=bn())!==n&&(u=qe())!==n?r=e=[e,s,u]:(fe=r,r=n),r===n&&(r=function(){var r,e,s,u,a,c;r=fe,X.test(t.charAt(fe))?(e=t.charAt(fe),fe++):(e=n,0===de&&ye(Y));if(e!==n){for(s=[],tt.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(rt));u!==n;)s.push(u),tt.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(rt));if(s!==n)if(61===t.charCodeAt(fe)?(u="=",fe++):(u=n,0===de&&ye(g)),u!==n){for(a=[],et.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(nt));c!==n;)a.push(c),et.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(nt));a!==n?r=e=[e,s,u,a]:(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n}else fe=r,r=n;return r}()))))))}}return r}function Ze(){var r,e,s;return r=fe,42===t.charCodeAt(fe)?(e="*",fe++):(e=n,0===de&&ye(L)),e===n&&(e=De()),e!==n&&(le=r,s=e,En.columns=Array.isArray(En.columns)?En.columns:[],En.columns.find(Bn(s))||En.columns.push(s),e=s),r=e}function je(){var r,e,s,u,a,c,o,i,f,l,h;if(r=fe,e=fe,42===t.charCodeAt(fe)?(s="*",fe++):(s=n,0===de&&ye(L)),s===n&&(s=De()),s!==n&&(le=e,s=function(t){const r="*"===t?{}:t;return r.expand="*",Array.isArray(En.expand)||(En.expand=[]),En.expand.find(Bn(r))||En.expand.push(r),r}(s)),(e=s)!==n){if(s=fe,u=fe,(a=gn())!==n&&(le=u,wn.push(En),En=En.expand[En.expand.length-1],a=void(En.expand="*")),(u=a)!==n){for(a=fe,c=[],o=fe,(i=bn())!==n?(59===t.charCodeAt(fe)?(f=";",fe++):(f=n,0===de&&ye(N)),f===n&&(f=null),f!==n&&(l=bn())!==n&&(h=ze())!==n?o=i=[i,f,l,h]:(fe=o,o=n)):(fe=o,o=n);o!==n;)c.push(o),o=fe,(i=bn())!==n?(59===t.charCodeAt(fe)?(f=";",fe++):(f=n,0===de&&ye(N)),f===n&&(f=null),f!==n&&(l=bn())!==n&&(h=ze())!==n?o=i=[i,f,l,h]:(fe=o,o=n)):(fe=o,o=n);c!==n&&(le=a,c=function(t){if(En.columns){"*"===En.expand&&(En.expand=[]);for(const t of En.columns)En.expand.find(Bn(t))||En.expand.push(t);delete En.columns}else Array.isArray(En.expand)&&-1===En.expand.indexOf("*")&&En.expand.unshift("*")}()),(a=c)!==n?(c=fe,(o=vn())!==n&&(le=c,o=void(En=wn.pop())),(c=o)!==n?s=u=[u,a,c]:(fe=s,s=n)):(fe=s,s=n)}else fe=s,s=n;s===n&&(s=null),s!==n?(u=fe,(a=dn())!==n&&(c=je())!==n?u=a=[a,c]:(fe=u,u=n),u===n&&(u=null),u!==n?r=e=[e,s,u]:(fe=r,r=n)):(fe=r,r=n)}else fe=r,r=n;return r}function Oe(){var t,r,e;return t=fe,(r=Be())!==n&&(le=t,e=r,r=void(En.search=e)),t=r}function Be(){var r,e,s,u,a,c,o;if(r=fe,e=fe,(s=Ge())===n&&(s=null),s!==n&&(le=e,s=k(s)),(e=s)!==n)if(s=fe,(u=gn())!==n&&(a=Be())!==n&&(c=vn())!==n?(le=s,s=u=q(e,a)):(fe=s,s=n),s===n&&(s=fe,u=function(){var r,e,s,u,a;r=fe,34===t.charCodeAt(fe)?(e=Rr,fe++):(e=n,0===de&&ye(Fr));if(e!==n){for(s=fe,u=[],t.substr(fe,2)===Tr?(a=Tr,fe+=2):(a=n,0===de&&ye(Lr)),a===n&&(Nr.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(kr)));a!==n;)u.push(a),t.substr(fe,2)===Tr?(a=Tr,fe+=2):(a=n,0===de&&ye(Lr)),a===n&&(Nr.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(kr)));(s=u!==n?t.substring(s,fe):u)!==n?(34===t.charCodeAt(fe)?(u=Rr,fe++):(u=n,0===de&&ye(Fr)),u!==n?(le=r,r=e=s.replace(/\\\\/g,"\\").replace(/\\"/g,'"')):(fe=r,r=n)):(fe=r,r=n)}else fe=r,r=n;return r}(),u!==n&&(le=s,u=I(e,u)),(s=u)===n&&(s=fe,(u=on())!==n&&(le=s,u=I(e,u)),(s=u)===n&&(s=fe,(u=fn())!==n&&(le=s,u=I(e,u)),s=u))),s!==n){for(u=[],a=fe,(c=He())===n&&(c=Qe())===n&&(c=Ke()),c!==n&&(o=Be())!==n?(le=a,a=c=_(e,c,o)):(fe=a,a=n);a!==n;)u.push(a),a=fe,(c=He())===n&&(c=Qe())===n&&(c=Ke()),c!==n&&(o=Be())!==n?(le=a,a=c=_(e,c,o)):(fe=a,a=n);u!==n?(le=r,r=e=e):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;return r}function Re(){var t,r,e;return t=fe,(r=Fe())!==n&&(le=t,e=r,r=void(En.where=e)),t=r}function Fe(){var r,e,s,u,a,c,o,i;if(r=fe,e=fe,(s=Ge())===n&&(s=null),s!==n&&(le=e,s=k(s)),(e=s)!==n)if(s=fe,(u=gn())!==n&&(a=Fe())!==n&&(c=vn())!==n?(le=s,s=u=q(e,a)):(fe=s,s=n),s===n&&(s=fe,(u=Ie())!==n&&(le=s,i=u,u=void e.push(...i)),(s=u)===n&&(s=fe,(u=Te())!==n&&(le=s,u=function(t,r){t.push(...r)}(e,u)),(s=u)===n&&(s=fe,u=function(){var r,e,s,u;de++,r=fe,t.substr(fe,8)===Ot?(e=Ot,fe+=8):(e=n,0===de&&ye(Bt));e===n&&(t.substr(fe,8)===Rt?(e=Rt,fe+=8):(e=n,0===de&&ye(Ft)),e===n&&(t.substr(fe,10)===Tt?(e=Tt,fe+=10):(e=n,0===de&&ye(Lt))));e!==n&&gn()!==n&&(s=_e())!==n&&dn()!==n&&(u=_e())!==n&&vn()!==n?(le=r,r=e={func:e,args:[s,u]}):(fe=r,r=n);de--,r===n&&(e=n,0===de&&ye(jt));return r}(),u!==n&&(le=s,u=function(t,r){t.push(r)}(e,u)),(s=u)===n&&(s=fe,(u=cn())!==n&&(le=s,u=I(e,u)),s=u)))),s!==n){for(u=[],a=fe,(c=He())===n&&(c=Qe()),c!==n&&(o=Fe())!==n?(le=a,a=c=_(e,c,o)):(fe=a,a=n);a!==n;)u.push(a),a=fe,(c=He())===n&&(c=Qe()),c!==n&&(o=Fe())!==n?(le=a,a=c=_(e,c,o)):(fe=a,a=n);u!==n?(le=r,r=e=e):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;return r}function Te(){var r,e,s,u,o,i,f;if(r=fe,e=fe,(s=pn())!==n&&(le=e,s=[s]),(e=s)!==n)if(47===t.charCodeAt(fe)?(s=a,fe++):(s=n,0===de&&ye(c)),s!==n){for(u=[],o=fe,(i=pn())!==n?(47===t.charCodeAt(fe)?(f=a,fe++):(f=n,0===de&&ye(c)),f!==n?(le=o,o=i=D(e,i)):(fe=o,o=n)):(fe=o,o=n);o!==n;)u.push(o),o=fe,(i=pn())!==n?(47===t.charCodeAt(fe)?(f=a,fe++):(f=n,0===de&&ye(c)),f!==n?(le=o,o=i=D(e,i)):(fe=o,o=n)):(fe=o,o=n);u!==n?(o=fe,i=function(){var r,e,s;r=fe,t.substr(fe,3)===J?(e=J,fe+=3):(e=n,0===de&&ye(G));e!==n&&gn()!==n?((s=Ne())===n&&(s=null),s!==n&&vn()!==n?(le=r,r=e=s):(fe=r,r=n)):(fe=r,r=n);return r}(),i!==n&&(le=o,i=function(t,r){let e=t.pop();if(!r)return["exists",{ref:[...t,{id:e}]}];let n=[];for(let t=0,s=0;t<r.length;++t){let u=r[t];u.ref&&0===u.ref.length&&"="===r[t+1]?n[s++]={func:"contains",args:[{ref:e},r[t+=2]]}:n[s++]=u}return n.length<r.length?(e=t.pop(),["exists",{ref:[...t,{id:e,where:n}]}]):["exists",{ref:[...t,{id:e,where:r}]}]}(e,i)),(o=i)===n&&(o=fe,i=function(){var r,e,s;r=fe,t.substr(fe,3)===H?(e=H,fe+=3):(e=n,0===de&&ye(K));e!==n&&gn()!==n&&(s=Ne())!==n&&vn()!==n?(le=r,r=e=s):(fe=r,r=n);return r}(),i!==n&&(le=o,i=function(t,r){let e=t.pop();return["not","exists",{ref:[...t,{id:e,where:["not",{xpr:[...r]}]}]}]}(e,i)),o=i),o!==n?(le=r,r=e=o):(fe=r,r=n)):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;return r}function Le(){var t,r,e,s,u,a,c,o,i;if(t=fe,r=fe,(e=Ge())===n&&(e=null),e!==n&&(le=r,e=(o=e)?[o]:[]),(r=e)!==n)if(e=fe,(s=gn())!==n&&(u=Le())!==n&&(a=vn())!==n?(le=e,i=u,e=s=void r.push("(",...i,")")):(fe=e,e=n),e===n&&(e=fe,(s=Ie())!==n&&(le=e,s=function(t,r){t.push(...r)}(r,s)),(e=s)===n&&(e=fe,(s=Te())!==n&&(le=e,s=function(t,r){t.push(...r)}(r,s)),e=s)),e!==n){for(s=[],u=fe,(a=He())===n&&(a=Qe()),a!==n&&(c=Le())!==n?(le=u,u=a=U(r,a,c)):(fe=u,u=n);u!==n;)s.push(u),u=fe,(a=He())===n&&(a=Qe()),a!==n&&(c=Le())!==n?(le=u,u=a=U(r,a,c)):(fe=u,u=n);s!==n?(le=t,t=r=r):(fe=t,t=n)}else fe=t,t=n;else fe=t,t=n;return t}function Ne(){var r,e,s,u;return r=fe,(e=pn())!==n?(58===t.charCodeAt(fe)?(s=M,fe++):(s=n,0===de&&ye(P)),s!==n&&(u=Le())!==n?(le=r,r=e=function(t,r){for(const e of r)e.ref&&e.ref[0]===t&&e.ref.shift();return r}(e,u)):(fe=r,r=n)):(fe=r,r=n),r}function ke(){var r,e,s,u,a;return r=fe,(e=Je())===n&&(e=De()),e!==n?(s=fe,mn()!==n?(u=fe,"asc"===t.substr(fe,3)?(a="asc",fe+=3):(a=n,0===de&&ye(Q)),a===n&&(t.substr(fe,4)===V?(a=V,fe+=4):(a=n,0===de&&ye(W))),(u=a!==n?t.substring(u,fe):a)!==n?(le=s,s=u):(fe=s,s=n)):(fe=s,s=n),s===n&&(s=null),s!==n?(le=r,r=e=function(t,r){const e=Cn(t,r&&{sort:r});En.orderBy=En.orderBy?[...En.orderBy,e]:[e]}(e,s)):(fe=r,r=n)):(fe=r,r=n),r}function qe(){var r,e,s,u,o,i;if(r=fe,(e=Ve())!==n){for(s=[],u=fe,47===t.charCodeAt(fe)?(o=a,fe++):(o=n,0===de&&ye(c)),o!==n&&(i=Ve())!==n?u=o=[o,i]:(fe=u,u=n);u!==n;)s.push(u),u=fe,47===t.charCodeAt(fe)?(o=a,fe++):(o=n,0===de&&ye(c)),o!==n&&(i=Ve())!==n?u=o=[o,i]:(fe=u,u=n);s!==n?r=e=[e,s]:(fe=r,r=n)}else fe=r,r=n;return r}function Ie(){var r,e,s,u,a,c;return de++,r=fe,(e=_e())!==n&&mn()!==n?(s=fe,"eq"===t.substr(fe,2)?(u="eq",fe+=2):(u=n,0===de&&ye(ut)),u===n&&("ne"===t.substr(fe,2)?(u="ne",fe+=2):(u=n,0===de&&ye(at)),u===n&&("lt"===t.substr(fe,2)?(u="lt",fe+=2):(u=n,0===de&&ye(ct)),u===n&&("gt"===t.substr(fe,2)?(u="gt",fe+=2):(u=n,0===de&&ye(ot)),u===n&&("le"===t.substr(fe,2)?(u="le",fe+=2):(u=n,0===de&&ye(it)),u===n&&("ge"===t.substr(fe,2)?(u="ge",fe+=2):(u=n,0===de&&ye(ft))))))),(s=u!==n?t.substring(s,fe):u)!==n&&(u=mn())!==n&&(a=_e())!==n?(le=r,r=e=[e,{eq:"=",ne:"!=",lt:"<",gt:">",le:"<=",ge:">="}[c=s]||c,a]):(fe=r,r=n)):(fe=r,r=n),de--,r===n&&(e=n,0===de&&ye(st)),r}function _e(){var r;return de++,(r=Je())===n&&(r=De())===n&&(r=Ue())===n&&(r=Me())===n&&(r=Pe())===n&&(r=function(){var r,e,s,u,a;r=fe,91===t.charCodeAt(fe)?(e=mt,fe++):(e=n,0===de&&ye(xt));if(e!==n){for(s=fe,u=[],$t.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(wt));a!==n;)u.push(a),$t.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(wt));(s=u!==n?t.substring(s,fe):u)!==n?(93===t.charCodeAt(fe)?(u=Ct,fe++):(u=n,0===de&&ye(yt)),u!==n?(le=r,r=e={list:s.replace(/"/g,"").split(",").map((t=>({val:t})))}):(fe=r,r=n)):(fe=r,r=n)}else fe=r,r=n;return r}()),de--,r===n&&(n,0===de&&ye(lt)),r}function De(){var r,e,s,u,o,i,f,l;if(de++,r=fe,(e=pn())!==n){for(s=[],u=fe,47===t.charCodeAt(fe)?(o=a,fe++):(o=n,0===de&&ye(c)),o!==n&&(i=pn())!==n?(le=u,u=o=pt(0,i)):(fe=u,u=n);u!==n;)s.push(u),u=fe,47===t.charCodeAt(fe)?(o=a,fe++):(o=n,0===de&&ye(c)),o!==n&&(i=pn())!==n?(le=u,u=o=pt(0,i)):(fe=u,u=n);s!==n?(le=r,l=s,r=e="null"===(f=e)?{val:null}:{ref:[f,...l]}):(fe=r,r=n)}else fe=r,r=n;return de--,r===n&&(e=n,0===de&&ye(ht)),r}function Ue(){var r,e,s;return r=fe,(e=cn())===n&&(e=function(){var r,e,s,u,a,c,o,i,f,l,h,p,A,d,g,v,b,m,x,C,y,$,w,E;r=fe,e=fe,s=[],_r.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(Dr));if(u!==n)for(;u!==n;)s.push(u),_r.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(Dr));else s=n;if(s!==n)if(45===t.charCodeAt(fe)?(u=Ur,fe++):(u=n,0===de&&ye(Mr)),u!==n)if(_r.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(Dr)),a!==n)if(_r.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(Dr)),c!==n)if(45===t.charCodeAt(fe)?(o=Ur,fe++):(o=n,0===de&&ye(Mr)),o!==n)if(_r.test(t.charAt(fe))?(i=t.charAt(fe),fe++):(i=n,0===de&&ye(Dr)),i!==n)if(_r.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(Dr)),f!==n){if(l=fe,84===t.charCodeAt(fe)?(h="T",fe++):(h=n,0===de&&ye(Pr)),h!==n)if(_r.test(t.charAt(fe))?(p=t.charAt(fe),fe++):(p=n,0===de&&ye(Dr)),p!==n)if(_r.test(t.charAt(fe))?(A=t.charAt(fe),fe++):(A=n,0===de&&ye(Dr)),A!==n)if(58===t.charCodeAt(fe)?(d=M,fe++):(d=n,0===de&&ye(P)),d!==n)if(_r.test(t.charAt(fe))?(g=t.charAt(fe),fe++):(g=n,0===de&&ye(Dr)),g!==n)if(_r.test(t.charAt(fe))?(v=t.charAt(fe),fe++):(v=n,0===de&&ye(Dr)),v!==n){if(b=fe,58===t.charCodeAt(fe)?(m=M,fe++):(m=n,0===de&&ye(P)),m!==n)if(_r.test(t.charAt(fe))?(x=t.charAt(fe),fe++):(x=n,0===de&&ye(Dr)),x!==n)if(_r.test(t.charAt(fe))?(C=t.charAt(fe),fe++):(C=n,0===de&&ye(Dr)),C!==n){if(y=fe,46===t.charCodeAt(fe)?($=".",fe++):($=n,0===de&&ye(Jr)),$!==n){if(w=[],_r.test(t.charAt(fe))?(E=t.charAt(fe),fe++):(E=n,0===de&&ye(Dr)),E!==n)for(;E!==n;)w.push(E),_r.test(t.charAt(fe))?(E=t.charAt(fe),fe++):(E=n,0===de&&ye(Dr));else w=n;w!==n?y=$=[$,w]:(fe=y,y=n)}else fe=y,y=n;y===n&&(y=null),y!==n?b=m=[m,x,C,y]:(fe=b,b=n)}else fe=b,b=n;else fe=b,b=n;else fe=b,b=n;b===n&&(b=null),b!==n?(90===t.charCodeAt(fe)?(m="Z",fe++):(m=n,0===de&&ye(Gr)),m===n&&(m=fe,43===t.charCodeAt(fe)?(x="+",fe++):(x=n,0===de&&ye(Hr)),x===n&&(45===t.charCodeAt(fe)?(x=Ur,fe++):(x=n,0===de&&ye(Mr))),x!==n?(_r.test(t.charAt(fe))?(C=t.charAt(fe),fe++):(C=n,0===de&&ye(Dr)),C!==n?(_r.test(t.charAt(fe))?(y=t.charAt(fe),fe++):(y=n,0===de&&ye(Dr)),y!==n?(58===t.charCodeAt(fe)?($=M,fe++):($=n,0===de&&ye(P)),$!==n?(_r.test(t.charAt(fe))?(w=t.charAt(fe),fe++):(w=n,0===de&&ye(Dr)),w!==n?(_r.test(t.charAt(fe))?(E=t.charAt(fe),fe++):(E=n,0===de&&ye(Dr)),E!==n?m=x=[x,C,y,$,w,E]:(fe=m,m=n)):(fe=m,m=n)):(fe=m,m=n)):(fe=m,m=n)):(fe=m,m=n)):(fe=m,m=n)),m===n&&(m=null),m!==n?l=h=[h,p,A,d,g,v,b,m]:(fe=l,l=n)):(fe=l,l=n)}else fe=l,l=n;else fe=l,l=n;else fe=l,l=n;else fe=l,l=n;else fe=l,l=n;else fe=l,l=n;l===n&&(l=null),l!==n?e=s=[s,u,a,c,o,i,f,l]:(fe=e,e=n)}else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;r=e!==n?t.substring(r,fe):e;return r}()),e!==n&&(le=r,e=At(e)),(r=e)===n&&(r=An())===n&&(r=fe,(e=ln())!==n&&(le=r,e="number"==typeof(s=e)?{val:s}:{val:s,literal:"number"}),(r=e)===n&&(r=fe,(e=on())!==n&&(le=r,e=At(e)),r=e)),r}function Me(){var r,e,s,u,a,c;if(r=fe,e=fe,s=fe,123===t.charCodeAt(fe)?(u="{",fe++):(u=n,0===de&&ye(dt)),u!==n){for(a=[],(c=Me())===n&&(gt.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(vt)));c!==n;)a.push(c),(c=Me())===n&&(gt.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(vt)));a!==n?(125===t.charCodeAt(fe)?(c="}",fe++):(c=n,0===de&&ye(bt)),c!==n?s=u=[u,a,c]:(fe=s,s=n)):(fe=s,s=n)}else fe=s,s=n;return(e=s!==n?t.substring(e,fe):s)!==n&&(le=r,e=At(e)),r=e}function Pe(){var r,e,s,u,a,c,o,i;if(r=fe,e=fe,s=fe,91===t.charCodeAt(fe)?(u=mt,fe++):(u=n,0===de&&ye(xt)),u!==n&&(a=bn())!==n?(93===t.charCodeAt(fe)?(c=Ct,fe++):(c=n,0===de&&ye(yt)),c!==n?s=u=[u,a,c]:(fe=s,s=n)):(fe=s,s=n),s===n)if(s=fe,91===t.charCodeAt(fe)?(u=mt,fe++):(u=n,0===de&&ye(xt)),u!==n)if((a=bn())!==n)if(123===t.charCodeAt(fe)?(c="{",fe++):(c=n,0===de&&ye(dt)),c!==n){for(o=[],(i=Pe())===n&&($t.test(t.charAt(fe))?(i=t.charAt(fe),fe++):(i=n,0===de&&ye(wt)));i!==n;)o.push(i),(i=Pe())===n&&($t.test(t.charAt(fe))?(i=t.charAt(fe),fe++):(i=n,0===de&&ye(wt)));o!==n?(93===t.charCodeAt(fe)?(i=Ct,fe++):(i=n,0===de&&ye(yt)),i!==n?s=u=[u,a,c,o,i]:(fe=s,s=n)):(fe=s,s=n)}else fe=s,s=n;else fe=s,s=n;else fe=s,s=n;return(e=s!==n?t.substring(e,fe):s)!==n&&(le=r,e=At(e)),r=e}function Je(){var r,e,s,u,a,c,o,i,f,l;if(de++,r=fe,e=fe,s=[],St.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(zt)),u!==n)for(;u!==n;)s.push(u),St.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(zt));else s=n;if((e=s!==n?t.substring(e,fe):s)!==n)if((s=gn())!==n)if((u=_e())!==n){for(a=[],c=fe,dn()!==n&&(o=_e())!==n?(le=c,c=Zt(0,0,o)):(fe=c,c=n);c!==n;)a.push(c),c=fe,dn()!==n&&(o=_e())!==n?(le=c,c=Zt(0,0,o)):(fe=c,c=n);a!==n&&(c=vn())!==n?(le=r,i=e,f=u,l=a,yn&&!(i in yn.functions)&&xn("'"+i+"' is an unknown function in OData URL spec (strict mode)"),r=e={func:i,args:[f,...l]}):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;else fe=r,r=n;return de--,r===n&&(e=n,0===de&&ye(Et)),r}function Ge(){var r,e;return r=fe,bn()!==n?("not"===t.substr(fe,3).toLowerCase()?(e=t.substr(fe,3),fe+=3):(e=n,0===de&&ye(Nt)),e!==n&&mn()!==n?(le=r,r="not"):(fe=r,r=n)):(fe=r,r=n),r}function He(){var r,e;return r=fe,mn()!==n?("and"===t.substr(fe,3).toLowerCase()?(e=t.substr(fe,3),fe+=3):(e=n,0===de&&ye(kt)),e!==n&&mn()!==n?(le=r,r="and"):(fe=r,r=n)):(fe=r,r=n),r}function Ke(){var t,r;return t=fe,(r=mn())!==n&&(le=t,r="and"),t=r}function Qe(){var r,e;return r=fe,mn()!==n?("or"===t.substr(fe,2).toLowerCase()?(e=t.substr(fe,2),fe+=2):(e=n,0===de&&ye(qt)),e!==n&&mn()!==n?(le=r,r="or"):(fe=r,r=n)):(fe=r,r=n),r}function Ve(){var r,e,s;return r=fe,t.substr(fe,9)===It?(e=It,fe+=9):(e=n,0===de&&ye(_t)),e!==n?(s=function(){var t,r,e,s,u,a,c,o,i,f;if(t=fe,(r=gn())!==n)if((e=bn())!==n)if((s=We())!==n){for(u=[],a=fe,(c=bn())!==n&&(o=dn())!==n&&(i=bn())!==n&&(f=We())!==n?a=c=[c,o,i,f]:(fe=a,a=n);a!==n;)u.push(a),a=fe,(c=bn())!==n&&(o=dn())!==n&&(i=bn())!==n&&(f=We())!==n?a=c=[c,o,i,f]:(fe=a,a=n);u!==n&&(a=bn())!==n&&(c=vn())!==n?t=r=[r,e,s,u,a,c]:(fe=t,t=n)}else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;return t}(),s!==n?r=e=[e,s]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,7)===Dt?(e=Dt,fe+=7):(e=n,0===de&&ye(Ut)),e!==n?(s=function(){var t,r,e,s,u,a,c,o,i,f,l;if(t=fe,(r=gn())!==n)if((e=bn())!==n){if(s=fe,(u=gn())!==n)if((a=en())!==n){for(c=[],o=fe,(i=dn())!==n&&(f=bn())!==n&&(l=en())!==n?o=i=[i,f,l]:(fe=o,o=n);o!==n;)c.push(o),o=fe,(i=dn())!==n&&(f=bn())!==n&&(l=en())!==n?o=i=[i,f,l]:(fe=o,o=n);c!==n&&(o=vn())!==n?s=u=[u,a,c,o]:(fe=s,s=n)}else fe=s,s=n;else fe=s,s=n;s!==n?(u=fe,(a=dn())!==n&&(c=bn())!==n&&(o=qe())!==n?u=a=[a,c,o]:(fe=u,u=n),u===n&&(u=null),u!==n&&(a=bn())!==n&&(c=vn())!==n?t=r=[r,e,s,u,a,c]:(fe=t,t=n)):(fe=t,t=n)}else fe=t,t=n;else fe=t,t=n;return t}(),s!==n?r=e=[e,s]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,6)===Mt?(e=Mt,fe+=6):(e=n,0===de&&ye(Pt)),e!==n&&(s=nn())!==n?r=e=[e,s]:(fe=r,r=n),r===n&&(r=function(){var r,e,s,u;r=fe,t.substr(fe,8)===gr?(e=gr,fe+=8):(e=n,0===de&&ye(vr));e===n&&(t.substr(fe,11)===br?(e=br,fe+=11):(e=n,0===de&&ye(mr)));e!==n&&gn()!==n&&bn()!==n&&(s=ln())!==n&&bn()!==n&&dn()!==n&&bn()!==n&&(u=De())!==n&&bn()!==n&&vn()!==n?(le=r,r=e=function(t,r,e){const n={...e,sort:"topcount"===t?"desc":"asc"};En.orderBy=En.orderBy?[...En.orderBy,n]:[n],(En.limit||(En.limit={})).rows={val:r}}(e,s,u)):(fe=r,r=n);return r}(),r===n&&(r=fe,t.substr(fe,6)===Jt?(e=Jt,fe+=6):(e=n,0===de&&ye(Gt)),e!==n&&(s=sn())!==n?r=e=[e,s]:(fe=r,r=n),r===n&&(r=fe,t.substr(fe,6)===Ht?(e=Ht,fe+=6):(e=n,0===de&&ye(Kt)),e!==n?(s=function(){var t,r,e,s,u,a;t=fe,(r=gn())!==n&&(e=bn())!==n&&(s=Oe())!==n&&(u=bn())!==n&&(a=vn())!==n?t=r=[r,e,s,u,a]:(fe=t,t=n);return t}(),s!==n?r=e=[e,s]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,6)===Qt?(e=Qt,fe+=6):(e=n,0===de&&ye(Vt)),e!==n?(s=function(){var t,r,e,s,u,a,c,o,i,f;if(t=fe,(r=gn())!==n)if((e=bn())!==n)if((s=qe())!==n){if(u=[],a=fe,(c=bn())!==n&&(o=dn())!==n&&(i=bn())!==n&&(f=qe())!==n?a=c=[c,o,i,f]:(fe=a,a=n),a!==n)for(;a!==n;)u.push(a),a=fe,(c=bn())!==n&&(o=dn())!==n&&(i=bn())!==n&&(f=qe())!==n?a=c=[c,o,i,f]:(fe=a,a=n);else u=n;u!==n&&(a=bn())!==n&&(c=vn())!==n?t=r=[r,e,s,u,a,c]:(fe=t,t=n)}else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;return t}(),s!==n?r=e=[e,s]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,7)===Wt?(e=Wt,fe+=7):(e=n,0===de&&ye(Xt)),e!==n?(s=function(){var t,r,e,s,u,a,c,o,i,f;if(t=fe,(r=gn())!==n)if((e=bn())!==n)if((s=un())!==n){for(u=[],a=fe,(c=bn())!==n&&(o=dn())!==n&&(i=bn())!==n&&(f=un())!==n?a=c=[c,o,i,f]:(fe=a,a=n);a!==n;)u.push(a),a=fe,(c=bn())!==n&&(o=dn())!==n&&(i=bn())!==n&&(f=un())!==n?a=c=[c,o,i,f]:(fe=a,a=n);u!==n&&(a=bn())!==n&&(c=vn())!==n?t=r=[r,e,s,u,a,c]:(fe=t,t=n)}else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;return t}(),s!==n?r=e=[e,s]:(fe=r,r=n)):(fe=r,r=n),r===n&&(r=fe,t.substr(fe,13)===Yt?(e=Yt,fe+=13):(e=n,0===de&&ye(tr)),e!==n&&(s=an())!==n?r=e=[e,s]:(fe=r,r=n),r===n&&(r=fe,t.substr(fe,9)===rr?(e=rr,fe+=9):(e=n,0===de&&ye(er)),e!==n&&(s=an())!==n?r=e=[e,s]:(fe=r,r=n),r===n&&(r=fe,t.substr(fe,10)===nr?(e=nr,fe+=10):(e=n,0===de&&ye(sr)),e!==n&&(s=an())!==n?r=e=[e,s]:(fe=r,r=n),r===n&&(r=fe,t.substr(fe,6)===ur?(e=ur,fe+=6):(e=n,0===de&&ye(ar)),e!==n&&(s=an())!==n?r=e=[e,s]:(fe=r,r=n),r===n&&(r=function(){var r;t.substr(fe,8)===xr?(r=xr,fe+=8):(r=n,0===de&&ye(Cr));return r}())))))))))))),r}function We(){var r,e,s,u,a;return r=fe,e=fe,t.substr(fe,6)===f?(s=f,fe+=6):(s=n,0===de&&ye(l)),s!==n&&(u=rn())!==n?(le=e,e=s={func:"count",args:["*"],as:u}):(fe=e,e=n),e===n&&(e=Xe()),e!==n&&(le=r,a=e,En.columns=Array.isArray(En.columns)?En.columns:[],En.columns.find(Bn(a))||En.columns.push(a),e=a),r=e}function Xe(){var t,r,e,s,u;return t=fe,(r=De())!==n&&(e=Ye())!==n?((s=tn())===n&&(s=null),s!==n&&(u=rn())!==n?(le=t,t=r={func:e,args:[r],as:u}):(fe=t,t=n)):(fe=t,t=n),t===n&&(t=fe,(r=pn())!==n&&(e=gn())!==n&&(s=Xe())!==n&&(u=vn())!==n?t=r=[r,e,s,u]:(fe=t,t=n)),t}function Ye(){var r,e,s,u,a;if(r=fe,mn()!==n)if(t.substr(fe,4)===cr?(e=cr,fe+=4):(e=n,0===de&&ye(or)),e!==n)if(mn()!==n){if(s=fe,u=[],St.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(zt)),a!==n)for(;a!==n;)u.push(a),St.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(zt));else u=n;(s=u!==n?t.substring(s,fe):u)!==n?(le=r,r=s):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;else fe=r,r=n;return r}function tn(){var r,e,s,u,a,c,o;return r=fe,(e=mn())!==n?(t.substr(fe,4)===ir?(s=ir,fe+=4):(s=n,0===de&&ye(fr)),s!==n&&(u=mn())!==n&&(a=De())!==n&&(c=Ye())!==n?((o=tn())===n&&(o=null),o!==n?r=e=[e,s,u,a,c,o]:(fe=r,r=n)):(fe=r,r=n)):(fe=r,r=n),r}function rn(){var r,e,s;return r=fe,mn()!==n?("as"===t.substr(fe,2)?(e="as",fe+=2):(e=n,0===de&&ye(lr)),e!==n&&mn()!==n&&(s=pn())!==n?(le=r,r=s):(fe=r,r=n)):(fe=r,r=n),r}function en(){var r,e,s;return r=fe,e=function(){var r,e,s,u,a,c,o,i,f,l,h;r=fe,e=fe,t.substr(fe,6)===hr?(s=hr,fe+=6):(s=n,0===de&&ye(pr));if(s!==n)if((u=gn())!==n)if((a=bn())!==n)if(t.substr(fe,4)===Ar?(c=Ar,fe+=4):(c=n,0===de&&ye(dr)),c===n&&(c=De()),c!==n){if(o=[],i=fe,(f=bn())!==n&&(l=dn())!==n&&(h=De())!==n?i=f=[f,l,h]:(fe=i,i=n),i!==n)for(;i!==n;)o.push(i),i=fe,(f=bn())!==n&&(l=dn())!==n&&(h=De())!==n?i=f=[f,l,h]:(fe=i,i=n);else o=n;o!==n&&(i=bn())!==n&&(f=vn())!==n?e=s=[s,u,a,c,o,i,f]:(fe=e,e=n)}else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;else fe=e,e=n;e!==n&&(le=r,e=function(t){const r=new Error("Rollup in groupby is not supported yet.");throw r.statusCode=501,r}());return r=e}(),e===n&&(e=De()),e!==n&&(le=r,s=e,e=void(En.groupBy||(En.groupBy=[])).push(s)),r=e}function nn(){var t,r,e,s,u,a;return t=fe,(r=gn())!==n&&(e=bn())!==n&&(s=Re())!==n&&(u=bn())!==n&&(a=vn())!==n?t=r=[r,e,s,u,a]:(fe=t,t=n),t}function sn(){var t,r,e,s,u,a,c,o,i,f,l,h,p,A;if(t=fe,(r=gn())!==n)if((e=bn())!==n)if((s=De())!==n)if((u=bn())!==n)if((a=dn())!==n)if((c=bn())!==n){if(o=fe,(i=sn())!==n){for(f=[],l=fe,(h=bn())!==n&&(p=dn())!==n&&(A=sn())!==n?l=h=[h,p,A]:(fe=l,l=n);l!==n;)f.push(l),l=fe,(h=bn())!==n&&(p=dn())!==n&&(A=sn())!==n?l=h=[h,p,A]:(fe=l,l=n);f!==n?o=i=[i,f]:(fe=o,o=n)}else fe=o,o=n;if(o===n)if(o=fe,(i=nn())!==n){for(f=[],l=fe,(h=bn())!==n&&(p=dn())!==n&&(A=sn())!==n?l=h=[h,p,A]:(fe=l,l=n);l!==n;)f.push(l),l=fe,(h=bn())!==n&&(p=dn())!==n&&(A=sn())!==n?l=h=[h,p,A]:(fe=l,l=n);f!==n?o=i=[i,f]:(fe=o,o=n)}else fe=o,o=n;o!==n&&(i=bn())!==n&&(f=vn())!==n?t=r=[r,e,s,u,a,c,o,i,f]:(fe=t,t=n)}else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;else fe=t,t=n;return t}function un(){var t,r,e;return t=fe,(r=Fe())!==n&&(e=rn())!==n?t=r=[r,e]:(fe=t,t=n),t}function an(){var t,r,e,s,u,a,c,o,i,f;return t=fe,(r=gn())!==n&&(e=bn())!==n&&(s=_e())!==n&&(u=bn())!==n&&(a=dn())!==n&&(c=bn())!==n&&(o=_e())!==n&&(i=bn())!==n&&(f=vn())!==n?t=r=[r,e,s,u,a,c,o,i,f]:(fe=t,t=n),t}function cn(){var r,e;return r=fe,t.substr(fe,4)===yr?(e=yr,fe+=4):(e=n,0===de&&ye($r)),e===n&&(t.substr(fe,5)===wr?(e=wr,fe+=5):(e=n,0===de&&ye(Er))),e!==n&&(le=r,e="true"===e),r=e}function on(){var r,e,s,u,a;if(de++,r=fe,39===t.charCodeAt(fe)?(e="'",fe++):(e=n,0===de&&ye(zr)),e!==n){for(s=fe,u=[],t.substr(fe,2)===Zr?(a=Zr,fe+=2):(a=n,0===de&&ye(jr)),a===n&&(Or.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(Br)));a!==n;)u.push(a),t.substr(fe,2)===Zr?(a=Zr,fe+=2):(a=n,0===de&&ye(jr)),a===n&&(Or.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(Br)));(s=u!==n?t.substring(s,fe):u)!==n?(39===t.charCodeAt(fe)?(u="'",fe++):(u=n,0===de&&ye(zr)),u!==n?(le=r,r=e=s.replace(/''/g,"'")):(fe=r,r=n)):(fe=r,r=n)}else fe=r,r=n;return de--,r===n&&(e=n,0===de&&ye(Sr)),r}function fn(){var r,e,s;if(r=fe,e=[],qr.test(t.charAt(fe))?(s=t.charAt(fe),fe++):(s=n,0===de&&ye(Ir)),s!==n)for(;s!==n;)e.push(s),qr.test(t.charAt(fe))?(s=t.charAt(fe),fe++):(s=n,0===de&&ye(Ir));else e=n;return r=e!==n?t.substring(r,fe):e}function ln(){var r,e,s,u,a,c,o,i,f,l;if(r=fe,e=fe,s=fe,Kr.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(Qr)),u===n&&(u=null),u!==n){if(a=[],_r.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(Dr)),c!==n)for(;c!==n;)a.push(c),_r.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(Dr));else a=n;if(a!==n){if(c=fe,46===t.charCodeAt(fe)?(o=".",fe++):(o=n,0===de&&ye(Jr)),o!==n){if(i=[],_r.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(Dr)),f!==n)for(;f!==n;)i.push(f),_r.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(Dr));else i=n;i!==n?c=o=[o,i]:(fe=c,c=n)}else fe=c,c=n;if(c===n&&(c=null),c!==n){if(o=fe,101===t.charCodeAt(fe)?(i="e",fe++):(i=n,0===de&&ye(Vr)),i!==n){if(f=[],_r.test(t.charAt(fe))?(l=t.charAt(fe),fe++):(l=n,0===de&&ye(Dr)),l!==n)for(;l!==n;)f.push(l),_r.test(t.charAt(fe))?(l=t.charAt(fe),fe++):(l=n,0===de&&ye(Dr));else f=n;f!==n?o=i=[i,f]:(fe=o,o=n)}else fe=o,o=n;o===n&&(o=null),o!==n?s=u=[u,a,c,o]:(fe=s,s=n)}else fe=s,s=n}else fe=s,s=n}else fe=s,s=n;return(e=s!==n?t.substring(e,fe):s)!==n&&(le=r,e=Zn(e)),r=e}function hn(){var r,e,s,u,a,c;if(r=fe,e=fe,s=fe,Kr.test(t.charAt(fe))?(u=t.charAt(fe),fe++):(u=n,0===de&&ye(Qr)),u===n&&(u=null),u!==n){if(a=[],_r.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(Dr)),c!==n)for(;c!==n;)a.push(c),_r.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(Dr));else a=n;a!==n?s=u=[u,a]:(fe=s,s=n)}else fe=s,s=n;return(e=s!==n?t.substring(e,fe):s)!==n&&(le=r,e=parseInt(e)),r=e}function pn(){var r,e,s,u,a,c,o,i;if(r=fe,e=fe,de++,s=cn(),de--,s===n?e=void 0:(fe=e,e=n),e!==n)if(s=fe,de++,u=An(),de--,u===n?s=void 0:(fe=s,s=n),s!==n){if(u=fe,a=fe,Wr.test(t.charAt(fe))?(c=t.charAt(fe),fe++):(c=n,0===de&&ye(Xr)),c!==n){for(o=[],Yr.test(t.charAt(fe))?(i=t.charAt(fe),fe++):(i=n,0===de&&ye(te));i!==n;)o.push(i),Yr.test(t.charAt(fe))?(i=t.charAt(fe),fe++):(i=n,0===de&&ye(te));o!==n?a=c=[c,o]:(fe=a,a=n)}else fe=a,a=n;(u=a!==n?t.substring(u,fe):a)!==n?(le=r,r=e=u):(fe=r,r=n)}else fe=r,r=n;else fe=r,r=n;return r}function An(){var r,e,s,u,a,c,o,i,f;if(r=fe,e=fe,s=fe,u=[],re.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(ee)),a!==n)for(;a!==n;)u.push(a),re.test(t.charAt(fe))?(a=t.charAt(fe),fe++):(a=n,0===de&&ye(ee));else u=n;if(u!==n)if(45===t.charCodeAt(fe)?(a=Ur,fe++):(a=n,0===de&&ye(Mr)),a!==n){if(c=[],o=fe,i=[],re.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(ee)),f!==n)for(;f!==n;)i.push(f),re.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(ee));else i=n;if(i!==n?(45===t.charCodeAt(fe)?(f=Ur,fe++):(f=n,0===de&&ye(Mr)),f===n&&(f=null),f!==n?o=i=[i,f]:(fe=o,o=n)):(fe=o,o=n),o!==n)for(;o!==n;){if(c.push(o),o=fe,i=[],re.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(ee)),f!==n)for(;f!==n;)i.push(f),re.test(t.charAt(fe))?(f=t.charAt(fe),fe++):(f=n,0===de&&ye(ee));else i=n;i!==n?(45===t.charCodeAt(fe)?(f=Ur,fe++):(f=n,0===de&&ye(Mr)),f===n&&(f=null),f!==n?o=i=[i,f]:(fe=o,o=n)):(fe=o,o=n)}else c=n;c!==n?s=u=[u,a,c]:(fe=s,s=n)}else fe=s,s=n;else fe=s,s=n;return(e=s!==n?t.substring(e,fe):s)!==n&&(le=r,e=At(e)),r=e}function dn(){var r,e,s,u;return r=fe,(e=bn())!==n?(44===t.charCodeAt(fe)?(s=",",fe++):(s=n,0===de&&ye(ne)),s!==n&&(u=bn())!==n?r=e=[e,s,u]:(fe=r,r=n)):(fe=r,r=n),r}function gn(){var r,e,s,u;return r=fe,(e=bn())!==n?(40===t.charCodeAt(fe)?(s="(",fe++):(s=n,0===de&&ye(se)),s!==n&&(u=bn())!==n?r=e=[e,s,u]:(fe=r,r=n)):(fe=r,r=n),r}function vn(){var r,e,s;return r=fe,(e=bn())!==n?(41===t.charCodeAt(fe)?(s=")",fe++):(s=n,0===de&&ye(ue)),s!==n?r=e=[e,s]:(fe=r,r=n)):(fe=r,r=n),r}function bn(){var r,e,s;for(de++,r=fe,e=[],ce.test(t.charAt(fe))?(s=t.charAt(fe),fe++):(s=n,0===de&&ye(oe));s!==n;)e.push(s),ce.test(t.charAt(fe))?(s=t.charAt(fe),fe++):(s=n,0===de&&ye(oe));return r=e!==n?t.substring(r,fe):e,de--,r===n&&(e=n,0===de&&ye(ae)),r}function mn(){var r,e,s;if(de++,r=fe,e=[],ce.test(t.charAt(fe))?(s=t.charAt(fe),fe++):(s=n,0===de&&ye(oe)),s!==n)for(;s!==n;)e.push(s),ce.test(t.charAt(fe))?(s=t.charAt(fe),fe++):(s=n,0===de&&ye(oe));else e=n;return r=e!==n?t.substring(r,fe):e,de--,r===n&&(e=n,0===de&&ye(ie)),r}const xn=(t,r=400)=>{ge(JSON.stringify({code:r,message:t}))},Cn=Object.assign,{strict:yn,minimal:$n}=r,wn=[];let En,Sn;const zn=["$value"],Zn=r.safeNumber||function(t){const r=Number(t);return Number.isSafeInteger(r)?r:t},jn=(t,r)=>{const e=[...t];for(const t of e)t.xpr&&(t.xpr=jn(t.xpr,r)),t.args&&(t.args=jn(t.args,r)),t.ref&&r.includes(t.ref.join(""));return e},On=t=>{const r=t.groupBy,e=t.where,n=t.columns||[],s=n.filter((t=>t.as));let u=[],a=[];if(0!==s.length&&(u=n.filter((t=>!t.ref||s.includes(t.ref.join(""))))),r){const t=r.map((({ref:t})=>t&&t.join(""))),e=n.filter((r=>r.ref&&t.includes(r.ref.join(""))));a=0===e.length?[...r]:e}const c=0!==u.length||0!==a.length?[...a,...u]:t.columns;let o={...t};c&&(o.columns=c);if(e&&(r||0!==s.length)){const t=n.map((t=>t.ref&&t.ref.join("")||t.as));o={...o,where:jn(e,t)}}return o},Bn=t=>r=>t===r||t.as&&r.as&&t.as===r.as||t.ref&&r.ref&&t.ref.join("")===r.ref.join("");if((e=u())!==n&&fe===t.length)return e;throw e!==n&&fe<t.length&&ye({type:"end"}),$e(Ae,pe<t.length?t.charAt(pe):null,pe<t.length?Ce(pe,pe+1):Ce(pe,pe))}peg$subclass(peg$SyntaxError,Error),peg$SyntaxError.buildMessage=function(t,r){var e={literal:function(t){return'"'+s(t.text)+'"'},class:function(t){var r,e="";for(r=0;r<t.parts.length;r++)e+=t.parts[r]instanceof Array?u(t.parts[r][0])+"-"+u(t.parts[r][1]):u(t.parts[r]);return"["+(t.inverted?"^":"")+e+"]"},any:function(t){return"any character"},end:function(t){return"end of input"},other:function(t){return t.description}};function n(t){return t.charCodeAt(0).toString(16).toUpperCase()}function s(t){return t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(t){return"\\x0"+n(t)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(t){return"\\x"+n(t)}))}function u(t){return t.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,(function(t){return"\\x0"+n(t)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(t){return"\\x"+n(t)}))}return"Expected "+function(t){var r,n,s,u=new Array(t.length);for(r=0;r<t.length;r++)u[r]=(s=t[r],e[s.type](s));if(u.sort(),u.length>0){for(r=1,n=1;r<u.length;r++)u[r-1]!==u[r]&&(u[n]=u[r],n++);u.length=n}switch(u.length){case 1:return u[0];case 2:return u[0]+" or "+u[1];default:return u.slice(0,-1).join(", ")+", or "+u[u.length-1]}}(t)+" but "+function(t){return t?'"'+s(t)+'"':"end of input"}(r)+" found."},module.exports={SyntaxError:peg$SyntaxError,parse:peg$parse};
@@ -1 +0,0 @@
1
- # OData Protocol Adapter