sanity 3.93.1-next.23.7cabaeaf78 → 3.93.1-next.27.be182aaafa

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 (241) hide show
  1. package/lib/_chunks-cjs/version.js +1 -1
  2. package/lib/_chunks-es/version.mjs +1 -1
  3. package/package.json +10 -10
  4. package/dist/1-yrhfgGSy.mjs +0 -5
  5. package/dist/1-yrhfgGSy.mjs.map +0 -1
  6. package/dist/BackLink-BjbAxrJO.mjs +0 -2
  7. package/dist/BackLink-BjbAxrJO.mjs.map +0 -1
  8. package/dist/BehaviorSubject-lT90ntN-.mjs +0 -2
  9. package/dist/BehaviorSubject-lT90ntN-.mjs.map +0 -1
  10. package/dist/BroadcastDisplayedDocument-NLP-sZ3E.mjs +0 -2
  11. package/dist/BroadcastDisplayedDocument-NLP-sZ3E.mjs.map +0 -1
  12. package/dist/Delay-BF0O9UCI.mjs +0 -2
  13. package/dist/Delay-BF0O9UCI.mjs.map +0 -1
  14. package/dist/DisplayedDocumentBroadcaster-bVq7qjFz.mjs +0 -2
  15. package/dist/DisplayedDocumentBroadcaster-bVq7qjFz.mjs.map +0 -1
  16. package/dist/DocumentPane-B9qqshkT.mjs +0 -263
  17. package/dist/DocumentPane-B9qqshkT.mjs.map +0 -1
  18. package/dist/EmptyError-BLRYgvfy.mjs +0 -2
  19. package/dist/EmptyError-BLRYgvfy.mjs.map +0 -1
  20. package/dist/LiveQueries-D9bwoNKb.mjs +0 -2
  21. package/dist/LiveQueries-D9bwoNKb.mjs.map +0 -1
  22. package/dist/LoadingPane-fVJxEQpb.mjs +0 -10
  23. package/dist/LoadingPane-fVJxEQpb.mjs.map +0 -1
  24. package/dist/MenuGroup-DZWX1dWR.mjs +0 -2
  25. package/dist/MenuGroup-DZWX1dWR.mjs.map +0 -1
  26. package/dist/MenuItem-nwzB8TNk.mjs +0 -8
  27. package/dist/MenuItem-nwzB8TNk.mjs.map +0 -1
  28. package/dist/Observable-B8U6mp9h.mjs +0 -4
  29. package/dist/Observable-B8U6mp9h.mjs.map +0 -1
  30. package/dist/PaneContainer-BqULSwD0.mjs +0 -109
  31. package/dist/PaneContainer-BqULSwD0.mjs.map +0 -1
  32. package/dist/PaneHeaderActions-BwRjxrbU.mjs +0 -2
  33. package/dist/PaneHeaderActions-BwRjxrbU.mjs.map +0 -1
  34. package/dist/PaneItem-CXeBMzOt.mjs +0 -2
  35. package/dist/PaneItem-CXeBMzOt.mjs.map +0 -1
  36. package/dist/PostMessageDocuments-BV62lQ7C.mjs +0 -2
  37. package/dist/PostMessageDocuments-BV62lQ7C.mjs.map +0 -1
  38. package/dist/PostMessagePerspective-CFiQ6IFc.mjs +0 -2
  39. package/dist/PostMessagePerspective-CFiQ6IFc.mjs.map +0 -1
  40. package/dist/PostMessagePreviewSnapshots-5oC2mIn1.mjs +0 -2
  41. package/dist/PostMessagePreviewSnapshots-5oC2mIn1.mjs.map +0 -1
  42. package/dist/PostMessageRefreshMutations-DdxC6YP_.mjs +0 -2
  43. package/dist/PostMessageRefreshMutations-DdxC6YP_.mjs.map +0 -1
  44. package/dist/PostMessageSchema-Bcs4xG5C.mjs +0 -2
  45. package/dist/PostMessageSchema-Bcs4xG5C.mjs.map +0 -1
  46. package/dist/PostMessageTelemetry-LUBYudOJ.mjs +0 -2
  47. package/dist/PostMessageTelemetry-LUBYudOJ.mjs.map +0 -1
  48. package/dist/PresentationToolGrantsCheck-CgJU8JlK.mjs +0 -100
  49. package/dist/PresentationToolGrantsCheck-CgJU8JlK.mjs.map +0 -1
  50. package/dist/QRCodeSVG-CxOJrjO_.mjs +0 -2
  51. package/dist/QRCodeSVG-CxOJrjO_.mjs.map +0 -1
  52. package/dist/Refractor-UCi38mb-.mjs +0 -5
  53. package/dist/Refractor-UCi38mb-.mjs.map +0 -1
  54. package/dist/ReplaySubject-CHMGH8uo.mjs +0 -2
  55. package/dist/ReplaySubject-CHMGH8uo.mjs.map +0 -1
  56. package/dist/SourceContext-D53WuQKs.mjs +0 -2
  57. package/dist/SourceContext-D53WuQKs.mjs.map +0 -1
  58. package/dist/StructureToolProvider-C8VLdhP8.mjs +0 -2
  59. package/dist/StructureToolProvider-C8VLdhP8.mjs.map +0 -1
  60. package/dist/Subject-BUseddH4.mjs +0 -2
  61. package/dist/Subject-BUseddH4.mjs.map +0 -1
  62. package/dist/Tooltip-JnkpPrKf.mjs +0 -4
  63. package/dist/Tooltip-JnkpPrKf.mjs.map +0 -1
  64. package/dist/TooltipDelayGroupProvider-DFmNEvMS.mjs +0 -2
  65. package/dist/TooltipDelayGroupProvider-DFmNEvMS.mjs.map +0 -1
  66. package/dist/ViteDevServerStopped-XKSHzTxM.mjs +0 -2
  67. package/dist/ViteDevServerStopped-XKSHzTxM.mjs.map +0 -1
  68. package/dist/_createContext.mjs +0 -2
  69. package/dist/_createContext.mjs.map +0 -1
  70. package/dist/_singletons.mjs +0 -2
  71. package/dist/_singletons.mjs.map +0 -1
  72. package/dist/asserters-C8hxedkt.mjs +0 -2
  73. package/dist/asserters-C8hxedkt.mjs.map +0 -1
  74. package/dist/async-HS7jgwe2.mjs +0 -2
  75. package/dist/async-HS7jgwe2.mjs.map +0 -1
  76. package/dist/browser-Ca2COO1i.mjs +0 -14
  77. package/dist/browser-Ca2COO1i.mjs.map +0 -1
  78. package/dist/browser-oKMlC993.mjs +0 -2
  79. package/dist/browser-oKMlC993.mjs.map +0 -1
  80. package/dist/chunk-DSR6Ryem.mjs +0 -1
  81. package/dist/combineLatest-CFPJgUfN.mjs +0 -2
  82. package/dist/combineLatest-CFPJgUfN.mjs.map +0 -1
  83. package/dist/concat-BWArfBxD.mjs +0 -2
  84. package/dist/concat-BWArfBxD.mjs.map +0 -1
  85. package/dist/concatMap-DZrL7ZKn.mjs +0 -2
  86. package/dist/concatMap-DZrL7ZKn.mjs.map +0 -1
  87. package/dist/constants-ChSQUPYh.mjs +0 -5
  88. package/dist/constants-ChSQUPYh.mjs.map +0 -1
  89. package/dist/constants-ClLucOHG.mjs +0 -10
  90. package/dist/constants-ClLucOHG.mjs.map +0 -1
  91. package/dist/csm-BGmdCiS5.mjs +0 -3
  92. package/dist/csm-BGmdCiS5.mjs.map +0 -1
  93. package/dist/dateTimestampProvider-Bu3RH21w.mjs +0 -2
  94. package/dist/dateTimestampProvider-Bu3RH21w.mjs.map +0 -1
  95. package/dist/debounceTime-ZjGvEiAc.mjs +0 -2
  96. package/dist/debounceTime-ZjGvEiAc.mjs.map +0 -1
  97. package/dist/desk.mjs +0 -2
  98. package/dist/desk.mjs.map +0 -1
  99. package/dist/dist-B6kS-Ue1.mjs +0 -2
  100. package/dist/dist-B6kS-Ue1.mjs.map +0 -1
  101. package/dist/dist-BBJTJw5c.mjs +0 -2
  102. package/dist/dist-BBJTJw5c.mjs.map +0 -1
  103. package/dist/dist-ByxNQHyT.mjs +0 -2
  104. package/dist/dist-ByxNQHyT.mjs.map +0 -1
  105. package/dist/dist-CbgPQx6C.mjs +0 -8
  106. package/dist/dist-CbgPQx6C.mjs.map +0 -1
  107. package/dist/dist-ClpwwQr8.mjs +0 -15
  108. package/dist/dist-ClpwwQr8.mjs.map +0 -1
  109. package/dist/dist-DPyoedQR.mjs +0 -2
  110. package/dist/dist-DPyoedQR.mjs.map +0 -1
  111. package/dist/dist-DTr4N9sP.mjs +0 -2
  112. package/dist/dist-DTr4N9sP.mjs.map +0 -1
  113. package/dist/dist-DhOlFDfY.mjs +0 -2
  114. package/dist/dist-DhOlFDfY.mjs.map +0 -1
  115. package/dist/dist-Du4lGEpF.mjs +0 -2
  116. package/dist/dist-Du4lGEpF.mjs.map +0 -1
  117. package/dist/dist-gdCAZyAZ.mjs +0 -1213
  118. package/dist/dist-gdCAZyAZ.mjs.map +0 -1
  119. package/dist/dist-p4qSKgLr.mjs +0 -2
  120. package/dist/dist-p4qSKgLr.mjs.map +0 -1
  121. package/dist/fast-deep-equal-D2buQJMm.mjs +0 -2
  122. package/dist/fast-deep-equal-D2buQJMm.mjs.map +0 -1
  123. package/dist/filter-Dzj28Ftl.mjs +0 -2
  124. package/dist/filter-Dzj28Ftl.mjs.map +0 -1
  125. package/dist/first-rmXQWXXU.mjs +0 -2
  126. package/dist/first-rmXQWXXU.mjs.map +0 -1
  127. package/dist/from-1e-Bj2Xm.mjs +0 -2
  128. package/dist/from-1e-Bj2Xm.mjs.map +0 -1
  129. package/dist/getExtendedProjection-ocJy6w-1.mjs +0 -2
  130. package/dist/getExtendedProjection-ocJy6w-1.mjs.map +0 -1
  131. package/dist/getIntentState-BzHK-R2v.mjs +0 -25
  132. package/dist/getIntentState-BzHK-R2v.mjs.map +0 -1
  133. package/dist/helpers-DmN6xVrH.mjs +0 -2
  134. package/dist/helpers-DmN6xVrH.mjs.map +0 -1
  135. package/dist/i18n-DSW5BxWp.mjs +0 -2
  136. package/dist/i18n-DSW5BxWp.mjs.map +0 -1
  137. package/dist/index.browser-CKm2u9SF.mjs +0 -14
  138. package/dist/index.browser-CKm2u9SF.mjs.map +0 -1
  139. package/dist/index.browser-m6o-65PH.mjs +0 -2
  140. package/dist/index.browser-m6o-65PH.mjs.map +0 -1
  141. package/dist/index.mjs +0 -4364
  142. package/dist/index.mjs.map +0 -1
  143. package/dist/inputWrappers-B2JwUo5Q.mjs +0 -6
  144. package/dist/inputWrappers-B2JwUo5Q.mjs.map +0 -1
  145. package/dist/isObservable-D3WTlre7.mjs +0 -2
  146. package/dist/isObservable-D3WTlre7.mjs.map +0 -1
  147. package/dist/lastValueFrom-DNJfBsuL.mjs +0 -2
  148. package/dist/lastValueFrom-DNJfBsuL.mjs.map +0 -1
  149. package/dist/list-CRYGwmUP.mjs +0 -17
  150. package/dist/list-CRYGwmUP.mjs.map +0 -1
  151. package/dist/lodash-Bv9uePfP.mjs +0 -21
  152. package/dist/lodash-Bv9uePfP.mjs.map +0 -1
  153. package/dist/map-DkDssZnl.mjs +0 -2
  154. package/dist/map-DkDssZnl.mjs.map +0 -1
  155. package/dist/mapOneOrManyArgs-nKglr-Z6.mjs +0 -2
  156. package/dist/mapOneOrManyArgs-nKglr-Z6.mjs.map +0 -1
  157. package/dist/menuNodes-DfRBkUna.mjs +0 -2
  158. package/dist/menuNodes-DfRBkUna.mjs.map +0 -1
  159. package/dist/merge-DLqD1gqk.mjs +0 -2
  160. package/dist/merge-DLqD1gqk.mjs.map +0 -1
  161. package/dist/mergeMap-BhPr1e5f.mjs +0 -2
  162. package/dist/mergeMap-BhPr1e5f.mjs.map +0 -1
  163. package/dist/never-DgTZVAtg.mjs +0 -2
  164. package/dist/never-DgTZVAtg.mjs.map +0 -1
  165. package/dist/of-DHUS5V5R.mjs +0 -2
  166. package/dist/of-DHUS5V5R.mjs.map +0 -1
  167. package/dist/pane-BMyHaSp6.mjs +0 -1
  168. package/dist/pane-CAXJwiOS.mjs +0 -1
  169. package/dist/paths-Uiaz64OV.mjs +0 -2
  170. package/dist/paths-Uiaz64OV.mjs.map +0 -1
  171. package/dist/presentation.mjs +0 -12
  172. package/dist/presentation.mjs.map +0 -1
  173. package/dist/proxy-Dqw503dV.mjs +0 -2
  174. package/dist/proxy-Dqw503dV.mjs.map +0 -1
  175. package/dist/publishReplay-w0VqSlUG.mjs +0 -2
  176. package/dist/publishReplay-w0VqSlUG.mjs.map +0 -1
  177. package/dist/react-CcFWW54u.mjs +0 -2
  178. package/dist/react-CcFWW54u.mjs.map +0 -1
  179. package/dist/refractor-BE6oAO2f.mjs +0 -2
  180. package/dist/refractor-BE6oAO2f.mjs.map +0 -1
  181. package/dist/resources-B-P7yY4i.mjs +0 -2
  182. package/dist/resources-B-P7yY4i.mjs.map +0 -1
  183. package/dist/resources-BMgz3UTF.mjs +0 -2
  184. package/dist/resources-BMgz3UTF.mjs.map +0 -1
  185. package/dist/resources-C10e-Tmd.mjs +0 -2
  186. package/dist/resources-C10e-Tmd.mjs.map +0 -1
  187. package/dist/resources-C63HMln_.mjs +0 -3
  188. package/dist/resources-C63HMln_.mjs.map +0 -1
  189. package/dist/resources-QIglKpCh.mjs +0 -2
  190. package/dist/resources-QIglKpCh.mjs.map +0 -1
  191. package/dist/resources-a_EhxFoi.mjs +0 -2
  192. package/dist/resources-a_EhxFoi.mjs.map +0 -1
  193. package/dist/resources-wUgycRup.mjs +0 -2
  194. package/dist/resources-wUgycRup.mjs.map +0 -1
  195. package/dist/router.mjs +0 -2
  196. package/dist/router.mjs.map +0 -1
  197. package/dist/scan-zuMwSL6_.mjs +0 -2
  198. package/dist/scan-zuMwSL6_.mjs.map +0 -1
  199. package/dist/share-DudygGnN.mjs +0 -2
  200. package/dist/share-DudygGnN.mjs.map +0 -1
  201. package/dist/shareReplay-DNp-xAdu.mjs +0 -2
  202. package/dist/shareReplay-DNp-xAdu.mjs.map +0 -1
  203. package/dist/speakingurl-D9zTR1xM.mjs +0 -2
  204. package/dist/speakingurl-D9zTR1xM.mjs.map +0 -1
  205. package/dist/stegaClean-CF_wp2AP.mjs +0 -2
  206. package/dist/stegaClean-CF_wp2AP.mjs.map +0 -1
  207. package/dist/stegaEncodeSourceMap-sinaqym6.mjs +0 -3
  208. package/dist/stegaEncodeSourceMap-sinaqym6.mjs.map +0 -1
  209. package/dist/structure-DeitBGwm.mjs +0 -122
  210. package/dist/structure-DeitBGwm.mjs.map +0 -1
  211. package/dist/structure.mjs +0 -1
  212. package/dist/structureTool-C7WqcvTM.mjs +0 -11
  213. package/dist/structureTool-C7WqcvTM.mjs.map +0 -1
  214. package/dist/switchMap-Dkb8wgZy.mjs +0 -2
  215. package/dist/switchMap-Dkb8wgZy.mjs.map +0 -1
  216. package/dist/take-CsBFzexj.mjs +0 -2
  217. package/dist/take-CsBFzexj.mjs.map +0 -1
  218. package/dist/takeUntil-CFb43n44.mjs +0 -2
  219. package/dist/takeUntil-CFb43n44.mjs.map +0 -1
  220. package/dist/throttle-84hk9ct5.mjs +0 -2
  221. package/dist/throttle-84hk9ct5.mjs.map +0 -1
  222. package/dist/timer-CudmXrHS.mjs +0 -2
  223. package/dist/timer-CudmXrHS.mjs.map +0 -1
  224. package/dist/urlpattern-polyfill-CTSIY__t.mjs +0 -2
  225. package/dist/urlpattern-polyfill-CTSIY__t.mjs.map +0 -1
  226. package/dist/usePaneRouter-BnyByWgR.mjs +0 -2
  227. package/dist/usePaneRouter-BnyByWgR.mjs.map +0 -1
  228. package/dist/usePresentationNavigate-CIMnjQ3N.mjs +0 -2
  229. package/dist/usePresentationNavigate-CIMnjQ3N.mjs.map +0 -1
  230. package/dist/usePresentationParams-CK4TAdiB.mjs +0 -2
  231. package/dist/usePresentationParams-CK4TAdiB.mjs.map +0 -1
  232. package/dist/useStructureTool-DJWYs4dK.mjs +0 -86
  233. package/dist/useStructureTool-DJWYs4dK.mjs.map +0 -1
  234. package/dist/useStructureToolSetting-BmMWFoFU.mjs +0 -2
  235. package/dist/useStructureToolSetting-BmMWFoFU.mjs.map +0 -1
  236. package/dist/userComponent-C7AeZ7LF.mjs +0 -4
  237. package/dist/userComponent-C7AeZ7LF.mjs.map +0 -1
  238. package/dist/v4-jDHpYEaJ.mjs +0 -2
  239. package/dist/v4-jDHpYEaJ.mjs.map +0 -1
  240. package/dist/version-BzHQOibY.mjs +0 -2
  241. package/dist/version-BzHQOibY.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"1-yrhfgGSy.mjs","names":["i","CrossDatasetReferenceSchemaType","TitledListValue","ArraySchemaType","BaseSchemaType","BlockChildrenObjectField","BlockListObjectField","BlockSchemaType","BlockStyleObjectField","BooleanSchemaType","DeprecatedSchemaType","DeprecationConfiguration","FileSchemaType","ImageSchemaType","NumberSchemaType","ObjectSchemaType","ReferenceSchemaType","SchemaType","SpanSchemaType","StringSchemaType","isRecord","value","Record","isDocumentSchemaType","type","isObjectSchemaType","current","name","jsonType","isArraySchemaType","isArrayOfBlocksSchemaType","of","some","memberType","isBlockSchemaType","isArrayOfObjectsSchemaType","every","isArrayOfPrimitivesSchemaType","isPrimitiveSchemaType","isBooleanSchemaType","isStringSchemaType","isDateTimeSchemaType","isNumberSchemaType","isReferenceSchemaType","isImageSchemaType","isFileSchemaType","isDeprecatedSchemaType","TSchemaType","deprecated","isDeprecationConfiguration","isCrossDatasetReferenceSchemaType","isTitledListValue","item","isSpanSchemaType","Array","isArray","annotations","decorators","fields","maybeSpanChildren","find","isBlockChildrenObjectField","maybeStyle","isBlockStyleObjectField","maybeList","isBlockListObjectField","field","compare","map"],"sources":["https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/util/not.js","https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/observable/partition.js","https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/operators/debounce.js","https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/operators/exhaustMap.js","https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/operators/throttleTime.js","https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/operators/withLatestFrom.js","https://github.com/sanity-io/sanity/blob/v3.93.0/packages/%40sanity/types/src/schema/asserters.ts","https://cdn.jsdelivr.net/npm/shallow-equals@1.0.0/index.js","https://cdn.jsdelivr.net/npm/rxjs-exhaustmap-with-trailing@2.1.1/dist/esm/index.js","https://cdn.jsdelivr.net/npm/groq-js@1.17.0/dist/1.mjs"],"sourcesContent":["export function not(pred, thisArg) {\n return function (value, index) { return !pred.call(thisArg, value, index); };\n}\n//# sourceMappingURL=not.js.map","import { not } from '../util/not';\nimport { filter } from '../operators/filter';\nimport { innerFrom } from './innerFrom';\nexport function partition(source, predicate, thisArg) {\n return [filter(predicate, thisArg)(innerFrom(source)), filter(not(predicate, thisArg))(innerFrom(source))];\n}\n//# sourceMappingURL=partition.js.map","import { operate } from '../util/lift';\nimport { noop } from '../util/noop';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nexport function debounce(durationSelector) {\n return operate(function (source, subscriber) {\n var hasValue = false;\n var lastValue = null;\n var durationSubscriber = null;\n var emit = function () {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n durationSubscriber = null;\n if (hasValue) {\n hasValue = false;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n durationSubscriber === null || durationSubscriber === void 0 ? void 0 : durationSubscriber.unsubscribe();\n hasValue = true;\n lastValue = value;\n durationSubscriber = createOperatorSubscriber(subscriber, emit, noop);\n innerFrom(durationSelector(value)).subscribe(durationSubscriber);\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = durationSubscriber = null;\n }));\n });\n}\n//# sourceMappingURL=debounce.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) {\n return source.pipe(exhaustMap(function (a, i) { return innerFrom(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }));\n };\n }\n return operate(function (source, subscriber) {\n var index = 0;\n var innerSub = null;\n var isComplete = false;\n source.subscribe(createOperatorSubscriber(subscriber, function (outerValue) {\n if (!innerSub) {\n innerSub = createOperatorSubscriber(subscriber, undefined, function () {\n innerSub = null;\n isComplete && subscriber.complete();\n });\n innerFrom(project(outerValue, index++)).subscribe(innerSub);\n }\n }, function () {\n isComplete = true;\n !innerSub && subscriber.complete();\n }));\n });\n}\n//# sourceMappingURL=exhaustMap.js.map","import { asyncScheduler } from '../scheduler/async';\nimport { throttle } from './throttle';\nimport { timer } from '../observable/timer';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n var duration$ = timer(duration, scheduler);\n return throttle(function () { return duration$; }, config);\n}\n//# sourceMappingURL=throttleTime.js.map","import { __read, __spreadArray } from \"tslib\";\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { identity } from '../util/identity';\nimport { noop } from '../util/noop';\nimport { popResultSelector } from '../util/args';\nexport function withLatestFrom() {\n var inputs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n inputs[_i] = arguments[_i];\n }\n var project = popResultSelector(inputs);\n return operate(function (source, subscriber) {\n var len = inputs.length;\n var otherValues = new Array(len);\n var hasValue = inputs.map(function () { return false; });\n var ready = false;\n var _loop_1 = function (i) {\n innerFrom(inputs[i]).subscribe(createOperatorSubscriber(subscriber, function (value) {\n otherValues[i] = value;\n if (!ready && !hasValue[i]) {\n hasValue[i] = true;\n (ready = hasValue.every(identity)) && (hasValue = null);\n }\n }, noop));\n };\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n if (ready) {\n var values = __spreadArray([value], __read(otherValues));\n subscriber.next(project ? project.apply(void 0, __spreadArray([], __read(values))) : values);\n }\n }));\n });\n}\n//# sourceMappingURL=withLatestFrom.js.map","import {type CrossDatasetReferenceSchemaType} from '../crossDatasetReference'\nimport {type TitledListValue} from './definition'\nimport {\n type ArraySchemaType,\n type BaseSchemaType,\n type BlockChildrenObjectField,\n type BlockListObjectField,\n type BlockSchemaType,\n type BlockStyleObjectField,\n type BooleanSchemaType,\n type DeprecatedSchemaType,\n type DeprecationConfiguration,\n type FileSchemaType,\n type ImageSchemaType,\n type NumberSchemaType,\n type ObjectSchemaType,\n type ReferenceSchemaType,\n type SchemaType,\n type SpanSchemaType,\n type StringSchemaType,\n} from './types'\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && (typeof value == 'object' || typeof value == 'function')\n}\n\n/**\n * Returns wether or not the given type is a document type\n * (eg that it was defined as `type: 'document'`)\n *\n * @param type - Schema type to test\n * @returns True if type is a document type, false otherwise\n *\n * @public\n */\nexport function isDocumentSchemaType(type: unknown): type is ObjectSchemaType {\n if (!isObjectSchemaType(type)) {\n return false\n }\n\n let current: SchemaType | undefined = type as SchemaType\n while (current) {\n if (current.name === 'document') {\n return true\n }\n\n current = current.type\n }\n return false\n}\n\n/** @internal */\nexport function isObjectSchemaType(type: unknown): type is ObjectSchemaType {\n if (!isRecord(type)) return false\n return type.jsonType === 'object'\n}\n\n/** @internal */\nexport function isArraySchemaType(type: unknown): type is ArraySchemaType {\n if (!isRecord(type)) return false\n return type.jsonType === 'array'\n}\n\n/** @internal */\nexport function isArrayOfBlocksSchemaType(\n type: unknown,\n): type is ArraySchemaType<ObjectSchemaType> {\n return isArraySchemaType(type) && type.of.some((memberType) => isBlockSchemaType(memberType))\n}\n\n/** @internal */\nexport function isArrayOfObjectsSchemaType(\n type: unknown,\n): type is ArraySchemaType<ObjectSchemaType> {\n return isArraySchemaType(type) && type.of.every((memberType) => isObjectSchemaType(memberType))\n}\n\n/** @internal */\nexport function isArrayOfPrimitivesSchemaType(type: unknown): type is ArraySchemaType {\n return isArraySchemaType(type) && type.of.every((memberType) => isPrimitiveSchemaType(memberType))\n}\n\n/** @internal */\nexport function isBooleanSchemaType(type: unknown): type is BooleanSchemaType {\n if (!isRecord(type)) return false\n return type.jsonType === 'boolean'\n}\n\n/** @internal */\nexport function isStringSchemaType(type: unknown): type is StringSchemaType {\n if (!isRecord(type)) return false\n return type.jsonType === 'string'\n}\n\n/** @internal */\nexport function isDateTimeSchemaType(type: unknown): type is StringSchemaType {\n if (!isStringSchemaType(type)) return false\n return type.name === 'datetime'\n}\n\n/** @internal */\nexport function isNumberSchemaType(type: unknown): type is NumberSchemaType {\n if (!isRecord(type)) return false\n return type.jsonType === 'number'\n}\n\n/** @internal */\nexport function isPrimitiveSchemaType(\n type: unknown,\n): type is BooleanSchemaType | StringSchemaType | NumberSchemaType {\n return isBooleanSchemaType(type) || isStringSchemaType(type) || isNumberSchemaType(type)\n}\n\n/** @internal */\nexport function isReferenceSchemaType(type: unknown): type is ReferenceSchemaType {\n return isRecord(type) && (type.name === 'reference' || isReferenceSchemaType(type.type))\n}\n\n/** @internal */\nexport function isImageSchemaType(type: unknown): type is ImageSchemaType {\n return isRecord(type) && (type.name === 'image' || isImageSchemaType(type.type))\n}\n\n/** @internal */\nexport function isFileSchemaType(type: unknown): type is FileSchemaType {\n return isRecord(type) && (type.name === 'file' || isFileSchemaType(type.type))\n}\n\n/** @internal */\nexport function isDeprecatedSchemaType<TSchemaType extends BaseSchemaType>(\n type: TSchemaType,\n): type is DeprecatedSchemaType<TSchemaType> {\n if (!isRecord(type)) return false\n return typeof type.deprecated !== 'undefined'\n}\n\n/** @internal */\nexport function isDeprecationConfiguration(type: unknown): type is DeprecationConfiguration {\n if (!isRecord(type)) return false\n return typeof type.deprecated !== 'undefined'\n}\n\n/** @internal */\nexport function isCrossDatasetReferenceSchemaType(\n type: unknown,\n): type is CrossDatasetReferenceSchemaType {\n return (\n isRecord(type) &&\n (type.name === 'crossDatasetReference' || isCrossDatasetReferenceSchemaType(type.type))\n )\n}\n\n/** @internal */\nexport function isTitledListValue(item: unknown): item is TitledListValue {\n return typeof item === 'object' && item !== null && 'title' in item && 'value' in item\n}\n\n/** @internal */\nexport function isSpanSchemaType(type: unknown): type is SpanSchemaType {\n if (!isRecord(type)) return false\n // we check for `annotations` and `decorators` instead of `type.name` because\n // schema names can technically change if someone extends the type\n return Array.isArray(type.annotations) && Array.isArray(type.decorators)\n}\n\n/** @internal */\nexport function isBlockSchemaType(type: unknown): type is BlockSchemaType {\n if (!isRecord(type)) return false\n if (!Array.isArray(type.fields)) return false\n const maybeSpanChildren = type.fields.find(isBlockChildrenObjectField)\n const maybeStyle = type.fields.find(isBlockStyleObjectField)\n const maybeList = type.fields.find(isBlockListObjectField)\n return (\n isBlockChildrenObjectField(maybeSpanChildren) &&\n isBlockStyleObjectField(maybeStyle) &&\n isBlockListObjectField(maybeList)\n )\n}\n\n/** @internal */\nexport function isBlockStyleObjectField(field: unknown): field is BlockStyleObjectField {\n if (!isRecord(field)) return false\n if (field.name !== 'style') return false\n return isRecord(field.type) && field.type.jsonType === 'string'\n}\n\n/** @internal */\nexport function isBlockListObjectField(field: unknown): field is BlockListObjectField {\n if (!isRecord(field)) return false\n if (field.name !== 'listItem') return false\n return isRecord(field.type) && field.type.jsonType === 'string'\n}\n\n/** @internal */\nexport function isBlockChildrenObjectField(field: unknown): field is BlockChildrenObjectField {\n if (!isRecord(field)) return false\n if (field.name !== 'children') return false\n if (!isArraySchemaType(field.type)) return false\n // there will always be a span item in `SpanChildrenObjectField`\n return field.type.of.some(isSpanSchemaType)\n}\n","module.exports = shallow\n\nfunction shallow(a, b, compare) {\n var aIsNull = a === null\n var bIsNull = b === null\n\n if (aIsNull !== bIsNull) return false\n\n var aIsArray = Array.isArray(a)\n var bIsArray = Array.isArray(b)\n\n if (aIsArray !== bIsArray) return false\n\n var aTypeof = typeof a\n var bTypeof = typeof b\n\n if (aTypeof !== bTypeof) return false\n if (flat(aTypeof)) return compare\n ? compare(a, b)\n : a === b\n\n return aIsArray\n ? shallowArray(a, b, compare)\n : shallowObject(a, b, compare)\n}\n\nfunction shallowArray(a, b, compare) {\n var l = a.length\n if (l !== b.length) return false\n\n if (compare) {\n for (var i = 0; i < l; i++)\n if (!compare(a[i], b[i])) return false\n } else {\n for (var i = 0; i < l; i++) {\n if (a[i] !== b[i]) return false\n }\n }\n\n return true\n}\n\nfunction shallowObject(a, b, compare) {\n var ka = 0\n var kb = 0\n\n if (compare) {\n for (var key in a) {\n if (\n a.hasOwnProperty(key) &&\n !compare(a[key], b[key])\n ) return false\n\n ka++\n }\n } else {\n for (var key in a) {\n if (\n a.hasOwnProperty(key) &&\n a[key] !== b[key]\n ) return false\n\n ka++\n }\n }\n\n for (var key in b) {\n if (b.hasOwnProperty(key)) kb++\n }\n\n return ka === kb\n}\n\nfunction flat(type) {\n return (\n type !== 'function' &&\n type !== 'object'\n )\n}\n","import { asyncScheduler, defer, scheduled, Subject, } from \"rxjs\";\nimport { exhaustMap, finalize, throttle } from \"rxjs/operators\";\n/**\n * Like exhaustMap, but also includes the trailing value emitted from the source observable while waiting for the preceding inner observable to complete\n *\n * Original code adapted from https://github.com/ReactiveX/rxjs/issues/5004\n * @param {function<T, K>(value: T, ?index: number): ObservableInput<K>} project - A function that, when applied to an item emitted by the\n * source Observable, returns a projected Observable.\n */\nexport function exhaustMapWithTrailing(project) {\n return (source) => defer(() => {\n const release = new Subject();\n return source.pipe(throttle(() => release, {\n leading: true,\n trailing: true,\n }), exhaustMap((value, index) => scheduled(project(value, index), asyncScheduler).pipe(finalize(() => {\n release.next();\n }))));\n });\n}\n/**\n * Like exhaustMap, but also includes the trailing value emitted from the source observable while waiting for the preceding inner observable to complete\n *\n * Original code adapted from https://github.com/ReactiveX/rxjs/issues/5004\n * @param {ObservableInput} innerObservable An Observable to replace each value from\n * the source Observable.\n */\nexport function exhaustMapToWithTrailing(innerObservable) {\n return exhaustMapWithTrailing(() => innerObservable);\n}\n","import debug from \"debug\";\nfunction escapeRegExp(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nfunction pathRegExp(pattern) {\n const re = [];\n for (const part of pattern.split(\".\"))\n part === \"*\" ? re.push(\"[^.]+\") : part === \"**\" ? re.push(\".*\") : re.push(escapeRegExp(part));\n return new RegExp(`^${re.join(\".\")}$`);\n}\nclass Path {\n pattern;\n patternRe;\n constructor(pattern) {\n this.pattern = pattern, this.patternRe = pathRegExp(pattern);\n }\n matches(str) {\n return this.patternRe.test(str);\n }\n toJSON() {\n return this.pattern;\n }\n}\nclass StreamValue {\n type = \"stream\";\n generator;\n ticker;\n isDone;\n data;\n constructor(generator) {\n this.generator = generator, this.ticker = null, this.isDone = !1, this.data = [];\n }\n // eslint-disable-next-line class-methods-use-this\n isArray() {\n return !0;\n }\n async get() {\n const result = [];\n for await (const value of this)\n result.push(await value.get());\n return result;\n }\n async *[Symbol.asyncIterator]() {\n let i = 0;\n for (; ; ) {\n for (; i < this.data.length; i++)\n yield this.data[i];\n if (this.isDone)\n return;\n await this._nextTick();\n }\n }\n _nextTick() {\n if (this.ticker)\n return this.ticker;\n let currentResolver;\n const setupTicker = () => {\n this.ticker = new Promise((resolve) => {\n currentResolver = resolve;\n });\n }, tick = () => {\n currentResolver(), setupTicker();\n }, fetch = async () => {\n for await (const value of this.generator())\n this.data.push(value), tick();\n this.isDone = !0, tick();\n };\n return setupTicker(), fetch(), this.ticker;\n }\n}\nconst RFC3339_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|([-+]\\d{2}:\\d{2}))$/;\nfunction parseRFC3339(str) {\n return RFC3339_REGEX.test(str) ? new Date(str) : null;\n}\nfunction formatRFC3339(d) {\n const year = addLeadingZero(d.getUTCFullYear(), 4), month = addLeadingZero(d.getUTCMonth() + 1, 2), day = addLeadingZero(d.getUTCDate(), 2), hour = addLeadingZero(d.getUTCHours(), 2), minute = addLeadingZero(d.getUTCMinutes(), 2), second = addLeadingZero(d.getUTCSeconds(), 2);\n let fractionalSecond = \"\";\n const millis = d.getMilliseconds();\n return millis != 0 && (fractionalSecond = `.${addLeadingZero(millis, 3)}`), `${year}-${month}-${day}T${hour}:${minute}:${second}${fractionalSecond}Z`;\n}\nfunction addLeadingZero(num, targetLength) {\n let str = num.toString();\n for (; str.length < targetLength; )\n str = `0${str}`;\n return str;\n}\nclass StaticValue {\n data;\n type;\n constructor(data, type) {\n this.data = data, this.type = type;\n }\n isArray() {\n return this.type === \"array\";\n }\n // eslint-disable-next-line require-await\n async get() {\n return this.data;\n }\n [Symbol.asyncIterator]() {\n if (Array.isArray(this.data))\n return function* (data) {\n for (const element of data)\n yield fromJS(element);\n }(this.data);\n throw new Error(`Cannot iterate over: ${this.type}`);\n }\n}\nconst NULL_VALUE = new StaticValue(null, \"null\"), TRUE_VALUE = new StaticValue(!0, \"boolean\"), FALSE_VALUE = new StaticValue(!1, \"boolean\");\nclass DateTime {\n date;\n constructor(date) {\n this.date = date;\n }\n static parseToValue(str) {\n const date = parseRFC3339(str);\n return date ? new StaticValue(new DateTime(date), \"datetime\") : NULL_VALUE;\n }\n equals(other) {\n return this.date.getTime() == other.date.getTime();\n }\n add(secs) {\n const copy = new Date(this.date.getTime());\n return copy.setTime(copy.getTime() + secs * 1e3), new DateTime(copy);\n }\n difference(other) {\n return (this.date.getTime() - other.date.getTime()) / 1e3;\n }\n compareTo(other) {\n return this.date.getTime() - other.date.getTime();\n }\n toString() {\n return formatRFC3339(this.date);\n }\n toJSON() {\n return this.toString();\n }\n}\nfunction fromNumber(num) {\n return Number.isFinite(num) ? new StaticValue(num, \"number\") : NULL_VALUE;\n}\nfunction fromString(str) {\n return new StaticValue(str, \"string\");\n}\nfunction fromDateTime(dt) {\n return new StaticValue(dt, \"datetime\");\n}\nfunction fromPath(path) {\n return new StaticValue(path, \"path\");\n}\nfunction isIterator(obj) {\n return obj && typeof obj.next == \"function\";\n}\nfunction fromJS(val) {\n return isIterator(val) ? new StreamValue(async function* () {\n for await (const value of val)\n yield fromJS(value);\n }) : val == null ? NULL_VALUE : new StaticValue(val, getType(val));\n}\nfunction getType(data) {\n return data === null || typeof data > \"u\" ? \"null\" : Array.isArray(data) ? \"array\" : data instanceof Path ? \"path\" : data instanceof DateTime ? \"datetime\" : typeof data;\n}\nfunction isEqual(a, b) {\n return a.type === \"string\" && b.type === \"string\" || a.type === \"boolean\" && b.type === \"boolean\" || a.type === \"null\" && b.type === \"null\" || a.type === \"number\" && b.type === \"number\" ? a.data === b.data : a.type === \"datetime\" && b.type === \"datetime\" ? a.data.equals(b.data) : !1;\n}\nconst CHARS = /([^!@#$%^&*(),\\\\/?\";:{}|[\\]+<>\\s-])+/g, CHARS_WITH_WILDCARD = /([^!@#$%^&(),\\\\/?\";:{}|[\\]+<>\\s-])+/g, EDGE_CHARS = /(\\b\\.+|\\.+\\b)/g;\nfunction matchText(tokens, patterns) {\n return tokens.length === 0 || patterns.length === 0 ? !1 : patterns.every((pattern) => pattern(tokens));\n}\nfunction matchTokenize(text2) {\n return text2.replace(EDGE_CHARS, \"\").match(CHARS) || [];\n}\nfunction matchAnalyzePattern(text2) {\n return matchPatternRegex(text2).map((re) => (tokens) => tokens.some((token) => re.test(token)));\n}\nfunction matchPatternRegex(text2) {\n return (text2.replace(EDGE_CHARS, \"\").match(CHARS_WITH_WILDCARD) || []).map(\n (term) => new RegExp(`^${term.slice(0, 1024).replace(/\\*/g, \".*\")}$`, \"i\")\n );\n}\nasync function gatherText(value, cb) {\n if (value.type === \"string\")\n return cb(value.data), !0;\n if (value.isArray()) {\n let success = !0;\n for await (const part of value)\n part.type === \"string\" ? cb(part.data) : success = !1;\n return success;\n }\n return !1;\n}\nconst TYPE_ORDER = {\n datetime: 1,\n number: 2,\n string: 3,\n boolean: 4\n};\nfunction partialCompare(a, b) {\n const aType = getType(a), bType = getType(b);\n if (aType !== bType)\n return null;\n switch (aType) {\n case \"number\":\n case \"boolean\":\n return a - b;\n case \"string\":\n return a < b ? -1 : a > b ? 1 : 0;\n case \"datetime\":\n return a.compareTo(b);\n default:\n return null;\n }\n}\nfunction totalCompare(a, b) {\n const aType = getType(a), bType = getType(b), aTypeOrder = TYPE_ORDER[aType] || 100, bTypeOrder = TYPE_ORDER[bType] || 100;\n if (aTypeOrder !== bTypeOrder)\n return aTypeOrder - bTypeOrder;\n let result = partialCompare(a, b);\n return result === null && (result = 0), result;\n}\nconst operators = {\n \"==\": function(left, right) {\n return isEqual(left, right) ? TRUE_VALUE : FALSE_VALUE;\n },\n \"!=\": function(left, right) {\n return isEqual(left, right) ? FALSE_VALUE : TRUE_VALUE;\n },\n \">\": function(left, right) {\n if (left.type === \"stream\" || right.type === \"stream\") return NULL_VALUE;\n const result = partialCompare(left.data, right.data);\n return result === null ? NULL_VALUE : result > 0 ? TRUE_VALUE : FALSE_VALUE;\n },\n \">=\": function(left, right) {\n if (left.type === \"stream\" || right.type === \"stream\") return NULL_VALUE;\n const result = partialCompare(left.data, right.data);\n return result === null ? NULL_VALUE : result >= 0 ? TRUE_VALUE : FALSE_VALUE;\n },\n \"<\": function(left, right) {\n if (left.type === \"stream\" || right.type === \"stream\") return NULL_VALUE;\n const result = partialCompare(left.data, right.data);\n return result === null ? NULL_VALUE : result < 0 ? TRUE_VALUE : FALSE_VALUE;\n },\n \"<=\": function(left, right) {\n if (left.type === \"stream\" || right.type === \"stream\") return NULL_VALUE;\n const result = partialCompare(left.data, right.data);\n return result === null ? NULL_VALUE : result <= 0 ? TRUE_VALUE : FALSE_VALUE;\n },\n // eslint-disable-next-line func-name-matching\n in: async function(left, right) {\n if (right.type === \"path\")\n return left.type !== \"string\" ? NULL_VALUE : right.data.matches(left.data) ? TRUE_VALUE : FALSE_VALUE;\n if (right.isArray()) {\n for await (const b of right)\n if (isEqual(left, b))\n return TRUE_VALUE;\n return FALSE_VALUE;\n }\n return NULL_VALUE;\n },\n match: async function(left, right) {\n let tokens = [], patterns = [];\n return await gatherText(left, (part) => {\n tokens = tokens.concat(matchTokenize(part));\n }), await gatherText(right, (part) => {\n patterns = patterns.concat(matchAnalyzePattern(part));\n }) && matchText(tokens, patterns) ? TRUE_VALUE : FALSE_VALUE;\n },\n \"+\": function(left, right) {\n return left.type === \"datetime\" && right.type === \"number\" ? fromDateTime(left.data.add(right.data)) : left.type === \"number\" && right.type === \"number\" ? fromNumber(left.data + right.data) : left.type === \"string\" && right.type === \"string\" ? fromString(left.data + right.data) : left.type === \"object\" && right.type === \"object\" ? fromJS({ ...left.data, ...right.data }) : left.type === \"array\" && right.type === \"array\" ? fromJS(left.data.concat(right.data)) : left.isArray() && right.isArray() ? new StreamValue(async function* () {\n for await (const val of left)\n yield val;\n for await (const val of right)\n yield val;\n }) : NULL_VALUE;\n },\n \"-\": function(left, right) {\n return left.type === \"datetime\" && right.type === \"number\" ? fromDateTime(left.data.add(-right.data)) : left.type === \"datetime\" && right.type === \"datetime\" ? fromNumber(left.data.difference(right.data)) : left.type === \"number\" && right.type === \"number\" ? fromNumber(left.data - right.data) : NULL_VALUE;\n },\n \"*\": numericOperator((a, b) => a * b),\n \"/\": numericOperator((a, b) => a / b),\n \"%\": numericOperator((a, b) => a % b),\n \"**\": numericOperator((a, b) => Math.pow(a, b))\n};\nfunction numericOperator(impl) {\n return function(left, right) {\n if (left.type === \"number\" && right.type === \"number\") {\n const result = impl(left.data, right.data);\n return fromNumber(result);\n }\n return NULL_VALUE;\n };\n}\nlet Scope$1 = class Scope {\n params;\n source;\n value;\n parent;\n context;\n isHidden = !1;\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n constructor(params, source, value, context, parent) {\n this.params = params, this.source = source, this.value = value, this.context = context, this.parent = parent;\n }\n createNested(value) {\n return this.isHidden ? new Scope(this.params, this.source, value, this.context, this.parent) : new Scope(this.params, this.source, value, this.context, this);\n }\n createHidden(value) {\n const result = this.createNested(value);\n return result.isHidden = !0, result;\n }\n};\nfunction evaluate(node, scope, execute = evaluate) {\n const func = EXECUTORS[node.type];\n return func(node, scope, execute);\n}\nfunction promiselessApply(value, cb) {\n return \"then\" in value ? value.then(cb) : cb(value);\n}\nconst EXECUTORS = {\n This(_, scope) {\n return scope.value;\n },\n Selector() {\n throw new Error(\"Selectors can not be evaluated\");\n },\n Everything(_, scope) {\n return scope.source;\n },\n Parameter({ name }, scope) {\n return fromJS(scope.params[name]);\n },\n Context({ key }, scope) {\n if (key === \"before\" || key === \"after\")\n return scope.context[key] || NULL_VALUE;\n throw new Error(`unknown context key: ${key}`);\n },\n Parent({ n }, scope) {\n let current = scope;\n for (let i = 0; i < n; i++) {\n if (!current.parent)\n return NULL_VALUE;\n current = current.parent;\n }\n return current.value;\n },\n OpCall({ op, left, right }, scope, execute) {\n const func = operators[op];\n if (!func)\n throw new Error(`Unknown operator: ${op}`);\n const leftValue = execute(left, scope), rightValue = execute(right, scope);\n return \"then\" in leftValue || \"then\" in rightValue ? (async () => func(await leftValue, await rightValue))() : func(leftValue, rightValue);\n },\n async Select({ alternatives, fallback }, scope, execute) {\n for (const alt of alternatives) {\n const altCond = await execute(alt.condition, scope);\n if (altCond.type === \"boolean\" && altCond.data === !0)\n return execute(alt.value, scope);\n }\n return fallback ? execute(fallback, scope) : NULL_VALUE;\n },\n async InRange({ base, left, right, isInclusive }, scope, execute) {\n const value = await execute(base, scope), leftValue = await execute(left, scope), rightValue = await execute(right, scope), leftCmp = partialCompare(await value.get(), await leftValue.get());\n if (leftCmp === null)\n return NULL_VALUE;\n const rightCmp = partialCompare(await value.get(), await rightValue.get());\n return rightCmp === null ? NULL_VALUE : isInclusive ? leftCmp >= 0 && rightCmp <= 0 ? TRUE_VALUE : FALSE_VALUE : leftCmp >= 0 && rightCmp < 0 ? TRUE_VALUE : FALSE_VALUE;\n },\n async Filter({ base, expr }, scope, execute) {\n const baseValue = await execute(base, scope);\n return baseValue.isArray() ? new StreamValue(async function* () {\n for await (const elem of baseValue) {\n const newScope = scope.createNested(elem), exprValue = await execute(expr, newScope);\n exprValue.type === \"boolean\" && exprValue.data === !0 && (yield elem);\n }\n }) : NULL_VALUE;\n },\n async Projection({ base, expr }, scope, execute) {\n const baseValue = await execute(base, scope);\n if (baseValue.type !== \"object\")\n return NULL_VALUE;\n const newScope = scope.createNested(baseValue);\n return execute(expr, newScope);\n },\n FuncCall({ func, args }, scope, execute) {\n return func(args, scope, execute);\n },\n async PipeFuncCall({ func, base, args }, scope, execute) {\n const baseValue = await execute(base, scope);\n return func(baseValue, args, scope, execute);\n },\n async AccessAttribute({ base, name }, scope, execute) {\n let value = scope.value;\n return base && (value = await execute(base, scope)), value.type === \"object\" && value.data.hasOwnProperty(name) ? fromJS(value.data[name]) : NULL_VALUE;\n },\n async AccessElement({ base, index }, scope, execute) {\n const baseValue = await execute(base, scope);\n if (!baseValue.isArray())\n return NULL_VALUE;\n const data = await baseValue.get(), finalIndex = index < 0 ? index + data.length : index;\n return fromJS(data[finalIndex]);\n },\n async Slice({ base, left, right, isInclusive }, scope, execute) {\n const baseValue = await execute(base, scope);\n if (!baseValue.isArray())\n return NULL_VALUE;\n const array2 = await baseValue.get();\n let leftIdx = left, rightIdx = right;\n return leftIdx < 0 && (leftIdx = array2.length + leftIdx), rightIdx < 0 && (rightIdx = array2.length + rightIdx), isInclusive && rightIdx++, leftIdx < 0 && (leftIdx = 0), rightIdx < 0 && (rightIdx = 0), fromJS(array2.slice(leftIdx, rightIdx));\n },\n async Deref({ base }, scope, execute) {\n const value = await execute(base, scope);\n if (!scope.source.isArray() || value.type !== \"object\")\n return NULL_VALUE;\n const id = value.data._ref;\n if (typeof id != \"string\")\n return NULL_VALUE;\n if (scope.context.dereference)\n return fromJS(await scope.context.dereference({ _ref: id }));\n for await (const doc of scope.source)\n if (doc.type === \"object\" && id === doc.data._id)\n return doc;\n return NULL_VALUE;\n },\n Value({ value }) {\n return fromJS(value);\n },\n Group({ base }, scope, execute) {\n return execute(base, scope);\n },\n async Object({ attributes }, scope, execute) {\n const result = {};\n for (const attr of attributes) {\n const attrType = attr.type;\n switch (attr.type) {\n case \"ObjectAttributeValue\": {\n const value = await execute(attr.value, scope);\n result[attr.name] = await value.get();\n break;\n }\n case \"ObjectConditionalSplat\": {\n const cond = await execute(attr.condition, scope);\n if (cond.type !== \"boolean\" || cond.data === !1)\n continue;\n const value = await execute(attr.value, scope);\n value.type === \"object\" && Object.assign(result, value.data);\n break;\n }\n case \"ObjectSplat\": {\n const value = await execute(attr.value, scope);\n value.type === \"object\" && Object.assign(result, value.data);\n break;\n }\n default:\n throw new Error(`Unknown node type: ${attrType}`);\n }\n }\n return fromJS(result);\n },\n Array({ elements }, scope, execute) {\n return new StreamValue(async function* () {\n for (const element of elements) {\n const value = await execute(element.value, scope);\n if (element.isSplat) {\n if (value.isArray())\n for await (const v of value)\n yield v;\n } else\n yield value;\n }\n });\n },\n Tuple() {\n throw new Error(\"tuples can not be evaluated\");\n },\n async Or({ left, right }, scope, execute) {\n const leftValue = await execute(left, scope), rightValue = await execute(right, scope);\n return leftValue.type === \"boolean\" && leftValue.data === !0 || rightValue.type === \"boolean\" && rightValue.data === !0 ? TRUE_VALUE : leftValue.type !== \"boolean\" || rightValue.type !== \"boolean\" ? NULL_VALUE : FALSE_VALUE;\n },\n async And({ left, right }, scope, execute) {\n const leftValue = await execute(left, scope), rightValue = await execute(right, scope);\n return leftValue.type === \"boolean\" && leftValue.data === !1 || rightValue.type === \"boolean\" && rightValue.data === !1 ? FALSE_VALUE : leftValue.type !== \"boolean\" || rightValue.type !== \"boolean\" ? NULL_VALUE : TRUE_VALUE;\n },\n async Not({ base }, scope, execute) {\n const value = await execute(base, scope);\n return value.type !== \"boolean\" ? NULL_VALUE : value.data ? FALSE_VALUE : TRUE_VALUE;\n },\n Neg({ base }, scope, execute) {\n return promiselessApply(execute(base, scope), (value) => value.type !== \"number\" ? NULL_VALUE : fromNumber(-value.data));\n },\n Pos({ base }, scope, execute) {\n return promiselessApply(execute(base, scope), (value) => value.type !== \"number\" ? NULL_VALUE : fromNumber(value.data));\n },\n Asc() {\n return NULL_VALUE;\n },\n Desc() {\n return NULL_VALUE;\n },\n async ArrayCoerce({ base }, scope, execute) {\n const value = await execute(base, scope);\n return value.isArray() ? value : NULL_VALUE;\n },\n async Map({ base, expr }, scope, execute) {\n const value = await execute(base, scope);\n return value.isArray() ? new StreamValue(async function* () {\n for await (const elem of value) {\n const newScope = scope.createHidden(elem);\n yield await execute(expr, newScope);\n }\n }) : NULL_VALUE;\n },\n async FlatMap({ base, expr }, scope, execute) {\n const value = await execute(base, scope);\n return value.isArray() ? new StreamValue(async function* () {\n for await (const elem of value) {\n const newScope = scope.createHidden(elem), innerValue = await execute(expr, newScope);\n if (innerValue.isArray())\n for await (const inner of innerValue)\n yield inner;\n else\n yield innerValue;\n }\n }) : NULL_VALUE;\n }\n};\nfunction evaluateQuery(tree, options = {}) {\n const root = fromJS(options.root), dataset = fromJS(options.dataset), params = { ...options.params }, scope = new Scope$1(\n params,\n dataset,\n root,\n {\n timestamp: options.timestamp || /* @__PURE__ */ new Date(),\n identity: options.identity === void 0 ? \"me\" : options.identity,\n sanity: options.sanity,\n after: options.after ? fromJS(options.after) : null,\n before: options.before ? fromJS(options.before) : null,\n dereference: options.dereference\n },\n null\n );\n return evaluate(tree, scope);\n}\nfunction canConstantEvaluate(node) {\n switch (node.type) {\n case \"Group\":\n return canConstantEvaluate(node.base);\n case \"Value\":\n case \"Parameter\":\n return !0;\n case \"Pos\":\n case \"Neg\":\n return canConstantEvaluate(node.base);\n case \"OpCall\":\n switch (node.op) {\n case \"+\":\n case \"-\":\n case \"*\":\n case \"/\":\n case \"%\":\n case \"**\":\n return canConstantEvaluate(node.left) && canConstantEvaluate(node.right);\n default:\n return !1;\n }\n default:\n return !1;\n }\n}\nconst DUMMY_SCOPE = new Scope$1(\n {},\n NULL_VALUE,\n NULL_VALUE,\n { timestamp: /* @__PURE__ */ new Date(0), identity: \"me\", before: null, after: null },\n null\n);\nfunction tryConstantEvaluate(node) {\n return canConstantEvaluate(node) ? constantEvaluate(node) : null;\n}\nfunction constantEvaluate(node) {\n const value = evaluate(node, DUMMY_SCOPE, constantEvaluate);\n if (\"then\" in value)\n throw new Error(\"BUG: constant evaluate should never return a promise\");\n return value;\n}\nasync function portableTextContent(value) {\n if (value.type === \"object\")\n return blockText(value.data);\n if (value.isArray()) {\n const texts = await arrayText(value);\n if (texts.length > 0)\n return texts.join(`\n\n`);\n }\n return null;\n}\nasync function arrayText(value, result = []) {\n for await (const block of value)\n if (block.type === \"object\") {\n const text2 = blockText(block.data);\n text2 !== null && result.push(text2);\n } else block.isArray() && await arrayText(block, result);\n return result;\n}\nfunction blockText(obj) {\n if (typeof obj._type != \"string\") return null;\n const children = obj.children;\n if (!Array.isArray(children)) return null;\n let result = \"\";\n for (const child of children)\n child && typeof child == \"object\" && typeof child._type == \"string\" && child._type === \"span\" && typeof child.text == \"string\" && (result += child.text);\n return result;\n}\nconst BM25k = 1.2;\nasync function evaluateScore(node, scope, execute) {\n if (node.type === \"OpCall\" && node.op === \"match\")\n return evaluateMatchScore(node.left, node.right, scope, execute);\n if (node.type === \"FuncCall\" && node.name === \"boost\") {\n const innerScore = await evaluateScore(node.args[0], scope, execute), boost = await execute(node.args[1], scope);\n return boost.type === \"number\" && innerScore > 0 ? innerScore + boost.data : 0;\n }\n switch (node.type) {\n case \"Or\": {\n const leftScore = await evaluateScore(node.left, scope, execute), rightScore = await evaluateScore(node.right, scope, execute);\n return leftScore + rightScore;\n }\n case \"And\": {\n const leftScore = await evaluateScore(node.left, scope, execute), rightScore = await evaluateScore(node.right, scope, execute);\n return leftScore === 0 || rightScore === 0 ? 0 : leftScore + rightScore;\n }\n default: {\n const res = await execute(node, scope);\n return res.type === \"boolean\" && res.data === !0 ? 1 : 0;\n }\n }\n}\nasync function evaluateMatchScore(left, right, scope, execute) {\n const text2 = await execute(left, scope), pattern = await execute(right, scope);\n let tokens = [], terms = [];\n if (await gatherText(text2, (part) => {\n tokens = tokens.concat(matchTokenize(part));\n }), !await gatherText(pattern, (part) => {\n terms = terms.concat(matchPatternRegex(part));\n }) || tokens.length === 0 || terms.length === 0)\n return 0;\n let score = 0;\n for (const re of terms) {\n const freq = tokens.reduce((c, token) => c + (re.test(token) ? 1 : 0), 0);\n score += freq * (BM25k + 1) / (freq + BM25k);\n }\n return score;\n}\nfunction hasReference(value, pathSet) {\n switch (getType(value)) {\n case \"array\":\n for (const v of value)\n if (hasReference(v, pathSet))\n return !0;\n break;\n case \"object\":\n if (value._ref)\n return pathSet.has(value._ref);\n for (const v of Object.values(value))\n if (hasReference(v, pathSet))\n return !0;\n break;\n }\n return !1;\n}\nfunction countUTF8(str) {\n let count2 = 0;\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n code >= 55296 && code <= 56319 || count2++;\n }\n return count2;\n}\nconst _global = {};\n_global.anywhere = async function() {\n throw new Error(\"not implemented\");\n};\n_global.anywhere.arity = 1;\n_global.coalesce = async function(args, scope, execute) {\n for (const arg of args) {\n const value = await execute(arg, scope);\n if (value.type !== \"null\")\n return value;\n }\n return NULL_VALUE;\n};\n_global.count = async function(args, scope, execute) {\n const inner = await execute(args[0], scope);\n if (!inner.isArray())\n return NULL_VALUE;\n let num = 0;\n for await (const _ of inner)\n num++;\n return fromNumber(num);\n};\n_global.count.arity = 1;\n_global.dateTime = async function(args, scope, execute) {\n const val = await execute(args[0], scope);\n return val.type === \"datetime\" ? val : val.type !== \"string\" ? NULL_VALUE : DateTime.parseToValue(val.data);\n};\n_global.dateTime.arity = 1;\n_global.defined = async function(args, scope, execute) {\n return (await execute(args[0], scope)).type === \"null\" ? FALSE_VALUE : TRUE_VALUE;\n};\n_global.defined.arity = 1;\n_global.identity = async function(_args, scope) {\n return fromString(scope.context.identity);\n};\n_global.identity.arity = 0;\n_global.length = async function(args, scope, execute) {\n const inner = await execute(args[0], scope);\n if (inner.type === \"string\")\n return fromNumber(countUTF8(inner.data));\n if (inner.isArray()) {\n let num = 0;\n for await (const _ of inner)\n num++;\n return fromNumber(num);\n }\n return NULL_VALUE;\n};\n_global.length.arity = 1;\n_global.path = async function(args, scope, execute) {\n const inner = await execute(args[0], scope);\n return inner.type !== \"string\" ? NULL_VALUE : fromPath(new Path(inner.data));\n};\n_global.path.arity = 1;\n_global.string = async function(args, scope, execute) {\n const value = await execute(args[0], scope);\n switch (value.type) {\n case \"number\":\n case \"string\":\n case \"boolean\":\n case \"datetime\":\n return fromString(`${value.data}`);\n default:\n return NULL_VALUE;\n }\n};\n_global.string.arity = 1;\n_global.references = async function(args, scope, execute) {\n const pathSet = /* @__PURE__ */ new Set();\n for (const arg of args) {\n const path2 = await execute(arg, scope);\n if (path2.type === \"string\")\n pathSet.add(path2.data);\n else if (path2.isArray())\n for await (const elem of path2)\n elem.type === \"string\" && pathSet.add(elem.data);\n }\n if (pathSet.size === 0)\n return FALSE_VALUE;\n const scopeValue = await scope.value.get();\n return hasReference(scopeValue, pathSet) ? TRUE_VALUE : FALSE_VALUE;\n};\n_global.references.arity = (c) => c >= 1;\n_global.round = async function(args, scope, execute) {\n const value = await execute(args[0], scope);\n if (value.type !== \"number\")\n return NULL_VALUE;\n const num = value.data;\n let prec = 0;\n if (args.length === 2) {\n const precValue = await execute(args[1], scope);\n if (precValue.type !== \"number\" || precValue.data < 0 || !Number.isInteger(precValue.data))\n return NULL_VALUE;\n prec = precValue.data;\n }\n return prec === 0 ? num < 0 ? fromNumber(-Math.round(-num)) : fromNumber(Math.round(num)) : fromNumber(Number(num.toFixed(prec)));\n};\n_global.round.arity = (count2) => count2 >= 1 && count2 <= 2;\n_global.now = async function(_args, scope) {\n return fromString(scope.context.timestamp.toISOString());\n};\n_global.now.arity = 0;\n_global.boost = async function() {\n throw new Error(\"unexpected boost call\");\n};\n_global.boost.arity = 2;\nconst string2 = {};\nstring2.lower = async function(args, scope, execute) {\n const value = await execute(args[0], scope);\n return value.type !== \"string\" ? NULL_VALUE : fromString(value.data.toLowerCase());\n};\nstring2.lower.arity = 1;\nstring2.upper = async function(args, scope, execute) {\n const value = await execute(args[0], scope);\n return value.type !== \"string\" ? NULL_VALUE : fromString(value.data.toUpperCase());\n};\nstring2.upper.arity = 1;\nstring2.split = async function(args, scope, execute) {\n const str = await execute(args[0], scope);\n if (str.type !== \"string\")\n return NULL_VALUE;\n const sep = await execute(args[1], scope);\n return sep.type !== \"string\" ? NULL_VALUE : str.data.length === 0 ? fromJS([]) : sep.data.length === 0 ? fromJS(Array.from(str.data)) : fromJS(str.data.split(sep.data));\n};\nstring2.split.arity = 2;\n_global.lower = string2.lower;\n_global.upper = string2.upper;\nstring2.startsWith = async function(args, scope, execute) {\n const str = await execute(args[0], scope);\n if (str.type !== \"string\")\n return NULL_VALUE;\n const prefix = await execute(args[1], scope);\n return prefix.type !== \"string\" ? NULL_VALUE : str.data.startsWith(prefix.data) ? TRUE_VALUE : FALSE_VALUE;\n};\nstring2.startsWith.arity = 2;\nconst array = {};\narray.join = async function(args, scope, execute) {\n const arr = await execute(args[0], scope);\n if (!arr.isArray())\n return NULL_VALUE;\n const sep = await execute(args[1], scope);\n if (sep.type !== \"string\")\n return NULL_VALUE;\n let buf = \"\", needSep = !1;\n for await (const elem of arr) {\n switch (needSep && (buf += sep.data), elem.type) {\n case \"number\":\n case \"string\":\n case \"boolean\":\n case \"datetime\":\n buf += `${elem.data}`;\n break;\n default:\n return NULL_VALUE;\n }\n needSep = !0;\n }\n return fromJS(buf);\n};\narray.join.arity = 2;\narray.compact = async function(args, scope, execute) {\n const arr = await execute(args[0], scope);\n return arr.isArray() ? new StreamValue(async function* () {\n for await (const elem of arr)\n elem.type !== \"null\" && (yield elem);\n }) : NULL_VALUE;\n};\narray.compact.arity = 1;\narray.unique = async function(args, scope, execute) {\n const value = await execute(args[0], scope);\n return value.isArray() ? new StreamValue(async function* () {\n const added = /* @__PURE__ */ new Set();\n for await (const iter of value)\n switch (iter.type) {\n case \"number\":\n case \"string\":\n case \"boolean\":\n case \"datetime\":\n added.has(iter.data) || (added.add(iter.data), yield iter);\n break;\n default:\n yield iter;\n }\n }) : NULL_VALUE;\n};\narray.unique.arity = 1;\narray.intersects = async function(args, scope, execute) {\n const arr1 = await execute(args[0], scope);\n if (!arr1.isArray())\n return NULL_VALUE;\n const arr2 = await execute(args[1], scope);\n if (!arr2.isArray())\n return NULL_VALUE;\n for await (const v1 of arr1)\n for await (const v2 of arr2)\n if (isEqual(v1, v2))\n return TRUE_VALUE;\n return FALSE_VALUE;\n};\narray.intersects.arity = 2;\nconst pt = {};\npt.text = async function(args, scope, execute) {\n const value = await execute(args[0], scope), text2 = await portableTextContent(value);\n return text2 === null ? NULL_VALUE : fromString(text2);\n};\npt.text.arity = 1;\nconst sanity = {};\nsanity.projectId = async function(_args, scope) {\n return scope.context.sanity ? fromString(scope.context.sanity.projectId) : NULL_VALUE;\n};\nsanity.dataset = async function(_args, scope) {\n return scope.context.sanity ? fromString(scope.context.sanity.dataset) : NULL_VALUE;\n};\nsanity.versionOf = async function(args, scope, execute) {\n if (!scope.source.isArray()) return NULL_VALUE;\n const value = await execute(args[0], scope);\n if (value.type !== \"string\") return NULL_VALUE;\n const baseId = value.data, versionIds = [];\n for await (const value2 of scope.source)\n if (getType(value2) === \"object\") {\n const val = await value2.get();\n if (val && typeof val._id == \"string\") {\n const components = val._id.split(\".\");\n (val._id === baseId || components.length >= 3 && components[0] === \"versions\" && components.slice(2).join(\".\") === baseId || components.length >= 2 && components[0] === \"drafts\" && components.slice(1).join(\".\") === baseId) && versionIds.push(val._id);\n }\n }\n return fromJS(versionIds);\n};\nsanity.versionOf.arity = 1;\nsanity.partOfRelease = async function(args, scope, execute) {\n if (!scope.source.isArray()) return NULL_VALUE;\n const value = await execute(args[0], scope);\n if (value.type !== \"string\") return NULL_VALUE;\n const baseId = value.data, documentIdsInRelease = [];\n for await (const value2 of scope.source)\n if (getType(value2) === \"object\") {\n const val = await value2.get();\n if (val && typeof val._id == \"string\") {\n const components = val._id.split(\".\");\n components.length >= 3 && components[0] === \"versions\" && components[1] === baseId && documentIdsInRelease.push(val._id);\n }\n }\n return fromJS(documentIdsInRelease);\n};\nsanity.partOfRelease.arity = 1;\nconst releases = {};\nreleases.all = async function(_args, scope) {\n const allReleases = [];\n for await (const value of scope.source)\n if (getType(value) === \"object\") {\n const val = await value.get();\n val && \"_type\" in val && val._type === \"system.release\" && allReleases.push(val);\n }\n return fromJS(allReleases);\n};\nreleases.all.arity = 0;\nconst pipeFunctions = {};\npipeFunctions.order = async function(base, args, scope, execute) {\n if (await !0, !base.isArray())\n return NULL_VALUE;\n const mappers = [], directions = [];\n let n = 0;\n for (let mapper of args) {\n let direction = \"asc\";\n mapper.type === \"Desc\" ? (direction = \"desc\", mapper = mapper.base) : mapper.type === \"Asc\" && (mapper = mapper.base), mappers.push(mapper), directions.push(direction), n++;\n }\n const aux = [];\n let idx = 0;\n for await (const value of base) {\n const newScope = scope.createNested(value), tuple = [await value.get(), idx];\n for (let i = 0; i < n; i++) {\n const result = await execute(mappers[i], newScope);\n tuple.push(await result.get());\n }\n aux.push(tuple), idx++;\n }\n return aux.sort((aTuple, bTuple) => {\n for (let i = 0; i < n; i++) {\n let c = totalCompare(aTuple[i + 2], bTuple[i + 2]);\n if (directions[i] === \"desc\" && (c = -c), c !== 0)\n return c;\n }\n return aTuple[1] - bTuple[1];\n }), fromJS(aux.map((v) => v[0]));\n};\npipeFunctions.order.arity = (count2) => count2 >= 1;\npipeFunctions.score = async function(base, args, scope, execute) {\n if (!base.isArray()) return NULL_VALUE;\n const unknown = [], scored = [];\n for await (const value of base) {\n if (value.type !== \"object\") {\n unknown.push(await value.get());\n continue;\n }\n const newScope = scope.createNested(value);\n let valueScore = typeof value.data._score == \"number\" ? value.data._score : 0;\n for (const arg of args)\n valueScore += await evaluateScore(arg, newScope, execute);\n const newObject = Object.assign({}, value.data, { _score: valueScore });\n scored.push(newObject);\n }\n return scored.sort((a, b) => b._score - a._score), fromJS(scored);\n};\npipeFunctions.score.arity = (count2) => count2 >= 1;\nconst delta = {};\ndelta.operation = async function(_args, scope) {\n const hasBefore = scope.context.before !== null, hasAfter = scope.context.after !== null;\n return hasBefore && hasAfter ? fromString(\"update\") : hasAfter ? fromString(\"create\") : hasBefore ? fromString(\"delete\") : NULL_VALUE;\n};\ndelta.changedAny = () => {\n throw new Error(\"not implemented\");\n};\ndelta.changedAny.arity = 1;\ndelta.changedAny.mode = \"delta\";\ndelta.changedOnly = () => {\n throw new Error(\"not implemented\");\n};\ndelta.changedOnly.arity = 1;\ndelta.changedOnly.mode = \"delta\";\nconst diff = {};\ndiff.changedAny = () => {\n throw new Error(\"not implemented\");\n};\ndiff.changedAny.arity = 3;\ndiff.changedOnly = () => {\n throw new Error(\"not implemented\");\n};\ndiff.changedOnly.arity = 3;\nconst math = {};\nmath.min = async function(args, scope, execute) {\n const arr = await execute(args[0], scope);\n if (!arr.isArray())\n return NULL_VALUE;\n let n;\n for await (const elem of arr)\n if (elem.type !== \"null\") {\n if (elem.type !== \"number\")\n return NULL_VALUE;\n (n === void 0 || elem.data < n) && (n = elem.data);\n }\n return fromJS(n);\n};\nmath.min.arity = 1;\nmath.max = async function(args, scope, execute) {\n const arr = await execute(args[0], scope);\n if (!arr.isArray())\n return NULL_VALUE;\n let n;\n for await (const elem of arr)\n if (elem.type !== \"null\") {\n if (elem.type !== \"number\")\n return NULL_VALUE;\n (n === void 0 || elem.data > n) && (n = elem.data);\n }\n return fromJS(n);\n};\nmath.max.arity = 1;\nmath.sum = async function(args, scope, execute) {\n const arr = await execute(args[0], scope);\n if (!arr.isArray())\n return NULL_VALUE;\n let n = 0;\n for await (const elem of arr)\n if (elem.type !== \"null\") {\n if (elem.type !== \"number\")\n return NULL_VALUE;\n n += elem.data;\n }\n return fromJS(n);\n};\nmath.sum.arity = 1;\nmath.avg = async function(args, scope, execute) {\n const arr = await execute(args[0], scope);\n if (!arr.isArray())\n return NULL_VALUE;\n let n = 0, c = 0;\n for await (const elem of arr)\n if (elem.type !== \"null\") {\n if (elem.type !== \"number\")\n return NULL_VALUE;\n n += elem.data, c++;\n }\n return c === 0 ? NULL_VALUE : fromJS(n / c);\n};\nmath.avg.arity = 1;\nconst dateTime2 = {};\ndateTime2.now = async function(_args, scope) {\n return fromDateTime(new DateTime(scope.context.timestamp));\n};\ndateTime2.now.arity = 0;\nconst text = {};\ntext.query = () => {\n throw new Error(\"not implemented\");\n};\ntext.query.arity = 1;\nconst namespaces = {\n global: _global,\n string: string2,\n array,\n pt,\n delta,\n diff,\n sanity,\n math,\n dateTime: dateTime2,\n releases,\n text\n};\nclass MarkProcessor {\n string;\n marks;\n index;\n parseOptions;\n allowBoost = !1;\n constructor(string, marks, parseOptions) {\n this.string = string, this.marks = marks, this.index = 0, this.parseOptions = parseOptions;\n }\n hasMark(pos = 0) {\n return this.index + pos < this.marks.length;\n }\n getMark(pos = 0) {\n return this.marks[this.index + pos];\n }\n shift() {\n this.index += 1;\n }\n process(visitor) {\n const mark = this.marks[this.index];\n this.shift();\n const func = visitor[mark.name];\n if (!func)\n throw new Error(`Unknown handler: ${mark.name}`);\n return func.call(visitor, this, mark);\n }\n processString() {\n return this.shift(), this.processStringEnd();\n }\n processStringEnd() {\n const prev = this.marks[this.index - 1], curr = this.marks[this.index];\n return this.shift(), this.string.slice(prev.position, curr.position);\n }\n slice(len) {\n const pos = this.marks[this.index].position;\n return this.string.slice(pos, pos + len);\n }\n}\nconst WS = /^([\\t\\n\\v\\f\\r \\u0085\\u00A0]|(\\/\\/[^\\n]*\\n))+/, NUM = /^\\d+/, IDENT = /^[a-zA-Z_][a-zA-Z_0-9]*/;\nfunction parse$1(str) {\n let pos = 0;\n pos = skipWS(str, pos);\n let result = parseExpr(str, pos, 0);\n return result.type === \"error\" ? result : (pos = skipWS(str, result.position), pos !== str.length ? (result.failPosition && (pos = result.failPosition - 1), { type: \"error\", position: pos }) : (delete result.position, delete result.failPosition, result));\n}\nfunction parseExpr(str, pos, level) {\n let startPos = pos, token = str[pos], marks;\n switch (token) {\n case \"+\": {\n let rhs = parseExpr(str, skipWS(str, pos + 1), 10);\n if (rhs.type === \"error\") return rhs;\n marks = [{ name: \"pos\", position: startPos }].concat(rhs.marks), pos = rhs.position;\n break;\n }\n case \"-\": {\n let rhs = parseExpr(str, skipWS(str, pos + 1), 8);\n if (rhs.type === \"error\") return rhs;\n marks = [{ name: \"neg\", position: startPos }].concat(rhs.marks), pos = rhs.position;\n break;\n }\n case \"(\": {\n let rhs = parseExpr(str, skipWS(str, pos + 1), 0);\n if (rhs.type === \"error\") return rhs;\n switch (pos = skipWS(str, rhs.position), str[pos]) {\n case \",\": {\n for (marks = [{ name: \"tuple\", position: startPos }].concat(rhs.marks), pos = skipWS(str, pos + 1); ; ) {\n if (rhs = parseExpr(str, pos, 0), rhs.type === \"error\") return rhs;\n if (pos = skipWS(str, rhs.position), str[pos] !== \",\") break;\n pos = skipWS(str, pos + 1);\n }\n if (str[pos] !== \")\") return { type: \"error\", position: pos };\n pos++, marks.push({ name: \"tuple_end\", position: pos });\n break;\n }\n case \")\": {\n pos++, marks = [{ name: \"group\", position: startPos }].concat(rhs.marks);\n break;\n }\n default:\n return { type: \"error\", position: pos };\n }\n break;\n }\n case \"!\": {\n let rhs = parseExpr(str, skipWS(str, pos + 1), 10);\n if (rhs.type === \"error\") return rhs;\n marks = [{ name: \"not\", position: startPos }].concat(rhs.marks), pos = rhs.position;\n break;\n }\n case \"{\": {\n let result = parseObject(str, pos);\n if (result.type === \"error\") return result;\n marks = result.marks, pos = result.position;\n break;\n }\n case \"[\":\n if (marks = [{ name: \"array\", position: pos }], pos = skipWS(str, pos + 1), str[pos] !== \"]\")\n for (; ; ) {\n str.slice(pos, pos + 3) === \"...\" && (marks.push({ name: \"array_splat\", position: pos }), pos = skipWS(str, pos + 3));\n let res = parseExpr(str, pos, 0);\n if (res.type === \"error\") return res;\n if (marks = marks.concat(res.marks), pos = res.position, pos = skipWS(str, pos), str[pos] !== \",\" || (pos = skipWS(str, pos + 1), str[pos] === \"]\")) break;\n }\n if (str[pos] === \"]\")\n pos++, marks.push({ name: \"array_end\", position: pos });\n else\n return { type: \"error\", position: pos };\n break;\n case \"'\":\n case '\"': {\n let result = parseString(str, pos);\n if (result.type === \"error\") return result;\n marks = result.marks, pos = result.position;\n break;\n }\n case \"^\": {\n for (pos++, marks = []; str[pos] === \".\" && str[pos + 1] === \"^\"; )\n marks.push({ name: \"dblparent\", position: startPos }), pos += 2;\n marks.push({ name: \"parent\", position: startPos });\n break;\n }\n case \"@\":\n marks = [{ name: \"this\", position: startPos }], pos++;\n break;\n case \"*\":\n marks = [{ name: \"everything\", position: startPos }], pos++;\n break;\n case \"$\": {\n let identLen = parseRegex(str, pos + 1, IDENT);\n identLen && (pos += 1 + identLen, marks = [\n { name: \"param\", position: startPos },\n { name: \"ident\", position: startPos + 1 },\n { name: \"ident_end\", position: pos }\n ]);\n break;\n }\n default: {\n let numLen = parseRegex(str, pos, NUM);\n if (numLen) {\n pos += numLen;\n let name = \"integer\";\n if (str[pos] === \".\") {\n let fracLen = parseRegex(str, pos + 1, NUM);\n fracLen && (name = \"float\", pos += 1 + fracLen);\n }\n if (str[pos] === \"e\" || str[pos] === \"E\") {\n name = \"sci\", pos++, (str[pos] === \"+\" || str[pos] === \"-\") && pos++;\n let expLen = parseRegex(str, pos, NUM);\n if (!expLen) return { type: \"error\", position: pos };\n pos += expLen;\n }\n marks = [\n { name, position: startPos },\n { name: name + \"_end\", position: pos }\n ];\n break;\n }\n let identLen = parseRegex(str, pos, IDENT);\n if (identLen) {\n switch (pos += identLen, str[pos]) {\n case \":\":\n case \"(\": {\n let result = parseFuncCall(str, startPos, pos);\n if (result.type === \"error\") return result;\n marks = result.marks, pos = result.position;\n break;\n }\n default:\n marks = [\n { name: \"this_attr\", position: startPos },\n { name: \"ident\", position: startPos },\n { name: \"ident_end\", position: pos }\n ];\n }\n break;\n }\n }\n }\n if (!marks)\n return { type: \"error\", position: pos };\n let lhsLevel = 12, trav;\n loop: for (; ; ) {\n let innerPos = skipWS(str, pos);\n if (innerPos === str.length) {\n pos = innerPos;\n break;\n }\n if (trav = parseTraversal(str, innerPos), trav.type === \"success\") {\n for (marks.unshift({ name: \"traverse\", position: startPos }); trav.type === \"success\"; )\n marks = marks.concat(trav.marks), pos = trav.position, trav = parseTraversal(str, skipWS(str, pos));\n marks.push({ name: \"traversal_end\", position: pos });\n continue;\n }\n switch (str[innerPos]) {\n case \"=\": {\n switch (str[innerPos + 1]) {\n case \">\": {\n if (level > 1 || lhsLevel <= 1) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 2), 1);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"pair\", position: startPos }), pos = rhs.position, lhsLevel = 1;\n break;\n }\n case \"=\": {\n if (level > 4 || lhsLevel <= 4) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 2), 5);\n if (rhs.type === \"error\") return rhs;\n marks.unshift({ name: \"comp\", position: startPos }), marks.push({ name: \"op\", position: innerPos }, { name: \"op_end\", position: innerPos + 2 }), marks = marks.concat(rhs.marks), pos = rhs.position, lhsLevel = 4;\n break;\n }\n default:\n break loop;\n }\n break;\n }\n case \"+\": {\n if (level > 6 || lhsLevel < 6) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 1), 7);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"add\", position: startPos }), pos = rhs.position, lhsLevel = 6;\n break;\n }\n case \"-\": {\n if (level > 6 || lhsLevel < 6) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 1), 7);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"sub\", position: startPos }), pos = rhs.position, lhsLevel = 6;\n break;\n }\n case \"*\": {\n if (str[innerPos + 1] === \"*\") {\n if (level > 8 || lhsLevel <= 8) break loop;\n let rhs2 = parseExpr(str, skipWS(str, innerPos + 2), 8);\n if (rhs2.type === \"error\") return rhs2;\n marks = marks.concat(rhs2.marks), marks.unshift({ name: \"pow\", position: startPos }), pos = rhs2.position, lhsLevel = 8;\n break;\n }\n if (level > 7 || lhsLevel < 7) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 1), 8);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"mul\", position: startPos }), pos = rhs.position, lhsLevel = 7;\n break;\n }\n case \"/\": {\n if (level > 7 || lhsLevel < 7) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 1), 8);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"div\", position: startPos }), pos = rhs.position, lhsLevel = 7;\n break;\n }\n case \"%\": {\n if (level > 7 || lhsLevel < 7) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 1), 8);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"mod\", position: startPos }), pos = rhs.position, lhsLevel = 7;\n break;\n }\n case \"<\":\n case \">\": {\n if (level > 4 || lhsLevel <= 4) break loop;\n let nextPos = innerPos + 1;\n str[nextPos] === \"=\" && nextPos++;\n let rhs = parseExpr(str, skipWS(str, nextPos), 5);\n if (rhs.type === \"error\") return rhs;\n marks.unshift({ name: \"comp\", position: startPos }), marks.push({ name: \"op\", position: innerPos }, { name: \"op_end\", position: nextPos }), marks = marks.concat(rhs.marks), pos = rhs.position, lhsLevel = 4;\n break;\n }\n case \"|\": {\n if (str[innerPos + 1] === \"|\") {\n if (level > 2 || lhsLevel < 2) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 2), 3);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"or\", position: startPos }), pos = rhs.position, lhsLevel = 2;\n } else {\n if (level > 11 || lhsLevel < 11) break loop;\n let identPos = skipWS(str, innerPos + 1), identLen = parseRegex(str, identPos, IDENT);\n if (!identLen) return { type: \"error\", position: identPos };\n if (pos = identPos + identLen, str[pos] === \"(\" || str[pos] === \":\") {\n let result = parseFuncCall(str, identPos, pos);\n if (result.type === \"error\") return result;\n marks = marks.concat(result.marks), marks.unshift({ name: \"pipecall\", position: startPos }), pos = result.position, lhsLevel = 11;\n }\n }\n break;\n }\n case \"&\": {\n if (str[innerPos + 1] != \"&\" || level > 3 || lhsLevel < 3) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 2), 4);\n if (rhs.type === \"error\") return rhs;\n marks = marks.concat(rhs.marks), marks.unshift({ name: \"and\", position: startPos }), pos = rhs.position, lhsLevel = 3;\n break;\n }\n case \"!\": {\n if (str[innerPos + 1] !== \"=\" || level > 4 || lhsLevel <= 4) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 2), 5);\n if (rhs.type === \"error\") return rhs;\n marks.unshift({ name: \"comp\", position: startPos }), marks.push({ name: \"op\", position: innerPos }, { name: \"op_end\", position: innerPos + 2 }), marks = marks.concat(rhs.marks), pos = rhs.position, lhsLevel = 4;\n break;\n }\n case \"d\": {\n if (str.slice(innerPos, innerPos + 4) !== \"desc\" || level > 4 || lhsLevel < 4) break loop;\n marks.unshift({ name: \"desc\", position: startPos }), pos = innerPos + 4, lhsLevel = 4;\n break;\n }\n case \"a\": {\n if (str.slice(innerPos, innerPos + 3) !== \"asc\" || level > 4 || lhsLevel < 4) break loop;\n marks.unshift({ name: \"asc\", position: startPos }), pos = innerPos + 3, lhsLevel = 4;\n break;\n }\n default:\n switch (parseRegexStr(str, innerPos, IDENT)) {\n case \"in\": {\n if (level > 4 || lhsLevel <= 4) break loop;\n pos = skipWS(str, innerPos + 2);\n let isGroup = !1;\n str[pos] === \"(\" && (isGroup = !0, pos = skipWS(str, pos + 1));\n let rangePos = pos, result = parseExpr(str, pos, 5);\n if (result.type === \"error\") return result;\n if (pos = skipWS(str, result.position), str[pos] === \".\" && str[pos + 1] === \".\") {\n let type = \"inc_range\";\n str[pos + 2] === \".\" ? (type = \"exc_range\", pos = skipWS(str, pos + 3)) : pos = skipWS(str, pos + 2);\n let rhs = parseExpr(str, pos, 5);\n if (rhs.type === \"error\") return rhs;\n marks.unshift({ name: \"in_range\", position: startPos }), marks = marks.concat({ name: type, position: rangePos }, result.marks, rhs.marks), pos = rhs.position;\n } else\n marks.unshift({ name: \"comp\", position: startPos }), marks.push({ name: \"op\", position: innerPos }, { name: \"op_end\", position: innerPos + 2 }), marks = marks.concat(result.marks);\n if (isGroup) {\n if (pos = skipWS(str, pos), str[pos] !== \")\") return { type: \"error\", position: pos };\n pos++;\n }\n lhsLevel = 4;\n break;\n }\n case \"match\": {\n if (level > 4 || lhsLevel <= 4) break loop;\n let rhs = parseExpr(str, skipWS(str, innerPos + 5), 5);\n if (rhs.type === \"error\") return rhs;\n marks.unshift({ name: \"comp\", position: startPos }), marks.push({ name: \"op\", position: innerPos }, { name: \"op_end\", position: innerPos + 5 }), marks = marks.concat(rhs.marks), pos = rhs.position, lhsLevel = 4;\n break;\n }\n default:\n break loop;\n }\n }\n }\n let failPosition = trav?.type === \"error\" && trav.position;\n return { type: \"success\", marks, position: pos, failPosition };\n}\nfunction parseTraversal(str, pos) {\n let startPos = pos;\n switch (str[pos]) {\n case \".\": {\n pos = skipWS(str, pos + 1);\n let identStart = pos, identLen2 = parseRegex(str, pos, IDENT);\n return identLen2 ? (pos += identLen2, {\n type: \"success\",\n marks: [\n { name: \"attr_access\", position: startPos },\n { name: \"ident\", position: identStart },\n { name: \"ident_end\", position: pos }\n ],\n position: pos\n }) : { type: \"error\", position: pos };\n }\n case \"-\":\n if (str[pos + 1] !== \">\") return { type: \"error\", position: pos };\n let marks = [{ name: \"deref\", position: startPos }];\n pos += 2;\n let identPos = skipWS(str, pos), identLen = parseRegex(str, identPos, IDENT);\n return identLen && (pos = identPos + identLen, marks.push(\n { name: \"deref_attr\", position: identPos },\n { name: \"ident\", position: identPos },\n { name: \"ident_end\", position: pos }\n )), {\n type: \"success\",\n marks,\n position: pos\n };\n case \"[\": {\n if (pos = skipWS(str, pos + 1), str[pos] === \"]\")\n return {\n type: \"success\",\n marks: [{ name: \"array_postfix\", position: startPos }],\n position: pos + 1\n };\n let rangePos = pos, result = parseExpr(str, pos, 0);\n if (result.type === \"error\") return result;\n if (pos = skipWS(str, result.position), str[pos] === \".\" && str[pos + 1] === \".\") {\n let type = \"inc_range\";\n str[pos + 2] === \".\" ? (type = \"exc_range\", pos += 3) : pos += 2, pos = skipWS(str, pos);\n let rhs = parseExpr(str, pos, 0);\n return rhs.type === \"error\" ? rhs : (pos = skipWS(str, rhs.position), str[pos] !== \"]\" ? { type: \"error\", position: pos } : {\n type: \"success\",\n marks: [\n { name: \"slice\", position: startPos },\n { name: type, position: rangePos }\n ].concat(result.marks, rhs.marks),\n position: pos + 1\n });\n }\n return str[pos] !== \"]\" ? { type: \"error\", position: pos } : {\n type: \"success\",\n marks: [{ name: \"square_bracket\", position: startPos }].concat(result.marks),\n position: pos + 1\n };\n }\n case \"|\": {\n if (pos = skipWS(str, pos + 1), str[pos] === \"{\") {\n let result = parseObject(str, pos);\n return result.type === \"error\" || result.marks.unshift({ name: \"projection\", position: startPos }), result;\n }\n break;\n }\n case \"{\": {\n let result = parseObject(str, pos);\n return result.type === \"error\" || result.marks.unshift({ name: \"projection\", position: startPos }), result;\n }\n }\n return { type: \"error\", position: pos };\n}\nfunction parseFuncCall(str, startPos, pos) {\n let marks = [];\n if (marks.push({ name: \"func_call\", position: startPos }), str[pos] === \":\" && str[pos + 1] === \":\") {\n marks.push({ name: \"namespace\", position: startPos }), marks.push({ name: \"ident\", position: startPos }, { name: \"ident_end\", position: pos }), pos = skipWS(str, pos + 2);\n let nameLen = parseRegex(str, pos, IDENT);\n if (!nameLen) return { type: \"error\", position: pos };\n if (marks.push({ name: \"ident\", position: pos }, { name: \"ident_end\", position: pos + nameLen }), pos = skipWS(str, pos + nameLen), str[pos] !== \"(\") return { type: \"error\", position: pos };\n pos++, pos = skipWS(str, pos);\n } else\n marks.push({ name: \"ident\", position: startPos }, { name: \"ident_end\", position: pos }), pos = skipWS(str, pos + 1);\n let lastPos = pos;\n if (str[pos] !== \")\")\n for (; ; ) {\n let result = parseExpr(str, pos, 0);\n if (result.type === \"error\") return result;\n if (marks = marks.concat(result.marks), lastPos = result.position, pos = skipWS(str, result.position), str[pos] !== \",\" || (pos = skipWS(str, pos + 1), str[pos] === \")\")) break;\n }\n return str[pos] !== \")\" ? { type: \"error\", position: pos } : (marks.push({ name: \"func_args_end\", position: lastPos }), {\n type: \"success\",\n marks,\n position: pos + 1\n });\n}\nfunction parseObject(str, pos) {\n let marks = [{ name: \"object\", position: pos }];\n for (pos = skipWS(str, pos + 1); str[pos] !== \"}\"; ) {\n let pairPos = pos;\n if (str.slice(pos, pos + 3) === \"...\")\n if (pos = skipWS(str, pos + 3), str[pos] !== \"}\" && str[pos] !== \",\") {\n let expr = parseExpr(str, pos, 0);\n if (expr.type === \"error\") return expr;\n marks.push({ name: \"object_splat\", position: pairPos }), marks = marks.concat(expr.marks), pos = expr.position;\n } else\n marks.push({ name: \"object_splat_this\", position: pairPos });\n else {\n let expr = parseExpr(str, pos, 0);\n if (expr.type === \"error\") return expr;\n let nextPos = skipWS(str, expr.position);\n if (expr.marks[0].name === \"str\" && str[nextPos] === \":\") {\n let value = parseExpr(str, skipWS(str, nextPos + 1), 0);\n if (value.type === \"error\") return value;\n marks.push({ name: \"object_pair\", position: pairPos }), marks = marks.concat(expr.marks, value.marks), pos = value.position;\n } else\n marks = marks.concat({ name: \"object_expr\", position: pos }, expr.marks), pos = expr.position;\n }\n if (pos = skipWS(str, pos), str[pos] !== \",\") break;\n pos = skipWS(str, pos + 1);\n }\n return str[pos] !== \"}\" ? { type: \"error\", position: pos } : (pos++, marks.push({ name: \"object_end\", position: pos }), { type: \"success\", marks, position: pos });\n}\nfunction parseString(str, pos) {\n let token = str[pos];\n pos = pos + 1;\n const marks = [{ name: \"str\", position: pos }];\n str: for (; ; pos++) {\n if (pos > str.length) return { type: \"error\", position: pos };\n switch (str[pos]) {\n case token: {\n marks.push({ name: \"str_end\", position: pos }), pos++;\n break str;\n }\n case \"\\\\\":\n marks.push({ name: \"str_pause\", position: pos }), str[pos + 1] === \"u\" ? str[pos + 2] === \"{\" ? (marks.push({ name: \"unicode_hex\", position: pos + 3 }), pos = str.indexOf(\"}\", pos + 3), marks.push({ name: \"unicode_hex_end\", position: pos })) : (marks.push({ name: \"unicode_hex\", position: pos + 2 }), marks.push({ name: \"unicode_hex_end\", position: pos + 6 }), pos += 5) : (marks.push({ name: \"single_escape\", position: pos + 1 }), pos += 1), marks.push({ name: \"str_start\", position: pos + 1 });\n }\n }\n return { type: \"success\", marks, position: pos };\n}\nfunction skipWS(str, pos) {\n return pos + parseRegex(str, pos, WS);\n}\nfunction parseRegex(str, pos, re) {\n let m = re.exec(str.slice(pos));\n return m ? m[0].length : 0;\n}\nfunction parseRegexStr(str, pos, re) {\n let m = re.exec(str.slice(pos));\n return m ? m[0] : null;\n}\nfunction join(a, b) {\n return (base) => b(a(base));\n}\nfunction map(inner) {\n return (base) => ({ type: \"Map\", base, expr: inner({ type: \"This\" }) });\n}\nfunction flatMap(inner) {\n return (base) => ({ type: \"FlatMap\", base, expr: inner({ type: \"This\" }) });\n}\nfunction traverseArray(build, right) {\n if (!right)\n return {\n type: \"a-a\",\n build\n };\n switch (right.type) {\n case \"a-a\":\n return {\n type: \"a-a\",\n build: join(build, right.build)\n };\n case \"a-b\":\n return {\n type: \"a-b\",\n build: join(build, right.build)\n };\n case \"b-b\":\n return {\n type: \"a-a\",\n build: join(build, map(right.build))\n };\n case \"b-a\":\n return {\n type: \"a-a\",\n build: join(build, flatMap(right.build))\n };\n default:\n throw new Error(`unknown type: ${right.type}`);\n }\n}\nfunction traversePlain(mapper, right) {\n if (!right)\n return {\n type: \"b-b\",\n build: mapper\n };\n switch (right.type) {\n case \"a-a\":\n case \"b-a\":\n return {\n type: \"b-a\",\n build: join(mapper, right.build)\n };\n case \"a-b\":\n case \"b-b\":\n return {\n type: \"b-b\",\n build: join(mapper, right.build)\n };\n default:\n throw new Error(`unknown type: ${right.type}`);\n }\n}\nfunction traverseElement(mapper, right) {\n if (!right)\n return {\n type: \"a-b\",\n build: mapper\n };\n switch (right.type) {\n case \"a-a\":\n case \"b-a\":\n return {\n type: \"a-a\",\n build: join(mapper, right.build)\n };\n case \"a-b\":\n case \"b-b\":\n return {\n type: \"a-b\",\n build: join(mapper, right.build)\n };\n default:\n throw new Error(`unknown type: ${right.type}`);\n }\n}\nfunction traverseProjection(mapper, right) {\n if (!right)\n return {\n type: \"b-b\",\n build: mapper\n };\n switch (right.type) {\n case \"a-a\":\n return {\n type: \"a-a\",\n build: join(map(mapper), right.build)\n };\n case \"a-b\":\n return {\n type: \"a-b\",\n build: join(map(mapper), right.build)\n };\n case \"b-a\":\n return {\n type: \"b-a\",\n build: join(mapper, right.build)\n };\n case \"b-b\":\n return {\n type: \"b-b\",\n build: join(mapper, right.build)\n };\n default:\n throw new Error(`unknown type: ${right.type}`);\n }\n}\nconst ESCAPE_SEQUENCE = {\n \"'\": \"'\",\n '\"': '\"',\n \"\\\\\": \"\\\\\",\n \"/\": \"/\",\n b: \"\\b\",\n f: \"\\f\",\n n: `\n`,\n r: \"\\r\",\n t: \"\t\"\n};\nfunction expandHex(str) {\n const charCode = parseInt(str, 16);\n return String.fromCharCode(charCode);\n}\nclass GroqQueryError extends Error {\n name = \"GroqQueryError\";\n}\nconst EXPR_BUILDER = {\n group(p) {\n return {\n type: \"Group\",\n base: p.process(EXPR_BUILDER)\n };\n },\n everything() {\n return { type: \"Everything\" };\n },\n this() {\n return { type: \"This\" };\n },\n parent() {\n return {\n type: \"Parent\",\n n: 1\n };\n },\n dblparent(p) {\n return {\n type: \"Parent\",\n n: p.process(EXPR_BUILDER).n + 1\n };\n },\n traverse(p) {\n const base = p.process(EXPR_BUILDER), traversalList = [];\n for (; p.getMark().name !== \"traversal_end\"; )\n traversalList.push(p.process(TRAVERSE_BUILDER));\n p.shift();\n let traversal = null;\n for (let i = traversalList.length - 1; i >= 0; i--)\n traversal = traversalList[i](traversal);\n if ((base.type === \"Everything\" || base.type === \"Array\" || base.type === \"PipeFuncCall\") && (traversal = traverseArray((val) => val, traversal)), traversal === null) throw new Error(\"BUG: unexpected empty traversal\");\n return traversal.build(base);\n },\n this_attr(p) {\n const name = p.processString();\n return name === \"null\" ? { type: \"Value\", value: null } : name === \"true\" ? { type: \"Value\", value: !0 } : name === \"false\" ? { type: \"Value\", value: !1 } : {\n type: \"AccessAttribute\",\n name\n };\n },\n neg(p) {\n return {\n type: \"Neg\",\n base: p.process(EXPR_BUILDER)\n };\n },\n pos(p) {\n return {\n type: \"Pos\",\n base: p.process(EXPR_BUILDER)\n };\n },\n add(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op: \"+\",\n left,\n right\n };\n },\n sub(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op: \"-\",\n left,\n right\n };\n },\n mul(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op: \"*\",\n left,\n right\n };\n },\n div(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op: \"/\",\n left,\n right\n };\n },\n mod(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op: \"%\",\n left,\n right\n };\n },\n pow(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op: \"**\",\n left,\n right\n };\n },\n comp(p) {\n const left = p.process(EXPR_BUILDER), op = p.processString(), right = p.process(EXPR_BUILDER);\n return {\n type: \"OpCall\",\n op,\n left,\n right\n };\n },\n in_range(p) {\n const base = p.process(EXPR_BUILDER), isInclusive = p.getMark().name === \"inc_range\";\n p.shift();\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"InRange\",\n base,\n left,\n right,\n isInclusive\n };\n },\n str(p) {\n let value = \"\";\n loop: for (; p.hasMark(); ) {\n const mark = p.getMark();\n switch (mark.name) {\n case \"str_end\":\n value += p.processStringEnd();\n break loop;\n case \"str_pause\":\n value += p.processStringEnd();\n break;\n case \"str_start\":\n p.shift();\n break;\n case \"single_escape\": {\n const char = p.slice(1);\n p.shift(), value += ESCAPE_SEQUENCE[char];\n break;\n }\n case \"unicode_hex\":\n p.shift(), value += expandHex(p.processStringEnd());\n break;\n default:\n throw new Error(`unexpected mark: ${mark.name}`);\n }\n }\n return { type: \"Value\", value };\n },\n integer(p) {\n const strValue = p.processStringEnd();\n return {\n type: \"Value\",\n value: Number(strValue)\n };\n },\n float(p) {\n const strValue = p.processStringEnd();\n return {\n type: \"Value\",\n value: Number(strValue)\n };\n },\n sci(p) {\n const strValue = p.processStringEnd();\n return {\n type: \"Value\",\n value: Number(strValue)\n };\n },\n object(p) {\n const attributes = [];\n for (; p.getMark().name !== \"object_end\"; )\n attributes.push(p.process(OBJECT_BUILDER));\n return p.shift(), {\n type: \"Object\",\n attributes\n };\n },\n array(p) {\n const elements = [];\n for (; p.getMark().name !== \"array_end\"; ) {\n let isSplat = !1;\n p.getMark().name === \"array_splat\" && (isSplat = !0, p.shift());\n const value = p.process(EXPR_BUILDER);\n elements.push({\n type: \"ArrayElement\",\n value,\n isSplat\n });\n }\n return p.shift(), {\n type: \"Array\",\n elements\n };\n },\n tuple(p) {\n const members = [];\n for (; p.getMark().name !== \"tuple_end\"; )\n members.push(p.process(EXPR_BUILDER));\n return p.shift(), {\n type: \"Tuple\",\n members\n };\n },\n func_call(p) {\n let namespace = \"global\";\n p.getMark().name === \"namespace\" && (p.shift(), namespace = p.processString());\n const name = p.processString();\n if (namespace === \"global\" && name === \"select\") {\n const result = {\n type: \"Select\",\n alternatives: []\n };\n for (; p.getMark().name !== \"func_args_end\"; )\n if (p.getMark().name === \"pair\") {\n if (result.fallback) throw new GroqQueryError(\"unexpected argument to select()\");\n p.shift();\n const condition = p.process(EXPR_BUILDER), value = p.process(EXPR_BUILDER);\n result.alternatives.push({\n type: \"SelectAlternative\",\n condition,\n value\n });\n } else {\n if (result.fallback) throw new GroqQueryError(\"unexpected argument to select()\");\n const value = p.process(EXPR_BUILDER);\n result.fallback = value;\n }\n return p.shift(), result;\n }\n const args = [];\n for (; p.getMark().name !== \"func_args_end\"; )\n argumentShouldBeSelector(namespace, name, args.length) ? (p.process(SELECTOR_BUILDER), args.push({ type: \"Selector\" })) : args.push(p.process(EXPR_BUILDER));\n if (p.shift(), namespace === \"global\" && (name === \"before\" || name === \"after\") && p.parseOptions.mode === \"delta\")\n return {\n type: \"Context\",\n key: name\n };\n if (namespace === \"global\" && name === \"boost\" && !p.allowBoost)\n throw new GroqQueryError(\"unexpected boost\");\n const funcs = namespaces[namespace];\n if (!funcs)\n throw new GroqQueryError(`Undefined namespace: ${namespace}`);\n const func = funcs[name];\n if (!func)\n throw new GroqQueryError(`Undefined function: ${name}`);\n if (func.arity !== void 0 && validateArity(name, func.arity, args.length), func.mode !== void 0 && func.mode !== p.parseOptions.mode)\n throw new GroqQueryError(`Undefined function: ${name}`);\n return {\n type: \"FuncCall\",\n func,\n namespace,\n name,\n args\n };\n },\n pipecall(p) {\n const base = p.process(EXPR_BUILDER);\n p.shift();\n let namespace = \"global\";\n if (p.getMark().name === \"namespace\" && (p.shift(), namespace = p.processString()), namespace !== \"global\")\n throw new GroqQueryError(`Undefined namespace: ${namespace}`);\n const name = p.processString(), args = [], oldAllowBoost = p.allowBoost;\n for (name === \"score\" && (p.allowBoost = !0); ; ) {\n const markName = p.getMark().name;\n if (markName === \"func_args_end\")\n break;\n if (name === \"order\") {\n if (markName === \"asc\") {\n p.shift(), args.push({ type: \"Asc\", base: p.process(EXPR_BUILDER) });\n continue;\n } else if (markName === \"desc\") {\n p.shift(), args.push({ type: \"Desc\", base: p.process(EXPR_BUILDER) });\n continue;\n }\n }\n args.push(p.process(EXPR_BUILDER));\n }\n p.shift(), p.allowBoost = oldAllowBoost;\n const func = pipeFunctions[name];\n if (!func)\n throw new GroqQueryError(`Undefined pipe function: ${name}`);\n return func.arity && validateArity(name, func.arity, args.length), {\n type: \"PipeFuncCall\",\n func,\n base,\n name,\n args\n };\n },\n pair() {\n throw new GroqQueryError(\"unexpected =>\");\n },\n and(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"And\",\n left,\n right\n };\n },\n or(p) {\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER);\n return {\n type: \"Or\",\n left,\n right\n };\n },\n not(p) {\n return {\n type: \"Not\",\n base: p.process(EXPR_BUILDER)\n };\n },\n asc() {\n throw new GroqQueryError(\"unexpected asc\");\n },\n desc() {\n throw new GroqQueryError(\"unexpected desc\");\n },\n param(p) {\n const name = p.processString();\n return p.parseOptions.params && p.parseOptions.params.hasOwnProperty(name) ? {\n type: \"Value\",\n value: p.parseOptions.params[name]\n } : {\n type: \"Parameter\",\n name\n };\n }\n}, OBJECT_BUILDER = {\n object_expr(p) {\n if (p.getMark().name === \"pair\") {\n p.shift();\n const condition = p.process(EXPR_BUILDER), value2 = p.process(EXPR_BUILDER);\n return {\n type: \"ObjectConditionalSplat\",\n condition,\n value: value2\n };\n }\n const value = p.process(EXPR_BUILDER);\n return {\n type: \"ObjectAttributeValue\",\n name: extractPropertyKey(value),\n value\n };\n },\n object_pair(p) {\n const name = p.process(EXPR_BUILDER);\n if (name.type !== \"Value\") throw new Error(\"name must be string\");\n const value = p.process(EXPR_BUILDER);\n return {\n type: \"ObjectAttributeValue\",\n name: name.value,\n value\n };\n },\n object_splat(p) {\n return {\n type: \"ObjectSplat\",\n value: p.process(EXPR_BUILDER)\n };\n },\n object_splat_this() {\n return {\n type: \"ObjectSplat\",\n value: { type: \"This\" }\n };\n }\n}, TRAVERSE_BUILDER = {\n square_bracket(p) {\n const expr = p.process(EXPR_BUILDER), value = tryConstantEvaluate(expr);\n return value && value.type === \"number\" ? (right) => traverseElement((base) => ({ type: \"AccessElement\", base, index: value.data }), right) : value && value.type === \"string\" ? (right) => traversePlain((base) => ({ type: \"AccessAttribute\", base, name: value.data }), right) : (right) => traverseArray(\n (base) => ({\n type: \"Filter\",\n base,\n expr\n }),\n right\n );\n },\n slice(p) {\n const isInclusive = p.getMark().name === \"inc_range\";\n p.shift();\n const left = p.process(EXPR_BUILDER), right = p.process(EXPR_BUILDER), leftValue = tryConstantEvaluate(left), rightValue = tryConstantEvaluate(right);\n if (!leftValue || !rightValue || leftValue.type !== \"number\" || rightValue.type !== \"number\")\n throw new GroqQueryError(\"slicing must use constant numbers\");\n return (rhs) => traverseArray(\n (base) => ({\n type: \"Slice\",\n base,\n left: leftValue.data,\n right: rightValue.data,\n isInclusive\n }),\n rhs\n );\n },\n projection(p) {\n const obj = p.process(EXPR_BUILDER);\n return (right) => traverseProjection((base) => ({ type: \"Projection\", base, expr: obj }), right);\n },\n attr_access(p) {\n const name = p.processString();\n return (right) => traversePlain((base) => ({ type: \"AccessAttribute\", base, name }), right);\n },\n deref(p) {\n let attr = null;\n p.getMark().name === \"deref_attr\" && (p.shift(), attr = p.processString());\n const wrap = (base) => attr ? { type: \"AccessAttribute\", base, name: attr } : base;\n return (right) => traversePlain(\n (base) => wrap({\n type: \"Deref\",\n base\n }),\n right\n );\n },\n array_postfix() {\n return (right) => traverseArray((base) => ({ type: \"ArrayCoerce\", base }), right);\n }\n}, SELECTOR_BUILDER = {\n group(p) {\n return p.process(SELECTOR_BUILDER), null;\n },\n everything() {\n throw new Error(\"Invalid selector syntax\");\n },\n this() {\n throw new Error(\"Invalid selector syntax\");\n },\n parent() {\n throw new Error(\"Invalid selector syntax\");\n },\n dblparent() {\n throw new Error(\"Invalid selector syntax\");\n },\n traverse(p) {\n for (p.process(SELECTOR_BUILDER); p.getMark().name !== \"traversal_end\"; )\n p.process(TRAVERSE_BUILDER);\n return p.shift(), null;\n },\n this_attr(p) {\n return p.processString(), null;\n },\n neg() {\n throw new Error(\"Invalid selector syntax\");\n },\n pos() {\n throw new Error(\"Invalid selector syntax\");\n },\n add() {\n throw new Error(\"Invalid selector syntax\");\n },\n sub() {\n throw new Error(\"Invalid selector syntax\");\n },\n mul() {\n throw new Error(\"Invalid selector syntax\");\n },\n div() {\n throw new Error(\"Invalid selector syntax\");\n },\n mod() {\n throw new Error(\"Invalid selector syntax\");\n },\n pow() {\n throw new Error(\"Invalid selector syntax\");\n },\n comp() {\n throw new Error(\"Invalid selector syntax\");\n },\n in_range() {\n throw new Error(\"Invalid selector syntax\");\n },\n str() {\n throw new Error(\"Invalid selector syntax\");\n },\n integer() {\n throw new Error(\"Invalid selector syntax\");\n },\n float() {\n throw new Error(\"Invalid selector syntax\");\n },\n sci() {\n throw new Error(\"Invalid selector syntax\");\n },\n object() {\n throw new Error(\"Invalid selector syntax\");\n },\n array() {\n throw new Error(\"Invalid selector syntax\");\n },\n tuple() {\n throw new Error(\"Invalid selector syntax\");\n },\n func_call(p, mark) {\n const func = EXPR_BUILDER.func_call(p, mark);\n if (func.name === \"anywhere\" && func.args.length === 1) return null;\n throw new Error(\"Invalid selector syntax\");\n },\n pipecall() {\n throw new Error(\"Invalid selector syntax\");\n },\n pair() {\n throw new Error(\"Invalid selector syntax\");\n },\n and() {\n throw new Error(\"Invalid selector syntax\");\n },\n or() {\n throw new Error(\"Invalid selector syntax\");\n },\n not() {\n throw new Error(\"Invalid selector syntax\");\n },\n asc() {\n throw new Error(\"Invalid selector syntax\");\n },\n desc() {\n throw new Error(\"Invalid selector syntax\");\n },\n param() {\n throw new Error(\"Invalid selector syntax\");\n }\n};\nfunction extractPropertyKey(node) {\n if (node.type === \"AccessAttribute\" && !node.base)\n return node.name;\n if (node.type === \"PipeFuncCall\" || node.type === \"Deref\" || node.type === \"Map\" || node.type === \"Projection\" || node.type === \"Slice\" || node.type === \"Filter\" || node.type === \"AccessElement\" || node.type === \"ArrayCoerce\" || node.type === \"Group\")\n return extractPropertyKey(node.base);\n throw new GroqQueryError(`Cannot determine property key for type: ${node.type}`);\n}\nfunction validateArity(name, arity, count) {\n if (typeof arity == \"number\") {\n if (count !== arity)\n throw new GroqQueryError(\n `Incorrect number of arguments to function ${name}(). Expected ${arity}, got ${count}.`\n );\n } else if (arity && !arity(count))\n throw new GroqQueryError(`Incorrect number of arguments to function ${name}().`);\n}\nfunction argumentShouldBeSelector(namespace, functionName, argCount) {\n const functionsRequiringSelectors = [\"changedAny\", \"changedOnly\"];\n return namespace == \"diff\" && argCount == 2 && functionsRequiringSelectors.includes(functionName);\n}\nclass GroqSyntaxError extends Error {\n position;\n name = \"GroqSyntaxError\";\n constructor(position) {\n super(`Syntax error in GROQ query at position ${position}`), this.position = position;\n }\n}\nfunction parse(input, options = {}) {\n const result = parse$1(input);\n if (result.type === \"error\")\n throw new GroqSyntaxError(result.position);\n return new MarkProcessor(input, result.marks, options).process(EXPR_BUILDER);\n}\nconst { compare } = new Intl.Collator(\"en\");\nfunction typeNodesSorter(a, b) {\n return a.type === \"null\" ? 1 : compare(hashField(a), hashField(b));\n}\nconst hashCache = /* @__PURE__ */ new WeakMap();\nfunction hashField(field) {\n if (hashCache.has(field))\n return hashCache.get(field);\n const hash = calculateFieldHash(field);\n return hashCache.set(field, hash), hash;\n}\nfunction calculateFieldHash(field) {\n switch (field.type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return field.value !== void 0 ? `${field.type}(${field.value})` : `${field.type}`;\n case \"null\":\n case \"unknown\":\n return field.type;\n case \"array\":\n return `${field.type}(${hashField(field.of)})`;\n case \"object\": {\n const attributes = Object.entries(field.attributes);\n return attributes.sort(([a], [b]) => compare(a, b)), `${field.type}:(${attributes.map(\n ([key, value]) => `${key}:${hashField(value.value)}(${value.optional ? \"optional\" : \"non-optional\"})`\n ).join(\",\")}):ref-${field.dereferencesTo}:${field.rest ? hashField(field.rest) : \"no-rest\"}`;\n }\n case \"union\": {\n const sorted = [...field.of];\n return sorted.sort(typeNodesSorter), `${field.type}(${sorted.map(hashField).join(\",\")})`;\n }\n case \"inline\":\n return `${field.type}(${field.name})`;\n default:\n return field.type;\n }\n}\nfunction removeDuplicateTypeNodes(typeNodes) {\n const seenTypes = /* @__PURE__ */ new Set(), newTypeNodes = [], sortedTypeNodes = [...typeNodes];\n sortedTypeNodes.sort(typeNodesSorter);\n for (const typeNode of sortedTypeNodes) {\n const hash = hashField(typeNode);\n if (hash === null) {\n newTypeNodes.push(typeNode);\n continue;\n }\n seenTypes.has(hash) || (seenTypes.add(hash), newTypeNodes.push(typeNode));\n }\n return newTypeNodes;\n}\nfunction optimizeUnions(field) {\n if (field.type === \"union\") {\n if (field.of.length === 0)\n return field;\n if (field.of = removeDuplicateTypeNodes(field.of), field.of.length === 1)\n return optimizeUnions(field.of[0]);\n for (let idx = 0; field.of.length > idx; idx++) {\n const subField = field.of[idx];\n if (subField.type === \"union\") {\n field.of.splice(idx, 1, ...subField.of), idx--;\n continue;\n }\n field.of[idx] = optimizeUnions(subField);\n }\n return field.of.sort((a, b) => a.type === \"null\" ? 1 : compare(hashField(a), hashField(b))), field;\n }\n if (field.type === \"array\")\n return field.of = optimizeUnions(field.of), field;\n if (field.type === \"object\") {\n for (const idx in field.attributes)\n Object.hasOwn(field.attributes, idx) && (field.attributes[idx].value = optimizeUnions(field.attributes[idx].value));\n return field;\n }\n return field;\n}\nfunction createReferenceTypeNode(name, inArray = !1) {\n const attributes = {\n _ref: {\n type: \"objectAttribute\",\n value: {\n type: \"string\"\n }\n },\n _type: {\n type: \"objectAttribute\",\n value: {\n type: \"string\",\n value: \"reference\"\n }\n },\n _weak: {\n type: \"objectAttribute\",\n value: {\n type: \"boolean\"\n },\n optional: !0\n }\n };\n return inArray && (attributes._key = {\n type: \"objectAttribute\",\n value: {\n type: \"string\"\n }\n }), {\n type: \"object\",\n attributes,\n dereferencesTo: name\n };\n}\nfunction nullUnion(node) {\n return node.type === \"union\" ? unionOf(...node.of, { type: \"null\" }) : unionOf(node, { type: \"null\" });\n}\nfunction unionOf(...nodes) {\n return {\n type: \"union\",\n of: nodes\n };\n}\nfunction resolveInline(node, scope) {\n if (node.type === \"inline\") {\n const resolvedInline = scope.context.lookupTypeDeclaration(node);\n return resolveInline(resolvedInline, scope);\n }\n return node;\n}\nfunction mapNode(node, scope, mapper, mergeUnions = (nodes) => optimizeUnions({ type: \"union\", of: nodes })) {\n switch (node.type) {\n case \"boolean\":\n case \"array\":\n case \"null\":\n case \"object\":\n case \"string\":\n case \"number\":\n case \"unknown\":\n return mapper(node);\n case \"union\":\n return mergeUnions(node.of.map((inner) => mapNode(inner, scope, mapper), mergeUnions));\n case \"inline\": {\n const resolvedInline = resolveInline(node, scope);\n return mapNode(resolvedInline, scope, mapper, mergeUnions);\n }\n default:\n throw new Error(`Unknown type: ${node.type}`);\n }\n}\nfunction isFuncCall(node, name) {\n return node.type === \"Group\" ? isFuncCall(node.base, name) : node.type === \"FuncCall\" && `${node.namespace}::${node.name}` === name;\n}\nfunction booleanValue(node, scope) {\n switch (node.type) {\n case \"unknown\":\n return { canBeTrue: !0, canBeFalse: !0, canBeNull: !0 };\n case \"boolean\":\n return node.value === !0 ? { canBeTrue: !0, canBeFalse: !1, canBeNull: !1 } : node.value === !1 ? { canBeTrue: !1, canBeFalse: !0, canBeNull: !1 } : { canBeTrue: !0, canBeFalse: !0, canBeNull: !1 };\n case \"union\": {\n const value = { canBeTrue: !1, canBeFalse: !1, canBeNull: !1 };\n for (const sub of node.of) {\n const match2 = booleanValue(sub, scope);\n match2.canBeNull && (value.canBeNull = !0), match2.canBeTrue && (value.canBeTrue = !0), match2.canBeFalse && (value.canBeFalse = !0);\n }\n return value;\n }\n case \"inline\": {\n const resolved = resolveInline(node, scope);\n return booleanValue(resolved, scope);\n }\n case \"null\":\n case \"string\":\n case \"number\":\n case \"object\":\n case \"array\":\n return { canBeTrue: !1, canBeFalse: !1, canBeNull: !0 };\n default:\n throw new Error(`unknown node type ${node.type}`);\n }\n}\nfunction booleanOr(left, right) {\n return left.canBeTrue && !left.canBeFalse && !left.canBeNull ? left : right.canBeTrue && !right.canBeFalse && !right.canBeNull ? right : {\n // Either side can be true for the expression to be true\n canBeTrue: left.canBeTrue || right.canBeTrue,\n // Both sides must be false for the expression to be false\n canBeFalse: left.canBeFalse && right.canBeFalse,\n // if either side can be null, the expression can be null if the other side can't only be true\n canBeNull: left.canBeNull || right.canBeNull\n };\n}\nfunction booleanAnd(left, right) {\n return left.canBeFalse && !left.canBeTrue && !left.canBeNull ? left : right.canBeFalse && !right.canBeTrue && !right.canBeNull ? right : {\n // Both sides must be true for the expression to be true\n canBeTrue: left.canBeTrue && right.canBeTrue,\n // if either side can be false, the expression can be false\n canBeFalse: left.canBeFalse || right.canBeFalse,\n // if either side can be null, the expression can be null\n canBeNull: left.canBeNull || right.canBeNull\n };\n}\nfunction booleanInterpretationToTypeNode(bool) {\n return bool.canBeTrue ? bool.canBeFalse ? bool.canBeNull ? nullUnion({ type: \"boolean\" }) : { type: \"boolean\" } : bool.canBeNull ? nullUnion({ type: \"boolean\", value: !0 }) : { type: \"boolean\", value: !0 } : bool.canBeFalse ? bool.canBeNull ? nullUnion({ type: \"boolean\", value: !1 }) : { type: \"boolean\", value: !1 } : { type: \"null\" };\n}\nconst $trace$1 = debug(\"typeEvaluator:scope:trace\");\n$trace$1.log = console.log.bind(console);\nclass Context {\n schema;\n constructor(schema) {\n this.schema = schema;\n }\n lookupRef(refTo) {\n for (const val of this.schema)\n if (val.type === \"document\" && val.name === refTo)\n return {\n type: \"object\",\n attributes: val.attributes\n };\n return { type: \"null\" };\n }\n lookupTypeDeclaration(alias) {\n for (const val of this.schema)\n if (val.type === \"type\" && val.name === alias.name)\n return val.value;\n return { type: \"null\" };\n }\n}\nclass Scope2 {\n value;\n parent;\n context;\n isHidden;\n constructor(value, parent, context) {\n this.value = { type: \"union\", of: value }, this.parent = parent, this.context = context || parent?.context || new Context([]), this.isHidden = !1;\n }\n createNested(value) {\n return this.isHidden ? new Scope2(value, this.parent, this.context) : new Scope2(value, this, this.context);\n }\n createHidden(value) {\n const result = this.createNested(value);\n return result.isHidden = !0, result;\n }\n}\nfunction unionWithoutNull(unionTypeNode) {\n return unionTypeNode.type === \"union\" ? {\n type: \"union\",\n of: unionTypeNode.of.filter((type) => type.type !== \"null\")\n } : unionTypeNode;\n}\nfunction handleFuncCallNode(node, scope) {\n switch (`${node.namespace}.${node.name}`) {\n case \"array.compact\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => {\n if (arg2.type === \"unknown\")\n return nullUnion({ type: \"array\", of: { type: \"unknown\" } });\n if (arg2.type !== \"array\")\n return { type: \"null\" };\n const of = mapNode(arg2.of, scope, (of2) => of2);\n return {\n type: \"array\",\n of: unionWithoutNull(of)\n };\n });\n }\n case \"array.join\": {\n const arrayArg = walk({ node: node.args[0], scope }), sepArg = walk({ node: node.args[1], scope });\n return mapNode(\n arrayArg,\n scope,\n (arrayArg2) => mapNode(sepArg, scope, (sepArg2) => arrayArg2.type === \"unknown\" || sepArg2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : arrayArg2.type !== \"array\" || sepArg2.type !== \"string\" ? { type: \"null\" } : mapNode(arrayArg2.of, scope, (of) => of.type === \"unknown\" ? nullUnion({ type: \"string\" }) : of.type !== \"string\" && of.type !== \"number\" && of.type !== \"boolean\" ? { type: \"null\" } : { type: \"string\" }))\n );\n }\n case \"array.unique\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"array\", of: { type: \"unknown\" } }) : arg2.type !== \"array\" ? { type: \"null\" } : arg2);\n }\n case \"array.intersects\": {\n const arg1 = walk({ node: node.args[0], scope }), arg2 = walk({ node: node.args[1], scope });\n return mapNode(\n arg1,\n scope,\n (arg12) => mapNode(arg2, scope, (arg22) => arg12.type !== \"array\" ? { type: \"null\" } : arg22.type !== \"array\" ? { type: \"null\" } : { type: \"boolean\" })\n );\n }\n case \"global.lower\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : arg2.type !== \"string\" ? { type: \"null\" } : arg2.value !== void 0 ? {\n type: \"string\",\n value: arg2.value.toLowerCase()\n } : { type: \"string\" });\n }\n case \"global.upper\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : arg2.type !== \"string\" ? { type: \"null\" } : arg2.value !== void 0 ? {\n type: \"string\",\n value: arg2.value.toUpperCase()\n } : { type: \"string\" });\n }\n case \"dateTime.now\":\n return { type: \"string\" };\n case \"global.now\":\n return { type: \"string\" };\n case \"global.defined\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (node2) => node2.type === \"unknown\" ? { type: \"boolean\" } : { type: \"boolean\", value: node2.type !== \"null\" });\n }\n case \"global.path\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : arg2.type === \"string\" ? { type: \"string\" } : { type: \"null\" });\n }\n case \"global.coalesce\": {\n if (node.args.length === 0)\n return { type: \"null\" };\n const typeNodes = [];\n let canBeNull = !0;\n for (const arg of node.args) {\n const argNode = optimizeUnions(walk({ node: arg, scope })), allNull = argNode.type === \"null\" || argNode.type === \"union\" && argNode.of.every((t) => t.type === \"null\");\n if (canBeNull = allNull || argNode.type === \"unknown\" || argNode.type === \"union\" && argNode.of.some((t) => t.type === \"null\" || t.type === \"unknown\"), allNull || typeNodes.push(unionWithoutNull(argNode)), !canBeNull)\n break;\n }\n return canBeNull && typeNodes.push({ type: \"null\" }), {\n type: \"union\",\n of: typeNodes\n };\n }\n case \"global.count\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : arg2.type === \"array\" ? { type: \"number\" } : { type: \"null\" });\n }\n case \"global.dateTime\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : arg2.type === \"string\" ? nullUnion({ type: \"string\" }) : { type: \"null\" });\n }\n case \"global.length\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (arg2) => arg2.type === \"unknown\" ? nullUnion({ type: \"number\" }) : arg2.type === \"array\" || arg2.type === \"string\" ? { type: \"number\" } : { type: \"null\" });\n }\n case \"global.references\":\n return { type: \"boolean\" };\n case \"global.round\": {\n const numNode = walk({ node: node.args[0], scope });\n return mapNode(numNode, scope, (num) => {\n if (num.type === \"unknown\")\n return nullUnion({ type: \"number\" });\n if (num.type !== \"number\")\n return { type: \"null\" };\n if (node.args.length === 2) {\n const precisionNode = walk({ node: node.args[1], scope });\n return mapNode(precisionNode, scope, (precision) => precision.type === \"unknown\" ? nullUnion({ type: \"number\" }) : precision.type !== \"number\" ? { type: \"null\" } : { type: \"number\" });\n }\n return { type: \"number\" };\n });\n }\n case \"global.string\": {\n const arg = walk({ node: node.args[0], scope });\n return mapNode(arg, scope, (node2) => node2.type === \"unknown\" ? nullUnion({ type: \"string\" }) : node2.type === \"string\" || node2.type === \"number\" || node2.type === \"boolean\" ? node2.value ? {\n type: \"string\",\n value: node2.value.toString()\n } : {\n type: \"string\"\n } : { type: \"null\" });\n }\n case \"math.sum\": {\n const values = walk({ node: node.args[0], scope });\n return mapNode(values, scope, (node2) => node2.type === \"unknown\" ? nullUnion({ type: \"number\" }) : node2.type !== \"array\" ? { type: \"null\" } : mapNode(node2.of, scope, (node3) => node3.type === \"unknown\" ? nullUnion({ type: \"number\" }) : node3.type === \"number\" || node3.type === \"null\" ? { type: \"number\" } : { type: \"null\" }));\n }\n case \"math.avg\": {\n const values = walk({ node: node.args[0], scope });\n return mapNode(values, scope, (node2) => node2.type === \"unknown\" ? nullUnion({ type: \"number\" }) : node2.type !== \"array\" ? { type: \"null\" } : mapNode(node2.of, scope, (node3) => node3.type === \"unknown\" ? nullUnion({ type: \"number\" }) : node3.type === \"number\" ? { type: \"number\" } : { type: \"null\" }));\n }\n case \"math.max\":\n case \"math.min\": {\n const values = walk({ node: node.args[0], scope });\n return mapNode(values, scope, (node2) => node2.type === \"unknown\" ? nullUnion({ type: \"number\" }) : node2.type !== \"array\" ? { type: \"null\" } : mapNode(node2.of, scope, (node3) => node3.type === \"unknown\" ? nullUnion({ type: \"number\" }) : node3.type === \"number\" ? node3 : { type: \"null\" }));\n }\n case \"pt.text\":\n return node.args.length === 0 ? { type: \"null\" } : {\n type: \"string\"\n };\n case \"string.startsWith\": {\n const strTypeNode = walk({ node: node.args[0], scope }), prefixTypeNode = walk({ node: node.args[1], scope });\n return mapNode(strTypeNode, scope, (strNode) => mapNode(prefixTypeNode, scope, (prefixNode) => strNode.type === \"unknown\" || prefixNode.type === \"unknown\" ? nullUnion({ type: \"boolean\" }) : strNode.type !== \"string\" || prefixNode.type !== \"string\" ? { type: \"null\" } : { type: \"boolean\" }));\n }\n case \"string.split\": {\n const strTypeNode = walk({ node: node.args[0], scope }), sepTypeNode = walk({ node: node.args[1], scope });\n return mapNode(strTypeNode, scope, (strNode) => mapNode(sepTypeNode, scope, (sepNode) => strNode.type === \"unknown\" || sepNode.type === \"unknown\" ? nullUnion({ type: \"array\", of: { type: \"string\" } }) : strNode.type !== \"string\" || sepNode.type !== \"string\" ? { type: \"null\" } : { type: \"array\", of: { type: \"string\" } }));\n }\n case \"sanity.versionOf\": {\n const typeNode = walk({ node: node.args[0], scope });\n return mapNode(typeNode, scope, (typeNode2) => typeNode2.type === \"unknown\" ? nullUnion({ type: \"array\", of: { type: \"string\" } }) : typeNode2.type !== \"string\" ? { type: \"null\" } : { type: \"array\", of: { type: \"string\" } });\n }\n case \"sanity.partOfRelease\": {\n const typeNode = walk({ node: node.args[0], scope });\n return mapNode(typeNode, scope, (typeNode2) => typeNode2.type === \"unknown\" ? nullUnion({ type: \"array\", of: { type: \"string\" } }) : typeNode2.type !== \"string\" ? { type: \"null\" } : { type: \"array\", of: { type: \"string\" } });\n }\n default:\n return { type: \"unknown\" };\n }\n}\nfunction match(left, right) {\n let tokens = [], patterns = [];\n if (left.type === \"string\") {\n if (left.value === void 0)\n return;\n tokens = tokens.concat(matchTokenize(left.value));\n }\n if (left.type === \"array\") {\n if (left.of.type === \"unknown\")\n return;\n if (left.of.type === \"string\") {\n if (left.of.value === void 0)\n return;\n tokens = tokens.concat(matchTokenize(left.of.value));\n }\n if (left.of.type === \"union\")\n for (const node of left.of.of)\n node.type === \"string\" && node.value !== void 0 && (tokens = tokens.concat(matchTokenize(node.value)));\n }\n if (right.type === \"string\") {\n if (right.value === void 0)\n return;\n patterns = patterns.concat(matchAnalyzePattern(right.value));\n }\n if (right.type === \"array\") {\n if (right.of.type === \"unknown\")\n return;\n if (right.of.type === \"string\") {\n if (right.of.value === void 0)\n return;\n patterns = patterns.concat(matchAnalyzePattern(right.of.value));\n }\n if (right.of.type === \"union\")\n for (const node of right.of.of) {\n if (node.type === \"string\") {\n if (node.value === void 0)\n return;\n patterns = patterns.concat(matchAnalyzePattern(node.value));\n }\n if (node.type !== \"string\")\n return !1;\n }\n }\n return matchText(tokens, patterns);\n}\nconst $trace = debug(\"typeEvaluator:evaluate:trace\");\n$trace.log = console.log.bind(console);\nconst $debug = debug(\"typeEvaluator:evaluate:debug\");\n$debug.log = console.log.bind(console);\nconst $warn = debug(\"typeEvaluator:evaluate:warn\");\nfunction typeEvaluate(ast, schema) {\n $debug(\"evaluateQueryType.ast %O\", ast), $debug(\"evaluateQueryType.schema %O\", schema);\n const parsed = walk({\n node: ast,\n scope: new Scope2([], void 0, new Context(schema))\n });\n $trace(\"evaluateQueryType.parsed %O\", parsed);\n const optimized = optimizeUnions(parsed);\n return $debug(\"evaluateQueryType.optimized %O\", optimized), optimized;\n}\nfunction mapDeref(base, scope) {\n return base.type === \"union\" ? {\n type: \"union\",\n of: base.of.map((node) => mapDeref(node, scope))\n } : base.type === \"array\" ? {\n type: \"array\",\n of: mapDeref(base.of, scope)\n } : base.type === \"object\" && base.dereferencesTo !== void 0 ? scope.context.lookupRef(base.dereferencesTo) : { type: \"null\" };\n}\nfunction handleDerefNode(node, scope) {\n $trace(\"deref.node %O\", node);\n const base = walk({ node: node.base, scope });\n if ($trace(\"deref.base %O\", base), base.type === \"null\" || base.type === \"unknown\")\n return { type: \"null\" };\n const derefedNode = mapDeref(base, scope);\n return $trace(\"deref.derefedNode %O\", derefedNode), derefedNode;\n}\nfunction handleObjectSplatNode(attr, scope) {\n const value = walk({ node: attr.value, scope });\n return $trace(\"object.splat.value %O\", value), mapNode(value, scope, (node) => {\n if (node.type === \"unknown\")\n return { type: \"unknown\" };\n if (node.type !== \"object\")\n return { type: \"object\", attributes: {} };\n const attributes = {};\n for (const name in node.attributes)\n node.attributes.hasOwnProperty(name) && (attributes[name] = node.attributes[name]);\n if (node.rest !== void 0) {\n const resolvedRest = resolveInline(node.rest, scope);\n if (resolvedRest.type === \"unknown\")\n return { type: \"unknown\" };\n if (resolvedRest.type !== \"object\")\n return { type: \"null\" };\n for (const name in resolvedRest.attributes)\n resolvedRest.attributes.hasOwnProperty(name) && (attributes[name] = resolvedRest.attributes[name]);\n }\n return { type: \"object\", attributes };\n });\n}\nfunction handleObjectNode(node, scope) {\n if ($trace(\"object.node %O\", node), node.attributes.length === 0)\n return {\n type: \"object\",\n attributes: {}\n };\n const objectAttributes = [], splatVariants = [], conditionalVariants = [];\n for (const [idx, attr] of node.attributes.entries()) {\n if (attr.type === \"ObjectAttributeValue\") {\n const attributeNode = walk({ node: attr.value, scope });\n objectAttributes.push([\n idx,\n attr.name,\n {\n type: \"objectAttribute\",\n value: attributeNode\n }\n ]);\n continue;\n }\n if (attr.type === \"ObjectSplat\") {\n const attributeNode = handleObjectSplatNode(attr, scope);\n switch ($trace(\"object.splat.result %O\", attributeNode), attributeNode.type) {\n case \"object\": {\n splatVariants.push([idx, attributeNode]);\n continue;\n }\n case \"union\": {\n for (const node2 of attributeNode.of)\n if (node2.type === \"unknown\")\n return node2;\n splatVariants.push([idx, attributeNode]);\n continue;\n }\n default:\n return { type: \"unknown\" };\n }\n }\n if (attr.type === \"ObjectConditionalSplat\") {\n const condition = booleanValue(walk({ node: attr.condition, scope }), scope);\n if ($trace(\"object.conditional.splat.condition %O\", condition), condition.canBeTrue === !1)\n continue;\n const attributeNode = handleObjectSplatNode(attr, scope);\n if ($trace(\"object.conditional.splat.result %O\", attributeNode), condition.canBeFalse === !1 && condition.canBeNull === !1)\n switch (attributeNode.type) {\n case \"object\": {\n splatVariants.push([idx, attributeNode]);\n continue;\n }\n case \"union\": {\n for (const node2 of attributeNode.of)\n if (node2.type !== \"object\")\n return { type: \"unknown\" };\n splatVariants.push([idx, attributeNode]);\n continue;\n }\n default:\n return { type: \"unknown\" };\n }\n const variant = mapNode(attributeNode, scope, (attributeNode2) => ($trace(\"object.conditional.splat.result.concrete %O\", attributeNode2), attributeNode2.type !== \"object\" ? { type: \"unknown\" } : {\n type: \"object\",\n attributes: attributeNode2.attributes\n }));\n if (variant.type === \"union\") {\n for (const node2 of variant.of)\n if (node2.type !== \"object\")\n return { type: \"unknown\" };\n variant.of.push({ type: \"object\", attributes: {} }), conditionalVariants.push([idx, variant]);\n continue;\n }\n if (variant.type !== \"object\")\n return { type: \"unknown\" };\n conditionalVariants.push([\n idx,\n {\n type: \"union\",\n of: [{ type: \"object\", attributes: {} }, variant]\n }\n ]);\n continue;\n }\n throw new Error(`Unknown object attribute type: ${attr.type}`);\n }\n const guaranteedAttributes = [];\n guaranteedAttributes.push(...objectAttributes);\n for (const [idx, splatNode] of splatVariants) {\n if (splatNode.type === \"object\") {\n for (const name in splatNode.attributes) {\n if (!splatNode.attributes.hasOwnProperty(name))\n continue;\n const attribute = splatNode.attributes[name];\n guaranteedAttributes.push([idx, name, attribute]);\n }\n continue;\n }\n conditionalVariants.push([idx, splatNode]);\n }\n if (guaranteedAttributes.sort(([a], [b]) => a - b), conditionalVariants.length === 0)\n return {\n type: \"object\",\n attributes: Object.fromEntries(\n guaranteedAttributes.map(([, name, attribute]) => [name, attribute])\n )\n };\n const matrix = [];\n for (const [unionIdx, union] of conditionalVariants) {\n const unionGuaranteedBefore = [], unionGuaranteedAfter = [];\n for (const [guaranteedIndex, name, attribute] of guaranteedAttributes)\n guaranteedIndex < unionIdx && unionGuaranteedBefore.push([guaranteedIndex, name, attribute]), guaranteedIndex > unionIdx && unionGuaranteedAfter.push([guaranteedIndex, name, attribute]);\n const allVariantsAttributes = [];\n for (const [conditionalVariantIdx, otherUnion] of conditionalVariants) {\n const variantAttributes = [];\n for (const node2 of otherUnion.of)\n variantAttributes.push(node2.attributes);\n allVariantsAttributes.push([conditionalVariantIdx, variantAttributes]);\n }\n for (const node2 of union.of) {\n matrix.push({\n type: \"object\",\n attributes: {\n ...Object.fromEntries(\n unionGuaranteedBefore.map(([, name, attribute]) => [name, attribute])\n ),\n ...node2.attributes,\n ...Object.fromEntries(\n unionGuaranteedAfter.map(([, name, attribute]) => [name, attribute])\n )\n }\n });\n for (const [outerIdx, outerAttributes] of allVariantsAttributes)\n for (const outer of outerAttributes)\n for (const [innerIdx, innerAttributes] of allVariantsAttributes)\n if (outerIdx !== innerIdx)\n for (const inner of innerAttributes) {\n const _before = [...unionGuaranteedBefore], _after = [...unionGuaranteedAfter];\n for (const name in outer)\n outer.hasOwnProperty(name) && outerIdx !== unionIdx && (outerIdx < unionIdx && _before.push([outerIdx, name, outer[name]]), outerIdx > unionIdx && _after.push([outerIdx, name, outer[name]]));\n for (const name in inner)\n inner.hasOwnProperty(name) && outerIdx !== unionIdx && (innerIdx < unionIdx && _before.push([innerIdx, name, inner[name]]), innerIdx > unionIdx && _after.push([innerIdx, name, inner[name]]));\n _before.sort(([a], [b]) => a - b), _after.sort(([a], [b]) => a - b);\n const before = Object.fromEntries(\n _before.map(([, name, attribute]) => [name, attribute])\n ), after = Object.fromEntries(\n _after.map(([, name, attribute]) => [name, attribute])\n );\n matrix.push({\n type: \"object\",\n attributes: {\n ...before,\n ...node2.attributes,\n ...after\n }\n });\n }\n }\n }\n return optimizeUnions({\n type: \"union\",\n of: matrix\n });\n}\nfunction handleOpCallNode(node, scope) {\n $trace(\"opcall.node %O\", node);\n const lhs = walk({ node: node.left, scope }), rhs = walk({ node: node.right, scope });\n return mapNode(\n lhs,\n scope,\n (left) => (\n // eslint-disable-next-line complexity, max-statements\n mapNode(rhs, scope, (right) => {\n switch ($trace('opcall.node.concrete \"%s\" %O', node.op, { left, right }), node.op) {\n case \"==\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? { type: \"boolean\" } : left.type !== right.type ? {\n type: \"boolean\",\n value: !1\n } : left.type === \"null\" ? {\n type: \"boolean\",\n value: !0\n } : !isPrimitiveTypeNode(left) || !isPrimitiveTypeNode(right) ? {\n type: \"boolean\",\n value: !1\n } : {\n type: \"boolean\",\n value: evaluateComparison(node.op, left, right)\n };\n case \"!=\": {\n if (left.type === \"unknown\" || right.type === \"unknown\")\n return { type: \"boolean\" };\n if (left.type !== right.type)\n return {\n type: \"boolean\",\n value: !0\n };\n if (left.type === \"null\")\n return {\n type: \"boolean\",\n value: !1\n };\n if (!isPrimitiveTypeNode(left) || !isPrimitiveTypeNode(right))\n return {\n type: \"boolean\",\n value: !0\n };\n let value = evaluateComparison(\"==\", left, right);\n return value !== void 0 && (value = !value), {\n type: \"boolean\",\n value\n };\n }\n case \">\":\n case \">=\":\n case \"<\":\n case \"<=\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"boolean\" }) : left.type !== right.type ? { type: \"null\" } : !isPrimitiveTypeNode(left) || !isPrimitiveTypeNode(right) ? { type: \"null\" } : {\n type: \"boolean\",\n value: evaluateComparison(node.op, left, right)\n };\n case \"in\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"boolean\" }) : right.type !== \"array\" ? isFuncCall(node.right, \"global::path\") ? { type: \"boolean\" } : { type: \"null\" } : !isPrimitiveTypeNode(left) && left.type !== \"null\" ? {\n type: \"boolean\",\n value: !1\n } : mapNode(right.of, scope, (arrayTypeNode) => arrayTypeNode.type === \"unknown\" ? nullUnion({ type: \"boolean\" }) : left.type === \"null\" ? {\n type: \"boolean\",\n value: arrayTypeNode.type === \"null\"\n } : left.value === void 0 ? {\n type: \"boolean\"\n } : isPrimitiveTypeNode(arrayTypeNode) ? arrayTypeNode.value === void 0 ? {\n type: \"boolean\"\n } : {\n type: \"boolean\",\n value: left.value === arrayTypeNode.value\n } : {\n type: \"boolean\",\n value: !1\n });\n case \"match\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? { type: \"boolean\" } : {\n type: \"boolean\",\n value: match(left, right)\n };\n case \"+\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? { type: \"unknown\" } : left.type === \"string\" && right.type === \"string\" ? {\n type: \"string\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value + right.value : void 0\n } : left.type === \"number\" && right.type === \"number\" ? {\n type: \"number\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value + right.value : void 0\n } : left.type === \"array\" && right.type === \"array\" ? {\n type: \"array\",\n of: {\n type: \"union\",\n of: [left.of, right.of]\n }\n } : left.type === \"object\" && right.type === \"object\" ? {\n type: \"object\",\n attributes: { ...left.attributes, ...right.attributes }\n } : { type: \"null\" };\n case \"-\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"number\" }) : left.type === \"number\" && right.type === \"number\" ? {\n type: \"number\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value - right.value : void 0\n } : { type: \"null\" };\n case \"*\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"number\" }) : left.type === \"number\" && right.type === \"number\" ? {\n type: \"number\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value * right.value : void 0\n } : { type: \"null\" };\n case \"/\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"number\" }) : left.type === \"number\" && right.type === \"number\" ? {\n type: \"number\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value / right.value : void 0\n } : { type: \"null\" };\n case \"**\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"number\" }) : left.type === \"number\" && right.type === \"number\" ? {\n type: \"number\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value ** right.value : void 0\n } : { type: \"null\" };\n case \"%\":\n return left.type === \"unknown\" || right.type === \"unknown\" ? nullUnion({ type: \"number\" }) : left.type === \"number\" && right.type === \"number\" ? {\n type: \"number\",\n value: left.value !== void 0 && right.value !== void 0 ? left.value % right.value : void 0\n } : { type: \"null\" };\n default:\n return {\n type: \"unknown\"\n };\n }\n })\n )\n );\n}\nfunction handleSelectNode(node, scope) {\n const values = [];\n let guaranteed = !1;\n for (const alternative of node.alternatives) {\n const conditionValue = walk({ node: alternative.condition, scope }), conditionScope = resolveFilter(alternative.condition, scope);\n conditionScope.type === \"union\" && conditionScope.of.length > 0 && values.push(walk({ node: alternative.value, scope: scope.createHidden(conditionScope.of) })), conditionValue.type === \"boolean\" && conditionValue.value === !0 && (guaranteed = !0);\n }\n return node.fallback && !guaranteed && values.push(walk({ node: node.fallback, scope })), values.length === 0 ? { type: \"null\" } : {\n type: \"union\",\n of: values\n };\n}\nfunction handleArrayCoerceNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return $trace(\"arrayCoerce.base %O\", base), mapArray(base, scope, (base2) => base2);\n}\nfunction handleFlatMap(node, scope) {\n const base = walk({ node: node.base, scope });\n return mapArray(base, scope, (base2) => {\n const inner = walk({ node: node.expr, scope: scope.createHidden([base2.of]) });\n return mapNode(\n inner,\n scope,\n (inner2) => inner2.type === \"array\" ? inner2 : { type: \"array\", of: inner2 },\n (nodes) => {\n const inner2 = [];\n for (const node2 of nodes) {\n if (node2.type === \"unknown\") return { type: \"array\", of: node2 };\n if (node2.type !== \"array\") throw new Error(`Unexpected type: ${node2.type}`);\n inner2.push(node2.of);\n }\n return {\n type: \"array\",\n of: optimizeUnions({ type: \"union\", of: inner2 })\n };\n }\n );\n });\n}\nfunction handleMap(node, scope) {\n const base = walk({ node: node.base, scope });\n return $trace(\"map.base %O\", base), mapArray(base, scope, (base2) => ({\n type: \"array\",\n of: walk({ node: node.expr, scope: scope.createHidden([base2.of]) })\n }));\n}\nfunction handleProjectionNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return $trace(\"projection.base %O\", base), mapObject(\n base,\n scope,\n (base2) => walk({ node: node.expr, scope: scope.createNested([base2]) })\n );\n}\nfunction createFilterScope(base, scope) {\n return base.type === \"array\" ? base.of.type === \"union\" ? scope.createNested(base.of.of) : scope.createNested([base.of]) : scope.createNested([base]);\n}\nfunction handleFilterNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return $trace(\"filter.base %O\", base), mapNode(base, scope, (base2) => {\n if ($trace(\"filter.resolving %O\", base2), base2.type === \"null\")\n return base2;\n const resolved = resolveFilter(node.expr, createFilterScope(base2, scope));\n return $trace(\"filter.resolved %O\", resolved), {\n type: \"array\",\n of: resolved\n };\n });\n}\nfunction handleAccessAttributeNode(node, scope) {\n let attributeBase = scope.value;\n return node.base && (attributeBase = walk({ node: node.base, scope })), $trace(\"accessAttribute.base %s %O\", node.name, attributeBase), handleAccessAttributeBase(attributeBase, node.name, scope);\n}\nfunction handleAccessAttributeBase(base, name, scope) {\n return mapObject(base, scope, (base2) => {\n $trace('Looking for attribute \"%s\" in object %O', name, base2);\n const attribute = base2.attributes[name];\n return attribute !== void 0 ? ($debug(`accessAttribute.attribute found ${name} %O`, attribute), attribute.optional ? nullUnion(attribute.value) : attribute.value) : base2.rest ? handleAccessAttributeBase(base2.rest, name, scope) : ($warn(`attribute \"${name}\" not found in object`), { type: \"null\" });\n });\n}\nfunction handleAccessElementNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return $trace(\"accessElement.base %O\", base), mapArray(base, scope, (base2) => nullUnion(base2.of));\n}\nfunction handleArrayNode(node, scope) {\n const of = [];\n for (const el of node.elements) {\n const node2 = walk({ node: el.value, scope });\n node2 !== null && of.push(node2);\n }\n return {\n type: \"array\",\n of: {\n type: \"union\",\n of\n }\n };\n}\nfunction handleValueNode(node, scope) {\n if (node.value === null)\n return { type: \"null\" };\n switch (typeof node.value) {\n case \"string\":\n return {\n type: \"string\",\n value: node.value\n };\n case \"number\":\n return {\n type: \"number\",\n value: node.value\n };\n case \"boolean\":\n return {\n type: \"boolean\",\n value: node.value\n };\n case \"object\":\n return node.value === null ? { type: \"null\" } : Array.isArray(node.value) ? {\n type: \"array\",\n of: {\n type: \"union\",\n of: node.value.map((value) => walk({ node: { type: \"Value\", value }, scope }))\n }\n } : {\n type: \"object\",\n attributes: Object.fromEntries(\n Object.entries(node.value).map(([key, value]) => [\n key,\n {\n type: \"objectAttribute\",\n value: walk({ node: { type: \"Value\", value }, scope })\n }\n ])\n )\n };\n default:\n return { type: \"unknown\" };\n }\n}\nfunction handleSlice(node, scope) {\n $trace(\"slice.node %O\", node);\n const base = walk({ node: node.base, scope });\n return mapArray(base, scope, (base2) => base2);\n}\nfunction handleParentNode({ n }, scope) {\n $trace(\"handle.parent.currentScope %d %O\", n, scope);\n let current = scope;\n for (let i = 0; i < n; i++) {\n for (; current?.isHidden; )\n current = current.parent;\n current = current?.parent;\n }\n return $trace(\"handle.parent.newScope %d %O\", n, current), current ? current.value.of.length === 0 ? { type: \"null\" } : current.value : { type: \"null\" };\n}\nfunction handleNotNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return mapNode(base, scope, (base2) => base2.type === \"unknown\" ? nullUnion({ type: \"boolean\" }) : base2.type === \"boolean\" ? base2.value !== void 0 ? { type: \"boolean\", value: base2.value === !1 } : { type: \"boolean\" } : { type: \"null\" });\n}\nfunction handleNegNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return mapNode(base, scope, (base2) => base2.type === \"unknown\" ? nullUnion({ type: \"number\" }) : base2.type !== \"number\" ? { type: \"null\" } : base2.value !== void 0 ? { type: \"number\", value: -base2.value } : base2);\n}\nfunction handlePosNode(node, scope) {\n const base = walk({ node: node.base, scope });\n return mapNode(base, scope, (base2) => base2.type === \"unknown\" ? nullUnion({ type: \"number\" }) : base2.type !== \"number\" ? { type: \"null\" } : base2);\n}\nfunction handleEverythingNode(_, scope) {\n return {\n type: \"array\",\n of: {\n type: \"union\",\n of: scope.context.schema.filter((obj) => obj.type === \"document\").map((doc) => ({\n type: \"object\",\n attributes: doc.attributes\n }))\n }\n };\n}\nfunction handleAndNode(node, scope) {\n const left = walk({ node: node.left, scope }), right = walk({ node: node.right, scope });\n return mapNode(\n left,\n scope,\n (lhs) => mapNode(right, scope, (rhs) => {\n const value = booleanAnd(booleanValue(lhs, scope), booleanValue(rhs, scope));\n return booleanInterpretationToTypeNode(value);\n })\n );\n}\nfunction handleOrNode(node, scope) {\n const left = walk({ node: node.left, scope }), right = walk({ node: node.right, scope });\n return mapNode(\n left,\n scope,\n (lhs) => mapNode(right, scope, (rhs) => {\n const value = booleanOr(booleanValue(lhs, scope), booleanValue(rhs, scope));\n return booleanInterpretationToTypeNode(value);\n })\n );\n}\nconst OVERRIDE_TYPE_SYMBOL = Symbol(\"groq-js.type\");\nfunction walk({ node, scope }) {\n if (OVERRIDE_TYPE_SYMBOL in node)\n return node[OVERRIDE_TYPE_SYMBOL];\n switch (node.type) {\n // Filtering, traversal & projections\n case \"Map\":\n return handleMap(node, scope);\n case \"Projection\":\n return handleProjectionNode(node, scope);\n case \"Filter\":\n return handleFilterNode(node, scope);\n case \"AccessAttribute\":\n return optimizeUnions(handleAccessAttributeNode(node, scope));\n case \"AccessElement\":\n return handleAccessElementNode(node, scope);\n case \"ArrayCoerce\":\n return handleArrayCoerceNode(node, scope);\n case \"FlatMap\":\n return handleFlatMap(node, scope);\n // Operations\n case \"OpCall\":\n return handleOpCallNode(node, scope);\n case \"And\":\n return handleAndNode(node, scope);\n case \"Or\":\n return handleOrNode(node, scope);\n case \"Select\":\n return handleSelectNode(node, scope);\n case \"PipeFuncCall\":\n return walk({ node: node.base, scope });\n // Values\n case \"Deref\":\n return handleDerefNode(node, scope);\n case \"Object\":\n return handleObjectNode(node, scope);\n case \"Value\":\n return handleValueNode(node, scope);\n case \"Array\":\n return handleArrayNode(node, scope);\n // Special cases\n case \"Everything\":\n return handleEverythingNode(node, scope);\n case \"This\":\n return $trace(\"this %O\", scope.value), scope.value;\n case \"Parent\":\n return handleParentNode(node, scope);\n case \"FuncCall\":\n return handleFuncCallNode(node, scope);\n case \"Group\":\n return walk({ node: node.base, scope });\n case \"Not\":\n return handleNotNode(node, scope);\n case \"Parameter\":\n return {\n type: \"unknown\"\n };\n case \"Slice\":\n return handleSlice(node, scope);\n case \"Neg\":\n return handleNegNode(node, scope);\n case \"Pos\":\n return handlePosNode(node, scope);\n // everything else\n case \"Asc\":\n case \"Desc\":\n case \"Context\":\n case \"Tuple\":\n case \"Selector\":\n case \"InRange\":\n return { type: \"unknown\" };\n default:\n throw new Error(`unknown node type ${node.type}`);\n }\n}\nfunction isPrimitiveTypeNode(node) {\n return node.type === \"string\" || node.type === \"number\" || node.type === \"boolean\";\n}\nfunction evaluateComparison(opcall, left, right) {\n if (!(left.value === void 0 || right.value === void 0))\n switch (opcall) {\n case \"==\":\n return left.value === right.value;\n case \"<\":\n return left.value < right.value;\n case \"<=\":\n return left.value <= right.value;\n case \">\":\n return left.value > right.value;\n case \">=\":\n return left.value >= right.value;\n default:\n throw new Error(`unknown comparison operator ${opcall}`);\n }\n}\nfunction resolveFilter(expr, scope) {\n $trace(\"resolveFilter.expr %O\", expr);\n const filtered = scope.value.of.filter((node) => {\n const subScope = scope.createHidden([node]), cond = walk({ node: expr, scope: subScope });\n return booleanValue(cond, subScope).canBeTrue;\n });\n return $trace(\n `resolveFilter ${expr.type === \"OpCall\" ? `${expr.type}/${expr.op}` : expr.type} %O`,\n filtered\n ), { type: \"union\", of: filtered };\n}\nfunction mapArray(node, scope, mapper) {\n return mapNode(node, scope, (base) => base.type === \"unknown\" ? base : base.type === \"array\" ? mapper(base) : { type: \"null\" });\n}\nfunction mapObject(node, scope, mapper) {\n return mapNode(node, scope, (base) => base.type === \"unknown\" ? base : base.type === \"object\" ? mapper(base) : { type: \"null\" });\n}\nexport {\n DateTime,\n Path,\n createReferenceTypeNode,\n evaluateQuery as evaluate,\n parse,\n typeEvaluate\n};\n//# sourceMappingURL=1.mjs.map\n"],"x_google_ignoreList":[0,1,2,3,4,5,7,8,9],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{__toESM as e}from"./chunk-DSR6Ryem.mjs";import{require_dist as t}from"./dist-DTr4N9sP.mjs";import{forwardRef as n,useContext as r}from"react";import{jsx as i}from"react/jsx-runtime";import{PaneRouterContext as a}from"sanity/_singletons";import{StateLink as o}from"sanity/router";var s=e(t());const c=n(function(e,t){let n=(0,s.c)(9),{routerPanesState:c,groupIndex:l}=r(a),u,d;n[0]!==l||n[1]!==c?(d=c.slice(0,l),n[0]=l,n[1]=c,n[2]=d):d=n[2],u=d;let f=u,p,m;n[3]===f?m=n[4]:(m={panes:f},n[3]=f,n[4]=m),p=m;let h=p,g;return n[5]!==e||n[6]!==t||n[7]!==h?(g=i(o,{...e,ref:t,state:h}),n[5]=e,n[6]=t,n[7]=h,n[8]=g):g=n[8],g});export{c as BackLink};
2
- //# sourceMappingURL=BackLink-BjbAxrJO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackLink-BjbAxrJO.mjs","names":["ComponentType","ForwardedRef","forwardRef","useContext","useMemo","PaneRouterContext","StateLink","BackLinkProps","BackLink","props","ref","$","_c","routerPanesState","groupIndex","t0","t1","slice","panes","t2","t3","state","t4"],"sources":["https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/paneRouter/BackLink.tsx"],"sourcesContent":["import {type ComponentType, type ForwardedRef, forwardRef, useContext, useMemo} from 'react'\nimport {PaneRouterContext} from 'sanity/_singletons'\nimport {StateLink} from 'sanity/router'\n\nimport {type BackLinkProps} from './types'\n\n/**\n * @internal\n */\nexport const BackLink = forwardRef(function BackLink(\n props: BackLinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n) {\n const {routerPanesState, groupIndex} = useContext(PaneRouterContext)\n const panes = useMemo(() => routerPanesState.slice(0, groupIndex), [groupIndex, routerPanesState])\n const state = useMemo(() => ({panes}), [panes])\n\n return <StateLink {...props} ref={ref} state={state} />\n}) as ComponentType<BackLinkProps>\n"],"mappings":"2SASA,MAAaQ,EAAWN,EAAW,SAAAO,EAAAC,EAAA,CAAA,IAAAC,EAAAC,CAAAA,EAAAA,EAAAA,GAAA,EAAA,CAIjC,CAAAC,mBAAAC,aAAA,CAAuCX,EAAAE,EAA6B,CAAAU,EAAAC,EACHD,AADGJ,EAAA,KAAAG,GAAAH,EAAA,KAAAE,GACxCG,EAAAH,EAAgBI,MAAA,EAAUH,EAAW,CAAAH,EAAA,GAAAG,EAAAH,EAAA,GAAAE,EAAAF,EAAA,GAAAK,GAAAA,EAAAL,EAAA,GAAAI,EAArCC,EAA5B,IAAAE,EAAcH,EAAoFI,EAAAC,EAC9DD,AAD8DR,EAAA,KAAAO,EAC9DE,EAAAT,EAAA,IAAPS,EAAA,CAAAF,OAAA,EAAOP,EAAA,GAAAO,EAAAP,EAAA,GAAAS,GAAAD,EAAPC,EAA7B,IAAAC,EAAcF,EAAiCG,EAEQ,OAFRX,EAAA,KAAAF,GAAAE,EAAA,KAAAD,GAAAC,EAAA,KAAAU,GAExCC,EAAA,EAAC,EAAA,CAAS,GAAKb,EAAYC,MAAYW,SAAS,CAAAV,EAAA,GAAAF,EAAAE,EAAA,GAAAD,EAAAC,EAAA,GAAAU,EAAAV,EAAA,GAAAW,GAAAA,EAAAX,EAAA,GAAhDW,CACR,EAAC"}
@@ -1,2 +0,0 @@
1
- import{__extends as e}from"./Observable-B8U6mp9h.mjs";import{Subject as t}from"./Subject-BUseddH4.mjs";var n=function(t){e(n,t);function n(e){var n=t.call(this)||this;return n._value=e,n}return Object.defineProperty(n.prototype,`value`,{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),n.prototype._subscribe=function(e){var n=t.prototype._subscribe.call(this,e);return!n.closed&&e.next(this._value),n},n.prototype.getValue=function(){var e=this,t=e.hasError,n=e.thrownError,r=e._value;if(t)throw n;return this._throwIfClosed(),r},n.prototype.next=function(e){t.prototype.next.call(this,this._value=e)},n}(t);export{n as BehaviorSubject};
2
- //# sourceMappingURL=BehaviorSubject-lT90ntN-.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BehaviorSubject-lT90ntN-.mjs","names":["BehaviorSubject"],"sources":["https://cdn.jsdelivr.net/npm/rxjs@7.8.2/dist/esm5/internal/BehaviorSubject.js"],"sourcesContent":["import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nvar BehaviorSubject = (function (_super) {\n __extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: false,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, (this._value = value));\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map"],"x_google_ignoreList":[0],"mappings":"uGAEA,IAAI,EAAmB,SAAU,EAAQ,CACrC,EAAUA,EAAiB,EAAO,CAClC,SAASA,EAAgB,EAAQ,CAC7B,IAAI,EAAQ,EAAO,KAAK,KAAK,EAAI,KAEjC,OADA,EAAM,OAAS,EACR,CACV,CAwBD,MAvBA,QAAO,eAAeA,EAAgB,UAAW,QAAS,CACtD,IAAK,UAAY,CACb,MAAO,MAAK,UAAU,AACzB,EACD,YAAY,EACZ,cAAc,CACjB,EAAC,CACF,EAAgB,UAAU,WAAa,SAAU,EAAY,CACzD,IAAI,EAAe,EAAO,UAAU,WAAW,KAAK,KAAM,EAAW,CAErE,OADC,EAAa,QAAU,EAAW,KAAK,KAAK,OAAO,CAC7C,CACV,EACD,EAAgB,UAAU,SAAW,UAAY,CAC7C,IAAI,EAAK,KAAM,EAAW,EAAG,SAAU,EAAc,EAAG,YAAa,EAAS,EAAG,OACjF,GAAI,EACA,MAAM,EAGV,MADA,MAAK,gBAAgB,CACd,CACV,EACD,EAAgB,UAAU,KAAO,SAAU,EAAO,CAC9C,EAAO,UAAU,KAAK,KAAK,KAAO,KAAK,OAAS,EAAO,AAC1D,EACMA,CACV,EAAC,EAAQ"}
@@ -1,2 +0,0 @@
1
- import{__toESM as e}from"./chunk-DSR6Ryem.mjs";import{require_dist as t}from"./dist-DTr4N9sP.mjs";import{usePresentationParams as n}from"./usePresentationParams-CK4TAdiB.mjs";import"./fast-deep-equal-D2buQJMm.mjs";import{useDisplayedDocumentBroadcaster as r}from"./DisplayedDocumentBroadcaster-bVq7qjFz.mjs";import{memo as i,useEffect as a}from"react";var o=e(t());function s(e){let t=(0,o.c)(7),i=r(),s=n(!1),c;t[0]!==e.value||t[1]!==i?(c=()=>{let t=setTimeout(()=>i?.(e.value),10);return()=>clearTimeout(t)},t[0]=e.value,t[1]=i,t[2]=c):c=t[2];let l=s?.perspective,u;return t[3]!==e.value||t[4]!==i||t[5]!==l?(u=[l,e.value,i],t[3]=e.value,t[4]=i,t[5]=l,t[6]=u):u=t[6],a(c,u),null}var c=i(s);export{c as default};
2
- //# sourceMappingURL=BroadcastDisplayedDocument-NLP-sZ3E.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BroadcastDisplayedDocument-NLP-sZ3E.mjs","names":["memo","useEffect","SanityDocument","usePresentationParams","useDisplayedDocumentBroadcaster","BroadcastDisplayedDocument","props","$","_c","setDisplayedDocument","params","t0","value","timeout","setTimeout","clearTimeout","t1","perspective","t2"],"sources":["https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/presentation/loader/BroadcastDisplayedDocument.tsx"],"sourcesContent":["import {memo, useEffect} from 'react'\nimport {type SanityDocument} from 'sanity'\n\nimport {usePresentationParams} from '../usePresentationParams'\nimport {useDisplayedDocumentBroadcaster} from './DisplayedDocumentBroadcaster'\n\n/**\n * Sanity Form input component that reads the current form state and broadcasts it to\n * the live query store\n */\nfunction BroadcastDisplayedDocument(props: {\n value: Partial<SanityDocument> | null | undefined\n}): React.JSX.Element | null {\n const setDisplayedDocument = useDisplayedDocumentBroadcaster()\n const params = usePresentationParams(false)\n\n useEffect(() => {\n const timeout = setTimeout(() => setDisplayedDocument?.(props.value), 10)\n return () => clearTimeout(timeout)\n }, [params?.perspective, props.value, setDisplayedDocument])\n\n return null\n}\n\nexport default memo(BroadcastDisplayedDocument)\n"],"mappings":"6WAUA,SAAAK,EAAAC,EAAA,CAAA,IAAAC,EAAAC,CAAAA,EAAAA,EAAAA,GAAA,EAAA,CAGEC,EAA6BL,GAAiC,CAC9DM,EAAeP,GAAA,EAA4B,CAAAQ,EAAA,AAAAJ,EAAA,KAAAD,EAAAM,OAAAL,EAAA,KAAAE,GAEjCE,EAAAA,IAAA,CACR,IAAAE,EAAgBC,WAAA,IAAiBL,AAAjB,IAAwCH,EAAKM,MAAA,CAAA,GAAY,CAAA,MAAA,IAC5DG,aAAaF,EAAQ,EACnCN,EAAA,GAAAD,EAAAM,MAAAL,EAAA,GAAAE,EAAAF,EAAA,GAAAI,GAAAA,EAAAJ,EAAA,GAAG,IAAAS,EAAAA,GAAMC,YAAaC,EAAqC,OAArCX,EAAA,KAAAD,EAAAM,OAAAL,EAAA,KAAAE,GAAAF,EAAA,KAAAS,GAApBE,EAAA,CAACF,EAAqBV,EAAKM,MAAQH,CAAoB,EAACF,EAAA,GAAAD,EAAAM,MAAAL,EAAA,GAAAE,EAAAF,EAAA,GAAAS,EAAAT,EAAA,GAAAW,GAAAA,EAAAX,EAAA,GAH3DN,EAAUU,EAGPO,EAAyD,CAAA,IAAA,CAK9D,IAAA,EAAelB,EAAKK,EAA2B"}
@@ -1,2 +0,0 @@
1
- import{__toESM as e}from"./chunk-DSR6Ryem.mjs";import{require_dist as t}from"./dist-DTr4N9sP.mjs";import{useEffect as n,useState as r}from"react";import{Fragment as i,jsx as a}from"react/jsx-runtime";var o=e(t());function s(e){let t=(0,o.c)(6),{children:s,ms:c}=e,l=c===void 0?0:c,[u,d]=r(l<=0),f,p;if(t[0]===l?(f=t[1],p=t[2]):(f=()=>{if(l<=0)return;let e=setTimeout(()=>d(!0),l);return()=>{clearTimeout(e)}},p=[l],t[0]=l,t[1]=f,t[2]=p),n(f,p),!u||!s){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=a(i,{}),t[3]=e):e=t[3],e}let m;return t[4]===s?m=t[5]:(m=typeof s==`function`?s():s,t[4]=s,t[5]=m),m}export{s as Delay};
2
- //# sourceMappingURL=Delay-BF0O9UCI.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Delay-BF0O9UCI.mjs","names":["useEffect","useState","Delay","t0","$","_c","children","ms","t1","undefined","ready","setReady","t2","t3","timeoutId","setTimeout","clearTimeout","t4","Symbol","for"],"sources":["https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/structure/components/Delay.tsx"],"sourcesContent":["import {useEffect, useState} from 'react'\n\nexport function Delay({\n children,\n ms = 0,\n}: {\n children?: React.JSX.Element | (() => React.JSX.Element)\n ms?: number\n}): React.JSX.Element {\n const [ready, setReady] = useState(ms <= 0)\n\n useEffect(() => {\n if (ms <= 0) {\n return undefined\n }\n\n const timeoutId = setTimeout(() => setReady(true), ms)\n\n return () => {\n clearTimeout(timeoutId)\n }\n }, [ms])\n\n if (!ready || !children) {\n return <></>\n }\n\n return typeof children === 'function' ? children() : children\n}\n"],"mappings":"qNAEA,SAAOE,EAAAC,EAAA,CAAA,IAAAC,EAAAC,CAAAA,EAAAA,EAAAA,GAAA,EAAA,CAAe,CAAAC,WAAAC,GAAAC,EAAA,CAAAL,EAEpBI,EAAAC,QAAAA,GAAM,EAANA,EAKA,CAAAE,EAAAC,EAAA,CAA0BV,EAASM,GAAE,EAAM,CAAAK,EAAAC,EAYnC,GAZmCT,EAAA,KAAAG,GAYpCK,EAAAR,EAAA,GAAAS,EAAAT,EAAA,KAVGQ,EAAAA,IAAA,CAAA,GACJL,GAAE,EAAK,OAIX,IAAAO,EAAkBC,WAAA,IAAiBJ,GAAQ,EAAM,CAAEJ,EAAG,CAAA,MAAA,IAAA,CAGpDS,aAAaF,EAAU,CAAA,EAExBD,EAAA,CAACN,CAAE,EAACH,EAAA,GAAAG,EAAAH,EAAA,GAAAQ,EAAAR,EAAA,GAAAS,GAVPb,EAAUY,EAUPC,EAAK,EAEHH,IAAUJ,EAAQ,CAAA,IAAAW,EACT,OADSb,EAAA,KAAAc,OAAAC,IAAA,4BAAA,EACdF,EAAA,EAAA,EAAA,CAAA,EAAA,CAAKb,EAAA,GAAAa,GAAAA,EAAAb,EAAA,GAALa,CAAK,CAAA,IAAAA,EAG+C,OAH/Cb,EAAA,KAAAE,EAG+CW,EAAAb,EAAA,IAAtDa,SAAOX,GAAa,WAAaA,GAAU,CAAGA,EAAQF,EAAA,GAAAE,EAAAF,EAAA,GAAAa,GAAtDA,CAAsD"}
@@ -1,2 +0,0 @@
1
- import{__toESM as e}from"./chunk-DSR6Ryem.mjs";import{require_dist as t}from"./dist-DTr4N9sP.mjs";import{require_fast_deep_equal as n}from"./fast-deep-equal-D2buQJMm.mjs";import{useContext as r,useEffect as i}from"react";import{jsx as a}from"react/jsx-runtime";import{PresentationDisplayedDocumentContext as o}from"sanity/_singletons";var s=e(t()),c=e(n());function l(e){let t=(0,s.c)(9),{children:n,setDisplayedDocument:r,documentId:l}=e,u;t[0]===r?u=t[1]:(u=e=>r(t=>(0,c.default)(t,e)?t:e),t[0]=r,t[1]=u);let d=u,f,p;t[2]!==l||t[3]!==r?(f=()=>{if(l)return;let e=setTimeout(()=>r(null));return()=>clearTimeout(e)},p=[l,r],t[2]=l,t[3]=r,t[4]=f,t[5]=p):(f=t[4],p=t[5]),i(f,p);let m;return t[6]!==n||t[7]!==d?(m=a(o.Provider,{value:d,children:n}),t[6]=n,t[7]=d,t[8]=m):m=t[8],m}function u(){return r(o)}export{l as DisplayedDocumentBroadcasterProvider,u as useDisplayedDocumentBroadcaster};
2
- //# sourceMappingURL=DisplayedDocumentBroadcaster-bVq7qjFz.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DisplayedDocumentBroadcaster-bVq7qjFz.mjs","names":["isEqual","PropsWithChildren","useCallback","useContext","useEffect","SanityDocument","PresentationDisplayedDocumentContext","PresentationDisplayedDocumentContextValue","DisplayedDocumentBroadcasterProps","setDisplayedDocument","React","Dispatch","SetStateAction","Partial","documentId","DisplayedDocumentBroadcasterProvider","props","$","_c","children","t0","next","prev","context","t1","t2","timeout","setTimeout","clearTimeout","t3","useDisplayedDocumentBroadcaster"],"sources":["https://github.com/sanity-io/sanity/blob/v3.93.0/packages/sanity/src/presentation/loader/DisplayedDocumentBroadcaster.tsx"],"sourcesContent":["/**\n * Report back up the document state being displayed in the document pane,\n * allowing Presentation Tool to patch the live queries with the same state.\n * This makes the Perspective switcher less confusing, as it applies to everything else on the page.\n * It's also why it's possible to select an older revision and see it in the preview,\n * effectively letting you preview a revert action you might be considering to perform.\n */\n\nimport isEqual from 'fast-deep-equal'\nimport {type PropsWithChildren, useCallback, useContext, useEffect} from 'react'\nimport {type SanityDocument} from 'sanity'\nimport {PresentationDisplayedDocumentContext} from 'sanity/_singletons'\n\nimport {type PresentationDisplayedDocumentContextValue} from './types'\n\nexport interface DisplayedDocumentBroadcasterProps extends PropsWithChildren {\n setDisplayedDocument: React.Dispatch<\n React.SetStateAction<Partial<SanityDocument> | null | undefined>\n >\n documentId: string | null | undefined\n}\n\nexport function DisplayedDocumentBroadcasterProvider(\n props: DisplayedDocumentBroadcasterProps,\n): React.JSX.Element {\n const {children, setDisplayedDocument, documentId} = props\n\n const context = useCallback<PresentationDisplayedDocumentContextValue>(\n (next) => setDisplayedDocument((prev) => (isEqual(prev, next) ? prev : next)),\n [setDisplayedDocument],\n )\n\n useEffect(() => {\n // If no document is currently being displayed then reset the state\n if (documentId) {\n return undefined\n }\n const timeout = setTimeout(() => setDisplayedDocument(null))\n return () => clearTimeout(timeout)\n }, [documentId, setDisplayedDocument])\n\n return (\n <PresentationDisplayedDocumentContext.Provider value={context}>\n {children}\n </PresentationDisplayedDocumentContext.Provider>\n )\n}\n\nexport function useDisplayedDocumentBroadcaster(): PresentationDisplayedDocumentContextValue | null {\n return useContext(PresentationDisplayedDocumentContext)\n}\n"],"mappings":"qWAsBA,SAAOe,EAAAC,EAAA,CAAA,IAAAC,EAAAC,CAAAA,EAAAA,EAAAA,GAAA,EAAA,CAGL,CAAAC,WAAAV,uBAAAK,aAAA,CAAqDE,EAAKI,EAAA,AAAAH,EAAA,KAAAR,EAGqBW,EAAAH,EAAA,IAA7EG,EAAAC,GAAUZ,EAAoBa,GAAYtB,CAAAA,EAAAA,EAAAA,SAAQsB,EAAMD,EAAK,CAAGC,EAAOD,EAAM,CAAAJ,EAAA,GAAAR,EAAAQ,EAAA,GAAAG,GAD/E,IAAAG,EAAgBH,EAGfI,EAAAC,EAEDrB,AAFCa,EAAA,KAAAH,GAAAG,EAAA,KAAAR,GAESe,EAAAA,IAAA,CAAA,GAEJV,EAAU,OAGd,IAAAY,EAAgBC,WAAA,IAAiBlB,EAAoB,KAAM,CAAC,CAAA,MAAA,IAC/CmB,aAAaF,EAAQ,EACjCD,EAAA,CAACX,EAAYL,CAAoB,EAACQ,EAAA,GAAAH,EAAAG,EAAA,GAAAR,EAAAQ,EAAA,GAAAO,EAAAP,EAAA,GAAAQ,IAAAD,EAAAP,EAAA,GAAAQ,EAAAR,EAAA,IAPrCb,EAAUoB,EAOPC,EAAmC,CAAA,IAAAI,EAKY,OALZZ,EAAA,KAAAE,GAAAF,EAAA,KAAAM,GAGpCM,EAAA,EAAA,EAAA,SAAA,CAAsDN,MAAAA,EACnDJ,YAC6C,CAAAF,EAAA,GAAAE,EAAAF,EAAA,GAAAM,EAAAN,EAAA,GAAAY,GAAAA,EAAAZ,EAAA,GAFhDY,CAEgD,CAIpD,SAAOC,GAAA,CAAA,MACE3B,GAAAG,EAAgD"}