@sap/cds 6.1.3 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/CHANGELOG.md +77 -8
  2. package/apis/cds.d.ts +18 -6
  3. package/apis/connect.d.ts +1 -1
  4. package/apis/cqn.d.ts +1 -1
  5. package/apis/log.d.ts +23 -5
  6. package/apis/ql.d.ts +128 -61
  7. package/apis/services.d.ts +11 -0
  8. package/apis/test.d.ts +61 -0
  9. package/apis/utils.d.ts +15 -0
  10. package/app/fiori/preview.js +1 -0
  11. package/bin/build/buildTaskEngine.js +70 -22
  12. package/bin/build/buildTaskFactory.js +18 -11
  13. package/bin/build/buildTaskHandler.js +1 -1
  14. package/bin/build/buildTaskProviderFactory.js +3 -13
  15. package/bin/build/constants.js +0 -1
  16. package/bin/build/index.js +14 -6
  17. package/bin/build/provider/buildTaskHandlerEdmx.js +2 -3
  18. package/bin/build/provider/buildTaskHandlerFeatureToggles.js +2 -2
  19. package/bin/build/provider/buildTaskHandlerInternal.js +3 -6
  20. package/bin/build/provider/buildTaskProviderInternal.js +51 -39
  21. package/bin/build/provider/fiori/index.js +3 -3
  22. package/bin/build/provider/hana/2migration.js +1 -1
  23. package/bin/build/provider/hana/index.js +34 -27
  24. package/bin/build/provider/java/index.js +6 -7
  25. package/bin/build/provider/mtx/index.js +20 -18
  26. package/bin/build/provider/mtx/resourcesTarBuilder.js +8 -11
  27. package/bin/build/provider/mtx-sidecar/index.js +13 -17
  28. package/bin/build/provider/nodejs/index.js +8 -7
  29. package/bin/build/util.js +22 -4
  30. package/bin/cds.js +8 -4
  31. package/bin/deploy/to-hana/cfUtil.js +53 -18
  32. package/bin/mtx/in-cds.js +1 -0
  33. package/bin/serve.js +37 -30
  34. package/lib/auth/basic-auth.js +33 -0
  35. package/lib/auth/dummy-auth.js +7 -0
  36. package/lib/auth/ias-auth.js +2 -0
  37. package/lib/auth/index.js +31 -0
  38. package/lib/auth/jwt-auth.js +3 -0
  39. package/lib/auth/mocked-users.js +72 -0
  40. package/lib/auth/passport-basic.js +12 -0
  41. package/lib/auth/passport-digest.js +14 -0
  42. package/lib/auth/xsuaa-auth.js +3 -0
  43. package/lib/compile/cds-compile.js +3 -3
  44. package/lib/compile/to/cdl.js +5 -1
  45. package/lib/compile/to/edm.js +8 -0
  46. package/lib/compile/to/gql.js +1 -0
  47. package/lib/compile/to/json.js +30 -5
  48. package/lib/compile/to/sql.js +3 -1
  49. package/lib/core/index.js +5 -1
  50. package/lib/dbs/cds-deploy.js +36 -6
  51. package/lib/env/cds-env.js +15 -5
  52. package/lib/env/cds-requires.js +51 -58
  53. package/lib/env/defaults.js +1 -0
  54. package/lib/env/schemas/cds-package.json +4 -0
  55. package/lib/env/schemas/cds-rc.json +63 -77
  56. package/lib/i18n/localize.js +16 -5
  57. package/lib/index.js +9 -4
  58. package/lib/log/cds-error.js +4 -6
  59. package/lib/log/cds-log.js +89 -53
  60. package/lib/log/service/index.js +1 -0
  61. package/lib/ql/CREATE.js +2 -5
  62. package/lib/ql/DELETE.js +1 -1
  63. package/lib/ql/DROP.js +1 -3
  64. package/lib/ql/INSERT.js +3 -3
  65. package/lib/ql/Query.js +10 -23
  66. package/lib/ql/SELECT.js +1 -2
  67. package/lib/ql/UPDATE.js +2 -2
  68. package/lib/ql/Whereable.js +7 -15
  69. package/lib/ql/cds-ql.js +9 -3
  70. package/lib/req/cds-context.js +11 -3
  71. package/lib/req/context.js +29 -23
  72. package/lib/req/locale.js +9 -5
  73. package/lib/req/request.js +1 -0
  74. package/lib/req/user.js +2 -1
  75. package/lib/srv/cds-connect.js +1 -1
  76. package/lib/srv/cds-serve.js +21 -14
  77. package/lib/srv/middlewares/cds-context.js +29 -0
  78. package/lib/srv/middlewares/ctx-model.js +24 -0
  79. package/lib/srv/middlewares/errors.js +9 -0
  80. package/lib/srv/middlewares/index.js +22 -0
  81. package/lib/srv/middlewares/sap-statistics.js +13 -0
  82. package/lib/srv/middlewares/trace.js +102 -0
  83. package/lib/srv/protocols/_legacy.js +42 -0
  84. package/lib/srv/protocols/graphql.js +39 -0
  85. package/lib/srv/protocols/hcql.js +37 -0
  86. package/lib/srv/protocols/index.js +86 -0
  87. package/lib/srv/protocols/odata-v2-proxy.js +3767 -0
  88. package/lib/srv/protocols/odata-v2.js +26 -0
  89. package/lib/srv/protocols/odata-v4.js +16 -0
  90. package/lib/srv/protocols/rest.js +13 -0
  91. package/lib/srv/srv-api.js +5 -0
  92. package/lib/srv/srv-models.js +4 -6
  93. package/lib/utils/axios.js +3 -2
  94. package/lib/utils/cds-test.js +27 -21
  95. package/lib/utils/cds-utils.js +19 -20
  96. package/lib/utils/tar.js +175 -0
  97. package/libx/_runtime/audit/generic/personal/utils.js +18 -7
  98. package/libx/_runtime/audit/utils/v2.js +1 -0
  99. package/libx/_runtime/auth/index.js +4 -0
  100. package/libx/_runtime/auth/strategies/ias-auth.js +76 -0
  101. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/error.js +8 -3
  102. package/libx/_runtime/cds-services/adapter/odata-v4/handlers/request.js +15 -4
  103. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/expandToCQN.js +1 -1
  104. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/orderByToCQN.js +1 -1
  105. package/libx/_runtime/cds-services/adapter/odata-v4/odata-to-cqn/utils.js +1 -1
  106. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/ResourcePathParser.js +9 -0
  107. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriInfo.js +5 -1
  108. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-commons/uri/UriParser.js +12 -0
  109. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/utils/BufferedWriter.js +6 -2
  110. package/libx/_runtime/cds-services/adapter/odata-v4/okra/odata-server/validator/RequestValidator.js +47 -7
  111. package/libx/_runtime/cds-services/adapter/odata-v4/to.js +1 -1
  112. package/libx/_runtime/cds-services/util/assert.js +4 -0
  113. package/libx/_runtime/common/aspects/relation.js +1 -1
  114. package/libx/_runtime/common/composition/data.js +61 -15
  115. package/libx/_runtime/common/composition/delete.js +0 -1
  116. package/libx/_runtime/common/composition/insert.js +0 -1
  117. package/libx/_runtime/common/composition/tree.js +4 -10
  118. package/libx/_runtime/common/composition/update.js +44 -21
  119. package/libx/_runtime/common/generic/auth/capabilities.js +8 -10
  120. package/libx/_runtime/common/generic/crud.js +1 -2
  121. package/libx/_runtime/common/generic/etag.js +4 -4
  122. package/libx/_runtime/common/generic/input.js +4 -4
  123. package/libx/_runtime/common/generic/paging.js +3 -3
  124. package/libx/_runtime/common/generic/put.js +3 -3
  125. package/libx/_runtime/common/generic/sorting.js +4 -4
  126. package/libx/_runtime/common/generic/temporal.js +3 -3
  127. package/libx/_runtime/common/i18n/messages.properties +0 -7
  128. package/libx/_runtime/common/utils/cqn2cqn4sql.js +11 -6
  129. package/libx/_runtime/common/utils/csn.js +0 -28
  130. package/libx/_runtime/common/utils/draft.js +8 -1
  131. package/libx/_runtime/common/utils/path.js +7 -1
  132. package/libx/_runtime/common/utils/resolveView.js +2 -3
  133. package/libx/_runtime/db/data-conversion/post-processing.js +3 -44
  134. package/libx/_runtime/db/generic/input.js +3 -3
  135. package/libx/_runtime/db/sql-builder/dataTypes.js +4 -0
  136. package/libx/_runtime/fiori/generic/activate.js +2 -2
  137. package/libx/_runtime/fiori/generic/before.js +40 -72
  138. package/libx/_runtime/fiori/generic/cancel.js +2 -2
  139. package/libx/_runtime/fiori/generic/delete.js +2 -2
  140. package/libx/_runtime/fiori/generic/edit.js +2 -2
  141. package/libx/_runtime/fiori/generic/new.js +2 -2
  142. package/libx/_runtime/fiori/generic/patch.js +49 -37
  143. package/libx/_runtime/fiori/generic/prepare.js +2 -2
  144. package/libx/_runtime/fiori/generic/read.js +27 -37
  145. package/libx/_runtime/fiori/utils/where.js +4 -2
  146. package/libx/_runtime/hana/Service.js +1 -3
  147. package/libx/_runtime/hana/conversion.js +3 -0
  148. package/libx/_runtime/hana/driver.js +33 -3
  149. package/libx/_runtime/hana/dynatrace.js +1 -0
  150. package/libx/_runtime/hana/search2Contains.js +12 -1
  151. package/libx/_runtime/hana/search2cqn4sql.js +10 -27
  152. package/libx/_runtime/hana/streaming.js +1 -0
  153. package/libx/_runtime/messaging/AMQPWebhookMessaging.js +4 -2
  154. package/libx/_runtime/messaging/common-utils/AMQPClient.js +1 -0
  155. package/libx/_runtime/messaging/enterprise-messaging-utils/getTenantInfo.js +5 -2
  156. package/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +2 -0
  157. package/libx/_runtime/messaging/enterprise-messaging.js +62 -3
  158. package/libx/_runtime/messaging/outbox/utils.js +1 -1
  159. package/libx/_runtime/messaging/redis-messaging.js +1 -0
  160. package/libx/_runtime/remote/Service.js +2 -2
  161. package/libx/_runtime/remote/utils/client.js +8 -3
  162. package/libx/_runtime/remote/utils/data.js +7 -2
  163. package/libx/_runtime/sqlite/Service.js +18 -7
  164. package/libx/_runtime/sqlite/conversion.js +3 -0
  165. package/libx/_runtime/sqlite/convertAssocToOneManaged.js +3 -3
  166. package/libx/_runtime/sqlite/localized.js +8 -8
  167. package/libx/odata/afterburner.js +39 -7
  168. package/libx/odata/cqn2odata.js +6 -3
  169. package/libx/odata/grammar.pegjs +66 -18
  170. package/libx/odata/index.js +3 -2
  171. package/libx/odata/parser.js +1 -1
  172. package/libx/odata/utils.js +2 -0
  173. package/libx/rest/RestAdapter.js +62 -43
  174. package/libx/rest/middleware/parse.js +2 -1
  175. package/libx/rest/middleware/update.js +1 -1
  176. package/package.json +2 -2
  177. package/server.js +5 -4
  178. package/srv/mtx.cds +1 -1
  179. package/srv/mtx.js +4 -33
  180. package/lib/srv/adapters.js +0 -85
  181. package/lib/utils/resources/index.js +0 -48
  182. package/lib/utils/resources/tar.js +0 -49
  183. package/lib/utils/resources/utils.js +0 -11
  184. package/libx/_runtime/extensibility/activate.js +0 -69
  185. package/libx/_runtime/extensibility/add.js +0 -50
  186. package/libx/_runtime/extensibility/addExtension.js +0 -72
  187. package/libx/_runtime/extensibility/defaults.js +0 -34
  188. package/libx/_runtime/extensibility/handler/transformREAD.js +0 -121
  189. package/libx/_runtime/extensibility/handler/transformRESULT.js +0 -51
  190. package/libx/_runtime/extensibility/handler/transformWRITE.js +0 -64
  191. package/libx/_runtime/extensibility/linter/allowlist_checker.js +0 -373
  192. package/libx/_runtime/extensibility/linter/annotations_checker.js +0 -113
  193. package/libx/_runtime/extensibility/linter/checker_base.js +0 -20
  194. package/libx/_runtime/extensibility/linter/namespace_checker.js +0 -180
  195. package/libx/_runtime/extensibility/linter.js +0 -32
  196. package/libx/_runtime/extensibility/push.js +0 -118
  197. package/libx/_runtime/extensibility/service.js +0 -38
  198. package/libx/_runtime/extensibility/token.js +0 -57
  199. package/libx/_runtime/extensibility/utils.js +0 -131
  200. package/libx/_runtime/extensibility/validation.js +0 -50
  201. package/libx/_runtime/extensibility/views.js +0 -12
  202. package/srv/extensibility-service.cds +0 -60
  203. package/srv/extensibility-service.js +0 -1
  204. package/srv/extensions.cds +0 -8
  205. package/srv/model-provider.cds +0 -61
  206. package/srv/model-provider.js +0 -143
@@ -1,4 +1,4 @@
1
- const cds = require('../_runtime/cds')
1
+ const cds = require('../_runtime/cds'), { decodeURIComponent } = cds.utils
2
2
  const { SELECT } = cds.ql
3
3
 
4
4
  const odata2cqn = require('./parser').parse
@@ -64,7 +64,7 @@ module.exports = {
64
64
  // REVISIT: for okra, remove when no longer needed
65
65
  else if (url.getIncomingRequest) url = url.getIncomingRequest().url
66
66
 
67
- url = decodeURIComponent(url)
67
+ url = decodeURIComponent(url) // REVISIT: do we need that?
68
68
 
69
69
  options = options === 'strict' ? { strict } : options.strict ? { ...options, strict } : options
70
70
  if (options.service) Object.assign(options, { minimal: true, afterburner: afterburner.for(options.service) })
@@ -101,6 +101,7 @@ module.exports = {
101
101
 
102
102
  return cqn
103
103
  },
104
+
104
105
  urlify: (cqn, options = {}) => {
105
106
  return cqn2odata(cqn, options)
106
107
  }
@@ -1 +1 @@
1
- "use strict";function peg$subclass(r,t){function e(){this.constructor=r}e.prototype=t.prototype,r.prototype=new e}function peg$SyntaxError(r,t,e,n){this.message=r,this.expected=t,this.found=e,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,peg$SyntaxError)}function peg$parse(r,t){t=void 0!==t?t:{};var e,n={},s={ODataRelativeURI:hn},u=hn,o="/",a=sn("/",!1),c=sn("?",!1),i=sn("&",!1),f="$count",l=sn("$count",!1),h="$ref",p=sn("$ref",!1),A="$value",d=sn("$value",!1),g=function(r){return[r]},v="=",m=sn("=",!1),b="$skiptoken=",y=sn("$skiptoken=",!1),C="$select=",w=sn("$select=",!1),x="$expand=",E=sn("$expand=",!1),$="$filter=",L=sn("$filter=",!1),B="$orderby=",S=sn("$orderby=",!1),T=function(r,t){Ts(t)},_="$top=",O=sn("$top=",!1),R="$skip=",j=sn("$skip=",!1),Z="$search=",N=sn("$search=",!1),k="$count=",z=sn("$count=",!1),D="$apply=",P=sn("$apply=",!1),F=sn("*",!1),U="/$count",q=sn("/$count",!1),M=sn(";",!1),I=function(r){return r?[r]:[]},Y=function(r,t){r.push({xpr:t})},X=function(r,t){r.push({val:t})},J=function(r,t,e){r.push(t,...e)},Q=function(r,t){r.push(...t)},W=function(r,t){r.push(t)},G=function(r,t,e){r.push(t,...e)},H=":",K=sn(":",!1),V="any",rr=sn("any",!1),tr="all",er=sn("all",!1),nr=sn("asc",!1),sr="desc",ur=sn("desc",!1),or=function(r,t){return t},ar=/^[a-zA-Z0-9\-_.~]/,cr=un([["a","z"],["A","Z"],["0","9"],"-","_",".","~"],!1,!1),ir=/^[^&]/,fr=un(["&"],!0,!1),lr=on("an aliased parameter (@param)"),hr=sn("@",!1),pr=on("@alias=value"),Ar="$format=",dr=sn("$format=",!1),gr=sn("eq",!1),vr=sn("ne",!1),mr=sn("lt",!1),br=sn("gt",!1),yr=sn("le",!1),Cr=sn("ge",!1),wr=sn("in",!1),xr=(sn("add",!1),sn("sub",!1),sn("mul",!1),sn("div",!1),sn("mod",!1),on("navigation with $count")),Er=function(r,t){return t},$r=function(r,t){return t?{id:r,where:t}:r},Lr=on("a reference"),Br=function(r,t){return t},Sr=function(r){return{val:r}},Tr=on("null"),_r="null",Or=sn("null",!1),Rr=on("a json object"),jr=sn("{",!1),Zr=/^[^}]/,Nr=un(["}"],!0,!1),kr=sn("}",!1),zr=on("a json array"),Dr="[",Pr=sn("[",!1),Fr="]",Ur=sn("]",!1),qr=/^[^\]]/,Mr=un(["]"],!0,!1),Ir=on("a list"),Yr=",",Xr=sn(",",!1),Jr=function(r,t){return t},Qr=on("a function name"),Wr=/^[a-zA-Z]/,Gr=un([["a","z"],["A","Z"]],!1,!1),Hr=function(r,t){return t},Kr="contains",Vr=sn("contains",!0),rt="endswith",tt=sn("endswith",!0),et="startswith",nt=sn("startswith",!0),st=sn("NOT",!0),ut=sn("AND",!0),ot=sn("OR",!0),at="aggregate",ct=sn("aggregate",!1),it="groupby",ft=sn("groupby",!1),lt="filter",ht=sn("filter",!1),pt="search",At=sn("search",!1),dt="concat",gt=sn("concat",!1),vt="compute",mt=sn("compute",!1),bt=sn("top",!1),yt="skip",Ct=sn("skip",!1),wt="orderby",xt=sn("orderby",!1),Et=sn("topcount",!0),$t=sn("bottomcount",!0),Lt=sn("topsum",!0),Bt=sn("bottomsum",!0),St=sn("toppercent",!0),Tt=sn("bottompercent",!0),_t=function(r,t){return t},Ot="with",Rt=sn("with",!1),jt="from",Zt=sn("from",!1),Nt=sn("as",!1),kt="rollup",zt=sn("rollup",!1),Dt="$all",Pt=sn("$all",!1),Ft=function(r,t){return t},Ut="identity",qt=sn("identity",!1),Mt=function(r,t){return t},It=on("a boolean"),Yt="true",Xt=sn("true",!1),Jt="false",Qt=sn("false",!1),Wt=on("a single quoted string"),Gt="'",Ht=sn("'",!1),Kt="''",Vt=sn("''",!1),re=/^[^']/,te=un(["'"],!0,!1),ee=on("a doubled quoted string"),ne='"',se=sn('"',!1),ue='\\"',oe=sn('\\"',!1),ae=/^[^"]/,ce=un(['"'],!0,!1),ie=on("a string"),fe=/^[^ \t\n()"&;]/,le=un([" ","\t","\n","(",")",'"',"&",";"],!0,!1),he=on("a date"),pe=/^[0-9]/,Ae=un([["0","9"]],!1,!1),de="-",ge=sn("-",!1),ve=sn("T",!1),me=".",be=sn(".",!1),ye=sn("Z",!1),Ce=sn("+",!1),we=on("a number"),xe=/^[+\-]/,Ee=un(["+","-"],!1,!1),$e=sn("e",!1),Le=on("an integer"),Be=on("an identifier"),Se=/^[_a-zA-Z]/,Te=un(["_",["a","z"],["A","Z"]],!1,!1),_e=/^[_a-zA-Z0-9"."]/,Oe=un(["_",["a","z"],["A","Z"],["0","9"],'"',".",'"'],!1,!1),Re=on("a guid"),je=on("a hex value"),Ze=/^[0-9a-fA-F]/,Ne=un([["0","9"],["a","f"],["A","F"]],!1,!1),ke=/^[^\/?]/,ze=un(["/","?"],!0,!1),De=/^[a-zA-Z0-9\-"."_~!$'()*+,;=:@"\/""?"]/,Pe=un([["a","z"],["A","Z"],["0","9"],"-",'"',".",'"',"_","~","!","$","'","(",")","*","+",",",";","=",":","@",'"',"/",'"','"',"?",'"'],!1,!1),Fe=on("a binary"),Ue="binary'",qe=sn("binary'",!1),Me=/^[a-zA-Z0-9\-_]/,Ie=un([["a","z"],["A","Z"],["0","9"],"-","_"],!1,!1),Ye="==",Xe=sn("==",!1),Je=sn("(",!1),Qe=sn(")",!1),We=on("an optional whitespace"),Ge=/^[ \t\n]/,He=un([" ","\t","\n"],!1,!1),Ke=on("a whitespace"),Ve=0,rn=[{line:1,column:1}],tn=0,en=[],nn=0;if("startRule"in t){if(!(t.startRule in s))throw new Error("Can't start parsing from rule \""+t.startRule+'".');u=s[t.startRule]}function sn(r,t){return{type:"literal",text:r,ignoreCase:t}}function un(r,t,e){return{type:"class",parts:r,inverted:t,ignoreCase:e}}function on(r){return{type:"other",description:r}}function an(t){var e,n=rn[t];if(n)return n;for(e=t-1;!rn[e];)e--;for(n={line:(n=rn[e]).line,column:n.column};e<t;)10===r.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return rn[t]=n,n}function cn(r,t){var e=an(r),n=an(t);return{start:{offset:r,line:e.line,column:e.column},end:{offset:t,line:n.line,column:n.column}}}function fn(r){Ve<tn||(Ve>tn&&(tn=Ve,en=[]),en.push(r))}function ln(r,t,e){return new peg$SyntaxError(peg$SyntaxError.buildMessage(r,t),r,t,e)}function hn(){var t,e,s,u,f,l,h,p,A,d,g,v,m,b,y;if(t=Ve,47===r.charCodeAt(Ve)?(e=o,Ve++):(e=n,0===nn&&fn(a)),e===n&&(e=null),e!==n)if(s=Ve,(u=pn())!==n&&(s,u=void(ds=u)),(s=u)!==n){if(u=Ve,(f=is())!==n)if(63===r.charCodeAt(Ve)?(l="?",Ve++):(l=n,0===nn&&fn(c)),l!==n)if((h=is())!==n){if(p=Ve,(A=dn())!==n){for(d=[],g=Ve,(v=is())!==n?(38===r.charCodeAt(Ve)?(m="&",Ve++):(m=n,0===nn&&fn(i)),m!==n&&(b=is())!==n&&(y=dn())!==n?g=v=[v,m,b,y]:(Ve=g,g=n)):(Ve=g,g=n);g!==n;)d.push(g),g=Ve,(v=is())!==n?(38===r.charCodeAt(Ve)?(m="&",Ve++):(m=n,0===nn&&fn(i)),m!==n&&(b=is())!==n&&(y=dn())!==n?g=v=[v,m,b,y]:(Ve=g,g=n)):(Ve=g,g=n);d!==n?p=A=[A,d]:(Ve=p,p=n)}else Ve=p,p=n;p===n&&(p=null),p!==n?u=f=[f,l,h,p]:(Ve=u,u=n)}else Ve=u,u=n;else Ve=u,u=n;else Ve=u,u=n;u===n&&(u=null),u!==n&&(f=is())!==n?(t,t=e=function(){if(gs)return ds.columns=[{args:[{val:1}],as:"$count",func:"count"}],delete ds.expand,delete ds.limit,delete ds.orderBy,ds.apply?Es(ds,ds.apply):{SELECT:ds};let r;if(ds.expand){ds.columns||(ds.columns=["*"],r=!0);for(const r of ds.expand){const t=ds.columns.findIndex(ys(r));t>-1&&ds.columns.splice(t,1),ds.columns.push(r)}delete ds.expand}return ds.count&&ds.apply&&(ds.__countAggregated=!0),ds.apply?Es(ds,ds.apply,r):{SELECT:ds}}()):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;return t}function pn(){var t,e,s,u,c,i,v,m;return t=Ve,r.substr(Ve,6)===f?(e=f,Ve+=6):(e=n,0===nn&&fn(l)),e!==n&&(t,e=void(gs=!0)),(t=e)===n&&(t=Ve,e=Ve,r.substr(Ve,4)===h?(s=h,Ve+=4):(s=n,0===nn&&fn(p)),s===n&&(r.substr(Ve,6)===A?(s=A,Ve+=6):(s=n,0===nn&&fn(d))),(e=s!==n?r.substring(e,Ve):s)!==n&&(t,m=e,e=!vs.includes(m)&&{from:{ref:[m]}}),(t=e)===n&&(t=Ve,e=Ve,(s=es())!==n?(u=Ve,(c=as())!==n&&(i=cs())!==n?u=c=[c,i]:(Ve=u,u=n),u===n&&(u=Ve,(c=as())!==n&&(i=An())!==n&&(v=cs())!==n?u=c=[c,i,v]:(Ve=u,u=n)),u===n&&(u=null),u!==n?(c=Ve,nn++,i=us(),nn--,i===n?c=void 0:(Ve=c,c=n),c!==n?e=s=[s,u,c]:(Ve=e,e=n)):(Ve=e,e=n)):(Ve=e,e=n),e===n&&(e=Ve,(s=us())!==n&&(e,s=g(s)),e=s),e===n&&(e=null),e!==n?(s=Ve,u=Ve,47===r.charCodeAt(Ve)?(c=o,Ve++):(c=n,0===nn&&fn(a)),c!==n&&(u,c=c),(u=c)!==n?((c=pn())===n&&(c=null),c!==n?s=u=[u,c]:(Ve=s,s=n)):(Ve=s,s=n),s===n&&(s=null),s!==n?(t,t=e=function(r,t){if(t=t&&t[1],!r&&!t)return{from:{ref:[""]}};if(!r&&t&&t.from)return t.from.ref.unshift(""),t;const[e,n]=r,s=[];if(n?n.length>2?s.push({id:e,where:n[1].map((r=>r.val&&r.val.match&&r.val.match(/^"(.*)"$/)?{val:r.val.match(/^"(.*)"$/)[1]}:r))}):s.push({id:e,where:[]}):ps?s.push(`${"object"==typeof e&&"val"in e?e.val:e}`):"object"==typeof e&&"string"==typeof e.val&&e.val.match(/^[1-9]\d*$|^0$/)?s.push({val:ms(e.val)}):s.push(e),t&&t.from){const r=t.from.ref;Object.prototype.hasOwnProperty.call(r[0],"val")&&(s[s.length-1]={id:s[s.length-1],where:[r.shift()]}),s.push(...r)}const u={from:{ref:s}};return t&&t.columns&&(u.columns=t.columns),u}(e,s)):(Ve=t,t=n)):(Ve=t,t=n))),t}function An(){var t,e,s,u,o,a,c;return t=Ve,(e=zn())!==n&&(t,e=g(e)),(t=e)===n&&(t=Ve,(e=kn())!==n&&is()!==n?(61===r.charCodeAt(Ve)?(s=v,Ve++):(s=n,0===nn&&fn(m)),s!==n&&is()!==n&&(u=zn())!==n?(o=Ve,(a=os())!==n&&(c=An())!==n?o=a=[a,c]:(Ve=o,o=n),o===n&&(o=null),o!==n?(t,t=e=function(r,t,e){const n=[r,"=",t];return e&&n.push("and",...e[1]),n}(e,u,o)):(Ve=t,t=n)):(Ve=t,t=n)):(Ve=t,t=n)),t}function dn(){var t,e,s,u,o;return t=Ve,(e=gn())!==n&&(t,e=void((o=e)&&o.apply&&(ds.apply=o.apply))),(t=e)===n&&(t=Ve,r.substr(Ve,11)===b?(e=b,Ve+=11):(e=n,0===nn&&fn(y)),e!==n&&(s=is())!==n?(u=function(){var t,e,s;t=Ve,(e=ts())===n&&(e=null);e!==n?(s=function(){var t,e,s;t=Ve,e=[],De.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Pe));if(s!==n)for(;s!==n;)e.push(s),De.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Pe));else e=n;t=e!==n?r.substring(t,Ve):e;return t}(),s===n&&(s=null),s!==n?(t,u=e,t=e=void(s||Ss(u))):(Ve=t,t=n)):(Ve=t,t=n);var u;return t}(),u!==n?t=e=[e,s,u]:(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=function(){var t,e,s,u,o;t=Ve,r.substr(Ve,8)===Ar?(e=Ar,Ve+=8):(e=n,0===nn&&fn(dr));if(e!==n){for(s=Ve,u=[],ir.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(fr));o!==n;)u.push(o),ir.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(fr));(s=u!==n?r.substring(s,Ve):u)!==n?(t,t=e=function(r){if("json"!==r.toLowerCase()){const r=new Error("ONLY_QUERY_PARAM_FORMAT_JSON_ALLOWED");throw r.statusCode=501,r}}(s)):(Ve=t,t=n)}else Ve=t,t=n;return t}(),t===n&&(t=function(){var t,e,s,u,o;t=Ve,e=[],ar.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(cr));if(s!==n)for(;s!==n;)e.push(s),ar.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(cr));else e=n;if(e!==n)if(61===r.charCodeAt(Ve)?(s=v,Ve++):(s=n,0===nn&&fn(m)),s!==n){for(u=[],ir.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(fr));o!==n;)u.push(o),ir.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(fr));u!==n?t=e=[e,s,u]:(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;return t}(),t===n&&(t=function(){var t,e,s,u,o;if(nn++,t=Ve,(e=Rn())!==n)if(61===r.charCodeAt(Ve)?(s=v,Ve++):(s=n,0===nn&&fn(m)),s!==n){for(u=[],ir.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(fr));o!==n;)u.push(o),ir.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(fr));u!==n?(t,t=e=e+"="+u):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;nn--,t===n&&(e=n,0===nn&&fn(pr));return t}())))),t}function gn(){var t,e,s,u,o,a,c,i,f,l,h;if(t=Ve,r.substr(Ve,8)===C?(e=C,Ve+=8):(e=n,0===nn&&fn(w)),e!==n)if((s=is())!==n)if((u=vn())!==n){for(o=[],a=Ve,(c=os())!==n&&(i=vn())!==n?a=c=[c,i]:(Ve=a,a=n);a!==n;)o.push(a),a=Ve,(c=os())!==n&&(i=vn())!==n?a=c=[c,i]:(Ve=a,a=n);o!==n?t=e=[e,s,u,o]:(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;else Ve=t,t=n;if(t===n){if(t=Ve,r.substr(Ve,8)===x?(e=x,Ve+=8):(e=n,0===nn&&fn(E)),e!==n)if((s=is())!==n)if((u=yn())!==n){for(o=[],a=Ve,(c=os())!==n&&(i=yn())!==n?a=c=[c,i]:(Ve=a,a=n);a!==n;)o.push(a),a=Ve,(c=os())!==n&&(i=yn())!==n?a=c=[c,i]:(Ve=a,a=n);o!==n?(a=function(){var t,e;t=Ve,r.substr(Ve,7)===U?(e=U,Ve+=7):(e=n,0===nn&&fn(q));e!==n&&(t,e=function(){const r=new Error("EXPAND_COUNT_UNSUPPORTED");throw r.statusCode=501,r}());return t=e}(),a===n&&(a=null),a!==n?t=e=[e,s,u,o,a]:(Ve=t,t=n)):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;else Ve=t,t=n;if(t===n&&(t=Ve,r.substr(Ve,8)===$?(e=$,Ve+=8):(e=n,0===nn&&fn(L)),e!==n&&(s=is())!==n&&(u=$n())!==n?(t,h=u,t=e=void(ds.where=h)):(Ve=t,t=n),t===n)){if(t=Ve,r.substr(Ve,9)===B?(e=B,Ve+=9):(e=n,0===nn&&fn(S)),e!==n)if((s=is())!==n)if((u=_n())!==n){for(o=[],a=Ve,(c=os())!==n&&(i=_n())!==n?(a,a=c=T(0,i)):(Ve=a,a=n);a!==n;)o.push(a),a=Ve,(c=os())!==n&&(i=_n())!==n?(a,a=c=T(0,i)):(Ve=a,a=n);o!==n?(t,t=e=void Ts(u,!0)):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;else Ve=t,t=n;t===n&&(t=Ve,r.substr(Ve,5)===_?(e=_,Ve+=5):(e=n,0===nn&&fn(O)),e!==n&&(s=is())!==n&&(u=Cn())!==n?(t,l=u,t=e=void((ds.limit||(ds.limit={})).rows={val:l})):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,6)===R?(e=R,Ve+=6):(e=n,0===nn&&fn(j)),e!==n&&(s=is())!==n&&(u=wn())!==n?(t,e=function(r){Ss(r)}(u),t=e):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,8)===Z?(e=Z,Ve+=8):(e=n,0===nn&&fn(N)),e!==n&&(s=is())!==n&&(u=xn())!==n?(t,t=e=void((f=u)&&(ds.search=f))):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,7)===k?(e=k,Ve+=7):(e=n,0===nn&&fn(z)),e!==n&&(s=is())!==n?(u=function(){var r,t;r=Ve,(t=Vn())!==n&&(r,t=function(r){r&&(ds.count=!0)}(t));return r=t}(),u!==n?t=e=[e,s,u]:(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,7)===D?(e=D,Ve+=7):(e=n,0===nn&&fn(P)),e!==n&&(s=is())!==n&&(u=On())!==n?(t,t=e=u):(Ve=t,t=n))))))}}return t}function vn(){var t,e,s;return t=Ve,42===r.charCodeAt(Ve)?(e="*",Ve++):(e=n,0===nn&&fn(F)),e===n&&(e=kn()),e!==n&&(t,s=e,ds.columns=Array.isArray(ds.columns)?ds.columns:[],ds.columns.find(ys(s))||ds.columns.push(s),e=s),t=e}function mn(){var t,e,s,u,o;for(t=Ve,e=[],s=Ve,(u=gn())!==n&&is()!==n?(59===r.charCodeAt(Ve)?(o=";",Ve++):(o=n,0===nn&&fn(M)),o===n&&(o=null),o!==n?(s,s=u):(Ve=s,s=n)):(Ve=s,s=n);s!==n;)e.push(s),s=Ve,(u=gn())!==n&&is()!==n?(59===r.charCodeAt(Ve)?(o=";",Ve++):(o=n,0===nn&&fn(M)),o===n&&(o=null),o!==n?(s,s=u):(Ve=s,s=n)):(Ve=s,s=n);return e!==n&&(t,e=function(r){if(r.find((r=>r&&void 0!==r.apply))){const r=new Error("EXPAND_APPLY_UNSUPPORTED");throw r.statusCode=501,r}if(ds.columns){"*"===ds.expand&&(ds.expand=[]);for(const r of ds.columns)ds.expand.find(ys(r))||ds.expand.push(r);delete ds.columns}else Array.isArray(ds.expand)&&-1===ds.expand.indexOf("*")&&ds.expand.unshift("*")}(e)),t=e}function bn(){var r,t,e,s,u;return r=Ve,t=Ve,(e=as())!==n&&(t,As.push(ds),ds=ds.expand[ds.expand.length-1],e=void(ds.expand="*")),(t=e)!==n?((e=mn())===n&&(e=null),e!==n?(s=Ve,(u=cs())!==n&&(s,u=void(ds=As.pop())),(s=u)!==n?r=t=[t,e,s]:(Ve=r,r=n)):(Ve=r,r=n)):(Ve=r,r=n),r}function yn(){var t,e,s;return t=Ve,e=Ve,42===r.charCodeAt(Ve)?(s="*",Ve++):(s=n,0===nn&&fn(F)),s===n&&(s=kn()),s!==n&&(e,s=function(r){const t="*"===r?{}:r;return t.expand="*",Array.isArray(ds.expand)||(ds.expand=[]),ds.expand.find(ys(t))||ds.expand.push(t),t}(s)),(e=s)!==n?((s=bn())===n&&(s=null),s!==n?t=e=[e,s]:(Ve=t,t=n)):(Ve=t,t=n),t}function Cn(){var r,t;return r=Ve,(t=ts())!==n&&r,r=t}function wn(){var r,t;return r=Ve,(t=ts())!==n&&r,r=t}function xn(){var r,t;return r=Ve,(t=En())!==n&&r,(r=t)===n&&(r=is()),r}function En(){var t,e,s,u,o,a,c;if(t=Ve,e=Ve,(s=Un())===n&&(s=null),s!==n&&(e,s=I(s)),(e=s)!==n)if(s=Ve,(u=as())!==n&&(o=En())!==n&&(a=cs())!==n?(s,s=u=Y(e,o)):(Ve=s,s=n),s===n&&(s=Ve,u=function(){var t,e,s,u,o;nn++,t=Ve,34===r.charCodeAt(Ve)?(e=ne,Ve++):(e=n,0===nn&&fn(se));if(e!==n){for(s=Ve,u=[],r.substr(Ve,2)===ue?(o=ue,Ve+=2):(o=n,0===nn&&fn(oe)),o===n&&(ae.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(ce)));o!==n;)u.push(o),r.substr(Ve,2)===ue?(o=ue,Ve+=2):(o=n,0===nn&&fn(oe)),o===n&&(ae.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(ce)));(s=u!==n?r.substring(s,Ve):u)!==n?(34===r.charCodeAt(Ve)?(u=ne,Ve++):(u=n,0===nn&&fn(se)),u!==n?(t,t=e=s.replace(/\\\\/g,"\\").replace(/\\"/g,'"')):(Ve=t,t=n)):(Ve=t,t=n)}else Ve=t,t=n;nn--,t===n&&(e=n,0===nn&&fn(ee));return t}(),u!==n&&(s,u=X(e,u)),(s=u)===n&&(s=Ve,(u=rs())!==n&&(s,u=X(e,u)),(s=u)===n&&(s=Ve,u=function(){var t,e,s;nn++,t=Ve,e=[],fe.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(le));if(s!==n)for(;s!==n;)e.push(s),fe.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(le));else e=n;t=e!==n?r.substring(t,Ve):e;nn--,t===n&&(e=n,0===nn&&fn(ie));return t}(),u!==n&&(s,u=X(e,u)),s=u))),s!==n){for(u=[],o=Ve,(a=qn())===n&&(a=In())===n&&(a=Mn()),a!==n&&(c=En())!==n?(o,o=a=J(e,a,c)):(Ve=o,o=n);o!==n;)u.push(o),o=Ve,(a=qn())===n&&(a=In())===n&&(a=Mn()),a!==n&&(c=En())!==n?(o,o=a=J(e,a,c)):(Ve=o,o=n);u!==n?(t,t=e):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;return t}function $n(){var r,t;return r=Ve,(t=Ln())!==n&&r,r=t}function Ln(){var t,e,s,u,o,a,c,i;if(t=Ve,e=Ve,(s=Un())===n&&(s=null),s!==n&&(e,s=I(s)),(e=s)!==n)if(s=Ve,(u=as())!==n&&(o=Ln())!==n&&(a=cs())!==n?(s,s=u=Y(e,o)):(Ve=s,s=n),s===n&&(s=Ve,(u=jn())!==n&&(s,i=u,u=void e.push(...i)),(s=u)===n&&(s=Ve,(u=Bn())!==n&&(s,u=function(r,t){"not"===r[r.length-1]&&"not"===t[0]?r.push("(",...t,")"):r.push(...t)}(e,u)),(s=u)===n&&(s=Ve,u=function(){var t,e,s,u;t=Ve,r.substr(Ve,8).toLowerCase()===Kr?(e=r.substr(Ve,8),Ve+=8):(e=n,0===nn&&fn(Vr));e===n&&(r.substr(Ve,8).toLowerCase()===rt?(e=r.substr(Ve,8),Ve+=8):(e=n,0===nn&&fn(tt)),e===n&&(r.substr(Ve,10).toLowerCase()===et?(e=r.substr(Ve,10),Ve+=10):(e=n,0===nn&&fn(nt))));e!==n&&as()!==n&&(s=Nn())!==n&&os()!==n&&(u=Nn())!==n&&cs()!==n?(t,o=s,a=u,t=e={func:e.toLowerCase(),args:[o,a]}):(Ve=t,t=n);var o,a;return t}(),u!==n&&(s,u=function(r,t){r.push(t)}(e,u)),(s=u)===n&&(s=Ve,(u=Vn())!==n&&(s,u=X(e,u)),(s=u)===n&&(s=Ve,(u=Zn())!==n&&(s,u=Q(e,u)),s=u))))),s!==n){for(u=[],o=Ve,(a=qn())===n&&(a=In()),a!==n&&(c=Ln())!==n?(o,o=a=J(e,a,c)):(Ve=o,o=n);o!==n;)u.push(o),o=Ve,(a=qn())===n&&(a=In()),a!==n&&(c=Ln())!==n?(o,o=a=J(e,a,c)):(Ve=o,o=n);u!==n?(t,t=e):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;return t}function Bn(){var t,e,s,u,c,i,f;if(t=Ve,e=Ve,(s=es())!==n&&(e,s=[s]),(e=s)!==n)if(47===r.charCodeAt(Ve)?(s=o,Ve++):(s=n,0===nn&&fn(a)),s!==n){for(u=[],c=Ve,(i=es())!==n?(47===r.charCodeAt(Ve)?(f=o,Ve++):(f=n,0===nn&&fn(a)),f!==n?(c,c=i=W(e,i)):(Ve=c,c=n)):(Ve=c,c=n);c!==n;)u.push(c),c=Ve,(i=es())!==n?(47===r.charCodeAt(Ve)?(f=o,Ve++):(f=n,0===nn&&fn(a)),f!==n?(c,c=i=W(e,i)):(Ve=c,c=n)):(Ve=c,c=n);u!==n?(c=Ve,i=function(){var t,e,s;t=Ve,r.substr(Ve,3)===V?(e=V,Ve+=3):(e=n,0===nn&&fn(rr));e!==n&&as()!==n?((s=Tn())===n&&(s=null),s!==n&&cs()!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n);return t}(),i!==n&&(c,i=function(r,t){let e=r.pop();if(!t)return["exists",{ref:[...r,{id:e}]}];let n=[];for(let r=0,s=0;r<t.length;++r){let u=t[r];u.ref&&0===u.ref.length&&"="===t[r+1]?n[s++]={func:"contains",args:[{ref:e},t[r+=2]]}:n[s++]=u}return n.length<t.length?(e=r.pop(),["exists",{ref:[...r,{id:e,where:n}]}]):["exists",{ref:[...r,{id:e,where:t}]}]}(e,i)),(c=i)===n&&(c=Ve,i=function(){var t,e,s;t=Ve,r.substr(Ve,3)===tr?(e=tr,Ve+=3):(e=n,0===nn&&fn(er));e!==n&&as()!==n&&(s=Tn())!==n&&cs()!==n?(t,t=e=s):(Ve=t,t=n);return t}(),i!==n&&(c,i=function(r,t){let e=r.pop();return["not","exists",{ref:[...r,{id:e,where:["not",{xpr:[...t]}]}]}]}(e,i)),c=i),c!==n?(t,t=e=c):(Ve=t,t=n)):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;return t}function Sn(){var r,t,e,s,u,o,a,c,i;if(r=Ve,t=Ve,(e=Un())===n&&(e=null),e!==n&&(t,e=(c=e)?[c]:[]),(t=e)!==n)if(e=Ve,(s=as())!==n&&(u=Sn())!==n&&(o=cs())!==n?(e,i=u,e=s=void t.push("(",...i,")")):(Ve=e,e=n),e===n&&(e=Ve,(s=jn())!==n&&(e,s=function(r,t){r.push(...t)}(t,s)),(e=s)===n&&(e=Ve,(s=Fn())!==n&&(e,s=function(r,t){r.push(t)}(t,s)),(e=s)===n&&(e=Ve,(s=Bn())!==n&&(e,s=function(r,t){r.push(...t)}(t,s)),(e=s)===n&&(e=Ve,(s=Zn())!==n&&(e,s=Q(t,s)),e=s)))),e!==n){for(s=[],u=Ve,(o=qn())===n&&(o=In()),o!==n&&(a=Sn())!==n?(u,u=o=G(t,o,a)):(Ve=u,u=n);u!==n;)s.push(u),u=Ve,(o=qn())===n&&(o=In()),o!==n&&(a=Sn())!==n?(u,u=o=G(t,o,a)):(Ve=u,u=n);s!==n?(r,r=t):(Ve=r,r=n)}else Ve=r,r=n;else Ve=r,r=n;return r}function Tn(){var t,e,s,u;return t=Ve,(e=es())!==n?(58===r.charCodeAt(Ve)?(s=H,Ve++):(s=n,0===nn&&fn(K)),s!==n&&(u=Sn())!==n?(t,t=e=_s(e,u)):(Ve=t,t=n)):(Ve=t,t=n),t}function _n(){var t,e,s,u,o,a;return t=Ve,e=Ve,(s=Bn())!==n&&(e,s=function(){const r=new Error("ORDERBY_LAMBDA_UNSUPPORTED");throw r.statusCode=501,r}()),(e=s)===n&&(e=Fn())===n&&(e=kn()),e!==n?(s=Ve,fs()!==n?(u=Ve,"asc"===r.substr(Ve,3)?(o="asc",Ve+=3):(o=n,0===nn&&fn(nr)),o===n&&(r.substr(Ve,4)===sr?(o=sr,Ve+=4):(o=n,0===nn&&fn(ur))),(u=o!==n?r.substring(u,Ve):o)!==n?(s,s=u):(Ve=s,s=n)):(Ve=s,s=n),s===n&&(s=null),s!==n?(t,t=e=ls(e,(a=s)&&{sort:a})):(Ve=t,t=n)):(Ve=t,t=n),t}function On(){var t,e,s,u,c,i;if(t=Ve,(e=Yn())!==n){for(s=[],u=Ve,47===r.charCodeAt(Ve)?(c=o,Ve++):(c=n,0===nn&&fn(a)),c!==n&&(i=Yn())!==n?(u,u=c=or(0,i)):(Ve=u,u=n);u!==n;)s.push(u),u=Ve,47===r.charCodeAt(Ve)?(c=o,Ve++):(c=n,0===nn&&fn(a)),c!==n&&(i=Yn())!==n?(u,u=c=or(0,i)):(Ve=u,u=n);s!==n?(t,t=e=function(r,t){if(void 0!==r){t=Array.isArray(t)?t:[t];for(let e of t)for(const t in e)if("limit"===t&&e.limit&&r.limit&&r.limit.offset&&e.limit.rows)r.limit.rows=e.limit.rows;else if(r[t]||"groupBy"===t&&(r.where||r.search)||"aggregate"===t&&"groupBy"in r&&!("groupBy"in e)){let n=r;r={apply:n},"limit"===t&&e[t].offset&&n.limit&&n.limit.offset&&n.limit.offset.val&&(e[t].offset+=n.limit.offset.val),n=r,n[t]=e[t]}else r[t]=e[t];return{apply:r}}}(e,s)):(Ve=t,t=n)}else Ve=t,t=n;return t}function Rn(){var t,e,s;return nn++,t=Ve,64===r.charCodeAt(Ve)?(e="@",Ve++):(e=n,0===nn&&fn(hr)),e!==n&&(s=es())!==n?(t,t=e="@"+s):(Ve=t,t=n),nn--,t===n&&(e=n,0===nn&&fn(lr)),t}function jn(){var t,e,s,u,o,a;return t=Ve,(e=Nn())!==n&&fs()!==n?(s=Ve,"eq"===r.substr(Ve,2)?(u="eq",Ve+=2):(u=n,0===nn&&fn(gr)),u===n&&("ne"===r.substr(Ve,2)?(u="ne",Ve+=2):(u=n,0===nn&&fn(vr)),u===n&&("lt"===r.substr(Ve,2)?(u="lt",Ve+=2):(u=n,0===nn&&fn(mr)),u===n&&("gt"===r.substr(Ve,2)?(u="gt",Ve+=2):(u=n,0===nn&&fn(br)),u===n&&("le"===r.substr(Ve,2)?(u="le",Ve+=2):(u=n,0===nn&&fn(yr)),u===n&&("ge"===r.substr(Ve,2)?(u="ge",Ve+=2):(u=n,0===nn&&fn(Cr))))))),(s=u!==n?r.substring(s,Ve):u)!==n&&(u=fs())!==n&&(o=Nn())!==n?(t,t=e=[e,{eq:"=",ne:"!=",lt:"<",gt:">",le:"<=",ge:">="}[a=s]||a,o]):(Ve=t,t=n)):(Ve=t,t=n),t}function Zn(){var t,e,s,u;return t=Ve,(e=Nn())!==n&&fs()!==n?("in"===r.substr(Ve,2)?(s="in",Ve+=2):(s=n,0===nn&&fn(wr)),s!==n&&fs()!==n?(u=function(){var t,e,s,u,o,a,c;if(nn++,t=Ve,as()!==n){if(e=Ve,(s=zn())!==n){for(u=[],o=Ve,44===r.charCodeAt(Ve)?(a=Yr,Ve++):(a=n,0===nn&&fn(Xr)),a!==n&&(c=zn())!==n?(o,o=a=Jr(0,c)):(Ve=o,o=n);o!==n;)u.push(o),o=Ve,44===r.charCodeAt(Ve)?(a=Yr,Ve++):(a=n,0===nn&&fn(Xr)),a!==n&&(c=zn())!==n?(o,o=a=Jr(0,c)):(Ve=o,o=n);u!==n?(e,i=u,e=s=[s,...i]):(Ve=e,e=n)}else Ve=e,e=n;e!==n&&(s=cs())!==n?(t,t={list:e}):(Ve=t,t=n)}else Ve=t,t=n;var i;nn--,t===n&&(n,0===nn&&fn(Ir));return t}(),u!==n?(t,t=e=[e,"in",u]):(Ve=t,t=n)):(Ve=t,t=n)):(Ve=t,t=n),t}function Nn(){var t;return(t=function(){var t,e,s,u,c,i,h;nn++,t=Ve,e=[],s=Ve,(u=es())!==n?(c=Ve,(i=as())!==n&&(h=An())!==n&&cs()!==n?(c,c=i=Er(0,h)):(Ve=c,c=n),c===n&&(c=null),c!==n?(47===r.charCodeAt(Ve)?(i=o,Ve++):(i=n,0===nn&&fn(a)),i!==n?(s,s=u=$r(u,c)):(Ve=s,s=n)):(Ve=s,s=n)):(Ve=s,s=n);if(s!==n)for(;s!==n;)e.push(s),s=Ve,(u=es())!==n?(c=Ve,(i=as())!==n&&(h=An())!==n&&cs()!==n?(c,c=i=Er(0,h)):(Ve=c,c=n),c===n&&(c=null),c!==n?(47===r.charCodeAt(Ve)?(i=o,Ve++):(i=n,0===nn&&fn(a)),i!==n?(s,s=u=$r(u,c)):(Ve=s,s=n)):(Ve=s,s=n)):(Ve=s,s=n);else e=n;e!==n?(r.substr(Ve,6)===f?(s=f,Ve+=6):(s=n,0===nn&&fn(l)),s!==n?(t,t=e={func:"count",as:"$count",args:[{ref:e}]}):(Ve=t,t=n)):(Ve=t,t=n);nn--,t===n&&(e=n,0===nn&&fn(xr));return t}())===n&&(t=Fn())===n&&(t=zn())===n&&(t=kn())===n&&(t=Dn())===n&&(t=Pn())===n&&(t=function(){var t,e,s,u,o;nn++,t=Ve,91===r.charCodeAt(Ve)?(e=Dr,Ve++):(e=n,0===nn&&fn(Pr));if(e!==n){for(s=Ve,u=[],qr.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Mr));o!==n;)u.push(o),qr.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Mr));(s=u!==n?r.substring(s,Ve):u)!==n?(93===r.charCodeAt(Ve)?(u=Fr,Ve++):(u=n,0===nn&&fn(Ur)),u!==n?(t,t=e={list:s.replace(/"/g,"").split(",").map((r=>({val:r})))}):(Ve=t,t=n)):(Ve=t,t=n)}else Ve=t,t=n;nn--,t===n&&(e=n,0===nn&&fn(Ir));return t}()),t}function kn(){var t,e,s,u,c,i,f,l;if(nn++,t=Ve,(e=es())!==n){for(s=[],u=Ve,47===r.charCodeAt(Ve)?(c=o,Ve++):(c=n,0===nn&&fn(a)),c!==n&&(i=es())!==n?(u,u=c=Br(0,i)):(Ve=u,u=n);u!==n;)s.push(u),u=Ve,47===r.charCodeAt(Ve)?(c=o,Ve++):(c=n,0===nn&&fn(a)),c!==n&&(i=es())!==n?(u,u=c=Br(0,i)):(Ve=u,u=n);s!==n?(t,l=s,t=e="null"===(f=e)?{val:null}:{ref:[f,...l]}):(Ve=t,t=n)}else Ve=t,t=n;return nn--,t===n&&(e=n,0===nn&&fn(Lr)),t}function zn(){var t,e,s;return t=Ve,(e=Vn())===n&&(e=function(){var t,e,s,u,o,a,c,i,f,l,h,p,A,d,g,v,m,b,y,C,w,x,E,$,L;nn++,t=Ve,e=Ve,s=Ve,u=[],pe.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Ae));if(o!==n)for(;o!==n;)u.push(o),pe.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Ae));else u=n;if(u!==n)if(45===r.charCodeAt(Ve)?(o=de,Ve++):(o=n,0===nn&&fn(ge)),o!==n)if(pe.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Ae)),a!==n)if(pe.test(r.charAt(Ve))?(c=r.charAt(Ve),Ve++):(c=n,0===nn&&fn(Ae)),c!==n)if(45===r.charCodeAt(Ve)?(i=de,Ve++):(i=n,0===nn&&fn(ge)),i!==n)if(pe.test(r.charAt(Ve))?(f=r.charAt(Ve),Ve++):(f=n,0===nn&&fn(Ae)),f!==n)if(pe.test(r.charAt(Ve))?(l=r.charAt(Ve),Ve++):(l=n,0===nn&&fn(Ae)),l!==n){if(h=Ve,84===r.charCodeAt(Ve)?(p="T",Ve++):(p=n,0===nn&&fn(ve)),p!==n)if(pe.test(r.charAt(Ve))?(A=r.charAt(Ve),Ve++):(A=n,0===nn&&fn(Ae)),A!==n)if(pe.test(r.charAt(Ve))?(d=r.charAt(Ve),Ve++):(d=n,0===nn&&fn(Ae)),d!==n)if(58===r.charCodeAt(Ve)?(g=H,Ve++):(g=n,0===nn&&fn(K)),g!==n)if(pe.test(r.charAt(Ve))?(v=r.charAt(Ve),Ve++):(v=n,0===nn&&fn(Ae)),v!==n)if(pe.test(r.charAt(Ve))?(m=r.charAt(Ve),Ve++):(m=n,0===nn&&fn(Ae)),m!==n){if(b=Ve,58===r.charCodeAt(Ve)?(y=H,Ve++):(y=n,0===nn&&fn(K)),y!==n)if(pe.test(r.charAt(Ve))?(C=r.charAt(Ve),Ve++):(C=n,0===nn&&fn(Ae)),C!==n)if(pe.test(r.charAt(Ve))?(w=r.charAt(Ve),Ve++):(w=n,0===nn&&fn(Ae)),w!==n){if(x=Ve,46===r.charCodeAt(Ve)?(E=".",Ve++):(E=n,0===nn&&fn(be)),E!==n){if($=[],pe.test(r.charAt(Ve))?(L=r.charAt(Ve),Ve++):(L=n,0===nn&&fn(Ae)),L!==n)for(;L!==n;)$.push(L),pe.test(r.charAt(Ve))?(L=r.charAt(Ve),Ve++):(L=n,0===nn&&fn(Ae));else $=n;$!==n?x=E=[E,$]:(Ve=x,x=n)}else Ve=x,x=n;x===n&&(x=null),x!==n?b=y=[y,C,w,x]:(Ve=b,b=n)}else Ve=b,b=n;else Ve=b,b=n;else Ve=b,b=n;b===n&&(b=null),b!==n?(90===r.charCodeAt(Ve)?(y="Z",Ve++):(y=n,0===nn&&fn(ye)),y===n&&(y=Ve,43===r.charCodeAt(Ve)?(C="+",Ve++):(C=n,0===nn&&fn(Ce)),C===n&&(45===r.charCodeAt(Ve)?(C=de,Ve++):(C=n,0===nn&&fn(ge))),C!==n?(pe.test(r.charAt(Ve))?(w=r.charAt(Ve),Ve++):(w=n,0===nn&&fn(Ae)),w!==n?(pe.test(r.charAt(Ve))?(x=r.charAt(Ve),Ve++):(x=n,0===nn&&fn(Ae)),x!==n?(58===r.charCodeAt(Ve)?(E=H,Ve++):(E=n,0===nn&&fn(K)),E!==n?(pe.test(r.charAt(Ve))?($=r.charAt(Ve),Ve++):($=n,0===nn&&fn(Ae)),$!==n?(pe.test(r.charAt(Ve))?(L=r.charAt(Ve),Ve++):(L=n,0===nn&&fn(Ae)),L!==n?y=C=[C,w,x,E,$,L]:(Ve=y,y=n)):(Ve=y,y=n)):(Ve=y,y=n)):(Ve=y,y=n)):(Ve=y,y=n)):(Ve=y,y=n)),y===n&&(y=null),y!==n?h=p=[p,A,d,g,v,m,b,y]:(Ve=h,h=n)):(Ve=h,h=n)}else Ve=h,h=n;else Ve=h,h=n;else Ve=h,h=n;else Ve=h,h=n;else Ve=h,h=n;else Ve=h,h=n;h===n&&(h=null),h!==n?s=u=[u,o,a,c,i,f,l,h]:(Ve=s,s=n)}else Ve=s,s=n;else Ve=s,s=n;else Ve=s,s=n;else Ve=s,s=n;else Ve=s,s=n;else Ve=s,s=n;else Ve=s,s=n;e=s!==n?r.substring(e,Ve):s;e!==n&&(t,e=function(r){if(r.split("-")[0].length>4)throw Object.assign(new Error(`The type 'Edm.DateTimeOffset' is not compatible with '${r}'`),{statusCode:400});return r}(e));nn--,(t=e)===n&&(e=n,0===nn&&fn(he));return t}()),e!==n&&(t,e=Sr(e)),(t=e)===n&&(t=Ve,(e=ns())!==n&&(t,e=Sr(e)),(t=e)===n&&(t=Ve,e=function(){var t,e,s,u,o,a,c,i,f,l,h;nn++,t=Ve,e=Ve,nn++,s=function(){var t,e,s;t=Ve,e=[],pe.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Ae));if(s!==n)for(;s!==n;)e.push(s),pe.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Ae));else e=n;e!==n?(45===r.charCodeAt(Ve)?(s=de,Ve++):(s=n,0===nn&&fn(ge)),s!==n?t=e=[e,s]:(Ve=t,t=n)):(Ve=t,t=n);return t}(),nn--,s===n?e=void 0:(Ve=e,e=n);if(e!==n){if(s=Ve,u=Ve,xe.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Ee)),o===n&&(o=null),o!==n){if(a=[],pe.test(r.charAt(Ve))?(c=r.charAt(Ve),Ve++):(c=n,0===nn&&fn(Ae)),c!==n)for(;c!==n;)a.push(c),pe.test(r.charAt(Ve))?(c=r.charAt(Ve),Ve++):(c=n,0===nn&&fn(Ae));else a=n;if(a!==n){if(c=Ve,46===r.charCodeAt(Ve)?(i=me,Ve++):(i=n,0===nn&&fn(be)),i!==n){if(f=[],pe.test(r.charAt(Ve))?(l=r.charAt(Ve),Ve++):(l=n,0===nn&&fn(Ae)),l!==n)for(;l!==n;)f.push(l),pe.test(r.charAt(Ve))?(l=r.charAt(Ve),Ve++):(l=n,0===nn&&fn(Ae));else f=n;f!==n?c=i=[i,f]:(Ve=c,c=n)}else Ve=c,c=n;if(c===n&&(c=null),c!==n){if(i=Ve,101===r.charCodeAt(Ve)?(f="e",Ve++):(f=n,0===nn&&fn($e)),f!==n){if(l=[],pe.test(r.charAt(Ve))?(h=r.charAt(Ve),Ve++):(h=n,0===nn&&fn(Ae)),h!==n)for(;h!==n;)l.push(h),pe.test(r.charAt(Ve))?(h=r.charAt(Ve),Ve++):(h=n,0===nn&&fn(Ae));else l=n;l!==n?i=f=[f,l]:(Ve=i,i=n)}else Ve=i,i=n;i===n&&(i=null),i!==n?u=o=[o,a,c,i]:(Ve=u,u=n)}else Ve=u,u=n}else Ve=u,u=n}else Ve=u,u=n;(s=u!==n?r.substring(s,Ve):u)!==n?(t,t=e=ms(s)):(Ve=t,t=n)}else Ve=t,t=n;nn--,t===n&&(e=n,0===nn&&fn(we));return t}(),e!==n&&(t,e="number"==typeof(s=e)?{val:s}:{val:s,literal:"number"}),(t=e)===n&&(t=Ve,(e=rs())!==n&&(t,e=Sr(e)),(t=e)===n&&(t=Ve,e=function(){var t,e,s,u,o,a;nn++,t=Ve,r.substr(Ve,7)===Ue?(e=Ue,Ve+=7):(e=n,0===nn&&fn(qe));if(e!==n){if(s=Ve,u=Ve,o=[],Me.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Ie)),a!==n)for(;a!==n;)o.push(a),Me.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Ie));else o=n;o!==n?(r.substr(Ve,2)===Ye?(a=Ye,Ve+=2):(a=n,0===nn&&fn(Xe)),a===n&&(61===r.charCodeAt(Ve)?(a=v,Ve++):(a=n,0===nn&&fn(m))),a===n&&(a=null),a!==n?u=o=[o,a]:(Ve=u,u=n)):(Ve=u,u=n),(s=u!==n?r.substring(s,Ve):u)!==n?(39===r.charCodeAt(Ve)?(u=Gt,Ve++):(u=n,0===nn&&fn(Ht)),u!==n?(t,t=e=bs(s)):(Ve=t,t=n)):(Ve=t,t=n)}else Ve=t,t=n;nn--,t===n&&(e=n,0===nn&&fn(Fe));return t}(),e!==n&&(t,e=Sr(e)),(t=e)===n&&(t=Ve,(e=Rn())!==n&&(t,e=Sr(e)),(t=e)===n&&(t=function(){var t,e;nn++,t=Ve,r.substr(Ve,4)===_r?(e=_r,Ve+=4):(e=n,0===nn&&fn(Or));e!==n&&(t,e={val:null});nn--,(t=e)===n&&(e=n,0===nn&&fn(Tr));return t}())))))),t}function Dn(){var t,e,s,u,o,a;if(nn++,t=Ve,e=Ve,s=Ve,123===r.charCodeAt(Ve)?(u="{",Ve++):(u=n,0===nn&&fn(jr)),u!==n){for(o=[],(a=Dn())===n&&(Zr.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Nr)));a!==n;)o.push(a),(a=Dn())===n&&(Zr.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Nr)));o!==n?(125===r.charCodeAt(Ve)?(a="}",Ve++):(a=n,0===nn&&fn(kr)),a!==n?s=u=[u,o,a]:(Ve=s,s=n)):(Ve=s,s=n)}else Ve=s,s=n;return(e=s!==n?r.substring(e,Ve):s)!==n&&(t,e=Sr(e)),nn--,(t=e)===n&&(e=n,0===nn&&fn(Rr)),t}function Pn(){var t,e,s,u,o,a,c,i;if(nn++,t=Ve,e=Ve,s=Ve,91===r.charCodeAt(Ve)?(u=Dr,Ve++):(u=n,0===nn&&fn(Pr)),u!==n&&(o=is())!==n?(93===r.charCodeAt(Ve)?(a=Fr,Ve++):(a=n,0===nn&&fn(Ur)),a!==n?s=u=[u,o,a]:(Ve=s,s=n)):(Ve=s,s=n),s===n)if(s=Ve,91===r.charCodeAt(Ve)?(u=Dr,Ve++):(u=n,0===nn&&fn(Pr)),u!==n)if((o=is())!==n)if(123===r.charCodeAt(Ve)?(a="{",Ve++):(a=n,0===nn&&fn(jr)),a!==n){for(c=[],(i=Pn())===n&&(qr.test(r.charAt(Ve))?(i=r.charAt(Ve),Ve++):(i=n,0===nn&&fn(Mr)));i!==n;)c.push(i),(i=Pn())===n&&(qr.test(r.charAt(Ve))?(i=r.charAt(Ve),Ve++):(i=n,0===nn&&fn(Mr)));c!==n?(93===r.charCodeAt(Ve)?(i=Fr,Ve++):(i=n,0===nn&&fn(Ur)),i!==n?s=u=[u,o,a,c,i]:(Ve=s,s=n)):(Ve=s,s=n)}else Ve=s,s=n;else Ve=s,s=n;else Ve=s,s=n;return(e=s!==n?r.substring(e,Ve):s)!==n&&(t,e=Sr(e)),nn--,(t=e)===n&&(e=n,0===nn&&fn(zr)),t}function Fn(){var t,e,s;return t=Ve,e=function(){var t,e,s;if(nn++,t=Ve,e=[],Wr.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Gr)),s!==n)for(;s!==n;)e.push(s),Wr.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Gr));else e=n;return t=e!==n?r.substring(t,Ve):e,nn--,t===n&&(e=n,0===nn&&fn(Qr)),t}(),e!==n&&as()!==n?(s=function(){var r,t,e,s,u;if(r=Ve,(t=Nn())!==n){for(e=[],s=Ve,os()!==n&&(u=Nn())!==n?(s,s=Hr(0,u)):(Ve=s,s=n);s!==n;)e.push(s),s=Ve,os()!==n&&(u=Nn())!==n?(s,s=Hr(0,u)):(Ve=s,s=n);e!==n?(r,r=t={a:t,more:e}):(Ve=r,r=n)}else Ve=r,r=n;return r}(),s!==n&&cs()!==n?(t,t=e=function(r,t){if(hs&&!(r.toLowerCase()in hs.functions))throw Object.assign(new Error(`"${r}" is an unknown function in OData URL spec (strict mode)`),{statusCode:400});return{func:r.toLowerCase(),args:[t.a,...t.more]}}(e,s)):(Ve=t,t=n)):(Ve=t,t=n),t}function Un(){var t,e;return t=Ve,is()!==n?("not"===r.substr(Ve,3).toLowerCase()?(e=r.substr(Ve,3),Ve+=3):(e=n,0===nn&&fn(st)),e!==n&&fs()!==n?(t,t="not"):(Ve=t,t=n)):(Ve=t,t=n),t}function qn(){var t,e;return t=Ve,fs()!==n?("and"===r.substr(Ve,3).toLowerCase()?(e=r.substr(Ve,3),Ve+=3):(e=n,0===nn&&fn(ut)),e!==n&&fs()!==n?(t,t="and"):(Ve=t,t=n)):(Ve=t,t=n),t}function Mn(){var r,t;return r=Ve,(t=fs())!==n&&(r,t="and"),r=t}function In(){var t,e;return t=Ve,fs()!==n?("or"===r.substr(Ve,2).toLowerCase()?(e=r.substr(Ve,2),Ve+=2):(e=n,0===nn&&fn(ot)),e!==n&&fs()!==n?(t,t="or"):(Ve=t,t=n)):(Ve=t,t=n),t}function Yn(){var t,e,s;return t=Ve,r.substr(Ve,9)===at?(e=at,Ve+=9):(e=n,0===nn&&fn(ct)),e!==n?(s=function(){var r,t,e,s,u;if(r=Ve,as()!==n)if(is()!==n)if((t=Xn())!==n){for(e=[],s=Ve,is()!==n&&os()!==n&&is()!==n&&(u=Xn())!==n?(s,s=_t(0,u)):(Ve=s,s=n);s!==n;)e.push(s),s=Ve,is()!==n&&os()!==n&&is()!==n&&(u=Xn())!==n?(s,s=_t(0,u)):(Ve=s,s=n);e!==n&&(s=is())!==n&&cs()!==n?(r,o=e,r={aggregate:[t,...o]}):(Ve=r,r=n)}else Ve=r,r=n;else Ve=r,r=n;else Ve=r,r=n;var o;return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,7)===it?(e=it,Ve+=7):(e=n,0===nn&&fn(ft)),e!==n?(s=function(){var r,t,e,s,u,o,a,c;if(r=Ve,(t=as())!==n)if(as()!==n)if((e=Hn())!==n){for(s=[],u=Ve,(o=os())!==n&&(a=Hn())!==n?(u,u=o=_t(0,a)):(Ve=u,u=n);u!==n;)s.push(u),u=Ve,(o=os())!==n&&(a=Hn())!==n?(u,u=o=_t(0,a)):(Ve=u,u=n);s!==n?(u=Ve,(o=cs())!==n&&(u,i=s,o={groupBy:[e,...i]}),(u=o)!==n?(o=Ve,(a=os())!==n&&(c=On())!==n?(o,o=a=c):(Ve=o,o=n),o===n&&(o=null),o!==n&&(a=cs())!==n?(r,t=function(r,t,e){let n={};return n=e?{groupBy:[r,...t],...e.apply}:{groupBy:[r,...t]},n}(e,s,o),r=t):(Ve=r,r=n)):(Ve=r,r=n)):(Ve=r,r=n)}else Ve=r,r=n;else Ve=r,r=n;else Ve=r,r=n;var i;return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,6)===lt?(e=lt,Ve+=6):(e=n,0===nn&&fn(ht)),e!==n?(s=function(){var r,t,e;r=Ve,as()!==n&&is()!==n?(t=Ve,(e=$n())!==n&&t,(t=e)!==n&&(e=is())!==n&&cs()!==n?(r,r={where:t}):(Ve=r,r=n)):(Ve=r,r=n);return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,6)===pt?(e=pt,Ve+=6):(e=n,0===nn&&fn(At)),e!==n?(s=function(){var r,t,e;r=Ve,as()!==n&&is()!==n?(t=Ve,(e=xn())!==n&&(t,e=function(r){if(r)return r}(e)),(t=e)!==n&&(e=is())!==n&&cs()!==n?(r,r={search:t}):(Ve=r,r=n)):(Ve=r,r=n);return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,6)===dt?(e=dt,Ve+=6):(e=n,0===nn&&fn(gt)),e!==n?(s=function(){var r,t,e,s,u;if(r=Ve,as()!==n)if(is()!==n)if((t=On())!==n){if(e=[],s=Ve,is()!==n&&os()!==n&&is()!==n&&(u=On())!==n?(s,s=Ft(0,u)):(Ve=s,s=n),s!==n)for(;s!==n;)e.push(s),s=Ve,is()!==n&&os()!==n&&is()!==n&&(u=On())!==n?(s,s=Ft(0,u)):(Ve=s,s=n);else e=n;e!==n&&(s=is())!==n&&cs()!==n?(r,o=e,r={concat:[t,...o]}):(Ve=r,r=n)}else Ve=r,r=n;else Ve=r,r=n;else Ve=r,r=n;var o;return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,7)===vt?(e=vt,Ve+=7):(e=n,0===nn&&fn(mt)),e!==n?(s=function(){var r,t,e,s,u,o,a,c,i,f;if(r=Ve,(t=as())!==n)if((e=is())!==n)if((s=Kn())!==n){for(u=[],o=Ve,(a=is())!==n&&(c=os())!==n&&(i=is())!==n&&(f=Kn())!==n?o=a=[a,c,i,f]:(Ve=o,o=n);o!==n;)u.push(o),o=Ve,(a=is())!==n&&(c=os())!==n&&(i=is())!==n&&(f=Kn())!==n?o=a=[a,c,i,f]:(Ve=o,o=n);u!==n&&(o=is())!==n&&(a=cs())!==n?r=t=[t,e,s,u,o,a]:(Ve=r,r=n)}else Ve=r,r=n;else Ve=r,r=n;else Ve=r,r=n;return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,"top"===r.substr(Ve,3)?(e="top",Ve+=3):(e=n,0===nn&&fn(bt)),e!==n?(s=function(){var r,t;r=Ve,as()!==n&&is()!==n&&(t=Cn())!==n&&is()!==n&&cs()!==n?(r,r={limit:{rows:{val:t}}}):(Ve=r,r=n);return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,4)===yt?(e=yt,Ve+=4):(e=n,0===nn&&fn(Ct)),e!==n?(s=function(){var r,t;r=Ve,as()!==n&&is()!==n&&(t=wn())!==n&&is()!==n&&cs()!==n?(r,r={limit:{offset:{val:t}}}):(Ve=r,r=n);return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,r.substr(Ve,7)===wt?(e=wt,Ve+=7):(e=n,0===nn&&fn(xt)),e!==n?(s=function(){var r,t,e,s,u;if(r=Ve,as()!==n)if(is()!==n)if((t=_n())!==n){for(e=[],s=Ve,os()!==n&&(u=_n())!==n?(s,s=Mt(0,u)):(Ve=s,s=n);s!==n;)e.push(s),s=Ve,os()!==n&&(u=_n())!==n?(s,s=Mt(0,u)):(Ve=s,s=n);e!==n&&(s=is())!==n&&cs()!==n?(r,o=e,r={orderBy:[t,...o]}):(Ve=r,r=n)}else Ve=r,r=n;else Ve=r,r=n;else Ve=r,r=n;var o;return r}(),s!==n?(t,t=e=s):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,"topcount"===r.substr(Ve,8).toLowerCase()?(e=r.substr(Ve,8),Ve+=8):(e=n,0===nn&&fn(Et)),e===n&&("bottomcount"===r.substr(Ve,11).toLowerCase()?(e=r.substr(Ve,11),Ve+=11):(e=n,0===nn&&fn($t)),e===n&&("topsum"===r.substr(Ve,6).toLowerCase()?(e=r.substr(Ve,6),Ve+=6):(e=n,0===nn&&fn(Lt)),e===n&&("bottomsum"===r.substr(Ve,9).toLowerCase()?(e=r.substr(Ve,9),Ve+=9):(e=n,0===nn&&fn(Bt)),e===n&&("toppercent"===r.substr(Ve,10).toLowerCase()?(e=r.substr(Ve,10),Ve+=10):(e=n,0===nn&&fn(St)),e===n&&("bottompercent"===r.substr(Ve,13).toLowerCase()?(e=r.substr(Ve,13),Ve+=13):(e=n,0===nn&&fn(Tt))))))),e!==n?(s=function(){var r,t,e;r=Ve,as()!==n&&is()!==n&&(t=Nn())!==n&&is()!==n&&os()!==n&&is()!==n&&(e=Nn())!==n&&is()!==n&&cs()!==n?(r,r=[t,e]):(Ve=r,r=n);return r}(),s!==n?(t,t=e=function(r,t){if(!{topcount:!0,bottomcount:!0,topsum:!1,bottomsum:!1,toppercent:!1,bottompercent:!1}[r=r.toLowerCase()])throw Object.assign(new Error(`Transformation "${r}" in $apply is not yet supported.`),{statusCode:501});return{aggregate:[{func:r,args:t}]}}(e,s)):(Ve=t,t=n)):(Ve=t,t=n),t===n&&(t=Ve,e=function(){var t,e;t=Ve,r.substr(Ve,8)===Ut?(e=Ut,Ve+=8):(e=n,0===nn&&fn(qt));e!==n&&(t,e={identity:!0});return t=e}(),e!==n&&t,t=e)))))))))),t}function Xn(){var t,e,s,u;return t=Ve,e=Ve,r.substr(Ve,6)===f?(s=f,Ve+=6):(s=n,0===nn&&fn(l)),s!==n&&(u=Gn())!==n?(e,e=s={func:"count",args:[{val:1}],as:u}):(Ve=e,e=n),e===n&&(e=Jn()),e!==n&&t,t=e}function Jn(){var r,t,e,s,u;return r=Ve,(t=kn())!==n?((e=Qn())===n&&(e=null),e!==n?((s=Wn())===n&&(s=null),s!==n?((u=Gn())===n&&(u=null),u!==n?(r,r=t={func:e,args:[t],as:u}):(Ve=r,r=n)):(Ve=r,r=n)):(Ve=r,r=n)):(Ve=r,r=n),r===n&&(r=Ve,(t=es())!==n&&(e=as())!==n&&(s=Jn())!==n&&(u=cs())!==n?r=t=[t,e,s,u]:(Ve=r,r=n)),r}function Qn(){var t,e,s,u,o;if(t=Ve,fs()!==n)if(r.substr(Ve,4)===Ot?(e=Ot,Ve+=4):(e=n,0===nn&&fn(Rt)),e!==n)if(fs()!==n){if(s=Ve,u=[],Wr.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Gr)),o!==n)for(;o!==n;)u.push(o),Wr.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Gr));else u=n;(s=u!==n?r.substring(s,Ve):u)!==n?(t,t=s.toLowerCase()):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;else Ve=t,t=n;return t}function Wn(){var t,e,s,u,o,a,c;return t=Ve,(e=fs())!==n?(r.substr(Ve,4)===jt?(s=jt,Ve+=4):(s=n,0===nn&&fn(Zt)),s!==n&&(u=fs())!==n&&(o=kn())!==n&&(a=Qn())!==n?((c=Wn())===n&&(c=null),c!==n?t=e=[e,s,u,o,a,c]:(Ve=t,t=n)):(Ve=t,t=n)):(Ve=t,t=n),t}function Gn(){var t,e,s;return t=Ve,fs()!==n?("as"===r.substr(Ve,2)?(e="as",Ve+=2):(e=n,0===nn&&fn(Nt)),e!==n&&fs()!==n&&(s=es())!==n?(t,t=s):(Ve=t,t=n)):(Ve=t,t=n),t}function Hn(){var t,e;return t=Ve,e=function(){var t,e,s,u,o,a,c,i,f,l,h;t=Ve,e=Ve,r.substr(Ve,6)===kt?(s=kt,Ve+=6):(s=n,0===nn&&fn(zt));if(s!==n)if((u=as())!==n)if((o=is())!==n)if(r.substr(Ve,4)===Dt?(a=Dt,Ve+=4):(a=n,0===nn&&fn(Pt)),a===n&&(a=kn()),a!==n){if(c=[],i=Ve,(f=is())!==n&&(l=os())!==n&&(h=kn())!==n?i=f=[f,l,h]:(Ve=i,i=n),i!==n)for(;i!==n;)c.push(i),i=Ve,(f=is())!==n&&(l=os())!==n&&(h=kn())!==n?i=f=[f,l,h]:(Ve=i,i=n);else c=n;c!==n&&(i=is())!==n&&(f=cs())!==n?e=s=[s,u,o,a,c,i,f]:(Ve=e,e=n)}else Ve=e,e=n;else Ve=e,e=n;else Ve=e,e=n;else Ve=e,e=n;e!==n&&(t,e=function(r){const t=new Error("Rollup in groupby is not supported yet.");throw t.statusCode=501,t}());return t=e}(),e===n&&(e=kn()),e!==n&&t,t=e}function Kn(){var r,t,e;return r=Ve,(t=Ln())!==n&&(e=Gn())!==n?r=t=[t,e]:(Ve=r,r=n),r}function Vn(){var t,e;return nn++,t=Ve,r.substr(Ve,4)===Yt?(e=Yt,Ve+=4):(e=n,0===nn&&fn(Xt)),e===n&&(r.substr(Ve,5)===Jt?(e=Jt,Ve+=5):(e=n,0===nn&&fn(Qt))),e!==n&&(t,e="true"===e),nn--,(t=e)===n&&(e=n,0===nn&&fn(It)),t}function rs(){var t,e,s,u,o;if(nn++,t=Ve,39===r.charCodeAt(Ve)?(e=Gt,Ve++):(e=n,0===nn&&fn(Ht)),e!==n){for(s=Ve,u=[],r.substr(Ve,2)===Kt?(o=Kt,Ve+=2):(o=n,0===nn&&fn(Vt)),o===n&&(re.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(te)));o!==n;)u.push(o),r.substr(Ve,2)===Kt?(o=Kt,Ve+=2):(o=n,0===nn&&fn(Vt)),o===n&&(re.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(te)));(s=u!==n?r.substring(s,Ve):u)!==n?(39===r.charCodeAt(Ve)?(u=Gt,Ve++):(u=n,0===nn&&fn(Ht)),u!==n?(t,t=e=s.replace(/''/g,"'")):(Ve=t,t=n)):(Ve=t,t=n)}else Ve=t,t=n;return nn--,t===n&&(e=n,0===nn&&fn(Wt)),t}function ts(){var t,e,s,u,o,a;if(nn++,t=Ve,e=Ve,s=Ve,xe.test(r.charAt(Ve))?(u=r.charAt(Ve),Ve++):(u=n,0===nn&&fn(Ee)),u===n&&(u=null),u!==n){if(o=[],pe.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Ae)),a!==n)for(;a!==n;)o.push(a),pe.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Ae));else o=n;o!==n?s=u=[u,o]:(Ve=s,s=n)}else Ve=s,s=n;return(e=s!==n?r.substring(e,Ve):s)!==n&&(t,e=parseInt(e)),nn--,(t=e)===n&&(e=n,0===nn&&fn(Le)),t}function es(){var t,e,s,u,o,a,c,i;if(nn++,t=Ve,e=Ve,nn++,s=Vn(),nn--,s===n?e=void 0:(Ve=e,e=n),e!==n)if(s=Ve,nn++,u=ns(),nn--,u===n?s=void 0:(Ve=s,s=n),s!==n){if(u=Ve,o=Ve,Se.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Te)),a!==n){for(c=[],_e.test(r.charAt(Ve))?(i=r.charAt(Ve),Ve++):(i=n,0===nn&&fn(Oe));i!==n;)c.push(i),_e.test(r.charAt(Ve))?(i=r.charAt(Ve),Ve++):(i=n,0===nn&&fn(Oe));c!==n?o=a=[a,c]:(Ve=o,o=n)}else Ve=o,o=n;(u=o!==n?r.substring(u,Ve):o)!==n?(t,t=e=u):(Ve=t,t=n)}else Ve=t,t=n;else Ve=t,t=n;return nn--,t===n&&(e=n,0===nn&&fn(Be)),t}function ns(){var t,e,s,u,o,a,c,i,f,l,h,p,A,d;return nn++,t=Ve,e=Ve,(s=ss())!==n&&(u=ss())!==n?(45===r.charCodeAt(Ve)?(o=de,Ve++):(o=n,0===nn&&fn(ge)),o===n&&(o=null),o!==n&&(a=ss())!==n?(45===r.charCodeAt(Ve)?(c=de,Ve++):(c=n,0===nn&&fn(ge)),c===n&&(c=null),c!==n&&(i=ss())!==n?(45===r.charCodeAt(Ve)?(f=de,Ve++):(f=n,0===nn&&fn(ge)),f===n&&(f=null),f!==n&&(l=ss())!==n?(45===r.charCodeAt(Ve)?(h=de,Ve++):(h=n,0===nn&&fn(ge)),h===n&&(h=null),h!==n&&(p=ss())!==n&&(A=ss())!==n&&(d=ss())!==n?e=s=[s,u,o,a,c,i,f,l,h,p,A,d]:(Ve=e,e=n)):(Ve=e,e=n)):(Ve=e,e=n)):(Ve=e,e=n)):(Ve=e,e=n),t=e!==n?r.substring(t,Ve):e,nn--,t===n&&(e=n,0===nn&&fn(Re)),t}function ss(){var t,e,s,u,o,a;return nn++,t=Ve,e=Ve,Ze.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(Ne)),s!==n?(Ze.test(r.charAt(Ve))?(u=r.charAt(Ve),Ve++):(u=n,0===nn&&fn(Ne)),u!==n?(Ze.test(r.charAt(Ve))?(o=r.charAt(Ve),Ve++):(o=n,0===nn&&fn(Ne)),o!==n?(Ze.test(r.charAt(Ve))?(a=r.charAt(Ve),Ve++):(a=n,0===nn&&fn(Ne)),a!==n?e=s=[s,u,o,a]:(Ve=e,e=n)):(Ve=e,e=n)):(Ve=e,e=n)):(Ve=e,e=n),t=e!==n?r.substring(t,Ve):e,nn--,t===n&&(e=n,0===nn&&fn(je)),t}function us(){var t,e,s,u;if(t=Ve,e=Ve,s=[],ke.test(r.charAt(Ve))?(u=r.charAt(Ve),Ve++):(u=n,0===nn&&fn(ze)),u!==n)for(;u!==n;)s.push(u),ke.test(r.charAt(Ve))?(u=r.charAt(Ve),Ve++):(u=n,0===nn&&fn(ze));else s=n;return(e=s!==n?r.substring(e,Ve):s)!==n&&(t,e={val:e}),t=e}function os(){var t,e,s,u;return t=Ve,(e=is())!==n?(44===r.charCodeAt(Ve)?(s=Yr,Ve++):(s=n,0===nn&&fn(Xr)),s!==n&&(u=is())!==n?t=e=[e,s,u]:(Ve=t,t=n)):(Ve=t,t=n),t}function as(){var t,e,s,u;return t=Ve,(e=is())!==n?(40===r.charCodeAt(Ve)?(s="(",Ve++):(s=n,0===nn&&fn(Je)),s!==n&&(u=is())!==n?t=e=[e,s,u]:(Ve=t,t=n)):(Ve=t,t=n),t}function cs(){var t,e,s;return t=Ve,(e=is())!==n?(41===r.charCodeAt(Ve)?(s=")",Ve++):(s=n,0===nn&&fn(Qe)),s!==n?t=e=[e,s]:(Ve=t,t=n)):(Ve=t,t=n),t}function is(){var t,e,s;for(nn++,t=Ve,e=[],Ge.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(He));s!==n;)e.push(s),Ge.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(He));return t=e!==n?r.substring(t,Ve):e,nn--,t===n&&(e=n,0===nn&&fn(We)),t}function fs(){var t,e,s;if(nn++,t=Ve,e=[],Ge.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(He)),s!==n)for(;s!==n;)e.push(s),Ge.test(r.charAt(Ve))?(s=r.charAt(Ve),Ve++):(s=n,0===nn&&fn(He));else e=n;return t=e!==n?r.substring(t,Ve):e,nn--,t===n&&(e=n,0===nn&&fn(Ke)),t}const ls=Object.assign,{strict:hs,minimal:ps}=t,As=[];let ds,gs;const vs=["$value"],ms=t.safeNumber||function(r){const t=Number(r);return Number.isSafeInteger(t)?t:r},bs=t.standardBase64||function(r){return Buffer.from(r,"base64").toString("base64")},ys=r=>t=>r===t||r.as&&t.as&&r.as===t.as||t.as&&r.ref&&t.as===r.ref[r.ref.length-1]||r.ref&&t.ref&&r.ref.join("")===t.ref.join(""),Cs=r=>t=>{if(Array.isArray(t))return t.map(Cs(r));const e=t.ref&&r.find((r=>r.as&&r.func&&r.as===t.ref[0]));return e||t},ws=r=>t=>Array.isArray(t)?t.map(ws(r)):t.ref&&!r.find(ys(t))?{val:null}:t,xs=(r,t)=>{if(1===t.ref.length)r.find(ys(t))||r.push(t);else{const e=t.ref.shift(),n=r.find((r=>r.ref&&r.ref[0]===e));if(n)xs(n.expand,t);else{const n={ref:[e],expand:[]};xs(n.expand,t),r.push(n)}}},Es=(r,t,e=!1)=>{let n=Bs({from:r.from},t,e);if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=$s(n[t],r,e);else n=$s(n,r,e);return n},$s=(r,t,e)=>{if(!t)return r;t.apply&&delete t.apply;let n={};t.columns&&"$count"===t.columns[0].as||r.SELECT.where&&t.where||r.SELECT.limit&&t.limit||r.SELECT.orderBy&&t.orderBy||r.SELECT.search&&t.search?n.from=r:n=r.SELECT;for(const r in t)"columns"===r?(t.columns=t.columns.map((r=>n.columns&&n.columns.find((t=>r.ref&&r.ref[0]===t.as||t.ref&&r.ref&&r.ref[0]===t.ref[0]&&!r.expand))||r)),n.columns&&n.groupBy&&t.columns.push(...n.columns.filter((r=>e&&n.groupBy.find((t=>r.ref&&r.ref[0]===t.ref[0]))&&!t.columns.some((t=>t.ref&&t.ref[0]===r.as||t.ref&&r.ref&&t.ref[0]===r.ref[0]||t.as&&t.as===r.as))))||[]),n.columns=t.columns):"from"!==r&&(n[r]=t[r]);const s=[...n.columns&&n.columns.filter((r=>n.groupBy&&n.groupBy.find((t=>r.ref&&r.ref[0]===t.ref[0]))))||[],...n.columns&&n.columns.filter((r=>r&&"object"==typeof r&&"func"in r))||[]];return Ls(n,s,e),{SELECT:n}},Ls=(r,t,e)=>{t.length&&(r.columns=r.columns&&!e?r.columns.reduce(((r,e)=>{const n=t.find(ys(e));return n&&r.push(n),r}),[]):t,r.where&&(r.where=r.where.map(Cs(r.columns)),r.groupBy&&(r.having=r.where.map(ws(r.groupBy)),delete r.where)),r.columns=r.columns.reduce(((r,e)=>(e.ref&&e.ref.length>1&&t.find(ys(e))?xs(r,{ref:[...e.ref]}):r.push(e),r)),[]))},Bs=(r,t,e)=>{if(!t)return;if(r.apply&&delete r.apply,t.identity&&r.from.SELECT&&(r=r.from.SELECT),(t.apply||t.where&&r.where||t.search&&r.search||t.limit&&r.limit||t.orderBy&&r.orderBy)&&(r.from={SELECT:{...r}}),t.where&&(r.where=t.where),t.search&&(r.search=t.search),t.groupBy){r.groupBy=[];for(const e of t.groupBy)r.groupBy.find(ys(e))||r.groupBy.push(e)}t.limit&&(r.limit=t.limit),t.orderBy&&(r.orderBy=t.orderBy);const n=[...r.groupBy||[],...t.aggregate||[]];if(Ls(r,n,e),t.apply&&r.from&&Bs(r.from.SELECT,t.apply),t.concat&&Array.isArray(t.concat)){const e=[];for(let n of t.concat){n.from=1===Object.keys(r).length?r.from:{SELECT:r};const t=Bs(n,n.apply);Array.isArray(t)?e.push(...t):e.push(t)}r=e}return Array.isArray(r)?r:{SELECT:r}},Ss=r=>{ds.limit&&ds.limit.offset&&ds.limit.offset.val&&(r+=ds.limit.offset.val),(ds.limit||(ds.limit={})).offset={val:r}},Ts=(r,t=!1)=>{ds.orderBy=ds.orderBy?t?[r,...ds.orderBy]:[...ds.orderBy,r]:[r]},_s=(r,t)=>{for(const e of t)e.ref&&e.ref[0]===r&&e.ref.shift(),e.func&&_s(r,e.args);return t};if((e=u())!==n&&Ve===r.length)return e;throw e!==n&&Ve<r.length&&fn({type:"end"}),ln(en,tn<r.length?r.charAt(tn):null,tn<r.length?cn(tn,tn+1):cn(tn,tn))}peg$subclass(peg$SyntaxError,Error),peg$SyntaxError.buildMessage=function(r,t){var e={literal:function(r){return'"'+s(r.text)+'"'},class:function(r){var t,e="";for(t=0;t<r.parts.length;t++)e+=r.parts[t]instanceof Array?u(r.parts[t][0])+"-"+u(r.parts[t][1]):u(r.parts[t]);return"["+(r.inverted?"^":"")+e+"]"},any:function(r){return"any character"},end:function(r){return"end of input"},other:function(r){return r.description}};function n(r){return r.charCodeAt(0).toString(16).toUpperCase()}function s(r){return r.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(r){return"\\x0"+n(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+n(r)}))}function u(r){return r.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(r){return"\\x0"+n(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+n(r)}))}return"Expected "+function(r){var t,n,s,u=new Array(r.length);for(t=0;t<r.length;t++)u[t]=(s=r[t],e[s.type](s));if(u.sort(),u.length>0){for(t=1,n=1;t<u.length;t++)u[t-1]!==u[t]&&(u[n]=u[t],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]}}(r)+" but "+function(r){return r?'"'+s(r)+'"':"end of input"}(t)+" found."},module.exports={SyntaxError:peg$SyntaxError,parse:peg$parse};
1
+ "use strict";function peg$subclass(r,t){function e(){this.constructor=r}e.prototype=t.prototype,r.prototype=new e}function peg$SyntaxError(r,t,e,n){this.message=r,this.expected=t,this.found=e,this.location=n,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,peg$SyntaxError)}function peg$parse(r,t){t=void 0!==t?t:{};var e,n={},s={ODataRelativeURI:gn},u=gn,o="/",a=fn("/",!1),c=fn("?",!1),i=fn("&",!1),f="$count",l=fn("$count",!1),h="$ref",p=fn("$ref",!1),A="$value",d=fn("$value",!1),v=function(r){return[r]},g="=",m=fn("=",!1),b="$skiptoken=",y=fn("$skiptoken=",!1),C="$select=",w=fn("$select=",!1),$="$expand=",x=fn("$expand=",!1),E="$filter=",L=fn("$filter=",!1),B="$orderby=",S=fn("$orderby=",!1),T=function(r,t){Rs(t)},j="$top=",O=fn("$top=",!1),Z="$skip=",k=fn("$skip=",!1),z="$search=",_=fn("$search=",!1),F="$count=",R=fn("$count=",!1),q="$apply=",I=fn("$apply=",!1),N="$at",D=fn("$at",!1),U="$from",M=fn("$from",!1),P="$toInclusive",G=fn("$toInclusive",!1),H="$to",J=fn("$to",!1),K=fn("*",!1),Q="/$count",V=fn("/$count",!1),W=fn(";",!1),X=function(r){return r?[r]:[]},Y=function(r,t){r.push({xpr:t})},rr=function(r,t){r.push({val:t})},tr=function(r,t,e){r.push(t,...e)},er=function(r,t){r.push(t)},nr=function(r,t,e){r.push(t,...e)},sr=":",ur=fn(":",!1),or="any",ar=fn("any",!1),cr="all",ir=fn("all",!1),fr=fn("asc",!1),lr="desc",hr=fn("desc",!1),pr=function(r,t){return t},Ar="[",dr=fn("[",!1),vr="]",gr=fn("]",!1),mr=/^[a-zA-Z0-9\-_.~]/,br=ln([["a","z"],["A","Z"],["0","9"],"-","_",".","~"],!1,!1),yr=/^[^&]/,Cr=ln(["&"],!0,!1),wr=hn("an aliased parameter (@param)"),$r=fn("@",!1),xr="$format=",Er=fn("$format=",!1),Lr=fn("eq",!1),Br=fn("ne",!1),Sr=fn("lt",!1),Tr=fn("gt",!1),jr=fn("le",!1),Or=fn("ge",!1),Zr=fn("in",!1),kr=(fn("add",!1),fn("sub",!1),fn("mul",!1),fn("div",!1),fn("mod",!1),hn("navigation with $count")),zr=function(r,t){return t},_r=function(r,t){return t?{id:r,where:t}:r},Fr=hn("a reference"),Rr=function(r,t){return t},qr=function(r){return{val:r}},Ir=hn("null"),Nr="null",Dr=fn("null",!1),Ur=hn("a json object"),Mr=fn("{",!1),Pr=/^[^}]/,Gr=ln(["}"],!0,!1),Hr=fn("}",!1),Jr=hn("a json array"),Kr=/^[^\]]/,Qr=ln(["]"],!0,!1),Vr=hn("a list"),Wr=fn(",",!1),Xr=function(r,t){return t},Yr=hn("a function name"),rt=/^[a-zA-Z]/,tt=ln([["a","z"],["A","Z"]],!1,!1),et=function(r,t){return t},nt=function(r,t){return[r,...t]},st="contains",ut=fn("contains",!0),ot="endswith",at=fn("endswith",!0),ct="startswith",it=fn("startswith",!0),ft=fn("NOT",!0),lt=fn("AND",!0),ht=fn("OR",!0),pt="aggregate",At=fn("aggregate",!1),dt="groupby",vt=fn("groupby",!1),gt="filter",mt=fn("filter",!1),bt="search",yt=fn("search",!1),Ct="concat",wt=fn("concat",!1),$t="compute",xt=fn("compute",!1),Et=fn("top",!1),Lt="skip",Bt=fn("skip",!1),St="orderby",Tt=fn("orderby",!1),jt=fn("topcount",!0),Ot=fn("bottomcount",!0),Zt=fn("topsum",!0),kt=fn("bottomsum",!0),zt=fn("toppercent",!0),_t=fn("bottompercent",!0),Ft=function(r,t){return t},Rt="with",qt=fn("with",!1),It="from",Nt=fn("from",!1),Dt=fn("as",!1),Ut="rollup",Mt=fn("rollup",!1),Pt="$all",Gt=fn("$all",!1),Ht=function(r,t){return t},Jt="identity",Kt=fn("identity",!1),Qt=function(r,t){return t},Vt=hn("a boolean"),Wt="true",Xt=fn("true",!1),Yt="false",re=fn("false",!1),te=hn("a single quoted string"),ee="'",ne=fn("'",!1),se="''",ue=fn("''",!1),oe=/^[^']/,ae=ln(["'"],!0,!1),ce=hn("a doubled quoted string"),ie='"',fe=fn('"',!1),le='\\"',he=fn('\\"',!1),pe=/^[^"]/,Ae=ln(['"'],!0,!1),de=hn("a string"),ve=/^[^ \t\n()"&;]/,ge=ln([" ","\t","\n","(",")",'"',"&",";"],!0,!1),me=hn("a date"),be=/^[0-9]/,ye=ln([["0","9"]],!1,!1),Ce="-",we=fn("-",!1),$e=fn("T",!1),xe=fn(".",!1),Ee=fn("Z",!1),Le=fn("+",!1),Be=hn("a number"),Se=/^[+\-]/,Te=ln(["+","-"],!1,!1),je=fn("e",!1),Oe=hn("an integer"),Ze=hn("an identifier"),ke=/^[_a-zA-Z]/,ze=ln(["_",["a","z"],["A","Z"]],!1,!1),_e=/^[_a-zA-Z0-9"."]/,Fe=ln(["_",["a","z"],["A","Z"],["0","9"],'"',".",'"'],!1,!1),Re=hn("a guid"),qe=hn("a hex value"),Ie=/^[0-9a-fA-F]/,Ne=ln([["0","9"],["a","f"],["A","F"]],!1,!1),De=/^[^\/?]/,Ue=ln(["/","?"],!0,!1),Me=/^[a-zA-Z0-9\-"."_~!$'()*+,;=:@"\/""?"]/,Pe=ln([["a","z"],["A","Z"],["0","9"],"-",'"',".",'"',"_","~","!","$","'","(",")","*","+",",",";","=",":","@",'"',"/",'"','"',"?",'"'],!1,!1),Ge=hn("a binary"),He="binary'",Je=fn("binary'",!1),Ke=/^[a-zA-Z0-9\-_]/,Qe=ln([["a","z"],["A","Z"],["0","9"],"-","_"],!1,!1),Ve="==",We=fn("==",!1),Xe=fn("(",!1),Ye=fn(")",!1),rn=hn("an optional whitespace"),tn=/^[ \t\n]/,en=ln([" ","\t","\n"],!1,!1),nn=hn("a whitespace"),sn=0,un=[{line:1,column:1}],on=0,an=[],cn=0;if("startRule"in t){if(!(t.startRule in s))throw new Error("Can't start parsing from rule \""+t.startRule+'".');u=s[t.startRule]}function fn(r,t){return{type:"literal",text:r,ignoreCase:t}}function ln(r,t,e){return{type:"class",parts:r,inverted:t,ignoreCase:e}}function hn(r){return{type:"other",description:r}}function pn(t){var e,n=un[t];if(n)return n;for(e=t-1;!un[e];)e--;for(n={line:(n=un[e]).line,column:n.column};e<t;)10===r.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return un[t]=n,n}function An(r,t){var e=pn(r),n=pn(t);return{start:{offset:r,line:e.line,column:e.column},end:{offset:t,line:n.line,column:n.column}}}function dn(r){sn<on||(sn>on&&(on=sn,an=[]),an.push(r))}function vn(r,t,e){return new peg$SyntaxError(peg$SyntaxError.buildMessage(r,t),r,t,e)}function gn(){var t,e,s,u,f,l,h,p,A,d,v,g,m,b,y;if(t=sn,47===r.charCodeAt(sn)?(e=o,sn++):(e=n,0===cn&&dn(a)),e===n&&(e=null),e!==n)if(s=sn,(u=mn())!==n&&(s,u=void($s=u)),(s=u)!==n){if(u=sn,(f=gs())!==n)if(63===r.charCodeAt(sn)?(l="?",sn++):(l=n,0===cn&&dn(c)),l!==n)if((h=gs())!==n){if(p=sn,(A=yn())!==n){for(d=[],v=sn,(g=gs())!==n?(38===r.charCodeAt(sn)?(m="&",sn++):(m=n,0===cn&&dn(i)),m!==n&&(b=gs())!==n&&(y=yn())!==n?v=g=[g,m,b,y]:(sn=v,v=n)):(sn=v,v=n);v!==n;)d.push(v),v=sn,(g=gs())!==n?(38===r.charCodeAt(sn)?(m="&",sn++):(m=n,0===cn&&dn(i)),m!==n&&(b=gs())!==n&&(y=yn())!==n?v=g=[g,m,b,y]:(sn=v,v=n)):(sn=v,v=n);d!==n?p=A=[A,d]:(sn=p,p=n)}else sn=p,p=n;p===n&&(p=null),p!==n?u=f=[f,l,h,p]:(sn=u,u=n)}else sn=u,u=n;else sn=u,u=n;else sn=u,u=n;u===n&&(u=null),u!==n&&(f=gs())!==n?(t,t=e=function(){if(xs)return $s.columns=[{args:[{val:1}],as:"$count",func:"count"}],delete $s.expand,delete $s.limit,delete $s.orderBy,$s.apply?Zs($s,$s.apply):{SELECT:$s};let r;if($s.expand){$s.columns||($s.columns=["*"],r=!0);for(const r of $s.expand){const t=$s.columns.findIndex(Ss(r));t>-1&&$s.columns.splice(t,1),$s.columns.push(r)}delete $s.expand}return $s.count&&$s.apply&&($s.__countAggregated=!0),$s.apply?Zs($s,$s.apply,r):{SELECT:$s}}()):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;return t}function mn(){var t,e,s,u,c,i,g,m;return t=sn,r.substr(sn,6)===f?(e=f,sn+=6):(e=n,0===cn&&dn(l)),e!==n&&(t,e=void(xs=!0)),(t=e)===n&&(t=sn,e=sn,r.substr(sn,4)===h?(s=h,sn+=4):(s=n,0===cn&&dn(p)),s===n&&(r.substr(sn,6)===A?(s=A,sn+=6):(s=n,0===cn&&dn(d))),(e=s!==n?r.substring(e,sn):s)!==n&&(t,m=e,e=!Es.includes(m)&&{from:{ref:[m]}}),(t=e)===n&&(t=sn,e=sn,(s=fs())!==n?(u=sn,(c=ds())!==n&&(i=vs())!==n?u=c=[c,i]:(sn=u,u=n),u===n&&(u=sn,(c=ds())!==n&&(i=bn())!==n&&(g=vs())!==n?u=c=[c,i,g]:(sn=u,u=n)),u===n&&(u=null),u!==n?(c=sn,cn++,i=ps(),cn--,i===n?c=void 0:(sn=c,c=n),c!==n?e=s=[s,u,c]:(sn=e,e=n)):(sn=e,e=n)):(sn=e,e=n),e===n&&(e=sn,(s=ps())!==n&&(e,s=v(s)),e=s),e===n&&(e=null),e!==n?(s=sn,u=sn,47===r.charCodeAt(sn)?(c=o,sn++):(c=n,0===cn&&dn(a)),c!==n&&(u,c=c),(u=c)!==n?((c=mn())===n&&(c=null),c!==n?s=u=[u,c]:(sn=s,s=n)):(sn=s,s=n),s===n&&(s=null),s!==n?(t,t=e=function(r,t){if(t=t&&t[1],!r&&!t)return{from:{ref:[""]}};if(!r&&t&&t.from)return t.from.ref.unshift(""),t;const[e,n]=r,s=[];if(n?n.length>2?s.push({id:e,where:n[1].map((r=>r.val&&r.val.match&&r.val.match(/^"(.*)"$/)?{val:r.val.match(/^"(.*)"$/)[1]}:r))}):s.push({id:e,where:[]}):Cs?s.push(`${"object"==typeof e&&"val"in e?e.val:e}`):"object"==typeof e&&"string"==typeof e.val&&e.val.match(/^[1-9]\d*$|^0$/)?s.push({val:Ls(e.val)}):s.push(e),t&&t.from){const r=t.from.ref;Object.prototype.hasOwnProperty.call(r[0],"val")&&(s[s.length-1]={id:s[s.length-1],where:[r.shift()]}),s.push(...r)}const u={from:{ref:s}};return t&&t.columns&&(u.columns=t.columns),u}(e,s)):(sn=t,t=n)):(sn=t,t=n))),t}function bn(){var t,e,s,u,o,a,c;return t=sn,(e=Mn())!==n&&(t,e=v(e)),(t=e)===n&&(t=sn,(e=Un())!==n&&gs()!==n?(61===r.charCodeAt(sn)?(s=g,sn++):(s=n,0===cn&&dn(m)),s!==n&&gs()!==n&&(u=Mn())!==n?(o=sn,(a=As())!==n&&(c=bn())!==n?o=a=[a,c]:(sn=o,o=n),o===n&&(o=null),o!==n?(t,t=e=function(r,t,e){const n=[r,"=",t];return e&&n.push("and",...e[1]),n}(e,u,o)):(sn=t,t=n)):(sn=t,t=n)):(sn=t,t=n)),t}function yn(){var t,e,s,u,o;return t=sn,(e=Cn())!==n&&(t,e=void((o=e)&&o.apply&&($s.apply=o.apply))),(t=e)===n&&(t=sn,r.substr(sn,11)===b?(e=b,sn+=11):(e=n,0===cn&&dn(y)),e!==n&&(s=gs())!==n?(u=function(){var t,e,s;t=sn,(e=is())===n&&(e=null);e!==n?(s=function(){var t,e,s;t=sn,e=[],Me.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(Pe));if(s!==n)for(;s!==n;)e.push(s),Me.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(Pe));else e=n;t=e!==n?r.substring(t,sn):e;return t}(),s===n&&(s=null),s!==n?(t,u=e,t=e=void(s||Fs(u))):(sn=t,t=n)):(sn=t,t=n);var u;return t}(),u!==n?t=e=[e,s,u]:(sn=t,t=n)):(sn=t,t=n),t===n&&(t=function(){var t,e,s,u;t=sn,r.substr(sn,3)===N?(e=N,sn+=3):(e=n,0===cn&&dn(D));e===n&&(r.substr(sn,5)===U?(e=U,sn+=5):(e=n,0===cn&&dn(M)),e===n&&(r.substr(sn,12)===P?(e=P,sn+=12):(e=n,0===cn&&dn(G)),e===n&&(r.substr(sn,3)===H?(e=H,sn+=3):(e=n,0===cn&&dn(J)))));e!==n?(61===r.charCodeAt(sn)?(s=g,sn++):(s=n,0===cn&&dn(m)),s!==n&&(u=cs())!==n?t=e=[e,s,u]:(sn=t,t=n)):(sn=t,t=n);return t}(),t===n&&(t=function(){var t,e,s,u,o;t=sn,r.substr(sn,8)===xr?(e=xr,sn+=8):(e=n,0===cn&&dn(Er));if(e!==n){for(s=sn,u=[],yr.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Cr));o!==n;)u.push(o),yr.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Cr));(s=u!==n?r.substring(s,sn):u)!==n?(t,t=e=function(r){if("json"!==r.toLowerCase()){const r=new Error('Only query parameter "json" is allowed in "$format".');throw r.statusCode=501,r}}(s)):(sn=t,t=n)}else sn=t,t=n;return t}(),t===n&&(t=function(){var t,e,s,u,o;t=sn,e=[],mr.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(br));if(s!==n)for(;s!==n;)e.push(s),mr.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(br));else e=n;if(e!==n)if(61===r.charCodeAt(sn)?(s=g,sn++):(s=n,0===cn&&dn(m)),s!==n){for(u=[],yr.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Cr));o!==n;)u.push(o),yr.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Cr));u!==n?t=e=[e,s,u]:(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;return t}(),t===n&&(t=function(){var t,e,s,u,o;t=sn,(e=Rn())!==n?(61===r.charCodeAt(sn)?(s=g,sn++):(s=n,0===cn&&dn(m)),s!==n?(u=sn,cn++,o=Rn(),cn--,o===n?u=void 0:(sn=u,u=n),u!==n?(o=function(){var t,e,s,u;(t=Mn())===n&&(t=Pn())===n&&(t=Gn())===n&&(t=sn,91===r.charCodeAt(sn)?(e=Ar,sn++):(e=n,0===cn&&dn(dr)),e!==n&&(s=Hn())!==n?(93===r.charCodeAt(sn)?(u=vr,sn++):(u=n,0===cn&&dn(gr)),u!==n?(t,t=e={list:s}):(sn=t,t=n)):(sn=t,t=n));return t}(),o!==n?(t,t=e=void Ns($s,e,o)):(sn=t,t=n)):(sn=t,t=n)):(sn=t,t=n)):(sn=t,t=n);return t}()))))),t}function Cn(){var t,e,s,u,o,a,c,i,f,l,h;if(t=sn,r.substr(sn,8)===C?(e=C,sn+=8):(e=n,0===cn&&dn(w)),e!==n)if((s=gs())!==n)if((u=wn())!==n){for(o=[],a=sn,(c=As())!==n&&(i=wn())!==n?a=c=[c,i]:(sn=a,a=n);a!==n;)o.push(a),a=sn,(c=As())!==n&&(i=wn())!==n?a=c=[c,i]:(sn=a,a=n);o!==n?t=e=[e,s,u,o]:(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;else sn=t,t=n;if(t===n){if(t=sn,r.substr(sn,8)===$?(e=$,sn+=8):(e=n,0===cn&&dn(x)),e!==n)if((s=gs())!==n)if((u=En())!==n){for(o=[],a=sn,(c=As())!==n&&(i=En())!==n?a=c=[c,i]:(sn=a,a=n);a!==n;)o.push(a),a=sn,(c=As())!==n&&(i=En())!==n?a=c=[c,i]:(sn=a,a=n);o!==n?(a=function(){var t,e;t=sn,r.substr(sn,7)===Q?(e=Q,sn+=7):(e=n,0===cn&&dn(V));e!==n&&(t,e=function(){const r=new Error('"/$count" is not supported for expand operation');throw r.statusCode=501,r}());return t=e}(),a===n&&(a=null),a!==n?t=e=[e,s,u,o,a]:(sn=t,t=n)):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;else sn=t,t=n;if(t===n&&(t=sn,r.substr(sn,8)===E?(e=E,sn+=8):(e=n,0===cn&&dn(L)),e!==n&&(s=gs())!==n&&(u=jn())!==n?(t,h=u,t=e=void($s.where=h)):(sn=t,t=n),t===n)){if(t=sn,r.substr(sn,9)===B?(e=B,sn+=9):(e=n,0===cn&&dn(S)),e!==n)if((s=gs())!==n)if((u=_n())!==n){for(o=[],a=sn,(c=As())!==n&&(i=_n())!==n?(a,a=c=T(0,i)):(sn=a,a=n);a!==n;)o.push(a),a=sn,(c=As())!==n&&(i=_n())!==n?(a,a=c=T(0,i)):(sn=a,a=n);o!==n?(t,t=e=void Rs(u,!0)):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;else sn=t,t=n;t===n&&(t=sn,r.substr(sn,5)===j?(e=j,sn+=5):(e=n,0===cn&&dn(O)),e!==n&&(s=gs())!==n&&(u=Ln())!==n?(t,l=u,t=e=void(($s.limit||($s.limit={})).rows={val:l})):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,6)===Z?(e=Z,sn+=6):(e=n,0===cn&&dn(k)),e!==n&&(s=gs())!==n&&(u=Bn())!==n?(t,e=function(r){Fs(r)}(u),t=e):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,8)===z?(e=z,sn+=8):(e=n,0===cn&&dn(_)),e!==n&&(s=gs())!==n&&(u=Sn())!==n?(t,t=e=void((f=u)&&($s.search=f))):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,7)===F?(e=F,sn+=7):(e=n,0===cn&&dn(R)),e!==n&&(s=gs())!==n?(u=function(){var r,t;r=sn,(t=os())!==n&&(r,t=function(r){r&&($s.count=!0)}(t));return r=t}(),u!==n?t=e=[e,s,u]:(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,7)===q?(e=q,sn+=7):(e=n,0===cn&&dn(I)),e!==n&&(s=gs())!==n&&(u=Fn())!==n?(t,t=e=u):(sn=t,t=n))))))}}return t}function wn(){var t,e,s;return t=sn,42===r.charCodeAt(sn)?(e="*",sn++):(e=n,0===cn&&dn(K)),e===n&&(e=Un()),e!==n&&(t,s=e,$s.columns=Array.isArray($s.columns)?$s.columns:[],$s.columns.find(Ss(s))||$s.columns.push(s),e=s),t=e}function $n(){var t,e,s,u,o;for(t=sn,e=[],s=sn,(u=Cn())!==n&&gs()!==n?(59===r.charCodeAt(sn)?(o=";",sn++):(o=n,0===cn&&dn(W)),o===n&&(o=null),o!==n?(s,s=u=u):(sn=s,s=n)):(sn=s,s=n);s!==n;)e.push(s),s=sn,(u=Cn())!==n&&gs()!==n?(59===r.charCodeAt(sn)?(o=";",sn++):(o=n,0===cn&&dn(W)),o===n&&(o=null),o!==n?(s,s=u=u):(sn=s,s=n)):(sn=s,s=n);return e!==n&&(t,e=function(r){if(r.find((r=>r&&void 0!==r.apply))){const r=new Error('"$apply" is not supported for expand operation');throw r.statusCode=501,r}if($s.columns){"*"===$s.expand&&($s.expand=[]);for(const r of $s.columns)$s.expand.find(Ss(r))||$s.expand.push(r);delete $s.columns}else Array.isArray($s.expand)&&-1===$s.expand.indexOf("*")&&$s.expand.unshift("*")}(e)),t=e}function xn(){var r,t,e,s,u;return r=sn,t=sn,(e=ds())!==n&&(t,ws.push($s),$s=$s.expand[$s.expand.length-1],e=void($s.expand="*")),(t=e)!==n?((e=$n())===n&&(e=null),e!==n?(s=sn,(u=vs())!==n&&(s,u=void($s=ws.pop())),(s=u)!==n?r=t=[t,e,s]:(sn=r,r=n)):(sn=r,r=n)):(sn=r,r=n),r}function En(){var t,e,s;return t=sn,e=sn,42===r.charCodeAt(sn)?(s="*",sn++):(s=n,0===cn&&dn(K)),s===n&&(s=Un()),s!==n&&(e,s=function(r){const t="*"===r?{}:r;return t.expand="*",Array.isArray($s.expand)||($s.expand=[]),$s.expand.find(Ss(t))||$s.expand.push(t),t}(s)),(e=s)!==n?((s=xn())===n&&(s=null),s!==n?t=e=[e,s]:(sn=t,t=n)):(sn=t,t=n),t}function Ln(){var r,t;return r=sn,(t=is())!==n&&(r,t=t),r=t}function Bn(){var r,t;return r=sn,(t=is())!==n&&(r,t=t),r=t}function Sn(){var r,t;return r=sn,(t=Tn())!==n&&(r,t=t),(r=t)===n&&(r=gs()),r}function Tn(){var t,e,s,u,o,a,c;if(t=sn,e=sn,(s=Kn())===n&&(s=null),s!==n&&(e,s=X(s)),(e=s)!==n)if(s=sn,(u=ds())!==n&&(o=Tn())!==n&&(a=vs())!==n?(s,s=u=Y(e,o)):(sn=s,s=n),s===n&&(s=sn,u=function(){var t,e,s,u,o;cn++,t=sn,34===r.charCodeAt(sn)?(e=ie,sn++):(e=n,0===cn&&dn(fe));if(e!==n){for(s=sn,u=[],r.substr(sn,2)===le?(o=le,sn+=2):(o=n,0===cn&&dn(he)),o===n&&(pe.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Ae)));o!==n;)u.push(o),r.substr(sn,2)===le?(o=le,sn+=2):(o=n,0===cn&&dn(he)),o===n&&(pe.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Ae)));(s=u!==n?r.substring(s,sn):u)!==n?(34===r.charCodeAt(sn)?(u=ie,sn++):(u=n,0===cn&&dn(fe)),u!==n?(t,t=e=s.replace(/\\\\/g,"\\").replace(/\\"/g,'"')):(sn=t,t=n)):(sn=t,t=n)}else sn=t,t=n;cn--,t===n&&(e=n,0===cn&&dn(ce));return t}(),u!==n&&(s,u=rr(e,u)),(s=u)===n&&(s=sn,(u=as())!==n&&(s,u=rr(e,u)),(s=u)===n&&(s=sn,u=function(){var t,e,s;cn++,t=sn,e=[],ve.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(ge));if(s!==n)for(;s!==n;)e.push(s),ve.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(ge));else e=n;t=e!==n?r.substring(t,sn):e;cn--,t===n&&(e=n,0===cn&&dn(de));return t}(),u!==n&&(s,u=rr(e,u)),s=u))),s!==n){for(u=[],o=sn,(a=Qn())===n&&(a=Wn())===n&&(a=Vn()),a!==n&&(c=Tn())!==n?(o,o=a=tr(e,a,c)):(sn=o,o=n);o!==n;)u.push(o),o=sn,(a=Qn())===n&&(a=Wn())===n&&(a=Vn()),a!==n&&(c=Tn())!==n?(o,o=a=tr(e,a,c)):(sn=o,o=n);u!==n?(t,t=e=e):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;return t}function jn(){var r,t;return r=sn,(t=On())!==n&&(r,t=t),r=t}function On(){var t,e,s,u,o,a,c,i;if(t=sn,e=sn,(s=Kn())===n&&(s=null),s!==n&&(e,s=X(s)),(e=s)!==n)if(s=sn,(u=ds())!==n&&(o=On())!==n&&(a=vs())!==n?(s,s=u=Y(e,o)):(sn=s,s=n),s===n&&(s=sn,(u=qn())!==n&&(s,i=u,u=void e.push(...i)),(s=u)===n&&(s=sn,(u=Zn())!==n&&(s,u=function(r,t){"not"===r[r.length-1]&&"not"===t[0]?r.push("(",...t,")"):r.push(...t)}(e,u)),(s=u)===n&&(s=sn,u=function(){var t,e,s,u;t=sn,r.substr(sn,8).toLowerCase()===st?(e=r.substr(sn,8),sn+=8):(e=n,0===cn&&dn(ut));e===n&&(r.substr(sn,8).toLowerCase()===ot?(e=r.substr(sn,8),sn+=8):(e=n,0===cn&&dn(at)),e===n&&(r.substr(sn,10).toLowerCase()===ct?(e=r.substr(sn,10),sn+=10):(e=n,0===cn&&dn(it))));e!==n&&ds()!==n&&(s=Dn())!==n&&As()!==n&&(u=Dn())!==n&&vs()!==n?(t,o=s,a=u,t=e={func:e.toLowerCase(),args:[o,a]}):(sn=t,t=n);var o,a;return t}(),u!==n&&(s,u=function(r,t){r.push(t)}(e,u)),(s=u)===n&&(s=sn,(u=os())!==n&&(s,u=rr(e,u)),(s=u)===n&&(s=sn,(u=Nn())!==n&&(s,u=function(r,t){r.push(...t)}(e,u)),s=u))))),s!==n){for(u=[],o=sn,(a=Qn())===n&&(a=Wn()),a!==n&&(c=On())!==n?(o,o=a=tr(e,a,c)):(sn=o,o=n);o!==n;)u.push(o),o=sn,(a=Qn())===n&&(a=Wn()),a!==n&&(c=On())!==n?(o,o=a=tr(e,a,c)):(sn=o,o=n);u!==n?(t,t=e=e):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;return t}function Zn(){var t,e,s,u,c,i,f;if(t=sn,e=sn,(s=fs())!==n&&(e,s=[s]),(e=s)!==n)if(47===r.charCodeAt(sn)?(s=o,sn++):(s=n,0===cn&&dn(a)),s!==n){for(u=[],c=sn,(i=fs())!==n?(47===r.charCodeAt(sn)?(f=o,sn++):(f=n,0===cn&&dn(a)),f!==n?(c,c=i=er(e,i)):(sn=c,c=n)):(sn=c,c=n);c!==n;)u.push(c),c=sn,(i=fs())!==n?(47===r.charCodeAt(sn)?(f=o,sn++):(f=n,0===cn&&dn(a)),f!==n?(c,c=i=er(e,i)):(sn=c,c=n)):(sn=c,c=n);u!==n?(c=sn,i=function(){var t,e,s;t=sn,r.substr(sn,3)===or?(e=or,sn+=3):(e=n,0===cn&&dn(ar));e!==n&&ds()!==n?((s=zn())===n&&(s=null),s!==n&&vs()!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n);return t}(),i!==n&&(c,i=function(r,t){let e=r.pop();if(!t)return["exists",{ref:[...r,{id:e}]}];let n=[];for(let r=0,s=0;r<t.length;++r){let u=t[r];u.ref&&0===u.ref.length&&"="===t[r+1]?n[s++]={func:"contains",args:[{ref:[e]},t[r+=2]]}:n[s++]=u}return n.length<t.length?r.length?(e=r.pop(),["exists",{ref:[...r,{id:e,where:n}]}]):n:["exists",{ref:[...r,{id:e,where:t}]}]}(e,i)),(c=i)===n&&(c=sn,i=function(){var t,e,s;t=sn,r.substr(sn,3)===cr?(e=cr,sn+=3):(e=n,0===cn&&dn(ir));e!==n&&ds()!==n&&(s=zn())!==n&&vs()!==n?(t,t=e=s):(sn=t,t=n);return t}(),i!==n&&(c,i=function(r,t){let e=r.pop();return["not","exists",{ref:[...r,{id:e,where:["not",{xpr:[...t]}]}]}]}(e,i)),c=i),c!==n?(t,t=e=c):(sn=t,t=n)):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;return t}function kn(){var r,t,e,s,u,o,a,c,i;if(r=sn,t=sn,(e=Kn())===n&&(e=null),e!==n&&(t,e=(c=e)?[c]:[]),(t=e)!==n)if(e=sn,(s=ds())!==n&&(u=kn())!==n&&(o=vs())!==n?(e,i=u,e=s=void t.push("(",...i,")")):(sn=e,e=n),e===n&&(e=sn,(s=qn())!==n&&(e,s=function(r,t){r.push(...t)}(t,s)),(e=s)===n&&(e=sn,(s=Jn())!==n&&(e,s=function(r,t){r.push(t)}(t,s)),(e=s)===n&&(e=sn,(s=Zn())!==n&&(e,s=function(r,t){r.push(...t)}(t,s)),(e=s)===n&&(e=sn,(s=Nn())!==n&&(e,s=function(r,t){r.push(...t)}(t,s)),e=s)))),e!==n){for(s=[],u=sn,(o=Qn())===n&&(o=Wn()),o!==n&&(a=kn())!==n?(u,u=o=nr(t,o,a)):(sn=u,u=n);u!==n;)s.push(u),u=sn,(o=Qn())===n&&(o=Wn()),o!==n&&(a=kn())!==n?(u,u=o=nr(t,o,a)):(sn=u,u=n);s!==n?(r,r=t=t):(sn=r,r=n)}else sn=r,r=n;else sn=r,r=n;return r}function zn(){var t,e,s,u;return t=sn,(e=fs())!==n?(58===r.charCodeAt(sn)?(s=sr,sn++):(s=n,0===cn&&dn(ur)),s!==n&&(u=kn())!==n?(t,t=e=qs(e,u)):(sn=t,t=n)):(sn=t,t=n),t}function _n(){var t,e,s,u,o,a;return t=sn,e=sn,(s=Zn())!==n&&(e,s=function(){const r=new Error('"$orderby" does not support lambda');throw r.statusCode=501,r}()),(e=s)===n&&(e=Jn())===n&&(e=Un()),e!==n?(s=sn,ms()!==n?(u=sn,"asc"===r.substr(sn,3)?(o="asc",sn+=3):(o=n,0===cn&&dn(fr)),o===n&&(r.substr(sn,4)===lr?(o=lr,sn+=4):(o=n,0===cn&&dn(hr))),(u=o!==n?r.substring(u,sn):o)!==n?(s,s=u):(sn=s,s=n)):(sn=s,s=n),s===n&&(s=null),s!==n?(t,t=e=bs(e,(a=s)&&{sort:a})):(sn=t,t=n)):(sn=t,t=n),t}function Fn(){var t,e,s,u,c,i;if(t=sn,(e=Xn())!==n){for(s=[],u=sn,47===r.charCodeAt(sn)?(c=o,sn++):(c=n,0===cn&&dn(a)),c!==n&&(i=Xn())!==n?(u,u=c=pr(0,i)):(sn=u,u=n);u!==n;)s.push(u),u=sn,47===r.charCodeAt(sn)?(c=o,sn++):(c=n,0===cn&&dn(a)),c!==n&&(i=Xn())!==n?(u,u=c=pr(0,i)):(sn=u,u=n);s!==n?(t,t=e=function(r,t){if(void 0!==r){t=Array.isArray(t)?t:[t];for(let e of t)for(const t in e)if("limit"===t&&e.limit&&r.limit&&r.limit.offset&&e.limit.rows)r.limit.rows=e.limit.rows;else if(r[t]||"groupBy"===t&&(r.where||r.search)||"aggregate"===t&&"groupBy"in r&&!("groupBy"in e)){let n=r;r={apply:n},"limit"===t&&e[t].offset&&n.limit&&n.limit.offset&&n.limit.offset.val&&(e[t].offset+=n.limit.offset.val),n=r,n[t]=e[t]}else r[t]=e[t];return{apply:r}}}(e,s)):(sn=t,t=n)}else sn=t,t=n;return t}function Rn(){var t,e,s;return cn++,t=sn,64===r.charCodeAt(sn)?(e="@",sn++):(e=n,0===cn&&dn($r)),e!==n&&(s=fs())!==n?(t,t=e="@"+s):(sn=t,t=n),cn--,t===n&&(e=n,0===cn&&dn(wr)),t}function qn(){var t,e,s,u,o,a;return t=sn,(e=Dn())!==n&&ms()!==n?(s=sn,"eq"===r.substr(sn,2)?(u="eq",sn+=2):(u=n,0===cn&&dn(Lr)),u===n&&("ne"===r.substr(sn,2)?(u="ne",sn+=2):(u=n,0===cn&&dn(Br)),u===n&&("lt"===r.substr(sn,2)?(u="lt",sn+=2):(u=n,0===cn&&dn(Sr)),u===n&&("gt"===r.substr(sn,2)?(u="gt",sn+=2):(u=n,0===cn&&dn(Tr)),u===n&&("le"===r.substr(sn,2)?(u="le",sn+=2):(u=n,0===cn&&dn(jr)),u===n&&("ge"===r.substr(sn,2)?(u="ge",sn+=2):(u=n,0===cn&&dn(Or))))))),(s=u!==n?r.substring(s,sn):u)!==n&&(u=ms())!==n&&(o=Dn())!==n?(t,t=e=[e,{eq:"=",ne:"!=",lt:"<",gt:">",le:"<=",ge:">="}[a=s]||a,o]):(sn=t,t=n)):(sn=t,t=n),t}function In(){var r,t;return r=sn,(t=Rn())!==n&&(r,t={list:t}),(r=t)===n&&(r=function(){var r,t;cn++,r=sn,ds()!==n&&(t=Hn())!==n&&vs()!==n?(r,r={list:t}):(sn=r,r=n);cn--,r===n&&(n,0===cn&&dn(Vr));return r}()),r}function Nn(){var t,e,s,u;return t=sn,(e=Dn())!==n&&ms()!==n?("in"===r.substr(sn,2)?(s="in",sn+=2):(s=n,0===cn&&dn(Zr)),s!==n&&ms()!==n&&(u=In())!==n?(t,t=e=[e,"in",u]):(sn=t,t=n)):(sn=t,t=n),t}function Dn(){var t;return(t=function(){var t,e,s,u,c,i,h;cn++,t=sn,e=[],s=sn,(u=fs())!==n?(c=sn,(i=ds())!==n&&(h=bn())!==n&&vs()!==n?(c,c=i=zr(0,h)):(sn=c,c=n),c===n&&(c=null),c!==n?(47===r.charCodeAt(sn)?(i=o,sn++):(i=n,0===cn&&dn(a)),i!==n?(s,s=u=_r(u,c)):(sn=s,s=n)):(sn=s,s=n)):(sn=s,s=n);if(s!==n)for(;s!==n;)e.push(s),s=sn,(u=fs())!==n?(c=sn,(i=ds())!==n&&(h=bn())!==n&&vs()!==n?(c,c=i=zr(0,h)):(sn=c,c=n),c===n&&(c=null),c!==n?(47===r.charCodeAt(sn)?(i=o,sn++):(i=n,0===cn&&dn(a)),i!==n?(s,s=u=_r(u,c)):(sn=s,s=n)):(sn=s,s=n)):(sn=s,s=n);else e=n;e!==n?(r.substr(sn,6)===f?(s=f,sn+=6):(s=n,0===cn&&dn(l)),s!==n?(t,t=e={func:"count",as:"$count",args:[{ref:e}]}):(sn=t,t=n)):(sn=t,t=n);cn--,t===n&&(e=n,0===cn&&dn(kr));return t}())===n&&(t=Jn())===n&&(t=Mn())===n&&(t=Un())===n&&(t=Pn())===n&&(t=Gn())===n&&(t=function(){var t,e,s,u,o;cn++,t=sn,91===r.charCodeAt(sn)?(e=Ar,sn++):(e=n,0===cn&&dn(dr));if(e!==n){for(s=sn,u=[],Kr.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Qr));o!==n;)u.push(o),Kr.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Qr));(s=u!==n?r.substring(s,sn):u)!==n?(93===r.charCodeAt(sn)?(u=vr,sn++):(u=n,0===cn&&dn(gr)),u!==n?(t,t=e={list:s.replace(/"/g,"").split(",").map((r=>({val:r})))}):(sn=t,t=n)):(sn=t,t=n)}else sn=t,t=n;cn--,t===n&&(e=n,0===cn&&dn(Vr));return t}()),t}function Un(){var t,e,s,u,c,i,f,l;if(cn++,t=sn,(e=fs())!==n){for(s=[],u=sn,47===r.charCodeAt(sn)?(c=o,sn++):(c=n,0===cn&&dn(a)),c!==n&&(i=fs())!==n?(u,u=c=Rr(0,i)):(sn=u,u=n);u!==n;)s.push(u),u=sn,47===r.charCodeAt(sn)?(c=o,sn++):(c=n,0===cn&&dn(a)),c!==n&&(i=fs())!==n?(u,u=c=Rr(0,i)):(sn=u,u=n);s!==n?(t,l=s,t=e="null"===(f=e)?{val:null}:{ref:[f,...l]}):(sn=t,t=n)}else sn=t,t=n;return cn--,t===n&&(e=n,0===cn&&dn(Fr)),t}function Mn(){var t,e,s;return t=sn,(e=os())===n&&(e=cs()),e!==n&&(t,e=qr(e)),(t=e)===n&&(t=sn,(e=ls())!==n&&(t,e=qr(e)),(t=e)===n&&(t=sn,e=function(){var t,e,s,u,o,a,c,i,f,l,h;cn++,t=sn,e=sn,cn++,s=function(){var t,e,s;t=sn,e=[],be.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(ye));if(s!==n)for(;s!==n;)e.push(s),be.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(ye));else e=n;e!==n?(45===r.charCodeAt(sn)?(s=Ce,sn++):(s=n,0===cn&&dn(we)),s!==n?t=e=[e,s]:(sn=t,t=n)):(sn=t,t=n);return t}(),cn--,s===n?e=void 0:(sn=e,e=n);if(e!==n){if(s=sn,u=sn,Se.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Te)),o===n&&(o=null),o!==n){if(a=[],be.test(r.charAt(sn))?(c=r.charAt(sn),sn++):(c=n,0===cn&&dn(ye)),c!==n)for(;c!==n;)a.push(c),be.test(r.charAt(sn))?(c=r.charAt(sn),sn++):(c=n,0===cn&&dn(ye));else a=n;if(a!==n){if(c=sn,46===r.charCodeAt(sn)?(i=".",sn++):(i=n,0===cn&&dn(xe)),i!==n){if(f=[],be.test(r.charAt(sn))?(l=r.charAt(sn),sn++):(l=n,0===cn&&dn(ye)),l!==n)for(;l!==n;)f.push(l),be.test(r.charAt(sn))?(l=r.charAt(sn),sn++):(l=n,0===cn&&dn(ye));else f=n;f!==n?c=i=[i,f]:(sn=c,c=n)}else sn=c,c=n;if(c===n&&(c=null),c!==n){if(i=sn,101===r.charCodeAt(sn)?(f="e",sn++):(f=n,0===cn&&dn(je)),f!==n){if(l=[],be.test(r.charAt(sn))?(h=r.charAt(sn),sn++):(h=n,0===cn&&dn(ye)),h!==n)for(;h!==n;)l.push(h),be.test(r.charAt(sn))?(h=r.charAt(sn),sn++):(h=n,0===cn&&dn(ye));else l=n;l!==n?i=f=[f,l]:(sn=i,i=n)}else sn=i,i=n;i===n&&(i=null),i!==n?u=o=[o,a,c,i]:(sn=u,u=n)}else sn=u,u=n}else sn=u,u=n}else sn=u,u=n;(s=u!==n?r.substring(s,sn):u)!==n?(t,t=e=Ls(s)):(sn=t,t=n)}else sn=t,t=n;cn--,t===n&&(e=n,0===cn&&dn(Be));return t}(),e!==n&&(t,e="number"==typeof(s=e)?{val:s}:{val:s,literal:"number"}),(t=e)===n&&(t=sn,(e=as())!==n&&(t,e=qr(e)),(t=e)===n&&(t=sn,e=function(){var t,e,s,u,o,a;cn++,t=sn,r.substr(sn,7)===He?(e=He,sn+=7):(e=n,0===cn&&dn(Je));if(e!==n){if(s=sn,u=sn,o=[],Ke.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(Qe)),a!==n)for(;a!==n;)o.push(a),Ke.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(Qe));else o=n;o!==n?(r.substr(sn,2)===Ve?(a=Ve,sn+=2):(a=n,0===cn&&dn(We)),a===n&&(61===r.charCodeAt(sn)?(a=g,sn++):(a=n,0===cn&&dn(m))),a===n&&(a=null),a!==n?u=o=[o,a]:(sn=u,u=n)):(sn=u,u=n),(s=u!==n?r.substring(s,sn):u)!==n?(39===r.charCodeAt(sn)?(u=ee,sn++):(u=n,0===cn&&dn(ne)),u!==n?(t,t=e=Bs(s)):(sn=t,t=n)):(sn=t,t=n)}else sn=t,t=n;cn--,t===n&&(e=n,0===cn&&dn(Ge));return t}(),e!==n&&(t,e=qr(e)),(t=e)===n&&(t=sn,(e=Rn())!==n&&(t,e=qr(e)),(t=e)===n&&(t=function(){var t,e;cn++,t=sn,r.substr(sn,4)===Nr?(e=Nr,sn+=4):(e=n,0===cn&&dn(Dr));e!==n&&(t,e={val:null});cn--,(t=e)===n&&(e=n,0===cn&&dn(Ir));return t}())))))),t}function Pn(){var t,e,s,u,o,a;if(cn++,t=sn,e=sn,s=sn,123===r.charCodeAt(sn)?(u="{",sn++):(u=n,0===cn&&dn(Mr)),u!==n){for(o=[],(a=Pn())===n&&(Pr.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(Gr)));a!==n;)o.push(a),(a=Pn())===n&&(Pr.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(Gr)));o!==n?(125===r.charCodeAt(sn)?(a="}",sn++):(a=n,0===cn&&dn(Hr)),a!==n?s=u=[u,o,a]:(sn=s,s=n)):(sn=s,s=n)}else sn=s,s=n;return(e=s!==n?r.substring(e,sn):s)!==n&&(t,e=qr(e)),cn--,(t=e)===n&&(e=n,0===cn&&dn(Ur)),t}function Gn(){var t,e,s,u,o,a,c,i;if(cn++,t=sn,e=sn,s=sn,91===r.charCodeAt(sn)?(u=Ar,sn++):(u=n,0===cn&&dn(dr)),u!==n&&(o=gs())!==n?(93===r.charCodeAt(sn)?(a=vr,sn++):(a=n,0===cn&&dn(gr)),a!==n?s=u=[u,o,a]:(sn=s,s=n)):(sn=s,s=n),s===n)if(s=sn,91===r.charCodeAt(sn)?(u=Ar,sn++):(u=n,0===cn&&dn(dr)),u!==n)if((o=gs())!==n)if(123===r.charCodeAt(sn)?(a="{",sn++):(a=n,0===cn&&dn(Mr)),a!==n){for(c=[],(i=Gn())===n&&(Kr.test(r.charAt(sn))?(i=r.charAt(sn),sn++):(i=n,0===cn&&dn(Qr)));i!==n;)c.push(i),(i=Gn())===n&&(Kr.test(r.charAt(sn))?(i=r.charAt(sn),sn++):(i=n,0===cn&&dn(Qr)));c!==n?(93===r.charCodeAt(sn)?(i=vr,sn++):(i=n,0===cn&&dn(gr)),i!==n?s=u=[u,o,a,c,i]:(sn=s,s=n)):(sn=s,s=n)}else sn=s,s=n;else sn=s,s=n;else sn=s,s=n;return(e=s!==n?r.substring(e,sn):s)!==n&&(t,e=qr(e)),cn--,(t=e)===n&&(e=n,0===cn&&dn(Jr)),t}function Hn(){var t,e,s,u,o,a,c;if(t=sn,(e=Mn())!==n){for(s=[],u=sn,44===r.charCodeAt(sn)?(o=",",sn++):(o=n,0===cn&&dn(Wr)),o!==n&&(a=Mn())!==n?(u,u=o=Xr(0,a)):(sn=u,u=n);u!==n;)s.push(u),u=sn,44===r.charCodeAt(sn)?(o=",",sn++):(o=n,0===cn&&dn(Wr)),o!==n&&(a=Mn())!==n?(u,u=o=Xr(0,a)):(sn=u,u=n);s!==n?(t,c=s,t=e=[e,...c]):(sn=t,t=n)}else sn=t,t=n;return t}function Jn(){var t,e,s;return t=sn,e=function(){var t,e,s;if(cn++,t=sn,e=[],rt.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(tt)),s!==n)for(;s!==n;)e.push(s),rt.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(tt));else e=n;return t=e!==n?r.substring(t,sn):e,cn--,t===n&&(e=n,0===cn&&dn(Yr)),t}(),e!==n&&ds()!==n?(s=function(){var r,t,e,s,u,o,a;if(r=sn,t=[],e=sn,(s=Dn())!==n){for(u=[],o=sn,As()!==n&&(a=Dn())!==n?(o,o=et(0,a)):(sn=o,o=n);o!==n;)u.push(o),o=sn,As()!==n&&(a=Dn())!==n?(o,o=et(0,a)):(sn=o,o=n);u!==n?(e,e=s=nt(s,u)):(sn=e,e=n)}else sn=e,e=n;for(;e!==n;)if(t.push(e),e=sn,(s=Dn())!==n){for(u=[],o=sn,As()!==n&&(a=Dn())!==n?(o,o=et(0,a)):(sn=o,o=n);o!==n;)u.push(o),o=sn,As()!==n&&(a=Dn())!==n?(o,o=et(0,a)):(sn=o,o=n);u!==n?(e,e=s=nt(s,u)):(sn=e,e=n)}else sn=e,e=n;t!==n&&(r,t=(c=t).length?c[0]:c);var c;return r=t}(),s!==n&&vs()!==n?(t,t=e=function(r,t){if(ys&&!(r.toLowerCase()in ys.functions))throw Object.assign(new Error(`"${r}" is an unknown function in OData URL spec (strict mode)`),{statusCode:400});return{func:r.toLowerCase(),args:t}}(e,s)):(sn=t,t=n)):(sn=t,t=n),t}function Kn(){var t,e;return t=sn,gs()!==n?("not"===r.substr(sn,3).toLowerCase()?(e=r.substr(sn,3),sn+=3):(e=n,0===cn&&dn(ft)),e!==n&&ms()!==n?(t,t="not"):(sn=t,t=n)):(sn=t,t=n),t}function Qn(){var t,e;return t=sn,ms()!==n?("and"===r.substr(sn,3).toLowerCase()?(e=r.substr(sn,3),sn+=3):(e=n,0===cn&&dn(lt)),e!==n&&ms()!==n?(t,t="and"):(sn=t,t=n)):(sn=t,t=n),t}function Vn(){var r,t;return r=sn,(t=ms())!==n&&(r,t="and"),r=t}function Wn(){var t,e;return t=sn,ms()!==n?("or"===r.substr(sn,2).toLowerCase()?(e=r.substr(sn,2),sn+=2):(e=n,0===cn&&dn(ht)),e!==n&&ms()!==n?(t,t="or"):(sn=t,t=n)):(sn=t,t=n),t}function Xn(){var t,e,s;return t=sn,r.substr(sn,9)===pt?(e=pt,sn+=9):(e=n,0===cn&&dn(At)),e!==n?(s=function(){var r,t,e,s,u;if(r=sn,ds()!==n)if(gs()!==n)if((t=Yn())!==n){for(e=[],s=sn,gs()!==n&&As()!==n&&gs()!==n&&(u=Yn())!==n?(s,s=Ft(0,u)):(sn=s,s=n);s!==n;)e.push(s),s=sn,gs()!==n&&As()!==n&&gs()!==n&&(u=Yn())!==n?(s,s=Ft(0,u)):(sn=s,s=n);e!==n&&(s=gs())!==n&&vs()!==n?(r,o=e,r={aggregate:[t,...o]}):(sn=r,r=n)}else sn=r,r=n;else sn=r,r=n;else sn=r,r=n;var o;return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,7)===dt?(e=dt,sn+=7):(e=n,0===cn&&dn(vt)),e!==n?(s=function(){var r,t,e,s,u,o,a,c;if(r=sn,(t=ds())!==n)if(ds()!==n)if((e=ss())!==n){for(s=[],u=sn,(o=As())!==n&&(a=ss())!==n?(u,u=o=Ft(0,a)):(sn=u,u=n);u!==n;)s.push(u),u=sn,(o=As())!==n&&(a=ss())!==n?(u,u=o=Ft(0,a)):(sn=u,u=n);s!==n?(u=sn,(o=vs())!==n&&(u,i=s,o={groupBy:[e,...i]}),(u=o)!==n?(o=sn,(a=As())!==n&&(c=Fn())!==n?(o,o=a=c):(sn=o,o=n),o===n&&(o=null),o!==n&&(a=vs())!==n?(r,t=function(r,t,e){let n={};return n=e?{groupBy:[r,...t],...e.apply}:{groupBy:[r,...t]},n}(e,s,o),r=t):(sn=r,r=n)):(sn=r,r=n)):(sn=r,r=n)}else sn=r,r=n;else sn=r,r=n;else sn=r,r=n;var i;return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,6)===gt?(e=gt,sn+=6):(e=n,0===cn&&dn(mt)),e!==n?(s=function(){var r,t,e;r=sn,ds()!==n&&gs()!==n?(t=sn,(e=jn())!==n&&(t,e=e),(t=e)!==n&&(e=gs())!==n&&vs()!==n?(r,r={where:t}):(sn=r,r=n)):(sn=r,r=n);return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,6)===bt?(e=bt,sn+=6):(e=n,0===cn&&dn(yt)),e!==n?(s=function(){var r,t,e;r=sn,ds()!==n&&gs()!==n?(t=sn,(e=Sn())!==n&&(t,e=function(r){if(r)return r}(e)),(t=e)!==n&&(e=gs())!==n&&vs()!==n?(r,r={search:t}):(sn=r,r=n)):(sn=r,r=n);return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,6)===Ct?(e=Ct,sn+=6):(e=n,0===cn&&dn(wt)),e!==n?(s=function(){var r,t,e,s,u;if(r=sn,ds()!==n)if(gs()!==n)if((t=Fn())!==n){if(e=[],s=sn,gs()!==n&&As()!==n&&gs()!==n&&(u=Fn())!==n?(s,s=Ht(0,u)):(sn=s,s=n),s!==n)for(;s!==n;)e.push(s),s=sn,gs()!==n&&As()!==n&&gs()!==n&&(u=Fn())!==n?(s,s=Ht(0,u)):(sn=s,s=n);else e=n;e!==n&&(s=gs())!==n&&vs()!==n?(r,o=e,r={concat:[t,...o]}):(sn=r,r=n)}else sn=r,r=n;else sn=r,r=n;else sn=r,r=n;var o;return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,7)===$t?(e=$t,sn+=7):(e=n,0===cn&&dn(xt)),e!==n?(s=function(){var r,t,e,s,u,o,a,c,i,f;if(r=sn,(t=ds())!==n)if((e=gs())!==n)if((s=us())!==n){for(u=[],o=sn,(a=gs())!==n&&(c=As())!==n&&(i=gs())!==n&&(f=us())!==n?o=a=[a,c,i,f]:(sn=o,o=n);o!==n;)u.push(o),o=sn,(a=gs())!==n&&(c=As())!==n&&(i=gs())!==n&&(f=us())!==n?o=a=[a,c,i,f]:(sn=o,o=n);u!==n&&(o=gs())!==n&&(a=vs())!==n?r=t=[t,e,s,u,o,a]:(sn=r,r=n)}else sn=r,r=n;else sn=r,r=n;else sn=r,r=n;return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,"top"===r.substr(sn,3)?(e="top",sn+=3):(e=n,0===cn&&dn(Et)),e!==n?(s=function(){var r,t;r=sn,ds()!==n&&gs()!==n&&(t=Ln())!==n&&gs()!==n&&vs()!==n?(r,r={limit:{rows:{val:t}}}):(sn=r,r=n);return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,4)===Lt?(e=Lt,sn+=4):(e=n,0===cn&&dn(Bt)),e!==n?(s=function(){var r,t;r=sn,ds()!==n&&gs()!==n&&(t=Bn())!==n&&gs()!==n&&vs()!==n?(r,r={limit:{offset:{val:t}}}):(sn=r,r=n);return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,r.substr(sn,7)===St?(e=St,sn+=7):(e=n,0===cn&&dn(Tt)),e!==n?(s=function(){var r,t,e,s,u;if(r=sn,ds()!==n)if(gs()!==n)if((t=_n())!==n){for(e=[],s=sn,As()!==n&&(u=_n())!==n?(s,s=Qt(0,u)):(sn=s,s=n);s!==n;)e.push(s),s=sn,As()!==n&&(u=_n())!==n?(s,s=Qt(0,u)):(sn=s,s=n);e!==n&&(s=gs())!==n&&vs()!==n?(r,o=e,r={orderBy:[t,...o]}):(sn=r,r=n)}else sn=r,r=n;else sn=r,r=n;else sn=r,r=n;var o;return r}(),s!==n?(t,t=e=s):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,"topcount"===r.substr(sn,8).toLowerCase()?(e=r.substr(sn,8),sn+=8):(e=n,0===cn&&dn(jt)),e===n&&("bottomcount"===r.substr(sn,11).toLowerCase()?(e=r.substr(sn,11),sn+=11):(e=n,0===cn&&dn(Ot)),e===n&&("topsum"===r.substr(sn,6).toLowerCase()?(e=r.substr(sn,6),sn+=6):(e=n,0===cn&&dn(Zt)),e===n&&("bottomsum"===r.substr(sn,9).toLowerCase()?(e=r.substr(sn,9),sn+=9):(e=n,0===cn&&dn(kt)),e===n&&("toppercent"===r.substr(sn,10).toLowerCase()?(e=r.substr(sn,10),sn+=10):(e=n,0===cn&&dn(zt)),e===n&&("bottompercent"===r.substr(sn,13).toLowerCase()?(e=r.substr(sn,13),sn+=13):(e=n,0===cn&&dn(_t))))))),e!==n?(s=function(){var r,t,e;r=sn,ds()!==n&&gs()!==n&&(t=Dn())!==n&&gs()!==n&&As()!==n&&gs()!==n&&(e=Dn())!==n&&gs()!==n&&vs()!==n?(r,r=[t,e]):(sn=r,r=n);return r}(),s!==n?(t,t=e=function(r,t){if(!{topcount:!0,bottomcount:!0,topsum:!1,bottomsum:!1,toppercent:!1,bottompercent:!1}[r=r.toLowerCase()])throw Object.assign(new Error(`Transformation "${r}" in $apply is not yet supported.`),{statusCode:501});return{aggregate:[{func:r,args:t}]}}(e,s)):(sn=t,t=n)):(sn=t,t=n),t===n&&(t=sn,e=function(){var t,e;t=sn,r.substr(sn,8)===Jt?(e=Jt,sn+=8):(e=n,0===cn&&dn(Kt));e!==n&&(t,e={identity:!0});return t=e}(),e!==n&&(t,e=e),t=e)))))))))),t}function Yn(){var t,e,s,u;return t=sn,e=sn,r.substr(sn,6)===f?(s=f,sn+=6):(s=n,0===cn&&dn(l)),s!==n&&(u=ns())!==n?(e,e=s={func:"count",args:[{val:1}],as:u}):(sn=e,e=n),e===n&&(e=rs()),e!==n&&(t,e=e),t=e}function rs(){var r,t,e,s,u;return r=sn,(t=Un())!==n?((e=ts())===n&&(e=null),e!==n?((s=es())===n&&(s=null),s!==n?((u=ns())===n&&(u=null),u!==n?(r,r=t={func:e,args:[t],as:u}):(sn=r,r=n)):(sn=r,r=n)):(sn=r,r=n)):(sn=r,r=n),r===n&&(r=sn,(t=fs())!==n&&(e=ds())!==n&&(s=rs())!==n&&(u=vs())!==n?r=t=[t,e,s,u]:(sn=r,r=n)),r}function ts(){var t,e,s,u,o;if(t=sn,ms()!==n)if(r.substr(sn,4)===Rt?(e=Rt,sn+=4):(e=n,0===cn&&dn(qt)),e!==n)if(ms()!==n){if(s=sn,u=[],rt.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(tt)),o!==n)for(;o!==n;)u.push(o),rt.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(tt));else u=n;(s=u!==n?r.substring(s,sn):u)!==n?(t,t=s.toLowerCase()):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;else sn=t,t=n;return t}function es(){var t,e,s,u,o,a,c;return t=sn,(e=ms())!==n?(r.substr(sn,4)===It?(s=It,sn+=4):(s=n,0===cn&&dn(Nt)),s!==n&&(u=ms())!==n&&(o=Un())!==n&&(a=ts())!==n?((c=es())===n&&(c=null),c!==n?t=e=[e,s,u,o,a,c]:(sn=t,t=n)):(sn=t,t=n)):(sn=t,t=n),t}function ns(){var t,e,s;return t=sn,ms()!==n?("as"===r.substr(sn,2)?(e="as",sn+=2):(e=n,0===cn&&dn(Dt)),e!==n&&ms()!==n&&(s=fs())!==n?(t,t=s):(sn=t,t=n)):(sn=t,t=n),t}function ss(){var t,e;return t=sn,e=function(){var t,e,s,u,o,a,c,i,f,l,h;t=sn,e=sn,r.substr(sn,6)===Ut?(s=Ut,sn+=6):(s=n,0===cn&&dn(Mt));if(s!==n)if((u=ds())!==n)if((o=gs())!==n)if(r.substr(sn,4)===Pt?(a=Pt,sn+=4):(a=n,0===cn&&dn(Gt)),a===n&&(a=Un()),a!==n){if(c=[],i=sn,(f=gs())!==n&&(l=As())!==n&&(h=Un())!==n?i=f=[f,l,h]:(sn=i,i=n),i!==n)for(;i!==n;)c.push(i),i=sn,(f=gs())!==n&&(l=As())!==n&&(h=Un())!==n?i=f=[f,l,h]:(sn=i,i=n);else c=n;c!==n&&(i=gs())!==n&&(f=vs())!==n?e=s=[s,u,o,a,c,i,f]:(sn=e,e=n)}else sn=e,e=n;else sn=e,e=n;else sn=e,e=n;else sn=e,e=n;e!==n&&(t,e=function(r){const t=new Error("Rollup in groupby is not supported yet.");throw t.statusCode=501,t}());return t=e}(),e===n&&(e=Un()),e!==n&&(t,e=e),t=e}function us(){var r,t,e;return r=sn,(t=On())!==n&&(e=ns())!==n?r=t=[t,e]:(sn=r,r=n),r}function os(){var t,e;return cn++,t=sn,r.substr(sn,4)===Wt?(e=Wt,sn+=4):(e=n,0===cn&&dn(Xt)),e===n&&(r.substr(sn,5)===Yt?(e=Yt,sn+=5):(e=n,0===cn&&dn(re))),e!==n&&(t,e="true"===e),cn--,(t=e)===n&&(e=n,0===cn&&dn(Vt)),t}function as(){var t,e,s,u,o;if(cn++,t=sn,39===r.charCodeAt(sn)?(e=ee,sn++):(e=n,0===cn&&dn(ne)),e!==n){for(s=sn,u=[],r.substr(sn,2)===se?(o=se,sn+=2):(o=n,0===cn&&dn(ue)),o===n&&(oe.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(ae)));o!==n;)u.push(o),r.substr(sn,2)===se?(o=se,sn+=2):(o=n,0===cn&&dn(ue)),o===n&&(oe.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(ae)));(s=u!==n?r.substring(s,sn):u)!==n?(39===r.charCodeAt(sn)?(u=ee,sn++):(u=n,0===cn&&dn(ne)),u!==n?(t,t=e=s.replace(/''/g,"'")):(sn=t,t=n)):(sn=t,t=n)}else sn=t,t=n;return cn--,t===n&&(e=n,0===cn&&dn(te)),t}function cs(){var t,e,s,u,o,a,c,i,f,l,h,p,A,d,v,g,m,b,y,C,w,$,x,E,L;if(cn++,t=sn,e=sn,s=sn,u=[],be.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(ye)),o!==n)for(;o!==n;)u.push(o),be.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(ye));else u=n;if(u!==n)if(45===r.charCodeAt(sn)?(o=Ce,sn++):(o=n,0===cn&&dn(we)),o!==n)if(be.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(ye)),a!==n)if(be.test(r.charAt(sn))?(c=r.charAt(sn),sn++):(c=n,0===cn&&dn(ye)),c!==n)if(45===r.charCodeAt(sn)?(i=Ce,sn++):(i=n,0===cn&&dn(we)),i!==n)if(be.test(r.charAt(sn))?(f=r.charAt(sn),sn++):(f=n,0===cn&&dn(ye)),f!==n)if(be.test(r.charAt(sn))?(l=r.charAt(sn),sn++):(l=n,0===cn&&dn(ye)),l!==n){if(h=sn,84===r.charCodeAt(sn)?(p="T",sn++):(p=n,0===cn&&dn($e)),p!==n)if(be.test(r.charAt(sn))?(A=r.charAt(sn),sn++):(A=n,0===cn&&dn(ye)),A!==n)if(be.test(r.charAt(sn))?(d=r.charAt(sn),sn++):(d=n,0===cn&&dn(ye)),d!==n)if(58===r.charCodeAt(sn)?(v=sr,sn++):(v=n,0===cn&&dn(ur)),v!==n)if(be.test(r.charAt(sn))?(g=r.charAt(sn),sn++):(g=n,0===cn&&dn(ye)),g!==n)if(be.test(r.charAt(sn))?(m=r.charAt(sn),sn++):(m=n,0===cn&&dn(ye)),m!==n){if(b=sn,58===r.charCodeAt(sn)?(y=sr,sn++):(y=n,0===cn&&dn(ur)),y!==n)if(be.test(r.charAt(sn))?(C=r.charAt(sn),sn++):(C=n,0===cn&&dn(ye)),C!==n)if(be.test(r.charAt(sn))?(w=r.charAt(sn),sn++):(w=n,0===cn&&dn(ye)),w!==n){if($=sn,46===r.charCodeAt(sn)?(x=".",sn++):(x=n,0===cn&&dn(xe)),x!==n){if(E=[],be.test(r.charAt(sn))?(L=r.charAt(sn),sn++):(L=n,0===cn&&dn(ye)),L!==n)for(;L!==n;)E.push(L),be.test(r.charAt(sn))?(L=r.charAt(sn),sn++):(L=n,0===cn&&dn(ye));else E=n;E!==n?$=x=[x,E]:(sn=$,$=n)}else sn=$,$=n;$===n&&($=null),$!==n?b=y=[y,C,w,$]:(sn=b,b=n)}else sn=b,b=n;else sn=b,b=n;else sn=b,b=n;b===n&&(b=null),b!==n?(90===r.charCodeAt(sn)?(y="Z",sn++):(y=n,0===cn&&dn(Ee)),y===n&&(y=sn,43===r.charCodeAt(sn)?(C="+",sn++):(C=n,0===cn&&dn(Le)),C===n&&(45===r.charCodeAt(sn)?(C=Ce,sn++):(C=n,0===cn&&dn(we))),C!==n?(be.test(r.charAt(sn))?(w=r.charAt(sn),sn++):(w=n,0===cn&&dn(ye)),w!==n?(be.test(r.charAt(sn))?($=r.charAt(sn),sn++):($=n,0===cn&&dn(ye)),$!==n?(58===r.charCodeAt(sn)?(x=sr,sn++):(x=n,0===cn&&dn(ur)),x!==n?(be.test(r.charAt(sn))?(E=r.charAt(sn),sn++):(E=n,0===cn&&dn(ye)),E!==n?(be.test(r.charAt(sn))?(L=r.charAt(sn),sn++):(L=n,0===cn&&dn(ye)),L!==n?y=C=[C,w,$,x,E,L]:(sn=y,y=n)):(sn=y,y=n)):(sn=y,y=n)):(sn=y,y=n)):(sn=y,y=n)):(sn=y,y=n)),y===n&&(y=null),y!==n?h=p=[p,A,d,v,g,m,b,y]:(sn=h,h=n)):(sn=h,h=n)}else sn=h,h=n;else sn=h,h=n;else sn=h,h=n;else sn=h,h=n;else sn=h,h=n;else sn=h,h=n;h===n&&(h=null),h!==n?s=u=[u,o,a,c,i,f,l,h]:(sn=s,s=n)}else sn=s,s=n;else sn=s,s=n;else sn=s,s=n;else sn=s,s=n;else sn=s,s=n;else sn=s,s=n;else sn=s,s=n;return(e=s!==n?r.substring(e,sn):s)!==n&&(t,e=function(r){if(r.split("-")[0].length>4)throw Object.assign(new Error(`The type 'Edm.DateTimeOffset' is not compatible with '${r}'`),{statusCode:400});return r}(e)),cn--,(t=e)===n&&(e=n,0===cn&&dn(me)),t}function is(){var t,e,s,u,o,a;if(cn++,t=sn,e=sn,s=sn,Se.test(r.charAt(sn))?(u=r.charAt(sn),sn++):(u=n,0===cn&&dn(Te)),u===n&&(u=null),u!==n){if(o=[],be.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(ye)),a!==n)for(;a!==n;)o.push(a),be.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(ye));else o=n;o!==n?s=u=[u,o]:(sn=s,s=n)}else sn=s,s=n;return(e=s!==n?r.substring(e,sn):s)!==n&&(t,e=parseInt(e)),cn--,(t=e)===n&&(e=n,0===cn&&dn(Oe)),t}function fs(){var t,e,s,u,o,a,c,i;if(cn++,t=sn,e=sn,cn++,s=os(),cn--,s===n?e=void 0:(sn=e,e=n),e!==n)if(s=sn,cn++,u=ls(),cn--,u===n?s=void 0:(sn=s,s=n),s!==n){if(u=sn,o=sn,ke.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(ze)),a!==n){for(c=[],_e.test(r.charAt(sn))?(i=r.charAt(sn),sn++):(i=n,0===cn&&dn(Fe));i!==n;)c.push(i),_e.test(r.charAt(sn))?(i=r.charAt(sn),sn++):(i=n,0===cn&&dn(Fe));c!==n?o=a=[a,c]:(sn=o,o=n)}else sn=o,o=n;(u=o!==n?r.substring(u,sn):o)!==n?(t,t=e=u):(sn=t,t=n)}else sn=t,t=n;else sn=t,t=n;return cn--,t===n&&(e=n,0===cn&&dn(Ze)),t}function ls(){var t,e,s,u,o,a,c,i,f,l,h,p,A,d;return cn++,t=sn,e=sn,(s=hs())!==n&&(u=hs())!==n?(45===r.charCodeAt(sn)?(o=Ce,sn++):(o=n,0===cn&&dn(we)),o===n&&(o=null),o!==n&&(a=hs())!==n?(45===r.charCodeAt(sn)?(c=Ce,sn++):(c=n,0===cn&&dn(we)),c===n&&(c=null),c!==n&&(i=hs())!==n?(45===r.charCodeAt(sn)?(f=Ce,sn++):(f=n,0===cn&&dn(we)),f===n&&(f=null),f!==n&&(l=hs())!==n?(45===r.charCodeAt(sn)?(h=Ce,sn++):(h=n,0===cn&&dn(we)),h===n&&(h=null),h!==n&&(p=hs())!==n&&(A=hs())!==n&&(d=hs())!==n?e=s=[s,u,o,a,c,i,f,l,h,p,A,d]:(sn=e,e=n)):(sn=e,e=n)):(sn=e,e=n)):(sn=e,e=n)):(sn=e,e=n),t=e!==n?r.substring(t,sn):e,cn--,t===n&&(e=n,0===cn&&dn(Re)),t}function hs(){var t,e,s,u,o,a;return cn++,t=sn,e=sn,Ie.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(Ne)),s!==n?(Ie.test(r.charAt(sn))?(u=r.charAt(sn),sn++):(u=n,0===cn&&dn(Ne)),u!==n?(Ie.test(r.charAt(sn))?(o=r.charAt(sn),sn++):(o=n,0===cn&&dn(Ne)),o!==n?(Ie.test(r.charAt(sn))?(a=r.charAt(sn),sn++):(a=n,0===cn&&dn(Ne)),a!==n?e=s=[s,u,o,a]:(sn=e,e=n)):(sn=e,e=n)):(sn=e,e=n)):(sn=e,e=n),t=e!==n?r.substring(t,sn):e,cn--,t===n&&(e=n,0===cn&&dn(qe)),t}function ps(){var t,e,s,u;if(t=sn,e=sn,s=[],De.test(r.charAt(sn))?(u=r.charAt(sn),sn++):(u=n,0===cn&&dn(Ue)),u!==n)for(;u!==n;)s.push(u),De.test(r.charAt(sn))?(u=r.charAt(sn),sn++):(u=n,0===cn&&dn(Ue));else s=n;return(e=s!==n?r.substring(e,sn):s)!==n&&(t,e={val:e}),t=e}function As(){var t,e,s,u;return t=sn,(e=gs())!==n?(44===r.charCodeAt(sn)?(s=",",sn++):(s=n,0===cn&&dn(Wr)),s!==n&&(u=gs())!==n?t=e=[e,s,u]:(sn=t,t=n)):(sn=t,t=n),t}function ds(){var t,e,s,u;return t=sn,(e=gs())!==n?(40===r.charCodeAt(sn)?(s="(",sn++):(s=n,0===cn&&dn(Xe)),s!==n&&(u=gs())!==n?t=e=[e,s,u]:(sn=t,t=n)):(sn=t,t=n),t}function vs(){var t,e,s;return t=sn,(e=gs())!==n?(41===r.charCodeAt(sn)?(s=")",sn++):(s=n,0===cn&&dn(Ye)),s!==n?t=e=[e,s]:(sn=t,t=n)):(sn=t,t=n),t}function gs(){var t,e,s;for(cn++,t=sn,e=[],tn.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(en));s!==n;)e.push(s),tn.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(en));return t=e!==n?r.substring(t,sn):e,cn--,t===n&&(e=n,0===cn&&dn(rn)),t}function ms(){var t,e,s;if(cn++,t=sn,e=[],tn.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(en)),s!==n)for(;s!==n;)e.push(s),tn.test(r.charAt(sn))?(s=r.charAt(sn),sn++):(s=n,0===cn&&dn(en));else e=n;return t=e!==n?r.substring(t,sn):e,cn--,t===n&&(e=n,0===cn&&dn(nn)),t}const bs=Object.assign,{strict:ys,minimal:Cs}=t,ws=[];let $s,xs;const Es=["$value"],Ls=t.safeNumber||function(r){const t=Number(r);return Number.isSafeInteger(t)?t:r},Bs=t.standardBase64||function(r){return Buffer.from(r,"base64").toString("base64")},Ss=r=>t=>r===t||r.as&&t.as&&r.as===t.as||t.as&&r.ref&&t.as===r.ref[r.ref.length-1]||r.ref&&t.ref&&r.ref.join("")===t.ref.join(""),Ts=r=>t=>{if(Array.isArray(t))return t.map(Ts(r));const e=t.ref&&r.find((r=>r.as&&r.func&&r.as===t.ref[0]));return e||t},js=r=>t=>Array.isArray(t)?t.map(js(r)):t.ref&&!r.find(Ss(t))?{val:null}:t,Os=(r,t)=>{if(1===t.ref.length)r.find(Ss(t))||r.push(t);else{const e=t.ref.shift(),n=r.find((r=>r.ref&&r.ref[0]===e));if(n)Os(n.expand,t);else{const n={ref:[e],expand:[]};Os(n.expand,t),r.push(n)}}},Zs=(r,t,e=!1)=>{let n=_s({from:r.from},t,e);if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=ks(n[t],r,e);else n=ks(n,r,e);return n},ks=(r,t,e)=>{if(!t)return r;t.apply&&delete t.apply;let n={};t.columns&&"$count"===t.columns[0].as||r.SELECT.where&&t.where||r.SELECT.limit&&t.limit||r.SELECT.orderBy&&t.orderBy||r.SELECT.search&&t.search?n.from=r:n=r.SELECT;for(const r in t)"columns"===r?(t.columns=t.columns.map((r=>n.columns&&n.columns.find((t=>r.ref&&r.ref[0]===t.as||t.ref&&r.ref&&r.ref[0]===t.ref[0]&&!r.expand))||r)),n.columns&&n.groupBy&&t.columns.push(...n.columns.filter((r=>e&&n.groupBy.find((t=>r.ref&&r.ref[0]===t.ref[0]))&&!t.columns.some((t=>t.ref&&t.ref[0]===r.as||t.ref&&r.ref&&t.ref[0]===r.ref[0]||t.as&&t.as===r.as))))||[]),n.columns=t.columns):"from"!==r&&(n[r]=t[r]);const s=[...n.columns&&n.columns.filter((r=>n.groupBy&&n.groupBy.find((t=>r.ref&&r.ref[0]===t.ref[0]))))||[],...n.columns&&n.columns.filter((r=>r&&"object"==typeof r&&"func"in r))||[]];return zs(n,s,e),{SELECT:n}},zs=(r,t,e)=>{t.length&&(r.columns=r.columns&&!e?r.columns.reduce(((r,e)=>{const n=t.find(Ss(e));return n&&r.push(n),r}),[]):t,r.where&&(r.where=r.where.map(Ts(r.columns)),r.groupBy&&(r.having=r.where.map(js(r.groupBy)),delete r.where)),r.columns=r.columns.reduce(((r,e)=>(e.ref&&e.ref.length>1&&t.find(Ss(e))?Os(r,{ref:[...e.ref]}):r.push(e),r)),[]))},_s=(r,t,e)=>{if(!t)return;if(r.apply&&delete r.apply,t.identity&&r.from.SELECT&&(r=r.from.SELECT),(t.apply||t.where&&r.where||t.search&&r.search||t.limit&&r.limit||t.orderBy&&r.orderBy)&&(r.from={SELECT:{...r}}),t.where&&(r.where=t.where),t.search&&(r.search=t.search),t.groupBy){r.groupBy=[];for(const e of t.groupBy)r.groupBy.find(Ss(e))||r.groupBy.push(e)}t.limit&&(r.limit=t.limit),t.orderBy&&(r.orderBy=t.orderBy);const n=[...r.groupBy||[],...t.aggregate||[]];if(zs(r,n,e),t.apply&&r.from&&_s(r.from.SELECT,t.apply),t.concat&&Array.isArray(t.concat)){const e=[];for(let n of t.concat){n.from=1===Object.keys(r).length?r.from:{SELECT:r};const t=_s(n,n.apply);Array.isArray(t)?e.push(...t):e.push(t)}r=e}return Array.isArray(r)?r:{SELECT:r}},Fs=r=>{$s.limit&&$s.limit.offset&&$s.limit.offset.val&&(r+=$s.limit.offset.val),($s.limit||($s.limit={})).offset={val:r}},Rs=(r,t=!1)=>{$s.orderBy=$s.orderBy?t?[r,...$s.orderBy]:[...$s.orderBy,r]:[r]},qs=(r,t)=>{for(const e of t)e.ref&&e.ref[0]===r&&e.ref.shift(),e.func&&qs(r,e.args);return t},Is=(r,t,e,n=!1)=>{r?.forEach((r=>{r.val===t?r.val=e.val:r.list===t?r.list=e.list:r.func?r.args.forEach(((r,s)=>{r.val===t?r.val=e.val:r.func&&Is(r.args,t,e,n)})):r.SELECT&&Ns(r.SELECT,t,e,n)}))},Ns=(r,t,e,n=!1)=>{const{where:s,from:u}=r;Is(s,t,e),u?.ref?.forEach((r=>{Is(r.where,t,e,!0)}))};if((e=u())!==n&&sn===r.length)return e;throw e!==n&&sn<r.length&&dn({type:"end"}),vn(an,on<r.length?r.charAt(on):null,on<r.length?An(on,on+1):An(on,on))}peg$subclass(peg$SyntaxError,Error),peg$SyntaxError.buildMessage=function(r,t){var e={literal:function(r){return'"'+s(r.text)+'"'},class:function(r){var t,e="";for(t=0;t<r.parts.length;t++)e+=r.parts[t]instanceof Array?u(r.parts[t][0])+"-"+u(r.parts[t][1]):u(r.parts[t]);return"["+(r.inverted?"^":"")+e+"]"},any:function(r){return"any character"},end:function(r){return"end of input"},other:function(r){return r.description}};function n(r){return r.charCodeAt(0).toString(16).toUpperCase()}function s(r){return r.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(r){return"\\x0"+n(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+n(r)}))}function u(r){return r.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(r){return"\\x0"+n(r)})).replace(/[\x10-\x1F\x7F-\x9F]/g,(function(r){return"\\x"+n(r)}))}return"Expected "+function(r){var t,n,s,u=new Array(r.length);for(t=0;t<r.length;t++)u[t]=(s=r[t],e[s.type](s));if(u.sort(),u.length>0){for(t=1,n=1;t<u.length;t++)u[t-1]!==u[t]&&(u[n]=u[t],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]}}(r)+" but "+function(r){return r?'"'+s(r)+'"':"end of input"}(t)+" found."},module.exports={SyntaxError:peg$SyntaxError,parse:peg$parse};
@@ -58,6 +58,7 @@ const formatVal = (val, elementName, csnTarget, kind) => {
58
58
  switch (type) {
59
59
  case 'cds.Decimal':
60
60
  case 'cds.Integer64':
61
+ case 'cds.Int64':
61
62
  return val
62
63
  case 'cds.Binary':
63
64
  case 'cds.LargeBinary':
@@ -82,6 +83,7 @@ const formatVal = (val, elementName, csnTarget, kind) => {
82
83
  return `binary'${toBase64url(val)}'`
83
84
  case 'cds.Decimal':
84
85
  case 'cds.Integer64':
86
+ case 'cds.Int64':
85
87
  case 'cds.Boolean':
86
88
  case 'cds.DateTime':
87
89
  case 'cds.Date':
@@ -1,5 +1,6 @@
1
1
  const cds = require('../_runtime/cds')
2
2
 
3
+ // eslint-disable-next-line cds/no-missing-dependencies -- needs to be added by app dev
3
4
  const express = require('express')
4
5
 
5
6
  const parse = require('./middleware/parse')
@@ -16,50 +17,51 @@ const error = require('./middleware/error')
16
17
  const { alias2ref } = require('../_runtime/common/utils/csn')
17
18
  const { bufferToBase64 } = require('../_runtime/common/utils/binary')
18
19
 
19
- const RestAdapter = function(srv) {
20
-
20
+ const RestAdapter = function (srv) {
21
21
  alias2ref(srv) // REVISIT: that's an anti pattern in new prototocol adapter setups
22
22
 
23
23
  const router = express.Router()
24
24
 
25
25
  // -----------------------------------------------------------------------------------------
26
26
  // service root
27
- router.head('/', (_,res) => res.json({}))
28
- router.get('/', (_,res) => res.json({
29
- entities: Object.keys(srv.entities).map(e => ({ name:e, url:e }))
30
- }))
27
+ router.head('/', (_, res) => res.json({}))
28
+ router.get('/', (_, res) =>
29
+ res.json({
30
+ entities: Object.keys(srv.entities).map(e => ({ name: e, url: e }))
31
+ })
32
+ )
31
33
 
32
34
  // -----------------------------------------------------------------------------------------
33
35
 
34
36
  // pass srv-related stuff to middlewares via req
35
37
  router.use((req, res, next) => {
36
- req._srv = srv // FIXME: That's only because of how we organized our rest adapater code into fragmented files -> don't do that
38
+ req._srv = srv // FIXME: That's only because of how we organized our rest adapater code into fragmented files -> don't do that
37
39
 
38
- // cds/libx/rest/middleware/create.js:
39
- // 12: const { _srv: srv, _query: query, _target, _data } = _req
40
+ // cds/libx/rest/middleware/create.js:
41
+ // 12: const { _srv: srv, _query: query, _target, _data } = _req
40
42
 
41
- // cds/libx/rest/middleware/delete.js:
42
- // 4: const { _srv: srv, _query: query, _target, _params } = _req
43
+ // cds/libx/rest/middleware/delete.js:
44
+ // 4: const { _srv: srv, _query: query, _target, _params } = _req
43
45
 
44
- // cds/libx/rest/middleware/error.js:
45
- // 40: const { _srv: srv } = req
46
+ // cds/libx/rest/middleware/error.js:
47
+ // 40: const { _srv: srv } = req
46
48
 
47
- // cds/libx/rest/middleware/input.js:
48
- // 40: const { _srv, _query, _data, _operation } = req
49
- // 43: if (!(_data && _srv && definition)) return next()
50
- // 47: const template = getTemplate(_cache(req), _srv, definition, { pick: _picker(req) })
49
+ // cds/libx/rest/middleware/input.js:
50
+ // 40: const { _srv, _query, _data, _operation } = req
51
+ // 43: if (!(_data && _srv && definition)) return next()
52
+ // 47: const template = getTemplate(_cache(req), _srv, definition, { pick: _picker(req) })
51
53
 
52
- // cds/libx/rest/middleware/operation.js:
53
- // 7: const { _srv: srv, _query: query, _operation: operation, _data: data } = _req
54
+ // cds/libx/rest/middleware/operation.js:
55
+ // 7: const { _srv: srv, _query: query, _operation: operation, _data: data } = _req
54
56
 
55
- // cds/libx/rest/middleware/parse.js:
56
- // 10: const { _srv: service } = req
57
+ // cds/libx/rest/middleware/parse.js:
58
+ // 10: const { _srv: service } = req
57
59
 
58
- // cds/libx/rest/middleware/read.js:
59
- // 4: const { _srv: srv, _query: query, _target, _params } = _req
60
+ // cds/libx/rest/middleware/read.js:
61
+ // 4: const { _srv: srv, _query: query, _target, _params } = _req
60
62
 
61
- // cds/libx/rest/middleware/update.js:
62
- // 11: let { _srv: srv, _query: query, _target, _data, _params } = _req
63
+ // cds/libx/rest/middleware/update.js:
64
+ // 11: let { _srv: srv, _query: query, _target, _data, _params } = _req
63
65
 
64
66
  next()
65
67
  })
@@ -68,9 +70,9 @@ const RestAdapter = function(srv) {
68
70
  // NOT ALLOWED: cds.context.user = 'me'
69
71
  // req.requiresLogin() -> login -> redirect to referrer
70
72
 
71
-
72
73
  // check @requires as soon as possible (DoS)
73
- router.use((req, res, next) => { // REVISIT: This is authorization enforcement which is protocol-independent -> should move to service layer
74
+ router.use((req, res, next) => {
75
+ // REVISIT: This is authorization enforcement which is protocol-independent -> should move to service layer
74
76
  const requires = srv.definition['@requires']
75
77
  if (requires) {
76
78
  const ok = typeof requires === 'string' ? req.user.is(requires) : requires.some(r => req.user.is(r))
@@ -79,30 +81,43 @@ const RestAdapter = function(srv) {
79
81
  return next() // neither of the above
80
82
  }
81
83
 
82
- if (req.user._is_anonymous) { // > unauthorized or forbidden?
84
+ if (req.user._is_anonymous) {
85
+ // > unauthorized or forbidden?
86
+ // if (req.login) return req.login() // REVISIT: no clue whether we should do so
83
87
  if (req.user._challenges) res.set('WWW-Authenticate', req.user._challenges.join(';')) //> REVISIT: is this for basic auth only? -> should be done differently
84
- throw cds.error ('Unauthorized', { statusCode: 401, code: '401' }) //> UNAUTHORIZED
88
+ if (req.login) res.set('WWW-Authenticate', `Basic realm="Users"`) //> REVISIT: is this reasonable?
89
+ throw cds.error('Unauthorized', { statusCode: 401, code: '401' }) //> UNAUTHORIZED
85
90
  }
86
- throw cds.error ('Forbidden', { statusCode: 403, code: '403' }) //> FORBIDDEN
91
+ throw cds.error('Forbidden', { statusCode: 403, code: '403' }) //> FORBIDDEN
87
92
  // REVISIT: send res.status().json() instead of throwing exceptions
88
93
  // REVISIT: security log?
89
94
  })
90
95
 
91
96
  // -----------------------------------------------------------------------------------------
92
- // parse
97
+ // parse / validate
93
98
 
94
99
  // content-type check
95
- router.use((req, res, next) => { // REVISIT: move that into parse function
100
+ router.use((req, res, next) => {
101
+ // REVISIT: move that into parse function
96
102
  if (req.method in { POST: 1, PUT: 1, PATCH: 1 }) {
97
103
  const contentType = req.headers['content-type'] && req.headers['content-type'].split(';')
98
104
  if (
99
105
  contentType &&
100
106
  (!contentType[0].match(/^application\/json$/) || (typeof contentType[1] === 'string' && !contentType[1]))
101
107
  ) {
102
- throw cds.error ('INVALID_CONTENT_TYPE_ONLY_JSON', { statusCode: 415, code: '415' }) // FIXME: better i18n + use res.status
108
+ throw cds.error('INVALID_CONTENT_TYPE_ONLY_JSON', { statusCode: 415, code: '415' }) // FIXME: better i18n + use res.status
103
109
  }
104
- if (req.method in { PUT: 1, PATCH: 1 } && Array.isArray(req.body)) {
105
- throw cds.error (`INVALID_${req.method}`, { statusCode: 400, code: '400' }) // FIXME: better i18n + use res.status
110
+
111
+ if (req.method in { PUT: 1, PATCH: 1 }) {
112
+ if (Array.isArray(req.body)) {
113
+ throw cds.error(`INVALID_${req.method}`, { statusCode: 400, code: '400' }) // FIXME: better i18n + use res.status
114
+ }
115
+
116
+ // check for empty payload body
117
+ if (req.headers['content-length'] === '0') {
118
+ res.status(400).json({ error: { message: 'Malformed patch document', statusCode: 400, code: '400' } })
119
+ return
120
+ }
106
121
  }
107
122
  }
108
123
  next()
@@ -115,7 +130,8 @@ const RestAdapter = function(srv) {
115
130
 
116
131
  // -----------------------------------------------------------------------------------------
117
132
  // begin tx
118
- router.use((req, res, next) => { // REVISIT: -> move to actual handler(s)
133
+ router.use((req, res, next) => {
134
+ // REVISIT: -> move to actual handler(s)
119
135
  // create tx and set as cds.context
120
136
  cds.context = srv.tx(new cds.EventContext({ user: req.user, req, res }))
121
137
  next()
@@ -137,8 +153,7 @@ const RestAdapter = function(srv) {
137
153
  })
138
154
  router.put('/*', update)
139
155
  router.patch('/*', update)
140
- router.delete('/*', (req,res,next) => deleet(req,res).then(next).catch(next))
141
-
156
+ router.delete('/*', (req, res, next) => deleet(req, res).then(next).catch(next))
142
157
 
143
158
  // -----------------------------------------------------------------------------------------
144
159
  // end tx (i.e., commit or rollback)
@@ -158,8 +173,9 @@ const RestAdapter = function(srv) {
158
173
 
159
174
  // only set status if not yet modified
160
175
  if (status && res.statusCode === 200) res.status(status) // REVISIT: Why only when res.statusCode === 200?
161
- if (location) res.set('location', location) // REVISIT: When do we redirect?
162
- if (req.method === 'HEAD') // REVISIT: Move that to the implementation of HEAD
176
+ if (location) res.set('location', location) // REVISIT: When do we redirect?
177
+ if (req.method === 'HEAD')
178
+ // REVISIT: Move that to the implementation of HEAD
163
179
  res
164
180
  .set({
165
181
  'content-type': 'application/json; charset=utf-8',
@@ -170,10 +186,10 @@ const RestAdapter = function(srv) {
170
186
  else res.send(typeof result === 'number' ? result.toString() : result) // REVISIT: use req.json() instead?
171
187
  })
172
188
 
173
-
174
189
  // -----------------------------------------------------------------------------------------
175
190
  // error handling
176
- router.use((err, req, res, next) => { // REVISIT: should not be neccessary!
191
+ router.use((err, req, res, next) => {
192
+ // REVISIT: should not be neccessary!
177
193
  // request may fail during processing or during commit -> both caught here
178
194
 
179
195
  // REVISIT: rollback needed if error occured before commit attempted -> how to distinguish?
@@ -181,7 +197,10 @@ const RestAdapter = function(srv) {
181
197
 
182
198
  next(err)
183
199
  })
184
- router.use(error) // FIXME: nope -> call next()
200
+
201
+ if (!cds.env.features.rest_error_handler) {
202
+ router.use(error) // FIXME: nope -> call next()
203
+ }
185
204
 
186
205
  return router
187
206
  }
@@ -9,7 +9,8 @@ const { deepCopy } = require('../../_runtime/common/utils/copy')
9
9
  module.exports = (req, res, next) => {
10
10
  const { _srv: service } = req
11
11
 
12
- // REVISIT: Once we don't display the error message location in terms of an offset, but instead a copy of the original request including a marker, we don't need to provide the baseUrl here.
12
+ // REVISIT: Once we don't display the error message location in terms of an offset, but instead a copy of the
13
+ // original request including a marker, we don't need to provide the baseUrl here.
13
14
  let query = cds.odata.parse(req.url, { service, baseUrl: req.baseUrl })
14
15
 
15
16
  // parser always produces selects
@@ -18,7 +18,7 @@ module.exports = async (_req, _res, next) => {
18
18
  // if upsert it allowed, we need to catch 404 and retry with create
19
19
  try {
20
20
  // add the data (as copy, if upsert allowed)
21
- query.with(UPSERT_ALLOWED ? deepCopyObject(_data) : _data)
21
+ query.data(UPSERT_ALLOWED ? deepCopyObject(_data) : _data)
22
22
  // REVISIT: if PUT, req.method should be PUT -> Crud2Http maps UPSERT to PUT
23
23
  result = await srv.dispatch(new RestRequest({ query, _target, method: _req.method, params: _params }))
24
24
  if (_params && result) Object.assign(result, _params[_params.length - 1])
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap/cds",
3
- "version": "6.1.3",
3
+ "version": "6.2.1",
4
4
  "description": "SAP Cloud Application Programming Model - CDS for Node.js",
5
5
  "homepage": "https://cap.cloud.sap/",
6
6
  "keywords": [
@@ -30,7 +30,7 @@
30
30
  "node": ">=14.15.0"
31
31
  },
32
32
  "dependencies": {
33
- "@sap/cds-compiler": "^3.0.0",
33
+ "@sap/cds-compiler": "^3.2.0",
34
34
  "@sap/cds-foss": "^4"
35
35
  },
36
36
  "husky": {
package/server.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const cds = require('./lib'), { features } = cds.env
2
+ // eslint-disable-next-line cds/no-missing-dependencies -- needs to be added by app dev
2
3
  const express = require('express')
3
4
 
4
5
  /**
@@ -36,17 +37,17 @@ module.exports = async function cds_server (options) {
36
37
  if (o.static) app.use (express_static (o.static)) //> defaults to ./app
37
38
  if (o.favicon) app.use ('/favicon.ico', o.favicon) //> if none in ./app
38
39
  if (o.index) app.get ('/',o.index) //> if none in ./app
39
- if (o.correlate) app.use (o.correlate) //> request correlation
40
40
 
41
41
  // load specified models or all in project
42
42
  const csn = await cds.load(o.from||'*',o) .then (cds.minify) //> separate csn for _init_db
43
43
  cds.model = cds.compile.for.nodejs(csn)
44
44
 
45
45
  // connect to essential framework services if required
46
- if (cds.requires.db) cds.db = await cds.connect.to ('db') .then (_init)
47
- if (cds.requires.messaging) await cds.connect.to ('messaging')
46
+ if (cds.requires.db) cds.db = await cds.connect.to ('db') .then (_init)
47
+ if (cds.requires.messaging) await cds.connect.to ('messaging')
48
48
 
49
49
  // serve all services declared in models
50
+ if (cds.requires.middlewares) cds.middlewares.bootstrap(); else if (o.correlate) app.use (o.correlate)
50
51
  await cds.serve (o.service,o) .in (app)
51
52
  await cds.emit ('served', cds.services) //> hook for listeners
52
53
 
@@ -116,7 +117,7 @@ function correlate (req, res, next) {
116
117
  if (!cds.context) cds.context = { id }
117
118
  // guarantee x-correlation-id going forward and set on res
118
119
  req.headers['x-correlation-id'] = id
119
- res.set('x-correlation-id', id)
120
+ res.set('X-Correlation-ID', id)
120
121
  // guaranteed access to cds.context._.req -> REVISIT
121
122
  if (!cds.context._) cds.context._ = {}
122
123
  if (!cds.context._.req) cds.context._.req = req
package/srv/mtx.cds CHANGED
@@ -1,2 +1,2 @@
1
- /** Dummy service for bootstrapping MTX services */
1
+ /** Dummy service for bootstrapping old MTX */
2
2
  @protocol:'none' service cds.xt.MTXServices {}